When IDLE first starts, it attempts to read user configuration files in
-~/.idlerc/ (~ is one’s home directory). If there is a problem, an error
+~/.idlerc/
(~ is one’s home directory). If there is a problem, an error
message should be displayed. Leaving aside random disk glitches, this can
be prevented by never editing the files by hand, using the configuration
dialog, under Options, instead Options. Once it happens, the solution may
be to delete one or more of the configuration files.
If IDLE quits with no message, and it was not started from a console, try
-starting from a console (python -m idlelib)
and see if a message appears.
+starting from a console (
Setting preferences
The font preferences, highlighting, keys, and general preferences can be
changed via Configure IDLE on the Option menu.
-Non-default user settings are saved in a .idlerc directory in the user’s
+Non-default user settings are saved in a .idlerc
directory in the user’s
home directory. Problems caused by bad user configuration files are solved
-by editing or deleting one or more of the files in .idlerc.
+by editing or deleting one or more of the files in
.idlerc
.
On the Font tab, see the text sample for the effect of font face and size
on multiple characters in multiple languages. Edit the sample to add
other characters of personal interest. Use the sample to select
From ee94bdb0598f9bc47d6a49e58fffc97aa617be96 Mon Sep 17 00:00:00 2001
From: "Jason R. Coombs"
Date: Sun, 5 Jan 2020 22:32:19 -0500
Subject: [PATCH 063/380] bpo-38907: In http.server script, restore binding to
IPv4 on Windows. (GH-17851)
---
Lib/http/server.py | 14 +++++++++++++-
.../2020-01-06-02-14-38.bpo-38907.F1RkCR.rst | 1 +
2 files changed, 14 insertions(+), 1 deletion(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-06-02-14-38.bpo-38907.F1RkCR.rst
diff --git a/Lib/http/server.py b/Lib/http/server.py
index 47a4fcf9a65..b9a2717681f 100644
--- a/Lib/http/server.py
+++ b/Lib/http/server.py
@@ -1282,4 +1282,16 @@ if __name__ == '__main__':
else:
handler_class = partial(SimpleHTTPRequestHandler,
directory=args.directory)
- test(HandlerClass=handler_class, port=args.port, bind=args.bind)
+
+ # ensure dual-stack is not disabled; ref #38907
+ class DualStackServer(ThreadingHTTPServer):
+ def server_bind(self):
+ self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
+ return super().server_bind()
+
+ test(
+ HandlerClass=handler_class,
+ ServerClass=DualStackServer,
+ port=args.port,
+ bind=args.bind,
+ )
diff --git a/Misc/NEWS.d/next/Library/2020-01-06-02-14-38.bpo-38907.F1RkCR.rst b/Misc/NEWS.d/next/Library/2020-01-06-02-14-38.bpo-38907.F1RkCR.rst
new file mode 100644
index 00000000000..a6e79f78095
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-06-02-14-38.bpo-38907.F1RkCR.rst
@@ -0,0 +1 @@
+In http.server script, restore binding to IPv4 on Windows.
\ No newline at end of file
From 5136e721d7d9eae62ffad17328566b2315e42c00 Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Mon, 6 Jan 2020 19:46:04 +0900
Subject: [PATCH 064/380] argument-clinic: Simplify multi-line string handling
(GH-17852)
---
Tools/clinic/clinic.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py
index 403d8a47656..b503932e262 100755
--- a/Tools/clinic/clinic.py
+++ b/Tools/clinic/clinic.py
@@ -1182,14 +1182,14 @@ class CLanguage(Language):
lines = [self.group_to_variable_name(g) + " = 1;" for g in group_ids]
lines = "\n".join(lines)
- s = """
+ s = """\
case {count}:
if (!PyArg_ParseTuple(args, "{format_units}:{name}", {parse_arguments})) {{
goto exit;
}}
{group_booleans}
break;
-"""[1:]
+"""
s = linear_format(s, group_booleans=lines)
s = s.format_map(d)
add(s)
From 7cdc31a14c824000cbe8b487900c9826a33f6940 Mon Sep 17 00:00:00 2001
From: "Jason R. Coombs"
Date: Mon, 6 Jan 2020 07:59:36 -0500
Subject: [PATCH 065/380] bpo-38907: Suppress any exception when attempting to
set V6ONLY. (GH-17864)
Fixes error attempting to bind to IPv4 address.
---
Lib/http/server.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/Lib/http/server.py b/Lib/http/server.py
index b9a2717681f..c6e5ed6ea0e 100644
--- a/Lib/http/server.py
+++ b/Lib/http/server.py
@@ -103,6 +103,7 @@ import socketserver
import sys
import time
import urllib.parse
+import contextlib
from functools import partial
from http import HTTPStatus
@@ -1286,7 +1287,10 @@ if __name__ == '__main__':
# ensure dual-stack is not disabled; ref #38907
class DualStackServer(ThreadingHTTPServer):
def server_bind(self):
- self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
+ # suppress exception when protocol is IPv4
+ with contextlib.suppress(Exception):
+ self.socket.setsockopt(
+ socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
return super().server_bind()
test(
From 075ebad369d94342624792a41d3055c907bfa436 Mon Sep 17 00:00:00 2001
From: Chandan Singh
Date: Mon, 6 Jan 2020 15:18:16 +0000
Subject: [PATCH 066/380] Fix link to bpo issue in Changelog (GH-17692)
---
Misc/NEWS.d/3.9.0a2.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Misc/NEWS.d/3.9.0a2.rst b/Misc/NEWS.d/3.9.0a2.rst
index 60d0ea5a99b..50478c08e90 100644
--- a/Misc/NEWS.d/3.9.0a2.rst
+++ b/Misc/NEWS.d/3.9.0a2.rst
@@ -453,7 +453,7 @@ determined index was bogus. Patch by Claudiu Popa
..
-.. bpo: 38668
+.. bpo: 38688
.. date: 2019-11-22-10-45-03
.. nonce: iKx23z
.. section: Library
From 5ec91f78d59d9c39b984f284e00cd04b96ddb5db Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Mon, 6 Jan 2020 15:59:09 +0000
Subject: [PATCH 067/380] bpo-39209: Manage correctly multi-line tokens in
interactive mode (GH-17860)
---
Lib/test/test_repl.py | 36 +++++++++++++++++++
.../2020-01-06-10-29-16.bpo-39209.QHAONe.rst | 2 ++
Parser/tokenizer.c | 2 ++
3 files changed, 40 insertions(+)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-06-10-29-16.bpo-39209.QHAONe.rst
diff --git a/Lib/test/test_repl.py b/Lib/test/test_repl.py
index 9efd459a6f0..71f192f90d9 100644
--- a/Lib/test/test_repl.py
+++ b/Lib/test/test_repl.py
@@ -58,5 +58,41 @@ class TestInteractiveInterpreter(unittest.TestCase):
# Exit code 120: Py_FinalizeEx() failed to flush stdout and stderr.
self.assertIn(p.returncode, (1, 120))
+ @cpython_only
+ def test_multiline_string_parsing(self):
+ # bpo-39209: Multiline string tokens need to be handled in the tokenizer
+ # in two places: the interactive path and the non-interactive path.
+ user_input = '''\
+ x = """
+
+
+
+
+ 0KiB
+ 0
+ 1.3
+ 0
+
+
+ 16738211KiB
+ 237.15
+ 1.3
+ 0
+
+ never
+ none
+
+
+ """
+ '''
+ user_input = dedent(user_input)
+ user_input = user_input.encode()
+ p = spawn_repl()
+ with SuppressCrashReport():
+ p.stdin.write(user_input)
+ output = kill_python(p)
+ self.assertEqual(p.returncode, 0)
+
+
if __name__ == "__main__":
unittest.main()
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-06-10-29-16.bpo-39209.QHAONe.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-06-10-29-16.bpo-39209.QHAONe.rst
new file mode 100644
index 00000000000..c05b3f8dfa4
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-06-10-29-16.bpo-39209.QHAONe.rst
@@ -0,0 +1,2 @@
+Correctly handle multi-line tokens in interactive mode. Patch by Pablo
+Galindo.
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index f84093dae5b..f73c32684c7 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -886,6 +886,7 @@ tok_nextc(struct tok_state *tok)
size_t start = tok->start - tok->buf;
size_t oldlen = tok->cur - tok->buf;
size_t newlen = oldlen + strlen(newtok);
+ Py_ssize_t cur_multi_line_start = tok->multi_line_start - tok->buf;
char *buf = tok->buf;
buf = (char *)PyMem_REALLOC(buf, newlen+1);
tok->lineno++;
@@ -898,6 +899,7 @@ tok_nextc(struct tok_state *tok)
}
tok->buf = buf;
tok->cur = tok->buf + oldlen;
+ tok->multi_line_start = tok->buf + cur_multi_line_start;
tok->line_start = tok->cur;
strcpy(tok->buf + oldlen, newtok);
PyMem_FREE(newtok);
From 7b79dc9200a19ecbac667111dffd58e314be02a8 Mon Sep 17 00:00:00 2001
From: Anthony Wee
Date: Mon, 6 Jan 2020 08:57:34 -0800
Subject: [PATCH 068/380] bpo-29778: Fix incorrect NULL check in
_PyPathConfig_InitDLLPath() (GH-17818)
---
Python/pathconfig.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Python/pathconfig.c b/Python/pathconfig.c
index 363b7686bc4..6abc648769f 100644
--- a/Python/pathconfig.c
+++ b/Python/pathconfig.c
@@ -150,7 +150,7 @@ _PyWideStringList_Join(const PyWideStringList *list, wchar_t sep)
static PyStatus
_PyPathConfig_InitDLLPath(void)
{
- if (_Py_dll_path == NULL) {
+ if (_Py_dll_path != NULL) {
/* Already set: nothing to do */
return _PyStatus_OK();
}
From 2e9012a3e1e316c54e27f51ba5849ba06eab7da2 Mon Sep 17 00:00:00 2001
From: YoSTEALTH <35307184+YoSTEALTH@users.noreply.github.com>
Date: Mon, 6 Jan 2020 13:53:36 -0600
Subject: [PATCH 069/380] bpo-39234: Doc: `enum.auto()` incrementation value
not specified. (GH-17872)
* `enum.auto()` initial value is now specified as being `1`.
---
Doc/library/enum.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Doc/library/enum.rst b/Doc/library/enum.rst
index 1d6912aaf19..cfe3c207e1e 100644
--- a/Doc/library/enum.rst
+++ b/Doc/library/enum.rst
@@ -55,7 +55,7 @@ helper, :class:`auto`.
.. class:: auto
- Instances are replaced with an appropriate value for Enum members.
+ Instances are replaced with an appropriate value for Enum members. Initial value starts at 1.
.. versionadded:: 3.6 ``Flag``, ``IntFlag``, ``auto``
From b1ce22d086660d2505010694c8813cc67adf8f9e Mon Sep 17 00:00:00 2001
From: Steve Dower
Date: Mon, 6 Jan 2020 13:23:10 -0800
Subject: [PATCH 070/380] bpo-39041: Fix coverage upload command for GitHub
Actions (GH-17873)
https://bugs.python.org/issue39041
Automerge-Triggered-By: @zooba
---
.github/workflows/coverage.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index cb05e8e2f71..e8b47b390e5 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -64,7 +64,7 @@ jobs:
|| true
- name: 'Publish code coverage results'
run: |
- ./.venv/bin/python -m coverage xml
+ source ./.venv/bin/activate
bash <(curl -s https://codecov.io/bash)
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
From 24bcefcb74231476b055bb6f0726642abeb10f04 Mon Sep 17 00:00:00 2001
From: YoSTEALTH <35307184+YoSTEALTH@users.noreply.github.com>
Date: Mon, 6 Jan 2020 16:04:43 -0600
Subject: [PATCH 071/380] bpo-39234: `enum.auto()` default initial value as 1
(GH-17878)
Updated as Eric mentioned "By default, the initial value starts at 1"
https://bugs.python.org/issue39234
Automerge-Triggered-By: @ericvsmith
---
Doc/library/enum.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Doc/library/enum.rst b/Doc/library/enum.rst
index cfe3c207e1e..eaf29cfde23 100644
--- a/Doc/library/enum.rst
+++ b/Doc/library/enum.rst
@@ -55,7 +55,7 @@ helper, :class:`auto`.
.. class:: auto
- Instances are replaced with an appropriate value for Enum members. Initial value starts at 1.
+ Instances are replaced with an appropriate value for Enum members. By default, the initial value starts at 1.
.. versionadded:: 3.6 ``Flag``, ``IntFlag``, ``auto``
From f4800b8ed3dbe15a0078869a836d968ab3362b8c Mon Sep 17 00:00:00 2001
From: Inada Naoki
Date: Tue, 7 Jan 2020 15:52:44 +0900
Subject: [PATCH 072/380] Doc: Change Python 2 status to EOL. (GH-17885)
---
Doc/tools/templates/indexsidebar.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Doc/tools/templates/indexsidebar.html b/Doc/tools/templates/indexsidebar.html
index c51dcc7582e..4730a5fe5db 100644
--- a/Doc/tools/templates/indexsidebar.html
+++ b/Doc/tools/templates/indexsidebar.html
@@ -7,7 +7,7 @@
{% trans %}Python 3.7 (stable){% endtrans %}
{% trans %}Python 3.6 (security-fixes){% endtrans %}
{% trans %}Python 3.5 (security-fixes){% endtrans %}
- {% trans %}Python 2.7 (stable){% endtrans %}
+ {% trans %}Python 2.7 (EOL){% endtrans %}
{% trans %}All versions{% endtrans %}
From ca94677a6216e2d41b04574986ce49d31a0b329c Mon Sep 17 00:00:00 2001
From: Inada Naoki
Date: Tue, 7 Jan 2020 16:58:40 +0900
Subject: [PATCH 073/380] bpo-38623: Doc: Add section for site module CLI.
(GH-17858)
---
Doc/library/site.rst | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/Doc/library/site.rst b/Doc/library/site.rst
index e1ca160c107..b424e1ba348 100644
--- a/Doc/library/site.rst
+++ b/Doc/library/site.rst
@@ -236,6 +236,13 @@ Module contents
.. versionadded:: 3.2
+.. _site-commandline:
+
+Command Line Interface
+----------------------
+
+.. program:: site
+
The :mod:`site` module also provides a way to get the user directories from the
command line:
@@ -244,8 +251,6 @@ command line:
$ python3 -m site --user-site
/home/user/.local/lib/python3.3/site-packages
-.. program:: site
-
If it is called without arguments, it will print the contents of
:data:`sys.path` on the standard output, followed by the value of
:data:`USER_BASE` and whether the directory exists, then the same thing for
From 10ac0cded26d91c3468e5e5a87cecad7fc0bcebd Mon Sep 17 00:00:00 2001
From: Andrew Svetlov
Date: Tue, 7 Jan 2020 15:23:01 +0200
Subject: [PATCH 074/380] bpo-39191: Fix RuntimeWarning in asyncio test
(GH-17863)
https://bugs.python.org/issue39191
---
Lib/asyncio/base_events.py | 6 +++---
Lib/test/test_asyncio/test_events.py | 8 ++++++--
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py
index e53ca738034..d78724b0153 100644
--- a/Lib/asyncio/base_events.py
+++ b/Lib/asyncio/base_events.py
@@ -573,7 +573,7 @@ class BaseEventLoop(events.AbstractEventLoop):
except Exception as ex:
self.call_soon_threadsafe(future.set_exception, ex)
- def _check_runnung(self):
+ def _check_running(self):
if self.is_running():
raise RuntimeError('This event loop is already running')
if events._get_running_loop() is not None:
@@ -583,7 +583,7 @@ class BaseEventLoop(events.AbstractEventLoop):
def run_forever(self):
"""Run until stop() is called."""
self._check_closed()
- self._check_runnung()
+ self._check_running()
self._set_coroutine_origin_tracking(self._debug)
self._thread_id = threading.get_ident()
@@ -615,7 +615,7 @@ class BaseEventLoop(events.AbstractEventLoop):
Return the Future's result, or raise its exception.
"""
self._check_closed()
- self._check_runnung()
+ self._check_running()
new_task = not futures.isfuture(future)
future = tasks.ensure_future(future, loop=self)
diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py
index 4cbd1ed4712..4bdf82ef175 100644
--- a/Lib/test/test_asyncio/test_events.py
+++ b/Lib/test/test_asyncio/test_events.py
@@ -259,8 +259,12 @@ class EventLoopTestsMixin:
self.assertTrue(self.loop.is_running())
self.loop.run_until_complete(coro1())
- self.assertRaises(
- RuntimeError, self.loop.run_until_complete, coro2())
+ with self.assertWarnsRegex(
+ RuntimeWarning,
+ r"coroutine \S+ was never awaited"
+ ):
+ self.assertRaises(
+ RuntimeError, self.loop.run_until_complete, coro2())
# Note: because of the default Windows timing granularity of
# 15.6 msec, we use fairly long sleep times here (~100 msec).
From 5b23f7618d434f3000bde482233c8642a6eb2c67 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Tue, 7 Jan 2020 15:00:02 +0100
Subject: [PATCH 075/380] bpo-39239: epoll.unregister() no longer ignores EBADF
(GH-17882)
The select.epoll.unregister() method no longer ignores the EBADF
error.
---
Doc/library/select.rst | 3 +++
Doc/whatsnew/3.9.rst | 4 ++++
Lib/test/test_epoll.py | 5 ++++-
.../next/Library/2020-01-07-01-02-44.bpo-39239.r7vecs.rst | 2 ++
Modules/selectmodule.c | 5 -----
5 files changed, 13 insertions(+), 6 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-07-01-02-44.bpo-39239.r7vecs.rst
diff --git a/Doc/library/select.rst b/Doc/library/select.rst
index 8f5a2cea925..bb2809580d0 100644
--- a/Doc/library/select.rst
+++ b/Doc/library/select.rst
@@ -355,6 +355,9 @@ Edge and Level Trigger Polling (epoll) Objects
Remove a registered file descriptor from the epoll object.
+ .. versionchanged:: 3.9
+ The method no longer ignores the :data:`~errno.EBADF` error.
+
.. method:: epoll.poll(timeout=None, maxevents=-1)
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index ff0fc24f317..46774c28c6a 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -382,6 +382,10 @@ Changes in the Python API
* The :mod:`venv` activation scripts no longer special-case when
``__VENV_PROMPT__`` is set to ``""``.
+* The :meth:`select.epoll.unregister` method no longer ignores the
+ :data:`~errno.EBADF` error.
+ (Contributed by Victor Stinner in :issue:`39239`.)
+
CPython bytecode changes
------------------------
diff --git a/Lib/test/test_epoll.py b/Lib/test/test_epoll.py
index 8ac0f31d805..10f148fe5cd 100644
--- a/Lib/test/test_epoll.py
+++ b/Lib/test/test_epoll.py
@@ -225,7 +225,10 @@ class TestEPoll(unittest.TestCase):
self.assertFalse(then - now > 0.01)
server.close()
- ep.unregister(fd)
+
+ with self.assertRaises(OSError) as cm:
+ ep.unregister(fd)
+ self.assertEqual(cm.exception.errno, errno.EBADF)
def test_close(self):
open_file = open(__file__, "rb")
diff --git a/Misc/NEWS.d/next/Library/2020-01-07-01-02-44.bpo-39239.r7vecs.rst b/Misc/NEWS.d/next/Library/2020-01-07-01-02-44.bpo-39239.r7vecs.rst
new file mode 100644
index 00000000000..2a1c9290869
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-07-01-02-44.bpo-39239.r7vecs.rst
@@ -0,0 +1,2 @@
+The :meth:`select.epoll.unregister` method no longer ignores the
+:data:`~errno.EBADF` error.
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index 79cc1b26555..7c6d7e4a15e 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -1447,11 +1447,6 @@ pyepoll_internal_ctl(int epfd, int op, int fd, unsigned int events)
* though this argument is ignored. */
Py_BEGIN_ALLOW_THREADS
result = epoll_ctl(epfd, op, fd, &ev);
- if (errno == EBADF) {
- /* fd already closed */
- result = 0;
- errno = 0;
- }
Py_END_ALLOW_THREADS
break;
default:
From 950c6795aa0ffa85e103a13e7a04e08cb34c66ad Mon Sep 17 00:00:00 2001
From: Derek Brown
Date: Tue, 7 Jan 2020 08:40:23 -0800
Subject: [PATCH 076/380] bpo-39198: Ensure logging global lock is released on
exception in isEnabledFor (GH-17689)
---
Lib/logging/__init__.py | 15 +++++++++------
.../2020-01-02-20-21-03.bpo-39198.nzwGyG.rst | 1 +
2 files changed, 10 insertions(+), 6 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-02-20-21-03.bpo-39198.nzwGyG.rst
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
index 62a87a71b1a..59d5fa5b64d 100644
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -1687,12 +1687,15 @@ class Logger(Filterer):
return self._cache[level]
except KeyError:
_acquireLock()
- if self.manager.disable >= level:
- is_enabled = self._cache[level] = False
- else:
- is_enabled = self._cache[level] = level >= self.getEffectiveLevel()
- _releaseLock()
-
+ try:
+ if self.manager.disable >= level:
+ is_enabled = self._cache[level] = False
+ else:
+ is_enabled = self._cache[level] = (
+ level >= self.getEffectiveLevel()
+ )
+ finally:
+ _releaseLock()
return is_enabled
def getChild(self, suffix):
diff --git a/Misc/NEWS.d/next/Library/2020-01-02-20-21-03.bpo-39198.nzwGyG.rst b/Misc/NEWS.d/next/Library/2020-01-02-20-21-03.bpo-39198.nzwGyG.rst
new file mode 100644
index 00000000000..ec4e81e2bbe
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-02-20-21-03.bpo-39198.nzwGyG.rst
@@ -0,0 +1 @@
+If an exception were to be thrown in `Logger.isEnabledFor` (say, by asyncio timeouts or stopit) , the `logging` global lock may not be released appropriately, resulting in deadlock. This change wraps that block of code with `try...finally` to ensure the lock is released.
\ No newline at end of file
From 13a7ee8d62dafe7d2291708312fa2a86e171c7fa Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Wed, 8 Jan 2020 02:28:10 +0900
Subject: [PATCH 077/380] bpo-38615: Add timeout parameter for IMAP4 and
IMAP4_SSL constructor (GH-17203)
imaplib.IMAP4 and imaplib.IMAP4_SSL now have an
optional *timeout* parameter for their constructors.
Also, the imaplib.IMAP4.open() method now has an optional *timeout* parameter
with this change. The overridden methods of imaplib.IMAP4_SSL and
imaplib.IMAP4_stream were applied to this change.
---
Doc/library/imaplib.rst | 37 ++++++++++++-----
Doc/whatsnew/3.9.rst | 10 +++++
Lib/imaplib.py | 40 ++++++++++++-------
Lib/test/test_imaplib.py | 23 +++++++++++
.../2019-11-17-17-32-35.bpo-38615.OVyaNX.rst | 5 +++
5 files changed, 90 insertions(+), 25 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2019-11-17-17-32-35.bpo-38615.OVyaNX.rst
diff --git a/Doc/library/imaplib.rst b/Doc/library/imaplib.rst
index df63d820cfe..5b8ca7ce68f 100644
--- a/Doc/library/imaplib.rst
+++ b/Doc/library/imaplib.rst
@@ -30,12 +30,14 @@ Three classes are provided by the :mod:`imaplib` module, :class:`IMAP4` is the
base class:
-.. class:: IMAP4(host='', port=IMAP4_PORT)
+.. class:: IMAP4(host='', port=IMAP4_PORT, timeout=None)
This class implements the actual IMAP4 protocol. The connection is created and
protocol version (IMAP4 or IMAP4rev1) is determined when the instance is
initialized. If *host* is not specified, ``''`` (the local host) is used. If
- *port* is omitted, the standard IMAP4 port (143) is used.
+ *port* is omitted, the standard IMAP4 port (143) is used. The optional *timeout*
+ parameter specifies a timeout in seconds for the connection attempt.
+ If timeout is not given or is None, the global default socket timeout is used.
The :class:`IMAP4` class supports the :keyword:`with` statement. When used
like this, the IMAP4 ``LOGOUT`` command is issued automatically when the
@@ -50,6 +52,9 @@ base class:
.. versionchanged:: 3.5
Support for the :keyword:`with` statement was added.
+ .. versionchanged:: 3.9
+ The optional *timeout* parameter was added.
+
Three exceptions are defined as attributes of the :class:`IMAP4` class:
@@ -78,7 +83,7 @@ There's also a subclass for secure connections:
.. class:: IMAP4_SSL(host='', port=IMAP4_SSL_PORT, keyfile=None, \
- certfile=None, ssl_context=None)
+ certfile=None, ssl_context=None, timeout=None)
This is a subclass derived from :class:`IMAP4` that connects over an SSL
encrypted socket (to use this class you need a socket module that was compiled
@@ -95,8 +100,12 @@ There's also a subclass for secure connections:
mutually exclusive with *ssl_context*, a :class:`ValueError` is raised
if *keyfile*/*certfile* is provided along with *ssl_context*.
+ The optional *timeout* parameter specifies a timeout in seconds for the
+ connection attempt. If timeout is not given or is None, the global default
+ socket timeout is used.
+
.. versionchanged:: 3.3
- *ssl_context* parameter added.
+ *ssl_context* parameter was added.
.. versionchanged:: 3.4
The class now supports hostname check with
@@ -110,6 +119,8 @@ There's also a subclass for secure connections:
:func:`ssl.create_default_context` select the system's trusted CA
certificates for you.
+ .. versionchanged:: 3.9
+ The optional *timeout* parameter was added.
The second subclass allows for connections created by a child process:
@@ -353,16 +364,22 @@ An :class:`IMAP4` instance has the following methods:
Send ``NOOP`` to server.
-.. method:: IMAP4.open(host, port)
+.. method:: IMAP4.open(host, port, timeout=None)
- Opens socket to *port* at *host*. This method is implicitly called by
- the :class:`IMAP4` constructor. The connection objects established by this
- method will be used in the :meth:`IMAP4.read`, :meth:`IMAP4.readline`,
- :meth:`IMAP4.send`, and :meth:`IMAP4.shutdown` methods. You may override
- this method.
+ Opens socket to *port* at *host*. The optional *timeout* parameter
+ specifies a timeout in seconds for the connection attempt.
+ If timeout is not given or is None, the global default socket timeout
+ is used. Also note that if the *timeout* parameter is set to be zero,
+ it will raise a :class:`ValueError` to reject creating a non-blocking socket.
+ This method is implicitly called by the :class:`IMAP4` constructor.
+ The connection objects established by this method will be used in
+ the :meth:`IMAP4.read`, :meth:`IMAP4.readline`, :meth:`IMAP4.send`,
+ and :meth:`IMAP4.shutdown` methods. You may override this method.
.. audit-event:: imaplib.open self,host,port imaplib.IMAP4.open
+ .. versionchanged:: 3.9
+ The *timeout* parameter was added.
.. method:: IMAP4.partial(message_num, message_part, start, length)
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 46774c28c6a..ea6d8f515a9 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -167,6 +167,16 @@ When the garbage collector makes a collection in which some objects resurrect
been executed), do not block the collection of all objects that are still
unreachable. (Contributed by Pablo Galindo and Tim Peters in :issue:`38379`.)
+imaplib
+-------
+
+:class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have
+an optional *timeout* parameter for their constructors.
+Also, the :meth:`~imaplib.IMAP4.open` method now has an optional *timeout* parameter
+with this change. The overridden methods of :class:`~imaplib.IMAP4_SSL` and
+:class:`~imaplib.IMAP4_stream` were applied to this change.
+(Contributed by Dong-hee Na in :issue:`38615`.)
+
os
--
diff --git a/Lib/imaplib.py b/Lib/imaplib.py
index a4f499383ef..abfdd737779 100644
--- a/Lib/imaplib.py
+++ b/Lib/imaplib.py
@@ -135,10 +135,13 @@ class IMAP4:
r"""IMAP4 client class.
- Instantiate with: IMAP4([host[, port]])
+ Instantiate with: IMAP4([host[, port[, timeout=None]]])
host - host's name (default: localhost);
port - port number (default: standard IMAP4 port).
+ timeout - socket timeout (default: None)
+ If timeout is not given or is None,
+ the global default socket timeout is used
All IMAP4rev1 commands are supported by methods of the same
name (in lower-case).
@@ -181,7 +184,7 @@ class IMAP4:
class abort(error): pass # Service errors - close and retry
class readonly(abort): pass # Mailbox status changed to READ-ONLY
- def __init__(self, host='', port=IMAP4_PORT):
+ def __init__(self, host='', port=IMAP4_PORT, timeout=None):
self.debug = Debug
self.state = 'LOGOUT'
self.literal = None # A literal argument to a command
@@ -195,7 +198,7 @@ class IMAP4:
# Open socket to server.
- self.open(host, port)
+ self.open(host, port, timeout)
try:
self._connect()
@@ -284,15 +287,20 @@ class IMAP4:
# Overridable methods
- def _create_socket(self):
+ def _create_socket(self, timeout):
# Default value of IMAP4.host is '', but socket.getaddrinfo()
# (which is used by socket.create_connection()) expects None
# as a default value for host.
+ if timeout is not None and not timeout:
+ raise ValueError('Non-blocking socket (timeout=0) is not supported')
host = None if not self.host else self.host
sys.audit("imaplib.open", self, self.host, self.port)
- return socket.create_connection((host, self.port))
+ address = (host, self.port)
+ if timeout is not None:
+ return socket.create_connection(address, timeout)
+ return socket.create_connection(address)
- def open(self, host = '', port = IMAP4_PORT):
+ def open(self, host='', port=IMAP4_PORT, timeout=None):
"""Setup connection to remote server on "host:port"
(default: localhost:standard IMAP4 port).
This connection will be used by the routines:
@@ -300,7 +308,7 @@ class IMAP4:
"""
self.host = host
self.port = port
- self.sock = self._create_socket()
+ self.sock = self._create_socket(timeout)
self.file = self.sock.makefile('rb')
@@ -1261,7 +1269,7 @@ if HAVE_SSL:
"""IMAP4 client class over SSL connection
- Instantiate with: IMAP4_SSL([host[, port[, keyfile[, certfile[, ssl_context]]]]])
+ Instantiate with: IMAP4_SSL([host[, port[, keyfile[, certfile[, ssl_context[, timeout=None]]]]]])
host - host's name (default: localhost);
port - port number (default: standard IMAP4 SSL port);
@@ -1271,13 +1279,15 @@ if HAVE_SSL:
and private key (default: None)
Note: if ssl_context is provided, then parameters keyfile or
certfile should not be set otherwise ValueError is raised.
+ timeout - socket timeout (default: None) If timeout is not given or is None,
+ the global default socket timeout is used
for more documentation see the docstring of the parent class IMAP4.
"""
def __init__(self, host='', port=IMAP4_SSL_PORT, keyfile=None,
- certfile=None, ssl_context=None):
+ certfile=None, ssl_context=None, timeout=None):
if ssl_context is not None and keyfile is not None:
raise ValueError("ssl_context and keyfile arguments are mutually "
"exclusive")
@@ -1294,20 +1304,20 @@ if HAVE_SSL:
ssl_context = ssl._create_stdlib_context(certfile=certfile,
keyfile=keyfile)
self.ssl_context = ssl_context
- IMAP4.__init__(self, host, port)
+ IMAP4.__init__(self, host, port, timeout)
- def _create_socket(self):
- sock = IMAP4._create_socket(self)
+ def _create_socket(self, timeout):
+ sock = IMAP4._create_socket(self, timeout)
return self.ssl_context.wrap_socket(sock,
server_hostname=self.host)
- def open(self, host='', port=IMAP4_SSL_PORT):
+ def open(self, host='', port=IMAP4_SSL_PORT, timeout=None):
"""Setup connection to remote server on "host:port".
(default: localhost:standard IMAP4 SSL port).
This connection will be used by the routines:
read, readline, send, shutdown.
"""
- IMAP4.open(self, host, port)
+ IMAP4.open(self, host, port, timeout)
__all__.append("IMAP4_SSL")
@@ -1329,7 +1339,7 @@ class IMAP4_stream(IMAP4):
IMAP4.__init__(self)
- def open(self, host = None, port = None):
+ def open(self, host=None, port=None, timeout=None):
"""Setup a stream connection.
This connection will be used by the routines:
read, readline, send, shutdown.
diff --git a/Lib/test/test_imaplib.py b/Lib/test/test_imaplib.py
index 795276e0a7a..91aa77126a2 100644
--- a/Lib/test/test_imaplib.py
+++ b/Lib/test/test_imaplib.py
@@ -440,6 +440,29 @@ class NewIMAPTestsMixin():
with self.imap_class(*server.server_address):
pass
+ def test_imaplib_timeout_test(self):
+ _, server = self._setup(SimpleIMAPHandler)
+ addr = server.server_address[1]
+ client = self.imap_class("localhost", addr, timeout=None)
+ self.assertEqual(client.sock.timeout, None)
+ client.shutdown()
+ client = self.imap_class("localhost", addr, timeout=support.LOOPBACK_TIMEOUT)
+ self.assertEqual(client.sock.timeout, support.LOOPBACK_TIMEOUT)
+ client.shutdown()
+ with self.assertRaises(ValueError):
+ client = self.imap_class("localhost", addr, timeout=0)
+
+ def test_imaplib_timeout_functionality_test(self):
+ class TimeoutHandler(SimpleIMAPHandler):
+ def handle(self):
+ time.sleep(1)
+ SimpleIMAPHandler.handle(self)
+
+ _, server = self._setup(TimeoutHandler)
+ addr = server.server_address[1]
+ with self.assertRaises(socket.timeout):
+ client = self.imap_class("localhost", addr, timeout=0.001)
+
def test_with_statement(self):
_, server = self._setup(SimpleIMAPHandler, connect=False)
with self.imap_class(*server.server_address) as imap:
diff --git a/Misc/NEWS.d/next/Library/2019-11-17-17-32-35.bpo-38615.OVyaNX.rst b/Misc/NEWS.d/next/Library/2019-11-17-17-32-35.bpo-38615.OVyaNX.rst
new file mode 100644
index 00000000000..04f51da0db7
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-11-17-17-32-35.bpo-38615.OVyaNX.rst
@@ -0,0 +1,5 @@
+:class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have an
+optional *timeout* parameter for their constructors.
+Also, the :meth:`~imaplib.IMAP4.open` method now has an optional *timeout* parameter
+with this change. The overridden methods of :class:`~imaplib.IMAP4_SSL` and
+:class:`~imaplib.IMAP4_stream` were applied to this change. Patch by Dong-hee Na.
From b821173b5458d137c8d5edb6e9b4997aac800a38 Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Wed, 8 Jan 2020 02:30:55 +0900
Subject: [PATCH 078/380] bpo-38871: Fix lib2to3 for filter-based statements
that contain lambda (GH-17780)
Correctly parenthesize filter-based statements that contain lambda
expressions in lib2to3.
---
Lib/lib2to3/fixes/fix_filter.py | 10 +++++++---
Lib/lib2to3/tests/test_fixers.py | 5 +++++
.../Library/2020-01-01-18-44-52.bpo-38871.3EEOLg.rst | 2 ++
3 files changed, 14 insertions(+), 3 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-01-18-44-52.bpo-38871.3EEOLg.rst
diff --git a/Lib/lib2to3/fixes/fix_filter.py b/Lib/lib2to3/fixes/fix_filter.py
index a7a5a154f6f..38e9078f11a 100644
--- a/Lib/lib2to3/fixes/fix_filter.py
+++ b/Lib/lib2to3/fixes/fix_filter.py
@@ -17,7 +17,7 @@ Python 2.6 figure it out.
from .. import fixer_base
from ..pytree import Node
from ..pygram import python_symbols as syms
-from ..fixer_util import Name, ArgList, ListComp, in_special_context
+from ..fixer_util import Name, ArgList, ListComp, in_special_context, parenthesize
class FixFilter(fixer_base.ConditionalFix):
@@ -65,10 +65,14 @@ class FixFilter(fixer_base.ConditionalFix):
trailers.append(t.clone())
if "filter_lambda" in results:
+ xp = results.get("xp").clone()
+ if xp.type == syms.test:
+ xp.prefix = ""
+ xp = parenthesize(xp)
+
new = ListComp(results.get("fp").clone(),
results.get("fp").clone(),
- results.get("it").clone(),
- results.get("xp").clone())
+ results.get("it").clone(), xp)
new = Node(syms.power, [new] + trailers, prefix="")
elif "none" in results:
diff --git a/Lib/lib2to3/tests/test_fixers.py b/Lib/lib2to3/tests/test_fixers.py
index 3da5dd845c9..a2852419818 100644
--- a/Lib/lib2to3/tests/test_fixers.py
+++ b/Lib/lib2to3/tests/test_fixers.py
@@ -2954,6 +2954,11 @@ class Test_filter(FixerTestCase):
a = """x = [x for x in range(10) if x%2 == 0]"""
self.check(b, a)
+ # bpo-38871
+ b = """filter(lambda x: True if x > 2 else False, [1, 2, 3])"""
+ a = """[x for x in [1, 2, 3] if (True if x > 2 else False)]"""
+ self.check(b, a)
+
def test_filter_trailers(self):
b = """x = filter(None, 'abc')[0]"""
a = """x = [_f for _f in 'abc' if _f][0]"""
diff --git a/Misc/NEWS.d/next/Library/2020-01-01-18-44-52.bpo-38871.3EEOLg.rst b/Misc/NEWS.d/next/Library/2020-01-01-18-44-52.bpo-38871.3EEOLg.rst
new file mode 100644
index 00000000000..fe970fd9e3f
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-01-18-44-52.bpo-38871.3EEOLg.rst
@@ -0,0 +1,2 @@
+Correctly parenthesize filter-based statements that contain lambda
+expressions in mod:`lib2to3`. Patch by Dong-hee Na.
From 998c54948a29cf5bd8bfa49f973f1ce5855004a0 Mon Sep 17 00:00:00 2001
From: Alex Henrie
Date: Wed, 8 Jan 2020 12:52:44 +0000
Subject: [PATCH 079/380] bpo-39237, datetime: Remove redundant call to round
from delta_new (GH-17877)
---
Modules/_datetimemodule.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c
index c1b24073436..0b98cca67d4 100644
--- a/Modules/_datetimemodule.c
+++ b/Modules/_datetimemodule.c
@@ -2489,7 +2489,6 @@ delta_new(PyTypeObject *type, PyObject *args, PyObject *kw)
int x_is_odd;
PyObject *temp;
- whole_us = round(leftover_us);
if (fabs(whole_us - leftover_us) == 0.5) {
/* We're exactly halfway between two integers. In order
* to do round-half-to-even, we must determine whether x
From 9a669d58e8cb586fba38c84d5b631cd8a95d0c0c Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Wed, 8 Jan 2020 13:00:14 +0000
Subject: [PATCH 080/380] bpo-39233: Update positional-only section in the
glossary (GH-17874)
https://bugs.python.org/issue39233
---
Doc/glossary.rst | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/Doc/glossary.rst b/Doc/glossary.rst
index 9ce0357f1cb..6189cb04504 100644
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -824,9 +824,11 @@ Glossary
.. _positional-only_parameter:
* :dfn:`positional-only`: specifies an argument that can be supplied only
- by position. Python has no syntax for defining positional-only
- parameters. However, some built-in functions have positional-only
- parameters (e.g. :func:`abs`).
+ by position. Positional-only parameters can be defined by including a
+ ``/`` character in the parameter list of the function definition after
+ them, for example *posonly1* and *posonly2* in the following::
+
+ def func(posonly1, posonly2, /, positional_or_keyword): ...
.. _keyword-only_parameter:
From 2e6a8efa837410327b593dc83c57492253b1201e Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Thu, 9 Jan 2020 00:29:34 +0900
Subject: [PATCH 081/380] bpo-39242: Updated the Gmane domain into
news.gmane.io (GH-17903)
---
Doc/library/nntplib.rst | 8 ++++----
Lib/nntplib.py | 2 +-
Lib/test/test_nntplib.py | 4 ++--
.../next/Library/2020-01-08-23-25-27.bpo-39242.bnL65N.rst | 3 +++
4 files changed, 10 insertions(+), 7 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-08-23-25-27.bpo-39242.bnL65N.rst
diff --git a/Doc/library/nntplib.rst b/Doc/library/nntplib.rst
index 46f1c078355..e8480b54807 100644
--- a/Doc/library/nntplib.rst
+++ b/Doc/library/nntplib.rst
@@ -20,7 +20,7 @@ as well as the older :rfc:`977` and :rfc:`2980`.
Here are two small examples of how it can be used. To list some statistics
about a newsgroup and print the subjects of the last 10 articles::
- >>> s = nntplib.NNTP('news.gmane.org')
+ >>> s = nntplib.NNTP('news.gmane.io')
>>> resp, count, first, last, name = s.group('gmane.comp.python.committers')
>>> print('Group', name, 'has', count, 'articles, range', first, 'to', last)
Group gmane.comp.python.committers has 1096 articles, range 1 to 1096
@@ -44,7 +44,7 @@ about a newsgroup and print the subjects of the last 10 articles::
To post an article from a binary file (this assumes that the article has valid
headers, and that you have right to post on the particular newsgroup)::
- >>> s = nntplib.NNTP('news.gmane.org')
+ >>> s = nntplib.NNTP('news.gmane.io')
>>> f = open('article.txt', 'rb')
>>> s.post(f)
'240 Article posted successfully.'
@@ -73,7 +73,7 @@ The module itself defines the following classes:
connection when done, e.g.:
>>> from nntplib import NNTP
- >>> with NNTP('news.gmane.org') as n:
+ >>> with NNTP('news.gmane.io') as n:
... n.group('gmane.comp.python.committers')
... # doctest: +SKIP
('211 1755 1 1755 gmane.comp.python.committers', 1755, 1, 1755, 'gmane.comp.python.committers')
@@ -225,7 +225,7 @@ tuples or objects that the method normally returns will be empty.
of values. On legacy servers which don't understand the ``CAPABILITIES``
command, an empty dictionary is returned instead.
- >>> s = NNTP('news.gmane.org')
+ >>> s = NNTP('news.gmane.io')
>>> 'POST' in s.getcapabilities()
True
diff --git a/Lib/nntplib.py b/Lib/nntplib.py
index 1b7e83af01a..9036f361b5f 100644
--- a/Lib/nntplib.py
+++ b/Lib/nntplib.py
@@ -1107,7 +1107,7 @@ if __name__ == '__main__':
nntplib built-in demo - display the latest articles in a newsgroup""")
parser.add_argument('-g', '--group', default='gmane.comp.python.general',
help='group to fetch messages from (default: %(default)s)')
- parser.add_argument('-s', '--server', default='news.gmane.org',
+ parser.add_argument('-s', '--server', default='news.gmane.io',
help='NNTP server hostname (default: %(default)s)')
parser.add_argument('-p', '--port', default=-1, type=int,
help='NNTP port number (default: %s / %s)' % (NNTP_PORT, NNTP_SSL_PORT))
diff --git a/Lib/test/test_nntplib.py b/Lib/test/test_nntplib.py
index daa4a7945c1..88c54f4e6f3 100644
--- a/Lib/test/test_nntplib.py
+++ b/Lib/test/test_nntplib.py
@@ -639,7 +639,7 @@ class NNTPv1Handler:
"\tSat, 19 Jun 2010 18:04:08 -0400"
"\t<4FD05F05-F98B-44DC-8111-C6009C925F0C@gmail.com>"
"\t\t7103\t16"
- "\tXref: news.gmane.org gmane.comp.python.authors:57"
+ "\tXref: news.gmane.io gmane.comp.python.authors:57"
"\n"
"58\tLooking for a few good bloggers"
"\tDoug Hellmann "
@@ -1125,7 +1125,7 @@ class NNTPv1v2TestsMixin:
"references": "",
":bytes": "7103",
":lines": "16",
- "xref": "news.gmane.org gmane.comp.python.authors:57"
+ "xref": "news.gmane.io gmane.comp.python.authors:57"
})
art_num, over = overviews[1]
self.assertEqual(over["xref"], None)
diff --git a/Misc/NEWS.d/next/Library/2020-01-08-23-25-27.bpo-39242.bnL65N.rst b/Misc/NEWS.d/next/Library/2020-01-08-23-25-27.bpo-39242.bnL65N.rst
new file mode 100644
index 00000000000..a87dddf81dc
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-08-23-25-27.bpo-39242.bnL65N.rst
@@ -0,0 +1,3 @@
+Updated the Gmane domain from news.gmane.org to news.gmane.io
+which is used for examples of :class:`~nntplib.NNTP` news reader server and
+nntplib tests.
From 5907e61a8d4da6d0f11bf1062d6d17484560a15e Mon Sep 17 00:00:00 2001
From: An Long
Date: Thu, 9 Jan 2020 02:28:14 +0800
Subject: [PATCH 082/380] bpo-35292: Avoid calling mimetypes.init when
http.server is imported (GH-17822)
---
Doc/library/http.server.rst | 9 +++++---
Lib/http/server.py | 23 ++++++++-----------
.../2020-01-08-14-39-19.bpo-35292.ihRT1z.rst | 1 +
3 files changed, 17 insertions(+), 16 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-08-14-39-19.bpo-35292.ihRT1z.rst
diff --git a/Doc/library/http.server.rst b/Doc/library/http.server.rst
index 5173decb2b2..478a5b31475 100644
--- a/Doc/library/http.server.rst
+++ b/Doc/library/http.server.rst
@@ -335,11 +335,14 @@ provides three different variants:
.. attribute:: extensions_map
- A dictionary mapping suffixes into MIME types. The default is
- signified by an empty string, and is considered to be
- ``application/octet-stream``. The mapping is used case-insensitively,
+ A dictionary mapping suffixes into MIME types, contains custom overrides
+ for the default system mappings. The mapping is used case-insensitively,
and so should contain only lower-cased keys.
+ .. versionchanged:: 3.9
+ This dictionary is no longer filled with the default system mappings,
+ but only contains overrides.
+
.. attribute:: directory
If not specified, the directory to serve is the current working directory.
diff --git a/Lib/http/server.py b/Lib/http/server.py
index c6e5ed6ea0e..2d74b95586c 100644
--- a/Lib/http/server.py
+++ b/Lib/http/server.py
@@ -639,6 +639,12 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
"""
server_version = "SimpleHTTP/" + __version__
+ extensions_map = _encodings_map_default = {
+ '.gz': 'application/gzip',
+ '.Z': 'application/octet-stream',
+ '.bz2': 'application/x-bzip2',
+ '.xz': 'application/x-xz',
+ }
def __init__(self, *args, directory=None, **kwargs):
if directory is None:
@@ -866,25 +872,16 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
slow) to look inside the data to make a better guess.
"""
-
base, ext = posixpath.splitext(path)
if ext in self.extensions_map:
return self.extensions_map[ext]
ext = ext.lower()
if ext in self.extensions_map:
return self.extensions_map[ext]
- else:
- return self.extensions_map['']
-
- if not mimetypes.inited:
- mimetypes.init() # try to read system mime.types
- extensions_map = mimetypes.types_map.copy()
- extensions_map.update({
- '': 'application/octet-stream', # Default
- '.py': 'text/plain',
- '.c': 'text/plain',
- '.h': 'text/plain',
- })
+ guess, _ = mimetypes.guess_type(path)
+ if guess:
+ return guess
+ return 'application/octet-stream'
# Utilities for CGIHTTPRequestHandler
diff --git a/Misc/NEWS.d/next/Library/2020-01-08-14-39-19.bpo-35292.ihRT1z.rst b/Misc/NEWS.d/next/Library/2020-01-08-14-39-19.bpo-35292.ihRT1z.rst
new file mode 100644
index 00000000000..ae52f970d0b
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-08-14-39-19.bpo-35292.ihRT1z.rst
@@ -0,0 +1 @@
+Proxy the `SimpleHTTPRequestHandler.guess_type` to `mimetypes.guess_type` so the `mimetypes.init` is called lazily to avoid unnecessary costs when :mod:`http.server` module is imported.
\ No newline at end of file
From f3a0a6bbccfcd9d18afe5575617aefaee9fa37a5 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Wed, 8 Jan 2020 21:03:45 +0100
Subject: [PATCH 083/380] Py_DECREF: only pass filename if Py_REF_DEBUG is
defined (GH-17870)
Filename and line numbers are not needed when Py_REF_DEBUG are not
defined.
The static inline _Py_DECREF() function was introduced by
commit 2aaf0c12041bcaadd7f2cc5a54450eefd7a6ff12.
---
Include/object.h | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/Include/object.h b/Include/object.h
index a9d434b5108..7a5f57357b7 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -461,11 +461,12 @@ static inline void _Py_INCREF(PyObject *op)
#define Py_INCREF(op) _Py_INCREF(_PyObject_CAST(op))
-static inline void _Py_DECREF(const char *filename, int lineno,
- PyObject *op)
+static inline void _Py_DECREF(
+#ifdef Py_REF_DEBUG
+ const char *filename, int lineno,
+#endif
+ PyObject *op)
{
- (void)filename; /* may be unused, shut up -Wunused-parameter */
- (void)lineno; /* may be unused, shut up -Wunused-parameter */
_Py_DEC_REFTOTAL;
if (--op->ob_refcnt != 0) {
#ifdef Py_REF_DEBUG
@@ -479,7 +480,11 @@ static inline void _Py_DECREF(const char *filename, int lineno,
}
}
-#define Py_DECREF(op) _Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op))
+#ifdef Py_REF_DEBUG
+# define Py_DECREF(op) _Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op))
+#else
+# define Py_DECREF(op) _Py_DECREF(_PyObject_CAST(op))
+#endif
/* Safely decref `op` and set `op` to NULL, especially useful in tp_clear
From 2c7ed417a4c758f1c3f97fcbca70a49f79e58c07 Mon Sep 17 00:00:00 2001
From: Alex Henrie
Date: Thu, 9 Jan 2020 02:46:55 +0000
Subject: [PATCH 084/380] closes bpo-39261: Remove dead assignment from
pyinit_config. (GH-17907)
---
Python/pylifecycle.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 94bbbdb560e..1d9dff4ce80 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -749,7 +749,6 @@ pyinit_config(_PyRuntimeState *runtime,
if (_PyStatus_EXCEPTION(status)) {
return status;
}
- config = &tstate->interp->config;
*tstate_p = tstate;
status = pycore_interp_init(tstate);
From 5cae042f686cc174e00093944dc118914c874b7c Mon Sep 17 00:00:00 2001
From: Alex Henrie
Date: Thu, 9 Jan 2020 02:48:52 +0000
Subject: [PATCH 085/380] closes bpo-39262: Use specific out-of-memory message
in _sharedexception_bind. (GH-17908)
---
Modules/_xxsubinterpretersmodule.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/Modules/_xxsubinterpretersmodule.c b/Modules/_xxsubinterpretersmodule.c
index 4a6ffdd3266..fa20bc5dcec 100644
--- a/Modules/_xxsubinterpretersmodule.c
+++ b/Modules/_xxsubinterpretersmodule.c
@@ -221,8 +221,9 @@ _sharedexception_bind(PyObject *exctype, PyObject *exc, PyObject *tb)
if (err->name == NULL) {
if (PyErr_ExceptionMatches(PyExc_MemoryError)) {
failure = "out of memory copying exception type name";
+ } else {
+ failure = "unable to encode and copy exception type name";
}
- failure = "unable to encode and copy exception type name";
goto finally;
}
@@ -237,8 +238,9 @@ _sharedexception_bind(PyObject *exctype, PyObject *exc, PyObject *tb)
if (err->msg == NULL) {
if (PyErr_ExceptionMatches(PyExc_MemoryError)) {
failure = "out of memory copying exception message";
+ } else {
+ failure = "unable to encode and copy exception message";
}
- failure = "unable to encode and copy exception message";
goto finally;
}
}
From 1a183faccbe5c32c367dbced721a25c1444dc5c1 Mon Sep 17 00:00:00 2001
From: Alex Henrie
Date: Thu, 9 Jan 2020 06:27:52 +0000
Subject: [PATCH 086/380] bpo-39271: Remove dead assignment from pattern_subx
(GH-17915)
---
Modules/_sre.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/Modules/_sre.c b/Modules/_sre.c
index f4f9d01dfcc..6518e98f04e 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -1002,7 +1002,6 @@ pattern_subx(PatternObject* self, PyObject* ptemplate, PyObject* string,
int literal;
view.buf = NULL;
ptr = getstring(ptemplate, &n, &isbytes, &charsize, &view);
- b = charsize;
if (ptr) {
if (charsize == 1)
literal = memchr(ptr, '\\', n) == NULL;
From a1c1be24cb3ae25b5b53e9dc94d6327009626283 Mon Sep 17 00:00:00 2001
From: Alex Henrie
Date: Thu, 9 Jan 2020 09:12:12 +0000
Subject: [PATCH 087/380] bpo-39272: Remove dead assignment from
_ssl__SSLContext_load_verify_locations_impl (GH-17916)
---
Modules/_ssl.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index 43b236c2121..a0d34b34baa 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -4223,7 +4223,6 @@ _ssl__SSLContext_load_verify_locations_impl(PySSLContext *self,
r = SSL_CTX_load_verify_locations(self->ctx, cafile_buf, capath_buf);
PySSL_END_ALLOW_THREADS
if (r != 1) {
- ok = 0;
if (errno != 0) {
ERR_clear_error();
PyErr_SetFromErrno(PyExc_OSError);
From f3e5e9566989635225d1b91088888074fc260817 Mon Sep 17 00:00:00 2001
From: Alex Henrie
Date: Thu, 9 Jan 2020 09:14:11 +0000
Subject: [PATCH 088/380] bpo-39270: Remove dead assignment from
config_init_module_search_paths (GH-17914)
---
Python/pathconfig.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/Python/pathconfig.c b/Python/pathconfig.c
index 6abc648769f..e37b5612366 100644
--- a/Python/pathconfig.c
+++ b/Python/pathconfig.c
@@ -240,9 +240,8 @@ config_init_module_search_paths(PyConfig *config, _PyPathConfig *pathconfig)
const wchar_t *sys_path = pathconfig->module_search_path;
const wchar_t delim = DELIM;
- const wchar_t *p = sys_path;
while (1) {
- p = wcschr(sys_path, delim);
+ const wchar_t *p = wcschr(sys_path, delim);
if (p == NULL) {
p = sys_path + wcslen(sys_path); /* End of string */
}
From 6c5d661342d12f6836580b0e75e3569c764527ae Mon Sep 17 00:00:00 2001
From: Petr Viktorin
Date: Thu, 9 Jan 2020 13:05:18 +0100
Subject: [PATCH 089/380] bpo-39161: Document multi-phase init modules under
Py_NewInterpreter() (GH-17896)
\+ this also adds a stronger warning against sharing objects between (sub-)interpreters.
https://bugs.python.org/issue39161
---
Doc/c-api/init.rst | 52 +++++++++++++++++++++++++++++++---------------
1 file changed, 35 insertions(+), 17 deletions(-)
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index 38879373829..8913dbfe249 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -1230,15 +1230,31 @@ function. You can create and destroy them using the following functions:
single: Py_FinalizeEx()
single: Py_Initialize()
- Extension modules are shared between (sub-)interpreters as follows: the first
- time a particular extension is imported, it is initialized normally, and a
- (shallow) copy of its module's dictionary is squirreled away. When the same
- extension is imported by another (sub-)interpreter, a new module is initialized
- and filled with the contents of this copy; the extension's ``init`` function is
- not called. Note that this is different from what happens when an extension is
- imported after the interpreter has been completely re-initialized by calling
- :c:func:`Py_FinalizeEx` and :c:func:`Py_Initialize`; in that case, the extension's
- ``initmodule`` function *is* called again.
+ Extension modules are shared between (sub-)interpreters as follows:
+
+ * For modules using multi-phase initialization,
+ e.g. :c:func:`PyModule_FromDefAndSpec`, a separate module object is
+ created and initialized for each interpreter.
+ Only C-level static and global variables are shared between these
+ module objects.
+
+ * For modules using single-phase initialization,
+ e.g. :c:func:`PyModule_Create`, the first time a particular extension
+ is imported, it is initialized normally, and a (shallow) copy of its
+ module's dictionary is squirreled away.
+ When the same extension is imported by another (sub-)interpreter, a new
+ module is initialized and filled with the contents of this copy; the
+ extension's ``init`` function is not called.
+ Objects in the module's dictionary thus end up shared across
+ (sub-)interpreters, which might cause unwanted behavior (see
+ `Bugs and caveats`_ below).
+
+ Note that this is different from what happens when an extension is
+ imported after the interpreter has been completely re-initialized by
+ calling :c:func:`Py_FinalizeEx` and :c:func:`Py_Initialize`; in that
+ case, the extension's ``initmodule`` function *is* called again.
+ As with multi-phase initialization, this means that only C-level static
+ and global variables are shared between these modules.
.. index:: single: close() (in module os)
@@ -1264,14 +1280,16 @@ process, the insulation between them isn't perfect --- for example, using
low-level file operations like :func:`os.close` they can
(accidentally or maliciously) affect each other's open files. Because of the
way extensions are shared between (sub-)interpreters, some extensions may not
-work properly; this is especially likely when the extension makes use of
-(static) global variables, or when the extension manipulates its module's
-dictionary after its initialization. It is possible to insert objects created
-in one sub-interpreter into a namespace of another sub-interpreter; this should
-be done with great care to avoid sharing user-defined functions, methods,
-instances or classes between sub-interpreters, since import operations executed
-by such objects may affect the wrong (sub-)interpreter's dictionary of loaded
-modules.
+work properly; this is especially likely when using single-phase initialization
+or (static) global variables.
+It is possible to insert objects created in one sub-interpreter into
+a namespace of another (sub-)interpreter; this should be avoided if possible.
+
+Special care should be taken to avoid sharing user-defined functions,
+methods, instances or classes between sub-interpreters, since import
+operations executed by such objects may affect the wrong (sub-)interpreter's
+dictionary of loaded modules. It is equally important to avoid sharing
+objects from which the above are reachable.
Also note that combining this functionality with :c:func:`PyGILState_\*` APIs
is delicate, because these APIs assume a bijection between Python thread states
From eef1b027ab70704bcaa60a089e4ae1592c504b86 Mon Sep 17 00:00:00 2001
From: Karthikeyan Singaravelan
Date: Thu, 9 Jan 2020 19:11:46 +0530
Subject: [PATCH 090/380] Add test cases for dataclasses. (#17909)
* Add test cases for dataclasses.
* Add test for repr output of field.
* Add test for ValueError to be raised when both default and default_factory are passed.
---
Lib/test/test_dataclasses.py | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/Lib/test/test_dataclasses.py b/Lib/test/test_dataclasses.py
index 8f9fb2ce8c1..e8fe455fc19 100644
--- a/Lib/test/test_dataclasses.py
+++ b/Lib/test/test_dataclasses.py
@@ -45,6 +45,25 @@ class TestCase(unittest.TestCase):
o = C(42)
self.assertEqual(o.x, 42)
+ def test_field_default_default_factory_error(self):
+ msg = "cannot specify both default and default_factory"
+ with self.assertRaisesRegex(ValueError, msg):
+ @dataclass
+ class C:
+ x: int = field(default=1, default_factory=int)
+
+ def test_field_repr(self):
+ int_field = field(default=1, init=True, repr=False)
+ int_field.name = "id"
+ repr_output = repr(int_field)
+ expected_output = "Field(name='id',type=None," \
+ f"default=1,default_factory={MISSING!r}," \
+ "init=True,repr=False,hash=None," \
+ "compare=True,metadata=mappingproxy({})," \
+ "_field_type=None)"
+
+ self.assertEqual(repr_output, expected_output)
+
def test_named_init_params(self):
@dataclass
class C:
From ed367815eeb9329c48a86a8a7fa3186e27a10f2c Mon Sep 17 00:00:00 2001
From: Steve Dower
Date: Thu, 9 Jan 2020 09:00:29 -0800
Subject: [PATCH 091/380] bpo-25172: Reduce scope of crypt import tests
(GH-17881)
---
Lib/test/test_crypt.py | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/Lib/test/test_crypt.py b/Lib/test/test_crypt.py
index d29e005fdad..5dc83b4ecbf 100644
--- a/Lib/test/test_crypt.py
+++ b/Lib/test/test_crypt.py
@@ -6,20 +6,21 @@ try:
import crypt
IMPORT_ERROR = None
except ImportError as ex:
+ if sys.platform != 'win32':
+ raise unittest.SkipTest(str(ex))
crypt = None
IMPORT_ERROR = str(ex)
-@unittest.skipIf(crypt, 'This should only run on windows')
+@unittest.skipUnless(sys.platform == 'win32', 'This should only run on windows')
+@unittest.skipIf(crypt, 'import succeeded')
class TestWhyCryptDidNotImport(unittest.TestCase):
- def test_failure_only_for_windows(self):
- self.assertEqual(sys.platform, 'win32')
def test_import_failure_message(self):
self.assertIn('not supported', IMPORT_ERROR)
-@unittest.skipUnless(crypt, 'Not supported on Windows')
+@unittest.skipUnless(crypt, 'crypt module is required')
class CryptTestCase(unittest.TestCase):
def test_crypt(self):
From 2f65aa465865930f8364645b1466d2751c4086d3 Mon Sep 17 00:00:00 2001
From: Daniel Hahler
Date: Thu, 9 Jan 2020 18:07:32 +0100
Subject: [PATCH 092/380] Fix typo in test's docstring (GH-17856)
* Fix typo in test's docstring. contination -> continuation.
---
Lib/test/test_eof.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Lib/test/test_eof.py b/Lib/test/test_eof.py
index a091ceaa25b..9ef8eb11874 100644
--- a/Lib/test/test_eof.py
+++ b/Lib/test/test_eof.py
@@ -27,7 +27,7 @@ class EOFTestCase(unittest.TestCase):
raise support.TestFailed
def test_line_continuation_EOF(self):
- """A contination at the end of input must be an error; bpo2180."""
+ """A continuation at the end of input must be an error; bpo2180."""
expect = 'unexpected EOF while parsing (, line 1)'
with self.assertRaises(SyntaxError) as excinfo:
exec('x = 5\\')
From a796d8ef9dd1af65f7e4d7a857b56f35b7cb6e78 Mon Sep 17 00:00:00 2001
From: Guido van Rossum
Date: Thu, 9 Jan 2020 11:18:47 -0800
Subject: [PATCH 093/380] bpo-39235: Fix end location for genexp in call args
(GH-17925)
The fix changes copy_location() to require an extra node from which to extract the end location, and fixing all 5 call sites.
https://bugs.python.org/issue39235
---
.../2020-01-09-10-01-18.bpo-39235.RYwjoc.rst | 2 ++
Python/ast.c | 16 ++++++++--------
2 files changed, 10 insertions(+), 8 deletions(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-09-10-01-18.bpo-39235.RYwjoc.rst
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-09-10-01-18.bpo-39235.RYwjoc.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-09-10-01-18.bpo-39235.RYwjoc.rst
new file mode 100644
index 00000000000..5fb0d45356b
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-09-10-01-18.bpo-39235.RYwjoc.rst
@@ -0,0 +1,2 @@
+Fix AST end location for lone generator expression in function call, e.g.
+f(i for i in a).
diff --git a/Python/ast.c b/Python/ast.c
index d5113f8e413..9c48d71d154 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -1028,13 +1028,13 @@ forbidden_name(struct compiling *c, identifier name, const node *n,
}
static expr_ty
-copy_location(expr_ty e, const node *n)
+copy_location(expr_ty e, const node *n, const node *end)
{
if (e) {
e->lineno = LINENO(n);
e->col_offset = n->n_col_offset;
- e->end_lineno = n->n_end_lineno;
- e->end_col_offset = n->n_end_col_offset;
+ e->end_lineno = end->n_end_lineno;
+ e->end_col_offset = end->n_end_col_offset;
}
return e;
}
@@ -2464,10 +2464,10 @@ ast_for_atom(struct compiling *c, const node *n)
}
if (TYPE(CHILD(ch, 1)) == comp_for) {
- return copy_location(ast_for_genexp(c, ch), n);
+ return copy_location(ast_for_genexp(c, ch), n, n);
}
else {
- return copy_location(ast_for_testlist(c, ch), n);
+ return copy_location(ast_for_testlist(c, ch), n, n);
}
case LSQB: /* list (or list comprehension) */
ch = CHILD(n, 1);
@@ -2486,7 +2486,7 @@ ast_for_atom(struct compiling *c, const node *n)
n->n_end_lineno, n->n_end_col_offset, c->c_arena);
}
else {
- return copy_location(ast_for_listcomp(c, ch), n);
+ return copy_location(ast_for_listcomp(c, ch), n, n);
}
case LBRACE: {
/* dictorsetmaker: ( ((test ':' test | '**' test)
@@ -2527,7 +2527,7 @@ ast_for_atom(struct compiling *c, const node *n)
/* It's a dictionary display. */
res = ast_for_dictdisplay(c, ch);
}
- return copy_location(res, n);
+ return copy_location(res, n, n);
}
}
default:
@@ -3146,7 +3146,7 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func,
}
else if (TYPE(CHILD(ch, 1)) == comp_for) {
/* the lone generator expression */
- e = copy_location(ast_for_genexp(c, ch), maybegenbeg);
+ e = copy_location(ast_for_genexp(c, ch), maybegenbeg, closepar);
if (!e)
return NULL;
asdl_seq_SET(args, nargs++, e);
From 850a8856e120f8cba15e557a0e791f93b43d6989 Mon Sep 17 00:00:00 2001
From: Serhiy Storchaka
Date: Fri, 10 Jan 2020 10:12:55 +0200
Subject: [PATCH 094/380] bpo-39235: Check end_lineno and end_col_offset of AST
nodes. (GH-17926)
---
Lib/test/test_ast.py | 206 ++++++++++++++++++++++---------------------
1 file changed, 104 insertions(+), 102 deletions(-)
diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py
index 55b91cfa23b..aa0d214b8a6 100644
--- a/Lib/test/test_ast.py
+++ b/Lib/test/test_ast.py
@@ -17,6 +17,8 @@ def to_tuple(t):
result = [t.__class__.__name__]
if hasattr(t, 'lineno') and hasattr(t, 'col_offset'):
result.append((t.lineno, t.col_offset))
+ if hasattr(t, 'end_lineno') and hasattr(t, 'end_col_offset'):
+ result[-1] += (t.end_lineno, t.end_col_offset)
if t._fields is None:
return tuple(result)
for f in t._fields:
@@ -1846,111 +1848,111 @@ def main():
#### EVERYTHING BELOW IS GENERATED BY python Lib/test/test_ast.py -g #####
exec_results = [
-('Module', [('Expr', (1, 0), ('Constant', (1, 0), None, None))], []),
-('Module', [('Expr', (1, 0), ('Constant', (1, 0), 'module docstring', None))], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (1, 9))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], [], None, [], [], None, []), [('Expr', (1, 9), ('Constant', (1, 9), 'function docstring', None))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], [('arg', (1, 6), 'a', None, None)], None, [], [], None, []), [('Pass', (1, 10))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], [('arg', (1, 6), 'a', None, None)], None, [], [], None, [('Constant', (1, 8), 0, None)]), [('Pass', (1, 12))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], [], ('arg', (1, 7), 'args', None, None), [], [], None, []), [('Pass', (1, 14))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], [], None, [], [], ('arg', (1, 8), 'kwargs', None, None), []), [('Pass', (1, 17))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], [('arg', (1, 6), 'a', None, None), ('arg', (1, 9), 'b', None, None), ('arg', (1, 14), 'c', None, None), ('arg', (1, 22), 'd', None, None), ('arg', (1, 28), 'e', None, None)], ('arg', (1, 35), 'args', None, None), [('arg', (1, 41), 'f', None, None)], [('Constant', (1, 43), 42, None)], ('arg', (1, 49), 'kwargs', None, None), [('Constant', (1, 11), 1, None), ('Constant', (1, 16), None, None), ('List', (1, 24), [], ('Load',)), ('Dict', (1, 30), [], [])]), [('Expr', (1, 58), ('Constant', (1, 58), 'doc for f()', None))], [], None, None)], []),
-('Module', [('ClassDef', (1, 0), 'C', [], [], [('Pass', (1, 8))], [])], []),
-('Module', [('ClassDef', (1, 0), 'C', [], [], [('Expr', (1, 9), ('Constant', (1, 9), 'docstring for class C', None))], [])], []),
-('Module', [('ClassDef', (1, 0), 'C', [('Name', (1, 8), 'object', ('Load',))], [], [('Pass', (1, 17))], [])], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], [], None, [], [], None, []), [('Return', (1, 8), ('Constant', (1, 15), 1, None))], [], None, None)], []),
-('Module', [('Delete', (1, 0), [('Name', (1, 4), 'v', ('Del',))])], []),
-('Module', [('Assign', (1, 0), [('Name', (1, 0), 'v', ('Store',))], ('Constant', (1, 4), 1, None), None)], []),
-('Module', [('Assign', (1, 0), [('Tuple', (1, 0), [('Name', (1, 0), 'a', ('Store',)), ('Name', (1, 2), 'b', ('Store',))], ('Store',))], ('Name', (1, 6), 'c', ('Load',)), None)], []),
-('Module', [('Assign', (1, 0), [('Tuple', (1, 0), [('Name', (1, 1), 'a', ('Store',)), ('Name', (1, 3), 'b', ('Store',))], ('Store',))], ('Name', (1, 8), 'c', ('Load',)), None)], []),
-('Module', [('Assign', (1, 0), [('List', (1, 0), [('Name', (1, 1), 'a', ('Store',)), ('Name', (1, 3), 'b', ('Store',))], ('Store',))], ('Name', (1, 8), 'c', ('Load',)), None)], []),
-('Module', [('AugAssign', (1, 0), ('Name', (1, 0), 'v', ('Store',)), ('Add',), ('Constant', (1, 5), 1, None))], []),
-('Module', [('For', (1, 0), ('Name', (1, 4), 'v', ('Store',)), ('Name', (1, 9), 'v', ('Load',)), [('Pass', (1, 11))], [], None)], []),
-('Module', [('While', (1, 0), ('Name', (1, 6), 'v', ('Load',)), [('Pass', (1, 8))], [])], []),
-('Module', [('If', (1, 0), ('Name', (1, 3), 'v', ('Load',)), [('Pass', (1, 5))], [])], []),
-('Module', [('If', (1, 0), ('Name', (1, 3), 'a', ('Load',)), [('Pass', (2, 2))], [('If', (3, 0), ('Name', (3, 5), 'b', ('Load',)), [('Pass', (4, 2))], [])])], []),
-('Module', [('If', (1, 0), ('Name', (1, 3), 'a', ('Load',)), [('Pass', (2, 2))], [('If', (3, 0), ('Name', (3, 5), 'b', ('Load',)), [('Pass', (4, 2))], [('Pass', (6, 2))])])], []),
-('Module', [('With', (1, 0), [('withitem', ('Name', (1, 5), 'x', ('Load',)), ('Name', (1, 10), 'y', ('Store',)))], [('Pass', (1, 13))], None)], []),
-('Module', [('With', (1, 0), [('withitem', ('Name', (1, 5), 'x', ('Load',)), ('Name', (1, 10), 'y', ('Store',))), ('withitem', ('Name', (1, 13), 'z', ('Load',)), ('Name', (1, 18), 'q', ('Store',)))], [('Pass', (1, 21))], None)], []),
-('Module', [('Raise', (1, 0), ('Call', (1, 6), ('Name', (1, 6), 'Exception', ('Load',)), [('Constant', (1, 16), 'string', None)], []), None)], []),
-('Module', [('Try', (1, 0), [('Pass', (2, 2))], [('ExceptHandler', (3, 0), ('Name', (3, 7), 'Exception', ('Load',)), None, [('Pass', (4, 2))])], [], [])], []),
-('Module', [('Try', (1, 0), [('Pass', (2, 2))], [], [], [('Pass', (4, 2))])], []),
-('Module', [('Assert', (1, 0), ('Name', (1, 7), 'v', ('Load',)), None)], []),
-('Module', [('Import', (1, 0), [('alias', 'sys', None)])], []),
-('Module', [('ImportFrom', (1, 0), 'sys', [('alias', 'v', None)], 0)], []),
-('Module', [('Global', (1, 0), ['v'])], []),
-('Module', [('Expr', (1, 0), ('Constant', (1, 0), 1, None))], []),
-('Module', [('Pass', (1, 0))], []),
-('Module', [('For', (1, 0), ('Name', (1, 4), 'v', ('Store',)), ('Name', (1, 9), 'v', ('Load',)), [('Break', (1, 11))], [], None)], []),
-('Module', [('For', (1, 0), ('Name', (1, 4), 'v', ('Store',)), ('Name', (1, 9), 'v', ('Load',)), [('Continue', (1, 11))], [], None)], []),
-('Module', [('For', (1, 0), ('Tuple', (1, 4), [('Name', (1, 4), 'a', ('Store',)), ('Name', (1, 6), 'b', ('Store',))], ('Store',)), ('Name', (1, 11), 'c', ('Load',)), [('Pass', (1, 14))], [], None)], []),
-('Module', [('For', (1, 0), ('Tuple', (1, 4), [('Name', (1, 5), 'a', ('Store',)), ('Name', (1, 7), 'b', ('Store',))], ('Store',)), ('Name', (1, 13), 'c', ('Load',)), [('Pass', (1, 16))], [], None)], []),
-('Module', [('For', (1, 0), ('List', (1, 4), [('Name', (1, 5), 'a', ('Store',)), ('Name', (1, 7), 'b', ('Store',))], ('Store',)), ('Name', (1, 13), 'c', ('Load',)), [('Pass', (1, 16))], [], None)], []),
-('Module', [('Expr', (1, 0), ('GeneratorExp', (1, 0), ('Tuple', (2, 4), [('Name', (3, 4), 'Aa', ('Load',)), ('Name', (5, 7), 'Bb', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (8, 4), [('Name', (8, 4), 'Aa', ('Store',)), ('Name', (10, 4), 'Bb', ('Store',))], ('Store',)), ('Name', (10, 10), 'Cc', ('Load',)), [], 0)]))], []),
-('Module', [('Expr', (1, 0), ('DictComp', (1, 0), ('Name', (1, 1), 'a', ('Load',)), ('Name', (1, 5), 'b', ('Load',)), [('comprehension', ('Name', (1, 11), 'w', ('Store',)), ('Name', (1, 16), 'x', ('Load',)), [], 0), ('comprehension', ('Name', (1, 22), 'm', ('Store',)), ('Name', (1, 27), 'p', ('Load',)), [('Name', (1, 32), 'g', ('Load',))], 0)]))], []),
-('Module', [('Expr', (1, 0), ('DictComp', (1, 0), ('Name', (1, 1), 'a', ('Load',)), ('Name', (1, 5), 'b', ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 11), 'v', ('Store',)), ('Name', (1, 13), 'w', ('Store',))], ('Store',)), ('Name', (1, 18), 'x', ('Load',)), [], 0)]))], []),
-('Module', [('Expr', (1, 0), ('SetComp', (1, 0), ('Name', (1, 1), 'r', ('Load',)), [('comprehension', ('Name', (1, 7), 'l', ('Store',)), ('Name', (1, 12), 'x', ('Load',)), [('Name', (1, 17), 'g', ('Load',))], 0)]))], []),
-('Module', [('Expr', (1, 0), ('SetComp', (1, 0), ('Name', (1, 1), 'r', ('Load',)), [('comprehension', ('Tuple', (1, 7), [('Name', (1, 7), 'l', ('Store',)), ('Name', (1, 9), 'm', ('Store',))], ('Store',)), ('Name', (1, 14), 'x', ('Load',)), [], 0)]))], []),
-('Module', [('AsyncFunctionDef', (1, 0), 'f', ('arguments', [], [], None, [], [], None, []), [('Expr', (2, 1), ('Constant', (2, 1), 'async function', None)), ('Expr', (3, 1), ('Await', (3, 1), ('Call', (3, 7), ('Name', (3, 7), 'something', ('Load',)), [], [])))], [], None, None)], []),
-('Module', [('AsyncFunctionDef', (1, 0), 'f', ('arguments', [], [], None, [], [], None, []), [('AsyncFor', (2, 1), ('Name', (2, 11), 'e', ('Store',)), ('Name', (2, 16), 'i', ('Load',)), [('Expr', (2, 19), ('Constant', (2, 19), 1, None))], [('Expr', (3, 7), ('Constant', (3, 7), 2, None))], None)], [], None, None)], []),
-('Module', [('AsyncFunctionDef', (1, 0), 'f', ('arguments', [], [], None, [], [], None, []), [('AsyncWith', (2, 1), [('withitem', ('Name', (2, 12), 'a', ('Load',)), ('Name', (2, 17), 'b', ('Store',)))], [('Expr', (2, 20), ('Constant', (2, 20), 1, None))], None)], [], None, None)], []),
-('Module', [('Expr', (1, 0), ('Dict', (1, 0), [None, ('Constant', (1, 10), 2, None)], [('Dict', (1, 3), [('Constant', (1, 4), 1, None)], [('Constant', (1, 6), 2, None)]), ('Constant', (1, 12), 3, None)]))], []),
-('Module', [('Expr', (1, 0), ('Set', (1, 0), [('Starred', (1, 1), ('Set', (1, 2), [('Constant', (1, 3), 1, None), ('Constant', (1, 6), 2, None)]), ('Load',)), ('Constant', (1, 10), 3, None)]))], []),
-('Module', [('AsyncFunctionDef', (1, 0), 'f', ('arguments', [], [], None, [], [], None, []), [('Expr', (2, 1), ('ListComp', (2, 1), ('Name', (2, 2), 'i', ('Load',)), [('comprehension', ('Name', (2, 14), 'b', ('Store',)), ('Name', (2, 19), 'c', ('Load',)), [], 1)]))], [], None, None)], []),
-('Module', [('FunctionDef', (4, 0), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (4, 9))], [('Name', (1, 1), 'deco1', ('Load',)), ('Call', (2, 1), ('Name', (2, 1), 'deco2', ('Load',)), [], []), ('Call', (3, 1), ('Name', (3, 1), 'deco3', ('Load',)), [('Constant', (3, 7), 1, None)], [])], None, None)], []),
-('Module', [('AsyncFunctionDef', (4, 0), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (4, 15))], [('Name', (1, 1), 'deco1', ('Load',)), ('Call', (2, 1), ('Name', (2, 1), 'deco2', ('Load',)), [], []), ('Call', (3, 1), ('Name', (3, 1), 'deco3', ('Load',)), [('Constant', (3, 7), 1, None)], [])], None, None)], []),
-('Module', [('ClassDef', (4, 0), 'C', [], [], [('Pass', (4, 9))], [('Name', (1, 1), 'deco1', ('Load',)), ('Call', (2, 1), ('Name', (2, 1), 'deco2', ('Load',)), [], []), ('Call', (3, 1), ('Name', (3, 1), 'deco3', ('Load',)), [('Constant', (3, 7), 1, None)], [])])], []),
-('Module', [('FunctionDef', (2, 0), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (2, 9))], [('Call', (1, 1), ('Name', (1, 1), 'deco', ('Load',)), [('GeneratorExp', (1, 5), ('Name', (1, 6), 'a', ('Load',)), [('comprehension', ('Name', (1, 12), 'a', ('Store',)), ('Name', (1, 17), 'b', ('Load',)), [], 0)])], [])], None, None)], []),
-('Module', [('Expr', (1, 0), ('NamedExpr', (1, 1), ('Name', (1, 1), 'a', ('Store',)), ('Constant', (1, 6), 1, None)))], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None, None)], [], None, [], [], None, []), [('Pass', (1, 14))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None, None)], [('arg', (1, 12), 'c', None, None), ('arg', (1, 15), 'd', None, None), ('arg', (1, 18), 'e', None, None)], None, [], [], None, []), [('Pass', (1, 22))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None, None)], [('arg', (1, 12), 'c', None, None)], None, [('arg', (1, 18), 'd', None, None), ('arg', (1, 21), 'e', None, None)], [None, None], None, []), [('Pass', (1, 25))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None, None)], [('arg', (1, 12), 'c', None, None)], None, [('arg', (1, 18), 'd', None, None), ('arg', (1, 21), 'e', None, None)], [None, None], ('arg', (1, 26), 'kwargs', None, None), []), [('Pass', (1, 35))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None, None)], [], None, [], [], None, [('Constant', (1, 8), 1, None)]), [('Pass', (1, 16))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None, None)], [('arg', (1, 14), 'b', None, None), ('arg', (1, 19), 'c', None, None)], None, [], [], None, [('Constant', (1, 8), 1, None), ('Constant', (1, 16), 2, None), ('Constant', (1, 21), 4, None)]), [('Pass', (1, 25))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None, None)], [('arg', (1, 14), 'b', None, None)], None, [('arg', (1, 22), 'c', None, None)], [('Constant', (1, 24), 4, None)], None, [('Constant', (1, 8), 1, None), ('Constant', (1, 16), 2, None)]), [('Pass', (1, 28))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None, None)], [('arg', (1, 14), 'b', None, None)], None, [('arg', (1, 22), 'c', None, None)], [None], None, [('Constant', (1, 8), 1, None), ('Constant', (1, 16), 2, None)]), [('Pass', (1, 26))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None, None)], [('arg', (1, 14), 'b', None, None)], None, [('arg', (1, 22), 'c', None, None)], [('Constant', (1, 24), 4, None)], ('arg', (1, 29), 'kwargs', None, None), [('Constant', (1, 8), 1, None), ('Constant', (1, 16), 2, None)]), [('Pass', (1, 38))], [], None, None)], []),
-('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None, None)], [('arg', (1, 14), 'b', None, None)], None, [('arg', (1, 22), 'c', None, None)], [None], ('arg', (1, 27), 'kwargs', None, None), [('Constant', (1, 8), 1, None), ('Constant', (1, 16), 2, None)]), [('Pass', (1, 36))], [], None, None)], []),
+('Module', [('Expr', (1, 0, 1, 4), ('Constant', (1, 0, 1, 4), None, None))], []),
+('Module', [('Expr', (1, 0, 1, 18), ('Constant', (1, 0, 1, 18), 'module docstring', None))], []),
+('Module', [('FunctionDef', (1, 0, 1, 13), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (1, 9, 1, 13))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 29), 'f', ('arguments', [], [], None, [], [], None, []), [('Expr', (1, 9, 1, 29), ('Constant', (1, 9, 1, 29), 'function docstring', None))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 14), 'f', ('arguments', [], [('arg', (1, 6, 1, 7), 'a', None, None)], None, [], [], None, []), [('Pass', (1, 10, 1, 14))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 16), 'f', ('arguments', [], [('arg', (1, 6, 1, 7), 'a', None, None)], None, [], [], None, [('Constant', (1, 8, 1, 9), 0, None)]), [('Pass', (1, 12, 1, 16))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 18), 'f', ('arguments', [], [], ('arg', (1, 7, 1, 11), 'args', None, None), [], [], None, []), [('Pass', (1, 14, 1, 18))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 21), 'f', ('arguments', [], [], None, [], [], ('arg', (1, 8, 1, 14), 'kwargs', None, None), []), [('Pass', (1, 17, 1, 21))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 71), 'f', ('arguments', [], [('arg', (1, 6, 1, 7), 'a', None, None), ('arg', (1, 9, 1, 10), 'b', None, None), ('arg', (1, 14, 1, 15), 'c', None, None), ('arg', (1, 22, 1, 23), 'd', None, None), ('arg', (1, 28, 1, 29), 'e', None, None)], ('arg', (1, 35, 1, 39), 'args', None, None), [('arg', (1, 41, 1, 42), 'f', None, None)], [('Constant', (1, 43, 1, 45), 42, None)], ('arg', (1, 49, 1, 55), 'kwargs', None, None), [('Constant', (1, 11, 1, 12), 1, None), ('Constant', (1, 16, 1, 20), None, None), ('List', (1, 24, 1, 26), [], ('Load',)), ('Dict', (1, 30, 1, 32), [], [])]), [('Expr', (1, 58, 1, 71), ('Constant', (1, 58, 1, 71), 'doc for f()', None))], [], None, None)], []),
+('Module', [('ClassDef', (1, 0, 1, 12), 'C', [], [], [('Pass', (1, 8, 1, 12))], [])], []),
+('Module', [('ClassDef', (1, 0, 1, 32), 'C', [], [], [('Expr', (1, 9, 1, 32), ('Constant', (1, 9, 1, 32), 'docstring for class C', None))], [])], []),
+('Module', [('ClassDef', (1, 0, 1, 21), 'C', [('Name', (1, 8, 1, 14), 'object', ('Load',))], [], [('Pass', (1, 17, 1, 21))], [])], []),
+('Module', [('FunctionDef', (1, 0, 1, 16), 'f', ('arguments', [], [], None, [], [], None, []), [('Return', (1, 8, 1, 16), ('Constant', (1, 15, 1, 16), 1, None))], [], None, None)], []),
+('Module', [('Delete', (1, 0, 1, 5), [('Name', (1, 4, 1, 5), 'v', ('Del',))])], []),
+('Module', [('Assign', (1, 0, 1, 5), [('Name', (1, 0, 1, 1), 'v', ('Store',))], ('Constant', (1, 4, 1, 5), 1, None), None)], []),
+('Module', [('Assign', (1, 0, 1, 7), [('Tuple', (1, 0, 1, 3), [('Name', (1, 0, 1, 1), 'a', ('Store',)), ('Name', (1, 2, 1, 3), 'b', ('Store',))], ('Store',))], ('Name', (1, 6, 1, 7), 'c', ('Load',)), None)], []),
+('Module', [('Assign', (1, 0, 1, 9), [('Tuple', (1, 0, 1, 5), [('Name', (1, 1, 1, 2), 'a', ('Store',)), ('Name', (1, 3, 1, 4), 'b', ('Store',))], ('Store',))], ('Name', (1, 8, 1, 9), 'c', ('Load',)), None)], []),
+('Module', [('Assign', (1, 0, 1, 9), [('List', (1, 0, 1, 5), [('Name', (1, 1, 1, 2), 'a', ('Store',)), ('Name', (1, 3, 1, 4), 'b', ('Store',))], ('Store',))], ('Name', (1, 8, 1, 9), 'c', ('Load',)), None)], []),
+('Module', [('AugAssign', (1, 0, 1, 6), ('Name', (1, 0, 1, 1), 'v', ('Store',)), ('Add',), ('Constant', (1, 5, 1, 6), 1, None))], []),
+('Module', [('For', (1, 0, 1, 15), ('Name', (1, 4, 1, 5), 'v', ('Store',)), ('Name', (1, 9, 1, 10), 'v', ('Load',)), [('Pass', (1, 11, 1, 15))], [], None)], []),
+('Module', [('While', (1, 0, 1, 12), ('Name', (1, 6, 1, 7), 'v', ('Load',)), [('Pass', (1, 8, 1, 12))], [])], []),
+('Module', [('If', (1, 0, 1, 9), ('Name', (1, 3, 1, 4), 'v', ('Load',)), [('Pass', (1, 5, 1, 9))], [])], []),
+('Module', [('If', (1, 0, 4, 6), ('Name', (1, 3, 1, 4), 'a', ('Load',)), [('Pass', (2, 2, 2, 6))], [('If', (3, 0, 4, 6), ('Name', (3, 5, 3, 6), 'b', ('Load',)), [('Pass', (4, 2, 4, 6))], [])])], []),
+('Module', [('If', (1, 0, 6, 6), ('Name', (1, 3, 1, 4), 'a', ('Load',)), [('Pass', (2, 2, 2, 6))], [('If', (3, 0, 6, 6), ('Name', (3, 5, 3, 6), 'b', ('Load',)), [('Pass', (4, 2, 4, 6))], [('Pass', (6, 2, 6, 6))])])], []),
+('Module', [('With', (1, 0, 1, 17), [('withitem', ('Name', (1, 5, 1, 6), 'x', ('Load',)), ('Name', (1, 10, 1, 11), 'y', ('Store',)))], [('Pass', (1, 13, 1, 17))], None)], []),
+('Module', [('With', (1, 0, 1, 25), [('withitem', ('Name', (1, 5, 1, 6), 'x', ('Load',)), ('Name', (1, 10, 1, 11), 'y', ('Store',))), ('withitem', ('Name', (1, 13, 1, 14), 'z', ('Load',)), ('Name', (1, 18, 1, 19), 'q', ('Store',)))], [('Pass', (1, 21, 1, 25))], None)], []),
+('Module', [('Raise', (1, 0, 1, 25), ('Call', (1, 6, 1, 25), ('Name', (1, 6, 1, 15), 'Exception', ('Load',)), [('Constant', (1, 16, 1, 24), 'string', None)], []), None)], []),
+('Module', [('Try', (1, 0, 4, 6), [('Pass', (2, 2, 2, 6))], [('ExceptHandler', (3, 0, 4, 6), ('Name', (3, 7, 3, 16), 'Exception', ('Load',)), None, [('Pass', (4, 2, 4, 6))])], [], [])], []),
+('Module', [('Try', (1, 0, 4, 6), [('Pass', (2, 2, 2, 6))], [], [], [('Pass', (4, 2, 4, 6))])], []),
+('Module', [('Assert', (1, 0, 1, 8), ('Name', (1, 7, 1, 8), 'v', ('Load',)), None)], []),
+('Module', [('Import', (1, 0, 1, 10), [('alias', 'sys', None)])], []),
+('Module', [('ImportFrom', (1, 0, 1, 17), 'sys', [('alias', 'v', None)], 0)], []),
+('Module', [('Global', (1, 0, 1, 8), ['v'])], []),
+('Module', [('Expr', (1, 0, 1, 1), ('Constant', (1, 0, 1, 1), 1, None))], []),
+('Module', [('Pass', (1, 0, 1, 4))], []),
+('Module', [('For', (1, 0, 1, 16), ('Name', (1, 4, 1, 5), 'v', ('Store',)), ('Name', (1, 9, 1, 10), 'v', ('Load',)), [('Break', (1, 11, 1, 16))], [], None)], []),
+('Module', [('For', (1, 0, 1, 19), ('Name', (1, 4, 1, 5), 'v', ('Store',)), ('Name', (1, 9, 1, 10), 'v', ('Load',)), [('Continue', (1, 11, 1, 19))], [], None)], []),
+('Module', [('For', (1, 0, 1, 18), ('Tuple', (1, 4, 1, 7), [('Name', (1, 4, 1, 5), 'a', ('Store',)), ('Name', (1, 6, 1, 7), 'b', ('Store',))], ('Store',)), ('Name', (1, 11, 1, 12), 'c', ('Load',)), [('Pass', (1, 14, 1, 18))], [], None)], []),
+('Module', [('For', (1, 0, 1, 20), ('Tuple', (1, 4, 1, 9), [('Name', (1, 5, 1, 6), 'a', ('Store',)), ('Name', (1, 7, 1, 8), 'b', ('Store',))], ('Store',)), ('Name', (1, 13, 1, 14), 'c', ('Load',)), [('Pass', (1, 16, 1, 20))], [], None)], []),
+('Module', [('For', (1, 0, 1, 20), ('List', (1, 4, 1, 9), [('Name', (1, 5, 1, 6), 'a', ('Store',)), ('Name', (1, 7, 1, 8), 'b', ('Store',))], ('Store',)), ('Name', (1, 13, 1, 14), 'c', ('Load',)), [('Pass', (1, 16, 1, 20))], [], None)], []),
+('Module', [('Expr', (1, 0, 11, 5), ('GeneratorExp', (1, 0, 11, 5), ('Tuple', (2, 4, 6, 5), [('Name', (3, 4, 3, 6), 'Aa', ('Load',)), ('Name', (5, 7, 5, 9), 'Bb', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (8, 4, 10, 6), [('Name', (8, 4, 8, 6), 'Aa', ('Store',)), ('Name', (10, 4, 10, 6), 'Bb', ('Store',))], ('Store',)), ('Name', (10, 10, 10, 12), 'Cc', ('Load',)), [], 0)]))], []),
+('Module', [('Expr', (1, 0, 1, 34), ('DictComp', (1, 0, 1, 34), ('Name', (1, 1, 1, 2), 'a', ('Load',)), ('Name', (1, 5, 1, 6), 'b', ('Load',)), [('comprehension', ('Name', (1, 11, 1, 12), 'w', ('Store',)), ('Name', (1, 16, 1, 17), 'x', ('Load',)), [], 0), ('comprehension', ('Name', (1, 22, 1, 23), 'm', ('Store',)), ('Name', (1, 27, 1, 28), 'p', ('Load',)), [('Name', (1, 32, 1, 33), 'g', ('Load',))], 0)]))], []),
+('Module', [('Expr', (1, 0, 1, 20), ('DictComp', (1, 0, 1, 20), ('Name', (1, 1, 1, 2), 'a', ('Load',)), ('Name', (1, 5, 1, 6), 'b', ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 14), [('Name', (1, 11, 1, 12), 'v', ('Store',)), ('Name', (1, 13, 1, 14), 'w', ('Store',))], ('Store',)), ('Name', (1, 18, 1, 19), 'x', ('Load',)), [], 0)]))], []),
+('Module', [('Expr', (1, 0, 1, 19), ('SetComp', (1, 0, 1, 19), ('Name', (1, 1, 1, 2), 'r', ('Load',)), [('comprehension', ('Name', (1, 7, 1, 8), 'l', ('Store',)), ('Name', (1, 12, 1, 13), 'x', ('Load',)), [('Name', (1, 17, 1, 18), 'g', ('Load',))], 0)]))], []),
+('Module', [('Expr', (1, 0, 1, 16), ('SetComp', (1, 0, 1, 16), ('Name', (1, 1, 1, 2), 'r', ('Load',)), [('comprehension', ('Tuple', (1, 7, 1, 10), [('Name', (1, 7, 1, 8), 'l', ('Store',)), ('Name', (1, 9, 1, 10), 'm', ('Store',))], ('Store',)), ('Name', (1, 14, 1, 15), 'x', ('Load',)), [], 0)]))], []),
+('Module', [('AsyncFunctionDef', (1, 0, 3, 18), 'f', ('arguments', [], [], None, [], [], None, []), [('Expr', (2, 1, 2, 17), ('Constant', (2, 1, 2, 17), 'async function', None)), ('Expr', (3, 1, 3, 18), ('Await', (3, 1, 3, 18), ('Call', (3, 7, 3, 18), ('Name', (3, 7, 3, 16), 'something', ('Load',)), [], [])))], [], None, None)], []),
+('Module', [('AsyncFunctionDef', (1, 0, 3, 8), 'f', ('arguments', [], [], None, [], [], None, []), [('AsyncFor', (2, 1, 3, 8), ('Name', (2, 11, 2, 12), 'e', ('Store',)), ('Name', (2, 16, 2, 17), 'i', ('Load',)), [('Expr', (2, 19, 2, 20), ('Constant', (2, 19, 2, 20), 1, None))], [('Expr', (3, 7, 3, 8), ('Constant', (3, 7, 3, 8), 2, None))], None)], [], None, None)], []),
+('Module', [('AsyncFunctionDef', (1, 0, 2, 21), 'f', ('arguments', [], [], None, [], [], None, []), [('AsyncWith', (2, 1, 2, 21), [('withitem', ('Name', (2, 12, 2, 13), 'a', ('Load',)), ('Name', (2, 17, 2, 18), 'b', ('Store',)))], [('Expr', (2, 20, 2, 21), ('Constant', (2, 20, 2, 21), 1, None))], None)], [], None, None)], []),
+('Module', [('Expr', (1, 0, 1, 14), ('Dict', (1, 0, 1, 14), [None, ('Constant', (1, 10, 1, 11), 2, None)], [('Dict', (1, 3, 1, 8), [('Constant', (1, 4, 1, 5), 1, None)], [('Constant', (1, 6, 1, 7), 2, None)]), ('Constant', (1, 12, 1, 13), 3, None)]))], []),
+('Module', [('Expr', (1, 0, 1, 12), ('Set', (1, 0, 1, 12), [('Starred', (1, 1, 1, 8), ('Set', (1, 2, 1, 8), [('Constant', (1, 3, 1, 4), 1, None), ('Constant', (1, 6, 1, 7), 2, None)]), ('Load',)), ('Constant', (1, 10, 1, 11), 3, None)]))], []),
+('Module', [('AsyncFunctionDef', (1, 0, 2, 21), 'f', ('arguments', [], [], None, [], [], None, []), [('Expr', (2, 1, 2, 21), ('ListComp', (2, 1, 2, 21), ('Name', (2, 2, 2, 3), 'i', ('Load',)), [('comprehension', ('Name', (2, 14, 2, 15), 'b', ('Store',)), ('Name', (2, 19, 2, 20), 'c', ('Load',)), [], 1)]))], [], None, None)], []),
+('Module', [('FunctionDef', (4, 0, 4, 13), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (4, 9, 4, 13))], [('Name', (1, 1, 1, 6), 'deco1', ('Load',)), ('Call', (2, 1, 2, 8), ('Name', (2, 1, 2, 6), 'deco2', ('Load',)), [], []), ('Call', (3, 1, 3, 9), ('Name', (3, 1, 3, 6), 'deco3', ('Load',)), [('Constant', (3, 7, 3, 8), 1, None)], [])], None, None)], []),
+('Module', [('AsyncFunctionDef', (4, 0, 4, 19), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (4, 15, 4, 19))], [('Name', (1, 1, 1, 6), 'deco1', ('Load',)), ('Call', (2, 1, 2, 8), ('Name', (2, 1, 2, 6), 'deco2', ('Load',)), [], []), ('Call', (3, 1, 3, 9), ('Name', (3, 1, 3, 6), 'deco3', ('Load',)), [('Constant', (3, 7, 3, 8), 1, None)], [])], None, None)], []),
+('Module', [('ClassDef', (4, 0, 4, 13), 'C', [], [], [('Pass', (4, 9, 4, 13))], [('Name', (1, 1, 1, 6), 'deco1', ('Load',)), ('Call', (2, 1, 2, 8), ('Name', (2, 1, 2, 6), 'deco2', ('Load',)), [], []), ('Call', (3, 1, 3, 9), ('Name', (3, 1, 3, 6), 'deco3', ('Load',)), [('Constant', (3, 7, 3, 8), 1, None)], [])])], []),
+('Module', [('FunctionDef', (2, 0, 2, 13), 'f', ('arguments', [], [], None, [], [], None, []), [('Pass', (2, 9, 2, 13))], [('Call', (1, 1, 1, 19), ('Name', (1, 1, 1, 5), 'deco', ('Load',)), [('GeneratorExp', (1, 5, 1, 19), ('Name', (1, 6, 1, 7), 'a', ('Load',)), [('comprehension', ('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 17, 1, 18), 'b', ('Load',)), [], 0)])], [])], None, None)], []),
+('Module', [('Expr', (1, 0, 1, 8), ('NamedExpr', (1, 1, 1, 7), ('Name', (1, 1, 1, 2), 'a', ('Store',)), ('Constant', (1, 6, 1, 7), 1, None)))], []),
+('Module', [('FunctionDef', (1, 0, 1, 18), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [], None, [], [], None, []), [('Pass', (1, 14, 1, 18))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 26), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 12, 1, 13), 'c', None, None), ('arg', (1, 15, 1, 16), 'd', None, None), ('arg', (1, 18, 1, 19), 'e', None, None)], None, [], [], None, []), [('Pass', (1, 22, 1, 26))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 29), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 12, 1, 13), 'c', None, None)], None, [('arg', (1, 18, 1, 19), 'd', None, None), ('arg', (1, 21, 1, 22), 'e', None, None)], [None, None], None, []), [('Pass', (1, 25, 1, 29))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 39), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 12, 1, 13), 'c', None, None)], None, [('arg', (1, 18, 1, 19), 'd', None, None), ('arg', (1, 21, 1, 22), 'e', None, None)], [None, None], ('arg', (1, 26, 1, 32), 'kwargs', None, None), []), [('Pass', (1, 35, 1, 39))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 20), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [], None, [], [], None, [('Constant', (1, 8, 1, 9), 1, None)]), [('Pass', (1, 16, 1, 20))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 29), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 14, 1, 15), 'b', None, None), ('arg', (1, 19, 1, 20), 'c', None, None)], None, [], [], None, [('Constant', (1, 8, 1, 9), 1, None), ('Constant', (1, 16, 1, 17), 2, None), ('Constant', (1, 21, 1, 22), 4, None)]), [('Pass', (1, 25, 1, 29))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 32), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 14, 1, 15), 'b', None, None)], None, [('arg', (1, 22, 1, 23), 'c', None, None)], [('Constant', (1, 24, 1, 25), 4, None)], None, [('Constant', (1, 8, 1, 9), 1, None), ('Constant', (1, 16, 1, 17), 2, None)]), [('Pass', (1, 28, 1, 32))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 30), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 14, 1, 15), 'b', None, None)], None, [('arg', (1, 22, 1, 23), 'c', None, None)], [None], None, [('Constant', (1, 8, 1, 9), 1, None), ('Constant', (1, 16, 1, 17), 2, None)]), [('Pass', (1, 26, 1, 30))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 42), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 14, 1, 15), 'b', None, None)], None, [('arg', (1, 22, 1, 23), 'c', None, None)], [('Constant', (1, 24, 1, 25), 4, None)], ('arg', (1, 29, 1, 35), 'kwargs', None, None), [('Constant', (1, 8, 1, 9), 1, None), ('Constant', (1, 16, 1, 17), 2, None)]), [('Pass', (1, 38, 1, 42))], [], None, None)], []),
+('Module', [('FunctionDef', (1, 0, 1, 40), 'f', ('arguments', [('arg', (1, 6, 1, 7), 'a', None, None)], [('arg', (1, 14, 1, 15), 'b', None, None)], None, [('arg', (1, 22, 1, 23), 'c', None, None)], [None], ('arg', (1, 27, 1, 33), 'kwargs', None, None), [('Constant', (1, 8, 1, 9), 1, None), ('Constant', (1, 16, 1, 17), 2, None)]), [('Pass', (1, 36, 1, 40))], [], None, None)], []),
]
single_results = [
-('Interactive', [('Expr', (1, 0), ('BinOp', (1, 0), ('Constant', (1, 0), 1, None), ('Add',), ('Constant', (1, 2), 2, None)))]),
+('Interactive', [('Expr', (1, 0, 1, 3), ('BinOp', (1, 0, 1, 3), ('Constant', (1, 0, 1, 1), 1, None), ('Add',), ('Constant', (1, 2, 1, 3), 2, None)))]),
]
eval_results = [
-('Expression', ('Constant', (1, 0), None, None)),
-('Expression', ('BoolOp', (1, 0), ('And',), [('Name', (1, 0), 'a', ('Load',)), ('Name', (1, 6), 'b', ('Load',))])),
-('Expression', ('BinOp', (1, 0), ('Name', (1, 0), 'a', ('Load',)), ('Add',), ('Name', (1, 4), 'b', ('Load',)))),
-('Expression', ('UnaryOp', (1, 0), ('Not',), ('Name', (1, 4), 'v', ('Load',)))),
-('Expression', ('Lambda', (1, 0), ('arguments', [], [], None, [], [], None, []), ('Constant', (1, 7), None, None))),
-('Expression', ('Dict', (1, 0), [('Constant', (1, 2), 1, None)], [('Constant', (1, 4), 2, None)])),
-('Expression', ('Dict', (1, 0), [], [])),
-('Expression', ('Set', (1, 0), [('Constant', (1, 1), None, None)])),
-('Expression', ('Dict', (1, 0), [('Constant', (2, 6), 1, None)], [('Constant', (4, 10), 2, None)])),
-('Expression', ('ListComp', (1, 0), ('Name', (1, 1), 'a', ('Load',)), [('comprehension', ('Name', (1, 7), 'b', ('Store',)), ('Name', (1, 12), 'c', ('Load',)), [('Name', (1, 17), 'd', ('Load',))], 0)])),
-('Expression', ('GeneratorExp', (1, 0), ('Name', (1, 1), 'a', ('Load',)), [('comprehension', ('Name', (1, 7), 'b', ('Store',)), ('Name', (1, 12), 'c', ('Load',)), [('Name', (1, 17), 'd', ('Load',))], 0)])),
-('Expression', ('ListComp', (1, 0), ('Tuple', (1, 1), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 11), 'a', ('Store',)), ('Name', (1, 13), 'b', ('Store',))], ('Store',)), ('Name', (1, 18), 'c', ('Load',)), [], 0)])),
-('Expression', ('ListComp', (1, 0), ('Tuple', (1, 1), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 12), 'a', ('Store',)), ('Name', (1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 20), 'c', ('Load',)), [], 0)])),
-('Expression', ('ListComp', (1, 0), ('Tuple', (1, 1), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('List', (1, 11), [('Name', (1, 12), 'a', ('Store',)), ('Name', (1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 20), 'c', ('Load',)), [], 0)])),
-('Expression', ('SetComp', (1, 0), ('Tuple', (1, 1), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 11), 'a', ('Store',)), ('Name', (1, 13), 'b', ('Store',))], ('Store',)), ('Name', (1, 18), 'c', ('Load',)), [], 0)])),
-('Expression', ('SetComp', (1, 0), ('Tuple', (1, 1), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 12), 'a', ('Store',)), ('Name', (1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 20), 'c', ('Load',)), [], 0)])),
-('Expression', ('SetComp', (1, 0), ('Tuple', (1, 1), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('List', (1, 11), [('Name', (1, 12), 'a', ('Store',)), ('Name', (1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 20), 'c', ('Load',)), [], 0)])),
-('Expression', ('GeneratorExp', (1, 0), ('Tuple', (1, 1), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 11), 'a', ('Store',)), ('Name', (1, 13), 'b', ('Store',))], ('Store',)), ('Name', (1, 18), 'c', ('Load',)), [], 0)])),
-('Expression', ('GeneratorExp', (1, 0), ('Tuple', (1, 1), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 12), 'a', ('Store',)), ('Name', (1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 20), 'c', ('Load',)), [], 0)])),
-('Expression', ('GeneratorExp', (1, 0), ('Tuple', (1, 1), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('List', (1, 11), [('Name', (1, 12), 'a', ('Store',)), ('Name', (1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 20), 'c', ('Load',)), [], 0)])),
-('Expression', ('Compare', (1, 0), ('Constant', (1, 0), 1, None), [('Lt',), ('Lt',)], [('Constant', (1, 4), 2, None), ('Constant', (1, 8), 3, None)])),
-('Expression', ('Call', (1, 0), ('Name', (1, 0), 'f', ('Load',)), [('Constant', (1, 2), 1, None), ('Constant', (1, 4), 2, None), ('Starred', (1, 10), ('Name', (1, 11), 'd', ('Load',)), ('Load',))], [('keyword', 'c', ('Constant', (1, 8), 3, None)), ('keyword', None, ('Name', (1, 15), 'e', ('Load',)))])),
-('Expression', ('Call', (1, 0), ('Name', (1, 0), 'f', ('Load',)), [('Starred', (1, 2), ('List', (1, 3), [('Constant', (1, 4), 0, None), ('Constant', (1, 7), 1, None)], ('Load',)), ('Load',))], [])),
-('Expression', ('Call', (1, 0), ('Name', (1, 0), 'f', ('Load',)), [('GeneratorExp', (1, 1), ('Name', (1, 2), 'a', ('Load',)), [('comprehension', ('Name', (1, 8), 'a', ('Store',)), ('Name', (1, 13), 'b', ('Load',)), [], 0)])], [])),
-('Expression', ('Constant', (1, 0), 10, None)),
-('Expression', ('Constant', (1, 0), 'string', None)),
-('Expression', ('Attribute', (1, 0), ('Name', (1, 0), 'a', ('Load',)), 'b', ('Load',))),
-('Expression', ('Subscript', (1, 0), ('Name', (1, 0), 'a', ('Load',)), ('Slice', ('Name', (1, 2), 'b', ('Load',)), ('Name', (1, 4), 'c', ('Load',)), None), ('Load',))),
-('Expression', ('Name', (1, 0), 'v', ('Load',))),
-('Expression', ('List', (1, 0), [('Constant', (1, 1), 1, None), ('Constant', (1, 3), 2, None), ('Constant', (1, 5), 3, None)], ('Load',))),
-('Expression', ('List', (1, 0), [], ('Load',))),
-('Expression', ('Tuple', (1, 0), [('Constant', (1, 0), 1, None), ('Constant', (1, 2), 2, None), ('Constant', (1, 4), 3, None)], ('Load',))),
-('Expression', ('Tuple', (1, 0), [('Constant', (1, 1), 1, None), ('Constant', (1, 3), 2, None), ('Constant', (1, 5), 3, None)], ('Load',))),
-('Expression', ('Tuple', (1, 0), [], ('Load',))),
-('Expression', ('Call', (1, 0), ('Attribute', (1, 0), ('Attribute', (1, 0), ('Attribute', (1, 0), ('Name', (1, 0), 'a', ('Load',)), 'b', ('Load',)), 'c', ('Load',)), 'd', ('Load',)), [('Subscript', (1, 8), ('Attribute', (1, 8), ('Name', (1, 8), 'a', ('Load',)), 'b', ('Load',)), ('Slice', ('Constant', (1, 12), 1, None), ('Constant', (1, 14), 2, None), None), ('Load',))], [])),
+('Expression', ('Constant', (1, 0, 1, 4), None, None)),
+('Expression', ('BoolOp', (1, 0, 1, 7), ('And',), [('Name', (1, 0, 1, 1), 'a', ('Load',)), ('Name', (1, 6, 1, 7), 'b', ('Load',))])),
+('Expression', ('BinOp', (1, 0, 1, 5), ('Name', (1, 0, 1, 1), 'a', ('Load',)), ('Add',), ('Name', (1, 4, 1, 5), 'b', ('Load',)))),
+('Expression', ('UnaryOp', (1, 0, 1, 5), ('Not',), ('Name', (1, 4, 1, 5), 'v', ('Load',)))),
+('Expression', ('Lambda', (1, 0, 1, 11), ('arguments', [], [], None, [], [], None, []), ('Constant', (1, 7, 1, 11), None, None))),
+('Expression', ('Dict', (1, 0, 1, 7), [('Constant', (1, 2, 1, 3), 1, None)], [('Constant', (1, 4, 1, 5), 2, None)])),
+('Expression', ('Dict', (1, 0, 1, 2), [], [])),
+('Expression', ('Set', (1, 0, 1, 7), [('Constant', (1, 1, 1, 5), None, None)])),
+('Expression', ('Dict', (1, 0, 5, 6), [('Constant', (2, 6, 2, 7), 1, None)], [('Constant', (4, 10, 4, 11), 2, None)])),
+('Expression', ('ListComp', (1, 0, 1, 19), ('Name', (1, 1, 1, 2), 'a', ('Load',)), [('comprehension', ('Name', (1, 7, 1, 8), 'b', ('Store',)), ('Name', (1, 12, 1, 13), 'c', ('Load',)), [('Name', (1, 17, 1, 18), 'd', ('Load',))], 0)])),
+('Expression', ('GeneratorExp', (1, 0, 1, 19), ('Name', (1, 1, 1, 2), 'a', ('Load',)), [('comprehension', ('Name', (1, 7, 1, 8), 'b', ('Store',)), ('Name', (1, 12, 1, 13), 'c', ('Load',)), [('Name', (1, 17, 1, 18), 'd', ('Load',))], 0)])),
+('Expression', ('ListComp', (1, 0, 1, 20), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 14), [('Name', (1, 11, 1, 12), 'a', ('Store',)), ('Name', (1, 13, 1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 18, 1, 19), 'c', ('Load',)), [], 0)])),
+('Expression', ('ListComp', (1, 0, 1, 22), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 16), [('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 14, 1, 15), 'b', ('Store',))], ('Store',)), ('Name', (1, 20, 1, 21), 'c', ('Load',)), [], 0)])),
+('Expression', ('ListComp', (1, 0, 1, 22), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('List', (1, 11, 1, 16), [('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 14, 1, 15), 'b', ('Store',))], ('Store',)), ('Name', (1, 20, 1, 21), 'c', ('Load',)), [], 0)])),
+('Expression', ('SetComp', (1, 0, 1, 20), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 14), [('Name', (1, 11, 1, 12), 'a', ('Store',)), ('Name', (1, 13, 1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 18, 1, 19), 'c', ('Load',)), [], 0)])),
+('Expression', ('SetComp', (1, 0, 1, 22), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 16), [('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 14, 1, 15), 'b', ('Store',))], ('Store',)), ('Name', (1, 20, 1, 21), 'c', ('Load',)), [], 0)])),
+('Expression', ('SetComp', (1, 0, 1, 22), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('List', (1, 11, 1, 16), [('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 14, 1, 15), 'b', ('Store',))], ('Store',)), ('Name', (1, 20, 1, 21), 'c', ('Load',)), [], 0)])),
+('Expression', ('GeneratorExp', (1, 0, 1, 20), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 14), [('Name', (1, 11, 1, 12), 'a', ('Store',)), ('Name', (1, 13, 1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 18, 1, 19), 'c', ('Load',)), [], 0)])),
+('Expression', ('GeneratorExp', (1, 0, 1, 22), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11, 1, 16), [('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 14, 1, 15), 'b', ('Store',))], ('Store',)), ('Name', (1, 20, 1, 21), 'c', ('Load',)), [], 0)])),
+('Expression', ('GeneratorExp', (1, 0, 1, 22), ('Tuple', (1, 1, 1, 6), [('Name', (1, 2, 1, 3), 'a', ('Load',)), ('Name', (1, 4, 1, 5), 'b', ('Load',))], ('Load',)), [('comprehension', ('List', (1, 11, 1, 16), [('Name', (1, 12, 1, 13), 'a', ('Store',)), ('Name', (1, 14, 1, 15), 'b', ('Store',))], ('Store',)), ('Name', (1, 20, 1, 21), 'c', ('Load',)), [], 0)])),
+('Expression', ('Compare', (1, 0, 1, 9), ('Constant', (1, 0, 1, 1), 1, None), [('Lt',), ('Lt',)], [('Constant', (1, 4, 1, 5), 2, None), ('Constant', (1, 8, 1, 9), 3, None)])),
+('Expression', ('Call', (1, 0, 1, 17), ('Name', (1, 0, 1, 1), 'f', ('Load',)), [('Constant', (1, 2, 1, 3), 1, None), ('Constant', (1, 4, 1, 5), 2, None), ('Starred', (1, 10, 1, 12), ('Name', (1, 11, 1, 12), 'd', ('Load',)), ('Load',))], [('keyword', 'c', ('Constant', (1, 8, 1, 9), 3, None)), ('keyword', None, ('Name', (1, 15, 1, 16), 'e', ('Load',)))])),
+('Expression', ('Call', (1, 0, 1, 10), ('Name', (1, 0, 1, 1), 'f', ('Load',)), [('Starred', (1, 2, 1, 9), ('List', (1, 3, 1, 9), [('Constant', (1, 4, 1, 5), 0, None), ('Constant', (1, 7, 1, 8), 1, None)], ('Load',)), ('Load',))], [])),
+('Expression', ('Call', (1, 0, 1, 15), ('Name', (1, 0, 1, 1), 'f', ('Load',)), [('GeneratorExp', (1, 1, 1, 15), ('Name', (1, 2, 1, 3), 'a', ('Load',)), [('comprehension', ('Name', (1, 8, 1, 9), 'a', ('Store',)), ('Name', (1, 13, 1, 14), 'b', ('Load',)), [], 0)])], [])),
+('Expression', ('Constant', (1, 0, 1, 2), 10, None)),
+('Expression', ('Constant', (1, 0, 1, 8), 'string', None)),
+('Expression', ('Attribute', (1, 0, 1, 3), ('Name', (1, 0, 1, 1), 'a', ('Load',)), 'b', ('Load',))),
+('Expression', ('Subscript', (1, 0, 1, 6), ('Name', (1, 0, 1, 1), 'a', ('Load',)), ('Slice', ('Name', (1, 2, 1, 3), 'b', ('Load',)), ('Name', (1, 4, 1, 5), 'c', ('Load',)), None), ('Load',))),
+('Expression', ('Name', (1, 0, 1, 1), 'v', ('Load',))),
+('Expression', ('List', (1, 0, 1, 7), [('Constant', (1, 1, 1, 2), 1, None), ('Constant', (1, 3, 1, 4), 2, None), ('Constant', (1, 5, 1, 6), 3, None)], ('Load',))),
+('Expression', ('List', (1, 0, 1, 2), [], ('Load',))),
+('Expression', ('Tuple', (1, 0, 1, 5), [('Constant', (1, 0, 1, 1), 1, None), ('Constant', (1, 2, 1, 3), 2, None), ('Constant', (1, 4, 1, 5), 3, None)], ('Load',))),
+('Expression', ('Tuple', (1, 0, 1, 7), [('Constant', (1, 1, 1, 2), 1, None), ('Constant', (1, 3, 1, 4), 2, None), ('Constant', (1, 5, 1, 6), 3, None)], ('Load',))),
+('Expression', ('Tuple', (1, 0, 1, 2), [], ('Load',))),
+('Expression', ('Call', (1, 0, 1, 17), ('Attribute', (1, 0, 1, 7), ('Attribute', (1, 0, 1, 5), ('Attribute', (1, 0, 1, 3), ('Name', (1, 0, 1, 1), 'a', ('Load',)), 'b', ('Load',)), 'c', ('Load',)), 'd', ('Load',)), [('Subscript', (1, 8, 1, 16), ('Attribute', (1, 8, 1, 11), ('Name', (1, 8, 1, 9), 'a', ('Load',)), 'b', ('Load',)), ('Slice', ('Constant', (1, 12, 1, 13), 1, None), ('Constant', (1, 14, 1, 15), 2, None), None), ('Load',))], [])),
]
main()
From 4c53e63cc966f98e141a09bc435b9f9c713b152d Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Fri, 10 Jan 2020 09:24:22 +0000
Subject: [PATCH 095/380] bpo-39166: Fix trace of last iteration of async for
loops (#17800)
---
Lib/test/test_sys_settrace.py | 76 +++++++++++++++++++
.../2020-01-02-22-22-03.bpo-39166.Qt-UeD.rst | 2 +
Python/ceval.c | 14 ++--
3 files changed, 87 insertions(+), 5 deletions(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-02-22-22-03.bpo-39166.Qt-UeD.rst
diff --git a/Lib/test/test_sys_settrace.py b/Lib/test/test_sys_settrace.py
index a0d1122fad8..bead57c44b4 100644
--- a/Lib/test/test_sys_settrace.py
+++ b/Lib/test/test_sys_settrace.py
@@ -526,6 +526,82 @@ class TraceTestCase(unittest.TestCase):
(7, 'line'),
(7, 'return')])
+ def test_20_async_for_loop(self):
+ class AsyncIteratorWrapper:
+ def __init__(self, obj):
+ self._it = iter(obj)
+
+ def __aiter__(self):
+ return self
+
+ async def __anext__(self):
+ try:
+ return next(self._it)
+ except StopIteration:
+ raise StopAsyncIteration
+
+ async def doit_async():
+ async for letter in AsyncIteratorWrapper("abc"):
+ x = letter
+ y = 42
+
+ def run(tracer):
+ x = doit_async()
+ try:
+ sys.settrace(tracer)
+ x.send(None)
+ finally:
+ sys.settrace(None)
+
+ tracer = self.make_tracer()
+ events = [
+ (0, 'call'),
+ (1, 'line'),
+ (-12, 'call'),
+ (-11, 'line'),
+ (-11, 'return'),
+ (-9, 'call'),
+ (-8, 'line'),
+ (-8, 'return'),
+ (-6, 'call'),
+ (-5, 'line'),
+ (-4, 'line'),
+ (-4, 'return'),
+ (1, 'exception'),
+ (2, 'line'),
+ (1, 'line'),
+ (-6, 'call'),
+ (-5, 'line'),
+ (-4, 'line'),
+ (-4, 'return'),
+ (1, 'exception'),
+ (2, 'line'),
+ (1, 'line'),
+ (-6, 'call'),
+ (-5, 'line'),
+ (-4, 'line'),
+ (-4, 'return'),
+ (1, 'exception'),
+ (2, 'line'),
+ (1, 'line'),
+ (-6, 'call'),
+ (-5, 'line'),
+ (-4, 'line'),
+ (-4, 'exception'),
+ (-3, 'line'),
+ (-2, 'line'),
+ (-2, 'exception'),
+ (-2, 'return'),
+ (1, 'exception'),
+ (3, 'line'),
+ (3, 'return')]
+ try:
+ run(tracer.trace)
+ except Exception:
+ pass
+ self.compare_events(doit_async.__code__.co_firstlineno,
+ tracer.events, events)
+
class SkipLineEventsTraceTestCase(TraceTestCase):
"""Repeat the trace tests, but with per-line events skipped"""
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-02-22-22-03.bpo-39166.Qt-UeD.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-02-22-22-03.bpo-39166.Qt-UeD.rst
new file mode 100644
index 00000000000..4737e9c4d2e
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-02-22-22-03.bpo-39166.Qt-UeD.rst
@@ -0,0 +1,2 @@
+Fix incorrect line execution reporting in trace functions when tracing the
+last iteration of asynchronous for loops. Patch by Pablo Galindo.
diff --git a/Python/ceval.c b/Python/ceval.c
index bd9454b2812..3bbd0ca9667 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -3610,11 +3610,15 @@ exception_unwind:
PUSH(val);
PUSH(exc);
JUMPTO(handler);
- if (_Py_TracingPossible(ceval) &&
- ((f->f_lasti < instr_lb || f->f_lasti >= instr_ub) ||
- !(f->f_lasti == instr_lb || f->f_lasti < instr_prev))) {
- /* Make sure that we trace line after exception */
- instr_prev = INT_MAX;
+ if (_Py_TracingPossible(ceval)) {
+ int needs_new_execution_window = (f->f_lasti < instr_lb || f->f_lasti >= instr_ub);
+ int needs_line_update = (f->f_lasti == instr_lb || f->f_lasti < instr_prev);
+ /* Make sure that we trace line after exception if we are in a new execution
+ * window or we don't need a line update and we are not in the first instruction
+ * of the line. */
+ if (needs_new_execution_window || (!needs_line_update && instr_lb > 0)) {
+ instr_prev = INT_MAX;
+ }
}
/* Resume normal execution */
goto main_loop;
From c39b52f1527868c7ada9385669c38edf98858921 Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Fri, 10 Jan 2020 23:34:05 +0900
Subject: [PATCH 096/380] bpo-39259: poplib now rejects timeout = 0 (GH-17912)
poplib.POP3 and poplib.POP3_SSL now raise a ValueError
if the given timeout for their constructor is zero to
prevent the creation of a non-blocking socket.
---
Doc/library/poplib.rst | 8 +++++++-
Doc/whatsnew/3.9.rst | 7 +++++++
Lib/poplib.py | 2 ++
Lib/test/test_poplib.py | 12 +++++++-----
.../Library/2020-01-09-10-58-58.bpo-39259.RmDgCC.rst | 3 +++
5 files changed, 26 insertions(+), 6 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-09-10-58-58.bpo-39259.RmDgCC.rst
diff --git a/Doc/library/poplib.rst b/Doc/library/poplib.rst
index 28b42fa60c1..2f349b35b7e 100644
--- a/Doc/library/poplib.rst
+++ b/Doc/library/poplib.rst
@@ -47,6 +47,9 @@ The :mod:`poplib` module provides two classes:
``poplib.putline`` with arguments ``self`` and ``line``,
where ``line`` is the bytes about to be sent to the remote host.
+ .. versionchanged:: 3.9
+ If the *timeout* parameter is set to be zero, it will raise a
+ :class:`ValueError` to prevent the creation of a non-blocking socket.
.. class:: POP3_SSL(host, port=POP3_SSL_PORT, keyfile=None, certfile=None, timeout=None, context=None)
@@ -85,6 +88,10 @@ The :mod:`poplib` module provides two classes:
:func:`ssl.create_default_context` select the system's trusted CA
certificates for you.
+ .. versionchanged:: 3.9
+ If the *timeout* parameter is set to be zero, it will raise a
+ :class:`ValueError` to prevent the creation of a non-blocking socket.
+
One exception is defined as an attribute of the :mod:`poplib` module:
@@ -268,4 +275,3 @@ retrieves and prints all messages::
At the end of the module, there is a test section that contains a more extensive
example of usage.
-
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index ea6d8f515a9..3320b7cff42 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -187,6 +187,13 @@ Exposed the Linux-specific :func:`os.pidfd_open` (:issue:`38692`) and
:data:`os.P_PIDFD` (:issue:`38713`) for process management with file
descriptors.
+poplib
+------
+
+:class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a :class:`ValueError`
+if the given timeout for their constructor is zero to prevent the creation of
+a non-blocking socket. (Contributed by Dong-hee Na in :issue:`39259`.)
+
threading
---------
diff --git a/Lib/poplib.py b/Lib/poplib.py
index 0b6750d2303..0f8587317c2 100644
--- a/Lib/poplib.py
+++ b/Lib/poplib.py
@@ -107,6 +107,8 @@ class POP3:
self.welcome = self._getresp()
def _create_socket(self, timeout):
+ if timeout is not None and not timeout:
+ raise ValueError('Non-blocking socket (timeout=0) is not supported')
return socket.create_connection((self.host, self.port), timeout)
def _putline(self, line):
diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py
index 911cba1f1dc..7f06d1950e1 100644
--- a/Lib/test/test_poplib.py
+++ b/Lib/test/test_poplib.py
@@ -481,7 +481,7 @@ class TestTimeouts(TestCase):
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.settimeout(60) # Safety net. Look issue 11812
self.port = test_support.bind_port(self.sock)
- self.thread = threading.Thread(target=self.server, args=(self.evt,self.sock))
+ self.thread = threading.Thread(target=self.server, args=(self.evt, self.sock))
self.thread.daemon = True
self.thread.start()
self.evt.wait()
@@ -505,12 +505,12 @@ class TestTimeouts(TestCase):
def testTimeoutDefault(self):
self.assertIsNone(socket.getdefaulttimeout())
- socket.setdefaulttimeout(30)
+ socket.setdefaulttimeout(test_support.LOOPBACK_TIMEOUT)
try:
pop = poplib.POP3(HOST, self.port)
finally:
socket.setdefaulttimeout(None)
- self.assertEqual(pop.sock.gettimeout(), 30)
+ self.assertEqual(pop.sock.gettimeout(), test_support.LOOPBACK_TIMEOUT)
pop.close()
def testTimeoutNone(self):
@@ -524,9 +524,11 @@ class TestTimeouts(TestCase):
pop.close()
def testTimeoutValue(self):
- pop = poplib.POP3(HOST, self.port, timeout=30)
- self.assertEqual(pop.sock.gettimeout(), 30)
+ pop = poplib.POP3(HOST, self.port, timeout=test_support.LOOPBACK_TIMEOUT)
+ self.assertEqual(pop.sock.gettimeout(), test_support.LOOPBACK_TIMEOUT)
pop.close()
+ with self.assertRaises(ValueError):
+ poplib.POP3(HOST, self.port, timeout=0)
def test_main():
diff --git a/Misc/NEWS.d/next/Library/2020-01-09-10-58-58.bpo-39259.RmDgCC.rst b/Misc/NEWS.d/next/Library/2020-01-09-10-58-58.bpo-39259.RmDgCC.rst
new file mode 100644
index 00000000000..c7ef8be7e3a
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-09-10-58-58.bpo-39259.RmDgCC.rst
@@ -0,0 +1,3 @@
+:class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a
+:class:`ValueError` if the given timeout for their constructor is zero to
+prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
From abdc634f337ce4943cd7d13587936837aac2ecc9 Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Sat, 11 Jan 2020 01:31:43 +0900
Subject: [PATCH 097/380] bpo-39200: Correct the error message for min/max
builtin function (GH-17814)
Correct the error message when calling the min() or max() with
no arguments.
---
Lib/test/test_builtin.py | 14 ++++++++++++--
.../2020-01-04-01-14-32.bpo-39200.8Z9DYp.rst | 2 ++
Python/bltinmodule.c | 9 +++++++--
3 files changed, 21 insertions(+), 4 deletions(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-04-01-14-32.bpo-39200.8Z9DYp.rst
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index 6a88454289d..5c553a92b97 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -949,7 +949,12 @@ class BuiltinTest(unittest.TestCase):
self.assertEqual(max(1, 2.0, 3), 3)
self.assertEqual(max(1.0, 2, 3), 3)
- self.assertRaises(TypeError, max)
+ with self.assertRaisesRegex(
+ TypeError,
+ 'max expected at least 1 argument, got 0'
+ ):
+ max()
+
self.assertRaises(TypeError, max, 42)
self.assertRaises(ValueError, max, ())
class BadSeq:
@@ -1003,7 +1008,12 @@ class BuiltinTest(unittest.TestCase):
self.assertEqual(min(1, 2.0, 3), 1)
self.assertEqual(min(1.0, 2, 3), 1.0)
- self.assertRaises(TypeError, min)
+ with self.assertRaisesRegex(
+ TypeError,
+ 'min expected at least 1 argument, got 0'
+ ):
+ min()
+
self.assertRaises(TypeError, min, 42)
self.assertRaises(ValueError, min, ())
class BadSeq:
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-04-01-14-32.bpo-39200.8Z9DYp.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-04-01-14-32.bpo-39200.8Z9DYp.rst
new file mode 100644
index 00000000000..71e40720992
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-04-01-14-32.bpo-39200.8Z9DYp.rst
@@ -0,0 +1,2 @@
+Correct the error message when calling the :func:`min` or :func:`max` with
+no arguments. Patch by Dong-hee Na.
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 34267685be2..4f833c1f462 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -1589,10 +1589,15 @@ min_max(PyObject *args, PyObject *kwds, int op)
const int positional = PyTuple_Size(args) > 1;
int ret;
- if (positional)
+ if (positional) {
v = args;
- else if (!PyArg_UnpackTuple(args, name, 1, 1, &v))
+ }
+ else if (!PyArg_UnpackTuple(args, name, 1, 1, &v)) {
+ if (PyExceptionClass_Check(PyExc_TypeError)) {
+ PyErr_Format(PyExc_TypeError, "%s expected at least 1 argument, got 0", name);
+ }
return NULL;
+ }
emptytuple = PyTuple_New(0);
if (emptytuple == NULL)
From ce54519aa09772f4173b8c17410ed77e403f3ebf Mon Sep 17 00:00:00 2001
From: Vinay Sajip
Date: Fri, 10 Jan 2020 19:37:48 +0000
Subject: [PATCH 098/380] bpo-39292: Add missing syslog facility codes.
(GH-17945)
---
Lib/logging/handlers.py | 49 +++++++++++++++++++++++------------------
1 file changed, 28 insertions(+), 21 deletions(-)
diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py
index ea14541e1e5..047798f6dc1 100644
--- a/Lib/logging/handlers.py
+++ b/Lib/logging/handlers.py
@@ -742,6 +742,10 @@ class SysLogHandler(logging.Handler):
LOG_CRON = 9 # clock daemon
LOG_AUTHPRIV = 10 # security/authorization messages (private)
LOG_FTP = 11 # FTP daemon
+ LOG_NTP = 12 # NTP subsystem
+ LOG_SECURITY = 13 # Log audit
+ LOG_CONSOLE = 14 # Log alert
+ LOG_SOLCRON = 15 # Scheduling daemon (Solaris)
# other codes through 15 reserved for system use
LOG_LOCAL0 = 16 # reserved for local use
@@ -769,27 +773,30 @@ class SysLogHandler(logging.Handler):
}
facility_names = {
- "auth": LOG_AUTH,
- "authpriv": LOG_AUTHPRIV,
- "cron": LOG_CRON,
- "daemon": LOG_DAEMON,
- "ftp": LOG_FTP,
- "kern": LOG_KERN,
- "lpr": LOG_LPR,
- "mail": LOG_MAIL,
- "news": LOG_NEWS,
- "security": LOG_AUTH, # DEPRECATED
- "syslog": LOG_SYSLOG,
- "user": LOG_USER,
- "uucp": LOG_UUCP,
- "local0": LOG_LOCAL0,
- "local1": LOG_LOCAL1,
- "local2": LOG_LOCAL2,
- "local3": LOG_LOCAL3,
- "local4": LOG_LOCAL4,
- "local5": LOG_LOCAL5,
- "local6": LOG_LOCAL6,
- "local7": LOG_LOCAL7,
+ "auth": LOG_AUTH,
+ "authpriv": LOG_AUTHPRIV,
+ "console": LOG_CONSOLE,
+ "cron": LOG_CRON,
+ "daemon": LOG_DAEMON,
+ "ftp": LOG_FTP,
+ "kern": LOG_KERN,
+ "lpr": LOG_LPR,
+ "mail": LOG_MAIL,
+ "news": LOG_NEWS,
+ "ntp": LOG_NTP,
+ "security": LOG_SECURITY,
+ "solaris-cron": LOG_SOLCRON,
+ "syslog": LOG_SYSLOG,
+ "user": LOG_USER,
+ "uucp": LOG_UUCP,
+ "local0": LOG_LOCAL0,
+ "local1": LOG_LOCAL1,
+ "local2": LOG_LOCAL2,
+ "local3": LOG_LOCAL3,
+ "local4": LOG_LOCAL4,
+ "local5": LOG_LOCAL5,
+ "local6": LOG_LOCAL6,
+ "local7": LOG_LOCAL7,
}
#The map below appears to be trivially lowercasing the key. However,
From 43682f1e39a3c61f0e8a638b887bcdcbfef766c5 Mon Sep 17 00:00:00 2001
From: Karthikeyan Singaravelan
Date: Sat, 11 Jan 2020 10:46:30 +0530
Subject: [PATCH 099/380] Fix host in address of socket.create_server example.
(GH-17706)
Host as None in address raises TypeError since it should be string, bytes or bytearray.
---
Lib/socket.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Lib/socket.py b/Lib/socket.py
index 374f1124bf7..cafa573a30c 100755
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -878,7 +878,7 @@ def create_server(address, *, family=AF_INET, backlog=None, reuse_port=False,
connections. When false it will explicitly disable this option on
platforms that enable it by default (e.g. Linux).
- >>> with create_server((None, 8000)) as server:
+ >>> with create_server(('', 8000)) as server:
... while True:
... conn, addr = server.accept()
... # handle new connection
From 5d978a2e73e9ad934bcd260ae0a0db5cd0ca27d0 Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Sun, 12 Jan 2020 00:07:36 +0900
Subject: [PATCH 100/380] bpo-39259: nntplib.NNTP/NNTP_SSL refactoring
(GH-17939)
---
Lib/nntplib.py | 44 +++++++++++++++++++-------------------------
1 file changed, 19 insertions(+), 25 deletions(-)
diff --git a/Lib/nntplib.py b/Lib/nntplib.py
index 9036f361b5f..0ab51853b52 100644
--- a/Lib/nntplib.py
+++ b/Lib/nntplib.py
@@ -1042,13 +1042,11 @@ class NNTP(_NNTPBase):
"""
self.host = host
self.port = port
- sys.audit("nntplib.connect", self, host, port)
- self.sock = socket.create_connection((host, port), timeout)
+ self.sock = self._create_socket(timeout)
file = None
try:
file = self.sock.makefile("rwb")
- _NNTPBase.__init__(self, file, host,
- readermode, timeout)
+ super().__init__(file, host, readermode, timeout)
if user or usenetrc:
self.login(user, password, usenetrc)
except:
@@ -1057,15 +1055,19 @@ class NNTP(_NNTPBase):
self.sock.close()
raise
+ def _create_socket(self, timeout):
+ sys.audit("nntplib.connect", self, self.host, self.port)
+ return socket.create_connection((self.host, self.port), timeout)
+
def _close(self):
try:
- _NNTPBase._close(self)
+ super()._close()
finally:
self.sock.close()
if _have_ssl:
- class NNTP_SSL(_NNTPBase):
+ class NNTP_SSL(NNTP):
def __init__(self, host, port=NNTP_SSL_PORT,
user=None, password=None, ssl_context=None,
@@ -1074,27 +1076,19 @@ if _have_ssl:
"""This works identically to NNTP.__init__, except for the change
in default port and the `ssl_context` argument for SSL connections.
"""
- sys.audit("nntplib.connect", self, host, port)
- self.sock = socket.create_connection((host, port), timeout)
- file = None
- try:
- self.sock = _encrypt_on(self.sock, ssl_context, host)
- file = self.sock.makefile("rwb")
- _NNTPBase.__init__(self, file, host,
- readermode=readermode, timeout=timeout)
- if user or usenetrc:
- self.login(user, password, usenetrc)
- except:
- if file:
- file.close()
- self.sock.close()
- raise
+ self.ssl_context = ssl_context
+ super().__init__(host, port, user, password, readermode,
+ usenetrc, timeout)
- def _close(self):
+ def _create_socket(self, timeout):
+ sock = super()._create_socket(timeout)
try:
- _NNTPBase._close(self)
- finally:
- self.sock.close()
+ sock = _encrypt_on(sock, self.ssl_context, self.host)
+ except:
+ sock.close()
+ raise
+ else:
+ return sock
__all__.append("NNTP_SSL")
From 136735c1a2efb320e4cbb64b40f1191228745b39 Mon Sep 17 00:00:00 2001
From: "Jason R. Coombs"
Date: Sat, 11 Jan 2020 10:37:28 -0500
Subject: [PATCH 101/380] bpo-39297: Update for importlib_metadata 1.4.
(GH-17947)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* bpo-39297: Update for importlib_metadata 1.4. Includes performance updates.
* 📜🤖 Added by blurb_it.
* Update blurb
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
---
Lib/importlib/metadata.py | 108 ++++++++++++------
.../2020-01-11-01-15-37.bpo-39297.y98Z6Q.rst | 1 +
2 files changed, 73 insertions(+), 36 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-11-01-15-37.bpo-39297.y98Z6Q.rst
diff --git a/Lib/importlib/metadata.py b/Lib/importlib/metadata.py
index 53f9fb59346..ae8ecf9b850 100644
--- a/Lib/importlib/metadata.py
+++ b/Lib/importlib/metadata.py
@@ -10,6 +10,7 @@ import zipfile
import operator
import functools
import itertools
+import posixpath
import collections
from configparser import ConfigParser
@@ -371,10 +372,6 @@ class DistributionFinder(MetaPathFinder):
"""
return vars(self).get('path', sys.path)
- @property
- def pattern(self):
- return '.*' if self.name is None else re.escape(self.name)
-
@abc.abstractmethod
def find_distributions(self, context=Context()):
"""
@@ -386,6 +383,73 @@ class DistributionFinder(MetaPathFinder):
"""
+class FastPath:
+ """
+ Micro-optimized class for searching a path for
+ children.
+ """
+
+ def __init__(self, root):
+ self.root = root
+
+ def joinpath(self, child):
+ return pathlib.Path(self.root, child)
+
+ def children(self):
+ with suppress(Exception):
+ return os.listdir(self.root or '')
+ with suppress(Exception):
+ return self.zip_children()
+ return []
+
+ def zip_children(self):
+ zip_path = zipfile.Path(self.root)
+ names = zip_path.root.namelist()
+ self.joinpath = zip_path.joinpath
+
+ return (
+ posixpath.split(child)[0]
+ for child in names
+ )
+
+ def is_egg(self, search):
+ root_n_low = os.path.split(self.root)[1].lower()
+
+ return (
+ root_n_low == search.normalized + '.egg'
+ or root_n_low.startswith(search.prefix)
+ and root_n_low.endswith('.egg'))
+
+ def search(self, name):
+ for child in self.children():
+ n_low = child.lower()
+ if (n_low in name.exact_matches
+ or n_low.startswith(name.prefix)
+ and n_low.endswith(name.suffixes)
+ # legacy case:
+ or self.is_egg(name) and n_low == 'egg-info'):
+ yield self.joinpath(child)
+
+
+class Prepared:
+ """
+ A prepared search for metadata on a possibly-named package.
+ """
+ normalized = ''
+ prefix = ''
+ suffixes = '.dist-info', '.egg-info'
+ exact_matches = [''][:0]
+
+ def __init__(self, name):
+ self.name = name
+ if name is None:
+ return
+ self.normalized = name.lower().replace('-', '_')
+ self.prefix = self.normalized + '-'
+ self.exact_matches = [
+ self.normalized + suffix for suffix in self.suffixes]
+
+
class MetadataPathFinder(DistributionFinder):
@classmethod
def find_distributions(cls, context=DistributionFinder.Context()):
@@ -397,45 +461,17 @@ class MetadataPathFinder(DistributionFinder):
(or all names if ``None`` indicated) along the paths in the list
of directories ``context.path``.
"""
- found = cls._search_paths(context.pattern, context.path)
+ found = cls._search_paths(context.name, context.path)
return map(PathDistribution, found)
@classmethod
- def _search_paths(cls, pattern, paths):
+ def _search_paths(cls, name, paths):
"""Find metadata directories in paths heuristically."""
return itertools.chain.from_iterable(
- cls._search_path(path, pattern)
- for path in map(cls._switch_path, paths)
+ path.search(Prepared(name))
+ for path in map(FastPath, paths)
)
- @staticmethod
- def _switch_path(path):
- PYPY_OPEN_BUG = False
- if not PYPY_OPEN_BUG or os.path.isfile(path): # pragma: no branch
- with suppress(Exception):
- return zipfile.Path(path)
- return pathlib.Path(path)
-
- @classmethod
- def _matches_info(cls, normalized, item):
- template = r'{pattern}(-.*)?\.(dist|egg)-info'
- manifest = template.format(pattern=normalized)
- return re.match(manifest, item.name, flags=re.IGNORECASE)
-
- @classmethod
- def _matches_legacy(cls, normalized, item):
- template = r'{pattern}-.*\.egg[\\/]EGG-INFO'
- manifest = template.format(pattern=normalized)
- return re.search(manifest, str(item), flags=re.IGNORECASE)
-
- @classmethod
- def _search_path(cls, root, pattern):
- if not root.is_dir():
- return ()
- normalized = pattern.replace('-', '_')
- return (item for item in root.iterdir()
- if cls._matches_info(normalized, item)
- or cls._matches_legacy(normalized, item))
class PathDistribution(Distribution):
diff --git a/Misc/NEWS.d/next/Library/2020-01-11-01-15-37.bpo-39297.y98Z6Q.rst b/Misc/NEWS.d/next/Library/2020-01-11-01-15-37.bpo-39297.y98Z6Q.rst
new file mode 100644
index 00000000000..618f6f9f2b7
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-11-01-15-37.bpo-39297.y98Z6Q.rst
@@ -0,0 +1 @@
+Improved performance of importlib.metadata distribution discovery and resilients to inaccessible sys.path entries (importlib_metadata v1.4.0).
From 1b335ae281631a12201fdec29b3c55d97166fc06 Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Sun, 12 Jan 2020 02:39:15 +0900
Subject: [PATCH 102/380] bpo-39259: nntplib.NNTP/NNTP_SSL now reject timeout =
0 (GH-17936)
nntplib.NNTP and nntplib.NNTP_SSL now raise a ValueError
if the given timeout for their constructor is zero to
prevent the creation of a non-blocking socket.
---
Doc/library/nntplib.rst | 8 ++++++++
Doc/whatsnew/3.9.rst | 7 +++++++
Lib/nntplib.py | 2 ++
Lib/test/test_nntplib.py | 4 ++++
.../next/Library/2020-01-11-00-32-45.bpo-39259._S5VjC.rst | 3 +++
5 files changed, 24 insertions(+)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-11-00-32-45.bpo-39259._S5VjC.rst
diff --git a/Doc/library/nntplib.rst b/Doc/library/nntplib.rst
index e8480b54807..76973651526 100644
--- a/Doc/library/nntplib.rst
+++ b/Doc/library/nntplib.rst
@@ -93,6 +93,10 @@ The module itself defines the following classes:
.. versionchanged:: 3.3
Support for the :keyword:`with` statement was added.
+ .. versionchanged:: 3.9
+ If the *timeout* parameter is set to be zero, it will raise a
+ :class:`ValueError` to prevent the creation of a non-blocking socket.
+
.. class:: NNTP_SSL(host, port=563, user=None, password=None, ssl_context=None, readermode=None, usenetrc=False, [timeout])
Return a new :class:`NNTP_SSL` object, representing an encrypted
@@ -122,6 +126,10 @@ The module itself defines the following classes:
:attr:`ssl.SSLContext.check_hostname` and *Server Name Indication* (see
:data:`ssl.HAS_SNI`).
+ .. versionchanged:: 3.9
+ If the *timeout* parameter is set to be zero, it will raise a
+ :class:`ValueError` to prevent the creation of a non-blocking socket.
+
.. exception:: NNTPError
Derived from the standard exception :exc:`Exception`, this is the base
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 3320b7cff42..8cfb5725bb5 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -177,6 +177,13 @@ with this change. The overridden methods of :class:`~imaplib.IMAP4_SSL` and
:class:`~imaplib.IMAP4_stream` were applied to this change.
(Contributed by Dong-hee Na in :issue:`38615`.)
+nntplib
+-------
+
+:class:`~nntplib.NNTP` and :class:`~nntplib.NNTP_SSL` now raise a :class:`ValueError`
+if the given timeout for their constructor is zero to prevent the creation of
+a non-blocking socket. (Contributed by Dong-hee Na in :issue:`39259`.)
+
os
--
diff --git a/Lib/nntplib.py b/Lib/nntplib.py
index 0ab51853b52..8951203f325 100644
--- a/Lib/nntplib.py
+++ b/Lib/nntplib.py
@@ -1056,6 +1056,8 @@ class NNTP(_NNTPBase):
raise
def _create_socket(self, timeout):
+ if timeout is not None and not timeout:
+ raise ValueError('Non-blocking socket (timeout=0) is not supported')
sys.audit("nntplib.connect", self, self.host, self.port)
return socket.create_connection((self.host, self.port), timeout)
diff --git a/Lib/test/test_nntplib.py b/Lib/test/test_nntplib.py
index 88c54f4e6f3..fdd76f9e9b3 100644
--- a/Lib/test/test_nntplib.py
+++ b/Lib/test/test_nntplib.py
@@ -258,6 +258,10 @@ class NetworkedNNTPTestsMixin:
# value
setattr(cls, name, wrap_meth(meth))
+ def test_timeout(self):
+ with self.assertRaises(ValueError):
+ self.NNTP_CLASS(self.NNTP_HOST, timeout=0, usenetrc=False)
+
def test_with_statement(self):
def is_connected():
if not hasattr(server, 'file'):
diff --git a/Misc/NEWS.d/next/Library/2020-01-11-00-32-45.bpo-39259._S5VjC.rst b/Misc/NEWS.d/next/Library/2020-01-11-00-32-45.bpo-39259._S5VjC.rst
new file mode 100644
index 00000000000..a454572c80d
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-11-00-32-45.bpo-39259._S5VjC.rst
@@ -0,0 +1,3 @@
+:class:`~nntplib.NNTP` and :class:`~nntplib.NNTP_SSL` now raise a
+:class:`ValueError` if the given timeout for their constructor is zero to
+prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
From 100fafcf20e8fc67cd8ef512074f9c0a253cb427 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Sun, 12 Jan 2020 02:15:42 +0100
Subject: [PATCH 103/380] bpo-39288: Add math.nextafter(x, y) (GH-17937)
Return the next floating-point value after x towards y.
---
Doc/library/math.rst | 8 +++
Doc/whatsnew/3.9.rst | 7 +++
Lib/test/test_math.py | 54 +++++++++++++++++++
.../2020-01-10-16-52-09.bpo-39288.IB-aQX.rst | 2 +
Modules/clinic/mathmodule.c.h | 50 ++++++++++++++++-
Modules/mathmodule.c | 20 +++++++
6 files changed, 140 insertions(+), 1 deletion(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-10-16-52-09.bpo-39288.IB-aQX.rst
diff --git a/Doc/library/math.rst b/Doc/library/math.rst
index 43eaba935a1..135adf8f636 100644
--- a/Doc/library/math.rst
+++ b/Doc/library/math.rst
@@ -213,6 +213,14 @@ Number-theoretic and representation functions
of *x* and are floats.
+.. function:: nextafter(x, y)
+
+ Return the next floating-point value after *x* towards *y*.
+
+ If *x* is equal to *y*, return *y*.
+
+ .. versionadded:: 3.9
+
.. function:: perm(n, k=None)
Return the number of ways to choose *k* items from *n* items
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 8cfb5725bb5..a686d640ae9 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -177,6 +177,13 @@ with this change. The overridden methods of :class:`~imaplib.IMAP4_SSL` and
:class:`~imaplib.IMAP4_stream` were applied to this change.
(Contributed by Dong-hee Na in :issue:`38615`.)
+math
+----
+
+Add :func:`math.nextafter`: return the next floating-point value after *x*
+towards *y*.
+(Contributed by Victor Stinner in :issue:`39288`.)
+
nntplib
-------
diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py
index 5c35c8cff12..b64fd41a548 100644
--- a/Lib/test/test_math.py
+++ b/Lib/test/test_math.py
@@ -2033,6 +2033,60 @@ class IsCloseTests(unittest.TestCase):
self.assertIs(type(comb(IntSubclass(5), IntSubclass(k))), int)
self.assertIs(type(comb(MyIndexable(5), MyIndexable(k))), int)
+ def assertEqualSign(self, x, y):
+ """Similar to assertEqual(), but compare also the sign.
+
+ Function useful to check to signed zero.
+ """
+ self.assertEqual(x, y)
+ self.assertEqual(math.copysign(1.0, x), math.copysign(1.0, y))
+
+ @requires_IEEE_754
+ def test_nextafter(self):
+ # around 2^52 and 2^63
+ self.assertEqual(math.nextafter(4503599627370496.0, -INF),
+ 4503599627370495.5)
+ self.assertEqual(math.nextafter(4503599627370496.0, INF),
+ 4503599627370497.0)
+ self.assertEqual(math.nextafter(9223372036854775808.0, 0.0),
+ 9223372036854774784.0)
+ self.assertEqual(math.nextafter(-9223372036854775808.0, 0.0),
+ -9223372036854774784.0)
+
+ # around 1.0
+ self.assertEqual(math.nextafter(1.0, -INF),
+ float.fromhex('0x1.fffffffffffffp-1'))
+ self.assertEqual(math.nextafter(1.0, INF),
+ float.fromhex('0x1.0000000000001p+0'))
+
+ # x == y: y is returned
+ self.assertEqual(math.nextafter(2.0, 2.0), 2.0)
+ self.assertEqualSign(math.nextafter(-0.0, +0.0), +0.0)
+ self.assertEqualSign(math.nextafter(+0.0, -0.0), -0.0)
+
+ # around 0.0
+ smallest_subnormal = sys.float_info.min * sys.float_info.epsilon
+ self.assertEqual(math.nextafter(+0.0, INF), smallest_subnormal)
+ self.assertEqual(math.nextafter(-0.0, INF), smallest_subnormal)
+ self.assertEqual(math.nextafter(+0.0, -INF), -smallest_subnormal)
+ self.assertEqual(math.nextafter(-0.0, -INF), -smallest_subnormal)
+ self.assertEqualSign(math.nextafter(smallest_subnormal, +0.0), +0.0)
+ self.assertEqualSign(math.nextafter(-smallest_subnormal, +0.0), -0.0)
+ self.assertEqualSign(math.nextafter(smallest_subnormal, -0.0), +0.0)
+ self.assertEqualSign(math.nextafter(-smallest_subnormal, -0.0), -0.0)
+
+ # around infinity
+ largest_normal = sys.float_info.max
+ self.assertEqual(math.nextafter(INF, 0.0), largest_normal)
+ self.assertEqual(math.nextafter(-INF, 0.0), -largest_normal)
+ self.assertEqual(math.nextafter(largest_normal, INF), INF)
+ self.assertEqual(math.nextafter(-largest_normal, -INF), -INF)
+
+ # NaN
+ self.assertTrue(math.isnan(math.nextafter(NAN, 1.0)))
+ self.assertTrue(math.isnan(math.nextafter(1.0, NAN)))
+ self.assertTrue(math.isnan(math.nextafter(NAN, NAN)))
+
def test_main():
from doctest import DocFileSuite
diff --git a/Misc/NEWS.d/next/Library/2020-01-10-16-52-09.bpo-39288.IB-aQX.rst b/Misc/NEWS.d/next/Library/2020-01-10-16-52-09.bpo-39288.IB-aQX.rst
new file mode 100644
index 00000000000..0e0ec99c344
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-10-16-52-09.bpo-39288.IB-aQX.rst
@@ -0,0 +1,2 @@
+Add :func:`math.nextafter`: return the next floating-point value after *x*
+towards *y*.
diff --git a/Modules/clinic/mathmodule.c.h b/Modules/clinic/mathmodule.c.h
index 95d68ee55ae..f34633cb0c0 100644
--- a/Modules/clinic/mathmodule.c.h
+++ b/Modules/clinic/mathmodule.c.h
@@ -808,4 +808,52 @@ math_comb(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=9a2b3dc91eb9aadd input=a9049054013a1b77]*/
+
+PyDoc_STRVAR(math_nextafter__doc__,
+"nextafter($module, x, y, /)\n"
+"--\n"
+"\n"
+"Return the next floating-point value after x towards y.");
+
+#define MATH_NEXTAFTER_METHODDEF \
+ {"nextafter", (PyCFunction)(void(*)(void))math_nextafter, METH_FASTCALL, math_nextafter__doc__},
+
+static PyObject *
+math_nextafter_impl(PyObject *module, double x, double y);
+
+static PyObject *
+math_nextafter(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
+{
+ PyObject *return_value = NULL;
+ double x;
+ double y;
+
+ if (!_PyArg_CheckPositional("nextafter", nargs, 2, 2)) {
+ goto exit;
+ }
+ if (PyFloat_CheckExact(args[0])) {
+ x = PyFloat_AS_DOUBLE(args[0]);
+ }
+ else
+ {
+ x = PyFloat_AsDouble(args[0]);
+ if (x == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ if (PyFloat_CheckExact(args[1])) {
+ y = PyFloat_AS_DOUBLE(args[1]);
+ }
+ else
+ {
+ y = PyFloat_AsDouble(args[1]);
+ if (y == -1.0 && PyErr_Occurred()) {
+ goto exit;
+ }
+ }
+ return_value = math_nextafter_impl(module, x, y);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=e4ed1a800e4b2eae input=a9049054013a1b77]*/
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index e60e19bc490..632a421e3bb 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -3295,6 +3295,25 @@ error:
}
+/*[clinic input]
+math.nextafter
+
+ x: double
+ y: double
+ /
+
+Return the next floating-point value after x towards y.
+[clinic start generated code]*/
+
+static PyObject *
+math_nextafter_impl(PyObject *module, double x, double y)
+/*[clinic end generated code: output=750c8266c1c540ce input=02b2d50cd1d9f9b6]*/
+{
+ double f = nextafter(x, y);
+ return PyFloat_FromDouble(f);
+}
+
+
static PyMethodDef math_methods[] = {
{"acos", math_acos, METH_O, math_acos_doc},
{"acosh", math_acosh, METH_O, math_acosh_doc},
@@ -3346,6 +3365,7 @@ static PyMethodDef math_methods[] = {
MATH_PROD_METHODDEF
MATH_PERM_METHODDEF
MATH_COMB_METHODDEF
+ MATH_NEXTAFTER_METHODDEF
{NULL, NULL} /* sentinel */
};
From c12440c371025bea9c3bfb94945f006c486c2c01 Mon Sep 17 00:00:00 2001
From: Vinay Sajip
Date: Sun, 12 Jan 2020 08:54:00 +0000
Subject: [PATCH 104/380] bpo-16575: Disabled checks for union types being
passed by value. (GH-17960)
Although the underlying libffi issue remains open, adding these
checks have caused problems in third-party projects which are in
widespread use. See the issue for examples.
The corresponding tests have also been skipped.
---
Lib/ctypes/test/test_structures.py | 3 ++-
Modules/_ctypes/_ctypes.c | 18 ++++++++++++++++++
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/Lib/ctypes/test/test_structures.py b/Lib/ctypes/test/test_structures.py
index 283ccbf7237..245cd94c5cd 100644
--- a/Lib/ctypes/test/test_structures.py
+++ b/Lib/ctypes/test/test_structures.py
@@ -576,6 +576,7 @@ class StructureTestCase(unittest.TestCase):
self.assertEqual(f2, [0x4567, 0x0123, 0xcdef, 0x89ab,
0x3210, 0x7654, 0xba98, 0xfedc])
+ @unittest.skipIf(True, 'Test disabled for now - see bpo-16575/bpo-16576')
def test_union_by_value(self):
# See bpo-16575
@@ -656,7 +657,7 @@ class StructureTestCase(unittest.TestCase):
self.assertEqual(test5.nested.an_int, 0)
self.assertEqual(test5.another_int, 0)
- #@unittest.skipIf('s390' in MACHINE, 'Test causes segfault on S390')
+ @unittest.skipIf(True, 'Test disabled for now - see bpo-16575/bpo-16576')
def test_bitfield_by_value(self):
# See bpo-16576
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index 93af497bda2..cb6e03f2ca1 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -2401,6 +2401,23 @@ converters_from_argtypes(PyObject *ob)
for (i = 0; i < nArgs; ++i) {
PyObject *cnv;
PyObject *tp = PyTuple_GET_ITEM(ob, i);
+/*
+ * The following checks, relating to bpo-16575 and bpo-16576, have been
+ * disabled. The reason is that, although there is a definite problem with
+ * how libffi handles unions (https://github.com/libffi/libffi/issues/33),
+ * there are numerous libraries which pass structures containing unions
+ * by values - especially on Windows but examples also exist on Linux
+ * (https://bugs.python.org/msg359834).
+ *
+ * It may not be possible to get proper support for unions and bitfields
+ * until support is forthcoming in libffi, but for now, adding the checks
+ * has caused problems in otherwise-working software, which suggests it
+ * is better to disable the checks.
+ *
+ * Although specific examples reported relate specifically to unions and
+ * not bitfields, the bitfields check is also being disabled as a
+ * precaution.
+
StgDictObject *stgdict = PyType_stgdict(tp);
if (stgdict != NULL) {
@@ -2428,6 +2445,7 @@ converters_from_argtypes(PyObject *ob)
return NULL;
}
}
+ */
if (_PyObject_LookupAttrId(tp, &PyId_from_param, &cnv) <= 0) {
Py_DECREF(converters);
From d7c7adde003ddca5cbe4fc47cf09464ab95a066e Mon Sep 17 00:00:00 2001
From: Zac Hatfield-Dodds
Date: Sun, 12 Jan 2020 19:04:14 +1000
Subject: [PATCH 105/380] bpo-12159: Document sys.maxsize limit in len()
function reference (GH-17934)
---
Doc/library/functions.rst | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index dc3391ffe88..cc48597ef91 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -892,6 +892,11 @@ are always available. They are listed here in alphabetical order.
sequence (such as a string, bytes, tuple, list, or range) or a collection
(such as a dictionary, set, or frozen set).
+ .. impl-detail::
+
+ ``len`` raises :exc:`OverflowError` on lengths larger than
+ :data:`sys.maxsize`, such as :class:`range(2 ** 100) `.
+
.. _func-list:
.. class:: list([iterable])
From 0ca7cc7fc0518c24dc9b78c38418e6064e64f148 Mon Sep 17 00:00:00 2001
From: Kyle Stanley
Date: Sun, 12 Jan 2020 06:02:50 -0500
Subject: [PATCH 106/380] bpo-38356: Fix ThreadedChildWatcher thread leak in
test_asyncio (GH-16552)
Motivation for this PR (comment from @vstinner in bpo issue):
```
Warning seen o AMD64 Ubuntu Shared 3.x buildbot:
https://buildbot.python.org/all/#/builders/141/builds/2593
test_devnull_output (test.test_a=syncio.test_subprocess.SubprocessThreadedWatcherTests) ...
Warning -- threading_cleanup() failed to cleanup 1 threads (count: 1, dangling: 2)
```
The following implementation details for the new method are TBD:
1) Public vs private
2) Inclusion in `close()`
3) Name
4) Coroutine vs subroutine method
5) *timeout* parameter
If it's a private method, 3, 4, and 5 are significantly less important.
I started with the most minimal implementation that fixes the dangling threads without modifying the regression tests, which I think is particularly important. I typically try to avoid directly modifying existing tests as much as possible unless it's necessary to do so. However, I am open to changing any part of this.
https://bugs.python.org/issue38356
---
Lib/asyncio/unix_events.py | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/Lib/asyncio/unix_events.py b/Lib/asyncio/unix_events.py
index 28fb4918645..19d713545e4 100644
--- a/Lib/asyncio/unix_events.py
+++ b/Lib/asyncio/unix_events.py
@@ -1344,7 +1344,14 @@ class ThreadedChildWatcher(AbstractChildWatcher):
return True
def close(self):
- pass
+ self._join_threads()
+
+ def _join_threads(self):
+ """Internal: Join all non-daemon threads"""
+ threads = [thread for thread in list(self._threads.values())
+ if thread.is_alive() and not thread.daemon]
+ for thread in threads:
+ thread.join()
def __enter__(self):
return self
From 54cfbb2feee1f7328c3d6799ec3734b00824b555 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Sun, 12 Jan 2020 12:57:47 +0100
Subject: [PATCH 107/380] bpo-39288: Add examples to math.nextafter()
documentation (GH-17962)
---
Doc/library/math.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Doc/library/math.rst b/Doc/library/math.rst
index 135adf8f636..c9f2a383312 100644
--- a/Doc/library/math.rst
+++ b/Doc/library/math.rst
@@ -219,6 +219,13 @@ Number-theoretic and representation functions
If *x* is equal to *y*, return *y*.
+ Examples:
+
+ * ``math.nextafter(x, math.inf)`` goes up: towards positive infinity.
+ * ``math.nextafter(x, -math.inf)`` goes down: towards minus infinity.
+ * ``math.nextafter(x, 0.0)`` goes towards zero.
+ * ``math.nextafter(x, math.copysign(math.inf, x))`` goes away from zero.
+
.. versionadded:: 3.9
.. function:: perm(n, k=None)
From 9f3fc6c5b4993f2b362263b494f84793a21aa073 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gu=C3=B0ni=20Natan=20Gunnarsson?=
<1493259+GudniNatan@users.noreply.github.com>
Date: Sun, 12 Jan 2020 17:41:49 +0000
Subject: [PATCH 108/380] bpo-38293: Allow shallow and deep copying of property
objects (GH-16438)
Copying property objects results in a TypeError. Steps to reproduce:
```
>>> import copy
>>> obj = property()
>>> copy.copy(obj)
````
This affects both shallow and deep copying.
My idea for a fix is to add property objects to the list of "atomic" objects in the copy module.
These already include types like functions and type objects.
I also added property objects to the unit tests test_copy_atomic and test_deepcopy_atomic. This is my first PR, and it's highly likely I've made some mistake, so please be kind :)
https://bugs.python.org/issue38293
---
Lib/copy.py | 3 ++-
Lib/test/test_copy.py | 4 ++--
.../next/Library/2019-09-29-08-17-03.bpo-38293.wls5s3.rst | 1 +
3 files changed, 5 insertions(+), 3 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2019-09-29-08-17-03.bpo-38293.wls5s3.rst
diff --git a/Lib/copy.py b/Lib/copy.py
index f53cd8c5874..41873f2c046 100644
--- a/Lib/copy.py
+++ b/Lib/copy.py
@@ -107,7 +107,7 @@ _copy_dispatch = d = {}
def _copy_immutable(x):
return x
for t in (type(None), int, float, bool, complex, str, tuple,
- bytes, frozenset, type, range, slice,
+ bytes, frozenset, type, range, slice, property,
types.BuiltinFunctionType, type(Ellipsis), type(NotImplemented),
types.FunctionType, weakref.ref):
d[t] = _copy_immutable
@@ -195,6 +195,7 @@ d[type] = _deepcopy_atomic
d[types.BuiltinFunctionType] = _deepcopy_atomic
d[types.FunctionType] = _deepcopy_atomic
d[weakref.ref] = _deepcopy_atomic
+d[property] = _deepcopy_atomic
def _deepcopy_list(x, memo, deepcopy=deepcopy):
y = []
diff --git a/Lib/test/test_copy.py b/Lib/test/test_copy.py
index 45a692022f2..35f72fb216b 100644
--- a/Lib/test/test_copy.py
+++ b/Lib/test/test_copy.py
@@ -99,7 +99,7 @@ class TestCopy(unittest.TestCase):
42, 2**100, 3.14, True, False, 1j,
"hello", "hello\u1234", f.__code__,
b"world", bytes(range(256)), range(10), slice(1, 10, 2),
- NewStyle, Classic, max, WithMetaclass]
+ NewStyle, Classic, max, WithMetaclass, property()]
for x in tests:
self.assertIs(copy.copy(x), x)
@@ -357,7 +357,7 @@ class TestCopy(unittest.TestCase):
pass
tests = [None, 42, 2**100, 3.14, True, False, 1j,
"hello", "hello\u1234", f.__code__,
- NewStyle, Classic, max]
+ NewStyle, Classic, max, property()]
for x in tests:
self.assertIs(copy.deepcopy(x), x)
diff --git a/Misc/NEWS.d/next/Library/2019-09-29-08-17-03.bpo-38293.wls5s3.rst b/Misc/NEWS.d/next/Library/2019-09-29-08-17-03.bpo-38293.wls5s3.rst
new file mode 100644
index 00000000000..0b19551970e
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-09-29-08-17-03.bpo-38293.wls5s3.rst
@@ -0,0 +1 @@
+Add :func:`copy.copy` and :func:`copy.deepcopy` support to :func:`property` objects.
\ No newline at end of file
From 6680f4a9f5d15ab82b2ab6266c6f917cb78c919a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Batuhan=20Ta=C5=9Fkaya?=
<47358913+isidentical@users.noreply.github.com>
Date: Sun, 12 Jan 2020 23:38:53 +0300
Subject: [PATCH 109/380] bpo-3530: Add advice on when to correctly use
fix_missing_locations in the AST docs (GH-17172)
Co-authored-by: Pablo Galindo
---
Doc/library/ast.rst | 10 +++++++++-
.../2019-11-17-11-53-10.bpo-3530.8zFUMc.rst | 2 ++
2 files changed, 11 insertions(+), 1 deletion(-)
create mode 100644 Misc/NEWS.d/next/Documentation/2019-11-17-11-53-10.bpo-3530.8zFUMc.rst
diff --git a/Doc/library/ast.rst b/Doc/library/ast.rst
index c380a81bee6..2cee8738e58 100644
--- a/Doc/library/ast.rst
+++ b/Doc/library/ast.rst
@@ -316,7 +316,7 @@ and classes for traversing abstract syntax trees:
class RewriteName(NodeTransformer):
def visit_Name(self, node):
- return copy_location(Subscript(
+ return Subscript(
value=Name(id='data', ctx=Load()),
slice=Index(value=Constant(value=node.id)),
ctx=node.ctx
@@ -330,6 +330,14 @@ and classes for traversing abstract syntax trees:
statement nodes), the visitor may also return a list of nodes rather than
just a single node.
+ If :class:`NodeTransformer` introduces new nodes (that weren't part of
+ original tree) without giving them location information (such as
+ :attr:`lineno`), :func:`fix_missing_locations` should be called with
+ the new sub-tree to recalculate the location information::
+
+ tree = ast.parse('foo', mode='eval')
+ new_tree = fix_missing_locations(RewriteName().visit(tree))
+
Usually you use the transformer like this::
node = YourTransformer().visit(node)
diff --git a/Misc/NEWS.d/next/Documentation/2019-11-17-11-53-10.bpo-3530.8zFUMc.rst b/Misc/NEWS.d/next/Documentation/2019-11-17-11-53-10.bpo-3530.8zFUMc.rst
new file mode 100644
index 00000000000..65f1a6d156a
--- /dev/null
+++ b/Misc/NEWS.d/next/Documentation/2019-11-17-11-53-10.bpo-3530.8zFUMc.rst
@@ -0,0 +1,2 @@
+In the :mod:`ast` module documentation, fix a misleading ``NodeTransformer`` example and add
+advice on when to use the ``fix_missing_locations`` function.
From 14dbe4b3f0a888a60e8cc20f3df5aa09c8bb82c3 Mon Sep 17 00:00:00 2001
From: Ram Rachum
Date: Sun, 12 Jan 2020 22:53:00 +0200
Subject: [PATCH 110/380] Fix outdated comment in _strptime.py (GH-17929)
Can I please get the tags for skipping bpo and skipping a news item?
---
Lib/_strptime.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Lib/_strptime.py b/Lib/_strptime.py
index f4f3c0b80c1..5df37f5f4b8 100644
--- a/Lib/_strptime.py
+++ b/Lib/_strptime.py
@@ -182,7 +182,7 @@ class TimeRE(dict):
self.locale_time = LocaleTime()
base = super()
base.__init__({
- # The " \d" part of the regex is to make %c from ANSI C work
+ # The " [1-9]" part of the regex is to make %c from ANSI C work
'd': r"(?P3[0-1]|[1-2]\d|0[1-9]|[1-9]| [1-9])",
'f': r"(?P[0-9]{1,6})",
'H': r"(?P2[0-3]|[0-1]\d|\d)",
From 61b14151cc92021a10f94765eaa152ed04eb262a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Batuhan=20Ta=C5=9Fkaya?=
<47358913+isidentical@users.noreply.github.com>
Date: Mon, 13 Jan 2020 01:13:31 +0300
Subject: [PATCH 111/380] bpo-39313: Add an option to RefactoringTool for using
exec as a function (GH-17967)
https://bugs.python.org/issue39313
Automerge-Triggered-By: @pablogsal
---
Doc/library/2to3.rst | 2 +-
Lib/lib2to3/main.py | 5 +++++
Lib/lib2to3/refactor.py | 12 ++++++++----
Lib/lib2to3/tests/test_refactor.py | 10 +++++++---
.../Library/2020-01-12-18-17-00.bpo-39313.DCTsnm.rst | 2 ++
5 files changed, 23 insertions(+), 8 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-12-18-17-00.bpo-39313.DCTsnm.rst
diff --git a/Doc/library/2to3.rst b/Doc/library/2to3.rst
index c3ff3e607e7..eb4c9185f48 100644
--- a/Doc/library/2to3.rst
+++ b/Doc/library/2to3.rst
@@ -102,7 +102,7 @@ presence of the ``from __future__ import print_function`` compiler directive, it
modifies its internal grammar to interpret :func:`print` as a function. This
change can also be enabled manually with the :option:`!-p` flag. Use
:option:`!-p` to run fixers on code that already has had its print statements
-converted.
+converted. Also :option:`!-e` can be used to make :func:`exec` a function.
The :option:`!-o` or :option:`!--output-dir` option allows specification of an
alternate directory for processed output files to be written to. The
diff --git a/Lib/lib2to3/main.py b/Lib/lib2to3/main.py
index c51626babf8..f2849fd6be3 100644
--- a/Lib/lib2to3/main.py
+++ b/Lib/lib2to3/main.py
@@ -154,6 +154,8 @@ def main(fixer_pkg, args=None):
help="List available transformations")
parser.add_option("-p", "--print-function", action="store_true",
help="Modify the grammar so that print() is a function")
+ parser.add_option("-e", "--exec-function", action="store_true",
+ help="Modify the grammar so that exec() is a function")
parser.add_option("-v", "--verbose", action="store_true",
help="More verbose logging")
parser.add_option("--no-diffs", action="store_true",
@@ -211,6 +213,9 @@ def main(fixer_pkg, args=None):
if options.print_function:
flags["print_function"] = True
+ if options.exec_function:
+ flags["exec_function"] = True
+
# Set up logging handler
level = logging.DEBUG if options.verbose else logging.INFO
logging.basicConfig(format='%(name)s: %(message)s', level=level)
diff --git a/Lib/lib2to3/refactor.py b/Lib/lib2to3/refactor.py
index 55fd60fa27c..3a5aafffc6d 100644
--- a/Lib/lib2to3/refactor.py
+++ b/Lib/lib2to3/refactor.py
@@ -155,6 +155,7 @@ class FixerError(Exception):
class RefactoringTool(object):
_default_options = {"print_function" : False,
+ "exec_function": False,
"write_unchanged_files" : False}
CLASS_PREFIX = "Fix" # The prefix for fixer classes
@@ -173,10 +174,13 @@ class RefactoringTool(object):
self.options = self._default_options.copy()
if options is not None:
self.options.update(options)
- if self.options["print_function"]:
- self.grammar = pygram.python_grammar_no_print_statement
- else:
- self.grammar = pygram.python_grammar
+ self.grammar = pygram.python_grammar.copy()
+
+ if self.options['print_function']:
+ del self.grammar.keywords["print"]
+ elif self.options['exec_function']:
+ del self.grammar.keywords["exec"]
+
# When this is True, the refactor*() methods will call write_file() for
# files processed even if they were not changed during refactoring. If
# and only if the refactor method's write parameter was True.
diff --git a/Lib/lib2to3/tests/test_refactor.py b/Lib/lib2to3/tests/test_refactor.py
index 9e3b8fbb90b..be705679f06 100644
--- a/Lib/lib2to3/tests/test_refactor.py
+++ b/Lib/lib2to3/tests/test_refactor.py
@@ -44,9 +44,13 @@ class TestRefactoringTool(unittest.TestCase):
def test_print_function_option(self):
rt = self.rt({"print_function" : True})
- self.assertIs(rt.grammar, pygram.python_grammar_no_print_statement)
- self.assertIs(rt.driver.grammar,
- pygram.python_grammar_no_print_statement)
+ self.assertNotIn("print", rt.grammar.keywords)
+ self.assertNotIn("print", rt.driver.grammar.keywords)
+
+ def test_exec_function_option(self):
+ rt = self.rt({"exec_function" : True})
+ self.assertNotIn("exec", rt.grammar.keywords)
+ self.assertNotIn("exec", rt.driver.grammar.keywords)
def test_write_unchanged_files_option(self):
rt = self.rt()
diff --git a/Misc/NEWS.d/next/Library/2020-01-12-18-17-00.bpo-39313.DCTsnm.rst b/Misc/NEWS.d/next/Library/2020-01-12-18-17-00.bpo-39313.DCTsnm.rst
new file mode 100644
index 00000000000..784d73c7b3f
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-12-18-17-00.bpo-39313.DCTsnm.rst
@@ -0,0 +1,2 @@
+Add a new ``exec_function`` option (*--exec-function* in the CLI) to
+``RefactoringTool`` for making ``exec`` a function. Patch by Batuhan Taskaya.
From b2b4a51f7463a0392456f7772f33223e57fa4ccc Mon Sep 17 00:00:00 2001
From: Philip McMahon
Date: Sun, 12 Jan 2020 22:31:49 +0000
Subject: [PATCH 112/380] bpo-32021: Support brotli .br encoding in mimetypes
(#12200)
Add support for brotli encoding in the encoding_map.
---
Lib/mimetypes.py | 1 +
.../Core and Builtins/2019-03-11-13-30-40.bpo-32021.dpbtkP.rst | 1 +
2 files changed, 2 insertions(+)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-03-11-13-30-40.bpo-32021.dpbtkP.rst
diff --git a/Lib/mimetypes.py b/Lib/mimetypes.py
index 9b42bf6dd2c..a09e618d8a5 100644
--- a/Lib/mimetypes.py
+++ b/Lib/mimetypes.py
@@ -401,6 +401,7 @@ def _default_mime_types():
'.Z': 'compress',
'.bz2': 'bzip2',
'.xz': 'xz',
+ '.br': 'br',
}
# Before adding new types, make sure they are either registered with IANA,
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-03-11-13-30-40.bpo-32021.dpbtkP.rst b/Misc/NEWS.d/next/Core and Builtins/2019-03-11-13-30-40.bpo-32021.dpbtkP.rst
new file mode 100644
index 00000000000..a07f6d3e85a
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2019-03-11-13-30-40.bpo-32021.dpbtkP.rst
@@ -0,0 +1 @@
+Include brotli .br encoding in mimetypes encodings_map
\ No newline at end of file
From 7ba6f18de2582755ae31888ba6a4237d96dddc48 Mon Sep 17 00:00:00 2001
From: Alex Henrie
Date: Mon, 13 Jan 2020 03:35:47 -0700
Subject: [PATCH 113/380] bpo-39307: Fix memory leak on error path in parsetok
(GH-17953)
---
Parser/parsetok.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/Parser/parsetok.c b/Parser/parsetok.c
index a5d78974b87..2bb733d0dcd 100644
--- a/Parser/parsetok.c
+++ b/Parser/parsetok.c
@@ -246,6 +246,7 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
if ((ps = PyParser_New(g, start)) == NULL) {
err_ret->error = E_NOMEM;
+ growable_comment_array_deallocate(&type_ignores);
PyTokenizer_Free(tok);
return NULL;
}
From 0b2ab21956fbab8eab6d064060d4544499730316 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Mon, 13 Jan 2020 12:44:35 +0100
Subject: [PATCH 114/380] bpo-39310: Add math.ulp(x) (GH-17965)
Add math.ulp(): return the value of the least significant bit
of a float.
---
Doc/library/math.rst | 26 +++++++++
Doc/library/sys.rst | 22 +++++---
Doc/whatsnew/3.9.rst | 4 ++
Lib/test/test_math.py | 55 +++++++++----------
.../2020-01-12-13-34-42.bpo-39310.YMRdcj.rst | 1 +
Modules/clinic/mathmodule.c.h | 41 +++++++++++++-
Modules/mathmodule.c | 32 +++++++++++
7 files changed, 144 insertions(+), 37 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-12-13-34-42.bpo-39310.YMRdcj.rst
diff --git a/Doc/library/math.rst b/Doc/library/math.rst
index c9f2a383312..c4c180037f8 100644
--- a/Doc/library/math.rst
+++ b/Doc/library/math.rst
@@ -226,6 +226,8 @@ Number-theoretic and representation functions
* ``math.nextafter(x, 0.0)`` goes towards zero.
* ``math.nextafter(x, math.copysign(math.inf, x))`` goes away from zero.
+ See also :func:`math.ulp`.
+
.. versionadded:: 3.9
.. function:: perm(n, k=None)
@@ -284,6 +286,30 @@ Number-theoretic and representation functions
:class:`~numbers.Integral` (usually an integer). Delegates to
:meth:`x.__trunc__() `.
+.. function:: ulp(x)
+
+ Return the value of the least significant bit of the float *x*:
+
+ * If *x* is a NaN (not a number), return *x*.
+ * If *x* is negative, return ``ulp(-x)``.
+ * If *x* is a positive infinity, return *x*.
+ * If *x* is equal to zero, return the smallest positive
+ *denormalized* representable float (smaller than the minimum positive
+ *normalized* float, :data:`sys.float_info.min `).
+ * If *x* is equal to the largest positive representable float,
+ return the value of the least significant bit of *x*, such that the first
+ float smaller than *x* is ``x - ulp(x)``.
+ * Otherwise (*x* is a positive finite number), return the value of the least
+ significant bit of *x*, such that the first float bigger than *x*
+ is ``x + ulp(x)``.
+
+ ULP stands for "Unit in the Last Place".
+
+ See also :func:`math.nextafter` and :data:`sys.float_info.epsilon
+ `.
+
+ .. versionadded:: 3.9
+
Note that :func:`frexp` and :func:`modf` have a different call/return pattern
than their C equivalents: they take a single argument and return a pair of
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
index 0aae263ff5f..351a8e4c9ea 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -479,8 +479,10 @@ always available.
+---------------------+----------------+--------------------------------------------------+
| attribute | float.h macro | explanation |
+=====================+================+==================================================+
- | :const:`epsilon` | DBL_EPSILON | difference between 1 and the least value greater |
- | | | than 1 that is representable as a float |
+ | :const:`epsilon` | DBL_EPSILON | difference between 1.0 and the least value |
+ | | | greater than 1.0 that is representable as a float|
+ | | | |
+ | | | See also :func:`math.ulp`. |
+---------------------+----------------+--------------------------------------------------+
| :const:`dig` | DBL_DIG | maximum number of decimal digits that can be |
| | | faithfully represented in a float; see below |
@@ -488,20 +490,24 @@ always available.
| :const:`mant_dig` | DBL_MANT_DIG | float precision: the number of base-``radix`` |
| | | digits in the significand of a float |
+---------------------+----------------+--------------------------------------------------+
- | :const:`max` | DBL_MAX | maximum representable finite float |
+ | :const:`max` | DBL_MAX | maximum representable positive finite float |
+---------------------+----------------+--------------------------------------------------+
- | :const:`max_exp` | DBL_MAX_EXP | maximum integer e such that ``radix**(e-1)`` is |
+ | :const:`max_exp` | DBL_MAX_EXP | maximum integer *e* such that ``radix**(e-1)`` is|
| | | a representable finite float |
+---------------------+----------------+--------------------------------------------------+
- | :const:`max_10_exp` | DBL_MAX_10_EXP | maximum integer e such that ``10**e`` is in the |
+ | :const:`max_10_exp` | DBL_MAX_10_EXP | maximum integer *e* such that ``10**e`` is in the|
| | | range of representable finite floats |
+---------------------+----------------+--------------------------------------------------+
- | :const:`min` | DBL_MIN | minimum positive normalized float |
+ | :const:`min` | DBL_MIN | minimum representable positive *normalized* float|
+ | | | |
+ | | | Use :func:`math.ulp(0.0) ` to get the |
+ | | | smallest positive *denormalized* representable |
+ | | | float. |
+---------------------+----------------+--------------------------------------------------+
- | :const:`min_exp` | DBL_MIN_EXP | minimum integer e such that ``radix**(e-1)`` is |
+ | :const:`min_exp` | DBL_MIN_EXP | minimum integer *e* such that ``radix**(e-1)`` is|
| | | a normalized float |
+---------------------+----------------+--------------------------------------------------+
- | :const:`min_10_exp` | DBL_MIN_10_EXP | minimum integer e such that ``10**e`` is a |
+ | :const:`min_10_exp` | DBL_MIN_10_EXP | minimum integer *e* such that ``10**e`` is a |
| | | normalized float |
+---------------------+----------------+--------------------------------------------------+
| :const:`radix` | FLT_RADIX | radix of exponent representation |
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index a686d640ae9..340079c0e69 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -184,6 +184,10 @@ Add :func:`math.nextafter`: return the next floating-point value after *x*
towards *y*.
(Contributed by Victor Stinner in :issue:`39288`.)
+Add :func:`math.ulp`: return the value of the least significant bit
+of a float.
+(Contributed by Victor Stinner in :issue:`39310`.)
+
nntplib
-------
diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py
index b64fd41a548..6d10227a0c1 100644
--- a/Lib/test/test_math.py
+++ b/Lib/test/test_math.py
@@ -53,30 +53,6 @@ def to_ulps(x):
return n
-def ulp(x):
- """Return the value of the least significant bit of a
- float x, such that the first float bigger than x is x+ulp(x).
- Then, given an expected result x and a tolerance of n ulps,
- the result y should be such that abs(y-x) <= n * ulp(x).
- The results from this function will only make sense on platforms
- where native doubles are represented in IEEE 754 binary64 format.
- """
- x = abs(float(x))
- if math.isnan(x) or math.isinf(x):
- return x
-
- # Find next float up from x.
- n = struct.unpack(' double
+
+ x: double
+ /
+
+Return the value of the least significant bit of the float x.
+[clinic start generated code]*/
+
+static double
+math_ulp_impl(PyObject *module, double x)
+/*[clinic end generated code: output=f5207867a9384dd4 input=31f9bfbbe373fcaa]*/
+{
+ if (Py_IS_NAN(x)) {
+ return x;
+ }
+ x = fabs(x);
+ if (Py_IS_INFINITY(x)) {
+ return x;
+ }
+ double inf = m_inf();
+ double x2 = nextafter(x, inf);
+ if (Py_IS_INFINITY(x2)) {
+ /* special case: x is the largest positive representable float */
+ x2 = nextafter(x, -inf);
+ return x - x2;
+ }
+ return x2 - x;
+}
+
+
static PyMethodDef math_methods[] = {
{"acos", math_acos, METH_O, math_acos_doc},
{"acosh", math_acosh, METH_O, math_acosh_doc},
@@ -3366,6 +3397,7 @@ static PyMethodDef math_methods[] = {
MATH_PERM_METHODDEF
MATH_COMB_METHODDEF
MATH_NEXTAFTER_METHODDEF
+ MATH_ULP_METHODDEF
{NULL, NULL} /* sentinel */
};
From d23f78267a9082b6a8fa63ef601fdf9669e57ede Mon Sep 17 00:00:00 2001
From: Emmanuel Arias
Date: Mon, 13 Jan 2020 08:58:52 -0300
Subject: [PATCH 115/380] Remove unused functions in Parser/parsetok.c
(GH-17365)
---
Parser/parsetok.c | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/Parser/parsetok.c b/Parser/parsetok.c
index 2bb733d0dcd..b0b1bd38a7b 100644
--- a/Parser/parsetok.c
+++ b/Parser/parsetok.c
@@ -207,24 +207,6 @@ PyParser_ParseFileFlagsEx(FILE *fp, const char *filename,
return n;
}
-#ifdef PY_PARSER_REQUIRES_FUTURE_KEYWORD
-#if 0
-static const char with_msg[] =
-"%s:%d: Warning: 'with' will become a reserved keyword in Python 2.6\n";
-
-static const char as_msg[] =
-"%s:%d: Warning: 'as' will become a reserved keyword in Python 2.6\n";
-
-static void
-warn(const char *msg, const char *filename, int lineno)
-{
- if (filename == NULL)
- filename = "";
- PySys_WriteStderr(msg, filename, lineno);
-}
-#endif
-#endif
-
/* Parse input coming from the given tokenizer structure.
Return error code. */
From 97f1267a5431db97bd6f88f996a35ea516581100 Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Mon, 13 Jan 2020 12:25:05 +0000
Subject: [PATCH 116/380] Fix typos in gcmodule.c and restructure comments for
clarity (GH-17983)
---
Modules/gcmodule.c | 80 +++++++++++++++++++++-------------------------
1 file changed, 36 insertions(+), 44 deletions(-)
diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c
index b11ae842e22..5fef114d73e 100644
--- a/Modules/gcmodule.c
+++ b/Modules/gcmodule.c
@@ -609,7 +609,7 @@ move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
// NEXT_MASK_UNREACHABLE flag, we set it unconditionally.
// But this may pollute the unreachable list head's 'next' pointer
// too. That's semantically senseless but expedient here - the
- // damage is repaired when this fumction ends.
+ // damage is repaired when this function ends.
last->_gc_next = (NEXT_MASK_UNREACHABLE | (uintptr_t)gc);
_PyGCHead_SET_PREV(gc, last);
gc->_gc_next = (NEXT_MASK_UNREACHABLE | (uintptr_t)unreachable);
@@ -1039,7 +1039,7 @@ clear_freelists(void)
(void)PyContext_ClearFreeList();
}
-// Show stats for objects in each gennerations.
+// Show stats for objects in each generations
static void
show_stats_each_generations(GCState *gcstate)
{
@@ -1058,17 +1058,17 @@ show_stats_each_generations(GCState *gcstate)
buf, gc_list_size(&gcstate->permanent_generation.head));
}
-/* Deduce wich objects among "base" are unreachable from outside the list
+/* Deduce which objects among "base" are unreachable from outside the list
and move them to 'unreachable'. The process consist in the following steps:
1. Copy all reference counts to a different field (gc_prev is used to hold
this copy to save memory).
2. Traverse all objects in "base" and visit all referred objects using
- "tp_traverse" and for every visited object, substract 1 to the reference
+ "tp_traverse" and for every visited object, subtract 1 to the reference
count (the one that we copied in the previous step). After this step, all
objects that can be reached directly from outside must have strictly positive
reference count, while all unreachable objects must have a count of exactly 0.
-3. Indentify all unreachable objects (the ones with 0 reference count) and move
+3. Identify all unreachable objects (the ones with 0 reference count) and move
them to the "unreachable" list. This step also needs to move back to "base" all
objects that were initially marked as unreachable but are referred transitively
by the reachable objects (the ones with strictly positive reference count).
@@ -1098,10 +1098,38 @@ deduce_unreachable(PyGC_Head *base, PyGC_Head *unreachable) {
/* Leave everything reachable from outside base in base, and move
* everything else (in base) to unreachable.
+ *
* NOTE: This used to move the reachable objects into a reachable
* set instead. But most things usually turn out to be reachable,
- * so it's more efficient to move the unreachable things. See note
- ^ [REACHABLE OR UNREACHABLE?] at the file end.
+ * so it's more efficient to move the unreachable things. It "sounds slick"
+ * to move the unreachable objects, until you think about it - the reason it
+ * pays isn't actually obvious.
+ *
+ * Suppose we create objects A, B, C in that order. They appear in the young
+ * generation in the same order. If B points to A, and C to B, and C is
+ * reachable from outside, then the adjusted refcounts will be 0, 0, and 1
+ * respectively.
+ *
+ * When move_unreachable finds A, A is moved to the unreachable list. The
+ * same for B when it's first encountered. Then C is traversed, B is moved
+ * _back_ to the reachable list. B is eventually traversed, and then A is
+ * moved back to the reachable list.
+ *
+ * So instead of not moving at all, the reachable objects B and A are moved
+ * twice each. Why is this a win? A straightforward algorithm to move the
+ * reachable objects instead would move A, B, and C once each.
+ *
+ * The key is that this dance leaves the objects in order C, B, A - it's
+ * reversed from the original order. On all _subsequent_ scans, none of
+ * them will move. Since most objects aren't in cycles, this can save an
+ * unbounded number of moves across an unbounded number of later collections.
+ * It can cost more only the first time the chain is scanned.
+ *
+ * Drawback: move_unreachable is also used to find out what's still trash
+ * after finalizers may resurrect objects. In _that_ case most unreachable
+ * objects will remain unreachable, so it would be more efficient to move
+ * the reachable objects instead. But this is a one-time cost, probably not
+ * worth complicating the code to speed just a little.
*/
gc_list_init(unreachable);
move_unreachable(base, unreachable); // gc_prev is pointer again
@@ -1197,7 +1225,7 @@ collect(PyThreadState *tstate, int generation,
gc_list_merge(young, old);
}
else {
- /* We only untrack dicts in full collections, to avoid quadratic
+ /* We only un-track dicts in full collections, to avoid quadratic
dict build-up. See issue #14775. */
untrack_dicts(young);
gcstate->long_lived_pending = 0;
@@ -2269,39 +2297,3 @@ PyObject_GC_Del(void *op)
}
PyObject_FREE(g);
}
-
-/* ------------------------------------------------------------------------
-Notes
-
-[REACHABLE OR UNREACHABLE?]
-
-It "sounds slick" to move the unreachable objects, until you think about
-it - the reason it pays isn't actually obvious.
-
-Suppose we create objects A, B, C in that order. They appear in the young
-generation in the same order. If B points to A, and C to B, and C is
-reachable from outside, then the adjusted refcounts will be 0, 0, and 1
-respectively.
-
-When move_unreachable finds A, A is moved to the unreachable list. The
-same for B when it's first encountered. Then C is traversed, B is moved
-_back_ to the reachable list. B is eventually traversed, and then A is
-moved back to the reachable list.
-
-So instead of not moving at all, the reachable objects B and A are moved
-twice each. Why is this a win? A straightforward algorithm to move the
-reachable objects instead would move A, B, and C once each.
-
-The key is that this dance leaves the objects in order C, B, A - it's
-reversed from the original order. On all _subsequent_ scans, none of
-them will move. Since most objects aren't in cycles, this can save an
-unbounded number of moves across an unbounded number of later collections.
-It can cost more only the first time the chain is scanned.
-
-Drawback: move_unreachable is also used to find out what's still trash
-after finalizers may resurrect objects. In _that_ case most unreachable
-objects will remain unreachable, so it would be more efficient to move
-the reachable objects instead. But this is a one-time cost, probably not
-worth complicating the code to speed just a little.
------------------------------------------------------------------------- */
-
From e7c9f4aae1a8540fe8e9a8a5017b16f906f51068 Mon Sep 17 00:00:00 2001
From: Mark Shannon
Date: Mon, 13 Jan 2020 12:51:26 +0000
Subject: [PATCH 117/380] Cleanup exit code for interpreter. (GH-17756)
---
Lib/test/test_code.py | 36 ------------------------------------
Python/ceval.c | 11 +++++------
2 files changed, 5 insertions(+), 42 deletions(-)
diff --git a/Lib/test/test_code.py b/Lib/test/test_code.py
index 656c46cfaa7..7bb824ea31d 100644
--- a/Lib/test/test_code.py
+++ b/Lib/test/test_code.py
@@ -434,42 +434,6 @@ if check_impl_detail(cpython=True) and ctypes is not None:
tt.join()
self.assertEqual(LAST_FREED, 500)
- @cpython_only
- def test_clean_stack_on_return(self):
-
- def f(x):
- return x
-
- code = f.__code__
- ct = type(f.__code__)
-
- # Insert an extra LOAD_FAST, this duplicates the value of
- # 'x' in the stack, leaking it if the frame is not properly
- # cleaned up upon exit.
-
- bytecode = list(code.co_code)
- bytecode.insert(-2, opcode.opmap['LOAD_FAST'])
- bytecode.insert(-2, 0)
-
- c = ct(code.co_argcount, code.co_posonlyargcount,
- code.co_kwonlyargcount, code.co_nlocals, code.co_stacksize+1,
- code.co_flags, bytes(bytecode),
- code.co_consts, code.co_names, code.co_varnames,
- code.co_filename, code.co_name, code.co_firstlineno,
- code.co_lnotab, code.co_freevars, code.co_cellvars)
- new_function = type(f)(c, f.__globals__, 'nf', f.__defaults__, f.__closure__)
-
- class Var:
- pass
- the_object = Var()
- var = weakref.ref(the_object)
-
- new_function(the_object)
-
- # Check if the_object is leaked
- del the_object
- assert var() is None
-
def test_main(verbose=None):
from test import test_code
diff --git a/Python/ceval.c b/Python/ceval.c
index 3bbd0ca9667..f780c212c5f 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1913,7 +1913,8 @@ main_loop:
case TARGET(RETURN_VALUE): {
retval = POP();
assert(f->f_iblock == 0);
- goto exit_returning;
+ assert(EMPTY());
+ goto exiting;
}
case TARGET(GET_AITER): {
@@ -2083,7 +2084,7 @@ main_loop:
/* and repeat... */
assert(f->f_lasti >= (int)sizeof(_Py_CODEUNIT));
f->f_lasti -= sizeof(_Py_CODEUNIT);
- goto exit_yielding;
+ goto exiting;
}
case TARGET(YIELD_VALUE): {
@@ -2100,7 +2101,7 @@ main_loop:
}
f->f_stacktop = stack_pointer;
- goto exit_yielding;
+ goto exiting;
}
case TARGET(POP_EXCEPT): {
@@ -3632,15 +3633,13 @@ exception_unwind:
assert(retval == NULL);
assert(_PyErr_Occurred(tstate));
-exit_returning:
-
/* Pop remaining stack entries. */
while (!EMPTY()) {
PyObject *o = POP();
Py_XDECREF(o);
}
-exit_yielding:
+exiting:
if (tstate->use_tracing) {
if (tstate->c_tracefunc) {
if (call_trace_protected(tstate->c_tracefunc, tstate->c_traceobj,
From c1ee6e5e9b87c9812c6745c1dd6c1788a984f9f9 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Mon, 13 Jan 2020 14:57:14 +0100
Subject: [PATCH 118/380] bpo-20443: Update What's New In Python 3.9 (GH-17986)
The sys.argv[0] change has been reverted.
---
Doc/whatsnew/3.9.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 340079c0e69..b6ffa234536 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -83,7 +83,7 @@ Other Language Changes
* Python now gets the absolute path of the script filename specified on
the command line (ex: ``python3 script.py``): the ``__file__`` attribute of
- the :mod:`__main__` module, ``sys.argv[0]`` and ``sys.path[0]`` become an
+ the :mod:`__main__` module and ``sys.path[0]`` become an
absolute path, rather than a relative path. These paths now remain valid
after the current directory is changed by :func:`os.chdir`. As a side effect,
a traceback also displays the absolute path for :mod:`__main__` module frames
From d8efc1495194228c3a4cd472200275d6491d8e2d Mon Sep 17 00:00:00 2001
From: Karthikeyan Singaravelan
Date: Mon, 13 Jan 2020 20:09:36 +0530
Subject: [PATCH 119/380] bpo-39299: Add more tests for mimetypes and its cli.
(GH-17949)
* Add tests for case insensitive check of types and extensions as fallback.
* Add tests for data url with no comma.
* Add tests for read_mime_types.
* Add tests for the mimetypes cli and refactor __main__ code to private function.
* Restore mimetypes.knownfiles value at the end of the test.
---
Lib/mimetypes.py | 6 ++-
Lib/test/test_mimetypes.py | 84 ++++++++++++++++++++++++++++++++++++--
2 files changed, 85 insertions(+), 5 deletions(-)
diff --git a/Lib/mimetypes.py b/Lib/mimetypes.py
index a09e618d8a5..e972ca2e291 100644
--- a/Lib/mimetypes.py
+++ b/Lib/mimetypes.py
@@ -564,7 +564,7 @@ def _default_mime_types():
_default_mime_types()
-if __name__ == '__main__':
+def _main():
import getopt
USAGE = """\
@@ -608,3 +608,7 @@ More than one type argument may be given.
guess, encoding = guess_type(gtype, strict)
if not guess: print("I don't know anything about type", gtype)
else: print('type:', guess, 'encoding:', encoding)
+
+
+if __name__ == '__main__':
+ _main()
diff --git a/Lib/test/test_mimetypes.py b/Lib/test/test_mimetypes.py
index a5a06b189de..9cac6ce0225 100644
--- a/Lib/test/test_mimetypes.py
+++ b/Lib/test/test_mimetypes.py
@@ -8,10 +8,20 @@ import unittest
from test import support
from platform import win32_edition
-# Tell it we don't know about external files:
-mimetypes.knownfiles = []
-mimetypes.inited = False
-mimetypes._default_mime_types()
+
+def setUpModule():
+ global knownfiles
+ knownfiles = mimetypes.knownfiles
+
+ # Tell it we don't know about external files:
+ mimetypes.knownfiles = []
+ mimetypes.inited = False
+ mimetypes._default_mime_types()
+
+
+def tearDownModule():
+ # Restore knownfiles to its initial state
+ mimetypes.knownfiles = knownfiles
class MimeTypesTestCase(unittest.TestCase):
@@ -21,6 +31,7 @@ class MimeTypesTestCase(unittest.TestCase):
def test_default_data(self):
eq = self.assertEqual
eq(self.db.guess_type("foo.html"), ("text/html", None))
+ eq(self.db.guess_type("foo.HTML"), ("text/html", None))
eq(self.db.guess_type("foo.tgz"), ("application/x-tar", "gzip"))
eq(self.db.guess_type("foo.tar.gz"), ("application/x-tar", "gzip"))
eq(self.db.guess_type("foo.tar.Z"), ("application/x-tar", "compress"))
@@ -30,6 +41,7 @@ class MimeTypesTestCase(unittest.TestCase):
def test_data_urls(self):
eq = self.assertEqual
guess_type = self.db.guess_type
+ eq(guess_type("data:invalidDataWithoutComma"), (None, None))
eq(guess_type("data:,thisIsTextPlain"), ("text/plain", None))
eq(guess_type("data:;base64,thisIsTextPlain"), ("text/plain", None))
eq(guess_type("data:text/x-foo,thisIsTextXFoo"), ("text/x-foo", None))
@@ -42,6 +54,19 @@ class MimeTypesTestCase(unittest.TestCase):
("x-application/x-unittest", None))
eq(self.db.guess_extension("x-application/x-unittest"), ".pyunit")
+ def test_read_mime_types(self):
+ eq = self.assertEqual
+
+ # Unreadable file returns None
+ self.assertIsNone(mimetypes.read_mime_types("non-existent"))
+
+ with support.temp_dir() as directory:
+ data = "x-application/x-unittest pyunit\n"
+ file = pathlib.Path(directory, "sample.mimetype")
+ file.write_text(data)
+ mime_dict = mimetypes.read_mime_types(file)
+ eq(mime_dict[".pyunit"], "x-application/x-unittest")
+
def test_non_standard_types(self):
eq = self.assertEqual
# First try strict
@@ -49,7 +74,10 @@ class MimeTypesTestCase(unittest.TestCase):
eq(self.db.guess_extension('image/jpg', strict=True), None)
# And then non-strict
eq(self.db.guess_type('foo.xul', strict=False), ('text/xul', None))
+ eq(self.db.guess_type('foo.XUL', strict=False), ('text/xul', None))
+ eq(self.db.guess_type('foo.invalid', strict=False), (None, None))
eq(self.db.guess_extension('image/jpg', strict=False), '.jpg')
+ eq(self.db.guess_extension('image/JPG', strict=False), '.jpg')
def test_filename_with_url_delimiters(self):
# bpo-38449: URL delimiters cases should be handled also.
@@ -200,5 +228,53 @@ class MiscTestCase(unittest.TestCase):
support.check__all__(self, mimetypes)
+class MimetypesCliTestCase(unittest.TestCase):
+
+ def mimetypes_cmd(self, *args, **kwargs):
+ support.patch(self, sys, "argv", [sys.executable, *args])
+ with support.captured_stdout() as output:
+ mimetypes._main()
+ return output.getvalue().strip()
+
+ def test_help_option(self):
+ support.patch(self, sys, "argv", [sys.executable, "-h"])
+ with support.captured_stdout() as output:
+ with self.assertRaises(SystemExit) as cm:
+ mimetypes._main()
+
+ self.assertIn("Usage: mimetypes.py", output.getvalue())
+ self.assertEqual(cm.exception.code, 0)
+
+ def test_invalid_option(self):
+ support.patch(self, sys, "argv", [sys.executable, "--invalid"])
+ with support.captured_stdout() as output:
+ with self.assertRaises(SystemExit) as cm:
+ mimetypes._main()
+
+ self.assertIn("Usage: mimetypes.py", output.getvalue())
+ self.assertEqual(cm.exception.code, 1)
+
+ def test_guess_extension(self):
+ eq = self.assertEqual
+
+ extension = self.mimetypes_cmd("-l", "-e", "image/jpg")
+ eq(extension, ".jpg")
+
+ extension = self.mimetypes_cmd("-e", "image/jpg")
+ eq(extension, "I don't know anything about type image/jpg")
+
+ extension = self.mimetypes_cmd("-e", "image/jpeg")
+ eq(extension, ".jpg")
+
+ def test_guess_type(self):
+ eq = self.assertEqual
+
+ type_info = self.mimetypes_cmd("-l", "foo.pic")
+ eq(type_info, "type: image/pict encoding: None")
+
+ type_info = self.mimetypes_cmd("foo.pic")
+ eq(type_info, "I don't know anything about type foo.pic")
+
+
if __name__ == "__main__":
unittest.main()
From 3430c55417f59078ac397c343894a3ee82a39624 Mon Sep 17 00:00:00 2001
From: Julien Danjou
Date: Mon, 13 Jan 2020 17:30:14 +0100
Subject: [PATCH 120/380] bpo-39164: Add private _PyErr_GetExcInfo() function
(GH-17752)
This adds a new function named _PyErr_GetExcInfo() that is a variation of the
original PyErr_GetExcInfo() taking a PyThreadState as its first argument.
That function allows to retrieve the exceptions information of any Python
thread -- not only the current one.
---
Include/cpython/pyerrors.h | 1 +
.../C API/2019-12-30-10-43-52.bpo-39164.WEV0uu.rst | 1 +
Python/errors.c | 14 ++++++++++----
3 files changed, 12 insertions(+), 4 deletions(-)
create mode 100644 Misc/NEWS.d/next/C API/2019-12-30-10-43-52.bpo-39164.WEV0uu.rst
diff --git a/Include/cpython/pyerrors.h b/Include/cpython/pyerrors.h
index e3098b3925b..f8480fb79e5 100644
--- a/Include/cpython/pyerrors.h
+++ b/Include/cpython/pyerrors.h
@@ -76,6 +76,7 @@ typedef PyOSErrorObject PyWindowsErrorObject;
PyAPI_FUNC(void) _PyErr_SetKeyError(PyObject *);
_PyErr_StackItem *_PyErr_GetTopmostException(PyThreadState *tstate);
+PyAPI_FUNC(void) _PyErr_GetExcInfo(PyThreadState *, PyObject **, PyObject **, PyObject **);
/* Context manipulation (PEP 3134) */
diff --git a/Misc/NEWS.d/next/C API/2019-12-30-10-43-52.bpo-39164.WEV0uu.rst b/Misc/NEWS.d/next/C API/2019-12-30-10-43-52.bpo-39164.WEV0uu.rst
new file mode 100644
index 00000000000..bb72ac70d5b
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2019-12-30-10-43-52.bpo-39164.WEV0uu.rst
@@ -0,0 +1 @@
+Add a private ``_PyErr_GetExcInfo()`` function to retrieve exception information of the specified Python thread state.
diff --git a/Python/errors.c b/Python/errors.c
index d65707e7f97..cdb44605056 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -433,21 +433,27 @@ PyErr_Clear(void)
void
-PyErr_GetExcInfo(PyObject **p_type, PyObject **p_value, PyObject **p_traceback)
+_PyErr_GetExcInfo(PyThreadState *tstate,
+ PyObject **p_type, PyObject **p_value, PyObject **p_traceback)
{
- PyThreadState *tstate = _PyThreadState_GET();
-
_PyErr_StackItem *exc_info = _PyErr_GetTopmostException(tstate);
*p_type = exc_info->exc_type;
*p_value = exc_info->exc_value;
*p_traceback = exc_info->exc_traceback;
-
Py_XINCREF(*p_type);
Py_XINCREF(*p_value);
Py_XINCREF(*p_traceback);
}
+
+void
+PyErr_GetExcInfo(PyObject **p_type, PyObject **p_value, PyObject **p_traceback)
+{
+ PyThreadState *tstate = _PyThreadState_GET();
+ return _PyErr_GetExcInfo(tstate, p_type, p_value, p_traceback);
+}
+
void
PyErr_SetExcInfo(PyObject *p_type, PyObject *p_value, PyObject *p_traceback)
{
From 2b1df4592e1691017414337514c6e378eb639498 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Mon, 13 Jan 2020 18:46:59 +0100
Subject: [PATCH 121/380] bpo-38644: Pass tstate to _Py_FinishPendingCalls()
(GH-17990)
_Py_FinishPendingCalls() now expects a tstate argument, instead of a
runtime argument.
---
Include/internal/pycore_ceval.h | 2 +-
Python/ceval.c | 4 ++--
Python/pylifecycle.c | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Include/internal/pycore_ceval.h b/Include/internal/pycore_ceval.h
index 857fc0b2524..2a7c235cfc2 100644
--- a/Include/internal/pycore_ceval.h
+++ b/Include/internal/pycore_ceval.h
@@ -15,7 +15,7 @@ struct _frame;
#include "pycore_pystate.h" /* PyInterpreterState.eval_frame */
-PyAPI_FUNC(void) _Py_FinishPendingCalls(struct pyruntimestate *runtime);
+PyAPI_FUNC(void) _Py_FinishPendingCalls(PyThreadState *tstate);
PyAPI_FUNC(void) _PyEval_Initialize(struct _ceval_runtime_state *);
PyAPI_FUNC(void) _PyEval_FiniThreads(
struct _ceval_runtime_state *ceval);
diff --git a/Python/ceval.c b/Python/ceval.c
index f780c212c5f..e8931c88820 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -585,11 +585,11 @@ error:
}
void
-_Py_FinishPendingCalls(_PyRuntimeState *runtime)
+_Py_FinishPendingCalls(PyThreadState *tstate)
{
assert(PyGILState_Check());
- PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
+ _PyRuntimeState *runtime = tstate->interp->runtime;
struct _pending_calls *pending = &runtime->ceval.pending;
PyThread_acquire_lock(pending->lock, WAIT_LOCK);
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 1d9dff4ce80..d5d60d0a6d4 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -1340,7 +1340,7 @@ Py_FinalizeEx(void)
wait_for_thread_shutdown(tstate);
// Make any remaining pending calls.
- _Py_FinishPendingCalls(runtime);
+ _Py_FinishPendingCalls(tstate);
/* The interpreter is still entirely intact at this point, and the
* exit funcs may be relying on that. In particular, if some thread
From 31d6de5aba009914efa8f0f3c3d7da35217578eb Mon Sep 17 00:00:00 2001
From: Chris Withers
Date: Mon, 13 Jan 2020 19:11:34 +0000
Subject: [PATCH 122/380] remove unused __version__ from mock.py (#17977)
This isn't included in `__all__` and could be a source of confusion.
---
Lib/unittest/mock.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
index cd5a2aeb608..5622917dc37 100644
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -23,8 +23,6 @@ __all__ = (
)
-__version__ = '1.0'
-
import asyncio
import contextlib
import io
From a190e2ade1a704a6b5a94464a0a19b140c7dd031 Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Tue, 14 Jan 2020 04:34:34 +0900
Subject: [PATCH 123/380] bpo-39259: ftplib.FTP/FTP_TLS now reject timeout = 0
(GH-17959)
---
Doc/library/ftplib.rst | 7 +++++++
Doc/whatsnew/3.9.rst | 7 +++++++
Lib/ftplib.py | 11 ++++++-----
Lib/test/test_ftplib.py | 4 ++++
.../Library/2020-01-12-17-19-40.bpo-39259.iax06r.rst | 3 +++
5 files changed, 27 insertions(+), 5 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-12-17-19-40.bpo-39259.iax06r.rst
diff --git a/Doc/library/ftplib.rst b/Doc/library/ftplib.rst
index 79a0286fb54..a4bb695a9ab 100644
--- a/Doc/library/ftplib.rst
+++ b/Doc/library/ftplib.rst
@@ -72,6 +72,9 @@ The module defines the following items:
.. versionchanged:: 3.3
*source_address* parameter was added.
+ .. versionchanged:: 3.9
+ If the *timeout* parameter is set to be zero, it will raise a
+ :class:`ValueError` to prevent the creation of a non-blocking socket
.. class:: FTP_TLS(host='', user='', passwd='', acct='', keyfile=None, certfile=None, context=None, timeout=None, source_address=None)
@@ -105,6 +108,10 @@ The module defines the following items:
:func:`ssl.create_default_context` select the system's trusted CA
certificates for you.
+ .. versionchanged:: 3.9
+ If the *timeout* parameter is set to be zero, it will raise a
+ :class:`ValueError` to prevent the creation of a non-blocking socket
+
Here's a sample session using the :class:`FTP_TLS` class::
>>> ftps = FTP_TLS('ftp.pureftpd.org')
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index b6ffa234536..859bf440f89 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -159,6 +159,13 @@ Added constants :data:`~fcntl.F_OFD_GETLK`, :data:`~fcntl.F_OFD_SETLK`
and :data:`~fcntl.F_OFD_SETLKW`.
(Contributed by Dong-hee Na in :issue:`38602`.)
+ftplib
+-------
+
+:class:`~ftplib.FTP` and :class:`~ftplib.FTP_TLS` now raise a :class:`ValueError`
+if the given timeout for their constructor is zero to prevent the creation of
+a non-blocking socket. (Contributed by Dong-hee Na in :issue:`39259`.)
+
gc
--
diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index c339eb25bc2..71b3c289551 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -146,6 +146,8 @@ class FTP:
self.port = port
if timeout != -999:
self.timeout = timeout
+ if self.timeout is not None and not self.timeout:
+ raise ValueError('Non-blocking socket (timeout=0) is not supported')
if source_address is not None:
self.source_address = source_address
sys.audit("ftplib.connect", self, self.host, self.port)
@@ -725,12 +727,12 @@ else:
keyfile=keyfile)
self.context = context
self._prot_p = False
- FTP.__init__(self, host, user, passwd, acct, timeout, source_address)
+ super().__init__(host, user, passwd, acct, timeout, source_address)
def login(self, user='', passwd='', acct='', secure=True):
if secure and not isinstance(self.sock, ssl.SSLSocket):
self.auth()
- return FTP.login(self, user, passwd, acct)
+ return super().login(user, passwd, acct)
def auth(self):
'''Set up secure control connection by using TLS/SSL.'''
@@ -740,8 +742,7 @@ else:
resp = self.voidcmd('AUTH TLS')
else:
resp = self.voidcmd('AUTH SSL')
- self.sock = self.context.wrap_socket(self.sock,
- server_hostname=self.host)
+ self.sock = self.context.wrap_socket(self.sock, server_hostname=self.host)
self.file = self.sock.makefile(mode='r', encoding=self.encoding)
return resp
@@ -778,7 +779,7 @@ else:
# --- Overridden FTP methods
def ntransfercmd(self, cmd, rest=None):
- conn, size = FTP.ntransfercmd(self, cmd, rest)
+ conn, size = super().ntransfercmd(cmd, rest)
if self._prot_p:
conn = self.context.wrap_socket(conn,
server_hostname=self.host)
diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
index 62f673c0615..f40f3a4d9f7 100644
--- a/Lib/test/test_ftplib.py
+++ b/Lib/test/test_ftplib.py
@@ -1045,6 +1045,10 @@ class TestTimeouts(TestCase):
self.evt.wait()
ftp.close()
+ # bpo-39259
+ with self.assertRaises(ValueError):
+ ftplib.FTP(HOST, timeout=0)
+
def testTimeoutConnect(self):
ftp = ftplib.FTP()
ftp.connect(HOST, timeout=30)
diff --git a/Misc/NEWS.d/next/Library/2020-01-12-17-19-40.bpo-39259.iax06r.rst b/Misc/NEWS.d/next/Library/2020-01-12-17-19-40.bpo-39259.iax06r.rst
new file mode 100644
index 00000000000..bfcaff3c3d0
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-12-17-19-40.bpo-39259.iax06r.rst
@@ -0,0 +1,3 @@
+:class:`~ftplib.FTP_TLS` and :class:`~ftplib.FTP_TLS` now raise a
+:class:`ValueError` if the given timeout for their constructor is zero to
+prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
From 2de064e6305008d16571a21e5f0c178e62e81f27 Mon Sep 17 00:00:00 2001
From: Anthony Shaw
Date: Tue, 14 Jan 2020 17:40:10 +1100
Subject: [PATCH 124/380] bpo-39160 Align the verbs, grammar and defaults for
`./configure --help` (GH-17747)
---
.../2019-12-30-03-54-24.bpo-39160.aBmj13.rst | 1 +
configure | 126 ++++++++++--------
configure.ac | 101 ++++++++------
m4/ax_check_openssl.m4 | 2 +-
4 files changed, 135 insertions(+), 95 deletions(-)
create mode 100644 Misc/NEWS.d/next/Build/2019-12-30-03-54-24.bpo-39160.aBmj13.rst
diff --git a/Misc/NEWS.d/next/Build/2019-12-30-03-54-24.bpo-39160.aBmj13.rst b/Misc/NEWS.d/next/Build/2019-12-30-03-54-24.bpo-39160.aBmj13.rst
new file mode 100644
index 00000000000..9fb4088de0e
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2019-12-30-03-54-24.bpo-39160.aBmj13.rst
@@ -0,0 +1 @@
+Updated the documentation in `./configure --help` to show default values, reference documentation where required and add additional explanation where needed.
\ No newline at end of file
diff --git a/configure b/configure
index a2c7ddf595d..c8253b1455f 100755
--- a/configure
+++ b/configure
@@ -1483,80 +1483,102 @@ Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-universalsdk[=SDKDIR]
- Build fat binary against Mac OS X SDK
+ create a universal binary build. SDKDIR specifies
+ which macOS SDK should be used to perform the build,
+ see Mac/README.rst. (default is no)
--enable-framework[=INSTALLDIR]
- Build (MacOSX|Darwin) framework
- --enable-shared disable/enable building shared python library
- --enable-profiling enable C-level code profiling
- --enable-optimizations Enable expensive, stable optimizations (PGO, etc).
- Disabled by default.
+ create a Python.framework rather than a traditional
+ Unix install. optional INSTALLDIR specifies the
+ installation path. see Mac/README.rst (default is
+ no)
+ --enable-shared enable building a shared Python library (default is
+ no)
+ --enable-profiling enable C-level code profiling with gprof (default is
+ no)
+ --enable-optimizations enable expensive, stable optimizations (PGO, etc.)
+ (default is no)
--enable-loadable-sqlite-extensions
- support loadable extensions in _sqlite module
- --enable-ipv6 Enable ipv6 (with ipv4) support
- --disable-ipv6 Disable ipv6 support
- --enable-big-digits[=BITS]
- use big digits for Python longs [[BITS=30]]
+ support loadable extensions in _sqlite module, see
+ Doc/library/sqlite3.rst (default is no)
+ --enable-ipv6 enable ipv6 (with ipv4) support, see
+ Doc/library/socket.rst (default is yes if supported)
+ --enable-big-digits[=15|30]
+ use big digits (30 or 15 bits) for Python longs
+ (default is system-dependent)]
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-universal-archs=ARCH
- select architectures for universal build ("32-bit",
- "64-bit", "3-way", "intel", "intel-32", "intel-64",
- or "all")
+ specify the kind of universal binary that should be
+ created. this option is only valid when
+ --enable-universalsdk is set; options are:
+ ("32-bit", "64-bit", "3-way", "intel", "intel-32",
+ "intel-64", or "all") see Mac/README.rst
--with-framework-name=FRAMEWORK
- specify an alternate name of the framework built
- with --enable-framework
- --with-cxx-main=
- compile main() and link python executable with C++
- compiler
- --with-suffix=.exe set executable suffix
- --with-pydebug build with Py_DEBUG defined
+ specify the name for the python framework on macOS
+ only valid when --enable-framework is set. see
+ Mac/README.rst (default is 'Python')
+ --with-cxx-main[=COMPILER]
+ compile main() and link Python executable with C++
+ compiler specified in COMPILER (default is $CXX)
+ --with-suffix=SUFFIX set executable suffix to SUFFIX (default is '.exe')
+ --with-pydebug build with Py_DEBUG defined (default is no)
--with-trace-refs enable tracing references for debugging purpose
- --with-assertions build with C assertions enabled
- --with-lto Enable Link Time Optimization in any build. Disabled
- by default.
+ (default is no)
+ --with-assertions build with C assertions enabled (default is no)
+ --with-lto enable Link-Time-Optimization in any build (default
+ is no)
--with-hash-algorithm=[fnv|siphash24]
- select hash algorithm
+ select hash algorithm for use in Python/pyhash.c
+ (default is SipHash24)
--with-address-sanitizer
- enable AddressSanitizer (asan)
- --with-memory-sanitizer enable MemorySanitizer (msan)
+ enable AddressSanitizer memory error detector,
+ 'asan' (default is no)
+ --with-memory-sanitizer enable MemorySanitizer allocation error detector,
+ 'msan' (default is no)
--with-undefined-behavior-sanitizer
- enable UndefinedBehaviorSanitizer (ubsan)
- --with-libs='lib1 ...' link against additional libs
+ enable UndefinedBehaviorSanitizer undefined
+ behaviour detector, 'ubsan' (default is no)
+ --with-libs='lib1 ...' link against additional libs (default is no)
--with-system-expat build pyexpat module using an installed expat
- library
- --with-system-ffi build _ctypes module using an installed ffi library
+ library, see Doc/library/pyexpat.rst (default is no)
+ --with-system-ffi build _ctypes module using an installed ffi library,
+ see Doc/library/ctypes.rst (default is
+ system-dependent)
--with-system-libmpdec build _decimal module using an installed libmpdec
- library
+ library, see Doc/library/decimal.rst (default is no)
--with-tcltk-includes='-I...'
override search for Tcl and Tk include files
--with-tcltk-libs='-L...'
override search for Tcl and Tk libs
--with-dbmliborder=db1:db2:...
- order to check db backends for dbm. Valid value is a
- colon separated string with the backend names
- `ndbm', `gdbm' and `bdb'.
- --with(out)-doc-strings disable/enable documentation strings
- --with(out)-pymalloc disable/enable specialized mallocs
- --with(out)-c-locale-coercion
- disable/enable C locale coercion to a UTF-8 based
- locale
- --with-valgrind Enable Valgrind support
- --with(out)-dtrace disable/enable DTrace support
- --with-libm=STRING math library
- --with-libc=STRING C library
- --with(out)-computed-gotos
- Use computed gotos in evaluation loop (enabled by
+ override order to check db backends for dbm; a valid
+ value is a colon separated string with the backend
+ names `ndbm', `gdbm' and `bdb'.
+ --with-doc-strings enable documentation strings (default is yes)
+ --with-pymalloc enable specialized mallocs (default is yes)
+ --with-c-locale-coercion
+ enable C locale coercion to a UTF-8 based locale
+ (default is yes)
+ --with-valgrind enable Valgrind support (default is no)
+ --with-dtrace enable DTrace support (default is no)
+ --with-libm=STRING override libm math library to STRING (default is
+ system-dependent)
+ --with-libc=STRING override libc C library to STRING (default is
+ system-dependent)
+ --with-computed-gotos enable computed gotos in evaluation loop (enabled by
default on supported compilers)
- --with(out)-ensurepip=[=upgrade]
- "install" or "upgrade" using bundled pip
- --with-openssl=DIR root of the OpenSSL directory
+ --with-ensurepip[=install|upgrade|no]
+ "install" or "upgrade" using bundled pip (default is
+ upgrade)
+ --with-openssl=DIR override root of the OpenSSL directory to DIR
--with-ssl-default-suites=[python|openssl|STRING]
- Override default cipher suites string, python: use
+ override default cipher suites string, python: use
Python's preferred selection (default), openssl:
leave OpenSSL's defaults untouched, STRING: use a
- custom string, PROTOCOL_SSLv2 ignores the setting
+ custom string, PROTOCOL_SSLv2 ignores the setting,
+ see Doc/library/ssl.rst
Some influential environment variables:
MACHDEP name for machine-dependent library files
@@ -3248,7 +3270,7 @@ _ACEOF
##AC_ARG_WITH(dyld,
## AS_HELP_STRING([--with-dyld],
-## [Use (OpenStep|Rhapsody) dynamic linker]))
+## [use (OpenStep|Rhapsody) dynamic linker]))
##
# Set name for machine-dependent library files
diff --git a/configure.ac b/configure.ac
index 57dca35723c..bcef99c4962 100644
--- a/configure.ac
+++ b/configure.ac
@@ -149,7 +149,10 @@ CONFIG_ARGS="$ac_configure_args"
AC_MSG_CHECKING([for --enable-universalsdk])
AC_ARG_ENABLE(universalsdk,
- AS_HELP_STRING([--enable-universalsdk@<:@=SDKDIR@:>@], [Build fat binary against Mac OS X SDK]),
+ AS_HELP_STRING([--enable-universalsdk@<:@=SDKDIR@:>@],
+ [create a universal binary build.
+ SDKDIR specifies which macOS SDK should be used to perform the build,
+ see Mac/README.rst. (default is no)]),
[
case $enableval in
yes)
@@ -212,7 +215,11 @@ fi
AC_SUBST(LIPO_32BIT_FLAGS)
AC_MSG_CHECKING(for --with-universal-archs)
AC_ARG_WITH(universal-archs,
- AS_HELP_STRING([--with-universal-archs=ARCH], [select architectures for universal build ("32-bit", "64-bit", "3-way", "intel", "intel-32", "intel-64", or "all")]),
+ AS_HELP_STRING([--with-universal-archs=ARCH],
+ [specify the kind of universal binary that should be created. this option is
+ only valid when --enable-universalsdk is set; options are:
+ ("32-bit", "64-bit", "3-way", "intel", "intel-32", "intel-64", or "all")
+ see Mac/README.rst]),
[
UNIVERSAL_ARCHS="$withval"
],
@@ -226,7 +233,9 @@ fi
AC_ARG_WITH(framework-name,
AS_HELP_STRING([--with-framework-name=FRAMEWORK],
- [specify an alternate name of the framework built with --enable-framework]),
+ [specify the name for the python framework on macOS
+ only valid when --enable-framework is set. see Mac/README.rst
+ (default is 'Python')]),
[
PYTHONFRAMEWORK=${withval}
PYTHONFRAMEWORKDIR=${withval}.framework
@@ -238,7 +247,10 @@ AC_ARG_WITH(framework-name,
])
dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
AC_ARG_ENABLE(framework,
- AS_HELP_STRING([--enable-framework@<:@=INSTALLDIR@:>@], [Build (MacOSX|Darwin) framework]),
+ AS_HELP_STRING([--enable-framework@<:@=INSTALLDIR@:>@],
+ [create a Python.framework rather than a traditional Unix install.
+ optional INSTALLDIR specifies the installation path. see Mac/README.rst
+ (default is no)]),
[
case $enableval in
yes)
@@ -357,7 +369,7 @@ AC_DEFINE_UNQUOTED(_PYTHONFRAMEWORK, "${PYTHONFRAMEWORK}", [framework name])
##AC_ARG_WITH(dyld,
## AS_HELP_STRING([--with-dyld],
-## [Use (OpenStep|Rhapsody) dynamic linker]))
+## [use (OpenStep|Rhapsody) dynamic linker]))
##
# Set name for machine-dependent library files
AC_ARG_VAR([MACHDEP], [name for machine-dependent library files])
@@ -647,8 +659,8 @@ AC_SUBST(CXX)
AC_SUBST(MAINCC)
AC_MSG_CHECKING(for --with-cxx-main=)
AC_ARG_WITH(cxx_main,
- AS_HELP_STRING([--with-cxx-main=],
- [compile main() and link python executable with C++ compiler]),
+ AS_HELP_STRING([--with-cxx-main@<:@=COMPILER@:>@],
+ [compile main() and link Python executable with C++ compiler specified in COMPILER (default is $CXX)]),
[
case $withval in
@@ -928,7 +940,7 @@ esac
AC_EXEEXT
AC_MSG_CHECKING(for --with-suffix)
AC_ARG_WITH(suffix,
- AS_HELP_STRING([--with-suffix=.exe], [set executable suffix]),
+ AS_HELP_STRING([--with-suffix=SUFFIX], [set executable suffix to SUFFIX (default is '.exe')]),
[
case $withval in
no) EXEEXT=;;
@@ -1050,7 +1062,7 @@ AC_MSG_RESULT($GNULD)
AC_MSG_CHECKING(for --enable-shared)
AC_ARG_ENABLE(shared,
- AS_HELP_STRING([--enable-shared], [disable/enable building shared python library]))
+ AS_HELP_STRING([--enable-shared], [enable building a shared Python library (default is no)]))
if test -z "$enable_shared"
then
@@ -1065,7 +1077,7 @@ AC_MSG_RESULT($enable_shared)
AC_MSG_CHECKING(for --enable-profiling)
AC_ARG_ENABLE(profiling,
- AS_HELP_STRING([--enable-profiling], [enable C-level code profiling]))
+ AS_HELP_STRING([--enable-profiling], [enable C-level code profiling with gprof (default is no)]))
if test "x$enable_profiling" = xyes; then
ac_save_cc="$CC"
CC="$CC -pg"
@@ -1216,7 +1228,7 @@ ABIFLAGS=""
# Check for --with-pydebug
AC_MSG_CHECKING(for --with-pydebug)
AC_ARG_WITH(pydebug,
- AS_HELP_STRING([--with-pydebug], [build with Py_DEBUG defined]),
+ AS_HELP_STRING([--with-pydebug], [build with Py_DEBUG defined (default is no)]),
[
if test "$withval" != no
then
@@ -1233,7 +1245,9 @@ fi],
# --with-trace-refs
AC_MSG_CHECKING(for --with-trace-refs)
AC_ARG_WITH(trace-refs,
- AS_HELP_STRING([--with-trace-refs],[enable tracing references for debugging purpose]),,
+ AS_HELP_STRING(
+ [--with-trace-refs],
+ [enable tracing references for debugging purpose (default is no)]),,
with_trace_refs=no)
AC_MSG_RESULT($with_trace_refs)
@@ -1247,7 +1261,7 @@ fi
assertions='false'
AC_MSG_CHECKING(for --with-assertions)
AC_ARG_WITH(assertions,
- AS_HELP_STRING([--with-assertions],[build with C assertions enabled]),
+ AS_HELP_STRING([--with-assertions],[build with C assertions enabled (default is no)]),
[
if test "$withval" != no
then
@@ -1268,7 +1282,9 @@ AC_SUBST(DEF_MAKE_ALL_RULE)
AC_SUBST(DEF_MAKE_RULE)
Py_OPT='false'
AC_MSG_CHECKING(for --enable-optimizations)
-AC_ARG_ENABLE(optimizations, AS_HELP_STRING([--enable-optimizations], [Enable expensive, stable optimizations (PGO, etc). Disabled by default.]),
+AC_ARG_ENABLE(optimizations, AS_HELP_STRING(
+ [--enable-optimizations],
+ [enable expensive, stable optimizations (PGO, etc.) (default is no)]),
[
if test "$enableval" != no
then
@@ -1323,7 +1339,7 @@ fi
# Enable LTO flags
AC_MSG_CHECKING(for --with-lto)
-AC_ARG_WITH(lto, AS_HELP_STRING([--with-lto], [Enable Link Time Optimization in any build. Disabled by default.]),
+AC_ARG_WITH(lto, AS_HELP_STRING([--with-lto], [enable Link-Time-Optimization in any build (default is no)]),
[
if test "$withval" != no
then
@@ -2907,7 +2923,7 @@ AC_MSG_CHECKING(for --with-hash-algorithm)
dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
AC_ARG_WITH(hash_algorithm,
AS_HELP_STRING([--with-hash-algorithm=@<:@fnv|siphash24@:>@],
- [select hash algorithm]),
+ [select hash algorithm for use in Python/pyhash.c (default is SipHash24)]),
[
AC_MSG_RESULT($withval)
case "$withval" in
@@ -2927,7 +2943,7 @@ esac
AC_MSG_CHECKING(for --with-address-sanitizer)
AC_ARG_WITH(address_sanitizer,
AS_HELP_STRING([--with-address-sanitizer],
- [enable AddressSanitizer (asan)]),
+ [enable AddressSanitizer memory error detector, 'asan' (default is no)]),
[
AC_MSG_RESULT($withval)
BASECFLAGS="-fsanitize=address -fno-omit-frame-pointer $BASECFLAGS"
@@ -2940,7 +2956,7 @@ with_pymalloc="no"
AC_MSG_CHECKING(for --with-memory-sanitizer)
AC_ARG_WITH(memory_sanitizer,
AS_HELP_STRING([--with-memory-sanitizer],
- [enable MemorySanitizer (msan)]),
+ [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"
@@ -2953,7 +2969,7 @@ with_pymalloc="no"
AC_MSG_CHECKING(for --with-undefined-behavior-sanitizer)
AC_ARG_WITH(undefined_behavior_sanitizer,
AS_HELP_STRING([--with-undefined-behavior-sanitizer],
- [enable UndefinedBehaviorSanitizer (ubsan)]),
+ [enable UndefinedBehaviorSanitizer undefined behaviour detector, 'ubsan' (default is no)]),
[
AC_MSG_RESULT($withval)
BASECFLAGS="-fsanitize=undefined $BASECFLAGS"
@@ -2967,7 +2983,7 @@ AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
AC_MSG_CHECKING(for --with-libs)
AC_ARG_WITH(libs,
- AS_HELP_STRING([--with-libs='lib1 ...'], [link against additional libs]),
+ AS_HELP_STRING([--with-libs='lib1 ...'], [link against additional libs (default is no)]),
[
AC_MSG_RESULT($withval)
LIBS="$withval $LIBS"
@@ -2979,7 +2995,7 @@ PKG_PROG_PKG_CONFIG
# Check for use of the system expat library
AC_MSG_CHECKING(for --with-system-expat)
AC_ARG_WITH(system_expat,
- AS_HELP_STRING([--with-system-expat], [build pyexpat module using an installed expat library]),
+ AS_HELP_STRING([--with-system-expat], [build pyexpat module using an installed expat library, see Doc/library/pyexpat.rst (default is no)]),
[],
[with_system_expat="no"])
@@ -2988,7 +3004,7 @@ AC_MSG_RESULT($with_system_expat)
# Check for use of the system libffi library
AC_MSG_CHECKING(for --with-system-ffi)
AC_ARG_WITH(system_ffi,
- AS_HELP_STRING([--with-system-ffi], [build _ctypes module using an installed ffi library]),,,)
+ AS_HELP_STRING([--with-system-ffi], [build _ctypes module using an installed ffi library, see Doc/library/ctypes.rst (default is system-dependent)]),,,)
if test "$ac_sys_system" = "Darwin"
then
@@ -3022,7 +3038,7 @@ AC_SUBST(LIBFFI_INCLUDEDIR)
# Check for use of the system libmpdec library
AC_MSG_CHECKING(for --with-system-libmpdec)
AC_ARG_WITH(system_libmpdec,
- AS_HELP_STRING([--with-system-libmpdec], [build _decimal module using an installed libmpdec library]),
+ AS_HELP_STRING([--with-system-libmpdec], [build _decimal module using an installed libmpdec library, see Doc/library/decimal.rst (default is no)]),
[],
[with_system_libmpdec="no"])
@@ -3031,7 +3047,8 @@ AC_MSG_RESULT($with_system_libmpdec)
# Check for support for loadable sqlite extensions
AC_MSG_CHECKING(for --enable-loadable-sqlite-extensions)
AC_ARG_ENABLE(loadable-sqlite-extensions,
- AS_HELP_STRING([--enable-loadable-sqlite-extensions], [support loadable extensions in _sqlite module]),
+ AS_HELP_STRING([--enable-loadable-sqlite-extensions],
+ [support loadable extensions in _sqlite module, see Doc/library/sqlite3.rst (default is no)]),
[],
[enable_loadable_sqlite_extensions="no"])
@@ -3068,7 +3085,7 @@ fi
# Check for --with-dbmliborder
AC_MSG_CHECKING(for --with-dbmliborder)
AC_ARG_WITH(dbmliborder,
- AS_HELP_STRING([--with-dbmliborder=db1:db2:...], [order to check db backends for dbm. Valid value is a colon separated string with the backend names `ndbm', `gdbm' and `bdb'.]),
+ AS_HELP_STRING([--with-dbmliborder=db1:db2:...], [override order to check db backends for dbm; a valid value is a colon separated string with the backend names `ndbm', `gdbm' and `bdb'.]),
[
if test x$with_dbmliborder = xyes
then
@@ -3240,8 +3257,8 @@ fi
AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
AC_MSG_CHECKING([if --enable-ipv6 is specified])
AC_ARG_ENABLE(ipv6,
-[ --enable-ipv6 Enable ipv6 (with ipv4) support
- --disable-ipv6 Disable ipv6 support],
+ AS_HELP_STRING([--enable-ipv6],
+ [enable ipv6 (with ipv4) support, see Doc/library/socket.rst (default is yes if supported)]),
[ case "$enableval" in
no)
AC_MSG_RESULT(no)
@@ -3412,7 +3429,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ /* CAN_RAW_FD_FRAMES available check */
# Check for --with-doc-strings
AC_MSG_CHECKING(for --with-doc-strings)
AC_ARG_WITH(doc-strings,
- AS_HELP_STRING([--with(out)-doc-strings], [disable/enable documentation strings]))
+ AS_HELP_STRING([--with-doc-strings], [enable documentation strings (default is yes)]))
if test -z "$with_doc_strings"
then with_doc_strings="yes"
@@ -3427,7 +3444,7 @@ AC_MSG_RESULT($with_doc_strings)
# Check for Python-specific malloc support
AC_MSG_CHECKING(for --with-pymalloc)
AC_ARG_WITH(pymalloc,
- AS_HELP_STRING([--with(out)-pymalloc], [disable/enable specialized mallocs]))
+ AS_HELP_STRING([--with-pymalloc], [enable specialized mallocs (default is yes)]))
if test -z "$with_pymalloc"
then
@@ -3443,8 +3460,8 @@ AC_MSG_RESULT($with_pymalloc)
# Check for --with-c-locale-coercion
AC_MSG_CHECKING(for --with-c-locale-coercion)
AC_ARG_WITH(c-locale-coercion,
- AS_HELP_STRING([--with(out)-c-locale-coercion],
- [disable/enable C locale coercion to a UTF-8 based locale]))
+ AS_HELP_STRING([--with-c-locale-coercion],
+ [enable C locale coercion to a UTF-8 based locale (default is yes)]))
if test -z "$with_c_locale_coercion"
then
@@ -3460,7 +3477,7 @@ AC_MSG_RESULT($with_c_locale_coercion)
# Check for Valgrind support
AC_MSG_CHECKING([for --with-valgrind])
AC_ARG_WITH([valgrind],
- AS_HELP_STRING([--with-valgrind], [Enable Valgrind support]),,
+ AS_HELP_STRING([--with-valgrind], [enable Valgrind support (default is no)]),,
with_valgrind=no)
AC_MSG_RESULT([$with_valgrind])
if test "$with_valgrind" != no; then
@@ -3474,7 +3491,7 @@ fi
# Check for DTrace support
AC_MSG_CHECKING(for --with-dtrace)
AC_ARG_WITH(dtrace,
- AS_HELP_STRING([--with(out)-dtrace],[disable/enable DTrace support]),,
+ AS_HELP_STRING([--with-dtrace],[enable DTrace support (default is no)]),,
with_dtrace=no)
AC_MSG_RESULT($with_dtrace)
@@ -4321,7 +4338,7 @@ Darwin) ;;
esac
AC_MSG_CHECKING(for --with-libm=STRING)
AC_ARG_WITH(libm,
- AS_HELP_STRING([--with-libm=STRING], [math library]),
+ AS_HELP_STRING([--with-libm=STRING], [override libm math library to STRING (default is system-dependent)]),
[
if test "$withval" = no
then LIBM=
@@ -4337,7 +4354,7 @@ fi],
AC_SUBST(LIBC)
AC_MSG_CHECKING(for --with-libc=STRING)
AC_ARG_WITH(libc,
- AS_HELP_STRING([--with-libc=STRING], [C library]),
+ AS_HELP_STRING([--with-libc=STRING], [override libc C library to STRING (default is system-dependent)]),
[
if test "$withval" = no
then LIBC=
@@ -4555,7 +4572,7 @@ AC_CHECK_DECLS([RTLD_LAZY, RTLD_NOW, RTLD_GLOBAL, RTLD_LOCAL, RTLD_NODELETE, RTL
# determine what size digit to use for Python's longs
AC_MSG_CHECKING([digit size for Python's longs])
AC_ARG_ENABLE(big-digits,
-AS_HELP_STRING([--enable-big-digits@<:@=BITS@:>@],[use big digits for Python longs [[BITS=30]]]),
+AS_HELP_STRING([--enable-big-digits@<:@=15|30@:>@],[use big digits (30 or 15 bits) for Python longs (default is system-dependent)]]),
[case $enable_big_digits in
yes)
enable_big_digits=30 ;;
@@ -5267,8 +5284,8 @@ fi
# Check for --with-computed-gotos
AC_MSG_CHECKING(for --with-computed-gotos)
AC_ARG_WITH(computed-gotos,
- AS_HELP_STRING([--with(out)-computed-gotos],
- [Use computed gotos in evaluation loop (enabled by default on supported compilers)]),
+ AS_HELP_STRING([--with-computed-gotos],
+ [enable computed gotos in evaluation loop (enabled by default on supported compilers)]),
[
if test "$withval" = yes
then
@@ -5464,8 +5481,8 @@ fi
# ensurepip option
AC_MSG_CHECKING(for ensurepip)
AC_ARG_WITH(ensurepip,
- [AS_HELP_STRING([--with(out)-ensurepip=@<:@=upgrade@:>@],
- ["install" or "upgrade" using bundled pip])],
+ [AS_HELP_STRING([--with-ensurepip@<:@=install|upgrade|no@:>@],
+ ["install" or "upgrade" using bundled pip (default is upgrade)])],
[],
[with_ensurepip=upgrade])
AS_CASE($with_ensurepip,
@@ -5621,11 +5638,11 @@ AH_TEMPLATE(PY_SSL_DEFAULT_CIPHER_STRING,
AC_MSG_CHECKING(for --with-ssl-default-suites)
AC_ARG_WITH(ssl-default-suites,
AS_HELP_STRING([--with-ssl-default-suites=@<:@python|openssl|STRING@:>@],
- [Override default cipher suites string,
+ [override default cipher suites string,
python: use Python's preferred selection (default),
openssl: leave OpenSSL's defaults untouched,
STRING: use a custom string,
- PROTOCOL_SSLv2 ignores the setting]),
+ PROTOCOL_SSLv2 ignores the setting, see Doc/library/ssl.rst]),
[
AC_MSG_RESULT($withval)
case "$withval" in
diff --git a/m4/ax_check_openssl.m4 b/m4/ax_check_openssl.m4
index 28e48cbefb6..2846fd14c49 100644
--- a/m4/ax_check_openssl.m4
+++ b/m4/ax_check_openssl.m4
@@ -39,7 +39,7 @@ AC_DEFUN([AX_CHECK_OPENSSL], [
found=false
AC_ARG_WITH([openssl],
[AS_HELP_STRING([--with-openssl=DIR],
- [root of the OpenSSL directory])],
+ [override root of the OpenSSL directory to DIR])],
[
case "$withval" in
"" | y | ye | yes | n | no)
From 62e3973395fb9fab2eb8f651bcd0fea4e695e1cf Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Tue, 14 Jan 2020 16:49:59 +0900
Subject: [PATCH 125/380] bpo-39259: smtp.SMTP/SMTP_SSL now reject timeout = 0
(GH-17958)
---
Doc/library/smtplib.rst | 6 ++++++
Doc/whatsnew/3.9.rst | 7 +++++++
Lib/smtplib.py | 15 ++++++++-------
Lib/test/test_smtplib.py | 5 +++++
.../2020-01-12-16-34-28.bpo-39259.J_yBVq.rst | 3 +++
5 files changed, 29 insertions(+), 7 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-12-16-34-28.bpo-39259.J_yBVq.rst
diff --git a/Doc/library/smtplib.rst b/Doc/library/smtplib.rst
index 6176c35a0e4..f6ac123823b 100644
--- a/Doc/library/smtplib.rst
+++ b/Doc/library/smtplib.rst
@@ -70,6 +70,9 @@ Protocol) and :rfc:`1869` (SMTP Service Extensions).
.. versionadded:: 3.5
The SMTPUTF8 extension (:rfc:`6531`) is now supported.
+ .. versionchanged:: 3.9
+ If the *timeout* parameter is set to be zero, it will raise a
+ :class:`ValueError` to prevent the creation of a non-blocking socket
.. class:: SMTP_SSL(host='', port=0, local_hostname=None, keyfile=None, \
certfile=None [, timeout], context=None, \
@@ -108,6 +111,9 @@ Protocol) and :rfc:`1869` (SMTP Service Extensions).
:func:`ssl.create_default_context` select the system's trusted CA
certificates for you.
+ .. versionchanged:: 3.9
+ If the *timeout* parameter is set to be zero, it will raise a
+ :class:`ValueError` to prevent the creation of a non-blocking socket
.. class:: LMTP(host='', port=LMTP_PORT, local_hostname=None, source_address=None)
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 859bf440f89..00409af4387 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -259,6 +259,13 @@ now raises :exc:`ImportError` instead of :exc:`ValueError` for invalid relative
import attempts.
(Contributed by Ngalim Siregar in :issue:`37444`.)
+smtplib
+-------
+
+:class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a :class:`ValueError`
+if the given timeout for their constructor is zero to prevent the creation of
+a non-blocking socket. (Contributed by Dong-hee Na in :issue:`39259`.)
+
signal
------
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index 6513842eb6c..4d5cdb5ac0a 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -303,6 +303,8 @@ class SMTP:
def _get_socket(self, host, port, timeout):
# This makes it simpler for SMTP_SSL to use the SMTP connect code
# and just alter the socket connection bit.
+ if timeout is not None and not timeout:
+ raise ValueError('Non-blocking socket (timeout=0) is not supported')
if self.debuglevel > 0:
self._print_debug('connect: to', (host, port), self.source_address)
return socket.create_connection((host, port), timeout,
@@ -1030,13 +1032,12 @@ if _have_ssl:
keyfile=keyfile)
self.context = context
SMTP.__init__(self, host, port, local_hostname, timeout,
- source_address)
+ source_address)
def _get_socket(self, host, port, timeout):
if self.debuglevel > 0:
self._print_debug('connect:', (host, port))
- new_socket = socket.create_connection((host, port), timeout,
- self.source_address)
+ new_socket = super()._get_socket(host, port, timeout)
new_socket = self.context.wrap_socket(new_socket,
server_hostname=self._host)
return new_socket
@@ -1065,15 +1066,15 @@ class LMTP(SMTP):
ehlo_msg = "lhlo"
def __init__(self, host='', port=LMTP_PORT, local_hostname=None,
- source_address=None):
+ source_address=None):
"""Initialize a new instance."""
- SMTP.__init__(self, host, port, local_hostname=local_hostname,
- source_address=source_address)
+ super().__init__(host, port, local_hostname=local_hostname,
+ source_address=source_address)
def connect(self, host='localhost', port=0, source_address=None):
"""Connect to the LMTP daemon, on either a Unix or a TCP socket."""
if host[0] != '/':
- return SMTP.connect(self, host, port, source_address=source_address)
+ return super().connect(host, port, source_address=source_address)
# Handle Unix-domain sockets.
try:
diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py
index faf013ac9a6..cc5c4b13464 100644
--- a/Lib/test/test_smtplib.py
+++ b/Lib/test/test_smtplib.py
@@ -122,6 +122,11 @@ class GeneralTests(unittest.TestCase):
self.assertIsNone(smtp.sock.gettimeout())
smtp.close()
+ def testTimeoutZero(self):
+ mock_socket.reply_with(b"220 Hola mundo")
+ with self.assertRaises(ValueError):
+ smtplib.SMTP(HOST, self.port, timeout=0)
+
def testTimeoutValue(self):
mock_socket.reply_with(b"220 Hola mundo")
smtp = smtplib.SMTP(HOST, self.port, timeout=30)
diff --git a/Misc/NEWS.d/next/Library/2020-01-12-16-34-28.bpo-39259.J_yBVq.rst b/Misc/NEWS.d/next/Library/2020-01-12-16-34-28.bpo-39259.J_yBVq.rst
new file mode 100644
index 00000000000..6cc490eb35e
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-12-16-34-28.bpo-39259.J_yBVq.rst
@@ -0,0 +1,3 @@
+:class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a
+:class:`ValueError` if the given timeout for their constructor is zero to
+prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
From 9af0e47b1705457bb6b327c197f2ec5737a1d8f6 Mon Sep 17 00:00:00 2001
From: Mark Shannon
Date: Tue, 14 Jan 2020 10:12:45 +0000
Subject: [PATCH 126/380] bpo-39156: Break up COMPARE_OP into four logically
distinct opcodes. (GH-17754)
Break up COMPARE_OP into four logically distinct opcodes:
* COMPARE_OP for rich comparisons
* IS_OP for 'is' and 'is not' tests
* CONTAINS_OP for 'in' and 'is not' tests
* JUMP_IF_NOT_EXC_MATCH for checking exceptions in 'try-except' statements.
---
Doc/library/dis.rst | 21 +
Include/opcode.h | 8 +-
Lib/importlib/_bootstrap_external.py | 3 +-
Lib/opcode.py | 7 +-
Lib/test/test_dis.py | 137 +-
Lib/test/test_peepholer.py | 12 +-
Lib/test/test_positional_only_arg.py | 6 +-
.../2019-12-30-10-53-59.bpo-39156.veT-CB.rst | 9 +
PC/launcher.c | 3 +-
Python/ceval.c | 137 +-
Python/compile.c | 71 +-
Python/importlib.h | 2930 ++++++-----
Python/importlib_external.h | 4570 ++++++++---------
Python/importlib_zipimport.h | 1833 ++++---
Python/opcode_targets.h | 6 +-
Python/peephole.c | 6 +-
Tools/scripts/generate_opcode_h.py | 5 -
17 files changed, 4909 insertions(+), 4855 deletions(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-12-30-10-53-59.bpo-39156.veT-CB.rst
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index 1f540d95078..d3124f973f1 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -927,6 +927,20 @@ All of the following opcodes use their arguments.
``cmp_op[opname]``.
+.. opcode:: IS_OP (invert)
+
+ Performs ``is`` comparison, or ``is not`` if ``invert`` is 1.
+
+ .. versionadded:: 3.9
+
+
+.. opcode:: CONTAINS_OP (invert)
+
+ Performs ``in`` comparison, or ``not in`` if ``invert`` is 1.
+
+ .. versionadded:: 3.9
+
+
.. opcode:: IMPORT_NAME (namei)
Imports the module ``co_names[namei]``. TOS and TOS1 are popped and provide
@@ -961,6 +975,13 @@ All of the following opcodes use their arguments.
.. versionadded:: 3.1
+.. opcode:: JUMP_IF_NOT_EXC_MATCH (target)
+
+ Tests whether the second value on the stack is an exception matching TOS,
+ and jumps if it is not. Pops two values from the stack.
+
+ .. versionadded:: 3.9
+
.. opcode:: JUMP_IF_TRUE_OR_POP (target)
diff --git a/Include/opcode.h b/Include/opcode.h
index 712664224dc..05354847958 100644
--- a/Include/opcode.h
+++ b/Include/opcode.h
@@ -93,6 +93,9 @@ extern "C" {
#define POP_JUMP_IF_FALSE 114
#define POP_JUMP_IF_TRUE 115
#define LOAD_GLOBAL 116
+#define IS_OP 117
+#define CONTAINS_OP 118
+#define JUMP_IF_NOT_EXC_MATCH 121
#define SETUP_FINALLY 122
#define LOAD_FAST 124
#define STORE_FAST 125
@@ -132,11 +135,6 @@ extern "C" {
remaining private.*/
#define EXCEPT_HANDLER 257
-
-enum cmp_op {PyCmp_LT=Py_LT, PyCmp_LE=Py_LE, PyCmp_EQ=Py_EQ, PyCmp_NE=Py_NE,
- PyCmp_GT=Py_GT, PyCmp_GE=Py_GE, PyCmp_IN, PyCmp_NOT_IN,
- PyCmp_IS, PyCmp_IS_NOT, PyCmp_EXC_MATCH, PyCmp_BAD};
-
#define HAS_ARG(op) ((op) >= HAVE_ARGUMENT)
#ifdef __cplusplus
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
index d62c6cb77cd..b86612beac8 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -274,6 +274,7 @@ _code_type = type(_write_atomic.__code__)
# Python 3.9a0 3420 (add LOAD_ASSERTION_ERROR #34880)
# Python 3.9a0 3421 (simplified bytecode for with blocks #32949)
# Python 3.9a0 3422 (remove BEGIN_FINALLY, END_FINALLY, CALL_FINALLY, POP_FINALLY bytecodes #33387)
+# Python 3.9a2 3423 (add IS_OP, CONTAINS_OP and JUMP_IF_NOT_EXC_MATCH bytecodes #39156)
#
# MAGIC must change whenever the bytecode emitted by the compiler may no
# longer be understood by older implementations of the eval loop (usually
@@ -282,7 +283,7 @@ _code_type = type(_write_atomic.__code__)
# Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array
# in PC/launcher.c must also be updated.
-MAGIC_NUMBER = (3422).to_bytes(2, 'little') + b'\r\n'
+MAGIC_NUMBER = (3423).to_bytes(2, 'little') + b'\r\n'
_RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c
_PYCACHE = '__pycache__'
diff --git a/Lib/opcode.py b/Lib/opcode.py
index 1898a38abbb..e31563bfbcb 100644
--- a/Lib/opcode.py
+++ b/Lib/opcode.py
@@ -21,8 +21,7 @@ try:
except ImportError:
pass
-cmp_op = ('<', '<=', '==', '!=', '>', '>=', 'in', 'not in', 'is',
- 'is not', 'exception match', 'BAD')
+cmp_op = ('<', '<=', '==', '!=', '>', '>=')
hasconst = []
hasname = []
@@ -159,6 +158,10 @@ jabs_op('POP_JUMP_IF_TRUE', 115) # ""
name_op('LOAD_GLOBAL', 116) # Index in name list
+def_op('IS_OP', 117)
+def_op('CONTAINS_OP', 118)
+
+jabs_op('JUMP_IF_NOT_EXC_MATCH', 121)
jrel_op('SETUP_FINALLY', 122) # Distance to target address
def_op('LOAD_FAST', 124) # Local variable number
diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py
index 313eefd9b88..ac5836d2889 100644
--- a/Lib/test/test_dis.py
+++ b/Lib/test/test_dis.py
@@ -278,34 +278,33 @@ dis_traceback = """\
--> 6 BINARY_TRUE_DIVIDE
8 POP_TOP
10 POP_BLOCK
- 12 JUMP_FORWARD 44 (to 58)
+ 12 JUMP_FORWARD 42 (to 56)
%3d >> 14 DUP_TOP
16 LOAD_GLOBAL 0 (Exception)
- 18 COMPARE_OP 10 (exception match)
- 20 POP_JUMP_IF_FALSE 56
- 22 POP_TOP
- 24 STORE_FAST 0 (e)
- 26 POP_TOP
- 28 SETUP_FINALLY 18 (to 48)
+ 18 JUMP_IF_NOT_EXC_MATCH 54
+ 20 POP_TOP
+ 22 STORE_FAST 0 (e)
+ 24 POP_TOP
+ 26 SETUP_FINALLY 18 (to 46)
-%3d 30 LOAD_FAST 0 (e)
- 32 LOAD_ATTR 1 (__traceback__)
- 34 STORE_FAST 1 (tb)
- 36 POP_BLOCK
- 38 POP_EXCEPT
- 40 LOAD_CONST 0 (None)
- 42 STORE_FAST 0 (e)
- 44 DELETE_FAST 0 (e)
- 46 JUMP_FORWARD 10 (to 58)
- >> 48 LOAD_CONST 0 (None)
- 50 STORE_FAST 0 (e)
- 52 DELETE_FAST 0 (e)
- 54 RERAISE
- >> 56 RERAISE
+%3d 28 LOAD_FAST 0 (e)
+ 30 LOAD_ATTR 1 (__traceback__)
+ 32 STORE_FAST 1 (tb)
+ 34 POP_BLOCK
+ 36 POP_EXCEPT
+ 38 LOAD_CONST 0 (None)
+ 40 STORE_FAST 0 (e)
+ 42 DELETE_FAST 0 (e)
+ 44 JUMP_FORWARD 10 (to 56)
+ >> 46 LOAD_CONST 0 (None)
+ 48 STORE_FAST 0 (e)
+ 50 DELETE_FAST 0 (e)
+ 52 RERAISE
+ >> 54 RERAISE
-%3d >> 58 LOAD_FAST 1 (tb)
- 60 RETURN_VALUE
+%3d >> 56 LOAD_FAST 1 (tb)
+ 58 RETURN_VALUE
""" % (TRACEBACK_CODE.co_firstlineno + 1,
TRACEBACK_CODE.co_firstlineno + 2,
TRACEBACK_CODE.co_firstlineno + 3,
@@ -506,7 +505,8 @@ class DisTests(unittest.TestCase):
def test_widths(self):
for opcode, opname in enumerate(dis.opname):
if opname in ('BUILD_MAP_UNPACK_WITH_CALL',
- 'BUILD_TUPLE_UNPACK_WITH_CALL'):
+ 'BUILD_TUPLE_UNPACK_WITH_CALL',
+ 'JUMP_IF_NOT_EXC_MATCH'):
continue
with self.subTest(opname=opname):
width = dis._OPNAME_WIDTH
@@ -1045,63 +1045,62 @@ expected_opinfo_jumpy = [
Instruction(opname='LOAD_CONST', opcode=100, arg=6, argval='Who let lolcatz into this test suite?', argrepr="'Who let lolcatz into this test suite?'", offset=96, starts_line=None, is_jump_target=False),
Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=98, starts_line=None, is_jump_target=False),
Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=100, starts_line=None, is_jump_target=False),
- Instruction(opname='SETUP_FINALLY', opcode=122, arg=98, argval=202, argrepr='to 202', offset=102, starts_line=20, is_jump_target=True),
+ Instruction(opname='SETUP_FINALLY', opcode=122, arg=96, argval=200, argrepr='to 200', offset=102, starts_line=20, is_jump_target=True),
Instruction(opname='SETUP_FINALLY', opcode=122, arg=12, argval=118, argrepr='to 118', offset=104, starts_line=None, is_jump_target=False),
Instruction(opname='LOAD_CONST', opcode=100, arg=5, argval=1, argrepr='1', offset=106, starts_line=21, is_jump_target=False),
Instruction(opname='LOAD_CONST', opcode=100, arg=7, argval=0, argrepr='0', offset=108, starts_line=None, is_jump_target=False),
Instruction(opname='BINARY_TRUE_DIVIDE', opcode=27, arg=None, argval=None, argrepr='', offset=110, starts_line=None, is_jump_target=False),
Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=112, starts_line=None, is_jump_target=False),
Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=114, starts_line=None, is_jump_target=False),
- Instruction(opname='JUMP_FORWARD', opcode=110, arg=28, argval=146, argrepr='to 146', offset=116, starts_line=None, is_jump_target=False),
+ Instruction(opname='JUMP_FORWARD', opcode=110, arg=26, argval=144, argrepr='to 144', offset=116, starts_line=None, is_jump_target=False),
Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=118, starts_line=22, is_jump_target=True),
Instruction(opname='LOAD_GLOBAL', opcode=116, arg=2, argval='ZeroDivisionError', argrepr='ZeroDivisionError', offset=120, starts_line=None, is_jump_target=False),
- Instruction(opname='COMPARE_OP', opcode=107, arg=10, argval='exception match', argrepr='exception match', offset=122, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_JUMP_IF_FALSE', opcode=114, arg=144, argval=144, argrepr='', offset=124, starts_line=None, is_jump_target=False),
+ Instruction(opname='JUMP_IF_NOT_EXC_MATCH', opcode=121, arg=142, argval=142, argrepr='', offset=122, starts_line=None, is_jump_target=False),
+ Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=124, starts_line=None, is_jump_target=False),
Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=126, starts_line=None, is_jump_target=False),
Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=128, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=130, starts_line=None, is_jump_target=False),
- Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=132, starts_line=23, is_jump_target=False),
- Instruction(opname='LOAD_CONST', opcode=100, arg=8, argval='Here we go, here we go, here we go...', argrepr="'Here we go, here we go, here we go...'", offset=134, starts_line=None, is_jump_target=False),
- Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=136, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=138, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=140, starts_line=None, is_jump_target=False),
- Instruction(opname='JUMP_FORWARD', opcode=110, arg=46, argval=190, argrepr='to 190', offset=142, starts_line=None, is_jump_target=False),
- Instruction(opname='RERAISE', opcode=48, arg=None, argval=None, argrepr='', offset=144, starts_line=None, is_jump_target=True),
- Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=146, starts_line=25, is_jump_target=True),
- Instruction(opname='SETUP_WITH', opcode=143, arg=24, argval=174, argrepr='to 174', offset=148, starts_line=None, is_jump_target=False),
- Instruction(opname='STORE_FAST', opcode=125, arg=1, argval='dodgy', argrepr='dodgy', offset=150, starts_line=None, is_jump_target=False),
- Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=152, starts_line=26, is_jump_target=False),
- Instruction(opname='LOAD_CONST', opcode=100, arg=9, argval='Never reach this', argrepr="'Never reach this'", offset=154, starts_line=None, is_jump_target=False),
- Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=156, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=158, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=160, starts_line=None, is_jump_target=False),
- Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=162, starts_line=None, is_jump_target=False),
+ Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=130, starts_line=23, is_jump_target=False),
+ Instruction(opname='LOAD_CONST', opcode=100, arg=8, argval='Here we go, here we go, here we go...', argrepr="'Here we go, here we go, here we go...'", offset=132, starts_line=None, is_jump_target=False),
+ Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=134, starts_line=None, is_jump_target=False),
+ Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=136, starts_line=None, is_jump_target=False),
+ Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=138, starts_line=None, is_jump_target=False),
+ Instruction(opname='JUMP_FORWARD', opcode=110, arg=46, argval=188, argrepr='to 188', offset=140, starts_line=None, is_jump_target=False),
+ Instruction(opname='RERAISE', opcode=48, arg=None, argval=None, argrepr='', offset=142, starts_line=None, is_jump_target=True),
+ Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=144, starts_line=25, is_jump_target=True),
+ Instruction(opname='SETUP_WITH', opcode=143, arg=24, argval=172, argrepr='to 172', offset=146, starts_line=None, is_jump_target=False),
+ Instruction(opname='STORE_FAST', opcode=125, arg=1, argval='dodgy', argrepr='dodgy', offset=148, starts_line=None, is_jump_target=False),
+ Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=150, starts_line=26, is_jump_target=False),
+ Instruction(opname='LOAD_CONST', opcode=100, arg=9, argval='Never reach this', argrepr="'Never reach this'", offset=152, starts_line=None, is_jump_target=False),
+ Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=154, starts_line=None, is_jump_target=False),
+ Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=156, starts_line=None, is_jump_target=False),
+ Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=158, starts_line=None, is_jump_target=False),
+ Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=160, starts_line=None, is_jump_target=False),
+ Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=162, starts_line=None, is_jump_target=False),
Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=164, starts_line=None, is_jump_target=False),
- Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=166, starts_line=None, is_jump_target=False),
- Instruction(opname='CALL_FUNCTION', opcode=131, arg=3, argval=3, argrepr='', offset=168, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=170, starts_line=None, is_jump_target=False),
- Instruction(opname='JUMP_FORWARD', opcode=110, arg=16, argval=190, argrepr='to 190', offset=172, starts_line=None, is_jump_target=False),
- Instruction(opname='WITH_EXCEPT_START', opcode=49, arg=None, argval=None, argrepr='', offset=174, starts_line=None, is_jump_target=True),
- Instruction(opname='POP_JUMP_IF_TRUE', opcode=115, arg=180, argval=180, argrepr='', offset=176, starts_line=None, is_jump_target=False),
- Instruction(opname='RERAISE', opcode=48, arg=None, argval=None, argrepr='', offset=178, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=180, starts_line=None, is_jump_target=True),
+ Instruction(opname='CALL_FUNCTION', opcode=131, arg=3, argval=3, argrepr='', offset=166, starts_line=None, is_jump_target=False),
+ Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=168, starts_line=None, is_jump_target=False),
+ Instruction(opname='JUMP_FORWARD', opcode=110, arg=16, argval=188, argrepr='to 188', offset=170, starts_line=None, is_jump_target=False),
+ Instruction(opname='WITH_EXCEPT_START', opcode=49, arg=None, argval=None, argrepr='', offset=172, starts_line=None, is_jump_target=True),
+ Instruction(opname='POP_JUMP_IF_TRUE', opcode=115, arg=178, argval=178, argrepr='', offset=174, starts_line=None, is_jump_target=False),
+ Instruction(opname='RERAISE', opcode=48, arg=None, argval=None, argrepr='', offset=176, starts_line=None, is_jump_target=False),
+ Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=178, starts_line=None, is_jump_target=True),
+ Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=180, starts_line=None, is_jump_target=False),
Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=182, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=184, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=186, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=188, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=190, starts_line=None, is_jump_target=True),
- Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=192, starts_line=28, is_jump_target=False),
- Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=194, starts_line=None, is_jump_target=False),
- Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=196, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=198, starts_line=None, is_jump_target=False),
- Instruction(opname='JUMP_FORWARD', opcode=110, arg=10, argval=212, argrepr='to 212', offset=200, starts_line=None, is_jump_target=False),
- Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=202, starts_line=None, is_jump_target=True),
- Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=204, starts_line=None, is_jump_target=False),
- Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=206, starts_line=None, is_jump_target=False),
- Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=208, starts_line=None, is_jump_target=False),
- Instruction(opname='RERAISE', opcode=48, arg=None, argval=None, argrepr='', offset=210, starts_line=None, is_jump_target=False),
- Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=212, starts_line=None, is_jump_target=True),
- Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=214, starts_line=None, is_jump_target=False)
+ Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=184, starts_line=None, is_jump_target=False),
+ Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=186, starts_line=None, is_jump_target=False),
+ Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=188, starts_line=None, is_jump_target=True),
+ Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=190, starts_line=28, is_jump_target=False),
+ Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=192, starts_line=None, is_jump_target=False),
+ Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=194, starts_line=None, is_jump_target=False),
+ Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=196, starts_line=None, is_jump_target=False),
+ Instruction(opname='JUMP_FORWARD', opcode=110, arg=10, argval=210, argrepr='to 210', offset=198, starts_line=None, is_jump_target=False),
+ Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=200, starts_line=None, is_jump_target=True),
+ Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=202, starts_line=None, is_jump_target=False),
+ Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=204, starts_line=None, is_jump_target=False),
+ Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=206, starts_line=None, is_jump_target=False),
+ Instruction(opname='RERAISE', opcode=48, arg=None, argval=None, argrepr='', offset=208, starts_line=None, is_jump_target=False),
+ Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=210, starts_line=None, is_jump_target=True),
+ Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=212, starts_line=None, is_jump_target=False),
]
# One last piece of inspect fodder to check the default line number handling
diff --git a/Lib/test/test_peepholer.py b/Lib/test/test_peepholer.py
index 23cc36c6053..567e6a14361 100644
--- a/Lib/test/test_peepholer.py
+++ b/Lib/test/test_peepholer.py
@@ -65,14 +65,14 @@ class TestTranforms(BytecodeTestCase):
self.check_lnotab(unot)
def test_elim_inversion_of_is_or_in(self):
- for line, cmp_op in (
- ('not a is b', 'is not',),
- ('not a in b', 'not in',),
- ('not a is not b', 'is',),
- ('not a not in b', 'in',),
+ for line, cmp_op, invert in (
+ ('not a is b', 'IS_OP', 1,),
+ ('not a is not b', 'IS_OP', 0,),
+ ('not a in b', 'CONTAINS_OP', 1,),
+ ('not a not in b', 'CONTAINS_OP', 0,),
):
code = compile(line, '', 'single')
- self.assertInBytecode(code, 'COMPARE_OP', cmp_op)
+ self.assertInBytecode(code, cmp_op, invert)
self.check_lnotab(code)
def test_global_as_constant(self):
diff --git a/Lib/test/test_positional_only_arg.py b/Lib/test/test_positional_only_arg.py
index bf332e55259..0a9503e2025 100644
--- a/Lib/test/test_positional_only_arg.py
+++ b/Lib/test/test_positional_only_arg.py
@@ -434,11 +434,11 @@ class PositionalOnlyTestCase(unittest.TestCase):
def f(x: not (int is int), /): ...
# without constant folding we end up with
- # COMPARE_OP(is), UNARY_NOT
- # with constant folding we should expect a COMPARE_OP(is not)
+ # COMPARE_OP(is), IS_OP (0)
+ # with constant folding we should expect a IS_OP (1)
codes = [(i.opname, i.argval) for i in dis.get_instructions(g)]
self.assertNotIn(('UNARY_NOT', None), codes)
- self.assertIn(('COMPARE_OP', 'is not'), codes)
+ self.assertIn(('IS_OP', 1), codes)
if __name__ == "__main__":
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-12-30-10-53-59.bpo-39156.veT-CB.rst b/Misc/NEWS.d/next/Core and Builtins/2019-12-30-10-53-59.bpo-39156.veT-CB.rst
new file mode 100644
index 00000000000..f8d1a1a88a7
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2019-12-30-10-53-59.bpo-39156.veT-CB.rst
@@ -0,0 +1,9 @@
+Split the COMPARE_OP bytecode instruction into four distinct instructions.
+
+* COMPARE_OP for rich comparisons
+* IS_OP for 'is' and 'is not' tests
+* CONTAINS_OP for 'in' and 'is not' tests
+* JUMP_IF_NOT_EXC_MATCH for checking exceptions in 'try-except' statements.
+
+This improves the clarity of the interpreter and should provide a modest
+speedup.
diff --git a/PC/launcher.c b/PC/launcher.c
index 2749a4e7054..fd5ad0ab1a1 100644
--- a/PC/launcher.c
+++ b/PC/launcher.c
@@ -1247,6 +1247,7 @@ static PYC_MAGIC magic_values[] = {
{ 3360, 3379, L"3.6" },
{ 3390, 3399, L"3.7" },
{ 3400, 3419, L"3.8" },
+ { 3420, 3429, L"3.9" },
{ 0 }
};
@@ -1830,7 +1831,7 @@ process(int argc, wchar_t ** argv)
#if !defined(VENV_REDIRECT)
/* bpo-35811: The __PYVENV_LAUNCHER__ variable is used to
- * override sys.executable and locate the original prefix path.
+ * override sys.executable and locate the original prefix path.
* However, if it is silently inherited by a non-venv Python
* process, that process will believe it is running in the venv
* still. This is the only place where *we* can clear it (that is,
diff --git a/Python/ceval.c b/Python/ceval.c
index e8931c88820..096645aeebf 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -67,7 +67,6 @@ static void maybe_dtrace_line(PyFrameObject *, int *, int *, int *);
static void dtrace_function_entry(PyFrameObject *);
static void dtrace_function_return(PyFrameObject *);
-static PyObject * cmp_outcome(PyThreadState *, int, PyObject *, PyObject *);
static PyObject * import_name(PyThreadState *, PyFrameObject *,
PyObject *, PyObject *, PyObject *);
static PyObject * import_from(PyThreadState *, PyObject *, PyObject *);
@@ -2897,12 +2896,13 @@ main_loop:
}
case TARGET(COMPARE_OP): {
+ assert(oparg <= Py_GE);
PyObject *right = POP();
PyObject *left = TOP();
- PyObject *res = cmp_outcome(tstate, oparg, left, right);
+ PyObject *res = PyObject_RichCompare(left, right, oparg);
+ SET_TOP(res);
Py_DECREF(left);
Py_DECREF(right);
- SET_TOP(res);
if (res == NULL)
goto error;
PREDICT(POP_JUMP_IF_FALSE);
@@ -2910,6 +2910,81 @@ main_loop:
DISPATCH();
}
+ case TARGET(IS_OP): {
+ PyObject *right = POP();
+ PyObject *left = TOP();
+ int res = (left == right)^oparg;
+ PyObject *b = res ? Py_True : Py_False;
+ Py_INCREF(b);
+ SET_TOP(b);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ PREDICT(POP_JUMP_IF_FALSE);
+ PREDICT(POP_JUMP_IF_TRUE);
+ FAST_DISPATCH();
+ }
+
+ case TARGET(CONTAINS_OP): {
+ PyObject *right = POP();
+ PyObject *left = POP();
+ int res = PySequence_Contains(right, left);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ if (res < 0) {
+ goto error;
+ }
+ PyObject *b = (res^oparg) ? Py_True : Py_False;
+ Py_INCREF(b);
+ PUSH(b);
+ PREDICT(POP_JUMP_IF_FALSE);
+ PREDICT(POP_JUMP_IF_TRUE);
+ FAST_DISPATCH();
+ }
+
+#define CANNOT_CATCH_MSG "catching classes that do not inherit from "\
+ "BaseException is not allowed"
+
+ case TARGET(JUMP_IF_NOT_EXC_MATCH): {
+ PyObject *right = POP();
+ PyObject *left = POP();
+ if (PyTuple_Check(right)) {
+ Py_ssize_t i, length;
+ length = PyTuple_GET_SIZE(right);
+ for (i = 0; i < length; i++) {
+ PyObject *exc = PyTuple_GET_ITEM(right, i);
+ if (!PyExceptionClass_Check(exc)) {
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ CANNOT_CATCH_MSG);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ goto error;
+ }
+ }
+ }
+ else {
+ if (!PyExceptionClass_Check(right)) {
+ _PyErr_SetString(tstate, PyExc_TypeError,
+ CANNOT_CATCH_MSG);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ goto error;
+ }
+ }
+ int res = PyErr_GivenExceptionMatches(left, right);
+ Py_DECREF(left);
+ Py_DECREF(right);
+ if (res > 0) {
+ /* Exception matches -- Do nothing */;
+ }
+ else if (res == 0) {
+ JUMPTO(oparg);
+ }
+ else {
+ goto error;
+ }
+ DISPATCH();
+ }
+
case TARGET(IMPORT_NAME): {
PyObject *name = GETITEM(names, oparg);
PyObject *fromlist = POP();
@@ -4951,62 +5026,6 @@ _PyEval_SliceIndexNotNone(PyObject *v, Py_ssize_t *pi)
return 1;
}
-
-#define CANNOT_CATCH_MSG "catching classes that do not inherit from "\
- "BaseException is not allowed"
-
-static PyObject *
-cmp_outcome(PyThreadState *tstate, int op, PyObject *v, PyObject *w)
-{
- int res = 0;
- switch (op) {
- case PyCmp_IS:
- res = (v == w);
- break;
- case PyCmp_IS_NOT:
- res = (v != w);
- break;
- case PyCmp_IN:
- res = PySequence_Contains(w, v);
- if (res < 0)
- return NULL;
- break;
- case PyCmp_NOT_IN:
- res = PySequence_Contains(w, v);
- if (res < 0)
- return NULL;
- res = !res;
- break;
- case PyCmp_EXC_MATCH:
- if (PyTuple_Check(w)) {
- Py_ssize_t i, length;
- length = PyTuple_Size(w);
- for (i = 0; i < length; i += 1) {
- PyObject *exc = PyTuple_GET_ITEM(w, i);
- if (!PyExceptionClass_Check(exc)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- CANNOT_CATCH_MSG);
- return NULL;
- }
- }
- }
- else {
- if (!PyExceptionClass_Check(w)) {
- _PyErr_SetString(tstate, PyExc_TypeError,
- CANNOT_CATCH_MSG);
- return NULL;
- }
- }
- res = PyErr_GivenExceptionMatches(v, w);
- break;
- default:
- return PyObject_RichCompare(v, w, op);
- }
- v = res ? Py_True : Py_False;
- Py_INCREF(v);
- return v;
-}
-
static PyObject *
import_name(PyThreadState *tstate, PyFrameObject *f,
PyObject *name, PyObject *fromlist, PyObject *level)
diff --git a/Python/compile.c b/Python/compile.c
index ce6f18a1f57..3138a3f50dd 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1021,7 +1021,11 @@ stack_effect(int opcode, int oparg, int jump)
case LOAD_ATTR:
return 0;
case COMPARE_OP:
+ case IS_OP:
+ case CONTAINS_OP:
return -1;
+ case JUMP_IF_NOT_EXC_MATCH:
+ return -2;
case IMPORT_NAME:
return -1;
case IMPORT_FROM:
@@ -1502,6 +1506,12 @@ compiler_addop_j(struct compiler *c, int opcode, basicblock *b, int absolute)
return 0; \
}
+
+#define ADDOP_COMPARE(C, CMP) { \
+ if (!compiler_addcompare((C), (cmpop_ty)(CMP))) \
+ return 0; \
+}
+
/* VISIT and VISIT_SEQ takes an ASDL type as their second argument. They use
the ASDL name to synthesize the name of the C type and the visit function.
*/
@@ -2433,35 +2443,49 @@ check_compare(struct compiler *c, expr_ty e)
return 1;
}
-static int
-cmpop(cmpop_ty op)
+static int compiler_addcompare(struct compiler *c, cmpop_ty op)
{
+ int cmp;
switch (op) {
case Eq:
- return PyCmp_EQ;
+ cmp = Py_EQ;
+ break;
case NotEq:
- return PyCmp_NE;
+ cmp = Py_NE;
+ break;
case Lt:
- return PyCmp_LT;
+ cmp = Py_LT;
+ break;
case LtE:
- return PyCmp_LE;
+ cmp = Py_LE;
+ break;
case Gt:
- return PyCmp_GT;
+ cmp = Py_GT;
+ break;
case GtE:
- return PyCmp_GE;
+ cmp = Py_GE;
+ break;
case Is:
- return PyCmp_IS;
+ ADDOP_I(c, IS_OP, 0);
+ return 1;
case IsNot:
- return PyCmp_IS_NOT;
+ ADDOP_I(c, IS_OP, 1);
+ return 1;
case In:
- return PyCmp_IN;
+ ADDOP_I(c, CONTAINS_OP, 0);
+ return 1;
case NotIn:
- return PyCmp_NOT_IN;
+ ADDOP_I(c, CONTAINS_OP, 1);
+ return 1;
default:
- return PyCmp_BAD;
+ Py_UNREACHABLE();
}
+ ADDOP_I(c, COMPARE_OP, cmp);
+ return 1;
}
+
+
static int
compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next, int cond)
{
@@ -2526,14 +2550,12 @@ compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next, int cond)
(expr_ty)asdl_seq_GET(e->v.Compare.comparators, i));
ADDOP(c, DUP_TOP);
ADDOP(c, ROT_THREE);
- ADDOP_I(c, COMPARE_OP,
- cmpop((cmpop_ty)(asdl_seq_GET(e->v.Compare.ops, i))));
+ ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, i));
ADDOP_JABS(c, POP_JUMP_IF_FALSE, cleanup);
NEXT_BLOCK(c);
}
VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n));
- ADDOP_I(c, COMPARE_OP,
- cmpop((cmpop_ty)(asdl_seq_GET(e->v.Compare.ops, n))));
+ ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, n));
ADDOP_JABS(c, cond ? POP_JUMP_IF_TRUE : POP_JUMP_IF_FALSE, next);
basicblock *end = compiler_new_block(c);
if (end == NULL)
@@ -2976,8 +2998,7 @@ compiler_try_finally(struct compiler *c, stmt_ty s)
[tb, val, exc] L1: DUP )
[tb, val, exc, exc] )
- [tb, val, exc, exc, E1] COMPARE_OP EXC_MATCH ) only if E1
- [tb, val, exc, 1-or-0] POP_JUMP_IF_FALSE L2 )
+ [tb, val, exc, exc, E1] JUMP_IF_NOT_EXC_MATCH L2 ) only if E1
[tb, val, exc] POP
[tb, val] (or POP if no V1)
[tb] POP
@@ -3029,8 +3050,7 @@ compiler_try_except(struct compiler *c, stmt_ty s)
if (handler->v.ExceptHandler.type) {
ADDOP(c, DUP_TOP);
VISIT(c, expr, handler->v.ExceptHandler.type);
- ADDOP_I(c, COMPARE_OP, PyCmp_EXC_MATCH);
- ADDOP_JABS(c, POP_JUMP_IF_FALSE, except);
+ ADDOP_JABS(c, JUMP_IF_NOT_EXC_MATCH, except);
}
ADDOP(c, POP_TOP);
if (handler->v.ExceptHandler.name) {
@@ -3873,8 +3893,7 @@ compiler_compare(struct compiler *c, expr_ty e)
n = asdl_seq_LEN(e->v.Compare.ops) - 1;
if (n == 0) {
VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, 0));
- ADDOP_I(c, COMPARE_OP,
- cmpop((cmpop_ty)(asdl_seq_GET(e->v.Compare.ops, 0))));
+ ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, 0));
}
else {
basicblock *cleanup = compiler_new_block(c);
@@ -3885,14 +3904,12 @@ compiler_compare(struct compiler *c, expr_ty e)
(expr_ty)asdl_seq_GET(e->v.Compare.comparators, i));
ADDOP(c, DUP_TOP);
ADDOP(c, ROT_THREE);
- ADDOP_I(c, COMPARE_OP,
- cmpop((cmpop_ty)(asdl_seq_GET(e->v.Compare.ops, i))));
+ ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, i));
ADDOP_JABS(c, JUMP_IF_FALSE_OR_POP, cleanup);
NEXT_BLOCK(c);
}
VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Compare.comparators, n));
- ADDOP_I(c, COMPARE_OP,
- cmpop((cmpop_ty)(asdl_seq_GET(e->v.Compare.ops, n))));
+ ADDOP_COMPARE(c, asdl_seq_GET(e->v.Compare.ops, n));
basicblock *end = compiler_new_block(c);
if (end == NULL)
return 0;
diff --git a/Python/importlib.h b/Python/importlib.h
index dea619e29d7..63e2064889b 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -121,7 +121,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,
67,0,0,0,115,60,0,0,0,116,0,160,1,161,0,125,
1,124,0,106,2,125,2,116,3,160,4,124,2,161,1,125,
- 3,124,3,100,0,107,8,114,36,100,1,83,0,124,3,106,
+ 3,124,3,100,0,117,0,114,36,100,1,83,0,124,3,106,
2,125,2,124,2,124,1,107,2,114,14,100,2,83,0,113,
14,100,0,83,0,41,3,78,70,84,41,5,114,23,0,0,
0,218,9,103,101,116,95,105,100,101,110,116,114,26,0,0,
@@ -303,461 +303,460 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
0,0,0,114,49,0,0,0,141,0,0,0,115,6,0,0,
0,8,2,8,4,8,4,114,49,0,0,0,99,1,0,0,
0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,0,
- 0,67,0,0,0,115,138,0,0,0,116,0,160,1,161,0,
- 1,0,122,114,122,14,116,2,124,0,25,0,131,0,125,1,
- 87,0,110,24,4,0,116,3,107,10,114,48,1,0,1,0,
- 1,0,100,1,125,1,89,0,110,2,48,0,124,1,100,1,
- 107,8,114,112,116,4,100,1,107,8,114,76,116,5,124,0,
- 131,1,125,1,110,8,116,6,124,0,131,1,125,1,124,0,
- 102,1,100,2,100,3,132,1,125,2,116,7,160,8,124,1,
- 124,2,161,2,116,2,124,0,60,0,87,0,116,0,160,9,
- 161,0,1,0,110,10,116,0,160,9,161,0,1,0,48,0,
- 124,1,83,0,41,4,122,139,71,101,116,32,111,114,32,99,
- 114,101,97,116,101,32,116,104,101,32,109,111,100,117,108,101,
- 32,108,111,99,107,32,102,111,114,32,97,32,103,105,118,101,
- 110,32,109,111,100,117,108,101,32,110,97,109,101,46,10,10,
- 32,32,32,32,65,99,113,117,105,114,101,47,114,101,108,101,
- 97,115,101,32,105,110,116,101,114,110,97,108,108,121,32,116,
- 104,101,32,103,108,111,98,97,108,32,105,109,112,111,114,116,
- 32,108,111,99,107,32,116,111,32,112,114,111,116,101,99,116,
- 10,32,32,32,32,95,109,111,100,117,108,101,95,108,111,99,
- 107,115,46,78,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,8,0,0,0,83,0,0,0,115,56,0,
- 0,0,116,0,160,1,161,0,1,0,122,32,116,2,160,3,
- 124,1,161,1,124,0,107,8,114,30,116,2,124,1,61,0,
- 87,0,116,0,160,4,161,0,1,0,110,10,116,0,160,4,
- 161,0,1,0,48,0,100,0,83,0,114,13,0,0,0,41,
- 5,218,4,95,105,109,112,218,12,97,99,113,117,105,114,101,
- 95,108,111,99,107,218,13,95,109,111,100,117,108,101,95,108,
- 111,99,107,115,114,34,0,0,0,218,12,114,101,108,101,97,
- 115,101,95,108,111,99,107,41,2,218,3,114,101,102,114,17,
- 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,218,2,99,98,176,0,0,0,115,12,0,0,0,0,
- 1,8,1,2,4,14,1,8,2,10,0,122,28,95,103,101,
- 116,95,109,111,100,117,108,101,95,108,111,99,107,46,60,108,
- 111,99,97,108,115,62,46,99,98,41,10,114,56,0,0,0,
- 114,57,0,0,0,114,58,0,0,0,218,8,75,101,121,69,
- 114,114,111,114,114,23,0,0,0,114,48,0,0,0,114,20,
- 0,0,0,218,8,95,119,101,97,107,114,101,102,114,60,0,
- 0,0,114,59,0,0,0,41,3,114,17,0,0,0,114,24,
- 0,0,0,114,61,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,114,52,0,0,0,157,0,0,0,
- 115,30,0,0,0,0,6,8,1,2,1,2,1,14,1,14,
- 1,10,2,8,1,8,1,10,2,8,2,12,11,18,2,10,
- 0,10,2,114,52,0,0,0,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,2,0,0,0,8,0,0,0,67,0,0,
- 0,115,54,0,0,0,116,0,124,0,131,1,125,1,122,12,
- 124,1,160,1,161,0,1,0,87,0,110,20,4,0,116,2,
- 107,10,114,40,1,0,1,0,1,0,89,0,110,10,48,0,
- 124,1,160,3,161,0,1,0,100,1,83,0,41,2,122,189,
- 65,99,113,117,105,114,101,115,32,116,104,101,110,32,114,101,
- 108,101,97,115,101,115,32,116,104,101,32,109,111,100,117,108,
- 101,32,108,111,99,107,32,102,111,114,32,97,32,103,105,118,
- 101,110,32,109,111,100,117,108,101,32,110,97,109,101,46,10,
- 10,32,32,32,32,84,104,105,115,32,105,115,32,117,115,101,
- 100,32,116,111,32,101,110,115,117,114,101,32,97,32,109,111,
- 100,117,108,101,32,105,115,32,99,111,109,112,108,101,116,101,
- 108,121,32,105,110,105,116,105,97,108,105,122,101,100,44,32,
- 105,110,32,116,104,101,10,32,32,32,32,101,118,101,110,116,
- 32,105,116,32,105,115,32,98,101,105,110,103,32,105,109,112,
- 111,114,116,101,100,32,98,121,32,97,110,111,116,104,101,114,
- 32,116,104,114,101,97,100,46,10,32,32,32,32,78,41,4,
- 114,52,0,0,0,114,38,0,0,0,114,19,0,0,0,114,
- 39,0,0,0,41,2,114,17,0,0,0,114,24,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,
- 19,95,108,111,99,107,95,117,110,108,111,99,107,95,109,111,
- 100,117,108,101,194,0,0,0,115,12,0,0,0,0,6,8,
- 1,2,1,12,1,14,3,6,2,114,64,0,0,0,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,
- 0,0,0,79,0,0,0,115,10,0,0,0,124,0,124,1,
- 124,2,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,
- 111,118,101,32,115,101,113,117,101,110,99,101,115,10,32,32,
- 32,32,111,102,32,105,109,112,111,114,116,108,105,98,32,102,
- 114,97,109,101,115,32,116,104,97,116,32,101,110,100,32,119,
- 105,116,104,32,97,32,99,97,108,108,32,116,111,32,116,104,
- 105,115,32,102,117,110,99,116,105,111,110,10,10,32,32,32,
- 32,85,115,101,32,105,116,32,105,110,115,116,101,97,100,32,
- 111,102,32,97,32,110,111,114,109,97,108,32,99,97,108,108,
- 32,105,110,32,112,108,97,99,101,115,32,119,104,101,114,101,
- 32,105,110,99,108,117,100,105,110,103,32,116,104,101,32,105,
- 109,112,111,114,116,108,105,98,10,32,32,32,32,102,114,97,
- 109,101,115,32,105,110,116,114,111,100,117,99,101,115,32,117,
- 110,119,97,110,116,101,100,32,110,111,105,115,101,32,105,110,
- 116,111,32,116,104,101,32,116,114,97,99,101,98,97,99,107,
- 32,40,101,46,103,46,32,119,104,101,110,32,101,120,101,99,
- 117,116,105,110,103,10,32,32,32,32,109,111,100,117,108,101,
- 32,99,111,100,101,41,10,32,32,32,32,114,10,0,0,0,
- 41,3,218,1,102,114,54,0,0,0,90,4,107,119,100,115,
- 114,10,0,0,0,114,10,0,0,0,114,11,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,211,0,0,0,115,2,
- 0,0,0,0,8,114,66,0,0,0,114,37,0,0,0,41,
- 1,218,9,118,101,114,98,111,115,105,116,121,99,1,0,0,
- 0,0,0,0,0,1,0,0,0,3,0,0,0,4,0,0,
- 0,71,0,0,0,115,54,0,0,0,116,0,106,1,106,2,
- 124,1,107,5,114,50,124,0,160,3,100,1,161,1,115,30,
- 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,
- 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,15,
- 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,44,0,0,0,218,6,115,116,100,
- 101,114,114,41,3,218,7,109,101,115,115,97,103,101,114,67,
- 0,0,0,114,54,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,16,95,118,101,114,98,111,115,
- 101,95,109,101,115,115,97,103,101,222,0,0,0,115,8,0,
- 0,0,0,2,12,1,10,1,8,1,114,75,0,0,0,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 3,0,0,0,3,0,0,0,115,26,0,0,0,135,0,102,
- 1,100,1,100,2,132,8,125,1,116,0,124,1,136,0,131,
- 2,1,0,124,1,83,0,41,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,67,0,0,0,115,136,0,0,0,116,0,160,1,161,0,
+ 1,0,122,112,122,14,116,2,124,0,25,0,131,0,125,1,
+ 87,0,110,22,4,0,116,3,121,46,1,0,1,0,1,0,
+ 100,1,125,1,89,0,110,2,48,0,124,1,100,1,117,0,
+ 114,110,116,4,100,1,117,0,114,74,116,5,124,0,131,1,
+ 125,1,110,8,116,6,124,0,131,1,125,1,124,0,102,1,
+ 100,2,100,3,132,1,125,2,116,7,160,8,124,1,124,2,
+ 161,2,116,2,124,0,60,0,87,0,116,0,160,9,161,0,
+ 1,0,110,10,116,0,160,9,161,0,1,0,48,0,124,1,
+ 83,0,41,4,122,139,71,101,116,32,111,114,32,99,114,101,
+ 97,116,101,32,116,104,101,32,109,111,100,117,108,101,32,108,
+ 111,99,107,32,102,111,114,32,97,32,103,105,118,101,110,32,
+ 109,111,100,117,108,101,32,110,97,109,101,46,10,10,32,32,
+ 32,32,65,99,113,117,105,114,101,47,114,101,108,101,97,115,
+ 101,32,105,110,116,101,114,110,97,108,108,121,32,116,104,101,
+ 32,103,108,111,98,97,108,32,105,109,112,111,114,116,32,108,
+ 111,99,107,32,116,111,32,112,114,111,116,101,99,116,10,32,
+ 32,32,32,95,109,111,100,117,108,101,95,108,111,99,107,115,
+ 46,78,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,8,0,0,0,83,0,0,0,115,56,0,0,0,
+ 116,0,160,1,161,0,1,0,122,32,116,2,160,3,124,1,
+ 161,1,124,0,117,0,114,30,116,2,124,1,61,0,87,0,
+ 116,0,160,4,161,0,1,0,110,10,116,0,160,4,161,0,
+ 1,0,48,0,100,0,83,0,114,13,0,0,0,41,5,218,
+ 4,95,105,109,112,218,12,97,99,113,117,105,114,101,95,108,
+ 111,99,107,218,13,95,109,111,100,117,108,101,95,108,111,99,
+ 107,115,114,34,0,0,0,218,12,114,101,108,101,97,115,101,
+ 95,108,111,99,107,41,2,218,3,114,101,102,114,17,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
+ 218,2,99,98,176,0,0,0,115,12,0,0,0,0,1,8,
+ 1,2,4,14,1,8,2,10,0,122,28,95,103,101,116,95,
+ 109,111,100,117,108,101,95,108,111,99,107,46,60,108,111,99,
+ 97,108,115,62,46,99,98,41,10,114,56,0,0,0,114,57,
+ 0,0,0,114,58,0,0,0,218,8,75,101,121,69,114,114,
+ 111,114,114,23,0,0,0,114,48,0,0,0,114,20,0,0,
+ 0,218,8,95,119,101,97,107,114,101,102,114,60,0,0,0,
+ 114,59,0,0,0,41,3,114,17,0,0,0,114,24,0,0,
+ 0,114,61,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,52,0,0,0,157,0,0,0,115,30,
+ 0,0,0,0,6,8,1,2,1,2,1,14,1,12,1,10,
+ 2,8,1,8,1,10,2,8,2,12,11,18,2,10,0,10,
+ 2,114,52,0,0,0,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,8,0,0,0,67,0,0,0,115,
+ 52,0,0,0,116,0,124,0,131,1,125,1,122,12,124,1,
+ 160,1,161,0,1,0,87,0,110,18,4,0,116,2,121,38,
+ 1,0,1,0,1,0,89,0,110,10,48,0,124,1,160,3,
+ 161,0,1,0,100,1,83,0,41,2,122,189,65,99,113,117,
+ 105,114,101,115,32,116,104,101,110,32,114,101,108,101,97,115,
+ 101,115,32,116,104,101,32,109,111,100,117,108,101,32,108,111,
+ 99,107,32,102,111,114,32,97,32,103,105,118,101,110,32,109,
+ 111,100,117,108,101,32,110,97,109,101,46,10,10,32,32,32,
+ 32,84,104,105,115,32,105,115,32,117,115,101,100,32,116,111,
+ 32,101,110,115,117,114,101,32,97,32,109,111,100,117,108,101,
+ 32,105,115,32,99,111,109,112,108,101,116,101,108,121,32,105,
+ 110,105,116,105,97,108,105,122,101,100,44,32,105,110,32,116,
+ 104,101,10,32,32,32,32,101,118,101,110,116,32,105,116,32,
+ 105,115,32,98,101,105,110,103,32,105,109,112,111,114,116,101,
+ 100,32,98,121,32,97,110,111,116,104,101,114,32,116,104,114,
+ 101,97,100,46,10,32,32,32,32,78,41,4,114,52,0,0,
+ 0,114,38,0,0,0,114,19,0,0,0,114,39,0,0,0,
+ 41,2,114,17,0,0,0,114,24,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,19,95,108,111,
+ 99,107,95,117,110,108,111,99,107,95,109,111,100,117,108,101,
+ 194,0,0,0,115,12,0,0,0,0,6,8,1,2,1,12,
+ 1,12,3,6,2,114,64,0,0,0,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,79,
+ 0,0,0,115,10,0,0,0,124,0,124,1,124,2,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,111,118,101,32,
+ 115,101,113,117,101,110,99,101,115,10,32,32,32,32,111,102,
+ 32,105,109,112,111,114,116,108,105,98,32,102,114,97,109,101,
+ 115,32,116,104,97,116,32,101,110,100,32,119,105,116,104,32,
+ 97,32,99,97,108,108,32,116,111,32,116,104,105,115,32,102,
+ 117,110,99,116,105,111,110,10,10,32,32,32,32,85,115,101,
+ 32,105,116,32,105,110,115,116,101,97,100,32,111,102,32,97,
+ 32,110,111,114,109,97,108,32,99,97,108,108,32,105,110,32,
+ 112,108,97,99,101,115,32,119,104,101,114,101,32,105,110,99,
+ 108,117,100,105,110,103,32,116,104,101,32,105,109,112,111,114,
+ 116,108,105,98,10,32,32,32,32,102,114,97,109,101,115,32,
+ 105,110,116,114,111,100,117,99,101,115,32,117,110,119,97,110,
+ 116,101,100,32,110,111,105,115,101,32,105,110,116,111,32,116,
+ 104,101,32,116,114,97,99,101,98,97,99,107,32,40,101,46,
+ 103,46,32,119,104,101,110,32,101,120,101,99,117,116,105,110,
+ 103,10,32,32,32,32,109,111,100,117,108,101,32,99,111,100,
+ 101,41,10,32,32,32,32,114,10,0,0,0,41,3,218,1,
+ 102,114,54,0,0,0,90,4,107,119,100,115,114,10,0,0,
+ 0,114,10,0,0,0,114,11,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,211,0,0,0,115,2,0,0,0,0,
+ 8,114,66,0,0,0,114,37,0,0,0,41,1,218,9,118,
+ 101,114,98,111,115,105,116,121,99,1,0,0,0,0,0,0,
+ 0,1,0,0,0,3,0,0,0,4,0,0,0,71,0,0,
+ 0,115,54,0,0,0,116,0,106,1,106,2,124,1,107,5,
+ 114,50,124,0,160,3,100,1,161,1,115,30,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,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,15,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,44,0,0,0,218,6,115,116,100,101,114,114,41,
+ 3,218,7,109,101,115,115,97,103,101,114,67,0,0,0,114,
+ 54,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,218,16,95,118,101,114,98,111,115,101,95,109,101,
+ 115,115,97,103,101,222,0,0,0,115,8,0,0,0,0,2,
+ 12,1,10,1,8,1,114,75,0,0,0,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
+ 3,0,0,0,115,26,0,0,0,135,0,102,1,100,1,100,
+ 2,132,8,125,1,116,0,124,1,136,0,131,2,1,0,124,
+ 1,83,0,41,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,2,0,0,0,4,0,0,0,19,0,0,
+ 0,115,38,0,0,0,124,1,116,0,106,1,118,1,114,28,
+ 116,2,100,1,160,3,124,1,161,1,124,1,100,2,141,2,
+ 130,1,136,0,124,0,124,1,131,2,83,0,41,3,78,250,
+ 29,123,33,114,125,32,105,115,32,110,111,116,32,97,32,98,
+ 117,105,108,116,45,105,110,32,109,111,100,117,108,101,114,16,
+ 0,0,0,41,4,114,15,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,44,0,
+ 0,0,169,2,114,30,0,0,0,218,8,102,117,108,108,110,
+ 97,109,101,169,1,218,3,102,120,110,114,10,0,0,0,114,
+ 11,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,232,
+ 0,0,0,115,10,0,0,0,0,1,10,1,10,1,2,255,
+ 6,2,122,52,95,114,101,113,117,105,114,101,115,95,98,117,
+ 105,108,116,105,110,46,60,108,111,99,97,108,115,62,46,95,
+ 114,101,113,117,105,114,101,115,95,98,117,105,108,116,105,110,
+ 95,119,114,97,112,112,101,114,169,1,114,12,0,0,0,41,
+ 2,114,82,0,0,0,114,83,0,0,0,114,10,0,0,0,
+ 114,81,0,0,0,114,11,0,0,0,218,17,95,114,101,113,
+ 117,105,114,101,115,95,98,117,105,108,116,105,110,230,0,0,
+ 0,115,6,0,0,0,0,2,12,5,10,1,114,85,0,0,
+ 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,3,0,0,0,3,0,0,0,115,26,0,0,0,135,
+ 0,102,1,100,1,100,2,132,8,125,1,116,0,124,1,136,
+ 0,131,2,1,0,124,1,83,0,41,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,2,0,0,0,4,0,0,
- 0,19,0,0,0,115,38,0,0,0,124,1,116,0,106,1,
- 107,7,114,28,116,2,100,1,160,3,124,1,161,1,124,1,
+ 0,19,0,0,0,115,38,0,0,0,116,0,160,1,124,1,
+ 161,1,115,28,116,2,100,1,160,3,124,1,161,1,124,1,
100,2,141,2,130,1,136,0,124,0,124,1,131,2,83,0,
- 41,3,78,250,29,123,33,114,125,32,105,115,32,110,111,116,
- 32,97,32,98,117,105,108,116,45,105,110,32,109,111,100,117,
- 108,101,114,16,0,0,0,41,4,114,15,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,44,0,0,0,169,2,114,30,0,0,0,218,8,102,
- 117,108,108,110,97,109,101,169,1,218,3,102,120,110,114,10,
- 0,0,0,114,11,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,232,0,0,0,115,10,0,0,0,0,1,10,1,
- 10,1,2,255,6,2,122,52,95,114,101,113,117,105,114,101,
- 115,95,98,117,105,108,116,105,110,46,60,108,111,99,97,108,
- 115,62,46,95,114,101,113,117,105,114,101,115,95,98,117,105,
- 108,116,105,110,95,119,114,97,112,112,101,114,169,1,114,12,
- 0,0,0,41,2,114,82,0,0,0,114,83,0,0,0,114,
- 10,0,0,0,114,81,0,0,0,114,11,0,0,0,218,17,
- 95,114,101,113,117,105,114,101,115,95,98,117,105,108,116,105,
- 110,230,0,0,0,115,6,0,0,0,0,2,12,5,10,1,
- 114,85,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,3,0,0,0,3,0,0,0,115,26,
- 0,0,0,135,0,102,1,100,1,100,2,132,8,125,1,116,
- 0,124,1,136,0,131,2,1,0,124,1,83,0,41,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,2,0,0,
- 0,4,0,0,0,19,0,0,0,115,38,0,0,0,116,0,
- 160,1,124,1,161,1,115,28,116,2,100,1,160,3,124,1,
- 161,1,124,1,100,2,141,2,130,1,136,0,124,0,124,1,
- 131,2,83,0,169,3,78,122,27,123,33,114,125,32,105,115,
- 32,110,111,116,32,97,32,102,114,111,122,101,110,32,109,111,
- 100,117,108,101,114,16,0,0,0,41,4,114,56,0,0,0,
- 218,9,105,115,95,102,114,111,122,101,110,114,78,0,0,0,
- 114,44,0,0,0,114,79,0,0,0,114,81,0,0,0,114,
- 10,0,0,0,114,11,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,243,0,0,0,115,10,0,0,0,0,1,10,1,
- 10,1,2,255,6,2,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,114,84,0,0,0,41,
- 2,114,82,0,0,0,114,88,0,0,0,114,10,0,0,0,
- 114,81,0,0,0,114,11,0,0,0,218,16,95,114,101,113,
- 117,105,114,101,115,95,102,114,111,122,101,110,241,0,0,0,
- 115,6,0,0,0,0,2,12,5,10,1,114,89,0,0,0,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
- 0,3,0,0,0,67,0,0,0,115,62,0,0,0,116,0,
- 124,1,124,0,131,2,125,2,124,1,116,1,106,2,107,6,
- 114,50,116,1,106,2,124,1,25,0,125,3,116,3,124,2,
- 124,3,131,2,1,0,116,1,106,2,124,1,25,0,83,0,
- 116,4,124,2,131,1,83,0,100,1,83,0,41,2,122,128,
- 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,32,105,110,115,116,101,97,100,46,10,10,32,32,32,32,
- 78,41,5,218,16,115,112,101,99,95,102,114,111,109,95,108,
- 111,97,100,101,114,114,15,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,4,114,30,0,0,0,114,80,0,0,0,218,4,115,
- 112,101,99,218,6,109,111,100,117,108,101,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,17,95,108,111,97,
- 100,95,109,111,100,117,108,101,95,115,104,105,109,253,0,0,
- 0,115,12,0,0,0,0,6,10,1,10,1,10,1,10,1,
- 10,2,114,96,0,0,0,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,5,0,0,0,8,0,0,0,67,0,0,0,
- 115,226,0,0,0,116,0,124,0,100,1,100,0,131,3,125,
- 1,116,1,124,1,100,2,131,2,114,56,122,12,124,1,160,
- 2,124,0,161,1,87,0,83,0,4,0,116,3,107,10,114,
- 54,1,0,1,0,1,0,89,0,110,2,48,0,122,10,124,
- 0,106,4,125,2,87,0,110,20,4,0,116,5,107,10,114,
- 86,1,0,1,0,1,0,89,0,110,18,48,0,124,2,100,
- 0,107,9,114,104,116,6,124,2,131,1,83,0,122,10,124,
- 0,106,7,125,3,87,0,110,24,4,0,116,5,107,10,114,
- 138,1,0,1,0,1,0,100,3,125,3,89,0,110,2,48,
- 0,122,10,124,0,106,8,125,4,87,0,110,58,4,0,116,
- 5,107,10,114,208,1,0,1,0,1,0,124,1,100,0,107,
- 8,114,188,100,4,160,9,124,3,161,1,6,0,89,0,83,
- 0,100,5,160,9,124,3,124,1,161,2,6,0,89,0,83,
- 0,89,0,110,14,48,0,100,6,160,9,124,3,124,4,161,
- 2,83,0,100,0,83,0,41,7,78,218,10,95,95,108,111,
- 97,100,101,114,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,10,114,6,0,0,0,114,4,0,0,0,
- 114,98,0,0,0,218,9,69,120,99,101,112,116,105,111,110,
- 218,8,95,95,115,112,101,99,95,95,218,14,65,116,116,114,
- 105,98,117,116,101,69,114,114,111,114,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,1,0,0,0,218,8,95,95,102,105,108,101,95,
- 95,114,44,0,0,0,41,5,114,95,0,0,0,218,6,108,
- 111,97,100,101,114,114,94,0,0,0,114,17,0,0,0,218,
- 8,102,105,108,101,110,97,109,101,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,218,12,95,109,111,100,117,108,
- 101,95,114,101,112,114,13,1,0,0,115,46,0,0,0,0,
- 2,12,1,10,4,2,1,12,1,14,1,6,1,2,1,10,
- 1,14,1,6,2,8,1,8,4,2,1,10,1,14,1,10,
- 1,2,1,10,1,14,1,8,1,14,2,22,2,114,110,0,
- 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,4,0,0,0,64,0,0,0,115,114,0,0,0,
- 101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,2,
- 100,2,100,3,156,3,100,4,100,5,132,2,90,4,100,6,
- 100,7,132,0,90,5,100,8,100,9,132,0,90,6,101,7,
- 100,10,100,11,132,0,131,1,90,8,101,8,106,9,100,12,
- 100,11,132,0,131,1,90,8,101,7,100,13,100,14,132,0,
- 131,1,90,10,101,7,100,15,100,16,132,0,131,1,90,11,
- 101,11,106,9,100,17,100,16,132,0,131,1,90,11,100,2,
- 83,0,41,18,218,10,77,111,100,117,108,101,83,112,101,99,
- 97,208,5,0,0,84,104,101,32,115,112,101,99,105,102,105,
- 99,97,116,105,111,110,32,102,111,114,32,97,32,109,111,100,
- 117,108,101,44,32,117,115,101,100,32,102,111,114,32,108,111,
- 97,100,105,110,103,46,10,10,32,32,32,32,65,32,109,111,
- 100,117,108,101,39,115,32,115,112,101,99,32,105,115,32,116,
- 104,101,32,115,111,117,114,99,101,32,102,111,114,32,105,110,
- 102,111,114,109,97,116,105,111,110,32,97,98,111,117,116,32,
- 116,104,101,32,109,111,100,117,108,101,46,32,32,70,111,114,
- 10,32,32,32,32,100,97,116,97,32,97,115,115,111,99,105,
- 97,116,101,100,32,119,105,116,104,32,116,104,101,32,109,111,
- 100,117,108,101,44,32,105,110,99,108,117,100,105,110,103,32,
- 115,111,117,114,99,101,44,32,117,115,101,32,116,104,101,32,
- 115,112,101,99,39,115,10,32,32,32,32,108,111,97,100,101,
- 114,46,10,10,32,32,32,32,96,110,97,109,101,96,32,105,
- 115,32,116,104,101,32,97,98,115,111,108,117,116,101,32,110,
- 97,109,101,32,111,102,32,116,104,101,32,109,111,100,117,108,
- 101,46,32,32,96,108,111,97,100,101,114,96,32,105,115,32,
- 116,104,101,32,108,111,97,100,101,114,10,32,32,32,32,116,
- 111,32,117,115,101,32,119,104,101,110,32,108,111,97,100,105,
- 110,103,32,116,104,101,32,109,111,100,117,108,101,46,32,32,
- 96,112,97,114,101,110,116,96,32,105,115,32,116,104,101,32,
- 110,97,109,101,32,111,102,32,116,104,101,10,32,32,32,32,
- 112,97,99,107,97,103,101,32,116,104,101,32,109,111,100,117,
- 108,101,32,105,115,32,105,110,46,32,32,84,104,101,32,112,
- 97,114,101,110,116,32,105,115,32,100,101,114,105,118,101,100,
- 32,102,114,111,109,32,116,104,101,32,110,97,109,101,46,10,
- 10,32,32,32,32,96,105,115,95,112,97,99,107,97,103,101,
- 96,32,100,101,116,101,114,109,105,110,101,115,32,105,102,32,
- 116,104,101,32,109,111,100,117,108,101,32,105,115,32,99,111,
- 110,115,105,100,101,114,101,100,32,97,32,112,97,99,107,97,
- 103,101,32,111,114,10,32,32,32,32,110,111,116,46,32,32,
- 79,110,32,109,111,100,117,108,101,115,32,116,104,105,115,32,
- 105,115,32,114,101,102,108,101,99,116,101,100,32,98,121,32,
- 116,104,101,32,96,95,95,112,97,116,104,95,95,96,32,97,
- 116,116,114,105,98,117,116,101,46,10,10,32,32,32,32,96,
- 111,114,105,103,105,110,96,32,105,115,32,116,104,101,32,115,
- 112,101,99,105,102,105,99,32,108,111,99,97,116,105,111,110,
- 32,117,115,101,100,32,98,121,32,116,104,101,32,108,111,97,
- 100,101,114,32,102,114,111,109,32,119,104,105,99,104,32,116,
- 111,10,32,32,32,32,108,111,97,100,32,116,104,101,32,109,
- 111,100,117,108,101,44,32,105,102,32,116,104,97,116,32,105,
- 110,102,111,114,109,97,116,105,111,110,32,105,115,32,97,118,
- 97,105,108,97,98,108,101,46,32,32,87,104,101,110,32,102,
- 105,108,101,110,97,109,101,32,105,115,10,32,32,32,32,115,
- 101,116,44,32,111,114,105,103,105,110,32,119,105,108,108,32,
- 109,97,116,99,104,46,10,10,32,32,32,32,96,104,97,115,
- 95,108,111,99,97,116,105,111,110,96,32,105,110,100,105,99,
- 97,116,101,115,32,116,104,97,116,32,97,32,115,112,101,99,
- 39,115,32,34,111,114,105,103,105,110,34,32,114,101,102,108,
- 101,99,116,115,32,97,32,108,111,99,97,116,105,111,110,46,
- 10,32,32,32,32,87,104,101,110,32,116,104,105,115,32,105,
- 115,32,84,114,117,101,44,32,96,95,95,102,105,108,101,95,
- 95,96,32,97,116,116,114,105,98,117,116,101,32,111,102,32,
- 116,104,101,32,109,111,100,117,108,101,32,105,115,32,115,101,
- 116,46,10,10,32,32,32,32,96,99,97,99,104,101,100,96,
- 32,105,115,32,116,104,101,32,108,111,99,97,116,105,111,110,
- 32,111,102,32,116,104,101,32,99,97,99,104,101,100,32,98,
- 121,116,101,99,111,100,101,32,102,105,108,101,44,32,105,102,
- 32,97,110,121,46,32,32,73,116,10,32,32,32,32,99,111,
- 114,114,101,115,112,111,110,100,115,32,116,111,32,116,104,101,
- 32,96,95,95,99,97,99,104,101,100,95,95,96,32,97,116,
- 116,114,105,98,117,116,101,46,10,10,32,32,32,32,96,115,
- 117,98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,
- 108,111,99,97,116,105,111,110,115,96,32,105,115,32,116,104,
- 101,32,115,101,113,117,101,110,99,101,32,111,102,32,112,97,
- 116,104,32,101,110,116,114,105,101,115,32,116,111,10,32,32,
- 32,32,115,101,97,114,99,104,32,119,104,101,110,32,105,109,
- 112,111,114,116,105,110,103,32,115,117,98,109,111,100,117,108,
- 101,115,46,32,32,73,102,32,115,101,116,44,32,105,115,95,
- 112,97,99,107,97,103,101,32,115,104,111,117,108,100,32,98,
- 101,10,32,32,32,32,84,114,117,101,45,45,97,110,100,32,
- 70,97,108,115,101,32,111,116,104,101,114,119,105,115,101,46,
- 10,10,32,32,32,32,80,97,99,107,97,103,101,115,32,97,
- 114,101,32,115,105,109,112,108,121,32,109,111,100,117,108,101,
- 115,32,116,104,97,116,32,40,109,97,121,41,32,104,97,118,
- 101,32,115,117,98,109,111,100,117,108,101,115,46,32,32,73,
- 102,32,97,32,115,112,101,99,10,32,32,32,32,104,97,115,
- 32,97,32,110,111,110,45,78,111,110,101,32,118,97,108,117,
- 101,32,105,110,32,96,115,117,98,109,111,100,117,108,101,95,
- 115,101,97,114,99,104,95,108,111,99,97,116,105,111,110,115,
- 96,44,32,116,104,101,32,105,109,112,111,114,116,10,32,32,
- 32,32,115,121,115,116,101,109,32,119,105,108,108,32,99,111,
- 110,115,105,100,101,114,32,109,111,100,117,108,101,115,32,108,
- 111,97,100,101,100,32,102,114,111,109,32,116,104,101,32,115,
- 112,101,99,32,97,115,32,112,97,99,107,97,103,101,115,46,
- 10,10,32,32,32,32,79,110,108,121,32,102,105,110,100,101,
- 114,115,32,40,115,101,101,32,105,109,112,111,114,116,108,105,
- 98,46,97,98,99,46,77,101,116,97,80,97,116,104,70,105,
- 110,100,101,114,32,97,110,100,10,32,32,32,32,105,109,112,
- 111,114,116,108,105,98,46,97,98,99,46,80,97,116,104,69,
- 110,116,114,121,70,105,110,100,101,114,41,32,115,104,111,117,
- 108,100,32,109,111,100,105,102,121,32,77,111,100,117,108,101,
- 83,112,101,99,32,105,110,115,116,97,110,99,101,115,46,10,
- 10,32,32,32,32,78,41,3,218,6,111,114,105,103,105,110,
- 218,12,108,111,97,100,101,114,95,115,116,97,116,101,218,10,
- 105,115,95,112,97,99,107,97,103,101,99,3,0,0,0,0,
- 0,0,0,3,0,0,0,6,0,0,0,2,0,0,0,67,
- 0,0,0,115,54,0,0,0,124,1,124,0,95,0,124,2,
- 124,0,95,1,124,3,124,0,95,2,124,4,124,0,95,3,
- 124,5,114,32,103,0,110,2,100,0,124,0,95,4,100,1,
- 124,0,95,5,100,0,124,0,95,6,100,0,83,0,41,2,
- 78,70,41,7,114,17,0,0,0,114,108,0,0,0,114,112,
- 0,0,0,114,113,0,0,0,218,26,115,117,98,109,111,100,
+ 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,16,0,0,0,41,4,114,56,0,0,0,218,9,105,115,
+ 95,102,114,111,122,101,110,114,78,0,0,0,114,44,0,0,
+ 0,114,79,0,0,0,114,81,0,0,0,114,10,0,0,0,
+ 114,11,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,243,
+ 0,0,0,115,10,0,0,0,0,1,10,1,10,1,2,255,
+ 6,2,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,114,84,0,0,0,41,2,114,82,0,
+ 0,0,114,88,0,0,0,114,10,0,0,0,114,81,0,0,
+ 0,114,11,0,0,0,218,16,95,114,101,113,117,105,114,101,
+ 115,95,102,114,111,122,101,110,241,0,0,0,115,6,0,0,
+ 0,0,2,12,5,10,1,114,89,0,0,0,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,
+ 0,67,0,0,0,115,62,0,0,0,116,0,124,1,124,0,
+ 131,2,125,2,124,1,116,1,106,2,118,0,114,50,116,1,
+ 106,2,124,1,25,0,125,3,116,3,124,2,124,3,131,2,
+ 1,0,116,1,106,2,124,1,25,0,83,0,116,4,124,2,
+ 131,1,83,0,100,1,83,0,41,2,122,128,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,32,105,110,
+ 115,116,101,97,100,46,10,10,32,32,32,32,78,41,5,218,
+ 16,115,112,101,99,95,102,114,111,109,95,108,111,97,100,101,
+ 114,114,15,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,4,114,
+ 30,0,0,0,114,80,0,0,0,218,4,115,112,101,99,218,
+ 6,109,111,100,117,108,101,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,218,17,95,108,111,97,100,95,109,111,
+ 100,117,108,101,95,115,104,105,109,253,0,0,0,115,12,0,
+ 0,0,0,6,10,1,10,1,10,1,10,1,10,2,114,96,
+ 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 5,0,0,0,8,0,0,0,67,0,0,0,115,218,0,0,
+ 0,116,0,124,0,100,1,100,0,131,3,125,1,116,1,124,
+ 1,100,2,131,2,114,54,122,12,124,1,160,2,124,0,161,
+ 1,87,0,83,0,4,0,116,3,121,52,1,0,1,0,1,
+ 0,89,0,110,2,48,0,122,10,124,0,106,4,125,2,87,
+ 0,110,18,4,0,116,5,121,82,1,0,1,0,1,0,89,
+ 0,110,18,48,0,124,2,100,0,117,1,114,100,116,6,124,
+ 2,131,1,83,0,122,10,124,0,106,7,125,3,87,0,110,
+ 22,4,0,116,5,121,132,1,0,1,0,1,0,100,3,125,
+ 3,89,0,110,2,48,0,122,10,124,0,106,8,125,4,87,
+ 0,110,56,4,0,116,5,121,200,1,0,1,0,1,0,124,
+ 1,100,0,117,0,114,180,100,4,160,9,124,3,161,1,6,
+ 0,89,0,83,0,100,5,160,9,124,3,124,1,161,2,6,
+ 0,89,0,83,0,89,0,110,14,48,0,100,6,160,9,124,
+ 3,124,4,161,2,83,0,100,0,83,0,41,7,78,218,10,
+ 95,95,108,111,97,100,101,114,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,10,114,6,0,0,0,114,
+ 4,0,0,0,114,98,0,0,0,218,9,69,120,99,101,112,
+ 116,105,111,110,218,8,95,95,115,112,101,99,95,95,218,14,
+ 65,116,116,114,105,98,117,116,101,69,114,114,111,114,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,1,0,0,0,218,8,95,95,102,
+ 105,108,101,95,95,114,44,0,0,0,41,5,114,95,0,0,
+ 0,218,6,108,111,97,100,101,114,114,94,0,0,0,114,17,
+ 0,0,0,218,8,102,105,108,101,110,97,109,101,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,218,12,95,109,
+ 111,100,117,108,101,95,114,101,112,114,13,1,0,0,115,46,
+ 0,0,0,0,2,12,1,10,4,2,1,12,1,12,1,6,
+ 1,2,1,10,1,12,1,6,2,8,1,8,4,2,1,10,
+ 1,12,1,10,1,2,1,10,1,12,1,8,1,14,2,22,
+ 2,114,110,0,0,0,99,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,4,0,0,0,64,0,0,0,115,
+ 114,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
+ 100,2,100,2,100,2,100,3,156,3,100,4,100,5,132,2,
+ 90,4,100,6,100,7,132,0,90,5,100,8,100,9,132,0,
+ 90,6,101,7,100,10,100,11,132,0,131,1,90,8,101,8,
+ 106,9,100,12,100,11,132,0,131,1,90,8,101,7,100,13,
+ 100,14,132,0,131,1,90,10,101,7,100,15,100,16,132,0,
+ 131,1,90,11,101,11,106,9,100,17,100,16,132,0,131,1,
+ 90,11,100,2,83,0,41,18,218,10,77,111,100,117,108,101,
+ 83,112,101,99,97,208,5,0,0,84,104,101,32,115,112,101,
+ 99,105,102,105,99,97,116,105,111,110,32,102,111,114,32,97,
+ 32,109,111,100,117,108,101,44,32,117,115,101,100,32,102,111,
+ 114,32,108,111,97,100,105,110,103,46,10,10,32,32,32,32,
+ 65,32,109,111,100,117,108,101,39,115,32,115,112,101,99,32,
+ 105,115,32,116,104,101,32,115,111,117,114,99,101,32,102,111,
+ 114,32,105,110,102,111,114,109,97,116,105,111,110,32,97,98,
+ 111,117,116,32,116,104,101,32,109,111,100,117,108,101,46,32,
+ 32,70,111,114,10,32,32,32,32,100,97,116,97,32,97,115,
+ 115,111,99,105,97,116,101,100,32,119,105,116,104,32,116,104,
+ 101,32,109,111,100,117,108,101,44,32,105,110,99,108,117,100,
+ 105,110,103,32,115,111,117,114,99,101,44,32,117,115,101,32,
+ 116,104,101,32,115,112,101,99,39,115,10,32,32,32,32,108,
+ 111,97,100,101,114,46,10,10,32,32,32,32,96,110,97,109,
+ 101,96,32,105,115,32,116,104,101,32,97,98,115,111,108,117,
+ 116,101,32,110,97,109,101,32,111,102,32,116,104,101,32,109,
+ 111,100,117,108,101,46,32,32,96,108,111,97,100,101,114,96,
+ 32,105,115,32,116,104,101,32,108,111,97,100,101,114,10,32,
+ 32,32,32,116,111,32,117,115,101,32,119,104,101,110,32,108,
+ 111,97,100,105,110,103,32,116,104,101,32,109,111,100,117,108,
+ 101,46,32,32,96,112,97,114,101,110,116,96,32,105,115,32,
+ 116,104,101,32,110,97,109,101,32,111,102,32,116,104,101,10,
+ 32,32,32,32,112,97,99,107,97,103,101,32,116,104,101,32,
+ 109,111,100,117,108,101,32,105,115,32,105,110,46,32,32,84,
+ 104,101,32,112,97,114,101,110,116,32,105,115,32,100,101,114,
+ 105,118,101,100,32,102,114,111,109,32,116,104,101,32,110,97,
+ 109,101,46,10,10,32,32,32,32,96,105,115,95,112,97,99,
+ 107,97,103,101,96,32,100,101,116,101,114,109,105,110,101,115,
+ 32,105,102,32,116,104,101,32,109,111,100,117,108,101,32,105,
+ 115,32,99,111,110,115,105,100,101,114,101,100,32,97,32,112,
+ 97,99,107,97,103,101,32,111,114,10,32,32,32,32,110,111,
+ 116,46,32,32,79,110,32,109,111,100,117,108,101,115,32,116,
+ 104,105,115,32,105,115,32,114,101,102,108,101,99,116,101,100,
+ 32,98,121,32,116,104,101,32,96,95,95,112,97,116,104,95,
+ 95,96,32,97,116,116,114,105,98,117,116,101,46,10,10,32,
+ 32,32,32,96,111,114,105,103,105,110,96,32,105,115,32,116,
+ 104,101,32,115,112,101,99,105,102,105,99,32,108,111,99,97,
+ 116,105,111,110,32,117,115,101,100,32,98,121,32,116,104,101,
+ 32,108,111,97,100,101,114,32,102,114,111,109,32,119,104,105,
+ 99,104,32,116,111,10,32,32,32,32,108,111,97,100,32,116,
+ 104,101,32,109,111,100,117,108,101,44,32,105,102,32,116,104,
+ 97,116,32,105,110,102,111,114,109,97,116,105,111,110,32,105,
+ 115,32,97,118,97,105,108,97,98,108,101,46,32,32,87,104,
+ 101,110,32,102,105,108,101,110,97,109,101,32,105,115,10,32,
+ 32,32,32,115,101,116,44,32,111,114,105,103,105,110,32,119,
+ 105,108,108,32,109,97,116,99,104,46,10,10,32,32,32,32,
+ 96,104,97,115,95,108,111,99,97,116,105,111,110,96,32,105,
+ 110,100,105,99,97,116,101,115,32,116,104,97,116,32,97,32,
+ 115,112,101,99,39,115,32,34,111,114,105,103,105,110,34,32,
+ 114,101,102,108,101,99,116,115,32,97,32,108,111,99,97,116,
+ 105,111,110,46,10,32,32,32,32,87,104,101,110,32,116,104,
+ 105,115,32,105,115,32,84,114,117,101,44,32,96,95,95,102,
+ 105,108,101,95,95,96,32,97,116,116,114,105,98,117,116,101,
+ 32,111,102,32,116,104,101,32,109,111,100,117,108,101,32,105,
+ 115,32,115,101,116,46,10,10,32,32,32,32,96,99,97,99,
+ 104,101,100,96,32,105,115,32,116,104,101,32,108,111,99,97,
+ 116,105,111,110,32,111,102,32,116,104,101,32,99,97,99,104,
+ 101,100,32,98,121,116,101,99,111,100,101,32,102,105,108,101,
+ 44,32,105,102,32,97,110,121,46,32,32,73,116,10,32,32,
+ 32,32,99,111,114,114,101,115,112,111,110,100,115,32,116,111,
+ 32,116,104,101,32,96,95,95,99,97,99,104,101,100,95,95,
+ 96,32,97,116,116,114,105,98,117,116,101,46,10,10,32,32,
+ 32,32,96,115,117,98,109,111,100,117,108,101,95,115,101,97,
+ 114,99,104,95,108,111,99,97,116,105,111,110,115,96,32,105,
+ 115,32,116,104,101,32,115,101,113,117,101,110,99,101,32,111,
+ 102,32,112,97,116,104,32,101,110,116,114,105,101,115,32,116,
+ 111,10,32,32,32,32,115,101,97,114,99,104,32,119,104,101,
+ 110,32,105,109,112,111,114,116,105,110,103,32,115,117,98,109,
+ 111,100,117,108,101,115,46,32,32,73,102,32,115,101,116,44,
+ 32,105,115,95,112,97,99,107,97,103,101,32,115,104,111,117,
+ 108,100,32,98,101,10,32,32,32,32,84,114,117,101,45,45,
+ 97,110,100,32,70,97,108,115,101,32,111,116,104,101,114,119,
+ 105,115,101,46,10,10,32,32,32,32,80,97,99,107,97,103,
+ 101,115,32,97,114,101,32,115,105,109,112,108,121,32,109,111,
+ 100,117,108,101,115,32,116,104,97,116,32,40,109,97,121,41,
+ 32,104,97,118,101,32,115,117,98,109,111,100,117,108,101,115,
+ 46,32,32,73,102,32,97,32,115,112,101,99,10,32,32,32,
+ 32,104,97,115,32,97,32,110,111,110,45,78,111,110,101,32,
+ 118,97,108,117,101,32,105,110,32,96,115,117,98,109,111,100,
117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,116,
- 105,111,110,115,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,30,
- 0,0,0,114,17,0,0,0,114,108,0,0,0,114,112,0,
- 0,0,114,113,0,0,0,114,114,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,31,0,0,0,
- 86,1,0,0,115,14,0,0,0,0,2,6,1,6,1,6,
- 1,6,1,14,3,6,1,122,19,77,111,100,117,108,101,83,
- 112,101,99,46,95,95,105,110,105,116,95,95,99,1,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,
- 0,67,0,0,0,115,102,0,0,0,100,1,160,0,124,0,
- 106,1,161,1,100,2,160,0,124,0,106,2,161,1,103,2,
- 125,1,124,0,106,3,100,0,107,9,114,52,124,1,160,4,
- 100,3,160,0,124,0,106,3,161,1,161,1,1,0,124,0,
- 106,5,100,0,107,9,114,80,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,44,0,0,0,114,17,0,0,0,114,
- 108,0,0,0,114,112,0,0,0,218,6,97,112,112,101,110,
- 100,114,115,0,0,0,218,9,95,95,99,108,97,115,115,95,
- 95,114,1,0,0,0,218,4,106,111,105,110,41,2,114,30,
- 0,0,0,114,54,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,114,47,0,0,0,98,1,0,0,
- 115,20,0,0,0,0,1,10,1,10,255,4,2,10,1,18,
- 1,10,1,8,1,4,255,6,2,122,19,77,111,100,117,108,
- 101,83,112,101,99,46,95,95,114,101,112,114,95,95,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,8,
- 0,0,0,67,0,0,0,115,108,0,0,0,124,0,106,0,
- 125,2,122,72,124,0,106,1,124,1,106,1,107,2,111,76,
- 124,0,106,2,124,1,106,2,107,2,111,76,124,0,106,3,
- 124,1,106,3,107,2,111,76,124,2,124,1,106,0,107,2,
- 111,76,124,0,106,4,124,1,106,4,107,2,111,76,124,0,
- 106,5,124,1,106,5,107,2,87,0,83,0,4,0,116,6,
- 107,10,114,102,1,0,1,0,1,0,116,7,6,0,89,0,
- 83,0,48,0,100,0,83,0,114,13,0,0,0,41,8,114,
- 115,0,0,0,114,17,0,0,0,114,108,0,0,0,114,112,
- 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,105,0,0,0,218,14,
- 78,111,116,73,109,112,108,101,109,101,110,116,101,100,41,3,
- 114,30,0,0,0,90,5,111,116,104,101,114,90,4,115,109,
- 115,108,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,218,6,95,95,101,113,95,95,108,1,0,0,115,30,0,
- 0,0,0,1,6,1,2,1,12,1,10,255,2,2,10,254,
- 2,3,8,253,2,4,10,252,2,5,10,251,4,6,14,1,
- 122,17,77,111,100,117,108,101,83,112,101,99,46,95,95,101,
- 113,95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 1,0,0,0,3,0,0,0,67,0,0,0,115,58,0,0,
- 0,124,0,106,0,100,0,107,8,114,52,124,0,106,1,100,
- 0,107,9,114,52,124,0,106,2,114,52,116,3,100,0,107,
- 8,114,38,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,13,0,0,0,
- 41,6,114,117,0,0,0,114,112,0,0,0,114,116,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,46,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,114,121,0,0,
- 0,120,1,0,0,115,12,0,0,0,0,2,10,1,16,1,
- 8,1,4,1,14,1,122,17,77,111,100,117,108,101,83,112,
- 101,99,46,99,97,99,104,101,100,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,
- 0,0,115,10,0,0,0,124,1,124,0,95,0,100,0,83,
- 0,114,13,0,0,0,41,1,114,117,0,0,0,41,2,114,
- 30,0,0,0,114,121,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,114,121,0,0,0,129,1,0,
- 0,115,2,0,0,0,0,2,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
- 0,115,36,0,0,0,124,0,106,0,100,1,107,8,114,26,
- 124,0,106,1,160,2,100,2,161,1,100,3,25,0,83,0,
- 124,0,106,1,83,0,100,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,22,0,0,0,41,3,114,115,0,0,0,114,17,
- 0,0,0,218,10,114,112,97,114,116,105,116,105,111,110,114,
- 46,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,218,6,112,97,114,101,110,116,133,1,0,0,115,
- 6,0,0,0,0,3,10,1,16,2,122,17,77,111,100,117,
- 108,101,83,112,101,99,46,112,97,114,101,110,116,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,
- 0,0,67,0,0,0,115,6,0,0,0,124,0,106,0,83,
- 0,114,13,0,0,0,41,1,114,116,0,0,0,114,46,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,122,0,0,0,141,1,0,0,115,2,0,0,0,0,
- 2,122,23,77,111,100,117,108,101,83,112,101,99,46,104,97,
- 115,95,108,111,99,97,116,105,111,110,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,
- 0,0,0,115,14,0,0,0,116,0,124,1,131,1,124,0,
- 95,1,100,0,83,0,114,13,0,0,0,41,2,218,4,98,
- 111,111,108,114,116,0,0,0,41,2,114,30,0,0,0,218,
- 5,118,97,108,117,101,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,122,0,0,0,145,1,0,0,115,2,
- 0,0,0,0,2,41,12,114,1,0,0,0,114,0,0,0,
- 0,114,2,0,0,0,114,3,0,0,0,114,31,0,0,0,
- 114,47,0,0,0,114,124,0,0,0,218,8,112,114,111,112,
- 101,114,116,121,114,121,0,0,0,218,6,115,101,116,116,101,
- 114,114,129,0,0,0,114,122,0,0,0,114,10,0,0,0,
+ 105,111,110,115,96,44,32,116,104,101,32,105,109,112,111,114,
+ 116,10,32,32,32,32,115,121,115,116,101,109,32,119,105,108,
+ 108,32,99,111,110,115,105,100,101,114,32,109,111,100,117,108,
+ 101,115,32,108,111,97,100,101,100,32,102,114,111,109,32,116,
+ 104,101,32,115,112,101,99,32,97,115,32,112,97,99,107,97,
+ 103,101,115,46,10,10,32,32,32,32,79,110,108,121,32,102,
+ 105,110,100,101,114,115,32,40,115,101,101,32,105,109,112,111,
+ 114,116,108,105,98,46,97,98,99,46,77,101,116,97,80,97,
+ 116,104,70,105,110,100,101,114,32,97,110,100,10,32,32,32,
+ 32,105,109,112,111,114,116,108,105,98,46,97,98,99,46,80,
+ 97,116,104,69,110,116,114,121,70,105,110,100,101,114,41,32,
+ 115,104,111,117,108,100,32,109,111,100,105,102,121,32,77,111,
+ 100,117,108,101,83,112,101,99,32,105,110,115,116,97,110,99,
+ 101,115,46,10,10,32,32,32,32,78,41,3,218,6,111,114,
+ 105,103,105,110,218,12,108,111,97,100,101,114,95,115,116,97,
+ 116,101,218,10,105,115,95,112,97,99,107,97,103,101,99,3,
+ 0,0,0,0,0,0,0,3,0,0,0,6,0,0,0,2,
+ 0,0,0,67,0,0,0,115,54,0,0,0,124,1,124,0,
+ 95,0,124,2,124,0,95,1,124,3,124,0,95,2,124,4,
+ 124,0,95,3,124,5,114,32,103,0,110,2,100,0,124,0,
+ 95,4,100,1,124,0,95,5,100,0,124,0,95,6,100,0,
+ 83,0,41,2,78,70,41,7,114,17,0,0,0,114,108,0,
+ 0,0,114,112,0,0,0,114,113,0,0,0,218,26,115,117,
+ 98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,108,
+ 111,99,97,116,105,111,110,115,218,13,95,115,101,116,95,102,
+ 105,108,101,97,116,116,114,218,7,95,99,97,99,104,101,100,
+ 41,6,114,30,0,0,0,114,17,0,0,0,114,108,0,0,
+ 0,114,112,0,0,0,114,113,0,0,0,114,114,0,0,0,
114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
- 111,0,0,0,49,1,0,0,115,32,0,0,0,8,1,4,
- 36,4,1,2,255,12,12,8,10,8,12,2,1,10,8,4,
- 1,10,3,2,1,10,7,2,1,10,3,4,1,114,111,0,
- 0,0,169,2,114,112,0,0,0,114,114,0,0,0,99,2,
- 0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,8,
- 0,0,0,67,0,0,0,115,154,0,0,0,116,0,124,1,
- 100,1,131,2,114,74,116,1,100,2,107,8,114,22,116,2,
- 130,1,116,1,106,3,125,4,124,3,100,2,107,8,114,48,
- 124,4,124,0,124,1,100,3,141,2,83,0,124,3,114,56,
- 103,0,110,2,100,2,125,5,124,4,124,0,124,1,124,5,
- 100,4,141,3,83,0,124,3,100,2,107,8,114,138,116,0,
- 124,1,100,5,131,2,114,134,122,14,124,1,160,4,124,0,
- 161,1,125,3,87,0,113,138,4,0,116,5,107,10,114,130,
- 1,0,1,0,1,0,100,2,125,3,89,0,113,138,48,0,
+ 31,0,0,0,86,1,0,0,115,14,0,0,0,0,2,6,
+ 1,6,1,6,1,6,1,14,3,6,1,122,19,77,111,100,
+ 117,108,101,83,112,101,99,46,95,95,105,110,105,116,95,95,
+ 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+ 0,6,0,0,0,67,0,0,0,115,102,0,0,0,100,1,
+ 160,0,124,0,106,1,161,1,100,2,160,0,124,0,106,2,
+ 161,1,103,2,125,1,124,0,106,3,100,0,117,1,114,52,
+ 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,80,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,44,0,0,0,114,17,
+ 0,0,0,114,108,0,0,0,114,112,0,0,0,218,6,97,
+ 112,112,101,110,100,114,115,0,0,0,218,9,95,95,99,108,
+ 97,115,115,95,95,114,1,0,0,0,218,4,106,111,105,110,
+ 41,2,114,30,0,0,0,114,54,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,47,0,0,0,
+ 98,1,0,0,115,20,0,0,0,0,1,10,1,10,255,4,
+ 2,10,1,18,1,10,1,8,1,4,255,6,2,122,19,77,
+ 111,100,117,108,101,83,112,101,99,46,95,95,114,101,112,114,
+ 95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,3,
+ 0,0,0,8,0,0,0,67,0,0,0,115,106,0,0,0,
+ 124,0,106,0,125,2,122,72,124,0,106,1,124,1,106,1,
+ 107,2,111,76,124,0,106,2,124,1,106,2,107,2,111,76,
+ 124,0,106,3,124,1,106,3,107,2,111,76,124,2,124,1,
+ 106,0,107,2,111,76,124,0,106,4,124,1,106,4,107,2,
+ 111,76,124,0,106,5,124,1,106,5,107,2,87,0,83,0,
+ 4,0,116,6,121,100,1,0,1,0,1,0,116,7,6,0,
+ 89,0,83,0,48,0,100,0,83,0,114,13,0,0,0,41,
+ 8,114,115,0,0,0,114,17,0,0,0,114,108,0,0,0,
+ 114,112,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,105,0,0,0,
+ 218,14,78,111,116,73,109,112,108,101,109,101,110,116,101,100,
+ 41,3,114,30,0,0,0,90,5,111,116,104,101,114,90,4,
+ 115,109,115,108,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,218,6,95,95,101,113,95,95,108,1,0,0,115,
+ 30,0,0,0,0,1,6,1,2,1,12,1,10,255,2,2,
+ 10,254,2,3,8,253,2,4,10,252,2,5,10,251,4,6,
+ 12,1,122,17,77,111,100,117,108,101,83,112,101,99,46,95,
+ 95,101,113,95,95,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,58,
+ 0,0,0,124,0,106,0,100,0,117,0,114,52,124,0,106,
+ 1,100,0,117,1,114,52,124,0,106,2,114,52,116,3,100,
+ 0,117,0,114,38,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,13,0,
+ 0,0,41,6,114,117,0,0,0,114,112,0,0,0,114,116,
+ 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,46,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,121,
+ 0,0,0,120,1,0,0,115,12,0,0,0,0,2,10,1,
+ 16,1,8,1,4,1,14,1,122,17,77,111,100,117,108,101,
+ 83,112,101,99,46,99,97,99,104,101,100,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,
+ 67,0,0,0,115,10,0,0,0,124,1,124,0,95,0,100,
+ 0,83,0,114,13,0,0,0,41,1,114,117,0,0,0,41,
+ 2,114,30,0,0,0,114,121,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,114,121,0,0,0,129,
+ 1,0,0,115,2,0,0,0,0,2,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,
+ 0,0,0,115,36,0,0,0,124,0,106,0,100,1,117,0,
+ 114,26,124,0,106,1,160,2,100,2,161,1,100,3,25,0,
+ 83,0,124,0,106,1,83,0,100,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,22,0,0,0,41,3,114,115,0,0,0,
+ 114,17,0,0,0,218,10,114,112,97,114,116,105,116,105,111,
+ 110,114,46,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,218,6,112,97,114,101,110,116,133,1,0,
+ 0,115,6,0,0,0,0,3,10,1,16,2,122,17,77,111,
+ 100,117,108,101,83,112,101,99,46,112,97,114,101,110,116,99,
+ 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
+ 1,0,0,0,67,0,0,0,115,6,0,0,0,124,0,106,
+ 0,83,0,114,13,0,0,0,41,1,114,116,0,0,0,114,
+ 46,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,114,122,0,0,0,141,1,0,0,115,2,0,0,
+ 0,0,2,122,23,77,111,100,117,108,101,83,112,101,99,46,
+ 104,97,115,95,108,111,99,97,116,105,111,110,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,
+ 0,67,0,0,0,115,14,0,0,0,116,0,124,1,131,1,
+ 124,0,95,1,100,0,83,0,114,13,0,0,0,41,2,218,
+ 4,98,111,111,108,114,116,0,0,0,41,2,114,30,0,0,
+ 0,218,5,118,97,108,117,101,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,114,122,0,0,0,145,1,0,0,
+ 115,2,0,0,0,0,2,41,12,114,1,0,0,0,114,0,
+ 0,0,0,114,2,0,0,0,114,3,0,0,0,114,31,0,
+ 0,0,114,47,0,0,0,114,124,0,0,0,218,8,112,114,
+ 111,112,101,114,116,121,114,121,0,0,0,218,6,115,101,116,
+ 116,101,114,114,129,0,0,0,114,122,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,111,0,0,0,49,1,0,0,115,32,0,0,0,8,
+ 1,4,36,4,1,2,255,12,12,8,10,8,12,2,1,10,
+ 8,4,1,10,3,2,1,10,7,2,1,10,3,4,1,114,
+ 111,0,0,0,169,2,114,112,0,0,0,114,114,0,0,0,
+ 99,2,0,0,0,0,0,0,0,2,0,0,0,6,0,0,
+ 0,8,0,0,0,67,0,0,0,115,152,0,0,0,116,0,
+ 124,1,100,1,131,2,114,74,116,1,100,2,117,0,114,22,
+ 116,2,130,1,116,1,106,3,125,4,124,3,100,2,117,0,
+ 114,48,124,4,124,0,124,1,100,3,141,2,83,0,124,3,
+ 114,56,103,0,110,2,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,136,
+ 116,0,124,1,100,5,131,2,114,132,122,14,124,1,160,4,
+ 124,0,161,1,125,3,87,0,113,136,4,0,116,5,121,128,
+ 1,0,1,0,1,0,100,2,125,3,89,0,113,136,48,0,
110,4,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,
@@ -775,1030 +774,1027 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
0,0,114,11,0,0,0,114,90,0,0,0,150,1,0,0,
115,36,0,0,0,0,2,10,1,8,1,4,1,6,2,8,
1,12,1,12,1,6,1,2,255,6,3,8,1,10,1,2,
- 1,14,1,14,1,12,3,4,2,114,90,0,0,0,99,3,
+ 1,14,1,12,1,12,3,4,2,114,90,0,0,0,99,3,
0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,
- 0,0,0,67,0,0,0,115,56,1,0,0,122,10,124,0,
- 106,0,125,3,87,0,110,20,4,0,116,1,107,10,114,30,
- 1,0,1,0,1,0,89,0,110,14,48,0,124,3,100,0,
- 107,9,114,44,124,3,83,0,124,0,106,2,125,4,124,1,
- 100,0,107,8,114,90,122,10,124,0,106,3,125,1,87,0,
- 110,20,4,0,116,1,107,10,114,88,1,0,1,0,1,0,
- 89,0,110,2,48,0,122,10,124,0,106,4,125,5,87,0,
- 110,24,4,0,116,1,107,10,114,124,1,0,1,0,1,0,
- 100,0,125,5,89,0,110,2,48,0,124,2,100,0,107,8,
- 114,184,124,5,100,0,107,8,114,180,122,10,124,1,106,5,
- 125,2,87,0,113,184,4,0,116,1,107,10,114,176,1,0,
- 1,0,1,0,100,0,125,2,89,0,113,184,48,0,110,4,
- 124,5,125,2,122,10,124,0,106,6,125,6,87,0,110,24,
- 4,0,116,1,107,10,114,218,1,0,1,0,1,0,100,0,
- 125,6,89,0,110,2,48,0,122,14,116,7,124,0,106,8,
- 131,1,125,7,87,0,110,26,4,0,116,1,107,10,144,1,
- 114,4,1,0,1,0,1,0,100,0,125,7,89,0,110,2,
- 48,0,116,9,124,4,124,1,124,2,100,1,141,3,125,3,
- 124,5,100,0,107,8,144,1,114,34,100,2,110,2,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,112,0,0,0,70,84,
- 41,13,114,104,0,0,0,114,105,0,0,0,114,1,0,0,
- 0,114,97,0,0,0,114,107,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,111,0,0,0,114,116,0,0,0,114,121,0,0,0,114,
- 115,0,0,0,41,8,114,95,0,0,0,114,108,0,0,0,
- 114,112,0,0,0,114,94,0,0,0,114,17,0,0,0,90,
- 8,108,111,99,97,116,105,111,110,114,121,0,0,0,114,115,
- 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,218,17,95,115,112,101,99,95,102,114,111,109,95,109,
- 111,100,117,108,101,176,1,0,0,115,72,0,0,0,0,2,
- 2,1,10,1,14,1,6,2,8,1,4,2,6,1,8,1,
- 2,1,10,1,14,2,6,1,2,1,10,1,14,1,10,1,
- 8,1,8,1,2,1,10,1,14,1,12,2,4,1,2,1,
- 10,1,14,1,10,1,2,1,14,1,16,1,10,2,14,1,
- 20,1,6,1,6,1,114,141,0,0,0,70,169,1,218,8,
- 111,118,101,114,114,105,100,101,99,2,0,0,0,0,0,0,
- 0,1,0,0,0,5,0,0,0,8,0,0,0,67,0,0,
- 0,115,226,1,0,0,124,2,115,20,116,0,124,1,100,1,
- 100,0,131,3,100,0,107,8,114,54,122,12,124,0,106,1,
- 124,1,95,2,87,0,110,20,4,0,116,3,107,10,114,52,
- 1,0,1,0,1,0,89,0,110,2,48,0,124,2,115,74,
- 116,0,124,1,100,2,100,0,131,3,100,0,107,8,114,178,
- 124,0,106,4,125,3,124,3,100,0,107,8,114,146,124,0,
- 106,5,100,0,107,9,114,146,116,6,100,0,107,8,114,110,
+ 0,0,0,67,0,0,0,115,42,1,0,0,122,10,124,0,
+ 106,0,125,3,87,0,110,18,4,0,116,1,121,28,1,0,
+ 1,0,1,0,89,0,110,14,48,0,124,3,100,0,117,1,
+ 114,42,124,3,83,0,124,0,106,2,125,4,124,1,100,0,
+ 117,0,114,86,122,10,124,0,106,3,125,1,87,0,110,18,
+ 4,0,116,1,121,84,1,0,1,0,1,0,89,0,110,2,
+ 48,0,122,10,124,0,106,4,125,5,87,0,110,22,4,0,
+ 116,1,121,118,1,0,1,0,1,0,100,0,125,5,89,0,
+ 110,2,48,0,124,2,100,0,117,0,114,176,124,5,100,0,
+ 117,0,114,172,122,10,124,1,106,5,125,2,87,0,113,176,
+ 4,0,116,1,121,168,1,0,1,0,1,0,100,0,125,2,
+ 89,0,113,176,48,0,110,4,124,5,125,2,122,10,124,0,
+ 106,6,125,6,87,0,110,22,4,0,116,1,121,208,1,0,
+ 1,0,1,0,100,0,125,6,89,0,110,2,48,0,122,14,
+ 116,7,124,0,106,8,131,1,125,7,87,0,110,22,4,0,
+ 116,1,121,246,1,0,1,0,1,0,100,0,125,7,89,0,
+ 110,2,48,0,116,9,124,4,124,1,124,2,100,1,141,3,
+ 125,3,124,5,100,0,117,0,144,1,114,20,100,2,110,2,
+ 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,112,0,0,0,
+ 70,84,41,13,114,104,0,0,0,114,105,0,0,0,114,1,
+ 0,0,0,114,97,0,0,0,114,107,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,111,0,0,0,114,116,0,0,0,114,121,0,0,
+ 0,114,115,0,0,0,41,8,114,95,0,0,0,114,108,0,
+ 0,0,114,112,0,0,0,114,94,0,0,0,114,17,0,0,
+ 0,90,8,108,111,99,97,116,105,111,110,114,121,0,0,0,
+ 114,115,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,218,17,95,115,112,101,99,95,102,114,111,109,
+ 95,109,111,100,117,108,101,176,1,0,0,115,72,0,0,0,
+ 0,2,2,1,10,1,12,1,6,2,8,1,4,2,6,1,
+ 8,1,2,1,10,1,12,2,6,1,2,1,10,1,12,1,
+ 10,1,8,1,8,1,2,1,10,1,12,1,12,2,4,1,
+ 2,1,10,1,12,1,10,1,2,1,14,1,12,1,10,2,
+ 14,1,20,1,6,1,6,1,114,141,0,0,0,70,169,1,
+ 218,8,111,118,101,114,114,105,100,101,99,2,0,0,0,0,
+ 0,0,0,1,0,0,0,5,0,0,0,8,0,0,0,67,
+ 0,0,0,115,210,1,0,0,124,2,115,20,116,0,124,1,
+ 100,1,100,0,131,3,100,0,117,0,114,52,122,12,124,0,
+ 106,1,124,1,95,2,87,0,110,18,4,0,116,3,121,50,
+ 1,0,1,0,1,0,89,0,110,2,48,0,124,2,115,72,
+ 116,0,124,1,100,2,100,0,131,3,100,0,117,0,114,174,
+ 124,0,106,4,125,3,124,3,100,0,117,0,114,144,124,0,
+ 106,5,100,0,117,1,114,144,116,6,100,0,117,0,114,108,
116,7,130,1,116,6,106,8,125,4,124,4,160,9,124,4,
161,1,125,3,124,0,106,5,124,3,95,10,124,3,124,0,
95,4,100,0,124,1,95,11,122,10,124,3,124,1,95,12,
- 87,0,110,20,4,0,116,3,107,10,114,176,1,0,1,0,
- 1,0,89,0,110,2,48,0,124,2,115,198,116,0,124,1,
- 100,3,100,0,131,3,100,0,107,8,114,232,122,12,124,0,
- 106,13,124,1,95,14,87,0,110,20,4,0,116,3,107,10,
- 114,230,1,0,1,0,1,0,89,0,110,2,48,0,122,10,
- 124,0,124,1,95,15,87,0,110,22,4,0,116,3,107,10,
- 144,1,114,8,1,0,1,0,1,0,89,0,110,2,48,0,
- 124,2,144,1,115,34,116,0,124,1,100,4,100,0,131,3,
- 100,0,107,8,144,1,114,82,124,0,106,5,100,0,107,9,
- 144,1,114,82,122,12,124,0,106,5,124,1,95,16,87,0,
- 110,22,4,0,116,3,107,10,144,1,114,80,1,0,1,0,
- 1,0,89,0,110,2,48,0,124,0,106,17,144,1,114,222,
- 124,2,144,1,115,114,116,0,124,1,100,5,100,0,131,3,
- 100,0,107,8,144,1,114,150,122,12,124,0,106,18,124,1,
- 95,11,87,0,110,22,4,0,116,3,107,10,144,1,114,148,
- 1,0,1,0,1,0,89,0,110,2,48,0,124,2,144,1,
- 115,174,116,0,124,1,100,6,100,0,131,3,100,0,107,8,
- 144,1,114,222,124,0,106,19,100,0,107,9,144,1,114,222,
- 122,12,124,0,106,19,124,1,95,20,87,0,110,22,4,0,
- 116,3,107,10,144,1,114,220,1,0,1,0,1,0,89,0,
- 110,2,48,0,124,1,83,0,41,7,78,114,1,0,0,0,
- 114,97,0,0,0,218,11,95,95,112,97,99,107,97,103,101,
- 95,95,114,140,0,0,0,114,107,0,0,0,114,138,0,0,
- 0,41,21,114,6,0,0,0,114,17,0,0,0,114,1,0,
- 0,0,114,105,0,0,0,114,108,0,0,0,114,115,0,0,
- 0,114,125,0,0,0,114,126,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,107,0,
- 0,0,114,97,0,0,0,114,129,0,0,0,114,144,0,0,
- 0,114,104,0,0,0,114,140,0,0,0,114,122,0,0,0,
- 114,112,0,0,0,114,121,0,0,0,114,138,0,0,0,41,
- 5,114,94,0,0,0,114,95,0,0,0,114,143,0,0,0,
- 114,108,0,0,0,114,145,0,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,218,18,95,105,110,105,116,
- 95,109,111,100,117,108,101,95,97,116,116,114,115,221,1,0,
- 0,115,96,0,0,0,0,4,20,1,2,1,12,1,14,1,
- 6,2,20,1,6,1,8,2,10,1,8,1,4,1,6,2,
- 10,1,8,1,6,11,6,1,2,1,10,1,14,1,6,2,
- 20,1,2,1,12,1,14,1,6,2,2,1,10,1,16,1,
- 6,2,24,1,12,1,2,1,12,1,16,1,6,2,8,1,
- 24,1,2,1,12,1,16,1,6,2,24,1,12,1,2,1,
- 12,1,16,1,6,1,114,147,0,0,0,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
- 67,0,0,0,115,82,0,0,0,100,1,125,1,116,0,124,
- 0,106,1,100,2,131,2,114,30,124,0,106,1,160,2,124,
- 0,161,1,125,1,110,20,116,0,124,0,106,1,100,3,131,
- 2,114,50,116,3,100,4,131,1,130,1,124,1,100,1,107,
- 8,114,68,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,4,0,
- 0,0,114,108,0,0,0,114,148,0,0,0,114,78,0,0,
- 0,114,18,0,0,0,114,17,0,0,0,114,147,0,0,0,
- 169,2,114,94,0,0,0,114,95,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,218,16,109,111,100,
- 117,108,101,95,102,114,111,109,95,115,112,101,99,37,2,0,
- 0,115,18,0,0,0,0,3,4,1,12,3,14,1,12,1,
- 8,2,8,1,10,1,10,1,114,151,0,0,0,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,
- 0,0,67,0,0,0,115,106,0,0,0,124,0,106,0,100,
- 1,107,8,114,14,100,2,110,4,124,0,106,0,125,1,124,
- 0,106,1,100,1,107,8,114,66,124,0,106,2,100,1,107,
- 8,114,50,100,3,160,3,124,1,161,1,83,0,100,4,160,
- 3,124,1,124,0,106,2,161,2,83,0,110,36,124,0,106,
- 4,114,86,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,100,1,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,99,0,0,0,114,100,0,0,0,114,101,0,0,0,114,
- 102,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,17,0,0,0,114,
- 112,0,0,0,114,108,0,0,0,114,44,0,0,0,114,122,
- 0,0,0,41,2,114,94,0,0,0,114,17,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,106,
- 0,0,0,54,2,0,0,115,16,0,0,0,0,3,20,1,
- 10,1,10,1,10,2,16,2,6,1,14,2,114,106,0,0,
- 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,
- 0,0,10,0,0,0,67,0,0,0,115,250,0,0,0,124,
- 0,106,0,125,2,116,1,124,2,131,1,143,216,1,0,116,
- 2,106,3,160,4,124,2,161,1,124,1,107,9,114,54,100,
- 1,160,5,124,2,161,1,125,3,116,6,124,3,124,2,100,
- 2,141,2,130,1,122,132,124,0,106,7,100,3,107,8,114,
- 106,124,0,106,8,100,3,107,8,114,90,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,52,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,146,124,0,106,7,160,11,124,2,161,1,1,0,110,
- 12,124,0,106,7,160,12,124,1,161,1,1,0,87,0,116,
- 2,106,3,160,13,124,0,106,0,161,1,125,1,124,1,116,
- 2,106,3,124,0,106,0,60,0,110,28,116,2,106,3,160,
- 13,124,0,106,0,161,1,125,1,124,1,116,2,106,3,124,
- 0,106,0,60,0,48,0,87,0,100,3,4,0,4,0,131,
- 3,1,0,110,16,49,0,115,236,48,0,1,0,1,0,1,
- 0,89,0,1,0,124,1,83,0,41,8,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,16,0,0,0,78,250,14,109,105,115,115,105,
- 110,103,32,108,111,97,100,101,114,84,114,142,0,0,0,114,
- 149,0,0,0,41,14,114,17,0,0,0,114,49,0,0,0,
- 114,15,0,0,0,114,91,0,0,0,114,34,0,0,0,114,
- 44,0,0,0,114,78,0,0,0,114,108,0,0,0,114,115,
- 0,0,0,114,147,0,0,0,114,4,0,0,0,218,11,108,
- 111,97,100,95,109,111,100,117,108,101,114,149,0,0,0,218,
- 3,112,111,112,41,4,114,94,0,0,0,114,95,0,0,0,
- 114,17,0,0,0,218,3,109,115,103,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,114,92,0,0,0,71,2,
- 0,0,115,38,0,0,0,0,2,6,1,10,1,16,1,10,
- 1,12,1,2,1,10,1,10,1,14,2,16,2,14,1,12,
- 4,14,2,14,4,14,1,14,255,14,1,44,1,114,92,0,
- 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,8,0,0,0,67,0,0,0,115,26,1,0,0,
- 122,18,124,0,106,0,160,1,124,0,106,2,161,1,1,0,
- 87,0,110,52,1,0,1,0,1,0,124,0,106,2,116,3,
- 106,4,107,6,114,64,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,89,0,110,2,48,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,107,8,
- 114,148,122,12,124,0,106,0,124,1,95,7,87,0,110,20,
- 4,0,116,8,107,10,114,146,1,0,1,0,1,0,89,0,
- 110,2,48,0,116,6,124,1,100,2,100,0,131,3,100,0,
- 107,8,114,226,122,40,124,1,106,9,124,1,95,10,116,11,
- 124,1,100,3,131,2,115,202,124,0,106,2,160,12,100,4,
- 161,1,100,5,25,0,124,1,95,10,87,0,110,20,4,0,
- 116,8,107,10,114,224,1,0,1,0,1,0,89,0,110,2,
- 48,0,116,6,124,1,100,6,100,0,131,3,100,0,107,8,
- 144,1,114,22,122,10,124,0,124,1,95,13,87,0,110,22,
- 4,0,116,8,107,10,144,1,114,20,1,0,1,0,1,0,
- 89,0,110,2,48,0,124,1,83,0,41,7,78,114,97,0,
- 0,0,114,144,0,0,0,114,140,0,0,0,114,127,0,0,
- 0,114,22,0,0,0,114,104,0,0,0,41,14,114,108,0,
- 0,0,114,154,0,0,0,114,17,0,0,0,114,15,0,0,
- 0,114,91,0,0,0,114,155,0,0,0,114,6,0,0,0,
- 114,97,0,0,0,114,105,0,0,0,114,1,0,0,0,114,
- 144,0,0,0,114,4,0,0,0,114,128,0,0,0,114,104,
- 0,0,0,114,150,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,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,101,2,0,0,115,54,0,0,0,0,4,2,1,18,
- 1,6,1,12,1,14,1,12,1,8,3,14,1,12,1,16,
- 1,2,1,12,1,14,1,6,1,16,1,2,4,8,1,10,
- 1,22,1,14,1,6,1,18,1,2,1,10,1,16,1,6,
- 1,114,157,0,0,0,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,11,0,0,0,67,0,0,0,115,
- 226,0,0,0,124,0,106,0,100,0,107,9,114,30,116,1,
- 124,0,106,0,100,1,131,2,115,30,116,2,124,0,131,1,
- 83,0,116,3,124,0,131,1,125,1,100,2,124,0,95,4,
- 122,168,124,1,116,5,106,6,124,0,106,7,60,0,122,52,
- 124,0,106,0,100,0,107,8,114,96,124,0,106,8,100,0,
- 107,8,114,108,116,9,100,3,124,0,106,7,100,4,141,2,
- 130,1,110,12,124,0,106,0,160,10,124,1,161,1,1,0,
- 87,0,110,50,1,0,1,0,1,0,122,14,116,5,106,6,
- 124,0,106,7,61,0,87,0,110,20,4,0,116,11,107,10,
- 114,152,1,0,1,0,1,0,89,0,110,2,48,0,130,0,
- 89,0,110,2,48,0,116,5,106,6,160,12,124,0,106,7,
- 161,1,125,1,124,1,116,5,106,6,124,0,106,7,60,0,
- 116,13,100,5,124,0,106,7,124,0,106,0,131,3,1,0,
- 87,0,100,6,124,0,95,4,110,8,100,6,124,0,95,4,
- 48,0,124,1,83,0,41,7,78,114,149,0,0,0,84,114,
- 153,0,0,0,114,16,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,14,
- 114,108,0,0,0,114,4,0,0,0,114,157,0,0,0,114,
- 151,0,0,0,90,13,95,105,110,105,116,105,97,108,105,122,
- 105,110,103,114,15,0,0,0,114,91,0,0,0,114,17,0,
- 0,0,114,115,0,0,0,114,78,0,0,0,114,149,0,0,
- 0,114,62,0,0,0,114,155,0,0,0,114,75,0,0,0,
- 114,150,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,218,14,95,108,111,97,100,95,117,110,108,111,
- 99,107,101,100,138,2,0,0,115,48,0,0,0,0,2,10,
- 2,12,1,8,2,8,5,6,1,2,1,12,1,2,1,10,
- 1,10,1,16,3,16,1,6,1,2,1,14,1,14,1,6,
- 1,8,5,14,1,12,1,18,2,8,0,8,2,114,158,0,
- 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,
- 0,0,0,8,0,0,0,67,0,0,0,115,54,0,0,0,
- 116,0,124,0,106,1,131,1,143,24,1,0,116,2,124,0,
- 131,1,87,0,2,0,100,1,4,0,4,0,131,3,1,0,
- 83,0,49,0,115,40,48,0,1,0,1,0,1,0,89,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,49,0,0,
- 0,114,17,0,0,0,114,158,0,0,0,41,1,114,94,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,93,0,0,0,180,2,0,0,115,4,0,0,0,0,
- 9,12,1,114,93,0,0,0,99,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,4,0,0,0,64,0,0,
- 0,115,140,0,0,0,101,0,90,1,100,0,90,2,100,1,
- 90,3,100,2,90,4,101,5,100,3,100,4,132,0,131,1,
- 90,6,101,7,100,20,100,6,100,7,132,1,131,1,90,8,
- 101,7,100,21,100,8,100,9,132,1,131,1,90,9,101,7,
- 100,10,100,11,132,0,131,1,90,10,101,7,100,12,100,13,
- 132,0,131,1,90,11,101,7,101,12,100,14,100,15,132,0,
- 131,1,131,1,90,13,101,7,101,12,100,16,100,17,132,0,
- 131,1,131,1,90,14,101,7,101,12,100,18,100,19,132,0,
- 131,1,131,1,90,15,101,7,101,16,131,1,90,17,100,5,
- 83,0,41,22,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,1,0,
- 0,0,5,0,0,0,67,0,0,0,115,22,0,0,0,100,
- 1,124,0,106,0,155,2,100,2,116,1,106,2,155,0,100,
- 3,157,5,83,0,41,4,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,8,60,109,
- 111,100,117,108,101,32,122,2,32,40,122,2,41,62,41,3,
- 114,1,0,0,0,114,159,0,0,0,114,137,0,0,0,41,
- 1,114,95,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,98,0,0,0,206,2,0,0,115,2,
- 0,0,0,0,7,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,78,99,4,0,0,0,0,0,0,0,0,0,0,0,
- 4,0,0,0,5,0,0,0,67,0,0,0,115,46,0,0,
- 0,124,2,100,0,107,9,114,12,100,0,83,0,116,0,160,
- 1,124,1,161,1,114,38,116,2,124,1,124,0,124,0,106,
- 3,100,1,141,3,83,0,100,0,83,0,100,0,83,0,169,
- 2,78,114,136,0,0,0,41,4,114,56,0,0,0,90,10,
- 105,115,95,98,117,105,108,116,105,110,114,90,0,0,0,114,
- 137,0,0,0,169,4,218,3,99,108,115,114,80,0,0,0,
- 218,4,112,97,116,104,218,6,116,97,114,103,101,116,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,218,9,102,
- 105,110,100,95,115,112,101,99,215,2,0,0,115,10,0,0,
- 0,0,2,8,1,4,1,10,1,16,2,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,99,3,0,0,0,0,0,0,0,0,
- 0,0,0,4,0,0,0,4,0,0,0,67,0,0,0,115,
- 30,0,0,0,124,0,160,0,124,1,124,2,161,2,125,3,
- 124,3,100,1,107,9,114,26,124,3,106,1,83,0,100,1,
- 83,0,41,2,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,78,41,2,114,166,0,0,0,114,108,0,
- 0,0,41,4,114,163,0,0,0,114,80,0,0,0,114,164,
- 0,0,0,114,94,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,11,102,105,110,100,95,109,111,
- 100,117,108,101,224,2,0,0,115,4,0,0,0,0,9,12,
- 1,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,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
- 0,0,0,67,0,0,0,115,46,0,0,0,124,1,106,0,
- 116,1,106,2,107,7,114,34,116,3,100,1,160,4,124,1,
- 106,0,161,1,124,1,106,0,100,2,141,2,130,1,116,5,
- 116,6,106,7,124,1,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,76,0,0,0,114,16,0,0,0,
- 41,8,114,17,0,0,0,114,15,0,0,0,114,77,0,0,
- 0,114,78,0,0,0,114,44,0,0,0,114,66,0,0,0,
- 114,56,0,0,0,90,14,99,114,101,97,116,101,95,98,117,
- 105,108,116,105,110,41,2,114,30,0,0,0,114,94,0,0,
+ 87,0,110,18,4,0,116,3,121,172,1,0,1,0,1,0,
+ 89,0,110,2,48,0,124,2,115,194,116,0,124,1,100,3,
+ 100,0,131,3,100,0,117,0,114,226,122,12,124,0,106,13,
+ 124,1,95,14,87,0,110,18,4,0,116,3,121,224,1,0,
+ 1,0,1,0,89,0,110,2,48,0,122,10,124,0,124,1,
+ 95,15,87,0,110,18,4,0,116,3,121,254,1,0,1,0,
+ 1,0,89,0,110,2,48,0,124,2,144,1,115,24,116,0,
+ 124,1,100,4,100,0,131,3,100,0,117,0,144,1,114,70,
+ 124,0,106,5,100,0,117,1,144,1,114,70,122,12,124,0,
+ 106,5,124,1,95,16,87,0,110,20,4,0,116,3,144,1,
+ 121,68,1,0,1,0,1,0,89,0,110,2,48,0,124,0,
+ 106,17,144,1,114,206,124,2,144,1,115,102,116,0,124,1,
+ 100,5,100,0,131,3,100,0,117,0,144,1,114,136,122,12,
+ 124,0,106,18,124,1,95,11,87,0,110,20,4,0,116,3,
+ 144,1,121,134,1,0,1,0,1,0,89,0,110,2,48,0,
+ 124,2,144,1,115,160,116,0,124,1,100,6,100,0,131,3,
+ 100,0,117,0,144,1,114,206,124,0,106,19,100,0,117,1,
+ 144,1,114,206,122,12,124,0,106,19,124,1,95,20,87,0,
+ 110,20,4,0,116,3,144,1,121,204,1,0,1,0,1,0,
+ 89,0,110,2,48,0,124,1,83,0,41,7,78,114,1,0,
+ 0,0,114,97,0,0,0,218,11,95,95,112,97,99,107,97,
+ 103,101,95,95,114,140,0,0,0,114,107,0,0,0,114,138,
+ 0,0,0,41,21,114,6,0,0,0,114,17,0,0,0,114,
+ 1,0,0,0,114,105,0,0,0,114,108,0,0,0,114,115,
+ 0,0,0,114,125,0,0,0,114,126,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,
+ 107,0,0,0,114,97,0,0,0,114,129,0,0,0,114,144,
+ 0,0,0,114,104,0,0,0,114,140,0,0,0,114,122,0,
+ 0,0,114,112,0,0,0,114,121,0,0,0,114,138,0,0,
+ 0,41,5,114,94,0,0,0,114,95,0,0,0,114,143,0,
+ 0,0,114,108,0,0,0,114,145,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,18,95,105,110,
+ 105,116,95,109,111,100,117,108,101,95,97,116,116,114,115,221,
+ 1,0,0,115,96,0,0,0,0,4,20,1,2,1,12,1,
+ 12,1,6,2,20,1,6,1,8,2,10,1,8,1,4,1,
+ 6,2,10,1,8,1,6,11,6,1,2,1,10,1,12,1,
+ 6,2,20,1,2,1,12,1,12,1,6,2,2,1,10,1,
+ 12,1,6,2,24,1,12,1,2,1,12,1,14,1,6,2,
+ 8,1,24,1,2,1,12,1,14,1,6,2,24,1,12,1,
+ 2,1,12,1,14,1,6,1,114,147,0,0,0,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,
+ 0,0,67,0,0,0,115,82,0,0,0,100,1,125,1,116,
+ 0,124,0,106,1,100,2,131,2,114,30,124,0,106,1,160,
+ 2,124,0,161,1,125,1,110,20,116,0,124,0,106,1,100,
+ 3,131,2,114,50,116,3,100,4,131,1,130,1,124,1,100,
+ 1,117,0,114,68,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,
+ 4,0,0,0,114,108,0,0,0,114,148,0,0,0,114,78,
+ 0,0,0,114,18,0,0,0,114,17,0,0,0,114,147,0,
+ 0,0,169,2,114,94,0,0,0,114,95,0,0,0,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,218,16,109,
+ 111,100,117,108,101,95,102,114,111,109,95,115,112,101,99,37,
+ 2,0,0,115,18,0,0,0,0,3,4,1,12,3,14,1,
+ 12,1,8,2,8,1,10,1,10,1,114,151,0,0,0,99,
+ 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+ 4,0,0,0,67,0,0,0,115,106,0,0,0,124,0,106,
+ 0,100,1,117,0,114,14,100,2,110,4,124,0,106,0,125,
+ 1,124,0,106,1,100,1,117,0,114,66,124,0,106,2,100,
+ 1,117,0,114,50,100,3,160,3,124,1,161,1,83,0,100,
+ 4,160,3,124,1,124,0,106,2,161,2,83,0,110,36,124,
+ 0,106,4,114,86,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,100,1,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,99,0,0,0,114,100,0,0,0,114,101,0,0,
+ 0,114,102,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,17,0,0,
+ 0,114,112,0,0,0,114,108,0,0,0,114,44,0,0,0,
+ 114,122,0,0,0,41,2,114,94,0,0,0,114,17,0,0,
0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 114,148,0,0,0,236,2,0,0,115,10,0,0,0,0,3,
- 12,1,12,1,4,255,6,2,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,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,
- 115,16,0,0,0,116,0,116,1,106,2,124,1,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,66,0,0,0,114,56,0,0,0,90,12,101,120,
- 101,99,95,98,117,105,108,116,105,110,41,2,114,30,0,0,
- 0,114,95,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,149,0,0,0,244,2,0,0,115,2,
- 0,0,0,0,3,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,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,
- 100,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,10,0,0,0,169,2,114,163,0,0,0,114,80,
- 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,218,8,103,101,116,95,99,111,100,101,249,2,0,0,
- 115,2,0,0,0,0,4,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,
+ 114,106,0,0,0,54,2,0,0,115,16,0,0,0,0,3,
+ 20,1,10,1,10,1,10,2,16,2,6,1,14,2,114,106,
+ 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 4,0,0,0,10,0,0,0,67,0,0,0,115,250,0,0,
+ 0,124,0,106,0,125,2,116,1,124,2,131,1,143,216,1,
+ 0,116,2,106,3,160,4,124,2,161,1,124,1,117,1,114,
+ 54,100,1,160,5,124,2,161,1,125,3,116,6,124,3,124,
+ 2,100,2,141,2,130,1,122,132,124,0,106,7,100,3,117,
+ 0,114,106,124,0,106,8,100,3,117,0,114,90,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,52,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,146,124,0,106,7,160,11,124,2,161,1,1,
+ 0,110,12,124,0,106,7,160,12,124,1,161,1,1,0,87,
+ 0,116,2,106,3,160,13,124,0,106,0,161,1,125,1,124,
+ 1,116,2,106,3,124,0,106,0,60,0,110,28,116,2,106,
+ 3,160,13,124,0,106,0,161,1,125,1,124,1,116,2,106,
+ 3,124,0,106,0,60,0,48,0,87,0,100,3,4,0,4,
+ 0,131,3,1,0,110,16,49,0,115,236,48,0,1,0,1,
+ 0,1,0,89,0,1,0,124,1,83,0,41,8,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,16,0,0,0,78,250,14,109,105,115,
+ 115,105,110,103,32,108,111,97,100,101,114,84,114,142,0,0,
+ 0,114,149,0,0,0,41,14,114,17,0,0,0,114,49,0,
+ 0,0,114,15,0,0,0,114,91,0,0,0,114,34,0,0,
+ 0,114,44,0,0,0,114,78,0,0,0,114,108,0,0,0,
+ 114,115,0,0,0,114,147,0,0,0,114,4,0,0,0,218,
+ 11,108,111,97,100,95,109,111,100,117,108,101,114,149,0,0,
+ 0,218,3,112,111,112,41,4,114,94,0,0,0,114,95,0,
+ 0,0,114,17,0,0,0,218,3,109,115,103,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,92,0,0,0,
+ 71,2,0,0,115,38,0,0,0,0,2,6,1,10,1,16,
+ 1,10,1,12,1,2,1,10,1,10,1,14,2,16,2,14,
+ 1,12,4,14,2,14,4,14,1,14,255,14,1,44,1,114,
+ 92,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,8,0,0,0,67,0,0,0,115,20,1,
+ 0,0,122,18,124,0,106,0,160,1,124,0,106,2,161,1,
+ 1,0,87,0,110,52,1,0,1,0,1,0,124,0,106,2,
+ 116,3,106,4,118,0,114,64,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,89,0,110,2,48,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,146,122,12,124,0,106,0,124,1,95,7,87,0,
+ 110,18,4,0,116,8,121,144,1,0,1,0,1,0,89,0,
+ 110,2,48,0,116,6,124,1,100,2,100,0,131,3,100,0,
+ 117,0,114,222,122,40,124,1,106,9,124,1,95,10,116,11,
+ 124,1,100,3,131,2,115,200,124,0,106,2,160,12,100,4,
+ 161,1,100,5,25,0,124,1,95,10,87,0,110,18,4,0,
+ 116,8,121,220,1,0,1,0,1,0,89,0,110,2,48,0,
+ 116,6,124,1,100,6,100,0,131,3,100,0,117,0,144,1,
+ 114,16,122,10,124,0,124,1,95,13,87,0,110,20,4,0,
+ 116,8,144,1,121,14,1,0,1,0,1,0,89,0,110,2,
+ 48,0,124,1,83,0,41,7,78,114,97,0,0,0,114,144,
+ 0,0,0,114,140,0,0,0,114,127,0,0,0,114,22,0,
+ 0,0,114,104,0,0,0,41,14,114,108,0,0,0,114,154,
+ 0,0,0,114,17,0,0,0,114,15,0,0,0,114,91,0,
+ 0,0,114,155,0,0,0,114,6,0,0,0,114,97,0,0,
+ 0,114,105,0,0,0,114,1,0,0,0,114,144,0,0,0,
+ 114,4,0,0,0,114,128,0,0,0,114,104,0,0,0,114,
+ 150,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 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,101,2,
+ 0,0,115,54,0,0,0,0,4,2,1,18,1,6,1,12,
+ 1,14,1,12,1,8,3,14,1,12,1,16,1,2,1,12,
+ 1,12,1,6,1,16,1,2,4,8,1,10,1,22,1,12,
+ 1,6,1,18,1,2,1,10,1,14,1,6,1,114,157,0,
+ 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,11,0,0,0,67,0,0,0,115,224,0,0,0,
+ 124,0,106,0,100,0,117,1,114,30,116,1,124,0,106,0,
+ 100,1,131,2,115,30,116,2,124,0,131,1,83,0,116,3,
+ 124,0,131,1,125,1,100,2,124,0,95,4,122,166,124,1,
+ 116,5,106,6,124,0,106,7,60,0,122,52,124,0,106,0,
+ 100,0,117,0,114,96,124,0,106,8,100,0,117,0,114,108,
+ 116,9,100,3,124,0,106,7,100,4,141,2,130,1,110,12,
+ 124,0,106,0,160,10,124,1,161,1,1,0,87,0,110,48,
+ 1,0,1,0,1,0,122,14,116,5,106,6,124,0,106,7,
+ 61,0,87,0,110,18,4,0,116,11,121,150,1,0,1,0,
+ 1,0,89,0,110,2,48,0,130,0,89,0,110,2,48,0,
+ 116,5,106,6,160,12,124,0,106,7,161,1,125,1,124,1,
+ 116,5,106,6,124,0,106,7,60,0,116,13,100,5,124,0,
+ 106,7,124,0,106,0,131,3,1,0,87,0,100,6,124,0,
+ 95,4,110,8,100,6,124,0,95,4,48,0,124,1,83,0,
+ 41,7,78,114,149,0,0,0,84,114,153,0,0,0,114,16,
+ 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,14,114,108,0,0,0,114,
+ 4,0,0,0,114,157,0,0,0,114,151,0,0,0,90,13,
+ 95,105,110,105,116,105,97,108,105,122,105,110,103,114,15,0,
+ 0,0,114,91,0,0,0,114,17,0,0,0,114,115,0,0,
+ 0,114,78,0,0,0,114,149,0,0,0,114,62,0,0,0,
+ 114,155,0,0,0,114,75,0,0,0,114,150,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,14,
+ 95,108,111,97,100,95,117,110,108,111,99,107,101,100,138,2,
+ 0,0,115,48,0,0,0,0,2,10,2,12,1,8,2,8,
+ 5,6,1,2,1,12,1,2,1,10,1,10,1,16,3,16,
+ 1,6,1,2,1,14,1,12,1,6,1,8,5,14,1,12,
+ 1,18,2,8,0,8,2,114,158,0,0,0,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,
+ 0,67,0,0,0,115,54,0,0,0,116,0,124,0,106,1,
+ 131,1,143,24,1,0,116,2,124,0,131,1,87,0,2,0,
+ 100,1,4,0,4,0,131,3,1,0,83,0,49,0,115,40,
+ 48,0,1,0,1,0,1,0,89,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,49,0,0,0,114,17,0,0,0,
+ 114,158,0,0,0,41,1,114,94,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,93,0,0,0,
+ 180,2,0,0,115,4,0,0,0,0,9,12,1,114,93,0,
+ 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,4,0,0,0,64,0,0,0,115,140,0,0,0,
+ 101,0,90,1,100,0,90,2,100,1,90,3,100,2,90,4,
+ 101,5,100,3,100,4,132,0,131,1,90,6,101,7,100,20,
+ 100,6,100,7,132,1,131,1,90,8,101,7,100,21,100,8,
+ 100,9,132,1,131,1,90,9,101,7,100,10,100,11,132,0,
+ 131,1,90,10,101,7,100,12,100,13,132,0,131,1,90,11,
+ 101,7,101,12,100,14,100,15,132,0,131,1,131,1,90,13,
+ 101,7,101,12,100,16,100,17,132,0,131,1,131,1,90,14,
+ 101,7,101,12,100,18,100,19,132,0,131,1,131,1,90,15,
+ 101,7,101,16,131,1,90,17,100,5,83,0,41,22,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,1,0,0,0,5,0,0,0,
+ 67,0,0,0,115,22,0,0,0,100,1,124,0,106,0,155,
+ 2,100,2,116,1,106,2,155,0,100,3,157,5,83,0,41,
+ 4,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,8,60,109,111,100,117,108,101,32,
+ 122,2,32,40,122,2,41,62,41,3,114,1,0,0,0,114,
+ 159,0,0,0,114,137,0,0,0,41,1,114,95,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
+ 98,0,0,0,206,2,0,0,115,2,0,0,0,0,7,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,78,99,4,0,
+ 0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,
+ 0,0,67,0,0,0,115,46,0,0,0,124,2,100,0,117,
+ 1,114,12,100,0,83,0,116,0,160,1,124,1,161,1,114,
+ 38,116,2,124,1,124,0,124,0,106,3,100,1,141,3,83,
+ 0,100,0,83,0,100,0,83,0,169,2,78,114,136,0,0,
+ 0,41,4,114,56,0,0,0,90,10,105,115,95,98,117,105,
+ 108,116,105,110,114,90,0,0,0,114,137,0,0,0,169,4,
+ 218,3,99,108,115,114,80,0,0,0,218,4,112,97,116,104,
+ 218,6,116,97,114,103,101,116,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,9,102,105,110,100,95,115,112,
+ 101,99,215,2,0,0,115,10,0,0,0,0,2,8,1,4,
+ 1,10,1,16,2,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,
+ 99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+ 0,4,0,0,0,67,0,0,0,115,30,0,0,0,124,0,
+ 160,0,124,1,124,2,161,2,125,3,124,3,100,1,117,1,
+ 114,26,124,3,106,1,83,0,100,1,83,0,41,2,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,78,
+ 41,2,114,166,0,0,0,114,108,0,0,0,41,4,114,163,
+ 0,0,0,114,80,0,0,0,114,164,0,0,0,114,94,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,218,11,102,105,110,100,95,109,111,100,117,108,101,224,2,
+ 0,0,115,4,0,0,0,0,9,12,1,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,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,4,0,0,0,67,0,0,
+ 0,115,46,0,0,0,124,1,106,0,116,1,106,2,118,1,
+ 114,34,116,3,100,1,160,4,124,1,106,0,161,1,124,1,
+ 106,0,100,2,141,2,130,1,116,5,116,6,106,7,124,1,
+ 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,76,0,0,0,114,16,0,0,0,41,8,114,17,0,0,
+ 0,114,15,0,0,0,114,77,0,0,0,114,78,0,0,0,
+ 114,44,0,0,0,114,66,0,0,0,114,56,0,0,0,90,
+ 14,99,114,101,97,116,101,95,98,117,105,108,116,105,110,41,
+ 2,114,30,0,0,0,114,94,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,114,148,0,0,0,236,
+ 2,0,0,115,10,0,0,0,0,3,12,1,12,1,4,255,
+ 6,2,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,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,
- 1,83,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,10,0,0,0,114,168,0,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,218,10,103,101,116,95,115,
- 111,117,114,99,101,255,2,0,0,115,2,0,0,0,0,4,
- 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,99,2,0,0,
+ 0,0,3,0,0,0,67,0,0,0,115,16,0,0,0,116,
+ 0,116,1,106,2,124,1,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,66,0,0,
+ 0,114,56,0,0,0,90,12,101,120,101,99,95,98,117,105,
+ 108,116,105,110,41,2,114,30,0,0,0,114,95,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
+ 149,0,0,0,244,2,0,0,115,2,0,0,0,0,3,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,99,2,0,0,
0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
0,67,0,0,0,115,4,0,0,0,100,1,83,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,10,0,0,0,114,168,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 114,114,0,0,0,5,3,0,0,115,2,0,0,0,0,4,
- 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,41,2,78,78,
- 41,1,78,41,18,114,1,0,0,0,114,0,0,0,0,114,
- 2,0,0,0,114,3,0,0,0,114,137,0,0,0,218,12,
- 115,116,97,116,105,99,109,101,116,104,111,100,114,98,0,0,
- 0,218,11,99,108,97,115,115,109,101,116,104,111,100,114,166,
- 0,0,0,114,167,0,0,0,114,148,0,0,0,114,149,0,
- 0,0,114,85,0,0,0,114,169,0,0,0,114,170,0,0,
- 0,114,114,0,0,0,114,96,0,0,0,114,154,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,114,159,0,0,0,195,2,0,0,115,44,0,
- 0,0,8,2,4,7,4,2,2,1,10,8,2,1,12,8,
- 2,1,12,11,2,1,10,7,2,1,10,4,2,1,2,1,
- 12,4,2,1,2,1,12,4,2,1,2,1,12,4,114,159,
- 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,4,0,0,0,64,0,0,0,115,144,0,0,
- 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,90,
- 4,101,5,100,3,100,4,132,0,131,1,90,6,101,7,100,
- 22,100,6,100,7,132,1,131,1,90,8,101,7,100,23,100,
- 8,100,9,132,1,131,1,90,9,101,7,100,10,100,11,132,
- 0,131,1,90,10,101,5,100,12,100,13,132,0,131,1,90,
- 11,101,7,100,14,100,15,132,0,131,1,90,12,101,7,101,
- 13,100,16,100,17,132,0,131,1,131,1,90,14,101,7,101,
- 13,100,18,100,19,132,0,131,1,131,1,90,15,101,7,101,
- 13,100,20,100,21,132,0,131,1,131,1,90,16,100,5,83,
- 0,41,24,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,1,0,0,0,4,0,0,0,
- 67,0,0,0,115,16,0,0,0,100,1,160,0,124,0,106,
- 1,116,2,106,3,161,2,83,0,41,2,114,160,0,0,0,
- 114,152,0,0,0,41,4,114,44,0,0,0,114,1,0,0,
- 0,114,173,0,0,0,114,137,0,0,0,41,1,218,1,109,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
- 98,0,0,0,25,3,0,0,115,2,0,0,0,0,7,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,78,99,4,0,0,
- 0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,
- 0,67,0,0,0,115,34,0,0,0,116,0,160,1,124,1,
- 161,1,114,26,116,2,124,1,124,0,124,0,106,3,100,1,
- 141,3,83,0,100,0,83,0,100,0,83,0,114,161,0,0,
- 0,41,4,114,56,0,0,0,114,87,0,0,0,114,90,0,
- 0,0,114,137,0,0,0,114,162,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,166,0,0,0,
- 34,3,0,0,115,6,0,0,0,0,2,10,1,16,2,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,99,3,0,0,0,0,0,
- 0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,
- 0,0,115,18,0,0,0,116,0,160,1,124,1,161,1,114,
- 14,124,0,83,0,100,1,83,0,41,2,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,78,41,2,114,56,0,
- 0,0,114,87,0,0,0,41,3,114,163,0,0,0,114,80,
- 0,0,0,114,164,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,114,167,0,0,0,41,3,0,0,
- 115,2,0,0,0,0,7,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,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
- 0,100,1,83,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,10,0,0,0,41,2,114,163,0,0,0,
- 114,94,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,114,148,0,0,0,50,3,0,0,115,2,0,
- 0,0,0,2,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,99,1,0,0,0,0,0,0,0,0,0,0,0,3,
- 0,0,0,4,0,0,0,67,0,0,0,115,64,0,0,0,
- 124,0,106,0,106,1,125,1,116,2,160,3,124,1,161,1,
- 115,36,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,86,0,0,0,41,10,114,104,0,0,0,114,17,0,0,
- 0,114,56,0,0,0,114,87,0,0,0,114,78,0,0,0,
- 114,44,0,0,0,114,66,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,7,0,0,0,41,3,114,95,0,0,0,114,
- 17,0,0,0,218,4,99,111,100,101,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,114,149,0,0,0,54,3,
- 0,0,115,14,0,0,0,0,2,8,1,10,1,10,1,2,
- 255,6,2,12,1,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,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,3,0,0,0,67,0,0,0,115,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,96,
- 0,0,0,114,168,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,114,154,0,0,0,63,3,0,0,
- 115,2,0,0,0,0,7,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,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,3,0,0,0,67,0,0,0,115,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,56,
- 0,0,0,114,175,0,0,0,114,168,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,114,169,0,0,
- 0,72,3,0,0,115,2,0,0,0,0,4,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,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,
- 0,0,0,100,1,83,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,10,0,0,0,114,168,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,170,0,0,0,
- 78,3,0,0,115,2,0,0,0,0,4,122,25,70,114,111,
- 122,101,110,73,109,112,111,114,116,101,114,46,103,101,116,95,
+ 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,10,0,0,
+ 0,169,2,114,163,0,0,0,114,80,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,218,8,103,101,
+ 116,95,99,111,100,101,249,2,0,0,115,2,0,0,0,0,
+ 4,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,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
+ 67,0,0,0,115,4,0,0,0,100,1,83,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,10,0,0,0,114,
+ 168,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,218,10,103,101,116,95,115,111,117,114,99,101,255,
+ 2,0,0,115,2,0,0,0,0,4,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,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
- 10,0,0,0,116,0,160,1,124,1,161,1,83,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,56,0,0,0,90,17,105,115,95,102,114,111,122,
- 101,110,95,112,97,99,107,97,103,101,114,168,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,114,
- 0,0,0,84,3,0,0,115,2,0,0,0,0,4,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,41,2,78,78,41,1,78,
- 41,17,114,1,0,0,0,114,0,0,0,0,114,2,0,0,
- 0,114,3,0,0,0,114,137,0,0,0,114,171,0,0,0,
- 114,98,0,0,0,114,172,0,0,0,114,166,0,0,0,114,
- 167,0,0,0,114,148,0,0,0,114,149,0,0,0,114,154,
- 0,0,0,114,89,0,0,0,114,169,0,0,0,114,170,0,
- 0,0,114,114,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,173,0,0,0,
- 14,3,0,0,115,46,0,0,0,8,2,4,7,4,2,2,
- 1,10,8,2,1,12,6,2,1,12,8,2,1,10,3,2,
- 1,10,8,2,1,10,8,2,1,2,1,12,4,2,1,2,
- 1,12,4,2,1,2,1,114,173,0,0,0,99,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
- 0,64,0,0,0,115,32,0,0,0,101,0,90,1,100,0,
- 90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,
- 100,5,132,0,90,5,100,6,83,0,41,7,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,1,0,0,0,2,0,0,0,67,0,0,0,115,
- 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,
- 56,0,0,0,114,57,0,0,0,114,46,0,0,0,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,114,53,0,
- 0,0,97,3,0,0,115,2,0,0,0,0,2,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,99,4,0,0,0,
- 0,0,0,0,0,0,0,0,4,0,0,0,2,0,0,0,
- 67,0,0,0,115,12,0,0,0,116,0,160,1,161,0,1,
- 0,100,1,83,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,56,0,0,0,114,59,0,
- 0,0,41,4,114,30,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,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,114,55,0,0,
- 0,101,3,0,0,115,2,0,0,0,0,2,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,78,41,6,114,1,0,0,
+ 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,
+ 4,0,0,0,100,1,83,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,10,0,0,0,114,168,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,114,114,0,0,0,5,
+ 3,0,0,115,2,0,0,0,0,4,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,41,2,78,78,41,1,78,41,18,114,
+ 1,0,0,0,114,0,0,0,0,114,2,0,0,0,114,3,
+ 0,0,0,114,137,0,0,0,218,12,115,116,97,116,105,99,
+ 109,101,116,104,111,100,114,98,0,0,0,218,11,99,108,97,
+ 115,115,109,101,116,104,111,100,114,166,0,0,0,114,167,0,
+ 0,0,114,148,0,0,0,114,149,0,0,0,114,85,0,0,
+ 0,114,169,0,0,0,114,170,0,0,0,114,114,0,0,0,
+ 114,96,0,0,0,114,154,0,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,159,
+ 0,0,0,195,2,0,0,115,44,0,0,0,8,2,4,7,
+ 4,2,2,1,10,8,2,1,12,8,2,1,12,11,2,1,
+ 10,7,2,1,10,4,2,1,2,1,12,4,2,1,2,1,
+ 12,4,2,1,2,1,12,4,114,159,0,0,0,99,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,
+ 0,0,64,0,0,0,115,144,0,0,0,101,0,90,1,100,
+ 0,90,2,100,1,90,3,100,2,90,4,101,5,100,3,100,
+ 4,132,0,131,1,90,6,101,7,100,22,100,6,100,7,132,
+ 1,131,1,90,8,101,7,100,23,100,8,100,9,132,1,131,
+ 1,90,9,101,7,100,10,100,11,132,0,131,1,90,10,101,
+ 5,100,12,100,13,132,0,131,1,90,11,101,7,100,14,100,
+ 15,132,0,131,1,90,12,101,7,101,13,100,16,100,17,132,
+ 0,131,1,131,1,90,14,101,7,101,13,100,18,100,19,132,
+ 0,131,1,131,1,90,15,101,7,101,13,100,20,100,21,132,
+ 0,131,1,131,1,90,16,100,5,83,0,41,24,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,1,0,0,0,4,0,0,0,67,0,0,0,115,16,
+ 0,0,0,100,1,160,0,124,0,106,1,116,2,106,3,161,
+ 2,83,0,41,2,114,160,0,0,0,114,152,0,0,0,41,
+ 4,114,44,0,0,0,114,1,0,0,0,114,173,0,0,0,
+ 114,137,0,0,0,41,1,218,1,109,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,114,98,0,0,0,25,3,
+ 0,0,115,2,0,0,0,0,7,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,78,99,4,0,0,0,0,0,0,0,0,
+ 0,0,0,4,0,0,0,5,0,0,0,67,0,0,0,115,
+ 34,0,0,0,116,0,160,1,124,1,161,1,114,26,116,2,
+ 124,1,124,0,124,0,106,3,100,1,141,3,83,0,100,0,
+ 83,0,100,0,83,0,114,161,0,0,0,41,4,114,56,0,
+ 0,0,114,87,0,0,0,114,90,0,0,0,114,137,0,0,
+ 0,114,162,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,166,0,0,0,34,3,0,0,115,6,
+ 0,0,0,0,2,10,1,16,2,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,99,3,0,0,0,0,0,0,0,0,0,0,0,
+ 3,0,0,0,3,0,0,0,67,0,0,0,115,18,0,0,
+ 0,116,0,160,1,124,1,161,1,114,14,124,0,83,0,100,
+ 1,83,0,41,2,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,78,41,2,114,56,0,0,0,114,87,0,0,
+ 0,41,3,114,163,0,0,0,114,80,0,0,0,114,164,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,167,0,0,0,41,3,0,0,115,2,0,0,0,0,
+ 7,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,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,
+ 0,0,67,0,0,0,115,4,0,0,0,100,1,83,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,10,
+ 0,0,0,41,2,114,163,0,0,0,114,94,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,148,
+ 0,0,0,50,3,0,0,115,2,0,0,0,0,2,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,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,
+ 0,67,0,0,0,115,64,0,0,0,124,0,106,0,106,1,
+ 125,1,116,2,160,3,124,1,161,1,115,36,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,86,0,0,0,41,
+ 10,114,104,0,0,0,114,17,0,0,0,114,56,0,0,0,
+ 114,87,0,0,0,114,78,0,0,0,114,44,0,0,0,114,
+ 66,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,7,0,
+ 0,0,41,3,114,95,0,0,0,114,17,0,0,0,218,4,
+ 99,111,100,101,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,114,149,0,0,0,54,3,0,0,115,14,0,0,
+ 0,0,2,8,1,10,1,10,1,2,255,6,2,12,1,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,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
+ 67,0,0,0,115,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,96,0,0,0,114,168,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,114,154,0,0,0,63,3,0,0,115,2,0,0,0,0,
+ 7,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,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,
+ 0,0,67,0,0,0,115,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,56,0,0,0,114,175,0,
+ 0,0,114,168,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,169,0,0,0,72,3,0,0,115,
+ 2,0,0,0,0,4,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,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+ 1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,83,
+ 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,10,0,0,
+ 0,114,168,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,170,0,0,0,78,3,0,0,115,2,
+ 0,0,0,0,4,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,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+ 0,3,0,0,0,67,0,0,0,115,10,0,0,0,116,0,
+ 160,1,124,1,161,1,83,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,56,0,0,
+ 0,90,17,105,115,95,102,114,111,122,101,110,95,112,97,99,
+ 107,97,103,101,114,168,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,114,114,0,0,0,84,3,0,
+ 0,115,2,0,0,0,0,4,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,41,2,78,78,41,1,78,41,17,114,1,0,0,
0,114,0,0,0,0,114,2,0,0,0,114,3,0,0,0,
- 114,53,0,0,0,114,55,0,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,178,
- 0,0,0,93,3,0,0,115,6,0,0,0,8,2,4,2,
- 8,4,114,178,0,0,0,99,3,0,0,0,0,0,0,0,
- 0,0,0,0,5,0,0,0,5,0,0,0,67,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,
- 36,116,2,100,3,131,1,130,1,124,3,100,4,25,0,125,
- 4,124,0,114,60,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,127,0,0,0,
- 114,37,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,22,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,78,0,0,0,114,44,0,0,0,41,5,
- 114,17,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,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 218,13,95,114,101,115,111,108,118,101,95,110,97,109,101,106,
- 3,0,0,115,10,0,0,0,0,2,16,1,12,1,8,1,
- 8,1,114,187,0,0,0,99,3,0,0,0,0,0,0,0,
- 0,0,0,0,4,0,0,0,4,0,0,0,67,0,0,0,
- 115,34,0,0,0,124,0,160,0,124,1,124,2,161,2,125,
- 3,124,3,100,0,107,8,114,24,100,0,83,0,116,1,124,
- 1,124,3,131,2,83,0,114,13,0,0,0,41,2,114,167,
- 0,0,0,114,90,0,0,0,41,4,218,6,102,105,110,100,
- 101,114,114,17,0,0,0,114,164,0,0,0,114,108,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 218,17,95,102,105,110,100,95,115,112,101,99,95,108,101,103,
- 97,99,121,115,3,0,0,115,8,0,0,0,0,3,12,1,
- 8,1,4,1,114,189,0,0,0,99,3,0,0,0,0,0,
- 0,0,0,0,0,0,10,0,0,0,10,0,0,0,67,0,
- 0,0,115,36,1,0,0,116,0,106,1,125,3,124,3,100,
- 1,107,8,114,22,116,2,100,2,131,1,130,1,124,3,115,
- 38,116,3,160,4,100,3,116,5,161,2,1,0,124,0,116,
- 0,106,6,107,6,125,4,124,3,68,0,93,234,125,5,116,
- 7,131,0,143,96,1,0,122,10,124,5,106,8,125,6,87,
- 0,110,56,4,0,116,9,107,10,114,130,1,0,1,0,1,
- 0,116,10,124,5,124,0,124,1,131,3,125,7,124,7,100,
- 1,107,8,114,126,89,0,87,0,100,1,4,0,4,0,131,
- 3,1,0,113,52,89,0,110,14,48,0,124,6,124,0,124,
- 1,124,2,131,3,125,7,87,0,100,1,4,0,4,0,131,
- 3,1,0,110,16,49,0,115,164,48,0,1,0,1,0,1,
- 0,89,0,1,0,124,7,100,1,107,9,114,52,124,4,144,
- 1,115,22,124,0,116,0,106,6,107,6,144,1,114,22,116,
- 0,106,6,124,0,25,0,125,8,122,10,124,8,106,11,125,
- 9,87,0,110,28,4,0,116,9,107,10,114,248,1,0,1,
- 0,1,0,124,7,6,0,89,0,2,0,1,0,83,0,48,
- 0,124,9,100,1,107,8,144,1,114,12,124,7,2,0,1,
- 0,83,0,124,9,2,0,1,0,83,0,113,52,124,7,2,
- 0,1,0,83,0,113,52,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,15,0,0,0,218,9,109,101,116,
- 97,95,112,97,116,104,114,78,0,0,0,218,9,95,119,97,
- 114,110,105,110,103,115,218,4,119,97,114,110,218,13,73,109,
- 112,111,114,116,87,97,114,110,105,110,103,114,91,0,0,0,
- 114,178,0,0,0,114,166,0,0,0,114,105,0,0,0,114,
- 189,0,0,0,114,104,0,0,0,41,10,114,17,0,0,0,
- 114,164,0,0,0,114,165,0,0,0,114,190,0,0,0,90,
- 9,105,115,95,114,101,108,111,97,100,114,188,0,0,0,114,
- 166,0,0,0,114,94,0,0,0,114,95,0,0,0,114,104,
+ 114,137,0,0,0,114,171,0,0,0,114,98,0,0,0,114,
+ 172,0,0,0,114,166,0,0,0,114,167,0,0,0,114,148,
+ 0,0,0,114,149,0,0,0,114,154,0,0,0,114,89,0,
+ 0,0,114,169,0,0,0,114,170,0,0,0,114,114,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,173,0,0,0,14,3,0,0,115,46,
+ 0,0,0,8,2,4,7,4,2,2,1,10,8,2,1,12,
+ 6,2,1,12,8,2,1,10,3,2,1,10,8,2,1,10,
+ 8,2,1,2,1,12,4,2,1,2,1,12,4,2,1,2,
+ 1,114,173,0,0,0,99,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,115,
+ 32,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
+ 100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,
+ 100,6,83,0,41,7,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,1,0,0,
+ 0,2,0,0,0,67,0,0,0,115,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,56,0,0,0,114,57,
+ 0,0,0,114,46,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,114,53,0,0,0,97,3,0,0,
+ 115,2,0,0,0,0,2,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,99,4,0,0,0,0,0,0,0,0,0,
+ 0,0,4,0,0,0,2,0,0,0,67,0,0,0,115,12,
+ 0,0,0,116,0,160,1,161,0,1,0,100,1,83,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,56,0,0,0,114,59,0,0,0,41,4,114,30,
+ 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,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,114,55,0,0,0,101,3,0,0,115,
+ 2,0,0,0,0,2,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,78,41,6,114,1,0,0,0,114,0,0,0,0,
+ 114,2,0,0,0,114,3,0,0,0,114,53,0,0,0,114,
+ 55,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,114,178,0,0,0,93,3,0,
+ 0,115,6,0,0,0,8,2,4,2,8,4,114,178,0,0,
+ 0,99,3,0,0,0,0,0,0,0,0,0,0,0,5,0,
+ 0,0,5,0,0,0,67,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,36,116,2,100,3,131,
+ 1,130,1,124,3,100,4,25,0,125,4,124,0,114,60,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,127,0,0,0,114,37,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,22,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,78,
+ 0,0,0,114,44,0,0,0,41,5,114,17,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,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,13,95,114,101,115,
+ 111,108,118,101,95,110,97,109,101,106,3,0,0,115,10,0,
+ 0,0,0,2,16,1,12,1,8,1,8,1,114,187,0,0,
+ 0,99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,
+ 0,0,4,0,0,0,67,0,0,0,115,34,0,0,0,124,
+ 0,160,0,124,1,124,2,161,2,125,3,124,3,100,0,117,
+ 0,114,24,100,0,83,0,116,1,124,1,124,3,131,2,83,
+ 0,114,13,0,0,0,41,2,114,167,0,0,0,114,90,0,
+ 0,0,41,4,218,6,102,105,110,100,101,114,114,17,0,0,
+ 0,114,164,0,0,0,114,108,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,17,95,102,105,110,
+ 100,95,115,112,101,99,95,108,101,103,97,99,121,115,3,0,
+ 0,115,8,0,0,0,0,3,12,1,8,1,4,1,114,189,
+ 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,
+ 10,0,0,0,10,0,0,0,67,0,0,0,115,32,1,0,
+ 0,116,0,106,1,125,3,124,3,100,1,117,0,114,22,116,
+ 2,100,2,131,1,130,1,124,3,115,38,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,230,125,5,116,7,131,0,143,94,1,
+ 0,122,10,124,5,106,8,125,6,87,0,110,54,4,0,116,
+ 9,121,128,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,124,89,0,87,
+ 0,100,1,4,0,4,0,131,3,1,0,113,52,89,0,110,
+ 14,48,0,124,6,124,0,124,1,124,2,131,3,125,7,87,
+ 0,100,1,4,0,4,0,131,3,1,0,110,16,49,0,115,
+ 162,48,0,1,0,1,0,1,0,89,0,1,0,124,7,100,
+ 1,117,1,114,52,124,4,144,1,115,18,124,0,116,0,106,
+ 6,118,0,144,1,114,18,116,0,106,6,124,0,25,0,125,
+ 8,122,10,124,8,106,11,125,9,87,0,110,26,4,0,116,
+ 9,121,244,1,0,1,0,1,0,124,7,6,0,89,0,2,
+ 0,1,0,83,0,48,0,124,9,100,1,117,0,144,1,114,
+ 8,124,7,2,0,1,0,83,0,124,9,2,0,1,0,83,
+ 0,113,52,124,7,2,0,1,0,83,0,113,52,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,15,0,0,
+ 0,218,9,109,101,116,97,95,112,97,116,104,114,78,0,0,
+ 0,218,9,95,119,97,114,110,105,110,103,115,218,4,119,97,
+ 114,110,218,13,73,109,112,111,114,116,87,97,114,110,105,110,
+ 103,114,91,0,0,0,114,178,0,0,0,114,166,0,0,0,
+ 114,105,0,0,0,114,189,0,0,0,114,104,0,0,0,41,
+ 10,114,17,0,0,0,114,164,0,0,0,114,165,0,0,0,
+ 114,190,0,0,0,90,9,105,115,95,114,101,108,111,97,100,
+ 114,188,0,0,0,114,166,0,0,0,114,94,0,0,0,114,
+ 95,0,0,0,114,104,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,218,10,95,102,105,110,100,95,
+ 115,112,101,99,124,3,0,0,115,54,0,0,0,0,2,6,
+ 1,8,2,8,3,4,1,12,5,10,1,8,1,8,1,2,
+ 1,10,1,12,1,12,1,8,1,22,2,42,1,8,2,18,
+ 1,10,1,2,1,10,1,12,4,14,2,10,1,8,2,10,
+ 2,10,2,114,194,0,0,0,99,3,0,0,0,0,0,0,
+ 0,0,0,0,0,3,0,0,0,5,0,0,0,67,0,0,
+ 0,115,108,0,0,0,116,0,124,0,116,1,131,2,115,28,
+ 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,44,116,5,100,3,131,1,
+ 130,1,124,2,100,2,107,4,114,84,116,0,124,1,116,1,
+ 131,2,115,72,116,2,100,4,131,1,130,1,110,12,124,1,
+ 115,84,116,6,100,5,131,1,130,1,124,0,115,104,124,2,
+ 100,2,107,2,114,104,116,5,100,6,131,1,130,1,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,22,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,44,0,0,0,114,14,0,0,
+ 0,218,10,86,97,108,117,101,69,114,114,111,114,114,78,0,
+ 0,0,169,3,114,17,0,0,0,114,185,0,0,0,114,186,
0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,218,10,95,102,105,110,100,95,115,112,101,99,124,3,
- 0,0,115,54,0,0,0,0,2,6,1,8,2,8,3,4,
- 1,12,5,10,1,8,1,8,1,2,1,10,1,14,1,12,
- 1,8,1,22,2,42,1,8,2,18,1,10,1,2,1,10,
- 1,14,4,14,2,10,1,8,2,10,2,10,2,114,194,0,
- 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,3,
- 0,0,0,5,0,0,0,67,0,0,0,115,108,0,0,0,
- 116,0,124,0,116,1,131,2,115,28,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,44,116,5,100,3,131,1,130,1,124,2,100,2,
- 107,4,114,84,116,0,124,1,116,1,131,2,115,72,116,2,
- 100,4,131,1,130,1,110,12,124,1,115,84,116,6,100,5,
- 131,1,130,1,124,0,115,104,124,2,100,2,107,2,114,104,
- 116,5,100,6,131,1,130,1,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,22,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,44,0,0,0,114,14,0,0,0,218,10,86,97,108,
- 117,101,69,114,114,111,114,114,78,0,0,0,169,3,114,17,
- 0,0,0,114,185,0,0,0,114,186,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,218,13,95,115,
- 97,110,105,116,121,95,99,104,101,99,107,171,3,0,0,115,
- 22,0,0,0,0,2,10,1,18,1,8,1,8,1,8,1,
- 10,1,10,1,4,1,8,2,12,1,114,200,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,8,0,0,0,67,0,0,0,
- 115,220,0,0,0,100,0,125,2,124,0,160,0,100,1,161,
- 1,100,2,25,0,125,3,124,3,114,134,124,3,116,1,106,
- 2,107,7,114,42,116,3,124,1,124,3,131,2,1,0,124,
- 0,116,1,106,2,107,6,114,62,116,1,106,2,124,0,25,
- 0,83,0,116,1,106,2,124,3,25,0,125,4,122,10,124,
- 4,106,4,125,2,87,0,110,50,4,0,116,5,107,10,114,
- 132,1,0,1,0,1,0,116,6,100,3,23,0,160,7,124,
- 0,124,3,161,2,125,5,116,8,124,5,124,0,100,4,141,
- 2,100,0,130,2,89,0,110,2,48,0,116,9,124,0,124,
- 2,131,2,125,6,124,6,100,0,107,8,114,172,116,8,116,
- 6,160,7,124,0,161,1,124,0,100,4,141,2,130,1,110,
- 8,116,10,124,6,131,1,125,7,124,3,114,216,116,1,106,
- 2,124,3,25,0,125,4,116,11,124,4,124,0,160,0,100,
- 1,161,1,100,5,25,0,124,7,131,3,1,0,124,7,83,
- 0,41,6,78,114,127,0,0,0,114,22,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,16,0,0,0,233,2,0,0,
- 0,41,12,114,128,0,0,0,114,15,0,0,0,114,91,0,
- 0,0,114,66,0,0,0,114,140,0,0,0,114,105,0,0,
- 0,218,8,95,69,82,82,95,77,83,71,114,44,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,194,0,0,0,114,158,0,0,0,114,
- 5,0,0,0,41,8,114,17,0,0,0,218,7,105,109,112,
- 111,114,116,95,114,164,0,0,0,114,129,0,0,0,90,13,
- 112,97,114,101,110,116,95,109,111,100,117,108,101,114,156,0,
- 0,0,114,94,0,0,0,114,95,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,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,190,3,0,0,115,42,0,0,0,0,1,4,
- 1,14,1,4,1,10,1,10,2,10,1,10,1,10,1,2,
- 1,10,1,14,1,16,1,20,1,10,1,8,1,20,2,8,
- 1,4,2,10,1,22,1,114,205,0,0,0,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,
- 0,67,0,0,0,115,128,0,0,0,116,0,124,0,131,1,
- 143,62,1,0,116,1,106,2,160,3,124,0,116,4,161,2,
- 125,2,124,2,116,4,107,8,114,56,116,5,124,0,124,1,
- 131,2,87,0,2,0,100,1,4,0,4,0,131,3,1,0,
- 83,0,87,0,100,1,4,0,4,0,131,3,1,0,110,16,
- 49,0,115,76,48,0,1,0,1,0,1,0,89,0,1,0,
- 124,2,100,1,107,8,114,116,100,2,160,6,124,0,161,1,
- 125,3,116,7,124,3,124,0,100,3,141,2,130,1,116,8,
- 124,0,131,1,1,0,124,2,83,0,41,4,122,25,70,105,
- 110,100,32,97,110,100,32,108,111,97,100,32,116,104,101,32,
- 109,111,100,117,108,101,46,78,122,40,105,109,112,111,114,116,
- 32,111,102,32,123,125,32,104,97,108,116,101,100,59,32,78,
- 111,110,101,32,105,110,32,115,121,115,46,109,111,100,117,108,
- 101,115,114,16,0,0,0,41,9,114,49,0,0,0,114,15,
- 0,0,0,114,91,0,0,0,114,34,0,0,0,218,14,95,
- 78,69,69,68,83,95,76,79,65,68,73,78,71,114,205,0,
- 0,0,114,44,0,0,0,114,203,0,0,0,114,64,0,0,
- 0,41,4,114,17,0,0,0,114,204,0,0,0,114,95,0,
- 0,0,114,74,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,218,14,95,102,105,110,100,95,97,110,
- 100,95,108,111,97,100,220,3,0,0,115,22,0,0,0,0,
- 2,10,1,14,1,8,1,54,2,8,1,4,1,2,255,4,
- 2,12,2,8,1,114,207,0,0,0,114,22,0,0,0,99,
- 3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
- 4,0,0,0,67,0,0,0,115,42,0,0,0,116,0,124,
- 0,124,1,124,2,131,3,1,0,124,2,100,1,107,4,114,
- 32,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,22,0,0,0,41,4,114,200,0,0,0,114,187,0,0,
- 0,114,207,0,0,0,218,11,95,103,99,100,95,105,109,112,
- 111,114,116,114,199,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,114,208,0,0,0,236,3,0,0,
- 115,8,0,0,0,0,9,12,1,8,1,12,1,114,208,0,
- 0,0,169,1,218,9,114,101,99,117,114,115,105,118,101,99,
- 3,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,
- 11,0,0,0,67,0,0,0,115,234,0,0,0,124,1,68,
- 0,93,224,125,4,116,0,124,4,116,1,131,2,115,66,124,
- 3,114,34,124,0,106,2,100,1,23,0,125,5,110,4,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,113,4,124,
- 4,100,5,107,2,114,108,124,3,115,228,116,5,124,0,100,
- 6,131,2,114,228,116,6,124,0,124,0,106,7,124,2,100,
- 7,100,8,141,4,1,0,113,4,116,5,124,0,124,4,131,
- 2,115,4,100,9,160,8,124,0,106,2,124,4,161,2,125,
- 6,122,14,116,9,124,2,124,6,131,2,1,0,87,0,113,
- 4,4,0,116,10,107,10,114,226,1,0,125,7,1,0,122,
- 54,124,7,106,11,124,6,107,2,114,204,116,12,106,13,160,
- 14,124,6,116,15,161,2,100,10,107,9,114,204,87,0,89,
- 0,100,10,125,7,126,7,113,4,130,0,87,0,89,0,100,
- 10,125,7,126,7,113,4,100,10,125,7,126,7,48,0,48,
- 0,113,4,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,209,0,
- 0,0,114,182,0,0,0,78,41,16,114,195,0,0,0,114,
- 196,0,0,0,114,1,0,0,0,114,197,0,0,0,114,14,
- 0,0,0,114,4,0,0,0,218,16,95,104,97,110,100,108,
- 101,95,102,114,111,109,108,105,115,116,114,212,0,0,0,114,
- 44,0,0,0,114,66,0,0,0,114,203,0,0,0,114,17,
- 0,0,0,114,15,0,0,0,114,91,0,0,0,114,34,0,
- 0,0,114,206,0,0,0,41,8,114,95,0,0,0,218,8,
- 102,114,111,109,108,105,115,116,114,204,0,0,0,114,210,0,
- 0,0,218,1,120,90,5,119,104,101,114,101,90,9,102,114,
- 111,109,95,110,97,109,101,90,3,101,120,99,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,213,0,0,0,
- 251,3,0,0,115,44,0,0,0,0,10,8,1,10,1,4,
- 1,12,2,4,1,28,2,8,1,14,1,10,1,2,255,8,
- 2,10,1,14,1,2,1,14,1,16,4,10,1,16,255,2,
- 2,12,1,26,1,114,213,0,0,0,99,1,0,0,0,0,
- 0,0,0,0,0,0,0,3,0,0,0,6,0,0,0,67,
- 0,0,0,115,146,0,0,0,124,0,160,0,100,1,161,1,
- 125,1,124,0,160,0,100,2,161,1,125,2,124,1,100,3,
- 107,9,114,82,124,2,100,3,107,9,114,78,124,1,124,2,
- 106,1,107,3,114,78,116,2,106,3,100,4,124,1,155,2,
- 100,5,124,2,106,1,155,2,100,6,157,5,116,4,100,7,
- 100,8,141,3,1,0,124,1,83,0,124,2,100,3,107,9,
- 114,96,124,2,106,1,83,0,116,2,106,3,100,9,116,4,
- 100,7,100,8,141,3,1,0,124,0,100,10,25,0,125,1,
- 100,11,124,0,107,7,114,142,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,144,0,0,0,114,104,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,1,0,0,0,114,140,
- 0,0,0,114,127,0,0,0,114,22,0,0,0,41,6,114,
- 34,0,0,0,114,129,0,0,0,114,191,0,0,0,114,192,
- 0,0,0,114,193,0,0,0,114,128,0,0,0,41,3,218,
- 7,103,108,111,98,97,108,115,114,185,0,0,0,114,94,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,218,17,95,99,97,108,99,95,95,95,112,97,99,107,97,
- 103,101,95,95,32,4,0,0,115,38,0,0,0,0,7,10,
- 1,10,1,8,1,18,1,22,2,2,0,2,254,6,3,4,
- 1,8,1,6,2,6,2,2,0,2,254,6,3,8,1,8,
- 1,14,1,114,219,0,0,0,114,10,0,0,0,99,5,0,
- 0,0,0,0,0,0,0,0,0,0,9,0,0,0,5,0,
- 0,0,67,0,0,0,115,180,0,0,0,124,4,100,1,107,
- 2,114,18,116,0,124,0,131,1,125,5,110,36,124,1,100,
- 2,107,9,114,30,124,1,110,2,105,0,125,6,116,1,124,
- 6,131,1,125,7,116,0,124,0,124,7,124,4,131,3,125,
- 5,124,3,115,150,124,4,100,1,107,2,114,84,116,0,124,
- 0,160,2,100,3,161,1,100,1,25,0,131,1,83,0,124,
- 0,115,92,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,110,
- 26,116,7,124,5,100,4,131,2,114,172,116,8,124,5,124,
- 3,116,0,131,3,83,0,124,5,83,0,100,2,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,22,0,
- 0,0,78,114,127,0,0,0,114,140,0,0,0,41,9,114,
- 208,0,0,0,114,219,0,0,0,218,9,112,97,114,116,105,
- 116,105,111,110,114,184,0,0,0,114,15,0,0,0,114,91,
- 0,0,0,114,1,0,0,0,114,4,0,0,0,114,213,0,
- 0,0,41,9,114,17,0,0,0,114,218,0,0,0,218,6,
- 108,111,99,97,108,115,114,214,0,0,0,114,186,0,0,0,
- 114,95,0,0,0,90,8,103,108,111,98,97,108,115,95,114,
- 185,0,0,0,90,7,99,117,116,95,111,102,102,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,218,10,95,95,
- 105,109,112,111,114,116,95,95,59,4,0,0,115,30,0,0,
- 0,0,11,8,1,10,2,16,1,8,1,12,1,4,3,8,
- 1,18,1,4,1,4,4,26,3,32,1,10,1,12,2,114,
- 222,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,3,0,0,0,67,0,0,0,115,38,0,
- 0,0,116,0,160,1,124,0,161,1,125,1,124,1,100,0,
- 107,8,114,30,116,2,100,1,124,0,23,0,131,1,130,1,
- 116,3,124,1,131,1,83,0,41,2,78,122,25,110,111,32,
- 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,32,
- 110,97,109,101,100,32,41,4,114,159,0,0,0,114,166,0,
- 0,0,114,78,0,0,0,114,158,0,0,0,41,2,114,17,
- 0,0,0,114,94,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,18,95,98,117,105,108,116,105,
- 110,95,102,114,111,109,95,110,97,109,101,96,4,0,0,115,
- 8,0,0,0,0,1,10,1,8,1,12,1,114,223,0,0,
- 0,99,2,0,0,0,0,0,0,0,0,0,0,0,10,0,
- 0,0,5,0,0,0,67,0,0,0,115,166,0,0,0,124,
- 1,97,0,124,0,97,1,116,2,116,1,131,1,125,2,116,
- 1,106,3,160,4,161,0,68,0,93,72,92,2,125,3,125,
- 4,116,5,124,4,124,2,131,2,114,26,124,3,116,1,106,
- 6,107,6,114,60,116,7,125,5,110,18,116,0,160,8,124,
- 3,161,1,114,26,116,9,125,5,110,2,113,26,116,10,124,
- 4,124,5,131,2,125,6,116,11,124,6,124,4,131,2,1,
- 0,113,26,116,1,106,3,116,12,25,0,125,7,100,1,68,
- 0,93,46,125,8,124,8,116,1,106,3,107,7,114,138,116,
- 13,124,8,131,1,125,9,110,10,116,1,106,3,124,8,25,
- 0,125,9,116,14,124,7,124,8,124,9,131,3,1,0,113,
- 114,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,23,0,0,0,114,191,0,0,0,114,
- 63,0,0,0,78,41,15,114,56,0,0,0,114,15,0,0,
- 0,114,14,0,0,0,114,91,0,0,0,218,5,105,116,101,
- 109,115,114,195,0,0,0,114,77,0,0,0,114,159,0,0,
- 0,114,87,0,0,0,114,173,0,0,0,114,141,0,0,0,
- 114,147,0,0,0,114,1,0,0,0,114,223,0,0,0,114,
- 5,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,17,0,0,
- 0,114,95,0,0,0,114,108,0,0,0,114,94,0,0,0,
- 90,11,115,101,108,102,95,109,111,100,117,108,101,90,12,98,
- 117,105,108,116,105,110,95,110,97,109,101,90,14,98,117,105,
- 108,116,105,110,95,109,111,100,117,108,101,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,6,95,115,101,116,
- 117,112,103,4,0,0,115,36,0,0,0,0,9,4,1,4,
- 3,8,1,18,1,10,1,10,1,6,1,10,1,6,2,2,
- 1,10,1,12,3,10,1,8,1,10,1,10,2,10,1,114,
- 227,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,3,0,0,0,67,0,0,0,115,38,0,
- 0,0,116,0,124,0,124,1,131,2,1,0,116,1,106,2,
- 160,3,116,4,161,1,1,0,116,1,106,2,160,3,116,5,
- 161,1,1,0,100,1,83,0,41,2,122,48,73,110,115,116,
- 97,108,108,32,105,109,112,111,114,116,101,114,115,32,102,111,
- 114,32,98,117,105,108,116,105,110,32,97,110,100,32,102,114,
- 111,122,101,110,32,109,111,100,117,108,101,115,78,41,6,114,
- 227,0,0,0,114,15,0,0,0,114,190,0,0,0,114,118,
- 0,0,0,114,159,0,0,0,114,173,0,0,0,41,2,114,
- 225,0,0,0,114,226,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,218,8,95,105,110,115,116,97,
- 108,108,138,4,0,0,115,6,0,0,0,0,2,10,2,12,
- 1,114,228,0,0,0,99,0,0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,4,0,0,0,67,0,0,0,115,
- 32,0,0,0,100,1,100,2,108,0,125,0,124,0,97,1,
- 124,0,160,2,116,3,106,4,116,5,25,0,161,1,1,0,
- 100,2,83,0,41,3,122,57,73,110,115,116,97,108,108,32,
- 105,109,112,111,114,116,101,114,115,32,116,104,97,116,32,114,
- 101,113,117,105,114,101,32,101,120,116,101,114,110,97,108,32,
- 102,105,108,101,115,121,115,116,101,109,32,97,99,99,101,115,
- 115,114,22,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,125,0,0,0,114,228,0,0,0,114,
- 15,0,0,0,114,91,0,0,0,114,1,0,0,0,41,1,
- 114,229,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,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,146,4,0,0,115,6,0,0,0,0,3,8,1,4,1,
- 114,230,0,0,0,41,2,78,78,41,1,78,41,2,78,114,
- 22,0,0,0,41,4,78,78,114,10,0,0,0,114,22,0,
- 0,0,41,50,114,3,0,0,0,114,125,0,0,0,114,12,
- 0,0,0,114,18,0,0,0,114,58,0,0,0,114,33,0,
- 0,0,114,42,0,0,0,114,19,0,0,0,114,20,0,0,
- 0,114,48,0,0,0,114,49,0,0,0,114,52,0,0,0,
- 114,64,0,0,0,114,66,0,0,0,114,75,0,0,0,114,
- 85,0,0,0,114,89,0,0,0,114,96,0,0,0,114,110,
- 0,0,0,114,111,0,0,0,114,90,0,0,0,114,141,0,
- 0,0,114,147,0,0,0,114,151,0,0,0,114,106,0,0,
- 0,114,92,0,0,0,114,157,0,0,0,114,158,0,0,0,
- 114,93,0,0,0,114,159,0,0,0,114,173,0,0,0,114,
- 178,0,0,0,114,187,0,0,0,114,189,0,0,0,114,194,
- 0,0,0,114,200,0,0,0,90,15,95,69,82,82,95,77,
- 83,71,95,80,82,69,70,73,88,114,202,0,0,0,114,205,
- 0,0,0,218,6,111,98,106,101,99,116,114,206,0,0,0,
- 114,207,0,0,0,114,208,0,0,0,114,213,0,0,0,114,
- 219,0,0,0,114,222,0,0,0,114,223,0,0,0,114,227,
- 0,0,0,114,228,0,0,0,114,230,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,218,8,60,109,111,100,117,108,101,62,1,0,0,0,115,
- 94,0,0,0,4,24,4,2,8,8,8,8,4,2,4,3,
- 16,4,14,68,14,21,14,16,8,37,8,17,8,11,14,8,
- 8,11,8,12,8,16,8,36,14,101,16,26,10,45,14,72,
- 8,17,8,17,8,30,8,37,8,42,8,15,14,75,14,79,
- 14,13,8,9,8,9,10,47,8,16,4,1,8,2,8,27,
- 6,3,8,16,10,15,14,37,8,27,10,37,8,7,8,35,
- 8,8,
+ 0,0,218,13,95,115,97,110,105,116,121,95,99,104,101,99,
+ 107,171,3,0,0,115,22,0,0,0,0,2,10,1,18,1,
+ 8,1,8,1,8,1,10,1,10,1,4,1,8,2,12,1,
+ 114,200,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,8,0,
+ 0,0,67,0,0,0,115,218,0,0,0,100,0,125,2,124,
+ 0,160,0,100,1,161,1,100,2,25,0,125,3,124,3,114,
+ 132,124,3,116,1,106,2,118,1,114,42,116,3,124,1,124,
+ 3,131,2,1,0,124,0,116,1,106,2,118,0,114,62,116,
+ 1,106,2,124,0,25,0,83,0,116,1,106,2,124,3,25,
+ 0,125,4,122,10,124,4,106,4,125,2,87,0,110,48,4,
+ 0,116,5,121,130,1,0,1,0,1,0,116,6,100,3,23,
+ 0,160,7,124,0,124,3,161,2,125,5,116,8,124,5,124,
+ 0,100,4,141,2,100,0,130,2,89,0,110,2,48,0,116,
+ 9,124,0,124,2,131,2,125,6,124,6,100,0,117,0,114,
+ 170,116,8,116,6,160,7,124,0,161,1,124,0,100,4,141,
+ 2,130,1,110,8,116,10,124,6,131,1,125,7,124,3,114,
+ 214,116,1,106,2,124,3,25,0,125,4,116,11,124,4,124,
+ 0,160,0,100,1,161,1,100,5,25,0,124,7,131,3,1,
+ 0,124,7,83,0,41,6,78,114,127,0,0,0,114,22,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,16,0,0,0,
+ 233,2,0,0,0,41,12,114,128,0,0,0,114,15,0,0,
+ 0,114,91,0,0,0,114,66,0,0,0,114,140,0,0,0,
+ 114,105,0,0,0,218,8,95,69,82,82,95,77,83,71,114,
+ 44,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,194,0,0,0,114,158,
+ 0,0,0,114,5,0,0,0,41,8,114,17,0,0,0,218,
+ 7,105,109,112,111,114,116,95,114,164,0,0,0,114,129,0,
+ 0,0,90,13,112,97,114,101,110,116,95,109,111,100,117,108,
+ 101,114,156,0,0,0,114,94,0,0,0,114,95,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,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,190,3,0,0,115,42,0,0,
+ 0,0,1,4,1,14,1,4,1,10,1,10,2,10,1,10,
+ 1,10,1,2,1,10,1,12,1,16,1,20,1,10,1,8,
+ 1,20,2,8,1,4,2,10,1,22,1,114,205,0,0,0,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+ 0,8,0,0,0,67,0,0,0,115,128,0,0,0,116,0,
+ 124,0,131,1,143,62,1,0,116,1,106,2,160,3,124,0,
+ 116,4,161,2,125,2,124,2,116,4,117,0,114,56,116,5,
+ 124,0,124,1,131,2,87,0,2,0,100,1,4,0,4,0,
+ 131,3,1,0,83,0,87,0,100,1,4,0,4,0,131,3,
+ 1,0,110,16,49,0,115,76,48,0,1,0,1,0,1,0,
+ 89,0,1,0,124,2,100,1,117,0,114,116,100,2,160,6,
+ 124,0,161,1,125,3,116,7,124,3,124,0,100,3,141,2,
+ 130,1,116,8,124,0,131,1,1,0,124,2,83,0,41,4,
+ 122,25,70,105,110,100,32,97,110,100,32,108,111,97,100,32,
+ 116,104,101,32,109,111,100,117,108,101,46,78,122,40,105,109,
+ 112,111,114,116,32,111,102,32,123,125,32,104,97,108,116,101,
+ 100,59,32,78,111,110,101,32,105,110,32,115,121,115,46,109,
+ 111,100,117,108,101,115,114,16,0,0,0,41,9,114,49,0,
+ 0,0,114,15,0,0,0,114,91,0,0,0,114,34,0,0,
+ 0,218,14,95,78,69,69,68,83,95,76,79,65,68,73,78,
+ 71,114,205,0,0,0,114,44,0,0,0,114,203,0,0,0,
+ 114,64,0,0,0,41,4,114,17,0,0,0,114,204,0,0,
+ 0,114,95,0,0,0,114,74,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,14,95,102,105,110,
+ 100,95,97,110,100,95,108,111,97,100,220,3,0,0,115,22,
+ 0,0,0,0,2,10,1,14,1,8,1,54,2,8,1,4,
+ 1,2,255,4,2,12,2,8,1,114,207,0,0,0,114,22,
+ 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,
+ 3,0,0,0,4,0,0,0,67,0,0,0,115,42,0,0,
+ 0,116,0,124,0,124,1,124,2,131,3,1,0,124,2,100,
+ 1,107,4,114,32,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,22,0,0,0,41,4,114,200,0,0,0,
+ 114,187,0,0,0,114,207,0,0,0,218,11,95,103,99,100,
+ 95,105,109,112,111,114,116,114,199,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,208,0,0,0,
+ 236,3,0,0,115,8,0,0,0,0,9,12,1,8,1,12,
+ 1,114,208,0,0,0,169,1,218,9,114,101,99,117,114,115,
+ 105,118,101,99,3,0,0,0,0,0,0,0,1,0,0,0,
+ 8,0,0,0,11,0,0,0,67,0,0,0,115,232,0,0,
+ 0,124,1,68,0,93,222,125,4,116,0,124,4,116,1,131,
+ 2,115,66,124,3,114,34,124,0,106,2,100,1,23,0,125,
+ 5,110,4,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,113,4,124,4,100,5,107,2,114,108,124,3,115,226,116,
+ 5,124,0,100,6,131,2,114,226,116,6,124,0,124,0,106,
+ 7,124,2,100,7,100,8,141,4,1,0,113,4,116,5,124,
+ 0,124,4,131,2,115,4,100,9,160,8,124,0,106,2,124,
+ 4,161,2,125,6,122,14,116,9,124,2,124,6,131,2,1,
+ 0,87,0,113,4,4,0,116,10,121,224,1,0,125,7,1,
+ 0,122,54,124,7,106,11,124,6,107,2,114,202,116,12,106,
+ 13,160,14,124,6,116,15,161,2,100,10,117,1,114,202,87,
+ 0,89,0,100,10,125,7,126,7,113,4,130,0,87,0,89,
+ 0,100,10,125,7,126,7,113,4,100,10,125,7,126,7,48,
+ 0,48,0,113,4,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,
+ 209,0,0,0,114,182,0,0,0,78,41,16,114,195,0,0,
+ 0,114,196,0,0,0,114,1,0,0,0,114,197,0,0,0,
+ 114,14,0,0,0,114,4,0,0,0,218,16,95,104,97,110,
+ 100,108,101,95,102,114,111,109,108,105,115,116,114,212,0,0,
+ 0,114,44,0,0,0,114,66,0,0,0,114,203,0,0,0,
+ 114,17,0,0,0,114,15,0,0,0,114,91,0,0,0,114,
+ 34,0,0,0,114,206,0,0,0,41,8,114,95,0,0,0,
+ 218,8,102,114,111,109,108,105,115,116,114,204,0,0,0,114,
+ 210,0,0,0,218,1,120,90,5,119,104,101,114,101,90,9,
+ 102,114,111,109,95,110,97,109,101,90,3,101,120,99,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,114,213,0,
+ 0,0,251,3,0,0,115,44,0,0,0,0,10,8,1,10,
+ 1,4,1,12,2,4,1,28,2,8,1,14,1,10,1,2,
+ 255,8,2,10,1,14,1,2,1,14,1,14,4,10,1,16,
+ 255,2,2,12,1,26,1,114,213,0,0,0,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,3,0,0,0,6,0,0,
+ 0,67,0,0,0,115,146,0,0,0,124,0,160,0,100,1,
+ 161,1,125,1,124,0,160,0,100,2,161,1,125,2,124,1,
+ 100,3,117,1,114,82,124,2,100,3,117,1,114,78,124,1,
+ 124,2,106,1,107,3,114,78,116,2,106,3,100,4,124,1,
+ 155,2,100,5,124,2,106,1,155,2,100,6,157,5,116,4,
+ 100,7,100,8,141,3,1,0,124,1,83,0,124,2,100,3,
+ 117,1,114,96,124,2,106,1,83,0,116,2,106,3,100,9,
+ 116,4,100,7,100,8,141,3,1,0,124,0,100,10,25,0,
+ 125,1,100,11,124,0,118,1,114,142,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,144,0,0,0,114,104,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,1,0,0,0,
+ 114,140,0,0,0,114,127,0,0,0,114,22,0,0,0,41,
+ 6,114,34,0,0,0,114,129,0,0,0,114,191,0,0,0,
+ 114,192,0,0,0,114,193,0,0,0,114,128,0,0,0,41,
+ 3,218,7,103,108,111,98,97,108,115,114,185,0,0,0,114,
+ 94,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,218,17,95,99,97,108,99,95,95,95,112,97,99,
+ 107,97,103,101,95,95,32,4,0,0,115,38,0,0,0,0,
+ 7,10,1,10,1,8,1,18,1,22,2,2,0,2,254,6,
+ 3,4,1,8,1,6,2,6,2,2,0,2,254,6,3,8,
+ 1,8,1,14,1,114,219,0,0,0,114,10,0,0,0,99,
+ 5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,
+ 5,0,0,0,67,0,0,0,115,180,0,0,0,124,4,100,
+ 1,107,2,114,18,116,0,124,0,131,1,125,5,110,36,124,
+ 1,100,2,117,1,114,30,124,1,110,2,105,0,125,6,116,
+ 1,124,6,131,1,125,7,116,0,124,0,124,7,124,4,131,
+ 3,125,5,124,3,115,150,124,4,100,1,107,2,114,84,116,
+ 0,124,0,160,2,100,3,161,1,100,1,25,0,131,1,83,
+ 0,124,0,115,92,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,110,26,116,7,124,5,100,4,131,2,114,172,116,8,124,
+ 5,124,3,116,0,131,3,83,0,124,5,83,0,100,2,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,
+ 22,0,0,0,78,114,127,0,0,0,114,140,0,0,0,41,
+ 9,114,208,0,0,0,114,219,0,0,0,218,9,112,97,114,
+ 116,105,116,105,111,110,114,184,0,0,0,114,15,0,0,0,
+ 114,91,0,0,0,114,1,0,0,0,114,4,0,0,0,114,
+ 213,0,0,0,41,9,114,17,0,0,0,114,218,0,0,0,
+ 218,6,108,111,99,97,108,115,114,214,0,0,0,114,186,0,
+ 0,0,114,95,0,0,0,90,8,103,108,111,98,97,108,115,
+ 95,114,185,0,0,0,90,7,99,117,116,95,111,102,102,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,10,
+ 95,95,105,109,112,111,114,116,95,95,59,4,0,0,115,30,
+ 0,0,0,0,11,8,1,10,2,16,1,8,1,12,1,4,
+ 3,8,1,18,1,4,1,4,4,26,3,32,1,10,1,12,
+ 2,114,222,0,0,0,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
+ 38,0,0,0,116,0,160,1,124,0,161,1,125,1,124,1,
+ 100,0,117,0,114,30,116,2,100,1,124,0,23,0,131,1,
+ 130,1,116,3,124,1,131,1,83,0,41,2,78,122,25,110,
+ 111,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,
+ 101,32,110,97,109,101,100,32,41,4,114,159,0,0,0,114,
+ 166,0,0,0,114,78,0,0,0,114,158,0,0,0,41,2,
+ 114,17,0,0,0,114,94,0,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,218,18,95,98,117,105,108,
+ 116,105,110,95,102,114,111,109,95,110,97,109,101,96,4,0,
+ 0,115,8,0,0,0,0,1,10,1,8,1,12,1,114,223,
+ 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 10,0,0,0,5,0,0,0,67,0,0,0,115,166,0,0,
+ 0,124,1,97,0,124,0,97,1,116,2,116,1,131,1,125,
+ 2,116,1,106,3,160,4,161,0,68,0,93,72,92,2,125,
+ 3,125,4,116,5,124,4,124,2,131,2,114,26,124,3,116,
+ 1,106,6,118,0,114,60,116,7,125,5,110,18,116,0,160,
+ 8,124,3,161,1,114,26,116,9,125,5,110,2,113,26,116,
+ 10,124,4,124,5,131,2,125,6,116,11,124,6,124,4,131,
+ 2,1,0,113,26,116,1,106,3,116,12,25,0,125,7,100,
+ 1,68,0,93,46,125,8,124,8,116,1,106,3,118,1,114,
+ 138,116,13,124,8,131,1,125,9,110,10,116,1,106,3,124,
+ 8,25,0,125,9,116,14,124,7,124,8,124,9,131,3,1,
+ 0,113,114,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,23,0,0,0,114,191,0,0,
+ 0,114,63,0,0,0,78,41,15,114,56,0,0,0,114,15,
+ 0,0,0,114,14,0,0,0,114,91,0,0,0,218,5,105,
+ 116,101,109,115,114,195,0,0,0,114,77,0,0,0,114,159,
+ 0,0,0,114,87,0,0,0,114,173,0,0,0,114,141,0,
+ 0,0,114,147,0,0,0,114,1,0,0,0,114,223,0,0,
+ 0,114,5,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,17,
+ 0,0,0,114,95,0,0,0,114,108,0,0,0,114,94,0,
+ 0,0,90,11,115,101,108,102,95,109,111,100,117,108,101,90,
+ 12,98,117,105,108,116,105,110,95,110,97,109,101,90,14,98,
+ 117,105,108,116,105,110,95,109,111,100,117,108,101,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,218,6,95,115,
+ 101,116,117,112,103,4,0,0,115,36,0,0,0,0,9,4,
+ 1,4,3,8,1,18,1,10,1,10,1,6,1,10,1,6,
+ 2,2,1,10,1,12,3,10,1,8,1,10,1,10,2,10,
+ 1,114,227,0,0,0,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
+ 38,0,0,0,116,0,124,0,124,1,131,2,1,0,116,1,
+ 106,2,160,3,116,4,161,1,1,0,116,1,106,2,160,3,
+ 116,5,161,1,1,0,100,1,83,0,41,2,122,48,73,110,
+ 115,116,97,108,108,32,105,109,112,111,114,116,101,114,115,32,
+ 102,111,114,32,98,117,105,108,116,105,110,32,97,110,100,32,
+ 102,114,111,122,101,110,32,109,111,100,117,108,101,115,78,41,
+ 6,114,227,0,0,0,114,15,0,0,0,114,190,0,0,0,
+ 114,118,0,0,0,114,159,0,0,0,114,173,0,0,0,41,
+ 2,114,225,0,0,0,114,226,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,8,95,105,110,115,
+ 116,97,108,108,138,4,0,0,115,6,0,0,0,0,2,10,
+ 2,12,1,114,228,0,0,0,99,0,0,0,0,0,0,0,
+ 0,0,0,0,0,1,0,0,0,4,0,0,0,67,0,0,
+ 0,115,32,0,0,0,100,1,100,2,108,0,125,0,124,0,
+ 97,1,124,0,160,2,116,3,106,4,116,5,25,0,161,1,
+ 1,0,100,2,83,0,41,3,122,57,73,110,115,116,97,108,
+ 108,32,105,109,112,111,114,116,101,114,115,32,116,104,97,116,
+ 32,114,101,113,117,105,114,101,32,101,120,116,101,114,110,97,
+ 108,32,102,105,108,101,115,121,115,116,101,109,32,97,99,99,
+ 101,115,115,114,22,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,125,0,0,0,114,228,0,0,
+ 0,114,15,0,0,0,114,91,0,0,0,114,1,0,0,0,
+ 41,1,114,229,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,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,146,4,0,0,115,6,0,0,0,0,3,8,1,
+ 4,1,114,230,0,0,0,41,2,78,78,41,1,78,41,2,
+ 78,114,22,0,0,0,41,4,78,78,114,10,0,0,0,114,
+ 22,0,0,0,41,50,114,3,0,0,0,114,125,0,0,0,
+ 114,12,0,0,0,114,18,0,0,0,114,58,0,0,0,114,
+ 33,0,0,0,114,42,0,0,0,114,19,0,0,0,114,20,
+ 0,0,0,114,48,0,0,0,114,49,0,0,0,114,52,0,
+ 0,0,114,64,0,0,0,114,66,0,0,0,114,75,0,0,
+ 0,114,85,0,0,0,114,89,0,0,0,114,96,0,0,0,
+ 114,110,0,0,0,114,111,0,0,0,114,90,0,0,0,114,
+ 141,0,0,0,114,147,0,0,0,114,151,0,0,0,114,106,
+ 0,0,0,114,92,0,0,0,114,157,0,0,0,114,158,0,
+ 0,0,114,93,0,0,0,114,159,0,0,0,114,173,0,0,
+ 0,114,178,0,0,0,114,187,0,0,0,114,189,0,0,0,
+ 114,194,0,0,0,114,200,0,0,0,90,15,95,69,82,82,
+ 95,77,83,71,95,80,82,69,70,73,88,114,202,0,0,0,
+ 114,205,0,0,0,218,6,111,98,106,101,99,116,114,206,0,
+ 0,0,114,207,0,0,0,114,208,0,0,0,114,213,0,0,
+ 0,114,219,0,0,0,114,222,0,0,0,114,223,0,0,0,
+ 114,227,0,0,0,114,228,0,0,0,114,230,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,218,8,60,109,111,100,117,108,101,62,1,0,0,
+ 0,115,94,0,0,0,4,24,4,2,8,8,8,8,4,2,
+ 4,3,16,4,14,68,14,21,14,16,8,37,8,17,8,11,
+ 14,8,8,11,8,12,8,16,8,36,14,101,16,26,10,45,
+ 14,72,8,17,8,17,8,30,8,37,8,42,8,15,14,75,
+ 14,79,14,13,8,9,8,9,10,47,8,16,4,1,8,2,
+ 8,27,6,3,8,16,10,15,14,37,8,27,10,37,8,7,
+ 8,35,8,8,
};
diff --git a/Python/importlib_external.h b/Python/importlib_external.h
index 8c1fa3cac8f..52783fc6213 100644
--- a/Python/importlib_external.h
+++ b/Python/importlib_external.h
@@ -69,7 +69,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
78,67,65,83,69,79,75,115,12,0,0,0,80,89,84,72,
79,78,67,65,83,69,79,75,99,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,2,0,0,0,19,0,0,
- 0,115,10,0,0,0,136,0,116,0,106,1,107,6,83,0,
+ 0,115,10,0,0,0,136,0,116,0,106,1,118,0,83,0,
41,1,250,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,
@@ -158,7 +158,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
67,0,0,0,115,96,0,0,0,116,0,116,1,131,1,100,
1,107,2,114,36,124,0,160,2,116,3,161,1,92,3,125,
1,125,2,125,3,124,1,124,3,102,2,83,0,116,4,124,
- 0,131,1,68,0,93,42,125,4,124,4,116,1,107,6,114,
+ 0,131,1,68,0,93,42,125,4,124,4,116,1,118,0,114,
44,124,0,106,5,124,4,100,1,100,2,141,2,92,2,125,
1,125,3,124,1,124,3,102,2,2,0,1,0,83,0,113,
44,100,3,124,0,102,2,83,0,41,4,122,32,82,101,112,
@@ -189,1933 +189,1930 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
0,0,0,218,10,95,112,97,116,104,95,115,116,97,116,80,
0,0,0,115,2,0,0,0,0,7,114,48,0,0,0,99,
2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
- 8,0,0,0,67,0,0,0,115,50,0,0,0,122,12,116,
- 0,124,0,131,1,125,2,87,0,110,22,4,0,116,1,107,
- 10,114,34,1,0,1,0,1,0,89,0,100,1,83,0,48,
- 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,48,0,0,
- 0,218,7,79,83,69,114,114,111,114,218,7,115,116,95,109,
- 111,100,101,41,3,114,43,0,0,0,218,4,109,111,100,101,
- 90,9,115,116,97,116,95,105,110,102,111,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,218,18,95,112,97,116,
- 104,95,105,115,95,109,111,100,101,95,116,121,112,101,90,0,
- 0,0,115,10,0,0,0,0,2,2,1,12,1,14,1,8,
- 1,114,52,0,0,0,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,
- 10,0,0,0,116,0,124,0,100,1,131,2,83,0,41,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,52,0,0,0,114,47,0,
- 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,218,12,95,112,97,116,104,95,105,115,102,105,108,101,99,
- 0,0,0,115,2,0,0,0,0,2,114,53,0,0,0,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
- 3,0,0,0,67,0,0,0,115,22,0,0,0,124,0,115,
- 12,116,0,160,1,161,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,105,
- 115,100,105,114,46,105,0,64,0,0,41,3,114,2,0,0,
- 0,218,6,103,101,116,99,119,100,114,52,0,0,0,114,47,
- 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
- 0,0,218,11,95,112,97,116,104,95,105,115,100,105,114,104,
- 0,0,0,115,6,0,0,0,0,2,4,1,8,1,114,55,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 1,0,0,0,3,0,0,0,67,0,0,0,115,26,0,0,
- 0,124,0,160,0,116,1,161,1,112,24,124,0,100,1,100,
- 2,133,2,25,0,116,2,107,6,83,0,41,3,122,142,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,10,10,32,
- 32,32,32,67,111,110,115,105,100,101,114,115,32,97,32,87,
- 105,110,100,111,119,115,32,100,114,105,118,101,45,114,101,108,
- 97,116,105,118,101,32,112,97,116,104,32,40,110,111,32,100,
- 114,105,118,101,44,32,98,117,116,32,115,116,97,114,116,115,
- 32,119,105,116,104,32,115,108,97,115,104,41,32,116,111,10,
- 32,32,32,32,115,116,105,108,108,32,98,101,32,34,97,98,
- 115,111,108,117,116,101,34,46,10,32,32,32,32,114,38,0,
- 0,0,233,3,0,0,0,41,3,114,10,0,0,0,114,30,
- 0,0,0,218,20,95,112,97,116,104,115,101,112,115,95,119,
- 105,116,104,95,99,111,108,111,110,114,47,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,218,11,95,
- 112,97,116,104,95,105,115,97,98,115,111,0,0,0,115,2,
- 0,0,0,0,6,114,58,0,0,0,233,182,1,0,0,99,
- 3,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,
- 11,0,0,0,67,0,0,0,115,182,0,0,0,100,1,160,
- 0,124,0,116,1,124,0,131,1,161,2,125,3,116,2,160,
- 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,161,3,125,4,122,70,116,
- 7,160,8,124,4,100,3,161,2,143,26,125,5,124,5,160,
- 9,124,1,161,1,1,0,87,0,100,4,4,0,4,0,131,
- 3,1,0,110,16,49,0,115,94,48,0,1,0,1,0,1,
- 0,89,0,1,0,116,2,160,10,124,3,124,0,161,2,1,
- 0,87,0,110,58,4,0,116,11,107,10,114,176,1,0,1,
- 0,1,0,122,14,116,2,160,12,124,3,161,1,1,0,87,
- 0,110,20,4,0,116,11,107,10,114,168,1,0,1,0,1,
- 0,89,0,110,2,48,0,130,0,89,0,110,2,48,0,100,
- 4,83,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,59,0,0,0,90,2,119,98,78,41,13,218,6,102,111,
- 114,109,97,116,218,2,105,100,114,2,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,218,7,114,101,112,108,97,99,101,114,49,0,0,0,
- 90,6,117,110,108,105,110,107,41,6,114,43,0,0,0,114,
- 25,0,0,0,114,51,0,0,0,90,8,112,97,116,104,95,
- 116,109,112,90,2,102,100,218,4,102,105,108,101,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,218,13,95,119,
- 114,105,116,101,95,97,116,111,109,105,99,120,0,0,0,115,
- 30,0,0,0,0,5,16,1,6,1,16,0,6,255,4,2,
- 2,3,14,1,40,1,16,1,14,1,2,1,14,1,14,1,
- 6,1,114,68,0,0,0,105,94,13,0,0,114,27,0,0,
- 0,114,16,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,99,78,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,12,0,0,0,5,0,0,
- 0,67,0,0,0,115,88,1,0,0,124,1,100,1,107,9,
- 114,52,116,0,160,1,100,2,116,2,161,2,1,0,124,2,
- 100,1,107,9,114,40,100,3,125,3,116,3,124,3,131,1,
- 130,1,124,1,114,48,100,4,110,2,100,5,125,2,116,4,
- 160,5,124,0,161,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,
- 107,8,114,114,116,11,100,7,131,1,130,1,100,4,160,12,
- 124,6,114,126,124,6,110,2,124,8,124,7,124,9,103,3,
- 161,1,125,10,124,2,100,1,107,8,114,172,116,8,106,13,
- 106,14,100,8,107,2,114,164,100,4,125,2,110,8,116,8,
- 106,13,106,14,125,2,116,15,124,2,131,1,125,2,124,2,
- 100,4,107,3,114,224,124,2,160,16,161,0,115,210,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,107,9,144,1,
- 114,76,116,22,124,4,131,1,144,1,115,16,116,23,116,4,
- 160,24,161,0,124,4,131,2,125,4,124,4,100,5,25,0,
- 100,11,107,2,144,1,114,56,124,4,100,8,25,0,116,25,
- 107,7,144,1,114,56,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,39,0,0,0,114,38,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,233,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,250,
- 1,58,114,27,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,2,0,0,0,218,6,
- 102,115,112,97,116,104,114,46,0,0,0,114,40,0,0,0,
- 114,8,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,35,0,0,0,218,5,102,108,97,103,
- 115,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,61,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,58,0,0,0,114,37,0,0,0,114,54,0,
- 0,0,114,30,0,0,0,218,6,108,115,116,114,105,112,218,
- 8,95,80,89,67,65,67,72,69,41,12,114,43,0,0,0,
- 90,14,100,101,98,117,103,95,111,118,101,114,114,105,100,101,
- 114,69,0,0,0,218,7,109,101,115,115,97,103,101,218,4,
- 104,101,97,100,114,45,0,0,0,90,4,98,97,115,101,218,
- 3,115,101,112,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,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,218,17,99,97,99,104,101,
- 95,102,114,111,109,95,115,111,117,114,99,101,41,1,0,0,
- 115,72,0,0,0,0,18,8,1,6,1,2,255,4,2,8,
- 1,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,2,8,1,8,1,8,
- 1,8,1,14,1,14,1,12,1,12,9,10,1,14,5,28,
- 1,12,4,2,1,4,1,8,1,2,253,4,5,114,97,0,
- 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,10,
- 0,0,0,5,0,0,0,67,0,0,0,115,46,1,0,0,
- 116,0,106,1,106,2,100,1,107,8,114,20,116,3,100,2,
- 131,1,130,1,116,4,160,5,124,0,161,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,107,9,114,102,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,102,124,1,116,12,124,4,131,1,100,1,133,2,25,0,
- 125,1,100,4,125,3,124,3,115,144,116,6,124,1,131,1,
- 92,2,125,1,125,5,124,5,116,13,107,3,114,144,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,107,7,
- 114,178,116,14,100,8,124,2,155,2,157,2,131,1,130,1,
- 110,92,124,6,100,9,107,2,144,1,114,14,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,228,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,144,1,115,14,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,71,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,70,0,0,
- 0,62,2,0,0,0,114,27,0,0,0,114,56,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,
- 56,0,0,0,114,27,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,72,0,0,0,41,22,
- 114,8,0,0,0,114,79,0,0,0,114,80,0,0,0,114,
- 81,0,0,0,114,2,0,0,0,114,78,0,0,0,114,46,
- 0,0,0,114,89,0,0,0,114,29,0,0,0,114,30,0,
- 0,0,114,10,0,0,0,114,34,0,0,0,114,22,0,0,
- 0,114,91,0,0,0,114,86,0,0,0,218,5,99,111,117,
- 110,116,114,42,0,0,0,114,87,0,0,0,114,85,0,0,
- 0,218,9,112,97,114,116,105,116,105,111,110,114,37,0,0,
- 0,218,15,83,79,85,82,67,69,95,83,85,70,70,73,88,
- 69,83,41,10,114,43,0,0,0,114,93,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,69,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,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,218,17,115,111,117,114,
- 99,101,95,102,114,111,109,95,99,97,99,104,101,112,1,0,
- 0,115,52,0,0,0,0,9,12,1,8,1,10,1,12,1,
- 4,1,10,1,12,1,14,1,16,1,4,1,4,1,12,1,
- 8,1,18,2,10,1,8,1,16,1,10,1,16,1,10,1,
- 14,2,16,1,10,1,16,2,14,1,114,102,0,0,0,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,
- 9,0,0,0,67,0,0,0,115,126,0,0,0,116,0,124,
- 0,131,1,100,1,107,2,114,16,100,2,83,0,124,0,160,
- 1,100,3,161,1,92,3,125,1,125,2,125,3,124,1,114,
- 56,124,3,160,2,161,0,100,4,100,5,133,2,25,0,100,
- 6,107,3,114,60,124,0,83,0,122,12,116,3,124,0,131,
- 1,125,4,87,0,110,36,4,0,116,4,116,5,102,2,107,
- 10,114,108,1,0,1,0,1,0,124,0,100,2,100,5,133,
- 2,25,0,125,4,89,0,110,2,48,0,116,6,124,4,131,
- 1,114,122,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,72,0,0,0,
- 78,114,70,0,0,0,233,253,255,255,255,233,255,255,255,255,
- 90,2,112,121,41,7,114,22,0,0,0,114,40,0,0,0,
- 218,5,108,111,119,101,114,114,102,0,0,0,114,81,0,0,
- 0,114,86,0,0,0,114,53,0,0,0,41,5,218,13,98,
- 121,116,101,99,111,100,101,95,112,97,116,104,114,95,0,0,
- 0,114,44,0,0,0,90,9,101,120,116,101,110,115,105,111,
- 110,218,11,115,111,117,114,99,101,95,112,97,116,104,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,218,15,95,
- 103,101,116,95,115,111,117,114,99,101,102,105,108,101,152,1,
- 0,0,115,20,0,0,0,0,7,12,1,4,1,16,1,24,
- 1,4,1,2,1,12,1,18,1,18,1,114,108,0,0,0,
- 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
- 0,8,0,0,0,67,0,0,0,115,74,0,0,0,124,0,
- 160,0,116,1,116,2,131,1,161,1,114,48,122,10,116,3,
- 124,0,131,1,87,0,83,0,4,0,116,4,107,10,114,44,
- 1,0,1,0,1,0,89,0,113,70,48,0,110,22,124,0,
- 160,0,116,1,116,5,131,1,161,1,114,66,124,0,83,0,
- 100,0,83,0,100,0,83,0,169,1,78,41,6,218,8,101,
- 110,100,115,119,105,116,104,218,5,116,117,112,108,101,114,101,
- 0,0,0,114,97,0,0,0,114,81,0,0,0,114,88,0,
- 0,0,41,1,114,96,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,218,11,95,103,101,116,95,99,
- 97,99,104,101,100,171,1,0,0,115,16,0,0,0,0,1,
- 14,1,2,1,10,1,14,1,8,1,14,1,4,2,114,112,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,8,0,0,0,67,0,0,0,115,52,0,0,
- 0,122,14,116,0,124,0,131,1,106,1,125,1,87,0,110,
- 24,4,0,116,2,107,10,114,38,1,0,1,0,1,0,100,
- 1,125,1,89,0,110,2,48,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,59,0,0,
- 0,233,128,0,0,0,41,3,114,48,0,0,0,114,50,0,
- 0,0,114,49,0,0,0,41,2,114,43,0,0,0,114,51,
- 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
- 0,0,218,10,95,99,97,108,99,95,109,111,100,101,183,1,
- 0,0,115,12,0,0,0,0,2,2,1,14,1,14,1,10,
- 3,8,1,114,114,0,0,0,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,8,0,0,0,3,0,0,
- 0,115,68,0,0,0,100,6,135,0,102,1,100,2,100,3,
- 132,9,125,1,122,10,116,0,106,1,125,2,87,0,110,28,
- 4,0,116,2,107,10,114,52,1,0,1,0,1,0,100,4,
- 100,5,132,0,125,2,89,0,110,2,48,0,124,2,124,1,
- 136,0,131,2,1,0,124,1,83,0,41,7,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,4,0,0,0,4,0,0,0,
- 31,0,0,0,115,66,0,0,0,124,1,100,0,107,8,114,
- 16,124,0,106,0,125,1,110,32,124,0,106,0,124,1,107,
- 3,114,48,116,1,100,1,124,0,106,0,124,1,102,2,22,
- 0,124,1,100,2,141,2,130,1,136,0,124,0,124,1,102,
- 2,124,2,158,2,124,3,142,1,83,0,41,3,78,122,30,
- 108,111,97,100,101,114,32,102,111,114,32,37,115,32,99,97,
- 110,110,111,116,32,104,97,110,100,108,101,32,37,115,169,1,
- 218,4,110,97,109,101,41,2,114,116,0,0,0,218,11,73,
- 109,112,111,114,116,69,114,114,111,114,41,4,218,4,115,101,
- 108,102,114,116,0,0,0,218,4,97,114,103,115,218,6,107,
- 119,97,114,103,115,169,1,218,6,109,101,116,104,111,100,114,
- 3,0,0,0,114,6,0,0,0,218,19,95,99,104,101,99,
- 107,95,110,97,109,101,95,119,114,97,112,112,101,114,203,1,
- 0,0,115,18,0,0,0,0,1,8,1,8,1,10,1,4,
- 1,8,255,2,1,2,255,6,2,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,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 3,0,0,0,7,0,0,0,83,0,0,0,115,56,0,0,
- 0,100,1,68,0,93,32,125,2,116,0,124,1,124,2,131,
- 2,114,4,116,1,124,0,124,2,116,2,124,1,124,2,131,
- 2,131,3,1,0,113,4,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,66,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,218,5,95,119,114,97,
- 112,214,1,0,0,115,8,0,0,0,0,1,8,1,10,1,
- 20,1,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,41,1,
- 78,41,3,218,10,95,98,111,111,116,115,116,114,97,112,114,
- 133,0,0,0,218,9,78,97,109,101,69,114,114,111,114,41,
- 3,114,122,0,0,0,114,123,0,0,0,114,133,0,0,0,
- 114,3,0,0,0,114,121,0,0,0,114,6,0,0,0,218,
- 11,95,99,104,101,99,107,95,110,97,109,101,195,1,0,0,
- 115,14,0,0,0,0,8,14,7,2,1,10,1,14,2,14,
- 5,10,1,114,136,0,0,0,99,2,0,0,0,0,0,0,
- 0,0,0,0,0,5,0,0,0,6,0,0,0,67,0,0,
- 0,115,60,0,0,0,124,0,160,0,124,1,161,1,92,2,
- 125,2,125,3,124,2,100,1,107,8,114,56,116,1,124,3,
- 131,1,114,56,100,2,125,4,116,2,160,3,124,4,160,4,
- 124,3,100,3,25,0,161,1,116,5,161,2,1,0,124,2,
- 83,0,41,4,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,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,72,0,0,0,41,6,218,11,102,105,110,100,95,108,111,
- 97,100,101,114,114,22,0,0,0,114,74,0,0,0,114,75,
- 0,0,0,114,61,0,0,0,218,13,73,109,112,111,114,116,
- 87,97,114,110,105,110,103,41,5,114,118,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,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,17,
- 95,102,105,110,100,95,109,111,100,117,108,101,95,115,104,105,
- 109,223,1,0,0,115,10,0,0,0,0,10,14,1,16,1,
- 4,1,22,1,114,143,0,0,0,99,3,0,0,0,0,0,
- 0,0,0,0,0,0,6,0,0,0,4,0,0,0,67,0,
- 0,0,115,158,0,0,0,124,0,100,1,100,2,133,2,25,
- 0,125,3,124,3,116,0,107,3,114,60,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,124,2,142,
- 1,130,1,116,4,124,0,131,1,100,6,107,0,114,102,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,154,100,10,124,5,155,2,100,11,124,1,155,
- 2,157,4,125,4,116,3,124,4,102,1,124,2,142,1,130,
- 1,124,5,83,0,41,12,97,84,2,0,0,80,101,114,102,
- 111,114,109,32,98,97,115,105,99,32,118,97,108,105,100,105,
- 116,121,32,99,104,101,99,107,105,110,103,32,111,102,32,97,
- 32,112,121,99,32,104,101,97,100,101,114,32,97,110,100,32,
- 114,101,116,117,114,110,32,116,104,101,32,102,108,97,103,115,
- 32,102,105,101,108,100,44,10,32,32,32,32,119,104,105,99,
- 104,32,100,101,116,101,114,109,105,110,101,115,32,104,111,119,
- 32,116,104,101,32,112,121,99,32,115,104,111,117,108,100,32,
- 98,101,32,102,117,114,116,104,101,114,32,118,97,108,105,100,
- 97,116,101,100,32,97,103,97,105,110,115,116,32,116,104,101,
- 32,115,111,117,114,99,101,46,10,10,32,32,32,32,42,100,
- 97,116,97,42,32,105,115,32,116,104,101,32,99,111,110,116,
- 101,110,116,115,32,111,102,32,116,104,101,32,112,121,99,32,
- 102,105,108,101,46,32,40,79,110,108,121,32,116,104,101,32,
- 102,105,114,115,116,32,49,54,32,98,121,116,101,115,32,97,
- 114,101,10,32,32,32,32,114,101,113,117,105,114,101,100,44,
- 32,116,104,111,117,103,104,46,41,10,10,32,32,32,32,42,
- 110,97,109,101,42,32,105,115,32,116,104,101,32,110,97,109,
- 101,32,111,102,32,116,104,101,32,109,111,100,117,108,101,32,
- 98,101,105,110,103,32,105,109,112,111,114,116,101,100,46,32,
- 73,116,32,105,115,32,117,115,101,100,32,102,111,114,32,108,
- 111,103,103,105,110,103,46,10,10,32,32,32,32,42,101,120,
- 99,95,100,101,116,97,105,108,115,42,32,105,115,32,97,32,
- 100,105,99,116,105,111,110,97,114,121,32,112,97,115,115,101,
- 100,32,116,111,32,73,109,112,111,114,116,69,114,114,111,114,
- 32,105,102,32,105,116,32,114,97,105,115,101,100,32,102,111,
- 114,10,32,32,32,32,105,109,112,114,111,118,101,100,32,100,
- 101,98,117,103,103,105,110,103,46,10,10,32,32,32,32,73,
- 109,112,111,114,116,69,114,114,111,114,32,105,115,32,114,97,
- 105,115,101,100,32,119,104,101,110,32,116,104,101,32,109,97,
- 103,105,99,32,110,117,109,98,101,114,32,105,115,32,105,110,
- 99,111,114,114,101,99,116,32,111,114,32,119,104,101,110,32,
- 116,104,101,32,102,108,97,103,115,10,32,32,32,32,102,105,
- 101,108,100,32,105,115,32,105,110,118,97,108,105,100,46,32,
- 69,79,70,69,114,114,111,114,32,105,115,32,114,97,105,115,
- 101,100,32,119,104,101,110,32,116,104,101,32,100,97,116,97,
- 32,105,115,32,102,111,117,110,100,32,116,111,32,98,101,32,
- 116,114,117,110,99,97,116,101,100,46,10,10,32,32,32,32,
- 78,114,15,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,134,0,0,0,218,16,95,118,101,114,98,111,
- 115,101,95,109,101,115,115,97,103,101,114,117,0,0,0,114,
- 22,0,0,0,218,8,69,79,70,69,114,114,111,114,114,26,
- 0,0,0,41,6,114,25,0,0,0,114,116,0,0,0,218,
- 11,101,120,99,95,100,101,116,97,105,108,115,90,5,109,97,
- 103,105,99,114,92,0,0,0,114,82,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,218,13,95,99,
- 108,97,115,115,105,102,121,95,112,121,99,240,1,0,0,115,
- 28,0,0,0,0,16,12,1,8,1,16,1,12,1,12,1,
- 12,1,10,1,12,1,8,1,16,2,8,1,16,1,12,1,
- 114,152,0,0,0,99,5,0,0,0,0,0,0,0,0,0,
- 0,0,6,0,0,0,4,0,0,0,67,0,0,0,115,112,
- 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,58,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,124,4,142,1,130,1,124,2,100,
- 6,107,9,114,108,116,0,124,0,100,2,100,7,133,2,25,
- 0,131,1,124,2,100,3,64,0,107,3,114,108,116,3,100,
- 4,124,3,155,2,157,2,102,1,124,4,142,1,130,1,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,146,0,0,0,233,12,0,0,0,114,14,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,144,0,0,0,78,114,145,
- 0,0,0,41,4,114,26,0,0,0,114,134,0,0,0,114,
- 149,0,0,0,114,117,0,0,0,41,6,114,25,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,116,0,0,0,
- 114,151,0,0,0,114,92,0,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,6,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,17,2,0,0,115,16,0,0,0,0,19,24,1,10,
- 1,12,1,12,1,8,1,22,255,2,2,114,156,0,0,0,
- 99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
- 0,3,0,0,0,67,0,0,0,115,38,0,0,0,124,0,
- 100,1,100,2,133,2,25,0,124,1,107,3,114,34,116,0,
- 100,3,124,2,155,2,157,2,102,1,124,3,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,146,
- 0,0,0,114,145,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,117,0,0,0,
- 41,4,114,25,0,0,0,218,11,115,111,117,114,99,101,95,
- 104,97,115,104,114,116,0,0,0,114,151,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,218,18,95,
- 118,97,108,105,100,97,116,101,95,104,97,115,104,95,112,121,
- 99,45,2,0,0,115,12,0,0,0,0,17,16,1,2,1,
- 8,255,2,2,2,254,114,158,0,0,0,99,4,0,0,0,
- 0,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,
- 67,0,0,0,115,80,0,0,0,116,0,160,1,124,0,161,
- 1,125,4,116,2,124,4,116,3,131,2,114,56,116,4,160,
- 5,100,1,124,2,161,2,1,0,124,3,100,2,107,9,114,
- 52,116,6,160,7,124,4,124,3,161,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,100,2,83,0,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,116,0,0,0,114,43,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,134,0,0,0,114,149,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,117,0,0,0,114,61,
- 0,0,0,41,5,114,25,0,0,0,114,116,0,0,0,114,
- 106,0,0,0,114,107,0,0,0,218,4,99,111,100,101,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,17,
- 95,99,111,109,112,105,108,101,95,98,121,116,101,99,111,100,
- 101,69,2,0,0,115,20,0,0,0,0,2,10,1,10,1,
- 12,1,8,1,12,1,4,2,10,1,2,0,2,255,114,165,
- 0,0,0,114,72,0,0,0,99,3,0,0,0,0,0,0,
- 0,0,0,0,0,4,0,0,0,5,0,0,0,67,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,160,5,
- 124,0,161,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,72,0,0,0,
- 41,6,218,9,98,121,116,101,97,114,114,97,121,114,148,0,
- 0,0,218,6,101,120,116,101,110,100,114,20,0,0,0,114,
- 160,0,0,0,218,5,100,117,109,112,115,41,4,114,164,0,
- 0,0,218,5,109,116,105,109,101,114,155,0,0,0,114,25,
- 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,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,82,2,0,0,115,12,
- 0,0,0,0,2,8,1,14,1,14,1,14,1,16,1,114,
- 170,0,0,0,84,99,3,0,0,0,0,0,0,0,0,0,
- 0,0,5,0,0,0,5,0,0,0,67,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,
- 50,74,0,130,1,124,3,160,2,124,1,161,1,1,0,124,
- 3,160,2,116,5,160,6,124,0,161,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,38,0,
- 0,0,114,146,0,0,0,41,7,114,166,0,0,0,114,148,
- 0,0,0,114,167,0,0,0,114,20,0,0,0,114,22,0,
- 0,0,114,160,0,0,0,114,168,0,0,0,41,5,114,164,
- 0,0,0,114,157,0,0,0,90,7,99,104,101,99,107,101,
- 100,114,25,0,0,0,114,82,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,218,17,95,99,111,100,
- 101,95,116,111,95,104,97,115,104,95,112,121,99,92,2,0,
- 0,115,14,0,0,0,0,2,8,1,12,1,14,1,16,1,
- 10,1,16,1,114,171,0,0,0,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,5,0,0,0,6,0,0,0,67,0,
- 0,0,115,62,0,0,0,100,1,100,2,108,0,125,1,116,
- 1,160,2,124,0,161,1,106,3,125,2,124,1,160,4,124,
- 2,161,1,125,3,116,1,160,5,100,2,100,3,161,2,125,
- 4,124,4,160,6,124,0,160,6,124,3,100,1,25,0,161,
- 1,161,1,83,0,41,4,122,121,68,101,99,111,100,101,32,
- 98,121,116,101,115,32,114,101,112,114,101,115,101,110,116,105,
- 110,103,32,115,111,117,114,99,101,32,99,111,100,101,32,97,
- 110,100,32,114,101,116,117,114,110,32,116,104,101,32,115,116,
- 114,105,110,103,46,10,10,32,32,32,32,85,110,105,118,101,
- 114,115,97,108,32,110,101,119,108,105,110,101,32,115,117,112,
- 112,111,114,116,32,105,115,32,117,115,101,100,32,105,110,32,
- 116,104,101,32,100,101,99,111,100,105,110,103,46,10,32,32,
- 32,32,114,72,0,0,0,78,84,41,7,218,8,116,111,107,
- 101,110,105,122,101,114,63,0,0,0,90,7,66,121,116,101,
- 115,73,79,90,8,114,101,97,100,108,105,110,101,90,15,100,
- 101,116,101,99,116,95,101,110,99,111,100,105,110,103,90,25,
- 73,110,99,114,101,109,101,110,116,97,108,78,101,119,108,105,
- 110,101,68,101,99,111,100,101,114,218,6,100,101,99,111,100,
- 101,41,5,218,12,115,111,117,114,99,101,95,98,121,116,101,
- 115,114,172,0,0,0,90,21,115,111,117,114,99,101,95,98,
- 121,116,101,115,95,114,101,97,100,108,105,110,101,218,8,101,
- 110,99,111,100,105,110,103,90,15,110,101,119,108,105,110,101,
- 95,100,101,99,111,100,101,114,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,218,13,100,101,99,111,100,101,95,
- 115,111,117,114,99,101,103,2,0,0,115,10,0,0,0,0,
- 5,8,1,12,1,10,1,12,1,114,176,0,0,0,169,2,
- 114,140,0,0,0,218,26,115,117,98,109,111,100,117,108,101,
- 95,115,101,97,114,99,104,95,108,111,99,97,116,105,111,110,
- 115,99,2,0,0,0,0,0,0,0,2,0,0,0,9,0,
- 0,0,8,0,0,0,67,0,0,0,115,16,1,0,0,124,
- 1,100,1,107,8,114,60,100,2,125,1,116,0,124,2,100,
- 3,131,2,114,70,122,14,124,2,160,1,124,0,161,1,125,
- 1,87,0,113,70,4,0,116,2,107,10,114,56,1,0,1,
- 0,1,0,89,0,113,70,48,0,110,10,116,3,160,4,124,
- 1,161,1,125,1,116,5,106,6,124,0,124,2,124,1,100,
- 4,141,3,125,4,100,5,124,4,95,7,124,2,100,1,107,
- 8,114,154,116,8,131,0,68,0,93,42,92,2,125,5,125,
- 6,124,1,160,9,116,10,124,6,131,1,161,1,114,106,124,
- 5,124,0,124,1,131,2,125,2,124,2,124,4,95,11,1,
- 0,113,154,113,106,100,1,83,0,124,3,116,12,107,8,114,
- 220,116,0,124,2,100,6,131,2,114,226,122,14,124,2,160,
- 13,124,0,161,1,125,7,87,0,110,20,4,0,116,2,107,
- 10,114,206,1,0,1,0,1,0,89,0,113,226,48,0,124,
- 7,114,226,103,0,124,4,95,14,110,6,124,3,124,4,95,
- 14,124,4,106,14,103,0,107,2,144,1,114,12,124,1,144,
- 1,114,12,116,15,124,1,131,1,100,7,25,0,125,8,124,
- 4,106,14,160,16,124,8,161,1,1,0,124,4,83,0,41,
- 8,97,61,1,0,0,82,101,116,117,114,110,32,97,32,109,
- 111,100,117,108,101,32,115,112,101,99,32,98,97,115,101,100,
- 32,111,110,32,97,32,102,105,108,101,32,108,111,99,97,116,
- 105,111,110,46,10,10,32,32,32,32,84,111,32,105,110,100,
- 105,99,97,116,101,32,116,104,97,116,32,116,104,101,32,109,
- 111,100,117,108,101,32,105,115,32,97,32,112,97,99,107,97,
- 103,101,44,32,115,101,116,10,32,32,32,32,115,117,98,109,
- 111,100,117,108,101,95,115,101,97,114,99,104,95,108,111,99,
- 97,116,105,111,110,115,32,116,111,32,97,32,108,105,115,116,
- 32,111,102,32,100,105,114,101,99,116,111,114,121,32,112,97,
- 116,104,115,46,32,32,65,110,10,32,32,32,32,101,109,112,
- 116,121,32,108,105,115,116,32,105,115,32,115,117,102,102,105,
- 99,105,101,110,116,44,32,116,104,111,117,103,104,32,105,116,
- 115,32,110,111,116,32,111,116,104,101,114,119,105,115,101,32,
- 117,115,101,102,117,108,32,116,111,32,116,104,101,10,32,32,
- 32,32,105,109,112,111,114,116,32,115,121,115,116,101,109,46,
- 10,10,32,32,32,32,84,104,101,32,108,111,97,100,101,114,
- 32,109,117,115,116,32,116,97,107,101,32,97,32,115,112,101,
- 99,32,97,115,32,105,116,115,32,111,110,108,121,32,95,95,
- 105,110,105,116,95,95,40,41,32,97,114,103,46,10,10,32,
- 32,32,32,78,122,9,60,117,110,107,110,111,119,110,62,218,
- 12,103,101,116,95,102,105,108,101,110,97,109,101,169,1,218,
- 6,111,114,105,103,105,110,84,218,10,105,115,95,112,97,99,
- 107,97,103,101,114,72,0,0,0,41,17,114,128,0,0,0,
- 114,179,0,0,0,114,117,0,0,0,114,2,0,0,0,114,
- 78,0,0,0,114,134,0,0,0,218,10,77,111,100,117,108,
- 101,83,112,101,99,90,13,95,115,101,116,95,102,105,108,101,
- 97,116,116,114,218,27,95,103,101,116,95,115,117,112,112,111,
- 114,116,101,100,95,102,105,108,101,95,108,111,97,100,101,114,
- 115,114,110,0,0,0,114,111,0,0,0,114,140,0,0,0,
- 218,9,95,80,79,80,85,76,65,84,69,114,182,0,0,0,
- 114,178,0,0,0,114,46,0,0,0,218,6,97,112,112,101,
- 110,100,41,9,114,116,0,0,0,90,8,108,111,99,97,116,
- 105,111,110,114,140,0,0,0,114,178,0,0,0,218,4,115,
- 112,101,99,218,12,108,111,97,100,101,114,95,99,108,97,115,
- 115,218,8,115,117,102,102,105,120,101,115,114,182,0,0,0,
- 90,7,100,105,114,110,97,109,101,114,3,0,0,0,114,3,
- 0,0,0,114,6,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,120,2,0,0,115,62,0,0,0,0,12,8,4,4,1,
- 10,2,2,1,14,1,14,1,8,2,10,8,16,1,6,3,
- 8,1,14,1,14,1,10,1,6,1,6,2,4,3,8,2,
- 10,1,2,1,14,1,14,1,6,2,4,1,8,2,6,1,
- 12,1,6,1,12,1,12,2,114,190,0,0,0,99,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,
- 0,0,64,0,0,0,115,80,0,0,0,101,0,90,1,100,
- 0,90,2,100,1,90,3,100,2,90,4,100,3,90,5,100,
- 4,90,6,101,7,100,5,100,6,132,0,131,1,90,8,101,
- 7,100,7,100,8,132,0,131,1,90,9,101,7,100,14,100,
- 10,100,11,132,1,131,1,90,10,101,7,100,15,100,12,100,
- 13,132,1,131,1,90,11,100,9,83,0,41,16,218,21,87,
- 105,110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,
- 110,100,101,114,122,62,77,101,116,97,32,112,97,116,104,32,
- 102,105,110,100,101,114,32,102,111,114,32,109,111,100,117,108,
- 101,115,32,100,101,99,108,97,114,101,100,32,105,110,32,116,
- 104,101,32,87,105,110,100,111,119,115,32,114,101,103,105,115,
- 116,114,121,46,122,59,83,111,102,116,119,97,114,101,92,80,
- 121,116,104,111,110,92,80,121,116,104,111,110,67,111,114,101,
- 92,123,115,121,115,95,118,101,114,115,105,111,110,125,92,77,
- 111,100,117,108,101,115,92,123,102,117,108,108,110,97,109,101,
- 125,122,65,83,111,102,116,119,97,114,101,92,80,121,116,104,
- 111,110,92,80,121,116,104,111,110,67,111,114,101,92,123,115,
- 121,115,95,118,101,114,115,105,111,110,125,92,77,111,100,117,
- 108,101,115,92,123,102,117,108,108,110,97,109,101,125,92,68,
- 101,98,117,103,70,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,8,0,0,0,67,0,0,0,115,56,
- 0,0,0,122,16,116,0,160,1,116,0,106,2,124,1,161,
- 2,87,0,83,0,4,0,116,3,107,10,114,50,1,0,1,
- 0,1,0,116,0,160,1,116,0,106,4,124,1,161,2,6,
- 0,89,0,83,0,48,0,100,0,83,0,114,109,0,0,0,
- 41,5,218,7,95,119,105,110,114,101,103,90,7,79,112,101,
- 110,75,101,121,90,17,72,75,69,89,95,67,85,82,82,69,
- 78,84,95,85,83,69,82,114,49,0,0,0,90,18,72,75,
- 69,89,95,76,79,67,65,76,95,77,65,67,72,73,78,69,
- 41,2,218,3,99,108,115,114,5,0,0,0,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,218,14,95,111,112,
- 101,110,95,114,101,103,105,115,116,114,121,200,2,0,0,115,
- 8,0,0,0,0,2,2,1,16,1,14,1,122,36,87,105,
- 110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,110,
- 100,101,114,46,95,111,112,101,110,95,114,101,103,105,115,116,
- 114,121,99,2,0,0,0,0,0,0,0,0,0,0,0,6,
- 0,0,0,8,0,0,0,67,0,0,0,115,134,0,0,0,
- 124,0,106,0,114,14,124,0,106,1,125,2,110,6,124,0,
- 106,2,125,2,124,2,106,3,124,1,100,1,116,4,106,5,
- 100,0,100,2,133,2,25,0,22,0,100,3,141,2,125,3,
- 122,58,124,0,160,6,124,3,161,1,143,28,125,4,116,7,
- 160,8,124,4,100,4,161,2,125,5,87,0,100,0,4,0,
- 4,0,131,3,1,0,110,16,49,0,115,94,48,0,1,0,
- 1,0,1,0,89,0,1,0,87,0,110,22,4,0,116,9,
- 107,10,114,128,1,0,1,0,1,0,89,0,100,0,83,0,
- 48,0,124,5,83,0,41,5,78,122,5,37,100,46,37,100,
- 114,27,0,0,0,41,2,114,139,0,0,0,90,11,115,121,
- 115,95,118,101,114,115,105,111,110,114,39,0,0,0,41,10,
- 218,11,68,69,66,85,71,95,66,85,73,76,68,218,18,82,
- 69,71,73,83,84,82,89,95,75,69,89,95,68,69,66,85,
- 71,218,12,82,69,71,73,83,84,82,89,95,75,69,89,114,
- 61,0,0,0,114,8,0,0,0,218,12,118,101,114,115,105,
- 111,110,95,105,110,102,111,114,194,0,0,0,114,192,0,0,
- 0,90,10,81,117,101,114,121,86,97,108,117,101,114,49,0,
- 0,0,41,6,114,193,0,0,0,114,139,0,0,0,90,12,
- 114,101,103,105,115,116,114,121,95,107,101,121,114,5,0,0,
- 0,90,4,104,107,101,121,218,8,102,105,108,101,112,97,116,
- 104,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 218,16,95,115,101,97,114,99,104,95,114,101,103,105,115,116,
- 114,121,207,2,0,0,115,24,0,0,0,0,2,6,1,8,
- 2,6,1,6,1,16,255,6,2,2,1,12,1,46,1,14,
- 1,8,1,122,38,87,105,110,100,111,119,115,82,101,103,105,
- 115,116,114,121,70,105,110,100,101,114,46,95,115,101,97,114,
- 99,104,95,114,101,103,105,115,116,114,121,78,99,4,0,0,
- 0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,
- 0,67,0,0,0,115,122,0,0,0,124,0,160,0,124,1,
- 161,1,125,4,124,4,100,0,107,8,114,22,100,0,83,0,
- 122,12,116,1,124,4,131,1,1,0,87,0,110,22,4,0,
- 116,2,107,10,114,56,1,0,1,0,1,0,89,0,100,0,
- 83,0,48,0,116,3,131,0,68,0,93,52,92,2,125,5,
- 125,6,124,4,160,4,116,5,124,6,131,1,161,1,114,64,
- 116,6,106,7,124,1,124,5,124,1,124,4,131,2,124,4,
- 100,1,141,3,125,7,124,7,2,0,1,0,83,0,113,64,
- 100,0,83,0,41,2,78,114,180,0,0,0,41,8,114,200,
- 0,0,0,114,48,0,0,0,114,49,0,0,0,114,184,0,
- 0,0,114,110,0,0,0,114,111,0,0,0,114,134,0,0,
- 0,218,16,115,112,101,99,95,102,114,111,109,95,108,111,97,
- 100,101,114,41,8,114,193,0,0,0,114,139,0,0,0,114,
- 43,0,0,0,218,6,116,97,114,103,101,116,114,199,0,0,
- 0,114,140,0,0,0,114,189,0,0,0,114,187,0,0,0,
+ 8,0,0,0,67,0,0,0,115,48,0,0,0,122,12,116,
+ 0,124,0,131,1,125,2,87,0,110,20,4,0,116,1,121,
+ 32,1,0,1,0,1,0,89,0,100,1,83,0,48,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,48,0,0,0,218,
+ 7,79,83,69,114,114,111,114,218,7,115,116,95,109,111,100,
+ 101,41,3,114,43,0,0,0,218,4,109,111,100,101,90,9,
+ 115,116,97,116,95,105,110,102,111,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,218,18,95,112,97,116,104,95,
+ 105,115,95,109,111,100,101,95,116,121,112,101,90,0,0,0,
+ 115,10,0,0,0,0,2,2,1,12,1,12,1,8,1,114,
+ 52,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,3,0,0,0,67,0,0,0,115,10,0,
+ 0,0,116,0,124,0,100,1,131,2,83,0,41,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,52,0,0,0,114,47,0,0,0,
114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
- 9,102,105,110,100,95,115,112,101,99,222,2,0,0,115,28,
- 0,0,0,0,2,10,1,8,1,4,1,2,1,12,1,14,
- 1,8,1,14,1,14,1,6,1,8,1,2,254,6,3,122,
- 31,87,105,110,100,111,119,115,82,101,103,105,115,116,114,121,
- 70,105,110,100,101,114,46,102,105,110,100,95,115,112,101,99,
- 99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
- 0,4,0,0,0,67,0,0,0,115,34,0,0,0,124,0,
- 160,0,124,1,124,2,161,2,125,3,124,3,100,1,107,9,
- 114,26,124,3,106,1,83,0,100,1,83,0,100,1,83,0,
- 41,2,122,108,70,105,110,100,32,109,111,100,117,108,101,32,
- 110,97,109,101,100,32,105,110,32,116,104,101,32,114,101,103,
- 105,115,116,114,121,46,10,10,32,32,32,32,32,32,32,32,
- 84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,
- 101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,32,
- 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,169,2,114,203,0,0,0,114,140,0,0,0,169,4,114,
- 193,0,0,0,114,139,0,0,0,114,43,0,0,0,114,187,
- 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
- 0,0,218,11,102,105,110,100,95,109,111,100,117,108,101,238,
- 2,0,0,115,8,0,0,0,0,7,12,1,8,1,6,2,
- 122,33,87,105,110,100,111,119,115,82,101,103,105,115,116,114,
- 121,70,105,110,100,101,114,46,102,105,110,100,95,109,111,100,
- 117,108,101,41,2,78,78,41,1,78,41,12,114,125,0,0,
- 0,114,124,0,0,0,114,126,0,0,0,114,127,0,0,0,
- 114,197,0,0,0,114,196,0,0,0,114,195,0,0,0,218,
- 11,99,108,97,115,115,109,101,116,104,111,100,114,194,0,0,
- 0,114,200,0,0,0,114,203,0,0,0,114,206,0,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,191,0,0,0,188,2,0,0,115,28,0,
- 0,0,8,2,4,3,2,255,2,4,2,255,2,3,4,2,
- 2,1,10,6,2,1,10,14,2,1,12,15,2,1,114,191,
- 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,2,0,0,0,64,0,0,0,115,48,0,0,
- 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,
- 3,132,0,90,4,100,4,100,5,132,0,90,5,100,6,100,
- 7,132,0,90,6,100,8,100,9,132,0,90,7,100,10,83,
- 0,41,11,218,13,95,76,111,97,100,101,114,66,97,115,105,
- 99,115,122,83,66,97,115,101,32,99,108,97,115,115,32,111,
- 102,32,99,111,109,109,111,110,32,99,111,100,101,32,110,101,
- 101,100,101,100,32,98,121,32,98,111,116,104,32,83,111,117,
- 114,99,101,76,111,97,100,101,114,32,97,110,100,10,32,32,
- 32,32,83,111,117,114,99,101,108,101,115,115,70,105,108,101,
- 76,111,97,100,101,114,46,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,5,0,0,0,4,0,0,0,67,0,0,0,
- 115,64,0,0,0,116,0,124,0,160,1,124,1,161,1,131,
- 1,100,1,25,0,125,2,124,2,160,2,100,2,100,1,161,
- 2,100,3,25,0,125,3,124,1,160,3,100,2,161,1,100,
- 4,25,0,125,4,124,3,100,5,107,2,111,62,124,4,100,
- 5,107,3,83,0,41,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,110,103,32,105,102,10,32,32,32,32,
- 32,32,32,32,116,104,101,32,112,97,116,104,32,114,101,116,
- 117,114,110,101,100,32,98,121,32,103,101,116,95,102,105,108,
- 101,110,97,109,101,32,104,97,115,32,97,32,102,105,108,101,
- 110,97,109,101,32,111,102,32,39,95,95,105,110,105,116,95,
- 95,46,112,121,39,46,114,38,0,0,0,114,70,0,0,0,
- 114,72,0,0,0,114,27,0,0,0,218,8,95,95,105,110,
- 105,116,95,95,41,4,114,46,0,0,0,114,179,0,0,0,
- 114,42,0,0,0,114,40,0,0,0,41,5,114,118,0,0,
- 0,114,139,0,0,0,114,96,0,0,0,90,13,102,105,108,
- 101,110,97,109,101,95,98,97,115,101,90,9,116,97,105,108,
- 95,110,97,109,101,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,182,0,0,0,1,3,0,0,115,8,0,
- 0,0,0,3,18,1,16,1,14,1,122,24,95,76,111,97,
- 100,101,114,66,97,115,105,99,115,46,105,115,95,112,97,99,
- 107,97,103,101,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,
- 0,0,100,1,83,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,3,0,0,0,169,2,114,118,0,0,
- 0,114,187,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,218,13,99,114,101,97,116,101,95,109,111,
- 100,117,108,101,9,3,0,0,115,2,0,0,0,0,1,122,
- 27,95,76,111,97,100,101,114,66,97,115,105,99,115,46,99,
- 114,101,97,116,101,95,109,111,100,117,108,101,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,3,0,0,0,5,0,0,
- 0,67,0,0,0,115,56,0,0,0,124,0,160,0,124,1,
- 106,1,161,1,125,2,124,2,100,1,107,8,114,36,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,125,0,0,
- 0,114,117,0,0,0,114,61,0,0,0,114,134,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,131,0,0,0,41,3,114,118,0,0,0,218,6,109,
- 111,100,117,108,101,114,164,0,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,218,11,101,120,101,99,95,
- 109,111,100,117,108,101,12,3,0,0,115,12,0,0,0,0,
- 2,12,1,8,1,6,1,4,255,6,2,122,25,95,76,111,
- 97,100,101,114,66,97,115,105,99,115,46,101,120,101,99,95,
- 109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,115,
- 12,0,0,0,116,0,160,1,124,0,124,1,161,2,83,0,
- 41,1,122,26,84,104,105,115,32,109,111,100,117,108,101,32,
- 105,115,32,100,101,112,114,101,99,97,116,101,100,46,41,2,
- 114,134,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,118,0,0,0,114,
- 139,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,218,11,108,111,97,100,95,109,111,100,117,108,101,
- 20,3,0,0,115,2,0,0,0,0,2,122,25,95,76,111,
- 97,100,101,114,66,97,115,105,99,115,46,108,111,97,100,95,
- 109,111,100,117,108,101,78,41,8,114,125,0,0,0,114,124,
- 0,0,0,114,126,0,0,0,114,127,0,0,0,114,182,0,
- 0,0,114,212,0,0,0,114,217,0,0,0,114,220,0,0,
- 0,114,3,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,114,208,0,0,0,252,2,0,0,115,10,
- 0,0,0,8,2,4,3,8,8,8,3,8,8,114,208,0,
- 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,3,0,0,0,64,0,0,0,115,74,0,0,0,
- 101,0,90,1,100,0,90,2,100,1,100,2,132,0,90,3,
- 100,3,100,4,132,0,90,4,100,5,100,6,132,0,90,5,
- 100,7,100,8,132,0,90,6,100,9,100,10,132,0,90,7,
- 100,11,100,12,156,1,100,13,100,14,132,2,90,8,100,15,
- 100,16,132,0,90,9,100,17,83,0,41,18,218,12,83,111,
- 117,114,99,101,76,111,97,100,101,114,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
- 0,0,0,115,8,0,0,0,116,0,130,1,100,1,83,0,
- 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,49,0,0,
- 0,169,2,114,118,0,0,0,114,43,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,218,10,112,97,
- 116,104,95,109,116,105,109,101,27,3,0,0,115,2,0,0,
- 0,0,6,122,23,83,111,117,114,99,101,76,111,97,100,101,
- 114,46,112,97,116,104,95,109,116,105,109,101,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
- 0,67,0,0,0,115,14,0,0,0,100,1,124,0,160,0,
- 124,1,161,1,105,1,83,0,41,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,169,0,
- 0,0,41,1,114,223,0,0,0,114,222,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,218,10,112,
- 97,116,104,95,115,116,97,116,115,35,3,0,0,115,2,0,
- 0,0,0,12,122,23,83,111,117,114,99,101,76,111,97,100,
- 101,114,46,112,97,116,104,95,115,116,97,116,115,99,4,0,
+ 12,95,112,97,116,104,95,105,115,102,105,108,101,99,0,0,
+ 0,115,2,0,0,0,0,2,114,53,0,0,0,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,
+ 0,0,67,0,0,0,115,22,0,0,0,124,0,115,12,116,
+ 0,160,1,161,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,105,115,100,
+ 105,114,46,105,0,64,0,0,41,3,114,2,0,0,0,218,
+ 6,103,101,116,99,119,100,114,52,0,0,0,114,47,0,0,
+ 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
+ 218,11,95,112,97,116,104,95,105,115,100,105,114,104,0,0,
+ 0,115,6,0,0,0,0,2,4,1,8,1,114,55,0,0,
+ 0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
+ 0,0,3,0,0,0,67,0,0,0,115,26,0,0,0,124,
+ 0,160,0,116,1,161,1,112,24,124,0,100,1,100,2,133,
+ 2,25,0,116,2,118,0,83,0,41,3,122,142,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,10,10,32,32,32,
+ 32,67,111,110,115,105,100,101,114,115,32,97,32,87,105,110,
+ 100,111,119,115,32,100,114,105,118,101,45,114,101,108,97,116,
+ 105,118,101,32,112,97,116,104,32,40,110,111,32,100,114,105,
+ 118,101,44,32,98,117,116,32,115,116,97,114,116,115,32,119,
+ 105,116,104,32,115,108,97,115,104,41,32,116,111,10,32,32,
+ 32,32,115,116,105,108,108,32,98,101,32,34,97,98,115,111,
+ 108,117,116,101,34,46,10,32,32,32,32,114,38,0,0,0,
+ 233,3,0,0,0,41,3,114,10,0,0,0,114,30,0,0,
+ 0,218,20,95,112,97,116,104,115,101,112,115,95,119,105,116,
+ 104,95,99,111,108,111,110,114,47,0,0,0,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,218,11,95,112,97,
+ 116,104,95,105,115,97,98,115,111,0,0,0,115,2,0,0,
+ 0,0,6,114,58,0,0,0,233,182,1,0,0,99,3,0,
+ 0,0,0,0,0,0,0,0,0,0,6,0,0,0,11,0,
+ 0,0,67,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,160,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,161,3,125,4,122,70,116,7,160,
+ 8,124,4,100,3,161,2,143,26,125,5,124,5,160,9,124,
+ 1,161,1,1,0,87,0,100,4,4,0,4,0,131,3,1,
+ 0,110,16,49,0,115,94,48,0,1,0,1,0,1,0,89,
+ 0,1,0,116,2,160,10,124,3,124,0,161,2,1,0,87,
+ 0,110,54,4,0,116,11,121,172,1,0,1,0,1,0,122,
+ 14,116,2,160,12,124,3,161,1,1,0,87,0,110,18,4,
+ 0,116,11,121,164,1,0,1,0,1,0,89,0,110,2,48,
+ 0,130,0,89,0,110,2,48,0,100,4,83,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,59,0,0,0,90,
+ 2,119,98,78,41,13,218,6,102,111,114,109,97,116,218,2,
+ 105,100,114,2,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,218,7,114,101,
+ 112,108,97,99,101,114,49,0,0,0,90,6,117,110,108,105,
+ 110,107,41,6,114,43,0,0,0,114,25,0,0,0,114,51,
+ 0,0,0,90,8,112,97,116,104,95,116,109,112,90,2,102,
+ 100,218,4,102,105,108,101,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,218,13,95,119,114,105,116,101,95,97,
+ 116,111,109,105,99,120,0,0,0,115,30,0,0,0,0,5,
+ 16,1,6,1,16,0,6,255,4,2,2,3,14,1,40,1,
+ 16,1,12,1,2,1,14,1,12,1,6,1,114,68,0,0,
+ 0,105,95,13,0,0,114,27,0,0,0,114,16,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,99,78,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,12,0,0,0,5,0,0,0,67,0,0,0,115,
+ 88,1,0,0,124,1,100,1,117,1,114,52,116,0,160,1,
+ 100,2,116,2,161,2,1,0,124,2,100,1,117,1,114,40,
+ 100,3,125,3,116,3,124,3,131,1,130,1,124,1,114,48,
+ 100,4,110,2,100,5,125,2,116,4,160,5,124,0,161,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,114,116,11,
+ 100,7,131,1,130,1,100,4,160,12,124,6,114,126,124,6,
+ 110,2,124,8,124,7,124,9,103,3,161,1,125,10,124,2,
+ 100,1,117,0,114,172,116,8,106,13,106,14,100,8,107,2,
+ 114,164,100,4,125,2,110,8,116,8,106,13,106,14,125,2,
+ 116,15,124,2,131,1,125,2,124,2,100,4,107,3,114,224,
+ 124,2,160,16,161,0,115,210,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,144,1,114,76,116,22,124,4,
+ 131,1,144,1,115,16,116,23,116,4,160,24,161,0,124,4,
+ 131,2,125,4,124,4,100,5,25,0,100,11,107,2,144,1,
+ 114,56,124,4,100,8,25,0,116,25,118,1,144,1,114,56,
+ 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,39,
+ 0,0,0,114,38,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,233,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,250,1,58,114,27,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,2,0,0,0,218,6,102,115,112,97,116,104,
+ 114,46,0,0,0,114,40,0,0,0,114,8,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,
+ 35,0,0,0,218,5,102,108,97,103,115,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,
+ 61,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,58,0,
+ 0,0,114,37,0,0,0,114,54,0,0,0,114,30,0,0,
+ 0,218,6,108,115,116,114,105,112,218,8,95,80,89,67,65,
+ 67,72,69,41,12,114,43,0,0,0,90,14,100,101,98,117,
+ 103,95,111,118,101,114,114,105,100,101,114,69,0,0,0,218,
+ 7,109,101,115,115,97,103,101,218,4,104,101,97,100,114,45,
+ 0,0,0,90,4,98,97,115,101,218,3,115,101,112,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,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,218,17,99,97,99,104,101,95,102,114,111,109,95,
+ 115,111,117,114,99,101,42,1,0,0,115,72,0,0,0,0,
+ 18,8,1,6,1,2,255,4,2,8,1,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,2,8,1,8,1,8,1,8,1,14,1,14,
+ 1,12,1,12,9,10,1,14,5,28,1,12,4,2,1,4,
+ 1,8,1,2,253,4,5,114,97,0,0,0,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,10,0,0,0,5,0,0,
+ 0,67,0,0,0,115,46,1,0,0,116,0,106,1,106,2,
+ 100,1,117,0,114,20,116,3,100,2,131,1,130,1,116,4,
+ 160,5,124,0,161,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,102,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,102,124,1,116,12,
+ 124,4,131,1,100,1,133,2,25,0,125,1,100,4,125,3,
+ 124,3,115,144,116,6,124,1,131,1,92,2,125,1,125,5,
+ 124,5,116,13,107,3,114,144,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,178,116,14,100,8,
+ 124,2,155,2,157,2,131,1,130,1,110,92,124,6,100,9,
+ 107,2,144,1,114,14,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,228,
+ 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,144,1,115,14,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,71,
+ 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,70,0,0,0,62,2,0,0,0,
+ 114,27,0,0,0,114,56,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,56,0,0,0,114,27,
+ 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,72,0,0,0,41,22,114,8,0,0,0,114,
+ 79,0,0,0,114,80,0,0,0,114,81,0,0,0,114,2,
+ 0,0,0,114,78,0,0,0,114,46,0,0,0,114,89,0,
+ 0,0,114,29,0,0,0,114,30,0,0,0,114,10,0,0,
+ 0,114,34,0,0,0,114,22,0,0,0,114,91,0,0,0,
+ 114,86,0,0,0,218,5,99,111,117,110,116,114,42,0,0,
+ 0,114,87,0,0,0,114,85,0,0,0,218,9,112,97,114,
+ 116,105,116,105,111,110,114,37,0,0,0,218,15,83,79,85,
+ 82,67,69,95,83,85,70,70,73,88,69,83,41,10,114,43,
+ 0,0,0,114,93,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,69,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,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,218,17,115,111,117,114,99,101,95,102,114,111,
+ 109,95,99,97,99,104,101,113,1,0,0,115,52,0,0,0,
+ 0,9,12,1,8,1,10,1,12,1,4,1,10,1,12,1,
+ 14,1,16,1,4,1,4,1,12,1,8,1,18,2,10,1,
+ 8,1,16,1,10,1,16,1,10,1,14,2,16,1,10,1,
+ 16,2,14,1,114,102,0,0,0,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,5,0,0,0,9,0,0,0,67,0,
+ 0,0,115,124,0,0,0,116,0,124,0,131,1,100,1,107,
+ 2,114,16,100,2,83,0,124,0,160,1,100,3,161,1,92,
+ 3,125,1,125,2,125,3,124,1,114,56,124,3,160,2,161,
+ 0,100,4,100,5,133,2,25,0,100,6,107,3,114,60,124,
+ 0,83,0,122,12,116,3,124,0,131,1,125,4,87,0,110,
+ 34,4,0,116,4,116,5,102,2,121,106,1,0,1,0,1,
+ 0,124,0,100,2,100,5,133,2,25,0,125,4,89,0,110,
+ 2,48,0,116,6,124,4,131,1,114,120,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,72,0,0,0,78,114,70,0,0,0,233,253,
+ 255,255,255,233,255,255,255,255,90,2,112,121,41,7,114,22,
+ 0,0,0,114,40,0,0,0,218,5,108,111,119,101,114,114,
+ 102,0,0,0,114,81,0,0,0,114,86,0,0,0,114,53,
+ 0,0,0,41,5,218,13,98,121,116,101,99,111,100,101,95,
+ 112,97,116,104,114,95,0,0,0,114,44,0,0,0,90,9,
+ 101,120,116,101,110,115,105,111,110,218,11,115,111,117,114,99,
+ 101,95,112,97,116,104,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,218,15,95,103,101,116,95,115,111,117,114,
+ 99,101,102,105,108,101,153,1,0,0,115,20,0,0,0,0,
+ 7,12,1,4,1,16,1,24,1,4,1,2,1,12,1,16,
+ 1,18,1,114,108,0,0,0,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,1,0,0,0,8,0,0,0,67,0,0,
+ 0,115,72,0,0,0,124,0,160,0,116,1,116,2,131,1,
+ 161,1,114,46,122,10,116,3,124,0,131,1,87,0,83,0,
+ 4,0,116,4,121,42,1,0,1,0,1,0,89,0,113,68,
+ 48,0,110,22,124,0,160,0,116,1,116,5,131,1,161,1,
+ 114,64,124,0,83,0,100,0,83,0,100,0,83,0,169,1,
+ 78,41,6,218,8,101,110,100,115,119,105,116,104,218,5,116,
+ 117,112,108,101,114,101,0,0,0,114,97,0,0,0,114,81,
+ 0,0,0,114,88,0,0,0,41,1,114,96,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,11,
+ 95,103,101,116,95,99,97,99,104,101,100,172,1,0,0,115,
+ 16,0,0,0,0,1,14,1,2,1,10,1,12,1,8,1,
+ 14,1,4,2,114,112,0,0,0,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,2,0,0,0,8,0,0,0,67,0,
+ 0,0,115,50,0,0,0,122,14,116,0,124,0,131,1,106,
+ 1,125,1,87,0,110,22,4,0,116,2,121,36,1,0,1,
+ 0,1,0,100,1,125,1,89,0,110,2,48,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,59,0,0,0,233,128,0,0,0,41,3,114,48,0,0,
+ 0,114,50,0,0,0,114,49,0,0,0,41,2,114,43,0,
+ 0,0,114,51,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,218,10,95,99,97,108,99,95,109,111,
+ 100,101,184,1,0,0,115,12,0,0,0,0,2,2,1,14,
+ 1,12,1,10,3,8,1,114,114,0,0,0,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,0,
+ 0,3,0,0,0,115,66,0,0,0,100,6,135,0,102,1,
+ 100,2,100,3,132,9,125,1,122,10,116,0,106,1,125,2,
+ 87,0,110,26,4,0,116,2,121,50,1,0,1,0,1,0,
+ 100,4,100,5,132,0,125,2,89,0,110,2,48,0,124,2,
+ 124,1,136,0,131,2,1,0,124,1,83,0,41,7,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,4,0,0,0,4,0,
- 0,0,67,0,0,0,115,12,0,0,0,124,0,160,0,124,
- 2,124,3,161,2,83,0,41,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,118,0,
- 0,0,114,107,0,0,0,90,10,99,97,99,104,101,95,112,
- 97,116,104,114,25,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,218,15,95,99,97,99,104,101,95,
- 98,121,116,101,99,111,100,101,49,3,0,0,115,2,0,0,
- 0,0,8,122,28,83,111,117,114,99,101,76,111,97,100,101,
- 114,46,95,99,97,99,104,101,95,98,121,116,101,99,111,100,
- 101,99,3,0,0,0,0,0,0,0,0,0,0,0,3,0,
- 0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,
- 1,83,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,
+ 0,0,31,0,0,0,115,66,0,0,0,124,1,100,0,117,
+ 0,114,16,124,0,106,0,125,1,110,32,124,0,106,0,124,
+ 1,107,3,114,48,116,1,100,1,124,0,106,0,124,1,102,
+ 2,22,0,124,1,100,2,141,2,130,1,136,0,124,0,124,
+ 1,102,2,124,2,158,2,124,3,142,1,83,0,41,3,78,
+ 122,30,108,111,97,100,101,114,32,102,111,114,32,37,115,32,
+ 99,97,110,110,111,116,32,104,97,110,100,108,101,32,37,115,
+ 169,1,218,4,110,97,109,101,41,2,114,116,0,0,0,218,
+ 11,73,109,112,111,114,116,69,114,114,111,114,41,4,218,4,
+ 115,101,108,102,114,116,0,0,0,218,4,97,114,103,115,218,
+ 6,107,119,97,114,103,115,169,1,218,6,109,101,116,104,111,
+ 100,114,3,0,0,0,114,6,0,0,0,218,19,95,99,104,
+ 101,99,107,95,110,97,109,101,95,119,114,97,112,112,101,114,
+ 204,1,0,0,115,18,0,0,0,0,1,8,1,8,1,10,
+ 1,4,1,8,255,2,1,2,255,6,2,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,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,3,0,0,0,7,0,0,0,83,0,0,0,115,56,
+ 0,0,0,100,1,68,0,93,32,125,2,116,0,124,1,124,
+ 2,131,2,114,4,116,1,124,0,124,2,116,2,124,1,124,
+ 2,131,2,131,3,1,0,113,4,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,66,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,218,5,95,119,
+ 114,97,112,215,1,0,0,115,8,0,0,0,0,1,8,1,
+ 10,1,20,1,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,
+ 41,1,78,41,3,218,10,95,98,111,111,116,115,116,114,97,
+ 112,114,133,0,0,0,218,9,78,97,109,101,69,114,114,111,
+ 114,41,3,114,122,0,0,0,114,123,0,0,0,114,133,0,
+ 0,0,114,3,0,0,0,114,121,0,0,0,114,6,0,0,
+ 0,218,11,95,99,104,101,99,107,95,110,97,109,101,196,1,
+ 0,0,115,14,0,0,0,0,8,14,7,2,1,10,1,12,
+ 2,14,5,10,1,114,136,0,0,0,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,67,
+ 0,0,0,115,60,0,0,0,124,0,160,0,124,1,161,1,
+ 92,2,125,2,125,3,124,2,100,1,117,0,114,56,116,1,
+ 124,3,131,1,114,56,100,2,125,4,116,2,160,3,124,4,
+ 160,4,124,3,100,3,25,0,161,1,116,5,161,2,1,0,
+ 124,2,83,0,41,4,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,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,72,0,0,0,41,6,218,11,102,105,110,100,95,
+ 108,111,97,100,101,114,114,22,0,0,0,114,74,0,0,0,
+ 114,75,0,0,0,114,61,0,0,0,218,13,73,109,112,111,
+ 114,116,87,97,114,110,105,110,103,41,5,114,118,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,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
+ 218,17,95,102,105,110,100,95,109,111,100,117,108,101,95,115,
+ 104,105,109,224,1,0,0,115,10,0,0,0,0,10,14,1,
+ 16,1,4,1,22,1,114,143,0,0,0,99,3,0,0,0,
+ 0,0,0,0,0,0,0,0,6,0,0,0,4,0,0,0,
+ 67,0,0,0,115,158,0,0,0,124,0,100,1,100,2,133,
+ 2,25,0,125,3,124,3,116,0,107,3,114,60,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,124,
+ 2,142,1,130,1,116,4,124,0,131,1,100,6,107,0,114,
+ 102,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,154,100,10,124,5,155,2,100,11,124,
+ 1,155,2,157,4,125,4,116,3,124,4,102,1,124,2,142,
+ 1,130,1,124,5,83,0,41,12,97,84,2,0,0,80,101,
+ 114,102,111,114,109,32,98,97,115,105,99,32,118,97,108,105,
+ 100,105,116,121,32,99,104,101,99,107,105,110,103,32,111,102,
+ 32,97,32,112,121,99,32,104,101,97,100,101,114,32,97,110,
+ 100,32,114,101,116,117,114,110,32,116,104,101,32,102,108,97,
+ 103,115,32,102,105,101,108,100,44,10,32,32,32,32,119,104,
+ 105,99,104,32,100,101,116,101,114,109,105,110,101,115,32,104,
+ 111,119,32,116,104,101,32,112,121,99,32,115,104,111,117,108,
+ 100,32,98,101,32,102,117,114,116,104,101,114,32,118,97,108,
+ 105,100,97,116,101,100,32,97,103,97,105,110,115,116,32,116,
+ 104,101,32,115,111,117,114,99,101,46,10,10,32,32,32,32,
+ 42,100,97,116,97,42,32,105,115,32,116,104,101,32,99,111,
+ 110,116,101,110,116,115,32,111,102,32,116,104,101,32,112,121,
+ 99,32,102,105,108,101,46,32,40,79,110,108,121,32,116,104,
+ 101,32,102,105,114,115,116,32,49,54,32,98,121,116,101,115,
+ 32,97,114,101,10,32,32,32,32,114,101,113,117,105,114,101,
+ 100,44,32,116,104,111,117,103,104,46,41,10,10,32,32,32,
+ 32,42,110,97,109,101,42,32,105,115,32,116,104,101,32,110,
+ 97,109,101,32,111,102,32,116,104,101,32,109,111,100,117,108,
+ 101,32,98,101,105,110,103,32,105,109,112,111,114,116,101,100,
+ 46,32,73,116,32,105,115,32,117,115,101,100,32,102,111,114,
+ 32,108,111,103,103,105,110,103,46,10,10,32,32,32,32,42,
+ 101,120,99,95,100,101,116,97,105,108,115,42,32,105,115,32,
+ 97,32,100,105,99,116,105,111,110,97,114,121,32,112,97,115,
+ 115,101,100,32,116,111,32,73,109,112,111,114,116,69,114,114,
+ 111,114,32,105,102,32,105,116,32,114,97,105,115,101,100,32,
+ 102,111,114,10,32,32,32,32,105,109,112,114,111,118,101,100,
+ 32,100,101,98,117,103,103,105,110,103,46,10,10,32,32,32,
+ 32,73,109,112,111,114,116,69,114,114,111,114,32,105,115,32,
+ 114,97,105,115,101,100,32,119,104,101,110,32,116,104,101,32,
+ 109,97,103,105,99,32,110,117,109,98,101,114,32,105,115,32,
+ 105,110,99,111,114,114,101,99,116,32,111,114,32,119,104,101,
+ 110,32,116,104,101,32,102,108,97,103,115,10,32,32,32,32,
+ 102,105,101,108,100,32,105,115,32,105,110,118,97,108,105,100,
+ 46,32,69,79,70,69,114,114,111,114,32,105,115,32,114,97,
+ 105,115,101,100,32,119,104,101,110,32,116,104,101,32,100,97,
+ 116,97,32,105,115,32,102,111,117,110,100,32,116,111,32,98,
+ 101,32,116,114,117,110,99,97,116,101,100,46,10,10,32,32,
+ 32,32,78,114,15,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,134,0,0,0,218,16,95,118,101,114,
+ 98,111,115,101,95,109,101,115,115,97,103,101,114,117,0,0,
+ 0,114,22,0,0,0,218,8,69,79,70,69,114,114,111,114,
+ 114,26,0,0,0,41,6,114,25,0,0,0,114,116,0,0,
+ 0,218,11,101,120,99,95,100,101,116,97,105,108,115,90,5,
+ 109,97,103,105,99,114,92,0,0,0,114,82,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,13,
+ 95,99,108,97,115,115,105,102,121,95,112,121,99,241,1,0,
+ 0,115,28,0,0,0,0,16,12,1,8,1,16,1,12,1,
+ 12,1,12,1,10,1,12,1,8,1,16,2,8,1,16,1,
+ 12,1,114,152,0,0,0,99,5,0,0,0,0,0,0,0,
+ 0,0,0,0,6,0,0,0,4,0,0,0,67,0,0,0,
+ 115,112,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,58,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,124,4,142,1,130,1,124,
+ 2,100,6,117,1,114,108,116,0,124,0,100,2,100,7,133,
+ 2,25,0,131,1,124,2,100,3,64,0,107,3,114,108,116,
+ 3,100,4,124,3,155,2,157,2,102,1,124,4,142,1,130,
+ 1,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,146,0,0,0,233,12,0,0,0,114,14,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,144,0,0,0,78,
+ 114,145,0,0,0,41,4,114,26,0,0,0,114,134,0,0,
+ 0,114,149,0,0,0,114,117,0,0,0,41,6,114,25,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,116,0,
+ 0,0,114,151,0,0,0,114,92,0,0,0,114,3,0,0,
+ 0,114,3,0,0,0,114,6,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,18,2,0,0,115,16,0,0,0,0,19,24,
+ 1,10,1,12,1,12,1,8,1,22,255,2,2,114,156,0,
+ 0,0,99,4,0,0,0,0,0,0,0,0,0,0,0,4,
+ 0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,
+ 124,0,100,1,100,2,133,2,25,0,124,1,107,3,114,34,
+ 116,0,100,3,124,2,155,2,157,2,102,1,124,3,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,146,0,0,0,114,145,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,117,0,
+ 0,0,41,4,114,25,0,0,0,218,11,115,111,117,114,99,
+ 101,95,104,97,115,104,114,116,0,0,0,114,151,0,0,0,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
+ 18,95,118,97,108,105,100,97,116,101,95,104,97,115,104,95,
+ 112,121,99,46,2,0,0,115,12,0,0,0,0,17,16,1,
+ 2,1,8,255,2,2,2,254,114,158,0,0,0,99,4,0,
+ 0,0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,
+ 0,0,67,0,0,0,115,80,0,0,0,116,0,160,1,124,
+ 0,161,1,125,4,116,2,124,4,116,3,131,2,114,56,116,
+ 4,160,5,100,1,124,2,161,2,1,0,124,3,100,2,117,
+ 1,114,52,116,6,160,7,124,4,124,3,161,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,100,2,83,0,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,116,0,0,0,114,43,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,134,0,0,0,114,149,
+ 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,117,0,0,0,
+ 114,61,0,0,0,41,5,114,25,0,0,0,114,116,0,0,
+ 0,114,106,0,0,0,114,107,0,0,0,218,4,99,111,100,
+ 101,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
+ 218,17,95,99,111,109,112,105,108,101,95,98,121,116,101,99,
+ 111,100,101,70,2,0,0,115,20,0,0,0,0,2,10,1,
+ 10,1,12,1,8,1,12,1,4,2,10,1,2,0,2,255,
+ 114,165,0,0,0,114,72,0,0,0,99,3,0,0,0,0,
+ 0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,67,
+ 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,
+ 160,5,124,0,161,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,72,0,
+ 0,0,41,6,218,9,98,121,116,101,97,114,114,97,121,114,
+ 148,0,0,0,218,6,101,120,116,101,110,100,114,20,0,0,
+ 0,114,160,0,0,0,218,5,100,117,109,112,115,41,4,114,
+ 164,0,0,0,218,5,109,116,105,109,101,114,155,0,0,0,
+ 114,25,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,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,83,2,0,0,
+ 115,12,0,0,0,0,2,8,1,14,1,14,1,14,1,16,
+ 1,114,170,0,0,0,84,99,3,0,0,0,0,0,0,0,
+ 0,0,0,0,5,0,0,0,5,0,0,0,67,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,50,74,0,130,1,124,3,160,2,124,1,161,1,1,
+ 0,124,3,160,2,116,5,160,6,124,0,161,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,
+ 38,0,0,0,114,146,0,0,0,41,7,114,166,0,0,0,
+ 114,148,0,0,0,114,167,0,0,0,114,20,0,0,0,114,
+ 22,0,0,0,114,160,0,0,0,114,168,0,0,0,41,5,
+ 114,164,0,0,0,114,157,0,0,0,90,7,99,104,101,99,
+ 107,101,100,114,25,0,0,0,114,82,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,218,17,95,99,
+ 111,100,101,95,116,111,95,104,97,115,104,95,112,121,99,93,
+ 2,0,0,115,14,0,0,0,0,2,8,1,12,1,14,1,
+ 16,1,10,1,16,1,114,171,0,0,0,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,
+ 67,0,0,0,115,62,0,0,0,100,1,100,2,108,0,125,
+ 1,116,1,160,2,124,0,161,1,106,3,125,2,124,1,160,
+ 4,124,2,161,1,125,3,116,1,160,5,100,2,100,3,161,
+ 2,125,4,124,4,160,6,124,0,160,6,124,3,100,1,25,
+ 0,161,1,161,1,83,0,41,4,122,121,68,101,99,111,100,
+ 101,32,98,121,116,101,115,32,114,101,112,114,101,115,101,110,
+ 116,105,110,103,32,115,111,117,114,99,101,32,99,111,100,101,
+ 32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,
+ 115,116,114,105,110,103,46,10,10,32,32,32,32,85,110,105,
+ 118,101,114,115,97,108,32,110,101,119,108,105,110,101,32,115,
+ 117,112,112,111,114,116,32,105,115,32,117,115,101,100,32,105,
+ 110,32,116,104,101,32,100,101,99,111,100,105,110,103,46,10,
+ 32,32,32,32,114,72,0,0,0,78,84,41,7,218,8,116,
+ 111,107,101,110,105,122,101,114,63,0,0,0,90,7,66,121,
+ 116,101,115,73,79,90,8,114,101,97,100,108,105,110,101,90,
+ 15,100,101,116,101,99,116,95,101,110,99,111,100,105,110,103,
+ 90,25,73,110,99,114,101,109,101,110,116,97,108,78,101,119,
+ 108,105,110,101,68,101,99,111,100,101,114,218,6,100,101,99,
+ 111,100,101,41,5,218,12,115,111,117,114,99,101,95,98,121,
+ 116,101,115,114,172,0,0,0,90,21,115,111,117,114,99,101,
+ 95,98,121,116,101,115,95,114,101,97,100,108,105,110,101,218,
+ 8,101,110,99,111,100,105,110,103,90,15,110,101,119,108,105,
+ 110,101,95,100,101,99,111,100,101,114,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,218,13,100,101,99,111,100,
+ 101,95,115,111,117,114,99,101,104,2,0,0,115,10,0,0,
+ 0,0,5,8,1,12,1,10,1,12,1,114,176,0,0,0,
+ 169,2,114,140,0,0,0,218,26,115,117,98,109,111,100,117,
+ 108,101,95,115,101,97,114,99,104,95,108,111,99,97,116,105,
+ 111,110,115,99,2,0,0,0,0,0,0,0,2,0,0,0,
+ 9,0,0,0,8,0,0,0,67,0,0,0,115,12,1,0,
+ 0,124,1,100,1,117,0,114,58,100,2,125,1,116,0,124,
+ 2,100,3,131,2,114,68,122,14,124,2,160,1,124,0,161,
+ 1,125,1,87,0,113,68,4,0,116,2,121,54,1,0,1,
+ 0,1,0,89,0,113,68,48,0,110,10,116,3,160,4,124,
+ 1,161,1,125,1,116,5,106,6,124,0,124,2,124,1,100,
+ 4,141,3,125,4,100,5,124,4,95,7,124,2,100,1,117,
+ 0,114,152,116,8,131,0,68,0,93,42,92,2,125,5,125,
+ 6,124,1,160,9,116,10,124,6,131,1,161,1,114,104,124,
+ 5,124,0,124,1,131,2,125,2,124,2,124,4,95,11,1,
+ 0,113,152,113,104,100,1,83,0,124,3,116,12,117,0,114,
+ 216,116,0,124,2,100,6,131,2,114,222,122,14,124,2,160,
+ 13,124,0,161,1,125,7,87,0,110,18,4,0,116,2,121,
+ 202,1,0,1,0,1,0,89,0,113,222,48,0,124,7,114,
+ 222,103,0,124,4,95,14,110,6,124,3,124,4,95,14,124,
+ 4,106,14,103,0,107,2,144,1,114,8,124,1,144,1,114,
+ 8,116,15,124,1,131,1,100,7,25,0,125,8,124,4,106,
+ 14,160,16,124,8,161,1,1,0,124,4,83,0,41,8,97,
+ 61,1,0,0,82,101,116,117,114,110,32,97,32,109,111,100,
+ 117,108,101,32,115,112,101,99,32,98,97,115,101,100,32,111,
+ 110,32,97,32,102,105,108,101,32,108,111,99,97,116,105,111,
+ 110,46,10,10,32,32,32,32,84,111,32,105,110,100,105,99,
+ 97,116,101,32,116,104,97,116,32,116,104,101,32,109,111,100,
+ 117,108,101,32,105,115,32,97,32,112,97,99,107,97,103,101,
+ 44,32,115,101,116,10,32,32,32,32,115,117,98,109,111,100,
+ 117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,116,
+ 105,111,110,115,32,116,111,32,97,32,108,105,115,116,32,111,
+ 102,32,100,105,114,101,99,116,111,114,121,32,112,97,116,104,
+ 115,46,32,32,65,110,10,32,32,32,32,101,109,112,116,121,
+ 32,108,105,115,116,32,105,115,32,115,117,102,102,105,99,105,
+ 101,110,116,44,32,116,104,111,117,103,104,32,105,116,115,32,
+ 110,111,116,32,111,116,104,101,114,119,105,115,101,32,117,115,
+ 101,102,117,108,32,116,111,32,116,104,101,10,32,32,32,32,
+ 105,109,112,111,114,116,32,115,121,115,116,101,109,46,10,10,
+ 32,32,32,32,84,104,101,32,108,111,97,100,101,114,32,109,
+ 117,115,116,32,116,97,107,101,32,97,32,115,112,101,99,32,
+ 97,115,32,105,116,115,32,111,110,108,121,32,95,95,105,110,
+ 105,116,95,95,40,41,32,97,114,103,46,10,10,32,32,32,
+ 32,78,122,9,60,117,110,107,110,111,119,110,62,218,12,103,
+ 101,116,95,102,105,108,101,110,97,109,101,169,1,218,6,111,
+ 114,105,103,105,110,84,218,10,105,115,95,112,97,99,107,97,
+ 103,101,114,72,0,0,0,41,17,114,128,0,0,0,114,179,
+ 0,0,0,114,117,0,0,0,114,2,0,0,0,114,78,0,
+ 0,0,114,134,0,0,0,218,10,77,111,100,117,108,101,83,
+ 112,101,99,90,13,95,115,101,116,95,102,105,108,101,97,116,
+ 116,114,218,27,95,103,101,116,95,115,117,112,112,111,114,116,
+ 101,100,95,102,105,108,101,95,108,111,97,100,101,114,115,114,
+ 110,0,0,0,114,111,0,0,0,114,140,0,0,0,218,9,
+ 95,80,79,80,85,76,65,84,69,114,182,0,0,0,114,178,
+ 0,0,0,114,46,0,0,0,218,6,97,112,112,101,110,100,
+ 41,9,114,116,0,0,0,90,8,108,111,99,97,116,105,111,
+ 110,114,140,0,0,0,114,178,0,0,0,218,4,115,112,101,
+ 99,218,12,108,111,97,100,101,114,95,99,108,97,115,115,218,
+ 8,115,117,102,102,105,120,101,115,114,182,0,0,0,90,7,
+ 100,105,114,110,97,109,101,114,3,0,0,0,114,3,0,0,
+ 0,114,6,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,121,
+ 2,0,0,115,62,0,0,0,0,12,8,4,4,1,10,2,
+ 2,1,14,1,12,1,8,2,10,8,16,1,6,3,8,1,
+ 14,1,14,1,10,1,6,1,6,2,4,3,8,2,10,1,
+ 2,1,14,1,12,1,6,2,4,1,8,2,6,1,12,1,
+ 6,1,12,1,12,2,114,190,0,0,0,99,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
+ 64,0,0,0,115,80,0,0,0,101,0,90,1,100,0,90,
+ 2,100,1,90,3,100,2,90,4,100,3,90,5,100,4,90,
+ 6,101,7,100,5,100,6,132,0,131,1,90,8,101,7,100,
+ 7,100,8,132,0,131,1,90,9,101,7,100,14,100,10,100,
+ 11,132,1,131,1,90,10,101,7,100,15,100,12,100,13,132,
+ 1,131,1,90,11,100,9,83,0,41,16,218,21,87,105,110,
+ 100,111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,
+ 101,114,122,62,77,101,116,97,32,112,97,116,104,32,102,105,
+ 110,100,101,114,32,102,111,114,32,109,111,100,117,108,101,115,
+ 32,100,101,99,108,97,114,101,100,32,105,110,32,116,104,101,
+ 32,87,105,110,100,111,119,115,32,114,101,103,105,115,116,114,
+ 121,46,122,59,83,111,102,116,119,97,114,101,92,80,121,116,
+ 104,111,110,92,80,121,116,104,111,110,67,111,114,101,92,123,
+ 115,121,115,95,118,101,114,115,105,111,110,125,92,77,111,100,
+ 117,108,101,115,92,123,102,117,108,108,110,97,109,101,125,122,
+ 65,83,111,102,116,119,97,114,101,92,80,121,116,104,111,110,
+ 92,80,121,116,104,111,110,67,111,114,101,92,123,115,121,115,
+ 95,118,101,114,115,105,111,110,125,92,77,111,100,117,108,101,
+ 115,92,123,102,117,108,108,110,97,109,101,125,92,68,101,98,
+ 117,103,70,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,8,0,0,0,67,0,0,0,115,54,0,0,
+ 0,122,16,116,0,160,1,116,0,106,2,124,1,161,2,87,
+ 0,83,0,4,0,116,3,121,48,1,0,1,0,1,0,116,
+ 0,160,1,116,0,106,4,124,1,161,2,6,0,89,0,83,
+ 0,48,0,100,0,83,0,114,109,0,0,0,41,5,218,7,
+ 95,119,105,110,114,101,103,90,7,79,112,101,110,75,101,121,
+ 90,17,72,75,69,89,95,67,85,82,82,69,78,84,95,85,
+ 83,69,82,114,49,0,0,0,90,18,72,75,69,89,95,76,
+ 79,67,65,76,95,77,65,67,72,73,78,69,41,2,218,3,
+ 99,108,115,114,5,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,218,14,95,111,112,101,110,95,114,
+ 101,103,105,115,116,114,121,201,2,0,0,115,8,0,0,0,
+ 0,2,2,1,16,1,12,1,122,36,87,105,110,100,111,119,
+ 115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,
+ 95,111,112,101,110,95,114,101,103,105,115,116,114,121,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,
+ 0,0,0,67,0,0,0,115,132,0,0,0,124,0,106,0,
+ 114,14,124,0,106,1,125,2,110,6,124,0,106,2,125,2,
+ 124,2,106,3,124,1,100,1,116,4,106,5,100,0,100,2,
+ 133,2,25,0,22,0,100,3,141,2,125,3,122,58,124,0,
+ 160,6,124,3,161,1,143,28,125,4,116,7,160,8,124,4,
+ 100,4,161,2,125,5,87,0,100,0,4,0,4,0,131,3,
+ 1,0,110,16,49,0,115,94,48,0,1,0,1,0,1,0,
+ 89,0,1,0,87,0,110,20,4,0,116,9,121,126,1,0,
+ 1,0,1,0,89,0,100,0,83,0,48,0,124,5,83,0,
+ 41,5,78,122,5,37,100,46,37,100,114,27,0,0,0,41,
+ 2,114,139,0,0,0,90,11,115,121,115,95,118,101,114,115,
+ 105,111,110,114,39,0,0,0,41,10,218,11,68,69,66,85,
+ 71,95,66,85,73,76,68,218,18,82,69,71,73,83,84,82,
+ 89,95,75,69,89,95,68,69,66,85,71,218,12,82,69,71,
+ 73,83,84,82,89,95,75,69,89,114,61,0,0,0,114,8,
+ 0,0,0,218,12,118,101,114,115,105,111,110,95,105,110,102,
+ 111,114,194,0,0,0,114,192,0,0,0,90,10,81,117,101,
+ 114,121,86,97,108,117,101,114,49,0,0,0,41,6,114,193,
+ 0,0,0,114,139,0,0,0,90,12,114,101,103,105,115,116,
+ 114,121,95,107,101,121,114,5,0,0,0,90,4,104,107,101,
+ 121,218,8,102,105,108,101,112,97,116,104,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,218,16,95,115,101,97,
+ 114,99,104,95,114,101,103,105,115,116,114,121,208,2,0,0,
+ 115,24,0,0,0,0,2,6,1,8,2,6,1,6,1,16,
+ 255,6,2,2,1,12,1,46,1,12,1,8,1,122,38,87,
+ 105,110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,
+ 110,100,101,114,46,95,115,101,97,114,99,104,95,114,101,103,
+ 105,115,116,114,121,78,99,4,0,0,0,0,0,0,0,0,
+ 0,0,0,8,0,0,0,8,0,0,0,67,0,0,0,115,
+ 120,0,0,0,124,0,160,0,124,1,161,1,125,4,124,4,
+ 100,0,117,0,114,22,100,0,83,0,122,12,116,1,124,4,
+ 131,1,1,0,87,0,110,20,4,0,116,2,121,54,1,0,
+ 1,0,1,0,89,0,100,0,83,0,48,0,116,3,131,0,
+ 68,0,93,52,92,2,125,5,125,6,124,4,160,4,116,5,
+ 124,6,131,1,161,1,114,62,116,6,106,7,124,1,124,5,
+ 124,1,124,4,131,2,124,4,100,1,141,3,125,7,124,7,
+ 2,0,1,0,83,0,113,62,100,0,83,0,41,2,78,114,
+ 180,0,0,0,41,8,114,200,0,0,0,114,48,0,0,0,
+ 114,49,0,0,0,114,184,0,0,0,114,110,0,0,0,114,
+ 111,0,0,0,114,134,0,0,0,218,16,115,112,101,99,95,
+ 102,114,111,109,95,108,111,97,100,101,114,41,8,114,193,0,
+ 0,0,114,139,0,0,0,114,43,0,0,0,218,6,116,97,
+ 114,103,101,116,114,199,0,0,0,114,140,0,0,0,114,189,
+ 0,0,0,114,187,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,218,9,102,105,110,100,95,115,112,
+ 101,99,223,2,0,0,115,28,0,0,0,0,2,10,1,8,
+ 1,4,1,2,1,12,1,12,1,8,1,14,1,14,1,6,
+ 1,8,1,2,254,6,3,122,31,87,105,110,100,111,119,115,
+ 82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,102,
+ 105,110,100,95,115,112,101,99,99,3,0,0,0,0,0,0,
+ 0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,0,
+ 0,115,34,0,0,0,124,0,160,0,124,1,124,2,161,2,
+ 125,3,124,3,100,1,117,1,114,26,124,3,106,1,83,0,
+ 100,1,83,0,100,1,83,0,41,2,122,108,70,105,110,100,
+ 32,109,111,100,117,108,101,32,110,97,109,101,100,32,105,110,
+ 32,116,104,101,32,114,101,103,105,115,116,114,121,46,10,10,
+ 32,32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,
+ 104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,
+ 100,46,32,32,85,115,101,32,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,169,2,114,203,0,0,0,
+ 114,140,0,0,0,169,4,114,193,0,0,0,114,139,0,0,
+ 0,114,43,0,0,0,114,187,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,218,11,102,105,110,100,
+ 95,109,111,100,117,108,101,239,2,0,0,115,8,0,0,0,
+ 0,7,12,1,8,1,6,2,122,33,87,105,110,100,111,119,
+ 115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,
+ 102,105,110,100,95,109,111,100,117,108,101,41,2,78,78,41,
+ 1,78,41,12,114,125,0,0,0,114,124,0,0,0,114,126,
+ 0,0,0,114,127,0,0,0,114,197,0,0,0,114,196,0,
+ 0,0,114,195,0,0,0,218,11,99,108,97,115,115,109,101,
+ 116,104,111,100,114,194,0,0,0,114,200,0,0,0,114,203,
+ 0,0,0,114,206,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,191,0,0,
+ 0,189,2,0,0,115,28,0,0,0,8,2,4,3,2,255,
+ 2,4,2,255,2,3,4,2,2,1,10,6,2,1,10,14,
+ 2,1,12,15,2,1,114,191,0,0,0,99,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+ 64,0,0,0,115,48,0,0,0,101,0,90,1,100,0,90,
+ 2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,
+ 5,132,0,90,5,100,6,100,7,132,0,90,6,100,8,100,
+ 9,132,0,90,7,100,10,83,0,41,11,218,13,95,76,111,
+ 97,100,101,114,66,97,115,105,99,115,122,83,66,97,115,101,
+ 32,99,108,97,115,115,32,111,102,32,99,111,109,109,111,110,
+ 32,99,111,100,101,32,110,101,101,100,101,100,32,98,121,32,
+ 98,111,116,104,32,83,111,117,114,99,101,76,111,97,100,101,
+ 114,32,97,110,100,10,32,32,32,32,83,111,117,114,99,101,
+ 108,101,115,115,70,105,108,101,76,111,97,100,101,114,46,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,
+ 4,0,0,0,67,0,0,0,115,64,0,0,0,116,0,124,
+ 0,160,1,124,1,161,1,131,1,100,1,25,0,125,2,124,
+ 2,160,2,100,2,100,1,161,2,100,3,25,0,125,3,124,
+ 1,160,3,100,2,161,1,100,4,25,0,125,4,124,3,100,
+ 5,107,2,111,62,124,4,100,5,107,3,83,0,41,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,110,103,
+ 32,105,102,10,32,32,32,32,32,32,32,32,116,104,101,32,
+ 112,97,116,104,32,114,101,116,117,114,110,101,100,32,98,121,
+ 32,103,101,116,95,102,105,108,101,110,97,109,101,32,104,97,
+ 115,32,97,32,102,105,108,101,110,97,109,101,32,111,102,32,
+ 39,95,95,105,110,105,116,95,95,46,112,121,39,46,114,38,
+ 0,0,0,114,70,0,0,0,114,72,0,0,0,114,27,0,
+ 0,0,218,8,95,95,105,110,105,116,95,95,41,4,114,46,
+ 0,0,0,114,179,0,0,0,114,42,0,0,0,114,40,0,
+ 0,0,41,5,114,118,0,0,0,114,139,0,0,0,114,96,
+ 0,0,0,90,13,102,105,108,101,110,97,109,101,95,98,97,
+ 115,101,90,9,116,97,105,108,95,110,97,109,101,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,182,0,0,
+ 0,2,3,0,0,115,8,0,0,0,0,3,18,1,16,1,
+ 14,1,122,24,95,76,111,97,100,101,114,66,97,115,105,99,
+ 115,46,105,115,95,112,97,99,107,97,103,101,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
+ 0,67,0,0,0,115,4,0,0,0,100,1,83,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,3,0,
+ 0,0,169,2,114,118,0,0,0,114,187,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,218,13,99,
+ 114,101,97,116,101,95,109,111,100,117,108,101,10,3,0,0,
+ 115,2,0,0,0,0,1,122,27,95,76,111,97,100,101,114,
+ 66,97,115,105,99,115,46,99,114,101,97,116,101,95,109,111,
+ 100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,3,0,0,0,5,0,0,0,67,0,0,0,115,56,0,
+ 0,0,124,0,160,0,124,1,106,1,161,1,125,2,124,2,
+ 100,1,117,0,114,36,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,125,0,0,0,114,117,0,0,0,114,61,
+ 0,0,0,114,134,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,131,0,0,0,41,3,
+ 114,118,0,0,0,218,6,109,111,100,117,108,101,114,164,0,
+ 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,218,11,101,120,101,99,95,109,111,100,117,108,101,13,3,
+ 0,0,115,12,0,0,0,0,2,12,1,8,1,6,1,4,
+ 255,6,2,122,25,95,76,111,97,100,101,114,66,97,115,105,
+ 99,115,46,101,120,101,99,95,109,111,100,117,108,101,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
+ 0,0,0,67,0,0,0,115,12,0,0,0,116,0,160,1,
+ 124,0,124,1,161,2,83,0,41,1,122,26,84,104,105,115,
+ 32,109,111,100,117,108,101,32,105,115,32,100,101,112,114,101,
+ 99,97,116,101,100,46,41,2,114,134,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,118,0,0,0,114,139,0,0,0,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,218,11,108,111,97,
+ 100,95,109,111,100,117,108,101,21,3,0,0,115,2,0,0,
+ 0,0,2,122,25,95,76,111,97,100,101,114,66,97,115,105,
+ 99,115,46,108,111,97,100,95,109,111,100,117,108,101,78,41,
+ 8,114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,
+ 114,127,0,0,0,114,182,0,0,0,114,212,0,0,0,114,
+ 217,0,0,0,114,220,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,114,208,0,
+ 0,0,253,2,0,0,115,10,0,0,0,8,2,4,3,8,
+ 8,8,3,8,8,114,208,0,0,0,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,64,
+ 0,0,0,115,74,0,0,0,101,0,90,1,100,0,90,2,
+ 100,1,100,2,132,0,90,3,100,3,100,4,132,0,90,4,
+ 100,5,100,6,132,0,90,5,100,7,100,8,132,0,90,6,
+ 100,9,100,10,132,0,90,7,100,11,100,12,156,1,100,13,
+ 100,14,132,2,90,8,100,15,100,16,132,0,90,9,100,17,
+ 83,0,41,18,218,12,83,111,117,114,99,101,76,111,97,100,
+ 101,114,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,1,0,0,0,67,0,0,0,115,8,0,0,0,
+ 116,0,130,1,100,1,83,0,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,49,0,0,0,169,2,114,118,0,0,0,
+ 114,43,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,218,10,112,97,116,104,95,109,116,105,109,101,
+ 28,3,0,0,115,2,0,0,0,0,6,122,23,83,111,117,
+ 114,99,101,76,111,97,100,101,114,46,112,97,116,104,95,109,
+ 116,105,109,101,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,4,0,0,0,67,0,0,0,115,14,0,
+ 0,0,100,1,124,0,160,0,124,1,161,1,105,1,83,0,
+ 41,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,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,3,
- 0,0,0,41,3,114,118,0,0,0,114,43,0,0,0,114,
- 25,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,114,225,0,0,0,59,3,0,0,115,2,0,0,
- 0,0,1,122,21,83,111,117,114,99,101,76,111,97,100,101,
- 114,46,115,101,116,95,100,97,116,97,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,5,0,0,0,10,0,0,0,67,
- 0,0,0,115,86,0,0,0,124,0,160,0,124,1,161,1,
- 125,2,122,14,124,0,160,1,124,2,161,1,125,3,87,0,
- 110,52,4,0,116,2,107,10,114,76,1,0,125,4,1,0,
- 122,26,116,3,100,1,124,1,100,2,141,2,124,4,130,2,
- 87,0,89,0,100,3,125,4,126,4,110,10,100,3,125,4,
- 126,4,48,0,48,0,116,4,124,3,131,1,83,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,
- 115,0,0,0,78,41,5,114,179,0,0,0,218,8,103,101,
- 116,95,100,97,116,97,114,49,0,0,0,114,117,0,0,0,
- 114,176,0,0,0,41,5,114,118,0,0,0,114,139,0,0,
- 0,114,43,0,0,0,114,174,0,0,0,218,3,101,120,99,
+ 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,169,0,0,0,41,1,114,223,0,0,
+ 0,114,222,0,0,0,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,218,10,112,97,116,104,95,115,116,97,116,
+ 115,36,3,0,0,115,2,0,0,0,0,12,122,23,83,111,
+ 117,114,99,101,76,111,97,100,101,114,46,112,97,116,104,95,
+ 115,116,97,116,115,99,4,0,0,0,0,0,0,0,0,0,
+ 0,0,4,0,0,0,4,0,0,0,67,0,0,0,115,12,
+ 0,0,0,124,0,160,0,124,2,124,3,161,2,83,0,41,
+ 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,118,0,0,0,114,107,0,0,0,90,
+ 10,99,97,99,104,101,95,112,97,116,104,114,25,0,0,0,
114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
- 10,103,101,116,95,115,111,117,114,99,101,66,3,0,0,115,
- 20,0,0,0,0,2,10,1,2,1,14,1,16,1,4,1,
- 2,255,4,1,2,255,24,2,122,23,83,111,117,114,99,101,
- 76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,
- 101,114,104,0,0,0,41,1,218,9,95,111,112,116,105,109,
- 105,122,101,99,3,0,0,0,0,0,0,0,1,0,0,0,
- 4,0,0,0,8,0,0,0,67,0,0,0,115,22,0,0,
- 0,116,0,106,1,116,2,124,1,124,2,100,1,100,2,124,
- 3,100,3,141,6,83,0,41,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,215,0,
- 0,0,84,41,2,218,12,100,111,110,116,95,105,110,104,101,
- 114,105,116,114,83,0,0,0,41,3,114,134,0,0,0,114,
- 214,0,0,0,218,7,99,111,109,112,105,108,101,41,4,114,
- 118,0,0,0,114,25,0,0,0,114,43,0,0,0,114,230,
- 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
- 0,0,218,14,115,111,117,114,99,101,95,116,111,95,99,111,
- 100,101,76,3,0,0,115,8,0,0,0,0,5,12,1,2,
- 0,2,255,122,27,83,111,117,114,99,101,76,111,97,100,101,
- 114,46,115,111,117,114,99,101,95,116,111,95,99,111,100,101,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,15,0,0,
- 0,9,0,0,0,67,0,0,0,115,34,2,0,0,124,0,
- 160,0,124,1,161,1,125,2,100,1,125,3,100,1,125,4,
- 100,1,125,5,100,2,125,6,100,3,125,7,122,12,116,1,
- 124,2,131,1,125,8,87,0,110,26,4,0,116,2,107,10,
- 114,68,1,0,1,0,1,0,100,1,125,8,89,0,144,1,
- 110,48,48,0,122,14,124,0,160,3,124,2,161,1,125,9,
- 87,0,110,22,4,0,116,4,107,10,114,106,1,0,1,0,
- 1,0,89,0,144,1,110,10,48,0,116,5,124,9,100,4,
- 25,0,131,1,125,3,122,14,124,0,160,6,124,8,161,1,
- 125,10,87,0,110,20,4,0,116,4,107,10,114,154,1,0,
- 1,0,1,0,89,0,110,218,48,0,124,1,124,8,100,5,
+ 15,95,99,97,99,104,101,95,98,121,116,101,99,111,100,101,
+ 50,3,0,0,115,2,0,0,0,0,8,122,28,83,111,117,
+ 114,99,101,76,111,97,100,101,114,46,95,99,97,99,104,101,
+ 95,98,121,116,101,99,111,100,101,99,3,0,0,0,0,0,
+ 0,0,0,0,0,0,3,0,0,0,1,0,0,0,67,0,
+ 0,0,115,4,0,0,0,100,1,83,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,3,0,0,0,41,3,114,118,0,
+ 0,0,114,43,0,0,0,114,25,0,0,0,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,114,225,0,0,0,
+ 60,3,0,0,115,2,0,0,0,0,1,122,21,83,111,117,
+ 114,99,101,76,111,97,100,101,114,46,115,101,116,95,100,97,
+ 116,97,99,2,0,0,0,0,0,0,0,0,0,0,0,5,
+ 0,0,0,10,0,0,0,67,0,0,0,115,84,0,0,0,
+ 124,0,160,0,124,1,161,1,125,2,122,14,124,0,160,1,
+ 124,2,161,1,125,3,87,0,110,50,4,0,116,2,121,74,
+ 1,0,125,4,1,0,122,26,116,3,100,1,124,1,100,2,
+ 141,2,124,4,130,2,87,0,89,0,100,3,125,4,126,4,
+ 110,10,100,3,125,4,126,4,48,0,48,0,116,4,124,3,
+ 131,1,83,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,115,0,0,0,78,41,5,114,179,0,
+ 0,0,218,8,103,101,116,95,100,97,116,97,114,49,0,0,
+ 0,114,117,0,0,0,114,176,0,0,0,41,5,114,118,0,
+ 0,0,114,139,0,0,0,114,43,0,0,0,114,174,0,0,
+ 0,218,3,101,120,99,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,218,10,103,101,116,95,115,111,117,114,99,
+ 101,67,3,0,0,115,20,0,0,0,0,2,10,1,2,1,
+ 14,1,14,1,4,1,2,255,4,1,2,255,24,2,122,23,
+ 83,111,117,114,99,101,76,111,97,100,101,114,46,103,101,116,
+ 95,115,111,117,114,99,101,114,104,0,0,0,41,1,218,9,
+ 95,111,112,116,105,109,105,122,101,99,3,0,0,0,0,0,
+ 0,0,1,0,0,0,4,0,0,0,8,0,0,0,67,0,
+ 0,0,115,22,0,0,0,116,0,106,1,116,2,124,1,124,
+ 2,100,1,100,2,124,3,100,3,141,6,83,0,41,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,215,0,0,0,84,41,2,218,12,100,111,110,
+ 116,95,105,110,104,101,114,105,116,114,83,0,0,0,41,3,
+ 114,134,0,0,0,114,214,0,0,0,218,7,99,111,109,112,
+ 105,108,101,41,4,114,118,0,0,0,114,25,0,0,0,114,
+ 43,0,0,0,114,230,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,218,14,115,111,117,114,99,101,
+ 95,116,111,95,99,111,100,101,77,3,0,0,115,8,0,0,
+ 0,0,5,12,1,2,0,2,255,122,27,83,111,117,114,99,
+ 101,76,111,97,100,101,114,46,115,111,117,114,99,101,95,116,
+ 111,95,99,111,100,101,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,15,0,0,0,9,0,0,0,67,0,0,0,115,
+ 24,2,0,0,124,0,160,0,124,1,161,1,125,2,100,1,
+ 125,3,100,1,125,4,100,1,125,5,100,2,125,6,100,3,
+ 125,7,122,12,116,1,124,2,131,1,125,8,87,0,110,24,
+ 4,0,116,2,121,66,1,0,1,0,1,0,100,1,125,8,
+ 89,0,144,1,110,42,48,0,122,14,124,0,160,3,124,2,
+ 161,1,125,9,87,0,110,20,4,0,116,4,121,102,1,0,
+ 1,0,1,0,89,0,144,1,110,6,48,0,116,5,124,9,
+ 100,4,25,0,131,1,125,3,122,14,124,0,160,6,124,8,
+ 161,1,125,10,87,0,110,18,4,0,116,4,121,148,1,0,
+ 1,0,1,0,89,0,110,216,48,0,124,1,124,8,100,5,
156,2,125,11,122,148,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,
- 144,1,114,36,124,12,100,9,64,0,100,8,107,3,125,7,
- 116,9,106,10,100,10,107,3,144,1,114,56,124,7,115,254,
- 116,9,106,10,100,11,107,2,144,1,114,56,124,0,160,6,
+ 144,1,114,30,124,12,100,9,64,0,100,8,107,3,125,7,
+ 116,9,106,10,100,10,107,3,144,1,114,50,124,7,115,248,
+ 116,9,106,10,100,11,107,2,144,1,114,50,124,0,160,6,
124,2,161,1,125,4,116,9,160,11,116,12,124,4,161,2,
125,5,116,13,124,10,124,5,124,1,124,11,131,4,1,0,
110,20,116,14,124,10,124,3,124,9,100,12,25,0,124,1,
- 124,11,131,5,1,0,87,0,110,26,4,0,116,15,116,16,
- 102,2,107,10,144,1,114,84,1,0,1,0,1,0,89,0,
- 110,32,48,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,107,8,144,1,114,136,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,2,115,30,124,8,100,1,107,9,144,2,114,30,
- 124,3,100,1,107,9,144,2,114,30,124,6,144,1,114,228,
- 124,5,100,1,107,8,144,1,114,214,116,9,160,11,124,4,
- 161,1,125,5,116,23,124,14,124,5,124,7,131,3,125,10,
- 110,16,116,24,124,14,124,3,116,25,124,4,131,1,131,3,
- 125,10,122,18,124,0,160,26,124,2,124,8,124,10,161,3,
- 1,0,87,0,110,22,4,0,116,2,107,10,144,2,114,28,
- 1,0,1,0,1,0,89,0,110,2,48,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,169,0,0,0,114,159,0,0,0,114,
- 145,0,0,0,114,38,0,0,0,114,72,0,0,0,114,27,
- 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,116,0,0,0,114,106,
- 0,0,0,114,107,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,
- 179,0,0,0,114,97,0,0,0,114,81,0,0,0,114,224,
- 0,0,0,114,49,0,0,0,114,17,0,0,0,114,227,0,
- 0,0,114,152,0,0,0,218,10,109,101,109,111,114,121,118,
- 105,101,119,114,163,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,
- 157,0,0,0,218,17,95,82,65,87,95,77,65,71,73,67,
- 95,78,85,77,66,69,82,114,158,0,0,0,114,156,0,0,
- 0,114,117,0,0,0,114,150,0,0,0,114,134,0,0,0,
- 114,149,0,0,0,114,165,0,0,0,114,233,0,0,0,114,
- 8,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,171,0,0,0,114,170,
- 0,0,0,114,22,0,0,0,114,226,0,0,0,41,15,114,
- 118,0,0,0,114,139,0,0,0,114,107,0,0,0,114,154,
- 0,0,0,114,174,0,0,0,114,157,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,106,0,0,0,218,2,115,116,
- 114,25,0,0,0,114,151,0,0,0,114,82,0,0,0,90,
- 10,98,121,116,101,115,95,100,97,116,97,90,11,99,111,100,
- 101,95,111,98,106,101,99,116,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,114,213,0,0,0,84,3,0,0,
- 115,152,0,0,0,0,7,10,1,4,1,4,1,4,1,4,
- 1,4,1,2,1,12,1,14,1,12,2,2,1,14,1,14,
- 1,8,2,12,1,2,1,14,1,14,1,6,3,2,1,2,
- 254,6,4,2,1,12,1,16,1,12,1,6,1,12,1,12,
- 1,2,255,2,2,8,254,4,3,10,1,4,1,2,1,2,
- 254,4,4,8,1,2,255,6,3,2,1,2,1,2,1,6,
- 1,2,1,2,251,8,7,20,1,6,2,8,1,2,255,4,
- 2,6,1,2,1,2,254,6,3,10,1,10,1,12,1,12,
- 1,18,1,6,255,4,2,6,1,10,1,10,1,14,2,6,
- 1,6,255,4,2,2,1,18,1,16,1,6,1,122,21,83,
- 111,117,114,99,101,76,111,97,100,101,114,46,103,101,116,95,
- 99,111,100,101,78,41,10,114,125,0,0,0,114,124,0,0,
- 0,114,126,0,0,0,114,223,0,0,0,114,224,0,0,0,
- 114,226,0,0,0,114,225,0,0,0,114,229,0,0,0,114,
- 233,0,0,0,114,213,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,114,221,0,
- 0,0,25,3,0,0,115,14,0,0,0,8,2,8,8,8,
- 14,8,10,8,7,8,10,14,8,114,221,0,0,0,99,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
- 0,0,0,0,0,0,0,115,124,0,0,0,101,0,90,1,
- 100,0,90,2,100,1,90,3,100,2,100,3,132,0,90,4,
- 100,4,100,5,132,0,90,5,100,6,100,7,132,0,90,6,
- 101,7,135,0,102,1,100,8,100,9,132,8,131,1,90,8,
- 101,7,100,10,100,11,132,0,131,1,90,9,100,12,100,13,
- 132,0,90,10,101,7,100,14,100,15,132,0,131,1,90,11,
- 100,16,100,17,132,0,90,12,100,18,100,19,132,0,90,13,
- 100,20,100,21,132,0,90,14,100,22,100,23,132,0,90,15,
- 135,0,4,0,90,16,83,0,41,24,218,10,70,105,108,101,
- 76,111,97,100,101,114,122,103,66,97,115,101,32,102,105,108,
- 101,32,108,111,97,100,101,114,32,99,108,97,115,115,32,119,
- 104,105,99,104,32,105,109,112,108,101,109,101,110,116,115,32,
- 116,104,101,32,108,111,97,100,101,114,32,112,114,111,116,111,
- 99,111,108,32,109,101,116,104,111,100,115,32,116,104,97,116,
- 10,32,32,32,32,114,101,113,117,105,114,101,32,102,105,108,
- 101,32,115,121,115,116,101,109,32,117,115,97,103,101,46,99,
- 3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
- 2,0,0,0,67,0,0,0,115,16,0,0,0,124,1,124,
- 0,95,0,124,2,124,0,95,1,100,1,83,0,41,2,122,
- 75,67,97,99,104,101,32,116,104,101,32,109,111,100,117,108,
- 101,32,110,97,109,101,32,97,110,100,32,116,104,101,32,112,
- 97,116,104,32,116,111,32,116,104,101,32,102,105,108,101,32,
- 102,111,117,110,100,32,98,121,32,116,104,101,10,32,32,32,
- 32,32,32,32,32,102,105,110,100,101,114,46,78,114,159,0,
- 0,0,41,3,114,118,0,0,0,114,139,0,0,0,114,43,
- 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
- 0,0,114,209,0,0,0,174,3,0,0,115,4,0,0,0,
- 0,3,6,1,122,19,70,105,108,101,76,111,97,100,101,114,
- 46,95,95,105,110,105,116,95,95,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,
- 0,0,115,24,0,0,0,124,0,106,0,124,1,106,0,107,
- 2,111,22,124,0,106,1,124,1,106,1,107,2,83,0,114,
- 109,0,0,0,169,2,218,9,95,95,99,108,97,115,115,95,
- 95,114,131,0,0,0,169,2,114,118,0,0,0,90,5,111,
- 116,104,101,114,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,218,6,95,95,101,113,95,95,180,3,0,0,115,
- 6,0,0,0,0,1,12,1,10,255,122,17,70,105,108,101,
- 76,111,97,100,101,114,46,95,95,101,113,95,95,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,
- 0,0,67,0,0,0,115,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,
- 109,0,0,0,169,3,218,4,104,97,115,104,114,116,0,0,
- 0,114,43,0,0,0,169,1,114,118,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,218,8,95,95,
- 104,97,115,104,95,95,184,3,0,0,115,2,0,0,0,0,
- 1,122,19,70,105,108,101,76,111,97,100,101,114,46,95,95,
- 104,97,115,104,95,95,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,115,
- 16,0,0,0,116,0,116,1,124,0,131,2,160,2,124,1,
- 161,1,83,0,41,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,239,0,0,0,114,220,0,0,0,114,
- 219,0,0,0,169,1,114,241,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,114,220,0,0,0,187,3,0,0,115,2,
- 0,0,0,0,10,122,22,70,105,108,101,76,111,97,100,101,
- 114,46,108,111,97,100,95,109,111,100,117,108,101,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,
- 0,0,67,0,0,0,115,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,
- 47,0,0,0,114,219,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,114,179,0,0,0,199,3,0,
- 0,115,2,0,0,0,0,3,122,23,70,105,108,101,76,111,
- 97,100,101,114,46,103,101,116,95,102,105,108,101,110,97,109,
- 101,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,
- 0,0,8,0,0,0,67,0,0,0,115,126,0,0,0,116,
- 0,124,0,116,1,116,2,102,2,131,2,114,70,116,3,160,
- 4,116,5,124,1,131,1,161,1,143,24,125,2,124,2,160,
- 6,161,0,87,0,2,0,100,1,4,0,4,0,131,3,1,
- 0,83,0,49,0,115,58,48,0,1,0,1,0,1,0,89,
- 0,1,0,110,52,116,3,160,7,124,1,100,2,161,2,143,
- 24,125,2,124,2,160,6,161,0,87,0,2,0,100,1,4,
- 0,4,0,131,3,1,0,83,0,49,0,115,112,48,0,1,
- 0,1,0,1,0,89,0,1,0,100,1,83,0,41,3,122,
- 39,82,101,116,117,114,110,32,116,104,101,32,100,97,116,97,
- 32,102,114,111,109,32,112,97,116,104,32,97,115,32,114,97,
- 119,32,98,121,116,101,115,46,78,218,1,114,41,8,114,161,
- 0,0,0,114,221,0,0,0,218,19,69,120,116,101,110,115,
- 105,111,110,70,105,108,101,76,111,97,100,101,114,114,63,0,
- 0,0,90,9,111,112,101,110,95,99,111,100,101,114,84,0,
- 0,0,90,4,114,101,97,100,114,64,0,0,0,41,3,114,
- 118,0,0,0,114,43,0,0,0,114,67,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,114,227,0,
- 0,0,204,3,0,0,115,10,0,0,0,0,2,14,1,16,
- 1,40,2,14,1,122,19,70,105,108,101,76,111,97,100,101,
- 114,46,103,101,116,95,100,97,116,97,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,
- 0,0,0,115,18,0,0,0,124,0,160,0,124,1,161,1,
- 114,14,124,0,83,0,100,0,83,0,114,109,0,0,0,41,
- 1,114,182,0,0,0,169,2,114,118,0,0,0,114,216,0,
- 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,218,19,103,101,116,95,114,101,115,111,117,114,99,101,95,
- 114,101,97,100,101,114,215,3,0,0,115,6,0,0,0,0,
- 2,10,1,4,1,122,30,70,105,108,101,76,111,97,100,101,
- 114,46,103,101,116,95,114,101,115,111,117,114,99,101,95,114,
- 101,97,100,101,114,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,3,0,0,0,4,0,0,0,67,0,0,0,115,32,
- 0,0,0,116,0,116,1,124,0,106,2,131,1,100,1,25,
- 0,124,1,131,2,125,2,116,3,160,4,124,2,100,2,161,
- 2,83,0,41,3,78,114,72,0,0,0,114,251,0,0,0,
- 41,5,114,37,0,0,0,114,46,0,0,0,114,43,0,0,
- 0,114,63,0,0,0,114,64,0,0,0,169,3,114,118,0,
- 0,0,90,8,114,101,115,111,117,114,99,101,114,43,0,0,
- 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 218,13,111,112,101,110,95,114,101,115,111,117,114,99,101,221,
- 3,0,0,115,4,0,0,0,0,1,20,1,122,24,70,105,
- 108,101,76,111,97,100,101,114,46,111,112,101,110,95,114,101,
- 115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,
- 38,0,0,0,124,0,160,0,124,1,161,1,115,14,116,1,
- 130,1,116,2,116,3,124,0,106,4,131,1,100,1,25,0,
- 124,1,131,2,125,2,124,2,83,0,169,2,78,114,72,0,
- 0,0,41,5,218,11,105,115,95,114,101,115,111,117,114,99,
- 101,218,17,70,105,108,101,78,111,116,70,111,117,110,100,69,
- 114,114,111,114,114,37,0,0,0,114,46,0,0,0,114,43,
- 0,0,0,114,255,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,218,13,114,101,115,111,117,114,99,
- 101,95,112,97,116,104,225,3,0,0,115,8,0,0,0,0,
- 1,10,1,4,1,20,1,122,24,70,105,108,101,76,111,97,
- 100,101,114,46,114,101,115,111,117,114,99,101,95,112,97,116,
- 104,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,
- 0,0,3,0,0,0,67,0,0,0,115,40,0,0,0,116,
- 0,124,1,107,6,114,12,100,1,83,0,116,1,116,2,124,
- 0,106,3,131,1,100,2,25,0,124,1,131,2,125,2,116,
- 4,124,2,131,1,83,0,41,3,78,70,114,72,0,0,0,
- 41,5,114,34,0,0,0,114,37,0,0,0,114,46,0,0,
- 0,114,43,0,0,0,114,53,0,0,0,169,3,114,118,0,
- 0,0,114,116,0,0,0,114,43,0,0,0,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,114,2,1,0,0,
- 231,3,0,0,115,8,0,0,0,0,1,8,1,4,1,20,
- 1,122,22,70,105,108,101,76,111,97,100,101,114,46,105,115,
- 95,114,101,115,111,117,114,99,101,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,1,0,0,0,5,0,0,0,67,0,
- 0,0,115,24,0,0,0,116,0,116,1,160,2,116,3,124,
- 0,106,4,131,1,100,1,25,0,161,1,131,1,83,0,114,
- 1,1,0,0,41,5,218,4,105,116,101,114,114,2,0,0,
- 0,218,7,108,105,115,116,100,105,114,114,46,0,0,0,114,
- 43,0,0,0,114,246,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,218,8,99,111,110,116,101,110,
- 116,115,237,3,0,0,115,2,0,0,0,0,1,122,19,70,
- 105,108,101,76,111,97,100,101,114,46,99,111,110,116,101,110,
- 116,115,41,17,114,125,0,0,0,114,124,0,0,0,114,126,
- 0,0,0,114,127,0,0,0,114,209,0,0,0,114,243,0,
- 0,0,114,247,0,0,0,114,136,0,0,0,114,220,0,0,
- 0,114,179,0,0,0,114,227,0,0,0,114,254,0,0,0,
- 114,0,1,0,0,114,4,1,0,0,114,2,1,0,0,114,
- 8,1,0,0,90,13,95,95,99,108,97,115,115,99,101,108,
- 108,95,95,114,3,0,0,0,114,3,0,0,0,114,249,0,
- 0,0,114,6,0,0,0,114,239,0,0,0,169,3,0,0,
- 115,30,0,0,0,8,2,4,3,8,6,8,4,8,3,2,
- 1,14,11,2,1,10,4,8,11,2,1,10,5,8,4,8,
- 6,8,6,114,239,0,0,0,99,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,3,0,0,0,64,0,0,
- 0,115,46,0,0,0,101,0,90,1,100,0,90,2,100,1,
- 90,3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,
- 90,5,100,6,100,7,156,1,100,8,100,9,132,2,90,6,
- 100,10,83,0,41,11,218,16,83,111,117,114,99,101,70,105,
- 108,101,76,111,97,100,101,114,122,62,67,111,110,99,114,101,
- 116,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,
- 110,32,111,102,32,83,111,117,114,99,101,76,111,97,100,101,
- 114,32,117,115,105,110,103,32,116,104,101,32,102,105,108,101,
- 32,115,121,115,116,101,109,46,99,2,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,
- 0,115,22,0,0,0,116,0,124,1,131,1,125,2,124,2,
- 106,1,124,2,106,2,100,1,156,2,83,0,41,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,169,0,0,0,114,234,0,0,0,41,3,114,
- 48,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,118,0,0,0,114,43,
- 0,0,0,114,238,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,114,224,0,0,0,245,3,0,0,
- 115,4,0,0,0,0,2,8,1,122,27,83,111,117,114,99,
- 101,70,105,108,101,76,111,97,100,101,114,46,112,97,116,104,
- 95,115,116,97,116,115,99,4,0,0,0,0,0,0,0,0,
- 0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,115,
- 24,0,0,0,116,0,124,1,131,1,125,4,124,0,106,1,
- 124,2,124,3,124,4,100,1,141,3,83,0,41,2,78,169,
- 1,218,5,95,109,111,100,101,41,2,114,114,0,0,0,114,
- 225,0,0,0,41,5,114,118,0,0,0,114,107,0,0,0,
- 114,106,0,0,0,114,25,0,0,0,114,51,0,0,0,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,226,
- 0,0,0,250,3,0,0,115,4,0,0,0,0,2,8,1,
- 122,32,83,111,117,114,99,101,70,105,108,101,76,111,97,100,
- 101,114,46,95,99,97,99,104,101,95,98,121,116,101,99,111,
- 100,101,114,59,0,0,0,114,11,1,0,0,99,3,0,0,
- 0,0,0,0,0,1,0,0,0,9,0,0,0,11,0,0,
- 0,67,0,0,0,115,2,1,0,0,116,0,124,1,131,1,
- 92,2,125,4,125,5,103,0,125,6,124,4,114,52,116,1,
- 124,4,131,1,115,52,116,0,124,4,131,1,92,2,125,4,
- 125,7,124,6,160,2,124,7,161,1,1,0,113,16,116,3,
- 124,6,131,1,68,0,93,108,125,7,116,4,124,4,124,7,
- 131,2,125,4,122,14,116,5,160,6,124,4,161,1,1,0,
- 87,0,113,60,4,0,116,7,107,10,114,112,1,0,1,0,
- 1,0,89,0,113,60,89,0,113,60,4,0,116,8,107,10,
- 114,166,1,0,125,8,1,0,122,30,116,9,160,10,100,1,
- 124,4,124,8,161,3,1,0,87,0,89,0,100,2,125,8,
- 126,8,1,0,100,2,83,0,100,2,125,8,126,8,48,0,
- 48,0,113,60,122,28,116,11,124,1,124,2,124,3,131,3,
- 1,0,116,9,160,10,100,3,124,1,161,2,1,0,87,0,
- 110,54,4,0,116,8,107,10,144,0,114,252,1,0,125,8,
- 1,0,122,26,116,9,160,10,100,1,124,1,124,8,161,3,
- 1,0,87,0,89,0,100,2,125,8,126,8,110,10,100,2,
- 125,8,126,8,48,0,48,0,100,2,83,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,46,0,0,0,114,55,
- 0,0,0,114,186,0,0,0,114,41,0,0,0,114,37,0,
- 0,0,114,2,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,
- 49,0,0,0,114,134,0,0,0,114,149,0,0,0,114,68,
- 0,0,0,41,9,114,118,0,0,0,114,43,0,0,0,114,
- 25,0,0,0,114,12,1,0,0,218,6,112,97,114,101,110,
- 116,114,96,0,0,0,114,36,0,0,0,114,32,0,0,0,
- 114,228,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,225,0,0,0,255,3,0,0,115,48,0,
- 0,0,0,2,12,1,4,2,12,1,12,1,12,2,12,1,
- 10,1,2,1,14,1,14,2,8,1,16,3,6,1,2,0,
- 2,255,4,2,28,1,2,1,12,1,16,1,18,2,8,1,
- 2,255,122,25,83,111,117,114,99,101,70,105,108,101,76,111,
- 97,100,101,114,46,115,101,116,95,100,97,116,97,78,41,7,
+ 124,11,131,5,1,0,87,0,110,24,4,0,116,15,116,16,
+ 102,2,144,1,121,76,1,0,1,0,1,0,89,0,110,32,
+ 48,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,144,1,114,128,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,2,115,20,124,8,100,1,117,1,144,2,114,20,124,3,
+ 100,1,117,1,144,2,114,20,124,6,144,1,114,220,124,5,
+ 100,1,117,0,144,1,114,206,116,9,160,11,124,4,161,1,
+ 125,5,116,23,124,14,124,5,124,7,131,3,125,10,110,16,
+ 116,24,124,14,124,3,116,25,124,4,131,1,131,3,125,10,
+ 122,18,124,0,160,26,124,2,124,8,124,10,161,3,1,0,
+ 87,0,110,20,4,0,116,2,144,2,121,18,1,0,1,0,
+ 1,0,89,0,110,2,48,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,169,0,0,0,114,159,0,0,0,114,145,0,0,0,
+ 114,38,0,0,0,114,72,0,0,0,114,27,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,116,0,0,0,114,106,0,0,0,114,
+ 107,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,179,0,0,0,
+ 114,97,0,0,0,114,81,0,0,0,114,224,0,0,0,114,
+ 49,0,0,0,114,17,0,0,0,114,227,0,0,0,114,152,
+ 0,0,0,218,10,109,101,109,111,114,121,118,105,101,119,114,
+ 163,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,157,0,0,0,
+ 218,17,95,82,65,87,95,77,65,71,73,67,95,78,85,77,
+ 66,69,82,114,158,0,0,0,114,156,0,0,0,114,117,0,
+ 0,0,114,150,0,0,0,114,134,0,0,0,114,149,0,0,
+ 0,114,165,0,0,0,114,233,0,0,0,114,8,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,171,0,0,0,114,170,0,0,0,114,
+ 22,0,0,0,114,226,0,0,0,41,15,114,118,0,0,0,
+ 114,139,0,0,0,114,107,0,0,0,114,154,0,0,0,114,
+ 174,0,0,0,114,157,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,106,0,0,0,218,2,115,116,114,25,0,0,
+ 0,114,151,0,0,0,114,82,0,0,0,90,10,98,121,116,
+ 101,115,95,100,97,116,97,90,11,99,111,100,101,95,111,98,
+ 106,101,99,116,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,114,213,0,0,0,85,3,0,0,115,152,0,0,
+ 0,0,7,10,1,4,1,4,1,4,1,4,1,4,1,2,
+ 1,12,1,12,1,12,2,2,1,14,1,12,1,8,2,12,
+ 1,2,1,14,1,12,1,6,3,2,1,2,254,6,4,2,
+ 1,12,1,16,1,12,1,6,1,12,1,12,1,2,255,2,
+ 2,8,254,4,3,10,1,4,1,2,1,2,254,4,4,8,
+ 1,2,255,6,3,2,1,2,1,2,1,6,1,2,1,2,
+ 251,8,7,18,1,6,2,8,1,2,255,4,2,6,1,2,
+ 1,2,254,6,3,10,1,10,1,12,1,12,1,18,1,6,
+ 255,4,2,6,1,10,1,10,1,14,2,6,1,6,255,4,
+ 2,2,1,18,1,14,1,6,1,122,21,83,111,117,114,99,
+ 101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,
+ 78,41,10,114,125,0,0,0,114,124,0,0,0,114,126,0,
+ 0,0,114,223,0,0,0,114,224,0,0,0,114,226,0,0,
+ 0,114,225,0,0,0,114,229,0,0,0,114,233,0,0,0,
+ 114,213,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,114,221,0,0,0,26,3,
+ 0,0,115,14,0,0,0,8,2,8,8,8,14,8,10,8,
+ 7,8,10,14,8,114,221,0,0,0,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,
+ 0,0,0,115,124,0,0,0,101,0,90,1,100,0,90,2,
+ 100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,5,
+ 132,0,90,5,100,6,100,7,132,0,90,6,101,7,135,0,
+ 102,1,100,8,100,9,132,8,131,1,90,8,101,7,100,10,
+ 100,11,132,0,131,1,90,9,100,12,100,13,132,0,90,10,
+ 101,7,100,14,100,15,132,0,131,1,90,11,100,16,100,17,
+ 132,0,90,12,100,18,100,19,132,0,90,13,100,20,100,21,
+ 132,0,90,14,100,22,100,23,132,0,90,15,135,0,4,0,
+ 90,16,83,0,41,24,218,10,70,105,108,101,76,111,97,100,
+ 101,114,122,103,66,97,115,101,32,102,105,108,101,32,108,111,
+ 97,100,101,114,32,99,108,97,115,115,32,119,104,105,99,104,
+ 32,105,109,112,108,101,109,101,110,116,115,32,116,104,101,32,
+ 108,111,97,100,101,114,32,112,114,111,116,111,99,111,108,32,
+ 109,101,116,104,111,100,115,32,116,104,97,116,10,32,32,32,
+ 32,114,101,113,117,105,114,101,32,102,105,108,101,32,115,121,
+ 115,116,101,109,32,117,115,97,103,101,46,99,3,0,0,0,
+ 0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,
+ 67,0,0,0,115,16,0,0,0,124,1,124,0,95,0,124,
+ 2,124,0,95,1,100,1,83,0,41,2,122,75,67,97,99,
+ 104,101,32,116,104,101,32,109,111,100,117,108,101,32,110,97,
+ 109,101,32,97,110,100,32,116,104,101,32,112,97,116,104,32,
+ 116,111,32,116,104,101,32,102,105,108,101,32,102,111,117,110,
+ 100,32,98,121,32,116,104,101,10,32,32,32,32,32,32,32,
+ 32,102,105,110,100,101,114,46,78,114,159,0,0,0,41,3,
+ 114,118,0,0,0,114,139,0,0,0,114,43,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,209,
+ 0,0,0,175,3,0,0,115,4,0,0,0,0,3,6,1,
+ 122,19,70,105,108,101,76,111,97,100,101,114,46,95,95,105,
+ 110,105,116,95,95,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,24,
+ 0,0,0,124,0,106,0,124,1,106,0,107,2,111,22,124,
+ 0,106,1,124,1,106,1,107,2,83,0,114,109,0,0,0,
+ 169,2,218,9,95,95,99,108,97,115,115,95,95,114,131,0,
+ 0,0,169,2,114,118,0,0,0,90,5,111,116,104,101,114,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
+ 6,95,95,101,113,95,95,181,3,0,0,115,6,0,0,0,
+ 0,1,12,1,10,255,122,17,70,105,108,101,76,111,97,100,
+ 101,114,46,95,95,101,113,95,95,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
+ 0,0,115,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,109,0,0,0,
+ 169,3,218,4,104,97,115,104,114,116,0,0,0,114,43,0,
+ 0,0,169,1,114,118,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,218,8,95,95,104,97,115,104,
+ 95,95,185,3,0,0,115,2,0,0,0,0,1,122,19,70,
+ 105,108,101,76,111,97,100,101,114,46,95,95,104,97,115,104,
+ 95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,3,0,0,0,3,0,0,0,115,16,0,0,0,
+ 116,0,116,1,124,0,131,2,160,2,124,1,161,1,83,0,
+ 41,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,239,0,0,0,114,220,0,0,0,114,219,0,0,0,
+ 169,1,114,241,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,114,220,0,0,0,188,3,0,0,115,2,0,0,0,0,
+ 10,122,22,70,105,108,101,76,111,97,100,101,114,46,108,111,
+ 97,100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
+ 0,0,115,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,47,0,0,0,
+ 114,219,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,179,0,0,0,200,3,0,0,115,2,0,
+ 0,0,0,3,122,23,70,105,108,101,76,111,97,100,101,114,
+ 46,103,101,116,95,102,105,108,101,110,97,109,101,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,
+ 0,0,67,0,0,0,115,126,0,0,0,116,0,124,0,116,
+ 1,116,2,102,2,131,2,114,70,116,3,160,4,116,5,124,
+ 1,131,1,161,1,143,24,125,2,124,2,160,6,161,0,87,
+ 0,2,0,100,1,4,0,4,0,131,3,1,0,83,0,49,
+ 0,115,58,48,0,1,0,1,0,1,0,89,0,1,0,110,
+ 52,116,3,160,7,124,1,100,2,161,2,143,24,125,2,124,
+ 2,160,6,161,0,87,0,2,0,100,1,4,0,4,0,131,
+ 3,1,0,83,0,49,0,115,112,48,0,1,0,1,0,1,
+ 0,89,0,1,0,100,1,83,0,41,3,122,39,82,101,116,
+ 117,114,110,32,116,104,101,32,100,97,116,97,32,102,114,111,
+ 109,32,112,97,116,104,32,97,115,32,114,97,119,32,98,121,
+ 116,101,115,46,78,218,1,114,41,8,114,161,0,0,0,114,
+ 221,0,0,0,218,19,69,120,116,101,110,115,105,111,110,70,
+ 105,108,101,76,111,97,100,101,114,114,63,0,0,0,90,9,
+ 111,112,101,110,95,99,111,100,101,114,84,0,0,0,90,4,
+ 114,101,97,100,114,64,0,0,0,41,3,114,118,0,0,0,
+ 114,43,0,0,0,114,67,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,114,227,0,0,0,205,3,
+ 0,0,115,10,0,0,0,0,2,14,1,16,1,40,2,14,
+ 1,122,19,70,105,108,101,76,111,97,100,101,114,46,103,101,
+ 116,95,100,97,116,97,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
+ 18,0,0,0,124,0,160,0,124,1,161,1,114,14,124,0,
+ 83,0,100,0,83,0,114,109,0,0,0,41,1,114,182,0,
+ 0,0,169,2,114,118,0,0,0,114,216,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,218,19,103,
+ 101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100,
+ 101,114,216,3,0,0,115,6,0,0,0,0,2,10,1,4,
+ 1,122,30,70,105,108,101,76,111,97,100,101,114,46,103,101,
+ 116,95,114,101,115,111,117,114,99,101,95,114,101,97,100,101,
+ 114,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,
+ 0,0,4,0,0,0,67,0,0,0,115,32,0,0,0,116,
+ 0,116,1,124,0,106,2,131,1,100,1,25,0,124,1,131,
+ 2,125,2,116,3,160,4,124,2,100,2,161,2,83,0,41,
+ 3,78,114,72,0,0,0,114,251,0,0,0,41,5,114,37,
+ 0,0,0,114,46,0,0,0,114,43,0,0,0,114,63,0,
+ 0,0,114,64,0,0,0,169,3,114,118,0,0,0,90,8,
+ 114,101,115,111,117,114,99,101,114,43,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,218,13,111,112,
+ 101,110,95,114,101,115,111,117,114,99,101,222,3,0,0,115,
+ 4,0,0,0,0,1,20,1,122,24,70,105,108,101,76,111,
+ 97,100,101,114,46,111,112,101,110,95,114,101,115,111,117,114,
+ 99,101,99,2,0,0,0,0,0,0,0,0,0,0,0,3,
+ 0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,
+ 124,0,160,0,124,1,161,1,115,14,116,1,130,1,116,2,
+ 116,3,124,0,106,4,131,1,100,1,25,0,124,1,131,2,
+ 125,2,124,2,83,0,169,2,78,114,72,0,0,0,41,5,
+ 218,11,105,115,95,114,101,115,111,117,114,99,101,218,17,70,
+ 105,108,101,78,111,116,70,111,117,110,100,69,114,114,111,114,
+ 114,37,0,0,0,114,46,0,0,0,114,43,0,0,0,114,
+ 255,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,218,13,114,101,115,111,117,114,99,101,95,112,97,
+ 116,104,226,3,0,0,115,8,0,0,0,0,1,10,1,4,
+ 1,20,1,122,24,70,105,108,101,76,111,97,100,101,114,46,
+ 114,101,115,111,117,114,99,101,95,112,97,116,104,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,
+ 0,0,67,0,0,0,115,40,0,0,0,116,0,124,1,118,
+ 0,114,12,100,1,83,0,116,1,116,2,124,0,106,3,131,
+ 1,100,2,25,0,124,1,131,2,125,2,116,4,124,2,131,
+ 1,83,0,41,3,78,70,114,72,0,0,0,41,5,114,34,
+ 0,0,0,114,37,0,0,0,114,46,0,0,0,114,43,0,
+ 0,0,114,53,0,0,0,169,3,114,118,0,0,0,114,116,
+ 0,0,0,114,43,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,114,2,1,0,0,232,3,0,0,
+ 115,8,0,0,0,0,1,8,1,4,1,20,1,122,22,70,
+ 105,108,101,76,111,97,100,101,114,46,105,115,95,114,101,115,
+ 111,117,114,99,101,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,5,0,0,0,67,0,0,0,115,24,
+ 0,0,0,116,0,116,1,160,2,116,3,124,0,106,4,131,
+ 1,100,1,25,0,161,1,131,1,83,0,114,1,1,0,0,
+ 41,5,218,4,105,116,101,114,114,2,0,0,0,218,7,108,
+ 105,115,116,100,105,114,114,46,0,0,0,114,43,0,0,0,
+ 114,246,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,218,8,99,111,110,116,101,110,116,115,238,3,
+ 0,0,115,2,0,0,0,0,1,122,19,70,105,108,101,76,
+ 111,97,100,101,114,46,99,111,110,116,101,110,116,115,41,17,
114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,114,
- 127,0,0,0,114,224,0,0,0,114,226,0,0,0,114,225,
- 0,0,0,114,3,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,114,9,1,0,0,241,3,0,0,
- 115,8,0,0,0,8,2,4,2,8,5,8,5,114,9,1,
- 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,64,0,0,0,115,32,0,0,0,
- 101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,3,
- 132,0,90,4,100,4,100,5,132,0,90,5,100,6,83,0,
- 41,7,218,20,83,111,117,114,99,101,108,101,115,115,70,105,
- 108,101,76,111,97,100,101,114,122,45,76,111,97,100,101,114,
- 32,119,104,105,99,104,32,104,97,110,100,108,101,115,32,115,
- 111,117,114,99,101,108,101,115,115,32,102,105,108,101,32,105,
- 109,112,111,114,116,115,46,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,
- 115,68,0,0,0,124,0,160,0,124,1,161,1,125,2,124,
- 0,160,1,124,2,161,1,125,3,124,1,124,2,100,1,156,
- 2,125,4,116,2,124,3,124,1,124,4,131,3,1,0,116,
- 3,116,4,124,3,131,1,100,2,100,0,133,2,25,0,124,
- 1,124,2,100,3,141,3,83,0,41,4,78,114,159,0,0,
- 0,114,145,0,0,0,41,2,114,116,0,0,0,114,106,0,
- 0,0,41,5,114,179,0,0,0,114,227,0,0,0,114,152,
- 0,0,0,114,165,0,0,0,114,235,0,0,0,41,5,114,
- 118,0,0,0,114,139,0,0,0,114,43,0,0,0,114,25,
- 0,0,0,114,151,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,114,213,0,0,0,34,4,0,0,
- 115,22,0,0,0,0,1,10,1,10,4,2,1,2,254,6,
- 4,12,1,2,1,14,1,2,1,2,253,122,29,83,111,117,
- 114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,
- 114,46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
- 0,0,0,115,4,0,0,0,100,1,83,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,3,0,0,0,114,219,0,
- 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,114,229,0,0,0,50,4,0,0,115,2,0,0,0,0,
- 2,122,31,83,111,117,114,99,101,108,101,115,115,70,105,108,
- 101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,
- 99,101,78,41,6,114,125,0,0,0,114,124,0,0,0,114,
- 126,0,0,0,114,127,0,0,0,114,213,0,0,0,114,229,
- 0,0,0,114,3,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,114,15,1,0,0,30,4,0,0,
- 115,6,0,0,0,8,2,4,2,8,16,114,15,1,0,0,
- 99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,3,0,0,0,64,0,0,0,115,92,0,0,0,101,0,
- 90,1,100,0,90,2,100,1,90,3,100,2,100,3,132,0,
- 90,4,100,4,100,5,132,0,90,5,100,6,100,7,132,0,
- 90,6,100,8,100,9,132,0,90,7,100,10,100,11,132,0,
- 90,8,100,12,100,13,132,0,90,9,100,14,100,15,132,0,
- 90,10,100,16,100,17,132,0,90,11,101,12,100,18,100,19,
- 132,0,131,1,90,13,100,20,83,0,41,21,114,252,0,0,
- 0,122,93,76,111,97,100,101,114,32,102,111,114,32,101,120,
- 116,101,110,115,105,111,110,32,109,111,100,117,108,101,115,46,
- 10,10,32,32,32,32,84,104,101,32,99,111,110,115,116,114,
- 117,99,116,111,114,32,105,115,32,100,101,115,105,103,110,101,
- 100,32,116,111,32,119,111,114,107,32,119,105,116,104,32,70,
- 105,108,101,70,105,110,100,101,114,46,10,10,32,32,32,32,
- 99,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
- 0,2,0,0,0,67,0,0,0,115,16,0,0,0,124,1,
- 124,0,95,0,124,2,124,0,95,1,100,0,83,0,114,109,
- 0,0,0,114,159,0,0,0,114,5,1,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,209,0,0,
- 0,67,4,0,0,115,4,0,0,0,0,1,6,1,122,28,
- 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
- 100,101,114,46,95,95,105,110,105,116,95,95,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,
- 0,67,0,0,0,115,24,0,0,0,124,0,106,0,124,1,
- 106,0,107,2,111,22,124,0,106,1,124,1,106,1,107,2,
- 83,0,114,109,0,0,0,114,240,0,0,0,114,242,0,0,
- 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 114,243,0,0,0,71,4,0,0,115,6,0,0,0,0,1,
- 12,1,10,255,122,26,69,120,116,101,110,115,105,111,110,70,
- 105,108,101,76,111,97,100,101,114,46,95,95,101,113,95,95,
- 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
- 0,3,0,0,0,67,0,0,0,115,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,109,0,0,0,114,244,0,0,0,114,246,0,0,
- 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 114,247,0,0,0,75,4,0,0,115,2,0,0,0,0,1,
- 122,28,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
- 111,97,100,101,114,46,95,95,104,97,115,104,95,95,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,5,
- 0,0,0,67,0,0,0,115,36,0,0,0,116,0,160,1,
- 116,2,106,3,124,1,161,2,125,2,116,0,160,4,100,1,
- 124,1,106,5,124,0,106,6,161,3,1,0,124,2,83,0,
- 41,2,122,38,67,114,101,97,116,101,32,97,110,32,117,110,
- 105,116,105,97,108,105,122,101,100,32,101,120,116,101,110,115,
- 105,111,110,32,109,111,100,117,108,101,122,38,101,120,116,101,
- 110,115,105,111,110,32,109,111,100,117,108,101,32,123,33,114,
- 125,32,108,111,97,100,101,100,32,102,114,111,109,32,123,33,
- 114,125,41,7,114,134,0,0,0,114,214,0,0,0,114,163,
- 0,0,0,90,14,99,114,101,97,116,101,95,100,121,110,97,
- 109,105,99,114,149,0,0,0,114,116,0,0,0,114,43,0,
- 0,0,41,3,114,118,0,0,0,114,187,0,0,0,114,216,
- 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
- 0,0,114,212,0,0,0,78,4,0,0,115,18,0,0,0,
- 0,2,4,1,4,0,2,255,4,2,6,1,4,0,4,255,
- 4,2,122,33,69,120,116,101,110,115,105,111,110,70,105,108,
- 101,76,111,97,100,101,114,46,99,114,101,97,116,101,95,109,
- 111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,5,0,0,0,67,0,0,0,115,36,
- 0,0,0,116,0,160,1,116,2,106,3,124,1,161,2,1,
- 0,116,0,160,4,100,1,124,0,106,5,124,0,106,6,161,
- 3,1,0,100,2,83,0,41,3,122,30,73,110,105,116,105,
- 97,108,105,122,101,32,97,110,32,101,120,116,101,110,115,105,
- 111,110,32,109,111,100,117,108,101,122,40,101,120,116,101,110,
- 115,105,111,110,32,109,111,100,117,108,101,32,123,33,114,125,
- 32,101,120,101,99,117,116,101,100,32,102,114,111,109,32,123,
- 33,114,125,78,41,7,114,134,0,0,0,114,214,0,0,0,
- 114,163,0,0,0,90,12,101,120,101,99,95,100,121,110,97,
- 109,105,99,114,149,0,0,0,114,116,0,0,0,114,43,0,
- 0,0,114,253,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,114,217,0,0,0,86,4,0,0,115,
- 10,0,0,0,0,2,14,1,6,1,4,0,4,255,122,31,
- 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
- 100,101,114,46,101,120,101,99,95,109,111,100,117,108,101,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 4,0,0,0,3,0,0,0,115,36,0,0,0,116,0,124,
- 0,106,1,131,1,100,1,25,0,137,0,116,2,135,0,102,
- 1,100,2,100,3,132,8,116,3,68,0,131,1,131,1,83,
- 0,41,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,38,0,0,0,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,
- 51,0,0,0,115,26,0,0,0,124,0,93,18,125,1,136,
- 0,100,0,124,1,23,0,107,2,86,0,1,0,113,2,100,
- 1,83,0,41,2,114,209,0,0,0,78,114,3,0,0,0,
- 169,2,114,31,0,0,0,218,6,115,117,102,102,105,120,169,
- 1,90,9,102,105,108,101,95,110,97,109,101,114,3,0,0,
- 0,114,6,0,0,0,218,9,60,103,101,110,101,120,112,114,
- 62,95,4,0,0,115,4,0,0,0,4,1,2,255,122,49,
- 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
- 100,101,114,46,105,115,95,112,97,99,107,97,103,101,46,60,
- 108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,
- 62,41,4,114,46,0,0,0,114,43,0,0,0,218,3,97,
- 110,121,218,18,69,88,84,69,78,83,73,79,78,95,83,85,
- 70,70,73,88,69,83,114,219,0,0,0,114,3,0,0,0,
- 114,18,1,0,0,114,6,0,0,0,114,182,0,0,0,92,
- 4,0,0,115,8,0,0,0,0,2,14,1,12,1,2,255,
- 122,30,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
- 111,97,100,101,114,46,105,115,95,112,97,99,107,97,103,101,
+ 127,0,0,0,114,209,0,0,0,114,243,0,0,0,114,247,
+ 0,0,0,114,136,0,0,0,114,220,0,0,0,114,179,0,
+ 0,0,114,227,0,0,0,114,254,0,0,0,114,0,1,0,
+ 0,114,4,1,0,0,114,2,1,0,0,114,8,1,0,0,
+ 90,13,95,95,99,108,97,115,115,99,101,108,108,95,95,114,
+ 3,0,0,0,114,3,0,0,0,114,249,0,0,0,114,6,
+ 0,0,0,114,239,0,0,0,170,3,0,0,115,30,0,0,
+ 0,8,2,4,3,8,6,8,4,8,3,2,1,14,11,2,
+ 1,10,4,8,11,2,1,10,5,8,4,8,6,8,6,114,
+ 239,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,3,0,0,0,64,0,0,0,115,46,0,
+ 0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,
+ 100,3,132,0,90,4,100,4,100,5,132,0,90,5,100,6,
+ 100,7,156,1,100,8,100,9,132,2,90,6,100,10,83,0,
+ 41,11,218,16,83,111,117,114,99,101,70,105,108,101,76,111,
+ 97,100,101,114,122,62,67,111,110,99,114,101,116,101,32,105,
+ 109,112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,
+ 32,83,111,117,114,99,101,76,111,97,100,101,114,32,117,115,
+ 105,110,103,32,116,104,101,32,102,105,108,101,32,115,121,115,
+ 116,101,109,46,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,3,0,0,0,3,0,0,0,67,0,0,0,115,22,0,
+ 0,0,116,0,124,1,131,1,125,2,124,2,106,1,124,2,
+ 106,2,100,1,156,2,83,0,41,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,
+ 169,0,0,0,114,234,0,0,0,41,3,114,48,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,118,0,0,0,114,43,0,0,0,114,
+ 238,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,114,224,0,0,0,246,3,0,0,115,4,0,0,
+ 0,0,2,8,1,122,27,83,111,117,114,99,101,70,105,108,
+ 101,76,111,97,100,101,114,46,112,97,116,104,95,115,116,97,
+ 116,115,99,4,0,0,0,0,0,0,0,0,0,0,0,5,
+ 0,0,0,5,0,0,0,67,0,0,0,115,24,0,0,0,
+ 116,0,124,1,131,1,125,4,124,0,106,1,124,2,124,3,
+ 124,4,100,1,141,3,83,0,41,2,78,169,1,218,5,95,
+ 109,111,100,101,41,2,114,114,0,0,0,114,225,0,0,0,
+ 41,5,114,118,0,0,0,114,107,0,0,0,114,106,0,0,
+ 0,114,25,0,0,0,114,51,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,114,226,0,0,0,251,
+ 3,0,0,115,4,0,0,0,0,2,8,1,122,32,83,111,
+ 117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,95,
+ 99,97,99,104,101,95,98,121,116,101,99,111,100,101,114,59,
+ 0,0,0,114,11,1,0,0,99,3,0,0,0,0,0,0,
+ 0,1,0,0,0,9,0,0,0,11,0,0,0,67,0,0,
+ 0,115,252,0,0,0,116,0,124,1,131,1,92,2,125,4,
+ 125,5,103,0,125,6,124,4,114,52,116,1,124,4,131,1,
+ 115,52,116,0,124,4,131,1,92,2,125,4,125,7,124,6,
+ 160,2,124,7,161,1,1,0,113,16,116,3,124,6,131,1,
+ 68,0,93,104,125,7,116,4,124,4,124,7,131,2,125,4,
+ 122,14,116,5,160,6,124,4,161,1,1,0,87,0,113,60,
+ 4,0,116,7,121,110,1,0,1,0,1,0,89,0,113,60,
+ 89,0,113,60,4,0,116,8,121,162,1,0,125,8,1,0,
+ 122,30,116,9,160,10,100,1,124,4,124,8,161,3,1,0,
+ 87,0,89,0,100,2,125,8,126,8,1,0,100,2,83,0,
+ 100,2,125,8,126,8,48,0,48,0,113,60,122,28,116,11,
+ 124,1,124,2,124,3,131,3,1,0,116,9,160,10,100,3,
+ 124,1,161,2,1,0,87,0,110,52,4,0,116,8,144,0,
+ 121,246,1,0,125,8,1,0,122,26,116,9,160,10,100,1,
+ 124,1,124,8,161,3,1,0,87,0,89,0,100,2,125,8,
+ 126,8,110,10,100,2,125,8,126,8,48,0,48,0,100,2,
+ 83,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,
+ 46,0,0,0,114,55,0,0,0,114,186,0,0,0,114,41,
+ 0,0,0,114,37,0,0,0,114,2,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,49,0,0,0,114,134,0,0,0,114,
+ 149,0,0,0,114,68,0,0,0,41,9,114,118,0,0,0,
+ 114,43,0,0,0,114,25,0,0,0,114,12,1,0,0,218,
+ 6,112,97,114,101,110,116,114,96,0,0,0,114,36,0,0,
+ 0,114,32,0,0,0,114,228,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,114,225,0,0,0,0,
+ 4,0,0,115,48,0,0,0,0,2,12,1,4,2,12,1,
+ 12,1,12,2,12,1,10,1,2,1,14,1,12,2,8,1,
+ 14,3,6,1,2,0,2,255,4,2,28,1,2,1,12,1,
+ 16,1,16,2,8,1,2,255,122,25,83,111,117,114,99,101,
+ 70,105,108,101,76,111,97,100,101,114,46,115,101,116,95,100,
+ 97,116,97,78,41,7,114,125,0,0,0,114,124,0,0,0,
+ 114,126,0,0,0,114,127,0,0,0,114,224,0,0,0,114,
+ 226,0,0,0,114,225,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,114,9,1,
+ 0,0,242,3,0,0,115,8,0,0,0,8,2,4,2,8,
+ 5,8,5,114,9,1,0,0,99,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,
+ 0,115,32,0,0,0,101,0,90,1,100,0,90,2,100,1,
+ 90,3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,
+ 90,5,100,6,83,0,41,7,218,20,83,111,117,114,99,101,
+ 108,101,115,115,70,105,108,101,76,111,97,100,101,114,122,45,
+ 76,111,97,100,101,114,32,119,104,105,99,104,32,104,97,110,
+ 100,108,101,115,32,115,111,117,114,99,101,108,101,115,115,32,
+ 102,105,108,101,32,105,109,112,111,114,116,115,46,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,
+ 0,0,67,0,0,0,115,68,0,0,0,124,0,160,0,124,
+ 1,161,1,125,2,124,0,160,1,124,2,161,1,125,3,124,
+ 1,124,2,100,1,156,2,125,4,116,2,124,3,124,1,124,
+ 4,131,3,1,0,116,3,116,4,124,3,131,1,100,2,100,
+ 0,133,2,25,0,124,1,124,2,100,3,141,3,83,0,41,
+ 4,78,114,159,0,0,0,114,145,0,0,0,41,2,114,116,
+ 0,0,0,114,106,0,0,0,41,5,114,179,0,0,0,114,
+ 227,0,0,0,114,152,0,0,0,114,165,0,0,0,114,235,
+ 0,0,0,41,5,114,118,0,0,0,114,139,0,0,0,114,
+ 43,0,0,0,114,25,0,0,0,114,151,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,114,213,0,
+ 0,0,35,4,0,0,115,22,0,0,0,0,1,10,1,10,
+ 4,2,1,2,254,6,4,12,1,2,1,14,1,2,1,2,
+ 253,122,29,83,111,117,114,99,101,108,101,115,115,70,105,108,
+ 101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,
99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,
- 83,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,3,0,0,0,114,219,0,0,0,
+ 83,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,3,
+ 0,0,0,114,219,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,114,229,0,0,0,51,4,0,0,
+ 115,2,0,0,0,0,2,122,31,83,111,117,114,99,101,108,
+ 101,115,115,70,105,108,101,76,111,97,100,101,114,46,103,101,
+ 116,95,115,111,117,114,99,101,78,41,6,114,125,0,0,0,
+ 114,124,0,0,0,114,126,0,0,0,114,127,0,0,0,114,
+ 213,0,0,0,114,229,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,114,15,1,
+ 0,0,31,4,0,0,115,6,0,0,0,8,2,4,2,8,
+ 16,114,15,1,0,0,99,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,
+ 92,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
+ 100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,
+ 100,6,100,7,132,0,90,6,100,8,100,9,132,0,90,7,
+ 100,10,100,11,132,0,90,8,100,12,100,13,132,0,90,9,
+ 100,14,100,15,132,0,90,10,100,16,100,17,132,0,90,11,
+ 101,12,100,18,100,19,132,0,131,1,90,13,100,20,83,0,
+ 41,21,114,252,0,0,0,122,93,76,111,97,100,101,114,32,
+ 102,111,114,32,101,120,116,101,110,115,105,111,110,32,109,111,
+ 100,117,108,101,115,46,10,10,32,32,32,32,84,104,101,32,
+ 99,111,110,115,116,114,117,99,116,111,114,32,105,115,32,100,
+ 101,115,105,103,110,101,100,32,116,111,32,119,111,114,107,32,
+ 119,105,116,104,32,70,105,108,101,70,105,110,100,101,114,46,
+ 10,10,32,32,32,32,99,3,0,0,0,0,0,0,0,0,
+ 0,0,0,3,0,0,0,2,0,0,0,67,0,0,0,115,
+ 16,0,0,0,124,1,124,0,95,0,124,2,124,0,95,1,
+ 100,0,83,0,114,109,0,0,0,114,159,0,0,0,114,5,
+ 1,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,114,209,0,0,0,68,4,0,0,115,4,0,0,0,
+ 0,1,6,1,122,28,69,120,116,101,110,115,105,111,110,70,
+ 105,108,101,76,111,97,100,101,114,46,95,95,105,110,105,116,
+ 95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,2,0,0,0,67,0,0,0,115,24,0,0,0,
+ 124,0,106,0,124,1,106,0,107,2,111,22,124,0,106,1,
+ 124,1,106,1,107,2,83,0,114,109,0,0,0,114,240,0,
+ 0,0,114,242,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,114,243,0,0,0,72,4,0,0,115,
+ 6,0,0,0,0,1,12,1,10,255,122,26,69,120,116,101,
+ 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
+ 95,95,101,113,95,95,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,
+ 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,109,0,0,0,114,244,0,
+ 0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,114,247,0,0,0,76,4,0,0,115,
+ 2,0,0,0,0,1,122,28,69,120,116,101,110,115,105,111,
+ 110,70,105,108,101,76,111,97,100,101,114,46,95,95,104,97,
+ 115,104,95,95,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,3,0,0,0,5,0,0,0,67,0,0,0,115,36,0,
+ 0,0,116,0,160,1,116,2,106,3,124,1,161,2,125,2,
+ 116,0,160,4,100,1,124,1,106,5,124,0,106,6,161,3,
+ 1,0,124,2,83,0,41,2,122,38,67,114,101,97,116,101,
+ 32,97,110,32,117,110,105,116,105,97,108,105,122,101,100,32,
+ 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,
+ 122,38,101,120,116,101,110,115,105,111,110,32,109,111,100,117,
+ 108,101,32,123,33,114,125,32,108,111,97,100,101,100,32,102,
+ 114,111,109,32,123,33,114,125,41,7,114,134,0,0,0,114,
+ 214,0,0,0,114,163,0,0,0,90,14,99,114,101,97,116,
+ 101,95,100,121,110,97,109,105,99,114,149,0,0,0,114,116,
+ 0,0,0,114,43,0,0,0,41,3,114,118,0,0,0,114,
+ 187,0,0,0,114,216,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,114,212,0,0,0,79,4,0,
+ 0,115,18,0,0,0,0,2,4,1,4,0,2,255,4,2,
+ 6,1,4,0,4,255,4,2,122,33,69,120,116,101,110,115,
+ 105,111,110,70,105,108,101,76,111,97,100,101,114,46,99,114,
+ 101,97,116,101,95,109,111,100,117,108,101,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,
+ 67,0,0,0,115,36,0,0,0,116,0,160,1,116,2,106,
+ 3,124,1,161,2,1,0,116,0,160,4,100,1,124,0,106,
+ 5,124,0,106,6,161,3,1,0,100,2,83,0,41,3,122,
+ 30,73,110,105,116,105,97,108,105,122,101,32,97,110,32,101,
+ 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,122,
+ 40,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,
+ 101,32,123,33,114,125,32,101,120,101,99,117,116,101,100,32,
+ 102,114,111,109,32,123,33,114,125,78,41,7,114,134,0,0,
+ 0,114,214,0,0,0,114,163,0,0,0,90,12,101,120,101,
+ 99,95,100,121,110,97,109,105,99,114,149,0,0,0,114,116,
+ 0,0,0,114,43,0,0,0,114,253,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,217,0,0,
+ 0,87,4,0,0,115,10,0,0,0,0,2,14,1,6,1,
+ 4,0,4,255,122,31,69,120,116,101,110,115,105,111,110,70,
+ 105,108,101,76,111,97,100,101,114,46,101,120,101,99,95,109,
+ 111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,4,0,0,0,3,0,0,0,115,36,
+ 0,0,0,116,0,124,0,106,1,131,1,100,1,25,0,137,
+ 0,116,2,135,0,102,1,100,2,100,3,132,8,116,3,68,
+ 0,131,1,131,1,83,0,41,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,38,0,0,
+ 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,4,0,0,0,51,0,0,0,115,26,0,0,0,124,
+ 0,93,18,125,1,136,0,100,0,124,1,23,0,107,2,86,
+ 0,1,0,113,2,100,1,83,0,41,2,114,209,0,0,0,
+ 78,114,3,0,0,0,169,2,114,31,0,0,0,218,6,115,
+ 117,102,102,105,120,169,1,90,9,102,105,108,101,95,110,97,
+ 109,101,114,3,0,0,0,114,6,0,0,0,218,9,60,103,
+ 101,110,101,120,112,114,62,96,4,0,0,115,4,0,0,0,
+ 4,1,2,255,122,49,69,120,116,101,110,115,105,111,110,70,
+ 105,108,101,76,111,97,100,101,114,46,105,115,95,112,97,99,
+ 107,97,103,101,46,60,108,111,99,97,108,115,62,46,60,103,
+ 101,110,101,120,112,114,62,41,4,114,46,0,0,0,114,43,
+ 0,0,0,218,3,97,110,121,218,18,69,88,84,69,78,83,
+ 73,79,78,95,83,85,70,70,73,88,69,83,114,219,0,0,
+ 0,114,3,0,0,0,114,18,1,0,0,114,6,0,0,0,
+ 114,182,0,0,0,93,4,0,0,115,8,0,0,0,0,2,
+ 14,1,12,1,2,255,122,30,69,120,116,101,110,115,105,111,
+ 110,70,105,108,101,76,111,97,100,101,114,46,105,115,95,112,
+ 97,99,107,97,103,101,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,
+ 4,0,0,0,100,1,83,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,3,0,0,
+ 0,114,219,0,0,0,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,114,213,0,0,0,99,4,0,0,115,2,
+ 0,0,0,0,2,122,28,69,120,116,101,110,115,105,111,110,
+ 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,99,
+ 111,100,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
+ 0,100,1,83,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,
+ 3,0,0,0,114,219,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,114,229,0,0,0,103,4,0,
+ 0,115,2,0,0,0,0,2,122,30,69,120,116,101,110,115,
+ 105,111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,
+ 116,95,115,111,117,114,99,101,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,
+ 0,115,6,0,0,0,124,0,106,0,83,0,114,250,0,0,
+ 0,114,47,0,0,0,114,219,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,114,179,0,0,0,107,
+ 4,0,0,115,2,0,0,0,0,3,122,32,69,120,116,101,
+ 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
+ 103,101,116,95,102,105,108,101,110,97,109,101,78,41,14,114,
+ 125,0,0,0,114,124,0,0,0,114,126,0,0,0,114,127,
+ 0,0,0,114,209,0,0,0,114,243,0,0,0,114,247,0,
+ 0,0,114,212,0,0,0,114,217,0,0,0,114,182,0,0,
+ 0,114,213,0,0,0,114,229,0,0,0,114,136,0,0,0,
+ 114,179,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,114,252,0,0,0,60,4,
+ 0,0,115,22,0,0,0,8,2,4,6,8,4,8,4,8,
+ 3,8,8,8,6,8,6,8,4,8,4,2,1,114,252,0,
+ 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,64,0,0,0,115,104,0,0,0,
+ 101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,3,
+ 132,0,90,4,100,4,100,5,132,0,90,5,100,6,100,7,
+ 132,0,90,6,100,8,100,9,132,0,90,7,100,10,100,11,
+ 132,0,90,8,100,12,100,13,132,0,90,9,100,14,100,15,
+ 132,0,90,10,100,16,100,17,132,0,90,11,100,18,100,19,
+ 132,0,90,12,100,20,100,21,132,0,90,13,100,22,100,23,
+ 132,0,90,14,100,24,83,0,41,25,218,14,95,78,97,109,
+ 101,115,112,97,99,101,80,97,116,104,97,38,1,0,0,82,
+ 101,112,114,101,115,101,110,116,115,32,97,32,110,97,109,101,
+ 115,112,97,99,101,32,112,97,99,107,97,103,101,39,115,32,
+ 112,97,116,104,46,32,32,73,116,32,117,115,101,115,32,116,
+ 104,101,32,109,111,100,117,108,101,32,110,97,109,101,10,32,
+ 32,32,32,116,111,32,102,105,110,100,32,105,116,115,32,112,
+ 97,114,101,110,116,32,109,111,100,117,108,101,44,32,97,110,
+ 100,32,102,114,111,109,32,116,104,101,114,101,32,105,116,32,
+ 108,111,111,107,115,32,117,112,32,116,104,101,32,112,97,114,
+ 101,110,116,39,115,10,32,32,32,32,95,95,112,97,116,104,
+ 95,95,46,32,32,87,104,101,110,32,116,104,105,115,32,99,
+ 104,97,110,103,101,115,44,32,116,104,101,32,109,111,100,117,
+ 108,101,39,115,32,111,119,110,32,112,97,116,104,32,105,115,
+ 32,114,101,99,111,109,112,117,116,101,100,44,10,32,32,32,
+ 32,117,115,105,110,103,32,112,97,116,104,95,102,105,110,100,
+ 101,114,46,32,32,70,111,114,32,116,111,112,45,108,101,118,
+ 101,108,32,109,111,100,117,108,101,115,44,32,116,104,101,32,
+ 112,97,114,101,110,116,32,109,111,100,117,108,101,39,115,32,
+ 112,97,116,104,10,32,32,32,32,105,115,32,115,121,115,46,
+ 112,97,116,104,46,99,4,0,0,0,0,0,0,0,0,0,
+ 0,0,4,0,0,0,3,0,0,0,67,0,0,0,115,36,
+ 0,0,0,124,1,124,0,95,0,124,2,124,0,95,1,116,
+ 2,124,0,160,3,161,0,131,1,124,0,95,4,124,3,124,
+ 0,95,5,100,0,83,0,114,109,0,0,0,41,6,218,5,
+ 95,110,97,109,101,218,5,95,112,97,116,104,114,111,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,118,0,0,0,114,116,0,0,0,
+ 114,43,0,0,0,90,11,112,97,116,104,95,102,105,110,100,
+ 101,114,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,114,209,0,0,0,120,4,0,0,115,8,0,0,0,0,
+ 1,6,1,6,1,14,1,122,23,95,78,97,109,101,115,112,
+ 97,99,101,80,97,116,104,46,95,95,105,110,105,116,95,95,
+ 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+ 0,3,0,0,0,67,0,0,0,115,38,0,0,0,124,0,
+ 106,0,160,1,100,1,161,1,92,3,125,1,125,2,125,3,
+ 124,2,100,2,107,2,114,30,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,70,0,0,0,114,39,0,0,0,
+ 41,2,114,8,0,0,0,114,43,0,0,0,90,8,95,95,
+ 112,97,116,104,95,95,41,2,114,23,1,0,0,114,40,0,
+ 0,0,41,4,114,118,0,0,0,114,14,1,0,0,218,3,
+ 100,111,116,90,2,109,101,114,3,0,0,0,114,3,0,0,
+ 0,114,6,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,126,
+ 4,0,0,115,8,0,0,0,0,2,18,1,8,2,4,3,
+ 122,38,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
+ 46,95,102,105,110,100,95,112,97,114,101,110,116,95,112,97,
+ 116,104,95,110,97,109,101,115,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,
+ 0,115,28,0,0,0,124,0,160,0,161,0,92,2,125,1,
+ 125,2,116,1,116,2,106,3,124,1,25,0,124,2,131,2,
+ 83,0,114,109,0,0,0,41,4,114,30,1,0,0,114,130,
+ 0,0,0,114,8,0,0,0,218,7,109,111,100,117,108,101,
+ 115,41,3,114,118,0,0,0,90,18,112,97,114,101,110,116,
+ 95,109,111,100,117,108,101,95,110,97,109,101,90,14,112,97,
+ 116,104,95,97,116,116,114,95,110,97,109,101,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,114,25,1,0,0,
+ 136,4,0,0,115,4,0,0,0,0,1,12,1,122,31,95,
+ 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,103,
+ 101,116,95,112,97,114,101,110,116,95,112,97,116,104,99,1,
+ 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,
+ 0,0,0,67,0,0,0,115,80,0,0,0,116,0,124,0,
+ 160,1,161,0,131,1,125,1,124,1,124,0,106,2,107,3,
+ 114,74,124,0,160,3,124,0,106,4,124,1,161,2,125,2,
+ 124,2,100,0,117,1,114,68,124,2,106,5,100,0,117,0,
+ 114,68,124,2,106,6,114,68,124,2,106,6,124,0,95,7,
+ 124,1,124,0,95,2,124,0,106,7,83,0,114,109,0,0,
+ 0,41,8,114,111,0,0,0,114,25,1,0,0,114,26,1,
+ 0,0,114,27,1,0,0,114,23,1,0,0,114,140,0,0,
+ 0,114,178,0,0,0,114,24,1,0,0,41,3,114,118,0,
+ 0,0,90,11,112,97,114,101,110,116,95,112,97,116,104,114,
+ 187,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,218,12,95,114,101,99,97,108,99,117,108,97,116,
+ 101,140,4,0,0,115,16,0,0,0,0,2,12,1,10,1,
+ 14,3,18,1,6,1,8,1,6,1,122,27,95,78,97,109,
+ 101,115,112,97,99,101,80,97,116,104,46,95,114,101,99,97,
+ 108,99,117,108,97,116,101,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
+ 115,12,0,0,0,116,0,124,0,160,1,161,0,131,1,83,
+ 0,114,109,0,0,0,41,2,114,6,1,0,0,114,32,1,
+ 0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,218,8,95,95,105,116,101,114,95,95,
+ 153,4,0,0,115,2,0,0,0,0,1,122,23,95,78,97,
+ 109,101,115,112,97,99,101,80,97,116,104,46,95,95,105,116,
+ 101,114,95,95,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,2,0,0,0,67,0,0,0,115,12,0,
+ 0,0,124,0,160,0,161,0,124,1,25,0,83,0,114,109,
+ 0,0,0,169,1,114,32,1,0,0,41,2,114,118,0,0,
+ 0,218,5,105,110,100,101,120,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,218,11,95,95,103,101,116,105,116,
+ 101,109,95,95,156,4,0,0,115,2,0,0,0,0,1,122,
+ 26,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
+ 95,95,103,101,116,105,116,101,109,95,95,99,3,0,0,0,
+ 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,
+ 67,0,0,0,115,14,0,0,0,124,2,124,0,106,0,124,
+ 1,60,0,100,0,83,0,114,109,0,0,0,41,1,114,24,
+ 1,0,0,41,3,114,118,0,0,0,114,35,1,0,0,114,
+ 43,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,218,11,95,95,115,101,116,105,116,101,109,95,95,
+ 159,4,0,0,115,2,0,0,0,0,1,122,26,95,78,97,
+ 109,101,115,112,97,99,101,80,97,116,104,46,95,95,115,101,
+ 116,105,116,101,109,95,95,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
+ 115,12,0,0,0,116,0,124,0,160,1,161,0,131,1,83,
+ 0,114,109,0,0,0,41,2,114,22,0,0,0,114,32,1,
+ 0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,218,7,95,95,108,101,110,95,95,162,
+ 4,0,0,115,2,0,0,0,0,1,122,22,95,78,97,109,
+ 101,115,112,97,99,101,80,97,116,104,46,95,95,108,101,110,
+ 95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,1,
+ 0,0,0,3,0,0,0,67,0,0,0,115,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,61,0,0,0,114,24,1,0,
+ 0,114,246,0,0,0,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,218,8,95,95,114,101,112,114,95,95,165,
+ 4,0,0,115,2,0,0,0,0,1,122,23,95,78,97,109,
+ 101,115,112,97,99,101,80,97,116,104,46,95,95,114,101,112,
+ 114,95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,3,0,0,0,67,0,0,0,115,12,0,0,
+ 0,124,1,124,0,160,0,161,0,118,0,83,0,114,109,0,
+ 0,0,114,34,1,0,0,169,2,114,118,0,0,0,218,4,
+ 105,116,101,109,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,218,12,95,95,99,111,110,116,97,105,110,115,95,
+ 95,168,4,0,0,115,2,0,0,0,0,1,122,27,95,78,
+ 97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,99,
+ 111,110,116,97,105,110,115,95,95,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,
+ 0,0,115,16,0,0,0,124,0,106,0,160,1,124,1,161,
+ 1,1,0,100,0,83,0,114,109,0,0,0,41,2,114,24,
+ 1,0,0,114,186,0,0,0,114,40,1,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,186,0,0,
+ 0,171,4,0,0,115,2,0,0,0,0,1,122,21,95,78,
+ 97,109,101,115,112,97,99,101,80,97,116,104,46,97,112,112,
+ 101,110,100,78,41,15,114,125,0,0,0,114,124,0,0,0,
+ 114,126,0,0,0,114,127,0,0,0,114,209,0,0,0,114,
+ 30,1,0,0,114,25,1,0,0,114,32,1,0,0,114,33,
+ 1,0,0,114,36,1,0,0,114,37,1,0,0,114,38,1,
+ 0,0,114,39,1,0,0,114,42,1,0,0,114,186,0,0,
+ 0,114,3,0,0,0,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,114,22,1,0,0,113,4,0,0,115,24,
+ 0,0,0,8,1,4,6,8,6,8,10,8,4,8,13,8,
+ 3,8,3,8,3,8,3,8,3,8,3,114,22,1,0,0,
+ 99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,3,0,0,0,64,0,0,0,115,80,0,0,0,101,0,
+ 90,1,100,0,90,2,100,1,100,2,132,0,90,3,101,4,
+ 100,3,100,4,132,0,131,1,90,5,100,5,100,6,132,0,
+ 90,6,100,7,100,8,132,0,90,7,100,9,100,10,132,0,
+ 90,8,100,11,100,12,132,0,90,9,100,13,100,14,132,0,
+ 90,10,100,15,100,16,132,0,90,11,100,17,83,0,41,18,
+ 218,16,95,78,97,109,101,115,112,97,99,101,76,111,97,100,
+ 101,114,99,4,0,0,0,0,0,0,0,0,0,0,0,4,
+ 0,0,0,4,0,0,0,67,0,0,0,115,18,0,0,0,
+ 116,0,124,1,124,2,124,3,131,3,124,0,95,1,100,0,
+ 83,0,114,109,0,0,0,41,2,114,22,1,0,0,114,24,
+ 1,0,0,114,28,1,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,114,209,0,0,0,177,4,0,0,
+ 115,2,0,0,0,0,1,122,25,95,78,97,109,101,115,112,
+ 97,99,101,76,111,97,100,101,114,46,95,95,105,110,105,116,
+ 95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,
+ 100,1,160,0,124,1,106,1,161,1,83,0,41,2,122,115,
+ 82,101,116,117,114,110,32,114,101,112,114,32,102,111,114,32,
+ 116,104,101,32,109,111,100,117,108,101,46,10,10,32,32,32,
+ 32,32,32,32,32,84,104,101,32,109,101,116,104,111,100,32,
+ 105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,
+ 84,104,101,32,105,109,112,111,114,116,32,109,97,99,104,105,
+ 110,101,114,121,32,100,111,101,115,32,116,104,101,32,106,111,
+ 98,32,105,116,115,101,108,102,46,10,10,32,32,32,32,32,
+ 32,32,32,122,25,60,109,111,100,117,108,101,32,123,33,114,
+ 125,32,40,110,97,109,101,115,112,97,99,101,41,62,41,2,
+ 114,61,0,0,0,114,125,0,0,0,41,2,114,193,0,0,
+ 0,114,216,0,0,0,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,218,11,109,111,100,117,108,101,95,114,101,
+ 112,114,180,4,0,0,115,2,0,0,0,0,7,122,28,95,
+ 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,
+ 109,111,100,117,108,101,95,114,101,112,114,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
+ 67,0,0,0,115,4,0,0,0,100,1,83,0,41,2,78,
+ 84,114,3,0,0,0,114,219,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,114,182,0,0,0,189,
+ 4,0,0,115,2,0,0,0,0,1,122,27,95,78,97,109,
+ 101,115,112,97,99,101,76,111,97,100,101,114,46,105,115,95,
+ 112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,
+ 115,4,0,0,0,100,1,83,0,41,2,78,114,39,0,0,
+ 0,114,3,0,0,0,114,219,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,114,229,0,0,0,192,
+ 4,0,0,115,2,0,0,0,0,1,122,27,95,78,97,109,
+ 101,115,112,97,99,101,76,111,97,100,101,114,46,103,101,116,
+ 95,115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,2,0,0,0,6,0,0,0,67,0,0,0,
+ 115,16,0,0,0,116,0,100,1,100,2,100,3,100,4,100,
+ 5,141,4,83,0,41,6,78,114,39,0,0,0,122,8,60,
+ 115,116,114,105,110,103,62,114,215,0,0,0,84,41,1,114,
+ 231,0,0,0,41,1,114,232,0,0,0,114,219,0,0,0,
114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
- 213,0,0,0,98,4,0,0,115,2,0,0,0,0,2,122,
- 28,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
- 97,100,101,114,46,103,101,116,95,99,111,100,101,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,
- 0,0,67,0,0,0,115,4,0,0,0,100,1,83,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,3,0,0,0,114,219,
- 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
- 0,0,114,229,0,0,0,102,4,0,0,115,2,0,0,0,
- 0,2,122,30,69,120,116,101,110,115,105,111,110,70,105,108,
- 101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,
- 99,101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,1,0,0,0,67,0,0,0,115,6,0,0,0,
- 124,0,106,0,83,0,114,250,0,0,0,114,47,0,0,0,
- 114,219,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,179,0,0,0,106,4,0,0,115,2,0,
- 0,0,0,3,122,32,69,120,116,101,110,115,105,111,110,70,
- 105,108,101,76,111,97,100,101,114,46,103,101,116,95,102,105,
- 108,101,110,97,109,101,78,41,14,114,125,0,0,0,114,124,
- 0,0,0,114,126,0,0,0,114,127,0,0,0,114,209,0,
- 0,0,114,243,0,0,0,114,247,0,0,0,114,212,0,0,
- 0,114,217,0,0,0,114,182,0,0,0,114,213,0,0,0,
- 114,229,0,0,0,114,136,0,0,0,114,179,0,0,0,114,
- 3,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,114,252,0,0,0,59,4,0,0,115,22,0,0,
- 0,8,2,4,6,8,4,8,4,8,3,8,8,8,6,8,
- 6,8,4,8,4,2,1,114,252,0,0,0,99,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
- 0,64,0,0,0,115,104,0,0,0,101,0,90,1,100,0,
- 90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,
- 100,5,132,0,90,5,100,6,100,7,132,0,90,6,100,8,
- 100,9,132,0,90,7,100,10,100,11,132,0,90,8,100,12,
- 100,13,132,0,90,9,100,14,100,15,132,0,90,10,100,16,
- 100,17,132,0,90,11,100,18,100,19,132,0,90,12,100,20,
- 100,21,132,0,90,13,100,22,100,23,132,0,90,14,100,24,
- 83,0,41,25,218,14,95,78,97,109,101,115,112,97,99,101,
- 80,97,116,104,97,38,1,0,0,82,101,112,114,101,115,101,
- 110,116,115,32,97,32,110,97,109,101,115,112,97,99,101,32,
- 112,97,99,107,97,103,101,39,115,32,112,97,116,104,46,32,
- 32,73,116,32,117,115,101,115,32,116,104,101,32,109,111,100,
- 117,108,101,32,110,97,109,101,10,32,32,32,32,116,111,32,
- 102,105,110,100,32,105,116,115,32,112,97,114,101,110,116,32,
- 109,111,100,117,108,101,44,32,97,110,100,32,102,114,111,109,
- 32,116,104,101,114,101,32,105,116,32,108,111,111,107,115,32,
- 117,112,32,116,104,101,32,112,97,114,101,110,116,39,115,10,
- 32,32,32,32,95,95,112,97,116,104,95,95,46,32,32,87,
- 104,101,110,32,116,104,105,115,32,99,104,97,110,103,101,115,
- 44,32,116,104,101,32,109,111,100,117,108,101,39,115,32,111,
- 119,110,32,112,97,116,104,32,105,115,32,114,101,99,111,109,
- 112,117,116,101,100,44,10,32,32,32,32,117,115,105,110,103,
- 32,112,97,116,104,95,102,105,110,100,101,114,46,32,32,70,
- 111,114,32,116,111,112,45,108,101,118,101,108,32,109,111,100,
- 117,108,101,115,44,32,116,104,101,32,112,97,114,101,110,116,
- 32,109,111,100,117,108,101,39,115,32,112,97,116,104,10,32,
- 32,32,32,105,115,32,115,121,115,46,112,97,116,104,46,99,
- 4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
- 3,0,0,0,67,0,0,0,115,36,0,0,0,124,1,124,
- 0,95,0,124,2,124,0,95,1,116,2,124,0,160,3,161,
- 0,131,1,124,0,95,4,124,3,124,0,95,5,100,0,83,
- 0,114,109,0,0,0,41,6,218,5,95,110,97,109,101,218,
- 5,95,112,97,116,104,114,111,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,118,0,0,0,114,116,0,0,0,114,43,0,0,0,90,
- 11,112,97,116,104,95,102,105,110,100,101,114,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,114,209,0,0,0,
- 119,4,0,0,115,8,0,0,0,0,1,6,1,6,1,14,
- 1,122,23,95,78,97,109,101,115,112,97,99,101,80,97,116,
- 104,46,95,95,105,110,105,116,95,95,99,1,0,0,0,0,
- 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,
- 0,0,0,115,38,0,0,0,124,0,106,0,160,1,100,1,
- 161,1,92,3,125,1,125,2,125,3,124,2,100,2,107,2,
- 114,30,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,70,0,0,0,114,39,0,0,0,41,2,114,8,0,0,
- 0,114,43,0,0,0,90,8,95,95,112,97,116,104,95,95,
- 41,2,114,23,1,0,0,114,40,0,0,0,41,4,114,118,
- 0,0,0,114,14,1,0,0,218,3,100,111,116,90,2,109,
- 101,114,3,0,0,0,114,3,0,0,0,114,6,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,125,4,0,0,115,8,0,
- 0,0,0,2,18,1,8,2,4,3,122,38,95,78,97,109,
- 101,115,112,97,99,101,80,97,116,104,46,95,102,105,110,100,
- 95,112,97,114,101,110,116,95,112,97,116,104,95,110,97,109,
- 101,115,99,1,0,0,0,0,0,0,0,0,0,0,0,3,
- 0,0,0,3,0,0,0,67,0,0,0,115,28,0,0,0,
- 124,0,160,0,161,0,92,2,125,1,125,2,116,1,116,2,
- 106,3,124,1,25,0,124,2,131,2,83,0,114,109,0,0,
- 0,41,4,114,30,1,0,0,114,130,0,0,0,114,8,0,
- 0,0,218,7,109,111,100,117,108,101,115,41,3,114,118,0,
- 0,0,90,18,112,97,114,101,110,116,95,109,111,100,117,108,
- 101,95,110,97,109,101,90,14,112,97,116,104,95,97,116,116,
- 114,95,110,97,109,101,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,114,25,1,0,0,135,4,0,0,115,4,
- 0,0,0,0,1,12,1,122,31,95,78,97,109,101,115,112,
- 97,99,101,80,97,116,104,46,95,103,101,116,95,112,97,114,
- 101,110,116,95,112,97,116,104,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,0,
- 0,115,80,0,0,0,116,0,124,0,160,1,161,0,131,1,
- 125,1,124,1,124,0,106,2,107,3,114,74,124,0,160,3,
- 124,0,106,4,124,1,161,2,125,2,124,2,100,0,107,9,
- 114,68,124,2,106,5,100,0,107,8,114,68,124,2,106,6,
- 114,68,124,2,106,6,124,0,95,7,124,1,124,0,95,2,
- 124,0,106,7,83,0,114,109,0,0,0,41,8,114,111,0,
- 0,0,114,25,1,0,0,114,26,1,0,0,114,27,1,0,
- 0,114,23,1,0,0,114,140,0,0,0,114,178,0,0,0,
- 114,24,1,0,0,41,3,114,118,0,0,0,90,11,112,97,
- 114,101,110,116,95,112,97,116,104,114,187,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,218,12,95,
- 114,101,99,97,108,99,117,108,97,116,101,139,4,0,0,115,
- 16,0,0,0,0,2,12,1,10,1,14,3,18,1,6,1,
- 8,1,6,1,122,27,95,78,97,109,101,115,112,97,99,101,
- 80,97,116,104,46,95,114,101,99,97,108,99,117,108,97,116,
- 101,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
- 0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,116,
- 0,124,0,160,1,161,0,131,1,83,0,114,109,0,0,0,
- 41,2,114,6,1,0,0,114,32,1,0,0,114,246,0,0,
- 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 218,8,95,95,105,116,101,114,95,95,152,4,0,0,115,2,
- 0,0,0,0,1,122,23,95,78,97,109,101,115,112,97,99,
- 101,80,97,116,104,46,95,95,105,116,101,114,95,95,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,
- 0,0,0,67,0,0,0,115,12,0,0,0,124,0,160,0,
- 161,0,124,1,25,0,83,0,114,109,0,0,0,169,1,114,
- 32,1,0,0,41,2,114,118,0,0,0,218,5,105,110,100,
- 101,120,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,218,11,95,95,103,101,116,105,116,101,109,95,95,155,4,
- 0,0,115,2,0,0,0,0,1,122,26,95,78,97,109,101,
- 115,112,97,99,101,80,97,116,104,46,95,95,103,101,116,105,
- 116,101,109,95,95,99,3,0,0,0,0,0,0,0,0,0,
- 0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,14,
- 0,0,0,124,2,124,0,106,0,124,1,60,0,100,0,83,
- 0,114,109,0,0,0,41,1,114,24,1,0,0,41,3,114,
- 118,0,0,0,114,35,1,0,0,114,43,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,218,11,95,
- 95,115,101,116,105,116,101,109,95,95,158,4,0,0,115,2,
- 0,0,0,0,1,122,26,95,78,97,109,101,115,112,97,99,
- 101,80,97,116,104,46,95,95,115,101,116,105,116,101,109,95,
- 95,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
- 0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,116,
- 0,124,0,160,1,161,0,131,1,83,0,114,109,0,0,0,
- 41,2,114,22,0,0,0,114,32,1,0,0,114,246,0,0,
- 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 218,7,95,95,108,101,110,95,95,161,4,0,0,115,2,0,
- 0,0,0,1,122,22,95,78,97,109,101,115,112,97,99,101,
- 80,97,116,104,46,95,95,108,101,110,95,95,99,1,0,0,
- 0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,
- 0,67,0,0,0,115,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,61,0,0,0,114,24,1,0,0,114,246,0,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
- 8,95,95,114,101,112,114,95,95,164,4,0,0,115,2,0,
- 0,0,0,1,122,23,95,78,97,109,101,115,112,97,99,101,
- 80,97,116,104,46,95,95,114,101,112,114,95,95,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,
- 0,0,67,0,0,0,115,12,0,0,0,124,1,124,0,160,
- 0,161,0,107,6,83,0,114,109,0,0,0,114,34,1,0,
- 0,169,2,114,118,0,0,0,218,4,105,116,101,109,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,218,12,95,
- 95,99,111,110,116,97,105,110,115,95,95,167,4,0,0,115,
- 2,0,0,0,0,1,122,27,95,78,97,109,101,115,112,97,
- 99,101,80,97,116,104,46,95,95,99,111,110,116,97,105,110,
- 115,95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,3,0,0,0,67,0,0,0,115,16,0,0,
- 0,124,0,106,0,160,1,124,1,161,1,1,0,100,0,83,
- 0,114,109,0,0,0,41,2,114,24,1,0,0,114,186,0,
- 0,0,114,40,1,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,114,186,0,0,0,170,4,0,0,115,
- 2,0,0,0,0,1,122,21,95,78,97,109,101,115,112,97,
- 99,101,80,97,116,104,46,97,112,112,101,110,100,78,41,15,
- 114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,114,
- 127,0,0,0,114,209,0,0,0,114,30,1,0,0,114,25,
- 1,0,0,114,32,1,0,0,114,33,1,0,0,114,36,1,
- 0,0,114,37,1,0,0,114,38,1,0,0,114,39,1,0,
- 0,114,42,1,0,0,114,186,0,0,0,114,3,0,0,0,
+ 213,0,0,0,195,4,0,0,115,2,0,0,0,0,1,122,
+ 25,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,
+ 114,46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
+ 0,0,0,115,4,0,0,0,100,1,83,0,114,210,0,0,
+ 0,114,3,0,0,0,114,211,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,114,212,0,0,0,198,
+ 4,0,0,115,2,0,0,0,0,1,122,30,95,78,97,109,
+ 101,115,112,97,99,101,76,111,97,100,101,114,46,99,114,101,
+ 97,116,101,95,109,111,100,117,108,101,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
+ 0,0,0,115,4,0,0,0,100,0,83,0,114,109,0,0,
+ 0,114,3,0,0,0,114,253,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,114,217,0,0,0,201,
+ 4,0,0,115,2,0,0,0,0,1,122,28,95,78,97,109,
+ 101,115,112,97,99,101,76,111,97,100,101,114,46,101,120,101,
+ 99,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,4,0,0,0,67,0,0,
+ 0,115,26,0,0,0,116,0,160,1,100,1,124,0,106,2,
+ 161,2,1,0,116,0,160,3,124,0,124,1,161,2,83,0,
+ 41,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,134,0,0,0,114,149,0,0,0,114,24,1,0,0,114,
+ 218,0,0,0,114,219,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,114,220,0,0,0,204,4,0,
+ 0,115,8,0,0,0,0,7,6,1,4,255,4,2,122,28,
+ 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
+ 46,108,111,97,100,95,109,111,100,117,108,101,78,41,12,114,
+ 125,0,0,0,114,124,0,0,0,114,126,0,0,0,114,209,
+ 0,0,0,114,207,0,0,0,114,44,1,0,0,114,182,0,
+ 0,0,114,229,0,0,0,114,213,0,0,0,114,212,0,0,
+ 0,114,217,0,0,0,114,220,0,0,0,114,3,0,0,0,
114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
- 22,1,0,0,112,4,0,0,115,24,0,0,0,8,1,4,
- 6,8,6,8,10,8,4,8,13,8,3,8,3,8,3,8,
- 3,8,3,8,3,114,22,1,0,0,99,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,64,
- 0,0,0,115,80,0,0,0,101,0,90,1,100,0,90,2,
- 100,1,100,2,132,0,90,3,101,4,100,3,100,4,132,0,
- 131,1,90,5,100,5,100,6,132,0,90,6,100,7,100,8,
- 132,0,90,7,100,9,100,10,132,0,90,8,100,11,100,12,
- 132,0,90,9,100,13,100,14,132,0,90,10,100,15,100,16,
- 132,0,90,11,100,17,83,0,41,18,218,16,95,78,97,109,
- 101,115,112,97,99,101,76,111,97,100,101,114,99,4,0,0,
- 0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,
- 0,67,0,0,0,115,18,0,0,0,116,0,124,1,124,2,
- 124,3,131,3,124,0,95,1,100,0,83,0,114,109,0,0,
- 0,41,2,114,22,1,0,0,114,24,1,0,0,114,28,1,
- 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,114,209,0,0,0,176,4,0,0,115,2,0,0,0,0,
- 1,122,25,95,78,97,109,101,115,112,97,99,101,76,111,97,
- 100,101,114,46,95,95,105,110,105,116,95,95,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,
- 0,67,0,0,0,115,12,0,0,0,100,1,160,0,124,1,
- 106,1,161,1,83,0,41,2,122,115,82,101,116,117,114,110,
- 32,114,101,112,114,32,102,111,114,32,116,104,101,32,109,111,
- 100,117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,
- 104,101,32,109,101,116,104,111,100,32,105,115,32,100,101,112,
- 114,101,99,97,116,101,100,46,32,32,84,104,101,32,105,109,
- 112,111,114,116,32,109,97,99,104,105,110,101,114,121,32,100,
- 111,101,115,32,116,104,101,32,106,111,98,32,105,116,115,101,
- 108,102,46,10,10,32,32,32,32,32,32,32,32,122,25,60,
- 109,111,100,117,108,101,32,123,33,114,125,32,40,110,97,109,
- 101,115,112,97,99,101,41,62,41,2,114,61,0,0,0,114,
- 125,0,0,0,41,2,114,193,0,0,0,114,216,0,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
- 11,109,111,100,117,108,101,95,114,101,112,114,179,4,0,0,
- 115,2,0,0,0,0,7,122,28,95,78,97,109,101,115,112,
- 97,99,101,76,111,97,100,101,114,46,109,111,100,117,108,101,
- 95,114,101,112,114,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,
- 0,0,0,100,1,83,0,41,2,78,84,114,3,0,0,0,
- 114,219,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,182,0,0,0,188,4,0,0,115,2,0,
- 0,0,0,1,122,27,95,78,97,109,101,115,112,97,99,101,
- 76,111,97,100,101,114,46,105,115,95,112,97,99,107,97,103,
- 101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,
- 1,83,0,41,2,78,114,39,0,0,0,114,3,0,0,0,
- 114,219,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,229,0,0,0,191,4,0,0,115,2,0,
- 0,0,0,1,122,27,95,78,97,109,101,115,112,97,99,101,
- 76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,
- 101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,6,0,0,0,67,0,0,0,115,16,0,0,0,116,
- 0,100,1,100,2,100,3,100,4,100,5,141,4,83,0,41,
- 6,78,114,39,0,0,0,122,8,60,115,116,114,105,110,103,
- 62,114,215,0,0,0,84,41,1,114,231,0,0,0,41,1,
- 114,232,0,0,0,114,219,0,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,114,213,0,0,0,194,4,
- 0,0,115,2,0,0,0,0,1,122,25,95,78,97,109,101,
- 115,112,97,99,101,76,111,97,100,101,114,46,103,101,116,95,
- 99,111,100,101,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,
- 0,0,100,1,83,0,114,210,0,0,0,114,3,0,0,0,
- 114,211,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,212,0,0,0,197,4,0,0,115,2,0,
- 0,0,0,1,122,30,95,78,97,109,101,115,112,97,99,101,
- 76,111,97,100,101,114,46,99,114,101,97,116,101,95,109,111,
- 100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,
- 0,0,100,0,83,0,114,109,0,0,0,114,3,0,0,0,
- 114,253,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,217,0,0,0,200,4,0,0,115,2,0,
- 0,0,0,1,122,28,95,78,97,109,101,115,112,97,99,101,
- 76,111,97,100,101,114,46,101,120,101,99,95,109,111,100,117,
- 108,101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,4,0,0,0,67,0,0,0,115,26,0,0,0,
- 116,0,160,1,100,1,124,0,106,2,161,2,1,0,116,0,
- 160,3,124,0,124,1,161,2,83,0,41,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,134,0,0,0,114,
- 149,0,0,0,114,24,1,0,0,114,218,0,0,0,114,219,
- 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
- 0,0,114,220,0,0,0,203,4,0,0,115,8,0,0,0,
- 0,7,6,1,4,255,4,2,122,28,95,78,97,109,101,115,
- 112,97,99,101,76,111,97,100,101,114,46,108,111,97,100,95,
- 109,111,100,117,108,101,78,41,12,114,125,0,0,0,114,124,
- 0,0,0,114,126,0,0,0,114,209,0,0,0,114,207,0,
- 0,0,114,44,1,0,0,114,182,0,0,0,114,229,0,0,
- 0,114,213,0,0,0,114,212,0,0,0,114,217,0,0,0,
- 114,220,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,114,43,1,0,0,175,4,
- 0,0,115,18,0,0,0,8,1,8,3,2,1,10,8,8,
- 3,8,3,8,3,8,3,8,3,114,43,1,0,0,99,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
- 0,0,0,64,0,0,0,115,118,0,0,0,101,0,90,1,
- 100,0,90,2,100,1,90,3,101,4,100,2,100,3,132,0,
- 131,1,90,5,101,4,100,4,100,5,132,0,131,1,90,6,
- 101,4,100,6,100,7,132,0,131,1,90,7,101,4,100,8,
- 100,9,132,0,131,1,90,8,101,4,100,19,100,11,100,12,
- 132,1,131,1,90,9,101,4,100,20,100,13,100,14,132,1,
- 131,1,90,10,101,4,100,21,100,15,100,16,132,1,131,1,
- 90,11,101,4,100,17,100,18,132,0,131,1,90,12,100,10,
- 83,0,41,22,218,10,80,97,116,104,70,105,110,100,101,114,
- 122,62,77,101,116,97,32,112,97,116,104,32,102,105,110,100,
- 101,114,32,102,111,114,32,115,121,115,46,112,97,116,104,32,
- 97,110,100,32,112,97,99,107,97,103,101,32,95,95,112,97,
- 116,104,95,95,32,97,116,116,114,105,98,117,116,101,115,46,
- 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
- 0,4,0,0,0,67,0,0,0,115,64,0,0,0,116,0,
- 116,1,106,2,160,3,161,0,131,1,68,0,93,44,92,2,
- 125,1,125,2,124,2,100,1,107,8,114,40,116,1,106,2,
- 124,1,61,0,113,14,116,4,124,2,100,2,131,2,114,14,
- 124,2,160,5,161,0,1,0,113,14,100,1,83,0,41,3,
- 122,125,67,97,108,108,32,116,104,101,32,105,110,118,97,108,
- 105,100,97,116,101,95,99,97,99,104,101,115,40,41,32,109,
- 101,116,104,111,100,32,111,110,32,97,108,108,32,112,97,116,
- 104,32,101,110,116,114,121,32,102,105,110,100,101,114,115,10,
- 32,32,32,32,32,32,32,32,115,116,111,114,101,100,32,105,
- 110,32,115,121,115,46,112,97,116,104,95,105,109,112,111,114,
- 116,101,114,95,99,97,99,104,101,115,32,40,119,104,101,114,
- 101,32,105,109,112,108,101,109,101,110,116,101,100,41,46,78,
- 218,17,105,110,118,97,108,105,100,97,116,101,95,99,97,99,
- 104,101,115,41,6,218,4,108,105,115,116,114,8,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,128,0,0,
- 0,114,46,1,0,0,41,3,114,193,0,0,0,114,116,0,
- 0,0,218,6,102,105,110,100,101,114,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,114,46,1,0,0,221,4,
- 0,0,115,10,0,0,0,0,4,22,1,8,1,10,1,10,
- 1,122,28,80,97,116,104,70,105,110,100,101,114,46,105,110,
- 118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
- 9,0,0,0,67,0,0,0,115,84,0,0,0,116,0,106,
- 1,100,1,107,9,114,28,116,0,106,1,115,28,116,2,160,
- 3,100,2,116,4,161,2,1,0,116,0,106,1,68,0,93,
- 44,125,2,122,14,124,2,124,1,131,1,87,0,2,0,1,
- 0,83,0,4,0,116,5,107,10,114,76,1,0,1,0,1,
- 0,89,0,113,34,89,0,113,34,48,0,113,34,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,
- 8,0,0,0,218,10,112,97,116,104,95,104,111,111,107,115,
- 114,74,0,0,0,114,75,0,0,0,114,138,0,0,0,114,
- 117,0,0,0,41,3,114,193,0,0,0,114,43,0,0,0,
- 90,4,104,111,111,107,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,218,11,95,112,97,116,104,95,104,111,111,
- 107,115,231,4,0,0,115,16,0,0,0,0,3,16,1,12,
- 1,10,1,2,1,14,1,14,1,12,2,122,22,80,97,116,
- 104,70,105,110,100,101,114,46,95,112,97,116,104,95,104,111,
- 111,107,115,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 3,0,0,0,8,0,0,0,67,0,0,0,115,104,0,0,
- 0,124,1,100,1,107,2,114,44,122,12,116,0,160,1,161,
- 0,125,1,87,0,110,22,4,0,116,2,107,10,114,42,1,
- 0,1,0,1,0,89,0,100,2,83,0,48,0,122,14,116,
- 3,106,4,124,1,25,0,125,2,87,0,110,40,4,0,116,
- 5,107,10,114,98,1,0,1,0,1,0,124,0,160,6,124,
+ 43,1,0,0,176,4,0,0,115,18,0,0,0,8,1,8,
+ 3,2,1,10,8,8,3,8,3,8,3,8,3,8,3,114,
+ 43,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,4,0,0,0,64,0,0,0,115,118,0,
+ 0,0,101,0,90,1,100,0,90,2,100,1,90,3,101,4,
+ 100,2,100,3,132,0,131,1,90,5,101,4,100,4,100,5,
+ 132,0,131,1,90,6,101,4,100,6,100,7,132,0,131,1,
+ 90,7,101,4,100,8,100,9,132,0,131,1,90,8,101,4,
+ 100,19,100,11,100,12,132,1,131,1,90,9,101,4,100,20,
+ 100,13,100,14,132,1,131,1,90,10,101,4,100,21,100,15,
+ 100,16,132,1,131,1,90,11,101,4,100,17,100,18,132,0,
+ 131,1,90,12,100,10,83,0,41,22,218,10,80,97,116,104,
+ 70,105,110,100,101,114,122,62,77,101,116,97,32,112,97,116,
+ 104,32,102,105,110,100,101,114,32,102,111,114,32,115,121,115,
+ 46,112,97,116,104,32,97,110,100,32,112,97,99,107,97,103,
+ 101,32,95,95,112,97,116,104,95,95,32,97,116,116,114,105,
+ 98,117,116,101,115,46,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,3,0,0,0,4,0,0,0,67,0,0,0,115,
+ 64,0,0,0,116,0,116,1,106,2,160,3,161,0,131,1,
+ 68,0,93,44,92,2,125,1,125,2,124,2,100,1,117,0,
+ 114,40,116,1,106,2,124,1,61,0,113,14,116,4,124,2,
+ 100,2,131,2,114,14,124,2,160,5,161,0,1,0,113,14,
+ 100,1,83,0,41,3,122,125,67,97,108,108,32,116,104,101,
+ 32,105,110,118,97,108,105,100,97,116,101,95,99,97,99,104,
+ 101,115,40,41,32,109,101,116,104,111,100,32,111,110,32,97,
+ 108,108,32,112,97,116,104,32,101,110,116,114,121,32,102,105,
+ 110,100,101,114,115,10,32,32,32,32,32,32,32,32,115,116,
+ 111,114,101,100,32,105,110,32,115,121,115,46,112,97,116,104,
+ 95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,115,
+ 32,40,119,104,101,114,101,32,105,109,112,108,101,109,101,110,
+ 116,101,100,41,46,78,218,17,105,110,118,97,108,105,100,97,
+ 116,101,95,99,97,99,104,101,115,41,6,218,4,108,105,115,
+ 116,114,8,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,128,0,0,0,114,46,1,0,0,41,3,114,193,
+ 0,0,0,114,116,0,0,0,218,6,102,105,110,100,101,114,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
+ 46,1,0,0,222,4,0,0,115,10,0,0,0,0,4,22,
+ 1,8,1,10,1,10,1,122,28,80,97,116,104,70,105,110,
+ 100,101,114,46,105,110,118,97,108,105,100,97,116,101,95,99,
+ 97,99,104,101,115,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,3,0,0,0,9,0,0,0,67,0,0,0,115,82,
+ 0,0,0,116,0,106,1,100,1,117,1,114,28,116,0,106,
+ 1,115,28,116,2,160,3,100,2,116,4,161,2,1,0,116,
+ 0,106,1,68,0,93,42,125,2,122,14,124,2,124,1,131,
+ 1,87,0,2,0,1,0,83,0,4,0,116,5,121,74,1,
+ 0,1,0,1,0,89,0,113,34,89,0,113,34,48,0,113,
+ 34,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,8,0,0,0,218,10,112,97,116,104,95,104,
+ 111,111,107,115,114,74,0,0,0,114,75,0,0,0,114,138,
+ 0,0,0,114,117,0,0,0,41,3,114,193,0,0,0,114,
+ 43,0,0,0,90,4,104,111,111,107,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,218,11,95,112,97,116,104,
+ 95,104,111,111,107,115,232,4,0,0,115,16,0,0,0,0,
+ 3,16,1,12,1,10,1,2,1,14,1,12,1,12,2,122,
+ 22,80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,
+ 104,95,104,111,111,107,115,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,3,0,0,0,8,0,0,0,67,0,0,0,
+ 115,100,0,0,0,124,1,100,1,107,2,114,42,122,12,116,
+ 0,160,1,161,0,125,1,87,0,110,20,4,0,116,2,121,
+ 40,1,0,1,0,1,0,89,0,100,2,83,0,48,0,122,
+ 14,116,3,106,4,124,1,25,0,125,2,87,0,110,38,4,
+ 0,116,5,121,94,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,110,2,48,0,124,2,83,0,41,3,122,210,71,101,116,
32,116,104,101,32,102,105,110,100,101,114,32,102,111,114,32,
@@ -2137,16 +2134,16 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
3,114,193,0,0,0,114,43,0,0,0,114,50,1,0,0,
114,3,0,0,0,114,3,0,0,0,114,6,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,244,4,0,0,115,22,0,0,0,0,8,
- 8,1,2,1,12,1,14,3,8,1,2,1,14,1,14,1,
+ 99,97,99,104,101,245,4,0,0,115,22,0,0,0,0,8,
+ 8,1,2,1,12,1,12,3,8,1,2,1,14,1,12,1,
10,1,16,1,122,31,80,97,116,104,70,105,110,100,101,114,
46,95,112,97,116,104,95,105,109,112,111,114,116,101,114,95,
99,97,99,104,101,99,3,0,0,0,0,0,0,0,0,0,
0,0,6,0,0,0,4,0,0,0,67,0,0,0,115,82,
0,0,0,116,0,124,2,100,1,131,2,114,26,124,2,160,
1,124,1,161,1,92,2,125,3,125,4,110,14,124,2,160,
- 2,124,1,161,1,125,3,103,0,125,4,124,3,100,0,107,
- 9,114,60,116,3,160,4,124,1,124,3,161,2,83,0,116,
+ 2,124,1,161,1,125,3,103,0,125,4,124,3,100,0,117,
+ 1,114,60,116,3,160,4,124,1,124,3,161,2,83,0,116,
3,160,5,124,1,100,0,161,2,125,5,124,4,124,5,95,
6,124,5,83,0,41,2,78,114,137,0,0,0,41,7,114,
128,0,0,0,114,137,0,0,0,114,206,0,0,0,114,134,
@@ -2155,7 +2152,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
1,0,0,114,140,0,0,0,114,141,0,0,0,114,187,0,
0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
0,218,16,95,108,101,103,97,99,121,95,103,101,116,95,115,
- 112,101,99,10,5,0,0,115,18,0,0,0,0,4,10,1,
+ 112,101,99,11,5,0,0,115,18,0,0,0,0,4,10,1,
16,2,10,1,4,1,8,1,12,1,12,1,6,1,122,27,
80,97,116,104,70,105,110,100,101,114,46,95,108,101,103,97,
99,121,95,103,101,116,95,115,112,101,99,78,99,4,0,0,
@@ -2163,12 +2160,12 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
0,67,0,0,0,115,166,0,0,0,103,0,125,4,124,2,
68,0,93,134,125,5,116,0,124,5,116,1,116,2,102,2,
131,2,115,28,113,8,124,0,160,3,124,5,161,1,125,6,
- 124,6,100,1,107,9,114,8,116,4,124,6,100,2,131,2,
+ 124,6,100,1,117,1,114,8,116,4,124,6,100,2,131,2,
114,70,124,6,160,5,124,1,124,3,161,2,125,7,110,12,
124,0,160,6,124,1,124,6,161,2,125,7,124,7,100,1,
- 107,8,114,92,113,8,124,7,106,7,100,1,107,9,114,110,
+ 117,0,114,92,113,8,124,7,106,7,100,1,117,1,114,110,
124,7,2,0,1,0,83,0,124,7,106,8,125,8,124,8,
- 100,1,107,8,114,132,116,9,100,3,131,1,130,1,124,4,
+ 100,1,117,0,114,132,116,9,100,3,131,1,130,1,124,4,
160,10,124,8,161,1,1,0,113,8,116,11,160,12,124,1,
100,1,161,2,125,7,124,4,124,7,95,8,124,7,83,0,
41,4,122,63,70,105,110,100,32,116,104,101,32,108,111,97,
@@ -2186,16 +2183,16 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
112,97,99,101,95,112,97,116,104,90,5,101,110,116,114,121,
114,50,1,0,0,114,187,0,0,0,114,141,0,0,0,114,
3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,9,
- 95,103,101,116,95,115,112,101,99,25,5,0,0,115,40,0,
+ 95,103,101,116,95,115,112,101,99,26,5,0,0,115,40,0,
0,0,0,5,4,1,8,1,14,1,2,1,10,1,8,1,
10,1,14,2,12,1,8,1,2,1,10,1,8,1,6,1,
8,1,8,5,12,2,12,1,6,1,122,20,80,97,116,104,
70,105,110,100,101,114,46,95,103,101,116,95,115,112,101,99,
99,4,0,0,0,0,0,0,0,0,0,0,0,6,0,0,
0,5,0,0,0,67,0,0,0,115,100,0,0,0,124,2,
- 100,1,107,8,114,14,116,0,106,1,125,2,124,0,160,2,
- 124,1,124,2,124,3,161,3,125,4,124,4,100,1,107,8,
- 114,40,100,1,83,0,124,4,106,3,100,1,107,8,114,92,
+ 100,1,117,0,114,14,116,0,106,1,125,2,124,0,160,2,
+ 124,1,124,2,124,3,161,3,125,4,124,4,100,1,117,0,
+ 114,40,100,1,83,0,124,4,106,3,100,1,117,0,114,92,
124,4,106,4,125,5,124,5,114,86,100,1,124,4,95,5,
116,6,124,1,124,5,124,0,106,2,131,3,124,4,95,4,
124,4,83,0,100,1,83,0,110,4,124,4,83,0,100,1,
@@ -2213,14 +2210,14 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
181,0,0,0,114,22,1,0,0,41,6,114,193,0,0,0,
114,139,0,0,0,114,43,0,0,0,114,202,0,0,0,114,
187,0,0,0,114,57,1,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,114,203,0,0,0,57,5,0,
+ 0,0,0,114,6,0,0,0,114,203,0,0,0,58,5,0,
0,115,26,0,0,0,0,6,8,1,6,1,14,1,8,1,
4,1,10,1,6,1,4,3,6,1,16,1,4,2,6,2,
122,20,80,97,116,104,70,105,110,100,101,114,46,102,105,110,
100,95,115,112,101,99,99,3,0,0,0,0,0,0,0,0,
0,0,0,4,0,0,0,4,0,0,0,67,0,0,0,115,
30,0,0,0,124,0,160,0,124,1,124,2,161,2,125,3,
- 124,3,100,1,107,8,114,24,100,1,83,0,124,3,106,1,
+ 124,3,100,1,117,0,114,24,100,1,83,0,124,3,106,1,
83,0,41,2,122,170,102,105,110,100,32,116,104,101,32,109,
111,100,117,108,101,32,111,110,32,115,121,115,46,112,97,116,
104,32,111,114,32,39,112,97,116,104,39,32,98,97,115,101,
@@ -2233,7 +2230,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
101,32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,
115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,
78,114,204,0,0,0,114,205,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,206,0,0,0,81,
+ 114,3,0,0,0,114,6,0,0,0,114,206,0,0,0,82,
5,0,0,115,8,0,0,0,0,8,12,1,8,1,4,1,
122,22,80,97,116,104,70,105,110,100,101,114,46,102,105,110,
100,95,109,111,100,117,108,101,99,1,0,0,0,0,0,0,
@@ -2265,7 +2262,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
100,95,100,105,115,116,114,105,98,117,116,105,111,110,115,41,
4,114,193,0,0,0,114,119,0,0,0,114,120,0,0,0,
114,59,1,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,60,1,0,0,94,5,0,0,115,4,0,
+ 6,0,0,0,114,60,1,0,0,95,5,0,0,115,4,0,
0,0,0,10,12,1,122,29,80,97,116,104,70,105,110,100,
101,114,46,102,105,110,100,95,100,105,115,116,114,105,98,117,
116,105,111,110,115,41,1,78,41,2,78,78,41,1,78,41,
@@ -2274,7 +2271,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
52,1,0,0,114,54,1,0,0,114,55,1,0,0,114,58,
1,0,0,114,203,0,0,0,114,206,0,0,0,114,60,1,
0,0,114,3,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,114,45,1,0,0,217,4,0,0,115,
+ 0,114,6,0,0,0,114,45,1,0,0,218,4,0,0,115,
34,0,0,0,8,2,4,2,2,1,10,9,2,1,10,12,
2,1,10,21,2,1,10,14,2,1,12,31,2,1,12,23,
2,1,12,12,2,1,114,45,1,0,0,99,0,0,0,0,
@@ -2319,7 +2316,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
14,125,1,124,1,136,0,102,2,86,0,1,0,113,2,100,
0,83,0,114,109,0,0,0,114,3,0,0,0,114,16,1,
0,0,169,1,114,140,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,114,19,1,0,0,123,5,0,0,115,4,0,0,
+ 0,0,0,114,19,1,0,0,124,5,0,0,115,4,0,0,
0,4,0,2,0,122,38,70,105,108,101,70,105,110,100,101,
114,46,95,95,105,110,105,116,95,95,46,60,108,111,99,97,
108,115,62,46,60,103,101,110,101,120,112,114,62,114,70,0,
@@ -2332,7 +2329,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
108,111,97,100,101,114,95,100,101,116,97,105,108,115,90,7,
108,111,97,100,101,114,115,114,189,0,0,0,114,3,0,0,
0,114,62,1,0,0,114,6,0,0,0,114,209,0,0,0,
- 117,5,0,0,115,16,0,0,0,0,4,4,1,12,1,26,
+ 118,5,0,0,115,16,0,0,0,0,4,4,1,12,1,26,
1,6,2,10,1,6,1,8,1,122,19,70,105,108,101,70,
105,110,100,101,114,46,95,95,105,110,105,116,95,95,99,1,
0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,
@@ -2341,13 +2338,13 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
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,104,0,0,0,78,41,
1,114,64,1,0,0,114,246,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,46,1,0,0,131,
+ 114,3,0,0,0,114,6,0,0,0,114,46,1,0,0,132,
5,0,0,115,2,0,0,0,0,2,122,28,70,105,108,101,
70,105,110,100,101,114,46,105,110,118,97,108,105,100,97,116,
101,95,99,97,99,104,101,115,99,2,0,0,0,0,0,0,
0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,
0,115,42,0,0,0,124,0,160,0,124,1,161,1,125,2,
- 124,2,100,1,107,8,114,26,100,1,103,0,102,2,83,0,
+ 124,2,100,1,117,0,114,26,100,1,103,0,102,2,83,0,
124,2,106,1,124,2,106,2,112,38,103,0,102,2,83,0,
41,2,122,197,84,114,121,32,116,111,32,102,105,110,100,32,
97,32,108,111,97,100,101,114,32,102,111,114,32,116,104,101,
@@ -2365,7 +2362,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
0,114,140,0,0,0,114,178,0,0,0,41,3,114,118,0,
0,0,114,139,0,0,0,114,187,0,0,0,114,3,0,0,
0,114,3,0,0,0,114,6,0,0,0,114,137,0,0,0,
- 137,5,0,0,115,8,0,0,0,0,7,10,1,8,1,8,
+ 138,5,0,0,115,8,0,0,0,0,7,10,1,8,1,8,
1,122,22,70,105,108,101,70,105,110,100,101,114,46,102,105,
110,100,95,108,111,97,100,101,114,99,6,0,0,0,0,0,
0,0,0,0,0,0,7,0,0,0,6,0,0,0,67,0,
@@ -2375,363 +2372,362 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
41,7,114,118,0,0,0,114,188,0,0,0,114,139,0,0,
0,114,43,0,0,0,90,4,115,109,115,108,114,202,0,0,
0,114,140,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,114,58,1,0,0,149,5,0,0,115,8,
+ 114,6,0,0,0,114,58,1,0,0,150,5,0,0,115,8,
0,0,0,0,1,10,1,8,1,2,255,122,20,70,105,108,
101,70,105,110,100,101,114,46,95,103,101,116,95,115,112,101,
99,78,99,3,0,0,0,0,0,0,0,0,0,0,0,14,
- 0,0,0,8,0,0,0,67,0,0,0,115,98,1,0,0,
+ 0,0,0,8,0,0,0,67,0,0,0,115,96,1,0,0,
100,1,125,3,124,1,160,0,100,2,161,1,100,3,25,0,
125,4,122,24,116,1,124,0,106,2,112,34,116,3,160,4,
- 161,0,131,1,106,5,125,5,87,0,110,24,4,0,116,6,
- 107,10,114,66,1,0,1,0,1,0,100,4,125,5,89,0,
- 110,2,48,0,124,5,124,0,106,7,107,3,114,92,124,0,
- 160,8,161,0,1,0,124,5,124,0,95,7,116,9,131,0,
- 114,114,124,0,106,10,125,6,124,4,160,11,161,0,125,7,
- 110,10,124,0,106,12,125,6,124,4,125,7,124,7,124,6,
- 107,6,114,218,116,13,124,0,106,2,124,4,131,2,125,8,
- 124,0,106,14,68,0,93,58,92,2,125,9,125,10,100,5,
- 124,9,23,0,125,11,116,13,124,8,124,11,131,2,125,12,
- 116,15,124,12,131,1,114,150,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,150,116,17,124,8,131,1,125,3,124,0,106,14,68,0,
- 93,82,92,2,125,9,125,10,116,13,124,0,106,2,124,4,
- 124,9,23,0,131,2,125,12,116,18,106,19,100,6,124,12,
- 100,3,100,7,141,3,1,0,124,7,124,9,23,0,124,6,
- 107,6,114,224,116,15,124,12,131,1,114,224,124,0,160,16,
- 124,10,124,1,124,12,100,8,124,2,161,5,2,0,1,0,
- 83,0,113,224,124,3,144,1,114,94,116,18,160,19,100,9,
- 124,8,161,2,1,0,116,18,160,20,124,1,100,8,161,2,
- 125,13,124,8,103,1,124,13,95,21,124,13,83,0,100,8,
- 83,0,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,70,0,0,0,114,27,0,0,0,
- 114,104,0,0,0,114,209,0,0,0,122,9,116,114,121,105,
- 110,103,32,123,125,41,1,90,9,118,101,114,98,111,115,105,
- 116,121,78,122,25,112,111,115,115,105,98,108,101,32,110,97,
- 109,101,115,112,97,99,101,32,102,111,114,32,123,125,41,22,
- 114,40,0,0,0,114,48,0,0,0,114,43,0,0,0,114,
- 2,0,0,0,114,54,0,0,0,114,10,1,0,0,114,49,
- 0,0,0,114,64,1,0,0,218,11,95,102,105,108,108,95,
- 99,97,99,104,101,114,7,0,0,0,114,67,1,0,0,114,
- 105,0,0,0,114,66,1,0,0,114,37,0,0,0,114,63,
- 1,0,0,114,53,0,0,0,114,58,1,0,0,114,55,0,
- 0,0,114,134,0,0,0,114,149,0,0,0,114,183,0,0,
- 0,114,178,0,0,0,41,14,114,118,0,0,0,114,139,0,
- 0,0,114,202,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,169,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,17,1,0,0,114,188,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,187,0,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
- 203,0,0,0,154,5,0,0,115,74,0,0,0,0,5,4,
- 1,14,1,2,1,24,1,14,1,10,1,10,1,8,1,6,
- 2,6,1,6,1,10,2,6,1,4,2,8,1,12,1,14,
- 1,8,1,10,1,8,1,26,4,8,2,14,1,16,1,16,
- 1,12,1,8,1,10,1,2,0,2,255,10,2,6,1,12,
- 1,12,1,8,1,4,1,122,20,70,105,108,101,70,105,110,
- 100,101,114,46,102,105,110,100,95,115,112,101,99,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,9,0,0,0,10,0,
- 0,0,67,0,0,0,115,190,0,0,0,124,0,106,0,125,
- 1,122,22,116,1,160,2,124,1,112,22,116,1,160,3,161,
- 0,161,1,125,2,87,0,110,30,4,0,116,4,116,5,116,
- 6,102,3,107,10,114,58,1,0,1,0,1,0,103,0,125,
- 2,89,0,110,2,48,0,116,7,106,8,160,9,100,1,161,
- 1,115,84,116,10,124,2,131,1,124,0,95,11,110,74,116,
- 10,131,0,125,3,124,2,68,0,93,56,125,4,124,4,160,
- 12,100,2,161,1,92,3,125,5,125,6,125,7,124,6,114,
- 136,100,3,160,13,124,5,124,7,160,14,161,0,161,2,125,
- 8,110,4,124,5,125,8,124,3,160,15,124,8,161,1,1,
- 0,113,94,124,3,124,0,95,11,116,7,106,8,160,9,116,
- 16,161,1,114,186,100,4,100,5,132,0,124,2,68,0,131,
- 1,124,0,95,17,100,6,83,0,41,7,122,68,70,105,108,
- 108,32,116,104,101,32,99,97,99,104,101,32,111,102,32,112,
- 111,116,101,110,116,105,97,108,32,109,111,100,117,108,101,115,
- 32,97,110,100,32,112,97,99,107,97,103,101,115,32,102,111,
- 114,32,116,104,105,115,32,100,105,114,101,99,116,111,114,121,
- 46,114,0,0,0,0,114,70,0,0,0,114,60,0,0,0,
- 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
- 0,4,0,0,0,83,0,0,0,115,20,0,0,0,104,0,
- 124,0,93,12,125,1,124,1,160,0,161,0,146,2,113,4,
- 83,0,114,3,0,0,0,41,1,114,105,0,0,0,41,2,
- 114,31,0,0,0,90,2,102,110,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,218,9,60,115,101,116,99,111,
- 109,112,62,231,5,0,0,115,4,0,0,0,6,0,2,0,
- 122,41,70,105,108,101,70,105,110,100,101,114,46,95,102,105,
- 108,108,95,99,97,99,104,101,46,60,108,111,99,97,108,115,
- 62,46,60,115,101,116,99,111,109,112,62,78,41,18,114,43,
- 0,0,0,114,2,0,0,0,114,7,1,0,0,114,54,0,
- 0,0,114,3,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,8,0,0,
- 0,114,9,0,0,0,114,10,0,0,0,114,65,1,0,0,
- 114,66,1,0,0,114,100,0,0,0,114,61,0,0,0,114,
- 105,0,0,0,218,3,97,100,100,114,11,0,0,0,114,67,
- 1,0,0,41,9,114,118,0,0,0,114,43,0,0,0,114,
- 8,1,0,0,90,21,108,111,119,101,114,95,115,117,102,102,
- 105,120,95,99,111,110,116,101,110,116,115,114,41,1,0,0,
- 114,116,0,0,0,114,29,1,0,0,114,17,1,0,0,90,
- 8,110,101,119,95,110,97,109,101,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,114,69,1,0,0,202,5,0,
- 0,115,34,0,0,0,0,2,6,1,2,1,22,1,20,3,
- 10,3,12,1,12,7,6,1,8,1,16,1,4,1,18,2,
- 4,1,12,1,6,1,12,1,122,22,70,105,108,101,70,105,
- 110,100,101,114,46,95,102,105,108,108,95,99,97,99,104,101,
- 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
- 0,3,0,0,0,7,0,0,0,115,18,0,0,0,135,0,
- 135,1,102,2,100,1,100,2,132,8,125,2,124,2,83,0,
- 41,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,1,0,0,0,4,0,0,0,
- 19,0,0,0,115,34,0,0,0,116,0,124,0,131,1,115,
- 20,116,1,100,1,124,0,100,2,141,2,130,1,136,0,124,
- 0,102,1,136,1,158,2,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,47,0,0,
- 0,41,2,114,55,0,0,0,114,117,0,0,0,114,47,0,
- 0,0,169,2,114,193,0,0,0,114,68,1,0,0,114,3,
- 0,0,0,114,6,0,0,0,218,24,112,97,116,104,95,104,
- 111,111,107,95,102,111,114,95,70,105,108,101,70,105,110,100,
- 101,114,243,5,0,0,115,6,0,0,0,0,2,8,1,12,
- 1,122,54,70,105,108,101,70,105,110,100,101,114,46,112,97,
- 116,104,95,104,111,111,107,46,60,108,111,99,97,108,115,62,
- 46,112,97,116,104,95,104,111,111,107,95,102,111,114,95,70,
- 105,108,101,70,105,110,100,101,114,114,3,0,0,0,41,3,
- 114,193,0,0,0,114,68,1,0,0,114,75,1,0,0,114,
- 3,0,0,0,114,74,1,0,0,114,6,0,0,0,218,9,
- 112,97,116,104,95,104,111,111,107,233,5,0,0,115,4,0,
- 0,0,0,10,14,6,122,20,70,105,108,101,70,105,110,100,
- 101,114,46,112,97,116,104,95,104,111,111,107,99,1,0,0,
- 0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,
- 0,67,0,0,0,115,12,0,0,0,100,1,160,0,124,0,
- 106,1,161,1,83,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,61,0,
- 0,0,114,43,0,0,0,114,246,0,0,0,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,114,39,1,0,0,
- 251,5,0,0,115,2,0,0,0,0,1,122,19,70,105,108,
- 101,70,105,110,100,101,114,46,95,95,114,101,112,114,95,95,
- 41,1,78,41,15,114,125,0,0,0,114,124,0,0,0,114,
- 126,0,0,0,114,127,0,0,0,114,209,0,0,0,114,46,
- 1,0,0,114,143,0,0,0,114,206,0,0,0,114,137,0,
- 0,0,114,58,1,0,0,114,203,0,0,0,114,69,1,0,
- 0,114,207,0,0,0,114,76,1,0,0,114,39,1,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,61,1,0,0,108,5,0,0,115,22,0,
- 0,0,8,2,4,7,8,14,8,4,4,2,8,12,8,5,
- 10,48,8,31,2,1,10,17,114,61,1,0,0,99,4,0,
- 0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,0,
- 0,0,67,0,0,0,115,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,66,124,5,114,36,124,5,106,1,125,4,110,30,124,
- 2,124,3,107,2,114,56,116,2,124,1,124,2,131,2,125,
- 4,110,10,116,3,124,1,124,2,131,2,125,4,124,5,115,
- 84,116,4,124,1,124,2,124,4,100,3,141,3,125,5,122,
- 36,124,5,124,0,100,2,60,0,124,4,124,0,100,1,60,
- 0,124,2,124,0,100,4,60,0,124,3,124,0,100,5,60,
- 0,87,0,110,20,4,0,116,5,107,10,114,140,1,0,1,
- 0,1,0,89,0,110,2,48,0,100,0,83,0,41,6,78,
- 218,10,95,95,108,111,97,100,101,114,95,95,218,8,95,95,
- 115,112,101,99,95,95,114,62,1,0,0,90,8,95,95,102,
- 105,108,101,95,95,90,10,95,95,99,97,99,104,101,100,95,
- 95,41,6,218,3,103,101,116,114,140,0,0,0,114,15,1,
- 0,0,114,9,1,0,0,114,190,0,0,0,218,9,69,120,
- 99,101,112,116,105,111,110,41,6,90,2,110,115,114,116,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,140,0,0,0,114,187,0,0,
+ 161,0,131,1,106,5,125,5,87,0,110,22,4,0,116,6,
+ 121,64,1,0,1,0,1,0,100,4,125,5,89,0,110,2,
+ 48,0,124,5,124,0,106,7,107,3,114,90,124,0,160,8,
+ 161,0,1,0,124,5,124,0,95,7,116,9,131,0,114,112,
+ 124,0,106,10,125,6,124,4,160,11,161,0,125,7,110,10,
+ 124,0,106,12,125,6,124,4,125,7,124,7,124,6,118,0,
+ 114,216,116,13,124,0,106,2,124,4,131,2,125,8,124,0,
+ 106,14,68,0,93,58,92,2,125,9,125,10,100,5,124,9,
+ 23,0,125,11,116,13,124,8,124,11,131,2,125,12,116,15,
+ 124,12,131,1,114,148,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,148,
+ 116,17,124,8,131,1,125,3,124,0,106,14,68,0,93,82,
+ 92,2,125,9,125,10,116,13,124,0,106,2,124,4,124,9,
+ 23,0,131,2,125,12,116,18,106,19,100,6,124,12,100,3,
+ 100,7,141,3,1,0,124,7,124,9,23,0,124,6,118,0,
+ 114,222,116,15,124,12,131,1,114,222,124,0,160,16,124,10,
+ 124,1,124,12,100,8,124,2,161,5,2,0,1,0,83,0,
+ 113,222,124,3,144,1,114,92,116,18,160,19,100,9,124,8,
+ 161,2,1,0,116,18,160,20,124,1,100,8,161,2,125,13,
+ 124,8,103,1,124,13,95,21,124,13,83,0,100,8,83,0,
+ 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,70,0,0,0,114,27,0,0,0,114,104,
+ 0,0,0,114,209,0,0,0,122,9,116,114,121,105,110,103,
+ 32,123,125,41,1,90,9,118,101,114,98,111,115,105,116,121,
+ 78,122,25,112,111,115,115,105,98,108,101,32,110,97,109,101,
+ 115,112,97,99,101,32,102,111,114,32,123,125,41,22,114,40,
+ 0,0,0,114,48,0,0,0,114,43,0,0,0,114,2,0,
+ 0,0,114,54,0,0,0,114,10,1,0,0,114,49,0,0,
+ 0,114,64,1,0,0,218,11,95,102,105,108,108,95,99,97,
+ 99,104,101,114,7,0,0,0,114,67,1,0,0,114,105,0,
+ 0,0,114,66,1,0,0,114,37,0,0,0,114,63,1,0,
+ 0,114,53,0,0,0,114,58,1,0,0,114,55,0,0,0,
+ 114,134,0,0,0,114,149,0,0,0,114,183,0,0,0,114,
+ 178,0,0,0,41,14,114,118,0,0,0,114,139,0,0,0,
+ 114,202,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,169,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,17,1,0,0,114,188,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,187,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,114,203,0,
+ 0,0,155,5,0,0,115,74,0,0,0,0,5,4,1,14,
+ 1,2,1,24,1,12,1,10,1,10,1,8,1,6,2,6,
+ 1,6,1,10,2,6,1,4,2,8,1,12,1,14,1,8,
+ 1,10,1,8,1,26,4,8,2,14,1,16,1,16,1,12,
+ 1,8,1,10,1,2,0,2,255,10,2,6,1,12,1,12,
+ 1,8,1,4,1,122,20,70,105,108,101,70,105,110,100,101,
+ 114,46,102,105,110,100,95,115,112,101,99,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,9,0,0,0,10,0,0,0,
+ 67,0,0,0,115,188,0,0,0,124,0,106,0,125,1,122,
+ 22,116,1,160,2,124,1,112,22,116,1,160,3,161,0,161,
+ 1,125,2,87,0,110,28,4,0,116,4,116,5,116,6,102,
+ 3,121,56,1,0,1,0,1,0,103,0,125,2,89,0,110,
+ 2,48,0,116,7,106,8,160,9,100,1,161,1,115,82,116,
+ 10,124,2,131,1,124,0,95,11,110,74,116,10,131,0,125,
+ 3,124,2,68,0,93,56,125,4,124,4,160,12,100,2,161,
+ 1,92,3,125,5,125,6,125,7,124,6,114,134,100,3,160,
+ 13,124,5,124,7,160,14,161,0,161,2,125,8,110,4,124,
+ 5,125,8,124,3,160,15,124,8,161,1,1,0,113,92,124,
+ 3,124,0,95,11,116,7,106,8,160,9,116,16,161,1,114,
+ 184,100,4,100,5,132,0,124,2,68,0,131,1,124,0,95,
+ 17,100,6,83,0,41,7,122,68,70,105,108,108,32,116,104,
+ 101,32,99,97,99,104,101,32,111,102,32,112,111,116,101,110,
+ 116,105,97,108,32,109,111,100,117,108,101,115,32,97,110,100,
+ 32,112,97,99,107,97,103,101,115,32,102,111,114,32,116,104,
+ 105,115,32,100,105,114,101,99,116,111,114,121,46,114,0,0,
+ 0,0,114,70,0,0,0,114,60,0,0,0,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
+ 0,83,0,0,0,115,20,0,0,0,104,0,124,0,93,12,
+ 125,1,124,1,160,0,161,0,146,2,113,4,83,0,114,3,
+ 0,0,0,41,1,114,105,0,0,0,41,2,114,31,0,0,
+ 0,90,2,102,110,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,218,9,60,115,101,116,99,111,109,112,62,232,
+ 5,0,0,115,4,0,0,0,6,0,2,0,122,41,70,105,
+ 108,101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,
+ 97,99,104,101,46,60,108,111,99,97,108,115,62,46,60,115,
+ 101,116,99,111,109,112,62,78,41,18,114,43,0,0,0,114,
+ 2,0,0,0,114,7,1,0,0,114,54,0,0,0,114,3,
+ 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,8,0,0,0,114,9,0,
+ 0,0,114,10,0,0,0,114,65,1,0,0,114,66,1,0,
+ 0,114,100,0,0,0,114,61,0,0,0,114,105,0,0,0,
+ 218,3,97,100,100,114,11,0,0,0,114,67,1,0,0,41,
+ 9,114,118,0,0,0,114,43,0,0,0,114,8,1,0,0,
+ 90,21,108,111,119,101,114,95,115,117,102,102,105,120,95,99,
+ 111,110,116,101,110,116,115,114,41,1,0,0,114,116,0,0,
+ 0,114,29,1,0,0,114,17,1,0,0,90,8,110,101,119,
+ 95,110,97,109,101,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,69,1,0,0,203,5,0,0,115,34,0,
+ 0,0,0,2,6,1,2,1,22,1,18,3,10,3,12,1,
+ 12,7,6,1,8,1,16,1,4,1,18,2,4,1,12,1,
+ 6,1,12,1,122,22,70,105,108,101,70,105,110,100,101,114,
+ 46,95,102,105,108,108,95,99,97,99,104,101,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,
+ 0,7,0,0,0,115,18,0,0,0,135,0,135,1,102,2,
+ 100,1,100,2,132,8,125,2,124,2,83,0,41,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,1,0,0,0,4,0,0,0,19,0,0,0,
+ 115,34,0,0,0,116,0,124,0,131,1,115,20,116,1,100,
+ 1,124,0,100,2,141,2,130,1,136,0,124,0,102,1,136,
+ 1,158,2,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,47,0,0,0,41,2,114,
+ 55,0,0,0,114,117,0,0,0,114,47,0,0,0,169,2,
+ 114,193,0,0,0,114,68,1,0,0,114,3,0,0,0,114,
+ 6,0,0,0,218,24,112,97,116,104,95,104,111,111,107,95,
+ 102,111,114,95,70,105,108,101,70,105,110,100,101,114,244,5,
+ 0,0,115,6,0,0,0,0,2,8,1,12,1,122,54,70,
+ 105,108,101,70,105,110,100,101,114,46,112,97,116,104,95,104,
+ 111,111,107,46,60,108,111,99,97,108,115,62,46,112,97,116,
+ 104,95,104,111,111,107,95,102,111,114,95,70,105,108,101,70,
+ 105,110,100,101,114,114,3,0,0,0,41,3,114,193,0,0,
+ 0,114,68,1,0,0,114,75,1,0,0,114,3,0,0,0,
+ 114,74,1,0,0,114,6,0,0,0,218,9,112,97,116,104,
+ 95,104,111,111,107,234,5,0,0,115,4,0,0,0,0,10,
+ 14,6,122,20,70,105,108,101,70,105,110,100,101,114,46,112,
+ 97,116,104,95,104,111,111,107,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
+ 0,115,12,0,0,0,100,1,160,0,124,0,106,1,161,1,
+ 83,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,61,0,0,0,114,43,
+ 0,0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,114,39,1,0,0,252,5,0,0,
+ 115,2,0,0,0,0,1,122,19,70,105,108,101,70,105,110,
+ 100,101,114,46,95,95,114,101,112,114,95,95,41,1,78,41,
+ 15,114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,
+ 114,127,0,0,0,114,209,0,0,0,114,46,1,0,0,114,
+ 143,0,0,0,114,206,0,0,0,114,137,0,0,0,114,58,
+ 1,0,0,114,203,0,0,0,114,69,1,0,0,114,207,0,
+ 0,0,114,76,1,0,0,114,39,1,0,0,114,3,0,0,
0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 218,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101,
- 1,6,0,0,115,34,0,0,0,0,2,10,1,10,1,4,
- 1,4,1,8,1,8,1,12,2,10,1,4,1,14,1,2,
- 1,8,1,8,1,8,1,12,1,14,2,114,81,1,0,0,
- 99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
- 0,3,0,0,0,67,0,0,0,115,38,0,0,0,116,0,
- 116,1,160,2,161,0,102,2,125,0,116,3,116,4,102,2,
- 125,1,116,5,116,6,102,2,125,2,124,0,124,1,124,2,
- 103,3,83,0,41,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,252,0,0,0,114,163,
- 0,0,0,218,18,101,120,116,101,110,115,105,111,110,95,115,
- 117,102,102,105,120,101,115,114,9,1,0,0,114,101,0,0,
- 0,114,15,1,0,0,114,88,0,0,0,41,3,90,10,101,
- 120,116,101,110,115,105,111,110,115,90,6,115,111,117,114,99,
- 101,90,8,98,121,116,101,99,111,100,101,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,184,0,0,0,24,
- 6,0,0,115,8,0,0,0,0,5,12,1,8,1,8,1,
- 114,184,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
- 0,0,12,0,0,0,9,0,0,0,67,0,0,0,115,178,
- 1,0,0,124,0,97,0,116,0,106,1,97,1,116,0,106,
- 2,97,2,116,1,106,3,116,4,25,0,125,1,100,1,68,
- 0,93,48,125,2,124,2,116,1,106,3,107,7,114,56,116,
- 0,160,5,124,2,161,1,125,3,110,10,116,1,106,3,124,
- 2,25,0,125,3,116,6,124,1,124,2,124,3,131,3,1,
- 0,113,30,100,2,100,3,103,1,102,2,100,4,100,5,100,
- 3,103,2,102,2,102,2,125,4,124,4,68,0,93,110,92,
- 2,125,5,125,6,116,7,100,6,100,7,132,0,124,6,68,
- 0,131,1,131,1,115,136,74,0,130,1,124,6,100,8,25,
- 0,125,7,124,5,116,1,106,3,107,6,114,170,116,1,106,
- 3,124,5,25,0,125,8,1,0,113,226,113,106,122,20,116,
- 0,160,5,124,5,161,1,125,8,87,0,1,0,113,226,87,
- 0,113,106,4,0,116,8,107,10,114,214,1,0,1,0,1,
- 0,89,0,113,106,89,0,113,106,48,0,113,106,116,8,100,
- 9,131,1,130,1,116,6,124,1,100,10,124,8,131,3,1,
- 0,116,6,124,1,100,11,124,7,131,3,1,0,116,6,124,
- 1,100,12,100,13,160,9,124,6,161,1,131,3,1,0,116,
- 6,124,1,100,14,100,15,100,16,132,0,124,6,68,0,131,
- 1,131,3,1,0,116,0,160,5,100,17,161,1,125,9,116,
- 6,124,1,100,17,124,9,131,3,1,0,116,0,160,5,100,
- 18,161,1,125,10,116,6,124,1,100,18,124,10,131,3,1,
- 0,124,5,100,4,107,2,144,1,114,110,116,0,160,5,100,
- 19,161,1,125,11,116,6,124,1,100,20,124,11,131,3,1,
- 0,116,6,124,1,100,21,116,10,131,0,131,3,1,0,116,
- 11,160,12,116,2,160,13,161,0,161,1,1,0,124,5,100,
- 4,107,2,144,1,114,174,116,14,160,15,100,22,161,1,1,
- 0,100,23,116,11,107,6,144,1,114,174,100,24,116,16,95,
- 17,100,25,83,0,41,26,122,205,83,101,116,117,112,32,116,
- 104,101,32,112,97,116,104,45,98,97,115,101,100,32,105,109,
- 112,111,114,116,101,114,115,32,102,111,114,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,10,32,32,32,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,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,79,116,104,101,114,32,99,111,109,112,111,110,101,110,
- 116,115,32,97,114,101,32,101,120,116,114,97,99,116,101,100,
- 32,102,114,111,109,32,116,104,101,32,99,111,114,101,32,98,
- 111,111,116,115,116,114,97,112,32,109,111,100,117,108,101,46,
- 10,10,32,32,32,32,41,4,114,63,0,0,0,114,74,0,
- 0,0,218,8,98,117,105,108,116,105,110,115,114,160,0,0,
- 0,90,5,112,111,115,105,120,250,1,47,90,2,110,116,250,
- 1,92,99,1,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,3,0,0,0,115,0,0,0,115,26,0,0,0,
- 124,0,93,18,125,1,116,0,124,1,131,1,100,0,107,2,
- 86,0,1,0,113,2,100,1,83,0,41,2,114,38,0,0,
- 0,78,41,1,114,22,0,0,0,41,2,114,31,0,0,0,
- 114,94,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,19,1,0,0,60,6,0,0,115,4,0,
- 0,0,4,0,2,0,122,25,95,115,101,116,117,112,46,60,
- 108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,
- 62,114,72,0,0,0,122,30,105,109,112,111,114,116,108,105,
- 98,32,114,101,113,117,105,114,101,115,32,112,111,115,105,120,
- 32,111,114,32,110,116,114,2,0,0,0,114,34,0,0,0,
- 114,30,0,0,0,114,39,0,0,0,114,57,0,0,0,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 4,0,0,0,83,0,0,0,115,22,0,0,0,104,0,124,
- 0,93,14,125,1,100,0,124,1,155,0,157,2,146,2,113,
- 4,83,0,41,1,114,73,0,0,0,114,3,0,0,0,41,
- 2,114,31,0,0,0,218,1,115,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,114,70,1,0,0,76,6,0,
- 0,115,4,0,0,0,6,0,2,0,122,25,95,115,101,116,
- 117,112,46,60,108,111,99,97,108,115,62,46,60,115,101,116,
- 99,111,109,112,62,90,7,95,116,104,114,101,97,100,90,8,
- 95,119,101,97,107,114,101,102,90,6,119,105,110,114,101,103,
- 114,192,0,0,0,114,7,0,0,0,122,4,46,112,121,119,
- 122,6,95,100,46,112,121,100,84,78,41,18,114,134,0,0,
- 0,114,8,0,0,0,114,163,0,0,0,114,31,1,0,0,
- 114,125,0,0,0,90,18,95,98,117,105,108,116,105,110,95,
- 102,114,111,109,95,110,97,109,101,114,129,0,0,0,218,3,
- 97,108,108,114,117,0,0,0,114,35,0,0,0,114,13,0,
- 0,0,114,21,1,0,0,114,167,0,0,0,114,82,1,0,
- 0,114,101,0,0,0,114,186,0,0,0,114,191,0,0,0,
- 114,195,0,0,0,41,12,218,17,95,98,111,111,116,115,116,
- 114,97,112,95,109,111,100,117,108,101,90,11,115,101,108,102,
- 95,109,111,100,117,108,101,90,12,98,117,105,108,116,105,110,
- 95,110,97,109,101,90,14,98,117,105,108,116,105,110,95,109,
- 111,100,117,108,101,90,10,111,115,95,100,101,116,97,105,108,
- 115,90,10,98,117,105,108,116,105,110,95,111,115,114,30,0,
- 0,0,114,34,0,0,0,90,9,111,115,95,109,111,100,117,
- 108,101,90,13,116,104,114,101,97,100,95,109,111,100,117,108,
- 101,90,14,119,101,97,107,114,101,102,95,109,111,100,117,108,
- 101,90,13,119,105,110,114,101,103,95,109,111,100,117,108,101,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
- 6,95,115,101,116,117,112,35,6,0,0,115,78,0,0,0,
- 0,8,4,1,6,1,6,3,10,1,8,1,10,1,12,2,
- 10,1,14,3,22,1,12,2,22,1,8,1,10,1,10,1,
- 6,2,2,1,10,1,10,1,14,1,12,2,8,1,12,1,
- 12,1,18,1,22,3,10,1,12,3,10,1,12,3,10,1,
- 10,1,12,3,14,1,14,1,10,1,10,1,10,1,114,89,
- 1,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,4,0,0,0,67,0,0,0,115,50,0,0,
- 0,116,0,124,0,131,1,1,0,116,1,131,0,125,1,116,
- 2,106,3,160,4,116,5,106,6,124,1,142,0,103,1,161,
- 1,1,0,116,2,106,7,160,8,116,9,161,1,1,0,100,
- 1,83,0,41,2,122,41,73,110,115,116,97,108,108,32,116,
- 104,101,32,112,97,116,104,45,98,97,115,101,100,32,105,109,
- 112,111,114,116,32,99,111,109,112,111,110,101,110,116,115,46,
- 78,41,10,114,89,1,0,0,114,184,0,0,0,114,8,0,
- 0,0,114,51,1,0,0,114,167,0,0,0,114,61,1,0,
- 0,114,76,1,0,0,218,9,109,101,116,97,95,112,97,116,
- 104,114,186,0,0,0,114,45,1,0,0,41,2,114,88,1,
- 0,0,90,17,115,117,112,112,111,114,116,101,100,95,108,111,
- 97,100,101,114,115,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,218,8,95,105,110,115,116,97,108,108,100,6,
- 0,0,115,8,0,0,0,0,2,8,1,6,1,20,1,114,
- 91,1,0,0,41,1,114,59,0,0,0,41,1,78,41,3,
- 78,78,78,41,2,114,72,0,0,0,114,72,0,0,0,41,
- 1,84,41,1,78,41,1,78,41,63,114,127,0,0,0,114,
- 12,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,11,0,0,0,
- 114,13,0,0,0,114,20,0,0,0,114,26,0,0,0,114,
- 28,0,0,0,114,37,0,0,0,114,46,0,0,0,114,48,
- 0,0,0,114,52,0,0,0,114,53,0,0,0,114,55,0,
- 0,0,114,58,0,0,0,114,68,0,0,0,218,4,116,121,
- 112,101,218,8,95,95,99,111,100,101,95,95,114,162,0,0,
- 0,114,18,0,0,0,114,148,0,0,0,114,17,0,0,0,
- 114,23,0,0,0,114,236,0,0,0,114,91,0,0,0,114,
- 87,0,0,0,114,101,0,0,0,114,88,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,97,0,0,0,114,102,0,0,0,114,108,
- 0,0,0,114,112,0,0,0,114,114,0,0,0,114,136,0,
- 0,0,114,143,0,0,0,114,152,0,0,0,114,156,0,0,
- 0,114,158,0,0,0,114,165,0,0,0,114,170,0,0,0,
- 114,171,0,0,0,114,176,0,0,0,218,6,111,98,106,101,
- 99,116,114,185,0,0,0,114,190,0,0,0,114,191,0,0,
- 0,114,208,0,0,0,114,221,0,0,0,114,239,0,0,0,
- 114,9,1,0,0,114,15,1,0,0,114,21,1,0,0,114,
- 252,0,0,0,114,22,1,0,0,114,43,1,0,0,114,45,
- 1,0,0,114,61,1,0,0,114,81,1,0,0,114,184,0,
- 0,0,114,89,1,0,0,114,91,1,0,0,114,3,0,0,
- 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 218,8,60,109,111,100,117,108,101,62,1,0,0,0,115,126,
- 0,0,0,4,22,4,1,4,1,2,1,2,255,4,4,8,
- 17,8,5,8,5,8,6,8,6,8,12,8,10,8,9,8,
- 5,8,7,8,9,10,22,10,127,0,16,16,1,12,2,4,
- 1,4,2,6,2,6,2,8,2,16,71,8,40,8,19,8,
- 12,8,12,8,28,8,17,8,33,8,28,8,24,10,13,10,
- 10,10,11,8,14,6,3,4,1,2,255,12,68,14,64,14,
- 29,16,127,0,17,14,72,18,45,18,26,4,3,18,53,14,
- 63,14,42,14,127,0,20,14,127,0,22,10,23,8,11,8,
- 65,
+ 114,61,1,0,0,109,5,0,0,115,22,0,0,0,8,2,
+ 4,7,8,14,8,4,4,2,8,12,8,5,10,48,8,31,
+ 2,1,10,17,114,61,1,0,0,99,4,0,0,0,0,0,
+ 0,0,0,0,0,0,6,0,0,0,8,0,0,0,67,0,
+ 0,0,115,144,0,0,0,124,0,160,0,100,1,161,1,125,
+ 4,124,0,160,0,100,2,161,1,125,5,124,4,115,66,124,
+ 5,114,36,124,5,106,1,125,4,110,30,124,2,124,3,107,
+ 2,114,56,116,2,124,1,124,2,131,2,125,4,110,10,116,
+ 3,124,1,124,2,131,2,125,4,124,5,115,84,116,4,124,
+ 1,124,2,124,4,100,3,141,3,125,5,122,36,124,5,124,
+ 0,100,2,60,0,124,4,124,0,100,1,60,0,124,2,124,
+ 0,100,4,60,0,124,3,124,0,100,5,60,0,87,0,110,
+ 18,4,0,116,5,121,138,1,0,1,0,1,0,89,0,110,
+ 2,48,0,100,0,83,0,41,6,78,218,10,95,95,108,111,
+ 97,100,101,114,95,95,218,8,95,95,115,112,101,99,95,95,
+ 114,62,1,0,0,90,8,95,95,102,105,108,101,95,95,90,
+ 10,95,95,99,97,99,104,101,100,95,95,41,6,218,3,103,
+ 101,116,114,140,0,0,0,114,15,1,0,0,114,9,1,0,
+ 0,114,190,0,0,0,218,9,69,120,99,101,112,116,105,111,
+ 110,41,6,90,2,110,115,114,116,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,140,0,0,0,114,187,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,218,14,95,102,105,120,
+ 95,117,112,95,109,111,100,117,108,101,2,6,0,0,115,34,
+ 0,0,0,0,2,10,1,10,1,4,1,4,1,8,1,8,
+ 1,12,2,10,1,4,1,14,1,2,1,8,1,8,1,8,
+ 1,12,1,12,2,114,81,1,0,0,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,
+ 0,0,0,115,38,0,0,0,116,0,116,1,160,2,161,0,
+ 102,2,125,0,116,3,116,4,102,2,125,1,116,5,116,6,
+ 102,2,125,2,124,0,124,1,124,2,103,3,83,0,41,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,252,0,0,0,114,163,0,0,0,218,18,101,
+ 120,116,101,110,115,105,111,110,95,115,117,102,102,105,120,101,
+ 115,114,9,1,0,0,114,101,0,0,0,114,15,1,0,0,
+ 114,88,0,0,0,41,3,90,10,101,120,116,101,110,115,105,
+ 111,110,115,90,6,115,111,117,114,99,101,90,8,98,121,116,
+ 101,99,111,100,101,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,184,0,0,0,25,6,0,0,115,8,0,
+ 0,0,0,5,12,1,8,1,8,1,114,184,0,0,0,99,
+ 1,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,
+ 9,0,0,0,67,0,0,0,115,176,1,0,0,124,0,97,
+ 0,116,0,106,1,97,1,116,0,106,2,97,2,116,1,106,
+ 3,116,4,25,0,125,1,100,1,68,0,93,48,125,2,124,
+ 2,116,1,106,3,118,1,114,56,116,0,160,5,124,2,161,
+ 1,125,3,110,10,116,1,106,3,124,2,25,0,125,3,116,
+ 6,124,1,124,2,124,3,131,3,1,0,113,30,100,2,100,
+ 3,103,1,102,2,100,4,100,5,100,3,103,2,102,2,102,
+ 2,125,4,124,4,68,0,93,108,92,2,125,5,125,6,116,
+ 7,100,6,100,7,132,0,124,6,68,0,131,1,131,1,115,
+ 136,74,0,130,1,124,6,100,8,25,0,125,7,124,5,116,
+ 1,106,3,118,0,114,170,116,1,106,3,124,5,25,0,125,
+ 8,1,0,113,224,113,106,122,20,116,0,160,5,124,5,161,
+ 1,125,8,87,0,1,0,113,224,87,0,113,106,4,0,116,
+ 8,121,212,1,0,1,0,1,0,89,0,113,106,89,0,113,
+ 106,48,0,113,106,116,8,100,9,131,1,130,1,116,6,124,
+ 1,100,10,124,8,131,3,1,0,116,6,124,1,100,11,124,
+ 7,131,3,1,0,116,6,124,1,100,12,100,13,160,9,124,
+ 6,161,1,131,3,1,0,116,6,124,1,100,14,100,15,100,
+ 16,132,0,124,6,68,0,131,1,131,3,1,0,116,0,160,
+ 5,100,17,161,1,125,9,116,6,124,1,100,17,124,9,131,
+ 3,1,0,116,0,160,5,100,18,161,1,125,10,116,6,124,
+ 1,100,18,124,10,131,3,1,0,124,5,100,4,107,2,144,
+ 1,114,108,116,0,160,5,100,19,161,1,125,11,116,6,124,
+ 1,100,20,124,11,131,3,1,0,116,6,124,1,100,21,116,
+ 10,131,0,131,3,1,0,116,11,160,12,116,2,160,13,161,
+ 0,161,1,1,0,124,5,100,4,107,2,144,1,114,172,116,
+ 14,160,15,100,22,161,1,1,0,100,23,116,11,118,0,144,
+ 1,114,172,100,24,116,16,95,17,100,25,83,0,41,26,122,
+ 205,83,101,116,117,112,32,116,104,101,32,112,97,116,104,45,
+ 98,97,115,101,100,32,105,109,112,111,114,116,101,114,115,32,
+ 102,111,114,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,10,32,32,32,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,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,79,116,104,101,114,32,
+ 99,111,109,112,111,110,101,110,116,115,32,97,114,101,32,101,
+ 120,116,114,97,99,116,101,100,32,102,114,111,109,32,116,104,
+ 101,32,99,111,114,101,32,98,111,111,116,115,116,114,97,112,
+ 32,109,111,100,117,108,101,46,10,10,32,32,32,32,41,4,
+ 114,63,0,0,0,114,74,0,0,0,218,8,98,117,105,108,
+ 116,105,110,115,114,160,0,0,0,90,5,112,111,115,105,120,
+ 250,1,47,90,2,110,116,250,1,92,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,115,
+ 0,0,0,115,26,0,0,0,124,0,93,18,125,1,116,0,
+ 124,1,131,1,100,0,107,2,86,0,1,0,113,2,100,1,
+ 83,0,41,2,114,38,0,0,0,78,41,1,114,22,0,0,
+ 0,41,2,114,31,0,0,0,114,94,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,19,1,0,
+ 0,61,6,0,0,115,4,0,0,0,4,0,2,0,122,25,
+ 95,115,101,116,117,112,46,60,108,111,99,97,108,115,62,46,
+ 60,103,101,110,101,120,112,114,62,114,72,0,0,0,122,30,
+ 105,109,112,111,114,116,108,105,98,32,114,101,113,117,105,114,
+ 101,115,32,112,111,115,105,120,32,111,114,32,110,116,114,2,
+ 0,0,0,114,34,0,0,0,114,30,0,0,0,114,39,0,
+ 0,0,114,57,0,0,0,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,2,0,0,0,4,0,0,0,83,0,0,0,
+ 115,22,0,0,0,104,0,124,0,93,14,125,1,100,0,124,
+ 1,155,0,157,2,146,2,113,4,83,0,41,1,114,73,0,
+ 0,0,114,3,0,0,0,41,2,114,31,0,0,0,218,1,
+ 115,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
+ 114,70,1,0,0,77,6,0,0,115,4,0,0,0,6,0,
+ 2,0,122,25,95,115,101,116,117,112,46,60,108,111,99,97,
+ 108,115,62,46,60,115,101,116,99,111,109,112,62,90,7,95,
+ 116,104,114,101,97,100,90,8,95,119,101,97,107,114,101,102,
+ 90,6,119,105,110,114,101,103,114,192,0,0,0,114,7,0,
+ 0,0,122,4,46,112,121,119,122,6,95,100,46,112,121,100,
+ 84,78,41,18,114,134,0,0,0,114,8,0,0,0,114,163,
+ 0,0,0,114,31,1,0,0,114,125,0,0,0,90,18,95,
+ 98,117,105,108,116,105,110,95,102,114,111,109,95,110,97,109,
+ 101,114,129,0,0,0,218,3,97,108,108,114,117,0,0,0,
+ 114,35,0,0,0,114,13,0,0,0,114,21,1,0,0,114,
+ 167,0,0,0,114,82,1,0,0,114,101,0,0,0,114,186,
+ 0,0,0,114,191,0,0,0,114,195,0,0,0,41,12,218,
+ 17,95,98,111,111,116,115,116,114,97,112,95,109,111,100,117,
+ 108,101,90,11,115,101,108,102,95,109,111,100,117,108,101,90,
+ 12,98,117,105,108,116,105,110,95,110,97,109,101,90,14,98,
+ 117,105,108,116,105,110,95,109,111,100,117,108,101,90,10,111,
+ 115,95,100,101,116,97,105,108,115,90,10,98,117,105,108,116,
+ 105,110,95,111,115,114,30,0,0,0,114,34,0,0,0,90,
+ 9,111,115,95,109,111,100,117,108,101,90,13,116,104,114,101,
+ 97,100,95,109,111,100,117,108,101,90,14,119,101,97,107,114,
+ 101,102,95,109,111,100,117,108,101,90,13,119,105,110,114,101,
+ 103,95,109,111,100,117,108,101,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,218,6,95,115,101,116,117,112,36,
+ 6,0,0,115,78,0,0,0,0,8,4,1,6,1,6,3,
+ 10,1,8,1,10,1,12,2,10,1,14,3,22,1,12,2,
+ 22,1,8,1,10,1,10,1,6,2,2,1,10,1,10,1,
+ 12,1,12,2,8,1,12,1,12,1,18,1,22,3,10,1,
+ 12,3,10,1,12,3,10,1,10,1,12,3,14,1,14,1,
+ 10,1,10,1,10,1,114,89,1,0,0,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,
+ 67,0,0,0,115,50,0,0,0,116,0,124,0,131,1,1,
+ 0,116,1,131,0,125,1,116,2,106,3,160,4,116,5,106,
+ 6,124,1,142,0,103,1,161,1,1,0,116,2,106,7,160,
+ 8,116,9,161,1,1,0,100,1,83,0,41,2,122,41,73,
+ 110,115,116,97,108,108,32,116,104,101,32,112,97,116,104,45,
+ 98,97,115,101,100,32,105,109,112,111,114,116,32,99,111,109,
+ 112,111,110,101,110,116,115,46,78,41,10,114,89,1,0,0,
+ 114,184,0,0,0,114,8,0,0,0,114,51,1,0,0,114,
+ 167,0,0,0,114,61,1,0,0,114,76,1,0,0,218,9,
+ 109,101,116,97,95,112,97,116,104,114,186,0,0,0,114,45,
+ 1,0,0,41,2,114,88,1,0,0,90,17,115,117,112,112,
+ 111,114,116,101,100,95,108,111,97,100,101,114,115,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,218,8,95,105,
+ 110,115,116,97,108,108,101,6,0,0,115,8,0,0,0,0,
+ 2,8,1,6,1,20,1,114,91,1,0,0,41,1,114,59,
+ 0,0,0,41,1,78,41,3,78,78,78,41,2,114,72,0,
+ 0,0,114,72,0,0,0,41,1,84,41,1,78,41,1,78,
+ 41,63,114,127,0,0,0,114,12,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,11,0,0,0,114,13,0,0,0,114,20,0,
+ 0,0,114,26,0,0,0,114,28,0,0,0,114,37,0,0,
+ 0,114,46,0,0,0,114,48,0,0,0,114,52,0,0,0,
+ 114,53,0,0,0,114,55,0,0,0,114,58,0,0,0,114,
+ 68,0,0,0,218,4,116,121,112,101,218,8,95,95,99,111,
+ 100,101,95,95,114,162,0,0,0,114,18,0,0,0,114,148,
+ 0,0,0,114,17,0,0,0,114,23,0,0,0,114,236,0,
+ 0,0,114,91,0,0,0,114,87,0,0,0,114,101,0,0,
+ 0,114,88,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,97,0,0,
+ 0,114,102,0,0,0,114,108,0,0,0,114,112,0,0,0,
+ 114,114,0,0,0,114,136,0,0,0,114,143,0,0,0,114,
+ 152,0,0,0,114,156,0,0,0,114,158,0,0,0,114,165,
+ 0,0,0,114,170,0,0,0,114,171,0,0,0,114,176,0,
+ 0,0,218,6,111,98,106,101,99,116,114,185,0,0,0,114,
+ 190,0,0,0,114,191,0,0,0,114,208,0,0,0,114,221,
+ 0,0,0,114,239,0,0,0,114,9,1,0,0,114,15,1,
+ 0,0,114,21,1,0,0,114,252,0,0,0,114,22,1,0,
+ 0,114,43,1,0,0,114,45,1,0,0,114,61,1,0,0,
+ 114,81,1,0,0,114,184,0,0,0,114,89,1,0,0,114,
+ 91,1,0,0,114,3,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,218,8,60,109,111,100,117,108,
+ 101,62,1,0,0,0,115,126,0,0,0,4,22,4,1,4,
+ 1,2,1,2,255,4,4,8,17,8,5,8,5,8,6,8,
+ 6,8,12,8,10,8,9,8,5,8,7,8,9,10,22,10,
+ 127,0,17,16,1,12,2,4,1,4,2,6,2,6,2,8,
+ 2,16,71,8,40,8,19,8,12,8,12,8,28,8,17,8,
+ 33,8,28,8,24,10,13,10,10,10,11,8,14,6,3,4,
+ 1,2,255,12,68,14,64,14,29,16,127,0,17,14,72,18,
+ 45,18,26,4,3,18,53,14,63,14,42,14,127,0,20,14,
+ 127,0,22,10,23,8,11,8,65,
};
diff --git a/Python/importlib_zipimport.h b/Python/importlib_zipimport.h
index a05a7a3b945..199c4106280 100644
--- a/Python/importlib_zipimport.h
+++ b/Python/importlib_zipimport.h
@@ -117,863 +117,860 @@ const unsigned char _Py_M__zipimport[] = {
111,102,32,116,104,101,10,32,32,32,32,122,105,112,102,105,
108,101,32,116,97,114,103,101,116,101,100,46,10,32,32,32,
32,99,2,0,0,0,0,0,0,0,0,0,0,0,8,0,
- 0,0,9,0,0,0,67,0,0,0,115,36,1,0,0,116,
+ 0,0,9,0,0,0,67,0,0,0,115,32,1,0,0,116,
0,124,1,116,1,131,2,115,28,100,1,100,0,108,2,125,
2,124,2,160,3,124,1,161,1,125,1,124,1,115,44,116,
4,100,2,124,1,100,3,141,2,130,1,116,5,114,60,124,
1,160,6,116,5,116,7,161,2,125,1,103,0,125,3,122,
- 14,116,8,160,9,124,1,161,1,125,4,87,0,110,72,4,
- 0,116,10,116,11,102,2,107,10,114,150,1,0,1,0,1,
- 0,116,8,160,12,124,1,161,1,92,2,125,5,125,6,124,
- 5,124,1,107,2,114,132,116,4,100,4,124,1,100,3,141,
- 2,130,1,124,5,125,1,124,3,160,13,124,6,161,1,1,
- 0,89,0,113,64,48,0,124,4,106,14,100,5,64,0,100,
- 6,107,3,114,182,116,4,100,4,124,1,100,3,141,2,130,
- 1,113,182,113,64,122,12,116,15,124,1,25,0,125,7,87,
- 0,110,36,4,0,116,16,107,10,114,230,1,0,1,0,1,
- 0,116,17,124,1,131,1,125,7,124,7,116,15,124,1,60,
- 0,89,0,110,2,48,0,124,7,124,0,95,18,124,1,124,
- 0,95,19,116,8,106,20,124,3,100,0,100,0,100,7,133,
- 3,25,0,142,0,124,0,95,21,124,0,106,21,144,1,114,
- 32,124,0,4,0,106,21,116,7,55,0,2,0,95,21,100,
- 0,83,0,41,8,78,114,0,0,0,0,122,21,97,114,99,
- 104,105,118,101,32,112,97,116,104,32,105,115,32,101,109,112,
- 116,121,169,1,218,4,112,97,116,104,122,14,110,111,116,32,
- 97,32,90,105,112,32,102,105,108,101,105,0,240,0,0,105,
- 0,128,0,0,233,255,255,255,255,41,22,218,10,105,115,105,
- 110,115,116,97,110,99,101,218,3,115,116,114,218,2,111,115,
- 90,8,102,115,100,101,99,111,100,101,114,3,0,0,0,218,
- 12,97,108,116,95,112,97,116,104,95,115,101,112,218,7,114,
- 101,112,108,97,99,101,218,8,112,97,116,104,95,115,101,112,
- 218,19,95,98,111,111,116,115,116,114,97,112,95,101,120,116,
- 101,114,110,97,108,90,10,95,112,97,116,104,95,115,116,97,
- 116,218,7,79,83,69,114,114,111,114,218,10,86,97,108,117,
- 101,69,114,114,111,114,90,11,95,112,97,116,104,95,115,112,
- 108,105,116,218,6,97,112,112,101,110,100,90,7,115,116,95,
- 109,111,100,101,218,20,95,122,105,112,95,100,105,114,101,99,
- 116,111,114,121,95,99,97,99,104,101,218,8,75,101,121,69,
- 114,114,111,114,218,15,95,114,101,97,100,95,100,105,114,101,
- 99,116,111,114,121,218,6,95,102,105,108,101,115,218,7,97,
- 114,99,104,105,118,101,218,10,95,112,97,116,104,95,106,111,
- 105,110,218,6,112,114,101,102,105,120,41,8,218,4,115,101,
- 108,102,114,13,0,0,0,114,17,0,0,0,114,31,0,0,
- 0,90,2,115,116,90,7,100,105,114,110,97,109,101,90,8,
- 98,97,115,101,110,97,109,101,218,5,102,105,108,101,115,114,
- 9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,8,
- 95,95,105,110,105,116,95,95,63,0,0,0,115,58,0,0,
- 0,0,1,10,1,8,1,10,1,4,1,12,1,4,1,12,
- 2,4,2,2,1,14,1,18,3,14,1,8,1,12,1,4,
- 1,16,3,14,2,12,1,4,2,2,1,12,1,14,1,8,
- 1,14,1,6,1,6,2,22,1,8,1,122,20,122,105,112,
- 105,109,112,111,114,116,101,114,46,95,95,105,110,105,116,95,
- 95,78,99,3,0,0,0,0,0,0,0,0,0,0,0,5,
- 0,0,0,4,0,0,0,67,0,0,0,115,78,0,0,0,
- 116,0,124,0,124,1,131,2,125,3,124,3,100,1,107,9,
- 114,26,124,0,103,0,102,2,83,0,116,1,124,0,124,1,
- 131,2,125,4,116,2,124,0,124,4,131,2,114,70,100,1,
- 124,0,106,3,155,0,116,4,155,0,124,4,155,0,157,3,
- 103,1,102,2,83,0,100,1,103,0,102,2,83,0,41,2,
- 97,239,1,0,0,102,105,110,100,95,108,111,97,100,101,114,
- 40,102,117,108,108,110,97,109,101,44,32,112,97,116,104,61,
- 78,111,110,101,41,32,45,62,32,115,101,108,102,44,32,115,
- 116,114,32,111,114,32,78,111,110,101,46,10,10,32,32,32,
- 32,32,32,32,32,83,101,97,114,99,104,32,102,111,114,32,
- 97,32,109,111,100,117,108,101,32,115,112,101,99,105,102,105,
- 101,100,32,98,121,32,39,102,117,108,108,110,97,109,101,39,
- 46,32,39,102,117,108,108,110,97,109,101,39,32,109,117,115,
- 116,32,98,101,32,116,104,101,10,32,32,32,32,32,32,32,
- 32,102,117,108,108,121,32,113,117,97,108,105,102,105,101,100,
- 32,40,100,111,116,116,101,100,41,32,109,111,100,117,108,101,
- 32,110,97,109,101,46,32,73,116,32,114,101,116,117,114,110,
- 115,32,116,104,101,32,122,105,112,105,109,112,111,114,116,101,
- 114,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,
- 99,101,32,105,116,115,101,108,102,32,105,102,32,116,104,101,
- 32,109,111,100,117,108,101,32,119,97,115,32,102,111,117,110,
- 100,44,32,97,32,115,116,114,105,110,103,32,99,111,110,116,
- 97,105,110,105,110,103,32,116,104,101,10,32,32,32,32,32,
- 32,32,32,102,117,108,108,32,112,97,116,104,32,110,97,109,
- 101,32,105,102,32,105,116,39,115,32,112,111,115,115,105,98,
- 108,121,32,97,32,112,111,114,116,105,111,110,32,111,102,32,
- 97,32,110,97,109,101,115,112,97,99,101,32,112,97,99,107,
- 97,103,101,44,10,32,32,32,32,32,32,32,32,111,114,32,
- 78,111,110,101,32,111,116,104,101,114,119,105,115,101,46,32,
- 84,104,101,32,111,112,116,105,111,110,97,108,32,39,112,97,
- 116,104,39,32,97,114,103,117,109,101,110,116,32,105,115,32,
- 105,103,110,111,114,101,100,32,45,45,32,105,116,39,115,10,
- 32,32,32,32,32,32,32,32,116,104,101,114,101,32,102,111,
- 114,32,99,111,109,112,97,116,105,98,105,108,105,116,121,32,
- 119,105,116,104,32,116,104,101,32,105,109,112,111,114,116,101,
- 114,32,112,114,111,116,111,99,111,108,46,10,32,32,32,32,
- 32,32,32,32,78,41,5,218,16,95,103,101,116,95,109,111,
- 100,117,108,101,95,105,110,102,111,218,16,95,103,101,116,95,
- 109,111,100,117,108,101,95,112,97,116,104,218,7,95,105,115,
- 95,100,105,114,114,29,0,0,0,114,20,0,0,0,41,5,
- 114,32,0,0,0,218,8,102,117,108,108,110,97,109,101,114,
- 13,0,0,0,218,2,109,105,218,7,109,111,100,112,97,116,
- 104,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
- 218,11,102,105,110,100,95,108,111,97,100,101,114,109,0,0,
- 0,115,14,0,0,0,0,10,10,1,8,2,8,7,10,1,
- 10,4,24,2,122,23,122,105,112,105,109,112,111,114,116,101,
- 114,46,102,105,110,100,95,108,111,97,100,101,114,99,3,0,
- 0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,
- 0,0,67,0,0,0,115,16,0,0,0,124,0,160,0,124,
- 1,124,2,161,2,100,1,25,0,83,0,41,2,97,139,1,
- 0,0,102,105,110,100,95,109,111,100,117,108,101,40,102,117,
- 108,108,110,97,109,101,44,32,112,97,116,104,61,78,111,110,
- 101,41,32,45,62,32,115,101,108,102,32,111,114,32,78,111,
- 110,101,46,10,10,32,32,32,32,32,32,32,32,83,101,97,
- 114,99,104,32,102,111,114,32,97,32,109,111,100,117,108,101,
- 32,115,112,101,99,105,102,105,101,100,32,98,121,32,39,102,
- 117,108,108,110,97,109,101,39,46,32,39,102,117,108,108,110,
- 97,109,101,39,32,109,117,115,116,32,98,101,32,116,104,101,
- 10,32,32,32,32,32,32,32,32,102,117,108,108,121,32,113,
- 117,97,108,105,102,105,101,100,32,40,100,111,116,116,101,100,
- 41,32,109,111,100,117,108,101,32,110,97,109,101,46,32,73,
- 116,32,114,101,116,117,114,110,115,32,116,104,101,32,122,105,
- 112,105,109,112,111,114,116,101,114,10,32,32,32,32,32,32,
- 32,32,105,110,115,116,97,110,99,101,32,105,116,115,101,108,
- 102,32,105,102,32,116,104,101,32,109,111,100,117,108,101,32,
- 119,97,115,32,102,111,117,110,100,44,32,111,114,32,78,111,
- 110,101,32,105,102,32,105,116,32,119,97,115,110,39,116,46,
- 10,32,32,32,32,32,32,32,32,84,104,101,32,111,112,116,
- 105,111,110,97,108,32,39,112,97,116,104,39,32,97,114,103,
- 117,109,101,110,116,32,105,115,32,105,103,110,111,114,101,100,
- 32,45,45,32,105,116,39,115,32,116,104,101,114,101,32,102,
- 111,114,32,99,111,109,112,97,116,105,98,105,108,105,116,121,
- 10,32,32,32,32,32,32,32,32,119,105,116,104,32,116,104,
- 101,32,105,109,112,111,114,116,101,114,32,112,114,111,116,111,
- 99,111,108,46,10,32,32,32,32,32,32,32,32,114,0,0,
- 0,0,41,1,114,41,0,0,0,41,3,114,32,0,0,0,
- 114,38,0,0,0,114,13,0,0,0,114,9,0,0,0,114,
- 9,0,0,0,114,10,0,0,0,218,11,102,105,110,100,95,
- 109,111,100,117,108,101,141,0,0,0,115,2,0,0,0,0,
- 9,122,23,122,105,112,105,109,112,111,114,116,101,114,46,102,
- 105,110,100,95,109,111,100,117,108,101,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,67,
- 0,0,0,115,20,0,0,0,116,0,124,0,124,1,131,2,
- 92,3,125,2,125,3,125,4,124,2,83,0,41,1,122,163,
- 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,102,111,117,110,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,32,0,0,0,114,38,
- 0,0,0,218,4,99,111,100,101,218,9,105,115,112,97,99,
- 107,97,103,101,114,40,0,0,0,114,9,0,0,0,114,9,
- 0,0,0,114,10,0,0,0,218,8,103,101,116,95,99,111,
- 100,101,153,0,0,0,115,4,0,0,0,0,6,16,1,122,
- 20,122,105,112,105,109,112,111,114,116,101,114,46,103,101,116,
- 95,99,111,100,101,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,4,0,0,0,8,0,0,0,67,0,0,0,115,118,
- 0,0,0,116,0,114,16,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,58,124,1,116,5,124,0,106,4,116,
- 2,23,0,131,1,100,1,133,2,25,0,125,2,122,14,124,
- 0,106,6,124,2,25,0,125,3,87,0,110,32,4,0,116,
- 7,107,10,114,104,1,0,1,0,1,0,116,8,100,2,100,
- 3,124,2,131,3,130,1,89,0,110,2,48,0,116,9,124,
- 0,106,4,124,3,131,2,83,0,41,4,122,154,103,101,116,
- 95,100,97,116,97,40,112,97,116,104,110,97,109,101,41,32,
- 45,62,32,115,116,114,105,110,103,32,119,105,116,104,32,102,
- 105,108,101,32,100,97,116,97,46,10,10,32,32,32,32,32,
- 32,32,32,82,101,116,117,114,110,32,116,104,101,32,100,97,
- 116,97,32,97,115,115,111,99,105,97,116,101,100,32,119,105,
- 116,104,32,39,112,97,116,104,110,97,109,101,39,46,32,82,
- 97,105,115,101,32,79,83,69,114,114,111,114,32,105,102,10,
- 32,32,32,32,32,32,32,32,116,104,101,32,102,105,108,101,
- 32,119,97,115,110,39,116,32,102,111,117,110,100,46,10,32,
- 32,32,32,32,32,32,32,78,114,0,0,0,0,218,0,41,
- 10,114,18,0,0,0,114,19,0,0,0,114,20,0,0,0,
- 218,10,115,116,97,114,116,115,119,105,116,104,114,29,0,0,
- 0,218,3,108,101,110,114,28,0,0,0,114,26,0,0,0,
- 114,22,0,0,0,218,9,95,103,101,116,95,100,97,116,97,
- 41,4,114,32,0,0,0,218,8,112,97,116,104,110,97,109,
- 101,90,3,107,101,121,218,9,116,111,99,95,101,110,116,114,
- 121,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
- 218,8,103,101,116,95,100,97,116,97,163,0,0,0,115,20,
- 0,0,0,0,6,4,1,12,2,4,1,16,1,22,2,2,
- 1,14,1,14,1,18,1,122,20,122,105,112,105,109,112,111,
- 114,116,101,114,46,103,101,116,95,100,97,116,97,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,
- 0,0,67,0,0,0,115,20,0,0,0,116,0,124,0,124,
- 1,131,2,92,3,125,2,125,3,125,4,124,4,83,0,41,
- 1,122,106,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,46,10,32,32,32,32,32,32,32,32,114,43,0,
- 0,0,114,45,0,0,0,114,9,0,0,0,114,9,0,0,
- 0,114,10,0,0,0,218,12,103,101,116,95,102,105,108,101,
- 110,97,109,101,184,0,0,0,115,4,0,0,0,0,7,16,
- 1,122,24,122,105,112,105,109,112,111,114,116,101,114,46,103,
- 101,116,95,102,105,108,101,110,97,109,101,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,6,0,0,0,8,0,0,0,
- 67,0,0,0,115,128,0,0,0,116,0,124,0,124,1,131,
- 2,125,2,124,2,100,1,107,8,114,36,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,64,116,3,160,4,124,
- 3,100,4,161,2,125,4,110,10,124,3,155,0,100,5,157,
- 2,125,4,122,14,124,0,106,5,124,4,25,0,125,5,87,
- 0,110,22,4,0,116,6,107,10,114,110,1,0,1,0,1,
- 0,89,0,100,1,83,0,48,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,218,4,110,97,109,101,250,11,95,95,105,110,105,116,95,
- 95,46,112,121,250,3,46,112,121,41,10,114,35,0,0,0,
- 114,3,0,0,0,114,36,0,0,0,114,21,0,0,0,114,
- 30,0,0,0,114,28,0,0,0,114,26,0,0,0,114,52,
- 0,0,0,114,29,0,0,0,218,6,100,101,99,111,100,101,
- 41,6,114,32,0,0,0,114,38,0,0,0,114,39,0,0,
- 0,114,13,0,0,0,218,8,102,117,108,108,112,97,116,104,
- 114,54,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
- 10,0,0,0,218,10,103,101,116,95,115,111,117,114,99,101,
- 195,0,0,0,115,24,0,0,0,0,7,10,1,8,1,18,
- 2,10,1,4,1,14,2,10,2,2,1,14,1,14,2,8,
- 1,122,22,122,105,112,105,109,112,111,114,116,101,114,46,103,
- 101,116,95,115,111,117,114,99,101,99,2,0,0,0,0,0,
+ 14,116,8,160,9,124,1,161,1,125,4,87,0,110,70,4,
+ 0,116,10,116,11,102,2,121,148,1,0,1,0,1,0,116,
+ 8,160,12,124,1,161,1,92,2,125,5,125,6,124,5,124,
+ 1,107,2,114,130,116,4,100,4,124,1,100,3,141,2,130,
+ 1,124,5,125,1,124,3,160,13,124,6,161,1,1,0,89,
+ 0,113,64,48,0,124,4,106,14,100,5,64,0,100,6,107,
+ 3,114,180,116,4,100,4,124,1,100,3,141,2,130,1,113,
+ 180,113,64,122,12,116,15,124,1,25,0,125,7,87,0,110,
+ 34,4,0,116,16,121,226,1,0,1,0,1,0,116,17,124,
+ 1,131,1,125,7,124,7,116,15,124,1,60,0,89,0,110,
+ 2,48,0,124,7,124,0,95,18,124,1,124,0,95,19,116,
+ 8,106,20,124,3,100,0,100,0,100,7,133,3,25,0,142,
+ 0,124,0,95,21,124,0,106,21,144,1,114,28,124,0,4,
+ 0,106,21,116,7,55,0,2,0,95,21,100,0,83,0,41,
+ 8,78,114,0,0,0,0,122,21,97,114,99,104,105,118,101,
+ 32,112,97,116,104,32,105,115,32,101,109,112,116,121,169,1,
+ 218,4,112,97,116,104,122,14,110,111,116,32,97,32,90,105,
+ 112,32,102,105,108,101,105,0,240,0,0,105,0,128,0,0,
+ 233,255,255,255,255,41,22,218,10,105,115,105,110,115,116,97,
+ 110,99,101,218,3,115,116,114,218,2,111,115,90,8,102,115,
+ 100,101,99,111,100,101,114,3,0,0,0,218,12,97,108,116,
+ 95,112,97,116,104,95,115,101,112,218,7,114,101,112,108,97,
+ 99,101,218,8,112,97,116,104,95,115,101,112,218,19,95,98,
+ 111,111,116,115,116,114,97,112,95,101,120,116,101,114,110,97,
+ 108,90,10,95,112,97,116,104,95,115,116,97,116,218,7,79,
+ 83,69,114,114,111,114,218,10,86,97,108,117,101,69,114,114,
+ 111,114,90,11,95,112,97,116,104,95,115,112,108,105,116,218,
+ 6,97,112,112,101,110,100,90,7,115,116,95,109,111,100,101,
+ 218,20,95,122,105,112,95,100,105,114,101,99,116,111,114,121,
+ 95,99,97,99,104,101,218,8,75,101,121,69,114,114,111,114,
+ 218,15,95,114,101,97,100,95,100,105,114,101,99,116,111,114,
+ 121,218,6,95,102,105,108,101,115,218,7,97,114,99,104,105,
+ 118,101,218,10,95,112,97,116,104,95,106,111,105,110,218,6,
+ 112,114,101,102,105,120,41,8,218,4,115,101,108,102,114,13,
+ 0,0,0,114,17,0,0,0,114,31,0,0,0,90,2,115,
+ 116,90,7,100,105,114,110,97,109,101,90,8,98,97,115,101,
+ 110,97,109,101,218,5,102,105,108,101,115,114,9,0,0,0,
+ 114,9,0,0,0,114,10,0,0,0,218,8,95,95,105,110,
+ 105,116,95,95,63,0,0,0,115,58,0,0,0,0,1,10,
+ 1,8,1,10,1,4,1,12,1,4,1,12,2,4,2,2,
+ 1,14,1,16,3,14,1,8,1,12,1,4,1,16,3,14,
+ 2,12,1,4,2,2,1,12,1,12,1,8,1,14,1,6,
+ 1,6,2,22,1,8,1,122,20,122,105,112,105,109,112,111,
+ 114,116,101,114,46,95,95,105,110,105,116,95,95,78,99,3,
+ 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,
+ 0,0,0,67,0,0,0,115,78,0,0,0,116,0,124,0,
+ 124,1,131,2,125,3,124,3,100,1,117,1,114,26,124,0,
+ 103,0,102,2,83,0,116,1,124,0,124,1,131,2,125,4,
+ 116,2,124,0,124,4,131,2,114,70,100,1,124,0,106,3,
+ 155,0,116,4,155,0,124,4,155,0,157,3,103,1,102,2,
+ 83,0,100,1,103,0,102,2,83,0,41,2,97,239,1,0,
+ 0,102,105,110,100,95,108,111,97,100,101,114,40,102,117,108,
+ 108,110,97,109,101,44,32,112,97,116,104,61,78,111,110,101,
+ 41,32,45,62,32,115,101,108,102,44,32,115,116,114,32,111,
+ 114,32,78,111,110,101,46,10,10,32,32,32,32,32,32,32,
+ 32,83,101,97,114,99,104,32,102,111,114,32,97,32,109,111,
+ 100,117,108,101,32,115,112,101,99,105,102,105,101,100,32,98,
+ 121,32,39,102,117,108,108,110,97,109,101,39,46,32,39,102,
+ 117,108,108,110,97,109,101,39,32,109,117,115,116,32,98,101,
+ 32,116,104,101,10,32,32,32,32,32,32,32,32,102,117,108,
+ 108,121,32,113,117,97,108,105,102,105,101,100,32,40,100,111,
+ 116,116,101,100,41,32,109,111,100,117,108,101,32,110,97,109,
+ 101,46,32,73,116,32,114,101,116,117,114,110,115,32,116,104,
+ 101,32,122,105,112,105,109,112,111,114,116,101,114,10,32,32,
+ 32,32,32,32,32,32,105,110,115,116,97,110,99,101,32,105,
+ 116,115,101,108,102,32,105,102,32,116,104,101,32,109,111,100,
+ 117,108,101,32,119,97,115,32,102,111,117,110,100,44,32,97,
+ 32,115,116,114,105,110,103,32,99,111,110,116,97,105,110,105,
+ 110,103,32,116,104,101,10,32,32,32,32,32,32,32,32,102,
+ 117,108,108,32,112,97,116,104,32,110,97,109,101,32,105,102,
+ 32,105,116,39,115,32,112,111,115,115,105,98,108,121,32,97,
+ 32,112,111,114,116,105,111,110,32,111,102,32,97,32,110,97,
+ 109,101,115,112,97,99,101,32,112,97,99,107,97,103,101,44,
+ 10,32,32,32,32,32,32,32,32,111,114,32,78,111,110,101,
+ 32,111,116,104,101,114,119,105,115,101,46,32,84,104,101,32,
+ 111,112,116,105,111,110,97,108,32,39,112,97,116,104,39,32,
+ 97,114,103,117,109,101,110,116,32,105,115,32,105,103,110,111,
+ 114,101,100,32,45,45,32,105,116,39,115,10,32,32,32,32,
+ 32,32,32,32,116,104,101,114,101,32,102,111,114,32,99,111,
+ 109,112,97,116,105,98,105,108,105,116,121,32,119,105,116,104,
+ 32,116,104,101,32,105,109,112,111,114,116,101,114,32,112,114,
+ 111,116,111,99,111,108,46,10,32,32,32,32,32,32,32,32,
+ 78,41,5,218,16,95,103,101,116,95,109,111,100,117,108,101,
+ 95,105,110,102,111,218,16,95,103,101,116,95,109,111,100,117,
+ 108,101,95,112,97,116,104,218,7,95,105,115,95,100,105,114,
+ 114,29,0,0,0,114,20,0,0,0,41,5,114,32,0,0,
+ 0,218,8,102,117,108,108,110,97,109,101,114,13,0,0,0,
+ 218,2,109,105,218,7,109,111,100,112,97,116,104,114,9,0,
+ 0,0,114,9,0,0,0,114,10,0,0,0,218,11,102,105,
+ 110,100,95,108,111,97,100,101,114,109,0,0,0,115,14,0,
+ 0,0,0,10,10,1,8,2,8,7,10,1,10,4,24,2,
+ 122,23,122,105,112,105,109,112,111,114,116,101,114,46,102,105,
+ 110,100,95,108,111,97,100,101,114,99,3,0,0,0,0,0,
0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,
- 0,0,115,40,0,0,0,116,0,124,0,124,1,131,2,125,
- 2,124,2,100,1,107,8,114,36,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,
- 57,0,0,0,114,58,0,0,0,41,2,114,35,0,0,0,
- 114,3,0,0,0,41,3,114,32,0,0,0,114,38,0,0,
- 0,114,39,0,0,0,114,9,0,0,0,114,9,0,0,0,
- 114,10,0,0,0,218,10,105,115,95,112,97,99,107,97,103,
- 101,221,0,0,0,115,8,0,0,0,0,6,10,1,8,1,
- 18,1,122,22,122,105,112,105,109,112,111,114,116,101,114,46,
- 105,115,95,112,97,99,107,97,103,101,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,67,
- 0,0,0,115,248,0,0,0,116,0,124,0,124,1,131,2,
- 92,3,125,2,125,3,125,4,116,1,106,2,160,3,124,1,
- 161,1,125,5,124,5,100,1,107,8,115,46,116,4,124,5,
- 116,5,131,2,115,64,116,5,124,1,131,1,125,5,124,5,
- 116,1,106,2,124,1,60,0,124,0,124,5,95,6,122,84,
- 124,3,114,108,116,7,124,0,124,1,131,2,125,6,116,8,
- 160,9,124,0,106,10,124,6,161,2,125,7,124,7,103,1,
- 124,5,95,11,116,12,124,5,100,2,131,2,115,124,116,13,
- 124,5,95,13,116,8,160,14,124,5,106,15,124,1,124,4,
- 161,3,1,0,116,16,124,2,124,5,106,15,131,2,1,0,
- 87,0,110,22,1,0,1,0,1,0,116,1,106,2,124,1,
- 61,0,130,0,89,0,110,2,48,0,122,14,116,1,106,2,
- 124,1,25,0,125,5,87,0,110,36,4,0,116,17,107,10,
- 114,228,1,0,1,0,1,0,116,18,100,3,124,1,155,2,
- 100,4,157,3,131,1,130,1,89,0,110,2,48,0,116,19,
- 160,20,100,5,124,1,124,4,161,3,1,0,124,5,83,0,
- 41,6,122,245,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,119,97,115,110,39,116,32,102,111,117,110,100,46,
- 10,32,32,32,32,32,32,32,32,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,21,114,44,0,0,0,218,3,115,121,115,218,
- 7,109,111,100,117,108,101,115,218,3,103,101,116,114,15,0,
- 0,0,218,12,95,109,111,100,117,108,101,95,116,121,112,101,
- 218,10,95,95,108,111,97,100,101,114,95,95,114,36,0,0,
- 0,114,21,0,0,0,114,30,0,0,0,114,29,0,0,0,
- 90,8,95,95,112,97,116,104,95,95,218,7,104,97,115,97,
- 116,116,114,114,66,0,0,0,90,14,95,102,105,120,95,117,
- 112,95,109,111,100,117,108,101,218,8,95,95,100,105,99,116,
- 95,95,218,4,101,120,101,99,114,26,0,0,0,218,11,73,
- 109,112,111,114,116,69,114,114,111,114,218,10,95,98,111,111,
- 116,115,116,114,97,112,218,16,95,118,101,114,98,111,115,101,
- 95,109,101,115,115,97,103,101,41,8,114,32,0,0,0,114,
- 38,0,0,0,114,46,0,0,0,114,47,0,0,0,114,40,
- 0,0,0,90,3,109,111,100,114,13,0,0,0,114,63,0,
- 0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
- 0,218,11,108,111,97,100,95,109,111,100,117,108,101,234,0,
- 0,0,115,48,0,0,0,0,7,16,1,12,1,18,1,8,
- 1,10,1,6,2,2,1,4,3,10,1,14,1,8,2,10,
- 1,6,1,16,1,16,1,6,1,8,1,8,2,2,1,14,
- 1,14,1,22,1,14,1,122,23,122,105,112,105,109,112,111,
- 114,116,101,114,46,108,111,97,100,95,109,111,100,117,108,101,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
- 0,8,0,0,0,67,0,0,0,115,88,0,0,0,122,20,
- 124,0,160,0,124,1,161,1,115,18,87,0,100,1,83,0,
- 87,0,110,22,4,0,116,1,107,10,114,42,1,0,1,0,
- 1,0,89,0,100,1,83,0,48,0,116,2,106,3,115,78,
- 100,2,100,3,108,4,109,5,125,2,1,0,124,2,160,6,
- 116,2,161,1,1,0,100,4,116,2,95,3,116,2,124,0,
- 124,1,131,2,83,0,41,5,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,14,
- 82,101,115,111,117,114,99,101,82,101,97,100,101,114,84,41,
- 7,114,65,0,0,0,114,3,0,0,0,218,24,95,90,105,
- 112,73,109,112,111,114,116,82,101,115,111,117,114,99,101,82,
- 101,97,100,101,114,218,11,95,114,101,103,105,115,116,101,114,
- 101,100,90,13,105,109,112,111,114,116,108,105,98,46,97,98,
- 99,114,79,0,0,0,90,8,114,101,103,105,115,116,101,114,
- 41,3,114,32,0,0,0,114,38,0,0,0,114,79,0,0,
+ 0,0,115,16,0,0,0,124,0,160,0,124,1,124,2,161,
+ 2,100,1,25,0,83,0,41,2,97,139,1,0,0,102,105,
+ 110,100,95,109,111,100,117,108,101,40,102,117,108,108,110,97,
+ 109,101,44,32,112,97,116,104,61,78,111,110,101,41,32,45,
+ 62,32,115,101,108,102,32,111,114,32,78,111,110,101,46,10,
+ 10,32,32,32,32,32,32,32,32,83,101,97,114,99,104,32,
+ 102,111,114,32,97,32,109,111,100,117,108,101,32,115,112,101,
+ 99,105,102,105,101,100,32,98,121,32,39,102,117,108,108,110,
+ 97,109,101,39,46,32,39,102,117,108,108,110,97,109,101,39,
+ 32,109,117,115,116,32,98,101,32,116,104,101,10,32,32,32,
+ 32,32,32,32,32,102,117,108,108,121,32,113,117,97,108,105,
+ 102,105,101,100,32,40,100,111,116,116,101,100,41,32,109,111,
+ 100,117,108,101,32,110,97,109,101,46,32,73,116,32,114,101,
+ 116,117,114,110,115,32,116,104,101,32,122,105,112,105,109,112,
+ 111,114,116,101,114,10,32,32,32,32,32,32,32,32,105,110,
+ 115,116,97,110,99,101,32,105,116,115,101,108,102,32,105,102,
+ 32,116,104,101,32,109,111,100,117,108,101,32,119,97,115,32,
+ 102,111,117,110,100,44,32,111,114,32,78,111,110,101,32,105,
+ 102,32,105,116,32,119,97,115,110,39,116,46,10,32,32,32,
+ 32,32,32,32,32,84,104,101,32,111,112,116,105,111,110,97,
+ 108,32,39,112,97,116,104,39,32,97,114,103,117,109,101,110,
+ 116,32,105,115,32,105,103,110,111,114,101,100,32,45,45,32,
+ 105,116,39,115,32,116,104,101,114,101,32,102,111,114,32,99,
+ 111,109,112,97,116,105,98,105,108,105,116,121,10,32,32,32,
+ 32,32,32,32,32,119,105,116,104,32,116,104,101,32,105,109,
+ 112,111,114,116,101,114,32,112,114,111,116,111,99,111,108,46,
+ 10,32,32,32,32,32,32,32,32,114,0,0,0,0,41,1,
+ 114,41,0,0,0,41,3,114,32,0,0,0,114,38,0,0,
+ 0,114,13,0,0,0,114,9,0,0,0,114,9,0,0,0,
+ 114,10,0,0,0,218,11,102,105,110,100,95,109,111,100,117,
+ 108,101,141,0,0,0,115,2,0,0,0,0,9,122,23,122,
+ 105,112,105,109,112,111,114,116,101,114,46,102,105,110,100,95,
+ 109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,5,0,0,0,3,0,0,0,67,0,0,0,115,
+ 20,0,0,0,116,0,124,0,124,1,131,2,92,3,125,2,
+ 125,3,125,4,124,2,83,0,41,1,122,163,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,
+ 102,111,117,110,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,32,0,0,0,114,38,0,0,0,218,
+ 4,99,111,100,101,218,9,105,115,112,97,99,107,97,103,101,
+ 114,40,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
+ 10,0,0,0,218,8,103,101,116,95,99,111,100,101,153,0,
+ 0,0,115,4,0,0,0,0,6,16,1,122,20,122,105,112,
+ 105,109,112,111,114,116,101,114,46,103,101,116,95,99,111,100,
+ 101,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,
+ 0,0,8,0,0,0,67,0,0,0,115,116,0,0,0,116,
+ 0,114,16,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,58,124,1,116,5,124,0,106,4,116,2,23,0,131,
+ 1,100,1,133,2,25,0,125,2,122,14,124,0,106,6,124,
+ 2,25,0,125,3,87,0,110,30,4,0,116,7,121,102,1,
+ 0,1,0,1,0,116,8,100,2,100,3,124,2,131,3,130,
+ 1,89,0,110,2,48,0,116,9,124,0,106,4,124,3,131,
+ 2,83,0,41,4,122,154,103,101,116,95,100,97,116,97,40,
+ 112,97,116,104,110,97,109,101,41,32,45,62,32,115,116,114,
+ 105,110,103,32,119,105,116,104,32,102,105,108,101,32,100,97,
+ 116,97,46,10,10,32,32,32,32,32,32,32,32,82,101,116,
+ 117,114,110,32,116,104,101,32,100,97,116,97,32,97,115,115,
+ 111,99,105,97,116,101,100,32,119,105,116,104,32,39,112,97,
+ 116,104,110,97,109,101,39,46,32,82,97,105,115,101,32,79,
+ 83,69,114,114,111,114,32,105,102,10,32,32,32,32,32,32,
+ 32,32,116,104,101,32,102,105,108,101,32,119,97,115,110,39,
+ 116,32,102,111,117,110,100,46,10,32,32,32,32,32,32,32,
+ 32,78,114,0,0,0,0,218,0,41,10,114,18,0,0,0,
+ 114,19,0,0,0,114,20,0,0,0,218,10,115,116,97,114,
+ 116,115,119,105,116,104,114,29,0,0,0,218,3,108,101,110,
+ 114,28,0,0,0,114,26,0,0,0,114,22,0,0,0,218,
+ 9,95,103,101,116,95,100,97,116,97,41,4,114,32,0,0,
+ 0,218,8,112,97,116,104,110,97,109,101,90,3,107,101,121,
+ 218,9,116,111,99,95,101,110,116,114,121,114,9,0,0,0,
+ 114,9,0,0,0,114,10,0,0,0,218,8,103,101,116,95,
+ 100,97,116,97,163,0,0,0,115,20,0,0,0,0,6,4,
+ 1,12,2,4,1,16,1,22,2,2,1,14,1,12,1,18,
+ 1,122,20,122,105,112,105,109,112,111,114,116,101,114,46,103,
+ 101,116,95,100,97,116,97,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,5,0,0,0,3,0,0,0,67,0,0,0,
+ 115,20,0,0,0,116,0,124,0,124,1,131,2,92,3,125,
+ 2,125,3,125,4,124,4,83,0,41,1,122,106,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,46,10,32,
+ 32,32,32,32,32,32,32,114,43,0,0,0,114,45,0,0,
0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,
- 218,19,103,101,116,95,114,101,115,111,117,114,99,101,95,114,
- 101,97,100,101,114,16,1,0,0,115,20,0,0,0,0,6,
- 2,1,10,1,10,1,14,1,8,1,6,1,12,1,10,1,
- 6,1,122,31,122,105,112,105,109,112,111,114,116,101,114,46,
- 103,101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,
- 100,101,114,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 1,0,0,0,5,0,0,0,67,0,0,0,115,24,0,0,
- 0,100,1,124,0,106,0,155,0,116,1,155,0,124,0,106,
- 2,155,0,100,2,157,5,83,0,41,3,78,122,21,60,122,
- 105,112,105,109,112,111,114,116,101,114,32,111,98,106,101,99,
- 116,32,34,122,2,34,62,41,3,114,29,0,0,0,114,20,
- 0,0,0,114,31,0,0,0,41,1,114,32,0,0,0,114,
- 9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,8,
- 95,95,114,101,112,114,95,95,34,1,0,0,115,2,0,0,
- 0,0,1,122,20,122,105,112,105,109,112,111,114,116,101,114,
- 46,95,95,114,101,112,114,95,95,41,1,78,41,1,78,41,
- 15,114,6,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 218,7,95,95,100,111,99,95,95,114,34,0,0,0,114,41,
- 0,0,0,114,42,0,0,0,114,48,0,0,0,114,55,0,
- 0,0,114,56,0,0,0,114,64,0,0,0,114,65,0,0,
- 0,114,78,0,0,0,114,82,0,0,0,114,83,0,0,0,
- 114,9,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
- 10,0,0,0,114,4,0,0,0,45,0,0,0,115,24,0,
- 0,0,8,1,4,17,8,46,10,32,10,12,8,10,8,21,
- 8,11,8,26,8,13,8,38,8,18,122,12,95,95,105,110,
- 105,116,95,95,46,112,121,99,84,114,60,0,0,0,70,41,
- 3,122,4,46,112,121,99,84,70,41,3,114,61,0,0,0,
- 70,70,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,4,0,0,0,67,0,0,0,115,20,0,0,0,
- 124,0,106,0,124,1,160,1,100,1,161,1,100,2,25,0,
- 23,0,83,0,41,3,78,218,1,46,233,2,0,0,0,41,
- 2,114,31,0,0,0,218,10,114,112,97,114,116,105,116,105,
- 111,110,41,2,114,32,0,0,0,114,38,0,0,0,114,9,
- 0,0,0,114,9,0,0,0,114,10,0,0,0,114,36,0,
- 0,0,52,1,0,0,115,2,0,0,0,0,1,114,36,0,
- 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,3,
- 0,0,0,2,0,0,0,67,0,0,0,115,18,0,0,0,
- 124,1,116,0,23,0,125,2,124,2,124,0,106,1,107,6,
- 83,0,169,1,78,41,2,114,20,0,0,0,114,28,0,0,
- 0,41,3,114,32,0,0,0,114,13,0,0,0,90,7,100,
- 105,114,112,97,116,104,114,9,0,0,0,114,9,0,0,0,
- 114,10,0,0,0,114,37,0,0,0,56,1,0,0,115,4,
- 0,0,0,0,4,8,2,114,37,0,0,0,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,7,0,0,0,4,0,0,
- 0,67,0,0,0,115,56,0,0,0,116,0,124,0,124,1,
- 131,2,125,2,116,1,68,0,93,36,92,3,125,3,125,4,
- 125,5,124,2,124,3,23,0,125,6,124,6,124,0,106,2,
- 107,6,114,14,124,5,2,0,1,0,83,0,113,14,100,0,
- 83,0,114,88,0,0,0,41,3,114,36,0,0,0,218,16,
- 95,122,105,112,95,115,101,97,114,99,104,111,114,100,101,114,
- 114,28,0,0,0,41,7,114,32,0,0,0,114,38,0,0,
- 0,114,13,0,0,0,218,6,115,117,102,102,105,120,218,10,
- 105,115,98,121,116,101,99,111,100,101,114,47,0,0,0,114,
- 63,0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,
- 0,0,0,114,35,0,0,0,65,1,0,0,115,12,0,0,
- 0,0,1,10,1,14,1,8,1,10,1,10,1,114,35,0,
- 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,26,
- 0,0,0,9,0,0,0,67,0,0,0,115,18,5,0,0,
- 122,14,116,0,160,1,124,0,161,1,125,1,87,0,110,38,
- 4,0,116,2,107,10,114,52,1,0,1,0,1,0,116,3,
- 100,1,124,0,155,2,157,2,124,0,100,2,141,2,130,1,
- 89,0,110,2,48,0,124,1,144,4,143,178,1,0,122,36,
- 124,1,160,4,116,5,11,0,100,3,161,2,1,0,124,1,
- 160,6,161,0,125,2,124,1,160,7,116,5,161,1,125,3,
- 87,0,110,38,4,0,116,2,107,10,114,136,1,0,1,0,
+ 218,12,103,101,116,95,102,105,108,101,110,97,109,101,184,0,
+ 0,0,115,4,0,0,0,0,7,16,1,122,24,122,105,112,
+ 105,109,112,111,114,116,101,114,46,103,101,116,95,102,105,108,
+ 101,110,97,109,101,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,6,0,0,0,8,0,0,0,67,0,0,0,115,126,
+ 0,0,0,116,0,124,0,124,1,131,2,125,2,124,2,100,
+ 1,117,0,114,36,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,64,116,3,160,4,124,3,100,4,161,2,125,
+ 4,110,10,124,3,155,0,100,5,157,2,125,4,122,14,124,
+ 0,106,5,124,4,25,0,125,5,87,0,110,20,4,0,116,
+ 6,121,108,1,0,1,0,1,0,89,0,100,1,83,0,48,
+ 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,218,4,110,97,109,101,250,
+ 11,95,95,105,110,105,116,95,95,46,112,121,250,3,46,112,
+ 121,41,10,114,35,0,0,0,114,3,0,0,0,114,36,0,
+ 0,0,114,21,0,0,0,114,30,0,0,0,114,28,0,0,
+ 0,114,26,0,0,0,114,52,0,0,0,114,29,0,0,0,
+ 218,6,100,101,99,111,100,101,41,6,114,32,0,0,0,114,
+ 38,0,0,0,114,39,0,0,0,114,13,0,0,0,218,8,
+ 102,117,108,108,112,97,116,104,114,54,0,0,0,114,9,0,
+ 0,0,114,9,0,0,0,114,10,0,0,0,218,10,103,101,
+ 116,95,115,111,117,114,99,101,195,0,0,0,115,24,0,0,
+ 0,0,7,10,1,8,1,18,2,10,1,4,1,14,2,10,
+ 2,2,1,14,1,12,2,8,1,122,22,122,105,112,105,109,
+ 112,111,114,116,101,114,46,103,101,116,95,115,111,117,114,99,
+ 101,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,
+ 0,0,4,0,0,0,67,0,0,0,115,40,0,0,0,116,
+ 0,124,0,124,1,131,2,125,2,124,2,100,1,117,0,114,
+ 36,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,57,0,0,0,114,58,0,0,
+ 0,41,2,114,35,0,0,0,114,3,0,0,0,41,3,114,
+ 32,0,0,0,114,38,0,0,0,114,39,0,0,0,114,9,
+ 0,0,0,114,9,0,0,0,114,10,0,0,0,218,10,105,
+ 115,95,112,97,99,107,97,103,101,221,0,0,0,115,8,0,
+ 0,0,0,6,10,1,8,1,18,1,122,22,122,105,112,105,
+ 109,112,111,114,116,101,114,46,105,115,95,112,97,99,107,97,
+ 103,101,99,2,0,0,0,0,0,0,0,0,0,0,0,8,
+ 0,0,0,8,0,0,0,67,0,0,0,115,246,0,0,0,
+ 116,0,124,0,124,1,131,2,92,3,125,2,125,3,125,4,
+ 116,1,106,2,160,3,124,1,161,1,125,5,124,5,100,1,
+ 117,0,115,46,116,4,124,5,116,5,131,2,115,64,116,5,
+ 124,1,131,1,125,5,124,5,116,1,106,2,124,1,60,0,
+ 124,0,124,5,95,6,122,84,124,3,114,108,116,7,124,0,
+ 124,1,131,2,125,6,116,8,160,9,124,0,106,10,124,6,
+ 161,2,125,7,124,7,103,1,124,5,95,11,116,12,124,5,
+ 100,2,131,2,115,124,116,13,124,5,95,13,116,8,160,14,
+ 124,5,106,15,124,1,124,4,161,3,1,0,116,16,124,2,
+ 124,5,106,15,131,2,1,0,87,0,110,22,1,0,1,0,
+ 1,0,116,1,106,2,124,1,61,0,130,0,89,0,110,2,
+ 48,0,122,14,116,1,106,2,124,1,25,0,125,5,87,0,
+ 110,34,4,0,116,17,121,226,1,0,1,0,1,0,116,18,
+ 100,3,124,1,155,2,100,4,157,3,131,1,130,1,89,0,
+ 110,2,48,0,116,19,160,20,100,5,124,1,124,4,161,3,
+ 1,0,124,5,83,0,41,6,122,245,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,119,97,115,110,39,116,32,
+ 102,111,117,110,100,46,10,32,32,32,32,32,32,32,32,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,21,114,44,0,0,0,
+ 218,3,115,121,115,218,7,109,111,100,117,108,101,115,218,3,
+ 103,101,116,114,15,0,0,0,218,12,95,109,111,100,117,108,
+ 101,95,116,121,112,101,218,10,95,95,108,111,97,100,101,114,
+ 95,95,114,36,0,0,0,114,21,0,0,0,114,30,0,0,
+ 0,114,29,0,0,0,90,8,95,95,112,97,116,104,95,95,
+ 218,7,104,97,115,97,116,116,114,114,66,0,0,0,90,14,
+ 95,102,105,120,95,117,112,95,109,111,100,117,108,101,218,8,
+ 95,95,100,105,99,116,95,95,218,4,101,120,101,99,114,26,
+ 0,0,0,218,11,73,109,112,111,114,116,69,114,114,111,114,
+ 218,10,95,98,111,111,116,115,116,114,97,112,218,16,95,118,
+ 101,114,98,111,115,101,95,109,101,115,115,97,103,101,41,8,
+ 114,32,0,0,0,114,38,0,0,0,114,46,0,0,0,114,
+ 47,0,0,0,114,40,0,0,0,90,3,109,111,100,114,13,
+ 0,0,0,114,63,0,0,0,114,9,0,0,0,114,9,0,
+ 0,0,114,10,0,0,0,218,11,108,111,97,100,95,109,111,
+ 100,117,108,101,234,0,0,0,115,48,0,0,0,0,7,16,
+ 1,12,1,18,1,8,1,10,1,6,2,2,1,4,3,10,
+ 1,14,1,8,2,10,1,6,1,16,1,16,1,6,1,8,
+ 1,8,2,2,1,14,1,12,1,22,1,14,1,122,23,122,
+ 105,112,105,109,112,111,114,116,101,114,46,108,111,97,100,95,
+ 109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,3,0,0,0,8,0,0,0,67,0,0,0,115,
+ 86,0,0,0,122,20,124,0,160,0,124,1,161,1,115,18,
+ 87,0,100,1,83,0,87,0,110,20,4,0,116,1,121,40,
+ 1,0,1,0,1,0,89,0,100,1,83,0,48,0,116,2,
+ 106,3,115,76,100,2,100,3,108,4,109,5,125,2,1,0,
+ 124,2,160,6,116,2,161,1,1,0,100,4,116,2,95,3,
+ 116,2,124,0,124,1,131,2,83,0,41,5,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,14,82,101,115,111,117,114,99,101,82,101,97,100,
+ 101,114,84,41,7,114,65,0,0,0,114,3,0,0,0,218,
+ 24,95,90,105,112,73,109,112,111,114,116,82,101,115,111,117,
+ 114,99,101,82,101,97,100,101,114,218,11,95,114,101,103,105,
+ 115,116,101,114,101,100,90,13,105,109,112,111,114,116,108,105,
+ 98,46,97,98,99,114,79,0,0,0,90,8,114,101,103,105,
+ 115,116,101,114,41,3,114,32,0,0,0,114,38,0,0,0,
+ 114,79,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
+ 10,0,0,0,218,19,103,101,116,95,114,101,115,111,117,114,
+ 99,101,95,114,101,97,100,101,114,16,1,0,0,115,20,0,
+ 0,0,0,6,2,1,10,1,10,1,12,1,8,1,6,1,
+ 12,1,10,1,6,1,122,31,122,105,112,105,109,112,111,114,
+ 116,101,114,46,103,101,116,95,114,101,115,111,117,114,99,101,
+ 95,114,101,97,100,101,114,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,5,0,0,0,67,0,0,0,
+ 115,24,0,0,0,100,1,124,0,106,0,155,0,116,1,155,
+ 0,124,0,106,2,155,0,100,2,157,5,83,0,41,3,78,
+ 122,21,60,122,105,112,105,109,112,111,114,116,101,114,32,111,
+ 98,106,101,99,116,32,34,122,2,34,62,41,3,114,29,0,
+ 0,0,114,20,0,0,0,114,31,0,0,0,41,1,114,32,
+ 0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,
+ 0,0,218,8,95,95,114,101,112,114,95,95,34,1,0,0,
+ 115,2,0,0,0,0,1,122,20,122,105,112,105,109,112,111,
+ 114,116,101,114,46,95,95,114,101,112,114,95,95,41,1,78,
+ 41,1,78,41,15,114,6,0,0,0,114,7,0,0,0,114,
+ 8,0,0,0,218,7,95,95,100,111,99,95,95,114,34,0,
+ 0,0,114,41,0,0,0,114,42,0,0,0,114,48,0,0,
+ 0,114,55,0,0,0,114,56,0,0,0,114,64,0,0,0,
+ 114,65,0,0,0,114,78,0,0,0,114,82,0,0,0,114,
+ 83,0,0,0,114,9,0,0,0,114,9,0,0,0,114,9,
+ 0,0,0,114,10,0,0,0,114,4,0,0,0,45,0,0,
+ 0,115,24,0,0,0,8,1,4,17,8,46,10,32,10,12,
+ 8,10,8,21,8,11,8,26,8,13,8,38,8,18,122,12,
+ 95,95,105,110,105,116,95,95,46,112,121,99,84,114,60,0,
+ 0,0,70,41,3,122,4,46,112,121,99,84,70,41,3,114,
+ 61,0,0,0,70,70,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,115,
+ 20,0,0,0,124,0,106,0,124,1,160,1,100,1,161,1,
+ 100,2,25,0,23,0,83,0,41,3,78,218,1,46,233,2,
+ 0,0,0,41,2,114,31,0,0,0,218,10,114,112,97,114,
+ 116,105,116,105,111,110,41,2,114,32,0,0,0,114,38,0,
+ 0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
+ 0,114,36,0,0,0,52,1,0,0,115,2,0,0,0,0,
+ 1,114,36,0,0,0,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,3,0,0,0,2,0,0,0,67,0,0,0,115,
+ 18,0,0,0,124,1,116,0,23,0,125,2,124,2,124,0,
+ 106,1,118,0,83,0,169,1,78,41,2,114,20,0,0,0,
+ 114,28,0,0,0,41,3,114,32,0,0,0,114,13,0,0,
+ 0,90,7,100,105,114,112,97,116,104,114,9,0,0,0,114,
+ 9,0,0,0,114,10,0,0,0,114,37,0,0,0,56,1,
+ 0,0,115,4,0,0,0,0,4,8,2,114,37,0,0,0,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,7,0,0,
+ 0,4,0,0,0,67,0,0,0,115,56,0,0,0,116,0,
+ 124,0,124,1,131,2,125,2,116,1,68,0,93,36,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,14,124,5,2,0,1,0,83,0,
+ 113,14,100,0,83,0,114,88,0,0,0,41,3,114,36,0,
+ 0,0,218,16,95,122,105,112,95,115,101,97,114,99,104,111,
+ 114,100,101,114,114,28,0,0,0,41,7,114,32,0,0,0,
+ 114,38,0,0,0,114,13,0,0,0,218,6,115,117,102,102,
+ 105,120,218,10,105,115,98,121,116,101,99,111,100,101,114,47,
+ 0,0,0,114,63,0,0,0,114,9,0,0,0,114,9,0,
+ 0,0,114,10,0,0,0,114,35,0,0,0,65,1,0,0,
+ 115,12,0,0,0,0,1,10,1,14,1,8,1,10,1,10,
+ 1,114,35,0,0,0,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,26,0,0,0,9,0,0,0,67,0,0,0,115,
+ 2,5,0,0,122,14,116,0,160,1,124,0,161,1,125,1,
+ 87,0,110,36,4,0,116,2,121,50,1,0,1,0,1,0,
+ 116,3,100,1,124,0,155,2,157,2,124,0,100,2,141,2,
+ 130,1,89,0,110,2,48,0,124,1,144,4,143,164,1,0,
+ 122,36,124,1,160,4,116,5,11,0,100,3,161,2,1,0,
+ 124,1,160,6,161,0,125,2,124,1,160,7,116,5,161,1,
+ 125,3,87,0,110,36,4,0,116,2,121,132,1,0,1,0,
1,0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,
141,2,130,1,89,0,110,2,48,0,116,8,124,3,131,1,
- 116,5,107,3,114,168,116,3,100,4,124,0,155,2,157,2,
+ 116,5,107,3,114,164,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,144,1,114,178,122,24,124,1,160,4,
+ 25,0,116,9,107,3,144,1,114,170,122,24,124,1,160,4,
100,6,100,3,161,2,1,0,124,1,160,6,161,0,125,4,
- 87,0,110,38,4,0,116,2,107,10,114,248,1,0,1,0,
- 1,0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,
- 141,2,130,1,89,0,110,2,48,0,116,10,124,4,116,11,
- 24,0,116,5,24,0,100,6,131,2,125,5,122,22,124,1,
- 160,4,124,5,161,1,1,0,124,1,160,7,161,0,125,6,
- 87,0,110,40,4,0,116,2,107,10,144,1,114,74,1,0,
+ 87,0,110,36,4,0,116,2,121,242,1,0,1,0,1,0,
+ 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,
+ 130,1,89,0,110,2,48,0,116,10,124,4,116,11,24,0,
+ 116,5,24,0,100,6,131,2,125,5,122,22,124,1,160,4,
+ 124,5,161,1,1,0,124,1,160,7,161,0,125,6,87,0,
+ 110,38,4,0,116,2,144,1,121,66,1,0,1,0,1,0,
+ 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,
+ 130,1,89,0,110,2,48,0,124,6,160,12,116,9,161,1,
+ 125,7,124,7,100,6,107,0,144,1,114,106,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,144,1,114,154,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,144,1,114,230,116,3,100,12,124,0,155,2,
+ 157,2,124,0,100,2,141,2,130,1,124,2,124,9,107,0,
+ 144,2,114,2,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,2,114,46,
+ 116,3,100,14,124,0,155,2,157,2,124,0,100,2,141,2,
+ 130,1,105,0,125,11,100,6,125,12,122,14,124,1,160,4,
+ 124,2,161,1,1,0,87,0,110,38,4,0,116,2,144,2,
+ 121,106,1,0,1,0,1,0,116,3,100,4,124,0,155,2,
+ 157,2,124,0,100,2,141,2,130,1,89,0,110,2,48,0,
+ 124,1,160,7,100,15,161,1,125,3,116,8,124,3,131,1,
+ 100,5,107,0,144,2,114,140,116,14,100,16,131,1,130,1,
+ 124,3,100,0,100,5,133,2,25,0,100,17,107,3,144,2,
+ 114,162,144,4,113,208,116,8,124,3,131,1,100,15,107,3,
+ 144,2,114,184,116,14,100,16,131,1,130,1,116,15,124,3,
+ 100,18,100,19,133,2,25,0,131,1,125,13,116,15,124,3,
+ 100,19,100,9,133,2,25,0,131,1,125,14,116,15,124,3,
+ 100,9,100,20,133,2,25,0,131,1,125,15,116,15,124,3,
+ 100,20,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,21,133,2,25,0,131,1,125,18,116,13,124,3,
+ 100,21,100,22,133,2,25,0,131,1,125,4,116,15,124,3,
+ 100,22,100,23,133,2,25,0,131,1,125,19,116,15,124,3,
+ 100,23,100,24,133,2,25,0,131,1,125,20,116,15,124,3,
+ 100,24,100,25,133,2,25,0,131,1,125,21,116,13,124,3,
+ 100,26,100,15,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,3,
+ 114,144,116,3,100,27,124,0,155,2,157,2,124,0,100,2,
+ 141,2,130,1,124,22,124,10,55,0,125,22,122,14,124,1,
+ 160,7,124,19,161,1,125,23,87,0,110,38,4,0,116,2,
+ 144,3,121,204,1,0,1,0,1,0,116,3,100,4,124,0,
+ 155,2,157,2,124,0,100,2,141,2,130,1,89,0,110,2,
+ 48,0,116,8,124,23,131,1,124,19,107,3,144,3,114,238,
+ 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,
+ 130,1,122,50,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,4,114,30,
+ 116,3,100,4,124,0,155,2,157,2,124,0,100,2,141,2,
+ 130,1,87,0,110,38,4,0,116,2,144,4,121,70,1,0,
1,0,1,0,116,3,100,4,124,0,155,2,157,2,124,0,
- 100,2,141,2,130,1,89,0,110,2,48,0,124,6,160,12,
- 116,9,161,1,125,7,124,7,100,6,107,0,144,1,114,114,
- 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,144,1,114,162,
- 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,144,1,114,238,116,3,100,12,
- 124,0,155,2,157,2,124,0,100,2,141,2,130,1,124,2,
- 124,9,107,0,144,2,114,10,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,2,114,54,116,3,100,14,124,0,155,2,157,2,124,0,
- 100,2,141,2,130,1,105,0,125,11,100,6,125,12,122,14,
- 124,1,160,4,124,2,161,1,1,0,87,0,110,40,4,0,
- 116,2,107,10,144,2,114,116,1,0,1,0,1,0,116,3,
- 100,4,124,0,155,2,157,2,124,0,100,2,141,2,130,1,
- 89,0,110,2,48,0,124,1,160,7,100,15,161,1,125,3,
- 116,8,124,3,131,1,100,5,107,0,144,2,114,150,116,14,
- 100,16,131,1,130,1,124,3,100,0,100,5,133,2,25,0,
- 100,17,107,3,144,2,114,172,144,4,113,224,116,8,124,3,
- 131,1,100,15,107,3,144,2,114,194,116,14,100,16,131,1,
- 130,1,116,15,124,3,100,18,100,19,133,2,25,0,131,1,
- 125,13,116,15,124,3,100,19,100,9,133,2,25,0,131,1,
- 125,14,116,15,124,3,100,9,100,20,133,2,25,0,131,1,
- 125,15,116,15,124,3,100,20,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,21,133,2,25,0,131,1,
- 125,18,116,13,124,3,100,21,100,22,133,2,25,0,131,1,
- 125,4,116,15,124,3,100,22,100,23,133,2,25,0,131,1,
- 125,19,116,15,124,3,100,23,100,24,133,2,25,0,131,1,
- 125,20,116,15,124,3,100,24,100,25,133,2,25,0,131,1,
- 125,21,116,13,124,3,100,26,100,15,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,3,114,154,116,3,100,27,124,0,155,2,
- 157,2,124,0,100,2,141,2,130,1,124,22,124,10,55,0,
- 125,22,122,14,124,1,160,7,124,19,161,1,125,23,87,0,
- 110,40,4,0,116,2,107,10,144,3,114,216,1,0,1,0,
- 1,0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,
- 141,2,130,1,89,0,110,2,48,0,116,8,124,23,131,1,
- 124,19,107,3,144,3,114,250,116,3,100,4,124,0,155,2,
- 157,2,124,0,100,2,141,2,130,1,122,50,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,4,114,42,116,3,100,4,124,0,155,2,
- 157,2,124,0,100,2,141,2,130,1,87,0,110,40,4,0,
- 116,2,107,10,144,4,114,84,1,0,1,0,1,0,116,3,
- 100,4,124,0,155,2,157,2,124,0,100,2,141,2,130,1,
- 89,0,110,2,48,0,124,13,100,28,64,0,144,4,114,106,
- 124,23,160,16,161,0,125,23,110,54,122,14,124,23,160,16,
- 100,29,161,1,125,23,87,0,110,38,4,0,116,17,107,10,
- 144,4,114,158,1,0,1,0,1,0,124,23,160,16,100,30,
- 161,1,160,18,116,19,161,1,125,23,89,0,110,2,48,0,
- 124,23,160,20,100,31,116,21,161,2,125,23,116,22,160,23,
- 124,0,124,23,161,2,125,24,124,24,124,14,124,18,124,4,
- 124,22,124,15,124,16,124,17,102,8,125,25,124,25,124,11,
- 124,23,60,0,124,12,100,32,55,0,125,12,144,2,113,118,
- 87,0,100,0,4,0,4,0,131,3,1,0,110,18,49,0,
- 144,4,115,246,48,0,1,0,1,0,1,0,89,0,1,0,
- 116,24,160,25,100,33,124,12,124,0,161,3,1,0,124,11,
- 83,0,41,34,78,122,21,99,97,110,39,116,32,111,112,101,
- 110,32,90,105,112,32,102,105,108,101,58,32,114,12,0,0,
- 0,114,86,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,233,46,0,0,0,250,27,69,79,70,32,114,101,97,
- 100,32,119,104,101,114,101,32,110,111,116,32,101,120,112,101,
- 99,116,101,100,115,4,0,0,0,80,75,1,2,233,8,0,
- 0,0,233,10,0,0,0,233,14,0,0,0,233,24,0,0,
- 0,233,28,0,0,0,233,30,0,0,0,233,32,0,0,0,
- 233,34,0,0,0,233,42,0,0,0,122,25,98,97,100,32,
- 108,111,99,97,108,32,104,101,97,100,101,114,32,111,102,102,
- 115,101,116,58,32,105,0,8,0,0,218,5,97,115,99,105,
- 105,90,6,108,97,116,105,110,49,250,1,47,114,5,0,0,
- 0,122,33,122,105,112,105,109,112,111,114,116,58,32,102,111,
- 117,110,100,32,123,125,32,110,97,109,101,115,32,105,110,32,
- 123,33,114,125,41,26,218,3,95,105,111,218,9,111,112,101,
- 110,95,99,111,100,101,114,22,0,0,0,114,3,0,0,0,
- 218,4,115,101,101,107,218,20,69,78,68,95,67,69,78,84,
- 82,65,76,95,68,73,82,95,83,73,90,69,90,4,116,101,
- 108,108,218,4,114,101,97,100,114,51,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,62,0,0,0,218,18,85,110,105,99,111,100,101,
- 68,101,99,111,100,101,69,114,114,111,114,218,9,116,114,97,
- 110,115,108,97,116,101,218,11,99,112,52,51,55,95,116,97,
- 98,108,101,114,19,0,0,0,114,20,0,0,0,114,21,0,
- 0,0,114,30,0,0,0,114,76,0,0,0,114,77,0,0,
- 0,41,26,114,29,0,0,0,218,2,102,112,90,15,104,101,
- 97,100,101,114,95,112,111,115,105,116,105,111,110,218,6,98,
- 117,102,102,101,114,218,9,102,105,108,101,95,115,105,122,101,
- 90,17,109,97,120,95,99,111,109,109,101,110,116,95,115,116,
- 97,114,116,218,4,100,97,116,97,90,3,112,111,115,218,11,
- 104,101,97,100,101,114,95,115,105,122,101,90,13,104,101,97,
- 100,101,114,95,111,102,102,115,101,116,90,10,97,114,99,95,
- 111,102,102,115,101,116,114,33,0,0,0,218,5,99,111,117,
- 110,116,218,5,102,108,97,103,115,218,8,99,111,109,112,114,
- 101,115,115,218,4,116,105,109,101,218,4,100,97,116,101,218,
- 3,99,114,99,218,9,100,97,116,97,95,115,105,122,101,218,
- 9,110,97,109,101,95,115,105,122,101,218,10,101,120,116,114,
- 97,95,115,105,122,101,90,12,99,111,109,109,101,110,116,95,
- 115,105,122,101,218,11,102,105,108,101,95,111,102,102,115,101,
- 116,114,59,0,0,0,114,13,0,0,0,218,1,116,114,9,
- 0,0,0,114,9,0,0,0,114,10,0,0,0,114,27,0,
- 0,0,96,1,0,0,115,212,0,0,0,0,1,2,1,14,
- 1,14,1,24,2,8,1,2,1,14,1,8,1,14,1,14,
- 1,24,1,12,1,18,1,18,3,2,1,12,1,12,1,14,
- 1,10,1,2,255,12,2,8,1,2,255,2,1,2,255,4,
- 2,2,1,10,1,12,1,16,1,10,1,2,255,12,2,10,
- 1,10,1,10,1,2,255,6,2,16,1,14,1,10,1,2,
- 255,6,2,16,2,16,1,16,1,10,1,18,1,10,1,18,
- 1,8,1,8,1,10,1,18,2,4,2,4,1,2,1,14,
- 1,16,1,24,2,10,1,14,1,8,2,18,1,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,
- 2,2,1,14,1,16,1,24,1,14,1,18,4,2,1,28,
- 1,22,1,16,1,24,2,10,2,10,3,2,1,14,1,16,
- 1,22,2,12,1,12,1,20,1,8,1,44,1,14,1,114,
- 27,0,0,0,117,190,1,0,0,0,1,2,3,4,5,6,
- 7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,
- 23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,
- 39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,
- 55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,
- 71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,
- 87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,
- 103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,
- 119,120,121,122,123,124,125,126,127,195,135,195,188,195,169,195,
- 162,195,164,195,160,195,165,195,167,195,170,195,171,195,168,195,
- 175,195,174,195,172,195,132,195,133,195,137,195,166,195,134,195,
- 180,195,182,195,178,195,187,195,185,195,191,195,150,195,156,194,
- 162,194,163,194,165,226,130,167,198,146,195,161,195,173,195,179,
- 195,186,195,177,195,145,194,170,194,186,194,191,226,140,144,194,
- 172,194,189,194,188,194,161,194,171,194,187,226,150,145,226,150,
- 146,226,150,147,226,148,130,226,148,164,226,149,161,226,149,162,
- 226,149,150,226,149,149,226,149,163,226,149,145,226,149,151,226,
- 149,157,226,149,156,226,149,155,226,148,144,226,148,148,226,148,
- 180,226,148,172,226,148,156,226,148,128,226,148,188,226,149,158,
- 226,149,159,226,149,154,226,149,148,226,149,169,226,149,166,226,
- 149,160,226,149,144,226,149,172,226,149,167,226,149,168,226,149,
- 164,226,149,165,226,149,153,226,149,152,226,149,146,226,149,147,
- 226,149,171,226,149,170,226,148,152,226,148,140,226,150,136,226,
- 150,132,226,150,140,226,150,144,226,150,128,206,177,195,159,206,
- 147,207,128,206,163,207,131,194,181,207,132,206,166,206,152,206,
- 169,206,180,226,136,158,207,134,206,181,226,136,169,226,137,161,
- 194,177,226,137,165,226,137,164,226,140,160,226,140,161,195,183,
- 226,137,136,194,176,226,136,153,194,183,226,136,154,226,129,191,
- 194,178,226,150,160,194,160,99,0,0,0,0,0,0,0,0,
- 0,0,0,0,1,0,0,0,8,0,0,0,67,0,0,0,
- 115,112,0,0,0,116,0,114,22,116,1,160,2,100,1,161,
- 1,1,0,116,3,100,2,131,1,130,1,100,3,97,0,122,
- 64,122,16,100,4,100,5,108,4,109,5,125,0,1,0,87,
- 0,110,38,4,0,116,6,107,10,114,82,1,0,1,0,1,
- 0,116,1,160,2,100,1,161,1,1,0,116,3,100,2,131,
- 1,130,1,89,0,110,2,48,0,87,0,100,6,97,0,110,
- 6,100,6,97,0,48,0,116,1,160,2,100,7,161,1,1,
- 0,124,0,83,0,41,8,78,122,27,122,105,112,105,109,112,
- 111,114,116,58,32,122,108,105,98,32,85,78,65,86,65,73,
- 76,65,66,76,69,250,41,99,97,110,39,116,32,100,101,99,
- 111,109,112,114,101,115,115,32,100,97,116,97,59,32,122,108,
- 105,98,32,110,111,116,32,97,118,97,105,108,97,98,108,101,
- 84,114,0,0,0,0,169,1,218,10,100,101,99,111,109,112,
- 114,101,115,115,70,122,25,122,105,112,105,109,112,111,114,116,
- 58,32,122,108,105,98,32,97,118,97,105,108,97,98,108,101,
- 41,7,218,15,95,105,109,112,111,114,116,105,110,103,95,122,
- 108,105,98,114,76,0,0,0,114,77,0,0,0,114,3,0,
- 0,0,90,4,122,108,105,98,114,141,0,0,0,218,9,69,
- 120,99,101,112,116,105,111,110,114,140,0,0,0,114,9,0,
- 0,0,114,9,0,0,0,114,10,0,0,0,218,20,95,103,
- 101,116,95,100,101,99,111,109,112,114,101,115,115,95,102,117,
- 110,99,254,1,0,0,115,26,0,0,0,0,2,4,3,10,
- 1,8,2,4,1,4,1,16,1,14,1,10,1,16,2,6,
- 0,6,2,10,1,114,144,0,0,0,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,17,0,0,0,9,0,0,0,67,
- 0,0,0,115,150,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,36,116,0,100,2,131,1,130,1,116,1,160,2,
- 124,0,161,1,144,1,143,18,125,10,122,14,124,10,160,3,
- 124,6,161,1,1,0,87,0,110,38,4,0,116,4,107,10,
- 114,102,1,0,1,0,1,0,116,0,100,3,124,0,155,2,
+ 100,2,141,2,130,1,89,0,110,2,48,0,124,13,100,28,
+ 64,0,144,4,114,92,124,23,160,16,161,0,125,23,110,52,
+ 122,14,124,23,160,16,100,29,161,1,125,23,87,0,110,36,
+ 4,0,116,17,144,4,121,142,1,0,1,0,1,0,124,23,
+ 160,16,100,30,161,1,160,18,116,19,161,1,125,23,89,0,
+ 110,2,48,0,124,23,160,20,100,31,116,21,161,2,125,23,
+ 116,22,160,23,124,0,124,23,161,2,125,24,124,24,124,14,
+ 124,18,124,4,124,22,124,15,124,16,124,17,102,8,125,25,
+ 124,25,124,11,124,23,60,0,124,12,100,32,55,0,125,12,
+ 144,2,113,108,87,0,100,0,4,0,4,0,131,3,1,0,
+ 110,18,49,0,144,4,115,230,48,0,1,0,1,0,1,0,
+ 89,0,1,0,116,24,160,25,100,33,124,12,124,0,161,3,
+ 1,0,124,11,83,0,41,34,78,122,21,99,97,110,39,116,
+ 32,111,112,101,110,32,90,105,112,32,102,105,108,101,58,32,
+ 114,12,0,0,0,114,86,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,233,46,0,0,0,250,27,69,79,70,
+ 32,114,101,97,100,32,119,104,101,114,101,32,110,111,116,32,
+ 101,120,112,101,99,116,101,100,115,4,0,0,0,80,75,1,
+ 2,233,8,0,0,0,233,10,0,0,0,233,14,0,0,0,
+ 233,24,0,0,0,233,28,0,0,0,233,30,0,0,0,233,
+ 32,0,0,0,233,34,0,0,0,233,42,0,0,0,122,25,
+ 98,97,100,32,108,111,99,97,108,32,104,101,97,100,101,114,
+ 32,111,102,102,115,101,116,58,32,105,0,8,0,0,218,5,
+ 97,115,99,105,105,90,6,108,97,116,105,110,49,250,1,47,
+ 114,5,0,0,0,122,33,122,105,112,105,109,112,111,114,116,
+ 58,32,102,111,117,110,100,32,123,125,32,110,97,109,101,115,
+ 32,105,110,32,123,33,114,125,41,26,218,3,95,105,111,218,
+ 9,111,112,101,110,95,99,111,100,101,114,22,0,0,0,114,
+ 3,0,0,0,218,4,115,101,101,107,218,20,69,78,68,95,
+ 67,69,78,84,82,65,76,95,68,73,82,95,83,73,90,69,
+ 90,4,116,101,108,108,218,4,114,101,97,100,114,51,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,62,0,0,0,218,18,85,110,105,
+ 99,111,100,101,68,101,99,111,100,101,69,114,114,111,114,218,
+ 9,116,114,97,110,115,108,97,116,101,218,11,99,112,52,51,
+ 55,95,116,97,98,108,101,114,19,0,0,0,114,20,0,0,
+ 0,114,21,0,0,0,114,30,0,0,0,114,76,0,0,0,
+ 114,77,0,0,0,41,26,114,29,0,0,0,218,2,102,112,
+ 90,15,104,101,97,100,101,114,95,112,111,115,105,116,105,111,
+ 110,218,6,98,117,102,102,101,114,218,9,102,105,108,101,95,
+ 115,105,122,101,90,17,109,97,120,95,99,111,109,109,101,110,
+ 116,95,115,116,97,114,116,218,4,100,97,116,97,90,3,112,
+ 111,115,218,11,104,101,97,100,101,114,95,115,105,122,101,90,
+ 13,104,101,97,100,101,114,95,111,102,102,115,101,116,90,10,
+ 97,114,99,95,111,102,102,115,101,116,114,33,0,0,0,218,
+ 5,99,111,117,110,116,218,5,102,108,97,103,115,218,8,99,
+ 111,109,112,114,101,115,115,218,4,116,105,109,101,218,4,100,
+ 97,116,101,218,3,99,114,99,218,9,100,97,116,97,95,115,
+ 105,122,101,218,9,110,97,109,101,95,115,105,122,101,218,10,
+ 101,120,116,114,97,95,115,105,122,101,90,12,99,111,109,109,
+ 101,110,116,95,115,105,122,101,218,11,102,105,108,101,95,111,
+ 102,102,115,101,116,114,59,0,0,0,114,13,0,0,0,218,
+ 1,116,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
+ 0,114,27,0,0,0,96,1,0,0,115,212,0,0,0,0,
+ 1,2,1,14,1,12,1,24,2,8,1,2,1,14,1,8,
+ 1,14,1,12,1,24,1,12,1,18,1,18,3,2,1,12,
+ 1,12,1,12,1,10,1,2,255,12,2,8,1,2,255,2,
+ 1,2,255,4,2,2,1,10,1,12,1,14,1,10,1,2,
+ 255,12,2,10,1,10,1,10,1,2,255,6,2,16,1,14,
+ 1,10,1,2,255,6,2,16,2,16,1,16,1,10,1,18,
+ 1,10,1,18,1,8,1,8,1,10,1,18,2,4,2,4,
+ 1,2,1,14,1,14,1,24,2,10,1,14,1,8,2,18,
+ 1,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,2,2,1,14,1,14,1,24,1,14,1,18,
+ 4,2,1,28,1,22,1,14,1,24,2,10,2,10,3,2,
+ 1,14,1,14,1,22,2,12,1,12,1,20,1,8,1,44,
+ 1,14,1,114,27,0,0,0,117,190,1,0,0,0,1,2,
+ 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,
+ 19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,
+ 35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,
+ 51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,
+ 67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,
+ 83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,
+ 99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,
+ 115,116,117,118,119,120,121,122,123,124,125,126,127,195,135,195,
+ 188,195,169,195,162,195,164,195,160,195,165,195,167,195,170,195,
+ 171,195,168,195,175,195,174,195,172,195,132,195,133,195,137,195,
+ 166,195,134,195,180,195,182,195,178,195,187,195,185,195,191,195,
+ 150,195,156,194,162,194,163,194,165,226,130,167,198,146,195,161,
+ 195,173,195,179,195,186,195,177,195,145,194,170,194,186,194,191,
+ 226,140,144,194,172,194,189,194,188,194,161,194,171,194,187,226,
+ 150,145,226,150,146,226,150,147,226,148,130,226,148,164,226,149,
+ 161,226,149,162,226,149,150,226,149,149,226,149,163,226,149,145,
+ 226,149,151,226,149,157,226,149,156,226,149,155,226,148,144,226,
+ 148,148,226,148,180,226,148,172,226,148,156,226,148,128,226,148,
+ 188,226,149,158,226,149,159,226,149,154,226,149,148,226,149,169,
+ 226,149,166,226,149,160,226,149,144,226,149,172,226,149,167,226,
+ 149,168,226,149,164,226,149,165,226,149,153,226,149,152,226,149,
+ 146,226,149,147,226,149,171,226,149,170,226,148,152,226,148,140,
+ 226,150,136,226,150,132,226,150,140,226,150,144,226,150,128,206,
+ 177,195,159,206,147,207,128,206,163,207,131,194,181,207,132,206,
+ 166,206,152,206,169,206,180,226,136,158,207,134,206,181,226,136,
+ 169,226,137,161,194,177,226,137,165,226,137,164,226,140,160,226,
+ 140,161,195,183,226,137,136,194,176,226,136,153,194,183,226,136,
+ 154,226,129,191,194,178,226,150,160,194,160,99,0,0,0,0,
+ 0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,
+ 67,0,0,0,115,110,0,0,0,116,0,114,22,116,1,160,
+ 2,100,1,161,1,1,0,116,3,100,2,131,1,130,1,100,
+ 3,97,0,122,62,122,16,100,4,100,5,108,4,109,5,125,
+ 0,1,0,87,0,110,36,4,0,116,6,121,80,1,0,1,
+ 0,1,0,116,1,160,2,100,1,161,1,1,0,116,3,100,
+ 2,131,1,130,1,89,0,110,2,48,0,87,0,100,6,97,
+ 0,110,6,100,6,97,0,48,0,116,1,160,2,100,7,161,
+ 1,1,0,124,0,83,0,41,8,78,122,27,122,105,112,105,
+ 109,112,111,114,116,58,32,122,108,105,98,32,85,78,65,86,
+ 65,73,76,65,66,76,69,250,41,99,97,110,39,116,32,100,
+ 101,99,111,109,112,114,101,115,115,32,100,97,116,97,59,32,
+ 122,108,105,98,32,110,111,116,32,97,118,97,105,108,97,98,
+ 108,101,84,114,0,0,0,0,169,1,218,10,100,101,99,111,
+ 109,112,114,101,115,115,70,122,25,122,105,112,105,109,112,111,
+ 114,116,58,32,122,108,105,98,32,97,118,97,105,108,97,98,
+ 108,101,41,7,218,15,95,105,109,112,111,114,116,105,110,103,
+ 95,122,108,105,98,114,76,0,0,0,114,77,0,0,0,114,
+ 3,0,0,0,90,4,122,108,105,98,114,141,0,0,0,218,
+ 9,69,120,99,101,112,116,105,111,110,114,140,0,0,0,114,
+ 9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,20,
+ 95,103,101,116,95,100,101,99,111,109,112,114,101,115,115,95,
+ 102,117,110,99,254,1,0,0,115,26,0,0,0,0,2,4,
+ 3,10,1,8,2,4,1,4,1,16,1,12,1,10,1,16,
+ 2,6,0,6,2,10,1,114,144,0,0,0,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,17,0,0,0,9,0,0,
+ 0,67,0,0,0,115,144,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,36,116,0,100,2,131,1,130,1,116,1,
+ 160,2,124,0,161,1,144,1,143,14,125,10,122,14,124,10,
+ 160,3,124,6,161,1,1,0,87,0,110,36,4,0,116,4,
+ 121,100,1,0,1,0,1,0,116,0,100,3,124,0,155,2,
157,2,124,0,100,4,141,2,130,1,89,0,110,2,48,0,
124,10,160,5,100,5,161,1,125,11,116,6,124,11,131,1,
- 100,5,107,3,114,134,116,7,100,6,131,1,130,1,124,11,
- 100,0,100,7,133,2,25,0,100,8,107,3,114,168,116,0,
+ 100,5,107,3,114,132,116,7,100,6,131,1,130,1,124,11,
+ 100,0,100,7,133,2,25,0,100,8,107,3,114,166,116,0,
100,9,124,0,155,2,157,2,124,0,100,4,141,2,130,1,
116,8,124,11,100,10,100,11,133,2,25,0,131,1,125,12,
116,8,124,11,100,11,100,5,133,2,25,0,131,1,125,13,
100,5,124,12,23,0,124,13,23,0,125,14,124,6,124,14,
55,0,125,6,122,14,124,10,160,3,124,6,161,1,1,0,
- 87,0,110,40,4,0,116,4,107,10,144,1,114,18,1,0,
- 1,0,1,0,116,0,100,3,124,0,155,2,157,2,124,0,
- 100,4,141,2,130,1,89,0,110,2,48,0,124,10,160,5,
- 124,4,161,1,125,15,116,6,124,15,131,1,124,4,107,3,
- 144,1,114,52,116,4,100,12,131,1,130,1,87,0,100,0,
- 4,0,4,0,131,3,1,0,110,18,49,0,144,1,115,74,
- 48,0,1,0,1,0,1,0,89,0,1,0,124,3,100,1,
- 107,2,144,1,114,98,124,15,83,0,122,10,116,9,131,0,
- 125,16,87,0,110,30,4,0,116,10,107,10,144,1,114,138,
- 1,0,1,0,1,0,116,0,100,13,131,1,130,1,89,0,
- 110,2,48,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,92,0,0,0,114,
- 12,0,0,0,114,104,0,0,0,114,98,0,0,0,114,93,
- 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,103,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,139,0,0,0,
- 105,241,255,255,255,41,11,114,3,0,0,0,114,110,0,0,
- 0,114,111,0,0,0,114,112,0,0,0,114,22,0,0,0,
- 114,114,0,0,0,114,51,0,0,0,114,119,0,0,0,114,
- 1,0,0,0,114,144,0,0,0,114,143,0,0,0,41,17,
- 114,29,0,0,0,114,54,0,0,0,90,8,100,97,116,97,
- 112,97,116,104,114,130,0,0,0,114,134,0,0,0,114,125,
- 0,0,0,114,137,0,0,0,114,131,0,0,0,114,132,0,
- 0,0,114,133,0,0,0,114,123,0,0,0,114,124,0,0,
- 0,114,135,0,0,0,114,136,0,0,0,114,127,0,0,0,
- 90,8,114,97,119,95,100,97,116,97,114,141,0,0,0,114,
- 9,0,0,0,114,9,0,0,0,114,10,0,0,0,114,52,
- 0,0,0,19,2,0,0,115,62,0,0,0,0,1,20,1,
- 8,1,8,2,14,2,2,1,14,1,14,1,24,1,10,1,
- 12,1,8,2,16,2,18,2,16,1,16,1,12,1,8,1,
- 2,1,14,1,16,1,24,1,10,1,14,1,40,2,10,2,
- 4,3,2,1,10,1,16,1,14,1,114,52,0,0,0,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 3,0,0,0,67,0,0,0,115,16,0,0,0,116,0,124,
- 0,124,1,24,0,131,1,100,1,107,1,83,0,41,2,78,
- 114,5,0,0,0,41,1,218,3,97,98,115,41,2,90,2,
- 116,49,90,2,116,50,114,9,0,0,0,114,9,0,0,0,
- 114,10,0,0,0,218,9,95,101,113,95,109,116,105,109,101,
- 65,2,0,0,115,2,0,0,0,0,2,114,147,0,0,0,
- 99,5,0,0,0,0,0,0,0,0,0,0,0,14,0,0,
- 0,8,0,0,0,67,0,0,0,115,60,1,0,0,124,3,
- 124,2,100,1,156,2,125,5,122,18,116,0,160,1,124,4,
- 124,3,124,5,161,3,125,6,87,0,110,22,4,0,116,2,
- 107,10,114,50,1,0,1,0,1,0,89,0,100,0,83,0,
- 48,0,124,6,100,2,64,0,100,3,107,3,125,7,124,7,
- 114,182,124,6,100,4,64,0,100,3,107,3,125,8,116,3,
- 106,4,100,5,107,3,114,180,124,8,115,104,116,3,106,4,
- 100,6,107,2,114,180,116,5,124,0,124,2,131,2,125,9,
- 124,9,100,0,107,9,114,180,116,3,160,6,116,0,106,7,
- 124,9,161,2,125,10,122,20,116,0,160,8,124,4,124,10,
- 124,3,124,5,161,4,1,0,87,0,110,22,4,0,116,2,
- 107,10,114,178,1,0,1,0,1,0,89,0,100,0,83,0,
- 48,0,110,84,116,9,124,0,124,2,131,2,92,2,125,11,
- 125,12,124,11,144,1,114,10,116,10,116,11,124,4,100,7,
- 100,8,133,2,25,0,131,1,124,11,131,2,114,246,116,11,
- 124,4,100,8,100,9,133,2,25,0,131,1,124,12,107,3,
- 144,1,114,10,116,12,160,13,100,10,124,3,155,2,157,2,
- 161,1,1,0,100,0,83,0,116,14,160,15,124,4,100,9,
- 100,0,133,2,25,0,161,1,125,13,116,16,124,13,116,17,
- 131,2,144,1,115,56,116,18,100,11,124,1,155,2,100,12,
- 157,3,131,1,130,1,124,13,83,0,41,13,78,41,2,114,
- 59,0,0,0,114,13,0,0,0,114,5,0,0,0,114,0,
- 0,0,0,114,86,0,0,0,90,5,110,101,118,101,114,90,
- 6,97,108,119,97,121,115,114,99,0,0,0,114,94,0,0,
- 0,114,95,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,19,114,21,0,0,0,90,13,
- 95,99,108,97,115,115,105,102,121,95,112,121,99,114,75,0,
- 0,0,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,147,0,0,0,114,2,0,0,0,114,76,0,
- 0,0,114,77,0,0,0,218,7,109,97,114,115,104,97,108,
- 90,5,108,111,97,100,115,114,15,0,0,0,218,10,95,99,
- 111,100,101,95,116,121,112,101,218,9,84,121,112,101,69,114,
- 114,111,114,41,14,114,32,0,0,0,114,53,0,0,0,114,
- 63,0,0,0,114,38,0,0,0,114,126,0,0,0,90,11,
- 101,120,99,95,100,101,116,97,105,108,115,114,129,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,150,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,46,0,0,0,114,9,0,
- 0,0,114,9,0,0,0,114,10,0,0,0,218,15,95,117,
- 110,109,97,114,115,104,97,108,95,99,111,100,101,75,2,0,
- 0,115,88,0,0,0,0,2,2,1,2,254,6,5,2,1,
- 18,1,14,1,8,2,12,1,4,1,12,1,10,1,2,255,
- 2,1,8,255,2,2,10,1,8,1,4,1,4,1,2,254,
- 4,5,2,1,4,1,2,0,2,0,2,0,2,255,8,2,
- 14,1,10,3,8,255,6,3,6,3,22,1,18,255,4,2,
- 4,1,8,255,4,2,4,2,18,1,12,1,16,1,114,155,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 1,0,0,0,4,0,0,0,67,0,0,0,115,28,0,0,
- 0,124,0,160,0,100,1,100,2,161,2,125,0,124,0,160,
- 0,100,3,100,2,161,2,125,0,124,0,83,0,41,4,78,
- 115,2,0,0,0,13,10,243,1,0,0,0,10,243,1,0,
- 0,0,13,41,1,114,19,0,0,0,41,1,218,6,115,111,
- 117,114,99,101,114,9,0,0,0,114,9,0,0,0,114,10,
- 0,0,0,218,23,95,110,111,114,109,97,108,105,122,101,95,
- 108,105,110,101,95,101,110,100,105,110,103,115,126,2,0,0,
- 115,6,0,0,0,0,1,12,1,12,1,114,159,0,0,0,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
- 0,6,0,0,0,67,0,0,0,115,24,0,0,0,116,0,
- 124,1,131,1,125,1,116,1,124,1,124,0,100,1,100,2,
- 100,3,141,4,83,0,41,4,78,114,74,0,0,0,84,41,
- 1,90,12,100,111,110,116,95,105,110,104,101,114,105,116,41,
- 2,114,159,0,0,0,218,7,99,111,109,112,105,108,101,41,
- 2,114,53,0,0,0,114,158,0,0,0,114,9,0,0,0,
- 114,9,0,0,0,114,10,0,0,0,218,15,95,99,111,109,
- 112,105,108,101,95,115,111,117,114,99,101,133,2,0,0,115,
- 4,0,0,0,0,1,8,1,114,161,0,0,0,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,11,0,
- 0,0,67,0,0,0,115,68,0,0,0,116,0,160,1,124,
- 0,100,1,63,0,100,2,23,0,124,0,100,3,63,0,100,
- 4,64,0,124,0,100,5,64,0,124,1,100,6,63,0,124,
- 1,100,3,63,0,100,7,64,0,124,1,100,5,64,0,100,
- 8,20,0,100,9,100,9,100,9,102,9,161,1,83,0,41,
- 10,78,233,9,0,0,0,105,188,7,0,0,233,5,0,0,
- 0,233,15,0,0,0,233,31,0,0,0,233,11,0,0,0,
- 233,63,0,0,0,114,86,0,0,0,114,14,0,0,0,41,
- 2,114,131,0,0,0,90,6,109,107,116,105,109,101,41,2,
- 218,1,100,114,138,0,0,0,114,9,0,0,0,114,9,0,
- 0,0,114,10,0,0,0,218,14,95,112,97,114,115,101,95,
- 100,111,115,116,105,109,101,139,2,0,0,115,22,0,0,0,
- 0,1,4,1,10,1,10,1,6,1,6,1,10,1,10,1,
- 2,0,2,0,2,249,114,169,0,0,0,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,6,0,0,0,10,0,0,0,
- 67,0,0,0,115,116,0,0,0,122,82,124,1,100,1,100,
- 0,133,2,25,0,100,2,107,6,115,22,74,0,130,1,124,
- 1,100,0,100,1,133,2,25,0,125,1,124,0,106,0,124,
- 1,25,0,125,2,124,2,100,3,25,0,125,3,124,2,100,
- 4,25,0,125,4,124,2,100,5,25,0,125,5,116,1,124,
- 4,124,3,131,2,124,5,102,2,87,0,83,0,4,0,116,
- 2,116,3,116,4,102,3,107,10,114,110,1,0,1,0,1,
- 0,89,0,100,6,83,0,48,0,100,0,83,0,41,7,78,
- 114,14,0,0,0,169,2,218,1,99,218,1,111,114,163,0,
- 0,0,233,6,0,0,0,233,3,0,0,0,41,2,114,0,
- 0,0,0,114,0,0,0,0,41,5,114,28,0,0,0,114,
- 169,0,0,0,114,26,0,0,0,218,10,73,110,100,101,120,
- 69,114,114,111,114,114,154,0,0,0,41,6,114,32,0,0,
- 0,114,13,0,0,0,114,54,0,0,0,114,131,0,0,0,
- 114,132,0,0,0,90,17,117,110,99,111,109,112,114,101,115,
- 115,101,100,95,115,105,122,101,114,9,0,0,0,114,9,0,
- 0,0,114,10,0,0,0,114,151,0,0,0,152,2,0,0,
- 115,20,0,0,0,0,1,2,2,20,1,12,1,10,3,8,
- 1,8,1,8,1,16,1,20,1,114,151,0,0,0,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,8,
- 0,0,0,67,0,0,0,115,86,0,0,0,124,1,100,1,
- 100,0,133,2,25,0,100,2,107,6,115,20,74,0,130,1,
- 124,1,100,0,100,1,133,2,25,0,125,1,122,14,124,0,
- 106,0,124,1,25,0,125,2,87,0,110,22,4,0,116,1,
- 107,10,114,68,1,0,1,0,1,0,89,0,100,0,83,0,
- 48,0,116,2,124,0,106,3,124,2,131,2,83,0,100,0,
- 83,0,41,3,78,114,14,0,0,0,114,170,0,0,0,41,
- 4,114,28,0,0,0,114,26,0,0,0,114,52,0,0,0,
- 114,29,0,0,0,41,3,114,32,0,0,0,114,13,0,0,
- 0,114,54,0,0,0,114,9,0,0,0,114,9,0,0,0,
- 114,10,0,0,0,114,149,0,0,0,171,2,0,0,115,14,
- 0,0,0,0,2,20,1,12,2,2,1,14,1,14,1,8,
- 2,114,149,0,0,0,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,11,0,0,0,9,0,0,0,67,0,0,0,115,
- 198,0,0,0,116,0,124,0,124,1,131,2,125,2,116,1,
- 68,0,93,160,92,3,125,3,125,4,125,5,124,2,124,3,
- 23,0,125,6,116,2,106,3,100,1,124,0,106,4,116,5,
- 124,6,100,2,100,3,141,5,1,0,122,14,124,0,106,6,
- 124,6,25,0,125,7,87,0,110,20,4,0,116,7,107,10,
- 114,88,1,0,1,0,1,0,89,0,113,14,48,0,124,7,
- 100,4,25,0,125,8,116,8,124,0,106,4,124,7,131,2,
- 125,9,124,4,114,132,116,9,124,0,124,8,124,6,124,1,
- 124,9,131,5,125,10,110,10,116,10,124,8,124,9,131,2,
- 125,10,124,10,100,0,107,8,114,152,113,14,124,7,100,4,
- 25,0,125,8,124,10,124,5,124,8,102,3,2,0,1,0,
- 83,0,113,14,116,11,100,5,124,1,155,2,157,2,124,1,
- 100,6,141,2,130,1,100,0,83,0,41,7,78,122,13,116,
- 114,121,105,110,103,32,123,125,123,125,123,125,114,86,0,0,
- 0,41,1,90,9,118,101,114,98,111,115,105,116,121,114,0,
- 0,0,0,114,57,0,0,0,114,58,0,0,0,41,12,114,
- 36,0,0,0,114,89,0,0,0,114,76,0,0,0,114,77,
- 0,0,0,114,29,0,0,0,114,20,0,0,0,114,28,0,
- 0,0,114,26,0,0,0,114,52,0,0,0,114,155,0,0,
- 0,114,161,0,0,0,114,3,0,0,0,41,11,114,32,0,
- 0,0,114,38,0,0,0,114,13,0,0,0,114,90,0,0,
- 0,114,91,0,0,0,114,47,0,0,0,114,63,0,0,0,
- 114,54,0,0,0,114,40,0,0,0,114,126,0,0,0,114,
- 46,0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,
- 0,0,0,114,44,0,0,0,186,2,0,0,115,36,0,0,
- 0,0,1,10,1,14,1,8,1,22,1,2,1,14,1,14,
- 1,6,2,8,1,12,1,4,1,18,2,10,1,8,3,2,
- 1,8,1,16,2,114,44,0,0,0,99,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,
- 0,0,0,115,60,0,0,0,101,0,90,1,100,0,90,2,
- 100,1,90,3,100,2,90,4,100,3,100,4,132,0,90,5,
- 100,5,100,6,132,0,90,6,100,7,100,8,132,0,90,7,
- 100,9,100,10,132,0,90,8,100,11,100,12,132,0,90,9,
- 100,13,83,0,41,14,114,80,0,0,0,122,165,80,114,105,
- 118,97,116,101,32,99,108,97,115,115,32,117,115,101,100,32,
- 116,111,32,115,117,112,112,111,114,116,32,90,105,112,73,109,
- 112,111,114,116,46,103,101,116,95,114,101,115,111,117,114,99,
- 101,95,114,101,97,100,101,114,40,41,46,10,10,32,32,32,
- 32,84,104,105,115,32,99,108,97,115,115,32,105,115,32,97,
- 108,108,111,119,101,100,32,116,111,32,114,101,102,101,114,101,
- 110,99,101,32,97,108,108,32,116,104,101,32,105,110,110,97,
- 114,100,115,32,97,110,100,32,112,114,105,118,97,116,101,32,
- 112,97,114,116,115,32,111,102,10,32,32,32,32,116,104,101,
- 32,122,105,112,105,109,112,111,114,116,101,114,46,10,32,32,
- 32,32,70,99,3,0,0,0,0,0,0,0,0,0,0,0,
- 3,0,0,0,2,0,0,0,67,0,0,0,115,16,0,0,
- 0,124,1,124,0,95,0,124,2,124,0,95,1,100,0,83,
- 0,114,88,0,0,0,41,2,114,4,0,0,0,114,38,0,
- 0,0,41,3,114,32,0,0,0,114,4,0,0,0,114,38,
+ 87,0,110,38,4,0,116,4,144,1,121,14,1,0,1,0,
+ 1,0,116,0,100,3,124,0,155,2,157,2,124,0,100,4,
+ 141,2,130,1,89,0,110,2,48,0,124,10,160,5,124,4,
+ 161,1,125,15,116,6,124,15,131,1,124,4,107,3,144,1,
+ 114,48,116,4,100,12,131,1,130,1,87,0,100,0,4,0,
+ 4,0,131,3,1,0,110,18,49,0,144,1,115,70,48,0,
+ 1,0,1,0,1,0,89,0,1,0,124,3,100,1,107,2,
+ 144,1,114,94,124,15,83,0,122,10,116,9,131,0,125,16,
+ 87,0,110,28,4,0,116,10,144,1,121,132,1,0,1,0,
+ 1,0,116,0,100,13,131,1,130,1,89,0,110,2,48,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,92,0,0,0,114,12,0,0,0,
+ 114,104,0,0,0,114,98,0,0,0,114,93,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,103,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,139,0,0,0,105,241,255,255,
+ 255,41,11,114,3,0,0,0,114,110,0,0,0,114,111,0,
+ 0,0,114,112,0,0,0,114,22,0,0,0,114,114,0,0,
+ 0,114,51,0,0,0,114,119,0,0,0,114,1,0,0,0,
+ 114,144,0,0,0,114,143,0,0,0,41,17,114,29,0,0,
+ 0,114,54,0,0,0,90,8,100,97,116,97,112,97,116,104,
+ 114,130,0,0,0,114,134,0,0,0,114,125,0,0,0,114,
+ 137,0,0,0,114,131,0,0,0,114,132,0,0,0,114,133,
+ 0,0,0,114,123,0,0,0,114,124,0,0,0,114,135,0,
+ 0,0,114,136,0,0,0,114,127,0,0,0,90,8,114,97,
+ 119,95,100,97,116,97,114,141,0,0,0,114,9,0,0,0,
+ 114,9,0,0,0,114,10,0,0,0,114,52,0,0,0,19,
+ 2,0,0,115,62,0,0,0,0,1,20,1,8,1,8,2,
+ 14,2,2,1,14,1,12,1,24,1,10,1,12,1,8,2,
+ 16,2,18,2,16,1,16,1,12,1,8,1,2,1,14,1,
+ 14,1,24,1,10,1,14,1,40,2,10,2,4,3,2,1,
+ 10,1,14,1,14,1,114,52,0,0,0,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
+ 67,0,0,0,115,16,0,0,0,116,0,124,0,124,1,24,
+ 0,131,1,100,1,107,1,83,0,41,2,78,114,5,0,0,
+ 0,41,1,218,3,97,98,115,41,2,90,2,116,49,90,2,
+ 116,50,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
+ 0,218,9,95,101,113,95,109,116,105,109,101,65,2,0,0,
+ 115,2,0,0,0,0,2,114,147,0,0,0,99,5,0,0,
+ 0,0,0,0,0,0,0,0,0,14,0,0,0,8,0,0,
+ 0,67,0,0,0,115,56,1,0,0,124,3,124,2,100,1,
+ 156,2,125,5,122,18,116,0,160,1,124,4,124,3,124,5,
+ 161,3,125,6,87,0,110,20,4,0,116,2,121,48,1,0,
+ 1,0,1,0,89,0,100,0,83,0,48,0,124,6,100,2,
+ 64,0,100,3,107,3,125,7,124,7,114,178,124,6,100,4,
+ 64,0,100,3,107,3,125,8,116,3,106,4,100,5,107,3,
+ 114,176,124,8,115,102,116,3,106,4,100,6,107,2,114,176,
+ 116,5,124,0,124,2,131,2,125,9,124,9,100,0,117,1,
+ 114,176,116,3,160,6,116,0,106,7,124,9,161,2,125,10,
+ 122,20,116,0,160,8,124,4,124,10,124,3,124,5,161,4,
+ 1,0,87,0,110,20,4,0,116,2,121,174,1,0,1,0,
+ 1,0,89,0,100,0,83,0,48,0,110,84,116,9,124,0,
+ 124,2,131,2,92,2,125,11,125,12,124,11,144,1,114,6,
+ 116,10,116,11,124,4,100,7,100,8,133,2,25,0,131,1,
+ 124,11,131,2,114,242,116,11,124,4,100,8,100,9,133,2,
+ 25,0,131,1,124,12,107,3,144,1,114,6,116,12,160,13,
+ 100,10,124,3,155,2,157,2,161,1,1,0,100,0,83,0,
+ 116,14,160,15,124,4,100,9,100,0,133,2,25,0,161,1,
+ 125,13,116,16,124,13,116,17,131,2,144,1,115,52,116,18,
+ 100,11,124,1,155,2,100,12,157,3,131,1,130,1,124,13,
+ 83,0,41,13,78,41,2,114,59,0,0,0,114,13,0,0,
+ 0,114,5,0,0,0,114,0,0,0,0,114,86,0,0,0,
+ 90,5,110,101,118,101,114,90,6,97,108,119,97,121,115,114,
+ 99,0,0,0,114,94,0,0,0,114,95,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,
+ 19,114,21,0,0,0,90,13,95,99,108,97,115,115,105,102,
+ 121,95,112,121,99,114,75,0,0,0,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,147,0,0,0,
+ 114,2,0,0,0,114,76,0,0,0,114,77,0,0,0,218,
+ 7,109,97,114,115,104,97,108,90,5,108,111,97,100,115,114,
+ 15,0,0,0,218,10,95,99,111,100,101,95,116,121,112,101,
+ 218,9,84,121,112,101,69,114,114,111,114,41,14,114,32,0,
+ 0,0,114,53,0,0,0,114,63,0,0,0,114,38,0,0,
+ 0,114,126,0,0,0,90,11,101,120,99,95,100,101,116,97,
+ 105,108,115,114,129,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,150,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,46,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
+ 10,0,0,0,218,15,95,117,110,109,97,114,115,104,97,108,
+ 95,99,111,100,101,75,2,0,0,115,88,0,0,0,0,2,
+ 2,1,2,254,6,5,2,1,18,1,12,1,8,2,12,1,
+ 4,1,12,1,10,1,2,255,2,1,8,255,2,2,10,1,
+ 8,1,4,1,4,1,2,254,4,5,2,1,4,1,2,0,
+ 2,0,2,0,2,255,8,2,12,1,10,3,8,255,6,3,
+ 6,3,22,1,18,255,4,2,4,1,8,255,4,2,4,2,
+ 18,1,12,1,16,1,114,155,0,0,0,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,
+ 67,0,0,0,115,28,0,0,0,124,0,160,0,100,1,100,
+ 2,161,2,125,0,124,0,160,0,100,3,100,2,161,2,125,
+ 0,124,0,83,0,41,4,78,115,2,0,0,0,13,10,243,
+ 1,0,0,0,10,243,1,0,0,0,13,41,1,114,19,0,
+ 0,0,41,1,218,6,115,111,117,114,99,101,114,9,0,0,
+ 0,114,9,0,0,0,114,10,0,0,0,218,23,95,110,111,
+ 114,109,97,108,105,122,101,95,108,105,110,101,95,101,110,100,
+ 105,110,103,115,126,2,0,0,115,6,0,0,0,0,1,12,
+ 1,12,1,114,159,0,0,0,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,6,0,0,0,67,0,0,
+ 0,115,24,0,0,0,116,0,124,1,131,1,125,1,116,1,
+ 124,1,124,0,100,1,100,2,100,3,141,4,83,0,41,4,
+ 78,114,74,0,0,0,84,41,1,90,12,100,111,110,116,95,
+ 105,110,104,101,114,105,116,41,2,114,159,0,0,0,218,7,
+ 99,111,109,112,105,108,101,41,2,114,53,0,0,0,114,158,
0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,
- 0,0,114,34,0,0,0,220,2,0,0,115,4,0,0,0,
- 0,1,6,1,122,33,95,90,105,112,73,109,112,111,114,116,
- 82,101,115,111,117,114,99,101,82,101,97,100,101,114,46,95,
- 95,105,110,105,116,95,95,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,5,0,0,0,8,0,0,0,67,0,0,0,
- 115,92,0,0,0,124,0,106,0,160,1,100,1,100,2,161,
- 2,125,2,124,2,155,0,100,2,124,1,155,0,157,3,125,
- 3,100,3,100,4,108,2,109,3,125,4,1,0,122,18,124,
- 4,124,0,106,4,160,5,124,3,161,1,131,1,87,0,83,
- 0,4,0,116,6,107,10,114,86,1,0,1,0,1,0,116,
+ 0,0,218,15,95,99,111,109,112,105,108,101,95,115,111,117,
+ 114,99,101,133,2,0,0,115,4,0,0,0,0,1,8,1,
+ 114,161,0,0,0,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,11,0,0,0,67,0,0,0,115,68,
+ 0,0,0,116,0,160,1,124,0,100,1,63,0,100,2,23,
+ 0,124,0,100,3,63,0,100,4,64,0,124,0,100,5,64,
+ 0,124,1,100,6,63,0,124,1,100,3,63,0,100,7,64,
+ 0,124,1,100,5,64,0,100,8,20,0,100,9,100,9,100,
+ 9,102,9,161,1,83,0,41,10,78,233,9,0,0,0,105,
+ 188,7,0,0,233,5,0,0,0,233,15,0,0,0,233,31,
+ 0,0,0,233,11,0,0,0,233,63,0,0,0,114,86,0,
+ 0,0,114,14,0,0,0,41,2,114,131,0,0,0,90,6,
+ 109,107,116,105,109,101,41,2,218,1,100,114,138,0,0,0,
+ 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,
+ 14,95,112,97,114,115,101,95,100,111,115,116,105,109,101,139,
+ 2,0,0,115,22,0,0,0,0,1,4,1,10,1,10,1,
+ 6,1,6,1,10,1,10,1,2,0,2,0,2,249,114,169,
+ 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 6,0,0,0,10,0,0,0,67,0,0,0,115,114,0,0,
+ 0,122,82,124,1,100,1,100,0,133,2,25,0,100,2,118,
+ 0,115,22,74,0,130,1,124,1,100,0,100,1,133,2,25,
+ 0,125,1,124,0,106,0,124,1,25,0,125,2,124,2,100,
+ 3,25,0,125,3,124,2,100,4,25,0,125,4,124,2,100,
+ 5,25,0,125,5,116,1,124,4,124,3,131,2,124,5,102,
+ 2,87,0,83,0,4,0,116,2,116,3,116,4,102,3,121,
+ 108,1,0,1,0,1,0,89,0,100,6,83,0,48,0,100,
+ 0,83,0,41,7,78,114,14,0,0,0,169,2,218,1,99,
+ 218,1,111,114,163,0,0,0,233,6,0,0,0,233,3,0,
+ 0,0,41,2,114,0,0,0,0,114,0,0,0,0,41,5,
+ 114,28,0,0,0,114,169,0,0,0,114,26,0,0,0,218,
+ 10,73,110,100,101,120,69,114,114,111,114,114,154,0,0,0,
+ 41,6,114,32,0,0,0,114,13,0,0,0,114,54,0,0,
+ 0,114,131,0,0,0,114,132,0,0,0,90,17,117,110,99,
+ 111,109,112,114,101,115,115,101,100,95,115,105,122,101,114,9,
+ 0,0,0,114,9,0,0,0,114,10,0,0,0,114,151,0,
+ 0,0,152,2,0,0,115,20,0,0,0,0,1,2,2,20,
+ 1,12,1,10,3,8,1,8,1,8,1,16,1,18,1,114,
+ 151,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,3,0,0,0,8,0,0,0,67,0,0,0,115,84,0,
+ 0,0,124,1,100,1,100,0,133,2,25,0,100,2,118,0,
+ 115,20,74,0,130,1,124,1,100,0,100,1,133,2,25,0,
+ 125,1,122,14,124,0,106,0,124,1,25,0,125,2,87,0,
+ 110,20,4,0,116,1,121,66,1,0,1,0,1,0,89,0,
+ 100,0,83,0,48,0,116,2,124,0,106,3,124,2,131,2,
+ 83,0,100,0,83,0,41,3,78,114,14,0,0,0,114,170,
+ 0,0,0,41,4,114,28,0,0,0,114,26,0,0,0,114,
+ 52,0,0,0,114,29,0,0,0,41,3,114,32,0,0,0,
+ 114,13,0,0,0,114,54,0,0,0,114,9,0,0,0,114,
+ 9,0,0,0,114,10,0,0,0,114,149,0,0,0,171,2,
+ 0,0,115,14,0,0,0,0,2,20,1,12,2,2,1,14,
+ 1,12,1,8,2,114,149,0,0,0,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,11,0,0,0,9,0,0,0,67,
+ 0,0,0,115,196,0,0,0,116,0,124,0,124,1,131,2,
+ 125,2,116,1,68,0,93,158,92,3,125,3,125,4,125,5,
+ 124,2,124,3,23,0,125,6,116,2,106,3,100,1,124,0,
+ 106,4,116,5,124,6,100,2,100,3,141,5,1,0,122,14,
+ 124,0,106,6,124,6,25,0,125,7,87,0,110,18,4,0,
+ 116,7,121,86,1,0,1,0,1,0,89,0,113,14,48,0,
+ 124,7,100,4,25,0,125,8,116,8,124,0,106,4,124,7,
+ 131,2,125,9,124,4,114,130,116,9,124,0,124,8,124,6,
+ 124,1,124,9,131,5,125,10,110,10,116,10,124,8,124,9,
+ 131,2,125,10,124,10,100,0,117,0,114,150,113,14,124,7,
+ 100,4,25,0,125,8,124,10,124,5,124,8,102,3,2,0,
+ 1,0,83,0,113,14,116,11,100,5,124,1,155,2,157,2,
+ 124,1,100,6,141,2,130,1,100,0,83,0,41,7,78,122,
+ 13,116,114,121,105,110,103,32,123,125,123,125,123,125,114,86,
+ 0,0,0,41,1,90,9,118,101,114,98,111,115,105,116,121,
+ 114,0,0,0,0,114,57,0,0,0,114,58,0,0,0,41,
+ 12,114,36,0,0,0,114,89,0,0,0,114,76,0,0,0,
+ 114,77,0,0,0,114,29,0,0,0,114,20,0,0,0,114,
+ 28,0,0,0,114,26,0,0,0,114,52,0,0,0,114,155,
+ 0,0,0,114,161,0,0,0,114,3,0,0,0,41,11,114,
+ 32,0,0,0,114,38,0,0,0,114,13,0,0,0,114,90,
+ 0,0,0,114,91,0,0,0,114,47,0,0,0,114,63,0,
+ 0,0,114,54,0,0,0,114,40,0,0,0,114,126,0,0,
+ 0,114,46,0,0,0,114,9,0,0,0,114,9,0,0,0,
+ 114,10,0,0,0,114,44,0,0,0,186,2,0,0,115,36,
+ 0,0,0,0,1,10,1,14,1,8,1,22,1,2,1,14,
+ 1,12,1,6,2,8,1,12,1,4,1,18,2,10,1,8,
+ 3,2,1,8,1,16,2,114,44,0,0,0,99,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+ 0,64,0,0,0,115,60,0,0,0,101,0,90,1,100,0,
+ 90,2,100,1,90,3,100,2,90,4,100,3,100,4,132,0,
+ 90,5,100,5,100,6,132,0,90,6,100,7,100,8,132,0,
+ 90,7,100,9,100,10,132,0,90,8,100,11,100,12,132,0,
+ 90,9,100,13,83,0,41,14,114,80,0,0,0,122,165,80,
+ 114,105,118,97,116,101,32,99,108,97,115,115,32,117,115,101,
+ 100,32,116,111,32,115,117,112,112,111,114,116,32,90,105,112,
+ 73,109,112,111,114,116,46,103,101,116,95,114,101,115,111,117,
+ 114,99,101,95,114,101,97,100,101,114,40,41,46,10,10,32,
+ 32,32,32,84,104,105,115,32,99,108,97,115,115,32,105,115,
+ 32,97,108,108,111,119,101,100,32,116,111,32,114,101,102,101,
+ 114,101,110,99,101,32,97,108,108,32,116,104,101,32,105,110,
+ 110,97,114,100,115,32,97,110,100,32,112,114,105,118,97,116,
+ 101,32,112,97,114,116,115,32,111,102,10,32,32,32,32,116,
+ 104,101,32,122,105,112,105,109,112,111,114,116,101,114,46,10,
+ 32,32,32,32,70,99,3,0,0,0,0,0,0,0,0,0,
+ 0,0,3,0,0,0,2,0,0,0,67,0,0,0,115,16,
+ 0,0,0,124,1,124,0,95,0,124,2,124,0,95,1,100,
+ 0,83,0,114,88,0,0,0,41,2,114,4,0,0,0,114,
+ 38,0,0,0,41,3,114,32,0,0,0,114,4,0,0,0,
+ 114,38,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
+ 10,0,0,0,114,34,0,0,0,220,2,0,0,115,4,0,
+ 0,0,0,1,6,1,122,33,95,90,105,112,73,109,112,111,
+ 114,116,82,101,115,111,117,114,99,101,82,101,97,100,101,114,
+ 46,95,95,105,110,105,116,95,95,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,5,0,0,0,8,0,0,0,67,0,
+ 0,0,115,90,0,0,0,124,0,106,0,160,1,100,1,100,
+ 2,161,2,125,2,124,2,155,0,100,2,124,1,155,0,157,
+ 3,125,3,100,3,100,4,108,2,109,3,125,4,1,0,122,
+ 18,124,4,124,0,106,4,160,5,124,3,161,1,131,1,87,
+ 0,83,0,4,0,116,6,121,84,1,0,1,0,1,0,116,
7,124,3,131,1,130,1,89,0,110,2,48,0,100,0,83,
0,41,5,78,114,85,0,0,0,114,109,0,0,0,114,0,
0,0,0,41,1,218,7,66,121,116,101,115,73,79,41,8,
@@ -986,7 +983,7 @@ const unsigned char _Py_M__zipimport[] = {
0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
0,218,13,111,112,101,110,95,114,101,115,111,117,114,99,101,
224,2,0,0,115,14,0,0,0,0,1,14,1,14,1,12,
- 1,2,1,18,1,14,1,122,38,95,90,105,112,73,109,112,
+ 1,2,1,18,1,12,1,122,38,95,90,105,112,73,109,112,
111,114,116,82,101,115,111,117,114,99,101,82,101,97,100,101,
114,46,111,112,101,110,95,114,101,115,111,117,114,99,101,99,
2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
@@ -999,85 +996,85 @@ const unsigned char _Py_M__zipimport[] = {
114,116,82,101,115,111,117,114,99,101,82,101,97,100,101,114,
46,114,101,115,111,117,114,99,101,95,112,97,116,104,99,2,
0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,
- 0,0,0,67,0,0,0,115,72,0,0,0,124,0,106,0,
+ 0,0,0,67,0,0,0,115,70,0,0,0,124,0,106,0,
160,1,100,1,100,2,161,2,125,2,124,2,155,0,100,2,
124,1,155,0,157,3,125,3,122,16,124,0,106,2,160,3,
- 124,3,161,1,1,0,87,0,110,22,4,0,116,4,107,10,
- 114,66,1,0,1,0,1,0,89,0,100,3,83,0,48,0,
- 100,4,83,0,41,5,78,114,85,0,0,0,114,109,0,0,
- 0,70,84,41,5,114,38,0,0,0,114,19,0,0,0,114,
- 4,0,0,0,114,55,0,0,0,114,22,0,0,0,41,4,
- 114,32,0,0,0,114,59,0,0,0,114,179,0,0,0,114,
- 13,0,0,0,114,9,0,0,0,114,9,0,0,0,114,10,
- 0,0,0,218,11,105,115,95,114,101,115,111,117,114,99,101,
- 239,2,0,0,115,14,0,0,0,0,3,14,1,14,1,2,
- 1,16,1,14,1,8,1,122,36,95,90,105,112,73,109,112,
- 111,114,116,82,101,115,111,117,114,99,101,82,101,97,100,101,
- 114,46,105,115,95,114,101,115,111,117,114,99,101,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,9,0,0,0,9,0,
- 0,0,99,0,0,0,115,186,0,0,0,100,1,100,2,108,
- 0,109,1,125,1,1,0,124,1,124,0,106,2,160,3,124,
- 0,106,4,161,1,131,1,125,2,124,2,160,5,124,0,106,
- 2,106,6,161,1,125,3,124,3,106,7,100,3,107,2,115,
- 58,74,0,130,1,124,3,106,8,125,4,116,9,131,0,125,
- 5,124,0,106,2,106,10,68,0,93,102,125,6,122,18,124,
- 1,124,6,131,1,160,5,124,4,161,1,125,7,87,0,110,
- 24,4,0,116,11,107,10,114,124,1,0,1,0,1,0,89,
- 0,113,78,89,0,110,2,48,0,124,7,106,8,106,7,125,
- 8,116,12,124,8,131,1,100,1,107,2,114,156,124,7,106,
- 7,86,0,1,0,113,78,124,8,124,5,107,7,114,78,124,
- 5,160,13,124,8,161,1,1,0,124,8,86,0,1,0,113,
- 78,100,0,83,0,41,4,78,114,0,0,0,0,41,1,218,
- 4,80,97,116,104,114,60,0,0,0,41,14,90,7,112,97,
- 116,104,108,105,98,114,183,0,0,0,114,4,0,0,0,114,
- 56,0,0,0,114,38,0,0,0,90,11,114,101,108,97,116,
- 105,118,101,95,116,111,114,29,0,0,0,114,59,0,0,0,
- 90,6,112,97,114,101,110,116,218,3,115,101,116,114,28,0,
- 0,0,114,23,0,0,0,114,51,0,0,0,218,3,97,100,
- 100,41,9,114,32,0,0,0,114,183,0,0,0,90,13,102,
- 117,108,108,110,97,109,101,95,112,97,116,104,90,13,114,101,
- 108,97,116,105,118,101,95,112,97,116,104,90,12,112,97,99,
- 107,97,103,101,95,112,97,116,104,90,12,115,117,98,100,105,
- 114,115,95,115,101,101,110,218,8,102,105,108,101,110,97,109,
- 101,90,8,114,101,108,97,116,105,118,101,90,11,112,97,114,
- 101,110,116,95,110,97,109,101,114,9,0,0,0,114,9,0,
- 0,0,114,10,0,0,0,218,8,99,111,110,116,101,110,116,
- 115,250,2,0,0,115,34,0,0,0,0,8,12,1,18,1,
- 14,3,14,1,6,1,6,1,12,1,2,1,18,1,14,1,
- 10,5,8,1,12,1,10,1,8,1,10,1,122,33,95,90,
- 105,112,73,109,112,111,114,116,82,101,115,111,117,114,99,101,
- 82,101,97,100,101,114,46,99,111,110,116,101,110,116,115,78,
- 41,10,114,6,0,0,0,114,7,0,0,0,114,8,0,0,
- 0,114,84,0,0,0,114,81,0,0,0,114,34,0,0,0,
- 114,180,0,0,0,114,181,0,0,0,114,182,0,0,0,114,
- 187,0,0,0,114,9,0,0,0,114,9,0,0,0,114,9,
- 0,0,0,114,10,0,0,0,114,80,0,0,0,212,2,0,
- 0,115,14,0,0,0,8,1,4,5,4,2,8,4,8,9,
- 8,6,8,11,114,80,0,0,0,41,45,114,84,0,0,0,
- 90,26,95,102,114,111,122,101,110,95,105,109,112,111,114,116,
- 108,105,98,95,101,120,116,101,114,110,97,108,114,21,0,0,
- 0,114,1,0,0,0,114,2,0,0,0,90,17,95,102,114,
- 111,122,101,110,95,105,109,112,111,114,116,108,105,98,114,76,
- 0,0,0,114,148,0,0,0,114,110,0,0,0,114,152,0,
- 0,0,114,67,0,0,0,114,131,0,0,0,90,7,95,95,
- 97,108,108,95,95,114,20,0,0,0,90,15,112,97,116,104,
- 95,115,101,112,97,114,97,116,111,114,115,114,18,0,0,0,
- 114,75,0,0,0,114,3,0,0,0,114,25,0,0,0,218,
- 4,116,121,112,101,114,70,0,0,0,114,113,0,0,0,114,
- 115,0,0,0,114,117,0,0,0,114,4,0,0,0,114,89,
- 0,0,0,114,36,0,0,0,114,37,0,0,0,114,35,0,
- 0,0,114,27,0,0,0,114,122,0,0,0,114,142,0,0,
- 0,114,144,0,0,0,114,52,0,0,0,114,147,0,0,0,
- 114,155,0,0,0,218,8,95,95,99,111,100,101,95,95,114,
- 153,0,0,0,114,159,0,0,0,114,161,0,0,0,114,169,
- 0,0,0,114,151,0,0,0,114,149,0,0,0,114,44,0,
- 0,0,114,80,0,0,0,114,9,0,0,0,114,9,0,0,
- 0,114,9,0,0,0,114,10,0,0,0,218,8,60,109,111,
- 100,117,108,101,62,1,0,0,0,115,88,0,0,0,4,16,
- 8,1,16,1,8,1,8,1,8,1,8,1,8,1,8,2,
- 8,3,6,1,14,3,16,4,4,2,8,2,4,1,4,1,
- 4,2,14,127,0,127,0,1,12,1,12,1,2,1,2,252,
- 4,9,8,4,8,9,8,31,8,126,2,254,2,29,4,5,
- 8,21,8,46,8,10,8,46,10,5,8,7,8,6,8,13,
- 8,19,8,15,8,26,
+ 124,3,161,1,1,0,87,0,110,20,4,0,116,4,121,64,
+ 1,0,1,0,1,0,89,0,100,3,83,0,48,0,100,4,
+ 83,0,41,5,78,114,85,0,0,0,114,109,0,0,0,70,
+ 84,41,5,114,38,0,0,0,114,19,0,0,0,114,4,0,
+ 0,0,114,55,0,0,0,114,22,0,0,0,41,4,114,32,
+ 0,0,0,114,59,0,0,0,114,179,0,0,0,114,13,0,
+ 0,0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,
+ 0,218,11,105,115,95,114,101,115,111,117,114,99,101,239,2,
+ 0,0,115,14,0,0,0,0,3,14,1,14,1,2,1,16,
+ 1,12,1,8,1,122,36,95,90,105,112,73,109,112,111,114,
+ 116,82,101,115,111,117,114,99,101,82,101,97,100,101,114,46,
+ 105,115,95,114,101,115,111,117,114,99,101,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,9,0,0,0,9,0,0,0,
+ 99,0,0,0,115,184,0,0,0,100,1,100,2,108,0,109,
+ 1,125,1,1,0,124,1,124,0,106,2,160,3,124,0,106,
+ 4,161,1,131,1,125,2,124,2,160,5,124,0,106,2,106,
+ 6,161,1,125,3,124,3,106,7,100,3,107,2,115,58,74,
+ 0,130,1,124,3,106,8,125,4,116,9,131,0,125,5,124,
+ 0,106,2,106,10,68,0,93,100,125,6,122,18,124,1,124,
+ 6,131,1,160,5,124,4,161,1,125,7,87,0,110,22,4,
+ 0,116,11,121,122,1,0,1,0,1,0,89,0,113,78,89,
+ 0,110,2,48,0,124,7,106,8,106,7,125,8,116,12,124,
+ 8,131,1,100,1,107,2,114,154,124,7,106,7,86,0,1,
+ 0,113,78,124,8,124,5,118,1,114,78,124,5,160,13,124,
+ 8,161,1,1,0,124,8,86,0,1,0,113,78,100,0,83,
+ 0,41,4,78,114,0,0,0,0,41,1,218,4,80,97,116,
+ 104,114,60,0,0,0,41,14,90,7,112,97,116,104,108,105,
+ 98,114,183,0,0,0,114,4,0,0,0,114,56,0,0,0,
+ 114,38,0,0,0,90,11,114,101,108,97,116,105,118,101,95,
+ 116,111,114,29,0,0,0,114,59,0,0,0,90,6,112,97,
+ 114,101,110,116,218,3,115,101,116,114,28,0,0,0,114,23,
+ 0,0,0,114,51,0,0,0,218,3,97,100,100,41,9,114,
+ 32,0,0,0,114,183,0,0,0,90,13,102,117,108,108,110,
+ 97,109,101,95,112,97,116,104,90,13,114,101,108,97,116,105,
+ 118,101,95,112,97,116,104,90,12,112,97,99,107,97,103,101,
+ 95,112,97,116,104,90,12,115,117,98,100,105,114,115,95,115,
+ 101,101,110,218,8,102,105,108,101,110,97,109,101,90,8,114,
+ 101,108,97,116,105,118,101,90,11,112,97,114,101,110,116,95,
+ 110,97,109,101,114,9,0,0,0,114,9,0,0,0,114,10,
+ 0,0,0,218,8,99,111,110,116,101,110,116,115,250,2,0,
+ 0,115,34,0,0,0,0,8,12,1,18,1,14,3,14,1,
+ 6,1,6,1,12,1,2,1,18,1,12,1,10,5,8,1,
+ 12,1,10,1,8,1,10,1,122,33,95,90,105,112,73,109,
+ 112,111,114,116,82,101,115,111,117,114,99,101,82,101,97,100,
+ 101,114,46,99,111,110,116,101,110,116,115,78,41,10,114,6,
+ 0,0,0,114,7,0,0,0,114,8,0,0,0,114,84,0,
+ 0,0,114,81,0,0,0,114,34,0,0,0,114,180,0,0,
+ 0,114,181,0,0,0,114,182,0,0,0,114,187,0,0,0,
+ 114,9,0,0,0,114,9,0,0,0,114,9,0,0,0,114,
+ 10,0,0,0,114,80,0,0,0,212,2,0,0,115,14,0,
+ 0,0,8,1,4,5,4,2,8,4,8,9,8,6,8,11,
+ 114,80,0,0,0,41,45,114,84,0,0,0,90,26,95,102,
+ 114,111,122,101,110,95,105,109,112,111,114,116,108,105,98,95,
+ 101,120,116,101,114,110,97,108,114,21,0,0,0,114,1,0,
+ 0,0,114,2,0,0,0,90,17,95,102,114,111,122,101,110,
+ 95,105,109,112,111,114,116,108,105,98,114,76,0,0,0,114,
+ 148,0,0,0,114,110,0,0,0,114,152,0,0,0,114,67,
+ 0,0,0,114,131,0,0,0,90,7,95,95,97,108,108,95,
+ 95,114,20,0,0,0,90,15,112,97,116,104,95,115,101,112,
+ 97,114,97,116,111,114,115,114,18,0,0,0,114,75,0,0,
+ 0,114,3,0,0,0,114,25,0,0,0,218,4,116,121,112,
+ 101,114,70,0,0,0,114,113,0,0,0,114,115,0,0,0,
+ 114,117,0,0,0,114,4,0,0,0,114,89,0,0,0,114,
+ 36,0,0,0,114,37,0,0,0,114,35,0,0,0,114,27,
+ 0,0,0,114,122,0,0,0,114,142,0,0,0,114,144,0,
+ 0,0,114,52,0,0,0,114,147,0,0,0,114,155,0,0,
+ 0,218,8,95,95,99,111,100,101,95,95,114,153,0,0,0,
+ 114,159,0,0,0,114,161,0,0,0,114,169,0,0,0,114,
+ 151,0,0,0,114,149,0,0,0,114,44,0,0,0,114,80,
+ 0,0,0,114,9,0,0,0,114,9,0,0,0,114,9,0,
+ 0,0,114,10,0,0,0,218,8,60,109,111,100,117,108,101,
+ 62,1,0,0,0,115,88,0,0,0,4,16,8,1,16,1,
+ 8,1,8,1,8,1,8,1,8,1,8,2,8,3,6,1,
+ 14,3,16,4,4,2,8,2,4,1,4,1,4,2,14,127,
+ 0,127,0,1,12,1,12,1,2,1,2,252,4,9,8,4,
+ 8,9,8,31,8,126,2,254,2,29,4,5,8,21,8,46,
+ 8,10,8,46,10,5,8,7,8,6,8,13,8,19,8,15,
+ 8,26,
};
diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h
index e4f4a8c7791..c0a0bf51de3 100644
--- a/Python/opcode_targets.h
+++ b/Python/opcode_targets.h
@@ -116,11 +116,11 @@ static void *opcode_targets[256] = {
&&TARGET_POP_JUMP_IF_FALSE,
&&TARGET_POP_JUMP_IF_TRUE,
&&TARGET_LOAD_GLOBAL,
+ &&TARGET_IS_OP,
+ &&TARGET_CONTAINS_OP,
&&_unknown_opcode,
&&_unknown_opcode,
- &&_unknown_opcode,
- &&_unknown_opcode,
- &&_unknown_opcode,
+ &&TARGET_JUMP_IF_NOT_EXC_MATCH,
&&TARGET_SETUP_FINALLY,
&&_unknown_opcode,
&&TARGET_LOAD_FAST,
diff --git a/Python/peephole.c b/Python/peephole.c
index 714a4520ba8..baa217ad02d 100644
--- a/Python/peephole.c
+++ b/Python/peephole.c
@@ -12,10 +12,10 @@
#define UNCONDITIONAL_JUMP(op) (op==JUMP_ABSOLUTE || op==JUMP_FORWARD)
#define CONDITIONAL_JUMP(op) (op==POP_JUMP_IF_FALSE || op==POP_JUMP_IF_TRUE \
- || op==JUMP_IF_FALSE_OR_POP || op==JUMP_IF_TRUE_OR_POP)
+ || op==JUMP_IF_FALSE_OR_POP || op==JUMP_IF_TRUE_OR_POP || op==JUMP_IF_NOT_EXC_MATCH)
#define ABSOLUTE_JUMP(op) (op==JUMP_ABSOLUTE \
|| op==POP_JUMP_IF_FALSE || op==POP_JUMP_IF_TRUE \
- || op==JUMP_IF_FALSE_OR_POP || op==JUMP_IF_TRUE_OR_POP)
+ || op==JUMP_IF_FALSE_OR_POP || op==JUMP_IF_TRUE_OR_POP || op==JUMP_IF_NOT_EXC_MATCH)
#define JUMPS_ON_TRUE(op) (op==POP_JUMP_IF_TRUE || op==JUMP_IF_TRUE_OR_POP)
#define GETJUMPTGT(arr, i) (get_arg(arr, i) / sizeof(_Py_CODEUNIT) + \
(ABSOLUTE_JUMP(_Py_OPCODE(arr[i])) ? 0 : i+1))
@@ -194,6 +194,7 @@ markblocks(_Py_CODEUNIT *code, Py_ssize_t len)
case JUMP_IF_TRUE_OR_POP:
case POP_JUMP_IF_FALSE:
case POP_JUMP_IF_TRUE:
+ case JUMP_IF_NOT_EXC_MATCH:
case JUMP_ABSOLUTE:
case SETUP_FINALLY:
case SETUP_WITH:
@@ -493,6 +494,7 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
case POP_JUMP_IF_TRUE:
case JUMP_IF_FALSE_OR_POP:
case JUMP_IF_TRUE_OR_POP:
+ case JUMP_IF_NOT_EXC_MATCH:
j = blocks[j / sizeof(_Py_CODEUNIT)] * sizeof(_Py_CODEUNIT);
break;
diff --git a/Tools/scripts/generate_opcode_h.py b/Tools/scripts/generate_opcode_h.py
index b184ffa1709..873f82156e2 100644
--- a/Tools/scripts/generate_opcode_h.py
+++ b/Tools/scripts/generate_opcode_h.py
@@ -22,11 +22,6 @@ footer = """
remaining private.*/
#define EXCEPT_HANDLER 257
-
-enum cmp_op {PyCmp_LT=Py_LT, PyCmp_LE=Py_LE, PyCmp_EQ=Py_EQ, PyCmp_NE=Py_NE,
- PyCmp_GT=Py_GT, PyCmp_GE=Py_GE, PyCmp_IN, PyCmp_NOT_IN,
- PyCmp_IS, PyCmp_IS_NOT, PyCmp_EXC_MATCH, PyCmp_BAD};
-
#define HAS_ARG(op) ((op) >= HAVE_ARGUMENT)
#ifdef __cplusplus
From 1d1b97ae643dd8b22d87785ed7bd2599c6c8dc8d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?G=C3=A9ry=20Ogam?=
Date: Tue, 14 Jan 2020 12:58:29 +0100
Subject: [PATCH 127/380] bpo-39048: Look up __aenter__ before __aexit__ in
async with (GH-17609)
* Reorder the __aenter__ and __aexit__ checks for async with
* Add assertions for async with body being skipped
* Swap __aexit__ and __aenter__ loading in the documentation
---
Doc/reference/compound_stmts.rst | 2 +-
Lib/test/test_coroutines.py | 20 ++++++++++---------
Misc/ACKS | 1 +
.../2020-01-13-14-45-22.bpo-39048.iPsj81.rst | 4 ++++
Python/ceval.c | 19 +++++++++---------
5 files changed, 27 insertions(+), 19 deletions(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-13-14-45-22.bpo-39048.iPsj81.rst
diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst
index 564d6cc4213..e2f44a55b18 100644
--- a/Doc/reference/compound_stmts.rst
+++ b/Doc/reference/compound_stmts.rst
@@ -844,8 +844,8 @@ The following code::
is semantically equivalent to::
manager = (EXPRESSION)
- aexit = type(manager).__aexit__
aenter = type(manager).__aenter__
+ aexit = type(manager).__aexit__
value = await aenter(manager)
hit_except = False
diff --git a/Lib/test/test_coroutines.py b/Lib/test/test_coroutines.py
index 208b5c2ccf5..8d1e0692a24 100644
--- a/Lib/test/test_coroutines.py
+++ b/Lib/test/test_coroutines.py
@@ -1203,39 +1203,41 @@ class CoroutineTest(unittest.TestCase):
def __aenter__(self):
pass
+ body_executed = False
async def foo():
async with CM():
- pass
+ body_executed = True
with self.assertRaisesRegex(AttributeError, '__aexit__'):
run_async(foo())
+ self.assertFalse(body_executed)
def test_with_3(self):
class CM:
def __aexit__(self):
pass
+ body_executed = False
async def foo():
async with CM():
- pass
+ body_executed = True
with self.assertRaisesRegex(AttributeError, '__aenter__'):
run_async(foo())
+ self.assertFalse(body_executed)
def test_with_4(self):
class CM:
- def __enter__(self):
- pass
-
- def __exit__(self):
- pass
+ pass
+ body_executed = False
async def foo():
async with CM():
- pass
+ body_executed = True
- with self.assertRaisesRegex(AttributeError, '__aexit__'):
+ with self.assertRaisesRegex(AttributeError, '__aenter__'):
run_async(foo())
+ self.assertFalse(body_executed)
def test_with_5(self):
# While this test doesn't make a lot of sense,
diff --git a/Misc/ACKS b/Misc/ACKS
index d3e683d4a08..3e45d5d0f7f 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1219,6 +1219,7 @@ Elena Oat
Jon Oberheide
Milan Oberkirch
Pascal Oberndoerfer
+Géry Ogam
Jeffrey Ollie
Adam Olsen
Bryan Olson
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-13-14-45-22.bpo-39048.iPsj81.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-13-14-45-22.bpo-39048.iPsj81.rst
new file mode 100644
index 00000000000..1179ef49651
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-13-14-45-22.bpo-39048.iPsj81.rst
@@ -0,0 +1,4 @@
+Improve the displayed error message when incorrect types are passed to ``async
+with`` statements by looking up the :meth:`__aenter__` special method before
+the :meth:`__aexit__` special method when entering an asynchronous context
+manager. Patch by Géry Ogam.
diff --git a/Python/ceval.c b/Python/ceval.c
index 096645aeebf..5e586589e96 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -3230,20 +3230,21 @@ main_loop:
}
case TARGET(BEFORE_ASYNC_WITH): {
- _Py_IDENTIFIER(__aexit__);
_Py_IDENTIFIER(__aenter__);
-
+ _Py_IDENTIFIER(__aexit__);
PyObject *mgr = TOP();
- PyObject *exit = special_lookup(tstate, mgr, &PyId___aexit__),
- *enter;
+ PyObject *enter = special_lookup(tstate, mgr, &PyId___aenter__);
PyObject *res;
- if (exit == NULL)
+ if (enter == NULL) {
goto error;
+ }
+ PyObject *exit = special_lookup(tstate, mgr, &PyId___aexit__);
+ if (exit == NULL) {
+ Py_DECREF(enter);
+ goto error;
+ }
SET_TOP(exit);
- enter = special_lookup(tstate, mgr, &PyId___aenter__);
Py_DECREF(mgr);
- if (enter == NULL)
- goto error;
res = _PyObject_CallNoArg(enter);
Py_DECREF(enter);
if (res == NULL)
@@ -3264,8 +3265,8 @@ main_loop:
}
case TARGET(SETUP_WITH): {
- _Py_IDENTIFIER(__exit__);
_Py_IDENTIFIER(__enter__);
+ _Py_IDENTIFIER(__exit__);
PyObject *mgr = TOP();
PyObject *enter = special_lookup(tstate, mgr, &PyId___enter__);
PyObject *res;
From a2ec3f07f7f028ff6229d6be2a7cfbda1f4efaeb Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Tue, 14 Jan 2020 12:06:45 +0000
Subject: [PATCH 128/380] bpo-39322: Add gc.is_finalized to check if an object
has been finalised by the gc (GH-17989)
---
Doc/library/gc.rst | 21 +++++++++++++++++++
Doc/whatsnew/3.9.rst | 4 ++++
Lib/test/test_gc.py | 18 ++++++++++++++++
.../2020-01-13-15-18-13.bpo-39322.aAs-1T.rst | 2 ++
Modules/clinic/gcmodule.c.h | 11 +++++++++-
Modules/gcmodule.c | 20 ++++++++++++++++++
6 files changed, 75 insertions(+), 1 deletion(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-13-15-18-13.bpo-39322.aAs-1T.rst
diff --git a/Doc/library/gc.rst b/Doc/library/gc.rst
index 13eda917b9a..0c33c865304 100644
--- a/Doc/library/gc.rst
+++ b/Doc/library/gc.rst
@@ -177,6 +177,27 @@ The :mod:`gc` module provides the following functions:
.. versionadded:: 3.1
+.. function:: is_finalized(obj)
+
+ Returns ``True`` if the given object has been finalized by the
+ garbage collector, ``False`` otherwise. ::
+
+ >>> x = None
+ >>> class Lazarus:
+ ... def __del__(self):
+ ... global x
+ ... x = self
+ ...
+ >>> lazarus = Lazarus()
+ >>> gc.is_finalized(lazarus)
+ False
+ >>> del lazarus
+ >>> gc.is_finalized(x)
+ True
+
+ .. versionadded:: 3.9
+
+
.. function:: freeze()
Freeze all the objects tracked by gc - move them to a permanent generation
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 00409af4387..c9499999920 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -174,6 +174,10 @@ When the garbage collector makes a collection in which some objects resurrect
been executed), do not block the collection of all objects that are still
unreachable. (Contributed by Pablo Galindo and Tim Peters in :issue:`38379`.)
+Added a new function :func:`gc.is_finalized` to check if an object has been
+finalized by the garbage collector. (Contributed by Pablo Galindo in
+:issue:`39322`.)
+
imaplib
-------
diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
index c0d4a7507ae..18f8d10c5ba 100644
--- a/Lib/test/test_gc.py
+++ b/Lib/test/test_gc.py
@@ -586,6 +586,24 @@ class GCTests(unittest.TestCase):
self.assertFalse(gc.is_tracked(UserFloatSlots()))
self.assertFalse(gc.is_tracked(UserIntSlots()))
+ def test_is_finalized(self):
+ # Objects not tracked by the always gc return false
+ self.assertFalse(gc.is_finalized(3))
+
+ storage = []
+ class Lazarus:
+ def __del__(self):
+ storage.append(self)
+
+ lazarus = Lazarus()
+ self.assertFalse(gc.is_finalized(lazarus))
+
+ del lazarus
+ gc.collect()
+
+ lazarus = storage.pop()
+ self.assertTrue(gc.is_finalized(lazarus))
+
def test_bug1055820b(self):
# Corresponds to temp2b.py in the bug report.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-13-15-18-13.bpo-39322.aAs-1T.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-13-15-18-13.bpo-39322.aAs-1T.rst
new file mode 100644
index 00000000000..60df44cc672
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-13-15-18-13.bpo-39322.aAs-1T.rst
@@ -0,0 +1,2 @@
+Added a new function :func:`gc.is_finalized` to check if an object has been
+finalized by the garbage collector. Patch by Pablo Galindo.
diff --git a/Modules/clinic/gcmodule.c.h b/Modules/clinic/gcmodule.c.h
index 22d2aa4a87b..72795c66bf7 100644
--- a/Modules/clinic/gcmodule.c.h
+++ b/Modules/clinic/gcmodule.c.h
@@ -304,6 +304,15 @@ PyDoc_STRVAR(gc_is_tracked__doc__,
#define GC_IS_TRACKED_METHODDEF \
{"is_tracked", (PyCFunction)gc_is_tracked, METH_O, gc_is_tracked__doc__},
+PyDoc_STRVAR(gc_is_finalized__doc__,
+"is_finalized($module, obj, /)\n"
+"--\n"
+"\n"
+"Returns true if the object has been already finalized by the GC.");
+
+#define GC_IS_FINALIZED_METHODDEF \
+ {"is_finalized", (PyCFunction)gc_is_finalized, METH_O, gc_is_finalized__doc__},
+
PyDoc_STRVAR(gc_freeze__doc__,
"freeze($module, /)\n"
"--\n"
@@ -373,4 +382,4 @@ gc_get_freeze_count(PyObject *module, PyObject *Py_UNUSED(ignored))
exit:
return return_value;
}
-/*[clinic end generated code: output=e40d384b1f0d513c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=bd6a8056989e2e69 input=a9049054013a1b77]*/
diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c
index 5fef114d73e..4ad9d228f5a 100644
--- a/Modules/gcmodule.c
+++ b/Modules/gcmodule.c
@@ -1869,6 +1869,25 @@ gc_is_tracked(PyObject *module, PyObject *obj)
return result;
}
+/*[clinic input]
+gc.is_finalized
+
+ obj: object
+ /
+
+Returns true if the object has been already finalized by the GC.
+[clinic start generated code]*/
+
+static PyObject *
+gc_is_finalized(PyObject *module, PyObject *obj)
+/*[clinic end generated code: output=e1516ac119a918ed input=201d0c58f69ae390]*/
+{
+ if (PyObject_IS_GC(obj) && _PyGCHead_FINALIZED(AS_GC(obj))) {
+ Py_RETURN_TRUE;
+ }
+ Py_RETURN_FALSE;
+}
+
/*[clinic input]
gc.freeze
@@ -1961,6 +1980,7 @@ static PyMethodDef GcMethods[] = {
GC_GET_OBJECTS_METHODDEF
GC_GET_STATS_METHODDEF
GC_IS_TRACKED_METHODDEF
+ GC_IS_FINALIZED_METHODDEF
{"get_referrers", gc_get_referrers, METH_VARARGS,
gc_get_referrers__doc__},
{"get_referents", gc_get_referents, METH_VARARGS,
From b6791375b2ff86ea07f068fb53d9575c337eaa5b Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Tue, 14 Jan 2020 17:38:15 +0000
Subject: [PATCH 129/380] bpo-39322: Add gc.is_finalized to the gc module
docstring (GH-18000)
---
Modules/gcmodule.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c
index 4ad9d228f5a..aacdb3f45a1 100644
--- a/Modules/gcmodule.c
+++ b/Modules/gcmodule.c
@@ -1961,6 +1961,7 @@ PyDoc_STRVAR(gc__doc__,
"get_threshold() -- Return the current the collection thresholds.\n"
"get_objects() -- Return a list of all objects tracked by the collector.\n"
"is_tracked() -- Returns true if a given object is tracked.\n"
+"is_finalized() -- Returns true if a given object has been already finalized.\n"
"get_referrers() -- Return the list of objects that refer to an object.\n"
"get_referents() -- Return the list of objects that an object refers to.\n"
"freeze() -- Freeze all tracked objects and ignore them for future collections.\n"
From f04750bb7af45cb6efab8d92d1ff063f0bf2833d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Barto=C5=A1?=
Date: Tue, 14 Jan 2020 18:57:04 +0100
Subject: [PATCH 130/380] bpo-38361: syslog: fixed making default "ident" from
sys.argv[0] (GH-16557)
The default value of "ident" parameter should be sys.argv[0] with leading path
components stripped, but it contained the last slash, i.e. '/program' instead
of 'program'.
BPO issue: https://bugs.python.org/issue38361
https://bugs.python.org/issue38361
---
.../next/Library/2019-10-04-09-49-56.bpo-38361.LM4u4T.rst | 1 +
Modules/syslogmodule.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 Misc/NEWS.d/next/Library/2019-10-04-09-49-56.bpo-38361.LM4u4T.rst
diff --git a/Misc/NEWS.d/next/Library/2019-10-04-09-49-56.bpo-38361.LM4u4T.rst b/Misc/NEWS.d/next/Library/2019-10-04-09-49-56.bpo-38361.LM4u4T.rst
new file mode 100644
index 00000000000..65186db60b4
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-10-04-09-49-56.bpo-38361.LM4u4T.rst
@@ -0,0 +1 @@
+Fixed an issue where ``ident`` could include a leading path separator when :func:`syslog.openlog` was called without arguments.
\ No newline at end of file
diff --git a/Modules/syslogmodule.c b/Modules/syslogmodule.c
index b2ea73baa1b..539224f2c5b 100644
--- a/Modules/syslogmodule.c
+++ b/Modules/syslogmodule.c
@@ -99,7 +99,7 @@ syslog_get_argv(void)
if (slash == -2)
return NULL;
if (slash != -1) {
- return PyUnicode_Substring(scriptobj, slash, scriptlen);
+ return PyUnicode_Substring(scriptobj, slash + 1, scriptlen);
} else {
Py_INCREF(scriptobj);
return(scriptobj);
From b4cdb3f60e71888d7f3d4e0d40cb31e968ea160c Mon Sep 17 00:00:00 2001
From: Kyle Pollina
Date: Tue, 14 Jan 2020 13:47:26 -0600
Subject: [PATCH 131/380] Fix documentation in code.py (GH-17988)
---
Doc/library/code.rst | 2 +-
Lib/code.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Doc/library/code.rst b/Doc/library/code.rst
index e2c47bab5a0..6708079f778 100644
--- a/Doc/library/code.rst
+++ b/Doc/library/code.rst
@@ -76,7 +76,7 @@ Interactive Interpreter Objects
Compile and run some source in the interpreter. Arguments are the same as for
:func:`compile_command`; the default for *filename* is ``' '``, and for
- *symbol* is ``'single'``. One several things can happen:
+ *symbol* is ``'single'``. One of several things can happen:
* The input is incorrect; :func:`compile_command` raised an exception
(:exc:`SyntaxError` or :exc:`OverflowError`). A syntax traceback will be
diff --git a/Lib/code.py b/Lib/code.py
index d8106ae612c..76000f8c8b2 100644
--- a/Lib/code.py
+++ b/Lib/code.py
@@ -40,7 +40,7 @@ class InteractiveInterpreter:
Arguments are as for compile_command().
- One several things can happen:
+ One of several things can happen:
1) The input is incorrect; compile_command() raised an
exception (SyntaxError or OverflowError). A syntax traceback
From 4b0d91aab4cfba30a2a9728e9eaea15dbc0ba9bd Mon Sep 17 00:00:00 2001
From: Dima <43349662+d-goldin@users.noreply.github.com>
Date: Tue, 14 Jan 2020 21:47:59 +0100
Subject: [PATCH 132/380] venv: Suppress warning message when bash hashing is
disabled. (GH-17966)
When using python's built-in venv activaton script
warnings are printed when hashing is disabled in
bash or zsh, like;
`bash: hash: hashing disabled`
This output is not really useful to the end-user and has
been disabled in `virtualenv` for long.
This commit is based on:
https://github.com/pypa/virtualenv/commit/28e85bcd80d04b2a7ebce0e1d0b02d432b7e5593
---
Lib/venv/scripts/common/activate | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Lib/venv/scripts/common/activate b/Lib/venv/scripts/common/activate
index b1b4625fddd..45af3536aa1 100644
--- a/Lib/venv/scripts/common/activate
+++ b/Lib/venv/scripts/common/activate
@@ -18,7 +18,7 @@ deactivate () {
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
- hash -r
+ hash -r 2> /dev/null
fi
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
@@ -62,5 +62,5 @@ fi
# be called to get it to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
- hash -r
+ hash -r 2> /dev/null
fi
From 7d6378051feeadf45b4ce45b4b406b65df255648 Mon Sep 17 00:00:00 2001
From: Vinay Sajip
Date: Tue, 14 Jan 2020 20:49:30 +0000
Subject: [PATCH 133/380] bpo-38901: Allow setting a venv's prompt to the
basename of the current directory. (GH-17946)
When a prompt value of '.' is specified, os.path.basename(os.getcwd()) is used to
configure the prompt for the created venv.
---
Doc/library/venv.rst | 3 ++-
Lib/test/test_venv.py | 9 +++++++++
Lib/venv/__init__.py | 2 ++
.../Library/2020-01-10-22-30-48.bpo-38901.OdVIIb.rst | 3 +++
4 files changed, 16 insertions(+), 1 deletion(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-10-22-30-48.bpo-38901.OdVIIb.rst
diff --git a/Doc/library/venv.rst b/Doc/library/venv.rst
index 5494c0c878b..d778486b0a5 100644
--- a/Doc/library/venv.rst
+++ b/Doc/library/venv.rst
@@ -122,7 +122,8 @@ creation according to their needs, the :class:`EnvBuilder` class.
* ``prompt`` -- a String to be used after virtual environment is activated
(defaults to ``None`` which means directory name of the environment would
- be used).
+ be used). If the special string ``"."`` is provided, the basename of the
+ current directory is used as the prompt.
* ``upgrade_deps`` -- Update the base venv modules to the latest on PyPI
diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py
index 741ac109bbc..a3b78c4e44e 100644
--- a/Lib/test/test_venv.py
+++ b/Lib/test/test_venv.py
@@ -138,6 +138,15 @@ class BasicTest(BaseTest):
self.assertEqual(context.prompt, '(My prompt) ')
self.assertIn("prompt = 'My prompt'\n", data)
+ rmtree(self.env_dir)
+ builder = venv.EnvBuilder(prompt='.')
+ cwd = os.path.basename(os.getcwd())
+ self.run_with_capture(builder.create, self.env_dir)
+ context = builder.ensure_directories(self.env_dir)
+ data = self.get_text_file_contents('pyvenv.cfg')
+ self.assertEqual(context.prompt, '(%s) ' % cwd)
+ self.assertIn("prompt = '%s'\n" % cwd, data)
+
def test_upgrade_dependencies(self):
builder = venv.EnvBuilder()
bin_path = 'Scripts' if sys.platform == 'win32' else 'bin'
diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py
index 81cb1d13e21..a220ef784c1 100644
--- a/Lib/venv/__init__.py
+++ b/Lib/venv/__init__.py
@@ -51,6 +51,8 @@ class EnvBuilder:
self.symlinks = symlinks
self.upgrade = upgrade
self.with_pip = with_pip
+ if prompt == '.': # see bpo-38901
+ prompt = os.path.basename(os.getcwd())
self.prompt = prompt
self.upgrade_deps = upgrade_deps
diff --git a/Misc/NEWS.d/next/Library/2020-01-10-22-30-48.bpo-38901.OdVIIb.rst b/Misc/NEWS.d/next/Library/2020-01-10-22-30-48.bpo-38901.OdVIIb.rst
new file mode 100644
index 00000000000..304d53289e0
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-10-22-30-48.bpo-38901.OdVIIb.rst
@@ -0,0 +1,3 @@
+When you specify prompt='.' or equivalently python -m venv --prompt . ...
+the basename of the current directory is used to set the created venv's
+prompt when it's activated.
From 65a5ce247f177c4c52cfd104d9df0c2f3b1c91f0 Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Wed, 15 Jan 2020 06:42:09 +0900
Subject: [PATCH 134/380] bpo-39329: Add timeout parameter for smtplib.LMTP
constructor (GH-17998)
---
Doc/library/smtplib.rst | 6 +-
Doc/whatsnew/3.9.rst | 3 +
Lib/smtplib.py | 8 +-
Lib/test/test_smtplib.py | 75 +++++++++++--------
.../2020-01-14-22-16-07.bpo-39329.6OKGBn.rst | 2 +
5 files changed, 61 insertions(+), 33 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-14-22-16-07.bpo-39329.6OKGBn.rst
diff --git a/Doc/library/smtplib.rst b/Doc/library/smtplib.rst
index f6ac123823b..a88e358eae5 100644
--- a/Doc/library/smtplib.rst
+++ b/Doc/library/smtplib.rst
@@ -115,7 +115,8 @@ Protocol) and :rfc:`1869` (SMTP Service Extensions).
If the *timeout* parameter is set to be zero, it will raise a
:class:`ValueError` to prevent the creation of a non-blocking socket
-.. class:: LMTP(host='', port=LMTP_PORT, local_hostname=None, source_address=None)
+.. class:: LMTP(host='', port=LMTP_PORT, local_hostname=None,
+ source_address=None[, timeout])
The LMTP protocol, which is very similar to ESMTP, is heavily based on the
standard SMTP client. It's common to use Unix sockets for LMTP, so our
@@ -128,6 +129,9 @@ Protocol) and :rfc:`1869` (SMTP Service Extensions).
Unix socket, LMTP generally don't support or require any authentication, but
your mileage might vary.
+ .. versionchanged:: 3.9
+ The optional *timeout* parameter was added.
+
A nice selection of exceptions is defined as well:
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index c9499999920..451902ab1db 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -270,6 +270,9 @@ smtplib
if the given timeout for their constructor is zero to prevent the creation of
a non-blocking socket. (Contributed by Dong-hee Na in :issue:`39259`.)
+:class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter.
+(Contributed by Dong-hee Na in :issue:`39329`.)
+
signal
------
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index 4d5cdb5ac0a..7808ba01cba 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -1066,19 +1066,23 @@ class LMTP(SMTP):
ehlo_msg = "lhlo"
def __init__(self, host='', port=LMTP_PORT, local_hostname=None,
- source_address=None):
+ source_address=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT):
"""Initialize a new instance."""
super().__init__(host, port, local_hostname=local_hostname,
- source_address=source_address)
+ source_address=source_address, timeout=timeout)
def connect(self, host='localhost', port=0, source_address=None):
"""Connect to the LMTP daemon, on either a Unix or a TCP socket."""
if host[0] != '/':
return super().connect(host, port, source_address=source_address)
+ if self.timeout is not None and not self.timeout:
+ raise ValueError('Non-blocking socket (timeout=0) is not supported')
+
# Handle Unix-domain sockets.
try:
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+ self.sock.settimeout(self.timeout)
self.file = None
self.sock.connect(host)
except OSError:
diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py
index cc5c4b13464..067c01c10c1 100644
--- a/Lib/test/test_smtplib.py
+++ b/Lib/test/test_smtplib.py
@@ -56,7 +56,7 @@ def server(evt, buf, serv):
serv.close()
evt.set()
-class GeneralTests(unittest.TestCase):
+class GeneralTests:
def setUp(self):
smtplib.socket = mock_socket
@@ -75,29 +75,29 @@ class GeneralTests(unittest.TestCase):
def testBasic1(self):
mock_socket.reply_with(b"220 Hola mundo")
# connects
- smtp = smtplib.SMTP(HOST, self.port)
- smtp.close()
+ client = self.client(HOST, self.port)
+ client.close()
def testSourceAddress(self):
mock_socket.reply_with(b"220 Hola mundo")
# connects
- smtp = smtplib.SMTP(HOST, self.port,
- source_address=('127.0.0.1',19876))
- self.assertEqual(smtp.source_address, ('127.0.0.1', 19876))
- smtp.close()
+ client = self.client(HOST, self.port,
+ source_address=('127.0.0.1',19876))
+ self.assertEqual(client.source_address, ('127.0.0.1', 19876))
+ client.close()
def testBasic2(self):
mock_socket.reply_with(b"220 Hola mundo")
# connects, include port in host name
- smtp = smtplib.SMTP("%s:%s" % (HOST, self.port))
- smtp.close()
+ client = self.client("%s:%s" % (HOST, self.port))
+ client.close()
def testLocalHostName(self):
mock_socket.reply_with(b"220 Hola mundo")
# check that supplied local_hostname is used
- smtp = smtplib.SMTP(HOST, self.port, local_hostname="testhost")
- self.assertEqual(smtp.local_hostname, "testhost")
- smtp.close()
+ client = self.client(HOST, self.port, local_hostname="testhost")
+ self.assertEqual(client.local_hostname, "testhost")
+ client.close()
def testTimeoutDefault(self):
mock_socket.reply_with(b"220 Hola mundo")
@@ -105,56 +105,71 @@ class GeneralTests(unittest.TestCase):
mock_socket.setdefaulttimeout(30)
self.assertEqual(mock_socket.getdefaulttimeout(), 30)
try:
- smtp = smtplib.SMTP(HOST, self.port)
+ client = self.client(HOST, self.port)
finally:
mock_socket.setdefaulttimeout(None)
- self.assertEqual(smtp.sock.gettimeout(), 30)
- smtp.close()
+ self.assertEqual(client.sock.gettimeout(), 30)
+ client.close()
def testTimeoutNone(self):
mock_socket.reply_with(b"220 Hola mundo")
self.assertIsNone(socket.getdefaulttimeout())
socket.setdefaulttimeout(30)
try:
- smtp = smtplib.SMTP(HOST, self.port, timeout=None)
+ client = self.client(HOST, self.port, timeout=None)
finally:
socket.setdefaulttimeout(None)
- self.assertIsNone(smtp.sock.gettimeout())
- smtp.close()
+ self.assertIsNone(client.sock.gettimeout())
+ client.close()
def testTimeoutZero(self):
mock_socket.reply_with(b"220 Hola mundo")
with self.assertRaises(ValueError):
- smtplib.SMTP(HOST, self.port, timeout=0)
+ self.client(HOST, self.port, timeout=0)
def testTimeoutValue(self):
mock_socket.reply_with(b"220 Hola mundo")
- smtp = smtplib.SMTP(HOST, self.port, timeout=30)
- self.assertEqual(smtp.sock.gettimeout(), 30)
- smtp.close()
+ client = self.client(HOST, self.port, timeout=30)
+ self.assertEqual(client.sock.gettimeout(), 30)
+ client.close()
def test_debuglevel(self):
mock_socket.reply_with(b"220 Hello world")
- smtp = smtplib.SMTP()
- smtp.set_debuglevel(1)
+ client = self.client()
+ client.set_debuglevel(1)
with support.captured_stderr() as stderr:
- smtp.connect(HOST, self.port)
- smtp.close()
+ client.connect(HOST, self.port)
+ client.close()
expected = re.compile(r"^connect:", re.MULTILINE)
self.assertRegex(stderr.getvalue(), expected)
def test_debuglevel_2(self):
mock_socket.reply_with(b"220 Hello world")
- smtp = smtplib.SMTP()
- smtp.set_debuglevel(2)
+ client = self.client()
+ client.set_debuglevel(2)
with support.captured_stderr() as stderr:
- smtp.connect(HOST, self.port)
- smtp.close()
+ client.connect(HOST, self.port)
+ client.close()
expected = re.compile(r"^\d{2}:\d{2}:\d{2}\.\d{6} connect: ",
re.MULTILINE)
self.assertRegex(stderr.getvalue(), expected)
+class SMTPGeneralTests(GeneralTests, unittest.TestCase):
+
+ client = smtplib.SMTP
+
+
+class LMTPGeneralTests(GeneralTests, unittest.TestCase):
+
+ client = smtplib.LMTP
+
+ def testTimeoutZero(self):
+ super().testTimeoutZero()
+ local_host = '/some/local/lmtp/delivery/program'
+ with self.assertRaises(ValueError):
+ self.client(local_host, timeout=0)
+
# Test server thread using the specified SMTP server class
def debugging_server(serv, serv_evt, client_evt):
serv_evt.set()
diff --git a/Misc/NEWS.d/next/Library/2020-01-14-22-16-07.bpo-39329.6OKGBn.rst b/Misc/NEWS.d/next/Library/2020-01-14-22-16-07.bpo-39329.6OKGBn.rst
new file mode 100644
index 00000000000..1e3da4618b4
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-14-22-16-07.bpo-39329.6OKGBn.rst
@@ -0,0 +1,2 @@
+:class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter.
+Patch by Dong-hee Na.
From 45cf5db587d77606e12f4fdc98c7b87964a2f2be Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Tue, 14 Jan 2020 22:32:55 +0000
Subject: [PATCH 135/380] Allow pgen to produce a DOT format dump of the
grammar (GH-18005)
Originally suggested by Anthony Shaw.
---
Parser/pgen/__main__.py | 12 +++++++++++-
Parser/pgen/automata.py | 29 +++++++++++++++++++++++++++++
Parser/pgen/pgen.py | 7 ++++++-
3 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/Parser/pgen/__main__.py b/Parser/pgen/__main__.py
index bb96e75beea..d3780a7b77d 100644
--- a/Parser/pgen/__main__.py
+++ b/Parser/pgen/__main__.py
@@ -21,9 +21,19 @@ def main():
)
parser.add_argument("--verbose", "-v", action="count")
+ parser.add_argument(
+ "--graph",
+ type=argparse.FileType("w"),
+ action="store",
+ metavar="GRAPH_OUTPUT_FILE",
+ help="Dumps a DOT representation of the generated automata in a file",
+ )
+
args = parser.parse_args()
- p = ParserGenerator(args.grammar, args.tokens, verbose=args.verbose)
+ p = ParserGenerator(
+ args.grammar, args.tokens, verbose=args.verbose, graph_file=args.graph
+ )
grammar = p.make_grammar()
grammar.produce_graminit_h(args.graminit_h.write)
grammar.produce_graminit_c(args.graminit_c.write)
diff --git a/Parser/pgen/automata.py b/Parser/pgen/automata.py
index 545a7370f7e..d04ca7c6e80 100644
--- a/Parser/pgen/automata.py
+++ b/Parser/pgen/automata.py
@@ -48,6 +48,26 @@ class NFA:
else:
writer(" %s -> %d" % (label, j))
+ def dump_graph(self, writer):
+ """Dump a DOT representation of the NFA"""
+ writer('digraph %s_nfa {\n' % self.name)
+ todo = [self.start]
+ for i, state in enumerate(todo):
+ writer(' %d [label="State %d %s"];\n' % (i, i, state is self.end and "(final)" or ""))
+ for arc in state.arcs:
+ label = arc.label
+ next = arc.target
+ if next in todo:
+ j = todo.index(next)
+ else:
+ j = len(todo)
+ todo.append(next)
+ if label is None:
+ writer(" %d -> %d [style=dotted label=ε];\n" % (i, j))
+ else:
+ writer(" %d -> %d [label=%s];\n" % (i, j, label.replace("'", '"')))
+ writer('}\n')
+
class NFAArc:
"""An arc representing a transition between two NFA states.
@@ -301,6 +321,15 @@ class DFA:
for label, next in sorted(state.arcs.items()):
writer(" %s -> %d" % (label, self.states.index(next)))
+ def dump_graph(self, writer):
+ """Dump a DOT representation of the DFA"""
+ writer('digraph %s_dfa {\n' % self.name)
+ for i, state in enumerate(self.states):
+ writer(' %d [label="State %d %s"];\n' % (i, i, state.is_final and "(final)" or ""))
+ for label, next in sorted(state.arcs.items()):
+ writer(" %d -> %d [label=%s];\n" % (i, self.states.index(next), label.replace("'", '"')))
+ writer('}\n')
+
class DFAState(object):
"""A state of a DFA
diff --git a/Parser/pgen/pgen.py b/Parser/pgen/pgen.py
index 2f444eb8c86..03032d4ed8c 100644
--- a/Parser/pgen/pgen.py
+++ b/Parser/pgen/pgen.py
@@ -130,7 +130,7 @@ class Label(str):
class ParserGenerator(object):
- def __init__(self, grammar_file, token_file, verbose=False):
+ def __init__(self, grammar_file, token_file, verbose=False, graph_file=None):
with open(grammar_file) as f:
self.grammar = f.read()
with open(token_file) as tok_file:
@@ -141,6 +141,7 @@ class ParserGenerator(object):
self.opmap["<>"] = "NOTEQUAL"
self.verbose = verbose
self.filename = grammar_file
+ self.graph_file = graph_file
self.dfas, self.startsymbol = self.create_dfas()
self.first = {} # map from symbol name to set of tokens
self.calculate_first_sets()
@@ -152,11 +153,15 @@ class ParserGenerator(object):
if self.verbose:
print("Dump of NFA for", nfa.name)
nfa.dump()
+ if self.graph_file is not None:
+ nfa.dump_graph(self.graph_file.write)
dfa = DFA.from_nfa(nfa)
if self.verbose:
print("Dump of DFA for", dfa.name)
dfa.dump()
dfa.simplify()
+ if self.graph_file is not None:
+ dfa.dump_graph(self.graph_file.write)
rule_to_dfas[dfa.name] = dfa
if start_nonterminal is None:
From 54f743eb315f00b0ff45e115dde7a5d506034153 Mon Sep 17 00:00:00 2001
From: Karthikeyan Singaravelan
Date: Wed, 15 Jan 2020 15:19:49 +0530
Subject: [PATCH 136/380] Improve test coverage for AsyncMock. (GH-17906)
* Add test for nested async decorator patch.
* Add test for side_effect and wraps with a function.
* Add test for side_effect with an exception in the iterable.
---
Lib/unittest/test/testmock/testasync.py | 53 +++++++++++++++++++++++--
1 file changed, 49 insertions(+), 4 deletions(-)
diff --git a/Lib/unittest/test/testmock/testasync.py b/Lib/unittest/test/testmock/testasync.py
index 149fd4deff1..73d31a29668 100644
--- a/Lib/unittest/test/testmock/testasync.py
+++ b/Lib/unittest/test/testmock/testasync.py
@@ -72,9 +72,17 @@ class AsyncPatchDecoratorTest(unittest.TestCase):
test_async()
def test_async_def_patch(self):
- @patch(f"{__name__}.async_func", AsyncMock())
- async def test_async():
+ @patch(f"{__name__}.async_func", return_value=1)
+ @patch(f"{__name__}.async_func_args", return_value=2)
+ async def test_async(func_args_mock, func_mock):
+ self.assertEqual(func_args_mock._mock_name, "async_func_args")
+ self.assertEqual(func_mock._mock_name, "async_func")
+
self.assertIsInstance(async_func, AsyncMock)
+ self.assertIsInstance(async_func_args, AsyncMock)
+
+ self.assertEqual(await async_func(), 1)
+ self.assertEqual(await async_func_args(1, 2, c=3), 2)
asyncio.run(test_async())
self.assertTrue(inspect.iscoroutinefunction(async_func))
@@ -375,22 +383,40 @@ class AsyncArguments(unittest.IsolatedAsyncioTestCase):
with self.assertRaises(Exception):
await mock(5)
- async def test_add_side_effect_function(self):
+ async def test_add_side_effect_coroutine(self):
async def addition(var):
return var + 1
mock = AsyncMock(side_effect=addition)
result = await mock(5)
self.assertEqual(result, 6)
+ async def test_add_side_effect_normal_function(self):
+ def addition(var):
+ return var + 1
+ mock = AsyncMock(side_effect=addition)
+ result = await mock(5)
+ self.assertEqual(result, 6)
+
async def test_add_side_effect_iterable(self):
vals = [1, 2, 3]
mock = AsyncMock(side_effect=vals)
for item in vals:
- self.assertEqual(item, await mock())
+ self.assertEqual(await mock(), item)
with self.assertRaises(StopAsyncIteration) as e:
await mock()
+ async def test_add_side_effect_exception_iterable(self):
+ class SampleException(Exception):
+ pass
+
+ vals = [1, SampleException("foo")]
+ mock = AsyncMock(side_effect=vals)
+ self.assertEqual(await mock(), 1)
+
+ with self.assertRaises(SampleException) as e:
+ await mock()
+
async def test_return_value_AsyncMock(self):
value = AsyncMock(return_value=10)
mock = AsyncMock(return_value=value)
@@ -437,6 +463,21 @@ class AsyncArguments(unittest.IsolatedAsyncioTestCase):
mock.assert_awaited()
self.assertTrue(ran)
+ async def test_wraps_normal_function(self):
+ value = 1
+
+ ran = False
+ def inner():
+ nonlocal ran
+ ran = True
+ return value
+
+ mock = AsyncMock(wraps=inner)
+ result = await mock()
+ self.assertEqual(result, value)
+ mock.assert_awaited()
+ self.assertTrue(ran)
+
class AsyncMagicMethods(unittest.TestCase):
def test_async_magic_methods_return_async_mocks(self):
m_mock = MagicMock()
@@ -860,6 +901,10 @@ class AsyncMockAssert(unittest.TestCase):
self.mock.assert_awaited_once()
def test_assert_awaited_with(self):
+ msg = 'Not awaited'
+ with self.assertRaisesRegex(AssertionError, msg):
+ self.mock.assert_awaited_with('foo')
+
asyncio.run(self._runnable_test())
msg = 'expected await not found'
with self.assertRaisesRegex(AssertionError, msg):
From cf288b53e418d8e93626e3d87c9926067d3b3147 Mon Sep 17 00:00:00 2001
From: Elena Oat
Date: Wed, 15 Jan 2020 01:50:57 -0800
Subject: [PATCH 137/380] Fix AsyncMock base class in the docs (GH-18008)
---
Doc/library/unittest.mock.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Doc/library/unittest.mock.rst b/Doc/library/unittest.mock.rst
index e92f5545d3e..8394304cfdd 100644
--- a/Doc/library/unittest.mock.rst
+++ b/Doc/library/unittest.mock.rst
@@ -854,7 +854,7 @@ object::
.. class:: AsyncMock(spec=None, side_effect=None, return_value=DEFAULT, wraps=None, name=None, spec_set=None, unsafe=False, **kwargs)
- An asynchronous version of :class:`Mock`. The :class:`AsyncMock` object will
+ An asynchronous version of :class:`MagicMock`. The :class:`AsyncMock` object will
behave so the object is recognized as an async function, and the result of a
call is an awaitable.
From 3f12ac18a407983a23d43ae785e805e773571477 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Wed, 15 Jan 2020 11:23:25 +0100
Subject: [PATCH 138/380] bpo-39164: Fix compiler warning in PyErr_GetExcInfo()
(GH-18010)
The function has no return value.
---
Python/errors.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Python/errors.c b/Python/errors.c
index cdb44605056..18ea9c5652a 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -451,7 +451,7 @@ void
PyErr_GetExcInfo(PyObject **p_type, PyObject **p_value, PyObject **p_traceback)
{
PyThreadState *tstate = _PyThreadState_GET();
- return _PyErr_GetExcInfo(tstate, p_type, p_value, p_traceback);
+ _PyErr_GetExcInfo(tstate, p_type, p_value, p_traceback);
}
void
From ed154c387efc5f978ec97900ec9e0ec6631d5498 Mon Sep 17 00:00:00 2001
From: Hai Shi
Date: Thu, 16 Jan 2020 00:32:51 +0800
Subject: [PATCH 139/380] bpo-1635741: Port _json extension module to
multiphase initialization (PEP 489) (GH-17835)
---
...2020-01-05-13-40-08.bpo-1635741.QRTJVC.rst | 1 +
Modules/_json.c | 53 +++++++++++--------
2 files changed, 31 insertions(+), 23 deletions(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-05-13-40-08.bpo-1635741.QRTJVC.rst
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-05-13-40-08.bpo-1635741.QRTJVC.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-05-13-40-08.bpo-1635741.QRTJVC.rst
new file mode 100644
index 00000000000..9b856c9e1ba
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-05-13-40-08.bpo-1635741.QRTJVC.rst
@@ -0,0 +1 @@
+Port _json extension module to multiphase initialization (:pep:`489`).
diff --git a/Modules/_json.c b/Modules/_json.c
index 439414fd59e..3e4fe795a05 100644
--- a/Modules/_json.c
+++ b/Modules/_json.c
@@ -1863,13 +1863,40 @@ static PyMethodDef speedups_methods[] = {
PyDoc_STRVAR(module_doc,
"json speedups\n");
+static int
+_json_exec(PyObject *module)
+{
+ if (PyType_Ready(&PyScannerType) < 0) {
+ return -1;
+ }
+ if (PyType_Ready(&PyEncoderType) < 0) {
+ return -1;
+ }
+ Py_INCREF((PyObject*)&PyScannerType);
+ if (PyModule_AddObject(module, "make_scanner", (PyObject*)&PyScannerType) < 0) {
+ Py_DECREF((PyObject*)&PyScannerType);
+ return -1;
+ }
+ Py_INCREF((PyObject*)&PyEncoderType);
+ if (PyModule_AddObject(module, "make_encoder", (PyObject*)&PyEncoderType) < 0) {
+ Py_DECREF((PyObject*)&PyEncoderType);
+ return -1;
+ }
+ return 0;
+}
+
+static PyModuleDef_Slot _json_slots[] = {
+ {Py_mod_exec, _json_exec},
+ {0, NULL}
+};
+
static struct PyModuleDef jsonmodule = {
PyModuleDef_HEAD_INIT,
"_json",
module_doc,
- -1,
+ 0,
speedups_methods,
- NULL,
+ _json_slots,
NULL,
NULL,
NULL
@@ -1878,25 +1905,5 @@ static struct PyModuleDef jsonmodule = {
PyMODINIT_FUNC
PyInit__json(void)
{
- PyObject *m = PyModule_Create(&jsonmodule);
- if (!m)
- return NULL;
- if (PyType_Ready(&PyScannerType) < 0)
- goto fail;
- if (PyType_Ready(&PyEncoderType) < 0)
- goto fail;
- Py_INCREF((PyObject*)&PyScannerType);
- if (PyModule_AddObject(m, "make_scanner", (PyObject*)&PyScannerType) < 0) {
- Py_DECREF((PyObject*)&PyScannerType);
- goto fail;
- }
- Py_INCREF((PyObject*)&PyEncoderType);
- if (PyModule_AddObject(m, "make_encoder", (PyObject*)&PyEncoderType) < 0) {
- Py_DECREF((PyObject*)&PyEncoderType);
- goto fail;
- }
- return m;
- fail:
- Py_DECREF(m);
- return NULL;
+ return PyModuleDef_Init(&jsonmodule);
}
From e85a305503bf83c5a8ffb3a988dfe7b67461cbee Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Wed, 15 Jan 2020 17:38:55 +0100
Subject: [PATCH 140/380] bpo-38630: Fix subprocess.Popen.send_signal() race
condition (GH-16984)
On Unix, subprocess.Popen.send_signal() now polls the process status.
Polling reduces the risk of sending a signal to the wrong process if
the process completed, the Popen.returncode attribute is still None,
and the pid has been reassigned (recycled) to a new different
process.
---
Doc/library/subprocess.rst | 2 ++
Lib/subprocess.py | 28 +++++++++++++++++--
Lib/test/test_subprocess.py | 25 +++++++++++++++++
.../2019-10-29-12-21-10.bpo-38630.Dv6Xrm.rst | 5 ++++
4 files changed, 57 insertions(+), 3 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2019-10-29-12-21-10.bpo-38630.Dv6Xrm.rst
diff --git a/Doc/library/subprocess.rst b/Doc/library/subprocess.rst
index f2e5463d755..74857480360 100644
--- a/Doc/library/subprocess.rst
+++ b/Doc/library/subprocess.rst
@@ -774,6 +774,8 @@ Instances of the :class:`Popen` class have the following methods:
Sends the signal *signal* to the child.
+ Do nothing if the process completed.
+
.. note::
On Windows, SIGTERM is an alias for :meth:`terminate`. CTRL_C_EVENT and
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index 30f0d1be154..79dffd349a3 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -2061,9 +2061,31 @@ class Popen(object):
def send_signal(self, sig):
"""Send a signal to the process."""
- # Skip signalling a process that we know has already died.
- if self.returncode is None:
- os.kill(self.pid, sig)
+ # bpo-38630: Polling reduces the risk of sending a signal to the
+ # wrong process if the process completed, the Popen.returncode
+ # attribute is still None, and the pid has been reassigned
+ # (recycled) to a new different process. This race condition can
+ # happens in two cases.
+ #
+ # Case 1. Thread A calls Popen.poll(), thread B calls
+ # Popen.send_signal(). In thread A, waitpid() succeed and returns
+ # the exit status. Thread B calls kill() because poll() in thread A
+ # did not set returncode yet. Calling poll() in thread B prevents
+ # the race condition thanks to Popen._waitpid_lock.
+ #
+ # Case 2. waitpid(pid, 0) has been called directly, without
+ # using Popen methods: returncode is still None is this case.
+ # Calling Popen.poll() will set returncode to a default value,
+ # since waitpid() fails with ProcessLookupError.
+ self.poll()
+ if self.returncode is not None:
+ # Skip signalling a process that we know has already died.
+ return
+
+ # The race condition can still happen if the race condition
+ # described above happens between the returncode test
+ # and the kill() call.
+ os.kill(self.pid, sig)
def terminate(self):
"""Terminate the process with SIGTERM
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index 2073fd14617..f1fb93455dd 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -3120,6 +3120,31 @@ class POSIXProcessTestCase(BaseTestCase):
self.assertEqual(returncode, -3)
+ def test_send_signal_race(self):
+ # bpo-38630: send_signal() must poll the process exit status to reduce
+ # the risk of sending the signal to the wrong process.
+ proc = subprocess.Popen(ZERO_RETURN_CMD)
+
+ # wait until the process completes without using the Popen APIs.
+ pid, status = os.waitpid(proc.pid, 0)
+ self.assertEqual(pid, proc.pid)
+ self.assertTrue(os.WIFEXITED(status), status)
+ self.assertEqual(os.WEXITSTATUS(status), 0)
+
+ # returncode is still None but the process completed.
+ self.assertIsNone(proc.returncode)
+
+ with mock.patch("os.kill") as mock_kill:
+ proc.send_signal(signal.SIGTERM)
+
+ # send_signal() didn't call os.kill() since the process already
+ # completed.
+ mock_kill.assert_not_called()
+
+ # Don't check the returncode value: the test reads the exit status,
+ # so Popen failed to read it and uses a default returncode instead.
+ self.assertIsNotNone(proc.returncode)
+
@unittest.skipUnless(mswindows, "Windows specific tests")
class Win32ProcessTestCase(BaseTestCase):
diff --git a/Misc/NEWS.d/next/Library/2019-10-29-12-21-10.bpo-38630.Dv6Xrm.rst b/Misc/NEWS.d/next/Library/2019-10-29-12-21-10.bpo-38630.Dv6Xrm.rst
new file mode 100644
index 00000000000..1a4d59205ab
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-10-29-12-21-10.bpo-38630.Dv6Xrm.rst
@@ -0,0 +1,5 @@
+On Unix, :meth:`subprocess.Popen.send_signal` now polls the process status.
+Polling reduces the risk of sending a signal to the wrong process if the
+process completed, the :attr:`subprocess.Popen.returncode` attribute is still
+``None``, and the pid has been reassigned (recycled) to a new different
+process.
From e92d39303feb1d3b4194c6a8275b1fc63b2153b2 Mon Sep 17 00:00:00 2001
From: Ammar Askar
Date: Wed, 15 Jan 2020 11:48:40 -0500
Subject: [PATCH 141/380] Fix compiler warning on Windows (GH-18012)
Python-ast.h contains a macro named Yield that conflicts with the Yield macro
in Windows system headers. While Python-ast.h has an "undef Yield" directive
to prevent this, it means that Python-ast.h must be included before Windows
header files or we run into a re-declaration warning. In commit c96be811fa7d
an include for pycore_pystate.h was added which indirectly includes Windows
header files. In this commit we re-order the includes to fix this warning.
---
Python/compile.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Python/compile.c b/Python/compile.c
index 3138a3f50dd..1d16e69a085 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -23,8 +23,8 @@
#include "Python.h"
-#include "Python-ast.h"
#include "pycore_pystate.h" /* _PyInterpreterState_GET_UNSAFE() */
+#include "Python-ast.h"
#include "ast.h"
#include "code.h"
#include "symtable.h"
From dc0284ee8f7a270b6005467f26d8e5773d76e959 Mon Sep 17 00:00:00 2001
From: Antoine <43954001+awecx@users.noreply.github.com>
Date: Wed, 15 Jan 2020 21:12:42 +0100
Subject: [PATCH 142/380] Fix typo in
multiprocessing.pool.AsyncResult.successful doc. (GH-17932)
Since 3.7 `successful` raises a `ValueError` as explained in the next text block from the documentation:
_Changed in version 3.7: If the result is not ready, ValueError is raised instead of AssertionError._
No issue associated with this PR.
Should be backported in 3.7 and 3.8.
---
Doc/library/multiprocessing.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
index 3c7b5cc1262..492f94c3001 100644
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -2279,7 +2279,7 @@ with the :class:`Pool` class.
.. method:: successful()
Return whether the call completed without raising an exception. Will
- raise :exc:`AssertionError` if the result is not ready.
+ raise :exc:`ValueError` if the result is not ready.
.. versionchanged:: 3.7
If the result is not ready, :exc:`ValueError` is raised instead of
From 01602ae40321ecdb375ee6d44eaeac3255857879 Mon Sep 17 00:00:00 2001
From: Daniel Olshansky
Date: Wed, 15 Jan 2020 17:51:54 -0500
Subject: [PATCH 143/380] bpo-37958: Adding get_profile_dict to pstats
(GH-15495)
pstats is really useful or profiling and printing the output of the execution of some block of code, but I've found on multiple occasions when I'd like to access this output directly in an easily usable dictionary on which I can further analyze or manipulate.
The proposal is to add a function called get_profile_dict inside of pstats that'll automatically return this data the data in an easily accessible dict.
The output of the following script:
```
import cProfile, pstats
import pprint
from pstats import func_std_string, f8
def fib(n):
if n == 0:
return 0
if n == 1:
return 1
return fib(n-1) + fib(n-2)
pr = cProfile.Profile()
pr.enable()
fib(5)
pr.create_stats()
ps = pstats.Stats(pr).sort_stats('tottime', 'cumtime')
def get_profile_dict(self, keys_filter=None):
"""
Returns a dict where the key is a function name and the value is a dict
with the following keys:
- ncalls
- tottime
- percall_tottime
- cumtime
- percall_cumtime
- file_name
- line_number
keys_filter can be optionally set to limit the key-value pairs in the
retrieved dict.
"""
pstats_dict = {}
func_list = self.fcn_list[:] if self.fcn_list else list(self.stats.keys())
if not func_list:
return pstats_dict
pstats_dict["total_tt"] = float(f8(self.total_tt))
for func in func_list:
cc, nc, tt, ct, callers = self.stats[func]
file, line, func_name = func
ncalls = str(nc) if nc == cc else (str(nc) + '/' + str(cc))
tottime = float(f8(tt))
percall_tottime = -1 if nc == 0 else float(f8(tt/nc))
cumtime = float(f8(ct))
percall_cumtime = -1 if cc == 0 else float(f8(ct/cc))
func_dict = {
"ncalls": ncalls,
"tottime": tottime, # time spent in this function alone
"percall_tottime": percall_tottime,
"cumtime": cumtime, # time spent in the function plus all functions that this function called,
"percall_cumtime": percall_cumtime,
"file_name": file,
"line_number": line
}
func_dict_filtered = func_dict if not keys_filter else { key: func_dict[key] for key in keys_filter }
pstats_dict[func_name] = func_dict_filtered
return pstats_dict
pp = pprint.PrettyPrinter(depth=6)
pp.pprint(get_profile_dict(ps))
```
will produce:
```
{"": {'cumtime': 0.0,
'file_name': '~',
'line_number': 0,
'ncalls': '1',
'percall_cumtime': 0.0,
'percall_tottime': 0.0,
'tottime': 0.0},
'create_stats': {'cumtime': 0.0,
'file_name': '/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/cProfile.py',
'line_number': 50,
'ncalls': '1',
'percall_cumtime': 0.0,
'percall_tottime': 0.0,
'tottime': 0.0},
'fib': {'cumtime': 0.0,
'file_name': 'get_profile_dict.py',
'line_number': 5,
'ncalls': '15/1',
'percall_cumtime': 0.0,
'percall_tottime': 0.0,
'tottime': 0.0},
'total_tt': 0.0}
```
As an example, this can be used to generate a stacked column chart using various visualization tools which will assist in easily identifying program bottlenecks.
https://bugs.python.org/issue37958
Automerge-Triggered-By: @gpshead
---
Doc/library/profile.rst | 11 ++++
Lib/pstats.py | 57 ++++++++++++++++++-
Lib/test/test_pstats.py | 24 +++++++-
.../2019-08-27-03-57-25.bpo-37958.lRORI3.rst | 2 +
4 files changed, 90 insertions(+), 4 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2019-08-27-03-57-25.bpo-37958.lRORI3.rst
diff --git a/Doc/library/profile.rst b/Doc/library/profile.rst
index 8d589d247b7..34525a96f55 100644
--- a/Doc/library/profile.rst
+++ b/Doc/library/profile.rst
@@ -525,6 +525,17 @@ Analysis of the profiler data is done using the :class:`~pstats.Stats` class.
ordering are identical to the :meth:`~pstats.Stats.print_callers` method.
+ .. method:: get_stats_profile()
+
+ This method returns an instance of StatsProfile, which contains a mapping
+ of function names to instances of FunctionProfile. Each FunctionProfile
+ instance holds information related to the function's profile such as how
+ long the function took to run, how many times it was called, etc...
+
+ .. versionadded:: 3.9
+ Added the following dataclasses: StatsProfile, FunctionProfile.
+ Added the following function: get_stats_profile.
+
.. _deterministic-profiling:
What Is Deterministic Profiling?
diff --git a/Lib/pstats.py b/Lib/pstats.py
index 4b419a8ecdb..e781b91c605 100644
--- a/Lib/pstats.py
+++ b/Lib/pstats.py
@@ -25,11 +25,13 @@ import os
import time
import marshal
import re
+
from enum import Enum
from functools import cmp_to_key
+from dataclasses import dataclass
+from typing import Dict
-__all__ = ["Stats", "SortKey"]
-
+__all__ = ["Stats", "SortKey", "FunctionProfile", "StatsProfile"]
class SortKey(str, Enum):
CALLS = 'calls', 'ncalls'
@@ -52,6 +54,22 @@ class SortKey(str, Enum):
return obj
+@dataclass(unsafe_hash=True)
+class FunctionProfile:
+ ncalls: int
+ tottime: float
+ percall_tottime: float
+ cumtime: float
+ percall_cumtime: float
+ file_name: str
+ line_number: int
+
+@dataclass(unsafe_hash=True)
+class StatsProfile:
+ '''Class for keeping track of an item in inventory.'''
+ total_tt: float
+ func_profiles: Dict[str, FunctionProfile]
+
class Stats:
"""This class is used for creating reports from data generated by the
Profile class. It is a "friend" of that class, and imports data either
@@ -333,6 +351,41 @@ class Stats:
return new_list, msg
+ def get_stats_profile(self):
+ """This method returns an instance of StatsProfile, which contains a mapping
+ of function names to instances of FunctionProfile. Each FunctionProfile
+ instance holds information related to the function's profile such as how
+ long the function took to run, how many times it was called, etc...
+ """
+ func_list = self.fcn_list[:] if self.fcn_list else list(self.stats.keys())
+ if not func_list:
+ return StatsProfile(0, {})
+
+ total_tt = float(f8(self.total_tt))
+ func_profiles = {}
+ stats_profile = StatsProfile(total_tt, func_profiles)
+
+ for func in func_list:
+ cc, nc, tt, ct, callers = self.stats[func]
+ file_name, line_number, func_name = func
+ ncalls = str(nc) if nc == cc else (str(nc) + '/' + str(cc))
+ tottime = float(f8(tt))
+ percall_tottime = -1 if nc == 0 else float(f8(tt/nc))
+ cumtime = float(f8(ct))
+ percall_cumtime = -1 if cc == 0 else float(f8(ct/cc))
+ func_profile = FunctionProfile(
+ ncalls,
+ tottime, # time spent in this function alone
+ percall_tottime,
+ cumtime, # time spent in the function plus all functions that this function called,
+ percall_cumtime,
+ file_name,
+ line_number
+ )
+ func_profiles[func_name] = func_profile
+
+ return stats_profile
+
def get_print_list(self, sel_list):
width = self.max_name_len
if self.fcn_list:
diff --git a/Lib/test/test_pstats.py b/Lib/test/test_pstats.py
index f835ce309a6..f3a6e586c3b 100644
--- a/Lib/test/test_pstats.py
+++ b/Lib/test/test_pstats.py
@@ -1,10 +1,12 @@
import unittest
+
from test import support
from io import StringIO
-import pstats
from pstats import SortKey
-
+import pstats
+import time
+import cProfile
class AddCallersTestCase(unittest.TestCase):
"""Tests for pstats.add_callers helper."""
@@ -75,6 +77,24 @@ class StatsTestCase(unittest.TestCase):
SortKey.TIME,
'calls')
+ def test_get_stats_profile(self):
+ def pass1(): pass
+ def pass2(): pass
+ def pass3(): pass
+
+ pr = cProfile.Profile()
+ pr.enable()
+ pass1()
+ pass2()
+ pass3()
+ pr.create_stats()
+ ps = pstats.Stats(pr)
+
+ stats_profile = ps.get_stats_profile()
+ funcs_called = set(stats_profile.func_profiles.keys())
+ self.assertIn('pass1', funcs_called)
+ self.assertIn('pass2', funcs_called)
+ self.assertIn('pass3', funcs_called)
if __name__ == "__main__":
unittest.main()
diff --git a/Misc/NEWS.d/next/Library/2019-08-27-03-57-25.bpo-37958.lRORI3.rst b/Misc/NEWS.d/next/Library/2019-08-27-03-57-25.bpo-37958.lRORI3.rst
new file mode 100644
index 00000000000..d0b4d6adca4
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-08-27-03-57-25.bpo-37958.lRORI3.rst
@@ -0,0 +1,2 @@
+Added the pstats.Stats.get_profile_dict() method to return the profile
+data as a StatsProfile instance.
From fad8b5674c66d9e00bb788e30adddb0c256c787b Mon Sep 17 00:00:00 2001
From: Oz N Tiram
Date: Thu, 16 Jan 2020 00:55:13 +0100
Subject: [PATCH 144/380] bpo-39348: Fix code highlight for the SOCK_NONBLOCK
example (GH-18018)
The previous double colon was wrongly place directly after Therefore.
Which produced a block without syntax highlighting. This fixes it
by separating the double colon from the text. As a result, sphinx now
properly highlights the python code.
https://bugs.python.org/issue39348
---
Doc/library/socket.rst | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index 2d7ca33f292..2cc946c519d 100755
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -565,7 +565,9 @@ The following functions all create :ref:`socket objects `.
When :const:`SOCK_NONBLOCK` or :const:`SOCK_CLOEXEC`
bit flags are applied to *type* they are cleared, and
:attr:`socket.type` will not reflect them. They are still passed
- to the underlying system `socket()` call. Therefore::
+ to the underlying system `socket()` call. Therefore,
+
+ ::
sock = socket.socket(
socket.AF_INET,
From 210c19e3c5b86535a73487fa737752de8eb1d866 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Thu, 16 Jan 2020 10:24:16 +0100
Subject: [PATCH 145/380] bpo-39351: Remove base64.encodestring() (GH-18022)
Remove base64.encodestring() and base64.decodestring(), aliases
deprecated since Python 3.1: use base64.encodebytes() and
base64.decodebytes() instead.
---
Doc/library/base64.rst | 12 ------------
Doc/whatsnew/3.9.rst | 5 +++++
Lib/base64.py | 16 ----------------
Lib/test/test_base64.py | 8 --------
.../2020-01-16-09-27-28.bpo-39351.a-FQdv.rst | 3 +++
5 files changed, 8 insertions(+), 36 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-16-09-27-28.bpo-39351.a-FQdv.rst
diff --git a/Doc/library/base64.rst b/Doc/library/base64.rst
index ad9f5f58bee..1ff22a00d61 100644
--- a/Doc/library/base64.rst
+++ b/Doc/library/base64.rst
@@ -235,12 +235,6 @@ The legacy interface:
.. versionadded:: 3.1
-.. function:: decodestring(s)
-
- Deprecated alias of :func:`decodebytes`.
-
- .. deprecated:: 3.1
-
.. function:: encode(input, output)
@@ -261,12 +255,6 @@ The legacy interface:
.. versionadded:: 3.1
-.. function:: encodestring(s)
-
- Deprecated alias of :func:`encodebytes`.
-
- .. deprecated:: 3.1
-
An example usage of the module:
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 451902ab1db..47e8a37e56c 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -411,6 +411,11 @@ Removed
of :pep:`442`. Patch by Joannah Nanjekye.
(Contributed by Joannah Nanjekye in :issue:`15088`)
+* ``base64.encodestring()`` and ``base64.decodestring()``, aliases deprecated
+ since Python 3.1, have been removed: use :func:`base64.encodebytes` and
+ :func:`base64.decodebytes` instead.
+ (Contributed by Victor Stinner in :issue:`39351`.)
+
Porting to Python 3.9
=====================
diff --git a/Lib/base64.py b/Lib/base64.py
index 2e70223dfe7..a28109f8a7f 100755
--- a/Lib/base64.py
+++ b/Lib/base64.py
@@ -531,28 +531,12 @@ def encodebytes(s):
pieces.append(binascii.b2a_base64(chunk))
return b"".join(pieces)
-def encodestring(s):
- """Legacy alias of encodebytes()."""
- import warnings
- warnings.warn("encodestring() is a deprecated alias since 3.1, "
- "use encodebytes()",
- DeprecationWarning, 2)
- return encodebytes(s)
-
def decodebytes(s):
"""Decode a bytestring of base-64 data into a bytes object."""
_input_type_check(s)
return binascii.a2b_base64(s)
-def decodestring(s):
- """Legacy alias of decodebytes()."""
- import warnings
- warnings.warn("decodestring() is a deprecated alias since Python 3.1, "
- "use decodebytes()",
- DeprecationWarning, 2)
- return decodebytes(s)
-
# Usable as a script...
def main():
diff --git a/Lib/test/test_base64.py b/Lib/test/test_base64.py
index 7dba6635d4e..1dbeac41dc0 100644
--- a/Lib/test/test_base64.py
+++ b/Lib/test/test_base64.py
@@ -18,14 +18,6 @@ class LegacyBase64TestCase(unittest.TestCase):
int_data = memoryview(b"1234").cast('I')
self.assertRaises(TypeError, f, int_data)
- def test_encodestring_warns(self):
- with self.assertWarns(DeprecationWarning):
- base64.encodestring(b"www.python.org")
-
- def test_decodestring_warns(self):
- with self.assertWarns(DeprecationWarning):
- base64.decodestring(b"d3d3LnB5dGhvbi5vcmc=\n")
-
def test_encodebytes(self):
eq = self.assertEqual
eq(base64.encodebytes(b"www.python.org"), b"d3d3LnB5dGhvbi5vcmc=\n")
diff --git a/Misc/NEWS.d/next/Library/2020-01-16-09-27-28.bpo-39351.a-FQdv.rst b/Misc/NEWS.d/next/Library/2020-01-16-09-27-28.bpo-39351.a-FQdv.rst
new file mode 100644
index 00000000000..b89bec97bfa
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-16-09-27-28.bpo-39351.a-FQdv.rst
@@ -0,0 +1,3 @@
+Remove ``base64.encodestring()`` and ``base64.decodestring()``, aliases
+deprecated since Python 3.1: use :func:`base64.encodebytes` and
+:func:`base64.decodebytes` instead.
From 4691a2f2a2b8174a6c958ce6976ed5f3354c9504 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Thu, 16 Jan 2020 11:02:51 +0100
Subject: [PATCH 146/380] bpo-39350: Remove deprecated fractions.gcd()
(GH-18021)
Remove fractions.gcd() function, deprecated since Python 3.5
(bpo-22486): use math.gcd() instead.
---
Doc/library/fractions.rst | 12 ---------
Doc/whatsnew/3.9.rst | 4 +++
Lib/fractions.py | 24 +----------------
Lib/test/test_fractions.py | 27 ++-----------------
.../2020-01-16-09-15-40.bpo-39350.ZQx0uY.rst | 2 ++
5 files changed, 9 insertions(+), 60 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-16-09-15-40.bpo-39350.ZQx0uY.rst
diff --git a/Doc/library/fractions.rst b/Doc/library/fractions.rst
index 58e7126b0bf..d3a42762e3f 100644
--- a/Doc/library/fractions.rst
+++ b/Doc/library/fractions.rst
@@ -172,18 +172,6 @@ another rational number, or from a string.
method can also be accessed through the :func:`round` function.
-.. function:: gcd(a, b)
-
- Return the greatest common divisor of the integers *a* and *b*. If either
- *a* or *b* is nonzero, then the absolute value of ``gcd(a, b)`` is the
- largest integer that divides both *a* and *b*. ``gcd(a,b)`` has the same
- sign as *b* if *b* is nonzero; otherwise it takes the sign of *a*. ``gcd(0,
- 0)`` returns ``0``.
-
- .. deprecated:: 3.5
- Use :func:`math.gcd` instead.
-
-
.. seealso::
Module :mod:`numbers`
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 47e8a37e56c..8ca755645d6 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -416,6 +416,10 @@ Removed
:func:`base64.decodebytes` instead.
(Contributed by Victor Stinner in :issue:`39351`.)
+* ``fractions.gcd()`` function has been removed, it was deprecated since Python
+ 3.5 (:issue:`22486`): use :func:`math.gcd` instead.
+ (Contributed by Victor Stinner in :issue:`39350`.)
+
Porting to Python 3.9
=====================
diff --git a/Lib/fractions.py b/Lib/fractions.py
index 2e7047a8184..501f4b74a0b 100644
--- a/Lib/fractions.py
+++ b/Lib/fractions.py
@@ -10,31 +10,9 @@ import operator
import re
import sys
-__all__ = ['Fraction', 'gcd']
+__all__ = ['Fraction']
-
-def gcd(a, b):
- """Calculate the Greatest Common Divisor of a and b.
-
- Unless b==0, the result will have the same sign as b (so that when
- b is divided by it, the result comes out positive).
- """
- import warnings
- warnings.warn('fractions.gcd() is deprecated. Use math.gcd() instead.',
- DeprecationWarning, 2)
- if type(a) is int is type(b):
- if (b or a) < 0:
- return -math.gcd(a, b)
- return math.gcd(a, b)
- return _gcd(a, b)
-
-def _gcd(a, b):
- # Supports non-integers for backward compatibility.
- while b:
- a, b = b, a%b
- return a
-
# Constants related to the hash implementation; hash(x) is based
# on the reduction of x modulo the prime _PyHASH_MODULUS.
_PyHASH_MODULUS = sys.hash_info.modulus
diff --git a/Lib/test/test_fractions.py b/Lib/test/test_fractions.py
index 18ab28cfebe..7cf7899932b 100644
--- a/Lib/test/test_fractions.py
+++ b/Lib/test/test_fractions.py
@@ -12,7 +12,7 @@ import warnings
from copy import copy, deepcopy
from pickle import dumps, loads
F = fractions.Fraction
-gcd = fractions.gcd
+
class DummyFloat(object):
"""Dummy float class for testing comparisons with Fractions"""
@@ -81,30 +81,6 @@ class DummyRational(object):
class DummyFraction(fractions.Fraction):
"""Dummy Fraction subclass for copy and deepcopy testing."""
-class GcdTest(unittest.TestCase):
-
- def testMisc(self):
- # fractions.gcd() is deprecated
- with self.assertWarnsRegex(DeprecationWarning, r'fractions\.gcd'):
- gcd(1, 1)
- with warnings.catch_warnings():
- warnings.filterwarnings('ignore', r'fractions\.gcd',
- DeprecationWarning)
- self.assertEqual(0, gcd(0, 0))
- self.assertEqual(1, gcd(1, 0))
- self.assertEqual(-1, gcd(-1, 0))
- self.assertEqual(1, gcd(0, 1))
- self.assertEqual(-1, gcd(0, -1))
- self.assertEqual(1, gcd(7, 1))
- self.assertEqual(-1, gcd(7, -1))
- self.assertEqual(1, gcd(-23, 15))
- self.assertEqual(12, gcd(120, 84))
- self.assertEqual(-12, gcd(84, -120))
- self.assertEqual(gcd(120.0, 84), 12.0)
- self.assertEqual(gcd(120, 84.0), 12.0)
- self.assertEqual(gcd(F(120), F(84)), F(12))
- self.assertEqual(gcd(F(120, 77), F(84, 55)), F(12, 385))
-
def _components(r):
return (r.numerator, r.denominator)
@@ -690,5 +666,6 @@ class FractionTest(unittest.TestCase):
r = F(13, 7)
self.assertRaises(AttributeError, setattr, r, 'a', 10)
+
if __name__ == '__main__':
unittest.main()
diff --git a/Misc/NEWS.d/next/Library/2020-01-16-09-15-40.bpo-39350.ZQx0uY.rst b/Misc/NEWS.d/next/Library/2020-01-16-09-15-40.bpo-39350.ZQx0uY.rst
new file mode 100644
index 00000000000..264e52fdc51
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-16-09-15-40.bpo-39350.ZQx0uY.rst
@@ -0,0 +1,2 @@
+Remove ``fractions.gcd()`` function, deprecated since Python 3.5
+(:issue:`22486`): use :func:`math.gcd` instead.
From c5b79003f5fe6aa28a2a028680367839ba8677db Mon Sep 17 00:00:00 2001
From: Niklas Fiekas
Date: Thu, 16 Jan 2020 15:09:19 +0100
Subject: [PATCH 147/380] bpo-31031: Unify duplicate bits_in_digit and
bit_length (GH-2866)
Add _Py_bit_length() to unify duplicate bits_in_digit() and bit_length().
---
Include/pymath.h | 8 ++++++++
Modules/mathmodule.c | 28 +++-------------------------
Objects/longobject.c | 38 +++++++++-----------------------------
Python/pymath.c | 15 +++++++++++++++
4 files changed, 35 insertions(+), 54 deletions(-)
diff --git a/Include/pymath.h b/Include/pymath.h
index f869724334a..63ca972784e 100644
--- a/Include/pymath.h
+++ b/Include/pymath.h
@@ -227,4 +227,12 @@ PyAPI_FUNC(void) _Py_set_387controlword(unsigned short);
* behavior. */
#define _Py_InIntegralTypeRange(type, v) (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
+/* Return the smallest integer k such that n < 2**k, or 0 if n == 0.
+ * Equivalent to floor(log2(x))+1. Also equivalent to: bitwidth_of_type -
+ * count_leading_zero_bits(x)
+ */
+#ifndef Py_LIMITED_API
+PyAPI_FUNC(unsigned int) _Py_bit_length(unsigned long d);
+#endif
+
#endif /* Py_PYMATH_H */
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index 5e8e485afd4..81d871786f1 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -1441,28 +1441,6 @@ math_fsum(PyObject *module, PyObject *seq)
#undef NUM_PARTIALS
-/* Return the smallest integer k such that n < 2**k, or 0 if n == 0.
- * Equivalent to floor(lg(x))+1. Also equivalent to: bitwidth_of_type -
- * count_leading_zero_bits(x)
- */
-
-/* XXX: This routine does more or less the same thing as
- * bits_in_digit() in Objects/longobject.c. Someday it would be nice to
- * consolidate them. On BSD, there's a library function called fls()
- * that we could use, and GCC provides __builtin_clz().
- */
-
-static unsigned long
-bit_length(unsigned long n)
-{
- unsigned long len = 0;
- while (n != 0) {
- ++len;
- n >>= 1;
- }
- return len;
-}
-
static unsigned long
count_set_bits(unsigned long n)
{
@@ -1877,7 +1855,7 @@ factorial_partial_product(unsigned long start, unsigned long stop,
/* find midpoint of range(start, stop), rounded up to next odd number. */
midpoint = (start + num_operands) | 1;
left = factorial_partial_product(start, midpoint,
- bit_length(midpoint - 2));
+ _Py_bit_length(midpoint - 2));
if (left == NULL)
goto error;
right = factorial_partial_product(midpoint, stop, max_bits);
@@ -1907,7 +1885,7 @@ factorial_odd_part(unsigned long n)
Py_INCREF(outer);
upper = 3;
- for (i = bit_length(n) - 2; i >= 0; i--) {
+ for (i = _Py_bit_length(n) - 2; i >= 0; i--) {
v = n >> i;
if (v <= 2)
continue;
@@ -1917,7 +1895,7 @@ factorial_odd_part(unsigned long n)
/* Here inner is the product of all odd integers j in the range (0,
n/2**(i+1)]. The factorial_partial_product call below gives the
product of all odd integers j in the range (n/2**(i+1), n/2**i]. */
- partial = factorial_partial_product(lower, upper, bit_length(upper-2));
+ partial = factorial_partial_product(lower, upper, _Py_bit_length(upper-2));
/* inner *= partial */
if (partial == NULL)
goto error;
diff --git a/Objects/longobject.c b/Objects/longobject.c
index be9301f8516..b672ae42018 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -803,26 +803,6 @@ _PyLong_Sign(PyObject *vv)
return Py_SIZE(v) == 0 ? 0 : (Py_SIZE(v) < 0 ? -1 : 1);
}
-/* bits_in_digit(d) returns the unique integer k such that 2**(k-1) <= d <
- 2**k if d is nonzero, else 0. */
-
-static const unsigned char BitLengthTable[32] = {
- 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
-};
-
-static int
-bits_in_digit(digit d)
-{
- int d_bits = 0;
- while (d >= 32) {
- d_bits += 6;
- d >>= 6;
- }
- d_bits += (int)BitLengthTable[d];
- return d_bits;
-}
-
size_t
_PyLong_NumBits(PyObject *vv)
{
@@ -840,7 +820,7 @@ _PyLong_NumBits(PyObject *vv)
if ((size_t)(ndigits - 1) > SIZE_MAX / (size_t)PyLong_SHIFT)
goto Overflow;
result = (size_t)(ndigits - 1) * (size_t)PyLong_SHIFT;
- msd_bits = bits_in_digit(msd);
+ msd_bits = _Py_bit_length(msd);
if (SIZE_MAX - msd_bits < result)
goto Overflow;
result += msd_bits;
@@ -1950,7 +1930,7 @@ long_format_binary(PyObject *aa, int base, int alternate,
return -1;
}
size_a_in_bits = (size_a - 1) * PyLong_SHIFT +
- bits_in_digit(a->ob_digit[size_a - 1]);
+ _Py_bit_length(a->ob_digit[size_a - 1]);
/* Allow 1 character for a '-' sign. */
sz = negative + (size_a_in_bits + (bits - 1)) / bits;
}
@@ -2770,7 +2750,7 @@ x_divrem(PyLongObject *v1, PyLongObject *w1, PyLongObject **prem)
/* normalize: shift w1 left so that its top digit is >= PyLong_BASE/2.
shift v1 left by the same amount. Results go into w and v. */
- d = PyLong_SHIFT - bits_in_digit(w1->ob_digit[size_w-1]);
+ d = PyLong_SHIFT - _Py_bit_length(w1->ob_digit[size_w-1]);
carry = v_lshift(w->ob_digit, w1->ob_digit, size_w, d);
assert(carry == 0);
carry = v_lshift(v->ob_digit, v1->ob_digit, size_v, d);
@@ -2891,7 +2871,7 @@ _PyLong_Frexp(PyLongObject *a, Py_ssize_t *e)
*e = 0;
return 0.0;
}
- a_bits = bits_in_digit(a->ob_digit[a_size-1]);
+ a_bits = _Py_bit_length(a->ob_digit[a_size-1]);
/* The following is an overflow-free version of the check
"if ((a_size - 1) * PyLong_SHIFT + a_bits > PY_SSIZE_T_MAX) ..." */
if (a_size >= (PY_SSIZE_T_MAX - 1) / PyLong_SHIFT + 1 &&
@@ -3986,8 +3966,8 @@ long_true_divide(PyObject *v, PyObject *w)
/* Extreme underflow */
goto underflow_or_zero;
/* Next line is now safe from overflowing a Py_ssize_t */
- diff = diff * PyLong_SHIFT + bits_in_digit(a->ob_digit[a_size - 1]) -
- bits_in_digit(b->ob_digit[b_size - 1]);
+ diff = diff * PyLong_SHIFT + _Py_bit_length(a->ob_digit[a_size - 1]) -
+ _Py_bit_length(b->ob_digit[b_size - 1]);
/* Now diff = a_bits - b_bits. */
if (diff > DBL_MAX_EXP)
goto overflow;
@@ -4063,7 +4043,7 @@ long_true_divide(PyObject *v, PyObject *w)
}
x_size = Py_ABS(Py_SIZE(x));
assert(x_size > 0); /* result of division is never zero */
- x_bits = (x_size-1)*PyLong_SHIFT+bits_in_digit(x->ob_digit[x_size-1]);
+ x_bits = (x_size-1)*PyLong_SHIFT+_Py_bit_length(x->ob_digit[x_size-1]);
/* The number of extra bits that have to be rounded away. */
extra_bits = Py_MAX(x_bits, DBL_MIN_EXP - shift) - DBL_MANT_DIG;
@@ -4877,7 +4857,7 @@ _PyLong_GCD(PyObject *aarg, PyObject *barg)
alloc_b = Py_SIZE(b);
/* reduce until a fits into 2 digits */
while ((size_a = Py_SIZE(a)) > 2) {
- nbits = bits_in_digit(a->ob_digit[size_a-1]);
+ nbits = _Py_bit_length(a->ob_digit[size_a-1]);
/* extract top 2*PyLong_SHIFT bits of a into x, along with
corresponding bits of b into y */
size_b = Py_SIZE(b);
@@ -5395,7 +5375,7 @@ int_bit_length_impl(PyObject *self)
return PyLong_FromLong(0);
msd = ((PyLongObject *)self)->ob_digit[ndigits-1];
- msd_bits = bits_in_digit(msd);
+ msd_bits = _Py_bit_length(msd);
if (ndigits <= PY_SSIZE_T_MAX/PyLong_SHIFT)
return PyLong_FromSsize_t((ndigits-1)*PyLong_SHIFT + msd_bits);
diff --git a/Python/pymath.c b/Python/pymath.c
index 24b804223ee..a08a0e79615 100644
--- a/Python/pymath.c
+++ b/Python/pymath.c
@@ -79,3 +79,18 @@ round(double x)
return copysign(y, x);
}
#endif /* HAVE_ROUND */
+
+static const unsigned int BitLengthTable[32] = {
+ 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
+};
+
+unsigned int _Py_bit_length(unsigned long d) {
+ unsigned int d_bits = 0;
+ while (d >= 32) {
+ d_bits += 6;
+ d >>= 6;
+ }
+ d_bits += BitLengthTable[d];
+ return d_bits;
+}
From 9baf242fc733ab8a52a0b6201d95c6fdb8251745 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Thu, 16 Jan 2020 15:33:30 +0100
Subject: [PATCH 148/380] bpo-39357: Remove buffering parameter of bz2.BZ2File
(GH-18028)
Remove the buffering parameter of bz2.BZ2File. Since Python 3.0, it
was ignored and using it was emitting a DeprecationWarning. Pass an
open file object to control how the file is opened.
The compresslevel parameter becomes keyword-only.
---
Doc/library/bz2.rst | 14 ++++++++------
Doc/whatsnew/3.9.rst | 10 ++++++++++
Lib/bz2.py | 10 +---------
Lib/test/test_bz2.py | 3 +++
.../2020-01-16-11-24-00.bpo-39357.bCwx-h.rst | 4 ++++
5 files changed, 26 insertions(+), 15 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-16-11-24-00.bpo-39357.bCwx-h.rst
diff --git a/Doc/library/bz2.rst b/Doc/library/bz2.rst
index aa836af2b25..85cdc16a7d7 100644
--- a/Doc/library/bz2.rst
+++ b/Doc/library/bz2.rst
@@ -65,7 +65,7 @@ All of the classes in this module may safely be accessed from multiple threads.
Accepts a :term:`path-like object`.
-.. class:: BZ2File(filename, mode='r', buffering=None, compresslevel=9)
+.. class:: BZ2File(filename, mode='r', *, compresslevel=9)
Open a bzip2-compressed file in binary mode.
@@ -81,8 +81,6 @@ All of the classes in this module may safely be accessed from multiple threads.
If *filename* is a file object (rather than an actual file name), a mode of
``'w'`` does not truncate the file, and is instead equivalent to ``'a'``.
- The *buffering* argument is ignored. Its use is deprecated since Python 3.0.
-
If *mode* is ``'w'`` or ``'a'``, *compresslevel* can be an integer between
``1`` and ``9`` specifying the level of compression: ``1`` produces the
least compression, and ``9`` (default) produces the most compression.
@@ -110,9 +108,6 @@ All of the classes in this module may safely be accessed from multiple threads.
.. versionadded:: 3.3
- .. deprecated:: 3.0
- The keyword argument *buffering* was deprecated and is now ignored.
-
.. versionchanged:: 3.1
Support for the :keyword:`with` statement was added.
@@ -138,6 +133,13 @@ All of the classes in this module may safely be accessed from multiple threads.
.. versionchanged:: 3.6
Accepts a :term:`path-like object`.
+ .. versionchanged:: 3.9
+ The *buffering* parameter has been removed. It was ignored and deprecated
+ since Python 3.0. Pass an open file object to control how the file is
+ opened.
+
+ The *compresslevel* parameter became keyword-only.
+
Incremental (de)compression
---------------------------
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 8ca755645d6..f40685c9327 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -420,6 +420,12 @@ Removed
3.5 (:issue:`22486`): use :func:`math.gcd` instead.
(Contributed by Victor Stinner in :issue:`39350`.)
+* The *buffering* parameter of :class:`bz2.BZ2File` has been removed. Since
+ Python 3.0, it was ignored and using it was emitting
+ :exc:`DeprecationWarning`. Pass an open file object to control how the file
+ is opened.
+ (Contributed by Victor Stinner in :issue:`39357`.)
+
Porting to Python 3.9
=====================
@@ -451,6 +457,10 @@ Changes in the Python API
:data:`~errno.EBADF` error.
(Contributed by Victor Stinner in :issue:`39239`.)
+* The *compresslevel* parameter of :class:`bz2.BZ2File` became keyword-only,
+ since the *buffering* parameter has been removed.
+ (Contributed by Victor Stinner in :issue:`39357`.)
+
CPython bytecode changes
------------------------
diff --git a/Lib/bz2.py b/Lib/bz2.py
index 21e8ff49c67..a499ca3598f 100644
--- a/Lib/bz2.py
+++ b/Lib/bz2.py
@@ -24,8 +24,6 @@ _MODE_READ = 1
# Value 2 no longer used
_MODE_WRITE = 3
-_sentinel = object()
-
class BZ2File(_compression.BaseStream):
@@ -38,7 +36,7 @@ class BZ2File(_compression.BaseStream):
returned as bytes, and data to be written should be given as bytes.
"""
- def __init__(self, filename, mode="r", buffering=_sentinel, compresslevel=9):
+ def __init__(self, filename, mode="r", *, compresslevel=9):
"""Open a bzip2-compressed file.
If filename is a str, bytes, or PathLike object, it gives the
@@ -65,12 +63,6 @@ class BZ2File(_compression.BaseStream):
self._closefp = False
self._mode = _MODE_CLOSED
- if buffering is not _sentinel:
- warnings.warn("Use of 'buffering' argument is deprecated and ignored "
- "since Python 3.0.",
- DeprecationWarning,
- stacklevel=2)
-
if not (1 <= compresslevel <= 9):
raise ValueError("compresslevel must be between 1 and 9")
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index eb2f72ee4a5..030d564fc59 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -100,6 +100,9 @@ class BZ2FileTest(BaseTest):
self.assertRaises(ValueError, BZ2File, os.devnull, compresslevel=0)
self.assertRaises(ValueError, BZ2File, os.devnull, compresslevel=10)
+ # compresslevel is keyword-only
+ self.assertRaises(TypeError, BZ2File, os.devnull, "r", 3)
+
def testRead(self):
self.createTempFile()
with BZ2File(self.filename) as bz2f:
diff --git a/Misc/NEWS.d/next/Library/2020-01-16-11-24-00.bpo-39357.bCwx-h.rst b/Misc/NEWS.d/next/Library/2020-01-16-11-24-00.bpo-39357.bCwx-h.rst
new file mode 100644
index 00000000000..a90802c91a2
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-16-11-24-00.bpo-39357.bCwx-h.rst
@@ -0,0 +1,4 @@
+Remove the *buffering* parameter of :class:`bz2.BZ2File`. Since Python 3.0, it
+was ignored and using it was emitting :exc:`DeprecationWarning`. Pass an open
+file object, to control how the file is opened. The *compresslevel* parameter
+becomes keyword-only.
From 10fd6b2b9f0aeb8f5a0ce4cb4b9f21f942d39a71 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Fri, 17 Jan 2020 13:50:39 +0100
Subject: [PATCH 149/380] bpo-39357: Update bz2 docstring: remove buffering
(GH-18036)
Thanks Karthikeyan Singaravelan for the report ;-)
---
Lib/bz2.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/Lib/bz2.py b/Lib/bz2.py
index a499ca3598f..e094fbb548b 100644
--- a/Lib/bz2.py
+++ b/Lib/bz2.py
@@ -47,8 +47,6 @@ class BZ2File(_compression.BaseStream):
'x' for creating exclusively, or 'a' for appending. These can
equivalently be given as 'rb', 'wb', 'xb', and 'ab'.
- buffering is ignored since Python 3.0. Its use is deprecated.
-
If mode is 'w', 'x' or 'a', compresslevel can be a number between 1
and 9 specifying the level of compression: 1 produces the least
compression, and 9 (default) produces the most compression.
From 1d3b0aaa54c56282c0a3e7fc396e5b1de8b1974e Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Fri, 17 Jan 2020 15:17:48 +0100
Subject: [PATCH 150/380] bpo-39356, zipfile: Remove code handling
DeprecationWarning (GH-18027)
Remove old "except DeprecationWarning:" code path added by
commit bf02e3bb21b2d75cba4ce409a14ae64dbc2dd6d2. It's no longer
needed.
struct.pack() no longer emit DeprecationWarning if getting a float
whereas an integer is expected. It now raises an hard error instead.
---
Lib/zipfile.py | 28 +++++++++-------------------
1 file changed, 9 insertions(+), 19 deletions(-)
diff --git a/Lib/zipfile.py b/Lib/zipfile.py
index e1d07f2a523..2da87ef505e 100644
--- a/Lib/zipfile.py
+++ b/Lib/zipfile.py
@@ -1867,25 +1867,15 @@ class ZipFile:
extract_version = max(min_version, zinfo.extract_version)
create_version = max(min_version, zinfo.create_version)
- try:
- filename, flag_bits = zinfo._encodeFilenameFlags()
- centdir = struct.pack(structCentralDir,
- stringCentralDir, create_version,
- zinfo.create_system, extract_version, zinfo.reserved,
- flag_bits, zinfo.compress_type, dostime, dosdate,
- zinfo.CRC, compress_size, file_size,
- len(filename), len(extra_data), len(zinfo.comment),
- 0, zinfo.internal_attr, zinfo.external_attr,
- header_offset)
- except DeprecationWarning:
- print((structCentralDir, stringCentralDir, create_version,
- zinfo.create_system, extract_version, zinfo.reserved,
- zinfo.flag_bits, zinfo.compress_type, dostime, dosdate,
- zinfo.CRC, compress_size, file_size,
- len(zinfo.filename), len(extra_data), len(zinfo.comment),
- 0, zinfo.internal_attr, zinfo.external_attr,
- header_offset), file=sys.stderr)
- raise
+ filename, flag_bits = zinfo._encodeFilenameFlags()
+ centdir = struct.pack(structCentralDir,
+ stringCentralDir, create_version,
+ zinfo.create_system, extract_version, zinfo.reserved,
+ flag_bits, zinfo.compress_type, dostime, dosdate,
+ zinfo.CRC, compress_size, file_size,
+ len(filename), len(extra_data), len(zinfo.comment),
+ 0, zinfo.internal_attr, zinfo.external_attr,
+ header_offset)
self.fp.write(centdir)
self.fp.write(filename)
self.fp.write(extra_data)
From ef8844f1bcbea994a2a69b5a70309369d08b555c Mon Sep 17 00:00:00 2001
From: Grant Jenks
Date: Fri, 17 Jan 2020 14:54:44 -0800
Subject: [PATCH 151/380] Fix Lock.locked() to remove extra bold highlighting
(#18042)
---
Doc/library/threading.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst
index 96989bdd525..1e902941427 100644
--- a/Doc/library/threading.rst
+++ b/Doc/library/threading.rst
@@ -497,6 +497,7 @@ All methods are executed atomically.
There is no return value.
.. method:: locked()
+
Return true if the lock is acquired.
From 6aabb63d96845b3cb207d28d40bf0b78e171be75 Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Fri, 17 Jan 2020 23:44:38 +0000
Subject: [PATCH 152/380] Run doctests in GitHub actions Docs targer (GH-18041)
---
.github/workflows/doc.yml | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml
index 405b12e3d29..5bba8e69065 100644
--- a/.github/workflows/doc.yml
+++ b/.github/workflows/doc.yml
@@ -23,17 +23,17 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- - uses: actions/setup-python@v1
- with:
- python-version: '3.7'
- architecture: 'x64'
+ - name: 'Install Dependencies'
+ run: sudo ./.github/workflows/posix-deps-apt.sh && sudo apt-get install wamerican
+ - name: 'Configure CPython'
+ run: ./configure --with-pydebug
+ - name: 'Build CPython'
+ run: make -s -j4
- name: 'Install build dependencies'
- run: python -m pip install sphinx==2.2.0 blurb python-docs-theme
+ run: make -C Doc/ PYTHON=../python venv
- name: 'Build documentation'
- run: |
- cd Doc
- make check suspicious html PYTHON=python
- - name: Upload
+ run: xvfb-run make -C Doc/ PYTHON=../python SPHINXOPTS="-q -W -j4" doctest suspicious html
+ - name: 'Upload'
uses: actions/upload-artifact@v1
with:
name: doc-html
From cd7db76a636c218b2d81d3526eb435cfae61f212 Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Sat, 18 Jan 2020 03:14:59 +0000
Subject: [PATCH 153/380] bpo-39372: Clean header files of declared interfaces
with no implementations (GH-18037)
The public API symbols being removed are:
_PyBytes_InsertThousandsGroupingLocale, _PyBytes_InsertThousandsGrouping, _Py_InitializeFromArgs, _Py_InitializeFromWideArgs, _PyFloat_Repr, _PyFloat_Digits,
_PyFloat_DigitsInit, PyFrame_ExtendStack, _PyAIterWrapper_Type, PyNullImporter_Type, PyCmpWrapper_Type, PySortWrapper_Type, PyNoArgsFunction.
---
Include/bytesobject.h | 22 -------------------
Include/cpython/pylifecycle.h | 8 -------
Include/floatobject.h | 9 --------
Include/frameobject.h | 4 ----
Include/genobject.h | 2 --
Include/import.h | 2 --
Include/internal/pycore_pathconfig.h | 2 --
Include/iterobject.h | 1 -
Include/listobject.h | 1 -
Include/methodobject.h | 2 --
Include/pythread.h | 1 -
.../2020-01-17-19-25-48.bpo-39372.hGJMY6.rst | 8 +++++++
Objects/stringlib/asciilib.h | 3 ---
Objects/stringlib/ucs1lib.h | 4 ----
Objects/stringlib/ucs2lib.h | 3 ---
Objects/stringlib/ucs4lib.h | 2 --
Objects/stringlib/undef.h | 1 -
17 files changed, 8 insertions(+), 67 deletions(-)
create mode 100644 Misc/NEWS.d/next/C API/2020-01-17-19-25-48.bpo-39372.hGJMY6.rst
diff --git a/Include/bytesobject.h b/Include/bytesobject.h
index fc9981e56d2..4aaa71a832b 100644
--- a/Include/bytesobject.h
+++ b/Include/bytesobject.h
@@ -106,28 +106,6 @@ PyAPI_FUNC(int) PyBytes_AsStringAndSize(
strings) */
);
-/* Using the current locale, insert the thousands grouping
- into the string pointed to by buffer. For the argument descriptions,
- see Objects/stringlib/localeutil.h */
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(Py_ssize_t) _PyBytes_InsertThousandsGroupingLocale(char *buffer,
- Py_ssize_t n_buffer,
- char *digits,
- Py_ssize_t n_digits,
- Py_ssize_t min_width);
-
-/* Using explicit passed-in values, insert the thousands grouping
- into the string pointed to by buffer. For the argument descriptions,
- see Objects/stringlib/localeutil.h */
-PyAPI_FUNC(Py_ssize_t) _PyBytes_InsertThousandsGrouping(char *buffer,
- Py_ssize_t n_buffer,
- char *digits,
- Py_ssize_t n_digits,
- Py_ssize_t min_width,
- const char *grouping,
- const char *thousands_sep);
-#endif
-
/* Flags used by string formatting */
#define F_LJUST (1<<0)
#define F_SIGN (1<<1)
diff --git a/Include/cpython/pylifecycle.h b/Include/cpython/pylifecycle.h
index 2f3a0dbdfe6..a01e9c94f12 100644
--- a/Include/cpython/pylifecycle.h
+++ b/Include/cpython/pylifecycle.h
@@ -32,14 +32,6 @@ PyAPI_FUNC(int) _Py_IsCoreInitialized(void);
PyAPI_FUNC(PyStatus) Py_InitializeFromConfig(
const PyConfig *config);
-PyAPI_FUNC(PyStatus) _Py_InitializeFromArgs(
- const PyConfig *config,
- Py_ssize_t argc,
- char * const *argv);
-PyAPI_FUNC(PyStatus) _Py_InitializeFromWideArgs(
- const PyConfig *config,
- Py_ssize_t argc,
- wchar_t * const *argv);
PyAPI_FUNC(PyStatus) _Py_InitializeMain(void);
PyAPI_FUNC(int) Py_RunMain(void);
diff --git a/Include/floatobject.h b/Include/floatobject.h
index f1044d64cba..0fb9fc4e0fa 100644
--- a/Include/floatobject.h
+++ b/Include/floatobject.h
@@ -88,15 +88,6 @@ PyAPI_FUNC(int) _PyFloat_Pack2(double x, unsigned char *p, int le);
PyAPI_FUNC(int) _PyFloat_Pack4(double x, unsigned char *p, int le);
PyAPI_FUNC(int) _PyFloat_Pack8(double x, unsigned char *p, int le);
-/* Needed for the old way for marshal to store a floating point number.
- Returns the string length copied into p, -1 on error.
- */
-PyAPI_FUNC(int) _PyFloat_Repr(double x, char *p, size_t len);
-
-/* Used to get the important decimal digits of a double */
-PyAPI_FUNC(int) _PyFloat_Digits(char *buf, double v, int *signum);
-PyAPI_FUNC(void) _PyFloat_DigitsInit(void);
-
/* The unpack routines read 2, 4 or 8 bytes, starting at p. le is a bool
* argument, true if the string is in little-endian format (exponent
* last, at p+1, p+3 or p+7), false if big-endian (exponent first, at p).
diff --git a/Include/frameobject.h b/Include/frameobject.h
index 3bad86a66f7..ddcf1591aae 100644
--- a/Include/frameobject.h
+++ b/Include/frameobject.h
@@ -67,10 +67,6 @@ PyFrameObject* _PyFrame_New_NoTrack(PyThreadState *, PyCodeObject *,
PyAPI_FUNC(void) PyFrame_BlockSetup(PyFrameObject *, int, int, int);
PyAPI_FUNC(PyTryBlock *) PyFrame_BlockPop(PyFrameObject *);
-/* Extend the value stack */
-
-PyAPI_FUNC(PyObject **) PyFrame_ExtendStack(PyFrameObject *, int, int);
-
/* Conversions between "fast locals" and locals in dictionary */
PyAPI_FUNC(void) PyFrame_LocalsToFast(PyFrameObject *, int);
diff --git a/Include/genobject.h b/Include/genobject.h
index 96f8dcc74d8..5ee9a2831d1 100644
--- a/Include/genobject.h
+++ b/Include/genobject.h
@@ -58,8 +58,6 @@ typedef struct {
PyAPI_DATA(PyTypeObject) PyCoro_Type;
PyAPI_DATA(PyTypeObject) _PyCoroWrapper_Type;
-PyAPI_DATA(PyTypeObject) _PyAIterWrapper_Type;
-
#define PyCoro_CheckExact(op) (Py_TYPE(op) == &PyCoro_Type)
PyObject *_PyCoro_GetAwaitableIter(PyObject *o);
PyAPI_FUNC(PyObject *) PyCoro_New(struct _frame *,
diff --git a/Include/import.h b/Include/import.h
index 735533ee7a7..aeef3efd0bc 100644
--- a/Include/import.h
+++ b/Include/import.h
@@ -81,8 +81,6 @@ PyAPI_FUNC(int) PyImport_ImportFrozenModule(
const char *name /* UTF-8 encoded string */
);
-PyAPI_DATA(PyTypeObject) PyNullImporter_Type;
-
PyAPI_FUNC(int) PyImport_AppendInittab(
const char *name, /* ASCII encoded string */
PyObject* (*initfunc)(void)
diff --git a/Include/internal/pycore_pathconfig.h b/Include/internal/pycore_pathconfig.h
index 257c056a77d..42d61b1ca26 100644
--- a/Include/internal/pycore_pathconfig.h
+++ b/Include/internal/pycore_pathconfig.h
@@ -47,8 +47,6 @@ PyAPI_DATA(wchar_t*) _Py_dll_path;
#endif
extern void _PyPathConfig_ClearGlobal(void);
-extern PyStatus _PyPathConfig_SetGlobal(
- const struct _PyPathConfig *pathconfig);
extern PyStatus _PyPathConfig_Calculate(
_PyPathConfig *pathconfig,
diff --git a/Include/iterobject.h b/Include/iterobject.h
index f61726f1f7f..eec2ee271eb 100644
--- a/Include/iterobject.h
+++ b/Include/iterobject.h
@@ -7,7 +7,6 @@ extern "C" {
PyAPI_DATA(PyTypeObject) PySeqIter_Type;
PyAPI_DATA(PyTypeObject) PyCallIter_Type;
-PyAPI_DATA(PyTypeObject) PyCmpWrapper_Type;
#define PySeqIter_Check(op) (Py_TYPE(op) == &PySeqIter_Type)
diff --git a/Include/listobject.h b/Include/listobject.h
index 6057279d51c..baf94152792 100644
--- a/Include/listobject.h
+++ b/Include/listobject.h
@@ -43,7 +43,6 @@ typedef struct {
PyAPI_DATA(PyTypeObject) PyList_Type;
PyAPI_DATA(PyTypeObject) PyListIter_Type;
PyAPI_DATA(PyTypeObject) PyListRevIter_Type;
-PyAPI_DATA(PyTypeObject) PySortWrapper_Type;
#define PyList_Check(op) \
PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LIST_SUBCLASS)
diff --git a/Include/methodobject.h b/Include/methodobject.h
index a15d05f8991..d9f8d4f80c2 100644
--- a/Include/methodobject.h
+++ b/Include/methodobject.h
@@ -22,8 +22,6 @@ typedef PyObject *(*PyCFunctionWithKeywords)(PyObject *, PyObject *,
typedef PyObject *(*_PyCFunctionFastWithKeywords) (PyObject *,
PyObject *const *, Py_ssize_t,
PyObject *);
-typedef PyObject *(*PyNoArgsFunction)(PyObject *);
-
PyAPI_FUNC(PyCFunction) PyCFunction_GetFunction(PyObject *);
PyAPI_FUNC(PyObject *) PyCFunction_GetSelf(PyObject *);
PyAPI_FUNC(int) PyCFunction_GetFlags(PyObject *);
diff --git a/Include/pythread.h b/Include/pythread.h
index 569d6964899..1cf83b7a36d 100644
--- a/Include/pythread.h
+++ b/Include/pythread.h
@@ -3,7 +3,6 @@
#define Py_PYTHREAD_H
typedef void *PyThread_type_lock;
-typedef void *PyThread_type_sema;
#ifdef __cplusplus
extern "C" {
diff --git a/Misc/NEWS.d/next/C API/2020-01-17-19-25-48.bpo-39372.hGJMY6.rst b/Misc/NEWS.d/next/C API/2020-01-17-19-25-48.bpo-39372.hGJMY6.rst
new file mode 100644
index 00000000000..8415d756ffa
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2020-01-17-19-25-48.bpo-39372.hGJMY6.rst
@@ -0,0 +1,8 @@
+Clean header files of interfaces defined but with no implementation. The
+public API symbols being removed are:
+``_PyBytes_InsertThousandsGroupingLocale``,
+``_PyBytes_InsertThousandsGrouping``, ``_Py_InitializeFromArgs``,
+``_Py_InitializeFromWideArgs``, ``_PyFloat_Repr``, ``_PyFloat_Digits``,
+``_PyFloat_DigitsInit``, ``PyFrame_ExtendStack``, ``_PyAIterWrapper_Type``,
+``PyNullImporter_Type``, ``PyCmpWrapper_Type``, ``PySortWrapper_Type``,
+``PyNoArgsFunction``.
diff --git a/Objects/stringlib/asciilib.h b/Objects/stringlib/asciilib.h
index d0fc18d22fa..e95552624aa 100644
--- a/Objects/stringlib/asciilib.h
+++ b/Objects/stringlib/asciilib.h
@@ -24,6 +24,3 @@
#define STRINGLIB_TOSTR PyObject_Str
#define STRINGLIB_TOASCII PyObject_ASCII
-
-#define _Py_InsertThousandsGrouping _PyUnicode_ascii_InsertThousandsGrouping
-
diff --git a/Objects/stringlib/ucs1lib.h b/Objects/stringlib/ucs1lib.h
index ce1eb57f0d7..bc4b104f112 100644
--- a/Objects/stringlib/ucs1lib.h
+++ b/Objects/stringlib/ucs1lib.h
@@ -24,7 +24,3 @@
#define STRINGLIB_TOSTR PyObject_Str
#define STRINGLIB_TOASCII PyObject_ASCII
-
-#define _Py_InsertThousandsGrouping _PyUnicode_ucs1_InsertThousandsGrouping
-
-
diff --git a/Objects/stringlib/ucs2lib.h b/Objects/stringlib/ucs2lib.h
index f900cb65f8c..86a1dff1b56 100644
--- a/Objects/stringlib/ucs2lib.h
+++ b/Objects/stringlib/ucs2lib.h
@@ -24,6 +24,3 @@
#define STRINGLIB_TOSTR PyObject_Str
#define STRINGLIB_TOASCII PyObject_ASCII
-
-#define _Py_InsertThousandsGrouping _PyUnicode_ucs2_InsertThousandsGrouping
-
diff --git a/Objects/stringlib/ucs4lib.h b/Objects/stringlib/ucs4lib.h
index 86a480f1e3a..3c32a93c96a 100644
--- a/Objects/stringlib/ucs4lib.h
+++ b/Objects/stringlib/ucs4lib.h
@@ -25,5 +25,3 @@
#define STRINGLIB_TOSTR PyObject_Str
#define STRINGLIB_TOASCII PyObject_ASCII
-#define _Py_InsertThousandsGrouping _PyUnicode_ucs4_InsertThousandsGrouping
-
diff --git a/Objects/stringlib/undef.h b/Objects/stringlib/undef.h
index f9d3f1d3328..c41e254fde6 100644
--- a/Objects/stringlib/undef.h
+++ b/Objects/stringlib/undef.h
@@ -6,6 +6,5 @@
#undef STRINGLIB_STR
#undef STRINGLIB_LEN
#undef STRINGLIB_NEW
-#undef _Py_InsertThousandsGrouping
#undef STRINGLIB_IS_UNICODE
From 558f07891170fe5173f277d3749e92d844de0a27 Mon Sep 17 00:00:00 2001
From: Michael Haas
Date: Sun, 19 Jan 2020 04:29:42 -0600
Subject: [PATCH 154/380] Fix typo from base to based (GH-18055)
---
Lib/webbrowser.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py
index 0af36c4301d..1ef179a91a6 100755
--- a/Lib/webbrowser.py
+++ b/Lib/webbrowser.py
@@ -87,7 +87,7 @@ def open_new_tab(url):
def _synthesize(browser, *, preferred=False):
- """Attempt to synthesize a controller base on existing controllers.
+ """Attempt to synthesize a controller based on existing controllers.
This is useful to create a controller when a user specifies a path to
an entry in the BROWSER environment variable -- we can copy a general
From d8ef64422a75f40cecdb1a7ee43492607d3daaf6 Mon Sep 17 00:00:00 2001
From: Zackery Spytz
Date: Sun, 19 Jan 2020 15:38:37 -0700
Subject: [PATCH 155/380] bpo-35561: Supress valgrind false alarm on
epoll_ctl(event) (GH-18060)
Update Misc/valgrind-python.supp to suppress the false alarm.
---
Misc/valgrind-python.supp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/Misc/valgrind-python.supp b/Misc/valgrind-python.supp
index 38a5ea3cd2b..c9c45ba7ed6 100644
--- a/Misc/valgrind-python.supp
+++ b/Misc/valgrind-python.supp
@@ -263,6 +263,14 @@
}
+{
+ Uninitialised byte(s) false alarm, see bpo-35561
+ Memcheck:Param
+ epoll_ctl(event)
+ fun:epoll_ctl
+ fun:pyepoll_internal_ctl
+}
+
{
ZLIB problems, see test_gzip
Memcheck:Cond
From e96d954527aa376457451e32a9d75ae3ea9ab4bd Mon Sep 17 00:00:00 2001
From: Inada Naoki
Date: Mon, 20 Jan 2020 12:45:50 +0900
Subject: [PATCH 156/380] bpo-38536: locale: Remove trailing space in formatted
currency (GH-16864)
---
Lib/locale.py | 2 ++
Lib/test/test_locale.py | 3 +--
.../next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst | 2 ++
3 files changed, 5 insertions(+), 2 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst
diff --git a/Lib/locale.py b/Lib/locale.py
index dd8a08524a0..1a4e9f694f3 100644
--- a/Lib/locale.py
+++ b/Lib/locale.py
@@ -279,6 +279,8 @@ def currency(val, symbol=True, grouping=False, international=False):
if precedes:
s = smb + (separated and ' ' or '') + s
else:
+ if international and smb[-1] == ' ':
+ smb = smb[:-1]
s = s + (separated and ' ' or '') + smb
sign_pos = conv[val<0 and 'n_sign_posn' or 'p_sign_posn']
diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py
index c5d8e269d63..2863d200e25 100644
--- a/Lib/test/test_locale.py
+++ b/Lib/test/test_locale.py
@@ -334,8 +334,7 @@ class TestFrFRNumberFormatting(FrFRCookedTest, BaseFormattingTest):
euro = '\u20ac'
self._test_currency(50000, "50000,00 " + euro)
self._test_currency(50000, "50 000,00 " + euro, grouping=True)
- # XXX is the trailing space a bug?
- self._test_currency(50000, "50 000,00 EUR ",
+ self._test_currency(50000, "50 000,00 EUR",
grouping=True, international=True)
diff --git a/Misc/NEWS.d/next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst b/Misc/NEWS.d/next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst
new file mode 100644
index 00000000000..147d181cc7e
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst
@@ -0,0 +1,2 @@
+Removes trailing space in formatted currency with `international=True` and a locale with symbol following value.
+E.g. `locale.currency(12.34, international=True)` returned `'12,34 EUR '` instead of `'12,34 EUR'`.
From 5492bfcefec67b016e8239c0e9135bc2f03e3058 Mon Sep 17 00:00:00 2001
From: Inada Naoki
Date: Mon, 20 Jan 2020 13:54:00 +0900
Subject: [PATCH 157/380] bpo-39377: json: Remove the encoding option.
(GH-18075)
---
Lib/json/__init__.py | 11 -----------
Lib/test/test_json/test_decode.py | 4 ----
.../Library/2020-01-20-13-00-35.bpo-39377.QSFdaU.rst | 2 ++
3 files changed, 2 insertions(+), 15 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-20-13-00-35.bpo-39377.QSFdaU.rst
diff --git a/Lib/json/__init__.py b/Lib/json/__init__.py
index 1ba8b48bd78..2c52bdeba67 100644
--- a/Lib/json/__init__.py
+++ b/Lib/json/__init__.py
@@ -329,8 +329,6 @@ def loads(s, *, cls=None, object_hook=None, parse_float=None,
To use a custom ``JSONDecoder`` subclass, specify it with the ``cls``
kwarg; otherwise ``JSONDecoder`` is used.
-
- The ``encoding`` argument is ignored and deprecated since Python 3.1.
"""
if isinstance(s, str):
if s.startswith('\ufeff'):
@@ -342,15 +340,6 @@ def loads(s, *, cls=None, object_hook=None, parse_float=None,
f'not {s.__class__.__name__}')
s = s.decode(detect_encoding(s), 'surrogatepass')
- if "encoding" in kw:
- import warnings
- warnings.warn(
- "'encoding' is ignored and deprecated. It will be removed in Python 3.9",
- DeprecationWarning,
- stacklevel=2
- )
- del kw['encoding']
-
if (cls is None and object_hook is None and
parse_int is None and parse_float is None and
parse_constant is None and object_pairs_hook is None and not kw):
diff --git a/Lib/test/test_json/test_decode.py b/Lib/test/test_json/test_decode.py
index 895c95b54c3..fdb9e62124e 100644
--- a/Lib/test/test_json/test_decode.py
+++ b/Lib/test/test_json/test_decode.py
@@ -95,9 +95,5 @@ class TestDecode:
d = self.json.JSONDecoder()
self.assertRaises(ValueError, d.raw_decode, 'a'*42, -50000)
- def test_deprecated_encode(self):
- with self.assertWarns(DeprecationWarning):
- self.loads('{}', encoding='fake')
-
class TestPyDecode(TestDecode, PyTest): pass
class TestCDecode(TestDecode, CTest): pass
diff --git a/Misc/NEWS.d/next/Library/2020-01-20-13-00-35.bpo-39377.QSFdaU.rst b/Misc/NEWS.d/next/Library/2020-01-20-13-00-35.bpo-39377.QSFdaU.rst
new file mode 100644
index 00000000000..8493ac88e4b
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-20-13-00-35.bpo-39377.QSFdaU.rst
@@ -0,0 +1,2 @@
+Removed ``encoding`` option from :func:`json.loads`. It has been deprecated
+since Python 3.1.
From 1e420f849d0c094098543d2c27d35eaec69b2784 Mon Sep 17 00:00:00 2001
From: Nick Coghlan
Date: Tue, 21 Jan 2020 08:21:35 +1000
Subject: [PATCH 158/380] bpo-35134: Migrate frameobject.h contents to
cpython/frameobject.h (GH-18052)
---
Include/cpython/frameobject.h | 87 +++++++++++++++++++++++++++++++++++
Include/frameobject.h | 82 ++++-----------------------------
2 files changed, 95 insertions(+), 74 deletions(-)
create mode 100644 Include/cpython/frameobject.h
diff --git a/Include/cpython/frameobject.h b/Include/cpython/frameobject.h
new file mode 100644
index 00000000000..cf8c00c3528
--- /dev/null
+++ b/Include/cpython/frameobject.h
@@ -0,0 +1,87 @@
+/* Frame object interface */
+
+#ifndef Py_CPYTHON_FRAMEOBJECT_H
+# error "this header file must not be included directly"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+ int b_type; /* what kind of block this is */
+ int b_handler; /* where to jump to find handler */
+ int b_level; /* value stack level to pop to */
+} PyTryBlock;
+
+typedef struct _frame {
+ PyObject_VAR_HEAD
+ struct _frame *f_back; /* previous frame, or NULL */
+ PyCodeObject *f_code; /* code segment */
+ PyObject *f_builtins; /* builtin symbol table (PyDictObject) */
+ PyObject *f_globals; /* global symbol table (PyDictObject) */
+ PyObject *f_locals; /* local symbol table (any mapping) */
+ PyObject **f_valuestack; /* points after the last local */
+ /* Next free slot in f_valuestack. Frame creation sets to f_valuestack.
+ Frame evaluation usually NULLs it, but a frame that yields sets it
+ to the current stack top. */
+ PyObject **f_stacktop;
+ PyObject *f_trace; /* Trace function */
+ char f_trace_lines; /* Emit per-line trace events? */
+ char f_trace_opcodes; /* Emit per-opcode trace events? */
+
+ /* Borrowed reference to a generator, or NULL */
+ PyObject *f_gen;
+
+ int f_lasti; /* Last instruction if called */
+ /* Call PyFrame_GetLineNumber() instead of reading this field
+ directly. As of 2.3 f_lineno is only valid when tracing is
+ active (i.e. when f_trace is set). At other times we use
+ PyCode_Addr2Line to calculate the line from the current
+ bytecode index. */
+ int f_lineno; /* Current line number */
+ int f_iblock; /* index in f_blockstack */
+ char f_executing; /* whether the frame is still executing */
+ PyTryBlock f_blockstack[CO_MAXBLOCKS]; /* for try and loop blocks */
+ PyObject *f_localsplus[1]; /* locals+stack, dynamically sized */
+} PyFrameObject;
+
+
+/* Standard object interface */
+
+PyAPI_DATA(PyTypeObject) PyFrame_Type;
+
+#define PyFrame_Check(op) (Py_TYPE(op) == &PyFrame_Type)
+
+PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *,
+ PyObject *, PyObject *);
+
+/* only internal use */
+PyFrameObject* _PyFrame_New_NoTrack(PyThreadState *, PyCodeObject *,
+ PyObject *, PyObject *);
+
+
+/* The rest of the interface is specific for frame objects */
+
+/* Block management functions */
+
+PyAPI_FUNC(void) PyFrame_BlockSetup(PyFrameObject *, int, int, int);
+PyAPI_FUNC(PyTryBlock *) PyFrame_BlockPop(PyFrameObject *);
+
+/* Conversions between "fast locals" and locals in dictionary */
+
+PyAPI_FUNC(void) PyFrame_LocalsToFast(PyFrameObject *, int);
+
+PyAPI_FUNC(int) PyFrame_FastToLocalsWithError(PyFrameObject *f);
+PyAPI_FUNC(void) PyFrame_FastToLocals(PyFrameObject *);
+
+PyAPI_FUNC(int) PyFrame_ClearFreeList(void);
+
+PyAPI_FUNC(void) _PyFrame_DebugMallocStats(FILE *out);
+
+/* Return the line of code the frame is currently executing. */
+PyAPI_FUNC(int) PyFrame_GetLineNumber(PyFrameObject *);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/Include/frameobject.h b/Include/frameobject.h
index ddcf1591aae..1460e2210e3 100644
--- a/Include/frameobject.h
+++ b/Include/frameobject.h
@@ -1,88 +1,22 @@
/* Frame object interface */
-#ifndef Py_LIMITED_API
#ifndef Py_FRAMEOBJECT_H
#define Py_FRAMEOBJECT_H
#ifdef __cplusplus
extern "C" {
#endif
-typedef struct {
- int b_type; /* what kind of block this is */
- int b_handler; /* where to jump to find handler */
- int b_level; /* value stack level to pop to */
-} PyTryBlock;
+/* There are currently no frame related APIs in the stable ABI
+ * (they're all in the full CPython-specific API)
+ */
-typedef struct _frame {
- PyObject_VAR_HEAD
- struct _frame *f_back; /* previous frame, or NULL */
- PyCodeObject *f_code; /* code segment */
- PyObject *f_builtins; /* builtin symbol table (PyDictObject) */
- PyObject *f_globals; /* global symbol table (PyDictObject) */
- PyObject *f_locals; /* local symbol table (any mapping) */
- PyObject **f_valuestack; /* points after the last local */
- /* Next free slot in f_valuestack. Frame creation sets to f_valuestack.
- Frame evaluation usually NULLs it, but a frame that yields sets it
- to the current stack top. */
- PyObject **f_stacktop;
- PyObject *f_trace; /* Trace function */
- char f_trace_lines; /* Emit per-line trace events? */
- char f_trace_opcodes; /* Emit per-opcode trace events? */
-
- /* Borrowed reference to a generator, or NULL */
- PyObject *f_gen;
-
- int f_lasti; /* Last instruction if called */
- /* Call PyFrame_GetLineNumber() instead of reading this field
- directly. As of 2.3 f_lineno is only valid when tracing is
- active (i.e. when f_trace is set). At other times we use
- PyCode_Addr2Line to calculate the line from the current
- bytecode index. */
- int f_lineno; /* Current line number */
- int f_iblock; /* index in f_blockstack */
- char f_executing; /* whether the frame is still executing */
- PyTryBlock f_blockstack[CO_MAXBLOCKS]; /* for try and loop blocks */
- PyObject *f_localsplus[1]; /* locals+stack, dynamically sized */
-} PyFrameObject;
-
-
-/* Standard object interface */
-
-PyAPI_DATA(PyTypeObject) PyFrame_Type;
-
-#define PyFrame_Check(op) (Py_TYPE(op) == &PyFrame_Type)
-
-PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *,
- PyObject *, PyObject *);
-
-/* only internal use */
-PyFrameObject* _PyFrame_New_NoTrack(PyThreadState *, PyCodeObject *,
- PyObject *, PyObject *);
-
-
-/* The rest of the interface is specific for frame objects */
-
-/* Block management functions */
-
-PyAPI_FUNC(void) PyFrame_BlockSetup(PyFrameObject *, int, int, int);
-PyAPI_FUNC(PyTryBlock *) PyFrame_BlockPop(PyFrameObject *);
-
-/* Conversions between "fast locals" and locals in dictionary */
-
-PyAPI_FUNC(void) PyFrame_LocalsToFast(PyFrameObject *, int);
-
-PyAPI_FUNC(int) PyFrame_FastToLocalsWithError(PyFrameObject *f);
-PyAPI_FUNC(void) PyFrame_FastToLocals(PyFrameObject *);
-
-PyAPI_FUNC(int) PyFrame_ClearFreeList(void);
-
-PyAPI_FUNC(void) _PyFrame_DebugMallocStats(FILE *out);
-
-/* Return the line of code the frame is currently executing. */
-PyAPI_FUNC(int) PyFrame_GetLineNumber(PyFrameObject *);
+#ifndef Py_LIMITED_API
+# define Py_CPYTHON_FRAMEOBJECT_H
+# include "cpython/frameobject.h"
+# undef Py_CPYTHON_FRAMEOBJECT_H
+#endif
#ifdef __cplusplus
}
#endif
#endif /* !Py_FRAMEOBJECT_H */
-#endif /* Py_LIMITED_API */
From 2c49becc69c05934996a00b902e4a4f089b91954 Mon Sep 17 00:00:00 2001
From: Andrew Svetlov
Date: Tue, 21 Jan 2020 00:46:38 +0200
Subject: [PATCH 159/380] Fix asyncio.get_event_loop() documentation (GH-18051)
Mention that the function implicitly creates new event loop only if called from the main thread.
---
Doc/library/asyncio-eventloop.rst | 6 ++++--
.../Documentation/2020-01-18-15-37-56.bpo-39381.wTWe8d.rst | 2 ++
2 files changed, 6 insertions(+), 2 deletions(-)
create mode 100644 Misc/NEWS.d/next/Documentation/2020-01-18-15-37-56.bpo-39381.wTWe8d.rst
diff --git a/Doc/library/asyncio-eventloop.rst b/Doc/library/asyncio-eventloop.rst
index ee995e04e47..25a3692695d 100644
--- a/Doc/library/asyncio-eventloop.rst
+++ b/Doc/library/asyncio-eventloop.rst
@@ -38,8 +38,10 @@ an event loop:
.. function:: get_event_loop()
- Get the current event loop. If there is no current event loop set
- in the current OS thread and :func:`set_event_loop` has not yet
+ Get the current event loop.
+
+ If there is no current event loop set in the current OS thread,
+ the OS thread is main, and :func:`set_event_loop` has not yet
been called, asyncio will create a new event loop and set it as the
current one.
diff --git a/Misc/NEWS.d/next/Documentation/2020-01-18-15-37-56.bpo-39381.wTWe8d.rst b/Misc/NEWS.d/next/Documentation/2020-01-18-15-37-56.bpo-39381.wTWe8d.rst
new file mode 100644
index 00000000000..37b66ad9dfd
--- /dev/null
+++ b/Misc/NEWS.d/next/Documentation/2020-01-18-15-37-56.bpo-39381.wTWe8d.rst
@@ -0,0 +1,2 @@
+Mention in docs that :func:`asyncio.get_event_loop` implicitly creates new
+event loop only if called from the main thread.
From a96e06db77dcbd3433d39761ddb4615d7d96284a Mon Sep 17 00:00:00 2001
From: Andrew Svetlov
Date: Tue, 21 Jan 2020 00:49:30 +0200
Subject: [PATCH 160/380] bpo-39386: Prevent double awaiting of async iterator
(GH-18081)
---
Lib/test/test_asyncgen.py | 36 +++++++++++++++++++
.../2020-01-20-21-40-57.bpo-39386.ULqD8t.rst | 1 +
Objects/genobject.c | 16 ++++++---
3 files changed, 49 insertions(+), 4 deletions(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-20-21-40-57.bpo-39386.ULqD8t.rst
diff --git a/Lib/test/test_asyncgen.py b/Lib/test/test_asyncgen.py
index 58d8aee19ad..24b20bec2b2 100644
--- a/Lib/test/test_asyncgen.py
+++ b/Lib/test/test_asyncgen.py
@@ -1128,6 +1128,42 @@ class AsyncGenAsyncioTest(unittest.TestCase):
self.assertEqual([], messages)
+ def test_async_gen_await_anext_twice(self):
+ async def async_iterate():
+ yield 1
+ yield 2
+
+ async def run():
+ it = async_iterate()
+ nxt = it.__anext__()
+ await nxt
+ with self.assertRaisesRegex(
+ RuntimeError,
+ r"cannot reuse already awaited __anext__\(\)/asend\(\)"
+ ):
+ await nxt
+
+ await it.aclose() # prevent unfinished iterator warning
+
+ self.loop.run_until_complete(run())
+
+ def test_async_gen_await_aclose_twice(self):
+ async def async_iterate():
+ yield 1
+ yield 2
+
+ async def run():
+ it = async_iterate()
+ nxt = it.aclose()
+ await nxt
+ with self.assertRaisesRegex(
+ RuntimeError,
+ r"cannot reuse already awaited aclose\(\)/athrow\(\)"
+ ):
+ await nxt
+
+ self.loop.run_until_complete(run())
+
if __name__ == "__main__":
unittest.main()
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-20-21-40-57.bpo-39386.ULqD8t.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-20-21-40-57.bpo-39386.ULqD8t.rst
new file mode 100644
index 00000000000..f24e1f4e8a1
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-20-21-40-57.bpo-39386.ULqD8t.rst
@@ -0,0 +1 @@
+Prevent double awaiting of async iterator.
diff --git a/Objects/genobject.c b/Objects/genobject.c
index c5fe9999af2..652c2903dd2 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -1518,7 +1518,9 @@ async_gen_asend_send(PyAsyncGenASend *o, PyObject *arg)
PyObject *result;
if (o->ags_state == AWAITABLE_STATE_CLOSED) {
- PyErr_SetNone(PyExc_StopIteration);
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "cannot reuse already awaited __anext__()/asend()");
return NULL;
}
@@ -1561,7 +1563,9 @@ async_gen_asend_throw(PyAsyncGenASend *o, PyObject *args)
PyObject *result;
if (o->ags_state == AWAITABLE_STATE_CLOSED) {
- PyErr_SetNone(PyExc_StopIteration);
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "cannot reuse already awaited __anext__()/asend()");
return NULL;
}
@@ -1795,7 +1799,9 @@ async_gen_athrow_send(PyAsyncGenAThrow *o, PyObject *arg)
if (f == NULL || f->f_stacktop == NULL ||
o->agt_state == AWAITABLE_STATE_CLOSED) {
- PyErr_SetNone(PyExc_StopIteration);
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "cannot reuse already awaited aclose()/athrow()");
return NULL;
}
@@ -1917,7 +1923,9 @@ async_gen_athrow_throw(PyAsyncGenAThrow *o, PyObject *args)
PyObject *retval;
if (o->agt_state == AWAITABLE_STATE_CLOSED) {
- PyErr_SetNone(PyExc_StopIteration);
+ PyErr_SetString(
+ PyExc_RuntimeError,
+ "cannot reuse already awaited aclose()/athrow()");
return NULL;
}
From 8d57a4182f0aa68e16d66dea31ba59e732612b4f Mon Sep 17 00:00:00 2001
From: Peter Bittner
Date: Tue, 21 Jan 2020 00:22:56 +0100
Subject: [PATCH 161/380] bpo-39383: Mention Darwin as a potential value for
platform.system() (GH-18054)
---
Doc/library/platform.rst | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst
index 1d33afc7587..8e8e3775aaf 100644
--- a/Doc/library/platform.rst
+++ b/Doc/library/platform.rst
@@ -145,8 +145,8 @@ Cross Platform
.. function:: system()
- Returns the system/OS name, e.g. ``'Linux'``, ``'Windows'``, or ``'Java'``. An
- empty string is returned if the value cannot be determined.
+ Returns the system/OS name, such as ``'Linux'``, ``'Darwin'``, ``'Java'``,
+ ``'Windows'``. An empty string is returned if the value cannot be determined.
.. function:: system_alias(system, release, version)
@@ -260,4 +260,3 @@ Unix Platforms
using :program:`gcc`.
The file is read and scanned in chunks of *chunksize* bytes.
-
From 8698b34b68065b80bd9bd18b8decb425208fa386 Mon Sep 17 00:00:00 2001
From: Carl Friedrich Bolz-Tereick
Date: Tue, 21 Jan 2020 01:41:17 +0100
Subject: [PATCH 162/380] improve the documentation of the LOAD_METHOD and
CALL_METHOD (GH-18079)
---
Doc/library/dis.rst | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index d3124f973f1..aef5c7e8bf2 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -1140,22 +1140,24 @@ All of the following opcodes use their arguments.
.. opcode:: LOAD_METHOD (namei)
- Loads a method named ``co_names[namei]`` from TOS object. TOS is popped and
- method and TOS are pushed when interpreter can call unbound method directly.
- TOS will be used as the first argument (``self``) by :opcode:`CALL_METHOD`.
- Otherwise, ``NULL`` and method is pushed (method is bound method or
- something else).
+ Loads a method named ``co_names[namei]`` from the TOS object. TOS is popped.
+ This bytecode distinguishes two cases: if TOS has a method with the correct
+ name, the bytecode pushes the unbound method and TOS. TOS will be used as
+ the first argument (``self``) by :opcode:`CALL_METHOD` when calling the
+ unbound method. Otherwise, ``NULL`` and the object return by the attribute
+ lookup are pushed.
.. versionadded:: 3.7
.. opcode:: CALL_METHOD (argc)
- Calls a method. *argc* is number of positional arguments.
+ Calls a method. *argc* is the number of positional arguments.
Keyword arguments are not supported. This opcode is designed to be used
with :opcode:`LOAD_METHOD`. Positional arguments are on top of the stack.
- Below them, two items described in :opcode:`LOAD_METHOD` on the stack.
- All of them are popped and return value is pushed.
+ Below them, the two items described in :opcode:`LOAD_METHOD` are on the
+ stack (either ``self`` and an unbound method object or ``NULL`` and an
+ arbitrary callable). All of them are popped and the return value is pushed.
.. versionadded:: 3.7
From ec64640a2c5236d7a5d5470d759172a3d93eab0b Mon Sep 17 00:00:00 2001
From: Cheryl Sabella
Date: Tue, 21 Jan 2020 05:11:26 -0500
Subject: [PATCH 163/380] bpo-32989: IDLE - fix bad editor call of pyparse
method (GH-5968)
Fix comments and add tests for editor newline_and_indent_event method.
Remove unused None default for function parameter of pyparse find_good_parse_start method
and code triggered by that default.
Co-authored-by: Terry Jan Reedy
---
Lib/idlelib/NEWS.txt | 3 +
Lib/idlelib/editor.py | 55 +++++++----
Lib/idlelib/idle_test/test_editor.py | 99 +++++++++++++++++++
Lib/idlelib/idle_test/test_pyparse.py | 27 ++---
Lib/idlelib/pyparse.py | 7 +-
.../2018-03-03-12-56-26.bpo-32989.FVhmhH.rst | 2 +
6 files changed, 154 insertions(+), 39 deletions(-)
create mode 100644 Misc/NEWS.d/next/IDLE/2018-03-03-12-56-26.bpo-32989.FVhmhH.rst
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index cbf55d9adef..9f8894e517b 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,6 +3,9 @@ Released on 2020-10-05?
======================================
+bpo-32989: Add tests for editor newline_and_indent_event method.
+Remove dead code from pyparse find_good_parse_start method.
+
bpo-38943: Fix autocomplete windows not always appearing on some
systems. Patch by Johnny Najera.
diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py
index 92dcf57c4ff..c9f1a1625ca 100644
--- a/Lib/idlelib/editor.py
+++ b/Lib/idlelib/editor.py
@@ -1342,38 +1342,51 @@ class EditorWindow(object):
text.undo_block_stop()
def newline_and_indent_event(self, event):
+ """Insert a newline and indentation after Enter keypress event.
+
+ Properly position the cursor on the new line based on information
+ from the current line. This takes into account if the current line
+ is a shell prompt, is empty, has selected text, contains a block
+ opener, contains a block closer, is a continuation line, or
+ is inside a string.
+ """
text = self.text
first, last = self.get_selection_indices()
text.undo_block_start()
- try:
+ try: # Close undo block and expose new line in finally clause.
if first and last:
text.delete(first, last)
text.mark_set("insert", first)
line = text.get("insert linestart", "insert")
+
+ # Count leading whitespace for indent size.
i, n = 0, len(line)
while i < n and line[i] in " \t":
- i = i+1
+ i += 1
if i == n:
- # the cursor is in or at leading indentation in a continuation
- # line; just inject an empty line at the start
+ # The cursor is in or at leading indentation in a continuation
+ # line; just inject an empty line at the start.
text.insert("insert linestart", '\n')
return "break"
indent = line[:i]
- # strip whitespace before insert point unless it's in the prompt
+
+ # Strip whitespace before insert point unless it's in the prompt.
i = 0
while line and line[-1] in " \t" and line != self.prompt_last_line:
line = line[:-1]
- i = i+1
+ i += 1
if i:
text.delete("insert - %d chars" % i, "insert")
- # strip whitespace after insert point
+
+ # Strip whitespace after insert point.
while text.get("insert") in " \t":
text.delete("insert")
- # start new line
+
+ # Insert new line.
text.insert("insert", '\n')
- # adjust indentation for continuations and block
- # open/close first need to find the last stmt
+ # Adjust indentation for continuations and block open/close.
+ # First need to find the last statement.
lno = index2line(text.index('insert'))
y = pyparse.Parser(self.indentwidth, self.tabwidth)
if not self.prompt_last_line:
@@ -1383,7 +1396,7 @@ class EditorWindow(object):
rawtext = text.get(startatindex, "insert")
y.set_code(rawtext)
bod = y.find_good_parse_start(
- self._build_char_in_string_func(startatindex))
+ self._build_char_in_string_func(startatindex))
if bod is not None or startat == 1:
break
y.set_lo(bod or 0)
@@ -1399,26 +1412,26 @@ class EditorWindow(object):
c = y.get_continuation_type()
if c != pyparse.C_NONE:
- # The current stmt hasn't ended yet.
+ # The current statement hasn't ended yet.
if c == pyparse.C_STRING_FIRST_LINE:
- # after the first line of a string; do not indent at all
+ # After the first line of a string do not indent at all.
pass
elif c == pyparse.C_STRING_NEXT_LINES:
- # inside a string which started before this line;
- # just mimic the current indent
+ # Inside a string which started before this line;
+ # just mimic the current indent.
text.insert("insert", indent)
elif c == pyparse.C_BRACKET:
- # line up with the first (if any) element of the
+ # Line up with the first (if any) element of the
# last open bracket structure; else indent one
# level beyond the indent of the line with the
- # last open bracket
+ # last open bracket.
self.reindent_to(y.compute_bracket_indent())
elif c == pyparse.C_BACKSLASH:
- # if more than one line in this stmt already, just
+ # If more than one line in this statement already, just
# mimic the current indent; else if initial line
# has a start on an assignment stmt, indent to
# beyond leftmost =; else to beyond first chunk of
- # non-whitespace on initial line
+ # non-whitespace on initial line.
if y.get_num_lines_in_stmt() > 1:
text.insert("insert", indent)
else:
@@ -1427,9 +1440,9 @@ class EditorWindow(object):
assert 0, "bogus continuation type %r" % (c,)
return "break"
- # This line starts a brand new stmt; indent relative to
+ # This line starts a brand new statement; indent relative to
# indentation of initial line of closest preceding
- # interesting stmt.
+ # interesting statement.
indent = y.get_base_indent_string()
text.insert("insert", indent)
if y.is_block_opener():
diff --git a/Lib/idlelib/idle_test/test_editor.py b/Lib/idlelib/idle_test/test_editor.py
index 240db71747a..91e8ef89d1d 100644
--- a/Lib/idlelib/idle_test/test_editor.py
+++ b/Lib/idlelib/idle_test/test_editor.py
@@ -2,6 +2,7 @@
from idlelib import editor
import unittest
+from collections import namedtuple
from test.support import requires
from tkinter import Tk
@@ -91,5 +92,103 @@ class TestGetLineIndent(unittest.TestCase):
)
+class IndentAndNewlineTest(unittest.TestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ requires('gui')
+ cls.root = Tk()
+ cls.root.withdraw()
+ cls.window = Editor(root=cls.root)
+ cls.window.indentwidth = 2
+ cls.window.tabwidth = 2
+
+ @classmethod
+ def tearDownClass(cls):
+ cls.window._close()
+ del cls.window
+ cls.root.update_idletasks()
+ for id in cls.root.tk.call('after', 'info'):
+ cls.root.after_cancel(id)
+ cls.root.destroy()
+ del cls.root
+
+ def insert(self, text):
+ t = self.window.text
+ t.delete('1.0', 'end')
+ t.insert('end', text)
+ # Force update for colorizer to finish.
+ t.update()
+
+ def test_indent_and_newline_event(self):
+ eq = self.assertEqual
+ w = self.window
+ text = w.text
+ get = text.get
+ nl = w.newline_and_indent_event
+
+ TestInfo = namedtuple('Tests', ['label', 'text', 'expected', 'mark'])
+
+ tests = (TestInfo('Empty line inserts with no indent.',
+ ' \n def __init__(self):',
+ '\n \n def __init__(self):\n',
+ '1.end'),
+ TestInfo('Inside bracket before space, deletes space.',
+ ' def f1(self, a, b):',
+ ' def f1(self,\n a, b):\n',
+ '1.14'),
+ TestInfo('Inside bracket after space, deletes space.',
+ ' def f1(self, a, b):',
+ ' def f1(self,\n a, b):\n',
+ '1.15'),
+ TestInfo('Inside string with one line - no indent.',
+ ' """Docstring."""',
+ ' """Docstring.\n"""\n',
+ '1.15'),
+ TestInfo('Inside string with more than one line.',
+ ' """Docstring.\n Docstring Line 2"""',
+ ' """Docstring.\n Docstring Line 2\n """\n',
+ '2.18'),
+ TestInfo('Backslash with one line.',
+ 'a =\\',
+ 'a =\\\n \n',
+ '1.end'),
+ TestInfo('Backslash with more than one line.',
+ 'a =\\\n multiline\\',
+ 'a =\\\n multiline\\\n \n',
+ '2.end'),
+ TestInfo('Block opener - indents +1 level.',
+ ' def f1(self):\n pass',
+ ' def f1(self):\n \n pass\n',
+ '1.end'),
+ TestInfo('Block closer - dedents -1 level.',
+ ' def f1(self):\n pass',
+ ' def f1(self):\n pass\n \n',
+ '2.end'),
+ )
+
+ w.prompt_last_line = ''
+ for test in tests:
+ with self.subTest(label=test.label):
+ self.insert(test.text)
+ text.mark_set('insert', test.mark)
+ nl(event=None)
+ eq(get('1.0', 'end'), test.expected)
+
+ # Selected text.
+ self.insert(' def f1(self, a, b):\n return a + b')
+ text.tag_add('sel', '1.17', '1.end')
+ nl(None)
+ # Deletes selected text before adding new line.
+ eq(get('1.0', 'end'), ' def f1(self, a,\n \n return a + b\n')
+
+ # Preserves the whitespace in shell prompt.
+ w.prompt_last_line = '>>> '
+ self.insert('>>> \t\ta =')
+ text.mark_set('insert', '1.5')
+ nl(None)
+ eq(get('1.0', 'end'), '>>> \na =\n')
+
+
if __name__ == '__main__':
unittest.main(verbosity=2)
diff --git a/Lib/idlelib/idle_test/test_pyparse.py b/Lib/idlelib/idle_test/test_pyparse.py
index f7154e6ded9..a2b13c38d80 100644
--- a/Lib/idlelib/idle_test/test_pyparse.py
+++ b/Lib/idlelib/idle_test/test_pyparse.py
@@ -18,7 +18,7 @@ class ParseMapTest(unittest.TestCase):
# trans is the production instance of ParseMap, used in _study1
parser = pyparse.Parser(4, 4)
self.assertEqual('\t a([{b}])b"c\'d\n'.translate(pyparse.trans),
- 'xxx(((x)))x"x\'x\n')
+ 'xxx(((x)))x"x\'x\n')
class PyParseTest(unittest.TestCase):
@@ -61,14 +61,17 @@ class PyParseTest(unittest.TestCase):
# Split def across lines.
setcode('"""This is a module docstring"""\n'
- 'class C():\n'
- ' def __init__(self, a,\n'
- ' b=True):\n'
- ' pass\n'
- )
+ 'class C():\n'
+ ' def __init__(self, a,\n'
+ ' b=True):\n'
+ ' pass\n'
+ )
- # No value sent for is_char_in_string().
- self.assertIsNone(start())
+ # Passing no value or non-callable should fail (issue 32989).
+ with self.assertRaises(TypeError):
+ start()
+ with self.assertRaises(TypeError):
+ start(False)
# Make text look like a string. This returns pos as the start
# position, but it's set to None.
@@ -91,10 +94,10 @@ class PyParseTest(unittest.TestCase):
# Code without extra line break in def line - mostly returns the same
# values.
setcode('"""This is a module docstring"""\n'
- 'class C():\n'
- ' def __init__(self, a, b=True):\n'
- ' pass\n'
- )
+ 'class C():\n'
+ ' def __init__(self, a, b=True):\n'
+ ' pass\n'
+ )
eq(start(is_char_in_string=lambda index: False), 44)
eq(start(is_char_in_string=lambda index: index > 44), 44)
eq(start(is_char_in_string=lambda index: index >= 44), 33)
diff --git a/Lib/idlelib/pyparse.py b/Lib/idlelib/pyparse.py
index feb57cbb740..9fa20108960 100644
--- a/Lib/idlelib/pyparse.py
+++ b/Lib/idlelib/pyparse.py
@@ -133,8 +133,7 @@ class Parser:
self.code = s
self.study_level = 0
- def find_good_parse_start(self, is_char_in_string=None,
- _synchre=_synchre):
+ def find_good_parse_start(self, is_char_in_string, _synchre=_synchre):
"""
Return index of a good place to begin parsing, as close to the
end of the string as possible. This will be the start of some
@@ -149,10 +148,6 @@ class Parser:
"""
code, pos = self.code, None
- if not is_char_in_string:
- # no clue -- make the caller pass everything
- return None
-
# Peek back from the end for a good place to start,
# but don't try too often; pos will be left None, or
# bumped to a legitimate synch point.
diff --git a/Misc/NEWS.d/next/IDLE/2018-03-03-12-56-26.bpo-32989.FVhmhH.rst b/Misc/NEWS.d/next/IDLE/2018-03-03-12-56-26.bpo-32989.FVhmhH.rst
new file mode 100644
index 00000000000..38f0fb6e104
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2018-03-03-12-56-26.bpo-32989.FVhmhH.rst
@@ -0,0 +1,2 @@
+Add tests for editor newline_and_indent_event method.
+Remove dead code from pyparse find_good_parse_start method.
From 85ead4fc62829cb7ef2eb0af1a2933282f58c629 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Tue, 21 Jan 2020 11:14:10 +0100
Subject: [PATCH 164/380] bpo-39396: Fix math.nextafter(-0.0, +0.0) on AIX 7.1
(GH-18094)
Move also math.nextafter() on math.ulp() tests from IsCloseTests to
MathTests.
---
Lib/test/test_math.py | 154 +++++++++---------
.../2020-01-21-09-00-42.bpo-39396.6UXQXE.rst | 1 +
Modules/mathmodule.c | 10 +-
3 files changed, 86 insertions(+), 79 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-21-09-00-42.bpo-39396.6UXQXE.rst
diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py
index 6d10227a0c1..e96fd745970 100644
--- a/Lib/test/test_math.py
+++ b/Lib/test/test_math.py
@@ -1752,6 +1752,83 @@ class MathTests(unittest.TestCase):
if not math.isnan(value):
self.fail("Expected a NaN, got {!r}.".format(value))
+ def assertEqualSign(self, x, y):
+ """Similar to assertEqual(), but compare also the sign.
+
+ Function useful to compare signed zeros.
+ """
+ self.assertEqual(x, y)
+ self.assertEqual(math.copysign(1.0, x), math.copysign(1.0, y))
+
+ @requires_IEEE_754
+ def test_nextafter(self):
+ # around 2^52 and 2^63
+ self.assertEqual(math.nextafter(4503599627370496.0, -INF),
+ 4503599627370495.5)
+ self.assertEqual(math.nextafter(4503599627370496.0, INF),
+ 4503599627370497.0)
+ self.assertEqual(math.nextafter(9223372036854775808.0, 0.0),
+ 9223372036854774784.0)
+ self.assertEqual(math.nextafter(-9223372036854775808.0, 0.0),
+ -9223372036854774784.0)
+
+ # around 1.0
+ self.assertEqual(math.nextafter(1.0, -INF),
+ float.fromhex('0x1.fffffffffffffp-1'))
+ self.assertEqual(math.nextafter(1.0, INF),
+ float.fromhex('0x1.0000000000001p+0'))
+
+ # x == y: y is returned
+ self.assertEqual(math.nextafter(2.0, 2.0), 2.0)
+ self.assertEqualSign(math.nextafter(-0.0, +0.0), +0.0)
+ self.assertEqualSign(math.nextafter(+0.0, -0.0), -0.0)
+
+ # around 0.0
+ smallest_subnormal = sys.float_info.min * sys.float_info.epsilon
+ self.assertEqual(math.nextafter(+0.0, INF), smallest_subnormal)
+ self.assertEqual(math.nextafter(-0.0, INF), smallest_subnormal)
+ self.assertEqual(math.nextafter(+0.0, -INF), -smallest_subnormal)
+ self.assertEqual(math.nextafter(-0.0, -INF), -smallest_subnormal)
+ self.assertEqualSign(math.nextafter(smallest_subnormal, +0.0), +0.0)
+ self.assertEqualSign(math.nextafter(-smallest_subnormal, +0.0), -0.0)
+ self.assertEqualSign(math.nextafter(smallest_subnormal, -0.0), +0.0)
+ self.assertEqualSign(math.nextafter(-smallest_subnormal, -0.0), -0.0)
+
+ # around infinity
+ largest_normal = sys.float_info.max
+ self.assertEqual(math.nextafter(INF, 0.0), largest_normal)
+ self.assertEqual(math.nextafter(-INF, 0.0), -largest_normal)
+ self.assertEqual(math.nextafter(largest_normal, INF), INF)
+ self.assertEqual(math.nextafter(-largest_normal, -INF), -INF)
+
+ # NaN
+ self.assertTrue(math.isnan(math.nextafter(NAN, 1.0)))
+ self.assertTrue(math.isnan(math.nextafter(1.0, NAN)))
+ self.assertTrue(math.isnan(math.nextafter(NAN, NAN)))
+
+ @requires_IEEE_754
+ def test_ulp(self):
+ self.assertEqual(math.ulp(1.0), sys.float_info.epsilon)
+ # use int ** int rather than float ** int to not rely on pow() accuracy
+ self.assertEqual(math.ulp(2 ** 52), 1.0)
+ self.assertEqual(math.ulp(2 ** 53), 2.0)
+ self.assertEqual(math.ulp(2 ** 64), 4096.0)
+
+ # min and max
+ self.assertEqual(math.ulp(0.0),
+ sys.float_info.min * sys.float_info.epsilon)
+ self.assertEqual(math.ulp(FLOAT_MAX),
+ FLOAT_MAX - math.nextafter(FLOAT_MAX, -INF))
+
+ # special cases
+ self.assertEqual(math.ulp(INF), INF)
+ self.assertTrue(math.isnan(math.ulp(math.nan)))
+
+ # negative number: ulp(-x) == ulp(x)
+ for x in (0.0, 1.0, 2 ** 52, 2 ** 64, INF):
+ with self.subTest(x=x):
+ self.assertEqual(math.ulp(-x), math.ulp(x))
+
class IsCloseTests(unittest.TestCase):
isclose = math.isclose # subclasses should override this
@@ -2009,83 +2086,6 @@ class IsCloseTests(unittest.TestCase):
self.assertIs(type(comb(IntSubclass(5), IntSubclass(k))), int)
self.assertIs(type(comb(MyIndexable(5), MyIndexable(k))), int)
- def assertEqualSign(self, x, y):
- """Similar to assertEqual(), but compare also the sign.
-
- Function useful to compare signed zeros.
- """
- self.assertEqual(x, y)
- self.assertEqual(math.copysign(1.0, x), math.copysign(1.0, y))
-
- @requires_IEEE_754
- def test_nextafter(self):
- # around 2^52 and 2^63
- self.assertEqual(math.nextafter(4503599627370496.0, -INF),
- 4503599627370495.5)
- self.assertEqual(math.nextafter(4503599627370496.0, INF),
- 4503599627370497.0)
- self.assertEqual(math.nextafter(9223372036854775808.0, 0.0),
- 9223372036854774784.0)
- self.assertEqual(math.nextafter(-9223372036854775808.0, 0.0),
- -9223372036854774784.0)
-
- # around 1.0
- self.assertEqual(math.nextafter(1.0, -INF),
- float.fromhex('0x1.fffffffffffffp-1'))
- self.assertEqual(math.nextafter(1.0, INF),
- float.fromhex('0x1.0000000000001p+0'))
-
- # x == y: y is returned
- self.assertEqual(math.nextafter(2.0, 2.0), 2.0)
- self.assertEqualSign(math.nextafter(-0.0, +0.0), +0.0)
- self.assertEqualSign(math.nextafter(+0.0, -0.0), -0.0)
-
- # around 0.0
- smallest_subnormal = sys.float_info.min * sys.float_info.epsilon
- self.assertEqual(math.nextafter(+0.0, INF), smallest_subnormal)
- self.assertEqual(math.nextafter(-0.0, INF), smallest_subnormal)
- self.assertEqual(math.nextafter(+0.0, -INF), -smallest_subnormal)
- self.assertEqual(math.nextafter(-0.0, -INF), -smallest_subnormal)
- self.assertEqualSign(math.nextafter(smallest_subnormal, +0.0), +0.0)
- self.assertEqualSign(math.nextafter(-smallest_subnormal, +0.0), -0.0)
- self.assertEqualSign(math.nextafter(smallest_subnormal, -0.0), +0.0)
- self.assertEqualSign(math.nextafter(-smallest_subnormal, -0.0), -0.0)
-
- # around infinity
- largest_normal = sys.float_info.max
- self.assertEqual(math.nextafter(INF, 0.0), largest_normal)
- self.assertEqual(math.nextafter(-INF, 0.0), -largest_normal)
- self.assertEqual(math.nextafter(largest_normal, INF), INF)
- self.assertEqual(math.nextafter(-largest_normal, -INF), -INF)
-
- # NaN
- self.assertTrue(math.isnan(math.nextafter(NAN, 1.0)))
- self.assertTrue(math.isnan(math.nextafter(1.0, NAN)))
- self.assertTrue(math.isnan(math.nextafter(NAN, NAN)))
-
- @requires_IEEE_754
- def test_ulp(self):
- self.assertEqual(math.ulp(1.0), sys.float_info.epsilon)
- # use int ** int rather than float ** int to not rely on pow() accuracy
- self.assertEqual(math.ulp(2 ** 52), 1.0)
- self.assertEqual(math.ulp(2 ** 53), 2.0)
- self.assertEqual(math.ulp(2 ** 64), 4096.0)
-
- # min and max
- self.assertEqual(math.ulp(0.0),
- sys.float_info.min * sys.float_info.epsilon)
- self.assertEqual(math.ulp(FLOAT_MAX),
- FLOAT_MAX - math.nextafter(FLOAT_MAX, -INF))
-
- # special cases
- self.assertEqual(math.ulp(INF), INF)
- self.assertTrue(math.isnan(math.ulp(math.nan)))
-
- # negative number: ulp(-x) == ulp(x)
- for x in (0.0, 1.0, 2 ** 52, 2 ** 64, INF):
- with self.subTest(x=x):
- self.assertEqual(math.ulp(-x), math.ulp(x))
-
def test_main():
from doctest import DocFileSuite
diff --git a/Misc/NEWS.d/next/Library/2020-01-21-09-00-42.bpo-39396.6UXQXE.rst b/Misc/NEWS.d/next/Library/2020-01-21-09-00-42.bpo-39396.6UXQXE.rst
new file mode 100644
index 00000000000..af7076854a5
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-21-09-00-42.bpo-39396.6UXQXE.rst
@@ -0,0 +1 @@
+Fix ``math.nextafter(-0.0, +0.0)`` on AIX 7.1.
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index 81d871786f1..f012b51d866 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -3287,8 +3287,14 @@ static PyObject *
math_nextafter_impl(PyObject *module, double x, double y)
/*[clinic end generated code: output=750c8266c1c540ce input=02b2d50cd1d9f9b6]*/
{
- double f = nextafter(x, y);
- return PyFloat_FromDouble(f);
+#if defined(_AIX)
+ if (x == y) {
+ /* On AIX 7.1, libm nextafter(-0.0, +0.0) returns -0.0.
+ Bug fixed in bos.adt.libm 7.2.2.0 by APAR IV95512. */
+ return PyFloat_FromDouble(y);
+ }
+#endif
+ return PyFloat_FromDouble(nextafter(x, y));
}
From eab3b3f1c60afecfb4db3c3619109684cb04bd60 Mon Sep 17 00:00:00 2001
From: William Chargin
Date: Tue, 21 Jan 2020 03:25:24 -0800
Subject: [PATCH 165/380] bpo-39389: gzip: fix compression level metadata
(GH-18077)
As described in RFC 1952, section 2.3.1, the XFL (eXtra FLags) byte of a
gzip member header should indicate whether the DEFLATE algorithm was
tuned for speed or compression ratio. Prior to this patch, archives
emitted by the `gzip` module always indicated maximum compression.
---
Lib/gzip.py | 12 ++++++++---
Lib/test/test_gzip.py | 20 +++++++++++++++++++
.../2020-01-20-00-56-01.bpo-39389.fEirIS.rst | 2 ++
3 files changed, 31 insertions(+), 3 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-20-00-56-01.bpo-39389.fEirIS.rst
diff --git a/Lib/gzip.py b/Lib/gzip.py
index e60d8ad5995..e422773b3ed 100644
--- a/Lib/gzip.py
+++ b/Lib/gzip.py
@@ -209,7 +209,7 @@ class GzipFile(_compression.BaseStream):
self.fileobj = fileobj
if self.mode == WRITE:
- self._write_gzip_header()
+ self._write_gzip_header(compresslevel)
@property
def filename(self):
@@ -236,7 +236,7 @@ class GzipFile(_compression.BaseStream):
self.bufsize = 0
self.offset = 0 # Current file offset for seek(), tell(), etc
- def _write_gzip_header(self):
+ def _write_gzip_header(self, compresslevel):
self.fileobj.write(b'\037\213') # magic header
self.fileobj.write(b'\010') # compression method
try:
@@ -257,7 +257,13 @@ class GzipFile(_compression.BaseStream):
if mtime is None:
mtime = time.time()
write32u(self.fileobj, int(mtime))
- self.fileobj.write(b'\002')
+ if compresslevel == _COMPRESS_LEVEL_BEST:
+ xfl = b'\002'
+ elif compresslevel == _COMPRESS_LEVEL_FAST:
+ xfl = b'\004'
+ else:
+ xfl = b'\000'
+ self.fileobj.write(xfl)
self.fileobj.write(b'\377')
if fname:
self.fileobj.write(fname + b'\000')
diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py
index 57d851cf9cf..78334213f24 100644
--- a/Lib/test/test_gzip.py
+++ b/Lib/test/test_gzip.py
@@ -358,6 +358,26 @@ class TestGzip(BaseTest):
isizeBytes = fRead.read(4)
self.assertEqual(isizeBytes, struct.pack('
Date: Tue, 21 Jan 2020 12:47:29 +0100
Subject: [PATCH 166/380] bpo-33387: Fix compiler warning in
frame_block_unwind() (GH-18099)
Replace int with intptr_t to fix the warning:
objects\frameobject.c(341): warning C4244: 'initializing':
conversion from '__int64' to 'int', possible loss of data
---
Objects/frameobject.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index d7acb41f7a3..4469e3c20cd 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -338,7 +338,7 @@ frame_block_unwind(PyFrameObject *f)
assert(f->f_iblock > 0);
f->f_iblock--;
PyTryBlock *b = &f->f_blockstack[f->f_iblock];
- int delta = (f->f_stacktop - f->f_valuestack) - b->b_level;
+ intptr_t delta = (f->f_stacktop - f->f_valuestack) - b->b_level;
while (delta > 0) {
frame_stack_pop(f);
delta--;
From 59e2d26b258c12f18d8d2e789ef741703d6c52d5 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Tue, 21 Jan 2020 12:48:16 +0100
Subject: [PATCH 167/380] Move test_math tests (GH-18098)
testPerm() and testComb() belong to MathTests, not to IsCloseTests().
test_nextafter() and test_ulp() now use assertIsNaN().
---
Lib/test/test_math.py | 412 +++++++++++++++++++++---------------------
1 file changed, 206 insertions(+), 206 deletions(-)
diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py
index e96fd745970..b3301f6a5cf 100644
--- a/Lib/test/test_math.py
+++ b/Lib/test/test_math.py
@@ -1746,212 +1746,6 @@ class MathTests(unittest.TestCase):
self.assertEqual(type(prod([1, decimal.Decimal(2.0), 3, 4, 5, 6])),
decimal.Decimal)
- # Custom assertions.
-
- def assertIsNaN(self, value):
- if not math.isnan(value):
- self.fail("Expected a NaN, got {!r}.".format(value))
-
- def assertEqualSign(self, x, y):
- """Similar to assertEqual(), but compare also the sign.
-
- Function useful to compare signed zeros.
- """
- self.assertEqual(x, y)
- self.assertEqual(math.copysign(1.0, x), math.copysign(1.0, y))
-
- @requires_IEEE_754
- def test_nextafter(self):
- # around 2^52 and 2^63
- self.assertEqual(math.nextafter(4503599627370496.0, -INF),
- 4503599627370495.5)
- self.assertEqual(math.nextafter(4503599627370496.0, INF),
- 4503599627370497.0)
- self.assertEqual(math.nextafter(9223372036854775808.0, 0.0),
- 9223372036854774784.0)
- self.assertEqual(math.nextafter(-9223372036854775808.0, 0.0),
- -9223372036854774784.0)
-
- # around 1.0
- self.assertEqual(math.nextafter(1.0, -INF),
- float.fromhex('0x1.fffffffffffffp-1'))
- self.assertEqual(math.nextafter(1.0, INF),
- float.fromhex('0x1.0000000000001p+0'))
-
- # x == y: y is returned
- self.assertEqual(math.nextafter(2.0, 2.0), 2.0)
- self.assertEqualSign(math.nextafter(-0.0, +0.0), +0.0)
- self.assertEqualSign(math.nextafter(+0.0, -0.0), -0.0)
-
- # around 0.0
- smallest_subnormal = sys.float_info.min * sys.float_info.epsilon
- self.assertEqual(math.nextafter(+0.0, INF), smallest_subnormal)
- self.assertEqual(math.nextafter(-0.0, INF), smallest_subnormal)
- self.assertEqual(math.nextafter(+0.0, -INF), -smallest_subnormal)
- self.assertEqual(math.nextafter(-0.0, -INF), -smallest_subnormal)
- self.assertEqualSign(math.nextafter(smallest_subnormal, +0.0), +0.0)
- self.assertEqualSign(math.nextafter(-smallest_subnormal, +0.0), -0.0)
- self.assertEqualSign(math.nextafter(smallest_subnormal, -0.0), +0.0)
- self.assertEqualSign(math.nextafter(-smallest_subnormal, -0.0), -0.0)
-
- # around infinity
- largest_normal = sys.float_info.max
- self.assertEqual(math.nextafter(INF, 0.0), largest_normal)
- self.assertEqual(math.nextafter(-INF, 0.0), -largest_normal)
- self.assertEqual(math.nextafter(largest_normal, INF), INF)
- self.assertEqual(math.nextafter(-largest_normal, -INF), -INF)
-
- # NaN
- self.assertTrue(math.isnan(math.nextafter(NAN, 1.0)))
- self.assertTrue(math.isnan(math.nextafter(1.0, NAN)))
- self.assertTrue(math.isnan(math.nextafter(NAN, NAN)))
-
- @requires_IEEE_754
- def test_ulp(self):
- self.assertEqual(math.ulp(1.0), sys.float_info.epsilon)
- # use int ** int rather than float ** int to not rely on pow() accuracy
- self.assertEqual(math.ulp(2 ** 52), 1.0)
- self.assertEqual(math.ulp(2 ** 53), 2.0)
- self.assertEqual(math.ulp(2 ** 64), 4096.0)
-
- # min and max
- self.assertEqual(math.ulp(0.0),
- sys.float_info.min * sys.float_info.epsilon)
- self.assertEqual(math.ulp(FLOAT_MAX),
- FLOAT_MAX - math.nextafter(FLOAT_MAX, -INF))
-
- # special cases
- self.assertEqual(math.ulp(INF), INF)
- self.assertTrue(math.isnan(math.ulp(math.nan)))
-
- # negative number: ulp(-x) == ulp(x)
- for x in (0.0, 1.0, 2 ** 52, 2 ** 64, INF):
- with self.subTest(x=x):
- self.assertEqual(math.ulp(-x), math.ulp(x))
-
-
-class IsCloseTests(unittest.TestCase):
- isclose = math.isclose # subclasses should override this
-
- def assertIsClose(self, a, b, *args, **kwargs):
- self.assertTrue(self.isclose(a, b, *args, **kwargs),
- msg="%s and %s should be close!" % (a, b))
-
- def assertIsNotClose(self, a, b, *args, **kwargs):
- self.assertFalse(self.isclose(a, b, *args, **kwargs),
- msg="%s and %s should not be close!" % (a, b))
-
- def assertAllClose(self, examples, *args, **kwargs):
- for a, b in examples:
- self.assertIsClose(a, b, *args, **kwargs)
-
- def assertAllNotClose(self, examples, *args, **kwargs):
- for a, b in examples:
- self.assertIsNotClose(a, b, *args, **kwargs)
-
- def test_negative_tolerances(self):
- # ValueError should be raised if either tolerance is less than zero
- with self.assertRaises(ValueError):
- self.assertIsClose(1, 1, rel_tol=-1e-100)
- with self.assertRaises(ValueError):
- self.assertIsClose(1, 1, rel_tol=1e-100, abs_tol=-1e10)
-
- def test_identical(self):
- # identical values must test as close
- identical_examples = [(2.0, 2.0),
- (0.1e200, 0.1e200),
- (1.123e-300, 1.123e-300),
- (12345, 12345.0),
- (0.0, -0.0),
- (345678, 345678)]
- self.assertAllClose(identical_examples, rel_tol=0.0, abs_tol=0.0)
-
- def test_eight_decimal_places(self):
- # examples that are close to 1e-8, but not 1e-9
- eight_decimal_places_examples = [(1e8, 1e8 + 1),
- (-1e-8, -1.000000009e-8),
- (1.12345678, 1.12345679)]
- self.assertAllClose(eight_decimal_places_examples, rel_tol=1e-8)
- self.assertAllNotClose(eight_decimal_places_examples, rel_tol=1e-9)
-
- def test_near_zero(self):
- # values close to zero
- near_zero_examples = [(1e-9, 0.0),
- (-1e-9, 0.0),
- (-1e-150, 0.0)]
- # these should not be close to any rel_tol
- self.assertAllNotClose(near_zero_examples, rel_tol=0.9)
- # these should be close to abs_tol=1e-8
- self.assertAllClose(near_zero_examples, abs_tol=1e-8)
-
- def test_identical_infinite(self):
- # these are close regardless of tolerance -- i.e. they are equal
- self.assertIsClose(INF, INF)
- self.assertIsClose(INF, INF, abs_tol=0.0)
- self.assertIsClose(NINF, NINF)
- self.assertIsClose(NINF, NINF, abs_tol=0.0)
-
- def test_inf_ninf_nan(self):
- # these should never be close (following IEEE 754 rules for equality)
- not_close_examples = [(NAN, NAN),
- (NAN, 1e-100),
- (1e-100, NAN),
- (INF, NAN),
- (NAN, INF),
- (INF, NINF),
- (INF, 1.0),
- (1.0, INF),
- (INF, 1e308),
- (1e308, INF)]
- # use largest reasonable tolerance
- self.assertAllNotClose(not_close_examples, abs_tol=0.999999999999999)
-
- def test_zero_tolerance(self):
- # test with zero tolerance
- zero_tolerance_close_examples = [(1.0, 1.0),
- (-3.4, -3.4),
- (-1e-300, -1e-300)]
- self.assertAllClose(zero_tolerance_close_examples, rel_tol=0.0)
-
- zero_tolerance_not_close_examples = [(1.0, 1.000000000000001),
- (0.99999999999999, 1.0),
- (1.0e200, .999999999999999e200)]
- self.assertAllNotClose(zero_tolerance_not_close_examples, rel_tol=0.0)
-
- def test_asymmetry(self):
- # test the asymmetry example from PEP 485
- self.assertAllClose([(9, 10), (10, 9)], rel_tol=0.1)
-
- def test_integers(self):
- # test with integer values
- integer_examples = [(100000001, 100000000),
- (123456789, 123456788)]
-
- self.assertAllClose(integer_examples, rel_tol=1e-8)
- self.assertAllNotClose(integer_examples, rel_tol=1e-9)
-
- def test_decimals(self):
- # test with Decimal values
- from decimal import Decimal
-
- decimal_examples = [(Decimal('1.00000001'), Decimal('1.0')),
- (Decimal('1.00000001e-20'), Decimal('1.0e-20')),
- (Decimal('1.00000001e-100'), Decimal('1.0e-100')),
- (Decimal('1.00000001e20'), Decimal('1.0e20'))]
- self.assertAllClose(decimal_examples, rel_tol=1e-8)
- self.assertAllNotClose(decimal_examples, rel_tol=1e-9)
-
- def test_fractions(self):
- # test with Fraction values
- from fractions import Fraction
-
- fraction_examples = [
- (Fraction(1, 100000000) + 1, Fraction(1)),
- (Fraction(100000001), Fraction(100000000)),
- (Fraction(10**8 + 1, 10**28), Fraction(1, 10**20))]
- self.assertAllClose(fraction_examples, rel_tol=1e-8)
- self.assertAllNotClose(fraction_examples, rel_tol=1e-9)
-
def testPerm(self):
perm = math.perm
factorial = math.factorial
@@ -2086,6 +1880,212 @@ class IsCloseTests(unittest.TestCase):
self.assertIs(type(comb(IntSubclass(5), IntSubclass(k))), int)
self.assertIs(type(comb(MyIndexable(5), MyIndexable(k))), int)
+ @requires_IEEE_754
+ def test_nextafter(self):
+ # around 2^52 and 2^63
+ self.assertEqual(math.nextafter(4503599627370496.0, -INF),
+ 4503599627370495.5)
+ self.assertEqual(math.nextafter(4503599627370496.0, INF),
+ 4503599627370497.0)
+ self.assertEqual(math.nextafter(9223372036854775808.0, 0.0),
+ 9223372036854774784.0)
+ self.assertEqual(math.nextafter(-9223372036854775808.0, 0.0),
+ -9223372036854774784.0)
+
+ # around 1.0
+ self.assertEqual(math.nextafter(1.0, -INF),
+ float.fromhex('0x1.fffffffffffffp-1'))
+ self.assertEqual(math.nextafter(1.0, INF),
+ float.fromhex('0x1.0000000000001p+0'))
+
+ # x == y: y is returned
+ self.assertEqual(math.nextafter(2.0, 2.0), 2.0)
+ self.assertEqualSign(math.nextafter(-0.0, +0.0), +0.0)
+ self.assertEqualSign(math.nextafter(+0.0, -0.0), -0.0)
+
+ # around 0.0
+ smallest_subnormal = sys.float_info.min * sys.float_info.epsilon
+ self.assertEqual(math.nextafter(+0.0, INF), smallest_subnormal)
+ self.assertEqual(math.nextafter(-0.0, INF), smallest_subnormal)
+ self.assertEqual(math.nextafter(+0.0, -INF), -smallest_subnormal)
+ self.assertEqual(math.nextafter(-0.0, -INF), -smallest_subnormal)
+ self.assertEqualSign(math.nextafter(smallest_subnormal, +0.0), +0.0)
+ self.assertEqualSign(math.nextafter(-smallest_subnormal, +0.0), -0.0)
+ self.assertEqualSign(math.nextafter(smallest_subnormal, -0.0), +0.0)
+ self.assertEqualSign(math.nextafter(-smallest_subnormal, -0.0), -0.0)
+
+ # around infinity
+ largest_normal = sys.float_info.max
+ self.assertEqual(math.nextafter(INF, 0.0), largest_normal)
+ self.assertEqual(math.nextafter(-INF, 0.0), -largest_normal)
+ self.assertEqual(math.nextafter(largest_normal, INF), INF)
+ self.assertEqual(math.nextafter(-largest_normal, -INF), -INF)
+
+ # NaN
+ self.assertIsNaN(math.nextafter(NAN, 1.0))
+ self.assertIsNaN(math.nextafter(1.0, NAN))
+ self.assertIsNaN(math.nextafter(NAN, NAN))
+
+ @requires_IEEE_754
+ def test_ulp(self):
+ self.assertEqual(math.ulp(1.0), sys.float_info.epsilon)
+ # use int ** int rather than float ** int to not rely on pow() accuracy
+ self.assertEqual(math.ulp(2 ** 52), 1.0)
+ self.assertEqual(math.ulp(2 ** 53), 2.0)
+ self.assertEqual(math.ulp(2 ** 64), 4096.0)
+
+ # min and max
+ self.assertEqual(math.ulp(0.0),
+ sys.float_info.min * sys.float_info.epsilon)
+ self.assertEqual(math.ulp(FLOAT_MAX),
+ FLOAT_MAX - math.nextafter(FLOAT_MAX, -INF))
+
+ # special cases
+ self.assertEqual(math.ulp(INF), INF)
+ self.assertIsNaN(math.ulp(math.nan))
+
+ # negative number: ulp(-x) == ulp(x)
+ for x in (0.0, 1.0, 2 ** 52, 2 ** 64, INF):
+ with self.subTest(x=x):
+ self.assertEqual(math.ulp(-x), math.ulp(x))
+
+ # Custom assertions.
+
+ def assertIsNaN(self, value):
+ if not math.isnan(value):
+ self.fail("Expected a NaN, got {!r}.".format(value))
+
+ def assertEqualSign(self, x, y):
+ """Similar to assertEqual(), but compare also the sign with copysign().
+
+ Function useful to compare signed zeros.
+ """
+ self.assertEqual(x, y)
+ self.assertEqual(math.copysign(1.0, x), math.copysign(1.0, y))
+
+
+class IsCloseTests(unittest.TestCase):
+ isclose = math.isclose # subclasses should override this
+
+ def assertIsClose(self, a, b, *args, **kwargs):
+ self.assertTrue(self.isclose(a, b, *args, **kwargs),
+ msg="%s and %s should be close!" % (a, b))
+
+ def assertIsNotClose(self, a, b, *args, **kwargs):
+ self.assertFalse(self.isclose(a, b, *args, **kwargs),
+ msg="%s and %s should not be close!" % (a, b))
+
+ def assertAllClose(self, examples, *args, **kwargs):
+ for a, b in examples:
+ self.assertIsClose(a, b, *args, **kwargs)
+
+ def assertAllNotClose(self, examples, *args, **kwargs):
+ for a, b in examples:
+ self.assertIsNotClose(a, b, *args, **kwargs)
+
+ def test_negative_tolerances(self):
+ # ValueError should be raised if either tolerance is less than zero
+ with self.assertRaises(ValueError):
+ self.assertIsClose(1, 1, rel_tol=-1e-100)
+ with self.assertRaises(ValueError):
+ self.assertIsClose(1, 1, rel_tol=1e-100, abs_tol=-1e10)
+
+ def test_identical(self):
+ # identical values must test as close
+ identical_examples = [(2.0, 2.0),
+ (0.1e200, 0.1e200),
+ (1.123e-300, 1.123e-300),
+ (12345, 12345.0),
+ (0.0, -0.0),
+ (345678, 345678)]
+ self.assertAllClose(identical_examples, rel_tol=0.0, abs_tol=0.0)
+
+ def test_eight_decimal_places(self):
+ # examples that are close to 1e-8, but not 1e-9
+ eight_decimal_places_examples = [(1e8, 1e8 + 1),
+ (-1e-8, -1.000000009e-8),
+ (1.12345678, 1.12345679)]
+ self.assertAllClose(eight_decimal_places_examples, rel_tol=1e-8)
+ self.assertAllNotClose(eight_decimal_places_examples, rel_tol=1e-9)
+
+ def test_near_zero(self):
+ # values close to zero
+ near_zero_examples = [(1e-9, 0.0),
+ (-1e-9, 0.0),
+ (-1e-150, 0.0)]
+ # these should not be close to any rel_tol
+ self.assertAllNotClose(near_zero_examples, rel_tol=0.9)
+ # these should be close to abs_tol=1e-8
+ self.assertAllClose(near_zero_examples, abs_tol=1e-8)
+
+ def test_identical_infinite(self):
+ # these are close regardless of tolerance -- i.e. they are equal
+ self.assertIsClose(INF, INF)
+ self.assertIsClose(INF, INF, abs_tol=0.0)
+ self.assertIsClose(NINF, NINF)
+ self.assertIsClose(NINF, NINF, abs_tol=0.0)
+
+ def test_inf_ninf_nan(self):
+ # these should never be close (following IEEE 754 rules for equality)
+ not_close_examples = [(NAN, NAN),
+ (NAN, 1e-100),
+ (1e-100, NAN),
+ (INF, NAN),
+ (NAN, INF),
+ (INF, NINF),
+ (INF, 1.0),
+ (1.0, INF),
+ (INF, 1e308),
+ (1e308, INF)]
+ # use largest reasonable tolerance
+ self.assertAllNotClose(not_close_examples, abs_tol=0.999999999999999)
+
+ def test_zero_tolerance(self):
+ # test with zero tolerance
+ zero_tolerance_close_examples = [(1.0, 1.0),
+ (-3.4, -3.4),
+ (-1e-300, -1e-300)]
+ self.assertAllClose(zero_tolerance_close_examples, rel_tol=0.0)
+
+ zero_tolerance_not_close_examples = [(1.0, 1.000000000000001),
+ (0.99999999999999, 1.0),
+ (1.0e200, .999999999999999e200)]
+ self.assertAllNotClose(zero_tolerance_not_close_examples, rel_tol=0.0)
+
+ def test_asymmetry(self):
+ # test the asymmetry example from PEP 485
+ self.assertAllClose([(9, 10), (10, 9)], rel_tol=0.1)
+
+ def test_integers(self):
+ # test with integer values
+ integer_examples = [(100000001, 100000000),
+ (123456789, 123456788)]
+
+ self.assertAllClose(integer_examples, rel_tol=1e-8)
+ self.assertAllNotClose(integer_examples, rel_tol=1e-9)
+
+ def test_decimals(self):
+ # test with Decimal values
+ from decimal import Decimal
+
+ decimal_examples = [(Decimal('1.00000001'), Decimal('1.0')),
+ (Decimal('1.00000001e-20'), Decimal('1.0e-20')),
+ (Decimal('1.00000001e-100'), Decimal('1.0e-100')),
+ (Decimal('1.00000001e20'), Decimal('1.0e20'))]
+ self.assertAllClose(decimal_examples, rel_tol=1e-8)
+ self.assertAllNotClose(decimal_examples, rel_tol=1e-9)
+
+ def test_fractions(self):
+ # test with Fraction values
+ from fractions import Fraction
+
+ fraction_examples = [
+ (Fraction(1, 100000000) + 1, Fraction(1)),
+ (Fraction(100000001), Fraction(100000000)),
+ (Fraction(10**8 + 1, 10**28), Fraction(1, 10**20))]
+ self.assertAllClose(fraction_examples, rel_tol=1e-8)
+ self.assertAllNotClose(fraction_examples, rel_tol=1e-9)
+
def test_main():
from doctest import DocFileSuite
From 56cd3710a1ea3ba872d345ea1bebc86ed08bc8b8 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Tue, 21 Jan 2020 16:13:09 +0100
Subject: [PATCH 168/380] bpo-39413: Implement os.unsetenv() on Windows
(GH-18104)
The os.unsetenv() function is now also available on Windows.
It is implemented with SetEnvironmentVariableW(name, NULL).
---
Doc/library/os.rst | 3 ++
Doc/whatsnew/3.9.rst | 3 ++
Lib/test/test_os.py | 11 ++---
.../2020-01-21-15-48-35.bpo-39413.7XYDM8.rst | 1 +
Modules/clinic/posixmodule.c.h | 42 ++++++++++++++++--
Modules/posixmodule.c | 44 ++++++++++++++++++-
6 files changed, 92 insertions(+), 12 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-21-15-48-35.bpo-39413.7XYDM8.rst
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index 4fec647828e..de3e5603e10 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -645,6 +645,9 @@ process and user.
.. availability:: most flavors of Unix, Windows.
+ .. versionchanged:: 3.9
+ The function is now also available on Windows.
+
.. _os-newstreams:
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index f40685c9327..ab27c488ea3 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -216,6 +216,9 @@ Exposed the Linux-specific :func:`os.pidfd_open` (:issue:`38692`) and
:data:`os.P_PIDFD` (:issue:`38713`) for process management with file
descriptors.
+The :func:`os.unsetenv` function is now also available on Windows.
+(Contributed by Victor Stinner in :issue:`39413`.)
+
poplib
------
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 82c441c2048..50535da0a2b 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -956,14 +956,9 @@ class EnvironTests(mapping_tests.BasicTestMappingProtocol):
# On OS X < 10.6, unsetenv() doesn't return a value (bpo-13415).
@support.requires_mac_ver(10, 6)
def test_unset_error(self):
- if sys.platform == "win32":
- # an environment variable is limited to 32,767 characters
- key = 'x' * 50000
- self.assertRaises(ValueError, os.environ.__delitem__, key)
- else:
- # "=" is not allowed in a variable name
- key = 'key='
- self.assertRaises(OSError, os.environ.__delitem__, key)
+ # "=" is not allowed in a variable name
+ key = 'key='
+ self.assertRaises(OSError, os.environ.__delitem__, key)
def test_key_type(self):
missing = 'missingkey'
diff --git a/Misc/NEWS.d/next/Library/2020-01-21-15-48-35.bpo-39413.7XYDM8.rst b/Misc/NEWS.d/next/Library/2020-01-21-15-48-35.bpo-39413.7XYDM8.rst
new file mode 100644
index 00000000000..a185ab5efe2
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-21-15-48-35.bpo-39413.7XYDM8.rst
@@ -0,0 +1 @@
+The :func:`os.unsetenv` function is now also available on Windows.
diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h
index aa4756a620a..661d91afb7e 100644
--- a/Modules/clinic/posixmodule.c.h
+++ b/Modules/clinic/posixmodule.c.h
@@ -6125,7 +6125,43 @@ exit:
#endif /* defined(HAVE_PUTENV) && !defined(MS_WINDOWS) */
-#if defined(HAVE_UNSETENV)
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os_unsetenv__doc__,
+"unsetenv($module, name, /)\n"
+"--\n"
+"\n"
+"Delete an environment variable.");
+
+#define OS_UNSETENV_METHODDEF \
+ {"unsetenv", (PyCFunction)os_unsetenv, METH_O, os_unsetenv__doc__},
+
+static PyObject *
+os_unsetenv_impl(PyObject *module, PyObject *name);
+
+static PyObject *
+os_unsetenv(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *name;
+
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("unsetenv", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ name = arg;
+ return_value = os_unsetenv_impl(module, name);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if (defined(HAVE_UNSETENV) && !defined(MS_WINDOWS))
PyDoc_STRVAR(os_unsetenv__doc__,
"unsetenv($module, name, /)\n"
@@ -6157,7 +6193,7 @@ exit:
return return_value;
}
-#endif /* defined(HAVE_UNSETENV) */
+#endif /* (defined(HAVE_UNSETENV) && !defined(MS_WINDOWS)) */
PyDoc_STRVAR(os_strerror__doc__,
"strerror($module, code, /)\n"
@@ -8773,4 +8809,4 @@ exit:
#ifndef OS__REMOVE_DLL_DIRECTORY_METHODDEF
#define OS__REMOVE_DLL_DIRECTORY_METHODDEF
#endif /* !defined(OS__REMOVE_DLL_DIRECTORY_METHODDEF) */
-/*[clinic end generated code: output=51ba5b9536420cea input=a9049054013a1b77]*/
+/*[clinic end generated code: output=6e739a2715712e88 input=a9049054013a1b77]*/
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 322c2159812..d2047d9c2ac 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -10163,7 +10163,49 @@ os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
#endif /* HAVE_PUTENV */
-#ifdef HAVE_UNSETENV
+#ifdef MS_WINDOWS
+/*[clinic input]
+os.unsetenv
+ name: unicode
+ /
+
+Delete an environment variable.
+[clinic start generated code]*/
+
+static PyObject *
+os_unsetenv_impl(PyObject *module, PyObject *name)
+/*[clinic end generated code: output=54c4137ab1834f02 input=4d6a1747cc526d2f]*/
+{
+ /* PyUnicode_AsWideCharString() rejects embedded null characters */
+ wchar_t *name_str = PyUnicode_AsWideCharString(name, NULL);
+ if (name_str == NULL) {
+ return NULL;
+ }
+
+ BOOL ok = SetEnvironmentVariableW(name_str, NULL);
+ PyMem_Free(name_str);
+
+ if (!ok) {
+ return PyErr_SetFromWindowsErr(0);
+ }
+
+ /* Remove the key from posix_putenv_garbage;
+ * this will cause it to be collected. This has to
+ * happen after the real unsetenv() call because the
+ * old value was still accessible until then.
+ */
+ if (PyDict_DelItem(_posixstate(module)->posix_putenv_garbage, name)) {
+ /* really not much we can do; just leak */
+ if (!PyErr_ExceptionMatches(PyExc_KeyError)) {
+ return NULL;
+ }
+ PyErr_Clear();
+ }
+
+ Py_RETURN_NONE;
+}
+/* repeat !defined(MS_WINDOWS) to workaround an Argument Clinic issue */
+#elif defined(HAVE_UNSETENV) && !defined(MS_WINDOWS)
/*[clinic input]
os.unsetenv
name: FSConverter
From 623ed6171eae35af7fd2e804dfd9c832c05c5d48 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Tue, 21 Jan 2020 19:25:32 +0100
Subject: [PATCH 169/380] bpo-39406: Add PY_PUTENV_DICT macro to posixmodule.c
(GH-18106)
Rename posix_putenv_garbage to putenv_dict.
---
Modules/posixmodule.c | 52 ++++++++++++++++++++++++++++++-------------
1 file changed, 37 insertions(+), 15 deletions(-)
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index d2047d9c2ac..5a0c8a311a7 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -819,9 +819,19 @@ dir_fd_converter(PyObject *o, void *p)
}
}
+#ifdef HAVE_PUTENV
+# define PY_PUTENV_DICT
+#endif
+
typedef struct {
PyObject *billion;
- PyObject *posix_putenv_garbage;
+#ifdef PY_PUTENV_DICT
+ /* putenv() and _wputenv() requires that the caller manages the environment
+ variable memory. Use a Python dictionary for that: name => env, where
+ env is a string like "name=value". On Windows, dict keys and values are
+ Unicode strings. On Unix, they are bytes strings. */
+ PyObject *putenv_dict;
+#endif
PyObject *DirEntryType;
PyObject *ScandirIteratorType;
#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
@@ -2105,7 +2115,9 @@ static int
_posix_clear(PyObject *module)
{
Py_CLEAR(_posixstate(module)->billion);
- Py_CLEAR(_posixstate(module)->posix_putenv_garbage);
+#ifdef PY_PUTENV_DICT
+ Py_CLEAR(_posixstate(module)->putenv_dict);
+#endif
Py_CLEAR(_posixstate(module)->DirEntryType);
Py_CLEAR(_posixstate(module)->ScandirIteratorType);
#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
@@ -2130,7 +2142,9 @@ static int
_posix_traverse(PyObject *module, visitproc visit, void *arg)
{
Py_VISIT(_posixstate(module)->billion);
- Py_VISIT(_posixstate(module)->posix_putenv_garbage);
+#ifdef PY_PUTENV_DICT
+ Py_VISIT(_posixstate(module)->putenv_dict);
+#endif
Py_VISIT(_posixstate(module)->DirEntryType);
Py_VISIT(_posixstate(module)->ScandirIteratorType);
#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
@@ -10047,23 +10061,26 @@ os_posix_fadvise_impl(PyObject *module, int fd, Py_off_t offset,
}
#endif /* HAVE_POSIX_FADVISE && !POSIX_FADVISE_AIX_BUG */
-#ifdef HAVE_PUTENV
+#ifdef PY_PUTENV_DICT
static void
-posix_putenv_garbage_setitem(PyObject *name, PyObject *value)
+posix_putenv_dict_setitem(PyObject *name, PyObject *value)
{
- /* Install the first arg and newstr in posix_putenv_garbage;
+ /* Install the first arg and newstr in putenv_dict;
* this will cause previous value to be collected. This has to
* happen after the real putenv() call because the old value
* was still accessible until then. */
- if (PyDict_SetItem(_posixstate_global->posix_putenv_garbage, name, value))
+ if (PyDict_SetItem(_posixstate_global->putenv_dict, name, value))
/* really not much we can do; just leak */
PyErr_Clear();
else
Py_DECREF(value);
}
+#endif /* PY_PUTENV_DICT */
+#ifdef HAVE_PUTENV
+
#ifdef MS_WINDOWS
/*[clinic input]
os.putenv
@@ -10114,7 +10131,7 @@ os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
goto error;
}
- posix_putenv_garbage_setitem(name, unicode);
+ posix_putenv_dict_setitem(name, unicode);
Py_RETURN_NONE;
error:
@@ -10156,7 +10173,7 @@ os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
return posix_error();
}
- posix_putenv_garbage_setitem(name, bytes);
+ posix_putenv_dict_setitem(name, bytes);
Py_RETURN_NONE;
}
#endif /* MS_WINDOWS */
@@ -10189,18 +10206,20 @@ os_unsetenv_impl(PyObject *module, PyObject *name)
return PyErr_SetFromWindowsErr(0);
}
- /* Remove the key from posix_putenv_garbage;
+#ifdef PY_PUTENV_DICT
+ /* Remove the key from putenv_dict;
* this will cause it to be collected. This has to
* happen after the real unsetenv() call because the
* old value was still accessible until then.
*/
- if (PyDict_DelItem(_posixstate(module)->posix_putenv_garbage, name)) {
+ if (PyDict_DelItem(_posixstate(module)->putenv_dict, name)) {
/* really not much we can do; just leak */
if (!PyErr_ExceptionMatches(PyExc_KeyError)) {
return NULL;
}
PyErr_Clear();
}
+#endif
Py_RETURN_NONE;
}
@@ -10230,18 +10249,21 @@ os_unsetenv_impl(PyObject *module, PyObject *name)
return posix_error();
#endif
- /* Remove the key from posix_putenv_garbage;
+#ifdef PY_PUTENV_DICT
+ /* Remove the key from putenv_dict;
* this will cause it to be collected. This has to
* happen after the real unsetenv() call because the
* old value was still accessible until then.
*/
- if (PyDict_DelItem(_posixstate(module)->posix_putenv_garbage, name)) {
+ if (PyDict_DelItem(_posixstate(module)->putenv_dict, name)) {
/* really not much we can do; just leak */
if (!PyErr_ExceptionMatches(PyExc_KeyError)) {
return NULL;
}
PyErr_Clear();
}
+#endif
+
Py_RETURN_NONE;
}
#endif /* HAVE_UNSETENV */
@@ -14538,10 +14560,10 @@ INITFUNC(void)
Py_INCREF(PyExc_OSError);
PyModule_AddObject(m, "error", PyExc_OSError);
-#ifdef HAVE_PUTENV
+#ifdef PY_PUTENV_DICT
/* Save putenv() parameters as values here, so we can collect them when they
* get re-set with another call for the same key. */
- _posixstate(m)->posix_putenv_garbage = PyDict_New();
+ _posixstate(m)->putenv_dict = PyDict_New();
#endif
#if defined(HAVE_WAITID) && !defined(__APPLE__)
From 47be7d0108b4021ede111dbd15a095c725be46b7 Mon Sep 17 00:00:00 2001
From: Keith Erskine
Date: Tue, 21 Jan 2020 13:14:13 -0600
Subject: [PATCH 170/380] PyLong_AsLongLong() docs should say 'long long'
(#18082)
---
Doc/c-api/long.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Doc/c-api/long.rst b/Doc/c-api/long.rst
index c3601045920..c5c2aa60dcc 100644
--- a/Doc/c-api/long.rst
+++ b/Doc/c-api/long.rst
@@ -177,7 +177,7 @@ distinguished from a number. Use :c:func:`PyErr_Occurred` to disambiguate.
:c:type:`PyLongObject`.
Raise :exc:`OverflowError` if the value of *obj* is out of range for a
- :c:type:`long`.
+ :c:type:`long long`.
Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate.
From 0d5eac8c327251f8edde5261cee43975d81311f6 Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Wed, 22 Jan 2020 11:49:30 +0900
Subject: [PATCH 171/380] closes bpo-39415: Remove unused codes from
longobject.c complexobject.c floatobject.c. (GH-18105)
---
Objects/complexobject.c | 20 --------------------
Objects/floatobject.c | 37 -------------------------------------
Objects/longobject.c | 11 -----------
3 files changed, 68 deletions(-)
diff --git a/Objects/complexobject.c b/Objects/complexobject.c
index 367752db78f..f1b76673efd 100644
--- a/Objects/complexobject.c
+++ b/Objects/complexobject.c
@@ -731,29 +731,9 @@ complex__format__(PyObject* self, PyObject* args)
return _PyUnicodeWriter_Finish(&writer);
}
-#if 0
-static PyObject *
-complex_is_finite(PyObject *self)
-{
- Py_complex c;
- c = ((PyComplexObject *)self)->cval;
- return PyBool_FromLong((long)(Py_IS_FINITE(c.real) &&
- Py_IS_FINITE(c.imag)));
-}
-
-PyDoc_STRVAR(complex_is_finite_doc,
-"complex.is_finite() -> bool\n"
-"\n"
-"Returns True if the real and the imaginary part is finite.");
-#endif
-
static PyMethodDef complex_methods[] = {
{"conjugate", (PyCFunction)complex_conjugate, METH_NOARGS,
complex_conjugate_doc},
-#if 0
- {"is_finite", (PyCFunction)complex_is_finite, METH_NOARGS,
- complex_is_finite_doc},
-#endif
{"__getnewargs__", (PyCFunction)complex_getnewargs, METH_NOARGS},
{"__format__", (PyCFunction)complex__format__,
METH_VARARGS, complex__format__doc},
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index 4fc412b43f7..d67f17abb5c 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -843,35 +843,6 @@ float_is_integer_impl(PyObject *self)
return o;
}
-#if 0
-static PyObject *
-float_is_inf(PyObject *v)
-{
- double x = PyFloat_AsDouble(v);
- if (x == -1.0 && PyErr_Occurred())
- return NULL;
- return PyBool_FromLong((long)Py_IS_INFINITY(x));
-}
-
-static PyObject *
-float_is_nan(PyObject *v)
-{
- double x = PyFloat_AsDouble(v);
- if (x == -1.0 && PyErr_Occurred())
- return NULL;
- return PyBool_FromLong((long)Py_IS_NAN(x));
-}
-
-static PyObject *
-float_is_finite(PyObject *v)
-{
- double x = PyFloat_AsDouble(v);
- if (x == -1.0 && PyErr_Occurred())
- return NULL;
- return PyBool_FromLong((long)Py_IS_FINITE(x));
-}
-#endif
-
/*[clinic input]
float.__trunc__
@@ -1863,14 +1834,6 @@ static PyMethodDef float_methods[] = {
FLOAT_FROMHEX_METHODDEF
FLOAT_HEX_METHODDEF
FLOAT_IS_INTEGER_METHODDEF
-#if 0
- {"is_inf", (PyCFunction)float_is_inf, METH_NOARGS,
- "Return True if the float is positive or negative infinite."},
- {"is_finite", (PyCFunction)float_is_finite, METH_NOARGS,
- "Return True if the float is finite, neither infinite nor NaN."},
- {"is_nan", (PyCFunction)float_is_nan, METH_NOARGS,
- "Return True if the float is not a number (NaN)."},
-#endif
FLOAT___GETNEWARGS___METHODDEF
FLOAT___GETFORMAT___METHODDEF
FLOAT___SET_FORMAT___METHODDEF
diff --git a/Objects/longobject.c b/Objects/longobject.c
index b672ae42018..124b837d008 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -5411,13 +5411,6 @@ int_bit_length_impl(PyObject *self)
return NULL;
}
-#if 0
-static PyObject *
-long_is_finite(PyObject *v)
-{
- Py_RETURN_TRUE;
-}
-#endif
/*[clinic input]
int.as_integer_ratio
@@ -5574,10 +5567,6 @@ static PyMethodDef long_methods[] = {
{"conjugate", long_long_meth, METH_NOARGS,
"Returns self, the complex conjugate of any int."},
INT_BIT_LENGTH_METHODDEF
-#if 0
- {"is_finite", (PyCFunction)long_is_finite, METH_NOARGS,
- "Returns always True."},
-#endif
INT_TO_BYTES_METHODDEF
INT_FROM_BYTES_METHODDEF
INT_AS_INTEGER_RATIO_METHODDEF
From 5bbac8cbdf140ebce446ea4e7db2b20a5d7b8402 Mon Sep 17 00:00:00 2001
From: Inada Naoki
Date: Wed, 22 Jan 2020 19:01:24 +0900
Subject: [PATCH 172/380] bpo-39377: json: Update doc about the encoding
option. (GH-18076)
Co-authored-by: Kyle Stanley
---
Doc/library/json.rst | 9 ++++-----
Doc/whatsnew/3.9.rst | 10 +++++++---
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/Doc/library/json.rst b/Doc/library/json.rst
index cfe68c9dd91..b923c8e1670 100644
--- a/Doc/library/json.rst
+++ b/Doc/library/json.rst
@@ -283,19 +283,18 @@ Basic Usage
instance containing a JSON document) to a Python object using this
:ref:`conversion table `.
- The other arguments have the same meaning as in :func:`load`, except
- *encoding* which is ignored and deprecated since Python 3.1.
+ The other arguments have the same meaning as in :func:`load`.
If the data being deserialized is not a valid JSON document, a
:exc:`JSONDecodeError` will be raised.
- .. deprecated-removed:: 3.1 3.9
- *encoding* keyword argument.
-
.. versionchanged:: 3.6
*s* can now be of type :class:`bytes` or :class:`bytearray`. The
input encoding should be UTF-8, UTF-16 or UTF-32.
+ .. versionchanged:: 3.9
+ The keyword argument *encoding* has been removed.
+
Encoders and Decoders
---------------------
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index ab27c488ea3..00341ef8019 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -424,11 +424,15 @@ Removed
(Contributed by Victor Stinner in :issue:`39350`.)
* The *buffering* parameter of :class:`bz2.BZ2File` has been removed. Since
- Python 3.0, it was ignored and using it was emitting
- :exc:`DeprecationWarning`. Pass an open file object to control how the file
- is opened.
+ Python 3.0, it was ignored and using it emitted a :exc:`DeprecationWarning`.
+ Pass an open file object to control how the file is opened.
(Contributed by Victor Stinner in :issue:`39357`.)
+* The *encoding* parameter of :func:`json.loads` has been removed.
+ As of Python 3.1, it was deprecated and ignored; using it has emitted a
+ :exc:`DeprecationWarning` since Python 3.8.
+ (Contributed by Inada Naoki in :issue:`39377`)
+
Porting to Python 3.9
=====================
From 14d80d0b605d8b148e14458e4c1853a940071462 Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Thu, 23 Jan 2020 02:36:54 +0900
Subject: [PATCH 173/380] bpo-39425: Fix list.count performance regression
(GH-18119)
https://bugs.python.org/issue39425
Automerge-Triggered-By: @pablogsal
---
Objects/listobject.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Objects/listobject.c b/Objects/listobject.c
index bc8425cae63..a4e90dbf90c 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -2584,6 +2584,10 @@ list_count(PyListObject *self, PyObject *value)
for (i = 0; i < Py_SIZE(self); i++) {
PyObject *obj = self->ob_item[i];
+ if (obj == value) {
+ count++;
+ continue;
+ }
Py_INCREF(obj);
int cmp = PyObject_RichCompareBool(obj, value, Py_EQ);
Py_DECREF(obj);
From beea26b57e8c80f1eff0f967a0f9d083a7dc3d66 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Wed, 22 Jan 2020 20:44:22 +0100
Subject: [PATCH 174/380] bpo-39353: Deprecate the binhex module (GH-18025)
Deprecate binhex4 and hexbin4 standards. Deprecate the binhex module
and the following binascii functions:
* b2a_hqx(), a2b_hqx()
* rlecode_hqx(), rledecode_hqx()
* crc_hqx()
---
Doc/library/binascii.rst | 10 ++++
Doc/library/binhex.rst | 2 +
Doc/whatsnew/3.9.rst | 10 ++++
Lib/binhex.py | 49 ++++++++++++++-----
Lib/test/test_binascii.py | 22 +++++++++
Lib/test/test_binhex.py | 4 +-
.../2020-01-16-10-21-48.bpo-39353.ntp7Ql.rst | 4 ++
Modules/binascii.c | 33 +++++++++++--
Modules/clinic/binascii.c.h | 11 ++---
9 files changed, 120 insertions(+), 25 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-16-10-21-48.bpo-39353.ntp7Ql.rst
diff --git a/Doc/library/binascii.rst b/Doc/library/binascii.rst
index 98d8679fa3d..aa2a27084c3 100644
--- a/Doc/library/binascii.rst
+++ b/Doc/library/binascii.rst
@@ -92,6 +92,8 @@ The :mod:`binascii` module defines the following functions:
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)
@@ -104,11 +106,15 @@ The :mod:`binascii` module defines the following functions:
.. 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)
@@ -116,6 +122,8 @@ The :mod:`binascii` module defines the following functions:
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)
@@ -124,6 +132,8 @@ The :mod:`binascii` module defines the following functions:
*x*:sup:`16` + *x*:sup:`12` + *x*:sup:`5` + 1, often represented as
0x1021. This CRC is used in the binhex4 format.
+ .. deprecated:: 3.9
+
.. function:: crc32(data[, value])
diff --git a/Doc/library/binhex.rst b/Doc/library/binhex.rst
index 2966e0dbfbc..7de6a663762 100644
--- a/Doc/library/binhex.rst
+++ b/Doc/library/binhex.rst
@@ -6,6 +6,8 @@
**Source code:** :source:`Lib/binhex.py`
+.. deprecated:: 3.9
+
--------------
This module encodes and decodes files in binhex4 format, a format allowing
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 00341ef8019..0e82ff0695d 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -353,6 +353,16 @@ Deprecated
deprecated and will be removed in version 3.11.
(Contributed by Yury Selivanov and Kyle Stanley in :issue:`34790`.)
+* binhex4 and hexbin4 standards are now deprecated. The :`binhex` module
+ and the following :mod:`binascii` functions are now deprecated:
+
+ * :func:`~binascii.b2a_hqx`, :func:`~binascii.a2b_hqx`
+ * :func:`~binascii.rlecode_hqx`, :func:`~binascii.rledecode_hqx`
+ * :func:`~binascii.crc_hqx`
+
+ (Contributed by Victor Stinner in :issue:`39353`.)
+
+
Removed
=======
diff --git a/Lib/binhex.py b/Lib/binhex.py
index 56b5f852c00..6ff38dd8229 100644
--- a/Lib/binhex.py
+++ b/Lib/binhex.py
@@ -21,10 +21,16 @@ hexbin(inputfilename, outputfilename)
# 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 binascii
+import warnings
+
+warnings.warn('the binhex module is deprecated', DeprecationWarning,
+ stacklevel=2)
+
__all__ = ["binhex","hexbin","Error"]
@@ -76,6 +82,16 @@ class openrsrc:
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.
+@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"""
@@ -93,7 +109,8 @@ class _Hqxcoderengine:
self.data = self.data[todo:]
if not data:
return
- self.hqxdata = self.hqxdata + binascii.b2a_hqx(data)
+ with _ignore_deprecation_warning():
+ self.hqxdata = self.hqxdata + binascii.b2a_hqx(data)
self._flush(0)
def _flush(self, force):
@@ -109,7 +126,8 @@ class _Hqxcoderengine:
def close(self):
if self.data:
- self.hqxdata = self.hqxdata + binascii.b2a_hqx(self.data)
+ with _ignore_deprecation_warning():
+ self.hqxdata = self.hqxdata + binascii.b2a_hqx(self.data)
self._flush(1)
self.ofp.close()
del self.ofp
@@ -125,13 +143,15 @@ class _Rlecoderengine:
self.data = self.data + data
if len(self.data) < REASONABLY_LARGE:
return
- rledata = binascii.rlecode_hqx(self.data)
+ with _ignore_deprecation_warning():
+ rledata = binascii.rlecode_hqx(self.data)
self.ofp.write(rledata)
self.data = b''
def close(self):
if self.data:
- rledata = binascii.rlecode_hqx(self.data)
+ with _ignore_deprecation_warning():
+ rledata = binascii.rlecode_hqx(self.data)
self.ofp.write(rledata)
self.ofp.close()
del self.ofp
@@ -180,7 +200,8 @@ class BinHex:
self._writecrc()
def _write(self, data):
- self.crc = binascii.crc_hqx(data, self.crc)
+ with _ignore_deprecation_warning():
+ self.crc = binascii.crc_hqx(data, self.crc)
self.ofp.write(data)
def _writecrc(self):
@@ -276,7 +297,8 @@ class _Hqxdecoderengine:
#
while True:
try:
- decdatacur, self.eof = binascii.a2b_hqx(data)
+ with _ignore_deprecation_warning():
+ decdatacur, self.eof = binascii.a2b_hqx(data)
break
except binascii.Incomplete:
pass
@@ -312,8 +334,9 @@ class _Rledecoderengine:
def _fill(self, wtd):
self.pre_buffer = self.pre_buffer + self.ifp.read(wtd + 4)
if self.ifp.eof:
- self.post_buffer = self.post_buffer + \
- binascii.rledecode_hqx(self.pre_buffer)
+ with _ignore_deprecation_warning():
+ self.post_buffer = self.post_buffer + \
+ binascii.rledecode_hqx(self.pre_buffer)
self.pre_buffer = b''
return
@@ -340,8 +363,9 @@ class _Rledecoderengine:
else:
mark = mark - 1
- self.post_buffer = self.post_buffer + \
- binascii.rledecode_hqx(self.pre_buffer[:mark])
+ 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):
@@ -372,7 +396,8 @@ class HexBin:
def _read(self, len):
data = self.ifp.read(len)
- self.crc = binascii.crc_hqx(data, self.crc)
+ with _ignore_deprecation_warning():
+ self.crc = binascii.crc_hqx(data, self.crc)
return data
def _checkcrc(self):
diff --git a/Lib/test/test_binascii.py b/Lib/test/test_binascii.py
index 08de5c9fc7c..649edbe2954 100644
--- a/Lib/test/test_binascii.py
+++ b/Lib/test/test_binascii.py
@@ -4,6 +4,7 @@ import unittest
import binascii
import array
import re
+from test import support
# Note: "*_hex" functions are aliases for "(un)hexlify"
b2a_functions = ['b2a_base64', 'b2a_hex', 'b2a_hqx', 'b2a_qp', 'b2a_uu',
@@ -36,6 +37,7 @@ class BinASCIITest(unittest.TestCase):
self.assertTrue(hasattr(getattr(binascii, name), '__call__'))
self.assertRaises(TypeError, getattr(binascii, name))
+ @support.ignore_warnings(category=DeprecationWarning)
def test_returned_value(self):
# Limit to the minimum of all limits (b2a_uu)
MAX_ALL = 45
@@ -179,6 +181,7 @@ class BinASCIITest(unittest.TestCase):
with self.assertRaises(TypeError):
binascii.b2a_uu(b"", True)
+ @support.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)
@@ -198,6 +201,7 @@ class BinASCIITest(unittest.TestCase):
self.assertRaises(TypeError, binascii.crc32)
+ @support.ignore_warnings(category=DeprecationWarning)
def test_hqx(self):
# Perform binhex4 style RLE-compression
# Then calculate the hexbin4 binary-to-ASCII translation
@@ -208,6 +212,7 @@ class BinASCIITest(unittest.TestCase):
res = binascii.rledecode_hqx(b)
self.assertEqual(res, self.rawdata)
+ @support.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)
@@ -354,6 +359,7 @@ class BinASCIITest(unittest.TestCase):
self.assertEqual(b2a_qp(type2test(b'a.\n')), b'a.\n')
self.assertEqual(b2a_qp(type2test(b'.a')[:-1]), b'=2E')
+ @support.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'')
@@ -378,6 +384,7 @@ class BinASCIITest(unittest.TestCase):
# crc_hqx needs 2 arguments
self.assertRaises(TypeError, binascii.crc_hqx, "test", 0)
+ @support.ignore_warnings(category=DeprecationWarning)
def test_unicode_a2b(self):
# Unicode strings are accepted by a2b_* functions.
MAX_ALL = 45
@@ -416,6 +423,21 @@ class BinASCIITest(unittest.TestCase):
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)
+
+ with self.assertWarns(DeprecationWarning):
+ self.assertEqual(binascii.crc_hqx(b'abc', 0), 40406)
+
class ArrayBinASCIITest(BinASCIITest):
def type2test(self, s):
diff --git a/Lib/test/test_binhex.py b/Lib/test/test_binhex.py
index 2f3d53afbd1..86ca37ce1b9 100644
--- a/Lib/test/test_binhex.py
+++ b/Lib/test/test_binhex.py
@@ -3,10 +3,12 @@
Uses the mechanism of the python binhex module
Based on an original test by Roger E. Masse.
"""
-import binhex
import unittest
from test import support
+with support.check_warnings(('', DeprecationWarning)):
+ import binhex
+
class BinHexTestCase(unittest.TestCase):
diff --git a/Misc/NEWS.d/next/Library/2020-01-16-10-21-48.bpo-39353.ntp7Ql.rst b/Misc/NEWS.d/next/Library/2020-01-16-10-21-48.bpo-39353.ntp7Ql.rst
new file mode 100644
index 00000000000..c0d4583ca7f
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-16-10-21-48.bpo-39353.ntp7Ql.rst
@@ -0,0 +1,4 @@
+Deprecate binhex4 and hexbin4 standards. Deprecate the :mod:`binhex` module and
+the following :mod:`binascii` functions: :func:`~binascii.b2a_hqx`,
+:func:`~binascii.a2b_hqx`, :func:`~binascii.rlecode_hqx`,
+:func:`~binascii.rledecode_hqx`, :func:`~binascii.crc_hqx`.
diff --git a/Modules/binascii.c b/Modules/binascii.c
index 94b0732c12c..c6da3e0a635 100644
--- a/Modules/binascii.c
+++ b/Modules/binascii.c
@@ -613,6 +613,11 @@ 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;
@@ -701,6 +706,11 @@ 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;
@@ -763,6 +773,11 @@ 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;
@@ -818,6 +833,11 @@ 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;
@@ -932,7 +952,7 @@ error:
/*[clinic input]
-binascii.crc_hqx -> unsigned_int
+binascii.crc_hqx
data: Py_buffer
crc: unsigned_int(bitwise=True)
@@ -941,10 +961,15 @@ binascii.crc_hqx -> unsigned_int
Compute CRC-CCITT incrementally.
[clinic start generated code]*/
-static unsigned int
+static PyObject *
binascii_crc_hqx_impl(PyObject *module, Py_buffer *data, unsigned int crc)
-/*[clinic end generated code: output=8ec2a78590d19170 input=f18240ff8c705b79]*/
+/*[clinic end generated code: output=2fde213d0f547a98 input=56237755370a951c]*/
{
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "binascii.crc_hqx() is deprecated", 1) < 0) {
+ return NULL;
+ }
+
const unsigned char *bin_data;
Py_ssize_t len;
@@ -956,7 +981,7 @@ binascii_crc_hqx_impl(PyObject *module, Py_buffer *data, unsigned int crc)
crc = ((crc<<8)&0xff00) ^ crctab_hqx[(crc>>8)^*bin_data++];
}
- return crc;
+ return PyLong_FromUnsignedLong(crc);
}
#ifndef USE_ZLIB_CRC32
diff --git a/Modules/clinic/binascii.c.h b/Modules/clinic/binascii.c.h
index 82942f08a68..4d02c72c472 100644
--- a/Modules/clinic/binascii.c.h
+++ b/Modules/clinic/binascii.c.h
@@ -328,7 +328,7 @@ PyDoc_STRVAR(binascii_crc_hqx__doc__,
#define BINASCII_CRC_HQX_METHODDEF \
{"crc_hqx", (PyCFunction)(void(*)(void))binascii_crc_hqx, METH_FASTCALL, binascii_crc_hqx__doc__},
-static unsigned int
+static PyObject *
binascii_crc_hqx_impl(PyObject *module, Py_buffer *data, unsigned int crc);
static PyObject *
@@ -337,7 +337,6 @@ binascii_crc_hqx(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
PyObject *return_value = NULL;
Py_buffer data = {NULL, NULL};
unsigned int crc;
- unsigned int _return_value;
if (!_PyArg_CheckPositional("crc_hqx", nargs, 2, 2)) {
goto exit;
@@ -358,11 +357,7 @@ binascii_crc_hqx(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
if (crc == (unsigned int)-1 && PyErr_Occurred()) {
goto exit;
}
- _return_value = binascii_crc_hqx_impl(module, &data, crc);
- if ((_return_value == (unsigned int)-1) && PyErr_Occurred()) {
- goto exit;
- }
- return_value = PyLong_FromUnsignedLong((unsigned long)_return_value);
+ return_value = binascii_crc_hqx_impl(module, &data, crc);
exit:
/* Cleanup for data */
@@ -801,4 +796,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=ec26d03c2007eaac input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a1e878d3963b615e input=a9049054013a1b77]*/
From b73dd02ea744288831f71363a7467552c09875ea Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Wed, 22 Jan 2020 21:11:17 +0100
Subject: [PATCH 175/380] Revert "bpo-39413: Implement os.unsetenv() on Windows
(GH-18104)" (GH-18124)
This reverts commit 56cd3710a1ea3ba872d345ea1bebc86ed08bc8b8.
---
Doc/library/os.rst | 3 --
Doc/whatsnew/3.9.rst | 3 --
Lib/test/test_os.py | 11 +++--
.../2020-01-21-15-48-35.bpo-39413.7XYDM8.rst | 1 -
Modules/clinic/posixmodule.c.h | 42 ++---------------
Modules/posixmodule.c | 46 +------------------
6 files changed, 12 insertions(+), 94 deletions(-)
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-21-15-48-35.bpo-39413.7XYDM8.rst
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index de3e5603e10..4fec647828e 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -645,9 +645,6 @@ process and user.
.. availability:: most flavors of Unix, Windows.
- .. versionchanged:: 3.9
- The function is now also available on Windows.
-
.. _os-newstreams:
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 0e82ff0695d..f5835d68515 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -216,9 +216,6 @@ Exposed the Linux-specific :func:`os.pidfd_open` (:issue:`38692`) and
:data:`os.P_PIDFD` (:issue:`38713`) for process management with file
descriptors.
-The :func:`os.unsetenv` function is now also available on Windows.
-(Contributed by Victor Stinner in :issue:`39413`.)
-
poplib
------
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 50535da0a2b..82c441c2048 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -956,9 +956,14 @@ class EnvironTests(mapping_tests.BasicTestMappingProtocol):
# On OS X < 10.6, unsetenv() doesn't return a value (bpo-13415).
@support.requires_mac_ver(10, 6)
def test_unset_error(self):
- # "=" is not allowed in a variable name
- key = 'key='
- self.assertRaises(OSError, os.environ.__delitem__, key)
+ if sys.platform == "win32":
+ # an environment variable is limited to 32,767 characters
+ key = 'x' * 50000
+ self.assertRaises(ValueError, os.environ.__delitem__, key)
+ else:
+ # "=" is not allowed in a variable name
+ key = 'key='
+ self.assertRaises(OSError, os.environ.__delitem__, key)
def test_key_type(self):
missing = 'missingkey'
diff --git a/Misc/NEWS.d/next/Library/2020-01-21-15-48-35.bpo-39413.7XYDM8.rst b/Misc/NEWS.d/next/Library/2020-01-21-15-48-35.bpo-39413.7XYDM8.rst
deleted file mode 100644
index a185ab5efe2..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-21-15-48-35.bpo-39413.7XYDM8.rst
+++ /dev/null
@@ -1 +0,0 @@
-The :func:`os.unsetenv` function is now also available on Windows.
diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h
index 661d91afb7e..aa4756a620a 100644
--- a/Modules/clinic/posixmodule.c.h
+++ b/Modules/clinic/posixmodule.c.h
@@ -6125,43 +6125,7 @@ exit:
#endif /* defined(HAVE_PUTENV) && !defined(MS_WINDOWS) */
-#if defined(MS_WINDOWS)
-
-PyDoc_STRVAR(os_unsetenv__doc__,
-"unsetenv($module, name, /)\n"
-"--\n"
-"\n"
-"Delete an environment variable.");
-
-#define OS_UNSETENV_METHODDEF \
- {"unsetenv", (PyCFunction)os_unsetenv, METH_O, os_unsetenv__doc__},
-
-static PyObject *
-os_unsetenv_impl(PyObject *module, PyObject *name);
-
-static PyObject *
-os_unsetenv(PyObject *module, PyObject *arg)
-{
- PyObject *return_value = NULL;
- PyObject *name;
-
- if (!PyUnicode_Check(arg)) {
- _PyArg_BadArgument("unsetenv", "argument", "str", arg);
- goto exit;
- }
- if (PyUnicode_READY(arg) == -1) {
- goto exit;
- }
- name = arg;
- return_value = os_unsetenv_impl(module, name);
-
-exit:
- return return_value;
-}
-
-#endif /* defined(MS_WINDOWS) */
-
-#if (defined(HAVE_UNSETENV) && !defined(MS_WINDOWS))
+#if defined(HAVE_UNSETENV)
PyDoc_STRVAR(os_unsetenv__doc__,
"unsetenv($module, name, /)\n"
@@ -6193,7 +6157,7 @@ exit:
return return_value;
}
-#endif /* (defined(HAVE_UNSETENV) && !defined(MS_WINDOWS)) */
+#endif /* defined(HAVE_UNSETENV) */
PyDoc_STRVAR(os_strerror__doc__,
"strerror($module, code, /)\n"
@@ -8809,4 +8773,4 @@ exit:
#ifndef OS__REMOVE_DLL_DIRECTORY_METHODDEF
#define OS__REMOVE_DLL_DIRECTORY_METHODDEF
#endif /* !defined(OS__REMOVE_DLL_DIRECTORY_METHODDEF) */
-/*[clinic end generated code: output=6e739a2715712e88 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=51ba5b9536420cea input=a9049054013a1b77]*/
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 5a0c8a311a7..e0eecfa6d11 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -10180,51 +10180,7 @@ os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
#endif /* HAVE_PUTENV */
-#ifdef MS_WINDOWS
-/*[clinic input]
-os.unsetenv
- name: unicode
- /
-
-Delete an environment variable.
-[clinic start generated code]*/
-
-static PyObject *
-os_unsetenv_impl(PyObject *module, PyObject *name)
-/*[clinic end generated code: output=54c4137ab1834f02 input=4d6a1747cc526d2f]*/
-{
- /* PyUnicode_AsWideCharString() rejects embedded null characters */
- wchar_t *name_str = PyUnicode_AsWideCharString(name, NULL);
- if (name_str == NULL) {
- return NULL;
- }
-
- BOOL ok = SetEnvironmentVariableW(name_str, NULL);
- PyMem_Free(name_str);
-
- if (!ok) {
- return PyErr_SetFromWindowsErr(0);
- }
-
-#ifdef PY_PUTENV_DICT
- /* Remove the key from putenv_dict;
- * this will cause it to be collected. This has to
- * happen after the real unsetenv() call because the
- * old value was still accessible until then.
- */
- if (PyDict_DelItem(_posixstate(module)->putenv_dict, name)) {
- /* really not much we can do; just leak */
- if (!PyErr_ExceptionMatches(PyExc_KeyError)) {
- return NULL;
- }
- PyErr_Clear();
- }
-#endif
-
- Py_RETURN_NONE;
-}
-/* repeat !defined(MS_WINDOWS) to workaround an Argument Clinic issue */
-#elif defined(HAVE_UNSETENV) && !defined(MS_WINDOWS)
+#ifdef HAVE_UNSETENV
/*[clinic input]
os.unsetenv
name: FSConverter
From 0852c7dd52ac42e7843ddfef44571494e4c86070 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Wed, 22 Jan 2020 21:53:26 +0100
Subject: [PATCH 176/380] bpo-39406: os.putenv() avoids putenv_dict on Windows
(GH-18126)
Windows: _wputenv(env) copies the *env* string and doesn't require
the caller to manage the variable memory.
---
Modules/posixmodule.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index e0eecfa6d11..71b99fd836f 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -819,7 +819,9 @@ dir_fd_converter(PyObject *o, void *p)
}
}
-#ifdef HAVE_PUTENV
+/* Windows: _wputenv(env) copies the *env* string and doesn't require the
+ caller to manage the variable memory. */
+#if defined(HAVE_PUTENV) && !defined(MS_WINDOWS)
# define PY_PUTENV_DICT
#endif
@@ -10130,8 +10132,10 @@ os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
posix_error();
goto error;
}
+ /* _wputenv(env) copies the *env* string and doesn't require the caller
+ to manage the variable memory. */
+ Py_DECREF(unicode);
- posix_putenv_dict_setitem(name, unicode);
Py_RETURN_NONE;
error:
From b477d19a6b7751b0c933b239dae4fc96dbcde9c4 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Wed, 22 Jan 2020 22:48:16 +0100
Subject: [PATCH 177/380] bpo-39406: Implement os.putenv() with setenv() if
available (GH-18128)
If setenv() C function is available, os.putenv() is now implemented
with setenv() instead of putenv(), so Python doesn't have to handle
the environment variable memory.
---
.../2020-01-22-21-18-58.bpo-39406.HMpe8x.rst | 3 ++
Modules/clinic/posixmodule.c.h | 10 ++---
Modules/posixmodule.c | 38 ++++++++++---------
configure | 17 ++-------
configure.ac | 2 +-
pyconfig.h.in | 3 ++
6 files changed, 35 insertions(+), 38 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-22-21-18-58.bpo-39406.HMpe8x.rst
diff --git a/Misc/NEWS.d/next/Library/2020-01-22-21-18-58.bpo-39406.HMpe8x.rst b/Misc/NEWS.d/next/Library/2020-01-22-21-18-58.bpo-39406.HMpe8x.rst
new file mode 100644
index 00000000000..56a53160432
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-22-21-18-58.bpo-39406.HMpe8x.rst
@@ -0,0 +1,3 @@
+If ``setenv()`` C function is available, :func:`os.putenv` is now
+implemented with ``setenv()`` instead of ``putenv()``, so Python doesn't
+have to handle the environment variable memory.
diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h
index aa4756a620a..13a69cd5f0e 100644
--- a/Modules/clinic/posixmodule.c.h
+++ b/Modules/clinic/posixmodule.c.h
@@ -6034,7 +6034,7 @@ exit:
#endif /* (defined(HAVE_POSIX_FADVISE) && !defined(POSIX_FADVISE_AIX_BUG)) */
-#if defined(HAVE_PUTENV) && defined(MS_WINDOWS)
+#if defined(MS_WINDOWS)
PyDoc_STRVAR(os_putenv__doc__,
"putenv($module, name, value, /)\n"
@@ -6080,9 +6080,9 @@ exit:
return return_value;
}
-#endif /* defined(HAVE_PUTENV) && defined(MS_WINDOWS) */
+#endif /* defined(MS_WINDOWS) */
-#if defined(HAVE_PUTENV) && !defined(MS_WINDOWS)
+#if ((defined(HAVE_SETENV) || defined(HAVE_PUTENV)) && !defined(MS_WINDOWS))
PyDoc_STRVAR(os_putenv__doc__,
"putenv($module, name, value, /)\n"
@@ -6123,7 +6123,7 @@ exit:
return return_value;
}
-#endif /* defined(HAVE_PUTENV) && !defined(MS_WINDOWS) */
+#endif /* ((defined(HAVE_SETENV) || defined(HAVE_PUTENV)) && !defined(MS_WINDOWS)) */
#if defined(HAVE_UNSETENV)
@@ -8773,4 +8773,4 @@ exit:
#ifndef OS__REMOVE_DLL_DIRECTORY_METHODDEF
#define OS__REMOVE_DLL_DIRECTORY_METHODDEF
#endif /* !defined(OS__REMOVE_DLL_DIRECTORY_METHODDEF) */
-/*[clinic end generated code: output=51ba5b9536420cea input=a9049054013a1b77]*/
+/*[clinic end generated code: output=6f42d8be634f5942 input=a9049054013a1b77]*/
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 71b99fd836f..6a687529df0 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -819,19 +819,20 @@ dir_fd_converter(PyObject *o, void *p)
}
}
-/* Windows: _wputenv(env) copies the *env* string and doesn't require the
- caller to manage the variable memory. */
-#if defined(HAVE_PUTENV) && !defined(MS_WINDOWS)
+/* Windows _wputenv() and setenv() copy the arguments and so don't require
+ the caller to manage the variable memory. Only Unix putenv() requires
+ putenv_dict. */
+#if defined(HAVE_PUTENV) && !defined(MS_WINDOWS) && !defined(HAVE_SETENV)
# define PY_PUTENV_DICT
#endif
typedef struct {
PyObject *billion;
#ifdef PY_PUTENV_DICT
- /* putenv() and _wputenv() requires that the caller manages the environment
- variable memory. Use a Python dictionary for that: name => env, where
- env is a string like "name=value". On Windows, dict keys and values are
- Unicode strings. On Unix, they are bytes strings. */
+ /* putenv() requires that the caller manages the environment variable
+ memory. Use a Python dictionary for that: name => env, where env is a
+ string like "name=value". On Windows, dict keys and values are Unicode
+ strings. On Unix, they are bytes strings. */
PyObject *putenv_dict;
#endif
PyObject *DirEntryType;
@@ -10081,8 +10082,6 @@ posix_putenv_dict_setitem(PyObject *name, PyObject *value)
#endif /* PY_PUTENV_DICT */
-#ifdef HAVE_PUTENV
-
#ifdef MS_WINDOWS
/*[clinic input]
os.putenv
@@ -10132,8 +10131,6 @@ os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
posix_error();
goto error;
}
- /* _wputenv(env) copies the *env* string and doesn't require the caller
- to manage the variable memory. */
Py_DECREF(unicode);
Py_RETURN_NONE;
@@ -10142,7 +10139,8 @@ error:
Py_DECREF(unicode);
return NULL;
}
-#else /* MS_WINDOWS */
+/* repeat !defined(MS_WINDOWS) to workaround an Argument Clinic issue */
+#elif (defined(HAVE_SETENV) || defined(HAVE_PUTENV)) && !defined(MS_WINDOWS)
/*[clinic input]
os.putenv
@@ -10157,8 +10155,6 @@ static PyObject *
os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
/*[clinic end generated code: output=d29a567d6b2327d2 input=a97bc6152f688d31]*/
{
- PyObject *bytes = NULL;
- char *env;
const char *name_string = PyBytes_AS_STRING(name);
const char *value_string = PyBytes_AS_STRING(value);
@@ -10166,22 +10162,28 @@ os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
PyErr_SetString(PyExc_ValueError, "illegal environment variable name");
return NULL;
}
- bytes = PyBytes_FromFormat("%s=%s", name_string, value_string);
+
+#ifdef HAVE_SETENV
+ if (setenv(name_string, value_string, 1)) {
+ return posix_error();
+ }
+#else
+ PyObject *bytes = PyBytes_FromFormat("%s=%s", name_string, value_string);
if (bytes == NULL) {
return NULL;
}
- env = PyBytes_AS_STRING(bytes);
+ char *env = PyBytes_AS_STRING(bytes);
if (putenv(env)) {
Py_DECREF(bytes);
return posix_error();
}
posix_putenv_dict_setitem(name, bytes);
+#endif
Py_RETURN_NONE;
}
-#endif /* MS_WINDOWS */
-#endif /* HAVE_PUTENV */
+#endif /* defined(HAVE_SETENV) || defined(HAVE_PUTENV) */
#ifdef HAVE_UNSETENV
diff --git a/configure b/configure
index c8253b1455f..e96683622b3 100755
--- a/configure
+++ b/configure
@@ -782,7 +782,6 @@ infodir
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -896,7 +895,6 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1149,15 +1147,6 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1295,7 +1284,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1448,7 +1437,6 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -10303,6 +10291,7 @@ fi
+
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
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.
@@ -11561,7 +11550,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \
pthread_condattr_setclock pthread_init pthread_kill putenv pwrite pwritev pwritev2 \
readlink readlinkat readv realpath renameat \
- sem_open sem_timedwait sem_getvalue sem_unlink sendfile setegid seteuid \
+ sem_open sem_timedwait sem_getvalue sem_unlink sendfile setegid setenv seteuid \
setgid sethostname \
setlocale setregid setreuid setresuid setresgid setsid setpgid setpgrp setpriority setuid setvbuf \
sched_get_priority_max sched_setaffinity sched_setscheduler sched_setparam \
diff --git a/configure.ac b/configure.ac
index bcef99c4962..36c165b2f2e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3600,7 +3600,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \
pthread_condattr_setclock pthread_init pthread_kill putenv pwrite pwritev pwritev2 \
readlink readlinkat readv realpath renameat \
- sem_open sem_timedwait sem_getvalue sem_unlink sendfile setegid seteuid \
+ sem_open sem_timedwait sem_getvalue sem_unlink sendfile setegid setenv seteuid \
setgid sethostname \
setlocale setregid setreuid setresuid setresgid setsid setpgid setpgrp setpriority setuid setvbuf \
sched_get_priority_max sched_setaffinity sched_setscheduler sched_setparam \
diff --git a/pyconfig.h.in b/pyconfig.h.in
index e053be15a11..1918fab8bdb 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -895,6 +895,9 @@
/* Define to 1 if you have the `setegid' function. */
#undef HAVE_SETEGID
+/* Define to 1 if you have the `setenv' function. */
+#undef HAVE_SETENV
+
/* Define to 1 if you have the `seteuid' function. */
#undef HAVE_SETEUID
From 1f0f102dec506fd06f912b74dd2be64a7fba0d3f Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Thu, 23 Jan 2020 06:59:43 +0900
Subject: [PATCH 178/380] bpo-39366: Remove xpath() and xgtitle() methods of
NNTP (GH-18035)
---
Doc/library/nntplib.rst | 27 -------------
Doc/whatsnew/3.9.rst | 7 ++++
Lib/nntplib.py | 39 -------------------
.../2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst | 2 +
4 files changed, 9 insertions(+), 66 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst
diff --git a/Doc/library/nntplib.rst b/Doc/library/nntplib.rst
index 76973651526..e7ec9047e01 100644
--- a/Doc/library/nntplib.rst
+++ b/Doc/library/nntplib.rst
@@ -542,33 +542,6 @@ them have been superseded by newer commands in :rfc:`3977`.
if available.
-.. method:: NNTP.xpath(id)
-
- Return a pair ``(resp, path)``, where *path* is the directory path to the
- article with message ID *id*. Most of the time, this extension is not
- enabled by NNTP server administrators.
-
- .. deprecated:: 3.3
- The XPATH extension is not actively used.
-
-
-.. XXX deprecated:
-
- .. method:: NNTP.xgtitle(name, *, file=None)
-
- Process an ``XGTITLE`` command, returning a pair ``(response, list)``, where
- *list* is a list of tuples containing ``(name, title)``. If the *file* parameter
- is supplied, then the output of the ``XGTITLE`` command is stored in a file.
- If *file* is a string, then the method will open a file with that name, write
- to it then close it. If *file* is a :term:`file object`, then it will start
- calling :meth:`write` on it to store the lines of the command output. If *file*
- is supplied, then the returned *list* is an empty list. This is an optional NNTP
- extension, and may not be supported by all servers.
-
- :rfc:`2980` says "It is suggested that this extension be deprecated". Use
- :meth:`descriptions` or :meth:`description` instead.
-
-
Utility functions
-----------------
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index f5835d68515..d9c545adc43 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -363,6 +363,13 @@ Deprecated
Removed
=======
+* :class:`nntplib.NNTP`: ``xpath()`` and ``xgtitle()`` methods have been removed.
+ These methods are deprecated since Python 3.3. Generally, these extensions
+ are not supported or not enabled by NNTP server administrators.
+ For ``xgtitle()``, please use :meth:`nntplib.NNTP.descriptions` or
+ :meth:`nntplib.NNTP.description` instead.
+ (Contributed by Dong-hee Na in :issue:`39366`.)
+
* :class:`array.array`: ``tostring()`` and ``fromstring()`` methods have been
removed. They were aliases to ``tobytes()`` and ``frombytes()``, deprecated
since Python 3.2.
diff --git a/Lib/nntplib.py b/Lib/nntplib.py
index 8951203f325..aa9b46a8aaa 100644
--- a/Lib/nntplib.py
+++ b/Lib/nntplib.py
@@ -67,7 +67,6 @@ import re
import socket
import collections
import datetime
-import warnings
import sys
try:
@@ -834,44 +833,6 @@ class _NNTPBase:
fmt = self._getoverviewfmt()
return resp, _parse_overview(lines, fmt)
- def xgtitle(self, group, *, file=None):
- """Process an XGTITLE command (optional server extension) Arguments:
- - group: group name wildcard (i.e. news.*)
- Returns:
- - resp: server response if successful
- - list: list of (name,title) strings"""
- warnings.warn("The XGTITLE extension is not actively used, "
- "use descriptions() instead",
- DeprecationWarning, 2)
- line_pat = re.compile('^([^ \t]+)[ \t]+(.*)$')
- resp, raw_lines = self._longcmdstring('XGTITLE ' + group, file)
- lines = []
- for raw_line in raw_lines:
- match = line_pat.search(raw_line.strip())
- if match:
- lines.append(match.group(1, 2))
- return resp, lines
-
- def xpath(self, id):
- """Process an XPATH command (optional server extension) Arguments:
- - id: Message id of article
- Returns:
- resp: server response if successful
- path: directory path to article
- """
- warnings.warn("The XPATH extension is not actively used",
- DeprecationWarning, 2)
-
- resp = self._shortcmd('XPATH {0}'.format(id))
- if not resp.startswith('223'):
- raise NNTPReplyError(resp)
- try:
- [resp_num, path] = resp.split()
- except ValueError:
- raise NNTPReplyError(resp) from None
- else:
- return resp, path
-
def date(self):
"""Process the DATE command.
Returns:
diff --git a/Misc/NEWS.d/next/Library/2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst b/Misc/NEWS.d/next/Library/2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst
new file mode 100644
index 00000000000..00d98a7f183
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst
@@ -0,0 +1,2 @@
+The previously deprecated ``xpath()`` and ``xgtitle()`` methods of
+:class:`nntplib.NNTP` have been removed.
From d3ae95e1e945ed20297e1c38ba43a18b7a868ab6 Mon Sep 17 00:00:00 2001
From: Alex Rebert
Date: Wed, 22 Jan 2020 18:28:31 -0500
Subject: [PATCH 179/380] bpo-35182: fix communicate() crash after child closes
its pipes (GH-17020) (GH-18117)
When communicate() is called in a loop, it crashes when the child process
has already closed any piped standard stream, but still continues to be running
Co-authored-by: Andriy Maletsky
---
Lib/subprocess.py | 4 ++--
Lib/test/test_subprocess.py | 11 +++++++++++
.../Library/2019-10-31-19-23-25.bpo-35182.hzeNl9.rst | 3 +++
3 files changed, 16 insertions(+), 2 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2019-10-31-19-23-25.bpo-35182.hzeNl9.rst
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index 79dffd349a3..26a1e69bd38 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -1983,9 +1983,9 @@ class Popen(object):
with _PopenSelector() as selector:
if self.stdin and input:
selector.register(self.stdin, selectors.EVENT_WRITE)
- if self.stdout:
+ if self.stdout and not self.stdout.closed:
selector.register(self.stdout, selectors.EVENT_READ)
- if self.stderr:
+ if self.stderr and not self.stderr.closed:
selector.register(self.stderr, selectors.EVENT_READ)
while selector.get_map():
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index f1fb93455dd..2bbdbaef84e 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -3145,6 +3145,17 @@ class POSIXProcessTestCase(BaseTestCase):
# so Popen failed to read it and uses a default returncode instead.
self.assertIsNotNone(proc.returncode)
+ def test_communicate_repeated_call_after_stdout_close(self):
+ proc = subprocess.Popen([sys.executable, '-c',
+ 'import os, time; os.close(1), time.sleep(2)'],
+ stdout=subprocess.PIPE)
+ while True:
+ try:
+ proc.communicate(timeout=0.1)
+ return
+ except subprocess.TimeoutExpired:
+ pass
+
@unittest.skipUnless(mswindows, "Windows specific tests")
class Win32ProcessTestCase(BaseTestCase):
diff --git a/Misc/NEWS.d/next/Library/2019-10-31-19-23-25.bpo-35182.hzeNl9.rst b/Misc/NEWS.d/next/Library/2019-10-31-19-23-25.bpo-35182.hzeNl9.rst
new file mode 100644
index 00000000000..9438cd8f9fd
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-10-31-19-23-25.bpo-35182.hzeNl9.rst
@@ -0,0 +1,3 @@
+Fixed :func:`Popen.communicate` subsequent call crash when the child process
+has already closed any piped standard stream, but still continues to be
+running. Patch by Andriy Maletsky.
From 9b6fec46513006d7b06fcb645cca6e4f5bf7c7b8 Mon Sep 17 00:00:00 2001
From: Dino Viehland
Date: Wed, 22 Jan 2020 16:42:38 -0800
Subject: [PATCH 180/380] bpo-39336: Allow packages to not let their child
modules be set on them (#18006)
* bpo-39336: Allow setattr to fail on modules which aren't assignable
When attaching a child module to a package if the object in sys.modules raises an AttributeError (e.g. because it is immutable) it causes the whole import to fail. This now allows immutable packages to exist and an ImportWarning is reported and the AttributeError exception is ignored.
---
Lib/importlib/_bootstrap.py | 7 +-
Lib/test/test_import/__init__.py | 14 +
.../test_import/data/unwritable/__init__.py | 12 +
Lib/test/test_import/data/unwritable/x.py | 0
.../2020-01-15-01-39-29.bpo-39336.nJ7W9I.rst | 1 +
Python/importlib.h | 683 +++++++++---------
6 files changed, 379 insertions(+), 338 deletions(-)
create mode 100644 Lib/test/test_import/data/unwritable/__init__.py
create mode 100644 Lib/test/test_import/data/unwritable/x.py
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-15-01-39-29.bpo-39336.nJ7W9I.rst
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index 8de0e9ee79f..7b74e88820d 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -978,7 +978,12 @@ def _find_and_load_unlocked(name, import_):
if parent:
# Set the module as an attribute on its parent.
parent_module = sys.modules[parent]
- setattr(parent_module, name.rpartition('.')[2], module)
+ child = name.rpartition('.')[2]
+ try:
+ setattr(parent_module, child, module)
+ except AttributeError:
+ msg = f"Cannot set an attribute on {parent!r} for child module {child!r}"
+ _warnings.warn(msg, ImportWarning)
return module
diff --git a/Lib/test/test_import/__init__.py b/Lib/test/test_import/__init__.py
index 13d04815da7..482fe6a9216 100644
--- a/Lib/test/test_import/__init__.py
+++ b/Lib/test/test_import/__init__.py
@@ -26,6 +26,7 @@ from test.support import (
temp_dir, DirsOnSysPath)
from test.support import script_helper
from test.test_importlib.util import uncache
+from types import ModuleType
skip_if_dont_write_bytecode = unittest.skipIf(
@@ -1339,6 +1340,19 @@ class CircularImportTests(unittest.TestCase):
str(cm.exception),
)
+ def test_unwritable_module(self):
+ self.addCleanup(unload, "test.test_import.data.unwritable")
+ self.addCleanup(unload, "test.test_import.data.unwritable.x")
+
+ import test.test_import.data.unwritable as unwritable
+ with self.assertWarns(ImportWarning):
+ from test.test_import.data.unwritable import x
+
+ self.assertNotEqual(type(unwritable), ModuleType)
+ self.assertEqual(type(x), ModuleType)
+ with self.assertRaises(AttributeError):
+ unwritable.x = 42
+
if __name__ == '__main__':
# Test needs to be a package, so we can do relative imports.
diff --git a/Lib/test/test_import/data/unwritable/__init__.py b/Lib/test/test_import/data/unwritable/__init__.py
new file mode 100644
index 00000000000..da4ddb3d027
--- /dev/null
+++ b/Lib/test/test_import/data/unwritable/__init__.py
@@ -0,0 +1,12 @@
+import sys
+
+class MyMod(object):
+ __slots__ = ['__builtins__', '__cached__', '__doc__',
+ '__file__', '__loader__', '__name__',
+ '__package__', '__path__', '__spec__']
+ def __init__(self):
+ for attr in self.__slots__:
+ setattr(self, attr, globals()[attr])
+
+
+sys.modules[__name__] = MyMod()
diff --git a/Lib/test/test_import/data/unwritable/x.py b/Lib/test/test_import/data/unwritable/x.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-15-01-39-29.bpo-39336.nJ7W9I.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-15-01-39-29.bpo-39336.nJ7W9I.rst
new file mode 100644
index 00000000000..55b6bbbcac0
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-15-01-39-29.bpo-39336.nJ7W9I.rst
@@ -0,0 +1 @@
+Import loaders which publish immutable module objects can now publish immutable packages in addition to individual modules.
diff --git a/Python/importlib.h b/Python/importlib.h
index 63e2064889b..3a84e9bb1d8 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -1448,8 +1448,8 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
8,1,8,1,8,1,10,1,10,1,4,1,8,2,12,1,
114,200,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,8,0,
- 0,0,67,0,0,0,115,218,0,0,0,100,0,125,2,124,
+ 0,0,0,0,0,0,0,0,0,0,9,0,0,0,8,0,
+ 0,0,67,0,0,0,115,22,1,0,0,100,0,125,2,124,
0,160,0,100,1,161,1,100,2,25,0,125,3,124,3,114,
132,124,3,116,1,106,2,118,1,114,42,116,3,124,1,124,
3,131,2,1,0,124,0,116,1,106,2,118,0,114,62,116,
@@ -1460,341 +1460,350 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
0,100,4,141,2,100,0,130,2,89,0,110,2,48,0,116,
9,124,0,124,2,131,2,125,6,124,6,100,0,117,0,114,
170,116,8,116,6,160,7,124,0,161,1,124,0,100,4,141,
- 2,130,1,110,8,116,10,124,6,131,1,125,7,124,3,114,
- 214,116,1,106,2,124,3,25,0,125,4,116,11,124,4,124,
- 0,160,0,100,1,161,1,100,5,25,0,124,7,131,3,1,
- 0,124,7,83,0,41,6,78,114,127,0,0,0,114,22,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,16,0,0,0,
- 233,2,0,0,0,41,12,114,128,0,0,0,114,15,0,0,
- 0,114,91,0,0,0,114,66,0,0,0,114,140,0,0,0,
- 114,105,0,0,0,218,8,95,69,82,82,95,77,83,71,114,
- 44,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,194,0,0,0,114,158,
- 0,0,0,114,5,0,0,0,41,8,114,17,0,0,0,218,
- 7,105,109,112,111,114,116,95,114,164,0,0,0,114,129,0,
- 0,0,90,13,112,97,114,101,110,116,95,109,111,100,117,108,
- 101,114,156,0,0,0,114,94,0,0,0,114,95,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,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,190,3,0,0,115,42,0,0,
- 0,0,1,4,1,14,1,4,1,10,1,10,2,10,1,10,
- 1,10,1,2,1,10,1,12,1,16,1,20,1,10,1,8,
- 1,20,2,8,1,4,2,10,1,22,1,114,205,0,0,0,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
- 0,8,0,0,0,67,0,0,0,115,128,0,0,0,116,0,
- 124,0,131,1,143,62,1,0,116,1,106,2,160,3,124,0,
- 116,4,161,2,125,2,124,2,116,4,117,0,114,56,116,5,
- 124,0,124,1,131,2,87,0,2,0,100,1,4,0,4,0,
- 131,3,1,0,83,0,87,0,100,1,4,0,4,0,131,3,
- 1,0,110,16,49,0,115,76,48,0,1,0,1,0,1,0,
- 89,0,1,0,124,2,100,1,117,0,114,116,100,2,160,6,
- 124,0,161,1,125,3,116,7,124,3,124,0,100,3,141,2,
- 130,1,116,8,124,0,131,1,1,0,124,2,83,0,41,4,
- 122,25,70,105,110,100,32,97,110,100,32,108,111,97,100,32,
- 116,104,101,32,109,111,100,117,108,101,46,78,122,40,105,109,
- 112,111,114,116,32,111,102,32,123,125,32,104,97,108,116,101,
- 100,59,32,78,111,110,101,32,105,110,32,115,121,115,46,109,
- 111,100,117,108,101,115,114,16,0,0,0,41,9,114,49,0,
+ 2,130,1,110,8,116,10,124,6,131,1,125,7,124,3,144,
+ 1,114,18,116,1,106,2,124,3,25,0,125,4,124,0,160,
+ 0,100,1,161,1,100,5,25,0,125,8,122,16,116,11,124,
+ 4,124,8,124,7,131,3,1,0,87,0,110,48,4,0,116,
+ 5,144,1,121,16,1,0,1,0,1,0,100,6,124,3,155,
+ 2,100,7,124,8,155,2,157,4,125,5,116,12,160,13,124,
+ 5,116,14,161,2,1,0,89,0,110,2,48,0,124,7,83,
+ 0,41,8,78,114,127,0,0,0,114,22,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,16,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,15,114,128,0,0,0,114,15,0,0,0,114,91,
+ 0,0,0,114,66,0,0,0,114,140,0,0,0,114,105,0,
+ 0,0,218,8,95,69,82,82,95,77,83,71,114,44,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,194,0,0,0,114,158,0,0,0,
+ 114,5,0,0,0,114,191,0,0,0,114,192,0,0,0,114,
+ 193,0,0,0,41,9,114,17,0,0,0,218,7,105,109,112,
+ 111,114,116,95,114,164,0,0,0,114,129,0,0,0,90,13,
+ 112,97,114,101,110,116,95,109,111,100,117,108,101,114,156,0,
+ 0,0,114,94,0,0,0,114,95,0,0,0,90,5,99,104,
+ 105,108,100,114,10,0,0,0,114,10,0,0,0,114,11,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,190,3,0,0,115,
+ 52,0,0,0,0,1,4,1,14,1,4,1,10,1,10,2,
+ 10,1,10,1,10,1,2,1,10,1,12,1,16,1,20,1,
+ 10,1,8,1,20,2,8,1,6,2,10,1,14,1,2,1,
+ 16,1,14,1,16,1,18,1,114,205,0,0,0,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,
+ 0,0,67,0,0,0,115,128,0,0,0,116,0,124,0,131,
+ 1,143,62,1,0,116,1,106,2,160,3,124,0,116,4,161,
+ 2,125,2,124,2,116,4,117,0,114,56,116,5,124,0,124,
+ 1,131,2,87,0,2,0,100,1,4,0,4,0,131,3,1,
+ 0,83,0,87,0,100,1,4,0,4,0,131,3,1,0,110,
+ 16,49,0,115,76,48,0,1,0,1,0,1,0,89,0,1,
+ 0,124,2,100,1,117,0,114,116,100,2,160,6,124,0,161,
+ 1,125,3,116,7,124,3,124,0,100,3,141,2,130,1,116,
+ 8,124,0,131,1,1,0,124,2,83,0,41,4,122,25,70,
+ 105,110,100,32,97,110,100,32,108,111,97,100,32,116,104,101,
+ 32,109,111,100,117,108,101,46,78,122,40,105,109,112,111,114,
+ 116,32,111,102,32,123,125,32,104,97,108,116,101,100,59,32,
+ 78,111,110,101,32,105,110,32,115,121,115,46,109,111,100,117,
+ 108,101,115,114,16,0,0,0,41,9,114,49,0,0,0,114,
+ 15,0,0,0,114,91,0,0,0,114,34,0,0,0,218,14,
+ 95,78,69,69,68,83,95,76,79,65,68,73,78,71,114,205,
+ 0,0,0,114,44,0,0,0,114,203,0,0,0,114,64,0,
+ 0,0,41,4,114,17,0,0,0,114,204,0,0,0,114,95,
+ 0,0,0,114,74,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,14,95,102,105,110,100,95,97,
+ 110,100,95,108,111,97,100,225,3,0,0,115,22,0,0,0,
+ 0,2,10,1,14,1,8,1,54,2,8,1,4,1,2,255,
+ 4,2,12,2,8,1,114,207,0,0,0,114,22,0,0,0,
+ 99,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
+ 0,4,0,0,0,67,0,0,0,115,42,0,0,0,116,0,
+ 124,0,124,1,124,2,131,3,1,0,124,2,100,1,107,4,
+ 114,32,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,22,0,0,0,41,4,114,200,0,0,0,114,187,0,
+ 0,0,114,207,0,0,0,218,11,95,103,99,100,95,105,109,
+ 112,111,114,116,114,199,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,114,208,0,0,0,241,3,0,
+ 0,115,8,0,0,0,0,9,12,1,8,1,12,1,114,208,
+ 0,0,0,169,1,218,9,114,101,99,117,114,115,105,118,101,
+ 99,3,0,0,0,0,0,0,0,1,0,0,0,8,0,0,
+ 0,11,0,0,0,67,0,0,0,115,232,0,0,0,124,1,
+ 68,0,93,222,125,4,116,0,124,4,116,1,131,2,115,66,
+ 124,3,114,34,124,0,106,2,100,1,23,0,125,5,110,4,
+ 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,113,4,
+ 124,4,100,5,107,2,114,108,124,3,115,226,116,5,124,0,
+ 100,6,131,2,114,226,116,6,124,0,124,0,106,7,124,2,
+ 100,7,100,8,141,4,1,0,113,4,116,5,124,0,124,4,
+ 131,2,115,4,100,9,160,8,124,0,106,2,124,4,161,2,
+ 125,6,122,14,116,9,124,2,124,6,131,2,1,0,87,0,
+ 113,4,4,0,116,10,121,224,1,0,125,7,1,0,122,54,
+ 124,7,106,11,124,6,107,2,114,202,116,12,106,13,160,14,
+ 124,6,116,15,161,2,100,10,117,1,114,202,87,0,89,0,
+ 100,10,125,7,126,7,113,4,130,0,87,0,89,0,100,10,
+ 125,7,126,7,113,4,100,10,125,7,126,7,48,0,48,0,
+ 113,4,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,209,0,0,
+ 0,114,182,0,0,0,78,41,16,114,195,0,0,0,114,196,
+ 0,0,0,114,1,0,0,0,114,197,0,0,0,114,14,0,
+ 0,0,114,4,0,0,0,218,16,95,104,97,110,100,108,101,
+ 95,102,114,111,109,108,105,115,116,114,212,0,0,0,114,44,
+ 0,0,0,114,66,0,0,0,114,203,0,0,0,114,17,0,
0,0,114,15,0,0,0,114,91,0,0,0,114,34,0,0,
- 0,218,14,95,78,69,69,68,83,95,76,79,65,68,73,78,
- 71,114,205,0,0,0,114,44,0,0,0,114,203,0,0,0,
- 114,64,0,0,0,41,4,114,17,0,0,0,114,204,0,0,
- 0,114,95,0,0,0,114,74,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,14,95,102,105,110,
- 100,95,97,110,100,95,108,111,97,100,220,3,0,0,115,22,
- 0,0,0,0,2,10,1,14,1,8,1,54,2,8,1,4,
- 1,2,255,4,2,12,2,8,1,114,207,0,0,0,114,22,
- 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,
- 3,0,0,0,4,0,0,0,67,0,0,0,115,42,0,0,
- 0,116,0,124,0,124,1,124,2,131,3,1,0,124,2,100,
- 1,107,4,114,32,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,22,0,0,0,41,4,114,200,0,0,0,
- 114,187,0,0,0,114,207,0,0,0,218,11,95,103,99,100,
- 95,105,109,112,111,114,116,114,199,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,208,0,0,0,
- 236,3,0,0,115,8,0,0,0,0,9,12,1,8,1,12,
- 1,114,208,0,0,0,169,1,218,9,114,101,99,117,114,115,
- 105,118,101,99,3,0,0,0,0,0,0,0,1,0,0,0,
- 8,0,0,0,11,0,0,0,67,0,0,0,115,232,0,0,
- 0,124,1,68,0,93,222,125,4,116,0,124,4,116,1,131,
- 2,115,66,124,3,114,34,124,0,106,2,100,1,23,0,125,
- 5,110,4,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,113,4,124,4,100,5,107,2,114,108,124,3,115,226,116,
- 5,124,0,100,6,131,2,114,226,116,6,124,0,124,0,106,
- 7,124,2,100,7,100,8,141,4,1,0,113,4,116,5,124,
- 0,124,4,131,2,115,4,100,9,160,8,124,0,106,2,124,
- 4,161,2,125,6,122,14,116,9,124,2,124,6,131,2,1,
- 0,87,0,113,4,4,0,116,10,121,224,1,0,125,7,1,
- 0,122,54,124,7,106,11,124,6,107,2,114,202,116,12,106,
- 13,160,14,124,6,116,15,161,2,100,10,117,1,114,202,87,
- 0,89,0,100,10,125,7,126,7,113,4,130,0,87,0,89,
- 0,100,10,125,7,126,7,113,4,100,10,125,7,126,7,48,
- 0,48,0,113,4,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,
- 209,0,0,0,114,182,0,0,0,78,41,16,114,195,0,0,
- 0,114,196,0,0,0,114,1,0,0,0,114,197,0,0,0,
- 114,14,0,0,0,114,4,0,0,0,218,16,95,104,97,110,
- 100,108,101,95,102,114,111,109,108,105,115,116,114,212,0,0,
- 0,114,44,0,0,0,114,66,0,0,0,114,203,0,0,0,
- 114,17,0,0,0,114,15,0,0,0,114,91,0,0,0,114,
- 34,0,0,0,114,206,0,0,0,41,8,114,95,0,0,0,
- 218,8,102,114,111,109,108,105,115,116,114,204,0,0,0,114,
- 210,0,0,0,218,1,120,90,5,119,104,101,114,101,90,9,
- 102,114,111,109,95,110,97,109,101,90,3,101,120,99,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,114,213,0,
- 0,0,251,3,0,0,115,44,0,0,0,0,10,8,1,10,
- 1,4,1,12,2,4,1,28,2,8,1,14,1,10,1,2,
- 255,8,2,10,1,14,1,2,1,14,1,14,4,10,1,16,
- 255,2,2,12,1,26,1,114,213,0,0,0,99,1,0,0,
- 0,0,0,0,0,0,0,0,0,3,0,0,0,6,0,0,
- 0,67,0,0,0,115,146,0,0,0,124,0,160,0,100,1,
- 161,1,125,1,124,0,160,0,100,2,161,1,125,2,124,1,
- 100,3,117,1,114,82,124,2,100,3,117,1,114,78,124,1,
- 124,2,106,1,107,3,114,78,116,2,106,3,100,4,124,1,
- 155,2,100,5,124,2,106,1,155,2,100,6,157,5,116,4,
- 100,7,100,8,141,3,1,0,124,1,83,0,124,2,100,3,
- 117,1,114,96,124,2,106,1,83,0,116,2,106,3,100,9,
- 116,4,100,7,100,8,141,3,1,0,124,0,100,10,25,0,
- 125,1,100,11,124,0,118,1,114,142,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,144,0,0,0,114,104,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,1,0,0,0,
- 114,140,0,0,0,114,127,0,0,0,114,22,0,0,0,41,
- 6,114,34,0,0,0,114,129,0,0,0,114,191,0,0,0,
- 114,192,0,0,0,114,193,0,0,0,114,128,0,0,0,41,
- 3,218,7,103,108,111,98,97,108,115,114,185,0,0,0,114,
- 94,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,218,17,95,99,97,108,99,95,95,95,112,97,99,
- 107,97,103,101,95,95,32,4,0,0,115,38,0,0,0,0,
- 7,10,1,10,1,8,1,18,1,22,2,2,0,2,254,6,
- 3,4,1,8,1,6,2,6,2,2,0,2,254,6,3,8,
- 1,8,1,14,1,114,219,0,0,0,114,10,0,0,0,99,
- 5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,
- 5,0,0,0,67,0,0,0,115,180,0,0,0,124,4,100,
- 1,107,2,114,18,116,0,124,0,131,1,125,5,110,36,124,
- 1,100,2,117,1,114,30,124,1,110,2,105,0,125,6,116,
- 1,124,6,131,1,125,7,116,0,124,0,124,7,124,4,131,
- 3,125,5,124,3,115,150,124,4,100,1,107,2,114,84,116,
- 0,124,0,160,2,100,3,161,1,100,1,25,0,131,1,83,
- 0,124,0,115,92,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,110,26,116,7,124,5,100,4,131,2,114,172,116,8,124,
- 5,124,3,116,0,131,3,83,0,124,5,83,0,100,2,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,
- 22,0,0,0,78,114,127,0,0,0,114,140,0,0,0,41,
- 9,114,208,0,0,0,114,219,0,0,0,218,9,112,97,114,
- 116,105,116,105,111,110,114,184,0,0,0,114,15,0,0,0,
- 114,91,0,0,0,114,1,0,0,0,114,4,0,0,0,114,
- 213,0,0,0,41,9,114,17,0,0,0,114,218,0,0,0,
- 218,6,108,111,99,97,108,115,114,214,0,0,0,114,186,0,
- 0,0,114,95,0,0,0,90,8,103,108,111,98,97,108,115,
- 95,114,185,0,0,0,90,7,99,117,116,95,111,102,102,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,10,
- 95,95,105,109,112,111,114,116,95,95,59,4,0,0,115,30,
- 0,0,0,0,11,8,1,10,2,16,1,8,1,12,1,4,
- 3,8,1,18,1,4,1,4,4,26,3,32,1,10,1,12,
- 2,114,222,0,0,0,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
- 38,0,0,0,116,0,160,1,124,0,161,1,125,1,124,1,
- 100,0,117,0,114,30,116,2,100,1,124,0,23,0,131,1,
- 130,1,116,3,124,1,131,1,83,0,41,2,78,122,25,110,
- 111,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,
- 101,32,110,97,109,101,100,32,41,4,114,159,0,0,0,114,
- 166,0,0,0,114,78,0,0,0,114,158,0,0,0,41,2,
- 114,17,0,0,0,114,94,0,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,218,18,95,98,117,105,108,
- 116,105,110,95,102,114,111,109,95,110,97,109,101,96,4,0,
- 0,115,8,0,0,0,0,1,10,1,8,1,12,1,114,223,
+ 0,114,206,0,0,0,41,8,114,95,0,0,0,218,8,102,
+ 114,111,109,108,105,115,116,114,204,0,0,0,114,210,0,0,
+ 0,218,1,120,90,5,119,104,101,114,101,90,9,102,114,111,
+ 109,95,110,97,109,101,90,3,101,120,99,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,114,213,0,0,0,0,
+ 4,0,0,115,44,0,0,0,0,10,8,1,10,1,4,1,
+ 12,2,4,1,28,2,8,1,14,1,10,1,2,255,8,2,
+ 10,1,14,1,2,1,14,1,14,4,10,1,16,255,2,2,
+ 12,1,26,1,114,213,0,0,0,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,3,0,0,0,6,0,0,0,67,0,
+ 0,0,115,146,0,0,0,124,0,160,0,100,1,161,1,125,
+ 1,124,0,160,0,100,2,161,1,125,2,124,1,100,3,117,
+ 1,114,82,124,2,100,3,117,1,114,78,124,1,124,2,106,
+ 1,107,3,114,78,116,2,106,3,100,4,124,1,155,2,100,
+ 5,124,2,106,1,155,2,100,6,157,5,116,4,100,7,100,
+ 8,141,3,1,0,124,1,83,0,124,2,100,3,117,1,114,
+ 96,124,2,106,1,83,0,116,2,106,3,100,9,116,4,100,
+ 7,100,8,141,3,1,0,124,0,100,10,25,0,125,1,100,
+ 11,124,0,118,1,114,142,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,144,0,0,0,114,104,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,1,0,0,0,114,140,0,
+ 0,0,114,127,0,0,0,114,22,0,0,0,41,6,114,34,
+ 0,0,0,114,129,0,0,0,114,191,0,0,0,114,192,0,
+ 0,0,114,193,0,0,0,114,128,0,0,0,41,3,218,7,
+ 103,108,111,98,97,108,115,114,185,0,0,0,114,94,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
+ 218,17,95,99,97,108,99,95,95,95,112,97,99,107,97,103,
+ 101,95,95,37,4,0,0,115,38,0,0,0,0,7,10,1,
+ 10,1,8,1,18,1,22,2,2,0,2,254,6,3,4,1,
+ 8,1,6,2,6,2,2,0,2,254,6,3,8,1,8,1,
+ 14,1,114,219,0,0,0,114,10,0,0,0,99,5,0,0,
+ 0,0,0,0,0,0,0,0,0,9,0,0,0,5,0,0,
+ 0,67,0,0,0,115,180,0,0,0,124,4,100,1,107,2,
+ 114,18,116,0,124,0,131,1,125,5,110,36,124,1,100,2,
+ 117,1,114,30,124,1,110,2,105,0,125,6,116,1,124,6,
+ 131,1,125,7,116,0,124,0,124,7,124,4,131,3,125,5,
+ 124,3,115,150,124,4,100,1,107,2,114,84,116,0,124,0,
+ 160,2,100,3,161,1,100,1,25,0,131,1,83,0,124,0,
+ 115,92,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,110,26,
+ 116,7,124,5,100,4,131,2,114,172,116,8,124,5,124,3,
+ 116,0,131,3,83,0,124,5,83,0,100,2,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,22,0,0,
+ 0,78,114,127,0,0,0,114,140,0,0,0,41,9,114,208,
+ 0,0,0,114,219,0,0,0,218,9,112,97,114,116,105,116,
+ 105,111,110,114,184,0,0,0,114,15,0,0,0,114,91,0,
+ 0,0,114,1,0,0,0,114,4,0,0,0,114,213,0,0,
+ 0,41,9,114,17,0,0,0,114,218,0,0,0,218,6,108,
+ 111,99,97,108,115,114,214,0,0,0,114,186,0,0,0,114,
+ 95,0,0,0,90,8,103,108,111,98,97,108,115,95,114,185,
+ 0,0,0,90,7,99,117,116,95,111,102,102,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,10,95,95,105,
+ 109,112,111,114,116,95,95,64,4,0,0,115,30,0,0,0,
+ 0,11,8,1,10,2,16,1,8,1,12,1,4,3,8,1,
+ 18,1,4,1,4,4,26,3,32,1,10,1,12,2,114,222,
+ 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,
+ 0,116,0,160,1,124,0,161,1,125,1,124,1,100,0,117,
+ 0,114,30,116,2,100,1,124,0,23,0,131,1,130,1,116,
+ 3,124,1,131,1,83,0,41,2,78,122,25,110,111,32,98,
+ 117,105,108,116,45,105,110,32,109,111,100,117,108,101,32,110,
+ 97,109,101,100,32,41,4,114,159,0,0,0,114,166,0,0,
+ 0,114,78,0,0,0,114,158,0,0,0,41,2,114,17,0,
+ 0,0,114,94,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,218,18,95,98,117,105,108,116,105,110,
+ 95,102,114,111,109,95,110,97,109,101,101,4,0,0,115,8,
+ 0,0,0,0,1,10,1,8,1,12,1,114,223,0,0,0,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,10,0,0,
+ 0,5,0,0,0,67,0,0,0,115,166,0,0,0,124,1,
+ 97,0,124,0,97,1,116,2,116,1,131,1,125,2,116,1,
+ 106,3,160,4,161,0,68,0,93,72,92,2,125,3,125,4,
+ 116,5,124,4,124,2,131,2,114,26,124,3,116,1,106,6,
+ 118,0,114,60,116,7,125,5,110,18,116,0,160,8,124,3,
+ 161,1,114,26,116,9,125,5,110,2,113,26,116,10,124,4,
+ 124,5,131,2,125,6,116,11,124,6,124,4,131,2,1,0,
+ 113,26,116,1,106,3,116,12,25,0,125,7,100,1,68,0,
+ 93,46,125,8,124,8,116,1,106,3,118,1,114,138,116,13,
+ 124,8,131,1,125,9,110,10,116,1,106,3,124,8,25,0,
+ 125,9,116,14,124,7,124,8,124,9,131,3,1,0,113,114,
+ 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,23,0,0,0,114,191,0,0,0,114,63,
+ 0,0,0,78,41,15,114,56,0,0,0,114,15,0,0,0,
+ 114,14,0,0,0,114,91,0,0,0,218,5,105,116,101,109,
+ 115,114,195,0,0,0,114,77,0,0,0,114,159,0,0,0,
+ 114,87,0,0,0,114,173,0,0,0,114,141,0,0,0,114,
+ 147,0,0,0,114,1,0,0,0,114,223,0,0,0,114,5,
+ 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,17,0,0,0,
+ 114,95,0,0,0,114,108,0,0,0,114,94,0,0,0,90,
+ 11,115,101,108,102,95,109,111,100,117,108,101,90,12,98,117,
+ 105,108,116,105,110,95,110,97,109,101,90,14,98,117,105,108,
+ 116,105,110,95,109,111,100,117,108,101,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,218,6,95,115,101,116,117,
+ 112,108,4,0,0,115,36,0,0,0,0,9,4,1,4,3,
+ 8,1,18,1,10,1,10,1,6,1,10,1,6,2,2,1,
+ 10,1,12,3,10,1,8,1,10,1,10,2,10,1,114,227,
0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 10,0,0,0,5,0,0,0,67,0,0,0,115,166,0,0,
- 0,124,1,97,0,124,0,97,1,116,2,116,1,131,1,125,
- 2,116,1,106,3,160,4,161,0,68,0,93,72,92,2,125,
- 3,125,4,116,5,124,4,124,2,131,2,114,26,124,3,116,
- 1,106,6,118,0,114,60,116,7,125,5,110,18,116,0,160,
- 8,124,3,161,1,114,26,116,9,125,5,110,2,113,26,116,
- 10,124,4,124,5,131,2,125,6,116,11,124,6,124,4,131,
- 2,1,0,113,26,116,1,106,3,116,12,25,0,125,7,100,
- 1,68,0,93,46,125,8,124,8,116,1,106,3,118,1,114,
- 138,116,13,124,8,131,1,125,9,110,10,116,1,106,3,124,
- 8,25,0,125,9,116,14,124,7,124,8,124,9,131,3,1,
- 0,113,114,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,23,0,0,0,114,191,0,0,
- 0,114,63,0,0,0,78,41,15,114,56,0,0,0,114,15,
- 0,0,0,114,14,0,0,0,114,91,0,0,0,218,5,105,
- 116,101,109,115,114,195,0,0,0,114,77,0,0,0,114,159,
- 0,0,0,114,87,0,0,0,114,173,0,0,0,114,141,0,
- 0,0,114,147,0,0,0,114,1,0,0,0,114,223,0,0,
- 0,114,5,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,17,
- 0,0,0,114,95,0,0,0,114,108,0,0,0,114,94,0,
- 0,0,90,11,115,101,108,102,95,109,111,100,117,108,101,90,
- 12,98,117,105,108,116,105,110,95,110,97,109,101,90,14,98,
- 117,105,108,116,105,110,95,109,111,100,117,108,101,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,218,6,95,115,
- 101,116,117,112,103,4,0,0,115,36,0,0,0,0,9,4,
- 1,4,3,8,1,18,1,10,1,10,1,6,1,10,1,6,
- 2,2,1,10,1,12,3,10,1,8,1,10,1,10,2,10,
- 1,114,227,0,0,0,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
- 38,0,0,0,116,0,124,0,124,1,131,2,1,0,116,1,
- 106,2,160,3,116,4,161,1,1,0,116,1,106,2,160,3,
- 116,5,161,1,1,0,100,1,83,0,41,2,122,48,73,110,
- 115,116,97,108,108,32,105,109,112,111,114,116,101,114,115,32,
- 102,111,114,32,98,117,105,108,116,105,110,32,97,110,100,32,
- 102,114,111,122,101,110,32,109,111,100,117,108,101,115,78,41,
- 6,114,227,0,0,0,114,15,0,0,0,114,190,0,0,0,
- 114,118,0,0,0,114,159,0,0,0,114,173,0,0,0,41,
- 2,114,225,0,0,0,114,226,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,8,95,105,110,115,
- 116,97,108,108,138,4,0,0,115,6,0,0,0,0,2,10,
- 2,12,1,114,228,0,0,0,99,0,0,0,0,0,0,0,
- 0,0,0,0,0,1,0,0,0,4,0,0,0,67,0,0,
- 0,115,32,0,0,0,100,1,100,2,108,0,125,0,124,0,
- 97,1,124,0,160,2,116,3,106,4,116,5,25,0,161,1,
- 1,0,100,2,83,0,41,3,122,57,73,110,115,116,97,108,
- 108,32,105,109,112,111,114,116,101,114,115,32,116,104,97,116,
- 32,114,101,113,117,105,114,101,32,101,120,116,101,114,110,97,
- 108,32,102,105,108,101,115,121,115,116,101,109,32,97,99,99,
- 101,115,115,114,22,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,125,0,0,0,114,228,0,0,
- 0,114,15,0,0,0,114,91,0,0,0,114,1,0,0,0,
- 41,1,114,229,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,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,146,4,0,0,115,6,0,0,0,0,3,8,1,
- 4,1,114,230,0,0,0,41,2,78,78,41,1,78,41,2,
- 78,114,22,0,0,0,41,4,78,78,114,10,0,0,0,114,
- 22,0,0,0,41,50,114,3,0,0,0,114,125,0,0,0,
- 114,12,0,0,0,114,18,0,0,0,114,58,0,0,0,114,
- 33,0,0,0,114,42,0,0,0,114,19,0,0,0,114,20,
- 0,0,0,114,48,0,0,0,114,49,0,0,0,114,52,0,
- 0,0,114,64,0,0,0,114,66,0,0,0,114,75,0,0,
- 0,114,85,0,0,0,114,89,0,0,0,114,96,0,0,0,
- 114,110,0,0,0,114,111,0,0,0,114,90,0,0,0,114,
- 141,0,0,0,114,147,0,0,0,114,151,0,0,0,114,106,
- 0,0,0,114,92,0,0,0,114,157,0,0,0,114,158,0,
- 0,0,114,93,0,0,0,114,159,0,0,0,114,173,0,0,
- 0,114,178,0,0,0,114,187,0,0,0,114,189,0,0,0,
- 114,194,0,0,0,114,200,0,0,0,90,15,95,69,82,82,
- 95,77,83,71,95,80,82,69,70,73,88,114,202,0,0,0,
- 114,205,0,0,0,218,6,111,98,106,101,99,116,114,206,0,
- 0,0,114,207,0,0,0,114,208,0,0,0,114,213,0,0,
- 0,114,219,0,0,0,114,222,0,0,0,114,223,0,0,0,
- 114,227,0,0,0,114,228,0,0,0,114,230,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,218,8,60,109,111,100,117,108,101,62,1,0,0,
- 0,115,94,0,0,0,4,24,4,2,8,8,8,8,4,2,
- 4,3,16,4,14,68,14,21,14,16,8,37,8,17,8,11,
- 14,8,8,11,8,12,8,16,8,36,14,101,16,26,10,45,
- 14,72,8,17,8,17,8,30,8,37,8,42,8,15,14,75,
- 14,79,14,13,8,9,8,9,10,47,8,16,4,1,8,2,
- 8,27,6,3,8,16,10,15,14,37,8,27,10,37,8,7,
- 8,35,8,8,
+ 2,0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,
+ 0,116,0,124,0,124,1,131,2,1,0,116,1,106,2,160,
+ 3,116,4,161,1,1,0,116,1,106,2,160,3,116,5,161,
+ 1,1,0,100,1,83,0,41,2,122,48,73,110,115,116,97,
+ 108,108,32,105,109,112,111,114,116,101,114,115,32,102,111,114,
+ 32,98,117,105,108,116,105,110,32,97,110,100,32,102,114,111,
+ 122,101,110,32,109,111,100,117,108,101,115,78,41,6,114,227,
+ 0,0,0,114,15,0,0,0,114,190,0,0,0,114,118,0,
+ 0,0,114,159,0,0,0,114,173,0,0,0,41,2,114,225,
+ 0,0,0,114,226,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,8,95,105,110,115,116,97,108,
+ 108,143,4,0,0,115,6,0,0,0,0,2,10,2,12,1,
+ 114,228,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,4,0,0,0,67,0,0,0,115,32,
+ 0,0,0,100,1,100,2,108,0,125,0,124,0,97,1,124,
+ 0,160,2,116,3,106,4,116,5,25,0,161,1,1,0,100,
+ 2,83,0,41,3,122,57,73,110,115,116,97,108,108,32,105,
+ 109,112,111,114,116,101,114,115,32,116,104,97,116,32,114,101,
+ 113,117,105,114,101,32,101,120,116,101,114,110,97,108,32,102,
+ 105,108,101,115,121,115,116,101,109,32,97,99,99,101,115,115,
+ 114,22,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,125,0,0,0,114,228,0,0,0,114,15,
+ 0,0,0,114,91,0,0,0,114,1,0,0,0,41,1,114,
+ 229,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 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,
+ 151,4,0,0,115,6,0,0,0,0,3,8,1,4,1,114,
+ 230,0,0,0,41,2,78,78,41,1,78,41,2,78,114,22,
+ 0,0,0,41,4,78,78,114,10,0,0,0,114,22,0,0,
+ 0,41,50,114,3,0,0,0,114,125,0,0,0,114,12,0,
+ 0,0,114,18,0,0,0,114,58,0,0,0,114,33,0,0,
+ 0,114,42,0,0,0,114,19,0,0,0,114,20,0,0,0,
+ 114,48,0,0,0,114,49,0,0,0,114,52,0,0,0,114,
+ 64,0,0,0,114,66,0,0,0,114,75,0,0,0,114,85,
+ 0,0,0,114,89,0,0,0,114,96,0,0,0,114,110,0,
+ 0,0,114,111,0,0,0,114,90,0,0,0,114,141,0,0,
+ 0,114,147,0,0,0,114,151,0,0,0,114,106,0,0,0,
+ 114,92,0,0,0,114,157,0,0,0,114,158,0,0,0,114,
+ 93,0,0,0,114,159,0,0,0,114,173,0,0,0,114,178,
+ 0,0,0,114,187,0,0,0,114,189,0,0,0,114,194,0,
+ 0,0,114,200,0,0,0,90,15,95,69,82,82,95,77,83,
+ 71,95,80,82,69,70,73,88,114,202,0,0,0,114,205,0,
+ 0,0,218,6,111,98,106,101,99,116,114,206,0,0,0,114,
+ 207,0,0,0,114,208,0,0,0,114,213,0,0,0,114,219,
+ 0,0,0,114,222,0,0,0,114,223,0,0,0,114,227,0,
+ 0,0,114,228,0,0,0,114,230,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
+ 218,8,60,109,111,100,117,108,101,62,1,0,0,0,115,94,
+ 0,0,0,4,24,4,2,8,8,8,8,4,2,4,3,16,
+ 4,14,68,14,21,14,16,8,37,8,17,8,11,14,8,8,
+ 11,8,12,8,16,8,36,14,101,16,26,10,45,14,72,8,
+ 17,8,17,8,30,8,37,8,42,8,15,14,75,14,79,14,
+ 13,8,9,8,9,10,47,8,16,4,1,8,2,8,32,6,
+ 3,8,16,10,15,14,37,8,27,10,37,8,7,8,35,8,
+ 8,
};
From 41f0ef6abbd304409c55612a08788cdd59fbc8a3 Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Thu, 23 Jan 2020 01:03:04 +0000
Subject: [PATCH 181/380] bpo-39427: Document -X opt options in the CLI --help
and the man page (GH-18131)
https://bugs.python.org/issue39427
Automerge-Triggered-By: @pablogsal
---
.../2020-01-22-22-28-04.bpo-39427.LiO-Eo.rst | 2 +
Misc/python.man | 40 ++++++++++++++++++-
Python/initconfig.c | 33 ++++++++++++++-
3 files changed, 73 insertions(+), 2 deletions(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-22-22-28-04.bpo-39427.LiO-Eo.rst
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-22-22-28-04.bpo-39427.LiO-Eo.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-22-22-28-04.bpo-39427.LiO-Eo.rst
new file mode 100644
index 00000000000..a3915a4d81c
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-22-22-28-04.bpo-39427.LiO-Eo.rst
@@ -0,0 +1,2 @@
+Document all possibilities for the ``-X`` options in the command line help
+section. Patch by Pablo Galindo.
diff --git a/Misc/python.man b/Misc/python.man
index 3aa9f1f9c7e..3645b0206eb 100644
--- a/Misc/python.man
+++ b/Misc/python.man
@@ -273,7 +273,45 @@ field matches the line number, where zero matches all line numbers and
is thus equivalent to an omitted line number.
.TP
.BI "\-X " option
-Set implementation specific option.
+Set implementation specific option. The following options are available:
+
+ -X faulthandler: enable faulthandler
+
+ -X showrefcount: output the total reference count and number of used
+ memory blocks when the program finishes or after each statement in the
+ interactive interpreter. This only works on debug builds
+
+ -X tracemalloc: start tracing Python memory allocations using the
+ tracemalloc module. By default, only the most recent frame is stored in a
+ traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a
+ traceback limit of NFRAME frames
+
+ -X showalloccount: output the total count of allocated objects for each
+ type when the program finishes. This only works when Python was built with
+ COUNT_ALLOCS defined
+
+ -X importtime: show how long each import takes. It shows module name,
+ cumulative time (including nested imports) and self time (excluding
+ nested imports). Note that its output may be broken in multi-threaded
+ application. Typical usage is python3 -X importtime -c 'import asyncio'
+
+ -X dev: enable CPython’s “development mode”, introducing additional runtime
+ checks which are too expensive to be enabled by default. It will not be
+ more verbose than the default if the code is correct: new warnings are
+ only emitted when an issue is detected. Effect of the developer mode:
+ * Add default warning filter, as -W default
+ * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks() C function
+ * Enable the faulthandler module to dump the Python traceback on a crash
+ * Enable asyncio debug mode
+ * Set the dev_mode attribute of sys.flags to True
+ * io.IOBase destructor logs close() exceptions
+
+ -X utf8: enable UTF-8 mode for operating system interfaces, overriding the default
+ locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would
+ otherwise activate automatically). See PYTHONUTF8 for more details
+
+ -X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the
+ given directory instead of to the code tree.
.TP
.B \-x
Skip the first line of the source. This is intended for a DOS
diff --git a/Python/initconfig.c b/Python/initconfig.c
index 2e46999932f..9a784c75116 100644
--- a/Python/initconfig.c
+++ b/Python/initconfig.c
@@ -63,7 +63,38 @@ static const char usage_3[] = "\
-W arg : warning control; arg is action:message:category:module:lineno\n\
also PYTHONWARNINGS=arg\n\
-x : skip first line of source, allowing use of non-Unix forms of #!cmd\n\
--X opt : set implementation-specific option\n\
+-X opt : set implementation-specific option. The following options are available:\n\
+\n\
+ -X faulthandler: enable faulthandler\n\
+ -X showrefcount: output the total reference count and number of used\n\
+ memory blocks when the program finishes or after each statement in the\n\
+ interactive interpreter. This only works on debug builds\n\
+ -X tracemalloc: start tracing Python memory allocations using the\n\
+ tracemalloc module. By default, only the most recent frame is stored in a\n\
+ traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a\n\
+ traceback limit of NFRAME frames\n\
+ -X showalloccount: output the total count of allocated objects for each\n\
+ type when the program finishes. This only works when Python was built with\n\
+ COUNT_ALLOCS defined\n\
+ -X importtime: show how long each import takes. It shows module name,\n\
+ cumulative time (including nested imports) and self time (excluding\n\
+ nested imports). Note that its output may be broken in multi-threaded\n\
+ application. Typical usage is python3 -X importtime -c 'import asyncio'\n\
+ -X dev: enable CPython’s “development mode”, introducing additional runtime\n\
+ checks which are too expensive to be enabled by default. Effect of the\n\
+ developer mode:\n\
+ * Add default warning filter, as -W default\n\
+ * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks() C function\n\
+ * Enable the faulthandler module to dump the Python traceback on a crash\n\
+ * Enable asyncio debug mode\n\
+ * Set the dev_mode attribute of sys.flags to True\n\
+ * io.IOBase destructor logs close() exceptions\n\
+ -X utf8: enable UTF-8 mode for operating system interfaces, overriding the default\n\
+ locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would\n\
+ otherwise activate automatically)\n\
+ -X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the\n\
+ given directory instead of to the code tree\n\
+\n\
--check-hash-based-pycs always|default|never:\n\
control how Python invalidates hash-based .pyc files\n\
";
From dd754caf144009f0569dda5053465ba2accb7b4d Mon Sep 17 00:00:00 2001
From: William Woodruff
Date: Wed, 22 Jan 2020 21:24:16 -0500
Subject: [PATCH 182/380] bpo-29435: Allow is_tarfile to take a filelike obj
(GH-18090)
`is_tarfile()` now supports `name` being a file or file-like object.
---
Doc/library/tarfile.rst | 5 ++-
Lib/tarfile.py | 7 +++-
Lib/test/test_tarfile.py | 32 +++++++++++++++++++
Misc/ACKS | 1 +
.../2020-01-20-18-48-00.bpo-29435.qqJ2Ax.rst | 2 ++
5 files changed, 45 insertions(+), 2 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-20-18-48-00.bpo-29435.qqJ2Ax.rst
diff --git a/Doc/library/tarfile.rst b/Doc/library/tarfile.rst
index c34f2c4a570..459e4ad991d 100644
--- a/Doc/library/tarfile.rst
+++ b/Doc/library/tarfile.rst
@@ -159,7 +159,10 @@ Some facts and figures:
.. function:: is_tarfile(name)
Return :const:`True` if *name* is a tar archive file, that the :mod:`tarfile`
- module can read.
+ module can read. *name* may be a :class:`str`, file, or file-like object.
+
+ .. versionchanged:: 3.9
+ Support for file and file-like objects.
The :mod:`tarfile` module defines the following exceptions:
diff --git a/Lib/tarfile.py b/Lib/tarfile.py
index 2c06f9160c6..d0b748cea17 100755
--- a/Lib/tarfile.py
+++ b/Lib/tarfile.py
@@ -2461,9 +2461,14 @@ class TarFile(object):
def is_tarfile(name):
"""Return True if name points to a tar archive that we
are able to handle, else return False.
+
+ 'name' should be a string, file, or file-like object.
"""
try:
- t = open(name)
+ if hasattr(name, "read"):
+ t = open(fileobj=name)
+ else:
+ t = open(name)
t.close()
return True
except TarError:
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
index 15324a4e488..6a901089611 100644
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -319,6 +319,38 @@ class LzmaListTest(LzmaTest, ListTest):
class CommonReadTest(ReadTest):
+ def test_is_tarfile_erroneous(self):
+ with open(tmpname, "wb"):
+ pass
+
+ # is_tarfile works on filenames
+ self.assertFalse(tarfile.is_tarfile(tmpname))
+
+ # is_tarfile works on path-like objects
+ self.assertFalse(tarfile.is_tarfile(pathlib.Path(tmpname)))
+
+ # is_tarfile works on file objects
+ with open(tmpname, "rb") as fobj:
+ self.assertFalse(tarfile.is_tarfile(fobj))
+
+ # is_tarfile works on file-like objects
+ self.assertFalse(tarfile.is_tarfile(io.BytesIO(b"invalid")))
+
+ def test_is_tarfile_valid(self):
+ # is_tarfile works on filenames
+ self.assertTrue(tarfile.is_tarfile(self.tarname))
+
+ # is_tarfile works on path-like objects
+ self.assertTrue(tarfile.is_tarfile(pathlib.Path(self.tarname)))
+
+ # is_tarfile works on file objects
+ with open(self.tarname, "rb") as fobj:
+ self.assertTrue(tarfile.is_tarfile(fobj))
+
+ # is_tarfile works on file-like objects
+ with open(self.tarname, "rb") as fobj:
+ self.assertTrue(tarfile.is_tarfile(io.BytesIO(fobj.read())))
+
def test_empty_tarfile(self):
# Test for issue6123: Allow opening empty archives.
# This test checks if tarfile.open() is able to open an empty tar
diff --git a/Misc/ACKS b/Misc/ACKS
index 3e45d5d0f7f..7e4b81bfdee 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1856,6 +1856,7 @@ Klaus-Juergen Wolf
Dan Wolfe
Richard Wolff
Adam Woodbeck
+William Woodruff
Steven Work
Gordon Worley
Darren Worrall
diff --git a/Misc/NEWS.d/next/Library/2020-01-20-18-48-00.bpo-29435.qqJ2Ax.rst b/Misc/NEWS.d/next/Library/2020-01-20-18-48-00.bpo-29435.qqJ2Ax.rst
new file mode 100644
index 00000000000..eabc94242c8
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-20-18-48-00.bpo-29435.qqJ2Ax.rst
@@ -0,0 +1,2 @@
+Allow :func:`tarfile.is_tarfile` to be used with file and file-like
+objects, like :func:`zipfile.is_zipfile`. Patch by William Woodruff.
From 2e43b64c94e49f7133b9c26e84c9519935c49063 Mon Sep 17 00:00:00 2001
From: Zackery Spytz
Date: Wed, 22 Jan 2020 20:54:30 -0700
Subject: [PATCH 183/380] bpo-39050: The Help button in IDLE's config menu
works again (GH-17611)
Co-authored-by: Terry Jan Reedy
---
Lib/idlelib/NEWS.txt | 2 ++
Lib/idlelib/configdialog.py | 2 +-
Lib/idlelib/idle_test/test_configdialog.py | 11 +++++++++++
.../IDLE/2020-01-22-22-28-06.bpo-39050.zkn0FO.rst | 1 +
4 files changed, 15 insertions(+), 1 deletion(-)
create mode 100644 Misc/NEWS.d/next/IDLE/2020-01-22-22-28-06.bpo-39050.zkn0FO.rst
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index 9f8894e517b..69bf5603068 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,6 +3,8 @@ Released on 2020-10-05?
======================================
+bpo-39050: Make Settings dialog Help button work again.
+
bpo-32989: Add tests for editor newline_and_indent_event method.
Remove dead code from pyparse find_good_parse_start method.
diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py
index aaf319bbe1b..0e007b516ea 100644
--- a/Lib/idlelib/configdialog.py
+++ b/Lib/idlelib/configdialog.py
@@ -210,7 +210,7 @@ class ConfigDialog(Toplevel):
"""
page = self.note.tab(self.note.select(), option='text').strip()
view_text(self, title='Help for IDLE preferences',
- text=help_common+help_pages.get(page, ''))
+ contents=help_common+help_pages.get(page, ''))
def deactivate_current_config(self):
"""Remove current key bindings.
diff --git a/Lib/idlelib/idle_test/test_configdialog.py b/Lib/idlelib/idle_test/test_configdialog.py
index 1f14ed1f264..7c575d0e599 100644
--- a/Lib/idlelib/idle_test/test_configdialog.py
+++ b/Lib/idlelib/idle_test/test_configdialog.py
@@ -47,6 +47,17 @@ def tearDownModule():
root.destroy()
root = dialog = None
+class ConfigDialogTest(unittest.TestCase):
+
+ def test_help(self):
+ dialog.note.select(dialog.keyspage)
+ saved = configdialog.view_text
+ view = configdialog.view_text = Func()
+ dialog.help()
+ s = view.kwds['contents']
+ self.assertTrue(s.startswith('When you click'))
+ self.assertTrue(s.endswith('a different name.\n'))
+ configdialog.view_text = saved
class FontPageTest(unittest.TestCase):
"""Test that font widgets enable users to make font changes.
diff --git a/Misc/NEWS.d/next/IDLE/2020-01-22-22-28-06.bpo-39050.zkn0FO.rst b/Misc/NEWS.d/next/IDLE/2020-01-22-22-28-06.bpo-39050.zkn0FO.rst
new file mode 100644
index 00000000000..e71265cdf10
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2020-01-22-22-28-06.bpo-39050.zkn0FO.rst
@@ -0,0 +1 @@
+Make IDLE Settings dialog Help button work again.
From f9e07e116c32b6dc4561d0bdeb452ccde13b0e7c Mon Sep 17 00:00:00 2001
From: Terry Jan Reedy
Date: Wed, 22 Jan 2020 23:55:07 -0500
Subject: [PATCH 184/380] bpo-32989: IDLE - remove unneeded parameter
(GH-18138)
IDLE does not pass a non-default _synchre in any of its calls to
pyparse.find_good_parse_start.
---
Lib/idlelib/NEWS.txt | 3 ++-
Lib/idlelib/pyparse.py | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index 69bf5603068..708292ebee9 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -6,7 +6,8 @@ Released on 2020-10-05?
bpo-39050: Make Settings dialog Help button work again.
bpo-32989: Add tests for editor newline_and_indent_event method.
-Remove dead code from pyparse find_good_parse_start method.
+Remove unneeded arguments and dead code from pyparse
+find_good_parse_start method.
bpo-38943: Fix autocomplete windows not always appearing on some
systems. Patch by Johnny Najera.
diff --git a/Lib/idlelib/pyparse.py b/Lib/idlelib/pyparse.py
index 9fa20108960..d34872b4396 100644
--- a/Lib/idlelib/pyparse.py
+++ b/Lib/idlelib/pyparse.py
@@ -133,7 +133,7 @@ class Parser:
self.code = s
self.study_level = 0
- def find_good_parse_start(self, is_char_in_string, _synchre=_synchre):
+ def find_good_parse_start(self, is_char_in_string):
"""
Return index of a good place to begin parsing, as close to the
end of the string as possible. This will be the start of some
From 13bc13960cc83dbd1cb5701d9a59ac9b9144b205 Mon Sep 17 00:00:00 2001
From: Mark Shannon
Date: Thu, 23 Jan 2020 09:25:17 +0000
Subject: [PATCH 185/380] bpo-39320: Handle unpacking of *values in compiler
(GH-17984)
* Add three new bytecodes: LIST_TO_TUPLE, LIST_EXTEND, SET_UPDATE. Use them to implement star unpacking expressions.
* Remove four bytecodes BUILD_LIST_UNPACK, BUILD_TUPLE_UNPACK, BUILD_SET_UNPACK and BUILD_TUPLE_UNPACK_WITH_CALL opcodes as they are now unused.
* Update magic number and dis.rst for new bytecodes.
---
Doc/library/dis.rst | 37 +-
Include/opcode.h | 7 +-
Lib/importlib/_bootstrap_external.py | 4 +-
Lib/opcode.py | 8 +-
Lib/test/test_extcall.py | 4 +-
.../2020-01-15-15-33-44.bpo-39320.b4hnJW.rst | 15 +
Python/ceval.c | 87 +-
Python/compile.c | 211 +-
Python/importlib_external.h | 4322 ++++++++---------
Python/opcode_targets.h | 14 +-
10 files changed, 2349 insertions(+), 2360 deletions(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-15-15-33-44.bpo-39320.b4hnJW.rst
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index aef5c7e8bf2..d5d30a03aea 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -859,40 +859,25 @@ All of the following opcodes use their arguments.
.. versionadded:: 3.6
-.. opcode:: BUILD_TUPLE_UNPACK (count)
+.. opcode:: LIST_TO_TUPLE
- Pops *count* iterables from the stack, joins them in a single tuple,
- and pushes the result. Implements iterable unpacking in tuple
- displays ``(*x, *y, *z)``.
+ Pops a list from the stack and pushes a tuple containing the same values.
- .. versionadded:: 3.5
+ .. versionadded:: 3.9
-.. opcode:: BUILD_TUPLE_UNPACK_WITH_CALL (count)
+.. opcode:: LIST_EXTEND (i)
- This is similar to :opcode:`BUILD_TUPLE_UNPACK`,
- but is used for ``f(*x, *y, *z)`` call syntax. The stack item at position
- ``count + 1`` should be the corresponding callable ``f``.
+ Calls ``list.extend(TOS1[-i], TOS)``. Used to build lists.
- .. versionadded:: 3.6
+ .. versionadded:: 3.9
-.. opcode:: BUILD_LIST_UNPACK (count)
+.. opcode:: SET_UPDATE
- This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but pushes a list
- instead of tuple. Implements iterable unpacking in list
- displays ``[*x, *y, *z]``.
+ Calls ``set.update(TOS1[-i], TOS)``. Used to build sets.
- .. versionadded:: 3.5
-
-
-.. opcode:: BUILD_SET_UNPACK (count)
-
- This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but pushes a set
- instead of tuple. Implements iterable unpacking in set
- displays ``{*x, *y, *z}``.
-
- .. versionadded:: 3.5
+ .. versionadded:: 3.9
.. opcode:: BUILD_MAP_UNPACK (count)
@@ -1124,10 +1109,6 @@ All of the following opcodes use their arguments.
Calls a callable object with variable set of positional and keyword
arguments. If the lowest bit of *flags* is set, the top of the stack
contains a mapping object containing additional keyword arguments.
- Below that is an iterable object containing positional arguments and
- a callable object to call. :opcode:`BUILD_MAP_UNPACK_WITH_CALL` and
- :opcode:`BUILD_TUPLE_UNPACK_WITH_CALL` can be used for merging multiple
- mapping objects and iterables containing arguments.
Before the callable is called, the mapping object and iterable object
are each "unpacked" and their contents passed in as keyword and
positional arguments respectively.
diff --git a/Include/opcode.h b/Include/opcode.h
index 05354847958..1c5cd335f36 100644
--- a/Include/opcode.h
+++ b/Include/opcode.h
@@ -60,6 +60,7 @@ extern "C" {
#define INPLACE_AND 77
#define INPLACE_XOR 78
#define INPLACE_OR 79
+#define LIST_TO_TUPLE 82
#define RETURN_VALUE 83
#define IMPORT_STAR 84
#define SETUP_ANNOTATIONS 85
@@ -116,18 +117,16 @@ extern "C" {
#define SET_ADD 146
#define MAP_ADD 147
#define LOAD_CLASSDEREF 148
-#define BUILD_LIST_UNPACK 149
#define BUILD_MAP_UNPACK 150
#define BUILD_MAP_UNPACK_WITH_CALL 151
-#define BUILD_TUPLE_UNPACK 152
-#define BUILD_SET_UNPACK 153
#define SETUP_ASYNC_WITH 154
#define FORMAT_VALUE 155
#define BUILD_CONST_KEY_MAP 156
#define BUILD_STRING 157
-#define BUILD_TUPLE_UNPACK_WITH_CALL 158
#define LOAD_METHOD 160
#define CALL_METHOD 161
+#define LIST_EXTEND 162
+#define SET_UPDATE 163
/* EXCEPT_HANDLER is a special, implicit block type which is created when
entering an except handler. It is not an opcode but we define it here
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
index b86612beac8..6c703fa3f75 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -275,6 +275,8 @@ _code_type = type(_write_atomic.__code__)
# Python 3.9a0 3421 (simplified bytecode for with blocks #32949)
# Python 3.9a0 3422 (remove BEGIN_FINALLY, END_FINALLY, CALL_FINALLY, POP_FINALLY bytecodes #33387)
# Python 3.9a2 3423 (add IS_OP, CONTAINS_OP and JUMP_IF_NOT_EXC_MATCH bytecodes #39156)
+# Python 3.9a2 3424 (simplify bytecodes for *value unpacking)
+
#
# MAGIC must change whenever the bytecode emitted by the compiler may no
# longer be understood by older implementations of the eval loop (usually
@@ -283,7 +285,7 @@ _code_type = type(_write_atomic.__code__)
# Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array
# in PC/launcher.c must also be updated.
-MAGIC_NUMBER = (3423).to_bytes(2, 'little') + b'\r\n'
+MAGIC_NUMBER = (3424).to_bytes(2, 'little') + b'\r\n'
_RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c
_PYCACHE = '__pycache__'
diff --git a/Lib/opcode.py b/Lib/opcode.py
index e31563bfbcb..5bc2ddc3571 100644
--- a/Lib/opcode.py
+++ b/Lib/opcode.py
@@ -117,6 +117,7 @@ def_op('INPLACE_AND', 77)
def_op('INPLACE_XOR', 78)
def_op('INPLACE_OR', 79)
+def_op('LIST_TO_TUPLE', 82)
def_op('RETURN_VALUE', 83)
def_op('IMPORT_STAR', 84)
def_op('SETUP_ANNOTATIONS', 85)
@@ -199,20 +200,19 @@ hasfree.append(148)
def_op('EXTENDED_ARG', 144)
EXTENDED_ARG = 144
-def_op('BUILD_LIST_UNPACK', 149)
def_op('BUILD_MAP_UNPACK', 150)
def_op('BUILD_MAP_UNPACK_WITH_CALL', 151)
-def_op('BUILD_TUPLE_UNPACK', 152)
-def_op('BUILD_SET_UNPACK', 153)
jrel_op('SETUP_ASYNC_WITH', 154)
def_op('FORMAT_VALUE', 155)
def_op('BUILD_CONST_KEY_MAP', 156)
def_op('BUILD_STRING', 157)
-def_op('BUILD_TUPLE_UNPACK_WITH_CALL', 158)
name_op('LOAD_METHOD', 160)
def_op('CALL_METHOD', 161)
+def_op('LIST_EXTEND', 162)
+def_op('SET_UPDATE', 163)
+
del def_op, name_op, jrel_op, jabs_op
diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py
index 4edb6680e0f..1faf29e01d3 100644
--- a/Lib/test/test_extcall.py
+++ b/Lib/test/test_extcall.py
@@ -252,12 +252,12 @@ What about willful misconduct?
>>> h(1, *h)
Traceback (most recent call last):
...
- TypeError: test.test_extcall.h() argument after * must be an iterable, not function
+ TypeError: Value after * must be an iterable, not function
>>> h(*[1], *h)
Traceback (most recent call last):
...
- TypeError: test.test_extcall.h() argument after * must be an iterable, not function
+ TypeError: Value after * must be an iterable, not function
>>> dir(*h)
Traceback (most recent call last):
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-15-15-33-44.bpo-39320.b4hnJW.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-15-15-33-44.bpo-39320.b4hnJW.rst
new file mode 100644
index 00000000000..1e7235b7e6f
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-15-15-33-44.bpo-39320.b4hnJW.rst
@@ -0,0 +1,15 @@
+Replace four complex bytecodes for building sequences with three simpler ones.
+
+
+The following four bytecodes have been removed:
+
+* BUILD_LIST_UNPACK
+* BUILD_TUPLE_UNPACK
+* BUILD_SET_UNPACK
+* BUILD_TUPLE_UNPACK_WITH_CALL
+
+The following three bytecodes have been added:
+
+* LIST_TO_TUPLE
+* LIST_EXTEND
+* SET_UPDATE
diff --git a/Python/ceval.c b/Python/ceval.c
index 5e586589e96..528ad7fdd1e 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -2621,46 +2621,46 @@ main_loop:
DISPATCH();
}
- case TARGET(BUILD_TUPLE_UNPACK_WITH_CALL):
- case TARGET(BUILD_TUPLE_UNPACK):
- case TARGET(BUILD_LIST_UNPACK): {
- int convert_to_tuple = opcode != BUILD_LIST_UNPACK;
- Py_ssize_t i;
- PyObject *sum = PyList_New(0);
- PyObject *return_value;
-
- if (sum == NULL)
+ case TARGET(LIST_TO_TUPLE): {
+ PyObject *list = POP();
+ PyObject *tuple = PyList_AsTuple(list);
+ Py_DECREF(list);
+ if (tuple == NULL) {
goto error;
+ }
+ PUSH(tuple);
+ DISPATCH();
+ }
- for (i = oparg; i > 0; i--) {
- PyObject *none_val;
-
- none_val = _PyList_Extend((PyListObject *)sum, PEEK(i));
- if (none_val == NULL) {
- if (opcode == BUILD_TUPLE_UNPACK_WITH_CALL &&
- _PyErr_ExceptionMatches(tstate, PyExc_TypeError))
- {
- check_args_iterable(tstate, PEEK(1 + oparg), PEEK(i));
- }
- Py_DECREF(sum);
- goto error;
+ case TARGET(LIST_EXTEND): {
+ PyObject *iterable = POP();
+ PyObject *list = PEEK(oparg);
+ PyObject *none_val = _PyList_Extend((PyListObject *)list, iterable);
+ if (none_val == NULL) {
+ if (_PyErr_ExceptionMatches(tstate, PyExc_TypeError) &&
+ (iterable->ob_type->tp_iter == NULL && !PySequence_Check(iterable)))
+ {
+ PyErr_Clear();
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "Value after * must be an iterable, not %.200s",
+ Py_TYPE(iterable)->tp_name);
}
- Py_DECREF(none_val);
+ Py_DECREF(iterable);
+ goto error;
}
+ Py_DECREF(none_val);
+ Py_DECREF(iterable);
+ DISPATCH();
+ }
- if (convert_to_tuple) {
- return_value = PyList_AsTuple(sum);
- Py_DECREF(sum);
- if (return_value == NULL)
- goto error;
+ case TARGET(SET_UPDATE): {
+ PyObject *iterable = POP();
+ PyObject *set = PEEK(oparg);
+ int err = _PySet_Update(set, iterable);
+ Py_DECREF(iterable);
+ if (err < 0) {
+ goto error;
}
- else {
- return_value = sum;
- }
-
- while (oparg--)
- Py_DECREF(POP());
- PUSH(return_value);
DISPATCH();
}
@@ -2685,25 +2685,6 @@ main_loop:
DISPATCH();
}
- case TARGET(BUILD_SET_UNPACK): {
- Py_ssize_t i;
- PyObject *sum = PySet_New(NULL);
- if (sum == NULL)
- goto error;
-
- for (i = oparg; i > 0; i--) {
- if (_PySet_Update(sum, PEEK(i)) < 0) {
- Py_DECREF(sum);
- goto error;
- }
- }
-
- while (oparg--)
- Py_DECREF(POP());
- PUSH(sum);
- DISPATCH();
- }
-
case TARGET(BUILD_MAP): {
Py_ssize_t i;
PyObject *map = _PyDict_NewPresized((Py_ssize_t)oparg);
diff --git a/Python/compile.c b/Python/compile.c
index 1d16e69a085..9ed29f4a1f9 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1007,10 +1007,6 @@ stack_effect(int opcode, int oparg, int jump)
case BUILD_SET:
case BUILD_STRING:
return 1-oparg;
- case BUILD_LIST_UNPACK:
- case BUILD_TUPLE_UNPACK:
- case BUILD_TUPLE_UNPACK_WITH_CALL:
- case BUILD_SET_UNPACK:
case BUILD_MAP_UNPACK:
case BUILD_MAP_UNPACK_WITH_CALL:
return 1 - oparg;
@@ -1125,6 +1121,11 @@ stack_effect(int opcode, int oparg, int jump)
return 1;
case LOAD_ASSERTION_ERROR:
return 1;
+ case LIST_TO_TUPLE:
+ return 0;
+ case LIST_EXTEND:
+ case SET_UPDATE:
+ return -1;
default:
return PY_INVALID_STACK_EFFECT;
}
@@ -1705,7 +1706,7 @@ compiler_unwind_fblock(struct compiler *c, struct fblockinfo *info,
compiler_pop_fblock(c, POP_VALUE, NULL);
}
return 1;
-
+
case FINALLY_END:
if (preserve_tos) {
ADDOP(c, ROT_FOUR);
@@ -3675,11 +3676,11 @@ compiler_boolop(struct compiler *c, expr_ty e)
}
static int
-starunpack_helper(struct compiler *c, asdl_seq *elts,
- int single_op, int inner_op, int outer_op)
+starunpack_helper(struct compiler *c, asdl_seq *elts, int pushed,
+ int build, int add, int extend, int tuple)
{
Py_ssize_t n = asdl_seq_LEN(elts);
- Py_ssize_t i, nsubitems = 0, nseen = 0;
+ Py_ssize_t i, seen_star = 0;
if (n > 2 && are_all_items_const(elts, 0, n)) {
PyObject *folded = PyTuple_New(n);
if (folded == NULL) {
@@ -3691,41 +3692,63 @@ starunpack_helper(struct compiler *c, asdl_seq *elts,
Py_INCREF(val);
PyTuple_SET_ITEM(folded, i, val);
}
- if (outer_op == BUILD_SET_UNPACK) {
- Py_SETREF(folded, PyFrozenSet_New(folded));
- if (folded == NULL) {
- return 0;
+ if (tuple) {
+ ADDOP_LOAD_CONST_NEW(c, folded);
+ } else {
+ if (add == SET_ADD) {
+ Py_SETREF(folded, PyFrozenSet_New(folded));
+ if (folded == NULL) {
+ return 0;
+ }
}
+ ADDOP_I(c, build, pushed);
+ ADDOP_LOAD_CONST_NEW(c, folded);
+ ADDOP_I(c, extend, 1);
}
- ADDOP_LOAD_CONST_NEW(c, folded);
- ADDOP_I(c, outer_op, 1);
return 1;
}
+
for (i = 0; i < n; i++) {
expr_ty elt = asdl_seq_GET(elts, i);
if (elt->kind == Starred_kind) {
- if (nseen) {
- ADDOP_I(c, inner_op, nseen);
- nseen = 0;
- nsubitems++;
+ seen_star = 1;
+ }
+ }
+ if (seen_star) {
+ seen_star = 0;
+ for (i = 0; i < n; i++) {
+ expr_ty elt = asdl_seq_GET(elts, i);
+ if (elt->kind == Starred_kind) {
+ if (seen_star == 0) {
+ ADDOP_I(c, build, i+pushed);
+ seen_star = 1;
+ }
+ VISIT(c, expr, elt->v.Starred.value);
+ ADDOP_I(c, extend, 1);
+ }
+ else {
+ VISIT(c, expr, elt);
+ if (seen_star) {
+ ADDOP_I(c, add, 1);
+ }
}
- VISIT(c, expr, elt->v.Starred.value);
- nsubitems++;
}
- else {
+ assert(seen_star);
+ if (tuple) {
+ ADDOP(c, LIST_TO_TUPLE);
+ }
+ }
+ else {
+ for (i = 0; i < n; i++) {
+ expr_ty elt = asdl_seq_GET(elts, i);
VISIT(c, expr, elt);
- nseen++;
+ }
+ if (tuple) {
+ ADDOP_I(c, BUILD_TUPLE, n+pushed);
+ } else {
+ ADDOP_I(c, build, n+pushed);
}
}
- if (nsubitems) {
- if (nseen) {
- ADDOP_I(c, inner_op, nseen);
- nsubitems++;
- }
- ADDOP_I(c, outer_op, nsubitems);
- }
- else
- ADDOP_I(c, single_op, nseen);
return 1;
}
@@ -3767,8 +3790,8 @@ compiler_list(struct compiler *c, expr_ty e)
return assignment_helper(c, elts);
}
else if (e->v.List.ctx == Load) {
- return starunpack_helper(c, elts,
- BUILD_LIST, BUILD_TUPLE, BUILD_LIST_UNPACK);
+ return starunpack_helper(c, elts, 0, BUILD_LIST,
+ LIST_APPEND, LIST_EXTEND, 0);
}
else
VISIT_SEQ(c, expr, elts);
@@ -3783,8 +3806,8 @@ compiler_tuple(struct compiler *c, expr_ty e)
return assignment_helper(c, elts);
}
else if (e->v.Tuple.ctx == Load) {
- return starunpack_helper(c, elts,
- BUILD_TUPLE, BUILD_TUPLE, BUILD_TUPLE_UNPACK);
+ return starunpack_helper(c, elts, 0, BUILD_LIST,
+ LIST_APPEND, LIST_EXTEND, 1);
}
else
VISIT_SEQ(c, expr, elts);
@@ -3794,8 +3817,8 @@ compiler_tuple(struct compiler *c, expr_ty e)
static int
compiler_set(struct compiler *c, expr_ty e)
{
- return starunpack_helper(c, e->v.Set.elts, BUILD_SET,
- BUILD_SET, BUILD_SET_UNPACK);
+ return starunpack_helper(c, e->v.Set.elts, 0, BUILD_SET,
+ SET_ADD, SET_UPDATE, 0);
}
static int
@@ -4184,57 +4207,65 @@ compiler_call_helper(struct compiler *c,
asdl_seq *keywords)
{
Py_ssize_t i, nseen, nelts, nkwelts;
- int mustdictunpack = 0;
-
- /* the number of tuples and dictionaries on the stack */
- Py_ssize_t nsubargs = 0, nsubkwargs = 0;
nelts = asdl_seq_LEN(args);
nkwelts = asdl_seq_LEN(keywords);
- for (i = 0; i < nkwelts; i++) {
- keyword_ty kw = asdl_seq_GET(keywords, i);
- if (kw->arg == NULL) {
- mustdictunpack = 1;
- break;
- }
- }
-
- nseen = n; /* the number of positional arguments on the stack */
for (i = 0; i < nelts; i++) {
expr_ty elt = asdl_seq_GET(args, i);
if (elt->kind == Starred_kind) {
- /* A star-arg. If we've seen positional arguments,
- pack the positional arguments into a tuple. */
- if (nseen) {
- ADDOP_I(c, BUILD_TUPLE, nseen);
- nseen = 0;
- nsubargs++;
- }
- VISIT(c, expr, elt->v.Starred.value);
- nsubargs++;
+ goto ex_call;
}
- else {
- VISIT(c, expr, elt);
- nseen++;
+ }
+ for (i = 0; i < nkwelts; i++) {
+ keyword_ty kw = asdl_seq_GET(keywords, i);
+ if (kw->arg == NULL) {
+ goto ex_call;
}
}
- /* Same dance again for keyword arguments */
- if (nsubargs || mustdictunpack) {
- if (nseen) {
- /* Pack up any trailing positional arguments. */
- ADDOP_I(c, BUILD_TUPLE, nseen);
- nsubargs++;
+ /* No * or ** args, so can use faster calling sequence */
+ for (i = 0; i < nelts; i++) {
+ expr_ty elt = asdl_seq_GET(args, i);
+ assert(elt->kind != Starred_kind);
+ VISIT(c, expr, elt);
+ }
+ if (nkwelts) {
+ PyObject *names;
+ VISIT_SEQ(c, keyword, keywords);
+ names = PyTuple_New(nkwelts);
+ if (names == NULL) {
+ return 0;
}
- if (nsubargs > 1) {
- /* If we ended up with more than one stararg, we need
- to concatenate them into a single sequence. */
- ADDOP_I(c, BUILD_TUPLE_UNPACK_WITH_CALL, nsubargs);
- }
- else if (nsubargs == 0) {
- ADDOP_I(c, BUILD_TUPLE, 0);
+ for (i = 0; i < nkwelts; i++) {
+ keyword_ty kw = asdl_seq_GET(keywords, i);
+ Py_INCREF(kw->arg);
+ PyTuple_SET_ITEM(names, i, kw->arg);
}
+ ADDOP_LOAD_CONST_NEW(c, names);
+ ADDOP_I(c, CALL_FUNCTION_KW, n + nelts + nkwelts);
+ return 1;
+ }
+ else {
+ ADDOP_I(c, CALL_FUNCTION, n + nelts);
+ return 1;
+ }
+
+ex_call:
+
+ /* Do positional arguments. */
+ if (n ==0 && nelts == 1 && ((expr_ty)asdl_seq_GET(args, 0))->kind == Starred_kind) {
+ VISIT(c, expr, ((expr_ty)asdl_seq_GET(args, 0))->v.Starred.value);
+ }
+ else if (starunpack_helper(c, args, n, BUILD_LIST,
+ LIST_APPEND, LIST_EXTEND, 1) == 0) {
+ return 0;
+ }
+ /* Then keyword arguments */
+ if (nkwelts) {
+ /* the number of dictionaries on the stack */
+ Py_ssize_t nsubkwargs = 0;
+
nseen = 0; /* the number of keyword arguments on the stack following */
for (i = 0; i < nkwelts; i++) {
keyword_ty kw = asdl_seq_GET(keywords, i);
@@ -4263,29 +4294,9 @@ compiler_call_helper(struct compiler *c,
/* Pack it all up */
ADDOP_I(c, BUILD_MAP_UNPACK_WITH_CALL, nsubkwargs);
}
- ADDOP_I(c, CALL_FUNCTION_EX, nsubkwargs > 0);
- return 1;
- }
- else if (nkwelts) {
- PyObject *names;
- VISIT_SEQ(c, keyword, keywords);
- names = PyTuple_New(nkwelts);
- if (names == NULL) {
- return 0;
- }
- for (i = 0; i < nkwelts; i++) {
- keyword_ty kw = asdl_seq_GET(keywords, i);
- Py_INCREF(kw->arg);
- PyTuple_SET_ITEM(names, i, kw->arg);
- }
- ADDOP_LOAD_CONST_NEW(c, names);
- ADDOP_I(c, CALL_FUNCTION_KW, n + nelts + nkwelts);
- return 1;
- }
- else {
- ADDOP_I(c, CALL_FUNCTION, n + nelts);
- return 1;
}
+ ADDOP_I(c, CALL_FUNCTION_EX, nkwelts > 0);
+ return 1;
}
@@ -4860,9 +4871,9 @@ compiler_with(struct compiler *c, stmt_ty s, int pos)
ADDOP(c, POP_BLOCK);
compiler_pop_fblock(c, WITH, block);
-
+
/* End of body; start the cleanup. */
-
+
/* For successful outcome:
* call __exit__(None, None, None)
*/
@@ -5984,7 +5995,7 @@ makecode(struct compiler *c, struct assembler *a)
goto error;
}
co = PyCode_NewWithPosOnlyArgs(posonlyargcount+posorkeywordargcount,
- posonlyargcount, kwonlyargcount, nlocals_int,
+ posonlyargcount, kwonlyargcount, nlocals_int,
maxdepth, flags, bytecode, consts, names,
varnames, freevars, cellvars, c->c_filename,
c->u->u_name, c->u->u_firstlineno, a->a_lnotab);
diff --git a/Python/importlib_external.h b/Python/importlib_external.h
index 52783fc6213..e8e99da093d 100644
--- a/Python/importlib_external.h
+++ b/Python/importlib_external.h
@@ -278,7 +278,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
116,111,109,105,99,120,0,0,0,115,30,0,0,0,0,5,
16,1,6,1,16,0,6,255,4,2,2,3,14,1,40,1,
16,1,12,1,2,1,14,1,12,1,6,1,114,68,0,0,
- 0,105,95,13,0,0,114,27,0,0,0,114,16,0,0,0,
+ 0,105,96,13,0,0,114,27,0,0,0,114,16,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,99,78,41,1,218,12,111,112,116,105,109,105,
@@ -392,7 +392,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
116,95,102,105,108,101,110,97,109,101,218,8,102,105,108,101,
110,97,109,101,114,3,0,0,0,114,3,0,0,0,114,6,
0,0,0,218,17,99,97,99,104,101,95,102,114,111,109,95,
- 115,111,117,114,99,101,42,1,0,0,115,72,0,0,0,0,
+ 115,111,117,114,99,101,44,1,0,0,115,72,0,0,0,0,
18,8,1,6,1,2,255,4,2,8,1,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,2,8,1,8,1,8,1,8,1,14,1,14,
@@ -473,7 +473,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
95,108,101,118,101,108,90,13,98,97,115,101,95,102,105,108,
101,110,97,109,101,114,3,0,0,0,114,3,0,0,0,114,
6,0,0,0,218,17,115,111,117,114,99,101,95,102,114,111,
- 109,95,99,97,99,104,101,113,1,0,0,115,52,0,0,0,
+ 109,95,99,97,99,104,101,115,1,0,0,115,52,0,0,0,
0,9,12,1,8,1,10,1,12,1,4,1,10,1,12,1,
14,1,16,1,4,1,4,1,12,1,8,1,18,2,10,1,
8,1,16,1,10,1,16,1,10,1,14,2,16,1,10,1,
@@ -508,7 +508,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
101,120,116,101,110,115,105,111,110,218,11,115,111,117,114,99,
101,95,112,97,116,104,114,3,0,0,0,114,3,0,0,0,
114,6,0,0,0,218,15,95,103,101,116,95,115,111,117,114,
- 99,101,102,105,108,101,153,1,0,0,115,20,0,0,0,0,
+ 99,101,102,105,108,101,155,1,0,0,115,20,0,0,0,0,
7,12,1,4,1,16,1,24,1,4,1,2,1,12,1,16,
1,18,1,114,108,0,0,0,99,1,0,0,0,0,0,0,
0,0,0,0,0,1,0,0,0,8,0,0,0,67,0,0,
@@ -521,7 +521,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
117,112,108,101,114,101,0,0,0,114,97,0,0,0,114,81,
0,0,0,114,88,0,0,0,41,1,114,96,0,0,0,114,
3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,11,
- 95,103,101,116,95,99,97,99,104,101,100,172,1,0,0,115,
+ 95,103,101,116,95,99,97,99,104,101,100,174,1,0,0,115,
16,0,0,0,0,1,14,1,2,1,10,1,12,1,8,1,
14,1,4,2,114,112,0,0,0,99,1,0,0,0,0,0,
0,0,0,0,0,0,2,0,0,0,8,0,0,0,67,0,
@@ -536,7 +536,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
0,114,50,0,0,0,114,49,0,0,0,41,2,114,43,0,
0,0,114,51,0,0,0,114,3,0,0,0,114,3,0,0,
0,114,6,0,0,0,218,10,95,99,97,108,99,95,109,111,
- 100,101,184,1,0,0,115,12,0,0,0,0,2,2,1,14,
+ 100,101,186,1,0,0,115,12,0,0,0,0,2,2,1,14,
1,12,1,10,3,8,1,114,114,0,0,0,99,1,0,0,
0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,0,
0,3,0,0,0,115,66,0,0,0,100,6,135,0,102,1,
@@ -561,2173 +561,2173 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
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,4,0,0,0,4,0,
- 0,0,31,0,0,0,115,66,0,0,0,124,1,100,0,117,
+ 0,0,31,0,0,0,115,68,0,0,0,124,1,100,0,117,
0,114,16,124,0,106,0,125,1,110,32,124,0,106,0,124,
1,107,3,114,48,116,1,100,1,124,0,106,0,124,1,102,
2,22,0,124,1,100,2,141,2,130,1,136,0,124,0,124,
- 1,102,2,124,2,158,2,124,3,142,1,83,0,41,3,78,
- 122,30,108,111,97,100,101,114,32,102,111,114,32,37,115,32,
- 99,97,110,110,111,116,32,104,97,110,100,108,101,32,37,115,
- 169,1,218,4,110,97,109,101,41,2,114,116,0,0,0,218,
- 11,73,109,112,111,114,116,69,114,114,111,114,41,4,218,4,
- 115,101,108,102,114,116,0,0,0,218,4,97,114,103,115,218,
- 6,107,119,97,114,103,115,169,1,218,6,109,101,116,104,111,
- 100,114,3,0,0,0,114,6,0,0,0,218,19,95,99,104,
- 101,99,107,95,110,97,109,101,95,119,114,97,112,112,101,114,
- 204,1,0,0,115,18,0,0,0,0,1,8,1,8,1,10,
- 1,4,1,8,255,2,1,2,255,6,2,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,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,3,0,0,0,7,0,0,0,83,0,0,0,115,56,
- 0,0,0,100,1,68,0,93,32,125,2,116,0,124,1,124,
- 2,131,2,114,4,116,1,124,0,124,2,116,2,124,1,124,
- 2,131,2,131,3,1,0,113,4,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,66,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,218,5,95,119,
- 114,97,112,215,1,0,0,115,8,0,0,0,0,1,8,1,
- 10,1,20,1,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,
- 41,1,78,41,3,218,10,95,98,111,111,116,115,116,114,97,
- 112,114,133,0,0,0,218,9,78,97,109,101,69,114,114,111,
- 114,41,3,114,122,0,0,0,114,123,0,0,0,114,133,0,
- 0,0,114,3,0,0,0,114,121,0,0,0,114,6,0,0,
- 0,218,11,95,99,104,101,99,107,95,110,97,109,101,196,1,
- 0,0,115,14,0,0,0,0,8,14,7,2,1,10,1,12,
- 2,14,5,10,1,114,136,0,0,0,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,67,
- 0,0,0,115,60,0,0,0,124,0,160,0,124,1,161,1,
- 92,2,125,2,125,3,124,2,100,1,117,0,114,56,116,1,
- 124,3,131,1,114,56,100,2,125,4,116,2,160,3,124,4,
- 160,4,124,3,100,3,25,0,161,1,116,5,161,2,1,0,
- 124,2,83,0,41,4,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,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,72,0,0,0,41,6,218,11,102,105,110,100,95,
- 108,111,97,100,101,114,114,22,0,0,0,114,74,0,0,0,
- 114,75,0,0,0,114,61,0,0,0,218,13,73,109,112,111,
- 114,116,87,97,114,110,105,110,103,41,5,114,118,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,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 218,17,95,102,105,110,100,95,109,111,100,117,108,101,95,115,
- 104,105,109,224,1,0,0,115,10,0,0,0,0,10,14,1,
- 16,1,4,1,22,1,114,143,0,0,0,99,3,0,0,0,
- 0,0,0,0,0,0,0,0,6,0,0,0,4,0,0,0,
- 67,0,0,0,115,158,0,0,0,124,0,100,1,100,2,133,
- 2,25,0,125,3,124,3,116,0,107,3,114,60,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,124,
- 2,142,1,130,1,116,4,124,0,131,1,100,6,107,0,114,
- 102,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,154,100,10,124,5,155,2,100,11,124,
- 1,155,2,157,4,125,4,116,3,124,4,102,1,124,2,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,
+ 1,103,2,124,2,162,1,82,0,124,3,142,1,83,0,41,
+ 3,78,122,30,108,111,97,100,101,114,32,102,111,114,32,37,
+ 115,32,99,97,110,110,111,116,32,104,97,110,100,108,101,32,
+ 37,115,169,1,218,4,110,97,109,101,41,2,114,116,0,0,
+ 0,218,11,73,109,112,111,114,116,69,114,114,111,114,41,4,
+ 218,4,115,101,108,102,114,116,0,0,0,218,4,97,114,103,
+ 115,218,6,107,119,97,114,103,115,169,1,218,6,109,101,116,
+ 104,111,100,114,3,0,0,0,114,6,0,0,0,218,19,95,
+ 99,104,101,99,107,95,110,97,109,101,95,119,114,97,112,112,
+ 101,114,206,1,0,0,115,18,0,0,0,0,1,8,1,8,
+ 1,10,1,4,1,8,255,2,1,2,255,6,2,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,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,3,0,0,0,7,0,0,0,83,0,0,0,
+ 115,56,0,0,0,100,1,68,0,93,32,125,2,116,0,124,
+ 1,124,2,131,2,114,4,116,1,124,0,124,2,116,2,124,
+ 1,124,2,131,2,131,3,1,0,113,4,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,66,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,5,
+ 95,119,114,97,112,217,1,0,0,115,8,0,0,0,0,1,
+ 8,1,10,1,20,1,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,41,1,78,41,3,218,10,95,98,111,111,116,115,116,
+ 114,97,112,114,133,0,0,0,218,9,78,97,109,101,69,114,
+ 114,111,114,41,3,114,122,0,0,0,114,123,0,0,0,114,
+ 133,0,0,0,114,3,0,0,0,114,121,0,0,0,114,6,
+ 0,0,0,218,11,95,99,104,101,99,107,95,110,97,109,101,
+ 198,1,0,0,115,14,0,0,0,0,8,14,7,2,1,10,
+ 1,12,2,14,5,10,1,114,136,0,0,0,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,
+ 0,67,0,0,0,115,60,0,0,0,124,0,160,0,124,1,
+ 161,1,92,2,125,2,125,3,124,2,100,1,117,0,114,56,
+ 116,1,124,3,131,1,114,56,100,2,125,4,116,2,160,3,
+ 124,4,160,4,124,3,100,3,25,0,161,1,116,5,161,2,
+ 1,0,124,2,83,0,41,4,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,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,72,0,0,0,41,6,218,11,102,105,110,
+ 100,95,108,111,97,100,101,114,114,22,0,0,0,114,74,0,
+ 0,0,114,75,0,0,0,114,61,0,0,0,218,13,73,109,
+ 112,111,114,116,87,97,114,110,105,110,103,41,5,114,118,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,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,218,17,95,102,105,110,100,95,109,111,100,117,108,101,
+ 95,115,104,105,109,226,1,0,0,115,10,0,0,0,0,10,
+ 14,1,16,1,4,1,22,1,114,143,0,0,0,99,3,0,
+ 0,0,0,0,0,0,0,0,0,0,6,0,0,0,4,0,
+ 0,0,67,0,0,0,115,158,0,0,0,124,0,100,1,100,
+ 2,133,2,25,0,125,3,124,3,116,0,107,3,114,60,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,124,2,142,1,130,1,116,4,124,0,131,1,100,6,107,
+ 0,114,102,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,154,100,10,124,5,155,2,100,
+ 11,124,1,155,2,157,4,125,4,116,3,124,4,102,1,124,
+ 2,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,15,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,134,0,0,0,218,16,95,118,101,114,
- 98,111,115,101,95,109,101,115,115,97,103,101,114,117,0,0,
- 0,114,22,0,0,0,218,8,69,79,70,69,114,114,111,114,
- 114,26,0,0,0,41,6,114,25,0,0,0,114,116,0,0,
- 0,218,11,101,120,99,95,100,101,116,97,105,108,115,90,5,
- 109,97,103,105,99,114,92,0,0,0,114,82,0,0,0,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,13,
- 95,99,108,97,115,115,105,102,121,95,112,121,99,241,1,0,
- 0,115,28,0,0,0,0,16,12,1,8,1,16,1,12,1,
- 12,1,12,1,10,1,12,1,8,1,16,2,8,1,16,1,
- 12,1,114,152,0,0,0,99,5,0,0,0,0,0,0,0,
- 0,0,0,0,6,0,0,0,4,0,0,0,67,0,0,0,
- 115,112,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,58,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,124,4,142,1,130,1,124,
- 2,100,6,117,1,114,108,116,0,124,0,100,2,100,7,133,
- 2,25,0,131,1,124,2,100,3,64,0,107,3,114,108,116,
- 3,100,4,124,3,155,2,157,2,102,1,124,4,142,1,130,
- 1,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,146,0,0,0,233,12,0,0,0,114,14,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,144,0,0,0,78,
- 114,145,0,0,0,41,4,114,26,0,0,0,114,134,0,0,
- 0,114,149,0,0,0,114,117,0,0,0,41,6,114,25,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,116,0,
- 0,0,114,151,0,0,0,114,92,0,0,0,114,3,0,0,
- 0,114,3,0,0,0,114,6,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,18,2,0,0,115,16,0,0,0,0,19,24,
- 1,10,1,12,1,12,1,8,1,22,255,2,2,114,156,0,
- 0,0,99,4,0,0,0,0,0,0,0,0,0,0,0,4,
- 0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,
- 124,0,100,1,100,2,133,2,25,0,124,1,107,3,114,34,
- 116,0,100,3,124,2,155,2,157,2,102,1,124,3,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,146,0,0,0,114,145,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,117,0,
- 0,0,41,4,114,25,0,0,0,218,11,115,111,117,114,99,
- 101,95,104,97,115,104,114,116,0,0,0,114,151,0,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
- 18,95,118,97,108,105,100,97,116,101,95,104,97,115,104,95,
- 112,121,99,46,2,0,0,115,12,0,0,0,0,17,16,1,
- 2,1,8,255,2,2,2,254,114,158,0,0,0,99,4,0,
- 0,0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,
- 0,0,67,0,0,0,115,80,0,0,0,116,0,160,1,124,
- 0,161,1,125,4,116,2,124,4,116,3,131,2,114,56,116,
- 4,160,5,100,1,124,2,161,2,1,0,124,3,100,2,117,
- 1,114,52,116,6,160,7,124,4,124,3,161,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,100,2,83,0,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,116,0,0,0,114,43,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,134,0,0,0,114,149,
- 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,117,0,0,0,
- 114,61,0,0,0,41,5,114,25,0,0,0,114,116,0,0,
- 0,114,106,0,0,0,114,107,0,0,0,218,4,99,111,100,
- 101,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 218,17,95,99,111,109,112,105,108,101,95,98,121,116,101,99,
- 111,100,101,70,2,0,0,115,20,0,0,0,0,2,10,1,
- 10,1,12,1,8,1,12,1,4,2,10,1,2,0,2,255,
- 114,165,0,0,0,114,72,0,0,0,99,3,0,0,0,0,
- 0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,67,
- 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,
- 160,5,124,0,161,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,72,0,
- 0,0,41,6,218,9,98,121,116,101,97,114,114,97,121,114,
- 148,0,0,0,218,6,101,120,116,101,110,100,114,20,0,0,
- 0,114,160,0,0,0,218,5,100,117,109,112,115,41,4,114,
- 164,0,0,0,218,5,109,116,105,109,101,114,155,0,0,0,
- 114,25,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,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,83,2,0,0,
- 115,12,0,0,0,0,2,8,1,14,1,14,1,14,1,16,
- 1,114,170,0,0,0,84,99,3,0,0,0,0,0,0,0,
- 0,0,0,0,5,0,0,0,5,0,0,0,67,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,50,74,0,130,1,124,3,160,2,124,1,161,1,1,
- 0,124,3,160,2,116,5,160,6,124,0,161,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,
- 38,0,0,0,114,146,0,0,0,41,7,114,166,0,0,0,
- 114,148,0,0,0,114,167,0,0,0,114,20,0,0,0,114,
- 22,0,0,0,114,160,0,0,0,114,168,0,0,0,41,5,
- 114,164,0,0,0,114,157,0,0,0,90,7,99,104,101,99,
- 107,101,100,114,25,0,0,0,114,82,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,218,17,95,99,
- 111,100,101,95,116,111,95,104,97,115,104,95,112,121,99,93,
- 2,0,0,115,14,0,0,0,0,2,8,1,12,1,14,1,
- 16,1,10,1,16,1,114,171,0,0,0,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,
- 67,0,0,0,115,62,0,0,0,100,1,100,2,108,0,125,
- 1,116,1,160,2,124,0,161,1,106,3,125,2,124,1,160,
- 4,124,2,161,1,125,3,116,1,160,5,100,2,100,3,161,
- 2,125,4,124,4,160,6,124,0,160,6,124,3,100,1,25,
- 0,161,1,161,1,83,0,41,4,122,121,68,101,99,111,100,
- 101,32,98,121,116,101,115,32,114,101,112,114,101,115,101,110,
- 116,105,110,103,32,115,111,117,114,99,101,32,99,111,100,101,
- 32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,
- 115,116,114,105,110,103,46,10,10,32,32,32,32,85,110,105,
- 118,101,114,115,97,108,32,110,101,119,108,105,110,101,32,115,
- 117,112,112,111,114,116,32,105,115,32,117,115,101,100,32,105,
- 110,32,116,104,101,32,100,101,99,111,100,105,110,103,46,10,
- 32,32,32,32,114,72,0,0,0,78,84,41,7,218,8,116,
- 111,107,101,110,105,122,101,114,63,0,0,0,90,7,66,121,
- 116,101,115,73,79,90,8,114,101,97,100,108,105,110,101,90,
- 15,100,101,116,101,99,116,95,101,110,99,111,100,105,110,103,
- 90,25,73,110,99,114,101,109,101,110,116,97,108,78,101,119,
- 108,105,110,101,68,101,99,111,100,101,114,218,6,100,101,99,
- 111,100,101,41,5,218,12,115,111,117,114,99,101,95,98,121,
- 116,101,115,114,172,0,0,0,90,21,115,111,117,114,99,101,
- 95,98,121,116,101,115,95,114,101,97,100,108,105,110,101,218,
- 8,101,110,99,111,100,105,110,103,90,15,110,101,119,108,105,
- 110,101,95,100,101,99,111,100,101,114,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,218,13,100,101,99,111,100,
- 101,95,115,111,117,114,99,101,104,2,0,0,115,10,0,0,
- 0,0,5,8,1,12,1,10,1,12,1,114,176,0,0,0,
- 169,2,114,140,0,0,0,218,26,115,117,98,109,111,100,117,
- 108,101,95,115,101,97,114,99,104,95,108,111,99,97,116,105,
- 111,110,115,99,2,0,0,0,0,0,0,0,2,0,0,0,
- 9,0,0,0,8,0,0,0,67,0,0,0,115,12,1,0,
- 0,124,1,100,1,117,0,114,58,100,2,125,1,116,0,124,
- 2,100,3,131,2,114,68,122,14,124,2,160,1,124,0,161,
- 1,125,1,87,0,113,68,4,0,116,2,121,54,1,0,1,
- 0,1,0,89,0,113,68,48,0,110,10,116,3,160,4,124,
- 1,161,1,125,1,116,5,106,6,124,0,124,2,124,1,100,
- 4,141,3,125,4,100,5,124,4,95,7,124,2,100,1,117,
- 0,114,152,116,8,131,0,68,0,93,42,92,2,125,5,125,
- 6,124,1,160,9,116,10,124,6,131,1,161,1,114,104,124,
- 5,124,0,124,1,131,2,125,2,124,2,124,4,95,11,1,
- 0,113,152,113,104,100,1,83,0,124,3,116,12,117,0,114,
- 216,116,0,124,2,100,6,131,2,114,222,122,14,124,2,160,
- 13,124,0,161,1,125,7,87,0,110,18,4,0,116,2,121,
- 202,1,0,1,0,1,0,89,0,113,222,48,0,124,7,114,
- 222,103,0,124,4,95,14,110,6,124,3,124,4,95,14,124,
- 4,106,14,103,0,107,2,144,1,114,8,124,1,144,1,114,
- 8,116,15,124,1,131,1,100,7,25,0,125,8,124,4,106,
- 14,160,16,124,8,161,1,1,0,124,4,83,0,41,8,97,
- 61,1,0,0,82,101,116,117,114,110,32,97,32,109,111,100,
- 117,108,101,32,115,112,101,99,32,98,97,115,101,100,32,111,
- 110,32,97,32,102,105,108,101,32,108,111,99,97,116,105,111,
- 110,46,10,10,32,32,32,32,84,111,32,105,110,100,105,99,
- 97,116,101,32,116,104,97,116,32,116,104,101,32,109,111,100,
- 117,108,101,32,105,115,32,97,32,112,97,99,107,97,103,101,
- 44,32,115,101,116,10,32,32,32,32,115,117,98,109,111,100,
- 117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,116,
- 105,111,110,115,32,116,111,32,97,32,108,105,115,116,32,111,
- 102,32,100,105,114,101,99,116,111,114,121,32,112,97,116,104,
- 115,46,32,32,65,110,10,32,32,32,32,101,109,112,116,121,
- 32,108,105,115,116,32,105,115,32,115,117,102,102,105,99,105,
- 101,110,116,44,32,116,104,111,117,103,104,32,105,116,115,32,
- 110,111,116,32,111,116,104,101,114,119,105,115,101,32,117,115,
- 101,102,117,108,32,116,111,32,116,104,101,10,32,32,32,32,
- 105,109,112,111,114,116,32,115,121,115,116,101,109,46,10,10,
- 32,32,32,32,84,104,101,32,108,111,97,100,101,114,32,109,
- 117,115,116,32,116,97,107,101,32,97,32,115,112,101,99,32,
- 97,115,32,105,116,115,32,111,110,108,121,32,95,95,105,110,
- 105,116,95,95,40,41,32,97,114,103,46,10,10,32,32,32,
- 32,78,122,9,60,117,110,107,110,111,119,110,62,218,12,103,
- 101,116,95,102,105,108,101,110,97,109,101,169,1,218,6,111,
- 114,105,103,105,110,84,218,10,105,115,95,112,97,99,107,97,
- 103,101,114,72,0,0,0,41,17,114,128,0,0,0,114,179,
- 0,0,0,114,117,0,0,0,114,2,0,0,0,114,78,0,
- 0,0,114,134,0,0,0,218,10,77,111,100,117,108,101,83,
- 112,101,99,90,13,95,115,101,116,95,102,105,108,101,97,116,
- 116,114,218,27,95,103,101,116,95,115,117,112,112,111,114,116,
- 101,100,95,102,105,108,101,95,108,111,97,100,101,114,115,114,
- 110,0,0,0,114,111,0,0,0,114,140,0,0,0,218,9,
- 95,80,79,80,85,76,65,84,69,114,182,0,0,0,114,178,
- 0,0,0,114,46,0,0,0,218,6,97,112,112,101,110,100,
- 41,9,114,116,0,0,0,90,8,108,111,99,97,116,105,111,
- 110,114,140,0,0,0,114,178,0,0,0,218,4,115,112,101,
- 99,218,12,108,111,97,100,101,114,95,99,108,97,115,115,218,
- 8,115,117,102,102,105,120,101,115,114,182,0,0,0,90,7,
- 100,105,114,110,97,109,101,114,3,0,0,0,114,3,0,0,
- 0,114,6,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,121,
- 2,0,0,115,62,0,0,0,0,12,8,4,4,1,10,2,
- 2,1,14,1,12,1,8,2,10,8,16,1,6,3,8,1,
- 14,1,14,1,10,1,6,1,6,2,4,3,8,2,10,1,
- 2,1,14,1,12,1,6,2,4,1,8,2,6,1,12,1,
- 6,1,12,1,12,2,114,190,0,0,0,99,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
- 64,0,0,0,115,80,0,0,0,101,0,90,1,100,0,90,
- 2,100,1,90,3,100,2,90,4,100,3,90,5,100,4,90,
- 6,101,7,100,5,100,6,132,0,131,1,90,8,101,7,100,
- 7,100,8,132,0,131,1,90,9,101,7,100,14,100,10,100,
- 11,132,1,131,1,90,10,101,7,100,15,100,12,100,13,132,
- 1,131,1,90,11,100,9,83,0,41,16,218,21,87,105,110,
- 100,111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,
- 101,114,122,62,77,101,116,97,32,112,97,116,104,32,102,105,
- 110,100,101,114,32,102,111,114,32,109,111,100,117,108,101,115,
- 32,100,101,99,108,97,114,101,100,32,105,110,32,116,104,101,
- 32,87,105,110,100,111,119,115,32,114,101,103,105,115,116,114,
- 121,46,122,59,83,111,102,116,119,97,114,101,92,80,121,116,
- 104,111,110,92,80,121,116,104,111,110,67,111,114,101,92,123,
- 115,121,115,95,118,101,114,115,105,111,110,125,92,77,111,100,
- 117,108,101,115,92,123,102,117,108,108,110,97,109,101,125,122,
- 65,83,111,102,116,119,97,114,101,92,80,121,116,104,111,110,
- 92,80,121,116,104,111,110,67,111,114,101,92,123,115,121,115,
- 95,118,101,114,115,105,111,110,125,92,77,111,100,117,108,101,
- 115,92,123,102,117,108,108,110,97,109,101,125,92,68,101,98,
- 117,103,70,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,8,0,0,0,67,0,0,0,115,54,0,0,
- 0,122,16,116,0,160,1,116,0,106,2,124,1,161,2,87,
- 0,83,0,4,0,116,3,121,48,1,0,1,0,1,0,116,
- 0,160,1,116,0,106,4,124,1,161,2,6,0,89,0,83,
- 0,48,0,100,0,83,0,114,109,0,0,0,41,5,218,7,
- 95,119,105,110,114,101,103,90,7,79,112,101,110,75,101,121,
- 90,17,72,75,69,89,95,67,85,82,82,69,78,84,95,85,
- 83,69,82,114,49,0,0,0,90,18,72,75,69,89,95,76,
- 79,67,65,76,95,77,65,67,72,73,78,69,41,2,218,3,
- 99,108,115,114,5,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,218,14,95,111,112,101,110,95,114,
- 101,103,105,115,116,114,121,201,2,0,0,115,8,0,0,0,
- 0,2,2,1,16,1,12,1,122,36,87,105,110,100,111,119,
- 115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,
- 95,111,112,101,110,95,114,101,103,105,115,116,114,121,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,
- 0,0,0,67,0,0,0,115,132,0,0,0,124,0,106,0,
- 114,14,124,0,106,1,125,2,110,6,124,0,106,2,125,2,
- 124,2,106,3,124,1,100,1,116,4,106,5,100,0,100,2,
- 133,2,25,0,22,0,100,3,141,2,125,3,122,58,124,0,
- 160,6,124,3,161,1,143,28,125,4,116,7,160,8,124,4,
- 100,4,161,2,125,5,87,0,100,0,4,0,4,0,131,3,
- 1,0,110,16,49,0,115,94,48,0,1,0,1,0,1,0,
- 89,0,1,0,87,0,110,20,4,0,116,9,121,126,1,0,
- 1,0,1,0,89,0,100,0,83,0,48,0,124,5,83,0,
- 41,5,78,122,5,37,100,46,37,100,114,27,0,0,0,41,
- 2,114,139,0,0,0,90,11,115,121,115,95,118,101,114,115,
- 105,111,110,114,39,0,0,0,41,10,218,11,68,69,66,85,
- 71,95,66,85,73,76,68,218,18,82,69,71,73,83,84,82,
- 89,95,75,69,89,95,68,69,66,85,71,218,12,82,69,71,
- 73,83,84,82,89,95,75,69,89,114,61,0,0,0,114,8,
- 0,0,0,218,12,118,101,114,115,105,111,110,95,105,110,102,
- 111,114,194,0,0,0,114,192,0,0,0,90,10,81,117,101,
- 114,121,86,97,108,117,101,114,49,0,0,0,41,6,114,193,
- 0,0,0,114,139,0,0,0,90,12,114,101,103,105,115,116,
- 114,121,95,107,101,121,114,5,0,0,0,90,4,104,107,101,
- 121,218,8,102,105,108,101,112,97,116,104,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,218,16,95,115,101,97,
- 114,99,104,95,114,101,103,105,115,116,114,121,208,2,0,0,
- 115,24,0,0,0,0,2,6,1,8,2,6,1,6,1,16,
- 255,6,2,2,1,12,1,46,1,12,1,8,1,122,38,87,
- 105,110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,
- 110,100,101,114,46,95,115,101,97,114,99,104,95,114,101,103,
- 105,115,116,114,121,78,99,4,0,0,0,0,0,0,0,0,
- 0,0,0,8,0,0,0,8,0,0,0,67,0,0,0,115,
- 120,0,0,0,124,0,160,0,124,1,161,1,125,4,124,4,
- 100,0,117,0,114,22,100,0,83,0,122,12,116,1,124,4,
- 131,1,1,0,87,0,110,20,4,0,116,2,121,54,1,0,
- 1,0,1,0,89,0,100,0,83,0,48,0,116,3,131,0,
- 68,0,93,52,92,2,125,5,125,6,124,4,160,4,116,5,
- 124,6,131,1,161,1,114,62,116,6,106,7,124,1,124,5,
- 124,1,124,4,131,2,124,4,100,1,141,3,125,7,124,7,
- 2,0,1,0,83,0,113,62,100,0,83,0,41,2,78,114,
- 180,0,0,0,41,8,114,200,0,0,0,114,48,0,0,0,
- 114,49,0,0,0,114,184,0,0,0,114,110,0,0,0,114,
- 111,0,0,0,114,134,0,0,0,218,16,115,112,101,99,95,
- 102,114,111,109,95,108,111,97,100,101,114,41,8,114,193,0,
- 0,0,114,139,0,0,0,114,43,0,0,0,218,6,116,97,
- 114,103,101,116,114,199,0,0,0,114,140,0,0,0,114,189,
- 0,0,0,114,187,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,218,9,102,105,110,100,95,115,112,
- 101,99,223,2,0,0,115,28,0,0,0,0,2,10,1,8,
- 1,4,1,2,1,12,1,12,1,8,1,14,1,14,1,6,
- 1,8,1,2,254,6,3,122,31,87,105,110,100,111,119,115,
- 82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,102,
- 105,110,100,95,115,112,101,99,99,3,0,0,0,0,0,0,
- 0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,0,
- 0,115,34,0,0,0,124,0,160,0,124,1,124,2,161,2,
- 125,3,124,3,100,1,117,1,114,26,124,3,106,1,83,0,
- 100,1,83,0,100,1,83,0,41,2,122,108,70,105,110,100,
- 32,109,111,100,117,108,101,32,110,97,109,101,100,32,105,110,
- 32,116,104,101,32,114,101,103,105,115,116,114,121,46,10,10,
- 32,32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,
- 104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,
- 100,46,32,32,85,115,101,32,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,169,2,114,203,0,0,0,
- 114,140,0,0,0,169,4,114,193,0,0,0,114,139,0,0,
- 0,114,43,0,0,0,114,187,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,218,11,102,105,110,100,
- 95,109,111,100,117,108,101,239,2,0,0,115,8,0,0,0,
- 0,7,12,1,8,1,6,2,122,33,87,105,110,100,111,119,
- 115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,
- 102,105,110,100,95,109,111,100,117,108,101,41,2,78,78,41,
- 1,78,41,12,114,125,0,0,0,114,124,0,0,0,114,126,
- 0,0,0,114,127,0,0,0,114,197,0,0,0,114,196,0,
- 0,0,114,195,0,0,0,218,11,99,108,97,115,115,109,101,
- 116,104,111,100,114,194,0,0,0,114,200,0,0,0,114,203,
- 0,0,0,114,206,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,191,0,0,
- 0,189,2,0,0,115,28,0,0,0,8,2,4,3,2,255,
- 2,4,2,255,2,3,4,2,2,1,10,6,2,1,10,14,
- 2,1,12,15,2,1,114,191,0,0,0,99,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 64,0,0,0,115,48,0,0,0,101,0,90,1,100,0,90,
- 2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,
- 5,132,0,90,5,100,6,100,7,132,0,90,6,100,8,100,
- 9,132,0,90,7,100,10,83,0,41,11,218,13,95,76,111,
- 97,100,101,114,66,97,115,105,99,115,122,83,66,97,115,101,
- 32,99,108,97,115,115,32,111,102,32,99,111,109,109,111,110,
- 32,99,111,100,101,32,110,101,101,100,101,100,32,98,121,32,
- 98,111,116,104,32,83,111,117,114,99,101,76,111,97,100,101,
- 114,32,97,110,100,10,32,32,32,32,83,111,117,114,99,101,
- 108,101,115,115,70,105,108,101,76,111,97,100,101,114,46,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,
- 4,0,0,0,67,0,0,0,115,64,0,0,0,116,0,124,
- 0,160,1,124,1,161,1,131,1,100,1,25,0,125,2,124,
- 2,160,2,100,2,100,1,161,2,100,3,25,0,125,3,124,
- 1,160,3,100,2,161,1,100,4,25,0,125,4,124,3,100,
- 5,107,2,111,62,124,4,100,5,107,3,83,0,41,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,110,103,
- 32,105,102,10,32,32,32,32,32,32,32,32,116,104,101,32,
- 112,97,116,104,32,114,101,116,117,114,110,101,100,32,98,121,
- 32,103,101,116,95,102,105,108,101,110,97,109,101,32,104,97,
- 115,32,97,32,102,105,108,101,110,97,109,101,32,111,102,32,
- 39,95,95,105,110,105,116,95,95,46,112,121,39,46,114,38,
- 0,0,0,114,70,0,0,0,114,72,0,0,0,114,27,0,
- 0,0,218,8,95,95,105,110,105,116,95,95,41,4,114,46,
- 0,0,0,114,179,0,0,0,114,42,0,0,0,114,40,0,
- 0,0,41,5,114,118,0,0,0,114,139,0,0,0,114,96,
- 0,0,0,90,13,102,105,108,101,110,97,109,101,95,98,97,
- 115,101,90,9,116,97,105,108,95,110,97,109,101,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,182,0,0,
- 0,2,3,0,0,115,8,0,0,0,0,3,18,1,16,1,
- 14,1,122,24,95,76,111,97,100,101,114,66,97,115,105,99,
- 115,46,105,115,95,112,97,99,107,97,103,101,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
- 0,67,0,0,0,115,4,0,0,0,100,1,83,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,3,0,
- 0,0,169,2,114,118,0,0,0,114,187,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,218,13,99,
- 114,101,97,116,101,95,109,111,100,117,108,101,10,3,0,0,
- 115,2,0,0,0,0,1,122,27,95,76,111,97,100,101,114,
- 66,97,115,105,99,115,46,99,114,101,97,116,101,95,109,111,
- 100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,3,0,0,0,5,0,0,0,67,0,0,0,115,56,0,
- 0,0,124,0,160,0,124,1,106,1,161,1,125,2,124,2,
- 100,1,117,0,114,36,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,125,0,0,0,114,117,0,0,0,114,61,
- 0,0,0,114,134,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,131,0,0,0,41,3,
- 114,118,0,0,0,218,6,109,111,100,117,108,101,114,164,0,
+ 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,15,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,134,0,0,0,218,16,95,118,
+ 101,114,98,111,115,101,95,109,101,115,115,97,103,101,114,117,
+ 0,0,0,114,22,0,0,0,218,8,69,79,70,69,114,114,
+ 111,114,114,26,0,0,0,41,6,114,25,0,0,0,114,116,
+ 0,0,0,218,11,101,120,99,95,100,101,116,97,105,108,115,
+ 90,5,109,97,103,105,99,114,92,0,0,0,114,82,0,0,
+ 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
+ 218,13,95,99,108,97,115,115,105,102,121,95,112,121,99,243,
+ 1,0,0,115,28,0,0,0,0,16,12,1,8,1,16,1,
+ 12,1,12,1,12,1,10,1,12,1,8,1,16,2,8,1,
+ 16,1,12,1,114,152,0,0,0,99,5,0,0,0,0,0,
+ 0,0,0,0,0,0,6,0,0,0,4,0,0,0,67,0,
+ 0,0,115,112,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,58,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,124,4,142,1,130,
+ 1,124,2,100,6,117,1,114,108,116,0,124,0,100,2,100,
+ 7,133,2,25,0,131,1,124,2,100,3,64,0,107,3,114,
+ 108,116,3,100,4,124,3,155,2,157,2,102,1,124,4,142,
+ 1,130,1,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,146,0,0,0,233,12,0,0,0,114,
+ 14,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,144,0,0,
+ 0,78,114,145,0,0,0,41,4,114,26,0,0,0,114,134,
+ 0,0,0,114,149,0,0,0,114,117,0,0,0,41,6,114,
+ 25,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,
+ 116,0,0,0,114,151,0,0,0,114,92,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,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,20,2,0,0,115,16,0,0,0,0,
+ 19,24,1,10,1,12,1,12,1,8,1,22,255,2,2,114,
+ 156,0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,
+ 0,4,0,0,0,3,0,0,0,67,0,0,0,115,38,0,
+ 0,0,124,0,100,1,100,2,133,2,25,0,124,1,107,3,
+ 114,34,116,0,100,3,124,2,155,2,157,2,102,1,124,3,
+ 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,146,0,0,0,114,145,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,
+ 117,0,0,0,41,4,114,25,0,0,0,218,11,115,111,117,
+ 114,99,101,95,104,97,115,104,114,116,0,0,0,114,151,0,
0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,218,11,101,120,101,99,95,109,111,100,117,108,101,13,3,
- 0,0,115,12,0,0,0,0,2,12,1,8,1,6,1,4,
- 255,6,2,122,25,95,76,111,97,100,101,114,66,97,115,105,
- 99,115,46,101,120,101,99,95,109,111,100,117,108,101,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
- 0,0,0,67,0,0,0,115,12,0,0,0,116,0,160,1,
- 124,0,124,1,161,2,83,0,41,1,122,26,84,104,105,115,
- 32,109,111,100,117,108,101,32,105,115,32,100,101,112,114,101,
- 99,97,116,101,100,46,41,2,114,134,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,118,0,0,0,114,139,0,0,0,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,218,11,108,111,97,
- 100,95,109,111,100,117,108,101,21,3,0,0,115,2,0,0,
- 0,0,2,122,25,95,76,111,97,100,101,114,66,97,115,105,
- 99,115,46,108,111,97,100,95,109,111,100,117,108,101,78,41,
- 8,114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,
- 114,127,0,0,0,114,182,0,0,0,114,212,0,0,0,114,
- 217,0,0,0,114,220,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,114,208,0,
- 0,0,253,2,0,0,115,10,0,0,0,8,2,4,3,8,
- 8,8,3,8,8,114,208,0,0,0,99,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,64,
- 0,0,0,115,74,0,0,0,101,0,90,1,100,0,90,2,
- 100,1,100,2,132,0,90,3,100,3,100,4,132,0,90,4,
- 100,5,100,6,132,0,90,5,100,7,100,8,132,0,90,6,
- 100,9,100,10,132,0,90,7,100,11,100,12,156,1,100,13,
- 100,14,132,2,90,8,100,15,100,16,132,0,90,9,100,17,
- 83,0,41,18,218,12,83,111,117,114,99,101,76,111,97,100,
- 101,114,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,1,0,0,0,67,0,0,0,115,8,0,0,0,
- 116,0,130,1,100,1,83,0,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,49,0,0,0,169,2,114,118,0,0,0,
- 114,43,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,218,10,112,97,116,104,95,109,116,105,109,101,
- 28,3,0,0,115,2,0,0,0,0,6,122,23,83,111,117,
- 114,99,101,76,111,97,100,101,114,46,112,97,116,104,95,109,
- 116,105,109,101,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,4,0,0,0,67,0,0,0,115,14,0,
- 0,0,100,1,124,0,160,0,124,1,161,1,105,1,83,0,
- 41,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,169,0,0,0,41,1,114,223,0,0,
- 0,114,222,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,218,10,112,97,116,104,95,115,116,97,116,
- 115,36,3,0,0,115,2,0,0,0,0,12,122,23,83,111,
- 117,114,99,101,76,111,97,100,101,114,46,112,97,116,104,95,
- 115,116,97,116,115,99,4,0,0,0,0,0,0,0,0,0,
- 0,0,4,0,0,0,4,0,0,0,67,0,0,0,115,12,
- 0,0,0,124,0,160,0,124,2,124,3,161,2,83,0,41,
- 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,118,0,0,0,114,107,0,0,0,90,
- 10,99,97,99,104,101,95,112,97,116,104,114,25,0,0,0,
+ 0,218,18,95,118,97,108,105,100,97,116,101,95,104,97,115,
+ 104,95,112,121,99,48,2,0,0,115,12,0,0,0,0,17,
+ 16,1,2,1,8,255,2,2,2,254,114,158,0,0,0,99,
+ 4,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,
+ 5,0,0,0,67,0,0,0,115,80,0,0,0,116,0,160,
+ 1,124,0,161,1,125,4,116,2,124,4,116,3,131,2,114,
+ 56,116,4,160,5,100,1,124,2,161,2,1,0,124,3,100,
+ 2,117,1,114,52,116,6,160,7,124,4,124,3,161,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,100,2,83,0,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,116,0,0,0,114,43,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,134,0,0,0,
+ 114,149,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,117,0,
+ 0,0,114,61,0,0,0,41,5,114,25,0,0,0,114,116,
+ 0,0,0,114,106,0,0,0,114,107,0,0,0,218,4,99,
+ 111,100,101,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,218,17,95,99,111,109,112,105,108,101,95,98,121,116,
+ 101,99,111,100,101,72,2,0,0,115,20,0,0,0,0,2,
+ 10,1,10,1,12,1,8,1,12,1,4,2,10,1,2,0,
+ 2,255,114,165,0,0,0,114,72,0,0,0,99,3,0,0,
+ 0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,
+ 0,67,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,160,5,124,0,161,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,
+ 72,0,0,0,41,6,218,9,98,121,116,101,97,114,114,97,
+ 121,114,148,0,0,0,218,6,101,120,116,101,110,100,114,20,
+ 0,0,0,114,160,0,0,0,218,5,100,117,109,112,115,41,
+ 4,114,164,0,0,0,218,5,109,116,105,109,101,114,155,0,
+ 0,0,114,25,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,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,85,2,
+ 0,0,115,12,0,0,0,0,2,8,1,14,1,14,1,14,
+ 1,16,1,114,170,0,0,0,84,99,3,0,0,0,0,0,
+ 0,0,0,0,0,0,5,0,0,0,5,0,0,0,67,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,50,74,0,130,1,124,3,160,2,124,1,161,
+ 1,1,0,124,3,160,2,116,5,160,6,124,0,161,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,38,0,0,0,114,146,0,0,0,41,7,114,166,0,
+ 0,0,114,148,0,0,0,114,167,0,0,0,114,20,0,0,
+ 0,114,22,0,0,0,114,160,0,0,0,114,168,0,0,0,
+ 41,5,114,164,0,0,0,114,157,0,0,0,90,7,99,104,
+ 101,99,107,101,100,114,25,0,0,0,114,82,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,17,
+ 95,99,111,100,101,95,116,111,95,104,97,115,104,95,112,121,
+ 99,95,2,0,0,115,14,0,0,0,0,2,8,1,12,1,
+ 14,1,16,1,10,1,16,1,114,171,0,0,0,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,
+ 0,0,67,0,0,0,115,62,0,0,0,100,1,100,2,108,
+ 0,125,1,116,1,160,2,124,0,161,1,106,3,125,2,124,
+ 1,160,4,124,2,161,1,125,3,116,1,160,5,100,2,100,
+ 3,161,2,125,4,124,4,160,6,124,0,160,6,124,3,100,
+ 1,25,0,161,1,161,1,83,0,41,4,122,121,68,101,99,
+ 111,100,101,32,98,121,116,101,115,32,114,101,112,114,101,115,
+ 101,110,116,105,110,103,32,115,111,117,114,99,101,32,99,111,
+ 100,101,32,97,110,100,32,114,101,116,117,114,110,32,116,104,
+ 101,32,115,116,114,105,110,103,46,10,10,32,32,32,32,85,
+ 110,105,118,101,114,115,97,108,32,110,101,119,108,105,110,101,
+ 32,115,117,112,112,111,114,116,32,105,115,32,117,115,101,100,
+ 32,105,110,32,116,104,101,32,100,101,99,111,100,105,110,103,
+ 46,10,32,32,32,32,114,72,0,0,0,78,84,41,7,218,
+ 8,116,111,107,101,110,105,122,101,114,63,0,0,0,90,7,
+ 66,121,116,101,115,73,79,90,8,114,101,97,100,108,105,110,
+ 101,90,15,100,101,116,101,99,116,95,101,110,99,111,100,105,
+ 110,103,90,25,73,110,99,114,101,109,101,110,116,97,108,78,
+ 101,119,108,105,110,101,68,101,99,111,100,101,114,218,6,100,
+ 101,99,111,100,101,41,5,218,12,115,111,117,114,99,101,95,
+ 98,121,116,101,115,114,172,0,0,0,90,21,115,111,117,114,
+ 99,101,95,98,121,116,101,115,95,114,101,97,100,108,105,110,
+ 101,218,8,101,110,99,111,100,105,110,103,90,15,110,101,119,
+ 108,105,110,101,95,100,101,99,111,100,101,114,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,218,13,100,101,99,
+ 111,100,101,95,115,111,117,114,99,101,106,2,0,0,115,10,
+ 0,0,0,0,5,8,1,12,1,10,1,12,1,114,176,0,
+ 0,0,169,2,114,140,0,0,0,218,26,115,117,98,109,111,
+ 100,117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,
+ 116,105,111,110,115,99,2,0,0,0,0,0,0,0,2,0,
+ 0,0,9,0,0,0,8,0,0,0,67,0,0,0,115,12,
+ 1,0,0,124,1,100,1,117,0,114,58,100,2,125,1,116,
+ 0,124,2,100,3,131,2,114,68,122,14,124,2,160,1,124,
+ 0,161,1,125,1,87,0,113,68,4,0,116,2,121,54,1,
+ 0,1,0,1,0,89,0,113,68,48,0,110,10,116,3,160,
+ 4,124,1,161,1,125,1,116,5,106,6,124,0,124,2,124,
+ 1,100,4,141,3,125,4,100,5,124,4,95,7,124,2,100,
+ 1,117,0,114,152,116,8,131,0,68,0,93,42,92,2,125,
+ 5,125,6,124,1,160,9,116,10,124,6,131,1,161,1,114,
+ 104,124,5,124,0,124,1,131,2,125,2,124,2,124,4,95,
+ 11,1,0,113,152,113,104,100,1,83,0,124,3,116,12,117,
+ 0,114,216,116,0,124,2,100,6,131,2,114,222,122,14,124,
+ 2,160,13,124,0,161,1,125,7,87,0,110,18,4,0,116,
+ 2,121,202,1,0,1,0,1,0,89,0,113,222,48,0,124,
+ 7,114,222,103,0,124,4,95,14,110,6,124,3,124,4,95,
+ 14,124,4,106,14,103,0,107,2,144,1,114,8,124,1,144,
+ 1,114,8,116,15,124,1,131,1,100,7,25,0,125,8,124,
+ 4,106,14,160,16,124,8,161,1,1,0,124,4,83,0,41,
+ 8,97,61,1,0,0,82,101,116,117,114,110,32,97,32,109,
+ 111,100,117,108,101,32,115,112,101,99,32,98,97,115,101,100,
+ 32,111,110,32,97,32,102,105,108,101,32,108,111,99,97,116,
+ 105,111,110,46,10,10,32,32,32,32,84,111,32,105,110,100,
+ 105,99,97,116,101,32,116,104,97,116,32,116,104,101,32,109,
+ 111,100,117,108,101,32,105,115,32,97,32,112,97,99,107,97,
+ 103,101,44,32,115,101,116,10,32,32,32,32,115,117,98,109,
+ 111,100,117,108,101,95,115,101,97,114,99,104,95,108,111,99,
+ 97,116,105,111,110,115,32,116,111,32,97,32,108,105,115,116,
+ 32,111,102,32,100,105,114,101,99,116,111,114,121,32,112,97,
+ 116,104,115,46,32,32,65,110,10,32,32,32,32,101,109,112,
+ 116,121,32,108,105,115,116,32,105,115,32,115,117,102,102,105,
+ 99,105,101,110,116,44,32,116,104,111,117,103,104,32,105,116,
+ 115,32,110,111,116,32,111,116,104,101,114,119,105,115,101,32,
+ 117,115,101,102,117,108,32,116,111,32,116,104,101,10,32,32,
+ 32,32,105,109,112,111,114,116,32,115,121,115,116,101,109,46,
+ 10,10,32,32,32,32,84,104,101,32,108,111,97,100,101,114,
+ 32,109,117,115,116,32,116,97,107,101,32,97,32,115,112,101,
+ 99,32,97,115,32,105,116,115,32,111,110,108,121,32,95,95,
+ 105,110,105,116,95,95,40,41,32,97,114,103,46,10,10,32,
+ 32,32,32,78,122,9,60,117,110,107,110,111,119,110,62,218,
+ 12,103,101,116,95,102,105,108,101,110,97,109,101,169,1,218,
+ 6,111,114,105,103,105,110,84,218,10,105,115,95,112,97,99,
+ 107,97,103,101,114,72,0,0,0,41,17,114,128,0,0,0,
+ 114,179,0,0,0,114,117,0,0,0,114,2,0,0,0,114,
+ 78,0,0,0,114,134,0,0,0,218,10,77,111,100,117,108,
+ 101,83,112,101,99,90,13,95,115,101,116,95,102,105,108,101,
+ 97,116,116,114,218,27,95,103,101,116,95,115,117,112,112,111,
+ 114,116,101,100,95,102,105,108,101,95,108,111,97,100,101,114,
+ 115,114,110,0,0,0,114,111,0,0,0,114,140,0,0,0,
+ 218,9,95,80,79,80,85,76,65,84,69,114,182,0,0,0,
+ 114,178,0,0,0,114,46,0,0,0,218,6,97,112,112,101,
+ 110,100,41,9,114,116,0,0,0,90,8,108,111,99,97,116,
+ 105,111,110,114,140,0,0,0,114,178,0,0,0,218,4,115,
+ 112,101,99,218,12,108,111,97,100,101,114,95,99,108,97,115,
+ 115,218,8,115,117,102,102,105,120,101,115,114,182,0,0,0,
+ 90,7,100,105,114,110,97,109,101,114,3,0,0,0,114,3,
+ 0,0,0,114,6,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,123,2,0,0,115,62,0,0,0,0,12,8,4,4,1,
+ 10,2,2,1,14,1,12,1,8,2,10,8,16,1,6,3,
+ 8,1,14,1,14,1,10,1,6,1,6,2,4,3,8,2,
+ 10,1,2,1,14,1,12,1,6,2,4,1,8,2,6,1,
+ 12,1,6,1,12,1,12,2,114,190,0,0,0,99,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,
+ 0,0,64,0,0,0,115,80,0,0,0,101,0,90,1,100,
+ 0,90,2,100,1,90,3,100,2,90,4,100,3,90,5,100,
+ 4,90,6,101,7,100,5,100,6,132,0,131,1,90,8,101,
+ 7,100,7,100,8,132,0,131,1,90,9,101,7,100,14,100,
+ 10,100,11,132,1,131,1,90,10,101,7,100,15,100,12,100,
+ 13,132,1,131,1,90,11,100,9,83,0,41,16,218,21,87,
+ 105,110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,
+ 110,100,101,114,122,62,77,101,116,97,32,112,97,116,104,32,
+ 102,105,110,100,101,114,32,102,111,114,32,109,111,100,117,108,
+ 101,115,32,100,101,99,108,97,114,101,100,32,105,110,32,116,
+ 104,101,32,87,105,110,100,111,119,115,32,114,101,103,105,115,
+ 116,114,121,46,122,59,83,111,102,116,119,97,114,101,92,80,
+ 121,116,104,111,110,92,80,121,116,104,111,110,67,111,114,101,
+ 92,123,115,121,115,95,118,101,114,115,105,111,110,125,92,77,
+ 111,100,117,108,101,115,92,123,102,117,108,108,110,97,109,101,
+ 125,122,65,83,111,102,116,119,97,114,101,92,80,121,116,104,
+ 111,110,92,80,121,116,104,111,110,67,111,114,101,92,123,115,
+ 121,115,95,118,101,114,115,105,111,110,125,92,77,111,100,117,
+ 108,101,115,92,123,102,117,108,108,110,97,109,101,125,92,68,
+ 101,98,117,103,70,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,8,0,0,0,67,0,0,0,115,54,
+ 0,0,0,122,16,116,0,160,1,116,0,106,2,124,1,161,
+ 2,87,0,83,0,4,0,116,3,121,48,1,0,1,0,1,
+ 0,116,0,160,1,116,0,106,4,124,1,161,2,6,0,89,
+ 0,83,0,48,0,100,0,83,0,114,109,0,0,0,41,5,
+ 218,7,95,119,105,110,114,101,103,90,7,79,112,101,110,75,
+ 101,121,90,17,72,75,69,89,95,67,85,82,82,69,78,84,
+ 95,85,83,69,82,114,49,0,0,0,90,18,72,75,69,89,
+ 95,76,79,67,65,76,95,77,65,67,72,73,78,69,41,2,
+ 218,3,99,108,115,114,5,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,218,14,95,111,112,101,110,
+ 95,114,101,103,105,115,116,114,121,203,2,0,0,115,8,0,
+ 0,0,0,2,2,1,16,1,12,1,122,36,87,105,110,100,
+ 111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,
+ 114,46,95,111,112,101,110,95,114,101,103,105,115,116,114,121,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,6,0,0,
+ 0,8,0,0,0,67,0,0,0,115,132,0,0,0,124,0,
+ 106,0,114,14,124,0,106,1,125,2,110,6,124,0,106,2,
+ 125,2,124,2,106,3,124,1,100,1,116,4,106,5,100,0,
+ 100,2,133,2,25,0,22,0,100,3,141,2,125,3,122,58,
+ 124,0,160,6,124,3,161,1,143,28,125,4,116,7,160,8,
+ 124,4,100,4,161,2,125,5,87,0,100,0,4,0,4,0,
+ 131,3,1,0,110,16,49,0,115,94,48,0,1,0,1,0,
+ 1,0,89,0,1,0,87,0,110,20,4,0,116,9,121,126,
+ 1,0,1,0,1,0,89,0,100,0,83,0,48,0,124,5,
+ 83,0,41,5,78,122,5,37,100,46,37,100,114,27,0,0,
+ 0,41,2,114,139,0,0,0,90,11,115,121,115,95,118,101,
+ 114,115,105,111,110,114,39,0,0,0,41,10,218,11,68,69,
+ 66,85,71,95,66,85,73,76,68,218,18,82,69,71,73,83,
+ 84,82,89,95,75,69,89,95,68,69,66,85,71,218,12,82,
+ 69,71,73,83,84,82,89,95,75,69,89,114,61,0,0,0,
+ 114,8,0,0,0,218,12,118,101,114,115,105,111,110,95,105,
+ 110,102,111,114,194,0,0,0,114,192,0,0,0,90,10,81,
+ 117,101,114,121,86,97,108,117,101,114,49,0,0,0,41,6,
+ 114,193,0,0,0,114,139,0,0,0,90,12,114,101,103,105,
+ 115,116,114,121,95,107,101,121,114,5,0,0,0,90,4,104,
+ 107,101,121,218,8,102,105,108,101,112,97,116,104,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,218,16,95,115,
+ 101,97,114,99,104,95,114,101,103,105,115,116,114,121,210,2,
+ 0,0,115,24,0,0,0,0,2,6,1,8,2,6,1,6,
+ 1,16,255,6,2,2,1,12,1,46,1,12,1,8,1,122,
+ 38,87,105,110,100,111,119,115,82,101,103,105,115,116,114,121,
+ 70,105,110,100,101,114,46,95,115,101,97,114,99,104,95,114,
+ 101,103,105,115,116,114,121,78,99,4,0,0,0,0,0,0,
+ 0,0,0,0,0,8,0,0,0,8,0,0,0,67,0,0,
+ 0,115,120,0,0,0,124,0,160,0,124,1,161,1,125,4,
+ 124,4,100,0,117,0,114,22,100,0,83,0,122,12,116,1,
+ 124,4,131,1,1,0,87,0,110,20,4,0,116,2,121,54,
+ 1,0,1,0,1,0,89,0,100,0,83,0,48,0,116,3,
+ 131,0,68,0,93,52,92,2,125,5,125,6,124,4,160,4,
+ 116,5,124,6,131,1,161,1,114,62,116,6,106,7,124,1,
+ 124,5,124,1,124,4,131,2,124,4,100,1,141,3,125,7,
+ 124,7,2,0,1,0,83,0,113,62,100,0,83,0,41,2,
+ 78,114,180,0,0,0,41,8,114,200,0,0,0,114,48,0,
+ 0,0,114,49,0,0,0,114,184,0,0,0,114,110,0,0,
+ 0,114,111,0,0,0,114,134,0,0,0,218,16,115,112,101,
+ 99,95,102,114,111,109,95,108,111,97,100,101,114,41,8,114,
+ 193,0,0,0,114,139,0,0,0,114,43,0,0,0,218,6,
+ 116,97,114,103,101,116,114,199,0,0,0,114,140,0,0,0,
+ 114,189,0,0,0,114,187,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,218,9,102,105,110,100,95,
+ 115,112,101,99,225,2,0,0,115,28,0,0,0,0,2,10,
+ 1,8,1,4,1,2,1,12,1,12,1,8,1,14,1,14,
+ 1,6,1,8,1,2,254,6,3,122,31,87,105,110,100,111,
+ 119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,
+ 46,102,105,110,100,95,115,112,101,99,99,3,0,0,0,0,
+ 0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,
+ 0,0,0,115,34,0,0,0,124,0,160,0,124,1,124,2,
+ 161,2,125,3,124,3,100,1,117,1,114,26,124,3,106,1,
+ 83,0,100,1,83,0,100,1,83,0,41,2,122,108,70,105,
+ 110,100,32,109,111,100,117,108,101,32,110,97,109,101,100,32,
+ 105,110,32,116,104,101,32,114,101,103,105,115,116,114,121,46,
+ 10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
+ 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
+ 116,101,100,46,32,32,85,115,101,32,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,169,2,114,203,0,
+ 0,0,114,140,0,0,0,169,4,114,193,0,0,0,114,139,
+ 0,0,0,114,43,0,0,0,114,187,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,218,11,102,105,
+ 110,100,95,109,111,100,117,108,101,241,2,0,0,115,8,0,
+ 0,0,0,7,12,1,8,1,6,2,122,33,87,105,110,100,
+ 111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,
+ 114,46,102,105,110,100,95,109,111,100,117,108,101,41,2,78,
+ 78,41,1,78,41,12,114,125,0,0,0,114,124,0,0,0,
+ 114,126,0,0,0,114,127,0,0,0,114,197,0,0,0,114,
+ 196,0,0,0,114,195,0,0,0,218,11,99,108,97,115,115,
+ 109,101,116,104,111,100,114,194,0,0,0,114,200,0,0,0,
+ 114,203,0,0,0,114,206,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,191,
+ 0,0,0,191,2,0,0,115,28,0,0,0,8,2,4,3,
+ 2,255,2,4,2,255,2,3,4,2,2,1,10,6,2,1,
+ 10,14,2,1,12,15,2,1,114,191,0,0,0,99,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,64,0,0,0,115,48,0,0,0,101,0,90,1,100,
+ 0,90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,
+ 4,100,5,132,0,90,5,100,6,100,7,132,0,90,6,100,
+ 8,100,9,132,0,90,7,100,10,83,0,41,11,218,13,95,
+ 76,111,97,100,101,114,66,97,115,105,99,115,122,83,66,97,
+ 115,101,32,99,108,97,115,115,32,111,102,32,99,111,109,109,
+ 111,110,32,99,111,100,101,32,110,101,101,100,101,100,32,98,
+ 121,32,98,111,116,104,32,83,111,117,114,99,101,76,111,97,
+ 100,101,114,32,97,110,100,10,32,32,32,32,83,111,117,114,
+ 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,
+ 46,99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,
+ 0,0,4,0,0,0,67,0,0,0,115,64,0,0,0,116,
+ 0,124,0,160,1,124,1,161,1,131,1,100,1,25,0,125,
+ 2,124,2,160,2,100,2,100,1,161,2,100,3,25,0,125,
+ 3,124,1,160,3,100,2,161,1,100,4,25,0,125,4,124,
+ 3,100,5,107,2,111,62,124,4,100,5,107,3,83,0,41,
+ 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,
+ 110,103,32,105,102,10,32,32,32,32,32,32,32,32,116,104,
+ 101,32,112,97,116,104,32,114,101,116,117,114,110,101,100,32,
+ 98,121,32,103,101,116,95,102,105,108,101,110,97,109,101,32,
+ 104,97,115,32,97,32,102,105,108,101,110,97,109,101,32,111,
+ 102,32,39,95,95,105,110,105,116,95,95,46,112,121,39,46,
+ 114,38,0,0,0,114,70,0,0,0,114,72,0,0,0,114,
+ 27,0,0,0,218,8,95,95,105,110,105,116,95,95,41,4,
+ 114,46,0,0,0,114,179,0,0,0,114,42,0,0,0,114,
+ 40,0,0,0,41,5,114,118,0,0,0,114,139,0,0,0,
+ 114,96,0,0,0,90,13,102,105,108,101,110,97,109,101,95,
+ 98,97,115,101,90,9,116,97,105,108,95,110,97,109,101,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,182,
+ 0,0,0,4,3,0,0,115,8,0,0,0,0,3,18,1,
+ 16,1,14,1,122,24,95,76,111,97,100,101,114,66,97,115,
+ 105,99,115,46,105,115,95,112,97,99,107,97,103,101,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,
+ 0,0,0,67,0,0,0,115,4,0,0,0,100,1,83,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,
+ 3,0,0,0,169,2,114,118,0,0,0,114,187,0,0,0,
114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
- 15,95,99,97,99,104,101,95,98,121,116,101,99,111,100,101,
- 50,3,0,0,115,2,0,0,0,0,8,122,28,83,111,117,
- 114,99,101,76,111,97,100,101,114,46,95,99,97,99,104,101,
- 95,98,121,116,101,99,111,100,101,99,3,0,0,0,0,0,
- 0,0,0,0,0,0,3,0,0,0,1,0,0,0,67,0,
- 0,0,115,4,0,0,0,100,1,83,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,3,0,0,0,41,3,114,118,0,
- 0,0,114,43,0,0,0,114,25,0,0,0,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,114,225,0,0,0,
- 60,3,0,0,115,2,0,0,0,0,1,122,21,83,111,117,
- 114,99,101,76,111,97,100,101,114,46,115,101,116,95,100,97,
- 116,97,99,2,0,0,0,0,0,0,0,0,0,0,0,5,
- 0,0,0,10,0,0,0,67,0,0,0,115,84,0,0,0,
- 124,0,160,0,124,1,161,1,125,2,122,14,124,0,160,1,
- 124,2,161,1,125,3,87,0,110,50,4,0,116,2,121,74,
- 1,0,125,4,1,0,122,26,116,3,100,1,124,1,100,2,
- 141,2,124,4,130,2,87,0,89,0,100,3,125,4,126,4,
- 110,10,100,3,125,4,126,4,48,0,48,0,116,4,124,3,
- 131,1,83,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,115,0,0,0,78,41,5,114,179,0,
- 0,0,218,8,103,101,116,95,100,97,116,97,114,49,0,0,
- 0,114,117,0,0,0,114,176,0,0,0,41,5,114,118,0,
- 0,0,114,139,0,0,0,114,43,0,0,0,114,174,0,0,
- 0,218,3,101,120,99,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,218,10,103,101,116,95,115,111,117,114,99,
- 101,67,3,0,0,115,20,0,0,0,0,2,10,1,2,1,
- 14,1,14,1,4,1,2,255,4,1,2,255,24,2,122,23,
- 83,111,117,114,99,101,76,111,97,100,101,114,46,103,101,116,
- 95,115,111,117,114,99,101,114,104,0,0,0,41,1,218,9,
- 95,111,112,116,105,109,105,122,101,99,3,0,0,0,0,0,
- 0,0,1,0,0,0,4,0,0,0,8,0,0,0,67,0,
- 0,0,115,22,0,0,0,116,0,106,1,116,2,124,1,124,
- 2,100,1,100,2,124,3,100,3,141,6,83,0,41,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,215,0,0,0,84,41,2,218,12,100,111,110,
- 116,95,105,110,104,101,114,105,116,114,83,0,0,0,41,3,
- 114,134,0,0,0,114,214,0,0,0,218,7,99,111,109,112,
- 105,108,101,41,4,114,118,0,0,0,114,25,0,0,0,114,
- 43,0,0,0,114,230,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,218,14,115,111,117,114,99,101,
- 95,116,111,95,99,111,100,101,77,3,0,0,115,8,0,0,
- 0,0,5,12,1,2,0,2,255,122,27,83,111,117,114,99,
- 101,76,111,97,100,101,114,46,115,111,117,114,99,101,95,116,
- 111,95,99,111,100,101,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,15,0,0,0,9,0,0,0,67,0,0,0,115,
- 24,2,0,0,124,0,160,0,124,1,161,1,125,2,100,1,
- 125,3,100,1,125,4,100,1,125,5,100,2,125,6,100,3,
- 125,7,122,12,116,1,124,2,131,1,125,8,87,0,110,24,
- 4,0,116,2,121,66,1,0,1,0,1,0,100,1,125,8,
- 89,0,144,1,110,42,48,0,122,14,124,0,160,3,124,2,
- 161,1,125,9,87,0,110,20,4,0,116,4,121,102,1,0,
- 1,0,1,0,89,0,144,1,110,6,48,0,116,5,124,9,
- 100,4,25,0,131,1,125,3,122,14,124,0,160,6,124,8,
- 161,1,125,10,87,0,110,18,4,0,116,4,121,148,1,0,
- 1,0,1,0,89,0,110,216,48,0,124,1,124,8,100,5,
- 156,2,125,11,122,148,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,
- 144,1,114,30,124,12,100,9,64,0,100,8,107,3,125,7,
- 116,9,106,10,100,10,107,3,144,1,114,50,124,7,115,248,
- 116,9,106,10,100,11,107,2,144,1,114,50,124,0,160,6,
- 124,2,161,1,125,4,116,9,160,11,116,12,124,4,161,2,
- 125,5,116,13,124,10,124,5,124,1,124,11,131,4,1,0,
- 110,20,116,14,124,10,124,3,124,9,100,12,25,0,124,1,
- 124,11,131,5,1,0,87,0,110,24,4,0,116,15,116,16,
- 102,2,144,1,121,76,1,0,1,0,1,0,89,0,110,32,
- 48,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,144,1,114,128,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,2,115,20,124,8,100,1,117,1,144,2,114,20,124,3,
- 100,1,117,1,144,2,114,20,124,6,144,1,114,220,124,5,
- 100,1,117,0,144,1,114,206,116,9,160,11,124,4,161,1,
- 125,5,116,23,124,14,124,5,124,7,131,3,125,10,110,16,
- 116,24,124,14,124,3,116,25,124,4,131,1,131,3,125,10,
- 122,18,124,0,160,26,124,2,124,8,124,10,161,3,1,0,
- 87,0,110,20,4,0,116,2,144,2,121,18,1,0,1,0,
- 1,0,89,0,110,2,48,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,169,0,0,0,114,159,0,0,0,114,145,0,0,0,
- 114,38,0,0,0,114,72,0,0,0,114,27,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,116,0,0,0,114,106,0,0,0,114,
- 107,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,179,0,0,0,
- 114,97,0,0,0,114,81,0,0,0,114,224,0,0,0,114,
- 49,0,0,0,114,17,0,0,0,114,227,0,0,0,114,152,
- 0,0,0,218,10,109,101,109,111,114,121,118,105,101,119,114,
- 163,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,157,0,0,0,
- 218,17,95,82,65,87,95,77,65,71,73,67,95,78,85,77,
- 66,69,82,114,158,0,0,0,114,156,0,0,0,114,117,0,
- 0,0,114,150,0,0,0,114,134,0,0,0,114,149,0,0,
- 0,114,165,0,0,0,114,233,0,0,0,114,8,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,171,0,0,0,114,170,0,0,0,114,
- 22,0,0,0,114,226,0,0,0,41,15,114,118,0,0,0,
- 114,139,0,0,0,114,107,0,0,0,114,154,0,0,0,114,
- 174,0,0,0,114,157,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,106,0,0,0,218,2,115,116,114,25,0,0,
- 0,114,151,0,0,0,114,82,0,0,0,90,10,98,121,116,
- 101,115,95,100,97,116,97,90,11,99,111,100,101,95,111,98,
- 106,101,99,116,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,114,213,0,0,0,85,3,0,0,115,152,0,0,
- 0,0,7,10,1,4,1,4,1,4,1,4,1,4,1,2,
- 1,12,1,12,1,12,2,2,1,14,1,12,1,8,2,12,
- 1,2,1,14,1,12,1,6,3,2,1,2,254,6,4,2,
- 1,12,1,16,1,12,1,6,1,12,1,12,1,2,255,2,
- 2,8,254,4,3,10,1,4,1,2,1,2,254,4,4,8,
- 1,2,255,6,3,2,1,2,1,2,1,6,1,2,1,2,
- 251,8,7,18,1,6,2,8,1,2,255,4,2,6,1,2,
- 1,2,254,6,3,10,1,10,1,12,1,12,1,18,1,6,
- 255,4,2,6,1,10,1,10,1,14,2,6,1,6,255,4,
- 2,2,1,18,1,14,1,6,1,122,21,83,111,117,114,99,
- 101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,
- 78,41,10,114,125,0,0,0,114,124,0,0,0,114,126,0,
- 0,0,114,223,0,0,0,114,224,0,0,0,114,226,0,0,
- 0,114,225,0,0,0,114,229,0,0,0,114,233,0,0,0,
- 114,213,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,114,221,0,0,0,26,3,
- 0,0,115,14,0,0,0,8,2,8,8,8,14,8,10,8,
- 7,8,10,14,8,114,221,0,0,0,99,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,
- 0,0,0,115,124,0,0,0,101,0,90,1,100,0,90,2,
- 100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,5,
- 132,0,90,5,100,6,100,7,132,0,90,6,101,7,135,0,
- 102,1,100,8,100,9,132,8,131,1,90,8,101,7,100,10,
- 100,11,132,0,131,1,90,9,100,12,100,13,132,0,90,10,
- 101,7,100,14,100,15,132,0,131,1,90,11,100,16,100,17,
- 132,0,90,12,100,18,100,19,132,0,90,13,100,20,100,21,
- 132,0,90,14,100,22,100,23,132,0,90,15,135,0,4,0,
- 90,16,83,0,41,24,218,10,70,105,108,101,76,111,97,100,
- 101,114,122,103,66,97,115,101,32,102,105,108,101,32,108,111,
- 97,100,101,114,32,99,108,97,115,115,32,119,104,105,99,104,
- 32,105,109,112,108,101,109,101,110,116,115,32,116,104,101,32,
- 108,111,97,100,101,114,32,112,114,111,116,111,99,111,108,32,
- 109,101,116,104,111,100,115,32,116,104,97,116,10,32,32,32,
- 32,114,101,113,117,105,114,101,32,102,105,108,101,32,115,121,
- 115,116,101,109,32,117,115,97,103,101,46,99,3,0,0,0,
- 0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,
- 67,0,0,0,115,16,0,0,0,124,1,124,0,95,0,124,
- 2,124,0,95,1,100,1,83,0,41,2,122,75,67,97,99,
- 104,101,32,116,104,101,32,109,111,100,117,108,101,32,110,97,
- 109,101,32,97,110,100,32,116,104,101,32,112,97,116,104,32,
- 116,111,32,116,104,101,32,102,105,108,101,32,102,111,117,110,
- 100,32,98,121,32,116,104,101,10,32,32,32,32,32,32,32,
- 32,102,105,110,100,101,114,46,78,114,159,0,0,0,41,3,
- 114,118,0,0,0,114,139,0,0,0,114,43,0,0,0,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,209,
- 0,0,0,175,3,0,0,115,4,0,0,0,0,3,6,1,
- 122,19,70,105,108,101,76,111,97,100,101,114,46,95,95,105,
- 110,105,116,95,95,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,24,
- 0,0,0,124,0,106,0,124,1,106,0,107,2,111,22,124,
- 0,106,1,124,1,106,1,107,2,83,0,114,109,0,0,0,
- 169,2,218,9,95,95,99,108,97,115,115,95,95,114,131,0,
- 0,0,169,2,114,118,0,0,0,90,5,111,116,104,101,114,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
- 6,95,95,101,113,95,95,181,3,0,0,115,6,0,0,0,
- 0,1,12,1,10,255,122,17,70,105,108,101,76,111,97,100,
- 101,114,46,95,95,101,113,95,95,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
- 0,0,115,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,109,0,0,0,
- 169,3,218,4,104,97,115,104,114,116,0,0,0,114,43,0,
- 0,0,169,1,114,118,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,218,8,95,95,104,97,115,104,
- 95,95,185,3,0,0,115,2,0,0,0,0,1,122,19,70,
- 105,108,101,76,111,97,100,101,114,46,95,95,104,97,115,104,
- 95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,3,0,0,0,3,0,0,0,115,16,0,0,0,
- 116,0,116,1,124,0,131,2,160,2,124,1,161,1,83,0,
- 41,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,239,0,0,0,114,220,0,0,0,114,219,0,0,0,
- 169,1,114,241,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,114,220,0,0,0,188,3,0,0,115,2,0,0,0,0,
- 10,122,22,70,105,108,101,76,111,97,100,101,114,46,108,111,
- 97,100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
- 0,0,115,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,47,0,0,0,
- 114,219,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,179,0,0,0,200,3,0,0,115,2,0,
- 0,0,0,3,122,23,70,105,108,101,76,111,97,100,101,114,
- 46,103,101,116,95,102,105,108,101,110,97,109,101,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,
- 0,0,67,0,0,0,115,126,0,0,0,116,0,124,0,116,
- 1,116,2,102,2,131,2,114,70,116,3,160,4,116,5,124,
- 1,131,1,161,1,143,24,125,2,124,2,160,6,161,0,87,
- 0,2,0,100,1,4,0,4,0,131,3,1,0,83,0,49,
- 0,115,58,48,0,1,0,1,0,1,0,89,0,1,0,110,
- 52,116,3,160,7,124,1,100,2,161,2,143,24,125,2,124,
- 2,160,6,161,0,87,0,2,0,100,1,4,0,4,0,131,
- 3,1,0,83,0,49,0,115,112,48,0,1,0,1,0,1,
- 0,89,0,1,0,100,1,83,0,41,3,122,39,82,101,116,
- 117,114,110,32,116,104,101,32,100,97,116,97,32,102,114,111,
- 109,32,112,97,116,104,32,97,115,32,114,97,119,32,98,121,
- 116,101,115,46,78,218,1,114,41,8,114,161,0,0,0,114,
- 221,0,0,0,218,19,69,120,116,101,110,115,105,111,110,70,
- 105,108,101,76,111,97,100,101,114,114,63,0,0,0,90,9,
- 111,112,101,110,95,99,111,100,101,114,84,0,0,0,90,4,
- 114,101,97,100,114,64,0,0,0,41,3,114,118,0,0,0,
- 114,43,0,0,0,114,67,0,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,114,227,0,0,0,205,3,
- 0,0,115,10,0,0,0,0,2,14,1,16,1,40,2,14,
- 1,122,19,70,105,108,101,76,111,97,100,101,114,46,103,101,
- 116,95,100,97,116,97,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
- 18,0,0,0,124,0,160,0,124,1,161,1,114,14,124,0,
- 83,0,100,0,83,0,114,109,0,0,0,41,1,114,182,0,
- 0,0,169,2,114,118,0,0,0,114,216,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,218,19,103,
- 101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100,
- 101,114,216,3,0,0,115,6,0,0,0,0,2,10,1,4,
- 1,122,30,70,105,108,101,76,111,97,100,101,114,46,103,101,
- 116,95,114,101,115,111,117,114,99,101,95,114,101,97,100,101,
- 114,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,
- 0,0,4,0,0,0,67,0,0,0,115,32,0,0,0,116,
- 0,116,1,124,0,106,2,131,1,100,1,25,0,124,1,131,
- 2,125,2,116,3,160,4,124,2,100,2,161,2,83,0,41,
- 3,78,114,72,0,0,0,114,251,0,0,0,41,5,114,37,
- 0,0,0,114,46,0,0,0,114,43,0,0,0,114,63,0,
- 0,0,114,64,0,0,0,169,3,114,118,0,0,0,90,8,
- 114,101,115,111,117,114,99,101,114,43,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,218,13,111,112,
- 101,110,95,114,101,115,111,117,114,99,101,222,3,0,0,115,
- 4,0,0,0,0,1,20,1,122,24,70,105,108,101,76,111,
- 97,100,101,114,46,111,112,101,110,95,114,101,115,111,117,114,
- 99,101,99,2,0,0,0,0,0,0,0,0,0,0,0,3,
- 0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,
- 124,0,160,0,124,1,161,1,115,14,116,1,130,1,116,2,
- 116,3,124,0,106,4,131,1,100,1,25,0,124,1,131,2,
- 125,2,124,2,83,0,169,2,78,114,72,0,0,0,41,5,
- 218,11,105,115,95,114,101,115,111,117,114,99,101,218,17,70,
- 105,108,101,78,111,116,70,111,117,110,100,69,114,114,111,114,
- 114,37,0,0,0,114,46,0,0,0,114,43,0,0,0,114,
- 255,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,218,13,114,101,115,111,117,114,99,101,95,112,97,
- 116,104,226,3,0,0,115,8,0,0,0,0,1,10,1,4,
- 1,20,1,122,24,70,105,108,101,76,111,97,100,101,114,46,
- 114,101,115,111,117,114,99,101,95,112,97,116,104,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,
- 0,0,67,0,0,0,115,40,0,0,0,116,0,124,1,118,
- 0,114,12,100,1,83,0,116,1,116,2,124,0,106,3,131,
- 1,100,2,25,0,124,1,131,2,125,2,116,4,124,2,131,
- 1,83,0,41,3,78,70,114,72,0,0,0,41,5,114,34,
- 0,0,0,114,37,0,0,0,114,46,0,0,0,114,43,0,
- 0,0,114,53,0,0,0,169,3,114,118,0,0,0,114,116,
- 0,0,0,114,43,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,114,2,1,0,0,232,3,0,0,
- 115,8,0,0,0,0,1,8,1,4,1,20,1,122,22,70,
- 105,108,101,76,111,97,100,101,114,46,105,115,95,114,101,115,
- 111,117,114,99,101,99,1,0,0,0,0,0,0,0,0,0,
- 0,0,1,0,0,0,5,0,0,0,67,0,0,0,115,24,
- 0,0,0,116,0,116,1,160,2,116,3,124,0,106,4,131,
- 1,100,1,25,0,161,1,131,1,83,0,114,1,1,0,0,
- 41,5,218,4,105,116,101,114,114,2,0,0,0,218,7,108,
- 105,115,116,100,105,114,114,46,0,0,0,114,43,0,0,0,
- 114,246,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,218,8,99,111,110,116,101,110,116,115,238,3,
- 0,0,115,2,0,0,0,0,1,122,19,70,105,108,101,76,
- 111,97,100,101,114,46,99,111,110,116,101,110,116,115,41,17,
- 114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,114,
- 127,0,0,0,114,209,0,0,0,114,243,0,0,0,114,247,
- 0,0,0,114,136,0,0,0,114,220,0,0,0,114,179,0,
- 0,0,114,227,0,0,0,114,254,0,0,0,114,0,1,0,
- 0,114,4,1,0,0,114,2,1,0,0,114,8,1,0,0,
- 90,13,95,95,99,108,97,115,115,99,101,108,108,95,95,114,
- 3,0,0,0,114,3,0,0,0,114,249,0,0,0,114,6,
- 0,0,0,114,239,0,0,0,170,3,0,0,115,30,0,0,
- 0,8,2,4,3,8,6,8,4,8,3,2,1,14,11,2,
- 1,10,4,8,11,2,1,10,5,8,4,8,6,8,6,114,
- 239,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,64,0,0,0,115,46,0,
- 0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,
- 100,3,132,0,90,4,100,4,100,5,132,0,90,5,100,6,
- 100,7,156,1,100,8,100,9,132,2,90,6,100,10,83,0,
- 41,11,218,16,83,111,117,114,99,101,70,105,108,101,76,111,
- 97,100,101,114,122,62,67,111,110,99,114,101,116,101,32,105,
- 109,112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,
- 32,83,111,117,114,99,101,76,111,97,100,101,114,32,117,115,
- 105,110,103,32,116,104,101,32,102,105,108,101,32,115,121,115,
- 116,101,109,46,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,3,0,0,0,3,0,0,0,67,0,0,0,115,22,0,
- 0,0,116,0,124,1,131,1,125,2,124,2,106,1,124,2,
- 106,2,100,1,156,2,83,0,41,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,
- 169,0,0,0,114,234,0,0,0,41,3,114,48,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,118,0,0,0,114,43,0,0,0,114,
- 238,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,114,224,0,0,0,246,3,0,0,115,4,0,0,
- 0,0,2,8,1,122,27,83,111,117,114,99,101,70,105,108,
- 101,76,111,97,100,101,114,46,112,97,116,104,95,115,116,97,
- 116,115,99,4,0,0,0,0,0,0,0,0,0,0,0,5,
- 0,0,0,5,0,0,0,67,0,0,0,115,24,0,0,0,
- 116,0,124,1,131,1,125,4,124,0,106,1,124,2,124,3,
- 124,4,100,1,141,3,83,0,41,2,78,169,1,218,5,95,
- 109,111,100,101,41,2,114,114,0,0,0,114,225,0,0,0,
- 41,5,114,118,0,0,0,114,107,0,0,0,114,106,0,0,
- 0,114,25,0,0,0,114,51,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,226,0,0,0,251,
- 3,0,0,115,4,0,0,0,0,2,8,1,122,32,83,111,
- 117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,95,
- 99,97,99,104,101,95,98,121,116,101,99,111,100,101,114,59,
- 0,0,0,114,11,1,0,0,99,3,0,0,0,0,0,0,
- 0,1,0,0,0,9,0,0,0,11,0,0,0,67,0,0,
- 0,115,252,0,0,0,116,0,124,1,131,1,92,2,125,4,
- 125,5,103,0,125,6,124,4,114,52,116,1,124,4,131,1,
- 115,52,116,0,124,4,131,1,92,2,125,4,125,7,124,6,
- 160,2,124,7,161,1,1,0,113,16,116,3,124,6,131,1,
- 68,0,93,104,125,7,116,4,124,4,124,7,131,2,125,4,
- 122,14,116,5,160,6,124,4,161,1,1,0,87,0,113,60,
- 4,0,116,7,121,110,1,0,1,0,1,0,89,0,113,60,
- 89,0,113,60,4,0,116,8,121,162,1,0,125,8,1,0,
- 122,30,116,9,160,10,100,1,124,4,124,8,161,3,1,0,
- 87,0,89,0,100,2,125,8,126,8,1,0,100,2,83,0,
- 100,2,125,8,126,8,48,0,48,0,113,60,122,28,116,11,
- 124,1,124,2,124,3,131,3,1,0,116,9,160,10,100,3,
- 124,1,161,2,1,0,87,0,110,52,4,0,116,8,144,0,
- 121,246,1,0,125,8,1,0,122,26,116,9,160,10,100,1,
- 124,1,124,8,161,3,1,0,87,0,89,0,100,2,125,8,
- 126,8,110,10,100,2,125,8,126,8,48,0,48,0,100,2,
- 83,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,
- 46,0,0,0,114,55,0,0,0,114,186,0,0,0,114,41,
- 0,0,0,114,37,0,0,0,114,2,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,49,0,0,0,114,134,0,0,0,114,
- 149,0,0,0,114,68,0,0,0,41,9,114,118,0,0,0,
- 114,43,0,0,0,114,25,0,0,0,114,12,1,0,0,218,
- 6,112,97,114,101,110,116,114,96,0,0,0,114,36,0,0,
- 0,114,32,0,0,0,114,228,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,225,0,0,0,0,
- 4,0,0,115,48,0,0,0,0,2,12,1,4,2,12,1,
- 12,1,12,2,12,1,10,1,2,1,14,1,12,2,8,1,
- 14,3,6,1,2,0,2,255,4,2,28,1,2,1,12,1,
- 16,1,16,2,8,1,2,255,122,25,83,111,117,114,99,101,
- 70,105,108,101,76,111,97,100,101,114,46,115,101,116,95,100,
- 97,116,97,78,41,7,114,125,0,0,0,114,124,0,0,0,
- 114,126,0,0,0,114,127,0,0,0,114,224,0,0,0,114,
- 226,0,0,0,114,225,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,114,9,1,
- 0,0,242,3,0,0,115,8,0,0,0,8,2,4,2,8,
- 5,8,5,114,9,1,0,0,99,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,
- 0,115,32,0,0,0,101,0,90,1,100,0,90,2,100,1,
- 90,3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,
- 90,5,100,6,83,0,41,7,218,20,83,111,117,114,99,101,
- 108,101,115,115,70,105,108,101,76,111,97,100,101,114,122,45,
- 76,111,97,100,101,114,32,119,104,105,99,104,32,104,97,110,
- 100,108,101,115,32,115,111,117,114,99,101,108,101,115,115,32,
- 102,105,108,101,32,105,109,112,111,114,116,115,46,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,
- 0,0,67,0,0,0,115,68,0,0,0,124,0,160,0,124,
- 1,161,1,125,2,124,0,160,1,124,2,161,1,125,3,124,
- 1,124,2,100,1,156,2,125,4,116,2,124,3,124,1,124,
- 4,131,3,1,0,116,3,116,4,124,3,131,1,100,2,100,
- 0,133,2,25,0,124,1,124,2,100,3,141,3,83,0,41,
- 4,78,114,159,0,0,0,114,145,0,0,0,41,2,114,116,
- 0,0,0,114,106,0,0,0,41,5,114,179,0,0,0,114,
- 227,0,0,0,114,152,0,0,0,114,165,0,0,0,114,235,
- 0,0,0,41,5,114,118,0,0,0,114,139,0,0,0,114,
- 43,0,0,0,114,25,0,0,0,114,151,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,114,213,0,
- 0,0,35,4,0,0,115,22,0,0,0,0,1,10,1,10,
- 4,2,1,2,254,6,4,12,1,2,1,14,1,2,1,2,
- 253,122,29,83,111,117,114,99,101,108,101,115,115,70,105,108,
- 101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,
+ 13,99,114,101,97,116,101,95,109,111,100,117,108,101,12,3,
+ 0,0,115,2,0,0,0,0,1,122,27,95,76,111,97,100,
+ 101,114,66,97,115,105,99,115,46,99,114,101,97,116,101,95,
+ 109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,3,0,0,0,5,0,0,0,67,0,0,0,115,
+ 56,0,0,0,124,0,160,0,124,1,106,1,161,1,125,2,
+ 124,2,100,1,117,0,114,36,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,125,0,0,0,114,117,0,0,0,
+ 114,61,0,0,0,114,134,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,131,0,0,0,
+ 41,3,114,118,0,0,0,218,6,109,111,100,117,108,101,114,
+ 164,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,218,11,101,120,101,99,95,109,111,100,117,108,101,
+ 15,3,0,0,115,12,0,0,0,0,2,12,1,8,1,6,
+ 1,4,255,6,2,122,25,95,76,111,97,100,101,114,66,97,
+ 115,105,99,115,46,101,120,101,99,95,109,111,100,117,108,101,
99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
- 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,
- 83,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,3,
- 0,0,0,114,219,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,114,229,0,0,0,51,4,0,0,
- 115,2,0,0,0,0,2,122,31,83,111,117,114,99,101,108,
- 101,115,115,70,105,108,101,76,111,97,100,101,114,46,103,101,
- 116,95,115,111,117,114,99,101,78,41,6,114,125,0,0,0,
- 114,124,0,0,0,114,126,0,0,0,114,127,0,0,0,114,
- 213,0,0,0,114,229,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,114,15,1,
- 0,0,31,4,0,0,115,6,0,0,0,8,2,4,2,8,
- 16,114,15,1,0,0,99,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,
- 92,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
- 100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,
- 100,6,100,7,132,0,90,6,100,8,100,9,132,0,90,7,
- 100,10,100,11,132,0,90,8,100,12,100,13,132,0,90,9,
- 100,14,100,15,132,0,90,10,100,16,100,17,132,0,90,11,
- 101,12,100,18,100,19,132,0,131,1,90,13,100,20,83,0,
- 41,21,114,252,0,0,0,122,93,76,111,97,100,101,114,32,
- 102,111,114,32,101,120,116,101,110,115,105,111,110,32,109,111,
- 100,117,108,101,115,46,10,10,32,32,32,32,84,104,101,32,
- 99,111,110,115,116,114,117,99,116,111,114,32,105,115,32,100,
- 101,115,105,103,110,101,100,32,116,111,32,119,111,114,107,32,
- 119,105,116,104,32,70,105,108,101,70,105,110,100,101,114,46,
- 10,10,32,32,32,32,99,3,0,0,0,0,0,0,0,0,
- 0,0,0,3,0,0,0,2,0,0,0,67,0,0,0,115,
- 16,0,0,0,124,1,124,0,95,0,124,2,124,0,95,1,
- 100,0,83,0,114,109,0,0,0,114,159,0,0,0,114,5,
- 1,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
- 0,0,114,209,0,0,0,68,4,0,0,115,4,0,0,0,
- 0,1,6,1,122,28,69,120,116,101,110,115,105,111,110,70,
- 105,108,101,76,111,97,100,101,114,46,95,95,105,110,105,116,
- 95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,2,0,0,0,67,0,0,0,115,24,0,0,0,
- 124,0,106,0,124,1,106,0,107,2,111,22,124,0,106,1,
- 124,1,106,1,107,2,83,0,114,109,0,0,0,114,240,0,
- 0,0,114,242,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,114,243,0,0,0,72,4,0,0,115,
- 6,0,0,0,0,1,12,1,10,255,122,26,69,120,116,101,
- 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
- 95,95,101,113,95,95,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,
- 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,109,0,0,0,114,244,0,
- 0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,114,247,0,0,0,76,4,0,0,115,
- 2,0,0,0,0,1,122,28,69,120,116,101,110,115,105,111,
- 110,70,105,108,101,76,111,97,100,101,114,46,95,95,104,97,
- 115,104,95,95,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,3,0,0,0,5,0,0,0,67,0,0,0,115,36,0,
- 0,0,116,0,160,1,116,2,106,3,124,1,161,2,125,2,
- 116,0,160,4,100,1,124,1,106,5,124,0,106,6,161,3,
- 1,0,124,2,83,0,41,2,122,38,67,114,101,97,116,101,
- 32,97,110,32,117,110,105,116,105,97,108,105,122,101,100,32,
- 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,
- 122,38,101,120,116,101,110,115,105,111,110,32,109,111,100,117,
- 108,101,32,123,33,114,125,32,108,111,97,100,101,100,32,102,
- 114,111,109,32,123,33,114,125,41,7,114,134,0,0,0,114,
- 214,0,0,0,114,163,0,0,0,90,14,99,114,101,97,116,
- 101,95,100,121,110,97,109,105,99,114,149,0,0,0,114,116,
- 0,0,0,114,43,0,0,0,41,3,114,118,0,0,0,114,
- 187,0,0,0,114,216,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,114,212,0,0,0,79,4,0,
- 0,115,18,0,0,0,0,2,4,1,4,0,2,255,4,2,
- 6,1,4,0,4,255,4,2,122,33,69,120,116,101,110,115,
- 105,111,110,70,105,108,101,76,111,97,100,101,114,46,99,114,
- 101,97,116,101,95,109,111,100,117,108,101,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,
- 67,0,0,0,115,36,0,0,0,116,0,160,1,116,2,106,
- 3,124,1,161,2,1,0,116,0,160,4,100,1,124,0,106,
- 5,124,0,106,6,161,3,1,0,100,2,83,0,41,3,122,
- 30,73,110,105,116,105,97,108,105,122,101,32,97,110,32,101,
- 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,122,
- 40,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,
- 101,32,123,33,114,125,32,101,120,101,99,117,116,101,100,32,
- 102,114,111,109,32,123,33,114,125,78,41,7,114,134,0,0,
- 0,114,214,0,0,0,114,163,0,0,0,90,12,101,120,101,
- 99,95,100,121,110,97,109,105,99,114,149,0,0,0,114,116,
- 0,0,0,114,43,0,0,0,114,253,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,217,0,0,
- 0,87,4,0,0,115,10,0,0,0,0,2,14,1,6,1,
- 4,0,4,255,122,31,69,120,116,101,110,115,105,111,110,70,
- 105,108,101,76,111,97,100,101,114,46,101,120,101,99,95,109,
- 111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,4,0,0,0,3,0,0,0,115,36,
- 0,0,0,116,0,124,0,106,1,131,1,100,1,25,0,137,
- 0,116,2,135,0,102,1,100,2,100,3,132,8,116,3,68,
- 0,131,1,131,1,83,0,41,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,38,0,0,
- 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,4,0,0,0,51,0,0,0,115,26,0,0,0,124,
- 0,93,18,125,1,136,0,100,0,124,1,23,0,107,2,86,
- 0,1,0,113,2,100,1,83,0,41,2,114,209,0,0,0,
- 78,114,3,0,0,0,169,2,114,31,0,0,0,218,6,115,
- 117,102,102,105,120,169,1,90,9,102,105,108,101,95,110,97,
- 109,101,114,3,0,0,0,114,6,0,0,0,218,9,60,103,
- 101,110,101,120,112,114,62,96,4,0,0,115,4,0,0,0,
- 4,1,2,255,122,49,69,120,116,101,110,115,105,111,110,70,
- 105,108,101,76,111,97,100,101,114,46,105,115,95,112,97,99,
- 107,97,103,101,46,60,108,111,99,97,108,115,62,46,60,103,
- 101,110,101,120,112,114,62,41,4,114,46,0,0,0,114,43,
- 0,0,0,218,3,97,110,121,218,18,69,88,84,69,78,83,
- 73,79,78,95,83,85,70,70,73,88,69,83,114,219,0,0,
- 0,114,3,0,0,0,114,18,1,0,0,114,6,0,0,0,
- 114,182,0,0,0,93,4,0,0,115,8,0,0,0,0,2,
- 14,1,12,1,2,255,122,30,69,120,116,101,110,115,105,111,
- 110,70,105,108,101,76,111,97,100,101,114,46,105,115,95,112,
- 97,99,107,97,103,101,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,
- 4,0,0,0,100,1,83,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,3,0,0,
- 0,114,219,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,114,213,0,0,0,99,4,0,0,115,2,
- 0,0,0,0,2,122,28,69,120,116,101,110,115,105,111,110,
- 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,99,
- 111,100,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
- 0,100,1,83,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,
- 3,0,0,0,114,219,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,114,229,0,0,0,103,4,0,
- 0,115,2,0,0,0,0,2,122,30,69,120,116,101,110,115,
- 105,111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,
- 116,95,115,111,117,114,99,101,99,2,0,0,0,0,0,0,
- 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,
- 0,115,6,0,0,0,124,0,106,0,83,0,114,250,0,0,
- 0,114,47,0,0,0,114,219,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,179,0,0,0,107,
- 4,0,0,115,2,0,0,0,0,3,122,32,69,120,116,101,
- 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
- 103,101,116,95,102,105,108,101,110,97,109,101,78,41,14,114,
- 125,0,0,0,114,124,0,0,0,114,126,0,0,0,114,127,
- 0,0,0,114,209,0,0,0,114,243,0,0,0,114,247,0,
- 0,0,114,212,0,0,0,114,217,0,0,0,114,182,0,0,
- 0,114,213,0,0,0,114,229,0,0,0,114,136,0,0,0,
- 114,179,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,114,252,0,0,0,60,4,
- 0,0,115,22,0,0,0,8,2,4,6,8,4,8,4,8,
- 3,8,8,8,6,8,6,8,4,8,4,2,1,114,252,0,
- 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,64,0,0,0,115,104,0,0,0,
- 101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,3,
- 132,0,90,4,100,4,100,5,132,0,90,5,100,6,100,7,
- 132,0,90,6,100,8,100,9,132,0,90,7,100,10,100,11,
- 132,0,90,8,100,12,100,13,132,0,90,9,100,14,100,15,
- 132,0,90,10,100,16,100,17,132,0,90,11,100,18,100,19,
- 132,0,90,12,100,20,100,21,132,0,90,13,100,22,100,23,
- 132,0,90,14,100,24,83,0,41,25,218,14,95,78,97,109,
- 101,115,112,97,99,101,80,97,116,104,97,38,1,0,0,82,
- 101,112,114,101,115,101,110,116,115,32,97,32,110,97,109,101,
- 115,112,97,99,101,32,112,97,99,107,97,103,101,39,115,32,
- 112,97,116,104,46,32,32,73,116,32,117,115,101,115,32,116,
- 104,101,32,109,111,100,117,108,101,32,110,97,109,101,10,32,
- 32,32,32,116,111,32,102,105,110,100,32,105,116,115,32,112,
- 97,114,101,110,116,32,109,111,100,117,108,101,44,32,97,110,
- 100,32,102,114,111,109,32,116,104,101,114,101,32,105,116,32,
- 108,111,111,107,115,32,117,112,32,116,104,101,32,112,97,114,
- 101,110,116,39,115,10,32,32,32,32,95,95,112,97,116,104,
- 95,95,46,32,32,87,104,101,110,32,116,104,105,115,32,99,
- 104,97,110,103,101,115,44,32,116,104,101,32,109,111,100,117,
- 108,101,39,115,32,111,119,110,32,112,97,116,104,32,105,115,
- 32,114,101,99,111,109,112,117,116,101,100,44,10,32,32,32,
- 32,117,115,105,110,103,32,112,97,116,104,95,102,105,110,100,
- 101,114,46,32,32,70,111,114,32,116,111,112,45,108,101,118,
- 101,108,32,109,111,100,117,108,101,115,44,32,116,104,101,32,
- 112,97,114,101,110,116,32,109,111,100,117,108,101,39,115,32,
- 112,97,116,104,10,32,32,32,32,105,115,32,115,121,115,46,
- 112,97,116,104,46,99,4,0,0,0,0,0,0,0,0,0,
- 0,0,4,0,0,0,3,0,0,0,67,0,0,0,115,36,
- 0,0,0,124,1,124,0,95,0,124,2,124,0,95,1,116,
- 2,124,0,160,3,161,0,131,1,124,0,95,4,124,3,124,
- 0,95,5,100,0,83,0,114,109,0,0,0,41,6,218,5,
- 95,110,97,109,101,218,5,95,112,97,116,104,114,111,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,118,0,0,0,114,116,0,0,0,
- 114,43,0,0,0,90,11,112,97,116,104,95,102,105,110,100,
- 101,114,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,114,209,0,0,0,120,4,0,0,115,8,0,0,0,0,
- 1,6,1,6,1,14,1,122,23,95,78,97,109,101,115,112,
- 97,99,101,80,97,116,104,46,95,95,105,110,105,116,95,95,
- 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
- 0,3,0,0,0,67,0,0,0,115,38,0,0,0,124,0,
- 106,0,160,1,100,1,161,1,92,3,125,1,125,2,125,3,
- 124,2,100,2,107,2,114,30,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,70,0,0,0,114,39,0,0,0,
- 41,2,114,8,0,0,0,114,43,0,0,0,90,8,95,95,
- 112,97,116,104,95,95,41,2,114,23,1,0,0,114,40,0,
- 0,0,41,4,114,118,0,0,0,114,14,1,0,0,218,3,
- 100,111,116,90,2,109,101,114,3,0,0,0,114,3,0,0,
- 0,114,6,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,126,
- 4,0,0,115,8,0,0,0,0,2,18,1,8,2,4,3,
- 122,38,95,78,97,109,101,115,112,97,99,101,80,97,116,104,
- 46,95,102,105,110,100,95,112,97,114,101,110,116,95,112,97,
- 116,104,95,110,97,109,101,115,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,
- 0,115,28,0,0,0,124,0,160,0,161,0,92,2,125,1,
- 125,2,116,1,116,2,106,3,124,1,25,0,124,2,131,2,
- 83,0,114,109,0,0,0,41,4,114,30,1,0,0,114,130,
- 0,0,0,114,8,0,0,0,218,7,109,111,100,117,108,101,
- 115,41,3,114,118,0,0,0,90,18,112,97,114,101,110,116,
- 95,109,111,100,117,108,101,95,110,97,109,101,90,14,112,97,
- 116,104,95,97,116,116,114,95,110,97,109,101,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,114,25,1,0,0,
- 136,4,0,0,115,4,0,0,0,0,1,12,1,122,31,95,
- 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,103,
- 101,116,95,112,97,114,101,110,116,95,112,97,116,104,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,4,
- 0,0,0,67,0,0,0,115,80,0,0,0,116,0,124,0,
- 160,1,161,0,131,1,125,1,124,1,124,0,106,2,107,3,
- 114,74,124,0,160,3,124,0,106,4,124,1,161,2,125,2,
- 124,2,100,0,117,1,114,68,124,2,106,5,100,0,117,0,
- 114,68,124,2,106,6,114,68,124,2,106,6,124,0,95,7,
- 124,1,124,0,95,2,124,0,106,7,83,0,114,109,0,0,
- 0,41,8,114,111,0,0,0,114,25,1,0,0,114,26,1,
- 0,0,114,27,1,0,0,114,23,1,0,0,114,140,0,0,
- 0,114,178,0,0,0,114,24,1,0,0,41,3,114,118,0,
- 0,0,90,11,112,97,114,101,110,116,95,112,97,116,104,114,
- 187,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,218,12,95,114,101,99,97,108,99,117,108,97,116,
- 101,140,4,0,0,115,16,0,0,0,0,2,12,1,10,1,
- 14,3,18,1,6,1,8,1,6,1,122,27,95,78,97,109,
- 101,115,112,97,99,101,80,97,116,104,46,95,114,101,99,97,
- 108,99,117,108,97,116,101,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
- 115,12,0,0,0,116,0,124,0,160,1,161,0,131,1,83,
- 0,114,109,0,0,0,41,2,114,6,1,0,0,114,32,1,
- 0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,218,8,95,95,105,116,101,114,95,95,
- 153,4,0,0,115,2,0,0,0,0,1,122,23,95,78,97,
- 109,101,115,112,97,99,101,80,97,116,104,46,95,95,105,116,
- 101,114,95,95,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,2,0,0,0,67,0,0,0,115,12,0,
- 0,0,124,0,160,0,161,0,124,1,25,0,83,0,114,109,
- 0,0,0,169,1,114,32,1,0,0,41,2,114,118,0,0,
- 0,218,5,105,110,100,101,120,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,218,11,95,95,103,101,116,105,116,
- 101,109,95,95,156,4,0,0,115,2,0,0,0,0,1,122,
- 26,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
- 95,95,103,101,116,105,116,101,109,95,95,99,3,0,0,0,
- 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,
- 67,0,0,0,115,14,0,0,0,124,2,124,0,106,0,124,
- 1,60,0,100,0,83,0,114,109,0,0,0,41,1,114,24,
- 1,0,0,41,3,114,118,0,0,0,114,35,1,0,0,114,
- 43,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,218,11,95,95,115,101,116,105,116,101,109,95,95,
- 159,4,0,0,115,2,0,0,0,0,1,122,26,95,78,97,
- 109,101,115,112,97,99,101,80,97,116,104,46,95,95,115,101,
- 116,105,116,101,109,95,95,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
- 115,12,0,0,0,116,0,124,0,160,1,161,0,131,1,83,
- 0,114,109,0,0,0,41,2,114,22,0,0,0,114,32,1,
- 0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,218,7,95,95,108,101,110,95,95,162,
- 4,0,0,115,2,0,0,0,0,1,122,22,95,78,97,109,
- 101,115,112,97,99,101,80,97,116,104,46,95,95,108,101,110,
- 95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,1,
- 0,0,0,3,0,0,0,67,0,0,0,115,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,61,0,0,0,114,24,1,0,
- 0,114,246,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,218,8,95,95,114,101,112,114,95,95,165,
- 4,0,0,115,2,0,0,0,0,1,122,23,95,78,97,109,
- 101,115,112,97,99,101,80,97,116,104,46,95,95,114,101,112,
- 114,95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,3,0,0,0,67,0,0,0,115,12,0,0,
- 0,124,1,124,0,160,0,161,0,118,0,83,0,114,109,0,
- 0,0,114,34,1,0,0,169,2,114,118,0,0,0,218,4,
- 105,116,101,109,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,218,12,95,95,99,111,110,116,97,105,110,115,95,
- 95,168,4,0,0,115,2,0,0,0,0,1,122,27,95,78,
- 97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,99,
- 111,110,116,97,105,110,115,95,95,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,
- 0,0,115,16,0,0,0,124,0,106,0,160,1,124,1,161,
- 1,1,0,100,0,83,0,114,109,0,0,0,41,2,114,24,
- 1,0,0,114,186,0,0,0,114,40,1,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,186,0,0,
- 0,171,4,0,0,115,2,0,0,0,0,1,122,21,95,78,
- 97,109,101,115,112,97,99,101,80,97,116,104,46,97,112,112,
- 101,110,100,78,41,15,114,125,0,0,0,114,124,0,0,0,
- 114,126,0,0,0,114,127,0,0,0,114,209,0,0,0,114,
- 30,1,0,0,114,25,1,0,0,114,32,1,0,0,114,33,
- 1,0,0,114,36,1,0,0,114,37,1,0,0,114,38,1,
- 0,0,114,39,1,0,0,114,42,1,0,0,114,186,0,0,
- 0,114,3,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,114,22,1,0,0,113,4,0,0,115,24,
- 0,0,0,8,1,4,6,8,6,8,10,8,4,8,13,8,
- 3,8,3,8,3,8,3,8,3,8,3,114,22,1,0,0,
- 99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,3,0,0,0,64,0,0,0,115,80,0,0,0,101,0,
- 90,1,100,0,90,2,100,1,100,2,132,0,90,3,101,4,
- 100,3,100,4,132,0,131,1,90,5,100,5,100,6,132,0,
- 90,6,100,7,100,8,132,0,90,7,100,9,100,10,132,0,
- 90,8,100,11,100,12,132,0,90,9,100,13,100,14,132,0,
- 90,10,100,15,100,16,132,0,90,11,100,17,83,0,41,18,
- 218,16,95,78,97,109,101,115,112,97,99,101,76,111,97,100,
- 101,114,99,4,0,0,0,0,0,0,0,0,0,0,0,4,
- 0,0,0,4,0,0,0,67,0,0,0,115,18,0,0,0,
- 116,0,124,1,124,2,124,3,131,3,124,0,95,1,100,0,
- 83,0,114,109,0,0,0,41,2,114,22,1,0,0,114,24,
- 1,0,0,114,28,1,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,114,209,0,0,0,177,4,0,0,
- 115,2,0,0,0,0,1,122,25,95,78,97,109,101,115,112,
- 97,99,101,76,111,97,100,101,114,46,95,95,105,110,105,116,
- 95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,
- 100,1,160,0,124,1,106,1,161,1,83,0,41,2,122,115,
- 82,101,116,117,114,110,32,114,101,112,114,32,102,111,114,32,
- 116,104,101,32,109,111,100,117,108,101,46,10,10,32,32,32,
- 32,32,32,32,32,84,104,101,32,109,101,116,104,111,100,32,
- 105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,
- 84,104,101,32,105,109,112,111,114,116,32,109,97,99,104,105,
- 110,101,114,121,32,100,111,101,115,32,116,104,101,32,106,111,
- 98,32,105,116,115,101,108,102,46,10,10,32,32,32,32,32,
- 32,32,32,122,25,60,109,111,100,117,108,101,32,123,33,114,
- 125,32,40,110,97,109,101,115,112,97,99,101,41,62,41,2,
- 114,61,0,0,0,114,125,0,0,0,41,2,114,193,0,0,
- 0,114,216,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,218,11,109,111,100,117,108,101,95,114,101,
- 112,114,180,4,0,0,115,2,0,0,0,0,7,122,28,95,
- 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,
- 109,111,100,117,108,101,95,114,101,112,114,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
- 67,0,0,0,115,4,0,0,0,100,1,83,0,41,2,78,
- 84,114,3,0,0,0,114,219,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,182,0,0,0,189,
- 4,0,0,115,2,0,0,0,0,1,122,27,95,78,97,109,
- 101,115,112,97,99,101,76,111,97,100,101,114,46,105,115,95,
- 112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,
- 115,4,0,0,0,100,1,83,0,41,2,78,114,39,0,0,
- 0,114,3,0,0,0,114,219,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,229,0,0,0,192,
- 4,0,0,115,2,0,0,0,0,1,122,27,95,78,97,109,
- 101,115,112,97,99,101,76,111,97,100,101,114,46,103,101,116,
- 95,115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,2,0,0,0,6,0,0,0,67,0,0,0,
- 115,16,0,0,0,116,0,100,1,100,2,100,3,100,4,100,
- 5,141,4,83,0,41,6,78,114,39,0,0,0,122,8,60,
- 115,116,114,105,110,103,62,114,215,0,0,0,84,41,1,114,
- 231,0,0,0,41,1,114,232,0,0,0,114,219,0,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
- 213,0,0,0,195,4,0,0,115,2,0,0,0,0,1,122,
- 25,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,
- 114,46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
- 0,0,0,115,4,0,0,0,100,1,83,0,114,210,0,0,
- 0,114,3,0,0,0,114,211,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,212,0,0,0,198,
- 4,0,0,115,2,0,0,0,0,1,122,30,95,78,97,109,
- 101,115,112,97,99,101,76,111,97,100,101,114,46,99,114,101,
- 97,116,101,95,109,111,100,117,108,101,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
- 0,0,0,115,4,0,0,0,100,0,83,0,114,109,0,0,
- 0,114,3,0,0,0,114,253,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,217,0,0,0,201,
- 4,0,0,115,2,0,0,0,0,1,122,28,95,78,97,109,
- 101,115,112,97,99,101,76,111,97,100,101,114,46,101,120,101,
- 99,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,
- 0,0,0,0,0,2,0,0,0,4,0,0,0,67,0,0,
- 0,115,26,0,0,0,116,0,160,1,100,1,124,0,106,2,
- 161,2,1,0,116,0,160,3,124,0,124,1,161,2,83,0,
- 41,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,134,0,0,0,114,149,0,0,0,114,24,1,0,0,114,
- 218,0,0,0,114,219,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,114,220,0,0,0,204,4,0,
- 0,115,8,0,0,0,0,7,6,1,4,255,4,2,122,28,
- 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
- 46,108,111,97,100,95,109,111,100,117,108,101,78,41,12,114,
- 125,0,0,0,114,124,0,0,0,114,126,0,0,0,114,209,
- 0,0,0,114,207,0,0,0,114,44,1,0,0,114,182,0,
- 0,0,114,229,0,0,0,114,213,0,0,0,114,212,0,0,
+ 0,4,0,0,0,67,0,0,0,115,12,0,0,0,116,0,
+ 160,1,124,0,124,1,161,2,83,0,41,1,122,26,84,104,
+ 105,115,32,109,111,100,117,108,101,32,105,115,32,100,101,112,
+ 114,101,99,97,116,101,100,46,41,2,114,134,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,118,0,0,0,114,139,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,218,11,108,
+ 111,97,100,95,109,111,100,117,108,101,23,3,0,0,115,2,
+ 0,0,0,0,2,122,25,95,76,111,97,100,101,114,66,97,
+ 115,105,99,115,46,108,111,97,100,95,109,111,100,117,108,101,
+ 78,41,8,114,125,0,0,0,114,124,0,0,0,114,126,0,
+ 0,0,114,127,0,0,0,114,182,0,0,0,114,212,0,0,
0,114,217,0,0,0,114,220,0,0,0,114,3,0,0,0,
114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
- 43,1,0,0,176,4,0,0,115,18,0,0,0,8,1,8,
- 3,2,1,10,8,8,3,8,3,8,3,8,3,8,3,114,
- 43,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,4,0,0,0,64,0,0,0,115,118,0,
- 0,0,101,0,90,1,100,0,90,2,100,1,90,3,101,4,
- 100,2,100,3,132,0,131,1,90,5,101,4,100,4,100,5,
- 132,0,131,1,90,6,101,4,100,6,100,7,132,0,131,1,
- 90,7,101,4,100,8,100,9,132,0,131,1,90,8,101,4,
- 100,19,100,11,100,12,132,1,131,1,90,9,101,4,100,20,
- 100,13,100,14,132,1,131,1,90,10,101,4,100,21,100,15,
- 100,16,132,1,131,1,90,11,101,4,100,17,100,18,132,0,
- 131,1,90,12,100,10,83,0,41,22,218,10,80,97,116,104,
- 70,105,110,100,101,114,122,62,77,101,116,97,32,112,97,116,
- 104,32,102,105,110,100,101,114,32,102,111,114,32,115,121,115,
- 46,112,97,116,104,32,97,110,100,32,112,97,99,107,97,103,
- 101,32,95,95,112,97,116,104,95,95,32,97,116,116,114,105,
- 98,117,116,101,115,46,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,3,0,0,0,4,0,0,0,67,0,0,0,115,
- 64,0,0,0,116,0,116,1,106,2,160,3,161,0,131,1,
- 68,0,93,44,92,2,125,1,125,2,124,2,100,1,117,0,
- 114,40,116,1,106,2,124,1,61,0,113,14,116,4,124,2,
- 100,2,131,2,114,14,124,2,160,5,161,0,1,0,113,14,
- 100,1,83,0,41,3,122,125,67,97,108,108,32,116,104,101,
- 32,105,110,118,97,108,105,100,97,116,101,95,99,97,99,104,
- 101,115,40,41,32,109,101,116,104,111,100,32,111,110,32,97,
- 108,108,32,112,97,116,104,32,101,110,116,114,121,32,102,105,
- 110,100,101,114,115,10,32,32,32,32,32,32,32,32,115,116,
- 111,114,101,100,32,105,110,32,115,121,115,46,112,97,116,104,
- 95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,115,
- 32,40,119,104,101,114,101,32,105,109,112,108,101,109,101,110,
- 116,101,100,41,46,78,218,17,105,110,118,97,108,105,100,97,
- 116,101,95,99,97,99,104,101,115,41,6,218,4,108,105,115,
- 116,114,8,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,128,0,0,0,114,46,1,0,0,41,3,114,193,
- 0,0,0,114,116,0,0,0,218,6,102,105,110,100,101,114,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
- 46,1,0,0,222,4,0,0,115,10,0,0,0,0,4,22,
- 1,8,1,10,1,10,1,122,28,80,97,116,104,70,105,110,
- 100,101,114,46,105,110,118,97,108,105,100,97,116,101,95,99,
- 97,99,104,101,115,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,3,0,0,0,9,0,0,0,67,0,0,0,115,82,
- 0,0,0,116,0,106,1,100,1,117,1,114,28,116,0,106,
- 1,115,28,116,2,160,3,100,2,116,4,161,2,1,0,116,
- 0,106,1,68,0,93,42,125,2,122,14,124,2,124,1,131,
- 1,87,0,2,0,1,0,83,0,4,0,116,5,121,74,1,
- 0,1,0,1,0,89,0,113,34,89,0,113,34,48,0,113,
- 34,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,8,0,0,0,218,10,112,97,116,104,95,104,
- 111,111,107,115,114,74,0,0,0,114,75,0,0,0,114,138,
- 0,0,0,114,117,0,0,0,41,3,114,193,0,0,0,114,
- 43,0,0,0,90,4,104,111,111,107,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,218,11,95,112,97,116,104,
- 95,104,111,111,107,115,232,4,0,0,115,16,0,0,0,0,
- 3,16,1,12,1,10,1,2,1,14,1,12,1,12,2,122,
- 22,80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,
- 104,95,104,111,111,107,115,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,3,0,0,0,8,0,0,0,67,0,0,0,
- 115,100,0,0,0,124,1,100,1,107,2,114,42,122,12,116,
- 0,160,1,161,0,125,1,87,0,110,20,4,0,116,2,121,
- 40,1,0,1,0,1,0,89,0,100,2,83,0,48,0,122,
- 14,116,3,106,4,124,1,25,0,125,2,87,0,110,38,4,
- 0,116,5,121,94,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,110,2,48,0,124,2,83,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,
- 39,0,0,0,78,41,7,114,2,0,0,0,114,54,0,0,
- 0,114,3,1,0,0,114,8,0,0,0,114,48,1,0,0,
- 218,8,75,101,121,69,114,114,111,114,114,52,1,0,0,41,
- 3,114,193,0,0,0,114,43,0,0,0,114,50,1,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,6,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,245,4,0,0,115,22,0,0,0,0,8,
- 8,1,2,1,12,1,12,3,8,1,2,1,14,1,12,1,
- 10,1,16,1,122,31,80,97,116,104,70,105,110,100,101,114,
- 46,95,112,97,116,104,95,105,109,112,111,114,116,101,114,95,
- 99,97,99,104,101,99,3,0,0,0,0,0,0,0,0,0,
- 0,0,6,0,0,0,4,0,0,0,67,0,0,0,115,82,
- 0,0,0,116,0,124,2,100,1,131,2,114,26,124,2,160,
- 1,124,1,161,1,92,2,125,3,125,4,110,14,124,2,160,
- 2,124,1,161,1,125,3,103,0,125,4,124,3,100,0,117,
- 1,114,60,116,3,160,4,124,1,124,3,161,2,83,0,116,
- 3,160,5,124,1,100,0,161,2,125,5,124,4,124,5,95,
- 6,124,5,83,0,41,2,78,114,137,0,0,0,41,7,114,
- 128,0,0,0,114,137,0,0,0,114,206,0,0,0,114,134,
- 0,0,0,114,201,0,0,0,114,183,0,0,0,114,178,0,
- 0,0,41,6,114,193,0,0,0,114,139,0,0,0,114,50,
- 1,0,0,114,140,0,0,0,114,141,0,0,0,114,187,0,
+ 208,0,0,0,255,2,0,0,115,10,0,0,0,8,2,4,
+ 3,8,8,8,3,8,8,114,208,0,0,0,99,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
+ 0,64,0,0,0,115,74,0,0,0,101,0,90,1,100,0,
+ 90,2,100,1,100,2,132,0,90,3,100,3,100,4,132,0,
+ 90,4,100,5,100,6,132,0,90,5,100,7,100,8,132,0,
+ 90,6,100,9,100,10,132,0,90,7,100,11,100,12,156,1,
+ 100,13,100,14,132,2,90,8,100,15,100,16,132,0,90,9,
+ 100,17,83,0,41,18,218,12,83,111,117,114,99,101,76,111,
+ 97,100,101,114,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,1,0,0,0,67,0,0,0,115,8,0,
+ 0,0,116,0,130,1,100,1,83,0,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,49,0,0,0,169,2,114,118,0,
+ 0,0,114,43,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,218,10,112,97,116,104,95,109,116,105,
+ 109,101,30,3,0,0,115,2,0,0,0,0,6,122,23,83,
+ 111,117,114,99,101,76,111,97,100,101,114,46,112,97,116,104,
+ 95,109,116,105,109,101,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,115,
+ 14,0,0,0,100,1,124,0,160,0,124,1,161,1,105,1,
+ 83,0,41,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,169,0,0,0,41,1,114,223,
+ 0,0,0,114,222,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,218,10,112,97,116,104,95,115,116,
+ 97,116,115,38,3,0,0,115,2,0,0,0,0,12,122,23,
+ 83,111,117,114,99,101,76,111,97,100,101,114,46,112,97,116,
+ 104,95,115,116,97,116,115,99,4,0,0,0,0,0,0,0,
+ 0,0,0,0,4,0,0,0,4,0,0,0,67,0,0,0,
+ 115,12,0,0,0,124,0,160,0,124,2,124,3,161,2,83,
+ 0,41,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,118,0,0,0,114,107,0,0,
+ 0,90,10,99,97,99,104,101,95,112,97,116,104,114,25,0,
0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,218,16,95,108,101,103,97,99,121,95,103,101,116,95,115,
- 112,101,99,11,5,0,0,115,18,0,0,0,0,4,10,1,
- 16,2,10,1,4,1,8,1,12,1,12,1,6,1,122,27,
- 80,97,116,104,70,105,110,100,101,114,46,95,108,101,103,97,
- 99,121,95,103,101,116,95,115,112,101,99,78,99,4,0,0,
- 0,0,0,0,0,0,0,0,0,9,0,0,0,5,0,0,
- 0,67,0,0,0,115,166,0,0,0,103,0,125,4,124,2,
- 68,0,93,134,125,5,116,0,124,5,116,1,116,2,102,2,
- 131,2,115,28,113,8,124,0,160,3,124,5,161,1,125,6,
- 124,6,100,1,117,1,114,8,116,4,124,6,100,2,131,2,
- 114,70,124,6,160,5,124,1,124,3,161,2,125,7,110,12,
- 124,0,160,6,124,1,124,6,161,2,125,7,124,7,100,1,
- 117,0,114,92,113,8,124,7,106,7,100,1,117,1,114,110,
- 124,7,2,0,1,0,83,0,124,7,106,8,125,8,124,8,
- 100,1,117,0,114,132,116,9,100,3,131,1,130,1,124,4,
- 160,10,124,8,161,1,1,0,113,8,116,11,160,12,124,1,
- 100,1,161,2,125,7,124,4,124,7,95,8,124,7,83,0,
- 41,4,122,63,70,105,110,100,32,116,104,101,32,108,111,97,
- 100,101,114,32,111,114,32,110,97,109,101,115,112,97,99,101,
- 95,112,97,116,104,32,102,111,114,32,116,104,105,115,32,109,
- 111,100,117,108,101,47,112,97,99,107,97,103,101,32,110,97,
- 109,101,46,78,114,203,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,161,0,0,0,114,84,0,0,0,218,5,98,121,116,101,
- 115,114,54,1,0,0,114,128,0,0,0,114,203,0,0,0,
- 114,55,1,0,0,114,140,0,0,0,114,178,0,0,0,114,
- 117,0,0,0,114,167,0,0,0,114,134,0,0,0,114,183,
- 0,0,0,41,9,114,193,0,0,0,114,139,0,0,0,114,
- 43,0,0,0,114,202,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,50,1,0,0,114,187,0,0,0,114,141,0,0,0,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,9,
- 95,103,101,116,95,115,112,101,99,26,5,0,0,115,40,0,
- 0,0,0,5,4,1,8,1,14,1,2,1,10,1,8,1,
- 10,1,14,2,12,1,8,1,2,1,10,1,8,1,6,1,
- 8,1,8,5,12,2,12,1,6,1,122,20,80,97,116,104,
- 70,105,110,100,101,114,46,95,103,101,116,95,115,112,101,99,
- 99,4,0,0,0,0,0,0,0,0,0,0,0,6,0,0,
- 0,5,0,0,0,67,0,0,0,115,100,0,0,0,124,2,
- 100,1,117,0,114,14,116,0,106,1,125,2,124,0,160,2,
- 124,1,124,2,124,3,161,3,125,4,124,4,100,1,117,0,
- 114,40,100,1,83,0,124,4,106,3,100,1,117,0,114,92,
- 124,4,106,4,125,5,124,5,114,86,100,1,124,4,95,5,
- 116,6,124,1,124,5,124,0,106,2,131,3,124,4,95,4,
- 124,4,83,0,100,1,83,0,110,4,124,4,83,0,100,1,
- 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,8,0,0,0,114,43,0,0,0,
- 114,58,1,0,0,114,140,0,0,0,114,178,0,0,0,114,
- 181,0,0,0,114,22,1,0,0,41,6,114,193,0,0,0,
- 114,139,0,0,0,114,43,0,0,0,114,202,0,0,0,114,
- 187,0,0,0,114,57,1,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,114,203,0,0,0,58,5,0,
- 0,115,26,0,0,0,0,6,8,1,6,1,14,1,8,1,
- 4,1,10,1,6,1,4,3,6,1,16,1,4,2,6,2,
- 122,20,80,97,116,104,70,105,110,100,101,114,46,102,105,110,
- 100,95,115,112,101,99,99,3,0,0,0,0,0,0,0,0,
- 0,0,0,4,0,0,0,4,0,0,0,67,0,0,0,115,
- 30,0,0,0,124,0,160,0,124,1,124,2,161,2,125,3,
- 124,3,100,1,117,0,114,24,100,1,83,0,124,3,106,1,
- 83,0,41,2,122,170,102,105,110,100,32,116,104,101,32,109,
- 111,100,117,108,101,32,111,110,32,115,121,115,46,112,97,116,
- 104,32,111,114,32,39,112,97,116,104,39,32,98,97,115,101,
- 100,32,111,110,32,115,121,115,46,112,97,116,104,95,104,111,
- 111,107,115,32,97,110,100,10,32,32,32,32,32,32,32,32,
- 115,121,115,46,112,97,116,104,95,105,109,112,111,114,116,101,
- 114,95,99,97,99,104,101,46,10,10,32,32,32,32,32,32,
- 32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,
- 32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,
- 101,32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,
- 115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,
- 78,114,204,0,0,0,114,205,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,206,0,0,0,82,
- 5,0,0,115,8,0,0,0,0,8,12,1,8,1,4,1,
- 122,22,80,97,116,104,70,105,110,100,101,114,46,102,105,110,
- 100,95,109,111,100,117,108,101,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,4,0,0,0,3,0,0,0,79,0,0,
- 0,115,24,0,0,0,100,1,100,2,108,0,109,1,125,3,
- 1,0,124,3,106,2,124,1,124,2,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,72,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,59,1,0,0,218,18,102,105,110,
- 100,95,100,105,115,116,114,105,98,117,116,105,111,110,115,41,
- 4,114,193,0,0,0,114,119,0,0,0,114,120,0,0,0,
- 114,59,1,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,60,1,0,0,95,5,0,0,115,4,0,
- 0,0,0,10,12,1,122,29,80,97,116,104,70,105,110,100,
- 101,114,46,102,105,110,100,95,100,105,115,116,114,105,98,117,
- 116,105,111,110,115,41,1,78,41,2,78,78,41,1,78,41,
- 13,114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,
- 114,127,0,0,0,114,207,0,0,0,114,46,1,0,0,114,
- 52,1,0,0,114,54,1,0,0,114,55,1,0,0,114,58,
- 1,0,0,114,203,0,0,0,114,206,0,0,0,114,60,1,
- 0,0,114,3,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,114,45,1,0,0,218,4,0,0,115,
- 34,0,0,0,8,2,4,2,2,1,10,9,2,1,10,12,
- 2,1,10,21,2,1,10,14,2,1,12,31,2,1,12,23,
- 2,1,12,12,2,1,114,45,1,0,0,99,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
- 64,0,0,0,115,90,0,0,0,101,0,90,1,100,0,90,
- 2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,
- 5,132,0,90,5,101,6,90,7,100,6,100,7,132,0,90,
- 8,100,8,100,9,132,0,90,9,100,19,100,11,100,12,132,
- 1,90,10,100,13,100,14,132,0,90,11,101,12,100,15,100,
- 16,132,0,131,1,90,13,100,17,100,18,132,0,90,14,100,
- 10,83,0,41,20,218,10,70,105,108,101,70,105,110,100,101,
- 114,122,172,70,105,108,101,45,98,97,115,101,100,32,102,105,
- 110,100,101,114,46,10,10,32,32,32,32,73,110,116,101,114,
- 97,99,116,105,111,110,115,32,119,105,116,104,32,116,104,101,
- 32,102,105,108,101,32,115,121,115,116,101,109,32,97,114,101,
- 32,99,97,99,104,101,100,32,102,111,114,32,112,101,114,102,
- 111,114,109,97,110,99,101,44,32,98,101,105,110,103,10,32,
- 32,32,32,114,101,102,114,101,115,104,101,100,32,119,104,101,
- 110,32,116,104,101,32,100,105,114,101,99,116,111,114,121,32,
- 116,104,101,32,102,105,110,100,101,114,32,105,115,32,104,97,
- 110,100,108,105,110,103,32,104,97,115,32,98,101,101,110,32,
- 109,111,100,105,102,105,101,100,46,10,10,32,32,32,32,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,
- 6,0,0,0,7,0,0,0,115,84,0,0,0,103,0,125,
- 3,124,2,68,0,93,32,92,2,137,0,125,4,124,3,160,
- 0,135,0,102,1,100,1,100,2,132,8,124,4,68,0,131,
- 1,161,1,1,0,113,8,124,3,124,0,95,1,124,1,112,
- 54,100,3,124,0,95,2,100,4,124,0,95,3,116,4,131,
- 0,124,0,95,5,116,4,131,0,124,0,95,6,100,5,83,
- 0,41,6,122,154,73,110,105,116,105,97,108,105,122,101,32,
- 119,105,116,104,32,116,104,101,32,112,97,116,104,32,116,111,
- 32,115,101,97,114,99,104,32,111,110,32,97,110,100,32,97,
- 32,118,97,114,105,97,98,108,101,32,110,117,109,98,101,114,
- 32,111,102,10,32,32,32,32,32,32,32,32,50,45,116,117,
- 112,108,101,115,32,99,111,110,116,97,105,110,105,110,103,32,
- 116,104,101,32,108,111,97,100,101,114,32,97,110,100,32,116,
- 104,101,32,102,105,108,101,32,115,117,102,102,105,120,101,115,
- 32,116,104,101,32,108,111,97,100,101,114,10,32,32,32,32,
- 32,32,32,32,114,101,99,111,103,110,105,122,101,115,46,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 3,0,0,0,51,0,0,0,115,22,0,0,0,124,0,93,
- 14,125,1,124,1,136,0,102,2,86,0,1,0,113,2,100,
- 0,83,0,114,109,0,0,0,114,3,0,0,0,114,16,1,
- 0,0,169,1,114,140,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,114,19,1,0,0,124,5,0,0,115,4,0,0,
- 0,4,0,2,0,122,38,70,105,108,101,70,105,110,100,101,
- 114,46,95,95,105,110,105,116,95,95,46,60,108,111,99,97,
- 108,115,62,46,60,103,101,110,101,120,112,114,62,114,70,0,
- 0,0,114,104,0,0,0,78,41,7,114,167,0,0,0,218,
- 8,95,108,111,97,100,101,114,115,114,43,0,0,0,218,11,
- 95,112,97,116,104,95,109,116,105,109,101,218,3,115,101,116,
- 218,11,95,112,97,116,104,95,99,97,99,104,101,218,19,95,
- 114,101,108,97,120,101,100,95,112,97,116,104,95,99,97,99,
- 104,101,41,5,114,118,0,0,0,114,43,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,189,0,0,0,114,3,0,0,
- 0,114,62,1,0,0,114,6,0,0,0,114,209,0,0,0,
- 118,5,0,0,115,16,0,0,0,0,4,4,1,12,1,26,
- 1,6,2,10,1,6,1,8,1,122,19,70,105,108,101,70,
- 105,110,100,101,114,46,95,95,105,110,105,116,95,95,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,
- 0,0,0,67,0,0,0,115,10,0,0,0,100,1,124,0,
- 95,0,100,2,83,0,41,3,122,31,73,110,118,97,108,105,
- 100,97,116,101,32,116,104,101,32,100,105,114,101,99,116,111,
- 114,121,32,109,116,105,109,101,46,114,104,0,0,0,78,41,
- 1,114,64,1,0,0,114,246,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,46,1,0,0,132,
- 5,0,0,115,2,0,0,0,0,2,122,28,70,105,108,101,
- 70,105,110,100,101,114,46,105,110,118,97,108,105,100,97,116,
- 101,95,99,97,99,104,101,115,99,2,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,
- 0,115,42,0,0,0,124,0,160,0,124,1,161,1,125,2,
- 124,2,100,1,117,0,114,26,100,1,103,0,102,2,83,0,
- 124,2,106,1,124,2,106,2,112,38,103,0,102,2,83,0,
- 41,2,122,197,84,114,121,32,116,111,32,102,105,110,100,32,
- 97,32,108,111,97,100,101,114,32,102,111,114,32,116,104,101,
- 32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,108,
- 101,44,32,111,114,32,116,104,101,32,110,97,109,101,115,112,
- 97,99,101,10,32,32,32,32,32,32,32,32,112,97,99,107,
- 97,103,101,32,112,111,114,116,105,111,110,115,46,32,82,101,
- 116,117,114,110,115,32,40,108,111,97,100,101,114,44,32,108,
- 105,115,116,45,111,102,45,112,111,114,116,105,111,110,115,41,
- 46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,
- 109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,
- 97,116,101,100,46,32,32,85,115,101,32,102,105,110,100,95,
- 115,112,101,99,40,41,32,105,110,115,116,101,97,100,46,10,
- 10,32,32,32,32,32,32,32,32,78,41,3,114,203,0,0,
- 0,114,140,0,0,0,114,178,0,0,0,41,3,114,118,0,
- 0,0,114,139,0,0,0,114,187,0,0,0,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,114,137,0,0,0,
- 138,5,0,0,115,8,0,0,0,0,7,10,1,8,1,8,
- 1,122,22,70,105,108,101,70,105,110,100,101,114,46,102,105,
- 110,100,95,108,111,97,100,101,114,99,6,0,0,0,0,0,
- 0,0,0,0,0,0,7,0,0,0,6,0,0,0,67,0,
- 0,0,115,26,0,0,0,124,1,124,2,124,3,131,2,125,
- 6,116,0,124,2,124,3,124,6,124,4,100,1,141,4,83,
- 0,41,2,78,114,177,0,0,0,41,1,114,190,0,0,0,
- 41,7,114,118,0,0,0,114,188,0,0,0,114,139,0,0,
- 0,114,43,0,0,0,90,4,115,109,115,108,114,202,0,0,
- 0,114,140,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,114,58,1,0,0,150,5,0,0,115,8,
- 0,0,0,0,1,10,1,8,1,2,255,122,20,70,105,108,
- 101,70,105,110,100,101,114,46,95,103,101,116,95,115,112,101,
- 99,78,99,3,0,0,0,0,0,0,0,0,0,0,0,14,
- 0,0,0,8,0,0,0,67,0,0,0,115,96,1,0,0,
- 100,1,125,3,124,1,160,0,100,2,161,1,100,3,25,0,
- 125,4,122,24,116,1,124,0,106,2,112,34,116,3,160,4,
- 161,0,131,1,106,5,125,5,87,0,110,22,4,0,116,6,
- 121,64,1,0,1,0,1,0,100,4,125,5,89,0,110,2,
- 48,0,124,5,124,0,106,7,107,3,114,90,124,0,160,8,
- 161,0,1,0,124,5,124,0,95,7,116,9,131,0,114,112,
- 124,0,106,10,125,6,124,4,160,11,161,0,125,7,110,10,
- 124,0,106,12,125,6,124,4,125,7,124,7,124,6,118,0,
- 114,216,116,13,124,0,106,2,124,4,131,2,125,8,124,0,
- 106,14,68,0,93,58,92,2,125,9,125,10,100,5,124,9,
- 23,0,125,11,116,13,124,8,124,11,131,2,125,12,116,15,
- 124,12,131,1,114,148,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,148,
- 116,17,124,8,131,1,125,3,124,0,106,14,68,0,93,82,
- 92,2,125,9,125,10,116,13,124,0,106,2,124,4,124,9,
- 23,0,131,2,125,12,116,18,106,19,100,6,124,12,100,3,
- 100,7,141,3,1,0,124,7,124,9,23,0,124,6,118,0,
- 114,222,116,15,124,12,131,1,114,222,124,0,160,16,124,10,
- 124,1,124,12,100,8,124,2,161,5,2,0,1,0,83,0,
- 113,222,124,3,144,1,114,92,116,18,160,19,100,9,124,8,
- 161,2,1,0,116,18,160,20,124,1,100,8,161,2,125,13,
- 124,8,103,1,124,13,95,21,124,13,83,0,100,8,83,0,
- 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,70,0,0,0,114,27,0,0,0,114,104,
- 0,0,0,114,209,0,0,0,122,9,116,114,121,105,110,103,
- 32,123,125,41,1,90,9,118,101,114,98,111,115,105,116,121,
- 78,122,25,112,111,115,115,105,98,108,101,32,110,97,109,101,
- 115,112,97,99,101,32,102,111,114,32,123,125,41,22,114,40,
- 0,0,0,114,48,0,0,0,114,43,0,0,0,114,2,0,
- 0,0,114,54,0,0,0,114,10,1,0,0,114,49,0,0,
- 0,114,64,1,0,0,218,11,95,102,105,108,108,95,99,97,
- 99,104,101,114,7,0,0,0,114,67,1,0,0,114,105,0,
- 0,0,114,66,1,0,0,114,37,0,0,0,114,63,1,0,
- 0,114,53,0,0,0,114,58,1,0,0,114,55,0,0,0,
- 114,134,0,0,0,114,149,0,0,0,114,183,0,0,0,114,
- 178,0,0,0,41,14,114,118,0,0,0,114,139,0,0,0,
- 114,202,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,169,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,17,1,0,0,114,188,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,187,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,114,203,0,
- 0,0,155,5,0,0,115,74,0,0,0,0,5,4,1,14,
- 1,2,1,24,1,12,1,10,1,10,1,8,1,6,2,6,
- 1,6,1,10,2,6,1,4,2,8,1,12,1,14,1,8,
- 1,10,1,8,1,26,4,8,2,14,1,16,1,16,1,12,
- 1,8,1,10,1,2,0,2,255,10,2,6,1,12,1,12,
- 1,8,1,4,1,122,20,70,105,108,101,70,105,110,100,101,
- 114,46,102,105,110,100,95,115,112,101,99,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,9,0,0,0,10,0,0,0,
- 67,0,0,0,115,188,0,0,0,124,0,106,0,125,1,122,
- 22,116,1,160,2,124,1,112,22,116,1,160,3,161,0,161,
- 1,125,2,87,0,110,28,4,0,116,4,116,5,116,6,102,
- 3,121,56,1,0,1,0,1,0,103,0,125,2,89,0,110,
- 2,48,0,116,7,106,8,160,9,100,1,161,1,115,82,116,
- 10,124,2,131,1,124,0,95,11,110,74,116,10,131,0,125,
- 3,124,2,68,0,93,56,125,4,124,4,160,12,100,2,161,
- 1,92,3,125,5,125,6,125,7,124,6,114,134,100,3,160,
- 13,124,5,124,7,160,14,161,0,161,2,125,8,110,4,124,
- 5,125,8,124,3,160,15,124,8,161,1,1,0,113,92,124,
- 3,124,0,95,11,116,7,106,8,160,9,116,16,161,1,114,
- 184,100,4,100,5,132,0,124,2,68,0,131,1,124,0,95,
- 17,100,6,83,0,41,7,122,68,70,105,108,108,32,116,104,
- 101,32,99,97,99,104,101,32,111,102,32,112,111,116,101,110,
- 116,105,97,108,32,109,111,100,117,108,101,115,32,97,110,100,
- 32,112,97,99,107,97,103,101,115,32,102,111,114,32,116,104,
- 105,115,32,100,105,114,101,99,116,111,114,121,46,114,0,0,
- 0,0,114,70,0,0,0,114,60,0,0,0,99,1,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
- 0,83,0,0,0,115,20,0,0,0,104,0,124,0,93,12,
- 125,1,124,1,160,0,161,0,146,2,113,4,83,0,114,3,
- 0,0,0,41,1,114,105,0,0,0,41,2,114,31,0,0,
- 0,90,2,102,110,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,218,9,60,115,101,116,99,111,109,112,62,232,
- 5,0,0,115,4,0,0,0,6,0,2,0,122,41,70,105,
- 108,101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,
- 97,99,104,101,46,60,108,111,99,97,108,115,62,46,60,115,
- 101,116,99,111,109,112,62,78,41,18,114,43,0,0,0,114,
- 2,0,0,0,114,7,1,0,0,114,54,0,0,0,114,3,
- 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,8,0,0,0,114,9,0,
- 0,0,114,10,0,0,0,114,65,1,0,0,114,66,1,0,
- 0,114,100,0,0,0,114,61,0,0,0,114,105,0,0,0,
- 218,3,97,100,100,114,11,0,0,0,114,67,1,0,0,41,
- 9,114,118,0,0,0,114,43,0,0,0,114,8,1,0,0,
- 90,21,108,111,119,101,114,95,115,117,102,102,105,120,95,99,
- 111,110,116,101,110,116,115,114,41,1,0,0,114,116,0,0,
- 0,114,29,1,0,0,114,17,1,0,0,90,8,110,101,119,
- 95,110,97,109,101,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,69,1,0,0,203,5,0,0,115,34,0,
- 0,0,0,2,6,1,2,1,22,1,18,3,10,3,12,1,
- 12,7,6,1,8,1,16,1,4,1,18,2,4,1,12,1,
- 6,1,12,1,122,22,70,105,108,101,70,105,110,100,101,114,
- 46,95,102,105,108,108,95,99,97,99,104,101,99,1,0,0,
- 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,
- 0,7,0,0,0,115,18,0,0,0,135,0,135,1,102,2,
- 100,1,100,2,132,8,125,2,124,2,83,0,41,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,1,0,0,0,4,0,0,0,19,0,0,0,
- 115,34,0,0,0,116,0,124,0,131,1,115,20,116,1,100,
- 1,124,0,100,2,141,2,130,1,136,0,124,0,102,1,136,
- 1,158,2,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,47,0,0,0,41,2,114,
- 55,0,0,0,114,117,0,0,0,114,47,0,0,0,169,2,
- 114,193,0,0,0,114,68,1,0,0,114,3,0,0,0,114,
- 6,0,0,0,218,24,112,97,116,104,95,104,111,111,107,95,
- 102,111,114,95,70,105,108,101,70,105,110,100,101,114,244,5,
- 0,0,115,6,0,0,0,0,2,8,1,12,1,122,54,70,
- 105,108,101,70,105,110,100,101,114,46,112,97,116,104,95,104,
- 111,111,107,46,60,108,111,99,97,108,115,62,46,112,97,116,
- 104,95,104,111,111,107,95,102,111,114,95,70,105,108,101,70,
- 105,110,100,101,114,114,3,0,0,0,41,3,114,193,0,0,
- 0,114,68,1,0,0,114,75,1,0,0,114,3,0,0,0,
- 114,74,1,0,0,114,6,0,0,0,218,9,112,97,116,104,
- 95,104,111,111,107,234,5,0,0,115,4,0,0,0,0,10,
- 14,6,122,20,70,105,108,101,70,105,110,100,101,114,46,112,
- 97,116,104,95,104,111,111,107,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
- 0,115,12,0,0,0,100,1,160,0,124,0,106,1,161,1,
- 83,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,61,0,0,0,114,43,
- 0,0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,114,39,1,0,0,252,5,0,0,
- 115,2,0,0,0,0,1,122,19,70,105,108,101,70,105,110,
- 100,101,114,46,95,95,114,101,112,114,95,95,41,1,78,41,
- 15,114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,
- 114,127,0,0,0,114,209,0,0,0,114,46,1,0,0,114,
- 143,0,0,0,114,206,0,0,0,114,137,0,0,0,114,58,
- 1,0,0,114,203,0,0,0,114,69,1,0,0,114,207,0,
- 0,0,114,76,1,0,0,114,39,1,0,0,114,3,0,0,
+ 0,218,15,95,99,97,99,104,101,95,98,121,116,101,99,111,
+ 100,101,52,3,0,0,115,2,0,0,0,0,8,122,28,83,
+ 111,117,114,99,101,76,111,97,100,101,114,46,95,99,97,99,
+ 104,101,95,98,121,116,101,99,111,100,101,99,3,0,0,0,
+ 0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,
+ 67,0,0,0,115,4,0,0,0,100,1,83,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,3,0,0,0,41,3,114,
+ 118,0,0,0,114,43,0,0,0,114,25,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,114,225,0,
+ 0,0,62,3,0,0,115,2,0,0,0,0,1,122,21,83,
+ 111,117,114,99,101,76,111,97,100,101,114,46,115,101,116,95,
+ 100,97,116,97,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,5,0,0,0,10,0,0,0,67,0,0,0,115,84,0,
+ 0,0,124,0,160,0,124,1,161,1,125,2,122,14,124,0,
+ 160,1,124,2,161,1,125,3,87,0,110,50,4,0,116,2,
+ 121,74,1,0,125,4,1,0,122,26,116,3,100,1,124,1,
+ 100,2,141,2,124,4,130,2,87,0,89,0,100,3,125,4,
+ 126,4,110,10,100,3,125,4,126,4,48,0,48,0,116,4,
+ 124,3,131,1,83,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,115,0,0,0,78,41,5,114,
+ 179,0,0,0,218,8,103,101,116,95,100,97,116,97,114,49,
+ 0,0,0,114,117,0,0,0,114,176,0,0,0,41,5,114,
+ 118,0,0,0,114,139,0,0,0,114,43,0,0,0,114,174,
+ 0,0,0,218,3,101,120,99,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,218,10,103,101,116,95,115,111,117,
+ 114,99,101,69,3,0,0,115,20,0,0,0,0,2,10,1,
+ 2,1,14,1,14,1,4,1,2,255,4,1,2,255,24,2,
+ 122,23,83,111,117,114,99,101,76,111,97,100,101,114,46,103,
+ 101,116,95,115,111,117,114,99,101,114,104,0,0,0,41,1,
+ 218,9,95,111,112,116,105,109,105,122,101,99,3,0,0,0,
+ 0,0,0,0,1,0,0,0,4,0,0,0,8,0,0,0,
+ 67,0,0,0,115,22,0,0,0,116,0,106,1,116,2,124,
+ 1,124,2,100,1,100,2,124,3,100,3,141,6,83,0,41,
+ 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,215,0,0,0,84,41,2,218,12,100,
+ 111,110,116,95,105,110,104,101,114,105,116,114,83,0,0,0,
+ 41,3,114,134,0,0,0,114,214,0,0,0,218,7,99,111,
+ 109,112,105,108,101,41,4,114,118,0,0,0,114,25,0,0,
+ 0,114,43,0,0,0,114,230,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,218,14,115,111,117,114,
+ 99,101,95,116,111,95,99,111,100,101,79,3,0,0,115,8,
+ 0,0,0,0,5,12,1,2,0,2,255,122,27,83,111,117,
+ 114,99,101,76,111,97,100,101,114,46,115,111,117,114,99,101,
+ 95,116,111,95,99,111,100,101,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,15,0,0,0,9,0,0,0,67,0,0,
+ 0,115,24,2,0,0,124,0,160,0,124,1,161,1,125,2,
+ 100,1,125,3,100,1,125,4,100,1,125,5,100,2,125,6,
+ 100,3,125,7,122,12,116,1,124,2,131,1,125,8,87,0,
+ 110,24,4,0,116,2,121,66,1,0,1,0,1,0,100,1,
+ 125,8,89,0,144,1,110,42,48,0,122,14,124,0,160,3,
+ 124,2,161,1,125,9,87,0,110,20,4,0,116,4,121,102,
+ 1,0,1,0,1,0,89,0,144,1,110,6,48,0,116,5,
+ 124,9,100,4,25,0,131,1,125,3,122,14,124,0,160,6,
+ 124,8,161,1,125,10,87,0,110,18,4,0,116,4,121,148,
+ 1,0,1,0,1,0,89,0,110,216,48,0,124,1,124,8,
+ 100,5,156,2,125,11,122,148,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,144,1,114,30,124,12,100,9,64,0,100,8,107,3,
+ 125,7,116,9,106,10,100,10,107,3,144,1,114,50,124,7,
+ 115,248,116,9,106,10,100,11,107,2,144,1,114,50,124,0,
+ 160,6,124,2,161,1,125,4,116,9,160,11,116,12,124,4,
+ 161,2,125,5,116,13,124,10,124,5,124,1,124,11,131,4,
+ 1,0,110,20,116,14,124,10,124,3,124,9,100,12,25,0,
+ 124,1,124,11,131,5,1,0,87,0,110,24,4,0,116,15,
+ 116,16,102,2,144,1,121,76,1,0,1,0,1,0,89,0,
+ 110,32,48,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,144,1,114,128,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,2,115,20,124,8,100,1,117,1,144,2,114,20,
+ 124,3,100,1,117,1,144,2,114,20,124,6,144,1,114,220,
+ 124,5,100,1,117,0,144,1,114,206,116,9,160,11,124,4,
+ 161,1,125,5,116,23,124,14,124,5,124,7,131,3,125,10,
+ 110,16,116,24,124,14,124,3,116,25,124,4,131,1,131,3,
+ 125,10,122,18,124,0,160,26,124,2,124,8,124,10,161,3,
+ 1,0,87,0,110,20,4,0,116,2,144,2,121,18,1,0,
+ 1,0,1,0,89,0,110,2,48,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,169,0,0,0,114,159,0,0,0,114,145,0,
+ 0,0,114,38,0,0,0,114,72,0,0,0,114,27,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,116,0,0,0,114,106,0,0,
+ 0,114,107,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,179,0,
+ 0,0,114,97,0,0,0,114,81,0,0,0,114,224,0,0,
+ 0,114,49,0,0,0,114,17,0,0,0,114,227,0,0,0,
+ 114,152,0,0,0,218,10,109,101,109,111,114,121,118,105,101,
+ 119,114,163,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,157,0,
+ 0,0,218,17,95,82,65,87,95,77,65,71,73,67,95,78,
+ 85,77,66,69,82,114,158,0,0,0,114,156,0,0,0,114,
+ 117,0,0,0,114,150,0,0,0,114,134,0,0,0,114,149,
+ 0,0,0,114,165,0,0,0,114,233,0,0,0,114,8,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,171,0,0,0,114,170,0,0,
+ 0,114,22,0,0,0,114,226,0,0,0,41,15,114,118,0,
+ 0,0,114,139,0,0,0,114,107,0,0,0,114,154,0,0,
+ 0,114,174,0,0,0,114,157,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,106,0,0,0,218,2,115,116,114,25,
+ 0,0,0,114,151,0,0,0,114,82,0,0,0,90,10,98,
+ 121,116,101,115,95,100,97,116,97,90,11,99,111,100,101,95,
+ 111,98,106,101,99,116,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,114,213,0,0,0,87,3,0,0,115,152,
+ 0,0,0,0,7,10,1,4,1,4,1,4,1,4,1,4,
+ 1,2,1,12,1,12,1,12,2,2,1,14,1,12,1,8,
+ 2,12,1,2,1,14,1,12,1,6,3,2,1,2,254,6,
+ 4,2,1,12,1,16,1,12,1,6,1,12,1,12,1,2,
+ 255,2,2,8,254,4,3,10,1,4,1,2,1,2,254,4,
+ 4,8,1,2,255,6,3,2,1,2,1,2,1,6,1,2,
+ 1,2,251,8,7,18,1,6,2,8,1,2,255,4,2,6,
+ 1,2,1,2,254,6,3,10,1,10,1,12,1,12,1,18,
+ 1,6,255,4,2,6,1,10,1,10,1,14,2,6,1,6,
+ 255,4,2,2,1,18,1,14,1,6,1,122,21,83,111,117,
+ 114,99,101,76,111,97,100,101,114,46,103,101,116,95,99,111,
+ 100,101,78,41,10,114,125,0,0,0,114,124,0,0,0,114,
+ 126,0,0,0,114,223,0,0,0,114,224,0,0,0,114,226,
+ 0,0,0,114,225,0,0,0,114,229,0,0,0,114,233,0,
+ 0,0,114,213,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,114,221,0,0,0,
+ 28,3,0,0,115,14,0,0,0,8,2,8,8,8,14,8,
+ 10,8,7,8,10,14,8,114,221,0,0,0,99,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+ 0,0,0,0,0,115,124,0,0,0,101,0,90,1,100,0,
+ 90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,
+ 100,5,132,0,90,5,100,6,100,7,132,0,90,6,101,7,
+ 135,0,102,1,100,8,100,9,132,8,131,1,90,8,101,7,
+ 100,10,100,11,132,0,131,1,90,9,100,12,100,13,132,0,
+ 90,10,101,7,100,14,100,15,132,0,131,1,90,11,100,16,
+ 100,17,132,0,90,12,100,18,100,19,132,0,90,13,100,20,
+ 100,21,132,0,90,14,100,22,100,23,132,0,90,15,135,0,
+ 4,0,90,16,83,0,41,24,218,10,70,105,108,101,76,111,
+ 97,100,101,114,122,103,66,97,115,101,32,102,105,108,101,32,
+ 108,111,97,100,101,114,32,99,108,97,115,115,32,119,104,105,
+ 99,104,32,105,109,112,108,101,109,101,110,116,115,32,116,104,
+ 101,32,108,111,97,100,101,114,32,112,114,111,116,111,99,111,
+ 108,32,109,101,116,104,111,100,115,32,116,104,97,116,10,32,
+ 32,32,32,114,101,113,117,105,114,101,32,102,105,108,101,32,
+ 115,121,115,116,101,109,32,117,115,97,103,101,46,99,3,0,
+ 0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,
+ 0,0,67,0,0,0,115,16,0,0,0,124,1,124,0,95,
+ 0,124,2,124,0,95,1,100,1,83,0,41,2,122,75,67,
+ 97,99,104,101,32,116,104,101,32,109,111,100,117,108,101,32,
+ 110,97,109,101,32,97,110,100,32,116,104,101,32,112,97,116,
+ 104,32,116,111,32,116,104,101,32,102,105,108,101,32,102,111,
+ 117,110,100,32,98,121,32,116,104,101,10,32,32,32,32,32,
+ 32,32,32,102,105,110,100,101,114,46,78,114,159,0,0,0,
+ 41,3,114,118,0,0,0,114,139,0,0,0,114,43,0,0,
0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 114,61,1,0,0,109,5,0,0,115,22,0,0,0,8,2,
- 4,7,8,14,8,4,4,2,8,12,8,5,10,48,8,31,
- 2,1,10,17,114,61,1,0,0,99,4,0,0,0,0,0,
- 0,0,0,0,0,0,6,0,0,0,8,0,0,0,67,0,
- 0,0,115,144,0,0,0,124,0,160,0,100,1,161,1,125,
- 4,124,0,160,0,100,2,161,1,125,5,124,4,115,66,124,
- 5,114,36,124,5,106,1,125,4,110,30,124,2,124,3,107,
- 2,114,56,116,2,124,1,124,2,131,2,125,4,110,10,116,
- 3,124,1,124,2,131,2,125,4,124,5,115,84,116,4,124,
- 1,124,2,124,4,100,3,141,3,125,5,122,36,124,5,124,
- 0,100,2,60,0,124,4,124,0,100,1,60,0,124,2,124,
- 0,100,4,60,0,124,3,124,0,100,5,60,0,87,0,110,
- 18,4,0,116,5,121,138,1,0,1,0,1,0,89,0,110,
- 2,48,0,100,0,83,0,41,6,78,218,10,95,95,108,111,
- 97,100,101,114,95,95,218,8,95,95,115,112,101,99,95,95,
- 114,62,1,0,0,90,8,95,95,102,105,108,101,95,95,90,
- 10,95,95,99,97,99,104,101,100,95,95,41,6,218,3,103,
- 101,116,114,140,0,0,0,114,15,1,0,0,114,9,1,0,
- 0,114,190,0,0,0,218,9,69,120,99,101,112,116,105,111,
- 110,41,6,90,2,110,115,114,116,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,140,0,0,0,114,187,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,218,14,95,102,105,120,
- 95,117,112,95,109,111,100,117,108,101,2,6,0,0,115,34,
- 0,0,0,0,2,10,1,10,1,4,1,4,1,8,1,8,
- 1,12,2,10,1,4,1,14,1,2,1,8,1,8,1,8,
- 1,12,1,12,2,114,81,1,0,0,99,0,0,0,0,0,
+ 114,209,0,0,0,177,3,0,0,115,4,0,0,0,0,3,
+ 6,1,122,19,70,105,108,101,76,111,97,100,101,114,46,95,
+ 95,105,110,105,116,95,95,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,
+ 115,24,0,0,0,124,0,106,0,124,1,106,0,107,2,111,
+ 22,124,0,106,1,124,1,106,1,107,2,83,0,114,109,0,
+ 0,0,169,2,218,9,95,95,99,108,97,115,115,95,95,114,
+ 131,0,0,0,169,2,114,118,0,0,0,90,5,111,116,104,
+ 101,114,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,218,6,95,95,101,113,95,95,183,3,0,0,115,6,0,
+ 0,0,0,1,12,1,10,255,122,17,70,105,108,101,76,111,
+ 97,100,101,114,46,95,95,101,113,95,95,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,
+ 67,0,0,0,115,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,109,0,
+ 0,0,169,3,218,4,104,97,115,104,114,116,0,0,0,114,
+ 43,0,0,0,169,1,114,118,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,218,8,95,95,104,97,
+ 115,104,95,95,187,3,0,0,115,2,0,0,0,0,1,122,
+ 19,70,105,108,101,76,111,97,100,101,114,46,95,95,104,97,
+ 115,104,95,95,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,3,0,0,0,3,0,0,0,115,16,0,
+ 0,0,116,0,116,1,124,0,131,2,160,2,124,1,161,1,
+ 83,0,41,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,239,0,0,0,114,220,0,0,0,114,219,0,
+ 0,0,169,1,114,241,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,114,220,0,0,0,190,3,0,0,115,2,0,0,
+ 0,0,10,122,22,70,105,108,101,76,111,97,100,101,114,46,
+ 108,111,97,100,95,109,111,100,117,108,101,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
+ 67,0,0,0,115,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,47,0,
+ 0,0,114,219,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,114,179,0,0,0,202,3,0,0,115,
+ 2,0,0,0,0,3,122,23,70,105,108,101,76,111,97,100,
+ 101,114,46,103,101,116,95,102,105,108,101,110,97,109,101,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
+ 8,0,0,0,67,0,0,0,115,126,0,0,0,116,0,124,
+ 0,116,1,116,2,102,2,131,2,114,70,116,3,160,4,116,
+ 5,124,1,131,1,161,1,143,24,125,2,124,2,160,6,161,
+ 0,87,0,2,0,100,1,4,0,4,0,131,3,1,0,83,
+ 0,49,0,115,58,48,0,1,0,1,0,1,0,89,0,1,
+ 0,110,52,116,3,160,7,124,1,100,2,161,2,143,24,125,
+ 2,124,2,160,6,161,0,87,0,2,0,100,1,4,0,4,
+ 0,131,3,1,0,83,0,49,0,115,112,48,0,1,0,1,
+ 0,1,0,89,0,1,0,100,1,83,0,41,3,122,39,82,
+ 101,116,117,114,110,32,116,104,101,32,100,97,116,97,32,102,
+ 114,111,109,32,112,97,116,104,32,97,115,32,114,97,119,32,
+ 98,121,116,101,115,46,78,218,1,114,41,8,114,161,0,0,
+ 0,114,221,0,0,0,218,19,69,120,116,101,110,115,105,111,
+ 110,70,105,108,101,76,111,97,100,101,114,114,63,0,0,0,
+ 90,9,111,112,101,110,95,99,111,100,101,114,84,0,0,0,
+ 90,4,114,101,97,100,114,64,0,0,0,41,3,114,118,0,
+ 0,0,114,43,0,0,0,114,67,0,0,0,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,114,227,0,0,0,
+ 207,3,0,0,115,10,0,0,0,0,2,14,1,16,1,40,
+ 2,14,1,122,19,70,105,108,101,76,111,97,100,101,114,46,
+ 103,101,116,95,100,97,116,97,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,
+ 0,115,18,0,0,0,124,0,160,0,124,1,161,1,114,14,
+ 124,0,83,0,100,0,83,0,114,109,0,0,0,41,1,114,
+ 182,0,0,0,169,2,114,118,0,0,0,114,216,0,0,0,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
+ 19,103,101,116,95,114,101,115,111,117,114,99,101,95,114,101,
+ 97,100,101,114,218,3,0,0,115,6,0,0,0,0,2,10,
+ 1,4,1,122,30,70,105,108,101,76,111,97,100,101,114,46,
+ 103,101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,
+ 100,101,114,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 3,0,0,0,4,0,0,0,67,0,0,0,115,32,0,0,
+ 0,116,0,116,1,124,0,106,2,131,1,100,1,25,0,124,
+ 1,131,2,125,2,116,3,160,4,124,2,100,2,161,2,83,
+ 0,41,3,78,114,72,0,0,0,114,251,0,0,0,41,5,
+ 114,37,0,0,0,114,46,0,0,0,114,43,0,0,0,114,
+ 63,0,0,0,114,64,0,0,0,169,3,114,118,0,0,0,
+ 90,8,114,101,115,111,117,114,99,101,114,43,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,13,
+ 111,112,101,110,95,114,101,115,111,117,114,99,101,224,3,0,
+ 0,115,4,0,0,0,0,1,20,1,122,24,70,105,108,101,
+ 76,111,97,100,101,114,46,111,112,101,110,95,114,101,115,111,
+ 117,114,99,101,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,3,0,0,0,3,0,0,0,67,0,0,0,115,38,0,
+ 0,0,124,0,160,0,124,1,161,1,115,14,116,1,130,1,
+ 116,2,116,3,124,0,106,4,131,1,100,1,25,0,124,1,
+ 131,2,125,2,124,2,83,0,169,2,78,114,72,0,0,0,
+ 41,5,218,11,105,115,95,114,101,115,111,117,114,99,101,218,
+ 17,70,105,108,101,78,111,116,70,111,117,110,100,69,114,114,
+ 111,114,114,37,0,0,0,114,46,0,0,0,114,43,0,0,
+ 0,114,255,0,0,0,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,218,13,114,101,115,111,117,114,99,101,95,
+ 112,97,116,104,228,3,0,0,115,8,0,0,0,0,1,10,
+ 1,4,1,20,1,122,24,70,105,108,101,76,111,97,100,101,
+ 114,46,114,101,115,111,117,114,99,101,95,112,97,116,104,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
+ 3,0,0,0,67,0,0,0,115,40,0,0,0,116,0,124,
+ 1,118,0,114,12,100,1,83,0,116,1,116,2,124,0,106,
+ 3,131,1,100,2,25,0,124,1,131,2,125,2,116,4,124,
+ 2,131,1,83,0,41,3,78,70,114,72,0,0,0,41,5,
+ 114,34,0,0,0,114,37,0,0,0,114,46,0,0,0,114,
+ 43,0,0,0,114,53,0,0,0,169,3,114,118,0,0,0,
+ 114,116,0,0,0,114,43,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,114,2,1,0,0,234,3,
+ 0,0,115,8,0,0,0,0,1,8,1,4,1,20,1,122,
+ 22,70,105,108,101,76,111,97,100,101,114,46,105,115,95,114,
+ 101,115,111,117,114,99,101,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,5,0,0,0,67,0,0,0,
+ 115,24,0,0,0,116,0,116,1,160,2,116,3,124,0,106,
+ 4,131,1,100,1,25,0,161,1,131,1,83,0,114,1,1,
+ 0,0,41,5,218,4,105,116,101,114,114,2,0,0,0,218,
+ 7,108,105,115,116,100,105,114,114,46,0,0,0,114,43,0,
+ 0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,218,8,99,111,110,116,101,110,116,115,
+ 240,3,0,0,115,2,0,0,0,0,1,122,19,70,105,108,
+ 101,76,111,97,100,101,114,46,99,111,110,116,101,110,116,115,
+ 41,17,114,125,0,0,0,114,124,0,0,0,114,126,0,0,
+ 0,114,127,0,0,0,114,209,0,0,0,114,243,0,0,0,
+ 114,247,0,0,0,114,136,0,0,0,114,220,0,0,0,114,
+ 179,0,0,0,114,227,0,0,0,114,254,0,0,0,114,0,
+ 1,0,0,114,4,1,0,0,114,2,1,0,0,114,8,1,
+ 0,0,90,13,95,95,99,108,97,115,115,99,101,108,108,95,
+ 95,114,3,0,0,0,114,3,0,0,0,114,249,0,0,0,
+ 114,6,0,0,0,114,239,0,0,0,172,3,0,0,115,30,
+ 0,0,0,8,2,4,3,8,6,8,4,8,3,2,1,14,
+ 11,2,1,10,4,8,11,2,1,10,5,8,4,8,6,8,
+ 6,114,239,0,0,0,99,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,
+ 46,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
+ 100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,
+ 100,6,100,7,156,1,100,8,100,9,132,2,90,6,100,10,
+ 83,0,41,11,218,16,83,111,117,114,99,101,70,105,108,101,
+ 76,111,97,100,101,114,122,62,67,111,110,99,114,101,116,101,
+ 32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,
+ 111,102,32,83,111,117,114,99,101,76,111,97,100,101,114,32,
+ 117,115,105,110,103,32,116,104,101,32,102,105,108,101,32,115,
+ 121,115,116,101,109,46,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,
+ 22,0,0,0,116,0,124,1,131,1,125,2,124,2,106,1,
+ 124,2,106,2,100,1,156,2,83,0,41,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,169,0,0,0,114,234,0,0,0,41,3,114,48,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,118,0,0,0,114,43,0,0,
+ 0,114,238,0,0,0,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,114,224,0,0,0,248,3,0,0,115,4,
+ 0,0,0,0,2,8,1,122,27,83,111,117,114,99,101,70,
+ 105,108,101,76,111,97,100,101,114,46,112,97,116,104,95,115,
+ 116,97,116,115,99,4,0,0,0,0,0,0,0,0,0,0,
+ 0,5,0,0,0,5,0,0,0,67,0,0,0,115,24,0,
+ 0,0,116,0,124,1,131,1,125,4,124,0,106,1,124,2,
+ 124,3,124,4,100,1,141,3,83,0,41,2,78,169,1,218,
+ 5,95,109,111,100,101,41,2,114,114,0,0,0,114,225,0,
+ 0,0,41,5,114,118,0,0,0,114,107,0,0,0,114,106,
+ 0,0,0,114,25,0,0,0,114,51,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,226,0,0,
+ 0,253,3,0,0,115,4,0,0,0,0,2,8,1,122,32,
+ 83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,114,
+ 46,95,99,97,99,104,101,95,98,121,116,101,99,111,100,101,
+ 114,59,0,0,0,114,11,1,0,0,99,3,0,0,0,0,
+ 0,0,0,1,0,0,0,9,0,0,0,11,0,0,0,67,
+ 0,0,0,115,252,0,0,0,116,0,124,1,131,1,92,2,
+ 125,4,125,5,103,0,125,6,124,4,114,52,116,1,124,4,
+ 131,1,115,52,116,0,124,4,131,1,92,2,125,4,125,7,
+ 124,6,160,2,124,7,161,1,1,0,113,16,116,3,124,6,
+ 131,1,68,0,93,104,125,7,116,4,124,4,124,7,131,2,
+ 125,4,122,14,116,5,160,6,124,4,161,1,1,0,87,0,
+ 113,60,4,0,116,7,121,110,1,0,1,0,1,0,89,0,
+ 113,60,89,0,113,60,4,0,116,8,121,162,1,0,125,8,
+ 1,0,122,30,116,9,160,10,100,1,124,4,124,8,161,3,
+ 1,0,87,0,89,0,100,2,125,8,126,8,1,0,100,2,
+ 83,0,100,2,125,8,126,8,48,0,48,0,113,60,122,28,
+ 116,11,124,1,124,2,124,3,131,3,1,0,116,9,160,10,
+ 100,3,124,1,161,2,1,0,87,0,110,52,4,0,116,8,
+ 144,0,121,246,1,0,125,8,1,0,122,26,116,9,160,10,
+ 100,1,124,1,124,8,161,3,1,0,87,0,89,0,100,2,
+ 125,8,126,8,110,10,100,2,125,8,126,8,48,0,48,0,
+ 100,2,83,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,46,0,0,0,114,55,0,0,0,114,186,0,0,0,
+ 114,41,0,0,0,114,37,0,0,0,114,2,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,49,0,0,0,114,134,0,0,
+ 0,114,149,0,0,0,114,68,0,0,0,41,9,114,118,0,
+ 0,0,114,43,0,0,0,114,25,0,0,0,114,12,1,0,
+ 0,218,6,112,97,114,101,110,116,114,96,0,0,0,114,36,
+ 0,0,0,114,32,0,0,0,114,228,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,225,0,0,
+ 0,2,4,0,0,115,48,0,0,0,0,2,12,1,4,2,
+ 12,1,12,1,12,2,12,1,10,1,2,1,14,1,12,2,
+ 8,1,14,3,6,1,2,0,2,255,4,2,28,1,2,1,
+ 12,1,16,1,16,2,8,1,2,255,122,25,83,111,117,114,
+ 99,101,70,105,108,101,76,111,97,100,101,114,46,115,101,116,
+ 95,100,97,116,97,78,41,7,114,125,0,0,0,114,124,0,
+ 0,0,114,126,0,0,0,114,127,0,0,0,114,224,0,0,
+ 0,114,226,0,0,0,114,225,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
+ 9,1,0,0,244,3,0,0,115,8,0,0,0,8,2,4,
+ 2,8,5,8,5,114,9,1,0,0,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,
+ 0,0,0,115,32,0,0,0,101,0,90,1,100,0,90,2,
+ 100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,5,
+ 132,0,90,5,100,6,83,0,41,7,218,20,83,111,117,114,
+ 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,
+ 122,45,76,111,97,100,101,114,32,119,104,105,99,104,32,104,
+ 97,110,100,108,101,115,32,115,111,117,114,99,101,108,101,115,
+ 115,32,102,105,108,101,32,105,109,112,111,114,116,115,46,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,
+ 5,0,0,0,67,0,0,0,115,68,0,0,0,124,0,160,
+ 0,124,1,161,1,125,2,124,0,160,1,124,2,161,1,125,
+ 3,124,1,124,2,100,1,156,2,125,4,116,2,124,3,124,
+ 1,124,4,131,3,1,0,116,3,116,4,124,3,131,1,100,
+ 2,100,0,133,2,25,0,124,1,124,2,100,3,141,3,83,
+ 0,41,4,78,114,159,0,0,0,114,145,0,0,0,41,2,
+ 114,116,0,0,0,114,106,0,0,0,41,5,114,179,0,0,
+ 0,114,227,0,0,0,114,152,0,0,0,114,165,0,0,0,
+ 114,235,0,0,0,41,5,114,118,0,0,0,114,139,0,0,
+ 0,114,43,0,0,0,114,25,0,0,0,114,151,0,0,0,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
+ 213,0,0,0,37,4,0,0,115,22,0,0,0,0,1,10,
+ 1,10,4,2,1,2,254,6,4,12,1,2,1,14,1,2,
+ 1,2,253,122,29,83,111,117,114,99,101,108,101,115,115,70,
+ 105,108,101,76,111,97,100,101,114,46,103,101,116,95,99,111,
+ 100,101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,
+ 100,1,83,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,3,0,0,0,114,219,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,114,229,0,0,0,53,4,
+ 0,0,115,2,0,0,0,0,2,122,31,83,111,117,114,99,
+ 101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,46,
+ 103,101,116,95,115,111,117,114,99,101,78,41,6,114,125,0,
+ 0,0,114,124,0,0,0,114,126,0,0,0,114,127,0,0,
+ 0,114,213,0,0,0,114,229,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
+ 15,1,0,0,33,4,0,0,115,6,0,0,0,8,2,4,
+ 2,8,16,114,15,1,0,0,99,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,3,0,0,0,64,0,0,
+ 0,115,92,0,0,0,101,0,90,1,100,0,90,2,100,1,
+ 90,3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,
+ 90,5,100,6,100,7,132,0,90,6,100,8,100,9,132,0,
+ 90,7,100,10,100,11,132,0,90,8,100,12,100,13,132,0,
+ 90,9,100,14,100,15,132,0,90,10,100,16,100,17,132,0,
+ 90,11,101,12,100,18,100,19,132,0,131,1,90,13,100,20,
+ 83,0,41,21,114,252,0,0,0,122,93,76,111,97,100,101,
+ 114,32,102,111,114,32,101,120,116,101,110,115,105,111,110,32,
+ 109,111,100,117,108,101,115,46,10,10,32,32,32,32,84,104,
+ 101,32,99,111,110,115,116,114,117,99,116,111,114,32,105,115,
+ 32,100,101,115,105,103,110,101,100,32,116,111,32,119,111,114,
+ 107,32,119,105,116,104,32,70,105,108,101,70,105,110,100,101,
+ 114,46,10,10,32,32,32,32,99,3,0,0,0,0,0,0,
+ 0,0,0,0,0,3,0,0,0,2,0,0,0,67,0,0,
+ 0,115,16,0,0,0,124,1,124,0,95,0,124,2,124,0,
+ 95,1,100,0,83,0,114,109,0,0,0,114,159,0,0,0,
+ 114,5,1,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,209,0,0,0,70,4,0,0,115,4,0,
+ 0,0,0,1,6,1,122,28,69,120,116,101,110,115,105,111,
+ 110,70,105,108,101,76,111,97,100,101,114,46,95,95,105,110,
+ 105,116,95,95,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,2,0,0,0,67,0,0,0,115,24,0,
+ 0,0,124,0,106,0,124,1,106,0,107,2,111,22,124,0,
+ 106,1,124,1,106,1,107,2,83,0,114,109,0,0,0,114,
+ 240,0,0,0,114,242,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,114,243,0,0,0,74,4,0,
+ 0,115,6,0,0,0,0,1,12,1,10,255,122,26,69,120,
+ 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,
+ 114,46,95,95,101,113,95,95,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
+ 0,115,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,109,0,0,0,114,
+ 244,0,0,0,114,246,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,114,247,0,0,0,78,4,0,
+ 0,115,2,0,0,0,0,1,122,28,69,120,116,101,110,115,
+ 105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,95,
+ 104,97,115,104,95,95,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,3,0,0,0,5,0,0,0,67,0,0,0,115,
+ 36,0,0,0,116,0,160,1,116,2,106,3,124,1,161,2,
+ 125,2,116,0,160,4,100,1,124,1,106,5,124,0,106,6,
+ 161,3,1,0,124,2,83,0,41,2,122,38,67,114,101,97,
+ 116,101,32,97,110,32,117,110,105,116,105,97,108,105,122,101,
+ 100,32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,
+ 108,101,122,38,101,120,116,101,110,115,105,111,110,32,109,111,
+ 100,117,108,101,32,123,33,114,125,32,108,111,97,100,101,100,
+ 32,102,114,111,109,32,123,33,114,125,41,7,114,134,0,0,
+ 0,114,214,0,0,0,114,163,0,0,0,90,14,99,114,101,
+ 97,116,101,95,100,121,110,97,109,105,99,114,149,0,0,0,
+ 114,116,0,0,0,114,43,0,0,0,41,3,114,118,0,0,
+ 0,114,187,0,0,0,114,216,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,114,212,0,0,0,81,
+ 4,0,0,115,18,0,0,0,0,2,4,1,4,0,2,255,
+ 4,2,6,1,4,0,4,255,4,2,122,33,69,120,116,101,
+ 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
+ 99,114,101,97,116,101,95,109,111,100,117,108,101,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,5,0,
+ 0,0,67,0,0,0,115,36,0,0,0,116,0,160,1,116,
+ 2,106,3,124,1,161,2,1,0,116,0,160,4,100,1,124,
+ 0,106,5,124,0,106,6,161,3,1,0,100,2,83,0,41,
+ 3,122,30,73,110,105,116,105,97,108,105,122,101,32,97,110,
+ 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,
+ 101,122,40,101,120,116,101,110,115,105,111,110,32,109,111,100,
+ 117,108,101,32,123,33,114,125,32,101,120,101,99,117,116,101,
+ 100,32,102,114,111,109,32,123,33,114,125,78,41,7,114,134,
+ 0,0,0,114,214,0,0,0,114,163,0,0,0,90,12,101,
+ 120,101,99,95,100,121,110,97,109,105,99,114,149,0,0,0,
+ 114,116,0,0,0,114,43,0,0,0,114,253,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,217,
+ 0,0,0,89,4,0,0,115,10,0,0,0,0,2,14,1,
+ 6,1,4,0,4,255,122,31,69,120,116,101,110,115,105,111,
+ 110,70,105,108,101,76,111,97,100,101,114,46,101,120,101,99,
+ 95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,2,0,0,0,4,0,0,0,3,0,0,0,
+ 115,36,0,0,0,116,0,124,0,106,1,131,1,100,1,25,
+ 0,137,0,116,2,135,0,102,1,100,2,100,3,132,8,116,
+ 3,68,0,131,1,131,1,83,0,41,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,38,
+ 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,4,0,0,0,51,0,0,0,115,26,0,0,
+ 0,124,0,93,18,125,1,136,0,100,0,124,1,23,0,107,
+ 2,86,0,1,0,113,2,100,1,83,0,41,2,114,209,0,
+ 0,0,78,114,3,0,0,0,169,2,114,31,0,0,0,218,
+ 6,115,117,102,102,105,120,169,1,90,9,102,105,108,101,95,
+ 110,97,109,101,114,3,0,0,0,114,6,0,0,0,218,9,
+ 60,103,101,110,101,120,112,114,62,98,4,0,0,115,4,0,
+ 0,0,4,1,2,255,122,49,69,120,116,101,110,115,105,111,
+ 110,70,105,108,101,76,111,97,100,101,114,46,105,115,95,112,
+ 97,99,107,97,103,101,46,60,108,111,99,97,108,115,62,46,
+ 60,103,101,110,101,120,112,114,62,41,4,114,46,0,0,0,
+ 114,43,0,0,0,218,3,97,110,121,218,18,69,88,84,69,
+ 78,83,73,79,78,95,83,85,70,70,73,88,69,83,114,219,
+ 0,0,0,114,3,0,0,0,114,18,1,0,0,114,6,0,
+ 0,0,114,182,0,0,0,95,4,0,0,115,8,0,0,0,
+ 0,2,14,1,12,1,2,255,122,30,69,120,116,101,110,115,
+ 105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,
+ 95,112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,
+ 0,115,4,0,0,0,100,1,83,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,3,
+ 0,0,0,114,219,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,114,213,0,0,0,101,4,0,0,
+ 115,2,0,0,0,0,2,122,28,69,120,116,101,110,115,105,
+ 111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,
+ 95,99,111,100,101,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,
+ 0,0,0,100,1,83,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,3,0,0,0,114,219,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,114,229,0,0,0,105,
+ 4,0,0,115,2,0,0,0,0,2,122,30,69,120,116,101,
+ 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
+ 103,101,116,95,115,111,117,114,99,101,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
+ 0,0,0,115,6,0,0,0,124,0,106,0,83,0,114,250,
+ 0,0,0,114,47,0,0,0,114,219,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,179,0,0,
+ 0,109,4,0,0,115,2,0,0,0,0,3,122,32,69,120,
+ 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,
+ 114,46,103,101,116,95,102,105,108,101,110,97,109,101,78,41,
+ 14,114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,
+ 114,127,0,0,0,114,209,0,0,0,114,243,0,0,0,114,
+ 247,0,0,0,114,212,0,0,0,114,217,0,0,0,114,182,
+ 0,0,0,114,213,0,0,0,114,229,0,0,0,114,136,0,
+ 0,0,114,179,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,114,252,0,0,0,
+ 62,4,0,0,115,22,0,0,0,8,2,4,6,8,4,8,
+ 4,8,3,8,8,8,6,8,6,8,4,8,4,2,1,114,
+ 252,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,64,0,0,0,115,104,0,
+ 0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,
+ 100,3,132,0,90,4,100,4,100,5,132,0,90,5,100,6,
+ 100,7,132,0,90,6,100,8,100,9,132,0,90,7,100,10,
+ 100,11,132,0,90,8,100,12,100,13,132,0,90,9,100,14,
+ 100,15,132,0,90,10,100,16,100,17,132,0,90,11,100,18,
+ 100,19,132,0,90,12,100,20,100,21,132,0,90,13,100,22,
+ 100,23,132,0,90,14,100,24,83,0,41,25,218,14,95,78,
+ 97,109,101,115,112,97,99,101,80,97,116,104,97,38,1,0,
+ 0,82,101,112,114,101,115,101,110,116,115,32,97,32,110,97,
+ 109,101,115,112,97,99,101,32,112,97,99,107,97,103,101,39,
+ 115,32,112,97,116,104,46,32,32,73,116,32,117,115,101,115,
+ 32,116,104,101,32,109,111,100,117,108,101,32,110,97,109,101,
+ 10,32,32,32,32,116,111,32,102,105,110,100,32,105,116,115,
+ 32,112,97,114,101,110,116,32,109,111,100,117,108,101,44,32,
+ 97,110,100,32,102,114,111,109,32,116,104,101,114,101,32,105,
+ 116,32,108,111,111,107,115,32,117,112,32,116,104,101,32,112,
+ 97,114,101,110,116,39,115,10,32,32,32,32,95,95,112,97,
+ 116,104,95,95,46,32,32,87,104,101,110,32,116,104,105,115,
+ 32,99,104,97,110,103,101,115,44,32,116,104,101,32,109,111,
+ 100,117,108,101,39,115,32,111,119,110,32,112,97,116,104,32,
+ 105,115,32,114,101,99,111,109,112,117,116,101,100,44,10,32,
+ 32,32,32,117,115,105,110,103,32,112,97,116,104,95,102,105,
+ 110,100,101,114,46,32,32,70,111,114,32,116,111,112,45,108,
+ 101,118,101,108,32,109,111,100,117,108,101,115,44,32,116,104,
+ 101,32,112,97,114,101,110,116,32,109,111,100,117,108,101,39,
+ 115,32,112,97,116,104,10,32,32,32,32,105,115,32,115,121,
+ 115,46,112,97,116,104,46,99,4,0,0,0,0,0,0,0,
+ 0,0,0,0,4,0,0,0,3,0,0,0,67,0,0,0,
+ 115,36,0,0,0,124,1,124,0,95,0,124,2,124,0,95,
+ 1,116,2,124,0,160,3,161,0,131,1,124,0,95,4,124,
+ 3,124,0,95,5,100,0,83,0,114,109,0,0,0,41,6,
+ 218,5,95,110,97,109,101,218,5,95,112,97,116,104,114,111,
+ 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,118,0,0,0,114,116,0,
+ 0,0,114,43,0,0,0,90,11,112,97,116,104,95,102,105,
+ 110,100,101,114,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,114,209,0,0,0,122,4,0,0,115,8,0,0,
+ 0,0,1,6,1,6,1,14,1,122,23,95,78,97,109,101,
+ 115,112,97,99,101,80,97,116,104,46,95,95,105,110,105,116,
+ 95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,4,
+ 0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,
+ 124,0,106,0,160,1,100,1,161,1,92,3,125,1,125,2,
+ 125,3,124,2,100,2,107,2,114,30,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,70,0,0,0,114,39,0,
+ 0,0,41,2,114,8,0,0,0,114,43,0,0,0,90,8,
+ 95,95,112,97,116,104,95,95,41,2,114,23,1,0,0,114,
+ 40,0,0,0,41,4,114,118,0,0,0,114,14,1,0,0,
+ 218,3,100,111,116,90,2,109,101,114,3,0,0,0,114,3,
+ 0,0,0,114,6,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,128,4,0,0,115,8,0,0,0,0,2,18,1,8,2,
+ 4,3,122,38,95,78,97,109,101,115,112,97,99,101,80,97,
+ 116,104,46,95,102,105,110,100,95,112,97,114,101,110,116,95,
+ 112,97,116,104,95,110,97,109,101,115,99,1,0,0,0,0,
0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,
- 0,0,0,115,38,0,0,0,116,0,116,1,160,2,161,0,
- 102,2,125,0,116,3,116,4,102,2,125,1,116,5,116,6,
- 102,2,125,2,124,0,124,1,124,2,103,3,83,0,41,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,252,0,0,0,114,163,0,0,0,218,18,101,
- 120,116,101,110,115,105,111,110,95,115,117,102,102,105,120,101,
- 115,114,9,1,0,0,114,101,0,0,0,114,15,1,0,0,
- 114,88,0,0,0,41,3,90,10,101,120,116,101,110,115,105,
- 111,110,115,90,6,115,111,117,114,99,101,90,8,98,121,116,
- 101,99,111,100,101,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,184,0,0,0,25,6,0,0,115,8,0,
- 0,0,0,5,12,1,8,1,8,1,114,184,0,0,0,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,
- 9,0,0,0,67,0,0,0,115,176,1,0,0,124,0,97,
- 0,116,0,106,1,97,1,116,0,106,2,97,2,116,1,106,
- 3,116,4,25,0,125,1,100,1,68,0,93,48,125,2,124,
- 2,116,1,106,3,118,1,114,56,116,0,160,5,124,2,161,
- 1,125,3,110,10,116,1,106,3,124,2,25,0,125,3,116,
- 6,124,1,124,2,124,3,131,3,1,0,113,30,100,2,100,
- 3,103,1,102,2,100,4,100,5,100,3,103,2,102,2,102,
- 2,125,4,124,4,68,0,93,108,92,2,125,5,125,6,116,
- 7,100,6,100,7,132,0,124,6,68,0,131,1,131,1,115,
- 136,74,0,130,1,124,6,100,8,25,0,125,7,124,5,116,
- 1,106,3,118,0,114,170,116,1,106,3,124,5,25,0,125,
- 8,1,0,113,224,113,106,122,20,116,0,160,5,124,5,161,
- 1,125,8,87,0,1,0,113,224,87,0,113,106,4,0,116,
- 8,121,212,1,0,1,0,1,0,89,0,113,106,89,0,113,
- 106,48,0,113,106,116,8,100,9,131,1,130,1,116,6,124,
- 1,100,10,124,8,131,3,1,0,116,6,124,1,100,11,124,
- 7,131,3,1,0,116,6,124,1,100,12,100,13,160,9,124,
- 6,161,1,131,3,1,0,116,6,124,1,100,14,100,15,100,
- 16,132,0,124,6,68,0,131,1,131,3,1,0,116,0,160,
- 5,100,17,161,1,125,9,116,6,124,1,100,17,124,9,131,
- 3,1,0,116,0,160,5,100,18,161,1,125,10,116,6,124,
- 1,100,18,124,10,131,3,1,0,124,5,100,4,107,2,144,
- 1,114,108,116,0,160,5,100,19,161,1,125,11,116,6,124,
- 1,100,20,124,11,131,3,1,0,116,6,124,1,100,21,116,
- 10,131,0,131,3,1,0,116,11,160,12,116,2,160,13,161,
- 0,161,1,1,0,124,5,100,4,107,2,144,1,114,172,116,
- 14,160,15,100,22,161,1,1,0,100,23,116,11,118,0,144,
- 1,114,172,100,24,116,16,95,17,100,25,83,0,41,26,122,
- 205,83,101,116,117,112,32,116,104,101,32,112,97,116,104,45,
- 98,97,115,101,100,32,105,109,112,111,114,116,101,114,115,32,
- 102,111,114,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,10,32,32,32,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,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,79,116,104,101,114,32,
- 99,111,109,112,111,110,101,110,116,115,32,97,114,101,32,101,
- 120,116,114,97,99,116,101,100,32,102,114,111,109,32,116,104,
- 101,32,99,111,114,101,32,98,111,111,116,115,116,114,97,112,
- 32,109,111,100,117,108,101,46,10,10,32,32,32,32,41,4,
- 114,63,0,0,0,114,74,0,0,0,218,8,98,117,105,108,
- 116,105,110,115,114,160,0,0,0,90,5,112,111,115,105,120,
- 250,1,47,90,2,110,116,250,1,92,99,1,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,115,
- 0,0,0,115,26,0,0,0,124,0,93,18,125,1,116,0,
- 124,1,131,1,100,0,107,2,86,0,1,0,113,2,100,1,
- 83,0,41,2,114,38,0,0,0,78,41,1,114,22,0,0,
- 0,41,2,114,31,0,0,0,114,94,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,19,1,0,
- 0,61,6,0,0,115,4,0,0,0,4,0,2,0,122,25,
- 95,115,101,116,117,112,46,60,108,111,99,97,108,115,62,46,
- 60,103,101,110,101,120,112,114,62,114,72,0,0,0,122,30,
- 105,109,112,111,114,116,108,105,98,32,114,101,113,117,105,114,
- 101,115,32,112,111,115,105,120,32,111,114,32,110,116,114,2,
- 0,0,0,114,34,0,0,0,114,30,0,0,0,114,39,0,
- 0,0,114,57,0,0,0,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,2,0,0,0,4,0,0,0,83,0,0,0,
- 115,22,0,0,0,104,0,124,0,93,14,125,1,100,0,124,
- 1,155,0,157,2,146,2,113,4,83,0,41,1,114,73,0,
- 0,0,114,3,0,0,0,41,2,114,31,0,0,0,218,1,
- 115,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 114,70,1,0,0,77,6,0,0,115,4,0,0,0,6,0,
+ 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,109,0,0,0,41,4,114,30,1,0,0,
+ 114,130,0,0,0,114,8,0,0,0,218,7,109,111,100,117,
+ 108,101,115,41,3,114,118,0,0,0,90,18,112,97,114,101,
+ 110,116,95,109,111,100,117,108,101,95,110,97,109,101,90,14,
+ 112,97,116,104,95,97,116,116,114,95,110,97,109,101,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,114,25,1,
+ 0,0,138,4,0,0,115,4,0,0,0,0,1,12,1,122,
+ 31,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
+ 95,103,101,116,95,112,97,114,101,110,116,95,112,97,116,104,
+ 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
+ 0,4,0,0,0,67,0,0,0,115,80,0,0,0,116,0,
+ 124,0,160,1,161,0,131,1,125,1,124,1,124,0,106,2,
+ 107,3,114,74,124,0,160,3,124,0,106,4,124,1,161,2,
+ 125,2,124,2,100,0,117,1,114,68,124,2,106,5,100,0,
+ 117,0,114,68,124,2,106,6,114,68,124,2,106,6,124,0,
+ 95,7,124,1,124,0,95,2,124,0,106,7,83,0,114,109,
+ 0,0,0,41,8,114,111,0,0,0,114,25,1,0,0,114,
+ 26,1,0,0,114,27,1,0,0,114,23,1,0,0,114,140,
+ 0,0,0,114,178,0,0,0,114,24,1,0,0,41,3,114,
+ 118,0,0,0,90,11,112,97,114,101,110,116,95,112,97,116,
+ 104,114,187,0,0,0,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,218,12,95,114,101,99,97,108,99,117,108,
+ 97,116,101,142,4,0,0,115,16,0,0,0,0,2,12,1,
+ 10,1,14,3,18,1,6,1,8,1,6,1,122,27,95,78,
+ 97,109,101,115,112,97,99,101,80,97,116,104,46,95,114,101,
+ 99,97,108,99,117,108,97,116,101,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
+ 0,0,115,12,0,0,0,116,0,124,0,160,1,161,0,131,
+ 1,83,0,114,109,0,0,0,41,2,114,6,1,0,0,114,
+ 32,1,0,0,114,246,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,218,8,95,95,105,116,101,114,
+ 95,95,155,4,0,0,115,2,0,0,0,0,1,122,23,95,
+ 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,
+ 105,116,101,114,95,95,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,
+ 12,0,0,0,124,0,160,0,161,0,124,1,25,0,83,0,
+ 114,109,0,0,0,169,1,114,32,1,0,0,41,2,114,118,
+ 0,0,0,218,5,105,110,100,101,120,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,218,11,95,95,103,101,116,
+ 105,116,101,109,95,95,158,4,0,0,115,2,0,0,0,0,
+ 1,122,26,95,78,97,109,101,115,112,97,99,101,80,97,116,
+ 104,46,95,95,103,101,116,105,116,101,109,95,95,99,3,0,
+ 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,
+ 0,0,67,0,0,0,115,14,0,0,0,124,2,124,0,106,
+ 0,124,1,60,0,100,0,83,0,114,109,0,0,0,41,1,
+ 114,24,1,0,0,41,3,114,118,0,0,0,114,35,1,0,
+ 0,114,43,0,0,0,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,218,11,95,95,115,101,116,105,116,101,109,
+ 95,95,161,4,0,0,115,2,0,0,0,0,1,122,26,95,
+ 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,
+ 115,101,116,105,116,101,109,95,95,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
+ 0,0,115,12,0,0,0,116,0,124,0,160,1,161,0,131,
+ 1,83,0,114,109,0,0,0,41,2,114,22,0,0,0,114,
+ 32,1,0,0,114,246,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,218,7,95,95,108,101,110,95,
+ 95,164,4,0,0,115,2,0,0,0,0,1,122,22,95,78,
+ 97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,108,
+ 101,110,95,95,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,3,0,0,0,67,0,0,0,115,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,61,0,0,0,114,24,
+ 1,0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,218,8,95,95,114,101,112,114,95,
+ 95,167,4,0,0,115,2,0,0,0,0,1,122,23,95,78,
+ 97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,114,
+ 101,112,114,95,95,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,12,
+ 0,0,0,124,1,124,0,160,0,161,0,118,0,83,0,114,
+ 109,0,0,0,114,34,1,0,0,169,2,114,118,0,0,0,
+ 218,4,105,116,101,109,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,218,12,95,95,99,111,110,116,97,105,110,
+ 115,95,95,170,4,0,0,115,2,0,0,0,0,1,122,27,
+ 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
+ 95,99,111,110,116,97,105,110,115,95,95,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
+ 67,0,0,0,115,16,0,0,0,124,0,106,0,160,1,124,
+ 1,161,1,1,0,100,0,83,0,114,109,0,0,0,41,2,
+ 114,24,1,0,0,114,186,0,0,0,114,40,1,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,186,
+ 0,0,0,173,4,0,0,115,2,0,0,0,0,1,122,21,
+ 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,97,
+ 112,112,101,110,100,78,41,15,114,125,0,0,0,114,124,0,
+ 0,0,114,126,0,0,0,114,127,0,0,0,114,209,0,0,
+ 0,114,30,1,0,0,114,25,1,0,0,114,32,1,0,0,
+ 114,33,1,0,0,114,36,1,0,0,114,37,1,0,0,114,
+ 38,1,0,0,114,39,1,0,0,114,42,1,0,0,114,186,
+ 0,0,0,114,3,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,114,22,1,0,0,115,4,0,0,
+ 115,24,0,0,0,8,1,4,6,8,6,8,10,8,4,8,
+ 13,8,3,8,3,8,3,8,3,8,3,8,3,114,22,1,
+ 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,3,0,0,0,64,0,0,0,115,80,0,0,0,
+ 101,0,90,1,100,0,90,2,100,1,100,2,132,0,90,3,
+ 101,4,100,3,100,4,132,0,131,1,90,5,100,5,100,6,
+ 132,0,90,6,100,7,100,8,132,0,90,7,100,9,100,10,
+ 132,0,90,8,100,11,100,12,132,0,90,9,100,13,100,14,
+ 132,0,90,10,100,15,100,16,132,0,90,11,100,17,83,0,
+ 41,18,218,16,95,78,97,109,101,115,112,97,99,101,76,111,
+ 97,100,101,114,99,4,0,0,0,0,0,0,0,0,0,0,
+ 0,4,0,0,0,4,0,0,0,67,0,0,0,115,18,0,
+ 0,0,116,0,124,1,124,2,124,3,131,3,124,0,95,1,
+ 100,0,83,0,114,109,0,0,0,41,2,114,22,1,0,0,
+ 114,24,1,0,0,114,28,1,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,114,209,0,0,0,179,4,
+ 0,0,115,2,0,0,0,0,1,122,25,95,78,97,109,101,
+ 115,112,97,99,101,76,111,97,100,101,114,46,95,95,105,110,
+ 105,116,95,95,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,3,0,0,0,67,0,0,0,115,12,0,
+ 0,0,100,1,160,0,124,1,106,1,161,1,83,0,41,2,
+ 122,115,82,101,116,117,114,110,32,114,101,112,114,32,102,111,
+ 114,32,116,104,101,32,109,111,100,117,108,101,46,10,10,32,
+ 32,32,32,32,32,32,32,84,104,101,32,109,101,116,104,111,
+ 100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,
+ 32,32,84,104,101,32,105,109,112,111,114,116,32,109,97,99,
+ 104,105,110,101,114,121,32,100,111,101,115,32,116,104,101,32,
+ 106,111,98,32,105,116,115,101,108,102,46,10,10,32,32,32,
+ 32,32,32,32,32,122,25,60,109,111,100,117,108,101,32,123,
+ 33,114,125,32,40,110,97,109,101,115,112,97,99,101,41,62,
+ 41,2,114,61,0,0,0,114,125,0,0,0,41,2,114,193,
+ 0,0,0,114,216,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,218,11,109,111,100,117,108,101,95,
+ 114,101,112,114,182,4,0,0,115,2,0,0,0,0,7,122,
+ 28,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,
+ 114,46,109,111,100,117,108,101,95,114,101,112,114,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,
+ 0,0,67,0,0,0,115,4,0,0,0,100,1,83,0,41,
+ 2,78,84,114,3,0,0,0,114,219,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,182,0,0,
+ 0,191,4,0,0,115,2,0,0,0,0,1,122,27,95,78,
+ 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,105,
+ 115,95,112,97,99,107,97,103,101,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
+ 0,0,115,4,0,0,0,100,1,83,0,41,2,78,114,39,
+ 0,0,0,114,3,0,0,0,114,219,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,229,0,0,
+ 0,194,4,0,0,115,2,0,0,0,0,1,122,27,95,78,
+ 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,103,
+ 101,116,95,115,111,117,114,99,101,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,2,0,0,0,6,0,0,0,67,0,
+ 0,0,115,16,0,0,0,116,0,100,1,100,2,100,3,100,
+ 4,100,5,141,4,83,0,41,6,78,114,39,0,0,0,122,
+ 8,60,115,116,114,105,110,103,62,114,215,0,0,0,84,41,
+ 1,114,231,0,0,0,41,1,114,232,0,0,0,114,219,0,
+ 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,114,213,0,0,0,197,4,0,0,115,2,0,0,0,0,
+ 1,122,25,95,78,97,109,101,115,112,97,99,101,76,111,97,
+ 100,101,114,46,103,101,116,95,99,111,100,101,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
+ 0,67,0,0,0,115,4,0,0,0,100,1,83,0,114,210,
+ 0,0,0,114,3,0,0,0,114,211,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,212,0,0,
+ 0,200,4,0,0,115,2,0,0,0,0,1,122,30,95,78,
+ 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,99,
+ 114,101,97,116,101,95,109,111,100,117,108,101,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
+ 0,67,0,0,0,115,4,0,0,0,100,0,83,0,114,109,
+ 0,0,0,114,3,0,0,0,114,253,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,217,0,0,
+ 0,203,4,0,0,115,2,0,0,0,0,1,122,28,95,78,
+ 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,101,
+ 120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,67,
+ 0,0,0,115,26,0,0,0,116,0,160,1,100,1,124,0,
+ 106,2,161,2,1,0,116,0,160,3,124,0,124,1,161,2,
+ 83,0,41,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,134,0,0,0,114,149,0,0,0,114,24,1,0,
+ 0,114,218,0,0,0,114,219,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,114,220,0,0,0,206,
+ 4,0,0,115,8,0,0,0,0,7,6,1,4,255,4,2,
+ 122,28,95,78,97,109,101,115,112,97,99,101,76,111,97,100,
+ 101,114,46,108,111,97,100,95,109,111,100,117,108,101,78,41,
+ 12,114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,
+ 114,209,0,0,0,114,207,0,0,0,114,44,1,0,0,114,
+ 182,0,0,0,114,229,0,0,0,114,213,0,0,0,114,212,
+ 0,0,0,114,217,0,0,0,114,220,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,114,43,1,0,0,178,4,0,0,115,18,0,0,0,8,
+ 1,8,3,2,1,10,8,8,3,8,3,8,3,8,3,8,
+ 3,114,43,1,0,0,99,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,4,0,0,0,64,0,0,0,115,
+ 118,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
+ 101,4,100,2,100,3,132,0,131,1,90,5,101,4,100,4,
+ 100,5,132,0,131,1,90,6,101,4,100,6,100,7,132,0,
+ 131,1,90,7,101,4,100,8,100,9,132,0,131,1,90,8,
+ 101,4,100,19,100,11,100,12,132,1,131,1,90,9,101,4,
+ 100,20,100,13,100,14,132,1,131,1,90,10,101,4,100,21,
+ 100,15,100,16,132,1,131,1,90,11,101,4,100,17,100,18,
+ 132,0,131,1,90,12,100,10,83,0,41,22,218,10,80,97,
+ 116,104,70,105,110,100,101,114,122,62,77,101,116,97,32,112,
+ 97,116,104,32,102,105,110,100,101,114,32,102,111,114,32,115,
+ 121,115,46,112,97,116,104,32,97,110,100,32,112,97,99,107,
+ 97,103,101,32,95,95,112,97,116,104,95,95,32,97,116,116,
+ 114,105,98,117,116,101,115,46,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,0,
+ 0,115,64,0,0,0,116,0,116,1,106,2,160,3,161,0,
+ 131,1,68,0,93,44,92,2,125,1,125,2,124,2,100,1,
+ 117,0,114,40,116,1,106,2,124,1,61,0,113,14,116,4,
+ 124,2,100,2,131,2,114,14,124,2,160,5,161,0,1,0,
+ 113,14,100,1,83,0,41,3,122,125,67,97,108,108,32,116,
+ 104,101,32,105,110,118,97,108,105,100,97,116,101,95,99,97,
+ 99,104,101,115,40,41,32,109,101,116,104,111,100,32,111,110,
+ 32,97,108,108,32,112,97,116,104,32,101,110,116,114,121,32,
+ 102,105,110,100,101,114,115,10,32,32,32,32,32,32,32,32,
+ 115,116,111,114,101,100,32,105,110,32,115,121,115,46,112,97,
+ 116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,
+ 101,115,32,40,119,104,101,114,101,32,105,109,112,108,101,109,
+ 101,110,116,101,100,41,46,78,218,17,105,110,118,97,108,105,
+ 100,97,116,101,95,99,97,99,104,101,115,41,6,218,4,108,
+ 105,115,116,114,8,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,128,0,0,0,114,46,1,0,0,41,3,
+ 114,193,0,0,0,114,116,0,0,0,218,6,102,105,110,100,
+ 101,114,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,114,46,1,0,0,224,4,0,0,115,10,0,0,0,0,
+ 4,22,1,8,1,10,1,10,1,122,28,80,97,116,104,70,
+ 105,110,100,101,114,46,105,110,118,97,108,105,100,97,116,101,
+ 95,99,97,99,104,101,115,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,3,0,0,0,9,0,0,0,67,0,0,0,
+ 115,82,0,0,0,116,0,106,1,100,1,117,1,114,28,116,
+ 0,106,1,115,28,116,2,160,3,100,2,116,4,161,2,1,
+ 0,116,0,106,1,68,0,93,42,125,2,122,14,124,2,124,
+ 1,131,1,87,0,2,0,1,0,83,0,4,0,116,5,121,
+ 74,1,0,1,0,1,0,89,0,113,34,89,0,113,34,48,
+ 0,113,34,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,8,0,0,0,218,10,112,97,116,104,
+ 95,104,111,111,107,115,114,74,0,0,0,114,75,0,0,0,
+ 114,138,0,0,0,114,117,0,0,0,41,3,114,193,0,0,
+ 0,114,43,0,0,0,90,4,104,111,111,107,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,218,11,95,112,97,
+ 116,104,95,104,111,111,107,115,234,4,0,0,115,16,0,0,
+ 0,0,3,16,1,12,1,10,1,2,1,14,1,12,1,12,
+ 2,122,22,80,97,116,104,70,105,110,100,101,114,46,95,112,
+ 97,116,104,95,104,111,111,107,115,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,3,0,0,0,8,0,0,0,67,0,
+ 0,0,115,100,0,0,0,124,1,100,1,107,2,114,42,122,
+ 12,116,0,160,1,161,0,125,1,87,0,110,20,4,0,116,
+ 2,121,40,1,0,1,0,1,0,89,0,100,2,83,0,48,
+ 0,122,14,116,3,106,4,124,1,25,0,125,2,87,0,110,
+ 38,4,0,116,5,121,94,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,110,2,48,0,124,2,83,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,39,0,0,0,78,41,7,114,2,0,0,0,114,54,
+ 0,0,0,114,3,1,0,0,114,8,0,0,0,114,48,1,
+ 0,0,218,8,75,101,121,69,114,114,111,114,114,52,1,0,
+ 0,41,3,114,193,0,0,0,114,43,0,0,0,114,50,1,
+ 0,0,114,3,0,0,0,114,3,0,0,0,114,6,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,247,4,0,0,115,22,0,0,0,
+ 0,8,8,1,2,1,12,1,12,3,8,1,2,1,14,1,
+ 12,1,10,1,16,1,122,31,80,97,116,104,70,105,110,100,
+ 101,114,46,95,112,97,116,104,95,105,109,112,111,114,116,101,
+ 114,95,99,97,99,104,101,99,3,0,0,0,0,0,0,0,
+ 0,0,0,0,6,0,0,0,4,0,0,0,67,0,0,0,
+ 115,82,0,0,0,116,0,124,2,100,1,131,2,114,26,124,
+ 2,160,1,124,1,161,1,92,2,125,3,125,4,110,14,124,
+ 2,160,2,124,1,161,1,125,3,103,0,125,4,124,3,100,
+ 0,117,1,114,60,116,3,160,4,124,1,124,3,161,2,83,
+ 0,116,3,160,5,124,1,100,0,161,2,125,5,124,4,124,
+ 5,95,6,124,5,83,0,41,2,78,114,137,0,0,0,41,
+ 7,114,128,0,0,0,114,137,0,0,0,114,206,0,0,0,
+ 114,134,0,0,0,114,201,0,0,0,114,183,0,0,0,114,
+ 178,0,0,0,41,6,114,193,0,0,0,114,139,0,0,0,
+ 114,50,1,0,0,114,140,0,0,0,114,141,0,0,0,114,
+ 187,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,218,16,95,108,101,103,97,99,121,95,103,101,116,
+ 95,115,112,101,99,13,5,0,0,115,18,0,0,0,0,4,
+ 10,1,16,2,10,1,4,1,8,1,12,1,12,1,6,1,
+ 122,27,80,97,116,104,70,105,110,100,101,114,46,95,108,101,
+ 103,97,99,121,95,103,101,116,95,115,112,101,99,78,99,4,
+ 0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,5,
+ 0,0,0,67,0,0,0,115,166,0,0,0,103,0,125,4,
+ 124,2,68,0,93,134,125,5,116,0,124,5,116,1,116,2,
+ 102,2,131,2,115,28,113,8,124,0,160,3,124,5,161,1,
+ 125,6,124,6,100,1,117,1,114,8,116,4,124,6,100,2,
+ 131,2,114,70,124,6,160,5,124,1,124,3,161,2,125,7,
+ 110,12,124,0,160,6,124,1,124,6,161,2,125,7,124,7,
+ 100,1,117,0,114,92,113,8,124,7,106,7,100,1,117,1,
+ 114,110,124,7,2,0,1,0,83,0,124,7,106,8,125,8,
+ 124,8,100,1,117,0,114,132,116,9,100,3,131,1,130,1,
+ 124,4,160,10,124,8,161,1,1,0,113,8,116,11,160,12,
+ 124,1,100,1,161,2,125,7,124,4,124,7,95,8,124,7,
+ 83,0,41,4,122,63,70,105,110,100,32,116,104,101,32,108,
+ 111,97,100,101,114,32,111,114,32,110,97,109,101,115,112,97,
+ 99,101,95,112,97,116,104,32,102,111,114,32,116,104,105,115,
+ 32,109,111,100,117,108,101,47,112,97,99,107,97,103,101,32,
+ 110,97,109,101,46,78,114,203,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,161,0,0,0,114,84,0,0,0,218,5,98,121,
+ 116,101,115,114,54,1,0,0,114,128,0,0,0,114,203,0,
+ 0,0,114,55,1,0,0,114,140,0,0,0,114,178,0,0,
+ 0,114,117,0,0,0,114,167,0,0,0,114,134,0,0,0,
+ 114,183,0,0,0,41,9,114,193,0,0,0,114,139,0,0,
+ 0,114,43,0,0,0,114,202,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,50,1,0,0,114,187,0,0,0,114,141,0,0,
+ 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
+ 218,9,95,103,101,116,95,115,112,101,99,28,5,0,0,115,
+ 40,0,0,0,0,5,4,1,8,1,14,1,2,1,10,1,
+ 8,1,10,1,14,2,12,1,8,1,2,1,10,1,8,1,
+ 6,1,8,1,8,5,12,2,12,1,6,1,122,20,80,97,
+ 116,104,70,105,110,100,101,114,46,95,103,101,116,95,115,112,
+ 101,99,99,4,0,0,0,0,0,0,0,0,0,0,0,6,
+ 0,0,0,5,0,0,0,67,0,0,0,115,100,0,0,0,
+ 124,2,100,1,117,0,114,14,116,0,106,1,125,2,124,0,
+ 160,2,124,1,124,2,124,3,161,3,125,4,124,4,100,1,
+ 117,0,114,40,100,1,83,0,124,4,106,3,100,1,117,0,
+ 114,92,124,4,106,4,125,5,124,5,114,86,100,1,124,4,
+ 95,5,116,6,124,1,124,5,124,0,106,2,131,3,124,4,
+ 95,4,124,4,83,0,100,1,83,0,110,4,124,4,83,0,
+ 100,1,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,8,0,0,0,114,43,0,
+ 0,0,114,58,1,0,0,114,140,0,0,0,114,178,0,0,
+ 0,114,181,0,0,0,114,22,1,0,0,41,6,114,193,0,
+ 0,0,114,139,0,0,0,114,43,0,0,0,114,202,0,0,
+ 0,114,187,0,0,0,114,57,1,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,114,203,0,0,0,60,
+ 5,0,0,115,26,0,0,0,0,6,8,1,6,1,14,1,
+ 8,1,4,1,10,1,6,1,4,3,6,1,16,1,4,2,
+ 6,2,122,20,80,97,116,104,70,105,110,100,101,114,46,102,
+ 105,110,100,95,115,112,101,99,99,3,0,0,0,0,0,0,
+ 0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,0,
+ 0,115,30,0,0,0,124,0,160,0,124,1,124,2,161,2,
+ 125,3,124,3,100,1,117,0,114,24,100,1,83,0,124,3,
+ 106,1,83,0,41,2,122,170,102,105,110,100,32,116,104,101,
+ 32,109,111,100,117,108,101,32,111,110,32,115,121,115,46,112,
+ 97,116,104,32,111,114,32,39,112,97,116,104,39,32,98,97,
+ 115,101,100,32,111,110,32,115,121,115,46,112,97,116,104,95,
+ 104,111,111,107,115,32,97,110,100,10,32,32,32,32,32,32,
+ 32,32,115,121,115,46,112,97,116,104,95,105,109,112,111,114,
+ 116,101,114,95,99,97,99,104,101,46,10,10,32,32,32,32,
+ 32,32,32,32,84,104,105,115,32,109,101,116,104,111,100,32,
+ 105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,
+ 85,115,101,32,102,105,110,100,95,115,112,101,99,40,41,32,
+ 105,110,115,116,101,97,100,46,10,10,32,32,32,32,32,32,
+ 32,32,78,114,204,0,0,0,114,205,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,206,0,0,
+ 0,84,5,0,0,115,8,0,0,0,0,8,12,1,8,1,
+ 4,1,122,22,80,97,116,104,70,105,110,100,101,114,46,102,
+ 105,110,100,95,109,111,100,117,108,101,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,79,
+ 0,0,0,115,24,0,0,0,100,1,100,2,108,0,109,1,
+ 125,3,1,0,124,3,106,2,124,1,124,2,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,72,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,59,1,0,0,218,18,102,
+ 105,110,100,95,100,105,115,116,114,105,98,117,116,105,111,110,
+ 115,41,4,114,193,0,0,0,114,119,0,0,0,114,120,0,
+ 0,0,114,59,1,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,114,60,1,0,0,97,5,0,0,115,
+ 4,0,0,0,0,10,12,1,122,29,80,97,116,104,70,105,
+ 110,100,101,114,46,102,105,110,100,95,100,105,115,116,114,105,
+ 98,117,116,105,111,110,115,41,1,78,41,2,78,78,41,1,
+ 78,41,13,114,125,0,0,0,114,124,0,0,0,114,126,0,
+ 0,0,114,127,0,0,0,114,207,0,0,0,114,46,1,0,
+ 0,114,52,1,0,0,114,54,1,0,0,114,55,1,0,0,
+ 114,58,1,0,0,114,203,0,0,0,114,206,0,0,0,114,
+ 60,1,0,0,114,3,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,114,45,1,0,0,220,4,0,
+ 0,115,34,0,0,0,8,2,4,2,2,1,10,9,2,1,
+ 10,12,2,1,10,21,2,1,10,14,2,1,12,31,2,1,
+ 12,23,2,1,12,12,2,1,114,45,1,0,0,99,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,
+ 0,0,64,0,0,0,115,90,0,0,0,101,0,90,1,100,
+ 0,90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,
+ 4,100,5,132,0,90,5,101,6,90,7,100,6,100,7,132,
+ 0,90,8,100,8,100,9,132,0,90,9,100,19,100,11,100,
+ 12,132,1,90,10,100,13,100,14,132,0,90,11,101,12,100,
+ 15,100,16,132,0,131,1,90,13,100,17,100,18,132,0,90,
+ 14,100,10,83,0,41,20,218,10,70,105,108,101,70,105,110,
+ 100,101,114,122,172,70,105,108,101,45,98,97,115,101,100,32,
+ 102,105,110,100,101,114,46,10,10,32,32,32,32,73,110,116,
+ 101,114,97,99,116,105,111,110,115,32,119,105,116,104,32,116,
+ 104,101,32,102,105,108,101,32,115,121,115,116,101,109,32,97,
+ 114,101,32,99,97,99,104,101,100,32,102,111,114,32,112,101,
+ 114,102,111,114,109,97,110,99,101,44,32,98,101,105,110,103,
+ 10,32,32,32,32,114,101,102,114,101,115,104,101,100,32,119,
+ 104,101,110,32,116,104,101,32,100,105,114,101,99,116,111,114,
+ 121,32,116,104,101,32,102,105,110,100,101,114,32,105,115,32,
+ 104,97,110,100,108,105,110,103,32,104,97,115,32,98,101,101,
+ 110,32,109,111,100,105,102,105,101,100,46,10,10,32,32,32,
+ 32,99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,
+ 0,0,6,0,0,0,7,0,0,0,115,84,0,0,0,103,
+ 0,125,3,124,2,68,0,93,32,92,2,137,0,125,4,124,
+ 3,160,0,135,0,102,1,100,1,100,2,132,8,124,4,68,
+ 0,131,1,161,1,1,0,113,8,124,3,124,0,95,1,124,
+ 1,112,54,100,3,124,0,95,2,100,4,124,0,95,3,116,
+ 4,131,0,124,0,95,5,116,4,131,0,124,0,95,6,100,
+ 5,83,0,41,6,122,154,73,110,105,116,105,97,108,105,122,
+ 101,32,119,105,116,104,32,116,104,101,32,112,97,116,104,32,
+ 116,111,32,115,101,97,114,99,104,32,111,110,32,97,110,100,
+ 32,97,32,118,97,114,105,97,98,108,101,32,110,117,109,98,
+ 101,114,32,111,102,10,32,32,32,32,32,32,32,32,50,45,
+ 116,117,112,108,101,115,32,99,111,110,116,97,105,110,105,110,
+ 103,32,116,104,101,32,108,111,97,100,101,114,32,97,110,100,
+ 32,116,104,101,32,102,105,108,101,32,115,117,102,102,105,120,
+ 101,115,32,116,104,101,32,108,111,97,100,101,114,10,32,32,
+ 32,32,32,32,32,32,114,101,99,111,103,110,105,122,101,115,
+ 46,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,3,0,0,0,51,0,0,0,115,22,0,0,0,124,
+ 0,93,14,125,1,124,1,136,0,102,2,86,0,1,0,113,
+ 2,100,0,83,0,114,109,0,0,0,114,3,0,0,0,114,
+ 16,1,0,0,169,1,114,140,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,114,19,1,0,0,126,5,0,0,115,4,
+ 0,0,0,4,0,2,0,122,38,70,105,108,101,70,105,110,
+ 100,101,114,46,95,95,105,110,105,116,95,95,46,60,108,111,
+ 99,97,108,115,62,46,60,103,101,110,101,120,112,114,62,114,
+ 70,0,0,0,114,104,0,0,0,78,41,7,114,167,0,0,
+ 0,218,8,95,108,111,97,100,101,114,115,114,43,0,0,0,
+ 218,11,95,112,97,116,104,95,109,116,105,109,101,218,3,115,
+ 101,116,218,11,95,112,97,116,104,95,99,97,99,104,101,218,
+ 19,95,114,101,108,97,120,101,100,95,112,97,116,104,95,99,
+ 97,99,104,101,41,5,114,118,0,0,0,114,43,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,189,0,0,0,114,3,
+ 0,0,0,114,62,1,0,0,114,6,0,0,0,114,209,0,
+ 0,0,120,5,0,0,115,16,0,0,0,0,4,4,1,12,
+ 1,26,1,6,2,10,1,6,1,8,1,122,19,70,105,108,
+ 101,70,105,110,100,101,114,46,95,95,105,110,105,116,95,95,
+ 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
+ 0,2,0,0,0,67,0,0,0,115,10,0,0,0,100,1,
+ 124,0,95,0,100,2,83,0,41,3,122,31,73,110,118,97,
+ 108,105,100,97,116,101,32,116,104,101,32,100,105,114,101,99,
+ 116,111,114,121,32,109,116,105,109,101,46,114,104,0,0,0,
+ 78,41,1,114,64,1,0,0,114,246,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,46,1,0,
+ 0,134,5,0,0,115,2,0,0,0,0,2,122,28,70,105,
+ 108,101,70,105,110,100,101,114,46,105,110,118,97,108,105,100,
+ 97,116,101,95,99,97,99,104,101,115,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,
+ 0,0,0,115,42,0,0,0,124,0,160,0,124,1,161,1,
+ 125,2,124,2,100,1,117,0,114,26,100,1,103,0,102,2,
+ 83,0,124,2,106,1,124,2,106,2,112,38,103,0,102,2,
+ 83,0,41,2,122,197,84,114,121,32,116,111,32,102,105,110,
+ 100,32,97,32,108,111,97,100,101,114,32,102,111,114,32,116,
+ 104,101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,
+ 117,108,101,44,32,111,114,32,116,104,101,32,110,97,109,101,
+ 115,112,97,99,101,10,32,32,32,32,32,32,32,32,112,97,
+ 99,107,97,103,101,32,112,111,114,116,105,111,110,115,46,32,
+ 82,101,116,117,114,110,115,32,40,108,111,97,100,101,114,44,
+ 32,108,105,115,116,45,111,102,45,112,111,114,116,105,111,110,
+ 115,41,46,10,10,32,32,32,32,32,32,32,32,84,104,105,
+ 115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,
+ 101,99,97,116,101,100,46,32,32,85,115,101,32,102,105,110,
+ 100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,100,
+ 46,10,10,32,32,32,32,32,32,32,32,78,41,3,114,203,
+ 0,0,0,114,140,0,0,0,114,178,0,0,0,41,3,114,
+ 118,0,0,0,114,139,0,0,0,114,187,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,114,137,0,
+ 0,0,140,5,0,0,115,8,0,0,0,0,7,10,1,8,
+ 1,8,1,122,22,70,105,108,101,70,105,110,100,101,114,46,
+ 102,105,110,100,95,108,111,97,100,101,114,99,6,0,0,0,
+ 0,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,
+ 67,0,0,0,115,26,0,0,0,124,1,124,2,124,3,131,
+ 2,125,6,116,0,124,2,124,3,124,6,124,4,100,1,141,
+ 4,83,0,41,2,78,114,177,0,0,0,41,1,114,190,0,
+ 0,0,41,7,114,118,0,0,0,114,188,0,0,0,114,139,
+ 0,0,0,114,43,0,0,0,90,4,115,109,115,108,114,202,
+ 0,0,0,114,140,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,114,58,1,0,0,152,5,0,0,
+ 115,8,0,0,0,0,1,10,1,8,1,2,255,122,20,70,
+ 105,108,101,70,105,110,100,101,114,46,95,103,101,116,95,115,
+ 112,101,99,78,99,3,0,0,0,0,0,0,0,0,0,0,
+ 0,14,0,0,0,8,0,0,0,67,0,0,0,115,96,1,
+ 0,0,100,1,125,3,124,1,160,0,100,2,161,1,100,3,
+ 25,0,125,4,122,24,116,1,124,0,106,2,112,34,116,3,
+ 160,4,161,0,131,1,106,5,125,5,87,0,110,22,4,0,
+ 116,6,121,64,1,0,1,0,1,0,100,4,125,5,89,0,
+ 110,2,48,0,124,5,124,0,106,7,107,3,114,90,124,0,
+ 160,8,161,0,1,0,124,5,124,0,95,7,116,9,131,0,
+ 114,112,124,0,106,10,125,6,124,4,160,11,161,0,125,7,
+ 110,10,124,0,106,12,125,6,124,4,125,7,124,7,124,6,
+ 118,0,114,216,116,13,124,0,106,2,124,4,131,2,125,8,
+ 124,0,106,14,68,0,93,58,92,2,125,9,125,10,100,5,
+ 124,9,23,0,125,11,116,13,124,8,124,11,131,2,125,12,
+ 116,15,124,12,131,1,114,148,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,148,116,17,124,8,131,1,125,3,124,0,106,14,68,0,
+ 93,82,92,2,125,9,125,10,116,13,124,0,106,2,124,4,
+ 124,9,23,0,131,2,125,12,116,18,106,19,100,6,124,12,
+ 100,3,100,7,141,3,1,0,124,7,124,9,23,0,124,6,
+ 118,0,114,222,116,15,124,12,131,1,114,222,124,0,160,16,
+ 124,10,124,1,124,12,100,8,124,2,161,5,2,0,1,0,
+ 83,0,113,222,124,3,144,1,114,92,116,18,160,19,100,9,
+ 124,8,161,2,1,0,116,18,160,20,124,1,100,8,161,2,
+ 125,13,124,8,103,1,124,13,95,21,124,13,83,0,100,8,
+ 83,0,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,70,0,0,0,114,27,0,0,0,
+ 114,104,0,0,0,114,209,0,0,0,122,9,116,114,121,105,
+ 110,103,32,123,125,41,1,90,9,118,101,114,98,111,115,105,
+ 116,121,78,122,25,112,111,115,115,105,98,108,101,32,110,97,
+ 109,101,115,112,97,99,101,32,102,111,114,32,123,125,41,22,
+ 114,40,0,0,0,114,48,0,0,0,114,43,0,0,0,114,
+ 2,0,0,0,114,54,0,0,0,114,10,1,0,0,114,49,
+ 0,0,0,114,64,1,0,0,218,11,95,102,105,108,108,95,
+ 99,97,99,104,101,114,7,0,0,0,114,67,1,0,0,114,
+ 105,0,0,0,114,66,1,0,0,114,37,0,0,0,114,63,
+ 1,0,0,114,53,0,0,0,114,58,1,0,0,114,55,0,
+ 0,0,114,134,0,0,0,114,149,0,0,0,114,183,0,0,
+ 0,114,178,0,0,0,41,14,114,118,0,0,0,114,139,0,
+ 0,0,114,202,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,169,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,17,1,0,0,114,188,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,187,0,0,0,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
+ 203,0,0,0,157,5,0,0,115,74,0,0,0,0,5,4,
+ 1,14,1,2,1,24,1,12,1,10,1,10,1,8,1,6,
+ 2,6,1,6,1,10,2,6,1,4,2,8,1,12,1,14,
+ 1,8,1,10,1,8,1,26,4,8,2,14,1,16,1,16,
+ 1,12,1,8,1,10,1,2,0,2,255,10,2,6,1,12,
+ 1,12,1,8,1,4,1,122,20,70,105,108,101,70,105,110,
+ 100,101,114,46,102,105,110,100,95,115,112,101,99,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,9,0,0,0,10,0,
+ 0,0,67,0,0,0,115,188,0,0,0,124,0,106,0,125,
+ 1,122,22,116,1,160,2,124,1,112,22,116,1,160,3,161,
+ 0,161,1,125,2,87,0,110,28,4,0,116,4,116,5,116,
+ 6,102,3,121,56,1,0,1,0,1,0,103,0,125,2,89,
+ 0,110,2,48,0,116,7,106,8,160,9,100,1,161,1,115,
+ 82,116,10,124,2,131,1,124,0,95,11,110,74,116,10,131,
+ 0,125,3,124,2,68,0,93,56,125,4,124,4,160,12,100,
+ 2,161,1,92,3,125,5,125,6,125,7,124,6,114,134,100,
+ 3,160,13,124,5,124,7,160,14,161,0,161,2,125,8,110,
+ 4,124,5,125,8,124,3,160,15,124,8,161,1,1,0,113,
+ 92,124,3,124,0,95,11,116,7,106,8,160,9,116,16,161,
+ 1,114,184,100,4,100,5,132,0,124,2,68,0,131,1,124,
+ 0,95,17,100,6,83,0,41,7,122,68,70,105,108,108,32,
+ 116,104,101,32,99,97,99,104,101,32,111,102,32,112,111,116,
+ 101,110,116,105,97,108,32,109,111,100,117,108,101,115,32,97,
+ 110,100,32,112,97,99,107,97,103,101,115,32,102,111,114,32,
+ 116,104,105,115,32,100,105,114,101,99,116,111,114,121,46,114,
+ 0,0,0,0,114,70,0,0,0,114,60,0,0,0,99,1,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
+ 0,0,0,83,0,0,0,115,20,0,0,0,104,0,124,0,
+ 93,12,125,1,124,1,160,0,161,0,146,2,113,4,83,0,
+ 114,3,0,0,0,41,1,114,105,0,0,0,41,2,114,31,
+ 0,0,0,90,2,102,110,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,218,9,60,115,101,116,99,111,109,112,
+ 62,234,5,0,0,115,4,0,0,0,6,0,2,0,122,41,
+ 70,105,108,101,70,105,110,100,101,114,46,95,102,105,108,108,
+ 95,99,97,99,104,101,46,60,108,111,99,97,108,115,62,46,
+ 60,115,101,116,99,111,109,112,62,78,41,18,114,43,0,0,
+ 0,114,2,0,0,0,114,7,1,0,0,114,54,0,0,0,
+ 114,3,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,8,0,0,0,114,
+ 9,0,0,0,114,10,0,0,0,114,65,1,0,0,114,66,
+ 1,0,0,114,100,0,0,0,114,61,0,0,0,114,105,0,
+ 0,0,218,3,97,100,100,114,11,0,0,0,114,67,1,0,
+ 0,41,9,114,118,0,0,0,114,43,0,0,0,114,8,1,
+ 0,0,90,21,108,111,119,101,114,95,115,117,102,102,105,120,
+ 95,99,111,110,116,101,110,116,115,114,41,1,0,0,114,116,
+ 0,0,0,114,29,1,0,0,114,17,1,0,0,90,8,110,
+ 101,119,95,110,97,109,101,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,114,69,1,0,0,205,5,0,0,115,
+ 34,0,0,0,0,2,6,1,2,1,22,1,18,3,10,3,
+ 12,1,12,7,6,1,8,1,16,1,4,1,18,2,4,1,
+ 12,1,6,1,12,1,122,22,70,105,108,101,70,105,110,100,
+ 101,114,46,95,102,105,108,108,95,99,97,99,104,101,99,1,
+ 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,
+ 0,0,0,7,0,0,0,115,18,0,0,0,135,0,135,1,
+ 102,2,100,1,100,2,132,8,125,2,124,2,83,0,41,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,1,0,0,0,4,0,0,0,19,0,
+ 0,0,115,36,0,0,0,116,0,124,0,131,1,115,20,116,
+ 1,100,1,124,0,100,2,141,2,130,1,136,0,124,0,103,
+ 1,136,1,162,1,82,0,142,0,83,0,41,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,47,0,0,
+ 0,41,2,114,55,0,0,0,114,117,0,0,0,114,47,0,
+ 0,0,169,2,114,193,0,0,0,114,68,1,0,0,114,3,
+ 0,0,0,114,6,0,0,0,218,24,112,97,116,104,95,104,
+ 111,111,107,95,102,111,114,95,70,105,108,101,70,105,110,100,
+ 101,114,246,5,0,0,115,6,0,0,0,0,2,8,1,12,
+ 1,122,54,70,105,108,101,70,105,110,100,101,114,46,112,97,
+ 116,104,95,104,111,111,107,46,60,108,111,99,97,108,115,62,
+ 46,112,97,116,104,95,104,111,111,107,95,102,111,114,95,70,
+ 105,108,101,70,105,110,100,101,114,114,3,0,0,0,41,3,
+ 114,193,0,0,0,114,68,1,0,0,114,75,1,0,0,114,
+ 3,0,0,0,114,74,1,0,0,114,6,0,0,0,218,9,
+ 112,97,116,104,95,104,111,111,107,236,5,0,0,115,4,0,
+ 0,0,0,10,14,6,122,20,70,105,108,101,70,105,110,100,
+ 101,114,46,112,97,116,104,95,104,111,111,107,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,
+ 0,67,0,0,0,115,12,0,0,0,100,1,160,0,124,0,
+ 106,1,161,1,83,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,61,0,
+ 0,0,114,43,0,0,0,114,246,0,0,0,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,114,39,1,0,0,
+ 254,5,0,0,115,2,0,0,0,0,1,122,19,70,105,108,
+ 101,70,105,110,100,101,114,46,95,95,114,101,112,114,95,95,
+ 41,1,78,41,15,114,125,0,0,0,114,124,0,0,0,114,
+ 126,0,0,0,114,127,0,0,0,114,209,0,0,0,114,46,
+ 1,0,0,114,143,0,0,0,114,206,0,0,0,114,137,0,
+ 0,0,114,58,1,0,0,114,203,0,0,0,114,69,1,0,
+ 0,114,207,0,0,0,114,76,1,0,0,114,39,1,0,0,
+ 114,3,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,61,1,0,0,111,5,0,0,115,22,0,
+ 0,0,8,2,4,7,8,14,8,4,4,2,8,12,8,5,
+ 10,48,8,31,2,1,10,17,114,61,1,0,0,99,4,0,
+ 0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,0,
+ 0,0,67,0,0,0,115,144,0,0,0,124,0,160,0,100,
+ 1,161,1,125,4,124,0,160,0,100,2,161,1,125,5,124,
+ 4,115,66,124,5,114,36,124,5,106,1,125,4,110,30,124,
+ 2,124,3,107,2,114,56,116,2,124,1,124,2,131,2,125,
+ 4,110,10,116,3,124,1,124,2,131,2,125,4,124,5,115,
+ 84,116,4,124,1,124,2,124,4,100,3,141,3,125,5,122,
+ 36,124,5,124,0,100,2,60,0,124,4,124,0,100,1,60,
+ 0,124,2,124,0,100,4,60,0,124,3,124,0,100,5,60,
+ 0,87,0,110,18,4,0,116,5,121,138,1,0,1,0,1,
+ 0,89,0,110,2,48,0,100,0,83,0,41,6,78,218,10,
+ 95,95,108,111,97,100,101,114,95,95,218,8,95,95,115,112,
+ 101,99,95,95,114,62,1,0,0,90,8,95,95,102,105,108,
+ 101,95,95,90,10,95,95,99,97,99,104,101,100,95,95,41,
+ 6,218,3,103,101,116,114,140,0,0,0,114,15,1,0,0,
+ 114,9,1,0,0,114,190,0,0,0,218,9,69,120,99,101,
+ 112,116,105,111,110,41,6,90,2,110,115,114,116,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,140,0,0,0,114,187,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,14,
+ 95,102,105,120,95,117,112,95,109,111,100,117,108,101,4,6,
+ 0,0,115,34,0,0,0,0,2,10,1,10,1,4,1,4,
+ 1,8,1,8,1,12,2,10,1,4,1,14,1,2,1,8,
+ 1,8,1,8,1,12,1,12,2,114,81,1,0,0,99,0,
+ 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,
+ 0,0,0,67,0,0,0,115,38,0,0,0,116,0,116,1,
+ 160,2,161,0,102,2,125,0,116,3,116,4,102,2,125,1,
+ 116,5,116,6,102,2,125,2,124,0,124,1,124,2,103,3,
+ 83,0,41,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,252,0,0,0,114,163,0,0,
+ 0,218,18,101,120,116,101,110,115,105,111,110,95,115,117,102,
+ 102,105,120,101,115,114,9,1,0,0,114,101,0,0,0,114,
+ 15,1,0,0,114,88,0,0,0,41,3,90,10,101,120,116,
+ 101,110,115,105,111,110,115,90,6,115,111,117,114,99,101,90,
+ 8,98,121,116,101,99,111,100,101,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,114,184,0,0,0,27,6,0,
+ 0,115,8,0,0,0,0,5,12,1,8,1,8,1,114,184,
+ 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 12,0,0,0,9,0,0,0,67,0,0,0,115,176,1,0,
+ 0,124,0,97,0,116,0,106,1,97,1,116,0,106,2,97,
+ 2,116,1,106,3,116,4,25,0,125,1,100,1,68,0,93,
+ 48,125,2,124,2,116,1,106,3,118,1,114,56,116,0,160,
+ 5,124,2,161,1,125,3,110,10,116,1,106,3,124,2,25,
+ 0,125,3,116,6,124,1,124,2,124,3,131,3,1,0,113,
+ 30,100,2,100,3,103,1,102,2,100,4,100,5,100,3,103,
+ 2,102,2,102,2,125,4,124,4,68,0,93,108,92,2,125,
+ 5,125,6,116,7,100,6,100,7,132,0,124,6,68,0,131,
+ 1,131,1,115,136,74,0,130,1,124,6,100,8,25,0,125,
+ 7,124,5,116,1,106,3,118,0,114,170,116,1,106,3,124,
+ 5,25,0,125,8,1,0,113,224,113,106,122,20,116,0,160,
+ 5,124,5,161,1,125,8,87,0,1,0,113,224,87,0,113,
+ 106,4,0,116,8,121,212,1,0,1,0,1,0,89,0,113,
+ 106,89,0,113,106,48,0,113,106,116,8,100,9,131,1,130,
+ 1,116,6,124,1,100,10,124,8,131,3,1,0,116,6,124,
+ 1,100,11,124,7,131,3,1,0,116,6,124,1,100,12,100,
+ 13,160,9,124,6,161,1,131,3,1,0,116,6,124,1,100,
+ 14,100,15,100,16,132,0,124,6,68,0,131,1,131,3,1,
+ 0,116,0,160,5,100,17,161,1,125,9,116,6,124,1,100,
+ 17,124,9,131,3,1,0,116,0,160,5,100,18,161,1,125,
+ 10,116,6,124,1,100,18,124,10,131,3,1,0,124,5,100,
+ 4,107,2,144,1,114,108,116,0,160,5,100,19,161,1,125,
+ 11,116,6,124,1,100,20,124,11,131,3,1,0,116,6,124,
+ 1,100,21,116,10,131,0,131,3,1,0,116,11,160,12,116,
+ 2,160,13,161,0,161,1,1,0,124,5,100,4,107,2,144,
+ 1,114,172,116,14,160,15,100,22,161,1,1,0,100,23,116,
+ 11,118,0,144,1,114,172,100,24,116,16,95,17,100,25,83,
+ 0,41,26,122,205,83,101,116,117,112,32,116,104,101,32,112,
+ 97,116,104,45,98,97,115,101,100,32,105,109,112,111,114,116,
+ 101,114,115,32,102,111,114,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,10,32,32,32,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,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,79,116,
+ 104,101,114,32,99,111,109,112,111,110,101,110,116,115,32,97,
+ 114,101,32,101,120,116,114,97,99,116,101,100,32,102,114,111,
+ 109,32,116,104,101,32,99,111,114,101,32,98,111,111,116,115,
+ 116,114,97,112,32,109,111,100,117,108,101,46,10,10,32,32,
+ 32,32,41,4,114,63,0,0,0,114,74,0,0,0,218,8,
+ 98,117,105,108,116,105,110,115,114,160,0,0,0,90,5,112,
+ 111,115,105,120,250,1,47,90,2,110,116,250,1,92,99,1,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,
+ 0,0,0,115,0,0,0,115,26,0,0,0,124,0,93,18,
+ 125,1,116,0,124,1,131,1,100,0,107,2,86,0,1,0,
+ 113,2,100,1,83,0,41,2,114,38,0,0,0,78,41,1,
+ 114,22,0,0,0,41,2,114,31,0,0,0,114,94,0,0,
+ 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
+ 114,19,1,0,0,63,6,0,0,115,4,0,0,0,4,0,
2,0,122,25,95,115,101,116,117,112,46,60,108,111,99,97,
- 108,115,62,46,60,115,101,116,99,111,109,112,62,90,7,95,
- 116,104,114,101,97,100,90,8,95,119,101,97,107,114,101,102,
- 90,6,119,105,110,114,101,103,114,192,0,0,0,114,7,0,
- 0,0,122,4,46,112,121,119,122,6,95,100,46,112,121,100,
- 84,78,41,18,114,134,0,0,0,114,8,0,0,0,114,163,
- 0,0,0,114,31,1,0,0,114,125,0,0,0,90,18,95,
- 98,117,105,108,116,105,110,95,102,114,111,109,95,110,97,109,
- 101,114,129,0,0,0,218,3,97,108,108,114,117,0,0,0,
- 114,35,0,0,0,114,13,0,0,0,114,21,1,0,0,114,
- 167,0,0,0,114,82,1,0,0,114,101,0,0,0,114,186,
- 0,0,0,114,191,0,0,0,114,195,0,0,0,41,12,218,
- 17,95,98,111,111,116,115,116,114,97,112,95,109,111,100,117,
- 108,101,90,11,115,101,108,102,95,109,111,100,117,108,101,90,
- 12,98,117,105,108,116,105,110,95,110,97,109,101,90,14,98,
- 117,105,108,116,105,110,95,109,111,100,117,108,101,90,10,111,
- 115,95,100,101,116,97,105,108,115,90,10,98,117,105,108,116,
- 105,110,95,111,115,114,30,0,0,0,114,34,0,0,0,90,
- 9,111,115,95,109,111,100,117,108,101,90,13,116,104,114,101,
- 97,100,95,109,111,100,117,108,101,90,14,119,101,97,107,114,
- 101,102,95,109,111,100,117,108,101,90,13,119,105,110,114,101,
- 103,95,109,111,100,117,108,101,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,218,6,95,115,101,116,117,112,36,
- 6,0,0,115,78,0,0,0,0,8,4,1,6,1,6,3,
- 10,1,8,1,10,1,12,2,10,1,14,3,22,1,12,2,
- 22,1,8,1,10,1,10,1,6,2,2,1,10,1,10,1,
- 12,1,12,2,8,1,12,1,12,1,18,1,22,3,10,1,
- 12,3,10,1,12,3,10,1,10,1,12,3,14,1,14,1,
- 10,1,10,1,10,1,114,89,1,0,0,99,1,0,0,0,
+ 108,115,62,46,60,103,101,110,101,120,112,114,62,114,72,0,
+ 0,0,122,30,105,109,112,111,114,116,108,105,98,32,114,101,
+ 113,117,105,114,101,115,32,112,111,115,105,120,32,111,114,32,
+ 110,116,114,2,0,0,0,114,34,0,0,0,114,30,0,0,
+ 0,114,39,0,0,0,114,57,0,0,0,99,1,0,0,0,
0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,
- 67,0,0,0,115,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,89,1,0,0,
- 114,184,0,0,0,114,8,0,0,0,114,51,1,0,0,114,
- 167,0,0,0,114,61,1,0,0,114,76,1,0,0,218,9,
- 109,101,116,97,95,112,97,116,104,114,186,0,0,0,114,45,
- 1,0,0,41,2,114,88,1,0,0,90,17,115,117,112,112,
- 111,114,116,101,100,95,108,111,97,100,101,114,115,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,218,8,95,105,
- 110,115,116,97,108,108,101,6,0,0,115,8,0,0,0,0,
- 2,8,1,6,1,20,1,114,91,1,0,0,41,1,114,59,
- 0,0,0,41,1,78,41,3,78,78,78,41,2,114,72,0,
- 0,0,114,72,0,0,0,41,1,84,41,1,78,41,1,78,
- 41,63,114,127,0,0,0,114,12,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,11,0,0,0,114,13,0,0,0,114,20,0,
- 0,0,114,26,0,0,0,114,28,0,0,0,114,37,0,0,
- 0,114,46,0,0,0,114,48,0,0,0,114,52,0,0,0,
- 114,53,0,0,0,114,55,0,0,0,114,58,0,0,0,114,
- 68,0,0,0,218,4,116,121,112,101,218,8,95,95,99,111,
- 100,101,95,95,114,162,0,0,0,114,18,0,0,0,114,148,
- 0,0,0,114,17,0,0,0,114,23,0,0,0,114,236,0,
- 0,0,114,91,0,0,0,114,87,0,0,0,114,101,0,0,
- 0,114,88,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,97,0,0,
- 0,114,102,0,0,0,114,108,0,0,0,114,112,0,0,0,
- 114,114,0,0,0,114,136,0,0,0,114,143,0,0,0,114,
- 152,0,0,0,114,156,0,0,0,114,158,0,0,0,114,165,
- 0,0,0,114,170,0,0,0,114,171,0,0,0,114,176,0,
- 0,0,218,6,111,98,106,101,99,116,114,185,0,0,0,114,
- 190,0,0,0,114,191,0,0,0,114,208,0,0,0,114,221,
- 0,0,0,114,239,0,0,0,114,9,1,0,0,114,15,1,
- 0,0,114,21,1,0,0,114,252,0,0,0,114,22,1,0,
- 0,114,43,1,0,0,114,45,1,0,0,114,61,1,0,0,
- 114,81,1,0,0,114,184,0,0,0,114,89,1,0,0,114,
- 91,1,0,0,114,3,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,218,8,60,109,111,100,117,108,
- 101,62,1,0,0,0,115,126,0,0,0,4,22,4,1,4,
- 1,2,1,2,255,4,4,8,17,8,5,8,5,8,6,8,
- 6,8,12,8,10,8,9,8,5,8,7,8,9,10,22,10,
- 127,0,17,16,1,12,2,4,1,4,2,6,2,6,2,8,
- 2,16,71,8,40,8,19,8,12,8,12,8,28,8,17,8,
- 33,8,28,8,24,10,13,10,10,10,11,8,14,6,3,4,
- 1,2,255,12,68,14,64,14,29,16,127,0,17,14,72,18,
- 45,18,26,4,3,18,53,14,63,14,42,14,127,0,20,14,
- 127,0,22,10,23,8,11,8,65,
+ 83,0,0,0,115,22,0,0,0,104,0,124,0,93,14,125,
+ 1,100,0,124,1,155,0,157,2,146,2,113,4,83,0,41,
+ 1,114,73,0,0,0,114,3,0,0,0,41,2,114,31,0,
+ 0,0,218,1,115,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,70,1,0,0,79,6,0,0,115,4,0,
+ 0,0,6,0,2,0,122,25,95,115,101,116,117,112,46,60,
+ 108,111,99,97,108,115,62,46,60,115,101,116,99,111,109,112,
+ 62,90,7,95,116,104,114,101,97,100,90,8,95,119,101,97,
+ 107,114,101,102,90,6,119,105,110,114,101,103,114,192,0,0,
+ 0,114,7,0,0,0,122,4,46,112,121,119,122,6,95,100,
+ 46,112,121,100,84,78,41,18,114,134,0,0,0,114,8,0,
+ 0,0,114,163,0,0,0,114,31,1,0,0,114,125,0,0,
+ 0,90,18,95,98,117,105,108,116,105,110,95,102,114,111,109,
+ 95,110,97,109,101,114,129,0,0,0,218,3,97,108,108,114,
+ 117,0,0,0,114,35,0,0,0,114,13,0,0,0,114,21,
+ 1,0,0,114,167,0,0,0,114,82,1,0,0,114,101,0,
+ 0,0,114,186,0,0,0,114,191,0,0,0,114,195,0,0,
+ 0,41,12,218,17,95,98,111,111,116,115,116,114,97,112,95,
+ 109,111,100,117,108,101,90,11,115,101,108,102,95,109,111,100,
+ 117,108,101,90,12,98,117,105,108,116,105,110,95,110,97,109,
+ 101,90,14,98,117,105,108,116,105,110,95,109,111,100,117,108,
+ 101,90,10,111,115,95,100,101,116,97,105,108,115,90,10,98,
+ 117,105,108,116,105,110,95,111,115,114,30,0,0,0,114,34,
+ 0,0,0,90,9,111,115,95,109,111,100,117,108,101,90,13,
+ 116,104,114,101,97,100,95,109,111,100,117,108,101,90,14,119,
+ 101,97,107,114,101,102,95,109,111,100,117,108,101,90,13,119,
+ 105,110,114,101,103,95,109,111,100,117,108,101,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,218,6,95,115,101,
+ 116,117,112,38,6,0,0,115,78,0,0,0,0,8,4,1,
+ 6,1,6,3,10,1,8,1,10,1,12,2,10,1,14,3,
+ 22,1,12,2,22,1,8,1,10,1,10,1,6,2,2,1,
+ 10,1,10,1,12,1,12,2,8,1,12,1,12,1,18,1,
+ 22,3,10,1,12,3,10,1,12,3,10,1,10,1,12,3,
+ 14,1,14,1,10,1,10,1,10,1,114,89,1,0,0,99,
+ 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+ 4,0,0,0,67,0,0,0,115,50,0,0,0,116,0,124,
+ 0,131,1,1,0,116,1,131,0,125,1,116,2,106,3,160,
+ 4,116,5,106,6,124,1,142,0,103,1,161,1,1,0,116,
+ 2,106,7,160,8,116,9,161,1,1,0,100,1,83,0,41,
+ 2,122,41,73,110,115,116,97,108,108,32,116,104,101,32,112,
+ 97,116,104,45,98,97,115,101,100,32,105,109,112,111,114,116,
+ 32,99,111,109,112,111,110,101,110,116,115,46,78,41,10,114,
+ 89,1,0,0,114,184,0,0,0,114,8,0,0,0,114,51,
+ 1,0,0,114,167,0,0,0,114,61,1,0,0,114,76,1,
+ 0,0,218,9,109,101,116,97,95,112,97,116,104,114,186,0,
+ 0,0,114,45,1,0,0,41,2,114,88,1,0,0,90,17,
+ 115,117,112,112,111,114,116,101,100,95,108,111,97,100,101,114,
+ 115,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
+ 218,8,95,105,110,115,116,97,108,108,103,6,0,0,115,8,
+ 0,0,0,0,2,8,1,6,1,20,1,114,91,1,0,0,
+ 41,1,114,59,0,0,0,41,1,78,41,3,78,78,78,41,
+ 2,114,72,0,0,0,114,72,0,0,0,41,1,84,41,1,
+ 78,41,1,78,41,63,114,127,0,0,0,114,12,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,11,0,0,0,114,13,0,0,
+ 0,114,20,0,0,0,114,26,0,0,0,114,28,0,0,0,
+ 114,37,0,0,0,114,46,0,0,0,114,48,0,0,0,114,
+ 52,0,0,0,114,53,0,0,0,114,55,0,0,0,114,58,
+ 0,0,0,114,68,0,0,0,218,4,116,121,112,101,218,8,
+ 95,95,99,111,100,101,95,95,114,162,0,0,0,114,18,0,
+ 0,0,114,148,0,0,0,114,17,0,0,0,114,23,0,0,
+ 0,114,236,0,0,0,114,91,0,0,0,114,87,0,0,0,
+ 114,101,0,0,0,114,88,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,97,0,0,0,114,102,0,0,0,114,108,0,0,0,114,
+ 112,0,0,0,114,114,0,0,0,114,136,0,0,0,114,143,
+ 0,0,0,114,152,0,0,0,114,156,0,0,0,114,158,0,
+ 0,0,114,165,0,0,0,114,170,0,0,0,114,171,0,0,
+ 0,114,176,0,0,0,218,6,111,98,106,101,99,116,114,185,
+ 0,0,0,114,190,0,0,0,114,191,0,0,0,114,208,0,
+ 0,0,114,221,0,0,0,114,239,0,0,0,114,9,1,0,
+ 0,114,15,1,0,0,114,21,1,0,0,114,252,0,0,0,
+ 114,22,1,0,0,114,43,1,0,0,114,45,1,0,0,114,
+ 61,1,0,0,114,81,1,0,0,114,184,0,0,0,114,89,
+ 1,0,0,114,91,1,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,218,8,60,109,
+ 111,100,117,108,101,62,1,0,0,0,115,126,0,0,0,4,
+ 22,4,1,4,1,2,1,2,255,4,4,8,17,8,5,8,
+ 5,8,6,8,6,8,12,8,10,8,9,8,5,8,7,8,
+ 9,10,22,10,127,0,19,16,1,12,2,4,1,4,2,6,
+ 2,6,2,8,2,16,71,8,40,8,19,8,12,8,12,8,
+ 28,8,17,8,33,8,28,8,24,10,13,10,10,10,11,8,
+ 14,6,3,4,1,2,255,12,68,14,64,14,29,16,127,0,
+ 17,14,72,18,45,18,26,4,3,18,53,14,63,14,42,14,
+ 127,0,20,14,127,0,22,10,23,8,11,8,65,
};
diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h
index c0a0bf51de3..d413bab0de4 100644
--- a/Python/opcode_targets.h
+++ b/Python/opcode_targets.h
@@ -81,7 +81,7 @@ static void *opcode_targets[256] = {
&&TARGET_INPLACE_OR,
&&_unknown_opcode,
&&_unknown_opcode,
- &&_unknown_opcode,
+ &&TARGET_LIST_TO_TUPLE,
&&TARGET_RETURN_VALUE,
&&TARGET_IMPORT_STAR,
&&TARGET_SETUP_ANNOTATIONS,
@@ -148,21 +148,21 @@ static void *opcode_targets[256] = {
&&TARGET_SET_ADD,
&&TARGET_MAP_ADD,
&&TARGET_LOAD_CLASSDEREF,
- &&TARGET_BUILD_LIST_UNPACK,
+ &&_unknown_opcode,
&&TARGET_BUILD_MAP_UNPACK,
&&TARGET_BUILD_MAP_UNPACK_WITH_CALL,
- &&TARGET_BUILD_TUPLE_UNPACK,
- &&TARGET_BUILD_SET_UNPACK,
+ &&_unknown_opcode,
+ &&_unknown_opcode,
&&TARGET_SETUP_ASYNC_WITH,
&&TARGET_FORMAT_VALUE,
&&TARGET_BUILD_CONST_KEY_MAP,
&&TARGET_BUILD_STRING,
- &&TARGET_BUILD_TUPLE_UNPACK_WITH_CALL,
+ &&_unknown_opcode,
&&_unknown_opcode,
&&TARGET_LOAD_METHOD,
&&TARGET_CALL_METHOD,
- &&_unknown_opcode,
- &&_unknown_opcode,
+ &&TARGET_LIST_EXTEND,
+ &&TARGET_SET_UPDATE,
&&_unknown_opcode,
&&_unknown_opcode,
&&_unknown_opcode,
From 79f89e6e5a659846d1068e8b1bd8e491ccdef861 Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Thu, 23 Jan 2020 14:07:05 +0000
Subject: [PATCH 186/380] bpo-39421: Fix posible crash in heapq with custom
comparison operators (GH-18118)
* bpo-39421: Fix posible crash in heapq with custom comparison operators
* fixup! bpo-39421: Fix posible crash in heapq with custom comparison operators
* fixup! fixup! bpo-39421: Fix posible crash in heapq with custom comparison operators
---
Lib/test/test_heapq.py | 31 ++++++++++++++++
.../2020-01-22-15-53-37.bpo-39421.O3nG7u.rst | 2 ++
Modules/_heapqmodule.c | 35 ++++++++++++++-----
3 files changed, 59 insertions(+), 9 deletions(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-22-15-53-37.bpo-39421.O3nG7u.rst
diff --git a/Lib/test/test_heapq.py b/Lib/test/test_heapq.py
index 861ba7540df..6902573e8fa 100644
--- a/Lib/test/test_heapq.py
+++ b/Lib/test/test_heapq.py
@@ -432,6 +432,37 @@ class TestErrorHandling:
with self.assertRaises((IndexError, RuntimeError)):
self.module.heappop(heap)
+ def test_comparison_operator_modifiying_heap(self):
+ # See bpo-39421: Strong references need to be taken
+ # when comparing objects as they can alter the heap
+ class EvilClass(int):
+ def __lt__(self, o):
+ heap.clear()
+ return NotImplemented
+
+ heap = []
+ self.module.heappush(heap, EvilClass(0))
+ self.assertRaises(IndexError, self.module.heappushpop, heap, 1)
+
+ def test_comparison_operator_modifiying_heap_two_heaps(self):
+
+ class h(int):
+ def __lt__(self, o):
+ list2.clear()
+ return NotImplemented
+
+ class g(int):
+ def __lt__(self, o):
+ list1.clear()
+ return NotImplemented
+
+ list1, list2 = [], []
+
+ self.module.heappush(list1, h(0))
+ self.module.heappush(list2, g(0))
+
+ self.assertRaises((IndexError, RuntimeError), self.module.heappush, list1, g(1))
+ self.assertRaises((IndexError, RuntimeError), self.module.heappush, list2, h(1))
class TestErrorHandlingPython(TestErrorHandling, TestCase):
module = py_heapq
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-22-15-53-37.bpo-39421.O3nG7u.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-22-15-53-37.bpo-39421.O3nG7u.rst
new file mode 100644
index 00000000000..bae008150ee
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-22-15-53-37.bpo-39421.O3nG7u.rst
@@ -0,0 +1,2 @@
+Fix possible crashes when operating with the functions in the :mod:`heapq`
+module and custom comparison operators.
diff --git a/Modules/_heapqmodule.c b/Modules/_heapqmodule.c
index a84cade3aaa..6bc18b5f82f 100644
--- a/Modules/_heapqmodule.c
+++ b/Modules/_heapqmodule.c
@@ -36,7 +36,11 @@ siftdown(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
while (pos > startpos) {
parentpos = (pos - 1) >> 1;
parent = arr[parentpos];
+ Py_INCREF(newitem);
+ Py_INCREF(parent);
cmp = PyObject_RichCompareBool(newitem, parent, Py_LT);
+ Py_DECREF(parent);
+ Py_DECREF(newitem);
if (cmp < 0)
return -1;
if (size != PyList_GET_SIZE(heap)) {
@@ -78,10 +82,13 @@ siftup(PyListObject *heap, Py_ssize_t pos)
/* Set childpos to index of smaller child. */
childpos = 2*pos + 1; /* leftmost child position */
if (childpos + 1 < endpos) {
- cmp = PyObject_RichCompareBool(
- arr[childpos],
- arr[childpos + 1],
- Py_LT);
+ PyObject* a = arr[childpos];
+ PyObject* b = arr[childpos + 1];
+ Py_INCREF(a);
+ Py_INCREF(b);
+ cmp = PyObject_RichCompareBool(a, b, Py_LT);
+ Py_DECREF(a);
+ Py_DECREF(b);
if (cmp < 0)
return -1;
childpos += ((unsigned)cmp ^ 1); /* increment when cmp==0 */
@@ -264,7 +271,10 @@ _heapq_heappushpop_impl(PyObject *module, PyObject *heap, PyObject *item)
return item;
}
- cmp = PyObject_RichCompareBool(PyList_GET_ITEM(heap, 0), item, Py_LT);
+ PyObject* top = PyList_GET_ITEM(heap, 0);
+ Py_INCREF(top);
+ cmp = PyObject_RichCompareBool(top, item, Py_LT);
+ Py_DECREF(top);
if (cmp < 0)
return NULL;
if (cmp == 0) {
@@ -420,7 +430,11 @@ siftdown_max(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
while (pos > startpos) {
parentpos = (pos - 1) >> 1;
parent = arr[parentpos];
+ Py_INCREF(parent);
+ Py_INCREF(newitem);
cmp = PyObject_RichCompareBool(parent, newitem, Py_LT);
+ Py_DECREF(parent);
+ Py_DECREF(newitem);
if (cmp < 0)
return -1;
if (size != PyList_GET_SIZE(heap)) {
@@ -462,10 +476,13 @@ siftup_max(PyListObject *heap, Py_ssize_t pos)
/* Set childpos to index of smaller child. */
childpos = 2*pos + 1; /* leftmost child position */
if (childpos + 1 < endpos) {
- cmp = PyObject_RichCompareBool(
- arr[childpos + 1],
- arr[childpos],
- Py_LT);
+ PyObject* a = arr[childpos + 1];
+ PyObject* b = arr[childpos];
+ Py_INCREF(a);
+ Py_INCREF(b);
+ cmp = PyObject_RichCompareBool(a, b, Py_LT);
+ Py_DECREF(a);
+ Py_DECREF(b);
if (cmp < 0)
return -1;
childpos += ((unsigned)cmp ^ 1); /* increment when cmp==0 */
From 99e6c260d60655f3d2885af545cbc220b808d492 Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Thu, 23 Jan 2020 15:29:52 +0000
Subject: [PATCH 187/380] bpo-17005: Add a class to perform topological sorting
to the standard library (GH-11583)
Co-Authored-By: Tim Peters
---
Doc/library/functools.rst | 208 +++++++++++++
Doc/myfile.bz2 | Bin 0 -> 331 bytes
Doc/whatsnew/3.9.rst | 7 +
Lib/functools.py | 249 +++++++++++++++-
Lib/test/test_functools.py | 274 +++++++++++++++++-
.../2020-01-17-00-00-58.bpo-17005.nTSxsy.rst | 3 +
6 files changed, 738 insertions(+), 3 deletions(-)
create mode 100644 Doc/myfile.bz2
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-17-00-00-58.bpo-17005.nTSxsy.rst
diff --git a/Doc/library/functools.rst b/Doc/library/functools.rst
index bb7aac42dac..8c408923b70 100644
--- a/Doc/library/functools.rst
+++ b/Doc/library/functools.rst
@@ -8,10 +8,16 @@
.. moduleauthor:: Raymond Hettinger
.. moduleauthor:: Nick Coghlan
.. moduleauthor:: Łukasz Langa
+.. moduleauthor:: Pablo Galindo
.. sectionauthor:: Peter Harris
**Source code:** :source:`Lib/functools.py`
+.. testsetup:: default
+
+ import functools
+ from functools import *
+
--------------
The :mod:`functools` module is for higher-order functions: functions that act on
@@ -512,6 +518,192 @@ The :mod:`functools` module defines the following functions:
.. versionadded:: 3.8
+.. class:: TopologicalSorter(graph=None)
+
+ Provides functionality to topologically sort a graph of hashable nodes.
+
+ A topological order is a linear ordering of the vertices in a graph such that for
+ every directed edge u -> v from vertex u to vertex v, vertex u comes before vertex
+ v in the ordering. For instance, the vertices of the graph may represent tasks to
+ be performed, and the edges may represent constraints that one task must be
+ performed before another; in this example, a topological ordering is just a valid
+ sequence for the tasks. A complete topological ordering is possible if and only if
+ the graph has no directed cycles, that is, if it is a directed acyclic graph.
+
+ If the optional *graph* argument is provided it must be a dictionary representing
+ a directed acyclic graph where the keys are nodes and the values are iterables of
+ all predecessors of that node in the graph (the nodes that have edges that point
+ to the value in the key). Additional nodes can be added to the graph using the
+ :meth:`~TopologicalSorter.add` method.
+
+ In the general case, the steps required to perform the sorting of a given graph
+ are as follows:
+
+ * Create an instance of the :class:`TopologicalSorter` with an optional initial graph.
+ * Add additional nodes to the graph.
+ * Call :meth:`~TopologicalSorter.prepare` on the graph.
+ * While :meth:`~TopologicalSorter.is_active` is ``True``, iterate over the
+ nodes returned by :meth:`~TopologicalSorter.get_ready` and process them.
+ Call :meth:`~TopologicalSorter.done` on each node as it finishes processing.
+
+ In case just an immediate sorting of the nodes in the graph is required and
+ no parallelism is involved, the convenience method :meth:`TopologicalSorter.static_order`
+ can be used directly. For example, this method can be used to implement a simple
+ version of the C3 linearization algorithm used by Python to calculate the Method
+ Resolution Order (MRO) of a derived class:
+
+ .. doctest::
+
+ >>> class A: pass
+ >>> class B(A): pass
+ >>> class C(A): pass
+ >>> class D(B, C): pass
+
+ >>> D.__mro__
+ (, , , , )
+
+ >>> graph = {D: {B, C}, C: {A}, B: {A}, A:{object}}
+ >>> ts = TopologicalSorter(graph)
+ >>> topological_order = tuple(ts.static_order())
+ >>> tuple(reversed(topological_order))
+ (, , , , )
+
+ The class is designed to easily support parallel processing of the nodes as they
+ become ready. For instance::
+
+ topological_sorter = TopologicalSorter()
+
+ # Add nodes to 'topological_sorter'...
+
+ topological_sorter.prepare()
+ while topological_sorter.is_active():
+ for node in topological_sorter.get_ready():
+ # Worker threads or processes take nodes to work on off the
+ # 'task_queue' queue.
+ task_queue.put(node)
+
+ # When the work for a node is done, workers put the node in
+ # 'finalized_tasks_queue' so we can get more nodes to work on.
+ # The definition of 'is_active()' guarantees that, at this point, at
+ # least one node has been placed on 'task_queue' that hasn't yet
+ # been passed to 'done()', so this blocking 'get()' must (eventually)
+ # succeed. After calling 'done()', we loop back to call 'get_ready()'
+ # again, so put newly freed nodes on 'task_queue' as soon as
+ # logically possible.
+ node = finalized_tasks_queue.get()
+ topological_sorter.done(node)
+
+ .. method:: add(node, *predecessors)
+
+ Add a new node and its predecessors to the graph. Both the *node* and
+ all elements in *predecessors* must be hashable.
+
+ If called multiple times with the same node argument, the set of dependencies
+ will be the union of all dependencies passed in.
+
+ It is possible to add a node with no dependencies (*predecessors* is not
+ provided) or to provide a dependency twice. If a node that has not been
+ provided before is included among *predecessors* it will be automatically added
+ to the graph with no predecessors of its own.
+
+ Raises :exc:`ValueError` if called after :meth:`~TopologicalSorter.prepare`.
+
+ .. method:: prepare()
+
+ Mark the graph as finished and check for cycles in the graph. If any cycle is
+ detected, :exc:`CycleError` will be raised, but
+ :meth:`~TopologicalSorter.get_ready` can still be used to obtain as many nodes
+ as possible until cycles block more progress. After a call to this function,
+ the graph cannot be modified, and therefore no more nodes can be added using
+ :meth:`~TopologicalSorter.add`.
+
+ .. method:: is_active()
+
+ Returns ``True`` if more progress can be made and ``False`` otherwise. Progress
+ can be made if cycles do not block the resolution and either there are still
+ nodes ready that haven't yet been returned by
+ :meth:`TopologicalSorter.get_ready` or the number of nodes marked
+ :meth:`TopologicalSorter.done` is less than the number that have been returned
+ by :meth:`TopologicalSorter.get_ready`.
+
+ The :meth:`~TopologicalSorter.__bool__` method of this class defers to this
+ function, so instead of::
+
+ if ts.is_active():
+ ...
+
+ if possible to simply do::
+
+ if ts:
+ ...
+
+ Raises :exc:`ValueError` if called without calling :meth:`~TopologicalSorter.prepare`
+ previously.
+
+ .. method:: done(*nodes)
+
+ Marks a set of nodes returned by :meth:`TopologicalSorter.get_ready` as
+ processed, unblocking any successor of each node in *nodes* for being returned
+ in the future by a call to :meth:`TopologicalSorter.get_ready`.
+
+ Raises :exc:`ValueError` if any node in *nodes* has already been marked as
+ processed by a previous call to this method or if a node was not added to the
+ graph by using :meth:`TopologicalSorter.add`, if called without calling
+ :meth:`~TopologicalSorter.prepare` or if node has not yet been returned by
+ :meth:`~TopologicalSorter.get_ready`.
+
+ .. method:: get_ready()
+
+ Returns a ``tuple`` with all the nodes that are ready. Initially it returns all
+ nodes with no predecessors, and once those are marked as processed by calling
+ :meth:`TopologicalSorter.done`, further calls will return all new nodes that
+ have all their predecessors already processed. Once no more progress can be
+ made, empty tuples are returned.
+ made.
+
+ Raises :exc:`ValueError` if called without calling
+ :meth:`~TopologicalSorter.prepare` previously.
+
+ .. method:: static_order()
+
+ Returns an iterable of nodes in a topological order. Using this method
+ does not require to call :meth:`TopologicalSorter.prepare` or
+ :meth:`TopologicalSorter.done`. This method is equivalent to::
+
+ def static_order(self):
+ self.prepare()
+ while self.is_active():
+ node_group = self.get_ready()
+ yield from node_group
+ self.done(*node_group)
+
+ The particular order that is returned may depend on the specific order in
+ which the items were inserted in the graph. For example:
+
+ .. doctest::
+
+ >>> ts = TopologicalSorter()
+ >>> ts.add(3, 2, 1)
+ >>> ts.add(1, 0)
+ >>> print([*ts.static_order()])
+ [2, 0, 1, 3]
+
+ >>> ts2 = TopologicalSorter()
+ >>> ts2.add(1, 0)
+ >>> ts2.add(3, 2, 1)
+ >>> print([*ts2.static_order()])
+ [0, 2, 1, 3]
+
+ This is due to the fact that "0" and "2" are in the same level in the graph (they
+ would have been returned in the same call to :meth:`~TopologicalSorter.get_ready`)
+ and the order between them is determined by the order of insertion.
+
+
+ If any cycle is detected, :exc:`CycleError` will be raised.
+
+ .. versionadded:: 3.9
+
+
.. function:: update_wrapper(wrapper, wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES)
Update a *wrapper* function to look like the *wrapped* function. The optional
@@ -621,3 +813,19 @@ differences. For instance, the :attr:`~definition.__name__` and :attr:`__doc__`
are not created automatically. Also, :class:`partial` objects defined in
classes behave like static methods and do not transform into bound methods
during instance attribute look-up.
+
+
+Exceptions
+----------
+The :mod:`functools` module defines the following exception classes:
+
+.. exception:: CycleError
+
+ Subclass of :exc:`ValueError` raised by :meth:`TopologicalSorter.prepare` if cycles exist
+ in the working graph. If multiple cycles exist, only one undefined choice among them will
+ be reported and included in the exception.
+
+ The detected cycle can be accessed via the second element in the :attr:`~CycleError.args`
+ attribute of the exception instance and consists in a list of nodes, such that each node is,
+ in the graph, an immediate predecessor of the next node in the list. In the reported list,
+ the first and the last node will be the same, to make it clear that it is cyclic.
diff --git a/Doc/myfile.bz2 b/Doc/myfile.bz2
new file mode 100644
index 0000000000000000000000000000000000000000..7ada20f60926b48c5e828d1e7bf71413ab4e70e9
GIT binary patch
literal 331
zcmV-R0kr-?T4*^jL0KkKS+!R|D*ym2SAYNzKm{!$Kmb4Y{{S!nQ)N(SCV(fDn4n-m
zsj1*o)jw1{KzfI%pc>6yC8lH}rXzFA}n%<_UC%QtSrIv)E4R
zDh^1A%zp>6B3vmTgeYY0oJp0(`BpUNh|T3{*-_`)^ao&)
zc!V(so1042t!WwNmV`neq?w3@G%ivk5jbims09KR+7&i4b+DaUp9+qJE21@v>K~jq
d&ZNWD>qxYMPv6On5RHF}xgwk>NLs6)m4J*en85%5
literal 0
HcmV?d00001
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index d9c545adc43..a6e938faa99 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -166,6 +166,13 @@ ftplib
if the given timeout for their constructor is zero to prevent the creation of
a non-blocking socket. (Contributed by Dong-hee Na in :issue:`39259`.)
+functools
+---------
+
+Add the :class:`functools.TopologicalSorter` class to offer functionality to perform
+topological sorting of graphs. (Contributed by Pablo Galindo, Tim Peters and Larry
+Hastings in :issue:`17005`.)
+
gc
--
diff --git a/Lib/functools.py b/Lib/functools.py
index 2c01b2e5952..050bec86051 100644
--- a/Lib/functools.py
+++ b/Lib/functools.py
@@ -10,8 +10,9 @@
# See C source code for _functools credits/copyright
__all__ = ['update_wrapper', 'wraps', 'WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES',
- 'total_ordering', 'cmp_to_key', 'lru_cache', 'reduce', 'partial',
- 'partialmethod', 'singledispatch', 'singledispatchmethod']
+ 'total_ordering', 'cmp_to_key', 'lru_cache', 'reduce',
+ 'TopologicalSorter', 'CycleError',
+ 'partial', 'partialmethod', 'singledispatch', 'singledispatchmethod']
from abc import get_cache_token
from collections import namedtuple
@@ -192,6 +193,250 @@ def total_ordering(cls):
setattr(cls, opname, opfunc)
return cls
+################################################################################
+### topological sort
+################################################################################
+
+_NODE_OUT = -1
+_NODE_DONE = -2
+
+
+class _NodeInfo:
+ __slots__ = 'node', 'npredecessors', 'successors'
+
+ def __init__(self, node):
+ # The node this class is augmenting.
+ self.node = node
+
+ # Number of predecessors, generally >= 0. When this value falls to 0,
+ # and is returned by get_ready(), this is set to _NODE_OUT and when the
+ # node is marked done by a call to done(), set to _NODE_DONE.
+ self.npredecessors = 0
+
+ # List of successor nodes. The list can contain duplicated elements as
+ # long as they're all reflected in the successor's npredecessors attribute).
+ self.successors = []
+
+
+class CycleError(ValueError):
+ """Subclass of ValueError raised by TopologicalSorterif cycles exist in the graph
+
+ If multiple cycles exist, only one undefined choice among them will be reported
+ and included in the exception. The detected cycle can be accessed via the second
+ element in the *args* attribute of the exception instance and consists in a list
+ of nodes, such that each node is, in the graph, an immediate predecessor of the
+ next node in the list. In the reported list, the first and the last node will be
+ the same, to make it clear that it is cyclic.
+ """
+ pass
+
+
+class TopologicalSorter:
+ """Provides functionality to topologically sort a graph of hashable nodes"""
+
+ def __init__(self, graph=None):
+ self._node2info = {}
+ self._ready_nodes = None
+ self._npassedout = 0
+ self._nfinished = 0
+
+ if graph is not None:
+ for node, predecessors in graph.items():
+ self.add(node, *predecessors)
+
+ def _get_nodeinfo(self, node):
+ if (result := self._node2info.get(node)) is None:
+ self._node2info[node] = result = _NodeInfo(node)
+ return result
+
+ def add(self, node, *predecessors):
+ """Add a new node and its predecessors to the graph.
+
+ Both the *node* and all elements in *predecessors* must be hashable.
+
+ If called multiple times with the same node argument, the set of dependencies
+ will be the union of all dependencies passed in.
+
+ It is possible to add a node with no dependencies (*predecessors* is not provided)
+ as well as provide a dependency twice. If a node that has not been provided before
+ is included among *predecessors* it will be automatically added to the graph with
+ no predecessors of its own.
+
+ Raises ValueError if called after "prepare".
+ """
+ if self._ready_nodes is not None:
+ raise ValueError("Nodes cannot be added after a call to prepare()")
+
+ # Create the node -> predecessor edges
+ nodeinfo = self._get_nodeinfo(node)
+ nodeinfo.npredecessors += len(predecessors)
+
+ # Create the predecessor -> node edges
+ for pred in predecessors:
+ pred_info = self._get_nodeinfo(pred)
+ pred_info.successors.append(node)
+
+ def prepare(self):
+ """Mark the graph as finished and check for cycles in the graph.
+
+ If any cycle is detected, "CycleError" will be raised, but "get_ready" can
+ still be used to obtain as many nodes as possible until cycles block more
+ progress. After a call to this function, the graph cannot be modified and
+ therefore no more nodes can be added using "add".
+ """
+ if self._ready_nodes is not None:
+ raise ValueError("cannot prepare() more than once")
+
+ self._ready_nodes = [i.node for i in self._node2info.values()
+ if i.npredecessors == 0]
+ # ready_nodes is set before we look for cycles on purpose:
+ # if the user wants to catch the CycleError, that's fine,
+ # they can continue using the instance to grab as many
+ # nodes as possible before cycles block more progress
+ cycle = self._find_cycle()
+ if cycle:
+ raise CycleError(f"nodes are in a cycle", cycle)
+
+ def get_ready(self):
+ """Return a tuple of all the nodes that are ready.
+
+ Initially it returns all nodes with no predecessors; once those are marked
+ as processed by calling "done", further calls will return all new nodes that
+ have all their predecessors already processed. Once no more progress can be made,
+ empty tuples are returned.
+
+ Raises ValueError if called without calling "prepare" previously.
+ """
+ if self._ready_nodes is None:
+ raise ValueError("prepare() must be called first")
+
+ # Get the nodes that are ready and mark them
+ result = tuple(self._ready_nodes)
+ n2i = self._node2info
+ for node in result:
+ n2i[node].npredecessors = _NODE_OUT
+
+ # Clean the list of nodes that are ready and update
+ # the counter of nodes that we have returned.
+ self._ready_nodes.clear()
+ self._npassedout += len(result)
+
+ return result
+
+ def is_active(self):
+ """Return True if more progress can be made and ``False`` otherwise.
+
+ Progress can be made if cycles do not block the resolution and either there
+ are still nodes ready that haven't yet been returned by "get_ready" or the
+ number of nodes marked "done" is less than the number that have been returned
+ by "get_ready".
+
+ Raises ValueError if called without calling "prepare" previously.
+ """
+ if self._ready_nodes is None:
+ raise ValueError("prepare() must be called first")
+ return self._nfinished < self._npassedout or bool(self._ready_nodes)
+
+ def __bool__(self):
+ return self.is_active()
+
+ def done(self, *nodes):
+ """Marks a set of nodes returned by "get_ready" as processed.
+
+ This method unblocks any successor of each node in *nodes* for being returned
+ in the future by a a call to "get_ready"
+
+ Raises :exec:`ValueError` if any node in *nodes* has already been marked as
+ processed by a previous call to this method, if a node was not added to the
+ graph by using "add" or if called without calling "prepare" previously or if
+ node has not yet been returned by "get_ready".
+ """
+
+ if self._ready_nodes is None:
+ raise ValueError("prepare() must be called first")
+
+ n2i = self._node2info
+
+ for node in nodes:
+
+ # Check if we know about this node (it was added previously using add()
+ if (nodeinfo := n2i.get(node)) is None:
+ raise ValueError(f"node {node!r} was not added using add()")
+
+ # If the node has not being returned (marked as ready) previously, inform the user.
+ stat = nodeinfo.npredecessors
+ if stat != _NODE_OUT:
+ if stat >= 0:
+ raise ValueError(f"node {node!r} was not passed out (still not ready)")
+ elif stat == _NODE_DONE:
+ raise ValueError(f"node {node!r} was already marked done")
+ else:
+ assert False, f"node {node!r}: unknown status {stat}"
+
+ # Mark the node as processed
+ nodeinfo.npredecessors = _NODE_DONE
+
+ # Go to all the successors and reduce the number of predecessors, collecting all the ones
+ # that are ready to be returned in the next get_ready() call.
+ for successor in nodeinfo.successors:
+ successor_info = n2i[successor]
+ successor_info.npredecessors -= 1
+ if successor_info.npredecessors == 0:
+ self._ready_nodes.append(successor)
+ self._nfinished += 1
+
+ def _find_cycle(self):
+ n2i = self._node2info
+ stack = []
+ itstack = []
+ seen = set()
+ node2stacki = {}
+
+ for node in n2i:
+ if node in seen:
+ continue
+
+ while True:
+ if node in seen:
+ # If we have seen already the node and is in the
+ # current stack we have found a cycle.
+ if node in node2stacki:
+ return stack[node2stacki[node]:] + [node]
+ # else go on to get next successor
+ else:
+ seen.add(node)
+ itstack.append(iter(n2i[node].successors).__next__)
+ node2stacki[node] = len(stack)
+ stack.append(node)
+
+ # Backtrack to the topmost stack entry with
+ # at least another successor.
+ while stack:
+ try:
+ node = itstack[-1]()
+ break
+ except StopIteration:
+ del node2stacki[stack.pop()]
+ itstack.pop()
+ else:
+ break
+ return None
+
+ def static_order(self):
+ """Returns an iterable of nodes in a topological order.
+
+ The particular order that is returned may depend on the specific
+ order in which the items were inserted in the graph.
+
+ Using this method does not require to call "prepare" or "done". If any
+ cycle is detected, :exc:`CycleError` will be raised.
+ """
+ self.prepare()
+ while self.is_active():
+ node_group = self.get_ready()
+ yield from node_group
+ self.done(*node_group)
+
################################################################################
### cmp_to_key() function converter
diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py
index a97ca398e77..9503f4086b1 100644
--- a/Lib/test/test_functools.py
+++ b/Lib/test/test_functools.py
@@ -3,7 +3,7 @@ import builtins
import collections
import collections.abc
import copy
-from itertools import permutations
+from itertools import permutations, chain
import pickle
from random import choice
import sys
@@ -13,9 +13,12 @@ import time
import typing
import unittest
import unittest.mock
+import os
from weakref import proxy
import contextlib
+from test.support.script_helper import assert_python_ok
+
import functools
py_functools = support.import_fresh_module('functools', blocked=['_functools'])
@@ -1158,6 +1161,275 @@ class Orderable_LT:
return self.value == other.value
+class TestTopologicalSort(unittest.TestCase):
+
+ def _test_graph(self, graph, expected):
+
+ def static_order_with_groups(ts):
+ ts.prepare()
+ while ts.is_active():
+ nodes = ts.get_ready()
+ for node in nodes:
+ ts.done(node)
+ yield nodes
+
+ ts = functools.TopologicalSorter(graph)
+ self.assertEqual(list(static_order_with_groups(ts)), list(expected))
+
+ ts = functools.TopologicalSorter(graph)
+ self.assertEqual(list(ts.static_order()), list(chain(*expected)))
+
+ def _assert_cycle(self, graph, cycle):
+ ts = functools.TopologicalSorter()
+ for node, dependson in graph.items():
+ ts.add(node, *dependson)
+ try:
+ ts.prepare()
+ except functools.CycleError as e:
+ msg, seq = e.args
+ self.assertIn(' '.join(map(str, cycle)),
+ ' '.join(map(str, seq * 2)))
+ else:
+ raise
+
+ def test_simple_cases(self):
+ self._test_graph(
+ {2: {11},
+ 9: {11, 8},
+ 10: {11, 3},
+ 11: {7, 5},
+ 8: {7, 3}},
+ [(3, 5, 7), (11, 8), (2, 10, 9)]
+ )
+
+ self._test_graph({1: {}}, [(1,)])
+
+ self._test_graph({x: {x+1} for x in range(10)},
+ [(x,) for x in range(10, -1, -1)])
+
+ self._test_graph({2: {3}, 3: {4}, 4: {5}, 5: {1},
+ 11: {12}, 12: {13}, 13: {14}, 14: {15}},
+ [(1, 15), (5, 14), (4, 13), (3, 12), (2, 11)])
+
+ self._test_graph({
+ 0: [1, 2],
+ 1: [3],
+ 2: [5, 6],
+ 3: [4],
+ 4: [9],
+ 5: [3],
+ 6: [7],
+ 7: [8],
+ 8: [4],
+ 9: []
+ },
+ [(9,), (4,), (3, 8), (1, 5, 7), (6,), (2,), (0,)]
+ )
+
+ self._test_graph({
+ 0: [1, 2],
+ 1: [],
+ 2: [3],
+ 3: []
+ },
+ [(1, 3), (2,), (0,)]
+ )
+
+ self._test_graph({
+ 0: [1, 2],
+ 1: [],
+ 2: [3],
+ 3: [],
+ 4: [5],
+ 5: [6],
+ 6: []
+ },
+ [(1, 3, 6), (2, 5), (0, 4)]
+ )
+
+ def test_no_dependencies(self):
+ self._test_graph(
+ {1: {2},
+ 3: {4},
+ 5: {6}},
+ [(2, 4, 6), (1, 3, 5)]
+ )
+
+ self._test_graph(
+ {1: set(),
+ 3: set(),
+ 5: set()},
+ [(1, 3, 5)]
+ )
+
+ def test_the_node_multiple_times(self):
+ # Test same node multiple times in dependencies
+ self._test_graph({1: {2}, 3: {4}, 0: [2, 4, 4, 4, 4, 4]},
+ [(2, 4), (1, 3, 0)])
+
+ # Test adding the same dependency multiple times
+ ts = functools.TopologicalSorter()
+ ts.add(1, 2)
+ ts.add(1, 2)
+ ts.add(1, 2)
+ self.assertEqual([*ts.static_order()], [2, 1])
+
+ def test_graph_with_iterables(self):
+ dependson = (2*x + 1 for x in range(5))
+ ts = functools.TopologicalSorter({0: dependson})
+ self.assertEqual(list(ts.static_order()), [1, 3, 5, 7, 9, 0])
+
+ def test_add_dependencies_for_same_node_incrementally(self):
+ # Test same node multiple times
+ ts = functools.TopologicalSorter()
+ ts.add(1, 2)
+ ts.add(1, 3)
+ ts.add(1, 4)
+ ts.add(1, 5)
+
+ ts2 = functools.TopologicalSorter({1: {2, 3, 4, 5}})
+ self.assertEqual([*ts.static_order()], [*ts2.static_order()])
+
+ def test_empty(self):
+ self._test_graph({}, [])
+
+ def test_cycle(self):
+ # Self cycle
+ self._assert_cycle({1: {1}}, [1, 1])
+ # Simple cycle
+ self._assert_cycle({1: {2}, 2: {1}}, [1, 2, 1])
+ # Indirect cycle
+ self._assert_cycle({1: {2}, 2: {3}, 3: {1}}, [1, 3, 2, 1])
+ # not all elements involved in a cycle
+ self._assert_cycle({1: {2}, 2: {3}, 3: {1}, 5: {4}, 4: {6}}, [1, 3, 2, 1])
+ # Multiple cycles
+ self._assert_cycle({1: {2}, 2: {1}, 3: {4}, 4: {5}, 6: {7}, 7: {6}},
+ [1, 2, 1])
+ # Cycle in the middle of the graph
+ self._assert_cycle({1: {2}, 2: {3}, 3: {2, 4}, 4: {5}}, [3, 2])
+
+ def test_calls_before_prepare(self):
+ ts = functools.TopologicalSorter()
+
+ with self.assertRaisesRegex(ValueError, r"prepare\(\) must be called first"):
+ ts.get_ready()
+ with self.assertRaisesRegex(ValueError, r"prepare\(\) must be called first"):
+ ts.done(3)
+ with self.assertRaisesRegex(ValueError, r"prepare\(\) must be called first"):
+ ts.is_active()
+
+ def test_prepare_multiple_times(self):
+ ts = functools.TopologicalSorter()
+ ts.prepare()
+ with self.assertRaisesRegex(ValueError, r"cannot prepare\(\) more than once"):
+ ts.prepare()
+
+ def test_invalid_nodes_in_done(self):
+ ts = functools.TopologicalSorter()
+ ts.add(1, 2, 3, 4)
+ ts.add(2, 3, 4)
+ ts.prepare()
+ ts.get_ready()
+
+ with self.assertRaisesRegex(ValueError, "node 2 was not passed out"):
+ ts.done(2)
+ with self.assertRaisesRegex(ValueError, r"node 24 was not added using add\(\)"):
+ ts.done(24)
+
+ def test_done(self):
+ ts = functools.TopologicalSorter()
+ ts.add(1, 2, 3, 4)
+ ts.add(2, 3)
+ ts.prepare()
+
+ self.assertEqual(ts.get_ready(), (3, 4))
+ # If we don't mark anything as done, get_ready() returns nothing
+ self.assertEqual(ts.get_ready(), ())
+ ts.done(3)
+ # Now 2 becomes available as 3 is done
+ self.assertEqual(ts.get_ready(), (2,))
+ self.assertEqual(ts.get_ready(), ())
+ ts.done(4)
+ ts.done(2)
+ # Only 1 is missing
+ self.assertEqual(ts.get_ready(), (1,))
+ self.assertEqual(ts.get_ready(), ())
+ ts.done(1)
+ self.assertEqual(ts.get_ready(), ())
+ self.assertFalse(ts.is_active())
+
+ def test_is_active(self):
+ ts = functools.TopologicalSorter()
+ ts.add(1, 2)
+ ts.prepare()
+
+ self.assertTrue(ts.is_active())
+ self.assertEqual(ts.get_ready(), (2,))
+ self.assertTrue(ts.is_active())
+ ts.done(2)
+ self.assertTrue(ts.is_active())
+ self.assertEqual(ts.get_ready(), (1,))
+ self.assertTrue(ts.is_active())
+ ts.done(1)
+ self.assertFalse(ts.is_active())
+
+ def test_not_hashable_nodes(self):
+ ts = functools.TopologicalSorter()
+ self.assertRaises(TypeError, ts.add, dict(), 1)
+ self.assertRaises(TypeError, ts.add, 1, dict())
+ self.assertRaises(TypeError, ts.add, dict(), dict())
+
+ def test_order_of_insertion_does_not_matter_between_groups(self):
+ def get_groups(ts):
+ ts.prepare()
+ while ts.is_active():
+ nodes = ts.get_ready()
+ ts.done(*nodes)
+ yield set(nodes)
+
+ ts = functools.TopologicalSorter()
+ ts.add(3, 2, 1)
+ ts.add(1, 0)
+ ts.add(4, 5)
+ ts.add(6, 7)
+ ts.add(4, 7)
+
+ ts2 = functools.TopologicalSorter()
+ ts2.add(1, 0)
+ ts2.add(3, 2, 1)
+ ts2.add(4, 7)
+ ts2.add(6, 7)
+ ts2.add(4, 5)
+
+ self.assertEqual(list(get_groups(ts)), list(get_groups(ts2)))
+
+ def test_static_order_does_not_change_with_the_hash_seed(self):
+ def check_order_with_hash_seed(seed):
+ code = """if 1:
+ import functools
+ ts = functools.TopologicalSorter()
+ ts.add('blech', 'bluch', 'hola')
+ ts.add('abcd', 'blech', 'bluch', 'a', 'b')
+ ts.add('a', 'a string', 'something', 'b')
+ ts.add('bluch', 'hola', 'abcde', 'a', 'b')
+ print(list(ts.static_order()))
+ """
+ env = os.environ.copy()
+ # signal to assert_python not to do a copy
+ # of os.environ on its own
+ env['__cleanenv'] = True
+ env['PYTHONHASHSEED'] = str(seed)
+ out = assert_python_ok('-c', code, **env)
+ return out
+
+ run1 = check_order_with_hash_seed(1234)
+ run2 = check_order_with_hash_seed(31415)
+
+ self.assertNotEqual(run1, "")
+ self.assertNotEqual(run2, "")
+ self.assertEqual(run1, run2)
+
+
class TestLRU:
def test_lru(self):
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-17-00-00-58.bpo-17005.nTSxsy.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-17-00-00-58.bpo-17005.nTSxsy.rst
new file mode 100644
index 00000000000..e5336437754
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-17-00-00-58.bpo-17005.nTSxsy.rst
@@ -0,0 +1,3 @@
+Add :class:`functools.TopologicalSorter` to the :mod:`functools` module to
+offers functionality to perform topological sorting of graphs. Patch by
+Pablo Galindo, Tim Peters and Larry Hastings.
From 7142df5ea23b4ce0efb72746b4b3b65414e8dcb1 Mon Sep 17 00:00:00 2001
From: Shanavas M
Date: Thu, 23 Jan 2020 23:39:21 +0530
Subject: [PATCH 188/380] bpo-39431: Also mention nonlocal in assignment quirk
(GH-17375)
---
Doc/tutorial/classes.rst | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Doc/tutorial/classes.rst b/Doc/tutorial/classes.rst
index 0c0dca99f21..f781fecf832 100644
--- a/Doc/tutorial/classes.rst
+++ b/Doc/tutorial/classes.rst
@@ -143,10 +143,10 @@ language definition is evolving towards static name resolution, at "compile"
time, so don't rely on dynamic name resolution! (In fact, local variables are
already determined statically.)
-A special quirk of Python is that -- if no :keyword:`global` statement is in
-effect -- assignments to names always go into the innermost scope. Assignments
-do not copy data --- they just bind names to objects. The same is true for
-deletions: the statement ``del x`` removes the binding of ``x`` from the
+A special quirk of Python is that -- if no :keyword:`global` or :keyword:`nonlocal`
+statement is in effect -- assignments to names always go into the innermost scope.
+Assignments do not copy data --- they just bind names to objects. The same is true
+for deletions: the statement ``del x`` removes the binding of ``x`` from the
namespace referenced by the local scope. In fact, all operations that introduce
new names use the local scope: in particular, :keyword:`import` statements and
function definitions bind the module or function name in the local scope.
From 65ecc390c1fa5acdd6348ae3f9843bbdcd8870d1 Mon Sep 17 00:00:00 2001
From: Pablo Galindo
Date: Thu, 23 Jan 2020 21:01:50 +0000
Subject: [PATCH 189/380] bpo-17005: Minor improvements to the documentation of
TopologicalSorter (GH-18155)
---
Doc/library/functools.rst | 136 ++++++++++++++++++--------------------
1 file changed, 64 insertions(+), 72 deletions(-)
diff --git a/Doc/library/functools.rst b/Doc/library/functools.rst
index 8c408923b70..e708a0d99cd 100644
--- a/Doc/library/functools.rst
+++ b/Doc/library/functools.rst
@@ -522,54 +522,46 @@ The :mod:`functools` module defines the following functions:
Provides functionality to topologically sort a graph of hashable nodes.
- A topological order is a linear ordering of the vertices in a graph such that for
- every directed edge u -> v from vertex u to vertex v, vertex u comes before vertex
- v in the ordering. For instance, the vertices of the graph may represent tasks to
- be performed, and the edges may represent constraints that one task must be
- performed before another; in this example, a topological ordering is just a valid
- sequence for the tasks. A complete topological ordering is possible if and only if
- the graph has no directed cycles, that is, if it is a directed acyclic graph.
+ A topological order is a linear ordering of the vertices in a graph such that
+ for every directed edge u -> v from vertex u to vertex v, vertex u comes
+ before vertex v in the ordering. For instance, the vertices of the graph may
+ represent tasks to be performed, and the edges may represent constraints that
+ one task must be performed before another; in this example, a topological
+ ordering is just a valid sequence for the tasks. A complete topological
+ ordering is possible if and only if the graph has no directed cycles, that
+ is, if it is a directed acyclic graph.
- If the optional *graph* argument is provided it must be a dictionary representing
- a directed acyclic graph where the keys are nodes and the values are iterables of
- all predecessors of that node in the graph (the nodes that have edges that point
- to the value in the key). Additional nodes can be added to the graph using the
- :meth:`~TopologicalSorter.add` method.
+ If the optional *graph* argument is provided it must be a dictionary
+ representing a directed acyclic graph where the keys are nodes and the values
+ are iterables of all predecessors of that node in the graph (the nodes that
+ have edges that point to the value in the key). Additional nodes can be added
+ to the graph using the :meth:`~TopologicalSorter.add` method.
- In the general case, the steps required to perform the sorting of a given graph
- are as follows:
+ In the general case, the steps required to perform the sorting of a given
+ graph are as follows:
- * Create an instance of the :class:`TopologicalSorter` with an optional initial graph.
+ * Create an instance of the :class:`TopologicalSorter` with an optional
+ initial graph.
* Add additional nodes to the graph.
* Call :meth:`~TopologicalSorter.prepare` on the graph.
- * While :meth:`~TopologicalSorter.is_active` is ``True``, iterate over the
- nodes returned by :meth:`~TopologicalSorter.get_ready` and process them.
- Call :meth:`~TopologicalSorter.done` on each node as it finishes processing.
+ * While :meth:`~TopologicalSorter.is_active` is ``True``, iterate over
+ the nodes returned by :meth:`~TopologicalSorter.get_ready` and
+ process them. Call :meth:`~TopologicalSorter.done` on each node as it
+ finishes processing.
In case just an immediate sorting of the nodes in the graph is required and
- no parallelism is involved, the convenience method :meth:`TopologicalSorter.static_order`
- can be used directly. For example, this method can be used to implement a simple
- version of the C3 linearization algorithm used by Python to calculate the Method
- Resolution Order (MRO) of a derived class:
+ no parallelism is involved, the convenience method
+ :meth:`TopologicalSorter.static_order` can be used directly:
.. doctest::
- >>> class A: pass
- >>> class B(A): pass
- >>> class C(A): pass
- >>> class D(B, C): pass
-
- >>> D.__mro__
- (, , , , )
-
- >>> graph = {D: {B, C}, C: {A}, B: {A}, A:{object}}
+ >>> graph = {"D": {"B", "C"}, "C": {"A"}, "B": {"A"}}
>>> ts = TopologicalSorter(graph)
- >>> topological_order = tuple(ts.static_order())
- >>> tuple(reversed(topological_order))
- (, , , , )
+ >>> tuple(ts.static_order())
+ ('A', 'C', 'B', 'D')
- The class is designed to easily support parallel processing of the nodes as they
- become ready. For instance::
+ The class is designed to easily support parallel processing of the nodes as
+ they become ready. For instance::
topological_sorter = TopologicalSorter()
@@ -595,39 +587,39 @@ The :mod:`functools` module defines the following functions:
.. method:: add(node, *predecessors)
- Add a new node and its predecessors to the graph. Both the *node* and
- all elements in *predecessors* must be hashable.
+ Add a new node and its predecessors to the graph. Both the *node* and all
+ elements in *predecessors* must be hashable.
- If called multiple times with the same node argument, the set of dependencies
- will be the union of all dependencies passed in.
+ If called multiple times with the same node argument, the set of
+ dependencies will be the union of all dependencies passed in.
It is possible to add a node with no dependencies (*predecessors* is not
provided) or to provide a dependency twice. If a node that has not been
- provided before is included among *predecessors* it will be automatically added
- to the graph with no predecessors of its own.
+ provided before is included among *predecessors* it will be automatically
+ added to the graph with no predecessors of its own.
Raises :exc:`ValueError` if called after :meth:`~TopologicalSorter.prepare`.
.. method:: prepare()
- Mark the graph as finished and check for cycles in the graph. If any cycle is
- detected, :exc:`CycleError` will be raised, but
- :meth:`~TopologicalSorter.get_ready` can still be used to obtain as many nodes
- as possible until cycles block more progress. After a call to this function,
- the graph cannot be modified, and therefore no more nodes can be added using
- :meth:`~TopologicalSorter.add`.
+ Mark the graph as finished and check for cycles in the graph. If any cycle
+ is detected, :exc:`CycleError` will be raised, but
+ :meth:`~TopologicalSorter.get_ready` can still be used to obtain as many
+ nodes as possible until cycles block more progress. After a call to this
+ function, the graph cannot be modified, and therefore no more nodes can be
+ added using :meth:`~TopologicalSorter.add`.
.. method:: is_active()
- Returns ``True`` if more progress can be made and ``False`` otherwise. Progress
- can be made if cycles do not block the resolution and either there are still
- nodes ready that haven't yet been returned by
+ Returns ``True`` if more progress can be made and ``False`` otherwise.
+ Progress can be made if cycles do not block the resolution and either
+ there are still nodes ready that haven't yet been returned by
:meth:`TopologicalSorter.get_ready` or the number of nodes marked
- :meth:`TopologicalSorter.done` is less than the number that have been returned
- by :meth:`TopologicalSorter.get_ready`.
+ :meth:`TopologicalSorter.done` is less than the number that have been
+ returned by :meth:`TopologicalSorter.get_ready`.
- The :meth:`~TopologicalSorter.__bool__` method of this class defers to this
- function, so instead of::
+ The :meth:`~TopologicalSorter.__bool__` method of this class defers to
+ this function, so instead of::
if ts.is_active():
...
@@ -637,29 +629,28 @@ The :mod:`functools` module defines the following functions:
if ts:
...
- Raises :exc:`ValueError` if called without calling :meth:`~TopologicalSorter.prepare`
- previously.
+ Raises :exc:`ValueError` if called without calling
+ :meth:`~TopologicalSorter.prepare` previously.
.. method:: done(*nodes)
Marks a set of nodes returned by :meth:`TopologicalSorter.get_ready` as
- processed, unblocking any successor of each node in *nodes* for being returned
- in the future by a call to :meth:`TopologicalSorter.get_ready`.
+ processed, unblocking any successor of each node in *nodes* for being
+ returned in the future by a call to :meth:`TopologicalSorter.get_ready`.
Raises :exc:`ValueError` if any node in *nodes* has already been marked as
- processed by a previous call to this method or if a node was not added to the
- graph by using :meth:`TopologicalSorter.add`, if called without calling
- :meth:`~TopologicalSorter.prepare` or if node has not yet been returned by
- :meth:`~TopologicalSorter.get_ready`.
+ processed by a previous call to this method or if a node was not added to
+ the graph by using :meth:`TopologicalSorter.add`, if called without
+ calling :meth:`~TopologicalSorter.prepare` or if node has not yet been
+ returned by :meth:`~TopologicalSorter.get_ready`.
.. method:: get_ready()
- Returns a ``tuple`` with all the nodes that are ready. Initially it returns all
- nodes with no predecessors, and once those are marked as processed by calling
- :meth:`TopologicalSorter.done`, further calls will return all new nodes that
- have all their predecessors already processed. Once no more progress can be
- made, empty tuples are returned.
- made.
+ Returns a ``tuple`` with all the nodes that are ready. Initially it
+ returns all nodes with no predecessors, and once those are marked as
+ processed by calling :meth:`TopologicalSorter.done`, further calls will
+ return all new nodes that have all their predecessors already processed.
+ Once no more progress can be made, empty tuples are returned.
Raises :exc:`ValueError` if called without calling
:meth:`~TopologicalSorter.prepare` previously.
@@ -694,9 +685,10 @@ The :mod:`functools` module defines the following functions:
>>> print([*ts2.static_order()])
[0, 2, 1, 3]
- This is due to the fact that "0" and "2" are in the same level in the graph (they
- would have been returned in the same call to :meth:`~TopologicalSorter.get_ready`)
- and the order between them is determined by the order of insertion.
+ This is due to the fact that "0" and "2" are in the same level in the
+ graph (they would have been returned in the same call to
+ :meth:`~TopologicalSorter.get_ready`) and the order between them is
+ determined by the order of insertion.
If any cycle is detected, :exc:`CycleError` will be raised.
From 1d0c5e16eab29d55773cc4196bb90d2bf12e09dd Mon Sep 17 00:00:00 2001
From: Emmanuel Arias
Date: Fri, 24 Jan 2020 05:14:14 -0300
Subject: [PATCH 190/380] bpo-24928: Add test case for patch.dict using
OrderedDict (GH -11437)
* add test for path.dict using OrderedDict
Co-authored-by: Yu Tomita nekobon@users.noreply.github.com
---
Lib/unittest/test/testmock/testpatch.py | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/Lib/unittest/test/testmock/testpatch.py b/Lib/unittest/test/testmock/testpatch.py
index e065a2c35fb..dc4ccdbae24 100644
--- a/Lib/unittest/test/testmock/testpatch.py
+++ b/Lib/unittest/test/testmock/testpatch.py
@@ -4,6 +4,7 @@
import os
import sys
+from collections import OrderedDict
import unittest
from unittest.test.testmock import support
@@ -1834,6 +1835,25 @@ class PatchTest(unittest.TestCase):
self.assertEqual(foo(), 1)
self.assertEqual(foo(), 0)
+ def test_patch_orderdict(self):
+ foo = OrderedDict()
+ foo['a'] = object()
+ foo['b'] = 'python'
+
+ original = foo.copy()
+ update_values = list(zip('cdefghijklmnopqrstuvwxyz', range(26)))
+ patched_values = list(foo.items()) + update_values
+
+ with patch.dict(foo, OrderedDict(update_values)):
+ self.assertEqual(list(foo.items()), patched_values)
+
+ self.assertEqual(foo, original)
+
+ with patch.dict(foo, update_values):
+ self.assertEqual(list(foo.items()), patched_values)
+
+ self.assertEqual(foo, original)
+
def test_dotted_but_module_not_loaded(self):
# This exercises the AttributeError branch of _dot_lookup.
From e131c9720d087c0c4988bd2a5c62020feb9d1d77 Mon Sep 17 00:00:00 2001
From: Mario Corchero
Date: Fri, 24 Jan 2020 08:38:33 +0000
Subject: [PATCH 191/380] Fix `mock.patch.dict` to be stopped with
`mock.patch.stopall` (#17606)
As the function was not registering in the active patches, the mocks
started by `mock.patch.dict` were not being stopped when
`mock.patch.stopall` was being called.
---
Lib/unittest/mock.py | 19 ++++++-
Lib/unittest/test/testmock/testpatch.py | 50 +++++++++++++++++++
.../2019-12-14-14-38-40.bpo-21600.kC4Cgh.rst | 2 +
3 files changed, 69 insertions(+), 2 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2019-12-14-14-38-40.bpo-21600.kC4Cgh.rst
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
index 5622917dc37..3fafe594c59 100644
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -1851,8 +1851,23 @@ class _patch_dict(object):
self._unpatch_dict()
return False
- start = __enter__
- stop = __exit__
+
+ def start(self):
+ """Activate a patch, returning any created mock."""
+ result = self.__enter__()
+ _patch._active_patches.append(self)
+ return result
+
+
+ def stop(self):
+ """Stop an active patch."""
+ try:
+ _patch._active_patches.remove(self)
+ except ValueError:
+ # If the patch hasn't been started this will fail
+ pass
+
+ return self.__exit__()
def _clear_dict(in_dict):
diff --git a/Lib/unittest/test/testmock/testpatch.py b/Lib/unittest/test/testmock/testpatch.py
index dc4ccdbae24..438dfd8cfbc 100644
--- a/Lib/unittest/test/testmock/testpatch.py
+++ b/Lib/unittest/test/testmock/testpatch.py
@@ -1808,6 +1808,56 @@ class PatchTest(unittest.TestCase):
self.assertEqual(stopped, ["three", "two", "one"])
+ def test_patch_dict_stopall(self):
+ dic1 = {}
+ dic2 = {1: 'a'}
+ dic3 = {1: 'A', 2: 'B'}
+ origdic1 = dic1.copy()
+ origdic2 = dic2.copy()
+ origdic3 = dic3.copy()
+ patch.dict(dic1, {1: 'I', 2: 'II'}).start()
+ patch.dict(dic2, {2: 'b'}).start()
+
+ @patch.dict(dic3)
+ def patched():
+ del dic3[1]
+
+ patched()
+ self.assertNotEqual(dic1, origdic1)
+ self.assertNotEqual(dic2, origdic2)
+ self.assertEqual(dic3, origdic3)
+
+ patch.stopall()
+
+ self.assertEqual(dic1, origdic1)
+ self.assertEqual(dic2, origdic2)
+ self.assertEqual(dic3, origdic3)
+
+
+ def test_patch_and_patch_dict_stopall(self):
+ original_unlink = os.unlink
+ original_chdir = os.chdir
+ dic1 = {}
+ dic2 = {1: 'A', 2: 'B'}
+ origdic1 = dic1.copy()
+ origdic2 = dic2.copy()
+
+ patch('os.unlink', something).start()
+ patch('os.chdir', something_else).start()
+ patch.dict(dic1, {1: 'I', 2: 'II'}).start()
+ patch.dict(dic2).start()
+ del dic2[1]
+
+ self.assertIsNot(os.unlink, original_unlink)
+ self.assertIsNot(os.chdir, original_chdir)
+ self.assertNotEqual(dic1, origdic1)
+ self.assertNotEqual(dic2, origdic2)
+ patch.stopall()
+ self.assertIs(os.unlink, original_unlink)
+ self.assertIs(os.chdir, original_chdir)
+ self.assertEqual(dic1, origdic1)
+ self.assertEqual(dic2, origdic2)
+
def test_special_attrs(self):
def foo(x=0):
diff --git a/Misc/NEWS.d/next/Library/2019-12-14-14-38-40.bpo-21600.kC4Cgh.rst b/Misc/NEWS.d/next/Library/2019-12-14-14-38-40.bpo-21600.kC4Cgh.rst
new file mode 100644
index 00000000000..0f726393106
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-12-14-14-38-40.bpo-21600.kC4Cgh.rst
@@ -0,0 +1,2 @@
+Fix :func:`mock.patch.stopall` to stop active patches that were created with
+:func:`mock.patch.dict`.
From b9783d2e035d2babe8fcd9ec109044c0002c18a2 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Fri, 24 Jan 2020 10:22:18 +0100
Subject: [PATCH 192/380] bpo-39429: Add a new "Python Development Mode" doc
page (GH-18132)
---
Doc/c-api/init_config.rst | 2 +-
Doc/library/asyncio-dev.rst | 2 +-
Doc/library/asyncio-eventloop.rst | 2 +-
Doc/library/development.rst | 4 +-
Doc/library/devmode.rst | 214 ++++++++++++++++++++++++++++++
Doc/library/exceptions.rst | 16 ++-
Doc/library/faulthandler.rst | 3 +
Doc/library/stdtypes.rst | 8 +-
Doc/library/sys.rst | 15 ++-
Doc/using/cmdline.rst | 26 +---
Doc/whatsnew/3.7.rst | 10 +-
Doc/whatsnew/3.9.rst | 7 +-
Include/cpython/initconfig.h | 8 +-
13 files changed, 268 insertions(+), 49 deletions(-)
create mode 100644 Doc/library/devmode.rst
diff --git a/Doc/c-api/init_config.rst b/Doc/c-api/init_config.rst
index 79a8815ed41..108bd2c0245 100644
--- a/Doc/c-api/init_config.rst
+++ b/Doc/c-api/init_config.rst
@@ -466,7 +466,7 @@ PyConfig
.. c:member:: int dev_mode
- Development mode: see :option:`-X dev <-X>`.
+ If non-zero, enable the :ref:`Python Development Mode `.
.. c:member:: int dump_refs
diff --git a/Doc/library/asyncio-dev.rst b/Doc/library/asyncio-dev.rst
index 101e7817a95..ff51c4fa3b2 100644
--- a/Doc/library/asyncio-dev.rst
+++ b/Doc/library/asyncio-dev.rst
@@ -25,7 +25,7 @@ There are several ways to enable asyncio debug mode:
* Setting the :envvar:`PYTHONASYNCIODEBUG` environment variable to ``1``.
-* Using the :option:`-X` ``dev`` Python command line option.
+* Using the :ref:`Python Development Mode `.
* Passing ``debug=True`` to :func:`asyncio.run`.
diff --git a/Doc/library/asyncio-eventloop.rst b/Doc/library/asyncio-eventloop.rst
index 25a3692695d..0029d94f0b5 100644
--- a/Doc/library/asyncio-eventloop.rst
+++ b/Doc/library/asyncio-eventloop.rst
@@ -1200,7 +1200,7 @@ Enabling debug mode
.. versionchanged:: 3.7
- The new ``-X dev`` command line option can now also be used
+ The new :ref:`Python Development Mode ` can now also be used
to enable the debug mode.
.. seealso::
diff --git a/Doc/library/development.rst b/Doc/library/development.rst
index ab34e1f7ce5..9edce758688 100644
--- a/Doc/library/development.rst
+++ b/Doc/library/development.rst
@@ -18,12 +18,10 @@ The list of modules described in this chapter is:
typing.rst
pydoc.rst
+ devmode.rst
doctest.rst
unittest.rst
unittest.mock.rst
unittest.mock-examples.rst
2to3.rst
test.rst
-
-See also the Python development mode: the :option:`-X` ``dev`` option and
-:envvar:`PYTHONDEVMODE` environment variable.
diff --git a/Doc/library/devmode.rst b/Doc/library/devmode.rst
new file mode 100644
index 00000000000..d5a40cdeeac
--- /dev/null
+++ b/Doc/library/devmode.rst
@@ -0,0 +1,214 @@
+.. _devmode:
+
+Python Development Mode
+=======================
+
+.. versionadded:: 3.7
+
+The Python Development Mode introduces additional runtime checks that are too
+expensive to be enabled by default. It should not be more verbose than the
+default if the code is correct; new warnings are only emitted when an issue is
+detected.
+
+It can be enabled using the :option:`-X dev <-X>` command line option or by
+setting the :envvar:`PYTHONDEVMODE` environment variable to ``1``.
+
+Effects of the Python Development Mode
+======================================
+
+Enabling the Python Development Mode is similar to the following command, but
+with additional effects described below::
+
+ PYTHONMALLOC=debug PYTHONASYNCIODEBUG=1 python3 -W default -X faulthandler
+
+Effects of the Python Development Mode:
+
+* Add ``default`` :ref:`warning filter `. The
+ following warnings are shown:
+
+ * :exc:`DeprecationWarning`
+ * :exc:`ImportWarning`
+ * :exc:`PendingDeprecationWarning`
+ * :exc:`ResourceWarning`
+
+ Normally, the above warnings are filtered by the default :ref:`warning
+ filters `.
+
+ It behaves as if the :option:`-W default <-W>` command line option is used.
+
+ Use the :option:`-W error <-W>` command line option or set the
+ :envvar:`PYTHONWARNINGS` environment variable to ``error`` to treat warnings
+ as errors.
+
+* Install debug hooks on memory allocators to check for:
+
+ * Buffer underflow
+ * Buffer overflow
+ * Memory allocator API violation
+ * Unsafe usage of the GIL
+
+ See the :c:func:`PyMem_SetupDebugHooks` C function.
+
+ It behaves as if the :envvar:`PYTHONMALLOC` environment variable is set to
+ ``debug``.
+
+ To enable the Python Development Mode without installing debug hooks on
+ memory allocators, set the :envvar:`PYTHONMALLOC` environment variable to
+ ``default``.
+
+* Call :func:`faulthandler.enable` at Python startup to install handlers for
+ the :const:`SIGSEGV`, :const:`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS` and
+ :const:`SIGILL` signals to dump the Python traceback on a crash.
+
+ It behaves as if the :option:`-X faulthandler <-X>` command line option is
+ used or if the :envvar:`PYTHONFAULTHANDLER` environment variable is set to
+ ``1``.
+
+* Enable :ref:`asyncio debug mode `. For example,
+ :mod:`asyncio` checks for coroutines that were not awaited and logs them.
+
+ It behaves as if the :envvar:`PYTHONASYNCIODEBUG` environment variable is set
+ to ``1``.
+
+* Check the *encoding* and *errors* arguments for string encoding and decoding
+ operations. Examples: :func:`open`, :meth:`str.encode` and
+ :meth:`bytes.decode`.
+
+ By default, for best performance, the *errors* argument is only checked at
+ the first encoding/decoding error and the *encoding* argument is sometimes
+ ignored for empty strings.
+
+* The :class:`io.IOBase` destructor logs ``close()`` exceptions.
+* Set the :attr:`~sys.flags.dev_mode` attribute of :attr:`sys.flags` to
+ ``True``.
+
+The Python Development Mode does not enable the :mod:`tracemalloc` module by
+default, because the overhead cost (to performance and memory) would be too
+large. Enabling the :mod:`tracemalloc` module provides additional information
+on the origin of some errors. For example, :exc:`ResourceWarning` logs the
+traceback where the resource was allocated, and a buffer overflow error logs
+the traceback where the memory block was allocated.
+
+The Python Development Mode does not prevent the :option:`-O` command line
+option from removing :keyword:`assert` statements nor from setting
+:const:`__debug__` to ``False``.
+
+.. versionchanged:: 3.8
+ The :class:`io.IOBase` destructor now logs ``close()`` exceptions.
+
+.. versionchanged:: 3.9
+ The *encoding* and *errors* arguments are now checked for string encoding
+ and decoding operations.
+
+
+ResourceWarning Example
+=======================
+
+Example of a script counting the number of lines of the text file specified in
+the command line::
+
+ import sys
+
+ def main():
+ fp = open(sys.argv[1])
+ nlines = len(fp.readlines())
+ print(nlines)
+ # The file is closed implicitly
+
+ if __name__ == "__main__":
+ main()
+
+The script does not close the file explicitly. By default, Python does not emit
+any warning. Example using README.txt, which has 269 lines:
+
+.. code-block:: shell-session
+
+ $ python3 script.py README.txt
+ 269
+
+Enabling the Python Development Mode displays a :exc:`ResourceWarning` warning:
+
+.. code-block:: shell-session
+
+ $ python3 -X dev script.py README.txt
+ 269
+ script.py:10: ResourceWarning: unclosed file <_io.TextIOWrapper name='README.rst' mode='r' encoding='UTF-8'>
+ main()
+ ResourceWarning: Enable tracemalloc to get the object allocation traceback
+
+In addition, enabling :mod:`tracemalloc` shows the line where the file was
+opened:
+
+.. code-block:: shell-session
+
+ $ python3 -X dev -X tracemalloc=5 script.py README.rst
+ 269
+ script.py:10: ResourceWarning: unclosed file <_io.TextIOWrapper name='README.rst' mode='r' encoding='UTF-8'>
+ main()
+ Object allocated at (most recent call last):
+ File "script.py", lineno 10
+ main()
+ File "script.py", lineno 4
+ fp = open(sys.argv[1])
+
+The fix is to close explicitly the file. Example using a context manager::
+
+ def main():
+ # Close the file explicitly when exiting the with block
+ with open(sys.argv[1]) as fp:
+ nlines = len(fp.readlines())
+ print(nlines)
+
+Not closing a resource explicitly can leave a resource open for way longer than
+expected; it can cause severe issues upon exiting Python. It is bad in
+CPython, but it is even worse in PyPy. Closing resources explicitly makes an
+application more deterministic and more reliable.
+
+
+Bad file descriptor error example
+=================================
+
+Script displaying the first line of itself::
+
+ import os
+
+ def main():
+ fp = open(__file__)
+ firstline = fp.readline()
+ print(firstline.rstrip())
+ os.close(fp.fileno())
+ # The file is closed implicitly
+
+ main()
+
+By default, Python does not emit any warning:
+
+.. code-block:: shell-session
+
+ $ python3 script.py
+ import os
+
+The Python Development Mode shows a :exc:`ResourceWarning` and logs a "Bad file
+descriptor" error when finalizing the file object:
+
+.. code-block:: shell-session
+
+ $ python3 script.py
+ import os
+ script.py:10: ResourceWarning: unclosed file <_io.TextIOWrapper name='script.py' mode='r' encoding='UTF-8'>
+ main()
+ ResourceWarning: Enable tracemalloc to get the object allocation traceback
+ Exception ignored in: <_io.TextIOWrapper name='script.py' mode='r' encoding='UTF-8'>
+ Traceback (most recent call last):
+ File "script.py", line 10, in
+ main()
+ OSError: [Errno 9] Bad file descriptor
+
+``os.close(fp.fileno())`` closes the file descriptor. When the file object
+finalizer tries to close the file descriptor again, it fails with the ``Bad
+file descriptor`` error. A file descriptor must be closed only once. In the
+worst case scenario, closing it twice can lead to a crash (see :issue:`18748`
+for an example).
+
+The fix is to remove the ``os.close(fp.fileno())`` line, or open the file with
+``closefd=False``.
diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst
index 52a505e0a0f..df2cda9d67a 100644
--- a/Doc/library/exceptions.rst
+++ b/Doc/library/exceptions.rst
@@ -688,6 +688,10 @@ The following exceptions are used as warning categories; see the
Base class for warnings about deprecated features when those warnings are
intended for other Python developers.
+ Ignored by the default warning filters, except in the ``__main__`` module
+ (:pep:`565`). Enabling the :ref:`Python Development Mode ` shows
+ this warning.
+
.. exception:: PendingDeprecationWarning
@@ -699,6 +703,9 @@ The following exceptions are used as warning categories; see the
upcoming deprecation is unusual, and :exc:`DeprecationWarning`
is preferred for already active deprecations.
+ Ignored by the default warning filters. Enabling the :ref:`Python
+ Development Mode ` shows this warning.
+
.. exception:: SyntaxWarning
@@ -720,6 +727,9 @@ The following exceptions are used as warning categories; see the
Base class for warnings about probable mistakes in module imports.
+ Ignored by the default warning filters. Enabling the :ref:`Python
+ Development Mode ` shows this warning.
+
.. exception:: UnicodeWarning
@@ -733,8 +743,10 @@ The following exceptions are used as warning categories; see the
.. exception:: ResourceWarning
- Base class for warnings related to resource usage. Ignored by the default
- warning filters.
+ Base class for warnings related to resource usage.
+
+ Ignored by the default warning filters. Enabling the :ref:`Python
+ Development Mode ` shows this warning.
.. versionadded:: 3.2
diff --git a/Doc/library/faulthandler.rst b/Doc/library/faulthandler.rst
index b588dfa18db..59274c1dd7e 100644
--- a/Doc/library/faulthandler.rst
+++ b/Doc/library/faulthandler.rst
@@ -40,6 +40,9 @@ alternatively be passed to :func:`faulthandler.enable`.
The module is implemented in C, so tracebacks can be dumped on a crash or when
Python is deadlocked.
+The :ref:`Python Development Mode ` calls :func:`faulthandler.enable`
+at Python startup.
+
Dumping the traceback
---------------------
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index 3e25faaa427..fd3401fd18a 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -1559,8 +1559,8 @@ expression support in the :mod:`re` module).
list of possible encodings, see section :ref:`standard-encodings`.
By default, the *errors* argument is not checked for best performances, but
- only used at the first encoding error. Enable the development mode
- (:option:`-X` ``dev`` option), or use a debug build, to check *errors*.
+ only used at the first encoding error. Enable the :ref:`Python Development
+ Mode `, or use a debug build to check *errors*.
.. versionchanged:: 3.1
Support for keyword arguments added.
@@ -2596,8 +2596,8 @@ arbitrary binary data.
list of possible encodings, see section :ref:`standard-encodings`.
By default, the *errors* argument is not checked for best performances, but
- only used at the first decoding error. Enable the development mode
- (:option:`-X` ``dev`` option), or use a debug build, to check *errors*.
+ only used at the first decoding error. Enable the :ref:`Python Development
+ Mode `, or use a debug build to check *errors*.
.. note::
diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
index 351a8e4c9ea..d28b3565c1c 100644
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -428,9 +428,9 @@ always available.
The :term:`named tuple` *flags* exposes the status of command line
flags. The attributes are read only.
- ============================= =============================
+ ============================= ================================================================
attribute flag
- ============================= =============================
+ ============================= ================================================================
:const:`debug` :option:`-d`
:const:`inspect` :option:`-i`
:const:`interactive` :option:`-i`
@@ -444,9 +444,9 @@ always available.
:const:`bytes_warning` :option:`-b`
:const:`quiet` :option:`-q`
:const:`hash_randomization` :option:`-R`
- :const:`dev_mode` :option:`-X` ``dev``
- :const:`utf8_mode` :option:`-X` ``utf8``
- ============================= =============================
+ :const:`dev_mode` :option:`-X dev <-X>` (:ref:`Python Development Mode `)
+ :const:`utf8_mode` :option:`-X utf8 <-X>`
+ ============================= ================================================================
.. versionchanged:: 3.2
Added ``quiet`` attribute for the new :option:`-q` flag.
@@ -461,8 +461,9 @@ always available.
Added ``isolated`` attribute for :option:`-I` ``isolated`` flag.
.. versionchanged:: 3.7
- Added ``dev_mode`` attribute for the new :option:`-X` ``dev`` flag
- and ``utf8_mode`` attribute for the new :option:`-X` ``utf8`` flag.
+ Added the ``dev_mode`` attribute for the new :ref:`Python Development
+ Mode ` and the ``utf8_mode`` attribute for the new :option:`-X`
+ ``utf8`` flag.
.. data:: float_info
diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst
index 9e149806c38..146003b1471 100644
--- a/Doc/using/cmdline.rst
+++ b/Doc/using/cmdline.rst
@@ -442,24 +442,9 @@ Miscellaneous options
nested imports). Note that its output may be broken in multi-threaded
application. Typical usage is ``python3 -X importtime -c 'import
asyncio'``. See also :envvar:`PYTHONPROFILEIMPORTTIME`.
- * ``-X dev``: enable CPython's "development mode", introducing additional
- runtime checks which are too expensive to be enabled by default. It should
- not be more verbose than the default if the code is correct: new warnings
- are only emitted when an issue is detected. Effect of the developer mode:
-
- * Check *encoding* and *errors* arguments on string encoding and decoding
- operations. Examples: :func:`open`, :meth:`str.encode` and
- :meth:`bytes.decode`.
- * Add ``default`` warning filter, as :option:`-W` ``default``.
- * Install debug hooks on memory allocators: see the
- :c:func:`PyMem_SetupDebugHooks` C function.
- * Enable the :mod:`faulthandler` module to dump the Python traceback
- on a crash.
- * Enable :ref:`asyncio debug mode `.
- * Set the :attr:`~sys.flags.dev_mode` attribute of :attr:`sys.flags` to
- ``True``.
- * :class:`io.IOBase` destructor logs ``close()`` exceptions.
-
+ * ``-X dev``: enable :ref:`Python Development Mode `, introducing
+ additional runtime checks that are too expensive to be enabled by
+ default.
* ``-X utf8`` enables UTF-8 mode for operating system interfaces, overriding
the default locale-aware mode. ``-X utf8=0`` explicitly disables UTF-8
mode (even when it would otherwise activate automatically).
@@ -890,8 +875,9 @@ conflict.
.. envvar:: PYTHONDEVMODE
- If this environment variable is set to a non-empty string, enable the
- CPython "development mode". See the :option:`-X` ``dev`` option.
+ If this environment variable is set to a non-empty string, enable
+ :ref:`Python Development Mode `, introducing additional runtime
+ checks that are too expensive to be enabled by default.
.. versionadded:: 3.7
diff --git a/Doc/whatsnew/3.7.rst b/Doc/whatsnew/3.7.rst
index 8a70fe22d52..04cfa57e144 100644
--- a/Doc/whatsnew/3.7.rst
+++ b/Doc/whatsnew/3.7.rst
@@ -102,7 +102,7 @@ CPython implementation improvements:
* :ref:`PEP 538 `, legacy C locale coercion
* :ref:`PEP 540 `, forced UTF-8 runtime mode
* :ref:`PEP 552 `, deterministic .pycs
-* :ref:`the new development runtime mode `
+* :ref:`New Python Development Mode `
* :ref:`PEP 565 `, improved :exc:`DeprecationWarning`
handling
@@ -479,15 +479,15 @@ Three new translations have been added:
.. _whatsnew37-devmode:
-Development Runtime Mode: -X dev
+Python Development Mode (-X dev)
--------------------------------
The new :option:`-X` ``dev`` command line option or the new
:envvar:`PYTHONDEVMODE` environment variable can be used to enable
-CPython's *development mode*. When in development mode, CPython performs
+:ref:`Python Development Mode `. When in development mode, Python performs
additional runtime checks that are too expensive to be enabled by default.
-See :option:`-X` ``dev`` documentation for the full description of the effects
-of this mode.
+See :ref:`Python Development Mode ` documentation for the full
+description.
Other Language Changes
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index a6e938faa99..ff5cb1486f9 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -90,9 +90,10 @@ Other Language Changes
in this case.
(Contributed by Victor Stinner in :issue:`20443`.)
-* In development mode and in debug build, *encoding* and *errors* arguments are
- now checked on string encoding and decoding operations. Examples:
- :func:`open`, :meth:`str.encode` and :meth:`bytes.decode`.
+* In the :ref:`Python Development Mode ` and in debug build, the
+ *encoding* and *errors* arguments are now checked for string encoding and
+ decoding operations. Examples: :func:`open`, :meth:`str.encode` and
+ :meth:`bytes.decode`.
By default, for best performance, the *errors* argument is only checked at
the first encoding/decoding error and the *encoding* argument is sometimes
diff --git a/Include/cpython/initconfig.h b/Include/cpython/initconfig.h
index 4b5ceafe02d..54e662347e3 100644
--- a/Include/cpython/initconfig.h
+++ b/Include/cpython/initconfig.h
@@ -113,7 +113,11 @@ typedef struct {
"POSIX", otherwise it is set to 0. Inherit Py_UTF8Mode value value. */
int utf8_mode;
- int dev_mode; /* Development mode. PYTHONDEVMODE, -X dev */
+ /* If non-zero, enable the Python Development Mode.
+
+ Set to 1 by the -X dev command line option. Set by the PYTHONDEVMODE
+ environment variable. */
+ int dev_mode;
/* Memory allocator: PYTHONMALLOC env var.
See PyMemAllocatorName for valid values. */
@@ -131,7 +135,7 @@ typedef struct {
int isolated; /* Isolated mode? see PyPreConfig.isolated */
int use_environment; /* Use environment variables? see PyPreConfig.use_environment */
- int dev_mode; /* Development mode? See PyPreConfig.dev_mode */
+ int dev_mode; /* Python Development Mode? See PyPreConfig.dev_mode */
/* Install signal handlers? Yes by default. */
int install_signal_handlers;
From e9652e8d58392f5022759ba06b444ce970eb12db Mon Sep 17 00:00:00 2001
From: Mark Dickinson
Date: Fri, 24 Jan 2020 10:03:22 +0000
Subject: [PATCH 193/380] bpo-39426: Fix outdated default and highest protocols
in docs (GH-18154)
Some portions of the pickle documentation hadn't been updated for the pickle protocol changes in Python 3.8 (new protocol 5, default protocol 4). This PR fixes those docs.
https://bugs.python.org/issue39426
---
Lib/pickle.py | 6 +++---
Modules/_pickle.c | 19 ++++++++++---------
Modules/clinic/_pickle.c.h | 15 ++++++++-------
3 files changed, 21 insertions(+), 19 deletions(-)
diff --git a/Lib/pickle.py b/Lib/pickle.py
index 01d41422aa4..d7adc162c98 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -409,9 +409,9 @@ class _Pickler:
"""This takes a binary file for writing a pickle data stream.
The optional *protocol* argument tells the pickler to use the
- given protocol; supported protocols are 0, 1, 2, 3 and 4. The
- default protocol is 4. It was introduced in Python 3.4, it is
- incompatible with previous versions.
+ given protocol; supported protocols are 0, 1, 2, 3, 4 and 5.
+ The default protocol is 4. It was introduced in Python 3.4, and
+ is incompatible with previous versions.
Specifying a negative protocol version selects the highest
protocol version supported. The higher the protocol used, the
diff --git a/Modules/_pickle.c b/Modules/_pickle.c
index baa0a274196..25d5c8da920 100644
--- a/Modules/_pickle.c
+++ b/Modules/_pickle.c
@@ -4645,8 +4645,9 @@ _pickle.Pickler.__init__
This takes a binary file for writing a pickle data stream.
The optional *protocol* argument tells the pickler to use the given
-protocol; supported protocols are 0, 1, 2, 3 and 4. The default
-protocol is 3; a backward-incompatible protocol designed for Python 3.
+protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
+protocol is 4. It was introduced in Python 3.4, and is incompatible
+with previous versions.
Specifying a negative protocol version selects the highest protocol
version supported. The higher the protocol used, the more recent the
@@ -4678,7 +4679,7 @@ static int
_pickle_Pickler___init___impl(PicklerObject *self, PyObject *file,
PyObject *protocol, int fix_imports,
PyObject *buffer_callback)
-/*[clinic end generated code: output=0abedc50590d259b input=bb886e00443a7811]*/
+/*[clinic end generated code: output=0abedc50590d259b input=a7c969699bf5dad3]*/
{
_Py_IDENTIFIER(persistent_id);
_Py_IDENTIFIER(dispatch_table);
@@ -7635,8 +7636,8 @@ This is equivalent to ``Pickler(file, protocol).dump(obj)``, but may
be more efficient.
The optional *protocol* argument tells the pickler to use the given
-protocol; supported protocols are 0, 1, 2, 3 and 4. The default
-protocol is 4. It was introduced in Python 3.4, it is incompatible
+protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
+protocol is 4. It was introduced in Python 3.4, and is incompatible
with previous versions.
Specifying a negative protocol version selects the highest protocol
@@ -7662,7 +7663,7 @@ static PyObject *
_pickle_dump_impl(PyObject *module, PyObject *obj, PyObject *file,
PyObject *protocol, int fix_imports,
PyObject *buffer_callback)
-/*[clinic end generated code: output=706186dba996490c input=cfdcaf573ed6e46c]*/
+/*[clinic end generated code: output=706186dba996490c input=5ed6653da99cd97c]*/
{
PicklerObject *pickler = _Pickler_New();
@@ -7705,8 +7706,8 @@ _pickle.dumps
Return the pickled representation of the object as a bytes object.
The optional *protocol* argument tells the pickler to use the given
-protocol; supported protocols are 0, 1, 2, 3 and 4. The default
-protocol is 4. It was introduced in Python 3.4, it is incompatible
+protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default
+protocol is 4. It was introduced in Python 3.4, and is incompatible
with previous versions.
Specifying a negative protocol version selects the highest protocol
@@ -7726,7 +7727,7 @@ into *file* as part of the pickle stream. It is an error if
static PyObject *
_pickle_dumps_impl(PyObject *module, PyObject *obj, PyObject *protocol,
int fix_imports, PyObject *buffer_callback)
-/*[clinic end generated code: output=fbab0093a5580fdf input=9f334d535ff7194f]*/
+/*[clinic end generated code: output=fbab0093a5580fdf input=e543272436c6f987]*/
{
PyObject *result;
PicklerObject *pickler = _Pickler_New();
diff --git a/Modules/clinic/_pickle.c.h b/Modules/clinic/_pickle.c.h
index 9da3f1195a3..0457a433e79 100644
--- a/Modules/clinic/_pickle.c.h
+++ b/Modules/clinic/_pickle.c.h
@@ -69,8 +69,9 @@ PyDoc_STRVAR(_pickle_Pickler___init____doc__,
"This takes a binary file for writing a pickle data stream.\n"
"\n"
"The optional *protocol* argument tells the pickler to use the given\n"
-"protocol; supported protocols are 0, 1, 2, 3 and 4. The default\n"
-"protocol is 3; a backward-incompatible protocol designed for Python 3.\n"
+"protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default\n"
+"protocol is 4. It was introduced in Python 3.4, and is incompatible\n"
+"with previous versions.\n"
"\n"
"Specifying a negative protocol version selects the highest protocol\n"
"version supported. The higher the protocol used, the more recent the\n"
@@ -463,8 +464,8 @@ PyDoc_STRVAR(_pickle_dump__doc__,
"be more efficient.\n"
"\n"
"The optional *protocol* argument tells the pickler to use the given\n"
-"protocol; supported protocols are 0, 1, 2, 3 and 4. The default\n"
-"protocol is 4. It was introduced in Python 3.4, it is incompatible\n"
+"protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default\n"
+"protocol is 4. It was introduced in Python 3.4, and is incompatible\n"
"with previous versions.\n"
"\n"
"Specifying a negative protocol version selects the highest protocol\n"
@@ -550,8 +551,8 @@ PyDoc_STRVAR(_pickle_dumps__doc__,
"Return the pickled representation of the object as a bytes object.\n"
"\n"
"The optional *protocol* argument tells the pickler to use the given\n"
-"protocol; supported protocols are 0, 1, 2, 3 and 4. The default\n"
-"protocol is 4. It was introduced in Python 3.4, it is incompatible\n"
+"protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default\n"
+"protocol is 4. It was introduced in Python 3.4, and is incompatible\n"
"with previous versions.\n"
"\n"
"Specifying a negative protocol version selects the highest protocol\n"
@@ -835,4 +836,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=de075ec48d4ee0e1 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=e2506823be1960c5 input=a9049054013a1b77]*/
From 2d5097663d7f80921fb07cdcd26c9d59cf71f1a2 Mon Sep 17 00:00:00 2001
From: Ammar Askar
Date: Fri, 24 Jan 2020 05:35:01 -0500
Subject: [PATCH 194/380] bpo-39361: Document the removal of
PyTypeObject.tp_print (GH-18125)
---
Doc/whatsnew/3.9.rst | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index ff5cb1486f9..9b5b4fb3785 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -323,6 +323,11 @@ Build and C API Changes
removed in Python 3.3.
(Contributed by Victor Stinner in :issue:`38896`.)
+* The ``tp_print`` slot of :ref:`PyTypeObject ` has been removed.
+ It was used for printing objects to files in Python 2.7 and before. Since
+ Python 3.0, it has been ignored and unused.
+ (Contributed by Jeroen Demeyer in :issue:`36974`.)
+
Deprecated
==========
From 161e7b36b1ea871a1352ccfc1d4f4c1eda76830f Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Fri, 24 Jan 2020 11:53:44 +0100
Subject: [PATCH 195/380] bpo-39413: Implement os.unsetenv() on Windows
(GH-18163)
The os.unsetenv() function is now also available on Windows.
---
Doc/library/os.rst | 3 +
Doc/whatsnew/3.9.rst | 3 +
Lib/test/test_os.py | 43 ++++--
.../2020-01-24-10-10-25.bpo-39413.7XYDM8.rst | 1 +
Modules/clinic/posixmodule.c.h | 42 +++++-
Modules/posixmodule.c | 127 +++++++++++-------
6 files changed, 160 insertions(+), 59 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-24-10-10-25.bpo-39413.7XYDM8.rst
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index 4fec647828e..de3e5603e10 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -645,6 +645,9 @@ process and user.
.. availability:: most flavors of Unix, Windows.
+ .. versionchanged:: 3.9
+ The function is now also available on Windows.
+
.. _os-newstreams:
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 9b5b4fb3785..751562e875e 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -224,6 +224,9 @@ Exposed the Linux-specific :func:`os.pidfd_open` (:issue:`38692`) and
:data:`os.P_PIDFD` (:issue:`38713`) for process management with file
descriptors.
+The :func:`os.unsetenv` function is now also available on Windows.
+(Contributed by Victor Stinner in :issue:`39413`.)
+
poplib
------
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 82c441c2048..dbdc00c2fea 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -953,17 +953,44 @@ class EnvironTests(mapping_tests.BasicTestMappingProtocol):
value_str = value.decode(sys.getfilesystemencoding(), 'surrogateescape')
self.assertEqual(os.environ['bytes'], value_str)
+ @unittest.skipUnless(hasattr(os, 'putenv'), "Test needs os.putenv()")
+ @unittest.skipUnless(hasattr(os, 'unsetenv'), "Test needs os.unsetenv()")
+ def test_putenv_unsetenv(self):
+ name = "PYTHONTESTVAR"
+ value = "testvalue"
+ code = f'import os; print(repr(os.environ.get({name!r})))'
+
+ with support.EnvironmentVarGuard() as env:
+ env.pop(name, None)
+
+ os.putenv(name, value)
+ proc = subprocess.run([sys.executable, '-c', code], check=True,
+ stdout=subprocess.PIPE, text=True)
+ self.assertEqual(proc.stdout.rstrip(), repr(value))
+
+ os.unsetenv(name)
+ proc = subprocess.run([sys.executable, '-c', code], check=True,
+ stdout=subprocess.PIPE, text=True)
+ self.assertEqual(proc.stdout.rstrip(), repr(None))
+
# On OS X < 10.6, unsetenv() doesn't return a value (bpo-13415).
@support.requires_mac_ver(10, 6)
- def test_unset_error(self):
+ @unittest.skipUnless(hasattr(os, 'putenv'), "Test needs os.putenv()")
+ @unittest.skipUnless(hasattr(os, 'unsetenv'), "Test needs os.unsetenv()")
+ def test_putenv_unsetenv_error(self):
+ # Empty variable name is invalid.
+ # "=" and null character are not allowed in a variable name.
+ for name in ('', '=name', 'na=me', 'name=', 'name\0', 'na\0me'):
+ self.assertRaises((OSError, ValueError), os.putenv, name, "value")
+ self.assertRaises((OSError, ValueError), os.unsetenv, name)
+
if sys.platform == "win32":
- # an environment variable is limited to 32,767 characters
- key = 'x' * 50000
- self.assertRaises(ValueError, os.environ.__delitem__, key)
- else:
- # "=" is not allowed in a variable name
- key = 'key='
- self.assertRaises(OSError, os.environ.__delitem__, key)
+ # On Windows, an environment variable string ("name=value" string)
+ # is limited to 32,767 characters
+ longstr = 'x' * 32_768
+ self.assertRaises(ValueError, os.putenv, longstr, "1")
+ self.assertRaises(ValueError, os.putenv, "X", longstr)
+ self.assertRaises(ValueError, os.unsetenv, longstr)
def test_key_type(self):
missing = 'missingkey'
diff --git a/Misc/NEWS.d/next/Library/2020-01-24-10-10-25.bpo-39413.7XYDM8.rst b/Misc/NEWS.d/next/Library/2020-01-24-10-10-25.bpo-39413.7XYDM8.rst
new file mode 100644
index 00000000000..a185ab5efe2
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-24-10-10-25.bpo-39413.7XYDM8.rst
@@ -0,0 +1 @@
+The :func:`os.unsetenv` function is now also available on Windows.
diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h
index 13a69cd5f0e..0f5995ec640 100644
--- a/Modules/clinic/posixmodule.c.h
+++ b/Modules/clinic/posixmodule.c.h
@@ -6125,7 +6125,43 @@ exit:
#endif /* ((defined(HAVE_SETENV) || defined(HAVE_PUTENV)) && !defined(MS_WINDOWS)) */
-#if defined(HAVE_UNSETENV)
+#if defined(MS_WINDOWS)
+
+PyDoc_STRVAR(os_unsetenv__doc__,
+"unsetenv($module, name, /)\n"
+"--\n"
+"\n"
+"Delete an environment variable.");
+
+#define OS_UNSETENV_METHODDEF \
+ {"unsetenv", (PyCFunction)os_unsetenv, METH_O, os_unsetenv__doc__},
+
+static PyObject *
+os_unsetenv_impl(PyObject *module, PyObject *name);
+
+static PyObject *
+os_unsetenv(PyObject *module, PyObject *arg)
+{
+ PyObject *return_value = NULL;
+ PyObject *name;
+
+ if (!PyUnicode_Check(arg)) {
+ _PyArg_BadArgument("unsetenv", "argument", "str", arg);
+ goto exit;
+ }
+ if (PyUnicode_READY(arg) == -1) {
+ goto exit;
+ }
+ name = arg;
+ return_value = os_unsetenv_impl(module, name);
+
+exit:
+ return return_value;
+}
+
+#endif /* defined(MS_WINDOWS) */
+
+#if (defined(HAVE_UNSETENV) && !defined(MS_WINDOWS))
PyDoc_STRVAR(os_unsetenv__doc__,
"unsetenv($module, name, /)\n"
@@ -6157,7 +6193,7 @@ exit:
return return_value;
}
-#endif /* defined(HAVE_UNSETENV) */
+#endif /* (defined(HAVE_UNSETENV) && !defined(MS_WINDOWS)) */
PyDoc_STRVAR(os_strerror__doc__,
"strerror($module, code, /)\n"
@@ -8773,4 +8809,4 @@ exit:
#ifndef OS__REMOVE_DLL_DIRECTORY_METHODDEF
#define OS__REMOVE_DLL_DIRECTORY_METHODDEF
#endif /* !defined(OS__REMOVE_DLL_DIRECTORY_METHODDEF) */
-/*[clinic end generated code: output=6f42d8be634f5942 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=0348cbdff48691e3 input=a9049054013a1b77]*/
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 6a687529df0..3a8e6aacb2a 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -10082,6 +10082,64 @@ posix_putenv_dict_setitem(PyObject *name, PyObject *value)
#endif /* PY_PUTENV_DICT */
+#ifdef MS_WINDOWS
+static PyObject*
+win32_putenv(PyObject *name, PyObject *value)
+{
+ /* Search from index 1 because on Windows starting '=' is allowed for
+ defining hidden environment variables. */
+ if (PyUnicode_GET_LENGTH(name) == 0 ||
+ PyUnicode_FindChar(name, '=', 1, PyUnicode_GET_LENGTH(name), 1) != -1)
+ {
+ PyErr_SetString(PyExc_ValueError, "illegal environment variable name");
+ return NULL;
+ }
+ PyObject *unicode;
+ if (value != NULL) {
+ unicode = PyUnicode_FromFormat("%U=%U", name, value);
+ }
+ else {
+ unicode = PyUnicode_FromFormat("%U=", name);
+ }
+ if (unicode == NULL) {
+ return NULL;
+ }
+
+ Py_ssize_t size;
+ /* PyUnicode_AsWideCharString() rejects embedded null characters */
+ wchar_t *env = PyUnicode_AsWideCharString(unicode, &size);
+ Py_DECREF(unicode);
+
+ if (env == NULL) {
+ return NULL;
+ }
+ if (size > _MAX_ENV) {
+ PyErr_Format(PyExc_ValueError,
+ "the environment variable is longer than %u characters",
+ _MAX_ENV);
+ PyMem_Free(env);
+ return NULL;
+ }
+
+ /* _wputenv() and SetEnvironmentVariableW() update the environment in the
+ Process Environment Block (PEB). _wputenv() also updates CRT 'environ'
+ and '_wenviron' variables, whereas SetEnvironmentVariableW() does not.
+
+ Prefer _wputenv() to be compatible with C libraries using CRT
+ variables and CRT functions using these variables (ex: getenv()). */
+ int err = _wputenv(env);
+ PyMem_Free(env);
+
+ if (err) {
+ posix_error();
+ return NULL;
+ }
+
+ Py_RETURN_NONE;
+}
+#endif
+
+
#ifdef MS_WINDOWS
/*[clinic input]
os.putenv
@@ -10097,47 +10155,7 @@ static PyObject *
os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
/*[clinic end generated code: output=d29a567d6b2327d2 input=ba586581c2e6105f]*/
{
- const wchar_t *env;
- Py_ssize_t size;
-
- /* Search from index 1 because on Windows starting '=' is allowed for
- defining hidden environment variables. */
- if (PyUnicode_GET_LENGTH(name) == 0 ||
- PyUnicode_FindChar(name, '=', 1, PyUnicode_GET_LENGTH(name), 1) != -1)
- {
- PyErr_SetString(PyExc_ValueError, "illegal environment variable name");
- return NULL;
- }
- PyObject *unicode = PyUnicode_FromFormat("%U=%U", name, value);
- if (unicode == NULL) {
- return NULL;
- }
-
- env = PyUnicode_AsUnicodeAndSize(unicode, &size);
- if (env == NULL)
- goto error;
- if (size > _MAX_ENV) {
- PyErr_Format(PyExc_ValueError,
- "the environment variable is longer than %u characters",
- _MAX_ENV);
- goto error;
- }
- if (wcslen(env) != (size_t)size) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto error;
- }
-
- if (_wputenv(env)) {
- posix_error();
- goto error;
- }
- Py_DECREF(unicode);
-
- Py_RETURN_NONE;
-
-error:
- Py_DECREF(unicode);
- return NULL;
+ return win32_putenv(name, value);
}
/* repeat !defined(MS_WINDOWS) to workaround an Argument Clinic issue */
#elif (defined(HAVE_SETENV) || defined(HAVE_PUTENV)) && !defined(MS_WINDOWS)
@@ -10186,7 +10204,23 @@ os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
#endif /* defined(HAVE_SETENV) || defined(HAVE_PUTENV) */
-#ifdef HAVE_UNSETENV
+#ifdef MS_WINDOWS
+/*[clinic input]
+os.unsetenv
+ name: unicode
+ /
+
+Delete an environment variable.
+[clinic start generated code]*/
+
+static PyObject *
+os_unsetenv_impl(PyObject *module, PyObject *name)
+/*[clinic end generated code: output=54c4137ab1834f02 input=4d6a1747cc526d2f]*/
+{
+ return win32_putenv(name, NULL);
+}
+/* repeat !defined(MS_WINDOWS) to workaround an Argument Clinic issue */
+#elif defined(HAVE_UNSETENV) && !defined(MS_WINDOWS)
/*[clinic input]
os.unsetenv
name: FSConverter
@@ -10199,16 +10233,13 @@ static PyObject *
os_unsetenv_impl(PyObject *module, PyObject *name)
/*[clinic end generated code: output=54c4137ab1834f02 input=2bb5288a599c7107]*/
{
-#ifndef HAVE_BROKEN_UNSETENV
- int err;
-#endif
-
#ifdef HAVE_BROKEN_UNSETENV
unsetenv(PyBytes_AS_STRING(name));
#else
- err = unsetenv(PyBytes_AS_STRING(name));
- if (err)
+ int err = unsetenv(PyBytes_AS_STRING(name));
+ if (err) {
return posix_error();
+ }
#endif
#ifdef PY_PUTENV_DICT
From b8d1262e8afe7b907b4a394a191739571092acdb Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Fri, 24 Jan 2020 14:05:48 +0100
Subject: [PATCH 196/380] bpo-39395: putenv() and unsetenv() always available
(GH-18135)
The os.putenv() and os.unsetenv() functions are now always available.
On non-Windows platforms, Python now requires setenv() and unsetenv()
functions to build.
Remove putenv_dict from posixmodule.c: it's not longer needed.
---
Doc/library/os.rst | 43 +++++-----
Doc/whatsnew/3.9.rst | 8 ++
Lib/os.py | 32 ++-----
Lib/test/test_os.py | 4 -
Lib/test/test_posix.py | 1 -
.../2020-01-23-03-05-13.bpo-39395.RoArIZ.rst | 2 +
.../2020-01-23-03-05-41.bpo-39395.4dda42.rst | 2 +
Modules/clinic/posixmodule.c.h | 10 +--
Modules/posixmodule.c | 83 +------------------
configure | 6 +-
configure.ac | 6 +-
pyconfig.h.in | 9 --
12 files changed, 52 insertions(+), 154 deletions(-)
create mode 100644 Misc/NEWS.d/next/Build/2020-01-23-03-05-13.bpo-39395.RoArIZ.rst
create mode 100644 Misc/NEWS.d/next/Library/2020-01-23-03-05-41.bpo-39395.4dda42.rst
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index de3e5603e10..f59423c6f2d 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -111,9 +111,9 @@ process and user.
to the environment made after this time are not reflected in ``os.environ``,
except for changes made by modifying ``os.environ`` directly.
- If the platform supports the :func:`putenv` function, this mapping may be used
- to modify the environment as well as query the environment. :func:`putenv` will
- be called automatically when the mapping is modified.
+ This mapping may be used to modify the environment as well as query the
+ environment. :func:`putenv` will be called automatically when the mapping
+ is modified.
On Unix, keys and values use :func:`sys.getfilesystemencoding` and
``'surrogateescape'`` error handler. Use :data:`environb` if you would like
@@ -130,14 +130,10 @@ process and user.
cause memory leaks. Refer to the system documentation for
:c:func:`putenv`.
- If :func:`putenv` is not provided, a modified copy of this mapping may be
- passed to the appropriate process-creation functions to cause child processes
- to use a modified environment.
-
- If the platform supports the :func:`unsetenv` function, you can delete items in
- this mapping to unset environment variables. :func:`unsetenv` will be called
- automatically when an item is deleted from ``os.environ``, and when
- one of the :meth:`pop` or :meth:`clear` methods is called.
+ You can delete items in this mapping to unset environment variables.
+ :func:`unsetenv` will be called automatically when an item is deleted from
+ ``os.environ``, and when one of the :meth:`pop` or :meth:`clear` methods is
+ called.
.. data:: environb
@@ -439,17 +435,18 @@ process and user.
changes to the environment affect subprocesses started with :func:`os.system`,
:func:`popen` or :func:`fork` and :func:`execv`.
- .. availability:: most flavors of Unix, Windows.
+ Assignments to items in ``os.environ`` are automatically translated into
+ corresponding calls to :func:`putenv`; however, calls to :func:`putenv`
+ don't update ``os.environ``, so it is actually preferable to assign to items
+ of ``os.environ``.
.. note::
On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may
- cause memory leaks. Refer to the system documentation for putenv.
+ cause memory leaks. Refer to the system documentation for :c:func:`putenv`.
- When :func:`putenv` is supported, assignments to items in ``os.environ`` are
- automatically translated into corresponding calls to :func:`putenv`; however,
- calls to :func:`putenv` don't update ``os.environ``, so it is actually
- preferable to assign to items of ``os.environ``.
+ .. versionchanged:: 3.9
+ The function is now always available.
.. function:: setegid(egid)
@@ -638,15 +635,13 @@ process and user.
environment affect subprocesses started with :func:`os.system`, :func:`popen` or
:func:`fork` and :func:`execv`.
- When :func:`unsetenv` is supported, deletion of items in ``os.environ`` is
- automatically translated into a corresponding call to :func:`unsetenv`; however,
- calls to :func:`unsetenv` don't update ``os.environ``, so it is actually
- preferable to delete items of ``os.environ``.
-
- .. availability:: most flavors of Unix, Windows.
+ Deletion of items in ``os.environ`` is automatically translated into a
+ corresponding call to :func:`unsetenv`; however, calls to :func:`unsetenv`
+ don't update ``os.environ``, so it is actually preferable to delete items of
+ ``os.environ``.
.. versionchanged:: 3.9
- The function is now also available on Windows.
+ The function is now always available and is also available on Windows.
.. _os-newstreams:
diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst
index 751562e875e..a4c4266bfc3 100644
--- a/Doc/whatsnew/3.9.rst
+++ b/Doc/whatsnew/3.9.rst
@@ -227,6 +227,10 @@ descriptors.
The :func:`os.unsetenv` function is now also available on Windows.
(Contributed by Victor Stinner in :issue:`39413`.)
+The :func:`os.putenv` and :func:`os.unsetenv` functions are now always
+available.
+(Contributed by Victor Stinner in :issue:`39395`.)
+
poplib
------
@@ -331,6 +335,10 @@ Build and C API Changes
Python 3.0, it has been ignored and unused.
(Contributed by Jeroen Demeyer in :issue:`36974`.)
+* On non-Windows platforms, the :c:func:`setenv` and :c:func:`unsetenv`
+ functions are now required to build Python.
+ (Contributed by Victor Stinner in :issue:`39395`.)
+
Deprecated
==========
diff --git a/Lib/os.py b/Lib/os.py
index ca418edbc57..7ae102617e8 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -654,17 +654,15 @@ def get_exec_path(env=None):
return path_list.split(pathsep)
-# Change environ to automatically call putenv(), unsetenv if they exist.
+# Change environ to automatically call putenv() and unsetenv()
from _collections_abc import MutableMapping
class _Environ(MutableMapping):
- def __init__(self, data, encodekey, decodekey, encodevalue, decodevalue, putenv, unsetenv):
+ def __init__(self, data, encodekey, decodekey, encodevalue, decodevalue):
self.encodekey = encodekey
self.decodekey = decodekey
self.encodevalue = encodevalue
self.decodevalue = decodevalue
- self.putenv = putenv
- self.unsetenv = unsetenv
self._data = data
def __getitem__(self, key):
@@ -678,12 +676,12 @@ class _Environ(MutableMapping):
def __setitem__(self, key, value):
key = self.encodekey(key)
value = self.encodevalue(value)
- self.putenv(key, value)
+ putenv(key, value)
self._data[key] = value
def __delitem__(self, key):
encodedkey = self.encodekey(key)
- self.unsetenv(encodedkey)
+ unsetenv(encodedkey)
try:
del self._data[encodedkey]
except KeyError:
@@ -712,22 +710,6 @@ class _Environ(MutableMapping):
self[key] = value
return self[key]
-try:
- _putenv = putenv
-except NameError:
- _putenv = lambda key, value: None
-else:
- if "putenv" not in __all__:
- __all__.append("putenv")
-
-try:
- _unsetenv = unsetenv
-except NameError:
- _unsetenv = lambda key: _putenv(key, "")
-else:
- if "unsetenv" not in __all__:
- __all__.append("unsetenv")
-
def _createenviron():
if name == 'nt':
# Where Env Var Names Must Be UPPERCASE
@@ -755,8 +737,7 @@ def _createenviron():
data = environ
return _Environ(data,
encodekey, decode,
- encode, decode,
- _putenv, _unsetenv)
+ encode, decode)
# unicode environ
environ = _createenviron()
@@ -781,8 +762,7 @@ if supports_bytes_environ:
# bytes environ
environb = _Environ(environ._data,
_check_bytes, bytes,
- _check_bytes, bytes,
- _putenv, _unsetenv)
+ _check_bytes, bytes)
del _check_bytes
def getenvb(key, default=None):
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index dbdc00c2fea..9e3a1695dfb 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -953,8 +953,6 @@ class EnvironTests(mapping_tests.BasicTestMappingProtocol):
value_str = value.decode(sys.getfilesystemencoding(), 'surrogateescape')
self.assertEqual(os.environ['bytes'], value_str)
- @unittest.skipUnless(hasattr(os, 'putenv'), "Test needs os.putenv()")
- @unittest.skipUnless(hasattr(os, 'unsetenv'), "Test needs os.unsetenv()")
def test_putenv_unsetenv(self):
name = "PYTHONTESTVAR"
value = "testvalue"
@@ -975,8 +973,6 @@ class EnvironTests(mapping_tests.BasicTestMappingProtocol):
# On OS X < 10.6, unsetenv() doesn't return a value (bpo-13415).
@support.requires_mac_ver(10, 6)
- @unittest.skipUnless(hasattr(os, 'putenv'), "Test needs os.putenv()")
- @unittest.skipUnless(hasattr(os, 'unsetenv'), "Test needs os.unsetenv()")
def test_putenv_unsetenv_error(self):
# Empty variable name is invalid.
# "=" and null character are not allowed in a variable name.
diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py
index 4df882b6210..fad26d88be2 100644
--- a/Lib/test/test_posix.py
+++ b/Lib/test/test_posix.py
@@ -969,7 +969,6 @@ class PosixTester(unittest.TestCase):
self.assertEqual(type(k), item_type)
self.assertEqual(type(v), item_type)
- @unittest.skipUnless(hasattr(os, "putenv"), "requires os.putenv()")
def test_putenv(self):
with self.assertRaises(ValueError):
os.putenv('FRUIT\0VEGETABLE', 'cabbage')
diff --git a/Misc/NEWS.d/next/Build/2020-01-23-03-05-13.bpo-39395.RoArIZ.rst b/Misc/NEWS.d/next/Build/2020-01-23-03-05-13.bpo-39395.RoArIZ.rst
new file mode 100644
index 00000000000..aa2146a11d9
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2020-01-23-03-05-13.bpo-39395.RoArIZ.rst
@@ -0,0 +1,2 @@
+On non-Windows platforms, the :c:func:`setenv` and :c:func:`unsetenv` functions
+are now required to build Python.
diff --git a/Misc/NEWS.d/next/Library/2020-01-23-03-05-41.bpo-39395.4dda42.rst b/Misc/NEWS.d/next/Library/2020-01-23-03-05-41.bpo-39395.4dda42.rst
new file mode 100644
index 00000000000..cf713709dcf
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-23-03-05-41.bpo-39395.4dda42.rst
@@ -0,0 +1,2 @@
+The :func:`os.putenv` and :func:`os.unsetenv` functions are now always
+available.
diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h
index 0f5995ec640..48dd7a74b3b 100644
--- a/Modules/clinic/posixmodule.c.h
+++ b/Modules/clinic/posixmodule.c.h
@@ -6082,7 +6082,7 @@ exit:
#endif /* defined(MS_WINDOWS) */
-#if ((defined(HAVE_SETENV) || defined(HAVE_PUTENV)) && !defined(MS_WINDOWS))
+#if !defined(MS_WINDOWS)
PyDoc_STRVAR(os_putenv__doc__,
"putenv($module, name, value, /)\n"
@@ -6123,7 +6123,7 @@ exit:
return return_value;
}
-#endif /* ((defined(HAVE_SETENV) || defined(HAVE_PUTENV)) && !defined(MS_WINDOWS)) */
+#endif /* !defined(MS_WINDOWS) */
#if defined(MS_WINDOWS)
@@ -6161,7 +6161,7 @@ exit:
#endif /* defined(MS_WINDOWS) */
-#if (defined(HAVE_UNSETENV) && !defined(MS_WINDOWS))
+#if !defined(MS_WINDOWS)
PyDoc_STRVAR(os_unsetenv__doc__,
"unsetenv($module, name, /)\n"
@@ -6193,7 +6193,7 @@ exit:
return return_value;
}
-#endif /* (defined(HAVE_UNSETENV) && !defined(MS_WINDOWS)) */
+#endif /* !defined(MS_WINDOWS) */
PyDoc_STRVAR(os_strerror__doc__,
"strerror($module, code, /)\n"
@@ -8809,4 +8809,4 @@ exit:
#ifndef OS__REMOVE_DLL_DIRECTORY_METHODDEF
#define OS__REMOVE_DLL_DIRECTORY_METHODDEF
#endif /* !defined(OS__REMOVE_DLL_DIRECTORY_METHODDEF) */
-/*[clinic end generated code: output=0348cbdff48691e3 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5d99f90cead7c0e1 input=a9049054013a1b77]*/
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 3a8e6aacb2a..b71eddf90b7 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -819,22 +819,8 @@ dir_fd_converter(PyObject *o, void *p)
}
}
-/* Windows _wputenv() and setenv() copy the arguments and so don't require
- the caller to manage the variable memory. Only Unix putenv() requires
- putenv_dict. */
-#if defined(HAVE_PUTENV) && !defined(MS_WINDOWS) && !defined(HAVE_SETENV)
-# define PY_PUTENV_DICT
-#endif
-
typedef struct {
PyObject *billion;
-#ifdef PY_PUTENV_DICT
- /* putenv() requires that the caller manages the environment variable
- memory. Use a Python dictionary for that: name => env, where env is a
- string like "name=value". On Windows, dict keys and values are Unicode
- strings. On Unix, they are bytes strings. */
- PyObject *putenv_dict;
-#endif
PyObject *DirEntryType;
PyObject *ScandirIteratorType;
#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
@@ -2118,9 +2104,6 @@ static int
_posix_clear(PyObject *module)
{
Py_CLEAR(_posixstate(module)->billion);
-#ifdef PY_PUTENV_DICT
- Py_CLEAR(_posixstate(module)->putenv_dict);
-#endif
Py_CLEAR(_posixstate(module)->DirEntryType);
Py_CLEAR(_posixstate(module)->ScandirIteratorType);
#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
@@ -2145,9 +2128,6 @@ static int
_posix_traverse(PyObject *module, visitproc visit, void *arg)
{
Py_VISIT(_posixstate(module)->billion);
-#ifdef PY_PUTENV_DICT
- Py_VISIT(_posixstate(module)->putenv_dict);
-#endif
Py_VISIT(_posixstate(module)->DirEntryType);
Py_VISIT(_posixstate(module)->ScandirIteratorType);
#if defined(HAVE_SCHED_SETPARAM) || defined(HAVE_SCHED_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDULER) || defined(POSIX_SPAWN_SETSCHEDPARAM)
@@ -10065,23 +10045,6 @@ os_posix_fadvise_impl(PyObject *module, int fd, Py_off_t offset,
#endif /* HAVE_POSIX_FADVISE && !POSIX_FADVISE_AIX_BUG */
-#ifdef PY_PUTENV_DICT
-static void
-posix_putenv_dict_setitem(PyObject *name, PyObject *value)
-{
- /* Install the first arg and newstr in putenv_dict;
- * this will cause previous value to be collected. This has to
- * happen after the real putenv() call because the old value
- * was still accessible until then. */
- if (PyDict_SetItem(_posixstate_global->putenv_dict, name, value))
- /* really not much we can do; just leak */
- PyErr_Clear();
- else
- Py_DECREF(value);
-}
-#endif /* PY_PUTENV_DICT */
-
-
#ifdef MS_WINDOWS
static PyObject*
win32_putenv(PyObject *name, PyObject *value)
@@ -10157,8 +10120,7 @@ os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
{
return win32_putenv(name, value);
}
-/* repeat !defined(MS_WINDOWS) to workaround an Argument Clinic issue */
-#elif (defined(HAVE_SETENV) || defined(HAVE_PUTENV)) && !defined(MS_WINDOWS)
+#else
/*[clinic input]
os.putenv
@@ -10181,27 +10143,12 @@ os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)
return NULL;
}
-#ifdef HAVE_SETENV
if (setenv(name_string, value_string, 1)) {
return posix_error();
}
-#else
- PyObject *bytes = PyBytes_FromFormat("%s=%s", name_string, value_string);
- if (bytes == NULL) {
- return NULL;
- }
-
- char *env = PyBytes_AS_STRING(bytes);
- if (putenv(env)) {
- Py_DECREF(bytes);
- return posix_error();
- }
-
- posix_putenv_dict_setitem(name, bytes);
-#endif
Py_RETURN_NONE;
}
-#endif /* defined(HAVE_SETENV) || defined(HAVE_PUTENV) */
+#endif /* !defined(MS_WINDOWS) */
#ifdef MS_WINDOWS
@@ -10219,8 +10166,7 @@ os_unsetenv_impl(PyObject *module, PyObject *name)
{
return win32_putenv(name, NULL);
}
-/* repeat !defined(MS_WINDOWS) to workaround an Argument Clinic issue */
-#elif defined(HAVE_UNSETENV) && !defined(MS_WINDOWS)
+#else
/*[clinic input]
os.unsetenv
name: FSConverter
@@ -10242,24 +10188,9 @@ os_unsetenv_impl(PyObject *module, PyObject *name)
}
#endif
-#ifdef PY_PUTENV_DICT
- /* Remove the key from putenv_dict;
- * this will cause it to be collected. This has to
- * happen after the real unsetenv() call because the
- * old value was still accessible until then.
- */
- if (PyDict_DelItem(_posixstate(module)->putenv_dict, name)) {
- /* really not much we can do; just leak */
- if (!PyErr_ExceptionMatches(PyExc_KeyError)) {
- return NULL;
- }
- PyErr_Clear();
- }
-#endif
-
Py_RETURN_NONE;
}
-#endif /* HAVE_UNSETENV */
+#endif /* !MS_WINDOWS */
/*[clinic input]
@@ -14553,12 +14484,6 @@ INITFUNC(void)
Py_INCREF(PyExc_OSError);
PyModule_AddObject(m, "error", PyExc_OSError);
-#ifdef PY_PUTENV_DICT
- /* Save putenv() parameters as values here, so we can collect them when they
- * get re-set with another call for the same key. */
- _posixstate(m)->putenv_dict = PyDict_New();
-#endif
-
#if defined(HAVE_WAITID) && !defined(__APPLE__)
waitid_result_desc.name = MODNAME ".waitid_result";
PyObject *WaitidResultType = (PyObject *)PyStructSequence_NewType(&waitid_result_desc);
diff --git a/configure b/configure
index e96683622b3..85120e498d1 100755
--- a/configure
+++ b/configure
@@ -11548,9 +11548,9 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
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 putenv pwrite pwritev pwritev2 \
+ 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 setenv seteuid \
+ 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 \
@@ -11558,7 +11558,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
sigaction sigaltstack sigfillset siginterrupt sigpending sigrelse \
sigtimedwait sigwait sigwaitinfo snprintf strftime strlcpy strsignal symlinkat sync \
sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
- truncate uname unlinkat unsetenv utimensat utimes waitid waitpid wait3 wait4 \
+ truncate uname unlinkat utimensat utimes 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`
diff --git a/configure.ac b/configure.ac
index 36c165b2f2e..ab8e1b7d27a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3598,9 +3598,9 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
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 putenv pwrite pwritev pwritev2 \
+ 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 setenv seteuid \
+ 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 \
@@ -3608,7 +3608,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
sigaction sigaltstack sigfillset siginterrupt sigpending sigrelse \
sigtimedwait sigwait sigwaitinfo snprintf strftime strlcpy strsignal symlinkat sync \
sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
- truncate uname unlinkat unsetenv utimensat utimes waitid waitpid wait3 wait4 \
+ truncate uname unlinkat utimensat utimes waitid waitpid wait3 wait4 \
wcscoll wcsftime wcsxfrm wmemcmp writev _getpty rtpSpawn)
# Force lchmod off for Linux. Linux disallows changing the mode of symbolic
diff --git a/pyconfig.h.in b/pyconfig.h.in
index 1918fab8bdb..b5602134d70 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -802,9 +802,6 @@
/* Define to 1 if you have the header file. */
#undef HAVE_PTY_H
-/* Define to 1 if you have the `putenv' function. */
-#undef HAVE_PUTENV
-
/* Define to 1 if you have the `pwrite' function. */
#undef HAVE_PWRITE
@@ -895,9 +892,6 @@
/* Define to 1 if you have the `setegid' function. */
#undef HAVE_SETEGID
-/* Define to 1 if you have the `setenv' function. */
-#undef HAVE_SETENV
-
/* Define to 1 if you have the `seteuid' function. */
#undef HAVE_SETEUID
@@ -1266,9 +1260,6 @@
/* Define to 1 if you have the `unlinkat' function. */
#undef HAVE_UNLINKAT
-/* Define to 1 if you have the `unsetenv' function. */
-#undef HAVE_UNSETENV
-
/* Define if you have a useable wchar_t type defined in wchar.h; useable means
wchar_t must be an unsigned type with at least 16 bits. (see
Include/unicodeobject.h). */
From 66b00a9d3aacf6ed49412f48743e4913104a2bb3 Mon Sep 17 00:00:00 2001
From: Karthikeyan Singaravelan
Date: Fri, 24 Jan 2020 18:44:29 +0530
Subject: [PATCH 197/380] bpo-38473: Handle autospecced functions and methods
used with attach_mock (GH-16784)
---
Lib/unittest/mock.py | 4 +++
Lib/unittest/test/testmock/testmock.py | 29 +++++++++++++++++++
.../2019-10-14-21-14-55.bpo-38473.uXpVld.rst | 2 ++
3 files changed, 35 insertions(+)
create mode 100644 Misc/NEWS.d/next/Library/2019-10-14-21-14-55.bpo-38473.uXpVld.rst
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
index 3fafe594c59..92b596f672c 100644
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -817,6 +817,10 @@ class NonCallableMock(Base):
if child is None or isinstance(child, _SpecState):
break
else:
+ # If an autospecced object is attached using attach_mock the
+ # child would be a function with mock object as attribute from
+ # which signature has to be derived.
+ child = _extract_mock(child)
children = child._mock_children
sig = child._spec_signature
diff --git a/Lib/unittest/test/testmock/testmock.py b/Lib/unittest/test/testmock/testmock.py
index 01bc4794446..1030d12323d 100644
--- a/Lib/unittest/test/testmock/testmock.py
+++ b/Lib/unittest/test/testmock/testmock.py
@@ -1922,6 +1922,35 @@ class MockTest(unittest.TestCase):
self.assertEqual(mock_func.mock._extract_mock_name(), 'mock.child')
+ def test_attach_mock_patch_autospec_signature(self):
+ with mock.patch(f'{__name__}.Something.meth', autospec=True) as mocked:
+ manager = Mock()
+ manager.attach_mock(mocked, 'attach_meth')
+ obj = Something()
+ obj.meth(1, 2, 3, d=4)
+ manager.assert_has_calls([call.attach_meth(mock.ANY, 1, 2, 3, d=4)])
+ obj.meth.assert_has_calls([call(mock.ANY, 1, 2, 3, d=4)])
+ mocked.assert_has_calls([call(mock.ANY, 1, 2, 3, d=4)])
+
+ with mock.patch(f'{__name__}.something', autospec=True) as mocked:
+ manager = Mock()
+ manager.attach_mock(mocked, 'attach_func')
+ something(1)
+ manager.assert_has_calls([call.attach_func(1)])
+ something.assert_has_calls([call(1)])
+ mocked.assert_has_calls([call(1)])
+
+ with mock.patch(f'{__name__}.Something', autospec=True) as mocked:
+ manager = Mock()
+ manager.attach_mock(mocked, 'attach_obj')
+ obj = Something()
+ obj.meth(1, 2, 3, d=4)
+ manager.assert_has_calls([call.attach_obj(),
+ call.attach_obj().meth(1, 2, 3, d=4)])
+ obj.meth.assert_has_calls([call(1, 2, 3, d=4)])
+ mocked.assert_has_calls([call(), call().meth(1, 2, 3, d=4)])
+
+
def test_attribute_deletion(self):
for mock in (Mock(), MagicMock(), NonCallableMagicMock(),
NonCallableMock()):
diff --git a/Misc/NEWS.d/next/Library/2019-10-14-21-14-55.bpo-38473.uXpVld.rst b/Misc/NEWS.d/next/Library/2019-10-14-21-14-55.bpo-38473.uXpVld.rst
new file mode 100644
index 00000000000..de80e89e00e
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-10-14-21-14-55.bpo-38473.uXpVld.rst
@@ -0,0 +1,2 @@
+Use signature from inner mock for autospecced methods attached with
+:func:`unittest.mock.attach_mock`. Patch by Karthikeyan Singaravelan.
From 88704334e5262c6cd395a0809d4ef810f33f3ca5 Mon Sep 17 00:00:00 2001
From: mbarkhau
Date: Fri, 24 Jan 2020 14:51:16 +0000
Subject: [PATCH 198/380] bpo-39390 shutil: fix argument types for ignore
callback (GH-18122)
---
Lib/shutil.py | 2 +-
Lib/test/test_shutil.py | 42 +++++++++++++++++++
.../2020-01-23-21-34-29.bpo-39390.D2tSXk.rst | 2 +
3 files changed, 45 insertions(+), 1 deletion(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-23-21-34-29.bpo-39390.D2tSXk.rst
diff --git a/Lib/shutil.py b/Lib/shutil.py
index 8f609b312d3..9a83a3242ed 100644
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -442,7 +442,7 @@ def ignore_patterns(*patterns):
def _copytree(entries, src, dst, symlinks, ignore, copy_function,
ignore_dangling_symlinks, dirs_exist_ok=False):
if ignore is not None:
- ignored_names = ignore(src, {x.name for x in entries})
+ ignored_names = ignore(os.fspath(src), [x.name for x in entries])
else:
ignored_names = set()
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
index 460b979ba93..076c450e09b 100644
--- a/Lib/test/test_shutil.py
+++ b/Lib/test/test_shutil.py
@@ -579,6 +579,48 @@ class TestCopyTree(BaseTest, unittest.TestCase):
shutil.rmtree(src_dir)
shutil.rmtree(os.path.dirname(dst_dir))
+ def test_copytree_arg_types_of_ignore(self):
+ join = os.path.join
+ exists = os.path.exists
+
+ tmp_dir = self.mkdtemp()
+ src_dir = join(tmp_dir, "source")
+
+ os.mkdir(join(src_dir))
+ os.mkdir(join(src_dir, 'test_dir'))
+ os.mkdir(os.path.join(src_dir, 'test_dir', 'subdir'))
+ write_file((src_dir, 'test_dir', 'subdir', 'test.txt'), '456')
+
+ invokations = []
+
+ def _ignore(src, names):
+ invokations.append(src)
+ self.assertIsInstance(src, str)
+ self.assertIsInstance(names, list)
+ self.assertEqual(len(names), len(set(names)))
+ for name in names:
+ self.assertIsInstance(name, str)
+ return []
+
+ dst_dir = join(self.mkdtemp(), 'destination')
+ shutil.copytree(src_dir, dst_dir, ignore=_ignore)
+ self.assertTrue(exists(join(dst_dir, 'test_dir', 'subdir',
+ 'test.txt')))
+
+ dst_dir = join(self.mkdtemp(), 'destination')
+ shutil.copytree(pathlib.Path(src_dir), dst_dir, ignore=_ignore)
+ self.assertTrue(exists(join(dst_dir, 'test_dir', 'subdir',
+ 'test.txt')))
+
+ dst_dir = join(self.mkdtemp(), 'destination')
+ src_dir_entry = list(os.scandir(tmp_dir))[0]
+ self.assertIsInstance(src_dir_entry, os.DirEntry)
+ shutil.copytree(src_dir_entry, dst_dir, ignore=_ignore)
+ self.assertTrue(exists(join(dst_dir, 'test_dir', 'subdir',
+ 'test.txt')))
+
+ self.assertEqual(len(invokations), 9)
+
def test_copytree_retains_permissions(self):
tmp_dir = self.mkdtemp()
src_dir = os.path.join(tmp_dir, 'source')
diff --git a/Misc/NEWS.d/next/Library/2020-01-23-21-34-29.bpo-39390.D2tSXk.rst b/Misc/NEWS.d/next/Library/2020-01-23-21-34-29.bpo-39390.D2tSXk.rst
new file mode 100644
index 00000000000..ffa961ea4cd
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-23-21-34-29.bpo-39390.D2tSXk.rst
@@ -0,0 +1,2 @@
+Fixed a regression with the `ignore` callback of :func:`shutil.copytree`.
+The argument types are now str and List[str] again.
From 656c45ec9a9dc2e94cec199ebde553a6979e0e05 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Fri, 24 Jan 2020 18:05:24 +0100
Subject: [PATCH 199/380] bpo-38631: Avoid Py_FatalError() in GC collect()
(GH-18164)
collect() should not get an exception, but it does, logging the
exception is enough. Override sys.unraisablehook to decide how to
handle unraisable exceptions.
Py_FatalError() should be avoided whenever possible.
---
Modules/gcmodule.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c
index aacdb3f45a1..99a6c9ed91d 100644
--- a/Modules/gcmodule.c
+++ b/Modules/gcmodule.c
@@ -118,9 +118,6 @@ gc_decref(PyGC_Head *g)
g->_gc_prev -= 1 << _PyGC_PREV_SHIFT;
}
-/* Python string to use if unhandled exception occurs */
-static PyObject *gc_str = NULL;
-
/* set for debugging information */
#define DEBUG_STATS (1<<0) /* print collection statistics */
#define DEBUG_COLLECTABLE (1<<1) /* print collectable objects */
@@ -1310,10 +1307,7 @@ collect(PyThreadState *tstate, int generation,
_PyErr_Clear(tstate);
}
else {
- if (gc_str == NULL)
- gc_str = PyUnicode_FromString("garbage collection");
- PyErr_WriteUnraisable(gc_str);
- Py_FatalError("unexpected exception during garbage collection");
+ _PyErr_WriteUnraisableMsg("in garbage collection", NULL);
}
}
From 9017e0bd5e124ae6d2ed94b9e9cacb2e86270980 Mon Sep 17 00:00:00 2001
From: Serhiy Storchaka
Date: Fri, 24 Jan 2020 19:55:52 +0200
Subject: [PATCH 200/380] bpo-39430: Fix race condition in lazy imports in
tarfile. (GH-18161)
Use `from ... import ...` to ensure module is fully loaded before accessing its attributes.
---
Lib/tarfile.py | 18 ++++++++----------
.../2020-01-24-11-05-21.bpo-39430.I0UQzM.rst | 1 +
2 files changed, 9 insertions(+), 10 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-24-11-05-21.bpo-39430.I0UQzM.rst
diff --git a/Lib/tarfile.py b/Lib/tarfile.py
index d0b748cea17..90a2c95b315 100755
--- a/Lib/tarfile.py
+++ b/Lib/tarfile.py
@@ -1655,13 +1655,12 @@ class TarFile(object):
raise ValueError("mode must be 'r', 'w' or 'x'")
try:
- import gzip
- gzip.GzipFile
- except (ImportError, AttributeError):
+ from gzip import GzipFile
+ except ImportError:
raise CompressionError("gzip module is not available")
try:
- fileobj = gzip.GzipFile(name, mode + "b", compresslevel, fileobj)
+ fileobj = GzipFile(name, mode + "b", compresslevel, fileobj)
except OSError:
if fileobj is not None and mode == 'r':
raise ReadError("not a gzip file")
@@ -1689,12 +1688,11 @@ class TarFile(object):
raise ValueError("mode must be 'r', 'w' or 'x'")
try:
- import bz2
+ from bz2 import BZ2File
except ImportError:
raise CompressionError("bz2 module is not available")
- fileobj = bz2.BZ2File(fileobj or name, mode,
- compresslevel=compresslevel)
+ fileobj = BZ2File(fileobj or name, mode, compresslevel=compresslevel)
try:
t = cls.taropen(name, mode, fileobj, **kwargs)
@@ -1718,15 +1716,15 @@ class TarFile(object):
raise ValueError("mode must be 'r', 'w' or 'x'")
try:
- import lzma
+ from lzma import LZMAFile, LZMAError
except ImportError:
raise CompressionError("lzma module is not available")
- fileobj = lzma.LZMAFile(fileobj or name, mode, preset=preset)
+ fileobj = LZMAFile(fileobj or name, mode, preset=preset)
try:
t = cls.taropen(name, mode, fileobj, **kwargs)
- except (lzma.LZMAError, EOFError):
+ except (LZMAError, EOFError):
fileobj.close()
if mode == 'r':
raise ReadError("not an lzma file")
diff --git a/Misc/NEWS.d/next/Library/2020-01-24-11-05-21.bpo-39430.I0UQzM.rst b/Misc/NEWS.d/next/Library/2020-01-24-11-05-21.bpo-39430.I0UQzM.rst
new file mode 100644
index 00000000000..712fc5d34bb
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-24-11-05-21.bpo-39430.I0UQzM.rst
@@ -0,0 +1 @@
+Fixed race condition in lazy imports in :mod:`tarfile`.
From c33378df3988de26a07df9cb9ba5df4192ed9c4e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Langa?=
Date: Fri, 24 Jan 2020 22:05:07 +0100
Subject: [PATCH 201/380] Python 3.9.0a3
---
Include/patchlevel.h | 4 +-
Lib/pydoc_data/topics.py | 167 +++-
Misc/NEWS.d/3.9.0a3.rst | 906 ++++++++++++++++++
.../2019-12-27-22-18-26.bpo-39144.dwHMlR.rst | 1 -
.../2019-12-30-03-54-24.bpo-39160.aBmj13.rst | 1 -
.../2020-01-23-03-05-13.bpo-39395.RoArIZ.rst | 2 -
.../2019-12-30-10-43-52.bpo-39164.WEV0uu.rst | 1 -
.../2020-01-17-19-25-48.bpo-39372.hGJMY6.rst | 8 -
.../2019-03-11-13-30-40.bpo-32021.dpbtkP.rst | 1 -
.../2019-10-31-14-30-39.bpo-38610.fHdVMS.rst | 2 -
.../2019-12-17-22-32-11.bpo-13601.vNP4LC.rst | 6 -
.../2019-12-29-19-13-54.bpo-38588.pgXnNS.rst | 2 -
.../2019-12-30-10-53-59.bpo-39156.veT-CB.rst | 9 -
.../2019-12-31-18-25-45.bpo-39114.WG9alt.rst | 2 -
.../2020-01-02-22-22-03.bpo-39166.Qt-UeD.rst | 2 -
.../2020-01-03-14-50-14.bpo-39200.Ip2_iI.rst | 2 -
.../2020-01-04-01-14-32.bpo-39200.8Z9DYp.rst | 2 -
.../2020-01-04-17-25-34.bpo-39215.xiqiIz.rst | 2 -
.../2020-01-05-06-55-52.bpo-39216.74jLh9.rst | 2 -
...2020-01-05-13-40-08.bpo-1635741.QRTJVC.rst | 1 -
.../2020-01-06-10-29-16.bpo-39209.QHAONe.rst | 2 -
.../2020-01-09-10-01-18.bpo-39235.RYwjoc.rst | 2 -
.../2020-01-13-14-45-22.bpo-39048.iPsj81.rst | 4 -
.../2020-01-13-15-18-13.bpo-39322.aAs-1T.rst | 2 -
.../2020-01-15-01-39-29.bpo-39336.nJ7W9I.rst | 1 -
.../2020-01-15-15-33-44.bpo-39320.b4hnJW.rst | 15 -
.../2020-01-17-00-00-58.bpo-17005.nTSxsy.rst | 3 -
.../2020-01-20-21-40-57.bpo-39386.ULqD8t.rst | 1 -
.../2020-01-22-15-53-37.bpo-39421.O3nG7u.rst | 2 -
.../2020-01-22-22-28-04.bpo-39427.LiO-Eo.rst | 2 -
.../2019-11-17-11-53-10.bpo-3530.8zFUMc.rst | 2 -
.../2019-12-15-22-04-41.bpo-38918.8JnDTS.rst | 3 -
.../2020-01-18-15-37-56.bpo-39381.wTWe8d.rst | 2 -
.../2018-03-03-12-56-26.bpo-32989.FVhmhH.rst | 2 -
.../2019-12-30-16-44-07.bpo-34118.FaNW0a.rst | 2 -
.../2020-01-22-22-28-06.bpo-39050.zkn0FO.rst | 1 -
.../2019-05-06-22-38-47.bpo-28367.2AKen5.rst | 13 -
.../2019-08-27-03-57-25.bpo-37958.lRORI3.rst | 2 -
.../2019-09-29-08-17-03.bpo-38293.wls5s3.rst | 1 -
.../2019-10-04-09-49-56.bpo-38361.LM4u4T.rst | 1 -
.../2019-10-14-21-14-55.bpo-38473.uXpVld.rst | 2 -
.../2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst | 2 -
.../2019-10-29-12-21-10.bpo-38630.Dv6Xrm.rst | 5 -
.../2019-10-31-19-23-25.bpo-35182.hzeNl9.rst | 3 -
.../2019-11-17-17-32-35.bpo-38615.OVyaNX.rst | 5 -
.../2019-11-22-12-08-52.bpo-38878.EJ0cFf.rst | 2 -
.../2019-11-26-23-21-56.bpo-38914.8l-g-T.rst | 5 -
.../2019-12-10-21-03-34.bpo-39019.i8RpMZ.rst | 2 -
.../2019-12-10-21-11-05.bpo-39019.YIlgZ7.rst | 1 -
.../2019-12-14-14-38-40.bpo-21600.kC4Cgh.rst | 2 -
.../2019-12-15-19-23-23.bpo-39055.FmN3un.rst | 2 -
.../2019-12-15-21-05-16.bpo-39056.nEfUM9.rst | 2 -
.../2019-12-15-21-47-54.bpo-39057.FOxn-w.rst | 2 -
.../2019-12-24-10-43-13.bpo-39129.jVx5rW.rst | 1 -
.../2019-12-29-15-44-38.bpo-39158.cxVoOR.rst | 1 -
.../2019-12-31-19-27-23.bpo-39142.oqU5iD.rst | 5 -
.../2020-01-01-18-44-52.bpo-38871.3EEOLg.rst | 2 -
.../2020-01-02-17-28-03.bpo-39191.ur_scy.rst | 3 -
.../2020-01-02-20-21-03.bpo-39198.nzwGyG.rst | 1 -
.../2020-01-03-18-02-50.bpo-39152.JgPjCC.rst | 2 -
.../2020-01-06-02-14-38.bpo-38907.F1RkCR.rst | 1 -
.../2020-01-07-01-02-44.bpo-39239.r7vecs.rst | 2 -
.../2020-01-08-14-39-19.bpo-35292.ihRT1z.rst | 1 -
.../2020-01-08-23-25-27.bpo-39242.bnL65N.rst | 3 -
.../2020-01-09-10-58-58.bpo-39259.RmDgCC.rst | 3 -
.../2020-01-10-16-52-09.bpo-39288.IB-aQX.rst | 2 -
.../2020-01-10-22-30-48.bpo-38901.OdVIIb.rst | 3 -
.../2020-01-11-00-32-45.bpo-39259._S5VjC.rst | 3 -
.../2020-01-11-01-15-37.bpo-39297.y98Z6Q.rst | 1 -
.../2020-01-12-13-34-42.bpo-39310.YMRdcj.rst | 1 -
.../2020-01-12-16-34-28.bpo-39259.J_yBVq.rst | 3 -
.../2020-01-12-17-19-40.bpo-39259.iax06r.rst | 3 -
.../2020-01-12-18-17-00.bpo-39313.DCTsnm.rst | 2 -
.../2020-01-14-22-16-07.bpo-39329.6OKGBn.rst | 2 -
.../2020-01-16-09-15-40.bpo-39350.ZQx0uY.rst | 2 -
.../2020-01-16-09-27-28.bpo-39351.a-FQdv.rst | 3 -
.../2020-01-16-10-21-48.bpo-39353.ntp7Ql.rst | 4 -
.../2020-01-16-11-24-00.bpo-39357.bCwx-h.rst | 4 -
.../2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst | 2 -
.../2020-01-20-00-56-01.bpo-39389.fEirIS.rst | 2 -
.../2020-01-20-13-00-35.bpo-39377.QSFdaU.rst | 2 -
.../2020-01-20-18-48-00.bpo-29435.qqJ2Ax.rst | 2 -
.../2020-01-21-09-00-42.bpo-39396.6UXQXE.rst | 1 -
.../2020-01-22-21-18-58.bpo-39406.HMpe8x.rst | 3 -
.../2020-01-23-03-05-41.bpo-39395.4dda42.rst | 2 -
.../2020-01-23-21-34-29.bpo-39390.D2tSXk.rst | 2 -
.../2020-01-24-10-10-25.bpo-39413.7XYDM8.rst | 1 -
.../2020-01-24-11-05-21.bpo-39430.I0UQzM.rst | 1 -
README.rst | 2 +-
89 files changed, 1024 insertions(+), 275 deletions(-)
create mode 100644 Misc/NEWS.d/3.9.0a3.rst
delete mode 100644 Misc/NEWS.d/next/Build/2019-12-27-22-18-26.bpo-39144.dwHMlR.rst
delete mode 100644 Misc/NEWS.d/next/Build/2019-12-30-03-54-24.bpo-39160.aBmj13.rst
delete mode 100644 Misc/NEWS.d/next/Build/2020-01-23-03-05-13.bpo-39395.RoArIZ.rst
delete mode 100644 Misc/NEWS.d/next/C API/2019-12-30-10-43-52.bpo-39164.WEV0uu.rst
delete mode 100644 Misc/NEWS.d/next/C API/2020-01-17-19-25-48.bpo-39372.hGJMY6.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-03-11-13-30-40.bpo-32021.dpbtkP.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-10-31-14-30-39.bpo-38610.fHdVMS.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-12-17-22-32-11.bpo-13601.vNP4LC.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-12-29-19-13-54.bpo-38588.pgXnNS.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-12-30-10-53-59.bpo-39156.veT-CB.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-12-31-18-25-45.bpo-39114.WG9alt.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-02-22-22-03.bpo-39166.Qt-UeD.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-03-14-50-14.bpo-39200.Ip2_iI.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-04-01-14-32.bpo-39200.8Z9DYp.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-04-17-25-34.bpo-39215.xiqiIz.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-05-06-55-52.bpo-39216.74jLh9.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-05-13-40-08.bpo-1635741.QRTJVC.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-06-10-29-16.bpo-39209.QHAONe.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-09-10-01-18.bpo-39235.RYwjoc.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-13-14-45-22.bpo-39048.iPsj81.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-13-15-18-13.bpo-39322.aAs-1T.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-15-01-39-29.bpo-39336.nJ7W9I.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-15-15-33-44.bpo-39320.b4hnJW.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-17-00-00-58.bpo-17005.nTSxsy.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-20-21-40-57.bpo-39386.ULqD8t.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-22-15-53-37.bpo-39421.O3nG7u.rst
delete mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-22-22-28-04.bpo-39427.LiO-Eo.rst
delete mode 100644 Misc/NEWS.d/next/Documentation/2019-11-17-11-53-10.bpo-3530.8zFUMc.rst
delete mode 100644 Misc/NEWS.d/next/Documentation/2019-12-15-22-04-41.bpo-38918.8JnDTS.rst
delete mode 100644 Misc/NEWS.d/next/Documentation/2020-01-18-15-37-56.bpo-39381.wTWe8d.rst
delete mode 100644 Misc/NEWS.d/next/IDLE/2018-03-03-12-56-26.bpo-32989.FVhmhH.rst
delete mode 100644 Misc/NEWS.d/next/IDLE/2019-12-30-16-44-07.bpo-34118.FaNW0a.rst
delete mode 100644 Misc/NEWS.d/next/IDLE/2020-01-22-22-28-06.bpo-39050.zkn0FO.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-05-06-22-38-47.bpo-28367.2AKen5.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-08-27-03-57-25.bpo-37958.lRORI3.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-09-29-08-17-03.bpo-38293.wls5s3.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-10-04-09-49-56.bpo-38361.LM4u4T.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-10-14-21-14-55.bpo-38473.uXpVld.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-10-29-12-21-10.bpo-38630.Dv6Xrm.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-10-31-19-23-25.bpo-35182.hzeNl9.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-11-17-17-32-35.bpo-38615.OVyaNX.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-11-22-12-08-52.bpo-38878.EJ0cFf.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-11-26-23-21-56.bpo-38914.8l-g-T.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-12-10-21-03-34.bpo-39019.i8RpMZ.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-12-10-21-11-05.bpo-39019.YIlgZ7.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-12-14-14-38-40.bpo-21600.kC4Cgh.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-12-15-19-23-23.bpo-39055.FmN3un.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-12-15-21-05-16.bpo-39056.nEfUM9.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-12-15-21-47-54.bpo-39057.FOxn-w.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-12-24-10-43-13.bpo-39129.jVx5rW.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-12-29-15-44-38.bpo-39158.cxVoOR.rst
delete mode 100644 Misc/NEWS.d/next/Library/2019-12-31-19-27-23.bpo-39142.oqU5iD.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-01-18-44-52.bpo-38871.3EEOLg.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-02-17-28-03.bpo-39191.ur_scy.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-02-20-21-03.bpo-39198.nzwGyG.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-03-18-02-50.bpo-39152.JgPjCC.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-06-02-14-38.bpo-38907.F1RkCR.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-07-01-02-44.bpo-39239.r7vecs.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-08-14-39-19.bpo-35292.ihRT1z.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-08-23-25-27.bpo-39242.bnL65N.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-09-10-58-58.bpo-39259.RmDgCC.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-10-16-52-09.bpo-39288.IB-aQX.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-10-22-30-48.bpo-38901.OdVIIb.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-11-00-32-45.bpo-39259._S5VjC.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-11-01-15-37.bpo-39297.y98Z6Q.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-12-13-34-42.bpo-39310.YMRdcj.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-12-16-34-28.bpo-39259.J_yBVq.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-12-17-19-40.bpo-39259.iax06r.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-12-18-17-00.bpo-39313.DCTsnm.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-14-22-16-07.bpo-39329.6OKGBn.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-16-09-15-40.bpo-39350.ZQx0uY.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-16-09-27-28.bpo-39351.a-FQdv.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-16-10-21-48.bpo-39353.ntp7Ql.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-16-11-24-00.bpo-39357.bCwx-h.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-20-00-56-01.bpo-39389.fEirIS.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-20-13-00-35.bpo-39377.QSFdaU.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-20-18-48-00.bpo-29435.qqJ2Ax.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-21-09-00-42.bpo-39396.6UXQXE.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-22-21-18-58.bpo-39406.HMpe8x.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-23-03-05-41.bpo-39395.4dda42.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-23-21-34-29.bpo-39390.D2tSXk.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-24-10-10-25.bpo-39413.7XYDM8.rst
delete mode 100644 Misc/NEWS.d/next/Library/2020-01-24-11-05-21.bpo-39430.I0UQzM.rst
diff --git a/Include/patchlevel.h b/Include/patchlevel.h
index e6b33dad38e..d0720f7d8c6 100644
--- a/Include/patchlevel.h
+++ b/Include/patchlevel.h
@@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 9
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
-#define PY_RELEASE_SERIAL 2
+#define PY_RELEASE_SERIAL 3
/* Version as a string */
-#define PY_VERSION "3.9.0a2+"
+#define PY_VERSION "3.9.0a3"
/*--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 d9535f70be8..fd914465872 100644
--- a/Lib/pydoc_data/topics.py
+++ b/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Wed Dec 18 22:05:39 2019
+# Autogenerated by Sphinx on Fri Jan 24 22:03:37 2020
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@@ -470,24 +470,25 @@ topics = {'assert': 'The "assert" statement\n'
'The following code:\n'
'\n'
' async for TARGET in ITER:\n'
- ' BLOCK\n'
+ ' SUITE\n'
' else:\n'
- ' BLOCK2\n'
+ ' SUITE2\n'
'\n'
'Is semantically equivalent to:\n'
'\n'
' iter = (ITER)\n'
' iter = type(iter).__aiter__(iter)\n'
' running = True\n'
+ '\n'
' while running:\n'
' try:\n'
' TARGET = await type(iter).__anext__(iter)\n'
' except StopAsyncIteration:\n'
' running = False\n'
' else:\n'
- ' BLOCK\n'
+ ' SUITE\n'
' else:\n'
- ' BLOCK2\n'
+ ' SUITE2\n'
'\n'
'See also "__aiter__()" and "__anext__()" for details.\n'
'\n'
@@ -507,23 +508,27 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following code:\n'
'\n'
- ' async with EXPR as VAR:\n'
- ' BLOCK\n'
+ ' async with EXPRESSION as TARGET:\n'
+ ' SUITE\n'
'\n'
- 'Is semantically equivalent to:\n'
+ 'is semantically equivalent to:\n'
'\n'
- ' mgr = (EXPR)\n'
- ' aexit = type(mgr).__aexit__\n'
- ' aenter = type(mgr).__aenter__(mgr)\n'
+ ' manager = (EXPRESSION)\n'
+ ' aenter = type(manager).__aenter__\n'
+ ' aexit = type(manager).__aexit__\n'
+ ' value = await aenter(manager)\n'
+ ' hit_except = False\n'
'\n'
- ' VAR = await aenter\n'
' try:\n'
- ' BLOCK\n'
+ ' TARGET = value\n'
+ ' SUITE\n'
' except:\n'
- ' if not await aexit(mgr, *sys.exc_info()):\n'
+ ' hit_except = True\n'
+ ' if not await aexit(manager, *sys.exc_info()):\n'
' raise\n'
- ' else:\n'
- ' await aexit(mgr, None, None, None)\n'
+ ' finally:\n'
+ ' if not hit_except:\n'
+ ' await aexit(manager, None, None, None)\n'
'\n'
'See also "__aenter__()" and "__aexit__()" for details.\n'
'\n'
@@ -2519,11 +2524,13 @@ topics = {'assert': 'The "assert" statement\n'
'"with_item")\n'
' is evaluated to obtain a context manager.\n'
'\n'
- '2. The context manager’s "__exit__()" is loaded for later use.\n'
+ '2. The context manager’s "__enter__()" is loaded for later use.\n'
'\n'
- '3. The context manager’s "__enter__()" method is invoked.\n'
+ '3. The context manager’s "__exit__()" is loaded for later use.\n'
'\n'
- '4. If a target was included in the "with" statement, the return\n'
+ '4. The context manager’s "__enter__()" method is invoked.\n'
+ '\n'
+ '5. If a target was included in the "with" statement, the return\n'
' value from "__enter__()" is assigned to it.\n'
'\n'
' Note: The "with" statement guarantees that if the '
@@ -2536,9 +2543,9 @@ topics = {'assert': 'The "assert" statement\n'
'occurring\n'
' within the suite would be. See step 6 below.\n'
'\n'
- '5. The suite is executed.\n'
+ '6. The suite is executed.\n'
'\n'
- '6. The context manager’s "__exit__()" method is invoked. If an\n'
+ '7. The context manager’s "__exit__()" method is invoked. If an\n'
' exception caused the suite to be exited, its type, value, '
'and\n'
' traceback are passed as arguments to "__exit__()". Otherwise, '
@@ -2560,18 +2567,42 @@ topics = {'assert': 'The "assert" statement\n'
'proceeds\n'
' at the normal location for the kind of exit that was taken.\n'
'\n'
+ 'The following code:\n'
+ '\n'
+ ' with EXPRESSION as TARGET:\n'
+ ' SUITE\n'
+ '\n'
+ 'is semantically equivalent to:\n'
+ '\n'
+ ' manager = (EXPRESSION)\n'
+ ' enter = type(manager).__enter__\n'
+ ' exit = type(manager).__exit__\n'
+ ' value = enter(manager)\n'
+ ' hit_except = False\n'
+ '\n'
+ ' try:\n'
+ ' TARGET = value\n'
+ ' SUITE\n'
+ ' except:\n'
+ ' hit_except = True\n'
+ ' if not exit(manager, *sys.exc_info()):\n'
+ ' raise\n'
+ ' finally:\n'
+ ' if not hit_except:\n'
+ ' exit(manager, None, None, None)\n'
+ '\n'
'With more than one item, the context managers are processed as '
'if\n'
'multiple "with" statements were nested:\n'
'\n'
' with A() as a, B() as b:\n'
- ' suite\n'
+ ' SUITE\n'
'\n'
- 'is equivalent to\n'
+ 'is semantically equivalent to:\n'
'\n'
' with A() as a:\n'
' with B() as b:\n'
- ' suite\n'
+ ' SUITE\n'
'\n'
'Changed in version 3.1: Support for multiple context '
'expressions.\n'
@@ -2935,24 +2966,25 @@ topics = {'assert': 'The "assert" statement\n'
'The following code:\n'
'\n'
' async for TARGET in ITER:\n'
- ' BLOCK\n'
+ ' SUITE\n'
' else:\n'
- ' BLOCK2\n'
+ ' SUITE2\n'
'\n'
'Is semantically equivalent to:\n'
'\n'
' iter = (ITER)\n'
' iter = type(iter).__aiter__(iter)\n'
' running = True\n'
+ '\n'
' while running:\n'
' try:\n'
' TARGET = await type(iter).__anext__(iter)\n'
' except StopAsyncIteration:\n'
' running = False\n'
' else:\n'
- ' BLOCK\n'
+ ' SUITE\n'
' else:\n'
- ' BLOCK2\n'
+ ' SUITE2\n'
'\n'
'See also "__aiter__()" and "__anext__()" for details.\n'
'\n'
@@ -2972,23 +3004,27 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following code:\n'
'\n'
- ' async with EXPR as VAR:\n'
- ' BLOCK\n'
+ ' async with EXPRESSION as TARGET:\n'
+ ' SUITE\n'
'\n'
- 'Is semantically equivalent to:\n'
+ 'is semantically equivalent to:\n'
'\n'
- ' mgr = (EXPR)\n'
- ' aexit = type(mgr).__aexit__\n'
- ' aenter = type(mgr).__aenter__(mgr)\n'
+ ' manager = (EXPRESSION)\n'
+ ' aenter = type(manager).__aenter__\n'
+ ' aexit = type(manager).__aexit__\n'
+ ' value = await aenter(manager)\n'
+ ' hit_except = False\n'
'\n'
- ' VAR = await aenter\n'
' try:\n'
- ' BLOCK\n'
+ ' TARGET = value\n'
+ ' SUITE\n'
' except:\n'
- ' if not await aexit(mgr, *sys.exc_info()):\n'
+ ' hit_except = True\n'
+ ' if not await aexit(manager, *sys.exc_info()):\n'
' raise\n'
- ' else:\n'
- ' await aexit(mgr, None, None, None)\n'
+ ' finally:\n'
+ ' if not hit_except:\n'
+ ' await aexit(manager, None, None, None)\n'
'\n'
'See also "__aenter__()" and "__aexit__()" for details.\n'
'\n'
@@ -6808,7 +6844,7 @@ topics = {'assert': 'The "assert" statement\n'
'object.__rfloordiv__(self, other)\n'
'object.__rmod__(self, other)\n'
'object.__rdivmod__(self, other)\n'
- 'object.__rpow__(self, other)\n'
+ 'object.__rpow__(self, other[, modulo])\n'
'object.__rlshift__(self, other)\n'
'object.__rrshift__(self, other)\n'
'object.__rand__(self, other)\n'
@@ -9483,7 +9519,7 @@ topics = {'assert': 'The "assert" statement\n'
'object.__rfloordiv__(self, other)\n'
'object.__rmod__(self, other)\n'
'object.__rdivmod__(self, other)\n'
- 'object.__rpow__(self, other)\n'
+ 'object.__rpow__(self, other[, modulo])\n'
'object.__rlshift__(self, other)\n'
'object.__rrshift__(self, other)\n'
'object.__rand__(self, other)\n'
@@ -9874,9 +9910,8 @@ topics = {'assert': 'The "assert" statement\n'
'best\n'
' performances, but only used at the first encoding '
'error. Enable the\n'
- ' development mode ("-X" "dev" option), or use a debug '
- 'build, to\n'
- ' check *errors*.\n'
+ ' Python Development Mode, or use a debug build to check '
+ '*errors*.\n'
'\n'
' Changed in version 3.1: Support for keyword arguments '
'added.\n'
@@ -12401,6 +12436,8 @@ topics = {'assert': 'The "assert" statement\n'
'dictionary. This\n'
' is a shortcut for "reversed(d.keys())".\n'
'\n'
+ ' New in version 3.8.\n'
+ '\n'
' setdefault(key[, default])\n'
'\n'
' If *key* is in the dictionary, return its value. If '
@@ -13606,11 +13643,13 @@ topics = {'assert': 'The "assert" statement\n'
'1. The context expression (the expression given in the "with_item")\n'
' is evaluated to obtain a context manager.\n'
'\n'
- '2. The context manager’s "__exit__()" is loaded for later use.\n'
+ '2. The context manager’s "__enter__()" is loaded for later use.\n'
'\n'
- '3. The context manager’s "__enter__()" method is invoked.\n'
+ '3. The context manager’s "__exit__()" is loaded for later use.\n'
'\n'
- '4. If a target was included in the "with" statement, the return\n'
+ '4. The context manager’s "__enter__()" method is invoked.\n'
+ '\n'
+ '5. If a target was included in the "with" statement, the return\n'
' value from "__enter__()" is assigned to it.\n'
'\n'
' Note: The "with" statement guarantees that if the "__enter__()"\n'
@@ -13620,9 +13659,9 @@ topics = {'assert': 'The "assert" statement\n'
' target list, it will be treated the same as an error occurring\n'
' within the suite would be. See step 6 below.\n'
'\n'
- '5. The suite is executed.\n'
+ '6. The suite is executed.\n'
'\n'
- '6. The context manager’s "__exit__()" method is invoked. If an\n'
+ '7. The context manager’s "__exit__()" method is invoked. If an\n'
' exception caused the suite to be exited, its type, value, and\n'
' traceback are passed as arguments to "__exit__()". Otherwise, '
'three\n'
@@ -13642,17 +13681,41 @@ topics = {'assert': 'The "assert" statement\n'
'proceeds\n'
' at the normal location for the kind of exit that was taken.\n'
'\n'
+ 'The following code:\n'
+ '\n'
+ ' with EXPRESSION as TARGET:\n'
+ ' SUITE\n'
+ '\n'
+ 'is semantically equivalent to:\n'
+ '\n'
+ ' manager = (EXPRESSION)\n'
+ ' enter = type(manager).__enter__\n'
+ ' exit = type(manager).__exit__\n'
+ ' value = enter(manager)\n'
+ ' hit_except = False\n'
+ '\n'
+ ' try:\n'
+ ' TARGET = value\n'
+ ' SUITE\n'
+ ' except:\n'
+ ' hit_except = True\n'
+ ' if not exit(manager, *sys.exc_info()):\n'
+ ' raise\n'
+ ' finally:\n'
+ ' if not hit_except:\n'
+ ' exit(manager, None, None, None)\n'
+ '\n'
'With more than one item, the context managers are processed as if\n'
'multiple "with" statements were nested:\n'
'\n'
' with A() as a, B() as b:\n'
- ' suite\n'
+ ' SUITE\n'
'\n'
- 'is equivalent to\n'
+ 'is semantically equivalent to:\n'
'\n'
' with A() as a:\n'
' with B() as b:\n'
- ' suite\n'
+ ' SUITE\n'
'\n'
'Changed in version 3.1: Support for multiple context expressions.\n'
'\n'
diff --git a/Misc/NEWS.d/3.9.0a3.rst b/Misc/NEWS.d/3.9.0a3.rst
new file mode 100644
index 00000000000..6c71d7e839d
--- /dev/null
+++ b/Misc/NEWS.d/3.9.0a3.rst
@@ -0,0 +1,906 @@
+.. bpo: 39427
+.. date: 2020-01-22-22-28-04
+.. nonce: LiO-Eo
+.. release date: 2020-01-24
+.. section: Core and Builtins
+
+Document all possibilities for the ``-X`` options in the command line help
+section. Patch by Pablo Galindo.
+
+..
+
+.. bpo: 39421
+.. date: 2020-01-22-15-53-37
+.. nonce: O3nG7u
+.. section: Core and Builtins
+
+Fix possible crashes when operating with the functions in the :mod:`heapq`
+module and custom comparison operators.
+
+..
+
+.. bpo: 39386
+.. date: 2020-01-20-21-40-57
+.. nonce: ULqD8t
+.. section: Core and Builtins
+
+Prevent double awaiting of async iterator.
+
+..
+
+.. bpo: 17005
+.. date: 2020-01-17-00-00-58
+.. nonce: nTSxsy
+.. section: Core and Builtins
+
+Add :class:`functools.TopologicalSorter` to the :mod:`functools` module to
+offers functionality to perform topological sorting of graphs. Patch by
+Pablo Galindo, Tim Peters and Larry Hastings.
+
+..
+
+.. bpo: 39320
+.. date: 2020-01-15-15-33-44
+.. nonce: b4hnJW
+.. section: Core and Builtins
+
+Replace four complex bytecodes for building sequences with three simpler
+ones.
+
+The following four bytecodes have been removed:
+
+* BUILD_LIST_UNPACK
+* BUILD_TUPLE_UNPACK
+* BUILD_SET_UNPACK
+* BUILD_TUPLE_UNPACK_WITH_CALL
+
+The following three bytecodes have been added:
+
+* LIST_TO_TUPLE
+* LIST_EXTEND
+* SET_UPDATE
+
+..
+
+.. bpo: 39336
+.. date: 2020-01-15-01-39-29
+.. nonce: nJ7W9I
+.. section: Core and Builtins
+
+Import loaders which publish immutable module objects can now publish
+immutable packages in addition to individual modules.
+
+..
+
+.. bpo: 39322
+.. date: 2020-01-13-15-18-13
+.. nonce: aAs-1T
+.. section: Core and Builtins
+
+Added a new function :func:`gc.is_finalized` to check if an object has been
+finalized by the garbage collector. Patch by Pablo Galindo.
+
+..
+
+.. bpo: 39048
+.. date: 2020-01-13-14-45-22
+.. nonce: iPsj81
+.. section: Core and Builtins
+
+Improve the displayed error message when incorrect types are passed to
+``async with`` statements by looking up the :meth:`__aenter__` special
+method before the :meth:`__aexit__` special method when entering an
+asynchronous context manager. Patch by Géry Ogam.
+
+..
+
+.. bpo: 39235
+.. date: 2020-01-09-10-01-18
+.. nonce: RYwjoc
+.. section: Core and Builtins
+
+Fix AST end location for lone generator expression in function call, e.g.
+f(i for i in a).
+
+..
+
+.. bpo: 39209
+.. date: 2020-01-06-10-29-16
+.. nonce: QHAONe
+.. section: Core and Builtins
+
+Correctly handle multi-line tokens in interactive mode. Patch by Pablo
+Galindo.
+
+..
+
+.. bpo: 1635741
+.. date: 2020-01-05-13-40-08
+.. nonce: QRTJVC
+.. section: Core and Builtins
+
+Port _json extension module to multiphase initialization (:pep:`489`).
+
+..
+
+.. bpo: 39216
+.. date: 2020-01-05-06-55-52
+.. nonce: 74jLh9
+.. section: Core and Builtins
+
+Fix constant folding optimization for positional only arguments - by Anthony
+Sottile.
+
+..
+
+.. bpo: 39215
+.. date: 2020-01-04-17-25-34
+.. nonce: xiqiIz
+.. section: Core and Builtins
+
+Fix ``SystemError`` when nested function has annotation on positional-only
+argument - by Anthony Sottile.
+
+..
+
+.. bpo: 39200
+.. date: 2020-01-04-01-14-32
+.. nonce: 8Z9DYp
+.. section: Core and Builtins
+
+Correct the error message when calling the :func:`min` or :func:`max` with
+no arguments. Patch by Dong-hee Na.
+
+..
+
+.. bpo: 39200
+.. date: 2020-01-03-14-50-14
+.. nonce: Ip2_iI
+.. section: Core and Builtins
+
+Correct the error message when trying to construct :class:`range` objects
+with no arguments. Patch by Pablo Galindo.
+
+..
+
+.. bpo: 39166
+.. date: 2020-01-02-22-22-03
+.. nonce: Qt-UeD
+.. section: Core and Builtins
+
+Fix incorrect line execution reporting in trace functions when tracing the
+last iteration of asynchronous for loops. Patch by Pablo Galindo.
+
+..
+
+.. bpo: 39114
+.. date: 2019-12-31-18-25-45
+.. nonce: WG9alt
+.. section: Core and Builtins
+
+Fix incorrent line execution reporting in trace functions when tracing
+exception handlers with name binding. Patch by Pablo Galindo.
+
+..
+
+.. bpo: 39156
+.. date: 2019-12-30-10-53-59
+.. nonce: veT-CB
+.. section: Core and Builtins
+
+Split the COMPARE_OP bytecode instruction into four distinct instructions.
+
+* COMPARE_OP for rich comparisons
+* IS_OP for 'is' and 'is not' tests
+* CONTAINS_OP for 'in' and 'is not' tests
+* JUMP_IF_NOT_EXC_MATCH for checking exceptions in 'try-except' statements.
+
+This improves the clarity of the interpreter and should provide a modest
+speedup.
+
+..
+
+.. bpo: 38588
+.. date: 2019-12-29-19-13-54
+.. nonce: pgXnNS
+.. section: Core and Builtins
+
+Fix possible crashes in dict and list when calling
+:c:func:`PyObject_RichCompareBool`.
+
+..
+
+.. bpo: 13601
+.. date: 2019-12-17-22-32-11
+.. nonce: vNP4LC
+.. section: Core and Builtins
+
+By default, ``sys.stderr`` is line-buffered now, even if ``stderr`` is
+redirected to a file. You can still make ``sys.stderr`` unbuffered by
+passing the :option:`-u` command-line option or setting the
+:envvar:`PYTHONUNBUFFERED` environment variable.
+
+(Contributed by Jendrik Seipp in bpo-13601.)
+
+..
+
+.. bpo: 38610
+.. date: 2019-10-31-14-30-39
+.. nonce: fHdVMS
+.. section: Core and Builtins
+
+Fix possible crashes in several list methods by holding strong references to
+list elements when calling :c:func:`PyObject_RichCompareBool`.
+
+..
+
+.. bpo: 32021
+.. date: 2019-03-11-13-30-40
+.. nonce: dpbtkP
+.. section: Core and Builtins
+
+Include brotli .br encoding in mimetypes encodings_map
+
+..
+
+.. bpo: 39430
+.. date: 2020-01-24-11-05-21
+.. nonce: I0UQzM
+.. section: Library
+
+Fixed race condition in lazy imports in :mod:`tarfile`.
+
+..
+
+.. bpo: 39413
+.. date: 2020-01-24-10-10-25
+.. nonce: 7XYDM8
+.. section: Library
+
+The :func:`os.unsetenv` function is now also available on Windows.
+
+..
+
+.. bpo: 39390
+.. date: 2020-01-23-21-34-29
+.. nonce: D2tSXk
+.. section: Library
+
+Fixed a regression with the `ignore` callback of :func:`shutil.copytree`.
+The argument types are now str and List[str] again.
+
+..
+
+.. bpo: 39395
+.. date: 2020-01-23-03-05-41
+.. nonce: 4dda42
+.. section: Library
+
+The :func:`os.putenv` and :func:`os.unsetenv` functions are now always
+available.
+
+..
+
+.. bpo: 39406
+.. date: 2020-01-22-21-18-58
+.. nonce: HMpe8x
+.. section: Library
+
+If ``setenv()`` C function is available, :func:`os.putenv` is now
+implemented with ``setenv()`` instead of ``putenv()``, so Python doesn't
+have to handle the environment variable memory.
+
+..
+
+.. bpo: 39396
+.. date: 2020-01-21-09-00-42
+.. nonce: 6UXQXE
+.. section: Library
+
+Fix ``math.nextafter(-0.0, +0.0)`` on AIX 7.1.
+
+..
+
+.. bpo: 29435
+.. date: 2020-01-20-18-48-00
+.. nonce: qqJ2Ax
+.. section: Library
+
+Allow :func:`tarfile.is_tarfile` to be used with file and file-like objects,
+like :func:`zipfile.is_zipfile`. Patch by William Woodruff.
+
+..
+
+.. bpo: 39377
+.. date: 2020-01-20-13-00-35
+.. nonce: QSFdaU
+.. section: Library
+
+Removed ``encoding`` option from :func:`json.loads`. It has been deprecated
+since Python 3.1.
+
+..
+
+.. bpo: 39389
+.. date: 2020-01-20-00-56-01
+.. nonce: fEirIS
+.. section: Library
+
+Write accurate compression level metadata in :mod:`gzip` archives, rather
+than always signaling maximum compression.
+
+..
+
+.. bpo: 39366
+.. date: 2020-01-17-18-14-51
+.. nonce: Cv3NQS
+.. section: Library
+
+The previously deprecated ``xpath()`` and ``xgtitle()`` methods of
+:class:`nntplib.NNTP` have been removed.
+
+..
+
+.. bpo: 39357
+.. date: 2020-01-16-11-24-00
+.. nonce: bCwx-h
+.. section: Library
+
+Remove the *buffering* parameter of :class:`bz2.BZ2File`. Since Python 3.0,
+it was ignored and using it was emitting :exc:`DeprecationWarning`. Pass an
+open file object, to control how the file is opened. The *compresslevel*
+parameter becomes keyword-only.
+
+..
+
+.. bpo: 39353
+.. date: 2020-01-16-10-21-48
+.. nonce: ntp7Ql
+.. section: Library
+
+Deprecate binhex4 and hexbin4 standards. Deprecate the :mod:`binhex` module
+and the following :mod:`binascii` functions: :func:`~binascii.b2a_hqx`,
+:func:`~binascii.a2b_hqx`, :func:`~binascii.rlecode_hqx`,
+:func:`~binascii.rledecode_hqx`, :func:`~binascii.crc_hqx`.
+
+..
+
+.. bpo: 39351
+.. date: 2020-01-16-09-27-28
+.. nonce: a-FQdv
+.. section: Library
+
+Remove ``base64.encodestring()`` and ``base64.decodestring()``, aliases
+deprecated since Python 3.1: use :func:`base64.encodebytes` and
+:func:`base64.decodebytes` instead.
+
+..
+
+.. bpo: 39350
+.. date: 2020-01-16-09-15-40
+.. nonce: ZQx0uY
+.. section: Library
+
+Remove ``fractions.gcd()`` function, deprecated since Python 3.5
+(:issue:`22486`): use :func:`math.gcd` instead.
+
+..
+
+.. bpo: 39329
+.. date: 2020-01-14-22-16-07
+.. nonce: 6OKGBn
+.. section: Library
+
+:class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter.
+Patch by Dong-hee Na.
+
+..
+
+.. bpo: 39313
+.. date: 2020-01-12-18-17-00
+.. nonce: DCTsnm
+.. section: Library
+
+Add a new ``exec_function`` option (*--exec-function* in the CLI) to
+``RefactoringTool`` for making ``exec`` a function. Patch by Batuhan
+Taskaya.
+
+..
+
+.. bpo: 39259
+.. date: 2020-01-12-17-19-40
+.. nonce: iax06r
+.. section: Library
+
+:class:`~ftplib.FTP_TLS` and :class:`~ftplib.FTP_TLS` now raise a
+:class:`ValueError` if the given timeout for their constructor is zero to
+prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
+
+..
+
+.. bpo: 39259
+.. date: 2020-01-12-16-34-28
+.. nonce: J_yBVq
+.. section: Library
+
+:class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a
+:class:`ValueError` if the given timeout for their constructor is zero to
+prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
+
+..
+
+.. bpo: 39310
+.. date: 2020-01-12-13-34-42
+.. nonce: YMRdcj
+.. section: Library
+
+Add :func:`math.ulp`: return the value of the least significant bit of a
+float.
+
+..
+
+.. bpo: 39297
+.. date: 2020-01-11-01-15-37
+.. nonce: y98Z6Q
+.. section: Library
+
+Improved performance of importlib.metadata distribution discovery and
+resilients to inaccessible sys.path entries (importlib_metadata v1.4.0).
+
+..
+
+.. bpo: 39259
+.. date: 2020-01-11-00-32-45
+.. nonce: _S5VjC
+.. section: Library
+
+:class:`~nntplib.NNTP` and :class:`~nntplib.NNTP_SSL` now raise a
+:class:`ValueError` if the given timeout for their constructor is zero to
+prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
+
+..
+
+.. bpo: 38901
+.. date: 2020-01-10-22-30-48
+.. nonce: OdVIIb
+.. section: Library
+
+When you specify prompt='.' or equivalently python -m venv --prompt . ...
+the basename of the current directory is used to set the created venv's
+prompt when it's activated.
+
+..
+
+.. bpo: 39288
+.. date: 2020-01-10-16-52-09
+.. nonce: IB-aQX
+.. section: Library
+
+Add :func:`math.nextafter`: return the next floating-point value after *x*
+towards *y*.
+
+..
+
+.. bpo: 39259
+.. date: 2020-01-09-10-58-58
+.. nonce: RmDgCC
+.. section: Library
+
+:class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a
+:class:`ValueError` if the given timeout for their constructor is zero to
+prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
+
+..
+
+.. bpo: 39242
+.. date: 2020-01-08-23-25-27
+.. nonce: bnL65N
+.. section: Library
+
+Updated the Gmane domain from news.gmane.org to news.gmane.io which is used
+for examples of :class:`~nntplib.NNTP` news reader server and nntplib tests.
+
+..
+
+.. bpo: 35292
+.. date: 2020-01-08-14-39-19
+.. nonce: ihRT1z
+.. section: Library
+
+Proxy the `SimpleHTTPRequestHandler.guess_type` to `mimetypes.guess_type` so
+the `mimetypes.init` is called lazily to avoid unnecessary costs when
+:mod:`http.server` module is imported.
+
+..
+
+.. bpo: 39239
+.. date: 2020-01-07-01-02-44
+.. nonce: r7vecs
+.. section: Library
+
+The :meth:`select.epoll.unregister` method no longer ignores the
+:data:`~errno.EBADF` error.
+
+..
+
+.. bpo: 38907
+.. date: 2020-01-06-02-14-38
+.. nonce: F1RkCR
+.. section: Library
+
+In http.server script, restore binding to IPv4 on Windows.
+
+..
+
+.. bpo: 39152
+.. date: 2020-01-03-18-02-50
+.. nonce: JgPjCC
+.. section: Library
+
+Fix ttk.Scale.configure([name]) to return configuration tuple for name or
+all options. Giovanni Lombardo contributed part of the patch.
+
+..
+
+.. bpo: 39198
+.. date: 2020-01-02-20-21-03
+.. nonce: nzwGyG
+.. section: Library
+
+If an exception were to be thrown in `Logger.isEnabledFor` (say, by asyncio
+timeouts or stopit) , the `logging` global lock may not be released
+appropriately, resulting in deadlock. This change wraps that block of code
+with `try...finally` to ensure the lock is released.
+
+..
+
+.. bpo: 39191
+.. date: 2020-01-02-17-28-03
+.. nonce: ur_scy
+.. section: Library
+
+Perform a check for running loop before starting a new task in
+``loop.run_until_complete()`` to fail fast; it prevents the side effect of
+new task spawning before exception raising.
+
+..
+
+.. bpo: 38871
+.. date: 2020-01-01-18-44-52
+.. nonce: 3EEOLg
+.. section: Library
+
+Correctly parenthesize filter-based statements that contain lambda
+expressions in mod:`lib2to3`. Patch by Dong-hee Na.
+
+..
+
+.. bpo: 39142
+.. date: 2019-12-31-19-27-23
+.. nonce: oqU5iD
+.. section: Library
+
+A change was made to logging.config.dictConfig to avoid converting instances
+of named tuples to ConvertingTuple. It's assumed that named tuples are too
+specialised to be treated like ordinary tuples; if a user of named tuples
+requires ConvertingTuple functionality, they will have to implement that
+themselves in their named tuple class.
+
+..
+
+.. bpo: 39158
+.. date: 2019-12-29-15-44-38
+.. nonce: cxVoOR
+.. section: Library
+
+ast.literal_eval() now supports empty sets.
+
+..
+
+.. bpo: 39129
+.. date: 2019-12-24-10-43-13
+.. nonce: jVx5rW
+.. section: Library
+
+Fix import path for ``asyncio.TimeoutError``
+
+..
+
+.. bpo: 39057
+.. date: 2019-12-15-21-47-54
+.. nonce: FOxn-w
+.. section: Library
+
+:func:`urllib.request.proxy_bypass_environment` now ignores leading dots and
+no longer ignores a trailing newline.
+
+..
+
+.. bpo: 39056
+.. date: 2019-12-15-21-05-16
+.. nonce: nEfUM9
+.. section: Library
+
+Fixed handling invalid warning category in the -W option. No longer import
+the re module if it is not needed.
+
+..
+
+.. bpo: 39055
+.. date: 2019-12-15-19-23-23
+.. nonce: FmN3un
+.. section: Library
+
+:func:`base64.b64decode` with ``validate=True`` raises now a binascii.Error
+if the input ends with a single ``\n``.
+
+..
+
+.. bpo: 21600
+.. date: 2019-12-14-14-38-40
+.. nonce: kC4Cgh
+.. section: Library
+
+Fix :func:`mock.patch.stopall` to stop active patches that were created with
+:func:`mock.patch.dict`.
+
+..
+
+.. bpo: 39019
+.. date: 2019-12-10-21-11-05
+.. nonce: YIlgZ7
+.. section: Library
+
+Implement dummy ``__class_getitem__`` for
+:class:`tempfile.SpooledTemporaryFile`.
+
+..
+
+.. bpo: 39019
+.. date: 2019-12-10-21-03-34
+.. nonce: i8RpMZ
+.. section: Library
+
+Implement dummy ``__class_getitem__`` for ``subprocess.Popen``,
+``subprocess.CompletedProcess``
+
+..
+
+.. bpo: 38914
+.. date: 2019-11-26-23-21-56
+.. nonce: 8l-g-T
+.. section: Library
+
+Adjusted the wording of the warning issued by distutils' ``check`` command
+when the ``author`` and ``maintainer`` fields are supplied but no
+corresponding e-mail field (``author_email`` or ``maintainer_email``) is
+found. The wording now reflects the fact that these fields are suggested,
+but not required. Patch by Juergen Gmach.
+
+..
+
+.. bpo: 38878
+.. date: 2019-11-22-12-08-52
+.. nonce: EJ0cFf
+.. section: Library
+
+Fixed __subclasshook__ of :class:`os.PathLike` to return a correct result
+upon inheritence. Patch by Bar Harel.
+
+..
+
+.. bpo: 38615
+.. date: 2019-11-17-17-32-35
+.. nonce: OVyaNX
+.. section: Library
+
+:class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have an optional
+*timeout* parameter for their constructors. Also, the
+:meth:`~imaplib.IMAP4.open` method now has an optional *timeout* parameter
+with this change. The overridden methods of :class:`~imaplib.IMAP4_SSL` and
+:class:`~imaplib.IMAP4_stream` were applied to this change. Patch by
+Dong-hee Na.
+
+..
+
+.. bpo: 35182
+.. date: 2019-10-31-19-23-25
+.. nonce: hzeNl9
+.. section: Library
+
+Fixed :func:`Popen.communicate` subsequent call crash when the child process
+has already closed any piped standard stream, but still continues to be
+running. Patch by Andriy Maletsky.
+
+..
+
+.. bpo: 38630
+.. date: 2019-10-29-12-21-10
+.. nonce: Dv6Xrm
+.. section: Library
+
+On Unix, :meth:`subprocess.Popen.send_signal` now polls the process status.
+Polling reduces the risk of sending a signal to the wrong process if the
+process completed, the :attr:`subprocess.Popen.returncode` attribute is
+still ``None``, and the pid has been reassigned (recycled) to a new
+different process.
+
+..
+
+.. bpo: 38536
+.. date: 2019-10-21-20-24-51
+.. nonce: beZ0Sk
+.. section: Library
+
+Removes trailing space in formatted currency with `international=True` and a
+locale with symbol following value. E.g. `locale.currency(12.34,
+international=True)` returned `'12,34 EUR '` instead of `'12,34 EUR'`.
+
+..
+
+.. bpo: 38473
+.. date: 2019-10-14-21-14-55
+.. nonce: uXpVld
+.. section: Library
+
+Use signature from inner mock for autospecced methods attached with
+:func:`unittest.mock.attach_mock`. Patch by Karthikeyan Singaravelan.
+
+..
+
+.. bpo: 38361
+.. date: 2019-10-04-09-49-56
+.. nonce: LM4u4T
+.. section: Library
+
+Fixed an issue where ``ident`` could include a leading path separator when
+:func:`syslog.openlog` was called without arguments.
+
+..
+
+.. bpo: 38293
+.. date: 2019-09-29-08-17-03
+.. nonce: wls5s3
+.. section: Library
+
+Add :func:`copy.copy` and :func:`copy.deepcopy` support to :func:`property`
+objects.
+
+..
+
+.. bpo: 37958
+.. date: 2019-08-27-03-57-25
+.. nonce: lRORI3
+.. section: Library
+
+Added the pstats.Stats.get_profile_dict() method to return the profile data
+as a StatsProfile instance.
+
+..
+
+.. bpo: 28367
+.. date: 2019-05-06-22-38-47
+.. nonce: 2AKen5
+.. section: Library
+
+Termios magic constants for the following baud rates: - B500000 -
+B576000 - B921600 - B1000000 - B1152000 - B1500000 - B2000000 -
+B2500000 - B3000000 - B3500000 - B4000000 Patch by Andrey Smirnov
+
+..
+
+.. bpo: 39381
+.. date: 2020-01-18-15-37-56
+.. nonce: wTWe8d
+.. section: Documentation
+
+Mention in docs that :func:`asyncio.get_event_loop` implicitly creates new
+event loop only if called from the main thread.
+
+..
+
+.. bpo: 38918
+.. date: 2019-12-15-22-04-41
+.. nonce: 8JnDTS
+.. section: Documentation
+
+Add an entry for ``__module__`` in the "function" & "method" sections of the
+`inspect docs types and members table
+`_
+
+..
+
+.. bpo: 3530
+.. date: 2019-11-17-11-53-10
+.. nonce: 8zFUMc
+.. section: Documentation
+
+In the :mod:`ast` module documentation, fix a misleading ``NodeTransformer``
+example and add advice on when to use the ``fix_missing_locations``
+function.
+
+..
+
+.. bpo: 39395
+.. date: 2020-01-23-03-05-13
+.. nonce: RoArIZ
+.. section: Build
+
+On non-Windows platforms, the :c:func:`setenv` and :c:func:`unsetenv`
+functions are now required to build Python.
+
+..
+
+.. bpo: 39160
+.. date: 2019-12-30-03-54-24
+.. nonce: aBmj13
+.. section: Build
+
+Updated the documentation in `./configure --help` to show default values,
+reference documentation where required and add additional explanation where
+needed.
+
+..
+
+.. bpo: 39144
+.. date: 2019-12-27-22-18-26
+.. nonce: dwHMlR
+.. section: Build
+
+The ctags and etags build targets both include Modules/_ctypes and Python
+standard library source files.
+
+..
+
+.. bpo: 39050
+.. date: 2020-01-22-22-28-06
+.. nonce: zkn0FO
+.. section: IDLE
+
+Make IDLE Settings dialog Help button work again.
+
+..
+
+.. bpo: 34118
+.. date: 2019-12-30-16-44-07
+.. nonce: FaNW0a
+.. section: IDLE
+
+Tag memoryview, range, and tuple as classes, the same as list, etcetera, in
+the library manual built-in functions list.
+
+..
+
+.. bpo: 32989
+.. date: 2018-03-03-12-56-26
+.. nonce: FVhmhH
+.. section: IDLE
+
+Add tests for editor newline_and_indent_event method. Remove dead code from
+pyparse find_good_parse_start method.
+
+..
+
+.. bpo: 39372
+.. date: 2020-01-17-19-25-48
+.. nonce: hGJMY6
+.. section: C API
+
+Clean header files of interfaces defined but with no implementation. The
+public API symbols being removed are:
+``_PyBytes_InsertThousandsGroupingLocale``,
+``_PyBytes_InsertThousandsGrouping``, ``_Py_InitializeFromArgs``,
+``_Py_InitializeFromWideArgs``, ``_PyFloat_Repr``, ``_PyFloat_Digits``,
+``_PyFloat_DigitsInit``, ``PyFrame_ExtendStack``, ``_PyAIterWrapper_Type``,
+``PyNullImporter_Type``, ``PyCmpWrapper_Type``, ``PySortWrapper_Type``,
+``PyNoArgsFunction``.
+
+..
+
+.. bpo: 39164
+.. date: 2019-12-30-10-43-52
+.. nonce: WEV0uu
+.. section: C API
+
+Add a private ``_PyErr_GetExcInfo()`` function to retrieve exception
+information of the specified Python thread state.
diff --git a/Misc/NEWS.d/next/Build/2019-12-27-22-18-26.bpo-39144.dwHMlR.rst b/Misc/NEWS.d/next/Build/2019-12-27-22-18-26.bpo-39144.dwHMlR.rst
deleted file mode 100644
index 8b90da19622..00000000000
--- a/Misc/NEWS.d/next/Build/2019-12-27-22-18-26.bpo-39144.dwHMlR.rst
+++ /dev/null
@@ -1 +0,0 @@
-The ctags and etags build targets both include Modules/_ctypes and Python standard library source files.
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Build/2019-12-30-03-54-24.bpo-39160.aBmj13.rst b/Misc/NEWS.d/next/Build/2019-12-30-03-54-24.bpo-39160.aBmj13.rst
deleted file mode 100644
index 9fb4088de0e..00000000000
--- a/Misc/NEWS.d/next/Build/2019-12-30-03-54-24.bpo-39160.aBmj13.rst
+++ /dev/null
@@ -1 +0,0 @@
-Updated the documentation in `./configure --help` to show default values, reference documentation where required and add additional explanation where needed.
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Build/2020-01-23-03-05-13.bpo-39395.RoArIZ.rst b/Misc/NEWS.d/next/Build/2020-01-23-03-05-13.bpo-39395.RoArIZ.rst
deleted file mode 100644
index aa2146a11d9..00000000000
--- a/Misc/NEWS.d/next/Build/2020-01-23-03-05-13.bpo-39395.RoArIZ.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-On non-Windows platforms, the :c:func:`setenv` and :c:func:`unsetenv` functions
-are now required to build Python.
diff --git a/Misc/NEWS.d/next/C API/2019-12-30-10-43-52.bpo-39164.WEV0uu.rst b/Misc/NEWS.d/next/C API/2019-12-30-10-43-52.bpo-39164.WEV0uu.rst
deleted file mode 100644
index bb72ac70d5b..00000000000
--- a/Misc/NEWS.d/next/C API/2019-12-30-10-43-52.bpo-39164.WEV0uu.rst
+++ /dev/null
@@ -1 +0,0 @@
-Add a private ``_PyErr_GetExcInfo()`` function to retrieve exception information of the specified Python thread state.
diff --git a/Misc/NEWS.d/next/C API/2020-01-17-19-25-48.bpo-39372.hGJMY6.rst b/Misc/NEWS.d/next/C API/2020-01-17-19-25-48.bpo-39372.hGJMY6.rst
deleted file mode 100644
index 8415d756ffa..00000000000
--- a/Misc/NEWS.d/next/C API/2020-01-17-19-25-48.bpo-39372.hGJMY6.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Clean header files of interfaces defined but with no implementation. The
-public API symbols being removed are:
-``_PyBytes_InsertThousandsGroupingLocale``,
-``_PyBytes_InsertThousandsGrouping``, ``_Py_InitializeFromArgs``,
-``_Py_InitializeFromWideArgs``, ``_PyFloat_Repr``, ``_PyFloat_Digits``,
-``_PyFloat_DigitsInit``, ``PyFrame_ExtendStack``, ``_PyAIterWrapper_Type``,
-``PyNullImporter_Type``, ``PyCmpWrapper_Type``, ``PySortWrapper_Type``,
-``PyNoArgsFunction``.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-03-11-13-30-40.bpo-32021.dpbtkP.rst b/Misc/NEWS.d/next/Core and Builtins/2019-03-11-13-30-40.bpo-32021.dpbtkP.rst
deleted file mode 100644
index a07f6d3e85a..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2019-03-11-13-30-40.bpo-32021.dpbtkP.rst
+++ /dev/null
@@ -1 +0,0 @@
-Include brotli .br encoding in mimetypes encodings_map
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-10-31-14-30-39.bpo-38610.fHdVMS.rst b/Misc/NEWS.d/next/Core and Builtins/2019-10-31-14-30-39.bpo-38610.fHdVMS.rst
deleted file mode 100644
index 0ee63bbb40d..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2019-10-31-14-30-39.bpo-38610.fHdVMS.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix possible crashes in several list methods by holding strong references to
-list elements when calling :c:func:`PyObject_RichCompareBool`.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-12-17-22-32-11.bpo-13601.vNP4LC.rst b/Misc/NEWS.d/next/Core and Builtins/2019-12-17-22-32-11.bpo-13601.vNP4LC.rst
deleted file mode 100644
index f2c9495a59a..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2019-12-17-22-32-11.bpo-13601.vNP4LC.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-By default, ``sys.stderr`` is line-buffered now, even if ``stderr`` is
-redirected to a file. You can still make ``sys.stderr`` unbuffered by
-passing the :option:`-u` command-line option or setting the
-:envvar:`PYTHONUNBUFFERED` environment variable.
-
-(Contributed by Jendrik Seipp in bpo-13601.)
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-12-29-19-13-54.bpo-38588.pgXnNS.rst b/Misc/NEWS.d/next/Core and Builtins/2019-12-29-19-13-54.bpo-38588.pgXnNS.rst
deleted file mode 100644
index 0b81085a89d..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2019-12-29-19-13-54.bpo-38588.pgXnNS.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix possible crashes in dict and list when calling
-:c:func:`PyObject_RichCompareBool`.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-12-30-10-53-59.bpo-39156.veT-CB.rst b/Misc/NEWS.d/next/Core and Builtins/2019-12-30-10-53-59.bpo-39156.veT-CB.rst
deleted file mode 100644
index f8d1a1a88a7..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2019-12-30-10-53-59.bpo-39156.veT-CB.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Split the COMPARE_OP bytecode instruction into four distinct instructions.
-
-* COMPARE_OP for rich comparisons
-* IS_OP for 'is' and 'is not' tests
-* CONTAINS_OP for 'in' and 'is not' tests
-* JUMP_IF_NOT_EXC_MATCH for checking exceptions in 'try-except' statements.
-
-This improves the clarity of the interpreter and should provide a modest
-speedup.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-12-31-18-25-45.bpo-39114.WG9alt.rst b/Misc/NEWS.d/next/Core and Builtins/2019-12-31-18-25-45.bpo-39114.WG9alt.rst
deleted file mode 100644
index d742af9d326..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2019-12-31-18-25-45.bpo-39114.WG9alt.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix incorrent line execution reporting in trace functions when tracing
-exception handlers with name binding. Patch by Pablo Galindo.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-02-22-22-03.bpo-39166.Qt-UeD.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-02-22-22-03.bpo-39166.Qt-UeD.rst
deleted file mode 100644
index 4737e9c4d2e..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-02-22-22-03.bpo-39166.Qt-UeD.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix incorrect line execution reporting in trace functions when tracing the
-last iteration of asynchronous for loops. Patch by Pablo Galindo.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-03-14-50-14.bpo-39200.Ip2_iI.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-03-14-50-14.bpo-39200.Ip2_iI.rst
deleted file mode 100644
index e5cb396643f..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-03-14-50-14.bpo-39200.Ip2_iI.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Correct the error message when trying to construct :class:`range` objects
-with no arguments. Patch by Pablo Galindo.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-04-01-14-32.bpo-39200.8Z9DYp.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-04-01-14-32.bpo-39200.8Z9DYp.rst
deleted file mode 100644
index 71e40720992..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-04-01-14-32.bpo-39200.8Z9DYp.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Correct the error message when calling the :func:`min` or :func:`max` with
-no arguments. Patch by Dong-hee Na.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-04-17-25-34.bpo-39215.xiqiIz.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-04-17-25-34.bpo-39215.xiqiIz.rst
deleted file mode 100644
index 9a3178f9c62..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-04-17-25-34.bpo-39215.xiqiIz.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix ``SystemError`` when nested function has annotation on positional-only
-argument - by Anthony Sottile.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-05-06-55-52.bpo-39216.74jLh9.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-05-06-55-52.bpo-39216.74jLh9.rst
deleted file mode 100644
index 971b0655297..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-05-06-55-52.bpo-39216.74jLh9.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix constant folding optimization for positional only arguments - by Anthony
-Sottile.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-05-13-40-08.bpo-1635741.QRTJVC.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-05-13-40-08.bpo-1635741.QRTJVC.rst
deleted file mode 100644
index 9b856c9e1ba..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-05-13-40-08.bpo-1635741.QRTJVC.rst
+++ /dev/null
@@ -1 +0,0 @@
-Port _json extension module to multiphase initialization (:pep:`489`).
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-06-10-29-16.bpo-39209.QHAONe.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-06-10-29-16.bpo-39209.QHAONe.rst
deleted file mode 100644
index c05b3f8dfa4..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-06-10-29-16.bpo-39209.QHAONe.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Correctly handle multi-line tokens in interactive mode. Patch by Pablo
-Galindo.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-09-10-01-18.bpo-39235.RYwjoc.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-09-10-01-18.bpo-39235.RYwjoc.rst
deleted file mode 100644
index 5fb0d45356b..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-09-10-01-18.bpo-39235.RYwjoc.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix AST end location for lone generator expression in function call, e.g.
-f(i for i in a).
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-13-14-45-22.bpo-39048.iPsj81.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-13-14-45-22.bpo-39048.iPsj81.rst
deleted file mode 100644
index 1179ef49651..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-13-14-45-22.bpo-39048.iPsj81.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Improve the displayed error message when incorrect types are passed to ``async
-with`` statements by looking up the :meth:`__aenter__` special method before
-the :meth:`__aexit__` special method when entering an asynchronous context
-manager. Patch by Géry Ogam.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-13-15-18-13.bpo-39322.aAs-1T.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-13-15-18-13.bpo-39322.aAs-1T.rst
deleted file mode 100644
index 60df44cc672..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-13-15-18-13.bpo-39322.aAs-1T.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Added a new function :func:`gc.is_finalized` to check if an object has been
-finalized by the garbage collector. Patch by Pablo Galindo.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-15-01-39-29.bpo-39336.nJ7W9I.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-15-01-39-29.bpo-39336.nJ7W9I.rst
deleted file mode 100644
index 55b6bbbcac0..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-15-01-39-29.bpo-39336.nJ7W9I.rst
+++ /dev/null
@@ -1 +0,0 @@
-Import loaders which publish immutable module objects can now publish immutable packages in addition to individual modules.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-15-15-33-44.bpo-39320.b4hnJW.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-15-15-33-44.bpo-39320.b4hnJW.rst
deleted file mode 100644
index 1e7235b7e6f..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-15-15-33-44.bpo-39320.b4hnJW.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-Replace four complex bytecodes for building sequences with three simpler ones.
-
-
-The following four bytecodes have been removed:
-
-* BUILD_LIST_UNPACK
-* BUILD_TUPLE_UNPACK
-* BUILD_SET_UNPACK
-* BUILD_TUPLE_UNPACK_WITH_CALL
-
-The following three bytecodes have been added:
-
-* LIST_TO_TUPLE
-* LIST_EXTEND
-* SET_UPDATE
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-17-00-00-58.bpo-17005.nTSxsy.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-17-00-00-58.bpo-17005.nTSxsy.rst
deleted file mode 100644
index e5336437754..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-17-00-00-58.bpo-17005.nTSxsy.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Add :class:`functools.TopologicalSorter` to the :mod:`functools` module to
-offers functionality to perform topological sorting of graphs. Patch by
-Pablo Galindo, Tim Peters and Larry Hastings.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-20-21-40-57.bpo-39386.ULqD8t.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-20-21-40-57.bpo-39386.ULqD8t.rst
deleted file mode 100644
index f24e1f4e8a1..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-20-21-40-57.bpo-39386.ULqD8t.rst
+++ /dev/null
@@ -1 +0,0 @@
-Prevent double awaiting of async iterator.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-22-15-53-37.bpo-39421.O3nG7u.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-22-15-53-37.bpo-39421.O3nG7u.rst
deleted file mode 100644
index bae008150ee..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-22-15-53-37.bpo-39421.O3nG7u.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix possible crashes when operating with the functions in the :mod:`heapq`
-module and custom comparison operators.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-22-22-28-04.bpo-39427.LiO-Eo.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-22-22-28-04.bpo-39427.LiO-Eo.rst
deleted file mode 100644
index a3915a4d81c..00000000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-01-22-22-28-04.bpo-39427.LiO-Eo.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Document all possibilities for the ``-X`` options in the command line help
-section. Patch by Pablo Galindo.
diff --git a/Misc/NEWS.d/next/Documentation/2019-11-17-11-53-10.bpo-3530.8zFUMc.rst b/Misc/NEWS.d/next/Documentation/2019-11-17-11-53-10.bpo-3530.8zFUMc.rst
deleted file mode 100644
index 65f1a6d156a..00000000000
--- a/Misc/NEWS.d/next/Documentation/2019-11-17-11-53-10.bpo-3530.8zFUMc.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-In the :mod:`ast` module documentation, fix a misleading ``NodeTransformer`` example and add
-advice on when to use the ``fix_missing_locations`` function.
diff --git a/Misc/NEWS.d/next/Documentation/2019-12-15-22-04-41.bpo-38918.8JnDTS.rst b/Misc/NEWS.d/next/Documentation/2019-12-15-22-04-41.bpo-38918.8JnDTS.rst
deleted file mode 100644
index 5747936dd64..00000000000
--- a/Misc/NEWS.d/next/Documentation/2019-12-15-22-04-41.bpo-38918.8JnDTS.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Add an entry for ``__module__`` in the "function" & "method" sections of the
-`inspect docs types and members table
-`_
diff --git a/Misc/NEWS.d/next/Documentation/2020-01-18-15-37-56.bpo-39381.wTWe8d.rst b/Misc/NEWS.d/next/Documentation/2020-01-18-15-37-56.bpo-39381.wTWe8d.rst
deleted file mode 100644
index 37b66ad9dfd..00000000000
--- a/Misc/NEWS.d/next/Documentation/2020-01-18-15-37-56.bpo-39381.wTWe8d.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Mention in docs that :func:`asyncio.get_event_loop` implicitly creates new
-event loop only if called from the main thread.
diff --git a/Misc/NEWS.d/next/IDLE/2018-03-03-12-56-26.bpo-32989.FVhmhH.rst b/Misc/NEWS.d/next/IDLE/2018-03-03-12-56-26.bpo-32989.FVhmhH.rst
deleted file mode 100644
index 38f0fb6e104..00000000000
--- a/Misc/NEWS.d/next/IDLE/2018-03-03-12-56-26.bpo-32989.FVhmhH.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Add tests for editor newline_and_indent_event method.
-Remove dead code from pyparse find_good_parse_start method.
diff --git a/Misc/NEWS.d/next/IDLE/2019-12-30-16-44-07.bpo-34118.FaNW0a.rst b/Misc/NEWS.d/next/IDLE/2019-12-30-16-44-07.bpo-34118.FaNW0a.rst
deleted file mode 100644
index ce95eb5482f..00000000000
--- a/Misc/NEWS.d/next/IDLE/2019-12-30-16-44-07.bpo-34118.FaNW0a.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Tag memoryview, range, and tuple as classes, the same as list, etcetera, in
-the library manual built-in functions list.
diff --git a/Misc/NEWS.d/next/IDLE/2020-01-22-22-28-06.bpo-39050.zkn0FO.rst b/Misc/NEWS.d/next/IDLE/2020-01-22-22-28-06.bpo-39050.zkn0FO.rst
deleted file mode 100644
index e71265cdf10..00000000000
--- a/Misc/NEWS.d/next/IDLE/2020-01-22-22-28-06.bpo-39050.zkn0FO.rst
+++ /dev/null
@@ -1 +0,0 @@
-Make IDLE Settings dialog Help button work again.
diff --git a/Misc/NEWS.d/next/Library/2019-05-06-22-38-47.bpo-28367.2AKen5.rst b/Misc/NEWS.d/next/Library/2019-05-06-22-38-47.bpo-28367.2AKen5.rst
deleted file mode 100644
index 115f458bfbf..00000000000
--- a/Misc/NEWS.d/next/Library/2019-05-06-22-38-47.bpo-28367.2AKen5.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-Termios magic constants for the following baud rates:
- - B500000
- - B576000
- - B921600
- - B1000000
- - B1152000
- - B1500000
- - B2000000
- - B2500000
- - B3000000
- - B3500000
- - B4000000
-Patch by Andrey Smirnov
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Library/2019-08-27-03-57-25.bpo-37958.lRORI3.rst b/Misc/NEWS.d/next/Library/2019-08-27-03-57-25.bpo-37958.lRORI3.rst
deleted file mode 100644
index d0b4d6adca4..00000000000
--- a/Misc/NEWS.d/next/Library/2019-08-27-03-57-25.bpo-37958.lRORI3.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Added the pstats.Stats.get_profile_dict() method to return the profile
-data as a StatsProfile instance.
diff --git a/Misc/NEWS.d/next/Library/2019-09-29-08-17-03.bpo-38293.wls5s3.rst b/Misc/NEWS.d/next/Library/2019-09-29-08-17-03.bpo-38293.wls5s3.rst
deleted file mode 100644
index 0b19551970e..00000000000
--- a/Misc/NEWS.d/next/Library/2019-09-29-08-17-03.bpo-38293.wls5s3.rst
+++ /dev/null
@@ -1 +0,0 @@
-Add :func:`copy.copy` and :func:`copy.deepcopy` support to :func:`property` objects.
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Library/2019-10-04-09-49-56.bpo-38361.LM4u4T.rst b/Misc/NEWS.d/next/Library/2019-10-04-09-49-56.bpo-38361.LM4u4T.rst
deleted file mode 100644
index 65186db60b4..00000000000
--- a/Misc/NEWS.d/next/Library/2019-10-04-09-49-56.bpo-38361.LM4u4T.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fixed an issue where ``ident`` could include a leading path separator when :func:`syslog.openlog` was called without arguments.
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Library/2019-10-14-21-14-55.bpo-38473.uXpVld.rst b/Misc/NEWS.d/next/Library/2019-10-14-21-14-55.bpo-38473.uXpVld.rst
deleted file mode 100644
index de80e89e00e..00000000000
--- a/Misc/NEWS.d/next/Library/2019-10-14-21-14-55.bpo-38473.uXpVld.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Use signature from inner mock for autospecced methods attached with
-:func:`unittest.mock.attach_mock`. Patch by Karthikeyan Singaravelan.
diff --git a/Misc/NEWS.d/next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst b/Misc/NEWS.d/next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst
deleted file mode 100644
index 147d181cc7e..00000000000
--- a/Misc/NEWS.d/next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Removes trailing space in formatted currency with `international=True` and a locale with symbol following value.
-E.g. `locale.currency(12.34, international=True)` returned `'12,34 EUR '` instead of `'12,34 EUR'`.
diff --git a/Misc/NEWS.d/next/Library/2019-10-29-12-21-10.bpo-38630.Dv6Xrm.rst b/Misc/NEWS.d/next/Library/2019-10-29-12-21-10.bpo-38630.Dv6Xrm.rst
deleted file mode 100644
index 1a4d59205ab..00000000000
--- a/Misc/NEWS.d/next/Library/2019-10-29-12-21-10.bpo-38630.Dv6Xrm.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-On Unix, :meth:`subprocess.Popen.send_signal` now polls the process status.
-Polling reduces the risk of sending a signal to the wrong process if the
-process completed, the :attr:`subprocess.Popen.returncode` attribute is still
-``None``, and the pid has been reassigned (recycled) to a new different
-process.
diff --git a/Misc/NEWS.d/next/Library/2019-10-31-19-23-25.bpo-35182.hzeNl9.rst b/Misc/NEWS.d/next/Library/2019-10-31-19-23-25.bpo-35182.hzeNl9.rst
deleted file mode 100644
index 9438cd8f9fd..00000000000
--- a/Misc/NEWS.d/next/Library/2019-10-31-19-23-25.bpo-35182.hzeNl9.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Fixed :func:`Popen.communicate` subsequent call crash when the child process
-has already closed any piped standard stream, but still continues to be
-running. Patch by Andriy Maletsky.
diff --git a/Misc/NEWS.d/next/Library/2019-11-17-17-32-35.bpo-38615.OVyaNX.rst b/Misc/NEWS.d/next/Library/2019-11-17-17-32-35.bpo-38615.OVyaNX.rst
deleted file mode 100644
index 04f51da0db7..00000000000
--- a/Misc/NEWS.d/next/Library/2019-11-17-17-32-35.bpo-38615.OVyaNX.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-:class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have an
-optional *timeout* parameter for their constructors.
-Also, the :meth:`~imaplib.IMAP4.open` method now has an optional *timeout* parameter
-with this change. The overridden methods of :class:`~imaplib.IMAP4_SSL` and
-:class:`~imaplib.IMAP4_stream` were applied to this change. Patch by Dong-hee Na.
diff --git a/Misc/NEWS.d/next/Library/2019-11-22-12-08-52.bpo-38878.EJ0cFf.rst b/Misc/NEWS.d/next/Library/2019-11-22-12-08-52.bpo-38878.EJ0cFf.rst
deleted file mode 100644
index 9cbdf08dd53..00000000000
--- a/Misc/NEWS.d/next/Library/2019-11-22-12-08-52.bpo-38878.EJ0cFf.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fixed __subclasshook__ of :class:`os.PathLike` to return a correct result
-upon inheritence. Patch by Bar Harel.
diff --git a/Misc/NEWS.d/next/Library/2019-11-26-23-21-56.bpo-38914.8l-g-T.rst b/Misc/NEWS.d/next/Library/2019-11-26-23-21-56.bpo-38914.8l-g-T.rst
deleted file mode 100644
index 2dfc1ea149b..00000000000
--- a/Misc/NEWS.d/next/Library/2019-11-26-23-21-56.bpo-38914.8l-g-T.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-Adjusted the wording of the warning issued by distutils' ``check`` command when
-the ``author`` and ``maintainer`` fields are supplied but no corresponding
-e-mail field (``author_email`` or ``maintainer_email``) is found. The wording
-now reflects the fact that these fields are suggested, but not required. Patch
-by Juergen Gmach.
diff --git a/Misc/NEWS.d/next/Library/2019-12-10-21-03-34.bpo-39019.i8RpMZ.rst b/Misc/NEWS.d/next/Library/2019-12-10-21-03-34.bpo-39019.i8RpMZ.rst
deleted file mode 100644
index b64a56edc50..00000000000
--- a/Misc/NEWS.d/next/Library/2019-12-10-21-03-34.bpo-39019.i8RpMZ.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Implement dummy ``__class_getitem__`` for ``subprocess.Popen``,
-``subprocess.CompletedProcess``
diff --git a/Misc/NEWS.d/next/Library/2019-12-10-21-11-05.bpo-39019.YIlgZ7.rst b/Misc/NEWS.d/next/Library/2019-12-10-21-11-05.bpo-39019.YIlgZ7.rst
deleted file mode 100644
index 7bdf291950f..00000000000
--- a/Misc/NEWS.d/next/Library/2019-12-10-21-11-05.bpo-39019.YIlgZ7.rst
+++ /dev/null
@@ -1 +0,0 @@
-Implement dummy ``__class_getitem__`` for :class:`tempfile.SpooledTemporaryFile`.
diff --git a/Misc/NEWS.d/next/Library/2019-12-14-14-38-40.bpo-21600.kC4Cgh.rst b/Misc/NEWS.d/next/Library/2019-12-14-14-38-40.bpo-21600.kC4Cgh.rst
deleted file mode 100644
index 0f726393106..00000000000
--- a/Misc/NEWS.d/next/Library/2019-12-14-14-38-40.bpo-21600.kC4Cgh.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix :func:`mock.patch.stopall` to stop active patches that were created with
-:func:`mock.patch.dict`.
diff --git a/Misc/NEWS.d/next/Library/2019-12-15-19-23-23.bpo-39055.FmN3un.rst b/Misc/NEWS.d/next/Library/2019-12-15-19-23-23.bpo-39055.FmN3un.rst
deleted file mode 100644
index 83b1431e92f..00000000000
--- a/Misc/NEWS.d/next/Library/2019-12-15-19-23-23.bpo-39055.FmN3un.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-:func:`base64.b64decode` with ``validate=True`` raises now a binascii.Error
-if the input ends with a single ``\n``.
diff --git a/Misc/NEWS.d/next/Library/2019-12-15-21-05-16.bpo-39056.nEfUM9.rst b/Misc/NEWS.d/next/Library/2019-12-15-21-05-16.bpo-39056.nEfUM9.rst
deleted file mode 100644
index d5d2b98e9b0..00000000000
--- a/Misc/NEWS.d/next/Library/2019-12-15-21-05-16.bpo-39056.nEfUM9.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fixed handling invalid warning category in the -W option. No longer import
-the re module if it is not needed.
diff --git a/Misc/NEWS.d/next/Library/2019-12-15-21-47-54.bpo-39057.FOxn-w.rst b/Misc/NEWS.d/next/Library/2019-12-15-21-47-54.bpo-39057.FOxn-w.rst
deleted file mode 100644
index 24a17444b97..00000000000
--- a/Misc/NEWS.d/next/Library/2019-12-15-21-47-54.bpo-39057.FOxn-w.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-:func:`urllib.request.proxy_bypass_environment` now ignores leading dots and
-no longer ignores a trailing newline.
diff --git a/Misc/NEWS.d/next/Library/2019-12-24-10-43-13.bpo-39129.jVx5rW.rst b/Misc/NEWS.d/next/Library/2019-12-24-10-43-13.bpo-39129.jVx5rW.rst
deleted file mode 100644
index 6667697671a..00000000000
--- a/Misc/NEWS.d/next/Library/2019-12-24-10-43-13.bpo-39129.jVx5rW.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix import path for ``asyncio.TimeoutError``
diff --git a/Misc/NEWS.d/next/Library/2019-12-29-15-44-38.bpo-39158.cxVoOR.rst b/Misc/NEWS.d/next/Library/2019-12-29-15-44-38.bpo-39158.cxVoOR.rst
deleted file mode 100644
index c41799bebae..00000000000
--- a/Misc/NEWS.d/next/Library/2019-12-29-15-44-38.bpo-39158.cxVoOR.rst
+++ /dev/null
@@ -1 +0,0 @@
-ast.literal_eval() now supports empty sets.
diff --git a/Misc/NEWS.d/next/Library/2019-12-31-19-27-23.bpo-39142.oqU5iD.rst b/Misc/NEWS.d/next/Library/2019-12-31-19-27-23.bpo-39142.oqU5iD.rst
deleted file mode 100644
index 508d1338d7c..00000000000
--- a/Misc/NEWS.d/next/Library/2019-12-31-19-27-23.bpo-39142.oqU5iD.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-A change was made to logging.config.dictConfig to avoid converting instances
-of named tuples to ConvertingTuple. It's assumed that named tuples are too
-specialised to be treated like ordinary tuples; if a user of named tuples
-requires ConvertingTuple functionality, they will have to implement that
-themselves in their named tuple class.
diff --git a/Misc/NEWS.d/next/Library/2020-01-01-18-44-52.bpo-38871.3EEOLg.rst b/Misc/NEWS.d/next/Library/2020-01-01-18-44-52.bpo-38871.3EEOLg.rst
deleted file mode 100644
index fe970fd9e3f..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-01-18-44-52.bpo-38871.3EEOLg.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Correctly parenthesize filter-based statements that contain lambda
-expressions in mod:`lib2to3`. Patch by Dong-hee Na.
diff --git a/Misc/NEWS.d/next/Library/2020-01-02-17-28-03.bpo-39191.ur_scy.rst b/Misc/NEWS.d/next/Library/2020-01-02-17-28-03.bpo-39191.ur_scy.rst
deleted file mode 100644
index 138c93c2e48..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-02-17-28-03.bpo-39191.ur_scy.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Perform a check for running loop before starting a new task in
-``loop.run_until_complete()`` to fail fast; it prevents the side effect of
-new task spawning before exception raising.
diff --git a/Misc/NEWS.d/next/Library/2020-01-02-20-21-03.bpo-39198.nzwGyG.rst b/Misc/NEWS.d/next/Library/2020-01-02-20-21-03.bpo-39198.nzwGyG.rst
deleted file mode 100644
index ec4e81e2bbe..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-02-20-21-03.bpo-39198.nzwGyG.rst
+++ /dev/null
@@ -1 +0,0 @@
-If an exception were to be thrown in `Logger.isEnabledFor` (say, by asyncio timeouts or stopit) , the `logging` global lock may not be released appropriately, resulting in deadlock. This change wraps that block of code with `try...finally` to ensure the lock is released.
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Library/2020-01-03-18-02-50.bpo-39152.JgPjCC.rst b/Misc/NEWS.d/next/Library/2020-01-03-18-02-50.bpo-39152.JgPjCC.rst
deleted file mode 100644
index abb3df0da0f..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-03-18-02-50.bpo-39152.JgPjCC.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix ttk.Scale.configure([name]) to return configuration tuple for name
-or all options. Giovanni Lombardo contributed part of the patch.
diff --git a/Misc/NEWS.d/next/Library/2020-01-06-02-14-38.bpo-38907.F1RkCR.rst b/Misc/NEWS.d/next/Library/2020-01-06-02-14-38.bpo-38907.F1RkCR.rst
deleted file mode 100644
index a6e79f78095..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-06-02-14-38.bpo-38907.F1RkCR.rst
+++ /dev/null
@@ -1 +0,0 @@
-In http.server script, restore binding to IPv4 on Windows.
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Library/2020-01-07-01-02-44.bpo-39239.r7vecs.rst b/Misc/NEWS.d/next/Library/2020-01-07-01-02-44.bpo-39239.r7vecs.rst
deleted file mode 100644
index 2a1c9290869..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-07-01-02-44.bpo-39239.r7vecs.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-The :meth:`select.epoll.unregister` method no longer ignores the
-:data:`~errno.EBADF` error.
diff --git a/Misc/NEWS.d/next/Library/2020-01-08-14-39-19.bpo-35292.ihRT1z.rst b/Misc/NEWS.d/next/Library/2020-01-08-14-39-19.bpo-35292.ihRT1z.rst
deleted file mode 100644
index ae52f970d0b..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-08-14-39-19.bpo-35292.ihRT1z.rst
+++ /dev/null
@@ -1 +0,0 @@
-Proxy the `SimpleHTTPRequestHandler.guess_type` to `mimetypes.guess_type` so the `mimetypes.init` is called lazily to avoid unnecessary costs when :mod:`http.server` module is imported.
\ No newline at end of file
diff --git a/Misc/NEWS.d/next/Library/2020-01-08-23-25-27.bpo-39242.bnL65N.rst b/Misc/NEWS.d/next/Library/2020-01-08-23-25-27.bpo-39242.bnL65N.rst
deleted file mode 100644
index a87dddf81dc..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-08-23-25-27.bpo-39242.bnL65N.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Updated the Gmane domain from news.gmane.org to news.gmane.io
-which is used for examples of :class:`~nntplib.NNTP` news reader server and
-nntplib tests.
diff --git a/Misc/NEWS.d/next/Library/2020-01-09-10-58-58.bpo-39259.RmDgCC.rst b/Misc/NEWS.d/next/Library/2020-01-09-10-58-58.bpo-39259.RmDgCC.rst
deleted file mode 100644
index c7ef8be7e3a..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-09-10-58-58.bpo-39259.RmDgCC.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-:class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a
-:class:`ValueError` if the given timeout for their constructor is zero to
-prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
diff --git a/Misc/NEWS.d/next/Library/2020-01-10-16-52-09.bpo-39288.IB-aQX.rst b/Misc/NEWS.d/next/Library/2020-01-10-16-52-09.bpo-39288.IB-aQX.rst
deleted file mode 100644
index 0e0ec99c344..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-10-16-52-09.bpo-39288.IB-aQX.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Add :func:`math.nextafter`: return the next floating-point value after *x*
-towards *y*.
diff --git a/Misc/NEWS.d/next/Library/2020-01-10-22-30-48.bpo-38901.OdVIIb.rst b/Misc/NEWS.d/next/Library/2020-01-10-22-30-48.bpo-38901.OdVIIb.rst
deleted file mode 100644
index 304d53289e0..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-10-22-30-48.bpo-38901.OdVIIb.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-When you specify prompt='.' or equivalently python -m venv --prompt . ...
-the basename of the current directory is used to set the created venv's
-prompt when it's activated.
diff --git a/Misc/NEWS.d/next/Library/2020-01-11-00-32-45.bpo-39259._S5VjC.rst b/Misc/NEWS.d/next/Library/2020-01-11-00-32-45.bpo-39259._S5VjC.rst
deleted file mode 100644
index a454572c80d..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-11-00-32-45.bpo-39259._S5VjC.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-:class:`~nntplib.NNTP` and :class:`~nntplib.NNTP_SSL` now raise a
-:class:`ValueError` if the given timeout for their constructor is zero to
-prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
diff --git a/Misc/NEWS.d/next/Library/2020-01-11-01-15-37.bpo-39297.y98Z6Q.rst b/Misc/NEWS.d/next/Library/2020-01-11-01-15-37.bpo-39297.y98Z6Q.rst
deleted file mode 100644
index 618f6f9f2b7..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-11-01-15-37.bpo-39297.y98Z6Q.rst
+++ /dev/null
@@ -1 +0,0 @@
-Improved performance of importlib.metadata distribution discovery and resilients to inaccessible sys.path entries (importlib_metadata v1.4.0).
diff --git a/Misc/NEWS.d/next/Library/2020-01-12-13-34-42.bpo-39310.YMRdcj.rst b/Misc/NEWS.d/next/Library/2020-01-12-13-34-42.bpo-39310.YMRdcj.rst
deleted file mode 100644
index a787f696087..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-12-13-34-42.bpo-39310.YMRdcj.rst
+++ /dev/null
@@ -1 +0,0 @@
-Add :func:`math.ulp`: return the value of the least significant bit of a float.
diff --git a/Misc/NEWS.d/next/Library/2020-01-12-16-34-28.bpo-39259.J_yBVq.rst b/Misc/NEWS.d/next/Library/2020-01-12-16-34-28.bpo-39259.J_yBVq.rst
deleted file mode 100644
index 6cc490eb35e..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-12-16-34-28.bpo-39259.J_yBVq.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-:class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a
-:class:`ValueError` if the given timeout for their constructor is zero to
-prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
diff --git a/Misc/NEWS.d/next/Library/2020-01-12-17-19-40.bpo-39259.iax06r.rst b/Misc/NEWS.d/next/Library/2020-01-12-17-19-40.bpo-39259.iax06r.rst
deleted file mode 100644
index bfcaff3c3d0..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-12-17-19-40.bpo-39259.iax06r.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-:class:`~ftplib.FTP_TLS` and :class:`~ftplib.FTP_TLS` now raise a
-:class:`ValueError` if the given timeout for their constructor is zero to
-prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
diff --git a/Misc/NEWS.d/next/Library/2020-01-12-18-17-00.bpo-39313.DCTsnm.rst b/Misc/NEWS.d/next/Library/2020-01-12-18-17-00.bpo-39313.DCTsnm.rst
deleted file mode 100644
index 784d73c7b3f..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-12-18-17-00.bpo-39313.DCTsnm.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Add a new ``exec_function`` option (*--exec-function* in the CLI) to
-``RefactoringTool`` for making ``exec`` a function. Patch by Batuhan Taskaya.
diff --git a/Misc/NEWS.d/next/Library/2020-01-14-22-16-07.bpo-39329.6OKGBn.rst b/Misc/NEWS.d/next/Library/2020-01-14-22-16-07.bpo-39329.6OKGBn.rst
deleted file mode 100644
index 1e3da4618b4..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-14-22-16-07.bpo-39329.6OKGBn.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-:class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter.
-Patch by Dong-hee Na.
diff --git a/Misc/NEWS.d/next/Library/2020-01-16-09-15-40.bpo-39350.ZQx0uY.rst b/Misc/NEWS.d/next/Library/2020-01-16-09-15-40.bpo-39350.ZQx0uY.rst
deleted file mode 100644
index 264e52fdc51..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-16-09-15-40.bpo-39350.ZQx0uY.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Remove ``fractions.gcd()`` function, deprecated since Python 3.5
-(:issue:`22486`): use :func:`math.gcd` instead.
diff --git a/Misc/NEWS.d/next/Library/2020-01-16-09-27-28.bpo-39351.a-FQdv.rst b/Misc/NEWS.d/next/Library/2020-01-16-09-27-28.bpo-39351.a-FQdv.rst
deleted file mode 100644
index b89bec97bfa..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-16-09-27-28.bpo-39351.a-FQdv.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Remove ``base64.encodestring()`` and ``base64.decodestring()``, aliases
-deprecated since Python 3.1: use :func:`base64.encodebytes` and
-:func:`base64.decodebytes` instead.
diff --git a/Misc/NEWS.d/next/Library/2020-01-16-10-21-48.bpo-39353.ntp7Ql.rst b/Misc/NEWS.d/next/Library/2020-01-16-10-21-48.bpo-39353.ntp7Ql.rst
deleted file mode 100644
index c0d4583ca7f..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-16-10-21-48.bpo-39353.ntp7Ql.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Deprecate binhex4 and hexbin4 standards. Deprecate the :mod:`binhex` module and
-the following :mod:`binascii` functions: :func:`~binascii.b2a_hqx`,
-:func:`~binascii.a2b_hqx`, :func:`~binascii.rlecode_hqx`,
-:func:`~binascii.rledecode_hqx`, :func:`~binascii.crc_hqx`.
diff --git a/Misc/NEWS.d/next/Library/2020-01-16-11-24-00.bpo-39357.bCwx-h.rst b/Misc/NEWS.d/next/Library/2020-01-16-11-24-00.bpo-39357.bCwx-h.rst
deleted file mode 100644
index a90802c91a2..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-16-11-24-00.bpo-39357.bCwx-h.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Remove the *buffering* parameter of :class:`bz2.BZ2File`. Since Python 3.0, it
-was ignored and using it was emitting :exc:`DeprecationWarning`. Pass an open
-file object, to control how the file is opened. The *compresslevel* parameter
-becomes keyword-only.
diff --git a/Misc/NEWS.d/next/Library/2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst b/Misc/NEWS.d/next/Library/2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst
deleted file mode 100644
index 00d98a7f183..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-17-18-14-51.bpo-39366.Cv3NQS.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-The previously deprecated ``xpath()`` and ``xgtitle()`` methods of
-:class:`nntplib.NNTP` have been removed.
diff --git a/Misc/NEWS.d/next/Library/2020-01-20-00-56-01.bpo-39389.fEirIS.rst b/Misc/NEWS.d/next/Library/2020-01-20-00-56-01.bpo-39389.fEirIS.rst
deleted file mode 100644
index d4c80506f7d..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-20-00-56-01.bpo-39389.fEirIS.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Write accurate compression level metadata in :mod:`gzip` archives, rather
-than always signaling maximum compression.
diff --git a/Misc/NEWS.d/next/Library/2020-01-20-13-00-35.bpo-39377.QSFdaU.rst b/Misc/NEWS.d/next/Library/2020-01-20-13-00-35.bpo-39377.QSFdaU.rst
deleted file mode 100644
index 8493ac88e4b..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-20-13-00-35.bpo-39377.QSFdaU.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Removed ``encoding`` option from :func:`json.loads`. It has been deprecated
-since Python 3.1.
diff --git a/Misc/NEWS.d/next/Library/2020-01-20-18-48-00.bpo-29435.qqJ2Ax.rst b/Misc/NEWS.d/next/Library/2020-01-20-18-48-00.bpo-29435.qqJ2Ax.rst
deleted file mode 100644
index eabc94242c8..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-20-18-48-00.bpo-29435.qqJ2Ax.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Allow :func:`tarfile.is_tarfile` to be used with file and file-like
-objects, like :func:`zipfile.is_zipfile`. Patch by William Woodruff.
diff --git a/Misc/NEWS.d/next/Library/2020-01-21-09-00-42.bpo-39396.6UXQXE.rst b/Misc/NEWS.d/next/Library/2020-01-21-09-00-42.bpo-39396.6UXQXE.rst
deleted file mode 100644
index af7076854a5..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-21-09-00-42.bpo-39396.6UXQXE.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix ``math.nextafter(-0.0, +0.0)`` on AIX 7.1.
diff --git a/Misc/NEWS.d/next/Library/2020-01-22-21-18-58.bpo-39406.HMpe8x.rst b/Misc/NEWS.d/next/Library/2020-01-22-21-18-58.bpo-39406.HMpe8x.rst
deleted file mode 100644
index 56a53160432..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-22-21-18-58.bpo-39406.HMpe8x.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-If ``setenv()`` C function is available, :func:`os.putenv` is now
-implemented with ``setenv()`` instead of ``putenv()``, so Python doesn't
-have to handle the environment variable memory.
diff --git a/Misc/NEWS.d/next/Library/2020-01-23-03-05-41.bpo-39395.4dda42.rst b/Misc/NEWS.d/next/Library/2020-01-23-03-05-41.bpo-39395.4dda42.rst
deleted file mode 100644
index cf713709dcf..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-23-03-05-41.bpo-39395.4dda42.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-The :func:`os.putenv` and :func:`os.unsetenv` functions are now always
-available.
diff --git a/Misc/NEWS.d/next/Library/2020-01-23-21-34-29.bpo-39390.D2tSXk.rst b/Misc/NEWS.d/next/Library/2020-01-23-21-34-29.bpo-39390.D2tSXk.rst
deleted file mode 100644
index ffa961ea4cd..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-23-21-34-29.bpo-39390.D2tSXk.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fixed a regression with the `ignore` callback of :func:`shutil.copytree`.
-The argument types are now str and List[str] again.
diff --git a/Misc/NEWS.d/next/Library/2020-01-24-10-10-25.bpo-39413.7XYDM8.rst b/Misc/NEWS.d/next/Library/2020-01-24-10-10-25.bpo-39413.7XYDM8.rst
deleted file mode 100644
index a185ab5efe2..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-24-10-10-25.bpo-39413.7XYDM8.rst
+++ /dev/null
@@ -1 +0,0 @@
-The :func:`os.unsetenv` function is now also available on Windows.
diff --git a/Misc/NEWS.d/next/Library/2020-01-24-11-05-21.bpo-39430.I0UQzM.rst b/Misc/NEWS.d/next/Library/2020-01-24-11-05-21.bpo-39430.I0UQzM.rst
deleted file mode 100644
index 712fc5d34bb..00000000000
--- a/Misc/NEWS.d/next/Library/2020-01-24-11-05-21.bpo-39430.I0UQzM.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fixed race condition in lazy imports in :mod:`tarfile`.
diff --git a/README.rst b/README.rst
index e8fd598a61e..5971d4aefcb 100644
--- a/README.rst
+++ b/README.rst
@@ -1,4 +1,4 @@
-This is Python version 3.9.0 alpha 2
+This is Python version 3.9.0 alpha 3
====================================
.. image:: https://travis-ci.org/python/cpython.svg?branch=master
From d0d9fa8c5e30aff71b6d5e8b2673396622f33270 Mon Sep 17 00:00:00 2001
From: Cheryl Sabella
Date: Sat, 25 Jan 2020 04:00:54 -0500
Subject: [PATCH 202/380] bpo-39388: IDLE: Fix bug when cancelling out of
configdialog (GH-18068)
Co-authored-by: Terry Jan Reedy
---
Lib/idlelib/NEWS.txt | 4 +++-
Lib/idlelib/configdialog.py | 1 +
Lib/idlelib/idle_test/test_configdialog.py | 21 ++++++++++++-------
.../2020-01-25-02-26-45.bpo-39388.x4TQNh.rst | 1 +
4 files changed, 19 insertions(+), 8 deletions(-)
create mode 100644 Misc/NEWS.d/next/IDLE/2020-01-25-02-26-45.bpo-39388.x4TQNh.rst
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index 708292ebee9..eda7c278876 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,7 +3,9 @@ Released on 2020-10-05?
======================================
-bpo-39050: Make Settings dialog Help button work again.
+bpo-39388: Settings dialog Cancel button cancels pending changes.
+
+bpo-39050: Settings dialog Help button again displays help text.
bpo-32989: Add tests for editor newline_and_indent_event method.
Remove unneeded arguments and dead code from pyparse
diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py
index 0e007b516ea..2f95c9ccaa0 100644
--- a/Lib/idlelib/configdialog.py
+++ b/Lib/idlelib/configdialog.py
@@ -191,6 +191,7 @@ class ConfigDialog(Toplevel):
Methods:
destroy: inherited
"""
+ changes.clear()
self.destroy()
def destroy(self):
diff --git a/Lib/idlelib/idle_test/test_configdialog.py b/Lib/idlelib/idle_test/test_configdialog.py
index 7c575d0e599..817a35217bf 100644
--- a/Lib/idlelib/idle_test/test_configdialog.py
+++ b/Lib/idlelib/idle_test/test_configdialog.py
@@ -47,17 +47,24 @@ def tearDownModule():
root.destroy()
root = dialog = None
-class ConfigDialogTest(unittest.TestCase):
- def test_help(self):
+class DialogTest(unittest.TestCase):
+
+ @mock.patch(__name__+'.dialog.destroy', new_callable=Func)
+ def test_cancel(self, destroy):
+ changes['main']['something'] = 1
+ dialog.cancel()
+ self.assertEqual(changes['main'], {})
+ self.assertEqual(destroy.called, 1)
+
+ @mock.patch('idlelib.configdialog.view_text', new_callable=Func)
+ def test_help(self, view):
dialog.note.select(dialog.keyspage)
- saved = configdialog.view_text
- view = configdialog.view_text = Func()
dialog.help()
s = view.kwds['contents']
- self.assertTrue(s.startswith('When you click'))
- self.assertTrue(s.endswith('a different name.\n'))
- configdialog.view_text = saved
+ self.assertTrue(s.startswith('When you click') and
+ s.endswith('a different name.\n'))
+
class FontPageTest(unittest.TestCase):
"""Test that font widgets enable users to make font changes.
diff --git a/Misc/NEWS.d/next/IDLE/2020-01-25-02-26-45.bpo-39388.x4TQNh.rst b/Misc/NEWS.d/next/IDLE/2020-01-25-02-26-45.bpo-39388.x4TQNh.rst
new file mode 100644
index 00000000000..42bbfb168c1
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2020-01-25-02-26-45.bpo-39388.x4TQNh.rst
@@ -0,0 +1 @@
+IDLE Settings Cancel button now cancels pending changes
From 62865f4532094017a9b780b704686ca9734bc329 Mon Sep 17 00:00:00 2001
From: Matthew Kokotovich
Date: Sat, 25 Jan 2020 04:17:47 -0600
Subject: [PATCH 203/380] bpo-39082: Allow AsyncMock to correctly patch
static/class methods (GH-18116)
---
Lib/unittest/mock.py | 2 ++
Lib/unittest/test/testmock/testasync.py | 23 +++++++++++++++++++
.../2020-01-24-13-24-35.bpo-39082.qKgrq_.rst | 1 +
3 files changed, 26 insertions(+)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-24-13-24-35.bpo-39082.qKgrq_.rst
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
index 92b596f672c..047ae7c2559 100644
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -46,6 +46,8 @@ _safe_super = super
def _is_async_obj(obj):
if _is_instance_mock(obj) and not isinstance(obj, AsyncMock):
return False
+ if hasattr(obj, '__func__'):
+ obj = getattr(obj, '__func__')
return asyncio.iscoroutinefunction(obj) or inspect.isawaitable(obj)
diff --git a/Lib/unittest/test/testmock/testasync.py b/Lib/unittest/test/testmock/testasync.py
index 73d31a29668..43b87498ef3 100644
--- a/Lib/unittest/test/testmock/testasync.py
+++ b/Lib/unittest/test/testmock/testasync.py
@@ -19,6 +19,15 @@ class AsyncClass:
def normal_method(self):
pass
+ @classmethod
+ async def async_class_method(cls):
+ pass
+
+ @staticmethod
+ async def async_static_method():
+ pass
+
+
class AwaitableClass:
def __await__(self):
yield
@@ -71,6 +80,20 @@ class AsyncPatchDecoratorTest(unittest.TestCase):
test_async()
+ def test_is_AsyncMock_patch_staticmethod(self):
+ @patch.object(AsyncClass, 'async_static_method')
+ def test_async(mock_method):
+ self.assertIsInstance(mock_method, AsyncMock)
+
+ test_async()
+
+ def test_is_AsyncMock_patch_classmethod(self):
+ @patch.object(AsyncClass, 'async_class_method')
+ def test_async(mock_method):
+ self.assertIsInstance(mock_method, AsyncMock)
+
+ test_async()
+
def test_async_def_patch(self):
@patch(f"{__name__}.async_func", return_value=1)
@patch(f"{__name__}.async_func_args", return_value=2)
diff --git a/Misc/NEWS.d/next/Library/2020-01-24-13-24-35.bpo-39082.qKgrq_.rst b/Misc/NEWS.d/next/Library/2020-01-24-13-24-35.bpo-39082.qKgrq_.rst
new file mode 100644
index 00000000000..52c4ee1b33b
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-24-13-24-35.bpo-39082.qKgrq_.rst
@@ -0,0 +1 @@
+Allow AsyncMock to correctly patch static/class methods
From 40c080934b3d49311209b1cb690c2ea1e04df7e7 Mon Sep 17 00:00:00 2001
From: Paulo Henrique Silva
Date: Sat, 25 Jan 2020 07:53:54 -0300
Subject: [PATCH 204/380] bpo-37955: correct mock.patch docs with respect to
the returned type (GH-15521)
---
Doc/library/unittest.mock.rst | 3 ++-
Lib/unittest/mock.py | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/Doc/library/unittest.mock.rst b/Doc/library/unittest.mock.rst
index 8394304cfdd..515bdd060a1 100644
--- a/Doc/library/unittest.mock.rst
+++ b/Doc/library/unittest.mock.rst
@@ -1401,7 +1401,8 @@ patch
"as"; very useful if :func:`patch` is creating a mock object for you.
:func:`patch` takes arbitrary keyword arguments. These will be passed to
- the :class:`Mock` (or *new_callable*) on construction.
+ :class:`AsyncMock` if the patched object is asynchronous, to
+ :class:`MagicMock` otherwise or to *new_callable* if specified.
``patch.dict(...)``, ``patch.multiple(...)`` and ``patch.object(...)`` are
available for alternate use-cases.
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
index 047ae7c2559..a97542a2ddf 100644
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -1730,7 +1730,8 @@ def patch(
"as"; very useful if `patch` is creating a mock object for you.
`patch` takes arbitrary keyword arguments. These will be passed to
- the `Mock` (or `new_callable`) on construction.
+ `AsyncMock` if the patched object is asynchronous, to `MagicMock`
+ otherwise or to `new_callable` if specified.
`patch.dict(...)`, `patch.multiple(...)` and `patch.object(...)` are
available for alternate use-cases.
From d23b08f8d006b94fefcaa664c3c8e600c5055b33 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Langa?=
Date: Sat, 25 Jan 2020 14:52:44 +0100
Subject: [PATCH 205/380] Post 3.9.0a3
---
Include/patchlevel.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Include/patchlevel.h b/Include/patchlevel.h
index d0720f7d8c6..a62e175d966 100644
--- a/Include/patchlevel.h
+++ b/Include/patchlevel.h
@@ -23,7 +23,7 @@
#define PY_RELEASE_SERIAL 3
/* Version as a string */
-#define PY_VERSION "3.9.0a3"
+#define PY_VERSION "3.9.0a3+"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
From 9bfb4a7061a3bc4fc5632bccfdf9ed61f62679f7 Mon Sep 17 00:00:00 2001
From: fireattack
Date: Sat, 25 Jan 2020 09:08:13 -0600
Subject: [PATCH 206/380] Update 3.8.rst (GH-18173)
Fixed the name of the contributor (@selik).
---
Doc/whatsnew/3.8.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst
index 0927a965dd3..fabc1c597ec 100644
--- a/Doc/whatsnew/3.8.rst
+++ b/Doc/whatsnew/3.8.rst
@@ -725,7 +725,7 @@ csv
The :class:`csv.DictReader` now returns instances of :class:`dict` instead of
a :class:`collections.OrderedDict`. The tool is now faster and uses less
memory while still preserving the field order.
-(Contributed by Michael Seek in :issue:`34003`.)
+(Contributed by Michael Selik in :issue:`34003`.)
curses
From aef7dc89879d099dc704bd8037b8a7686fb72838 Mon Sep 17 00:00:00 2001
From: Vegard Stikbakke
Date: Sat, 25 Jan 2020 16:44:46 +0100
Subject: [PATCH 207/380] bpo-38932: Mock fully resets child objects on
reset_mock(). (GH-17409)
---
Lib/unittest/mock.py | 2 +-
Lib/unittest/test/testmock/testmock.py | 14 +++++++++++++-
.../2020-01-25-13-41-27.bpo-38932.1pu_8I.rst | 1 +
3 files changed, 15 insertions(+), 2 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2020-01-25-13-41-27.bpo-38932.1pu_8I.rst
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
index a97542a2ddf..beed717522b 100644
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -592,7 +592,7 @@ class NonCallableMock(Base):
for child in self._mock_children.values():
if isinstance(child, _SpecState) or child is _deleted:
continue
- child.reset_mock(visited)
+ child.reset_mock(visited, return_value=return_value, side_effect=side_effect)
ret = self._mock_return_value
if _is_instance_mock(ret) and ret is not self:
diff --git a/Lib/unittest/test/testmock/testmock.py b/Lib/unittest/test/testmock/testmock.py
index 1030d12323d..1329346ae72 100644
--- a/Lib/unittest/test/testmock/testmock.py
+++ b/Lib/unittest/test/testmock/testmock.py
@@ -1636,11 +1636,23 @@ class MockTest(unittest.TestCase):
self.assertNotEqual(m.side_effect, None)
def test_reset_sideeffect(self):
- m = Mock(return_value=10, side_effect=[2,3])
+ m = Mock(return_value=10, side_effect=[2, 3])
m.reset_mock(side_effect=True)
self.assertEqual(m.return_value, 10)
self.assertEqual(m.side_effect, None)
+ def test_reset_return_with_children(self):
+ m = MagicMock(f=MagicMock(return_value=1))
+ self.assertEqual(m.f(), 1)
+ m.reset_mock(return_value=True)
+ self.assertNotEqual(m.f(), 1)
+
+ def test_reset_return_with_children_side_effect(self):
+ m = MagicMock(f=MagicMock(side_effect=[2, 3]))
+ self.assertNotEqual(m.f.side_effect, None)
+ m.reset_mock(side_effect=True)
+ self.assertEqual(m.f.side_effect, None)
+
def test_mock_add_spec(self):
class _One(object):
one = 1
diff --git a/Misc/NEWS.d/next/Library/2020-01-25-13-41-27.bpo-38932.1pu_8I.rst b/Misc/NEWS.d/next/Library/2020-01-25-13-41-27.bpo-38932.1pu_8I.rst
new file mode 100644
index 00000000000..d9ce8e816bc
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-01-25-13-41-27.bpo-38932.1pu_8I.rst
@@ -0,0 +1 @@
+Mock fully resets child objects on reset_mock(). Patch by Vegard Stikbakke
From 7de617455ed788e6730c40cf854c4b72b0432194 Mon Sep 17 00:00:00 2001
From: alclarks <57201106+alclarks@users.noreply.github.com>
Date: Sat, 25 Jan 2020 18:49:58 +0000
Subject: [PATCH 208/380] bpo-15243: Document __prepare__ as classmethod
(GH-17124)
---
Doc/reference/datamodel.rst | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst
index 1442fbeb33d..9520f824287 100644
--- a/Doc/reference/datamodel.rst
+++ b/Doc/reference/datamodel.rst
@@ -1945,7 +1945,8 @@ Preparing the class namespace
Once the appropriate metaclass has been identified, then the class namespace
is prepared. If the metaclass has a ``__prepare__`` attribute, it is called
as ``namespace = metaclass.__prepare__(name, bases, **kwds)`` (where the
-additional keyword arguments, if any, come from the class definition).
+additional keyword arguments, if any, come from the class definition). The
+``__prepare__`` method should be implemented as a :func:`classmethod`.
If the metaclass has no ``__prepare__`` attribute, then the class namespace
is initialised as an empty ordered mapping.
From 4b09dc79f4d08d85f2cc945563e9c8ef1e531d7b Mon Sep 17 00:00:00 2001
From: Windson yang
Date: Sun, 26 Jan 2020 03:23:00 +0800
Subject: [PATCH 209/380] bpo-36654: Add examples for using tokenize module
programmically (#12947)
---
Doc/library/tokenize.rst | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/Doc/library/tokenize.rst b/Doc/library/tokenize.rst
index b208ba46d17..96778f23f8f 100644
--- a/Doc/library/tokenize.rst
+++ b/Doc/library/tokenize.rst
@@ -278,3 +278,22 @@ The exact token type names can be displayed using the :option:`-e` option:
4,10-4,11: RPAR ')'
4,11-4,12: NEWLINE '\n'
5,0-5,0: ENDMARKER ''
+
+Example of tokenizing a file programmatically, reading unicode
+strings instead of bytes with :func:`generate_tokens`::
+
+ import tokenize
+
+ with tokenize.open('hello.py') as f:
+ tokens = tokenize.generate_tokens(f.readline)
+ for token in tokens:
+ print(token)
+
+Or reading bytes directly with :func:`.tokenize`::
+
+ import tokenize
+
+ with open('hello.py', 'rb') as f:
+ tokens = tokenize.tokenize(f.readline)
+ for token in tokens:
+ print(token)
From 8271441d8b6e1f8eae1457c437da24e775801d9f Mon Sep 17 00:00:00 2001
From: Juhana Jauhiainen
Date: Sun, 26 Jan 2020 00:18:58 +0200
Subject: [PATCH 210/380] bpo-39374: Updated sorting documentation (GH-18177)
---
Doc/howto/sorting.rst | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/Doc/howto/sorting.rst b/Doc/howto/sorting.rst
index 1d6d5c45b4d..a8efe65353d 100644
--- a/Doc/howto/sorting.rst
+++ b/Doc/howto/sorting.rst
@@ -43,16 +43,18 @@ Key Functions
=============
Both :meth:`list.sort` and :func:`sorted` have a *key* parameter to specify a
-function to be called on each list element prior to making comparisons.
+function (or other callable) to be called on each list element prior to making
+comparisons.
For example, here's a case-insensitive string comparison:
>>> sorted("This is a test string from Andrew".split(), key=str.lower)
['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']
-The value of the *key* parameter should be a function that takes a single argument
-and returns a key to use for sorting purposes. This technique is fast because
-the key function is called exactly once for each input record.
+The value of the *key* parameter should be a function (or other callable) that
+takes a single argument and returns a key to use for sorting purposes. This
+technique is fast because the key function is called exactly once for each
+input record.
A common pattern is to sort complex objects using some of the object's indices
as keys. For example:
From 4515a590a4a4c09231a66e81782f33b4bfcd5054 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8A=A0=E5=92=8C?=
Date: Sun, 26 Jan 2020 10:07:40 +0800
Subject: [PATCH 211/380] Fix linecache.py add lazycache to __all__ and use
dict.clear to clear the cache (GH-4641)
---
Lib/linecache.py | 36 +++++++++----------
.../2017-12-04-10-14-23.bpo-32173.e0C5dF.rst | 3 ++
2 files changed, 21 insertions(+), 18 deletions(-)
create mode 100644 Misc/NEWS.d/next/Library/2017-12-04-10-14-23.bpo-32173.e0C5dF.rst
diff --git a/Lib/linecache.py b/Lib/linecache.py
index 3afcce1f0a1..ddd0abf2cf0 100644
--- a/Lib/linecache.py
+++ b/Lib/linecache.py
@@ -10,17 +10,8 @@ import sys
import os
import tokenize
-__all__ = ["getline", "clearcache", "checkcache"]
+__all__ = ["getline", "clearcache", "checkcache", "lazycache"]
-def getline(filename, lineno, module_globals=None):
- lines = getlines(filename, module_globals)
- if 1 <= lineno <= len(lines):
- return lines[lineno-1]
- else:
- return ''
-
-
-# The cache
# The cache. Maps filenames to either a thunk which will provide source code,
# or a tuple (size, mtime, lines, fullname) once loaded.
@@ -29,9 +20,17 @@ cache = {}
def clearcache():
"""Clear the cache entirely."""
+ cache.clear()
- global cache
- cache = {}
+
+def getline(filename, lineno, module_globals=None):
+ """Get a line for a Python source file from the cache.
+ Update the cache if it doesn't contain an entry for this file already."""
+
+ lines = getlines(filename, module_globals)
+ if 1 <= lineno <= len(lines):
+ return lines[lineno - 1]
+ return ''
def getlines(filename, module_globals=None):
@@ -56,11 +55,10 @@ def checkcache(filename=None):
if filename is None:
filenames = list(cache.keys())
+ elif filename in cache:
+ filenames = [filename]
else:
- if filename in cache:
- filenames = [filename]
- else:
- return
+ return
for filename in filenames:
entry = cache[filename]
@@ -109,8 +107,10 @@ def updatecache(filename, module_globals=None):
# for this module.
return []
cache[filename] = (
- len(data), None,
- [line+'\n' for line in data.splitlines()], fullname
+ len(data),
+ None,
+ [line + '\n' for line in data.splitlines()],
+ fullname
)
return cache[filename][2]
diff --git a/Misc/NEWS.d/next/Library/2017-12-04-10-14-23.bpo-32173.e0C5dF.rst b/Misc/NEWS.d/next/Library/2017-12-04-10-14-23.bpo-32173.e0C5dF.rst
new file mode 100644
index 00000000000..fc8f36fb021
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2017-12-04-10-14-23.bpo-32173.e0C5dF.rst
@@ -0,0 +1,3 @@
+* Add `lazycache` function to `__all__`.
+* Use `dict.clear` to clear the cache.
+* Refactoring `getline` function and `checkcache` function.
From 10355ed7f132ed10f1e0d8bd64ccb744b86b1cce Mon Sep 17 00:00:00 2001
From: Raymond Hettinger
Date: Sat, 25 Jan 2020 20:21:17 -0800
Subject: [PATCH 212/380] bpo-36018: Add another example for NormalDist()
(#18191)
---
Doc/library/statistics.rst | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/Doc/library/statistics.rst b/Doc/library/statistics.rst
index 4c7239c1895..09b02cabf21 100644
--- a/Doc/library/statistics.rst
+++ b/Doc/library/statistics.rst
@@ -772,6 +772,42 @@ Carlo simulation `_:
>>> quantiles(map(model, X, Y, Z)) # doctest: +SKIP
[1.4591308524824727, 1.8035946855390597, 2.175091447274739]
+Normal distributions can be used to approximate `Binomial
+distributions `_
+when the sample size is large and when the probability of a successful
+trial is near 50%.
+
+For example, an open source conference has 750 attendees and two rooms with a
+500 person capacity. There is a talk about Python and another about Ruby.
+In previous conferences, 65% of the attendees preferred to listen to Python
+talks. Assuming the population preferences haven't changed, what is the
+probability that the rooms will stay within their capacity limits?
+
+.. doctest::
+
+ >>> n = 750 # Sample size
+ >>> p = 0.65 # Preference for Python
+ >>> q = 1.0 - p # Preference for Ruby
+ >>> k = 500 # Room capacity
+
+ >>> # Approximation using the cumulative normal distribution
+ >>> from math import sqrt
+ >>> round(NormalDist(mu=n*p, sigma=sqrt(n*p*q)).cdf(k + 0.5), 4)
+ 0.8402
+
+ >>> # Solution using the cumulative binomial distribution
+ >>> from math import comb, fsum
+ >>> round(fsum(comb(n, r) * p**r * q**(n-r) for r in range(k+1)), 4)
+ 0.8402
+
+ >>> # Approximation using a simulation
+ >>> from random import seed, choices
+ >>> seed(8675309)
+ >>> def trial():
+ ... return choices(('Python', 'Ruby'), (p, q), k=n).count('Python')
+ >>> mean(trial() <= k for i in range(10_000))
+ 0.8398
+
Normal distributions commonly arise in machine learning problems.
Wikipedia has a `nice example of a Naive Bayesian Classifier
From 72b1004657e60c900e4cd031b2635b587f4b280e Mon Sep 17 00:00:00 2001
From: Karthikeyan Singaravelan
Date: Mon, 27 Jan 2020 12:18:15 +0530
Subject: [PATCH 213/380] bpo-25597: Ensure wraps' return value is used for
magic methods in MagicMock (#16029)
---
Lib/unittest/mock.py | 6 +++
Lib/unittest/test/testmock/testmock.py | 47 +++++++++++++++++++
.../2019-09-12-12-11-05.bpo-25597.mPMzVx.rst | 3 ++
3 files changed, 56 insertions(+)
create mode 100644 Misc/NEWS.d/next/Library/2019-09-12-12-11-05.bpo-25597.mPMzVx.rst
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
index beed717522b..1acafc51df1 100644
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -2033,6 +2033,12 @@ _side_effect_methods = {
def _set_return_value(mock, method, name):
+ # If _mock_wraps is present then attach it so that wrapped object
+ # is used for return value is used when called.
+ if mock._mock_wraps is not None:
+ method._mock_wraps = getattr(mock._mock_wraps, name)
+ return
+
fixed = _return_values.get(name, DEFAULT)
if fixed is not DEFAULT:
method.return_value = fixed
diff --git a/Lib/unittest/test/testmock/testmock.py b/Lib/unittest/test/testmock/testmock.py
index 1329346ae72..677346725bd 100644
--- a/Lib/unittest/test/testmock/testmock.py
+++ b/Lib/unittest/test/testmock/testmock.py
@@ -715,6 +715,53 @@ class MockTest(unittest.TestCase):
self.assertRaises(StopIteration, mock.method)
+ def test_magic_method_wraps_dict(self):
+ data = {'foo': 'bar'}
+
+ wrapped_dict = MagicMock(wraps=data)
+ self.assertEqual(wrapped_dict.get('foo'), 'bar')
+ self.assertEqual(wrapped_dict['foo'], 'bar')
+ self.assertTrue('foo' in wrapped_dict)
+
+ # return_value is non-sentinel and takes precedence over wrapped value.
+ wrapped_dict.get.return_value = 'return_value'
+ self.assertEqual(wrapped_dict.get('foo'), 'return_value')
+
+ # return_value is sentinel and hence wrapped value is returned.
+ wrapped_dict.get.return_value = sentinel.DEFAULT
+ self.assertEqual(wrapped_dict.get('foo'), 'bar')
+
+ self.assertEqual(wrapped_dict.get('baz'), None)
+ with self.assertRaises(KeyError):
+ wrapped_dict['baz']
+ self.assertFalse('bar' in wrapped_dict)
+
+ data['baz'] = 'spam'
+ self.assertEqual(wrapped_dict.get('baz'), 'spam')
+ self.assertEqual(wrapped_dict['baz'], 'spam')
+ self.assertTrue('baz' in wrapped_dict)
+
+ del data['baz']
+ self.assertEqual(wrapped_dict.get('baz'), None)
+
+
+ def test_magic_method_wraps_class(self):
+
+ class Foo:
+
+ def __getitem__(self, index):
+ return index
+
+ def __custom_method__(self):
+ return "foo"
+
+
+ klass = MagicMock(wraps=Foo)
+ obj = klass()
+ self.assertEqual(obj.__getitem__(2), 2)
+ self.assertEqual(obj.__custom_method__(), "foo")
+
+
def test_exceptional_side_effect(self):
mock = Mock(side_effect=AttributeError)
self.assertRaises(AttributeError, mock)
diff --git a/Misc/NEWS.d/next/Library/2019-09-12-12-11-05.bpo-25597.mPMzVx.rst b/Misc/NEWS.d/next/Library/2019-09-12-12-11-05.bpo-25597.mPMzVx.rst
new file mode 100644
index 00000000000..5ad8c6d90fa
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-09-12-12-11-05.bpo-25597.mPMzVx.rst
@@ -0,0 +1,3 @@
+Ensure, if ``wraps`` is supplied to :class:`unittest.mock.MagicMock`, it is used
+to calculate return values for the magic methods instead of using the default
+return values. Patch by Karthikeyan Singaravelan.
From 8a4cd700a7426341c2074a2b580306d2d60ec839 Mon Sep 17 00:00:00 2001
From: Mark Shannon
Date: Mon, 27 Jan 2020 09:57:45 +0000
Subject: [PATCH 214/380] bpo-39320: Handle unpacking of **values in compiler
(GH-18141)
* Add DICT_UPDATE and DICT_MERGE bytecodes. Use them for ** unpacking.
* Remove BUILD_MAP_UNPACK and BUILD_MAP_UNPACK_WITH_CALL, as they are now unused.
* Update magic number for ** unpacking opcodes.
* Update dis.rst to incorporate new bytecodes.
* Add blurb entry.
---
Doc/library/dis.rst | 21 +-
Include/opcode.h | 4 +-
Lib/importlib/_bootstrap_external.py | 3 +-
Lib/opcode.py | 5 +-
.../2020-01-15-15-50-22.bpo-39320.oWARyk.rst | 4 +
Python/ceval.c | 55 +-
Python/compile.c | 90 +-
Python/importlib.h | 2854 +++++------
Python/importlib_external.h | 4308 +++++++++--------
Python/opcode_targets.h | 8 +-
10 files changed, 3680 insertions(+), 3672 deletions(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-15-15-50-22.bpo-39320.oWARyk.rst
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst
index d5d30a03aea..61233d98a0d 100644
--- a/Doc/library/dis.rst
+++ b/Doc/library/dis.rst
@@ -873,32 +873,25 @@ All of the following opcodes use their arguments.
.. versionadded:: 3.9
-.. opcode:: SET_UPDATE
+.. opcode:: SET_UPDATE (i)
Calls ``set.update(TOS1[-i], TOS)``. Used to build sets.
.. versionadded:: 3.9
-.. opcode:: BUILD_MAP_UNPACK (count)
+.. opcode:: DICT_UPDATE (i)
- Pops *count* mappings from the stack, merges them into a single dictionary,
- and pushes the result. Implements dictionary unpacking in dictionary
- displays ``{**x, **y, **z}``.
+ Calls ``dict.update(TOS1[-i], TOS)``. Used to build dicts.
- .. versionadded:: 3.5
+ .. versionadded:: 3.9
-.. opcode:: BUILD_MAP_UNPACK_WITH_CALL (count)
+.. opcode:: DICT_MERGE
- This is similar to :opcode:`BUILD_MAP_UNPACK`,
- but is used for ``f(**x, **y, **z)`` call syntax. The stack item at
- position ``count + 2`` should be the corresponding callable ``f``.
+ Like :opcode:`DICT_UPDATE` but raises an exception for duplicate keys.
- .. versionadded:: 3.5
- .. versionchanged:: 3.6
- The position of the callable is determined by adding 2 to the opcode
- argument instead of encoding it in the second byte of the argument.
+ .. versionadded:: 3.9
.. opcode:: LOAD_ATTR (namei)
diff --git a/Include/opcode.h b/Include/opcode.h
index 1c5cd335f36..19944fac0b9 100644
--- a/Include/opcode.h
+++ b/Include/opcode.h
@@ -117,8 +117,6 @@ extern "C" {
#define SET_ADD 146
#define MAP_ADD 147
#define LOAD_CLASSDEREF 148
-#define BUILD_MAP_UNPACK 150
-#define BUILD_MAP_UNPACK_WITH_CALL 151
#define SETUP_ASYNC_WITH 154
#define FORMAT_VALUE 155
#define BUILD_CONST_KEY_MAP 156
@@ -127,6 +125,8 @@ extern "C" {
#define CALL_METHOD 161
#define LIST_EXTEND 162
#define SET_UPDATE 163
+#define DICT_MERGE 164
+#define DICT_UPDATE 165
/* EXCEPT_HANDLER is a special, implicit block type which is created when
entering an except handler. It is not an opcode but we define it here
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
index 6c703fa3f75..2434cf06fd4 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -276,6 +276,7 @@ _code_type = type(_write_atomic.__code__)
# Python 3.9a0 3422 (remove BEGIN_FINALLY, END_FINALLY, CALL_FINALLY, POP_FINALLY bytecodes #33387)
# Python 3.9a2 3423 (add IS_OP, CONTAINS_OP and JUMP_IF_NOT_EXC_MATCH bytecodes #39156)
# Python 3.9a2 3424 (simplify bytecodes for *value unpacking)
+# Python 3.9a2 3425 (simplify bytecodes for **value unpacking)
#
# MAGIC must change whenever the bytecode emitted by the compiler may no
@@ -285,7 +286,7 @@ _code_type = type(_write_atomic.__code__)
# Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array
# in PC/launcher.c must also be updated.
-MAGIC_NUMBER = (3424).to_bytes(2, 'little') + b'\r\n'
+MAGIC_NUMBER = (3425).to_bytes(2, 'little') + b'\r\n'
_RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c
_PYCACHE = '__pycache__'
diff --git a/Lib/opcode.py b/Lib/opcode.py
index 5bc2ddc3571..ac1aa535f66 100644
--- a/Lib/opcode.py
+++ b/Lib/opcode.py
@@ -200,9 +200,6 @@ hasfree.append(148)
def_op('EXTENDED_ARG', 144)
EXTENDED_ARG = 144
-def_op('BUILD_MAP_UNPACK', 150)
-def_op('BUILD_MAP_UNPACK_WITH_CALL', 151)
-
jrel_op('SETUP_ASYNC_WITH', 154)
def_op('FORMAT_VALUE', 155)
@@ -214,5 +211,7 @@ def_op('CALL_METHOD', 161)
def_op('LIST_EXTEND', 162)
def_op('SET_UPDATE', 163)
+def_op('DICT_MERGE', 164)
+def_op('DICT_UPDATE', 165)
del def_op, name_op, jrel_op, jabs_op
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-15-15-50-22.bpo-39320.oWARyk.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-15-15-50-22.bpo-39320.oWARyk.rst
new file mode 100644
index 00000000000..9508574f6c0
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-15-15-50-22.bpo-39320.oWARyk.rst
@@ -0,0 +1,4 @@
+
+Replace two complex bytecodes for building dicts with two simpler ones.
+The new bytecodes ``DICT_MERGE`` and ``DICT_UPDATE`` have been added
+The old bytecodes ``BUILD_MAP_UNPACK`` and ``BUILD_MAP_UNPACK_WITH_CALL`` have been removed.
diff --git a/Python/ceval.c b/Python/ceval.c
index 528ad7fdd1e..673b401e6ab 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -2801,49 +2801,32 @@ main_loop:
DISPATCH();
}
- case TARGET(BUILD_MAP_UNPACK): {
- Py_ssize_t i;
- PyObject *sum = PyDict_New();
- if (sum == NULL)
- goto error;
-
- for (i = oparg; i > 0; i--) {
- PyObject *arg = PEEK(i);
- if (PyDict_Update(sum, arg) < 0) {
- if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) {
- _PyErr_Format(tstate, PyExc_TypeError,
- "'%.200s' object is not a mapping",
- arg->ob_type->tp_name);
- }
- Py_DECREF(sum);
- goto error;
+ case TARGET(DICT_UPDATE): {
+ PyObject *update = POP();
+ PyObject *dict = PEEK(oparg);
+ if (PyDict_Update(dict, update) < 0) {
+ if (_PyErr_ExceptionMatches(tstate, PyExc_AttributeError)) {
+ _PyErr_Format(tstate, PyExc_TypeError,
+ "'%.200s' object is not a mapping",
+ update->ob_type->tp_name);
}
+ Py_DECREF(update);
+ goto error;
}
-
- while (oparg--)
- Py_DECREF(POP());
- PUSH(sum);
+ Py_DECREF(update);
DISPATCH();
}
- case TARGET(BUILD_MAP_UNPACK_WITH_CALL): {
- Py_ssize_t i;
- PyObject *sum = PyDict_New();
- if (sum == NULL)
+ case TARGET(DICT_MERGE): {
+ PyObject *update = POP();
+ PyObject *dict = PEEK(oparg);
+
+ if (_PyDict_MergeEx(dict, update, 2) < 0) {
+ format_kwargs_error(tstate, PEEK(2 + oparg), update);
+ Py_DECREF(update);
goto error;
-
- for (i = oparg; i > 0; i--) {
- PyObject *arg = PEEK(i);
- if (_PyDict_MergeEx(sum, arg, 2) < 0) {
- Py_DECREF(sum);
- format_kwargs_error(tstate, PEEK(2 + oparg), arg);
- goto error;
- }
}
-
- while (oparg--)
- Py_DECREF(POP());
- PUSH(sum);
+ Py_DECREF(update);
PREDICT(CALL_FUNCTION_EX);
DISPATCH();
}
diff --git a/Python/compile.c b/Python/compile.c
index 9ed29f4a1f9..6776df54d47 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1007,9 +1007,6 @@ stack_effect(int opcode, int oparg, int jump)
case BUILD_SET:
case BUILD_STRING:
return 1-oparg;
- case BUILD_MAP_UNPACK:
- case BUILD_MAP_UNPACK_WITH_CALL:
- return 1 - oparg;
case BUILD_MAP:
return 1 - 2*oparg;
case BUILD_CONST_KEY_MAP:
@@ -1125,6 +1122,8 @@ stack_effect(int opcode, int oparg, int jump)
return 0;
case LIST_EXTEND:
case SET_UPDATE:
+ case DICT_MERGE:
+ case DICT_UPDATE:
return -1;
default:
return PY_INVALID_STACK_EFFECT;
@@ -3868,37 +3867,58 @@ static int
compiler_dict(struct compiler *c, expr_ty e)
{
Py_ssize_t i, n, elements;
- int containers;
+ int have_dict;
int is_unpacking = 0;
n = asdl_seq_LEN(e->v.Dict.values);
- containers = 0;
+ have_dict = 0;
elements = 0;
for (i = 0; i < n; i++) {
is_unpacking = (expr_ty)asdl_seq_GET(e->v.Dict.keys, i) == NULL;
- if (elements == 0xFFFF || (elements && is_unpacking)) {
- if (!compiler_subdict(c, e, i - elements, i))
- return 0;
- containers++;
- elements = 0;
- }
if (is_unpacking) {
+ if (elements) {
+ if (!compiler_subdict(c, e, i - elements, i)) {
+ return 0;
+ }
+ if (have_dict) {
+ ADDOP_I(c, DICT_UPDATE, 1);
+ }
+ have_dict = 1;
+ elements = 0;
+ }
+ if (have_dict == 0) {
+ ADDOP_I(c, BUILD_MAP, 0);
+ have_dict = 1;
+ }
VISIT(c, expr, (expr_ty)asdl_seq_GET(e->v.Dict.values, i));
- containers++;
+ ADDOP_I(c, DICT_UPDATE, 1);
}
else {
- elements++;
+ if (elements == 0xFFFF) {
+ if (!compiler_subdict(c, e, i - elements, i)) {
+ return 0;
+ }
+ if (have_dict) {
+ ADDOP_I(c, DICT_UPDATE, 1);
+ }
+ have_dict = 1;
+ elements = 0;
+ }
+ else {
+ elements++;
+ }
}
}
- if (elements || containers == 0) {
- if (!compiler_subdict(c, e, n - elements, n))
+ if (elements) {
+ if (!compiler_subdict(c, e, n - elements, n)) {
return 0;
- containers++;
+ }
+ if (have_dict) {
+ ADDOP_I(c, DICT_UPDATE, 1);
+ }
+ have_dict = 1;
}
- /* If there is more than one dict, they need to be merged into a new
- * dict. If there is one dict and it's an unpacking, then it needs
- * to be copied into a new dict." */
- if (containers > 1 || is_unpacking) {
- ADDOP_I(c, BUILD_MAP_UNPACK, containers);
+ if (!have_dict) {
+ ADDOP_I(c, BUILD_MAP, 0);
}
return 1;
}
@@ -4263,8 +4283,8 @@ ex_call:
}
/* Then keyword arguments */
if (nkwelts) {
- /* the number of dictionaries on the stack */
- Py_ssize_t nsubkwargs = 0;
+ /* Has a new dict been pushed */
+ int have_dict = 0;
nseen = 0; /* the number of keyword arguments on the stack following */
for (i = 0; i < nkwelts; i++) {
@@ -4272,13 +4292,18 @@ ex_call:
if (kw->arg == NULL) {
/* A keyword argument unpacking. */
if (nseen) {
- if (!compiler_subkwargs(c, keywords, i - nseen, i))
+ if (!compiler_subkwargs(c, keywords, i - nseen, i)) {
return 0;
- nsubkwargs++;
+ }
+ have_dict = 1;
nseen = 0;
}
+ if (!have_dict) {
+ ADDOP_I(c, BUILD_MAP, 0);
+ have_dict = 1;
+ }
VISIT(c, expr, kw->value);
- nsubkwargs++;
+ ADDOP_I(c, DICT_MERGE, 1);
}
else {
nseen++;
@@ -4286,14 +4311,15 @@ ex_call:
}
if (nseen) {
/* Pack up any trailing keyword arguments. */
- if (!compiler_subkwargs(c, keywords, nkwelts - nseen, nkwelts))
+ if (!compiler_subkwargs(c, keywords, nkwelts - nseen, nkwelts)) {
return 0;
- nsubkwargs++;
- }
- if (nsubkwargs > 1) {
- /* Pack it all up */
- ADDOP_I(c, BUILD_MAP_UNPACK_WITH_CALL, nsubkwargs);
+ }
+ if (have_dict) {
+ ADDOP_I(c, DICT_MERGE, 1);
+ }
+ have_dict = 1;
}
+ assert(have_dict);
}
ADDOP_I(c, CALL_FUNCTION_EX, nkwelts > 0);
return 1;
diff --git a/Python/importlib.h b/Python/importlib.h
index 3a84e9bb1d8..7f999704f31 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -368,680 +368,824 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
99,107,95,117,110,108,111,99,107,95,109,111,100,117,108,101,
194,0,0,0,115,12,0,0,0,0,6,8,1,2,1,12,
1,12,3,6,2,114,64,0,0,0,99,1,0,0,0,0,
- 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,79,
- 0,0,0,115,10,0,0,0,124,0,124,1,124,2,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,111,118,101,32,
- 115,101,113,117,101,110,99,101,115,10,32,32,32,32,111,102,
- 32,105,109,112,111,114,116,108,105,98,32,102,114,97,109,101,
- 115,32,116,104,97,116,32,101,110,100,32,119,105,116,104,32,
- 97,32,99,97,108,108,32,116,111,32,116,104,105,115,32,102,
- 117,110,99,116,105,111,110,10,10,32,32,32,32,85,115,101,
- 32,105,116,32,105,110,115,116,101,97,100,32,111,102,32,97,
- 32,110,111,114,109,97,108,32,99,97,108,108,32,105,110,32,
- 112,108,97,99,101,115,32,119,104,101,114,101,32,105,110,99,
- 108,117,100,105,110,103,32,116,104,101,32,105,109,112,111,114,
- 116,108,105,98,10,32,32,32,32,102,114,97,109,101,115,32,
- 105,110,116,114,111,100,117,99,101,115,32,117,110,119,97,110,
- 116,101,100,32,110,111,105,115,101,32,105,110,116,111,32,116,
- 104,101,32,116,114,97,99,101,98,97,99,107,32,40,101,46,
- 103,46,32,119,104,101,110,32,101,120,101,99,117,116,105,110,
- 103,10,32,32,32,32,109,111,100,117,108,101,32,99,111,100,
- 101,41,10,32,32,32,32,114,10,0,0,0,41,3,218,1,
- 102,114,54,0,0,0,90,4,107,119,100,115,114,10,0,0,
- 0,114,10,0,0,0,114,11,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,211,0,0,0,115,2,0,0,0,0,
- 8,114,66,0,0,0,114,37,0,0,0,41,1,218,9,118,
- 101,114,98,111,115,105,116,121,99,1,0,0,0,0,0,0,
- 0,1,0,0,0,3,0,0,0,4,0,0,0,71,0,0,
- 0,115,54,0,0,0,116,0,106,1,106,2,124,1,107,5,
- 114,50,124,0,160,3,100,1,161,1,115,30,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,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,15,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,44,0,0,0,218,6,115,116,100,101,114,114,41,
- 3,218,7,109,101,115,115,97,103,101,114,67,0,0,0,114,
- 54,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,218,16,95,118,101,114,98,111,115,101,95,109,101,
- 115,115,97,103,101,222,0,0,0,115,8,0,0,0,0,2,
- 12,1,10,1,8,1,114,75,0,0,0,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
- 3,0,0,0,115,26,0,0,0,135,0,102,1,100,1,100,
- 2,132,8,125,1,116,0,124,1,136,0,131,2,1,0,124,
- 1,83,0,41,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,2,0,0,0,4,0,0,0,19,0,0,
- 0,115,38,0,0,0,124,1,116,0,106,1,118,1,114,28,
- 116,2,100,1,160,3,124,1,161,1,124,1,100,2,141,2,
- 130,1,136,0,124,0,124,1,131,2,83,0,41,3,78,250,
- 29,123,33,114,125,32,105,115,32,110,111,116,32,97,32,98,
- 117,105,108,116,45,105,110,32,109,111,100,117,108,101,114,16,
- 0,0,0,41,4,114,15,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,44,0,
- 0,0,169,2,114,30,0,0,0,218,8,102,117,108,108,110,
- 97,109,101,169,1,218,3,102,120,110,114,10,0,0,0,114,
- 11,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,232,
- 0,0,0,115,10,0,0,0,0,1,10,1,10,1,2,255,
- 6,2,122,52,95,114,101,113,117,105,114,101,115,95,98,117,
- 105,108,116,105,110,46,60,108,111,99,97,108,115,62,46,95,
- 114,101,113,117,105,114,101,115,95,98,117,105,108,116,105,110,
- 95,119,114,97,112,112,101,114,169,1,114,12,0,0,0,41,
- 2,114,82,0,0,0,114,83,0,0,0,114,10,0,0,0,
- 114,81,0,0,0,114,11,0,0,0,218,17,95,114,101,113,
- 117,105,114,101,115,95,98,117,105,108,116,105,110,230,0,0,
- 0,115,6,0,0,0,0,2,12,5,10,1,114,85,0,0,
- 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,3,0,0,0,3,0,0,0,115,26,0,0,0,135,
- 0,102,1,100,1,100,2,132,8,125,1,116,0,124,1,136,
- 0,131,2,1,0,124,1,83,0,41,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,2,0,0,0,4,0,0,
- 0,19,0,0,0,115,38,0,0,0,116,0,160,1,124,1,
- 161,1,115,28,116,2,100,1,160,3,124,1,161,1,124,1,
- 100,2,141,2,130,1,136,0,124,0,124,1,131,2,83,0,
- 169,3,78,122,27,123,33,114,125,32,105,115,32,110,111,116,
- 32,97,32,102,114,111,122,101,110,32,109,111,100,117,108,101,
- 114,16,0,0,0,41,4,114,56,0,0,0,218,9,105,115,
- 95,102,114,111,122,101,110,114,78,0,0,0,114,44,0,0,
- 0,114,79,0,0,0,114,81,0,0,0,114,10,0,0,0,
- 114,11,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,243,
- 0,0,0,115,10,0,0,0,0,1,10,1,10,1,2,255,
- 6,2,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,114,84,0,0,0,41,2,114,82,0,
- 0,0,114,88,0,0,0,114,10,0,0,0,114,81,0,0,
- 0,114,11,0,0,0,218,16,95,114,101,113,117,105,114,101,
- 115,95,102,114,111,122,101,110,241,0,0,0,115,6,0,0,
- 0,0,2,12,5,10,1,114,89,0,0,0,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,
- 0,67,0,0,0,115,62,0,0,0,116,0,124,1,124,0,
- 131,2,125,2,124,1,116,1,106,2,118,0,114,50,116,1,
- 106,2,124,1,25,0,125,3,116,3,124,2,124,3,131,2,
- 1,0,116,1,106,2,124,1,25,0,83,0,116,4,124,2,
- 131,1,83,0,100,1,83,0,41,2,122,128,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,32,105,110,
- 115,116,101,97,100,46,10,10,32,32,32,32,78,41,5,218,
- 16,115,112,101,99,95,102,114,111,109,95,108,111,97,100,101,
- 114,114,15,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,4,114,
- 30,0,0,0,114,80,0,0,0,218,4,115,112,101,99,218,
- 6,109,111,100,117,108,101,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,218,17,95,108,111,97,100,95,109,111,
- 100,117,108,101,95,115,104,105,109,253,0,0,0,115,12,0,
- 0,0,0,6,10,1,10,1,10,1,10,1,10,2,114,96,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 5,0,0,0,8,0,0,0,67,0,0,0,115,218,0,0,
- 0,116,0,124,0,100,1,100,0,131,3,125,1,116,1,124,
- 1,100,2,131,2,114,54,122,12,124,1,160,2,124,0,161,
- 1,87,0,83,0,4,0,116,3,121,52,1,0,1,0,1,
- 0,89,0,110,2,48,0,122,10,124,0,106,4,125,2,87,
- 0,110,18,4,0,116,5,121,82,1,0,1,0,1,0,89,
- 0,110,18,48,0,124,2,100,0,117,1,114,100,116,6,124,
- 2,131,1,83,0,122,10,124,0,106,7,125,3,87,0,110,
- 22,4,0,116,5,121,132,1,0,1,0,1,0,100,3,125,
- 3,89,0,110,2,48,0,122,10,124,0,106,8,125,4,87,
- 0,110,56,4,0,116,5,121,200,1,0,1,0,1,0,124,
- 1,100,0,117,0,114,180,100,4,160,9,124,3,161,1,6,
- 0,89,0,83,0,100,5,160,9,124,3,124,1,161,2,6,
- 0,89,0,83,0,89,0,110,14,48,0,100,6,160,9,124,
- 3,124,4,161,2,83,0,100,0,83,0,41,7,78,218,10,
- 95,95,108,111,97,100,101,114,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,10,114,6,0,0,0,114,
- 4,0,0,0,114,98,0,0,0,218,9,69,120,99,101,112,
- 116,105,111,110,218,8,95,95,115,112,101,99,95,95,218,14,
- 65,116,116,114,105,98,117,116,101,69,114,114,111,114,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,1,0,0,0,218,8,95,95,102,
- 105,108,101,95,95,114,44,0,0,0,41,5,114,95,0,0,
- 0,218,6,108,111,97,100,101,114,114,94,0,0,0,114,17,
- 0,0,0,218,8,102,105,108,101,110,97,109,101,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,218,12,95,109,
- 111,100,117,108,101,95,114,101,112,114,13,1,0,0,115,46,
- 0,0,0,0,2,12,1,10,4,2,1,12,1,12,1,6,
- 1,2,1,10,1,12,1,6,2,8,1,8,4,2,1,10,
- 1,12,1,10,1,2,1,10,1,12,1,8,1,14,2,22,
- 2,114,110,0,0,0,99,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,4,0,0,0,64,0,0,0,115,
- 114,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
- 100,2,100,2,100,2,100,3,156,3,100,4,100,5,132,2,
- 90,4,100,6,100,7,132,0,90,5,100,8,100,9,132,0,
- 90,6,101,7,100,10,100,11,132,0,131,1,90,8,101,8,
- 106,9,100,12,100,11,132,0,131,1,90,8,101,7,100,13,
- 100,14,132,0,131,1,90,10,101,7,100,15,100,16,132,0,
- 131,1,90,11,101,11,106,9,100,17,100,16,132,0,131,1,
- 90,11,100,2,83,0,41,18,218,10,77,111,100,117,108,101,
- 83,112,101,99,97,208,5,0,0,84,104,101,32,115,112,101,
- 99,105,102,105,99,97,116,105,111,110,32,102,111,114,32,97,
- 32,109,111,100,117,108,101,44,32,117,115,101,100,32,102,111,
- 114,32,108,111,97,100,105,110,103,46,10,10,32,32,32,32,
- 65,32,109,111,100,117,108,101,39,115,32,115,112,101,99,32,
- 105,115,32,116,104,101,32,115,111,117,114,99,101,32,102,111,
- 114,32,105,110,102,111,114,109,97,116,105,111,110,32,97,98,
- 111,117,116,32,116,104,101,32,109,111,100,117,108,101,46,32,
- 32,70,111,114,10,32,32,32,32,100,97,116,97,32,97,115,
- 115,111,99,105,97,116,101,100,32,119,105,116,104,32,116,104,
- 101,32,109,111,100,117,108,101,44,32,105,110,99,108,117,100,
- 105,110,103,32,115,111,117,114,99,101,44,32,117,115,101,32,
- 116,104,101,32,115,112,101,99,39,115,10,32,32,32,32,108,
- 111,97,100,101,114,46,10,10,32,32,32,32,96,110,97,109,
- 101,96,32,105,115,32,116,104,101,32,97,98,115,111,108,117,
- 116,101,32,110,97,109,101,32,111,102,32,116,104,101,32,109,
- 111,100,117,108,101,46,32,32,96,108,111,97,100,101,114,96,
- 32,105,115,32,116,104,101,32,108,111,97,100,101,114,10,32,
- 32,32,32,116,111,32,117,115,101,32,119,104,101,110,32,108,
- 111,97,100,105,110,103,32,116,104,101,32,109,111,100,117,108,
- 101,46,32,32,96,112,97,114,101,110,116,96,32,105,115,32,
- 116,104,101,32,110,97,109,101,32,111,102,32,116,104,101,10,
- 32,32,32,32,112,97,99,107,97,103,101,32,116,104,101,32,
- 109,111,100,117,108,101,32,105,115,32,105,110,46,32,32,84,
- 104,101,32,112,97,114,101,110,116,32,105,115,32,100,101,114,
- 105,118,101,100,32,102,114,111,109,32,116,104,101,32,110,97,
- 109,101,46,10,10,32,32,32,32,96,105,115,95,112,97,99,
- 107,97,103,101,96,32,100,101,116,101,114,109,105,110,101,115,
- 32,105,102,32,116,104,101,32,109,111,100,117,108,101,32,105,
- 115,32,99,111,110,115,105,100,101,114,101,100,32,97,32,112,
- 97,99,107,97,103,101,32,111,114,10,32,32,32,32,110,111,
- 116,46,32,32,79,110,32,109,111,100,117,108,101,115,32,116,
- 104,105,115,32,105,115,32,114,101,102,108,101,99,116,101,100,
- 32,98,121,32,116,104,101,32,96,95,95,112,97,116,104,95,
- 95,96,32,97,116,116,114,105,98,117,116,101,46,10,10,32,
- 32,32,32,96,111,114,105,103,105,110,96,32,105,115,32,116,
- 104,101,32,115,112,101,99,105,102,105,99,32,108,111,99,97,
- 116,105,111,110,32,117,115,101,100,32,98,121,32,116,104,101,
- 32,108,111,97,100,101,114,32,102,114,111,109,32,119,104,105,
- 99,104,32,116,111,10,32,32,32,32,108,111,97,100,32,116,
- 104,101,32,109,111,100,117,108,101,44,32,105,102,32,116,104,
- 97,116,32,105,110,102,111,114,109,97,116,105,111,110,32,105,
- 115,32,97,118,97,105,108,97,98,108,101,46,32,32,87,104,
- 101,110,32,102,105,108,101,110,97,109,101,32,105,115,10,32,
- 32,32,32,115,101,116,44,32,111,114,105,103,105,110,32,119,
- 105,108,108,32,109,97,116,99,104,46,10,10,32,32,32,32,
- 96,104,97,115,95,108,111,99,97,116,105,111,110,96,32,105,
- 110,100,105,99,97,116,101,115,32,116,104,97,116,32,97,32,
- 115,112,101,99,39,115,32,34,111,114,105,103,105,110,34,32,
- 114,101,102,108,101,99,116,115,32,97,32,108,111,99,97,116,
- 105,111,110,46,10,32,32,32,32,87,104,101,110,32,116,104,
- 105,115,32,105,115,32,84,114,117,101,44,32,96,95,95,102,
- 105,108,101,95,95,96,32,97,116,116,114,105,98,117,116,101,
- 32,111,102,32,116,104,101,32,109,111,100,117,108,101,32,105,
- 115,32,115,101,116,46,10,10,32,32,32,32,96,99,97,99,
- 104,101,100,96,32,105,115,32,116,104,101,32,108,111,99,97,
- 116,105,111,110,32,111,102,32,116,104,101,32,99,97,99,104,
- 101,100,32,98,121,116,101,99,111,100,101,32,102,105,108,101,
- 44,32,105,102,32,97,110,121,46,32,32,73,116,10,32,32,
- 32,32,99,111,114,114,101,115,112,111,110,100,115,32,116,111,
- 32,116,104,101,32,96,95,95,99,97,99,104,101,100,95,95,
- 96,32,97,116,116,114,105,98,117,116,101,46,10,10,32,32,
- 32,32,96,115,117,98,109,111,100,117,108,101,95,115,101,97,
- 114,99,104,95,108,111,99,97,116,105,111,110,115,96,32,105,
- 115,32,116,104,101,32,115,101,113,117,101,110,99,101,32,111,
- 102,32,112,97,116,104,32,101,110,116,114,105,101,115,32,116,
- 111,10,32,32,32,32,115,101,97,114,99,104,32,119,104,101,
- 110,32,105,109,112,111,114,116,105,110,103,32,115,117,98,109,
- 111,100,117,108,101,115,46,32,32,73,102,32,115,101,116,44,
- 32,105,115,95,112,97,99,107,97,103,101,32,115,104,111,117,
- 108,100,32,98,101,10,32,32,32,32,84,114,117,101,45,45,
- 97,110,100,32,70,97,108,115,101,32,111,116,104,101,114,119,
- 105,115,101,46,10,10,32,32,32,32,80,97,99,107,97,103,
- 101,115,32,97,114,101,32,115,105,109,112,108,121,32,109,111,
- 100,117,108,101,115,32,116,104,97,116,32,40,109,97,121,41,
- 32,104,97,118,101,32,115,117,98,109,111,100,117,108,101,115,
- 46,32,32,73,102,32,97,32,115,112,101,99,10,32,32,32,
- 32,104,97,115,32,97,32,110,111,110,45,78,111,110,101,32,
- 118,97,108,117,101,32,105,110,32,96,115,117,98,109,111,100,
- 117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,116,
- 105,111,110,115,96,44,32,116,104,101,32,105,109,112,111,114,
- 116,10,32,32,32,32,115,121,115,116,101,109,32,119,105,108,
- 108,32,99,111,110,115,105,100,101,114,32,109,111,100,117,108,
- 101,115,32,108,111,97,100,101,100,32,102,114,111,109,32,116,
- 104,101,32,115,112,101,99,32,97,115,32,112,97,99,107,97,
- 103,101,115,46,10,10,32,32,32,32,79,110,108,121,32,102,
- 105,110,100,101,114,115,32,40,115,101,101,32,105,109,112,111,
- 114,116,108,105,98,46,97,98,99,46,77,101,116,97,80,97,
- 116,104,70,105,110,100,101,114,32,97,110,100,10,32,32,32,
- 32,105,109,112,111,114,116,108,105,98,46,97,98,99,46,80,
- 97,116,104,69,110,116,114,121,70,105,110,100,101,114,41,32,
- 115,104,111,117,108,100,32,109,111,100,105,102,121,32,77,111,
- 100,117,108,101,83,112,101,99,32,105,110,115,116,97,110,99,
- 101,115,46,10,10,32,32,32,32,78,41,3,218,6,111,114,
- 105,103,105,110,218,12,108,111,97,100,101,114,95,115,116,97,
- 116,101,218,10,105,115,95,112,97,99,107,97,103,101,99,3,
- 0,0,0,0,0,0,0,3,0,0,0,6,0,0,0,2,
- 0,0,0,67,0,0,0,115,54,0,0,0,124,1,124,0,
- 95,0,124,2,124,0,95,1,124,3,124,0,95,2,124,4,
- 124,0,95,3,124,5,114,32,103,0,110,2,100,0,124,0,
- 95,4,100,1,124,0,95,5,100,0,124,0,95,6,100,0,
- 83,0,41,2,78,70,41,7,114,17,0,0,0,114,108,0,
- 0,0,114,112,0,0,0,114,113,0,0,0,218,26,115,117,
- 98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,108,
- 111,99,97,116,105,111,110,115,218,13,95,115,101,116,95,102,
- 105,108,101,97,116,116,114,218,7,95,99,97,99,104,101,100,
- 41,6,114,30,0,0,0,114,17,0,0,0,114,108,0,0,
- 0,114,112,0,0,0,114,113,0,0,0,114,114,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
- 31,0,0,0,86,1,0,0,115,14,0,0,0,0,2,6,
- 1,6,1,6,1,6,1,14,3,6,1,122,19,77,111,100,
- 117,108,101,83,112,101,99,46,95,95,105,110,105,116,95,95,
- 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
- 0,6,0,0,0,67,0,0,0,115,102,0,0,0,100,1,
- 160,0,124,0,106,1,161,1,100,2,160,0,124,0,106,2,
- 161,1,103,2,125,1,124,0,106,3,100,0,117,1,114,52,
- 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,80,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,44,0,0,0,114,17,
- 0,0,0,114,108,0,0,0,114,112,0,0,0,218,6,97,
- 112,112,101,110,100,114,115,0,0,0,218,9,95,95,99,108,
- 97,115,115,95,95,114,1,0,0,0,218,4,106,111,105,110,
- 41,2,114,30,0,0,0,114,54,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,47,0,0,0,
- 98,1,0,0,115,20,0,0,0,0,1,10,1,10,255,4,
- 2,10,1,18,1,10,1,8,1,4,255,6,2,122,19,77,
- 111,100,117,108,101,83,112,101,99,46,95,95,114,101,112,114,
- 95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,3,
- 0,0,0,8,0,0,0,67,0,0,0,115,106,0,0,0,
- 124,0,106,0,125,2,122,72,124,0,106,1,124,1,106,1,
- 107,2,111,76,124,0,106,2,124,1,106,2,107,2,111,76,
- 124,0,106,3,124,1,106,3,107,2,111,76,124,2,124,1,
- 106,0,107,2,111,76,124,0,106,4,124,1,106,4,107,2,
- 111,76,124,0,106,5,124,1,106,5,107,2,87,0,83,0,
- 4,0,116,6,121,100,1,0,1,0,1,0,116,7,6,0,
- 89,0,83,0,48,0,100,0,83,0,114,13,0,0,0,41,
- 8,114,115,0,0,0,114,17,0,0,0,114,108,0,0,0,
- 114,112,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,105,0,0,0,
- 218,14,78,111,116,73,109,112,108,101,109,101,110,116,101,100,
- 41,3,114,30,0,0,0,90,5,111,116,104,101,114,90,4,
- 115,109,115,108,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,218,6,95,95,101,113,95,95,108,1,0,0,115,
- 30,0,0,0,0,1,6,1,2,1,12,1,10,255,2,2,
- 10,254,2,3,8,253,2,4,10,252,2,5,10,251,4,6,
- 12,1,122,17,77,111,100,117,108,101,83,112,101,99,46,95,
- 95,101,113,95,95,99,1,0,0,0,0,0,0,0,0,0,
- 0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,58,
- 0,0,0,124,0,106,0,100,0,117,0,114,52,124,0,106,
- 1,100,0,117,1,114,52,124,0,106,2,114,52,116,3,100,
- 0,117,0,114,38,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,13,0,
- 0,0,41,6,114,117,0,0,0,114,112,0,0,0,114,116,
- 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,46,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,121,
- 0,0,0,120,1,0,0,115,12,0,0,0,0,2,10,1,
- 16,1,8,1,4,1,14,1,122,17,77,111,100,117,108,101,
- 83,112,101,99,46,99,97,99,104,101,100,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,
- 67,0,0,0,115,10,0,0,0,124,1,124,0,95,0,100,
- 0,83,0,114,13,0,0,0,41,1,114,117,0,0,0,41,
- 2,114,30,0,0,0,114,121,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,114,121,0,0,0,129,
- 1,0,0,115,2,0,0,0,0,2,99,1,0,0,0,0,
- 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,
- 0,0,0,115,36,0,0,0,124,0,106,0,100,1,117,0,
- 114,26,124,0,106,1,160,2,100,2,161,1,100,3,25,0,
- 83,0,124,0,106,1,83,0,100,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,22,0,0,0,41,3,114,115,0,0,0,
- 114,17,0,0,0,218,10,114,112,97,114,116,105,116,105,111,
- 110,114,46,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,218,6,112,97,114,101,110,116,133,1,0,
- 0,115,6,0,0,0,0,3,10,1,16,2,122,17,77,111,
- 100,117,108,101,83,112,101,99,46,112,97,114,101,110,116,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
- 1,0,0,0,67,0,0,0,115,6,0,0,0,124,0,106,
- 0,83,0,114,13,0,0,0,41,1,114,116,0,0,0,114,
- 46,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,114,122,0,0,0,141,1,0,0,115,2,0,0,
- 0,0,2,122,23,77,111,100,117,108,101,83,112,101,99,46,
- 104,97,115,95,108,111,99,97,116,105,111,110,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,
- 0,67,0,0,0,115,14,0,0,0,116,0,124,1,131,1,
- 124,0,95,1,100,0,83,0,114,13,0,0,0,41,2,218,
- 4,98,111,111,108,114,116,0,0,0,41,2,114,30,0,0,
- 0,218,5,118,97,108,117,101,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,114,122,0,0,0,145,1,0,0,
- 115,2,0,0,0,0,2,41,12,114,1,0,0,0,114,0,
- 0,0,0,114,2,0,0,0,114,3,0,0,0,114,31,0,
- 0,0,114,47,0,0,0,114,124,0,0,0,218,8,112,114,
- 111,112,101,114,116,121,114,121,0,0,0,218,6,115,101,116,
- 116,101,114,114,129,0,0,0,114,122,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,111,0,0,0,49,1,0,0,115,32,0,0,0,8,
- 1,4,36,4,1,2,255,12,12,8,10,8,12,2,1,10,
- 8,4,1,10,3,2,1,10,7,2,1,10,3,4,1,114,
- 111,0,0,0,169,2,114,112,0,0,0,114,114,0,0,0,
- 99,2,0,0,0,0,0,0,0,2,0,0,0,6,0,0,
- 0,8,0,0,0,67,0,0,0,115,152,0,0,0,116,0,
- 124,1,100,1,131,2,114,74,116,1,100,2,117,0,114,22,
- 116,2,130,1,116,1,106,3,125,4,124,3,100,2,117,0,
- 114,48,124,4,124,0,124,1,100,3,141,2,83,0,124,3,
- 114,56,103,0,110,2,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,136,
- 116,0,124,1,100,5,131,2,114,132,122,14,124,1,160,4,
- 124,0,161,1,125,3,87,0,113,136,4,0,116,5,121,128,
- 1,0,1,0,1,0,100,2,125,3,89,0,113,136,48,0,
- 110,4,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,108,0,0,0,41,2,114,108,0,0,0,114,115,0,0,
- 0,114,114,0,0,0,70,114,134,0,0,0,41,7,114,4,
- 0,0,0,114,125,0,0,0,114,126,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,114,0,0,0,114,78,0,0,0,
- 114,111,0,0,0,41,6,114,17,0,0,0,114,108,0,0,
- 0,114,112,0,0,0,114,114,0,0,0,114,135,0,0,0,
- 90,6,115,101,97,114,99,104,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,114,90,0,0,0,150,1,0,0,
- 115,36,0,0,0,0,2,10,1,8,1,4,1,6,2,8,
- 1,12,1,12,1,6,1,2,255,6,3,8,1,10,1,2,
- 1,14,1,12,1,12,3,4,2,114,90,0,0,0,99,3,
- 0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,
- 0,0,0,67,0,0,0,115,42,1,0,0,122,10,124,0,
- 106,0,125,3,87,0,110,18,4,0,116,1,121,28,1,0,
- 1,0,1,0,89,0,110,14,48,0,124,3,100,0,117,1,
- 114,42,124,3,83,0,124,0,106,2,125,4,124,1,100,0,
- 117,0,114,86,122,10,124,0,106,3,125,1,87,0,110,18,
- 4,0,116,1,121,84,1,0,1,0,1,0,89,0,110,2,
- 48,0,122,10,124,0,106,4,125,5,87,0,110,22,4,0,
- 116,1,121,118,1,0,1,0,1,0,100,0,125,5,89,0,
- 110,2,48,0,124,2,100,0,117,0,114,176,124,5,100,0,
- 117,0,114,172,122,10,124,1,106,5,125,2,87,0,113,176,
- 4,0,116,1,121,168,1,0,1,0,1,0,100,0,125,2,
- 89,0,113,176,48,0,110,4,124,5,125,2,122,10,124,0,
- 106,6,125,6,87,0,110,22,4,0,116,1,121,208,1,0,
- 1,0,1,0,100,0,125,6,89,0,110,2,48,0,122,14,
- 116,7,124,0,106,8,131,1,125,7,87,0,110,22,4,0,
- 116,1,121,246,1,0,1,0,1,0,100,0,125,7,89,0,
- 110,2,48,0,116,9,124,4,124,1,124,2,100,1,141,3,
- 125,3,124,5,100,0,117,0,144,1,114,20,100,2,110,2,
- 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,112,0,0,0,
- 70,84,41,13,114,104,0,0,0,114,105,0,0,0,114,1,
- 0,0,0,114,97,0,0,0,114,107,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,111,0,0,0,114,116,0,0,0,114,121,0,0,
- 0,114,115,0,0,0,41,8,114,95,0,0,0,114,108,0,
- 0,0,114,112,0,0,0,114,94,0,0,0,114,17,0,0,
- 0,90,8,108,111,99,97,116,105,111,110,114,121,0,0,0,
- 114,115,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
- 11,0,0,0,218,17,95,115,112,101,99,95,102,114,111,109,
- 95,109,111,100,117,108,101,176,1,0,0,115,72,0,0,0,
- 0,2,2,1,10,1,12,1,6,2,8,1,4,2,6,1,
- 8,1,2,1,10,1,12,2,6,1,2,1,10,1,12,1,
- 10,1,8,1,8,1,2,1,10,1,12,1,12,2,4,1,
- 2,1,10,1,12,1,10,1,2,1,14,1,12,1,10,2,
- 14,1,20,1,6,1,6,1,114,141,0,0,0,70,169,1,
- 218,8,111,118,101,114,114,105,100,101,99,2,0,0,0,0,
- 0,0,0,1,0,0,0,5,0,0,0,8,0,0,0,67,
- 0,0,0,115,210,1,0,0,124,2,115,20,116,0,124,1,
- 100,1,100,0,131,3,100,0,117,0,114,52,122,12,124,0,
- 106,1,124,1,95,2,87,0,110,18,4,0,116,3,121,50,
- 1,0,1,0,1,0,89,0,110,2,48,0,124,2,115,72,
- 116,0,124,1,100,2,100,0,131,3,100,0,117,0,114,174,
- 124,0,106,4,125,3,124,3,100,0,117,0,114,144,124,0,
- 106,5,100,0,117,1,114,144,116,6,100,0,117,0,114,108,
- 116,7,130,1,116,6,106,8,125,4,124,4,160,9,124,4,
- 161,1,125,3,124,0,106,5,124,3,95,10,124,3,124,0,
- 95,4,100,0,124,1,95,11,122,10,124,3,124,1,95,12,
- 87,0,110,18,4,0,116,3,121,172,1,0,1,0,1,0,
- 89,0,110,2,48,0,124,2,115,194,116,0,124,1,100,3,
- 100,0,131,3,100,0,117,0,114,226,122,12,124,0,106,13,
- 124,1,95,14,87,0,110,18,4,0,116,3,121,224,1,0,
- 1,0,1,0,89,0,110,2,48,0,122,10,124,0,124,1,
- 95,15,87,0,110,18,4,0,116,3,121,254,1,0,1,0,
- 1,0,89,0,110,2,48,0,124,2,144,1,115,24,116,0,
- 124,1,100,4,100,0,131,3,100,0,117,0,144,1,114,70,
- 124,0,106,5,100,0,117,1,144,1,114,70,122,12,124,0,
- 106,5,124,1,95,16,87,0,110,20,4,0,116,3,144,1,
- 121,68,1,0,1,0,1,0,89,0,110,2,48,0,124,0,
- 106,17,144,1,114,206,124,2,144,1,115,102,116,0,124,1,
- 100,5,100,0,131,3,100,0,117,0,144,1,114,136,122,12,
- 124,0,106,18,124,1,95,11,87,0,110,20,4,0,116,3,
- 144,1,121,134,1,0,1,0,1,0,89,0,110,2,48,0,
- 124,2,144,1,115,160,116,0,124,1,100,6,100,0,131,3,
- 100,0,117,0,144,1,114,206,124,0,106,19,100,0,117,1,
- 144,1,114,206,122,12,124,0,106,19,124,1,95,20,87,0,
- 110,20,4,0,116,3,144,1,121,204,1,0,1,0,1,0,
- 89,0,110,2,48,0,124,1,83,0,41,7,78,114,1,0,
- 0,0,114,97,0,0,0,218,11,95,95,112,97,99,107,97,
- 103,101,95,95,114,140,0,0,0,114,107,0,0,0,114,138,
- 0,0,0,41,21,114,6,0,0,0,114,17,0,0,0,114,
- 1,0,0,0,114,105,0,0,0,114,108,0,0,0,114,115,
- 0,0,0,114,125,0,0,0,114,126,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,
- 107,0,0,0,114,97,0,0,0,114,129,0,0,0,114,144,
- 0,0,0,114,104,0,0,0,114,140,0,0,0,114,122,0,
- 0,0,114,112,0,0,0,114,121,0,0,0,114,138,0,0,
- 0,41,5,114,94,0,0,0,114,95,0,0,0,114,143,0,
- 0,0,114,108,0,0,0,114,145,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,218,18,95,105,110,
- 105,116,95,109,111,100,117,108,101,95,97,116,116,114,115,221,
- 1,0,0,115,96,0,0,0,0,4,20,1,2,1,12,1,
- 12,1,6,2,20,1,6,1,8,2,10,1,8,1,4,1,
- 6,2,10,1,8,1,6,11,6,1,2,1,10,1,12,1,
- 6,2,20,1,2,1,12,1,12,1,6,2,2,1,10,1,
- 12,1,6,2,24,1,12,1,2,1,12,1,14,1,6,2,
- 8,1,24,1,2,1,12,1,14,1,6,2,24,1,12,1,
- 2,1,12,1,14,1,6,1,114,147,0,0,0,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,
- 0,0,67,0,0,0,115,82,0,0,0,100,1,125,1,116,
- 0,124,0,106,1,100,2,131,2,114,30,124,0,106,1,160,
- 2,124,0,161,1,125,1,110,20,116,0,124,0,106,1,100,
- 3,131,2,114,50,116,3,100,4,131,1,130,1,124,1,100,
- 1,117,0,114,68,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,
- 4,0,0,0,114,108,0,0,0,114,148,0,0,0,114,78,
- 0,0,0,114,18,0,0,0,114,17,0,0,0,114,147,0,
- 0,0,169,2,114,94,0,0,0,114,95,0,0,0,114,10,
- 0,0,0,114,10,0,0,0,114,11,0,0,0,218,16,109,
- 111,100,117,108,101,95,102,114,111,109,95,115,112,101,99,37,
- 2,0,0,115,18,0,0,0,0,3,4,1,12,3,14,1,
- 12,1,8,2,8,1,10,1,10,1,114,151,0,0,0,99,
+ 0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,79,
+ 0,0,0,115,14,0,0,0,124,0,124,1,105,0,124,2,
+ 164,1,142,1,83,0,41,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,
+ 111,118,101,32,115,101,113,117,101,110,99,101,115,10,32,32,
+ 32,32,111,102,32,105,109,112,111,114,116,108,105,98,32,102,
+ 114,97,109,101,115,32,116,104,97,116,32,101,110,100,32,119,
+ 105,116,104,32,97,32,99,97,108,108,32,116,111,32,116,104,
+ 105,115,32,102,117,110,99,116,105,111,110,10,10,32,32,32,
+ 32,85,115,101,32,105,116,32,105,110,115,116,101,97,100,32,
+ 111,102,32,97,32,110,111,114,109,97,108,32,99,97,108,108,
+ 32,105,110,32,112,108,97,99,101,115,32,119,104,101,114,101,
+ 32,105,110,99,108,117,100,105,110,103,32,116,104,101,32,105,
+ 109,112,111,114,116,108,105,98,10,32,32,32,32,102,114,97,
+ 109,101,115,32,105,110,116,114,111,100,117,99,101,115,32,117,
+ 110,119,97,110,116,101,100,32,110,111,105,115,101,32,105,110,
+ 116,111,32,116,104,101,32,116,114,97,99,101,98,97,99,107,
+ 32,40,101,46,103,46,32,119,104,101,110,32,101,120,101,99,
+ 117,116,105,110,103,10,32,32,32,32,109,111,100,117,108,101,
+ 32,99,111,100,101,41,10,32,32,32,32,114,10,0,0,0,
+ 41,3,218,1,102,114,54,0,0,0,90,4,107,119,100,115,
+ 114,10,0,0,0,114,10,0,0,0,114,11,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,211,0,0,0,115,2,
+ 0,0,0,0,8,114,66,0,0,0,114,37,0,0,0,41,
+ 1,218,9,118,101,114,98,111,115,105,116,121,99,1,0,0,
+ 0,0,0,0,0,1,0,0,0,3,0,0,0,4,0,0,
+ 0,71,0,0,0,115,54,0,0,0,116,0,106,1,106,2,
+ 124,1,107,5,114,50,124,0,160,3,100,1,161,1,115,30,
+ 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,
+ 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,15,
+ 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,44,0,0,0,218,6,115,116,100,
+ 101,114,114,41,3,218,7,109,101,115,115,97,103,101,114,67,
+ 0,0,0,114,54,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,16,95,118,101,114,98,111,115,
+ 101,95,109,101,115,115,97,103,101,222,0,0,0,115,8,0,
+ 0,0,0,2,12,1,10,1,8,1,114,75,0,0,0,99,
1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 4,0,0,0,67,0,0,0,115,106,0,0,0,124,0,106,
- 0,100,1,117,0,114,14,100,2,110,4,124,0,106,0,125,
- 1,124,0,106,1,100,1,117,0,114,66,124,0,106,2,100,
- 1,117,0,114,50,100,3,160,3,124,1,161,1,83,0,100,
- 4,160,3,124,1,124,0,106,2,161,2,83,0,110,36,124,
- 0,106,4,114,86,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,100,1,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,99,0,0,0,114,100,0,0,0,114,101,0,0,
- 0,114,102,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,17,0,0,
- 0,114,112,0,0,0,114,108,0,0,0,114,44,0,0,0,
- 114,122,0,0,0,41,2,114,94,0,0,0,114,17,0,0,
+ 3,0,0,0,3,0,0,0,115,26,0,0,0,135,0,102,
+ 1,100,1,100,2,132,8,125,1,116,0,124,1,136,0,131,
+ 2,1,0,124,1,83,0,41,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,2,0,0,0,4,0,0,
+ 0,19,0,0,0,115,38,0,0,0,124,1,116,0,106,1,
+ 118,1,114,28,116,2,100,1,160,3,124,1,161,1,124,1,
+ 100,2,141,2,130,1,136,0,124,0,124,1,131,2,83,0,
+ 41,3,78,250,29,123,33,114,125,32,105,115,32,110,111,116,
+ 32,97,32,98,117,105,108,116,45,105,110,32,109,111,100,117,
+ 108,101,114,16,0,0,0,41,4,114,15,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,44,0,0,0,169,2,114,30,0,0,0,218,8,102,
+ 117,108,108,110,97,109,101,169,1,218,3,102,120,110,114,10,
+ 0,0,0,114,11,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,232,0,0,0,115,10,0,0,0,0,1,10,1,
+ 10,1,2,255,6,2,122,52,95,114,101,113,117,105,114,101,
+ 115,95,98,117,105,108,116,105,110,46,60,108,111,99,97,108,
+ 115,62,46,95,114,101,113,117,105,114,101,115,95,98,117,105,
+ 108,116,105,110,95,119,114,97,112,112,101,114,169,1,114,12,
+ 0,0,0,41,2,114,82,0,0,0,114,83,0,0,0,114,
+ 10,0,0,0,114,81,0,0,0,114,11,0,0,0,218,17,
+ 95,114,101,113,117,105,114,101,115,95,98,117,105,108,116,105,
+ 110,230,0,0,0,115,6,0,0,0,0,2,12,5,10,1,
+ 114,85,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,3,0,0,0,3,0,0,0,115,26,
+ 0,0,0,135,0,102,1,100,1,100,2,132,8,125,1,116,
+ 0,124,1,136,0,131,2,1,0,124,1,83,0,41,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,2,0,0,
+ 0,4,0,0,0,19,0,0,0,115,38,0,0,0,116,0,
+ 160,1,124,1,161,1,115,28,116,2,100,1,160,3,124,1,
+ 161,1,124,1,100,2,141,2,130,1,136,0,124,0,124,1,
+ 131,2,83,0,169,3,78,122,27,123,33,114,125,32,105,115,
+ 32,110,111,116,32,97,32,102,114,111,122,101,110,32,109,111,
+ 100,117,108,101,114,16,0,0,0,41,4,114,56,0,0,0,
+ 218,9,105,115,95,102,114,111,122,101,110,114,78,0,0,0,
+ 114,44,0,0,0,114,79,0,0,0,114,81,0,0,0,114,
+ 10,0,0,0,114,11,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,243,0,0,0,115,10,0,0,0,0,1,10,1,
+ 10,1,2,255,6,2,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,114,84,0,0,0,41,
+ 2,114,82,0,0,0,114,88,0,0,0,114,10,0,0,0,
+ 114,81,0,0,0,114,11,0,0,0,218,16,95,114,101,113,
+ 117,105,114,101,115,95,102,114,111,122,101,110,241,0,0,0,
+ 115,6,0,0,0,0,2,12,5,10,1,114,89,0,0,0,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+ 0,3,0,0,0,67,0,0,0,115,62,0,0,0,116,0,
+ 124,1,124,0,131,2,125,2,124,1,116,1,106,2,118,0,
+ 114,50,116,1,106,2,124,1,25,0,125,3,116,3,124,2,
+ 124,3,131,2,1,0,116,1,106,2,124,1,25,0,83,0,
+ 116,4,124,2,131,1,83,0,100,1,83,0,41,2,122,128,
+ 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,32,105,110,115,116,101,97,100,46,10,10,32,32,32,32,
+ 78,41,5,218,16,115,112,101,99,95,102,114,111,109,95,108,
+ 111,97,100,101,114,114,15,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,4,114,30,0,0,0,114,80,0,0,0,218,4,115,
+ 112,101,99,218,6,109,111,100,117,108,101,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,17,95,108,111,97,
+ 100,95,109,111,100,117,108,101,95,115,104,105,109,253,0,0,
+ 0,115,12,0,0,0,0,6,10,1,10,1,10,1,10,1,
+ 10,2,114,96,0,0,0,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,5,0,0,0,8,0,0,0,67,0,0,0,
+ 115,218,0,0,0,116,0,124,0,100,1,100,0,131,3,125,
+ 1,116,1,124,1,100,2,131,2,114,54,122,12,124,1,160,
+ 2,124,0,161,1,87,0,83,0,4,0,116,3,121,52,1,
+ 0,1,0,1,0,89,0,110,2,48,0,122,10,124,0,106,
+ 4,125,2,87,0,110,18,4,0,116,5,121,82,1,0,1,
+ 0,1,0,89,0,110,18,48,0,124,2,100,0,117,1,114,
+ 100,116,6,124,2,131,1,83,0,122,10,124,0,106,7,125,
+ 3,87,0,110,22,4,0,116,5,121,132,1,0,1,0,1,
+ 0,100,3,125,3,89,0,110,2,48,0,122,10,124,0,106,
+ 8,125,4,87,0,110,56,4,0,116,5,121,200,1,0,1,
+ 0,1,0,124,1,100,0,117,0,114,180,100,4,160,9,124,
+ 3,161,1,6,0,89,0,83,0,100,5,160,9,124,3,124,
+ 1,161,2,6,0,89,0,83,0,89,0,110,14,48,0,100,
+ 6,160,9,124,3,124,4,161,2,83,0,100,0,83,0,41,
+ 7,78,218,10,95,95,108,111,97,100,101,114,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,10,114,6,
+ 0,0,0,114,4,0,0,0,114,98,0,0,0,218,9,69,
+ 120,99,101,112,116,105,111,110,218,8,95,95,115,112,101,99,
+ 95,95,218,14,65,116,116,114,105,98,117,116,101,69,114,114,
+ 111,114,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,1,0,0,0,218,
+ 8,95,95,102,105,108,101,95,95,114,44,0,0,0,41,5,
+ 114,95,0,0,0,218,6,108,111,97,100,101,114,114,94,0,
+ 0,0,114,17,0,0,0,218,8,102,105,108,101,110,97,109,
+ 101,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
+ 218,12,95,109,111,100,117,108,101,95,114,101,112,114,13,1,
+ 0,0,115,46,0,0,0,0,2,12,1,10,4,2,1,12,
+ 1,12,1,6,1,2,1,10,1,12,1,6,2,8,1,8,
+ 4,2,1,10,1,12,1,10,1,2,1,10,1,12,1,8,
+ 1,14,2,22,2,114,110,0,0,0,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,64,
+ 0,0,0,115,114,0,0,0,101,0,90,1,100,0,90,2,
+ 100,1,90,3,100,2,100,2,100,2,100,3,156,3,100,4,
+ 100,5,132,2,90,4,100,6,100,7,132,0,90,5,100,8,
+ 100,9,132,0,90,6,101,7,100,10,100,11,132,0,131,1,
+ 90,8,101,8,106,9,100,12,100,11,132,0,131,1,90,8,
+ 101,7,100,13,100,14,132,0,131,1,90,10,101,7,100,15,
+ 100,16,132,0,131,1,90,11,101,11,106,9,100,17,100,16,
+ 132,0,131,1,90,11,100,2,83,0,41,18,218,10,77,111,
+ 100,117,108,101,83,112,101,99,97,208,5,0,0,84,104,101,
+ 32,115,112,101,99,105,102,105,99,97,116,105,111,110,32,102,
+ 111,114,32,97,32,109,111,100,117,108,101,44,32,117,115,101,
+ 100,32,102,111,114,32,108,111,97,100,105,110,103,46,10,10,
+ 32,32,32,32,65,32,109,111,100,117,108,101,39,115,32,115,
+ 112,101,99,32,105,115,32,116,104,101,32,115,111,117,114,99,
+ 101,32,102,111,114,32,105,110,102,111,114,109,97,116,105,111,
+ 110,32,97,98,111,117,116,32,116,104,101,32,109,111,100,117,
+ 108,101,46,32,32,70,111,114,10,32,32,32,32,100,97,116,
+ 97,32,97,115,115,111,99,105,97,116,101,100,32,119,105,116,
+ 104,32,116,104,101,32,109,111,100,117,108,101,44,32,105,110,
+ 99,108,117,100,105,110,103,32,115,111,117,114,99,101,44,32,
+ 117,115,101,32,116,104,101,32,115,112,101,99,39,115,10,32,
+ 32,32,32,108,111,97,100,101,114,46,10,10,32,32,32,32,
+ 96,110,97,109,101,96,32,105,115,32,116,104,101,32,97,98,
+ 115,111,108,117,116,101,32,110,97,109,101,32,111,102,32,116,
+ 104,101,32,109,111,100,117,108,101,46,32,32,96,108,111,97,
+ 100,101,114,96,32,105,115,32,116,104,101,32,108,111,97,100,
+ 101,114,10,32,32,32,32,116,111,32,117,115,101,32,119,104,
+ 101,110,32,108,111,97,100,105,110,103,32,116,104,101,32,109,
+ 111,100,117,108,101,46,32,32,96,112,97,114,101,110,116,96,
+ 32,105,115,32,116,104,101,32,110,97,109,101,32,111,102,32,
+ 116,104,101,10,32,32,32,32,112,97,99,107,97,103,101,32,
+ 116,104,101,32,109,111,100,117,108,101,32,105,115,32,105,110,
+ 46,32,32,84,104,101,32,112,97,114,101,110,116,32,105,115,
+ 32,100,101,114,105,118,101,100,32,102,114,111,109,32,116,104,
+ 101,32,110,97,109,101,46,10,10,32,32,32,32,96,105,115,
+ 95,112,97,99,107,97,103,101,96,32,100,101,116,101,114,109,
+ 105,110,101,115,32,105,102,32,116,104,101,32,109,111,100,117,
+ 108,101,32,105,115,32,99,111,110,115,105,100,101,114,101,100,
+ 32,97,32,112,97,99,107,97,103,101,32,111,114,10,32,32,
+ 32,32,110,111,116,46,32,32,79,110,32,109,111,100,117,108,
+ 101,115,32,116,104,105,115,32,105,115,32,114,101,102,108,101,
+ 99,116,101,100,32,98,121,32,116,104,101,32,96,95,95,112,
+ 97,116,104,95,95,96,32,97,116,116,114,105,98,117,116,101,
+ 46,10,10,32,32,32,32,96,111,114,105,103,105,110,96,32,
+ 105,115,32,116,104,101,32,115,112,101,99,105,102,105,99,32,
+ 108,111,99,97,116,105,111,110,32,117,115,101,100,32,98,121,
+ 32,116,104,101,32,108,111,97,100,101,114,32,102,114,111,109,
+ 32,119,104,105,99,104,32,116,111,10,32,32,32,32,108,111,
+ 97,100,32,116,104,101,32,109,111,100,117,108,101,44,32,105,
+ 102,32,116,104,97,116,32,105,110,102,111,114,109,97,116,105,
+ 111,110,32,105,115,32,97,118,97,105,108,97,98,108,101,46,
+ 32,32,87,104,101,110,32,102,105,108,101,110,97,109,101,32,
+ 105,115,10,32,32,32,32,115,101,116,44,32,111,114,105,103,
+ 105,110,32,119,105,108,108,32,109,97,116,99,104,46,10,10,
+ 32,32,32,32,96,104,97,115,95,108,111,99,97,116,105,111,
+ 110,96,32,105,110,100,105,99,97,116,101,115,32,116,104,97,
+ 116,32,97,32,115,112,101,99,39,115,32,34,111,114,105,103,
+ 105,110,34,32,114,101,102,108,101,99,116,115,32,97,32,108,
+ 111,99,97,116,105,111,110,46,10,32,32,32,32,87,104,101,
+ 110,32,116,104,105,115,32,105,115,32,84,114,117,101,44,32,
+ 96,95,95,102,105,108,101,95,95,96,32,97,116,116,114,105,
+ 98,117,116,101,32,111,102,32,116,104,101,32,109,111,100,117,
+ 108,101,32,105,115,32,115,101,116,46,10,10,32,32,32,32,
+ 96,99,97,99,104,101,100,96,32,105,115,32,116,104,101,32,
+ 108,111,99,97,116,105,111,110,32,111,102,32,116,104,101,32,
+ 99,97,99,104,101,100,32,98,121,116,101,99,111,100,101,32,
+ 102,105,108,101,44,32,105,102,32,97,110,121,46,32,32,73,
+ 116,10,32,32,32,32,99,111,114,114,101,115,112,111,110,100,
+ 115,32,116,111,32,116,104,101,32,96,95,95,99,97,99,104,
+ 101,100,95,95,96,32,97,116,116,114,105,98,117,116,101,46,
+ 10,10,32,32,32,32,96,115,117,98,109,111,100,117,108,101,
+ 95,115,101,97,114,99,104,95,108,111,99,97,116,105,111,110,
+ 115,96,32,105,115,32,116,104,101,32,115,101,113,117,101,110,
+ 99,101,32,111,102,32,112,97,116,104,32,101,110,116,114,105,
+ 101,115,32,116,111,10,32,32,32,32,115,101,97,114,99,104,
+ 32,119,104,101,110,32,105,109,112,111,114,116,105,110,103,32,
+ 115,117,98,109,111,100,117,108,101,115,46,32,32,73,102,32,
+ 115,101,116,44,32,105,115,95,112,97,99,107,97,103,101,32,
+ 115,104,111,117,108,100,32,98,101,10,32,32,32,32,84,114,
+ 117,101,45,45,97,110,100,32,70,97,108,115,101,32,111,116,
+ 104,101,114,119,105,115,101,46,10,10,32,32,32,32,80,97,
+ 99,107,97,103,101,115,32,97,114,101,32,115,105,109,112,108,
+ 121,32,109,111,100,117,108,101,115,32,116,104,97,116,32,40,
+ 109,97,121,41,32,104,97,118,101,32,115,117,98,109,111,100,
+ 117,108,101,115,46,32,32,73,102,32,97,32,115,112,101,99,
+ 10,32,32,32,32,104,97,115,32,97,32,110,111,110,45,78,
+ 111,110,101,32,118,97,108,117,101,32,105,110,32,96,115,117,
+ 98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,108,
+ 111,99,97,116,105,111,110,115,96,44,32,116,104,101,32,105,
+ 109,112,111,114,116,10,32,32,32,32,115,121,115,116,101,109,
+ 32,119,105,108,108,32,99,111,110,115,105,100,101,114,32,109,
+ 111,100,117,108,101,115,32,108,111,97,100,101,100,32,102,114,
+ 111,109,32,116,104,101,32,115,112,101,99,32,97,115,32,112,
+ 97,99,107,97,103,101,115,46,10,10,32,32,32,32,79,110,
+ 108,121,32,102,105,110,100,101,114,115,32,40,115,101,101,32,
+ 105,109,112,111,114,116,108,105,98,46,97,98,99,46,77,101,
+ 116,97,80,97,116,104,70,105,110,100,101,114,32,97,110,100,
+ 10,32,32,32,32,105,109,112,111,114,116,108,105,98,46,97,
+ 98,99,46,80,97,116,104,69,110,116,114,121,70,105,110,100,
+ 101,114,41,32,115,104,111,117,108,100,32,109,111,100,105,102,
+ 121,32,77,111,100,117,108,101,83,112,101,99,32,105,110,115,
+ 116,97,110,99,101,115,46,10,10,32,32,32,32,78,41,3,
+ 218,6,111,114,105,103,105,110,218,12,108,111,97,100,101,114,
+ 95,115,116,97,116,101,218,10,105,115,95,112,97,99,107,97,
+ 103,101,99,3,0,0,0,0,0,0,0,3,0,0,0,6,
+ 0,0,0,2,0,0,0,67,0,0,0,115,54,0,0,0,
+ 124,1,124,0,95,0,124,2,124,0,95,1,124,3,124,0,
+ 95,2,124,4,124,0,95,3,124,5,114,32,103,0,110,2,
+ 100,0,124,0,95,4,100,1,124,0,95,5,100,0,124,0,
+ 95,6,100,0,83,0,41,2,78,70,41,7,114,17,0,0,
+ 0,114,108,0,0,0,114,112,0,0,0,114,113,0,0,0,
+ 218,26,115,117,98,109,111,100,117,108,101,95,115,101,97,114,
+ 99,104,95,108,111,99,97,116,105,111,110,115,218,13,95,115,
+ 101,116,95,102,105,108,101,97,116,116,114,218,7,95,99,97,
+ 99,104,101,100,41,6,114,30,0,0,0,114,17,0,0,0,
+ 114,108,0,0,0,114,112,0,0,0,114,113,0,0,0,114,
+ 114,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,114,31,0,0,0,86,1,0,0,115,14,0,0,
+ 0,0,2,6,1,6,1,6,1,6,1,14,3,6,1,122,
+ 19,77,111,100,117,108,101,83,112,101,99,46,95,95,105,110,
+ 105,116,95,95,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,6,0,0,0,67,0,0,0,115,102,0,
+ 0,0,100,1,160,0,124,0,106,1,161,1,100,2,160,0,
+ 124,0,106,2,161,1,103,2,125,1,124,0,106,3,100,0,
+ 117,1,114,52,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,80,
+ 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,44,0,
+ 0,0,114,17,0,0,0,114,108,0,0,0,114,112,0,0,
+ 0,218,6,97,112,112,101,110,100,114,115,0,0,0,218,9,
+ 95,95,99,108,97,115,115,95,95,114,1,0,0,0,218,4,
+ 106,111,105,110,41,2,114,30,0,0,0,114,54,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
+ 47,0,0,0,98,1,0,0,115,20,0,0,0,0,1,10,
+ 1,10,255,4,2,10,1,18,1,10,1,8,1,4,255,6,
+ 2,122,19,77,111,100,117,108,101,83,112,101,99,46,95,95,
+ 114,101,112,114,95,95,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,3,0,0,0,8,0,0,0,67,0,0,0,115,
+ 106,0,0,0,124,0,106,0,125,2,122,72,124,0,106,1,
+ 124,1,106,1,107,2,111,76,124,0,106,2,124,1,106,2,
+ 107,2,111,76,124,0,106,3,124,1,106,3,107,2,111,76,
+ 124,2,124,1,106,0,107,2,111,76,124,0,106,4,124,1,
+ 106,4,107,2,111,76,124,0,106,5,124,1,106,5,107,2,
+ 87,0,83,0,4,0,116,6,121,100,1,0,1,0,1,0,
+ 116,7,6,0,89,0,83,0,48,0,100,0,83,0,114,13,
+ 0,0,0,41,8,114,115,0,0,0,114,17,0,0,0,114,
+ 108,0,0,0,114,112,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,
+ 105,0,0,0,218,14,78,111,116,73,109,112,108,101,109,101,
+ 110,116,101,100,41,3,114,30,0,0,0,90,5,111,116,104,
+ 101,114,90,4,115,109,115,108,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,6,95,95,101,113,95,95,108,
+ 1,0,0,115,30,0,0,0,0,1,6,1,2,1,12,1,
+ 10,255,2,2,10,254,2,3,8,253,2,4,10,252,2,5,
+ 10,251,4,6,12,1,122,17,77,111,100,117,108,101,83,112,
+ 101,99,46,95,95,101,113,95,95,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
+ 0,0,115,58,0,0,0,124,0,106,0,100,0,117,0,114,
+ 52,124,0,106,1,100,0,117,1,114,52,124,0,106,2,114,
+ 52,116,3,100,0,117,0,114,38,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,13,0,0,0,41,6,114,117,0,0,0,114,112,0,
+ 0,0,114,116,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,46,
+ 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
+ 0,0,114,121,0,0,0,120,1,0,0,115,12,0,0,0,
+ 0,2,10,1,16,1,8,1,4,1,14,1,122,17,77,111,
+ 100,117,108,101,83,112,101,99,46,99,97,99,104,101,100,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+ 2,0,0,0,67,0,0,0,115,10,0,0,0,124,1,124,
+ 0,95,0,100,0,83,0,114,13,0,0,0,41,1,114,117,
+ 0,0,0,41,2,114,30,0,0,0,114,121,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,121,
+ 0,0,0,129,1,0,0,115,2,0,0,0,0,2,99,1,
+ 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,
+ 0,0,0,67,0,0,0,115,36,0,0,0,124,0,106,0,
+ 100,1,117,0,114,26,124,0,106,1,160,2,100,2,161,1,
+ 100,3,25,0,83,0,124,0,106,1,83,0,100,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,22,0,0,0,41,3,114,
+ 115,0,0,0,114,17,0,0,0,218,10,114,112,97,114,116,
+ 105,116,105,111,110,114,46,0,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,218,6,112,97,114,101,110,
+ 116,133,1,0,0,115,6,0,0,0,0,3,10,1,16,2,
+ 122,17,77,111,100,117,108,101,83,112,101,99,46,112,97,114,
+ 101,110,116,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 1,0,0,0,1,0,0,0,67,0,0,0,115,6,0,0,
+ 0,124,0,106,0,83,0,114,13,0,0,0,41,1,114,116,
+ 0,0,0,114,46,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,114,122,0,0,0,141,1,0,0,
+ 115,2,0,0,0,0,2,122,23,77,111,100,117,108,101,83,
+ 112,101,99,46,104,97,115,95,108,111,99,97,116,105,111,110,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+ 0,2,0,0,0,67,0,0,0,115,14,0,0,0,116,0,
+ 124,1,131,1,124,0,95,1,100,0,83,0,114,13,0,0,
+ 0,41,2,218,4,98,111,111,108,114,116,0,0,0,41,2,
+ 114,30,0,0,0,218,5,118,97,108,117,101,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,122,0,0,0,
+ 145,1,0,0,115,2,0,0,0,0,2,41,12,114,1,0,
+ 0,0,114,0,0,0,0,114,2,0,0,0,114,3,0,0,
+ 0,114,31,0,0,0,114,47,0,0,0,114,124,0,0,0,
+ 218,8,112,114,111,112,101,114,116,121,114,121,0,0,0,218,
+ 6,115,101,116,116,101,114,114,129,0,0,0,114,122,0,0,
+ 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,111,0,0,0,49,1,0,0,115,32,
+ 0,0,0,8,1,4,36,4,1,2,255,12,12,8,10,8,
+ 12,2,1,10,8,4,1,10,3,2,1,10,7,2,1,10,
+ 3,4,1,114,111,0,0,0,169,2,114,112,0,0,0,114,
+ 114,0,0,0,99,2,0,0,0,0,0,0,0,2,0,0,
+ 0,6,0,0,0,8,0,0,0,67,0,0,0,115,152,0,
+ 0,0,116,0,124,1,100,1,131,2,114,74,116,1,100,2,
+ 117,0,114,22,116,2,130,1,116,1,106,3,125,4,124,3,
+ 100,2,117,0,114,48,124,4,124,0,124,1,100,3,141,2,
+ 83,0,124,3,114,56,103,0,110,2,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,136,116,0,124,1,100,5,131,2,114,132,122,14,
+ 124,1,160,4,124,0,161,1,125,3,87,0,113,136,4,0,
+ 116,5,121,128,1,0,1,0,1,0,100,2,125,3,89,0,
+ 113,136,48,0,110,4,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,108,0,0,0,41,2,114,108,0,0,0,
+ 114,115,0,0,0,114,114,0,0,0,70,114,134,0,0,0,
+ 41,7,114,4,0,0,0,114,125,0,0,0,114,126,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,114,0,0,0,114,
+ 78,0,0,0,114,111,0,0,0,41,6,114,17,0,0,0,
+ 114,108,0,0,0,114,112,0,0,0,114,114,0,0,0,114,
+ 135,0,0,0,90,6,115,101,97,114,99,104,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,90,0,0,0,
+ 150,1,0,0,115,36,0,0,0,0,2,10,1,8,1,4,
+ 1,6,2,8,1,12,1,12,1,6,1,2,255,6,3,8,
+ 1,10,1,2,1,14,1,12,1,12,3,4,2,114,90,0,
+ 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,8,
+ 0,0,0,8,0,0,0,67,0,0,0,115,42,1,0,0,
+ 122,10,124,0,106,0,125,3,87,0,110,18,4,0,116,1,
+ 121,28,1,0,1,0,1,0,89,0,110,14,48,0,124,3,
+ 100,0,117,1,114,42,124,3,83,0,124,0,106,2,125,4,
+ 124,1,100,0,117,0,114,86,122,10,124,0,106,3,125,1,
+ 87,0,110,18,4,0,116,1,121,84,1,0,1,0,1,0,
+ 89,0,110,2,48,0,122,10,124,0,106,4,125,5,87,0,
+ 110,22,4,0,116,1,121,118,1,0,1,0,1,0,100,0,
+ 125,5,89,0,110,2,48,0,124,2,100,0,117,0,114,176,
+ 124,5,100,0,117,0,114,172,122,10,124,1,106,5,125,2,
+ 87,0,113,176,4,0,116,1,121,168,1,0,1,0,1,0,
+ 100,0,125,2,89,0,113,176,48,0,110,4,124,5,125,2,
+ 122,10,124,0,106,6,125,6,87,0,110,22,4,0,116,1,
+ 121,208,1,0,1,0,1,0,100,0,125,6,89,0,110,2,
+ 48,0,122,14,116,7,124,0,106,8,131,1,125,7,87,0,
+ 110,22,4,0,116,1,121,246,1,0,1,0,1,0,100,0,
+ 125,7,89,0,110,2,48,0,116,9,124,4,124,1,124,2,
+ 100,1,141,3,125,3,124,5,100,0,117,0,144,1,114,20,
+ 100,2,110,2,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,
+ 112,0,0,0,70,84,41,13,114,104,0,0,0,114,105,0,
+ 0,0,114,1,0,0,0,114,97,0,0,0,114,107,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,111,0,0,0,114,116,0,0,0,
+ 114,121,0,0,0,114,115,0,0,0,41,8,114,95,0,0,
+ 0,114,108,0,0,0,114,112,0,0,0,114,94,0,0,0,
+ 114,17,0,0,0,90,8,108,111,99,97,116,105,111,110,114,
+ 121,0,0,0,114,115,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,218,17,95,115,112,101,99,95,
+ 102,114,111,109,95,109,111,100,117,108,101,176,1,0,0,115,
+ 72,0,0,0,0,2,2,1,10,1,12,1,6,2,8,1,
+ 4,2,6,1,8,1,2,1,10,1,12,2,6,1,2,1,
+ 10,1,12,1,10,1,8,1,8,1,2,1,10,1,12,1,
+ 12,2,4,1,2,1,10,1,12,1,10,1,2,1,14,1,
+ 12,1,10,2,14,1,20,1,6,1,6,1,114,141,0,0,
+ 0,70,169,1,218,8,111,118,101,114,114,105,100,101,99,2,
+ 0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,8,
+ 0,0,0,67,0,0,0,115,210,1,0,0,124,2,115,20,
+ 116,0,124,1,100,1,100,0,131,3,100,0,117,0,114,52,
+ 122,12,124,0,106,1,124,1,95,2,87,0,110,18,4,0,
+ 116,3,121,50,1,0,1,0,1,0,89,0,110,2,48,0,
+ 124,2,115,72,116,0,124,1,100,2,100,0,131,3,100,0,
+ 117,0,114,174,124,0,106,4,125,3,124,3,100,0,117,0,
+ 114,144,124,0,106,5,100,0,117,1,114,144,116,6,100,0,
+ 117,0,114,108,116,7,130,1,116,6,106,8,125,4,124,4,
+ 160,9,124,4,161,1,125,3,124,0,106,5,124,3,95,10,
+ 124,3,124,0,95,4,100,0,124,1,95,11,122,10,124,3,
+ 124,1,95,12,87,0,110,18,4,0,116,3,121,172,1,0,
+ 1,0,1,0,89,0,110,2,48,0,124,2,115,194,116,0,
+ 124,1,100,3,100,0,131,3,100,0,117,0,114,226,122,12,
+ 124,0,106,13,124,1,95,14,87,0,110,18,4,0,116,3,
+ 121,224,1,0,1,0,1,0,89,0,110,2,48,0,122,10,
+ 124,0,124,1,95,15,87,0,110,18,4,0,116,3,121,254,
+ 1,0,1,0,1,0,89,0,110,2,48,0,124,2,144,1,
+ 115,24,116,0,124,1,100,4,100,0,131,3,100,0,117,0,
+ 144,1,114,70,124,0,106,5,100,0,117,1,144,1,114,70,
+ 122,12,124,0,106,5,124,1,95,16,87,0,110,20,4,0,
+ 116,3,144,1,121,68,1,0,1,0,1,0,89,0,110,2,
+ 48,0,124,0,106,17,144,1,114,206,124,2,144,1,115,102,
+ 116,0,124,1,100,5,100,0,131,3,100,0,117,0,144,1,
+ 114,136,122,12,124,0,106,18,124,1,95,11,87,0,110,20,
+ 4,0,116,3,144,1,121,134,1,0,1,0,1,0,89,0,
+ 110,2,48,0,124,2,144,1,115,160,116,0,124,1,100,6,
+ 100,0,131,3,100,0,117,0,144,1,114,206,124,0,106,19,
+ 100,0,117,1,144,1,114,206,122,12,124,0,106,19,124,1,
+ 95,20,87,0,110,20,4,0,116,3,144,1,121,204,1,0,
+ 1,0,1,0,89,0,110,2,48,0,124,1,83,0,41,7,
+ 78,114,1,0,0,0,114,97,0,0,0,218,11,95,95,112,
+ 97,99,107,97,103,101,95,95,114,140,0,0,0,114,107,0,
+ 0,0,114,138,0,0,0,41,21,114,6,0,0,0,114,17,
+ 0,0,0,114,1,0,0,0,114,105,0,0,0,114,108,0,
+ 0,0,114,115,0,0,0,114,125,0,0,0,114,126,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,107,0,0,0,114,97,0,0,0,114,129,0,
+ 0,0,114,144,0,0,0,114,104,0,0,0,114,140,0,0,
+ 0,114,122,0,0,0,114,112,0,0,0,114,121,0,0,0,
+ 114,138,0,0,0,41,5,114,94,0,0,0,114,95,0,0,
+ 0,114,143,0,0,0,114,108,0,0,0,114,145,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,
+ 18,95,105,110,105,116,95,109,111,100,117,108,101,95,97,116,
+ 116,114,115,221,1,0,0,115,96,0,0,0,0,4,20,1,
+ 2,1,12,1,12,1,6,2,20,1,6,1,8,2,10,1,
+ 8,1,4,1,6,2,10,1,8,1,6,11,6,1,2,1,
+ 10,1,12,1,6,2,20,1,2,1,12,1,12,1,6,2,
+ 2,1,10,1,12,1,6,2,24,1,12,1,2,1,12,1,
+ 14,1,6,2,8,1,24,1,2,1,12,1,14,1,6,2,
+ 24,1,12,1,2,1,12,1,14,1,6,1,114,147,0,0,
+ 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,3,0,0,0,67,0,0,0,115,82,0,0,0,100,
+ 1,125,1,116,0,124,0,106,1,100,2,131,2,114,30,124,
+ 0,106,1,160,2,124,0,161,1,125,1,110,20,116,0,124,
+ 0,106,1,100,3,131,2,114,50,116,3,100,4,131,1,130,
+ 1,124,1,100,1,117,0,114,68,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,4,0,0,0,114,108,0,0,0,114,148,0,
+ 0,0,114,78,0,0,0,114,18,0,0,0,114,17,0,0,
+ 0,114,147,0,0,0,169,2,114,94,0,0,0,114,95,0,
+ 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
+ 0,218,16,109,111,100,117,108,101,95,102,114,111,109,95,115,
+ 112,101,99,37,2,0,0,115,18,0,0,0,0,3,4,1,
+ 12,3,14,1,12,1,8,2,8,1,10,1,10,1,114,151,
+ 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,4,0,0,0,67,0,0,0,115,106,0,0,
+ 0,124,0,106,0,100,1,117,0,114,14,100,2,110,4,124,
+ 0,106,0,125,1,124,0,106,1,100,1,117,0,114,66,124,
+ 0,106,2,100,1,117,0,114,50,100,3,160,3,124,1,161,
+ 1,83,0,100,4,160,3,124,1,124,0,106,2,161,2,83,
+ 0,110,36,124,0,106,4,114,86,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,100,1,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,99,0,0,0,114,100,0,0,0,
+ 114,101,0,0,0,114,102,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,17,0,0,0,114,112,0,0,0,114,108,0,0,0,114,
+ 44,0,0,0,114,122,0,0,0,41,2,114,94,0,0,0,
+ 114,17,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,114,106,0,0,0,54,2,0,0,115,16,0,
+ 0,0,0,3,20,1,10,1,10,1,10,2,16,2,6,1,
+ 14,2,114,106,0,0,0,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,4,0,0,0,10,0,0,0,67,0,0,0,
+ 115,250,0,0,0,124,0,106,0,125,2,116,1,124,2,131,
+ 1,143,216,1,0,116,2,106,3,160,4,124,2,161,1,124,
+ 1,117,1,114,54,100,1,160,5,124,2,161,1,125,3,116,
+ 6,124,3,124,2,100,2,141,2,130,1,122,132,124,0,106,
+ 7,100,3,117,0,114,106,124,0,106,8,100,3,117,0,114,
+ 90,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,52,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,146,124,0,106,7,160,11,124,
+ 2,161,1,1,0,110,12,124,0,106,7,160,12,124,1,161,
+ 1,1,0,87,0,116,2,106,3,160,13,124,0,106,0,161,
+ 1,125,1,124,1,116,2,106,3,124,0,106,0,60,0,110,
+ 28,116,2,106,3,160,13,124,0,106,0,161,1,125,1,124,
+ 1,116,2,106,3,124,0,106,0,60,0,48,0,87,0,100,
+ 3,4,0,4,0,131,3,1,0,110,16,49,0,115,236,48,
+ 0,1,0,1,0,1,0,89,0,1,0,124,1,83,0,41,
+ 8,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,16,0,0,0,78,250,
+ 14,109,105,115,115,105,110,103,32,108,111,97,100,101,114,84,
+ 114,142,0,0,0,114,149,0,0,0,41,14,114,17,0,0,
+ 0,114,49,0,0,0,114,15,0,0,0,114,91,0,0,0,
+ 114,34,0,0,0,114,44,0,0,0,114,78,0,0,0,114,
+ 108,0,0,0,114,115,0,0,0,114,147,0,0,0,114,4,
+ 0,0,0,218,11,108,111,97,100,95,109,111,100,117,108,101,
+ 114,149,0,0,0,218,3,112,111,112,41,4,114,94,0,0,
+ 0,114,95,0,0,0,114,17,0,0,0,218,3,109,115,103,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
+ 92,0,0,0,71,2,0,0,115,38,0,0,0,0,2,6,
+ 1,10,1,16,1,10,1,12,1,2,1,10,1,10,1,14,
+ 2,16,2,14,1,12,4,14,2,14,4,14,1,14,255,14,
+ 1,44,1,114,92,0,0,0,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,8,0,0,0,67,0,0,
+ 0,115,20,1,0,0,122,18,124,0,106,0,160,1,124,0,
+ 106,2,161,1,1,0,87,0,110,52,1,0,1,0,1,0,
+ 124,0,106,2,116,3,106,4,118,0,114,64,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,89,0,110,2,48,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,146,122,12,124,0,106,0,124,1,
+ 95,7,87,0,110,18,4,0,116,8,121,144,1,0,1,0,
+ 1,0,89,0,110,2,48,0,116,6,124,1,100,2,100,0,
+ 131,3,100,0,117,0,114,222,122,40,124,1,106,9,124,1,
+ 95,10,116,11,124,1,100,3,131,2,115,200,124,0,106,2,
+ 160,12,100,4,161,1,100,5,25,0,124,1,95,10,87,0,
+ 110,18,4,0,116,8,121,220,1,0,1,0,1,0,89,0,
+ 110,2,48,0,116,6,124,1,100,6,100,0,131,3,100,0,
+ 117,0,144,1,114,16,122,10,124,0,124,1,95,13,87,0,
+ 110,20,4,0,116,8,144,1,121,14,1,0,1,0,1,0,
+ 89,0,110,2,48,0,124,1,83,0,41,7,78,114,97,0,
+ 0,0,114,144,0,0,0,114,140,0,0,0,114,127,0,0,
+ 0,114,22,0,0,0,114,104,0,0,0,41,14,114,108,0,
+ 0,0,114,154,0,0,0,114,17,0,0,0,114,15,0,0,
+ 0,114,91,0,0,0,114,155,0,0,0,114,6,0,0,0,
+ 114,97,0,0,0,114,105,0,0,0,114,1,0,0,0,114,
+ 144,0,0,0,114,4,0,0,0,114,128,0,0,0,114,104,
+ 0,0,0,114,150,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,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,101,2,0,0,115,54,0,0,0,0,4,2,1,18,
+ 1,6,1,12,1,14,1,12,1,8,3,14,1,12,1,16,
+ 1,2,1,12,1,12,1,6,1,16,1,2,4,8,1,10,
+ 1,22,1,12,1,6,1,18,1,2,1,10,1,14,1,6,
+ 1,114,157,0,0,0,99,1,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,11,0,0,0,67,0,0,0,115,
+ 224,0,0,0,124,0,106,0,100,0,117,1,114,30,116,1,
+ 124,0,106,0,100,1,131,2,115,30,116,2,124,0,131,1,
+ 83,0,116,3,124,0,131,1,125,1,100,2,124,0,95,4,
+ 122,166,124,1,116,5,106,6,124,0,106,7,60,0,122,52,
+ 124,0,106,0,100,0,117,0,114,96,124,0,106,8,100,0,
+ 117,0,114,108,116,9,100,3,124,0,106,7,100,4,141,2,
+ 130,1,110,12,124,0,106,0,160,10,124,1,161,1,1,0,
+ 87,0,110,48,1,0,1,0,1,0,122,14,116,5,106,6,
+ 124,0,106,7,61,0,87,0,110,18,4,0,116,11,121,150,
+ 1,0,1,0,1,0,89,0,110,2,48,0,130,0,89,0,
+ 110,2,48,0,116,5,106,6,160,12,124,0,106,7,161,1,
+ 125,1,124,1,116,5,106,6,124,0,106,7,60,0,116,13,
+ 100,5,124,0,106,7,124,0,106,0,131,3,1,0,87,0,
+ 100,6,124,0,95,4,110,8,100,6,124,0,95,4,48,0,
+ 124,1,83,0,41,7,78,114,149,0,0,0,84,114,153,0,
+ 0,0,114,16,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,14,114,108,
+ 0,0,0,114,4,0,0,0,114,157,0,0,0,114,151,0,
+ 0,0,90,13,95,105,110,105,116,105,97,108,105,122,105,110,
+ 103,114,15,0,0,0,114,91,0,0,0,114,17,0,0,0,
+ 114,115,0,0,0,114,78,0,0,0,114,149,0,0,0,114,
+ 62,0,0,0,114,155,0,0,0,114,75,0,0,0,114,150,
+ 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
+ 0,0,218,14,95,108,111,97,100,95,117,110,108,111,99,107,
+ 101,100,138,2,0,0,115,48,0,0,0,0,2,10,2,12,
+ 1,8,2,8,5,6,1,2,1,12,1,2,1,10,1,10,
+ 1,16,3,16,1,6,1,2,1,14,1,12,1,6,1,8,
+ 5,14,1,12,1,18,2,8,0,8,2,114,158,0,0,0,
+ 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
+ 0,8,0,0,0,67,0,0,0,115,54,0,0,0,116,0,
+ 124,0,106,1,131,1,143,24,1,0,116,2,124,0,131,1,
+ 87,0,2,0,100,1,4,0,4,0,131,3,1,0,83,0,
+ 49,0,115,40,48,0,1,0,1,0,1,0,89,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,49,0,0,0,114,
+ 17,0,0,0,114,158,0,0,0,41,1,114,94,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
+ 93,0,0,0,180,2,0,0,115,4,0,0,0,0,9,12,
+ 1,114,93,0,0,0,99,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,4,0,0,0,64,0,0,0,115,
+ 140,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
+ 100,2,90,4,101,5,100,3,100,4,132,0,131,1,90,6,
+ 101,7,100,20,100,6,100,7,132,1,131,1,90,8,101,7,
+ 100,21,100,8,100,9,132,1,131,1,90,9,101,7,100,10,
+ 100,11,132,0,131,1,90,10,101,7,100,12,100,13,132,0,
+ 131,1,90,11,101,7,101,12,100,14,100,15,132,0,131,1,
+ 131,1,90,13,101,7,101,12,100,16,100,17,132,0,131,1,
+ 131,1,90,14,101,7,101,12,100,18,100,19,132,0,131,1,
+ 131,1,90,15,101,7,101,16,131,1,90,17,100,5,83,0,
+ 41,22,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,1,0,0,0,
+ 5,0,0,0,67,0,0,0,115,22,0,0,0,100,1,124,
+ 0,106,0,155,2,100,2,116,1,106,2,155,0,100,3,157,
+ 5,83,0,41,4,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,8,60,109,111,100,
+ 117,108,101,32,122,2,32,40,122,2,41,62,41,3,114,1,
+ 0,0,0,114,159,0,0,0,114,137,0,0,0,41,1,114,
+ 95,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,114,98,0,0,0,206,2,0,0,115,2,0,0,
+ 0,0,7,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,
+ 78,99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,
+ 0,0,5,0,0,0,67,0,0,0,115,46,0,0,0,124,
+ 2,100,0,117,1,114,12,100,0,83,0,116,0,160,1,124,
+ 1,161,1,114,38,116,2,124,1,124,0,124,0,106,3,100,
+ 1,141,3,83,0,100,0,83,0,100,0,83,0,169,2,78,
+ 114,136,0,0,0,41,4,114,56,0,0,0,90,10,105,115,
+ 95,98,117,105,108,116,105,110,114,90,0,0,0,114,137,0,
+ 0,0,169,4,218,3,99,108,115,114,80,0,0,0,218,4,
+ 112,97,116,104,218,6,116,97,114,103,101,116,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,9,102,105,110,
+ 100,95,115,112,101,99,215,2,0,0,115,10,0,0,0,0,
+ 2,8,1,4,1,10,1,16,2,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,99,3,0,0,0,0,0,0,0,0,0,0,
+ 0,4,0,0,0,4,0,0,0,67,0,0,0,115,30,0,
+ 0,0,124,0,160,0,124,1,124,2,161,2,125,3,124,3,
+ 100,1,117,1,114,26,124,3,106,1,83,0,100,1,83,0,
+ 41,2,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,78,41,2,114,166,0,0,0,114,108,0,0,0,
+ 41,4,114,163,0,0,0,114,80,0,0,0,114,164,0,0,
+ 0,114,94,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,218,11,102,105,110,100,95,109,111,100,117,
+ 108,101,224,2,0,0,115,4,0,0,0,0,9,12,1,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,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
+ 0,67,0,0,0,115,46,0,0,0,124,1,106,0,116,1,
+ 106,2,118,1,114,34,116,3,100,1,160,4,124,1,106,0,
+ 161,1,124,1,106,0,100,2,141,2,130,1,116,5,116,6,
+ 106,7,124,1,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,76,0,0,0,114,16,0,0,0,41,8,
+ 114,17,0,0,0,114,15,0,0,0,114,77,0,0,0,114,
+ 78,0,0,0,114,44,0,0,0,114,66,0,0,0,114,56,
+ 0,0,0,90,14,99,114,101,97,116,101,95,98,117,105,108,
+ 116,105,110,41,2,114,30,0,0,0,114,94,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,148,
+ 0,0,0,236,2,0,0,115,10,0,0,0,0,3,12,1,
+ 12,1,4,255,6,2,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,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,16,
+ 0,0,0,116,0,116,1,106,2,124,1,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,66,0,0,0,114,56,0,0,0,90,12,101,120,101,99,
+ 95,98,117,105,108,116,105,110,41,2,114,30,0,0,0,114,
+ 95,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,114,149,0,0,0,244,2,0,0,115,2,0,0,
+ 0,0,3,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,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+ 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,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,10,0,0,0,169,2,114,163,0,0,0,114,80,0,0,
0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 114,106,0,0,0,54,2,0,0,115,16,0,0,0,0,3,
- 20,1,10,1,10,1,10,2,16,2,6,1,14,2,114,106,
- 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 4,0,0,0,10,0,0,0,67,0,0,0,115,250,0,0,
- 0,124,0,106,0,125,2,116,1,124,2,131,1,143,216,1,
- 0,116,2,106,3,160,4,124,2,161,1,124,1,117,1,114,
- 54,100,1,160,5,124,2,161,1,125,3,116,6,124,3,124,
- 2,100,2,141,2,130,1,122,132,124,0,106,7,100,3,117,
- 0,114,106,124,0,106,8,100,3,117,0,114,90,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,52,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,146,124,0,106,7,160,11,124,2,161,1,1,
- 0,110,12,124,0,106,7,160,12,124,1,161,1,1,0,87,
- 0,116,2,106,3,160,13,124,0,106,0,161,1,125,1,124,
- 1,116,2,106,3,124,0,106,0,60,0,110,28,116,2,106,
- 3,160,13,124,0,106,0,161,1,125,1,124,1,116,2,106,
- 3,124,0,106,0,60,0,48,0,87,0,100,3,4,0,4,
- 0,131,3,1,0,110,16,49,0,115,236,48,0,1,0,1,
- 0,1,0,89,0,1,0,124,1,83,0,41,8,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,16,0,0,0,78,250,14,109,105,115,
- 115,105,110,103,32,108,111,97,100,101,114,84,114,142,0,0,
- 0,114,149,0,0,0,41,14,114,17,0,0,0,114,49,0,
- 0,0,114,15,0,0,0,114,91,0,0,0,114,34,0,0,
- 0,114,44,0,0,0,114,78,0,0,0,114,108,0,0,0,
- 114,115,0,0,0,114,147,0,0,0,114,4,0,0,0,218,
- 11,108,111,97,100,95,109,111,100,117,108,101,114,149,0,0,
- 0,218,3,112,111,112,41,4,114,94,0,0,0,114,95,0,
- 0,0,114,17,0,0,0,218,3,109,115,103,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,92,0,0,0,
- 71,2,0,0,115,38,0,0,0,0,2,6,1,10,1,16,
- 1,10,1,12,1,2,1,10,1,10,1,14,2,16,2,14,
- 1,12,4,14,2,14,4,14,1,14,255,14,1,44,1,114,
- 92,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,8,0,0,0,67,0,0,0,115,20,1,
- 0,0,122,18,124,0,106,0,160,1,124,0,106,2,161,1,
- 1,0,87,0,110,52,1,0,1,0,1,0,124,0,106,2,
- 116,3,106,4,118,0,114,64,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,89,0,110,2,48,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,146,122,12,124,0,106,0,124,1,95,7,87,0,
- 110,18,4,0,116,8,121,144,1,0,1,0,1,0,89,0,
- 110,2,48,0,116,6,124,1,100,2,100,0,131,3,100,0,
- 117,0,114,222,122,40,124,1,106,9,124,1,95,10,116,11,
- 124,1,100,3,131,2,115,200,124,0,106,2,160,12,100,4,
- 161,1,100,5,25,0,124,1,95,10,87,0,110,18,4,0,
- 116,8,121,220,1,0,1,0,1,0,89,0,110,2,48,0,
- 116,6,124,1,100,6,100,0,131,3,100,0,117,0,144,1,
- 114,16,122,10,124,0,124,1,95,13,87,0,110,20,4,0,
- 116,8,144,1,121,14,1,0,1,0,1,0,89,0,110,2,
- 48,0,124,1,83,0,41,7,78,114,97,0,0,0,114,144,
- 0,0,0,114,140,0,0,0,114,127,0,0,0,114,22,0,
- 0,0,114,104,0,0,0,41,14,114,108,0,0,0,114,154,
- 0,0,0,114,17,0,0,0,114,15,0,0,0,114,91,0,
- 0,0,114,155,0,0,0,114,6,0,0,0,114,97,0,0,
- 0,114,105,0,0,0,114,1,0,0,0,114,144,0,0,0,
- 114,4,0,0,0,114,128,0,0,0,114,104,0,0,0,114,
- 150,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 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,101,2,
- 0,0,115,54,0,0,0,0,4,2,1,18,1,6,1,12,
- 1,14,1,12,1,8,3,14,1,12,1,16,1,2,1,12,
- 1,12,1,6,1,16,1,2,4,8,1,10,1,22,1,12,
- 1,6,1,18,1,2,1,10,1,14,1,6,1,114,157,0,
- 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,11,0,0,0,67,0,0,0,115,224,0,0,0,
- 124,0,106,0,100,0,117,1,114,30,116,1,124,0,106,0,
- 100,1,131,2,115,30,116,2,124,0,131,1,83,0,116,3,
- 124,0,131,1,125,1,100,2,124,0,95,4,122,166,124,1,
- 116,5,106,6,124,0,106,7,60,0,122,52,124,0,106,0,
- 100,0,117,0,114,96,124,0,106,8,100,0,117,0,114,108,
- 116,9,100,3,124,0,106,7,100,4,141,2,130,1,110,12,
- 124,0,106,0,160,10,124,1,161,1,1,0,87,0,110,48,
- 1,0,1,0,1,0,122,14,116,5,106,6,124,0,106,7,
- 61,0,87,0,110,18,4,0,116,11,121,150,1,0,1,0,
- 1,0,89,0,110,2,48,0,130,0,89,0,110,2,48,0,
- 116,5,106,6,160,12,124,0,106,7,161,1,125,1,124,1,
- 116,5,106,6,124,0,106,7,60,0,116,13,100,5,124,0,
- 106,7,124,0,106,0,131,3,1,0,87,0,100,6,124,0,
- 95,4,110,8,100,6,124,0,95,4,48,0,124,1,83,0,
- 41,7,78,114,149,0,0,0,84,114,153,0,0,0,114,16,
- 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,14,114,108,0,0,0,114,
- 4,0,0,0,114,157,0,0,0,114,151,0,0,0,90,13,
- 95,105,110,105,116,105,97,108,105,122,105,110,103,114,15,0,
- 0,0,114,91,0,0,0,114,17,0,0,0,114,115,0,0,
- 0,114,78,0,0,0,114,149,0,0,0,114,62,0,0,0,
- 114,155,0,0,0,114,75,0,0,0,114,150,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,14,
- 95,108,111,97,100,95,117,110,108,111,99,107,101,100,138,2,
- 0,0,115,48,0,0,0,0,2,10,2,12,1,8,2,8,
- 5,6,1,2,1,12,1,2,1,10,1,10,1,16,3,16,
- 1,6,1,2,1,14,1,12,1,6,1,8,5,14,1,12,
- 1,18,2,8,0,8,2,114,158,0,0,0,99,1,0,0,
- 0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,
- 0,67,0,0,0,115,54,0,0,0,116,0,124,0,106,1,
- 131,1,143,24,1,0,116,2,124,0,131,1,87,0,2,0,
- 100,1,4,0,4,0,131,3,1,0,83,0,49,0,115,40,
- 48,0,1,0,1,0,1,0,89,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,49,0,0,0,114,17,0,0,0,
- 114,158,0,0,0,41,1,114,94,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,114,93,0,0,0,
- 180,2,0,0,115,4,0,0,0,0,9,12,1,114,93,0,
- 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,4,0,0,0,64,0,0,0,115,140,0,0,0,
- 101,0,90,1,100,0,90,2,100,1,90,3,100,2,90,4,
- 101,5,100,3,100,4,132,0,131,1,90,6,101,7,100,20,
- 100,6,100,7,132,1,131,1,90,8,101,7,100,21,100,8,
- 100,9,132,1,131,1,90,9,101,7,100,10,100,11,132,0,
- 131,1,90,10,101,7,100,12,100,13,132,0,131,1,90,11,
- 101,7,101,12,100,14,100,15,132,0,131,1,131,1,90,13,
- 101,7,101,12,100,16,100,17,132,0,131,1,131,1,90,14,
- 101,7,101,12,100,18,100,19,132,0,131,1,131,1,90,15,
- 101,7,101,16,131,1,90,17,100,5,83,0,41,22,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,
+ 218,8,103,101,116,95,99,111,100,101,249,2,0,0,115,2,
+ 0,0,0,0,4,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,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+ 1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,83,
+ 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,10,
+ 0,0,0,114,168,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,10,103,101,116,95,115,111,117,
+ 114,99,101,255,2,0,0,115,2,0,0,0,0,4,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,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
+ 0,0,0,115,4,0,0,0,100,1,83,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,10,0,0,0,114,168,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,114,
+ 0,0,0,5,3,0,0,115,2,0,0,0,0,4,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,41,2,78,78,41,1,
+ 78,41,18,114,1,0,0,0,114,0,0,0,0,114,2,0,
+ 0,0,114,3,0,0,0,114,137,0,0,0,218,12,115,116,
+ 97,116,105,99,109,101,116,104,111,100,114,98,0,0,0,218,
+ 11,99,108,97,115,115,109,101,116,104,111,100,114,166,0,0,
+ 0,114,167,0,0,0,114,148,0,0,0,114,149,0,0,0,
+ 114,85,0,0,0,114,169,0,0,0,114,170,0,0,0,114,
+ 114,0,0,0,114,96,0,0,0,114,154,0,0,0,114,10,
+ 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
+ 0,0,114,159,0,0,0,195,2,0,0,115,44,0,0,0,
+ 8,2,4,7,4,2,2,1,10,8,2,1,12,8,2,1,
+ 12,11,2,1,10,7,2,1,10,4,2,1,2,1,12,4,
+ 2,1,2,1,12,4,2,1,2,1,12,4,114,159,0,0,
+ 0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,4,0,0,0,64,0,0,0,115,144,0,0,0,101,
+ 0,90,1,100,0,90,2,100,1,90,3,100,2,90,4,101,
+ 5,100,3,100,4,132,0,131,1,90,6,101,7,100,22,100,
+ 6,100,7,132,1,131,1,90,8,101,7,100,23,100,8,100,
+ 9,132,1,131,1,90,9,101,7,100,10,100,11,132,0,131,
+ 1,90,10,101,5,100,12,100,13,132,0,131,1,90,11,101,
+ 7,100,14,100,15,132,0,131,1,90,12,101,7,101,13,100,
+ 16,100,17,132,0,131,1,131,1,90,14,101,7,101,13,100,
+ 18,100,19,132,0,131,1,131,1,90,15,101,7,101,13,100,
+ 20,100,21,132,0,131,1,131,1,90,16,100,5,83,0,41,
+ 24,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,
@@ -1049,761 +1193,617 @@ const unsigned char _Py_M__importlib_bootstrap[] = {
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,1,0,0,0,5,0,0,0,
- 67,0,0,0,115,22,0,0,0,100,1,124,0,106,0,155,
- 2,100,2,116,1,106,2,155,0,100,3,157,5,83,0,41,
- 4,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,8,60,109,111,100,117,108,101,32,
- 122,2,32,40,122,2,41,62,41,3,114,1,0,0,0,114,
- 159,0,0,0,114,137,0,0,0,41,1,114,95,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
- 98,0,0,0,206,2,0,0,115,2,0,0,0,0,7,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,78,99,4,0,
- 0,0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,
- 0,0,67,0,0,0,115,46,0,0,0,124,2,100,0,117,
- 1,114,12,100,0,83,0,116,0,160,1,124,1,161,1,114,
- 38,116,2,124,1,124,0,124,0,106,3,100,1,141,3,83,
- 0,100,0,83,0,100,0,83,0,169,2,78,114,136,0,0,
- 0,41,4,114,56,0,0,0,90,10,105,115,95,98,117,105,
- 108,116,105,110,114,90,0,0,0,114,137,0,0,0,169,4,
- 218,3,99,108,115,114,80,0,0,0,218,4,112,97,116,104,
- 218,6,116,97,114,103,101,116,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,9,102,105,110,100,95,115,112,
- 101,99,215,2,0,0,115,10,0,0,0,0,2,8,1,4,
- 1,10,1,16,2,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,
- 99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
- 0,4,0,0,0,67,0,0,0,115,30,0,0,0,124,0,
- 160,0,124,1,124,2,161,2,125,3,124,3,100,1,117,1,
- 114,26,124,3,106,1,83,0,100,1,83,0,41,2,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,78,
- 41,2,114,166,0,0,0,114,108,0,0,0,41,4,114,163,
- 0,0,0,114,80,0,0,0,114,164,0,0,0,114,94,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,218,11,102,105,110,100,95,109,111,100,117,108,101,224,2,
- 0,0,115,4,0,0,0,0,9,12,1,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,99,2,0,0,0,0,0,0,
- 0,0,0,0,0,2,0,0,0,4,0,0,0,67,0,0,
- 0,115,46,0,0,0,124,1,106,0,116,1,106,2,118,1,
- 114,34,116,3,100,1,160,4,124,1,106,0,161,1,124,1,
- 106,0,100,2,141,2,130,1,116,5,116,6,106,7,124,1,
- 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,76,0,0,0,114,16,0,0,0,41,8,114,17,0,0,
- 0,114,15,0,0,0,114,77,0,0,0,114,78,0,0,0,
- 114,44,0,0,0,114,66,0,0,0,114,56,0,0,0,90,
- 14,99,114,101,97,116,101,95,98,117,105,108,116,105,110,41,
- 2,114,30,0,0,0,114,94,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,114,148,0,0,0,236,
- 2,0,0,115,10,0,0,0,0,3,12,1,12,1,4,255,
- 6,2,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,
+ 32,90,6,102,114,111,122,101,110,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,1,0,0,0,4,0,0,0,67,0,
+ 0,0,115,16,0,0,0,100,1,160,0,124,0,106,1,116,
+ 2,106,3,161,2,83,0,41,2,114,160,0,0,0,114,152,
+ 0,0,0,41,4,114,44,0,0,0,114,1,0,0,0,114,
+ 173,0,0,0,114,137,0,0,0,41,1,218,1,109,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,114,98,0,
+ 0,0,25,3,0,0,115,2,0,0,0,0,7,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,78,99,4,0,0,0,0,
+ 0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,67,
+ 0,0,0,115,34,0,0,0,116,0,160,1,124,1,161,1,
+ 114,26,116,2,124,1,124,0,124,0,106,3,100,1,141,3,
+ 83,0,100,0,83,0,100,0,83,0,114,161,0,0,0,41,
+ 4,114,56,0,0,0,114,87,0,0,0,114,90,0,0,0,
+ 114,137,0,0,0,114,162,0,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,114,166,0,0,0,34,3,
+ 0,0,115,6,0,0,0,0,2,10,1,16,2,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,99,3,0,0,0,0,0,0,0,
+ 0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,
+ 115,18,0,0,0,116,0,160,1,124,1,161,1,114,14,124,
+ 0,83,0,100,1,83,0,41,2,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,78,41,2,114,56,0,0,0,
+ 114,87,0,0,0,41,3,114,163,0,0,0,114,80,0,0,
+ 0,114,164,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,167,0,0,0,41,3,0,0,115,2,
+ 0,0,0,0,7,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,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,3,0,0,0,67,0,0,0,115,16,0,0,0,116,
- 0,116,1,106,2,124,1,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,66,0,0,
- 0,114,56,0,0,0,90,12,101,120,101,99,95,98,117,105,
- 108,116,105,110,41,2,114,30,0,0,0,114,95,0,0,0,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,
- 149,0,0,0,244,2,0,0,115,2,0,0,0,0,3,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,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
- 0,67,0,0,0,115,4,0,0,0,100,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,10,0,0,
- 0,169,2,114,163,0,0,0,114,80,0,0,0,114,10,0,
- 0,0,114,10,0,0,0,114,11,0,0,0,218,8,103,101,
- 116,95,99,111,100,101,249,2,0,0,115,2,0,0,0,0,
- 4,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,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
- 67,0,0,0,115,4,0,0,0,100,1,83,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,10,0,0,0,114,
- 168,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,218,10,103,101,116,95,115,111,117,114,99,101,255,
- 2,0,0,115,2,0,0,0,0,4,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,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,
- 4,0,0,0,100,1,83,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,10,0,0,0,114,168,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,114,114,0,0,0,5,
- 3,0,0,115,2,0,0,0,0,4,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,41,2,78,78,41,1,78,41,18,114,
- 1,0,0,0,114,0,0,0,0,114,2,0,0,0,114,3,
- 0,0,0,114,137,0,0,0,218,12,115,116,97,116,105,99,
- 109,101,116,104,111,100,114,98,0,0,0,218,11,99,108,97,
- 115,115,109,101,116,104,111,100,114,166,0,0,0,114,167,0,
- 0,0,114,148,0,0,0,114,149,0,0,0,114,85,0,0,
- 0,114,169,0,0,0,114,170,0,0,0,114,114,0,0,0,
- 114,96,0,0,0,114,154,0,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,159,
- 0,0,0,195,2,0,0,115,44,0,0,0,8,2,4,7,
- 4,2,2,1,10,8,2,1,12,8,2,1,12,11,2,1,
- 10,7,2,1,10,4,2,1,2,1,12,4,2,1,2,1,
- 12,4,2,1,2,1,12,4,114,159,0,0,0,99,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,
- 0,0,64,0,0,0,115,144,0,0,0,101,0,90,1,100,
- 0,90,2,100,1,90,3,100,2,90,4,101,5,100,3,100,
- 4,132,0,131,1,90,6,101,7,100,22,100,6,100,7,132,
- 1,131,1,90,8,101,7,100,23,100,8,100,9,132,1,131,
- 1,90,9,101,7,100,10,100,11,132,0,131,1,90,10,101,
- 5,100,12,100,13,132,0,131,1,90,11,101,7,100,14,100,
- 15,132,0,131,1,90,12,101,7,101,13,100,16,100,17,132,
- 0,131,1,131,1,90,14,101,7,101,13,100,18,100,19,132,
- 0,131,1,131,1,90,15,101,7,101,13,100,20,100,21,132,
- 0,131,1,131,1,90,16,100,5,83,0,41,24,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,1,0,0,0,4,0,0,0,67,0,0,0,115,16,
- 0,0,0,100,1,160,0,124,0,106,1,116,2,106,3,161,
- 2,83,0,41,2,114,160,0,0,0,114,152,0,0,0,41,
- 4,114,44,0,0,0,114,1,0,0,0,114,173,0,0,0,
- 114,137,0,0,0,41,1,218,1,109,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,114,98,0,0,0,25,3,
- 0,0,115,2,0,0,0,0,7,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,78,99,4,0,0,0,0,0,0,0,0,
- 0,0,0,4,0,0,0,5,0,0,0,67,0,0,0,115,
- 34,0,0,0,116,0,160,1,124,1,161,1,114,26,116,2,
- 124,1,124,0,124,0,106,3,100,1,141,3,83,0,100,0,
- 83,0,100,0,83,0,114,161,0,0,0,41,4,114,56,0,
- 0,0,114,87,0,0,0,114,90,0,0,0,114,137,0,0,
- 0,114,162,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,166,0,0,0,34,3,0,0,115,6,
- 0,0,0,0,2,10,1,16,2,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,99,3,0,0,0,0,0,0,0,0,0,0,0,
- 3,0,0,0,3,0,0,0,67,0,0,0,115,18,0,0,
- 0,116,0,160,1,124,1,161,1,114,14,124,0,83,0,100,
- 1,83,0,41,2,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,78,41,2,114,56,0,0,0,114,87,0,0,
- 0,41,3,114,163,0,0,0,114,80,0,0,0,114,164,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,167,0,0,0,41,3,0,0,115,2,0,0,0,0,
- 7,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,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,
- 0,0,67,0,0,0,115,4,0,0,0,100,1,83,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,10,
- 0,0,0,41,2,114,163,0,0,0,114,94,0,0,0,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,148,
- 0,0,0,50,3,0,0,115,2,0,0,0,0,2,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,99,1,0,0,
- 0,0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,
- 0,67,0,0,0,115,64,0,0,0,124,0,106,0,106,1,
- 125,1,116,2,160,3,124,1,161,1,115,36,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,86,0,0,0,41,
- 10,114,104,0,0,0,114,17,0,0,0,114,56,0,0,0,
- 114,87,0,0,0,114,78,0,0,0,114,44,0,0,0,114,
- 66,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,7,0,
- 0,0,41,3,114,95,0,0,0,114,17,0,0,0,218,4,
- 99,111,100,101,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,114,149,0,0,0,54,3,0,0,115,14,0,0,
- 0,0,2,8,1,10,1,10,1,2,255,6,2,12,1,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,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
- 67,0,0,0,115,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,96,0,0,0,114,168,0,
- 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,
- 0,114,154,0,0,0,63,3,0,0,115,2,0,0,0,0,
- 7,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,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,
- 0,0,67,0,0,0,115,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,56,0,0,0,114,175,0,
- 0,0,114,168,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,169,0,0,0,72,3,0,0,115,
- 2,0,0,0,0,4,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,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,83,
- 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,10,0,0,
- 0,114,168,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,170,0,0,0,78,3,0,0,115,2,
- 0,0,0,0,4,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,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
- 0,3,0,0,0,67,0,0,0,115,10,0,0,0,116,0,
- 160,1,124,1,161,1,83,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,56,0,0,
- 0,90,17,105,115,95,102,114,111,122,101,110,95,112,97,99,
- 107,97,103,101,114,168,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,114,114,0,0,0,84,3,0,
- 0,115,2,0,0,0,0,4,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,41,2,78,78,41,1,78,41,17,114,1,0,0,
- 0,114,0,0,0,0,114,2,0,0,0,114,3,0,0,0,
- 114,137,0,0,0,114,171,0,0,0,114,98,0,0,0,114,
- 172,0,0,0,114,166,0,0,0,114,167,0,0,0,114,148,
- 0,0,0,114,149,0,0,0,114,154,0,0,0,114,89,0,
- 0,0,114,169,0,0,0,114,170,0,0,0,114,114,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,114,173,0,0,0,14,3,0,0,115,46,
- 0,0,0,8,2,4,7,4,2,2,1,10,8,2,1,12,
- 6,2,1,12,8,2,1,10,3,2,1,10,8,2,1,10,
- 8,2,1,2,1,12,4,2,1,2,1,12,4,2,1,2,
- 1,114,173,0,0,0,99,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,115,
- 32,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
- 100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,
- 100,6,83,0,41,7,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,1,0,0,
- 0,2,0,0,0,67,0,0,0,115,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,56,0,0,0,114,57,
- 0,0,0,114,46,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,114,53,0,0,0,97,3,0,0,
- 115,2,0,0,0,0,2,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,99,4,0,0,0,0,0,0,0,0,0,
- 0,0,4,0,0,0,2,0,0,0,67,0,0,0,115,12,
- 0,0,0,116,0,160,1,161,0,1,0,100,1,83,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,56,0,0,0,114,59,0,0,0,41,4,114,30,
- 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,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,114,55,0,0,0,101,3,0,0,115,
- 2,0,0,0,0,2,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,78,41,6,114,1,0,0,0,114,0,0,0,0,
- 114,2,0,0,0,114,3,0,0,0,114,53,0,0,0,114,
- 55,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,114,178,0,0,0,93,3,0,
- 0,115,6,0,0,0,8,2,4,2,8,4,114,178,0,0,
- 0,99,3,0,0,0,0,0,0,0,0,0,0,0,5,0,
- 0,0,5,0,0,0,67,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,36,116,2,100,3,131,
- 1,130,1,124,3,100,4,25,0,125,4,124,0,114,60,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,127,0,0,0,114,37,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,22,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,78,
- 0,0,0,114,44,0,0,0,41,5,114,17,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,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,13,95,114,101,115,
- 111,108,118,101,95,110,97,109,101,106,3,0,0,115,10,0,
- 0,0,0,2,16,1,12,1,8,1,8,1,114,187,0,0,
- 0,99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,
- 0,0,4,0,0,0,67,0,0,0,115,34,0,0,0,124,
- 0,160,0,124,1,124,2,161,2,125,3,124,3,100,0,117,
- 0,114,24,100,0,83,0,116,1,124,1,124,3,131,2,83,
- 0,114,13,0,0,0,41,2,114,167,0,0,0,114,90,0,
- 0,0,41,4,218,6,102,105,110,100,101,114,114,17,0,0,
- 0,114,164,0,0,0,114,108,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,17,95,102,105,110,
- 100,95,115,112,101,99,95,108,101,103,97,99,121,115,3,0,
- 0,115,8,0,0,0,0,3,12,1,8,1,4,1,114,189,
- 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,
- 10,0,0,0,10,0,0,0,67,0,0,0,115,32,1,0,
- 0,116,0,106,1,125,3,124,3,100,1,117,0,114,22,116,
- 2,100,2,131,1,130,1,124,3,115,38,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,230,125,5,116,7,131,0,143,94,1,
- 0,122,10,124,5,106,8,125,6,87,0,110,54,4,0,116,
- 9,121,128,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,124,89,0,87,
- 0,100,1,4,0,4,0,131,3,1,0,113,52,89,0,110,
- 14,48,0,124,6,124,0,124,1,124,2,131,3,125,7,87,
- 0,100,1,4,0,4,0,131,3,1,0,110,16,49,0,115,
- 162,48,0,1,0,1,0,1,0,89,0,1,0,124,7,100,
- 1,117,1,114,52,124,4,144,1,115,18,124,0,116,0,106,
- 6,118,0,144,1,114,18,116,0,106,6,124,0,25,0,125,
- 8,122,10,124,8,106,11,125,9,87,0,110,26,4,0,116,
- 9,121,244,1,0,1,0,1,0,124,7,6,0,89,0,2,
- 0,1,0,83,0,48,0,124,9,100,1,117,0,144,1,114,
- 8,124,7,2,0,1,0,83,0,124,9,2,0,1,0,83,
- 0,113,52,124,7,2,0,1,0,83,0,113,52,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,15,0,0,
- 0,218,9,109,101,116,97,95,112,97,116,104,114,78,0,0,
- 0,218,9,95,119,97,114,110,105,110,103,115,218,4,119,97,
- 114,110,218,13,73,109,112,111,114,116,87,97,114,110,105,110,
- 103,114,91,0,0,0,114,178,0,0,0,114,166,0,0,0,
- 114,105,0,0,0,114,189,0,0,0,114,104,0,0,0,41,
- 10,114,17,0,0,0,114,164,0,0,0,114,165,0,0,0,
- 114,190,0,0,0,90,9,105,115,95,114,101,108,111,97,100,
- 114,188,0,0,0,114,166,0,0,0,114,94,0,0,0,114,
- 95,0,0,0,114,104,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,218,10,95,102,105,110,100,95,
- 115,112,101,99,124,3,0,0,115,54,0,0,0,0,2,6,
- 1,8,2,8,3,4,1,12,5,10,1,8,1,8,1,2,
- 1,10,1,12,1,12,1,8,1,22,2,42,1,8,2,18,
- 1,10,1,2,1,10,1,12,4,14,2,10,1,8,2,10,
- 2,10,2,114,194,0,0,0,99,3,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,5,0,0,0,67,0,0,
- 0,115,108,0,0,0,116,0,124,0,116,1,131,2,115,28,
- 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,44,116,5,100,3,131,1,
- 130,1,124,2,100,2,107,4,114,84,116,0,124,1,116,1,
- 131,2,115,72,116,2,100,4,131,1,130,1,110,12,124,1,
- 115,84,116,6,100,5,131,1,130,1,124,0,115,104,124,2,
- 100,2,107,2,114,104,116,5,100,6,131,1,130,1,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,22,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,44,0,0,0,114,14,0,0,
- 0,218,10,86,97,108,117,101,69,114,114,111,114,114,78,0,
- 0,0,169,3,114,17,0,0,0,114,185,0,0,0,114,186,
+ 0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,
+ 1,83,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,10,0,0,0,41,2,114,163,0,0,0,114,94,
0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,218,13,95,115,97,110,105,116,121,95,99,104,101,99,
- 107,171,3,0,0,115,22,0,0,0,0,2,10,1,18,1,
- 8,1,8,1,8,1,10,1,10,1,4,1,8,2,12,1,
- 114,200,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,9,0,0,0,8,0,
- 0,0,67,0,0,0,115,22,1,0,0,100,0,125,2,124,
- 0,160,0,100,1,161,1,100,2,25,0,125,3,124,3,114,
- 132,124,3,116,1,106,2,118,1,114,42,116,3,124,1,124,
- 3,131,2,1,0,124,0,116,1,106,2,118,0,114,62,116,
- 1,106,2,124,0,25,0,83,0,116,1,106,2,124,3,25,
- 0,125,4,122,10,124,4,106,4,125,2,87,0,110,48,4,
- 0,116,5,121,130,1,0,1,0,1,0,116,6,100,3,23,
- 0,160,7,124,0,124,3,161,2,125,5,116,8,124,5,124,
- 0,100,4,141,2,100,0,130,2,89,0,110,2,48,0,116,
- 9,124,0,124,2,131,2,125,6,124,6,100,0,117,0,114,
- 170,116,8,116,6,160,7,124,0,161,1,124,0,100,4,141,
- 2,130,1,110,8,116,10,124,6,131,1,125,7,124,3,144,
- 1,114,18,116,1,106,2,124,3,25,0,125,4,124,0,160,
- 0,100,1,161,1,100,5,25,0,125,8,122,16,116,11,124,
- 4,124,8,124,7,131,3,1,0,87,0,110,48,4,0,116,
- 5,144,1,121,16,1,0,1,0,1,0,100,6,124,3,155,
- 2,100,7,124,8,155,2,157,4,125,5,116,12,160,13,124,
- 5,116,14,161,2,1,0,89,0,110,2,48,0,124,7,83,
- 0,41,8,78,114,127,0,0,0,114,22,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,16,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,15,114,128,0,0,0,114,15,0,0,0,114,91,
- 0,0,0,114,66,0,0,0,114,140,0,0,0,114,105,0,
- 0,0,218,8,95,69,82,82,95,77,83,71,114,44,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,194,0,0,0,114,158,0,0,0,
- 114,5,0,0,0,114,191,0,0,0,114,192,0,0,0,114,
- 193,0,0,0,41,9,114,17,0,0,0,218,7,105,109,112,
- 111,114,116,95,114,164,0,0,0,114,129,0,0,0,90,13,
- 112,97,114,101,110,116,95,109,111,100,117,108,101,114,156,0,
- 0,0,114,94,0,0,0,114,95,0,0,0,90,5,99,104,
- 105,108,100,114,10,0,0,0,114,10,0,0,0,114,11,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,190,3,0,0,115,
- 52,0,0,0,0,1,4,1,14,1,4,1,10,1,10,2,
- 10,1,10,1,10,1,2,1,10,1,12,1,16,1,20,1,
- 10,1,8,1,20,2,8,1,6,2,10,1,14,1,2,1,
- 16,1,14,1,16,1,18,1,114,205,0,0,0,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,
- 0,0,67,0,0,0,115,128,0,0,0,116,0,124,0,131,
- 1,143,62,1,0,116,1,106,2,160,3,124,0,116,4,161,
- 2,125,2,124,2,116,4,117,0,114,56,116,5,124,0,124,
- 1,131,2,87,0,2,0,100,1,4,0,4,0,131,3,1,
- 0,83,0,87,0,100,1,4,0,4,0,131,3,1,0,110,
- 16,49,0,115,76,48,0,1,0,1,0,1,0,89,0,1,
- 0,124,2,100,1,117,0,114,116,100,2,160,6,124,0,161,
- 1,125,3,116,7,124,3,124,0,100,3,141,2,130,1,116,
- 8,124,0,131,1,1,0,124,2,83,0,41,4,122,25,70,
- 105,110,100,32,97,110,100,32,108,111,97,100,32,116,104,101,
- 32,109,111,100,117,108,101,46,78,122,40,105,109,112,111,114,
- 116,32,111,102,32,123,125,32,104,97,108,116,101,100,59,32,
- 78,111,110,101,32,105,110,32,115,121,115,46,109,111,100,117,
- 108,101,115,114,16,0,0,0,41,9,114,49,0,0,0,114,
- 15,0,0,0,114,91,0,0,0,114,34,0,0,0,218,14,
- 95,78,69,69,68,83,95,76,79,65,68,73,78,71,114,205,
- 0,0,0,114,44,0,0,0,114,203,0,0,0,114,64,0,
- 0,0,41,4,114,17,0,0,0,114,204,0,0,0,114,95,
- 0,0,0,114,74,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,14,95,102,105,110,100,95,97,
- 110,100,95,108,111,97,100,225,3,0,0,115,22,0,0,0,
- 0,2,10,1,14,1,8,1,54,2,8,1,4,1,2,255,
- 4,2,12,2,8,1,114,207,0,0,0,114,22,0,0,0,
- 99,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
- 0,4,0,0,0,67,0,0,0,115,42,0,0,0,116,0,
- 124,0,124,1,124,2,131,3,1,0,124,2,100,1,107,4,
- 114,32,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,22,0,0,0,41,4,114,200,0,0,0,114,187,0,
- 0,0,114,207,0,0,0,218,11,95,103,99,100,95,105,109,
- 112,111,114,116,114,199,0,0,0,114,10,0,0,0,114,10,
- 0,0,0,114,11,0,0,0,114,208,0,0,0,241,3,0,
- 0,115,8,0,0,0,0,9,12,1,8,1,12,1,114,208,
- 0,0,0,169,1,218,9,114,101,99,117,114,115,105,118,101,
- 99,3,0,0,0,0,0,0,0,1,0,0,0,8,0,0,
- 0,11,0,0,0,67,0,0,0,115,232,0,0,0,124,1,
- 68,0,93,222,125,4,116,0,124,4,116,1,131,2,115,66,
- 124,3,114,34,124,0,106,2,100,1,23,0,125,5,110,4,
- 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,113,4,
- 124,4,100,5,107,2,114,108,124,3,115,226,116,5,124,0,
- 100,6,131,2,114,226,116,6,124,0,124,0,106,7,124,2,
- 100,7,100,8,141,4,1,0,113,4,116,5,124,0,124,4,
- 131,2,115,4,100,9,160,8,124,0,106,2,124,4,161,2,
- 125,6,122,14,116,9,124,2,124,6,131,2,1,0,87,0,
- 113,4,4,0,116,10,121,224,1,0,125,7,1,0,122,54,
- 124,7,106,11,124,6,107,2,114,202,116,12,106,13,160,14,
- 124,6,116,15,161,2,100,10,117,1,114,202,87,0,89,0,
- 100,10,125,7,126,7,113,4,130,0,87,0,89,0,100,10,
- 125,7,126,7,113,4,100,10,125,7,126,7,48,0,48,0,
- 113,4,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,209,0,0,
- 0,114,182,0,0,0,78,41,16,114,195,0,0,0,114,196,
- 0,0,0,114,1,0,0,0,114,197,0,0,0,114,14,0,
- 0,0,114,4,0,0,0,218,16,95,104,97,110,100,108,101,
- 95,102,114,111,109,108,105,115,116,114,212,0,0,0,114,44,
- 0,0,0,114,66,0,0,0,114,203,0,0,0,114,17,0,
- 0,0,114,15,0,0,0,114,91,0,0,0,114,34,0,0,
- 0,114,206,0,0,0,41,8,114,95,0,0,0,218,8,102,
- 114,111,109,108,105,115,116,114,204,0,0,0,114,210,0,0,
- 0,218,1,120,90,5,119,104,101,114,101,90,9,102,114,111,
- 109,95,110,97,109,101,90,3,101,120,99,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,114,213,0,0,0,0,
- 4,0,0,115,44,0,0,0,0,10,8,1,10,1,4,1,
- 12,2,4,1,28,2,8,1,14,1,10,1,2,255,8,2,
- 10,1,14,1,2,1,14,1,14,4,10,1,16,255,2,2,
- 12,1,26,1,114,213,0,0,0,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,3,0,0,0,6,0,0,0,67,0,
- 0,0,115,146,0,0,0,124,0,160,0,100,1,161,1,125,
- 1,124,0,160,0,100,2,161,1,125,2,124,1,100,3,117,
- 1,114,82,124,2,100,3,117,1,114,78,124,1,124,2,106,
- 1,107,3,114,78,116,2,106,3,100,4,124,1,155,2,100,
- 5,124,2,106,1,155,2,100,6,157,5,116,4,100,7,100,
- 8,141,3,1,0,124,1,83,0,124,2,100,3,117,1,114,
- 96,124,2,106,1,83,0,116,2,106,3,100,9,116,4,100,
- 7,100,8,141,3,1,0,124,0,100,10,25,0,125,1,100,
- 11,124,0,118,1,114,142,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,144,0,0,0,114,104,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,1,0,0,0,114,140,0,
- 0,0,114,127,0,0,0,114,22,0,0,0,41,6,114,34,
- 0,0,0,114,129,0,0,0,114,191,0,0,0,114,192,0,
- 0,0,114,193,0,0,0,114,128,0,0,0,41,3,218,7,
- 103,108,111,98,97,108,115,114,185,0,0,0,114,94,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 218,17,95,99,97,108,99,95,95,95,112,97,99,107,97,103,
- 101,95,95,37,4,0,0,115,38,0,0,0,0,7,10,1,
- 10,1,8,1,18,1,22,2,2,0,2,254,6,3,4,1,
- 8,1,6,2,6,2,2,0,2,254,6,3,8,1,8,1,
- 14,1,114,219,0,0,0,114,10,0,0,0,99,5,0,0,
- 0,0,0,0,0,0,0,0,0,9,0,0,0,5,0,0,
- 0,67,0,0,0,115,180,0,0,0,124,4,100,1,107,2,
- 114,18,116,0,124,0,131,1,125,5,110,36,124,1,100,2,
- 117,1,114,30,124,1,110,2,105,0,125,6,116,1,124,6,
- 131,1,125,7,116,0,124,0,124,7,124,4,131,3,125,5,
- 124,3,115,150,124,4,100,1,107,2,114,84,116,0,124,0,
- 160,2,100,3,161,1,100,1,25,0,131,1,83,0,124,0,
- 115,92,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,110,26,
- 116,7,124,5,100,4,131,2,114,172,116,8,124,5,124,3,
- 116,0,131,3,83,0,124,5,83,0,100,2,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,22,0,0,
- 0,78,114,127,0,0,0,114,140,0,0,0,41,9,114,208,
- 0,0,0,114,219,0,0,0,218,9,112,97,114,116,105,116,
- 105,111,110,114,184,0,0,0,114,15,0,0,0,114,91,0,
- 0,0,114,1,0,0,0,114,4,0,0,0,114,213,0,0,
- 0,41,9,114,17,0,0,0,114,218,0,0,0,218,6,108,
- 111,99,97,108,115,114,214,0,0,0,114,186,0,0,0,114,
- 95,0,0,0,90,8,103,108,111,98,97,108,115,95,114,185,
- 0,0,0,90,7,99,117,116,95,111,102,102,114,10,0,0,
- 0,114,10,0,0,0,114,11,0,0,0,218,10,95,95,105,
- 109,112,111,114,116,95,95,64,4,0,0,115,30,0,0,0,
- 0,11,8,1,10,2,16,1,8,1,12,1,4,3,8,1,
- 18,1,4,1,4,4,26,3,32,1,10,1,12,2,114,222,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,
- 0,116,0,160,1,124,0,161,1,125,1,124,1,100,0,117,
- 0,114,30,116,2,100,1,124,0,23,0,131,1,130,1,116,
- 3,124,1,131,1,83,0,41,2,78,122,25,110,111,32,98,
- 117,105,108,116,45,105,110,32,109,111,100,117,108,101,32,110,
- 97,109,101,100,32,41,4,114,159,0,0,0,114,166,0,0,
- 0,114,78,0,0,0,114,158,0,0,0,41,2,114,17,0,
- 0,0,114,94,0,0,0,114,10,0,0,0,114,10,0,0,
- 0,114,11,0,0,0,218,18,95,98,117,105,108,116,105,110,
- 95,102,114,111,109,95,110,97,109,101,101,4,0,0,115,8,
- 0,0,0,0,1,10,1,8,1,12,1,114,223,0,0,0,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,10,0,0,
- 0,5,0,0,0,67,0,0,0,115,166,0,0,0,124,1,
- 97,0,124,0,97,1,116,2,116,1,131,1,125,2,116,1,
- 106,3,160,4,161,0,68,0,93,72,92,2,125,3,125,4,
- 116,5,124,4,124,2,131,2,114,26,124,3,116,1,106,6,
- 118,0,114,60,116,7,125,5,110,18,116,0,160,8,124,3,
- 161,1,114,26,116,9,125,5,110,2,113,26,116,10,124,4,
- 124,5,131,2,125,6,116,11,124,6,124,4,131,2,1,0,
- 113,26,116,1,106,3,116,12,25,0,125,7,100,1,68,0,
- 93,46,125,8,124,8,116,1,106,3,118,1,114,138,116,13,
- 124,8,131,1,125,9,110,10,116,1,106,3,124,8,25,0,
- 125,9,116,14,124,7,124,8,124,9,131,3,1,0,113,114,
- 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,23,0,0,0,114,191,0,0,0,114,63,
- 0,0,0,78,41,15,114,56,0,0,0,114,15,0,0,0,
- 114,14,0,0,0,114,91,0,0,0,218,5,105,116,101,109,
- 115,114,195,0,0,0,114,77,0,0,0,114,159,0,0,0,
- 114,87,0,0,0,114,173,0,0,0,114,141,0,0,0,114,
- 147,0,0,0,114,1,0,0,0,114,223,0,0,0,114,5,
- 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,17,0,0,0,
- 114,95,0,0,0,114,108,0,0,0,114,94,0,0,0,90,
- 11,115,101,108,102,95,109,111,100,117,108,101,90,12,98,117,
- 105,108,116,105,110,95,110,97,109,101,90,14,98,117,105,108,
- 116,105,110,95,109,111,100,117,108,101,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,218,6,95,115,101,116,117,
- 112,108,4,0,0,115,36,0,0,0,0,9,4,1,4,3,
- 8,1,18,1,10,1,10,1,6,1,10,1,6,2,2,1,
- 10,1,12,3,10,1,8,1,10,1,10,2,10,1,114,227,
- 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,
- 0,116,0,124,0,124,1,131,2,1,0,116,1,106,2,160,
- 3,116,4,161,1,1,0,116,1,106,2,160,3,116,5,161,
- 1,1,0,100,1,83,0,41,2,122,48,73,110,115,116,97,
- 108,108,32,105,109,112,111,114,116,101,114,115,32,102,111,114,
- 32,98,117,105,108,116,105,110,32,97,110,100,32,102,114,111,
- 122,101,110,32,109,111,100,117,108,101,115,78,41,6,114,227,
- 0,0,0,114,15,0,0,0,114,190,0,0,0,114,118,0,
- 0,0,114,159,0,0,0,114,173,0,0,0,41,2,114,225,
- 0,0,0,114,226,0,0,0,114,10,0,0,0,114,10,0,
- 0,0,114,11,0,0,0,218,8,95,105,110,115,116,97,108,
- 108,143,4,0,0,115,6,0,0,0,0,2,10,2,12,1,
- 114,228,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
- 0,0,1,0,0,0,4,0,0,0,67,0,0,0,115,32,
- 0,0,0,100,1,100,2,108,0,125,0,124,0,97,1,124,
- 0,160,2,116,3,106,4,116,5,25,0,161,1,1,0,100,
- 2,83,0,41,3,122,57,73,110,115,116,97,108,108,32,105,
- 109,112,111,114,116,101,114,115,32,116,104,97,116,32,114,101,
- 113,117,105,114,101,32,101,120,116,101,114,110,97,108,32,102,
- 105,108,101,115,121,115,116,101,109,32,97,99,99,101,115,115,
- 114,22,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,125,0,0,0,114,228,0,0,0,114,15,
- 0,0,0,114,91,0,0,0,114,1,0,0,0,41,1,114,
- 229,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 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,
- 151,4,0,0,115,6,0,0,0,0,3,8,1,4,1,114,
- 230,0,0,0,41,2,78,78,41,1,78,41,2,78,114,22,
- 0,0,0,41,4,78,78,114,10,0,0,0,114,22,0,0,
- 0,41,50,114,3,0,0,0,114,125,0,0,0,114,12,0,
- 0,0,114,18,0,0,0,114,58,0,0,0,114,33,0,0,
- 0,114,42,0,0,0,114,19,0,0,0,114,20,0,0,0,
- 114,48,0,0,0,114,49,0,0,0,114,52,0,0,0,114,
- 64,0,0,0,114,66,0,0,0,114,75,0,0,0,114,85,
- 0,0,0,114,89,0,0,0,114,96,0,0,0,114,110,0,
- 0,0,114,111,0,0,0,114,90,0,0,0,114,141,0,0,
- 0,114,147,0,0,0,114,151,0,0,0,114,106,0,0,0,
- 114,92,0,0,0,114,157,0,0,0,114,158,0,0,0,114,
- 93,0,0,0,114,159,0,0,0,114,173,0,0,0,114,178,
- 0,0,0,114,187,0,0,0,114,189,0,0,0,114,194,0,
- 0,0,114,200,0,0,0,90,15,95,69,82,82,95,77,83,
- 71,95,80,82,69,70,73,88,114,202,0,0,0,114,205,0,
- 0,0,218,6,111,98,106,101,99,116,114,206,0,0,0,114,
- 207,0,0,0,114,208,0,0,0,114,213,0,0,0,114,219,
- 0,0,0,114,222,0,0,0,114,223,0,0,0,114,227,0,
- 0,0,114,228,0,0,0,114,230,0,0,0,114,10,0,0,
- 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,
- 218,8,60,109,111,100,117,108,101,62,1,0,0,0,115,94,
- 0,0,0,4,24,4,2,8,8,8,8,4,2,4,3,16,
- 4,14,68,14,21,14,16,8,37,8,17,8,11,14,8,8,
- 11,8,12,8,16,8,36,14,101,16,26,10,45,14,72,8,
- 17,8,17,8,30,8,37,8,42,8,15,14,75,14,79,14,
- 13,8,9,8,9,10,47,8,16,4,1,8,2,8,32,6,
- 3,8,16,10,15,14,37,8,27,10,37,8,7,8,35,8,
- 8,
+ 0,0,114,148,0,0,0,50,3,0,0,115,2,0,0,0,
+ 0,2,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,
+ 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
+ 0,4,0,0,0,67,0,0,0,115,64,0,0,0,124,0,
+ 106,0,106,1,125,1,116,2,160,3,124,1,161,1,115,36,
+ 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,86,
+ 0,0,0,41,10,114,104,0,0,0,114,17,0,0,0,114,
+ 56,0,0,0,114,87,0,0,0,114,78,0,0,0,114,44,
+ 0,0,0,114,66,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,7,0,0,0,41,3,114,95,0,0,0,114,17,0,
+ 0,0,218,4,99,111,100,101,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,114,149,0,0,0,54,3,0,0,
+ 115,14,0,0,0,0,2,8,1,10,1,10,1,2,255,6,
+ 2,12,1,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,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+ 3,0,0,0,67,0,0,0,115,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,96,0,0,
+ 0,114,168,0,0,0,114,10,0,0,0,114,10,0,0,0,
+ 114,11,0,0,0,114,154,0,0,0,63,3,0,0,115,2,
+ 0,0,0,0,7,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,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,3,0,0,0,67,0,0,0,115,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,56,0,0,
+ 0,114,175,0,0,0,114,168,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,114,169,0,0,0,72,
+ 3,0,0,115,2,0,0,0,0,4,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,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
+ 0,100,1,83,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,10,0,0,0,114,168,0,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,114,170,0,0,0,78,3,
+ 0,0,115,2,0,0,0,0,4,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,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,3,0,0,0,67,0,0,0,115,10,0,
+ 0,0,116,0,160,1,124,1,161,1,83,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,56,0,0,0,90,17,105,115,95,102,114,111,122,101,110,
+ 95,112,97,99,107,97,103,101,114,168,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,114,114,0,0,
+ 0,84,3,0,0,115,2,0,0,0,0,4,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,41,2,78,78,41,1,78,41,17,
+ 114,1,0,0,0,114,0,0,0,0,114,2,0,0,0,114,
+ 3,0,0,0,114,137,0,0,0,114,171,0,0,0,114,98,
+ 0,0,0,114,172,0,0,0,114,166,0,0,0,114,167,0,
+ 0,0,114,148,0,0,0,114,149,0,0,0,114,154,0,0,
+ 0,114,89,0,0,0,114,169,0,0,0,114,170,0,0,0,
+ 114,114,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 10,0,0,0,114,11,0,0,0,114,173,0,0,0,14,3,
+ 0,0,115,46,0,0,0,8,2,4,7,4,2,2,1,10,
+ 8,2,1,12,6,2,1,12,8,2,1,10,3,2,1,10,
+ 8,2,1,10,8,2,1,2,1,12,4,2,1,2,1,12,
+ 4,2,1,2,1,114,173,0,0,0,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,
+ 0,0,0,115,32,0,0,0,101,0,90,1,100,0,90,2,
+ 100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,5,
+ 132,0,90,5,100,6,83,0,41,7,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,1,0,0,0,2,0,0,0,67,0,0,0,115,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,56,0,
+ 0,0,114,57,0,0,0,114,46,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,114,53,0,0,0,
+ 97,3,0,0,115,2,0,0,0,0,2,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,99,4,0,0,0,0,0,
+ 0,0,0,0,0,0,4,0,0,0,2,0,0,0,67,0,
+ 0,0,115,12,0,0,0,116,0,160,1,161,0,1,0,100,
+ 1,83,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,56,0,0,0,114,59,0,0,0,
+ 41,4,114,30,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,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,114,55,0,0,0,101,
+ 3,0,0,115,2,0,0,0,0,2,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,78,41,6,114,1,0,0,0,114,
+ 0,0,0,0,114,2,0,0,0,114,3,0,0,0,114,53,
+ 0,0,0,114,55,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,114,178,0,0,
+ 0,93,3,0,0,115,6,0,0,0,8,2,4,2,8,4,
+ 114,178,0,0,0,99,3,0,0,0,0,0,0,0,0,0,
+ 0,0,5,0,0,0,5,0,0,0,67,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,36,116,
+ 2,100,3,131,1,130,1,124,3,100,4,25,0,125,4,124,
+ 0,114,60,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,127,0,0,0,114,37,
+ 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,22,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,78,0,0,0,114,44,0,0,0,41,5,114,17,
+ 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,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,13,
+ 95,114,101,115,111,108,118,101,95,110,97,109,101,106,3,0,
+ 0,115,10,0,0,0,0,2,16,1,12,1,8,1,8,1,
+ 114,187,0,0,0,99,3,0,0,0,0,0,0,0,0,0,
+ 0,0,4,0,0,0,4,0,0,0,67,0,0,0,115,34,
+ 0,0,0,124,0,160,0,124,1,124,2,161,2,125,3,124,
+ 3,100,0,117,0,114,24,100,0,83,0,116,1,124,1,124,
+ 3,131,2,83,0,114,13,0,0,0,41,2,114,167,0,0,
+ 0,114,90,0,0,0,41,4,218,6,102,105,110,100,101,114,
+ 114,17,0,0,0,114,164,0,0,0,114,108,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,17,
+ 95,102,105,110,100,95,115,112,101,99,95,108,101,103,97,99,
+ 121,115,3,0,0,115,8,0,0,0,0,3,12,1,8,1,
+ 4,1,114,189,0,0,0,99,3,0,0,0,0,0,0,0,
+ 0,0,0,0,10,0,0,0,10,0,0,0,67,0,0,0,
+ 115,32,1,0,0,116,0,106,1,125,3,124,3,100,1,117,
+ 0,114,22,116,2,100,2,131,1,130,1,124,3,115,38,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,230,125,5,116,7,131,
+ 0,143,94,1,0,122,10,124,5,106,8,125,6,87,0,110,
+ 54,4,0,116,9,121,128,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,
+ 124,89,0,87,0,100,1,4,0,4,0,131,3,1,0,113,
+ 52,89,0,110,14,48,0,124,6,124,0,124,1,124,2,131,
+ 3,125,7,87,0,100,1,4,0,4,0,131,3,1,0,110,
+ 16,49,0,115,162,48,0,1,0,1,0,1,0,89,0,1,
+ 0,124,7,100,1,117,1,114,52,124,4,144,1,115,18,124,
+ 0,116,0,106,6,118,0,144,1,114,18,116,0,106,6,124,
+ 0,25,0,125,8,122,10,124,8,106,11,125,9,87,0,110,
+ 26,4,0,116,9,121,244,1,0,1,0,1,0,124,7,6,
+ 0,89,0,2,0,1,0,83,0,48,0,124,9,100,1,117,
+ 0,144,1,114,8,124,7,2,0,1,0,83,0,124,9,2,
+ 0,1,0,83,0,113,52,124,7,2,0,1,0,83,0,113,
+ 52,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,15,0,0,0,218,9,109,101,116,97,95,112,97,116,104,
+ 114,78,0,0,0,218,9,95,119,97,114,110,105,110,103,115,
+ 218,4,119,97,114,110,218,13,73,109,112,111,114,116,87,97,
+ 114,110,105,110,103,114,91,0,0,0,114,178,0,0,0,114,
+ 166,0,0,0,114,105,0,0,0,114,189,0,0,0,114,104,
+ 0,0,0,41,10,114,17,0,0,0,114,164,0,0,0,114,
+ 165,0,0,0,114,190,0,0,0,90,9,105,115,95,114,101,
+ 108,111,97,100,114,188,0,0,0,114,166,0,0,0,114,94,
+ 0,0,0,114,95,0,0,0,114,104,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,218,10,95,102,
+ 105,110,100,95,115,112,101,99,124,3,0,0,115,54,0,0,
+ 0,0,2,6,1,8,2,8,3,4,1,12,5,10,1,8,
+ 1,8,1,2,1,10,1,12,1,12,1,8,1,22,2,42,
+ 1,8,2,18,1,10,1,2,1,10,1,12,4,14,2,10,
+ 1,8,2,10,2,10,2,114,194,0,0,0,99,3,0,0,
+ 0,0,0,0,0,0,0,0,0,3,0,0,0,5,0,0,
+ 0,67,0,0,0,115,108,0,0,0,116,0,124,0,116,1,
+ 131,2,115,28,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,44,116,5,
+ 100,3,131,1,130,1,124,2,100,2,107,4,114,84,116,0,
+ 124,1,116,1,131,2,115,72,116,2,100,4,131,1,130,1,
+ 110,12,124,1,115,84,116,6,100,5,131,1,130,1,124,0,
+ 115,104,124,2,100,2,107,2,114,104,116,5,100,6,131,1,
+ 130,1,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,22,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,44,0,0,0,
+ 114,14,0,0,0,218,10,86,97,108,117,101,69,114,114,111,
+ 114,114,78,0,0,0,169,3,114,17,0,0,0,114,185,0,
+ 0,0,114,186,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,11,0,0,0,218,13,95,115,97,110,105,116,121,95,
+ 99,104,101,99,107,171,3,0,0,115,22,0,0,0,0,2,
+ 10,1,18,1,8,1,8,1,8,1,10,1,10,1,4,1,
+ 8,2,12,1,114,200,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,9,0,
+ 0,0,8,0,0,0,67,0,0,0,115,22,1,0,0,100,
+ 0,125,2,124,0,160,0,100,1,161,1,100,2,25,0,125,
+ 3,124,3,114,132,124,3,116,1,106,2,118,1,114,42,116,
+ 3,124,1,124,3,131,2,1,0,124,0,116,1,106,2,118,
+ 0,114,62,116,1,106,2,124,0,25,0,83,0,116,1,106,
+ 2,124,3,25,0,125,4,122,10,124,4,106,4,125,2,87,
+ 0,110,48,4,0,116,5,121,130,1,0,1,0,1,0,116,
+ 6,100,3,23,0,160,7,124,0,124,3,161,2,125,5,116,
+ 8,124,5,124,0,100,4,141,2,100,0,130,2,89,0,110,
+ 2,48,0,116,9,124,0,124,2,131,2,125,6,124,6,100,
+ 0,117,0,114,170,116,8,116,6,160,7,124,0,161,1,124,
+ 0,100,4,141,2,130,1,110,8,116,10,124,6,131,1,125,
+ 7,124,3,144,1,114,18,116,1,106,2,124,3,25,0,125,
+ 4,124,0,160,0,100,1,161,1,100,5,25,0,125,8,122,
+ 16,116,11,124,4,124,8,124,7,131,3,1,0,87,0,110,
+ 48,4,0,116,5,144,1,121,16,1,0,1,0,1,0,100,
+ 6,124,3,155,2,100,7,124,8,155,2,157,4,125,5,116,
+ 12,160,13,124,5,116,14,161,2,1,0,89,0,110,2,48,
+ 0,124,7,83,0,41,8,78,114,127,0,0,0,114,22,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,16,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,15,114,128,0,0,0,114,15,0,
+ 0,0,114,91,0,0,0,114,66,0,0,0,114,140,0,0,
+ 0,114,105,0,0,0,218,8,95,69,82,82,95,77,83,71,
+ 114,44,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,194,0,0,0,114,
+ 158,0,0,0,114,5,0,0,0,114,191,0,0,0,114,192,
+ 0,0,0,114,193,0,0,0,41,9,114,17,0,0,0,218,
+ 7,105,109,112,111,114,116,95,114,164,0,0,0,114,129,0,
+ 0,0,90,13,112,97,114,101,110,116,95,109,111,100,117,108,
+ 101,114,156,0,0,0,114,94,0,0,0,114,95,0,0,0,
+ 90,5,99,104,105,108,100,114,10,0,0,0,114,10,0,0,
+ 0,114,11,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,190,
+ 3,0,0,115,52,0,0,0,0,1,4,1,14,1,4,1,
+ 10,1,10,2,10,1,10,1,10,1,2,1,10,1,12,1,
+ 16,1,20,1,10,1,8,1,20,2,8,1,6,2,10,1,
+ 14,1,2,1,16,1,14,1,16,1,18,1,114,205,0,0,
+ 0,99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,
+ 0,0,8,0,0,0,67,0,0,0,115,128,0,0,0,116,
+ 0,124,0,131,1,143,62,1,0,116,1,106,2,160,3,124,
+ 0,116,4,161,2,125,2,124,2,116,4,117,0,114,56,116,
+ 5,124,0,124,1,131,2,87,0,2,0,100,1,4,0,4,
+ 0,131,3,1,0,83,0,87,0,100,1,4,0,4,0,131,
+ 3,1,0,110,16,49,0,115,76,48,0,1,0,1,0,1,
+ 0,89,0,1,0,124,2,100,1,117,0,114,116,100,2,160,
+ 6,124,0,161,1,125,3,116,7,124,3,124,0,100,3,141,
+ 2,130,1,116,8,124,0,131,1,1,0,124,2,83,0,41,
+ 4,122,25,70,105,110,100,32,97,110,100,32,108,111,97,100,
+ 32,116,104,101,32,109,111,100,117,108,101,46,78,122,40,105,
+ 109,112,111,114,116,32,111,102,32,123,125,32,104,97,108,116,
+ 101,100,59,32,78,111,110,101,32,105,110,32,115,121,115,46,
+ 109,111,100,117,108,101,115,114,16,0,0,0,41,9,114,49,
+ 0,0,0,114,15,0,0,0,114,91,0,0,0,114,34,0,
+ 0,0,218,14,95,78,69,69,68,83,95,76,79,65,68,73,
+ 78,71,114,205,0,0,0,114,44,0,0,0,114,203,0,0,
+ 0,114,64,0,0,0,41,4,114,17,0,0,0,114,204,0,
+ 0,0,114,95,0,0,0,114,74,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,14,95,102,105,
+ 110,100,95,97,110,100,95,108,111,97,100,225,3,0,0,115,
+ 22,0,0,0,0,2,10,1,14,1,8,1,54,2,8,1,
+ 4,1,2,255,4,2,12,2,8,1,114,207,0,0,0,114,
+ 22,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,
+ 0,3,0,0,0,4,0,0,0,67,0,0,0,115,42,0,
+ 0,0,116,0,124,0,124,1,124,2,131,3,1,0,124,2,
+ 100,1,107,4,114,32,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,22,0,0,0,41,4,114,200,0,0,
+ 0,114,187,0,0,0,114,207,0,0,0,218,11,95,103,99,
+ 100,95,105,109,112,111,114,116,114,199,0,0,0,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,114,208,0,0,
+ 0,241,3,0,0,115,8,0,0,0,0,9,12,1,8,1,
+ 12,1,114,208,0,0,0,169,1,218,9,114,101,99,117,114,
+ 115,105,118,101,99,3,0,0,0,0,0,0,0,1,0,0,
+ 0,8,0,0,0,11,0,0,0,67,0,0,0,115,232,0,
+ 0,0,124,1,68,0,93,222,125,4,116,0,124,4,116,1,
+ 131,2,115,66,124,3,114,34,124,0,106,2,100,1,23,0,
+ 125,5,110,4,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,113,4,124,4,100,5,107,2,114,108,124,3,115,226,
+ 116,5,124,0,100,6,131,2,114,226,116,6,124,0,124,0,
+ 106,7,124,2,100,7,100,8,141,4,1,0,113,4,116,5,
+ 124,0,124,4,131,2,115,4,100,9,160,8,124,0,106,2,
+ 124,4,161,2,125,6,122,14,116,9,124,2,124,6,131,2,
+ 1,0,87,0,113,4,4,0,116,10,121,224,1,0,125,7,
+ 1,0,122,54,124,7,106,11,124,6,107,2,114,202,116,12,
+ 106,13,160,14,124,6,116,15,161,2,100,10,117,1,114,202,
+ 87,0,89,0,100,10,125,7,126,7,113,4,130,0,87,0,
+ 89,0,100,10,125,7,126,7,113,4,100,10,125,7,126,7,
+ 48,0,48,0,113,4,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,209,0,0,0,114,182,0,0,0,78,41,16,114,195,0,
+ 0,0,114,196,0,0,0,114,1,0,0,0,114,197,0,0,
+ 0,114,14,0,0,0,114,4,0,0,0,218,16,95,104,97,
+ 110,100,108,101,95,102,114,111,109,108,105,115,116,114,212,0,
+ 0,0,114,44,0,0,0,114,66,0,0,0,114,203,0,0,
+ 0,114,17,0,0,0,114,15,0,0,0,114,91,0,0,0,
+ 114,34,0,0,0,114,206,0,0,0,41,8,114,95,0,0,
+ 0,218,8,102,114,111,109,108,105,115,116,114,204,0,0,0,
+ 114,210,0,0,0,218,1,120,90,5,119,104,101,114,101,90,
+ 9,102,114,111,109,95,110,97,109,101,90,3,101,120,99,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,213,
+ 0,0,0,0,4,0,0,115,44,0,0,0,0,10,8,1,
+ 10,1,4,1,12,2,4,1,28,2,8,1,14,1,10,1,
+ 2,255,8,2,10,1,14,1,2,1,14,1,14,4,10,1,
+ 16,255,2,2,12,1,26,1,114,213,0,0,0,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,3,0,0,0,6,0,
+ 0,0,67,0,0,0,115,146,0,0,0,124,0,160,0,100,
+ 1,161,1,125,1,124,0,160,0,100,2,161,1,125,2,124,
+ 1,100,3,117,1,114,82,124,2,100,3,117,1,114,78,124,
+ 1,124,2,106,1,107,3,114,78,116,2,106,3,100,4,124,
+ 1,155,2,100,5,124,2,106,1,155,2,100,6,157,5,116,
+ 4,100,7,100,8,141,3,1,0,124,1,83,0,124,2,100,
+ 3,117,1,114,96,124,2,106,1,83,0,116,2,106,3,100,
+ 9,116,4,100,7,100,8,141,3,1,0,124,0,100,10,25,
+ 0,125,1,100,11,124,0,118,1,114,142,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,144,0,0,0,114,104,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,1,0,0,
+ 0,114,140,0,0,0,114,127,0,0,0,114,22,0,0,0,
+ 41,6,114,34,0,0,0,114,129,0,0,0,114,191,0,0,
+ 0,114,192,0,0,0,114,193,0,0,0,114,128,0,0,0,
+ 41,3,218,7,103,108,111,98,97,108,115,114,185,0,0,0,
+ 114,94,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,218,17,95,99,97,108,99,95,95,95,112,97,
+ 99,107,97,103,101,95,95,37,4,0,0,115,38,0,0,0,
+ 0,7,10,1,10,1,8,1,18,1,22,2,2,0,2,254,
+ 6,3,4,1,8,1,6,2,6,2,2,0,2,254,6,3,
+ 8,1,8,1,14,1,114,219,0,0,0,114,10,0,0,0,
+ 99,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0,
+ 0,5,0,0,0,67,0,0,0,115,180,0,0,0,124,4,
+ 100,1,107,2,114,18,116,0,124,0,131,1,125,5,110,36,
+ 124,1,100,2,117,1,114,30,124,1,110,2,105,0,125,6,
+ 116,1,124,6,131,1,125,7,116,0,124,0,124,7,124,4,
+ 131,3,125,5,124,3,115,150,124,4,100,1,107,2,114,84,
+ 116,0,124,0,160,2,100,3,161,1,100,1,25,0,131,1,
+ 83,0,124,0,115,92,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,110,26,116,7,124,5,100,4,131,2,114,172,116,8,
+ 124,5,124,3,116,0,131,3,83,0,124,5,83,0,100,2,
+ 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,22,0,0,0,78,114,127,0,0,0,114,140,0,0,0,
+ 41,9,114,208,0,0,0,114,219,0,0,0,218,9,112,97,
+ 114,116,105,116,105,111,110,114,184,0,0,0,114,15,0,0,
+ 0,114,91,0,0,0,114,1,0,0,0,114,4,0,0,0,
+ 114,213,0,0,0,41,9,114,17,0,0,0,114,218,0,0,
+ 0,218,6,108,111,99,97,108,115,114,214,0,0,0,114,186,
+ 0,0,0,114,95,0,0,0,90,8,103,108,111,98,97,108,
+ 115,95,114,185,0,0,0,90,7,99,117,116,95,111,102,102,
+ 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,
+ 10,95,95,105,109,112,111,114,116,95,95,64,4,0,0,115,
+ 30,0,0,0,0,11,8,1,10,2,16,1,8,1,12,1,
+ 4,3,8,1,18,1,4,1,4,4,26,3,32,1,10,1,
+ 12,2,114,222,0,0,0,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,
+ 115,38,0,0,0,116,0,160,1,124,0,161,1,125,1,124,
+ 1,100,0,117,0,114,30,116,2,100,1,124,0,23,0,131,
+ 1,130,1,116,3,124,1,131,1,83,0,41,2,78,122,25,
+ 110,111,32,98,117,105,108,116,45,105,110,32,109,111,100,117,
+ 108,101,32,110,97,109,101,100,32,41,4,114,159,0,0,0,
+ 114,166,0,0,0,114,78,0,0,0,114,158,0,0,0,41,
+ 2,114,17,0,0,0,114,94,0,0,0,114,10,0,0,0,
+ 114,10,0,0,0,114,11,0,0,0,218,18,95,98,117,105,
+ 108,116,105,110,95,102,114,111,109,95,110,97,109,101,101,4,
+ 0,0,115,8,0,0,0,0,1,10,1,8,1,12,1,114,
+ 223,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,10,0,0,0,5,0,0,0,67,0,0,0,115,166,0,
+ 0,0,124,1,97,0,124,0,97,1,116,2,116,1,131,1,
+ 125,2,116,1,106,3,160,4,161,0,68,0,93,72,92,2,
+ 125,3,125,4,116,5,124,4,124,2,131,2,114,26,124,3,
+ 116,1,106,6,118,0,114,60,116,7,125,5,110,18,116,0,
+ 160,8,124,3,161,1,114,26,116,9,125,5,110,2,113,26,
+ 116,10,124,4,124,5,131,2,125,6,116,11,124,6,124,4,
+ 131,2,1,0,113,26,116,1,106,3,116,12,25,0,125,7,
+ 100,1,68,0,93,46,125,8,124,8,116,1,106,3,118,1,
+ 114,138,116,13,124,8,131,1,125,9,110,10,116,1,106,3,
+ 124,8,25,0,125,9,116,14,124,7,124,8,124,9,131,3,
+ 1,0,113,114,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,23,0,0,0,114,191,0,
+ 0,0,114,63,0,0,0,78,41,15,114,56,0,0,0,114,
+ 15,0,0,0,114,14,0,0,0,114,91,0,0,0,218,5,
+ 105,116,101,109,115,114,195,0,0,0,114,77,0,0,0,114,
+ 159,0,0,0,114,87,0,0,0,114,173,0,0,0,114,141,
+ 0,0,0,114,147,0,0,0,114,1,0,0,0,114,223,0,
+ 0,0,114,5,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,
+ 17,0,0,0,114,95,0,0,0,114,108,0,0,0,114,94,
+ 0,0,0,90,11,115,101,108,102,95,109,111,100,117,108,101,
+ 90,12,98,117,105,108,116,105,110,95,110,97,109,101,90,14,
+ 98,117,105,108,116,105,110,95,109,111,100,117,108,101,114,10,
+ 0,0,0,114,10,0,0,0,114,11,0,0,0,218,6,95,
+ 115,101,116,117,112,108,4,0,0,115,36,0,0,0,0,9,
+ 4,1,4,3,8,1,18,1,10,1,10,1,6,1,10,1,
+ 6,2,2,1,10,1,12,3,10,1,8,1,10,1,10,2,
+ 10,1,114,227,0,0,0,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,
+ 115,38,0,0,0,116,0,124,0,124,1,131,2,1,0,116,
+ 1,106,2,160,3,116,4,161,1,1,0,116,1,106,2,160,
+ 3,116,5,161,1,1,0,100,1,83,0,41,2,122,48,73,
+ 110,115,116,97,108,108,32,105,109,112,111,114,116,101,114,115,
+ 32,102,111,114,32,98,117,105,108,116,105,110,32,97,110,100,
+ 32,102,114,111,122,101,110,32,109,111,100,117,108,101,115,78,
+ 41,6,114,227,0,0,0,114,15,0,0,0,114,190,0,0,
+ 0,114,118,0,0,0,114,159,0,0,0,114,173,0,0,0,
+ 41,2,114,225,0,0,0,114,226,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,8,95,105,110,
+ 115,116,97,108,108,143,4,0,0,115,6,0,0,0,0,2,
+ 10,2,12,1,114,228,0,0,0,99,0,0,0,0,0,0,
+ 0,0,0,0,0,0,1,0,0,0,4,0,0,0,67,0,
+ 0,0,115,32,0,0,0,100,1,100,2,108,0,125,0,124,
+ 0,97,1,124,0,160,2,116,3,106,4,116,5,25,0,161,
+ 1,1,0,100,2,83,0,41,3,122,57,73,110,115,116,97,
+ 108,108,32,105,109,112,111,114,116,101,114,115,32,116,104,97,
+ 116,32,114,101,113,117,105,114,101,32,101,120,116,101,114,110,
+ 97,108,32,102,105,108,101,115,121,115,116,101,109,32,97,99,
+ 99,101,115,115,114,22,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,125,0,0,0,114,228,0,
+ 0,0,114,15,0,0,0,114,91,0,0,0,114,1,0,0,
+ 0,41,1,114,229,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,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,151,4,0,0,115,6,0,0,0,0,3,8,
+ 1,4,1,114,230,0,0,0,41,2,78,78,41,1,78,41,
+ 2,78,114,22,0,0,0,41,4,78,78,114,10,0,0,0,
+ 114,22,0,0,0,41,50,114,3,0,0,0,114,125,0,0,
+ 0,114,12,0,0,0,114,18,0,0,0,114,58,0,0,0,
+ 114,33,0,0,0,114,42,0,0,0,114,19,0,0,0,114,
+ 20,0,0,0,114,48,0,0,0,114,49,0,0,0,114,52,
+ 0,0,0,114,64,0,0,0,114,66,0,0,0,114,75,0,
+ 0,0,114,85,0,0,0,114,89,0,0,0,114,96,0,0,
+ 0,114,110,0,0,0,114,111,0,0,0,114,90,0,0,0,
+ 114,141,0,0,0,114,147,0,0,0,114,151,0,0,0,114,
+ 106,0,0,0,114,92,0,0,0,114,157,0,0,0,114,158,
+ 0,0,0,114,93,0,0,0,114,159,0,0,0,114,173,0,
+ 0,0,114,178,0,0,0,114,187,0,0,0,114,189,0,0,
+ 0,114,194,0,0,0,114,200,0,0,0,90,15,95,69,82,
+ 82,95,77,83,71,95,80,82,69,70,73,88,114,202,0,0,
+ 0,114,205,0,0,0,218,6,111,98,106,101,99,116,114,206,
+ 0,0,0,114,207,0,0,0,114,208,0,0,0,114,213,0,
+ 0,0,114,219,0,0,0,114,222,0,0,0,114,223,0,0,
+ 0,114,227,0,0,0,114,228,0,0,0,114,230,0,0,0,
+ 114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,218,8,60,109,111,100,117,108,101,62,1,0,
+ 0,0,115,94,0,0,0,4,24,4,2,8,8,8,8,4,
+ 2,4,3,16,4,14,68,14,21,14,16,8,37,8,17,8,
+ 11,14,8,8,11,8,12,8,16,8,36,14,101,16,26,10,
+ 45,14,72,8,17,8,17,8,30,8,37,8,42,8,15,14,
+ 75,14,79,14,13,8,9,8,9,10,47,8,16,4,1,8,
+ 2,8,32,6,3,8,16,10,15,14,37,8,27,10,37,8,
+ 7,8,35,8,8,
};
diff --git a/Python/importlib_external.h b/Python/importlib_external.h
index e8e99da093d..d67c2a8fee4 100644
--- a/Python/importlib_external.h
+++ b/Python/importlib_external.h
@@ -278,7 +278,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
116,111,109,105,99,120,0,0,0,115,30,0,0,0,0,5,
16,1,6,1,16,0,6,255,4,2,2,3,14,1,40,1,
16,1,12,1,2,1,14,1,12,1,6,1,114,68,0,0,
- 0,105,96,13,0,0,114,27,0,0,0,114,16,0,0,0,
+ 0,105,97,13,0,0,114,27,0,0,0,114,16,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,99,78,41,1,218,12,111,112,116,105,109,105,
@@ -392,7 +392,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
116,95,102,105,108,101,110,97,109,101,218,8,102,105,108,101,
110,97,109,101,114,3,0,0,0,114,3,0,0,0,114,6,
0,0,0,218,17,99,97,99,104,101,95,102,114,111,109,95,
- 115,111,117,114,99,101,44,1,0,0,115,72,0,0,0,0,
+ 115,111,117,114,99,101,45,1,0,0,115,72,0,0,0,0,
18,8,1,6,1,2,255,4,2,8,1,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,2,8,1,8,1,8,1,8,1,14,1,14,
@@ -473,7 +473,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
95,108,101,118,101,108,90,13,98,97,115,101,95,102,105,108,
101,110,97,109,101,114,3,0,0,0,114,3,0,0,0,114,
6,0,0,0,218,17,115,111,117,114,99,101,95,102,114,111,
- 109,95,99,97,99,104,101,115,1,0,0,115,52,0,0,0,
+ 109,95,99,97,99,104,101,116,1,0,0,115,52,0,0,0,
0,9,12,1,8,1,10,1,12,1,4,1,10,1,12,1,
14,1,16,1,4,1,4,1,12,1,8,1,18,2,10,1,
8,1,16,1,10,1,16,1,10,1,14,2,16,1,10,1,
@@ -508,7 +508,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
101,120,116,101,110,115,105,111,110,218,11,115,111,117,114,99,
101,95,112,97,116,104,114,3,0,0,0,114,3,0,0,0,
114,6,0,0,0,218,15,95,103,101,116,95,115,111,117,114,
- 99,101,102,105,108,101,155,1,0,0,115,20,0,0,0,0,
+ 99,101,102,105,108,101,156,1,0,0,115,20,0,0,0,0,
7,12,1,4,1,16,1,24,1,4,1,2,1,12,1,16,
1,18,1,114,108,0,0,0,99,1,0,0,0,0,0,0,
0,0,0,0,0,1,0,0,0,8,0,0,0,67,0,0,
@@ -521,7 +521,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
117,112,108,101,114,101,0,0,0,114,97,0,0,0,114,81,
0,0,0,114,88,0,0,0,41,1,114,96,0,0,0,114,
3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,11,
- 95,103,101,116,95,99,97,99,104,101,100,174,1,0,0,115,
+ 95,103,101,116,95,99,97,99,104,101,100,175,1,0,0,115,
16,0,0,0,0,1,14,1,2,1,10,1,12,1,8,1,
14,1,4,2,114,112,0,0,0,99,1,0,0,0,0,0,
0,0,0,0,0,0,2,0,0,0,8,0,0,0,67,0,
@@ -536,7 +536,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
0,114,50,0,0,0,114,49,0,0,0,41,2,114,43,0,
0,0,114,51,0,0,0,114,3,0,0,0,114,3,0,0,
0,114,6,0,0,0,218,10,95,99,97,108,99,95,109,111,
- 100,101,186,1,0,0,115,12,0,0,0,0,2,2,1,14,
+ 100,101,187,1,0,0,115,12,0,0,0,0,2,2,1,14,
1,12,1,10,3,8,1,114,114,0,0,0,99,1,0,0,
0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,0,
0,3,0,0,0,115,66,0,0,0,100,6,135,0,102,1,
@@ -561,2173 +561,2175 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
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,4,0,0,0,4,0,
- 0,0,31,0,0,0,115,68,0,0,0,124,1,100,0,117,
+ 0,0,31,0,0,0,115,72,0,0,0,124,1,100,0,117,
0,114,16,124,0,106,0,125,1,110,32,124,0,106,0,124,
1,107,3,114,48,116,1,100,1,124,0,106,0,124,1,102,
2,22,0,124,1,100,2,141,2,130,1,136,0,124,0,124,
- 1,103,2,124,2,162,1,82,0,124,3,142,1,83,0,41,
- 3,78,122,30,108,111,97,100,101,114,32,102,111,114,32,37,
- 115,32,99,97,110,110,111,116,32,104,97,110,100,108,101,32,
- 37,115,169,1,218,4,110,97,109,101,41,2,114,116,0,0,
- 0,218,11,73,109,112,111,114,116,69,114,114,111,114,41,4,
- 218,4,115,101,108,102,114,116,0,0,0,218,4,97,114,103,
- 115,218,6,107,119,97,114,103,115,169,1,218,6,109,101,116,
- 104,111,100,114,3,0,0,0,114,6,0,0,0,218,19,95,
- 99,104,101,99,107,95,110,97,109,101,95,119,114,97,112,112,
- 101,114,206,1,0,0,115,18,0,0,0,0,1,8,1,8,
- 1,10,1,4,1,8,255,2,1,2,255,6,2,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,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,3,0,0,0,7,0,0,0,83,0,0,0,
- 115,56,0,0,0,100,1,68,0,93,32,125,2,116,0,124,
- 1,124,2,131,2,114,4,116,1,124,0,124,2,116,2,124,
- 1,124,2,131,2,131,3,1,0,113,4,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,66,0,0,0,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,5,
- 95,119,114,97,112,217,1,0,0,115,8,0,0,0,0,1,
- 8,1,10,1,20,1,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,41,1,78,41,3,218,10,95,98,111,111,116,115,116,
- 114,97,112,114,133,0,0,0,218,9,78,97,109,101,69,114,
- 114,111,114,41,3,114,122,0,0,0,114,123,0,0,0,114,
- 133,0,0,0,114,3,0,0,0,114,121,0,0,0,114,6,
- 0,0,0,218,11,95,99,104,101,99,107,95,110,97,109,101,
- 198,1,0,0,115,14,0,0,0,0,8,14,7,2,1,10,
- 1,12,2,14,5,10,1,114,136,0,0,0,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,
- 0,67,0,0,0,115,60,0,0,0,124,0,160,0,124,1,
- 161,1,92,2,125,2,125,3,124,2,100,1,117,0,114,56,
- 116,1,124,3,131,1,114,56,100,2,125,4,116,2,160,3,
- 124,4,160,4,124,3,100,3,25,0,161,1,116,5,161,2,
- 1,0,124,2,83,0,41,4,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,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,72,0,0,0,41,6,218,11,102,105,110,
- 100,95,108,111,97,100,101,114,114,22,0,0,0,114,74,0,
- 0,0,114,75,0,0,0,114,61,0,0,0,218,13,73,109,
- 112,111,114,116,87,97,114,110,105,110,103,41,5,114,118,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,114,3,0,0,0,114,3,0,0,0,114,6,0,
- 0,0,218,17,95,102,105,110,100,95,109,111,100,117,108,101,
- 95,115,104,105,109,226,1,0,0,115,10,0,0,0,0,10,
- 14,1,16,1,4,1,22,1,114,143,0,0,0,99,3,0,
- 0,0,0,0,0,0,0,0,0,0,6,0,0,0,4,0,
- 0,0,67,0,0,0,115,158,0,0,0,124,0,100,1,100,
- 2,133,2,25,0,125,3,124,3,116,0,107,3,114,60,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,124,2,142,1,130,1,116,4,124,0,131,1,100,6,107,
- 0,114,102,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,154,100,10,124,5,155,2,100,
- 11,124,1,155,2,157,4,125,4,116,3,124,4,102,1,124,
- 2,142,1,130,1,124,5,83,0,41,12,97,84,2,0,0,
- 80,101,114,102,111,114,109,32,98,97,115,105,99,32,118,97,
- 108,105,100,105,116,121,32,99,104,101,99,107,105,110,103,32,
- 111,102,32,97,32,112,121,99,32,104,101,97,100,101,114,32,
- 97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,102,
- 108,97,103,115,32,102,105,101,108,100,44,10,32,32,32,32,
- 119,104,105,99,104,32,100,101,116,101,114,109,105,110,101,115,
- 32,104,111,119,32,116,104,101,32,112,121,99,32,115,104,111,
- 117,108,100,32,98,101,32,102,117,114,116,104,101,114,32,118,
- 97,108,105,100,97,116,101,100,32,97,103,97,105,110,115,116,
- 32,116,104,101,32,115,111,117,114,99,101,46,10,10,32,32,
- 32,32,42,100,97,116,97,42,32,105,115,32,116,104,101,32,
- 99,111,110,116,101,110,116,115,32,111,102,32,116,104,101,32,
- 112,121,99,32,102,105,108,101,46,32,40,79,110,108,121,32,
- 116,104,101,32,102,105,114,115,116,32,49,54,32,98,121,116,
- 101,115,32,97,114,101,10,32,32,32,32,114,101,113,117,105,
- 114,101,100,44,32,116,104,111,117,103,104,46,41,10,10,32,
- 32,32,32,42,110,97,109,101,42,32,105,115,32,116,104,101,
- 32,110,97,109,101,32,111,102,32,116,104,101,32,109,111,100,
- 117,108,101,32,98,101,105,110,103,32,105,109,112,111,114,116,
- 101,100,46,32,73,116,32,105,115,32,117,115,101,100,32,102,
- 111,114,32,108,111,103,103,105,110,103,46,10,10,32,32,32,
- 32,42,101,120,99,95,100,101,116,97,105,108,115,42,32,105,
- 115,32,97,32,100,105,99,116,105,111,110,97,114,121,32,112,
- 97,115,115,101,100,32,116,111,32,73,109,112,111,114,116,69,
- 114,114,111,114,32,105,102,32,105,116,32,114,97,105,115,101,
- 100,32,102,111,114,10,32,32,32,32,105,109,112,114,111,118,
- 101,100,32,100,101,98,117,103,103,105,110,103,46,10,10,32,
- 32,32,32,73,109,112,111,114,116,69,114,114,111,114,32,105,
- 115,32,114,97,105,115,101,100,32,119,104,101,110,32,116,104,
- 101,32,109,97,103,105,99,32,110,117,109,98,101,114,32,105,
- 115,32,105,110,99,111,114,114,101,99,116,32,111,114,32,119,
- 104,101,110,32,116,104,101,32,102,108,97,103,115,10,32,32,
- 32,32,102,105,101,108,100,32,105,115,32,105,110,118,97,108,
- 105,100,46,32,69,79,70,69,114,114,111,114,32,105,115,32,
- 114,97,105,115,101,100,32,119,104,101,110,32,116,104,101,32,
- 100,97,116,97,32,105,115,32,102,111,117,110,100,32,116,111,
- 32,98,101,32,116,114,117,110,99,97,116,101,100,46,10,10,
- 32,32,32,32,78,114,15,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,134,0,0,0,218,16,95,118,
- 101,114,98,111,115,101,95,109,101,115,115,97,103,101,114,117,
- 0,0,0,114,22,0,0,0,218,8,69,79,70,69,114,114,
- 111,114,114,26,0,0,0,41,6,114,25,0,0,0,114,116,
- 0,0,0,218,11,101,120,99,95,100,101,116,97,105,108,115,
- 90,5,109,97,103,105,99,114,92,0,0,0,114,82,0,0,
- 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 218,13,95,99,108,97,115,115,105,102,121,95,112,121,99,243,
- 1,0,0,115,28,0,0,0,0,16,12,1,8,1,16,1,
- 12,1,12,1,12,1,10,1,12,1,8,1,16,2,8,1,
- 16,1,12,1,114,152,0,0,0,99,5,0,0,0,0,0,
- 0,0,0,0,0,0,6,0,0,0,4,0,0,0,67,0,
- 0,0,115,112,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,58,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,124,4,142,1,130,
- 1,124,2,100,6,117,1,114,108,116,0,124,0,100,2,100,
- 7,133,2,25,0,131,1,124,2,100,3,64,0,107,3,114,
- 108,116,3,100,4,124,3,155,2,157,2,102,1,124,4,142,
- 1,130,1,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,146,0,0,0,233,12,0,0,0,114,
- 14,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,144,0,0,
- 0,78,114,145,0,0,0,41,4,114,26,0,0,0,114,134,
- 0,0,0,114,149,0,0,0,114,117,0,0,0,41,6,114,
- 25,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,
- 116,0,0,0,114,151,0,0,0,114,92,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,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,20,2,0,0,115,16,0,0,0,0,
- 19,24,1,10,1,12,1,12,1,8,1,22,255,2,2,114,
- 156,0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,
- 0,4,0,0,0,3,0,0,0,67,0,0,0,115,38,0,
- 0,0,124,0,100,1,100,2,133,2,25,0,124,1,107,3,
- 114,34,116,0,100,3,124,2,155,2,157,2,102,1,124,3,
- 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,146,0,0,0,114,145,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,
- 117,0,0,0,41,4,114,25,0,0,0,218,11,115,111,117,
- 114,99,101,95,104,97,115,104,114,116,0,0,0,114,151,0,
- 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,218,18,95,118,97,108,105,100,97,116,101,95,104,97,115,
- 104,95,112,121,99,48,2,0,0,115,12,0,0,0,0,17,
- 16,1,2,1,8,255,2,2,2,254,114,158,0,0,0,99,
- 4,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,
- 5,0,0,0,67,0,0,0,115,80,0,0,0,116,0,160,
- 1,124,0,161,1,125,4,116,2,124,4,116,3,131,2,114,
- 56,116,4,160,5,100,1,124,2,161,2,1,0,124,3,100,
- 2,117,1,114,52,116,6,160,7,124,4,124,3,161,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,100,2,83,0,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,116,0,0,0,114,43,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,134,0,0,0,
- 114,149,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,117,0,
- 0,0,114,61,0,0,0,41,5,114,25,0,0,0,114,116,
- 0,0,0,114,106,0,0,0,114,107,0,0,0,218,4,99,
- 111,100,101,114,3,0,0,0,114,3,0,0,0,114,6,0,
- 0,0,218,17,95,99,111,109,112,105,108,101,95,98,121,116,
- 101,99,111,100,101,72,2,0,0,115,20,0,0,0,0,2,
- 10,1,10,1,12,1,8,1,12,1,4,2,10,1,2,0,
- 2,255,114,165,0,0,0,114,72,0,0,0,99,3,0,0,
- 0,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,
- 0,67,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,160,5,124,0,161,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,
- 72,0,0,0,41,6,218,9,98,121,116,101,97,114,114,97,
- 121,114,148,0,0,0,218,6,101,120,116,101,110,100,114,20,
- 0,0,0,114,160,0,0,0,218,5,100,117,109,112,115,41,
- 4,114,164,0,0,0,218,5,109,116,105,109,101,114,155,0,
- 0,0,114,25,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,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,85,2,
- 0,0,115,12,0,0,0,0,2,8,1,14,1,14,1,14,
- 1,16,1,114,170,0,0,0,84,99,3,0,0,0,0,0,
- 0,0,0,0,0,0,5,0,0,0,5,0,0,0,67,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,50,74,0,130,1,124,3,160,2,124,1,161,
- 1,1,0,124,3,160,2,116,5,160,6,124,0,161,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,38,0,0,0,114,146,0,0,0,41,7,114,166,0,
- 0,0,114,148,0,0,0,114,167,0,0,0,114,20,0,0,
- 0,114,22,0,0,0,114,160,0,0,0,114,168,0,0,0,
- 41,5,114,164,0,0,0,114,157,0,0,0,90,7,99,104,
- 101,99,107,101,100,114,25,0,0,0,114,82,0,0,0,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,17,
- 95,99,111,100,101,95,116,111,95,104,97,115,104,95,112,121,
- 99,95,2,0,0,115,14,0,0,0,0,2,8,1,12,1,
- 14,1,16,1,10,1,16,1,114,171,0,0,0,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,
- 0,0,67,0,0,0,115,62,0,0,0,100,1,100,2,108,
- 0,125,1,116,1,160,2,124,0,161,1,106,3,125,2,124,
- 1,160,4,124,2,161,1,125,3,116,1,160,5,100,2,100,
- 3,161,2,125,4,124,4,160,6,124,0,160,6,124,3,100,
- 1,25,0,161,1,161,1,83,0,41,4,122,121,68,101,99,
- 111,100,101,32,98,121,116,101,115,32,114,101,112,114,101,115,
- 101,110,116,105,110,103,32,115,111,117,114,99,101,32,99,111,
- 100,101,32,97,110,100,32,114,101,116,117,114,110,32,116,104,
- 101,32,115,116,114,105,110,103,46,10,10,32,32,32,32,85,
- 110,105,118,101,114,115,97,108,32,110,101,119,108,105,110,101,
- 32,115,117,112,112,111,114,116,32,105,115,32,117,115,101,100,
- 32,105,110,32,116,104,101,32,100,101,99,111,100,105,110,103,
- 46,10,32,32,32,32,114,72,0,0,0,78,84,41,7,218,
- 8,116,111,107,101,110,105,122,101,114,63,0,0,0,90,7,
- 66,121,116,101,115,73,79,90,8,114,101,97,100,108,105,110,
- 101,90,15,100,101,116,101,99,116,95,101,110,99,111,100,105,
- 110,103,90,25,73,110,99,114,101,109,101,110,116,97,108,78,
- 101,119,108,105,110,101,68,101,99,111,100,101,114,218,6,100,
- 101,99,111,100,101,41,5,218,12,115,111,117,114,99,101,95,
- 98,121,116,101,115,114,172,0,0,0,90,21,115,111,117,114,
- 99,101,95,98,121,116,101,115,95,114,101,97,100,108,105,110,
- 101,218,8,101,110,99,111,100,105,110,103,90,15,110,101,119,
- 108,105,110,101,95,100,101,99,111,100,101,114,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,218,13,100,101,99,
- 111,100,101,95,115,111,117,114,99,101,106,2,0,0,115,10,
- 0,0,0,0,5,8,1,12,1,10,1,12,1,114,176,0,
- 0,0,169,2,114,140,0,0,0,218,26,115,117,98,109,111,
- 100,117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,
- 116,105,111,110,115,99,2,0,0,0,0,0,0,0,2,0,
- 0,0,9,0,0,0,8,0,0,0,67,0,0,0,115,12,
- 1,0,0,124,1,100,1,117,0,114,58,100,2,125,1,116,
- 0,124,2,100,3,131,2,114,68,122,14,124,2,160,1,124,
- 0,161,1,125,1,87,0,113,68,4,0,116,2,121,54,1,
- 0,1,0,1,0,89,0,113,68,48,0,110,10,116,3,160,
- 4,124,1,161,1,125,1,116,5,106,6,124,0,124,2,124,
- 1,100,4,141,3,125,4,100,5,124,4,95,7,124,2,100,
- 1,117,0,114,152,116,8,131,0,68,0,93,42,92,2,125,
- 5,125,6,124,1,160,9,116,10,124,6,131,1,161,1,114,
- 104,124,5,124,0,124,1,131,2,125,2,124,2,124,4,95,
- 11,1,0,113,152,113,104,100,1,83,0,124,3,116,12,117,
- 0,114,216,116,0,124,2,100,6,131,2,114,222,122,14,124,
- 2,160,13,124,0,161,1,125,7,87,0,110,18,4,0,116,
- 2,121,202,1,0,1,0,1,0,89,0,113,222,48,0,124,
- 7,114,222,103,0,124,4,95,14,110,6,124,3,124,4,95,
- 14,124,4,106,14,103,0,107,2,144,1,114,8,124,1,144,
- 1,114,8,116,15,124,1,131,1,100,7,25,0,125,8,124,
- 4,106,14,160,16,124,8,161,1,1,0,124,4,83,0,41,
- 8,97,61,1,0,0,82,101,116,117,114,110,32,97,32,109,
- 111,100,117,108,101,32,115,112,101,99,32,98,97,115,101,100,
- 32,111,110,32,97,32,102,105,108,101,32,108,111,99,97,116,
- 105,111,110,46,10,10,32,32,32,32,84,111,32,105,110,100,
- 105,99,97,116,101,32,116,104,97,116,32,116,104,101,32,109,
- 111,100,117,108,101,32,105,115,32,97,32,112,97,99,107,97,
- 103,101,44,32,115,101,116,10,32,32,32,32,115,117,98,109,
- 111,100,117,108,101,95,115,101,97,114,99,104,95,108,111,99,
- 97,116,105,111,110,115,32,116,111,32,97,32,108,105,115,116,
- 32,111,102,32,100,105,114,101,99,116,111,114,121,32,112,97,
- 116,104,115,46,32,32,65,110,10,32,32,32,32,101,109,112,
- 116,121,32,108,105,115,116,32,105,115,32,115,117,102,102,105,
- 99,105,101,110,116,44,32,116,104,111,117,103,104,32,105,116,
- 115,32,110,111,116,32,111,116,104,101,114,119,105,115,101,32,
- 117,115,101,102,117,108,32,116,111,32,116,104,101,10,32,32,
- 32,32,105,109,112,111,114,116,32,115,121,115,116,101,109,46,
- 10,10,32,32,32,32,84,104,101,32,108,111,97,100,101,114,
- 32,109,117,115,116,32,116,97,107,101,32,97,32,115,112,101,
- 99,32,97,115,32,105,116,115,32,111,110,108,121,32,95,95,
- 105,110,105,116,95,95,40,41,32,97,114,103,46,10,10,32,
- 32,32,32,78,122,9,60,117,110,107,110,111,119,110,62,218,
- 12,103,101,116,95,102,105,108,101,110,97,109,101,169,1,218,
- 6,111,114,105,103,105,110,84,218,10,105,115,95,112,97,99,
- 107,97,103,101,114,72,0,0,0,41,17,114,128,0,0,0,
- 114,179,0,0,0,114,117,0,0,0,114,2,0,0,0,114,
- 78,0,0,0,114,134,0,0,0,218,10,77,111,100,117,108,
- 101,83,112,101,99,90,13,95,115,101,116,95,102,105,108,101,
- 97,116,116,114,218,27,95,103,101,116,95,115,117,112,112,111,
- 114,116,101,100,95,102,105,108,101,95,108,111,97,100,101,114,
- 115,114,110,0,0,0,114,111,0,0,0,114,140,0,0,0,
- 218,9,95,80,79,80,85,76,65,84,69,114,182,0,0,0,
- 114,178,0,0,0,114,46,0,0,0,218,6,97,112,112,101,
- 110,100,41,9,114,116,0,0,0,90,8,108,111,99,97,116,
- 105,111,110,114,140,0,0,0,114,178,0,0,0,218,4,115,
- 112,101,99,218,12,108,111,97,100,101,114,95,99,108,97,115,
- 115,218,8,115,117,102,102,105,120,101,115,114,182,0,0,0,
- 90,7,100,105,114,110,97,109,101,114,3,0,0,0,114,3,
- 0,0,0,114,6,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,123,2,0,0,115,62,0,0,0,0,12,8,4,4,1,
- 10,2,2,1,14,1,12,1,8,2,10,8,16,1,6,3,
- 8,1,14,1,14,1,10,1,6,1,6,2,4,3,8,2,
- 10,1,2,1,14,1,12,1,6,2,4,1,8,2,6,1,
- 12,1,6,1,12,1,12,2,114,190,0,0,0,99,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,
- 0,0,64,0,0,0,115,80,0,0,0,101,0,90,1,100,
- 0,90,2,100,1,90,3,100,2,90,4,100,3,90,5,100,
- 4,90,6,101,7,100,5,100,6,132,0,131,1,90,8,101,
- 7,100,7,100,8,132,0,131,1,90,9,101,7,100,14,100,
- 10,100,11,132,1,131,1,90,10,101,7,100,15,100,12,100,
- 13,132,1,131,1,90,11,100,9,83,0,41,16,218,21,87,
- 105,110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,
- 110,100,101,114,122,62,77,101,116,97,32,112,97,116,104,32,
- 102,105,110,100,101,114,32,102,111,114,32,109,111,100,117,108,
- 101,115,32,100,101,99,108,97,114,101,100,32,105,110,32,116,
- 104,101,32,87,105,110,100,111,119,115,32,114,101,103,105,115,
- 116,114,121,46,122,59,83,111,102,116,119,97,114,101,92,80,
- 121,116,104,111,110,92,80,121,116,104,111,110,67,111,114,101,
- 92,123,115,121,115,95,118,101,114,115,105,111,110,125,92,77,
- 111,100,117,108,101,115,92,123,102,117,108,108,110,97,109,101,
- 125,122,65,83,111,102,116,119,97,114,101,92,80,121,116,104,
- 111,110,92,80,121,116,104,111,110,67,111,114,101,92,123,115,
- 121,115,95,118,101,114,115,105,111,110,125,92,77,111,100,117,
- 108,101,115,92,123,102,117,108,108,110,97,109,101,125,92,68,
- 101,98,117,103,70,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,8,0,0,0,67,0,0,0,115,54,
- 0,0,0,122,16,116,0,160,1,116,0,106,2,124,1,161,
- 2,87,0,83,0,4,0,116,3,121,48,1,0,1,0,1,
- 0,116,0,160,1,116,0,106,4,124,1,161,2,6,0,89,
- 0,83,0,48,0,100,0,83,0,114,109,0,0,0,41,5,
- 218,7,95,119,105,110,114,101,103,90,7,79,112,101,110,75,
- 101,121,90,17,72,75,69,89,95,67,85,82,82,69,78,84,
- 95,85,83,69,82,114,49,0,0,0,90,18,72,75,69,89,
- 95,76,79,67,65,76,95,77,65,67,72,73,78,69,41,2,
- 218,3,99,108,115,114,5,0,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,218,14,95,111,112,101,110,
- 95,114,101,103,105,115,116,114,121,203,2,0,0,115,8,0,
- 0,0,0,2,2,1,16,1,12,1,122,36,87,105,110,100,
- 111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,
- 114,46,95,111,112,101,110,95,114,101,103,105,115,116,114,121,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,6,0,0,
- 0,8,0,0,0,67,0,0,0,115,132,0,0,0,124,0,
- 106,0,114,14,124,0,106,1,125,2,110,6,124,0,106,2,
- 125,2,124,2,106,3,124,1,100,1,116,4,106,5,100,0,
- 100,2,133,2,25,0,22,0,100,3,141,2,125,3,122,58,
- 124,0,160,6,124,3,161,1,143,28,125,4,116,7,160,8,
- 124,4,100,4,161,2,125,5,87,0,100,0,4,0,4,0,
- 131,3,1,0,110,16,49,0,115,94,48,0,1,0,1,0,
- 1,0,89,0,1,0,87,0,110,20,4,0,116,9,121,126,
- 1,0,1,0,1,0,89,0,100,0,83,0,48,0,124,5,
- 83,0,41,5,78,122,5,37,100,46,37,100,114,27,0,0,
- 0,41,2,114,139,0,0,0,90,11,115,121,115,95,118,101,
- 114,115,105,111,110,114,39,0,0,0,41,10,218,11,68,69,
- 66,85,71,95,66,85,73,76,68,218,18,82,69,71,73,83,
- 84,82,89,95,75,69,89,95,68,69,66,85,71,218,12,82,
- 69,71,73,83,84,82,89,95,75,69,89,114,61,0,0,0,
- 114,8,0,0,0,218,12,118,101,114,115,105,111,110,95,105,
- 110,102,111,114,194,0,0,0,114,192,0,0,0,90,10,81,
- 117,101,114,121,86,97,108,117,101,114,49,0,0,0,41,6,
- 114,193,0,0,0,114,139,0,0,0,90,12,114,101,103,105,
- 115,116,114,121,95,107,101,121,114,5,0,0,0,90,4,104,
- 107,101,121,218,8,102,105,108,101,112,97,116,104,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,218,16,95,115,
- 101,97,114,99,104,95,114,101,103,105,115,116,114,121,210,2,
- 0,0,115,24,0,0,0,0,2,6,1,8,2,6,1,6,
- 1,16,255,6,2,2,1,12,1,46,1,12,1,8,1,122,
- 38,87,105,110,100,111,119,115,82,101,103,105,115,116,114,121,
- 70,105,110,100,101,114,46,95,115,101,97,114,99,104,95,114,
- 101,103,105,115,116,114,121,78,99,4,0,0,0,0,0,0,
- 0,0,0,0,0,8,0,0,0,8,0,0,0,67,0,0,
- 0,115,120,0,0,0,124,0,160,0,124,1,161,1,125,4,
- 124,4,100,0,117,0,114,22,100,0,83,0,122,12,116,1,
- 124,4,131,1,1,0,87,0,110,20,4,0,116,2,121,54,
- 1,0,1,0,1,0,89,0,100,0,83,0,48,0,116,3,
- 131,0,68,0,93,52,92,2,125,5,125,6,124,4,160,4,
- 116,5,124,6,131,1,161,1,114,62,116,6,106,7,124,1,
- 124,5,124,1,124,4,131,2,124,4,100,1,141,3,125,7,
- 124,7,2,0,1,0,83,0,113,62,100,0,83,0,41,2,
- 78,114,180,0,0,0,41,8,114,200,0,0,0,114,48,0,
- 0,0,114,49,0,0,0,114,184,0,0,0,114,110,0,0,
- 0,114,111,0,0,0,114,134,0,0,0,218,16,115,112,101,
- 99,95,102,114,111,109,95,108,111,97,100,101,114,41,8,114,
- 193,0,0,0,114,139,0,0,0,114,43,0,0,0,218,6,
- 116,97,114,103,101,116,114,199,0,0,0,114,140,0,0,0,
- 114,189,0,0,0,114,187,0,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,218,9,102,105,110,100,95,
- 115,112,101,99,225,2,0,0,115,28,0,0,0,0,2,10,
- 1,8,1,4,1,2,1,12,1,12,1,8,1,14,1,14,
- 1,6,1,8,1,2,254,6,3,122,31,87,105,110,100,111,
- 119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,
- 46,102,105,110,100,95,115,112,101,99,99,3,0,0,0,0,
- 0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,
- 0,0,0,115,34,0,0,0,124,0,160,0,124,1,124,2,
- 161,2,125,3,124,3,100,1,117,1,114,26,124,3,106,1,
- 83,0,100,1,83,0,100,1,83,0,41,2,122,108,70,105,
- 110,100,32,109,111,100,117,108,101,32,110,97,109,101,100,32,
- 105,110,32,116,104,101,32,114,101,103,105,115,116,114,121,46,
- 10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
+ 1,103,2,124,2,162,1,82,0,105,0,124,3,164,1,142,
+ 1,83,0,41,3,78,122,30,108,111,97,100,101,114,32,102,
+ 111,114,32,37,115,32,99,97,110,110,111,116,32,104,97,110,
+ 100,108,101,32,37,115,169,1,218,4,110,97,109,101,41,2,
+ 114,116,0,0,0,218,11,73,109,112,111,114,116,69,114,114,
+ 111,114,41,4,218,4,115,101,108,102,114,116,0,0,0,218,
+ 4,97,114,103,115,218,6,107,119,97,114,103,115,169,1,218,
+ 6,109,101,116,104,111,100,114,3,0,0,0,114,6,0,0,
+ 0,218,19,95,99,104,101,99,107,95,110,97,109,101,95,119,
+ 114,97,112,112,101,114,207,1,0,0,115,18,0,0,0,0,
+ 1,8,1,8,1,10,1,4,1,8,255,2,1,2,255,6,
+ 2,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,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,3,0,0,0,7,0,0,0,
+ 83,0,0,0,115,56,0,0,0,100,1,68,0,93,32,125,
+ 2,116,0,124,1,124,2,131,2,114,4,116,1,124,0,124,
+ 2,116,2,124,1,124,2,131,2,131,3,1,0,113,4,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,66,
+ 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,218,5,95,119,114,97,112,218,1,0,0,115,8,0,
+ 0,0,0,1,8,1,10,1,20,1,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,41,1,78,41,3,218,10,95,98,111,
+ 111,116,115,116,114,97,112,114,133,0,0,0,218,9,78,97,
+ 109,101,69,114,114,111,114,41,3,114,122,0,0,0,114,123,
+ 0,0,0,114,133,0,0,0,114,3,0,0,0,114,121,0,
+ 0,0,114,6,0,0,0,218,11,95,99,104,101,99,107,95,
+ 110,97,109,101,199,1,0,0,115,14,0,0,0,0,8,14,
+ 7,2,1,10,1,12,2,14,5,10,1,114,136,0,0,0,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,
+ 0,6,0,0,0,67,0,0,0,115,60,0,0,0,124,0,
+ 160,0,124,1,161,1,92,2,125,2,125,3,124,2,100,1,
+ 117,0,114,56,116,1,124,3,131,1,114,56,100,2,125,4,
+ 116,2,160,3,124,4,160,4,124,3,100,3,25,0,161,1,
+ 116,5,161,2,1,0,124,2,83,0,41,4,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,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,169,2,114,203,0,
- 0,0,114,140,0,0,0,169,4,114,193,0,0,0,114,139,
- 0,0,0,114,43,0,0,0,114,187,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,218,11,102,105,
- 110,100,95,109,111,100,117,108,101,241,2,0,0,115,8,0,
- 0,0,0,7,12,1,8,1,6,2,122,33,87,105,110,100,
- 111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,
- 114,46,102,105,110,100,95,109,111,100,117,108,101,41,2,78,
- 78,41,1,78,41,12,114,125,0,0,0,114,124,0,0,0,
- 114,126,0,0,0,114,127,0,0,0,114,197,0,0,0,114,
- 196,0,0,0,114,195,0,0,0,218,11,99,108,97,115,115,
- 109,101,116,104,111,100,114,194,0,0,0,114,200,0,0,0,
- 114,203,0,0,0,114,206,0,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,191,
- 0,0,0,191,2,0,0,115,28,0,0,0,8,2,4,3,
- 2,255,2,4,2,255,2,3,4,2,2,1,10,6,2,1,
- 10,14,2,1,12,15,2,1,114,191,0,0,0,99,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,64,0,0,0,115,48,0,0,0,101,0,90,1,100,
- 0,90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,
- 4,100,5,132,0,90,5,100,6,100,7,132,0,90,6,100,
- 8,100,9,132,0,90,7,100,10,83,0,41,11,218,13,95,
- 76,111,97,100,101,114,66,97,115,105,99,115,122,83,66,97,
- 115,101,32,99,108,97,115,115,32,111,102,32,99,111,109,109,
- 111,110,32,99,111,100,101,32,110,101,101,100,101,100,32,98,
- 121,32,98,111,116,104,32,83,111,117,114,99,101,76,111,97,
- 100,101,114,32,97,110,100,10,32,32,32,32,83,111,117,114,
- 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,
- 46,99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,
- 0,0,4,0,0,0,67,0,0,0,115,64,0,0,0,116,
- 0,124,0,160,1,124,1,161,1,131,1,100,1,25,0,125,
- 2,124,2,160,2,100,2,100,1,161,2,100,3,25,0,125,
- 3,124,1,160,3,100,2,161,1,100,4,25,0,125,4,124,
- 3,100,5,107,2,111,62,124,4,100,5,107,3,83,0,41,
- 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,
- 110,103,32,105,102,10,32,32,32,32,32,32,32,32,116,104,
- 101,32,112,97,116,104,32,114,101,116,117,114,110,101,100,32,
- 98,121,32,103,101,116,95,102,105,108,101,110,97,109,101,32,
- 104,97,115,32,97,32,102,105,108,101,110,97,109,101,32,111,
- 102,32,39,95,95,105,110,105,116,95,95,46,112,121,39,46,
- 114,38,0,0,0,114,70,0,0,0,114,72,0,0,0,114,
- 27,0,0,0,218,8,95,95,105,110,105,116,95,95,41,4,
- 114,46,0,0,0,114,179,0,0,0,114,42,0,0,0,114,
- 40,0,0,0,41,5,114,118,0,0,0,114,139,0,0,0,
- 114,96,0,0,0,90,13,102,105,108,101,110,97,109,101,95,
- 98,97,115,101,90,9,116,97,105,108,95,110,97,109,101,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,182,
- 0,0,0,4,3,0,0,115,8,0,0,0,0,3,18,1,
- 16,1,14,1,122,24,95,76,111,97,100,101,114,66,97,115,
- 105,99,115,46,105,115,95,112,97,99,107,97,103,101,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,
- 0,0,0,67,0,0,0,115,4,0,0,0,100,1,83,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,
- 3,0,0,0,169,2,114,118,0,0,0,114,187,0,0,0,
+ 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,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,72,0,0,0,41,6,218,
+ 11,102,105,110,100,95,108,111,97,100,101,114,114,22,0,0,
+ 0,114,74,0,0,0,114,75,0,0,0,114,61,0,0,0,
+ 218,13,73,109,112,111,114,116,87,97,114,110,105,110,103,41,
+ 5,114,118,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,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,218,17,95,102,105,110,100,95,109,111,
+ 100,117,108,101,95,115,104,105,109,227,1,0,0,115,10,0,
+ 0,0,0,10,14,1,16,1,4,1,22,1,114,143,0,0,
+ 0,99,3,0,0,0,0,0,0,0,0,0,0,0,6,0,
+ 0,0,4,0,0,0,67,0,0,0,115,166,0,0,0,124,
+ 0,100,1,100,2,133,2,25,0,125,3,124,3,116,0,107,
+ 3,114,64,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,106,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,
+ 162,100,10,124,5,155,2,100,11,124,1,155,2,157,4,125,
+ 4,116,3,124,4,102,1,105,0,124,2,164,1,142,1,130,
+ 1,124,5,83,0,41,12,97,84,2,0,0,80,101,114,102,
+ 111,114,109,32,98,97,115,105,99,32,118,97,108,105,100,105,
+ 116,121,32,99,104,101,99,107,105,110,103,32,111,102,32,97,
+ 32,112,121,99,32,104,101,97,100,101,114,32,97,110,100,32,
+ 114,101,116,117,114,110,32,116,104,101,32,102,108,97,103,115,
+ 32,102,105,101,108,100,44,10,32,32,32,32,119,104,105,99,
+ 104,32,100,101,116,101,114,109,105,110,101,115,32,104,111,119,
+ 32,116,104,101,32,112,121,99,32,115,104,111,117,108,100,32,
+ 98,101,32,102,117,114,116,104,101,114,32,118,97,108,105,100,
+ 97,116,101,100,32,97,103,97,105,110,115,116,32,116,104,101,
+ 32,115,111,117,114,99,101,46,10,10,32,32,32,32,42,100,
+ 97,116,97,42,32,105,115,32,116,104,101,32,99,111,110,116,
+ 101,110,116,115,32,111,102,32,116,104,101,32,112,121,99,32,
+ 102,105,108,101,46,32,40,79,110,108,121,32,116,104,101,32,
+ 102,105,114,115,116,32,49,54,32,98,121,116,101,115,32,97,
+ 114,101,10,32,32,32,32,114,101,113,117,105,114,101,100,44,
+ 32,116,104,111,117,103,104,46,41,10,10,32,32,32,32,42,
+ 110,97,109,101,42,32,105,115,32,116,104,101,32,110,97,109,
+ 101,32,111,102,32,116,104,101,32,109,111,100,117,108,101,32,
+ 98,101,105,110,103,32,105,109,112,111,114,116,101,100,46,32,
+ 73,116,32,105,115,32,117,115,101,100,32,102,111,114,32,108,
+ 111,103,103,105,110,103,46,10,10,32,32,32,32,42,101,120,
+ 99,95,100,101,116,97,105,108,115,42,32,105,115,32,97,32,
+ 100,105,99,116,105,111,110,97,114,121,32,112,97,115,115,101,
+ 100,32,116,111,32,73,109,112,111,114,116,69,114,114,111,114,
+ 32,105,102,32,105,116,32,114,97,105,115,101,100,32,102,111,
+ 114,10,32,32,32,32,105,109,112,114,111,118,101,100,32,100,
+ 101,98,117,103,103,105,110,103,46,10,10,32,32,32,32,73,
+ 109,112,111,114,116,69,114,114,111,114,32,105,115,32,114,97,
+ 105,115,101,100,32,119,104,101,110,32,116,104,101,32,109,97,
+ 103,105,99,32,110,117,109,98,101,114,32,105,115,32,105,110,
+ 99,111,114,114,101,99,116,32,111,114,32,119,104,101,110,32,
+ 116,104,101,32,102,108,97,103,115,10,32,32,32,32,102,105,
+ 101,108,100,32,105,115,32,105,110,118,97,108,105,100,46,32,
+ 69,79,70,69,114,114,111,114,32,105,115,32,114,97,105,115,
+ 101,100,32,119,104,101,110,32,116,104,101,32,100,97,116,97,
+ 32,105,115,32,102,111,117,110,100,32,116,111,32,98,101,32,
+ 116,114,117,110,99,97,116,101,100,46,10,10,32,32,32,32,
+ 78,114,15,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,134,0,0,0,218,16,95,118,101,114,98,111,
+ 115,101,95,109,101,115,115,97,103,101,114,117,0,0,0,114,
+ 22,0,0,0,218,8,69,79,70,69,114,114,111,114,114,26,
+ 0,0,0,41,6,114,25,0,0,0,114,116,0,0,0,218,
+ 11,101,120,99,95,100,101,116,97,105,108,115,90,5,109,97,
+ 103,105,99,114,92,0,0,0,114,82,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,218,13,95,99,
+ 108,97,115,115,105,102,121,95,112,121,99,244,1,0,0,115,
+ 28,0,0,0,0,16,12,1,8,1,16,1,12,1,16,1,
+ 12,1,10,1,12,1,8,1,16,2,8,1,16,1,16,1,
+ 114,152,0,0,0,99,5,0,0,0,0,0,0,0,0,0,
+ 0,0,6,0,0,0,4,0,0,0,67,0,0,0,115,120,
+ 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,62,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,116,116,0,124,0,100,2,100,
+ 7,133,2,25,0,131,1,124,2,100,3,64,0,107,3,114,
+ 116,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,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,146,0,0,0,233,12,
+ 0,0,0,114,14,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,144,0,0,0,78,114,145,0,0,0,41,4,114,26,0,
+ 0,0,114,134,0,0,0,114,149,0,0,0,114,117,0,0,
+ 0,41,6,114,25,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,116,0,0,0,114,151,0,0,0,114,92,0,
+ 0,0,114,3,0,0,0,114,3,0,0,0,114,6,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,21,2,0,0,115,16,
+ 0,0,0,0,19,24,1,10,1,12,1,16,1,8,1,22,
+ 255,2,2,114,156,0,0,0,99,4,0,0,0,0,0,0,
+ 0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,0,
+ 0,115,42,0,0,0,124,0,100,1,100,2,133,2,25,0,
+ 124,1,107,3,114,38,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,146,0,0,0,114,
+ 145,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,117,0,0,0,41,4,114,25,
+ 0,0,0,218,11,115,111,117,114,99,101,95,104,97,115,104,
+ 114,116,0,0,0,114,151,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,218,18,95,118,97,108,105,
+ 100,97,116,101,95,104,97,115,104,95,112,121,99,49,2,0,
+ 0,115,12,0,0,0,0,17,16,1,2,1,8,255,4,2,
+ 2,254,114,158,0,0,0,99,4,0,0,0,0,0,0,0,
+ 0,0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,
+ 115,80,0,0,0,116,0,160,1,124,0,161,1,125,4,116,
+ 2,124,4,116,3,131,2,114,56,116,4,160,5,100,1,124,
+ 2,161,2,1,0,124,3,100,2,117,1,114,52,116,6,160,
+ 7,124,4,124,3,161,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,100,2,83,0,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,
+ 116,0,0,0,114,43,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,134,0,0,0,114,149,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,117,0,0,0,114,61,0,0,0,41,
+ 5,114,25,0,0,0,114,116,0,0,0,114,106,0,0,0,
+ 114,107,0,0,0,218,4,99,111,100,101,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,218,17,95,99,111,109,
+ 112,105,108,101,95,98,121,116,101,99,111,100,101,73,2,0,
+ 0,115,20,0,0,0,0,2,10,1,10,1,12,1,8,1,
+ 12,1,4,2,10,1,2,0,2,255,114,165,0,0,0,114,
+ 72,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,
+ 0,4,0,0,0,5,0,0,0,67,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,160,5,124,0,161,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,72,0,0,0,41,6,218,9,
+ 98,121,116,101,97,114,114,97,121,114,148,0,0,0,218,6,
+ 101,120,116,101,110,100,114,20,0,0,0,114,160,0,0,0,
+ 218,5,100,117,109,112,115,41,4,114,164,0,0,0,218,5,
+ 109,116,105,109,101,114,155,0,0,0,114,25,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,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,86,2,0,0,115,12,0,0,0,0,
+ 2,8,1,14,1,14,1,14,1,16,1,114,170,0,0,0,
+ 84,99,3,0,0,0,0,0,0,0,0,0,0,0,5,0,
+ 0,0,5,0,0,0,67,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,50,74,0,130,
+ 1,124,3,160,2,124,1,161,1,1,0,124,3,160,2,116,
+ 5,160,6,124,0,161,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,38,0,0,0,114,146,
+ 0,0,0,41,7,114,166,0,0,0,114,148,0,0,0,114,
+ 167,0,0,0,114,20,0,0,0,114,22,0,0,0,114,160,
+ 0,0,0,114,168,0,0,0,41,5,114,164,0,0,0,114,
+ 157,0,0,0,90,7,99,104,101,99,107,101,100,114,25,0,
+ 0,0,114,82,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,218,17,95,99,111,100,101,95,116,111,
+ 95,104,97,115,104,95,112,121,99,96,2,0,0,115,14,0,
+ 0,0,0,2,8,1,12,1,14,1,16,1,10,1,16,1,
+ 114,171,0,0,0,99,1,0,0,0,0,0,0,0,0,0,
+ 0,0,5,0,0,0,6,0,0,0,67,0,0,0,115,62,
+ 0,0,0,100,1,100,2,108,0,125,1,116,1,160,2,124,
+ 0,161,1,106,3,125,2,124,1,160,4,124,2,161,1,125,
+ 3,116,1,160,5,100,2,100,3,161,2,125,4,124,4,160,
+ 6,124,0,160,6,124,3,100,1,25,0,161,1,161,1,83,
+ 0,41,4,122,121,68,101,99,111,100,101,32,98,121,116,101,
+ 115,32,114,101,112,114,101,115,101,110,116,105,110,103,32,115,
+ 111,117,114,99,101,32,99,111,100,101,32,97,110,100,32,114,
+ 101,116,117,114,110,32,116,104,101,32,115,116,114,105,110,103,
+ 46,10,10,32,32,32,32,85,110,105,118,101,114,115,97,108,
+ 32,110,101,119,108,105,110,101,32,115,117,112,112,111,114,116,
+ 32,105,115,32,117,115,101,100,32,105,110,32,116,104,101,32,
+ 100,101,99,111,100,105,110,103,46,10,32,32,32,32,114,72,
+ 0,0,0,78,84,41,7,218,8,116,111,107,101,110,105,122,
+ 101,114,63,0,0,0,90,7,66,121,116,101,115,73,79,90,
+ 8,114,101,97,100,108,105,110,101,90,15,100,101,116,101,99,
+ 116,95,101,110,99,111,100,105,110,103,90,25,73,110,99,114,
+ 101,109,101,110,116,97,108,78,101,119,108,105,110,101,68,101,
+ 99,111,100,101,114,218,6,100,101,99,111,100,101,41,5,218,
+ 12,115,111,117,114,99,101,95,98,121,116,101,115,114,172,0,
+ 0,0,90,21,115,111,117,114,99,101,95,98,121,116,101,115,
+ 95,114,101,97,100,108,105,110,101,218,8,101,110,99,111,100,
+ 105,110,103,90,15,110,101,119,108,105,110,101,95,100,101,99,
+ 111,100,101,114,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,218,13,100,101,99,111,100,101,95,115,111,117,114,
+ 99,101,107,2,0,0,115,10,0,0,0,0,5,8,1,12,
+ 1,10,1,12,1,114,176,0,0,0,169,2,114,140,0,0,
+ 0,218,26,115,117,98,109,111,100,117,108,101,95,115,101,97,
+ 114,99,104,95,108,111,99,97,116,105,111,110,115,99,2,0,
+ 0,0,0,0,0,0,2,0,0,0,9,0,0,0,8,0,
+ 0,0,67,0,0,0,115,12,1,0,0,124,1,100,1,117,
+ 0,114,58,100,2,125,1,116,0,124,2,100,3,131,2,114,
+ 68,122,14,124,2,160,1,124,0,161,1,125,1,87,0,113,
+ 68,4,0,116,2,121,54,1,0,1,0,1,0,89,0,113,
+ 68,48,0,110,10,116,3,160,4,124,1,161,1,125,1,116,
+ 5,106,6,124,0,124,2,124,1,100,4,141,3,125,4,100,
+ 5,124,4,95,7,124,2,100,1,117,0,114,152,116,8,131,
+ 0,68,0,93,42,92,2,125,5,125,6,124,1,160,9,116,
+ 10,124,6,131,1,161,1,114,104,124,5,124,0,124,1,131,
+ 2,125,2,124,2,124,4,95,11,1,0,113,152,113,104,100,
+ 1,83,0,124,3,116,12,117,0,114,216,116,0,124,2,100,
+ 6,131,2,114,222,122,14,124,2,160,13,124,0,161,1,125,
+ 7,87,0,110,18,4,0,116,2,121,202,1,0,1,0,1,
+ 0,89,0,113,222,48,0,124,7,114,222,103,0,124,4,95,
+ 14,110,6,124,3,124,4,95,14,124,4,106,14,103,0,107,
+ 2,144,1,114,8,124,1,144,1,114,8,116,15,124,1,131,
+ 1,100,7,25,0,125,8,124,4,106,14,160,16,124,8,161,
+ 1,1,0,124,4,83,0,41,8,97,61,1,0,0,82,101,
+ 116,117,114,110,32,97,32,109,111,100,117,108,101,32,115,112,
+ 101,99,32,98,97,115,101,100,32,111,110,32,97,32,102,105,
+ 108,101,32,108,111,99,97,116,105,111,110,46,10,10,32,32,
+ 32,32,84,111,32,105,110,100,105,99,97,116,101,32,116,104,
+ 97,116,32,116,104,101,32,109,111,100,117,108,101,32,105,115,
+ 32,97,32,112,97,99,107,97,103,101,44,32,115,101,116,10,
+ 32,32,32,32,115,117,98,109,111,100,117,108,101,95,115,101,
+ 97,114,99,104,95,108,111,99,97,116,105,111,110,115,32,116,
+ 111,32,97,32,108,105,115,116,32,111,102,32,100,105,114,101,
+ 99,116,111,114,121,32,112,97,116,104,115,46,32,32,65,110,
+ 10,32,32,32,32,101,109,112,116,121,32,108,105,115,116,32,
+ 105,115,32,115,117,102,102,105,99,105,101,110,116,44,32,116,
+ 104,111,117,103,104,32,105,116,115,32,110,111,116,32,111,116,
+ 104,101,114,119,105,115,101,32,117,115,101,102,117,108,32,116,
+ 111,32,116,104,101,10,32,32,32,32,105,109,112,111,114,116,
+ 32,115,121,115,116,101,109,46,10,10,32,32,32,32,84,104,
+ 101,32,108,111,97,100,101,114,32,109,117,115,116,32,116,97,
+ 107,101,32,97,32,115,112,101,99,32,97,115,32,105,116,115,
+ 32,111,110,108,121,32,95,95,105,110,105,116,95,95,40,41,
+ 32,97,114,103,46,10,10,32,32,32,32,78,122,9,60,117,
+ 110,107,110,111,119,110,62,218,12,103,101,116,95,102,105,108,
+ 101,110,97,109,101,169,1,218,6,111,114,105,103,105,110,84,
+ 218,10,105,115,95,112,97,99,107,97,103,101,114,72,0,0,
+ 0,41,17,114,128,0,0,0,114,179,0,0,0,114,117,0,
+ 0,0,114,2,0,0,0,114,78,0,0,0,114,134,0,0,
+ 0,218,10,77,111,100,117,108,101,83,112,101,99,90,13,95,
+ 115,101,116,95,102,105,108,101,97,116,116,114,218,27,95,103,
+ 101,116,95,115,117,112,112,111,114,116,101,100,95,102,105,108,
+ 101,95,108,111,97,100,101,114,115,114,110,0,0,0,114,111,
+ 0,0,0,114,140,0,0,0,218,9,95,80,79,80,85,76,
+ 65,84,69,114,182,0,0,0,114,178,0,0,0,114,46,0,
+ 0,0,218,6,97,112,112,101,110,100,41,9,114,116,0,0,
+ 0,90,8,108,111,99,97,116,105,111,110,114,140,0,0,0,
+ 114,178,0,0,0,218,4,115,112,101,99,218,12,108,111,97,
+ 100,101,114,95,99,108,97,115,115,218,8,115,117,102,102,105,
+ 120,101,115,114,182,0,0,0,90,7,100,105,114,110,97,109,
+ 101,114,3,0,0,0,114,3,0,0,0,114,6,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,124,2,0,0,115,62,0,
+ 0,0,0,12,8,4,4,1,10,2,2,1,14,1,12,1,
+ 8,2,10,8,16,1,6,3,8,1,14,1,14,1,10,1,
+ 6,1,6,2,4,3,8,2,10,1,2,1,14,1,12,1,
+ 6,2,4,1,8,2,6,1,12,1,6,1,12,1,12,2,
+ 114,190,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,4,0,0,0,64,0,0,0,115,80,
+ 0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,
+ 2,90,4,100,3,90,5,100,4,90,6,101,7,100,5,100,
+ 6,132,0,131,1,90,8,101,7,100,7,100,8,132,0,131,
+ 1,90,9,101,7,100,14,100,10,100,11,132,1,131,1,90,
+ 10,101,7,100,15,100,12,100,13,132,1,131,1,90,11,100,
+ 9,83,0,41,16,218,21,87,105,110,100,111,119,115,82,101,
+ 103,105,115,116,114,121,70,105,110,100,101,114,122,62,77,101,
+ 116,97,32,112,97,116,104,32,102,105,110,100,101,114,32,102,
+ 111,114,32,109,111,100,117,108,101,115,32,100,101,99,108,97,
+ 114,101,100,32,105,110,32,116,104,101,32,87,105,110,100,111,
+ 119,115,32,114,101,103,105,115,116,114,121,46,122,59,83,111,
+ 102,116,119,97,114,101,92,80,121,116,104,111,110,92,80,121,
+ 116,104,111,110,67,111,114,101,92,123,115,121,115,95,118,101,
+ 114,115,105,111,110,125,92,77,111,100,117,108,101,115,92,123,
+ 102,117,108,108,110,97,109,101,125,122,65,83,111,102,116,119,
+ 97,114,101,92,80,121,116,104,111,110,92,80,121,116,104,111,
+ 110,67,111,114,101,92,123,115,121,115,95,118,101,114,115,105,
+ 111,110,125,92,77,111,100,117,108,101,115,92,123,102,117,108,
+ 108,110,97,109,101,125,92,68,101,98,117,103,70,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,0,
+ 0,0,67,0,0,0,115,54,0,0,0,122,16,116,0,160,
+ 1,116,0,106,2,124,1,161,2,87,0,83,0,4,0,116,
+ 3,121,48,1,0,1,0,1,0,116,0,160,1,116,0,106,
+ 4,124,1,161,2,6,0,89,0,83,0,48,0,100,0,83,
+ 0,114,109,0,0,0,41,5,218,7,95,119,105,110,114,101,
+ 103,90,7,79,112,101,110,75,101,121,90,17,72,75,69,89,
+ 95,67,85,82,82,69,78,84,95,85,83,69,82,114,49,0,
+ 0,0,90,18,72,75,69,89,95,76,79,67,65,76,95,77,
+ 65,67,72,73,78,69,41,2,218,3,99,108,115,114,5,0,
+ 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,218,14,95,111,112,101,110,95,114,101,103,105,115,116,114,
+ 121,204,2,0,0,115,8,0,0,0,0,2,2,1,16,1,
+ 12,1,122,36,87,105,110,100,111,119,115,82,101,103,105,115,
+ 116,114,121,70,105,110,100,101,114,46,95,111,112,101,110,95,
+ 114,101,103,105,115,116,114,121,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,6,0,0,0,8,0,0,0,67,0,0,
+ 0,115,132,0,0,0,124,0,106,0,114,14,124,0,106,1,
+ 125,2,110,6,124,0,106,2,125,2,124,2,106,3,124,1,
+ 100,1,116,4,106,5,100,0,100,2,133,2,25,0,22,0,
+ 100,3,141,2,125,3,122,58,124,0,160,6,124,3,161,1,
+ 143,28,125,4,116,7,160,8,124,4,100,4,161,2,125,5,
+ 87,0,100,0,4,0,4,0,131,3,1,0,110,16,49,0,
+ 115,94,48,0,1,0,1,0,1,0,89,0,1,0,87,0,
+ 110,20,4,0,116,9,121,126,1,0,1,0,1,0,89,0,
+ 100,0,83,0,48,0,124,5,83,0,41,5,78,122,5,37,
+ 100,46,37,100,114,27,0,0,0,41,2,114,139,0,0,0,
+ 90,11,115,121,115,95,118,101,114,115,105,111,110,114,39,0,
+ 0,0,41,10,218,11,68,69,66,85,71,95,66,85,73,76,
+ 68,218,18,82,69,71,73,83,84,82,89,95,75,69,89,95,
+ 68,69,66,85,71,218,12,82,69,71,73,83,84,82,89,95,
+ 75,69,89,114,61,0,0,0,114,8,0,0,0,218,12,118,
+ 101,114,115,105,111,110,95,105,110,102,111,114,194,0,0,0,
+ 114,192,0,0,0,90,10,81,117,101,114,121,86,97,108,117,
+ 101,114,49,0,0,0,41,6,114,193,0,0,0,114,139,0,
+ 0,0,90,12,114,101,103,105,115,116,114,121,95,107,101,121,
+ 114,5,0,0,0,90,4,104,107,101,121,218,8,102,105,108,
+ 101,112,97,116,104,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,218,16,95,115,101,97,114,99,104,95,114,101,
+ 103,105,115,116,114,121,211,2,0,0,115,24,0,0,0,0,
+ 2,6,1,8,2,6,1,6,1,16,255,6,2,2,1,12,
+ 1,46,1,12,1,8,1,122,38,87,105,110,100,111,119,115,
+ 82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,95,
+ 115,101,97,114,99,104,95,114,101,103,105,115,116,114,121,78,
+ 99,4,0,0,0,0,0,0,0,0,0,0,0,8,0,0,
+ 0,8,0,0,0,67,0,0,0,115,120,0,0,0,124,0,
+ 160,0,124,1,161,1,125,4,124,4,100,0,117,0,114,22,
+ 100,0,83,0,122,12,116,1,124,4,131,1,1,0,87,0,
+ 110,20,4,0,116,2,121,54,1,0,1,0,1,0,89,0,
+ 100,0,83,0,48,0,116,3,131,0,68,0,93,52,92,2,
+ 125,5,125,6,124,4,160,4,116,5,124,6,131,1,161,1,
+ 114,62,116,6,106,7,124,1,124,5,124,1,124,4,131,2,
+ 124,4,100,1,141,3,125,7,124,7,2,0,1,0,83,0,
+ 113,62,100,0,83,0,41,2,78,114,180,0,0,0,41,8,
+ 114,200,0,0,0,114,48,0,0,0,114,49,0,0,0,114,
+ 184,0,0,0,114,110,0,0,0,114,111,0,0,0,114,134,
+ 0,0,0,218,16,115,112,101,99,95,102,114,111,109,95,108,
+ 111,97,100,101,114,41,8,114,193,0,0,0,114,139,0,0,
+ 0,114,43,0,0,0,218,6,116,97,114,103,101,116,114,199,
+ 0,0,0,114,140,0,0,0,114,189,0,0,0,114,187,0,
+ 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,218,9,102,105,110,100,95,115,112,101,99,226,2,0,0,
+ 115,28,0,0,0,0,2,10,1,8,1,4,1,2,1,12,
+ 1,12,1,8,1,14,1,14,1,6,1,8,1,2,254,6,
+ 3,122,31,87,105,110,100,111,119,115,82,101,103,105,115,116,
+ 114,121,70,105,110,100,101,114,46,102,105,110,100,95,115,112,
+ 101,99,99,3,0,0,0,0,0,0,0,0,0,0,0,4,
+ 0,0,0,4,0,0,0,67,0,0,0,115,34,0,0,0,
+ 124,0,160,0,124,1,124,2,161,2,125,3,124,3,100,1,
+ 117,1,114,26,124,3,106,1,83,0,100,1,83,0,100,1,
+ 83,0,41,2,122,108,70,105,110,100,32,109,111,100,117,108,
+ 101,32,110,97,109,101,100,32,105,110,32,116,104,101,32,114,
+ 101,103,105,115,116,114,121,46,10,10,32,32,32,32,32,32,
+ 32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,
+ 32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,
+ 101,32,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,169,2,114,203,0,0,0,114,140,0,0,0,169,
+ 4,114,193,0,0,0,114,139,0,0,0,114,43,0,0,0,
+ 114,187,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,218,11,102,105,110,100,95,109,111,100,117,108,
+ 101,242,2,0,0,115,8,0,0,0,0,7,12,1,8,1,
+ 6,2,122,33,87,105,110,100,111,119,115,82,101,103,105,115,
+ 116,114,121,70,105,110,100,101,114,46,102,105,110,100,95,109,
+ 111,100,117,108,101,41,2,78,78,41,1,78,41,12,114,125,
+ 0,0,0,114,124,0,0,0,114,126,0,0,0,114,127,0,
+ 0,0,114,197,0,0,0,114,196,0,0,0,114,195,0,0,
+ 0,218,11,99,108,97,115,115,109,101,116,104,111,100,114,194,
+ 0,0,0,114,200,0,0,0,114,203,0,0,0,114,206,0,
+ 0,0,114,3,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,114,191,0,0,0,192,2,0,0,115,
+ 28,0,0,0,8,2,4,3,2,255,2,4,2,255,2,3,
+ 4,2,2,1,10,6,2,1,10,14,2,1,12,15,2,1,
+ 114,191,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,2,0,0,0,64,0,0,0,115,48,
+ 0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,
+ 2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,100,
+ 6,100,7,132,0,90,6,100,8,100,9,132,0,90,7,100,
+ 10,83,0,41,11,218,13,95,76,111,97,100,101,114,66,97,
+ 115,105,99,115,122,83,66,97,115,101,32,99,108,97,115,115,
+ 32,111,102,32,99,111,109,109,111,110,32,99,111,100,101,32,
+ 110,101,101,100,101,100,32,98,121,32,98,111,116,104,32,83,
+ 111,117,114,99,101,76,111,97,100,101,114,32,97,110,100,10,
+ 32,32,32,32,83,111,117,114,99,101,108,101,115,115,70,105,
+ 108,101,76,111,97,100,101,114,46,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,5,0,0,0,4,0,0,0,67,0,
+ 0,0,115,64,0,0,0,116,0,124,0,160,1,124,1,161,
+ 1,131,1,100,1,25,0,125,2,124,2,160,2,100,2,100,
+ 1,161,2,100,3,25,0,125,3,124,1,160,3,100,2,161,
+ 1,100,4,25,0,125,4,124,3,100,5,107,2,111,62,124,
+ 4,100,5,107,3,83,0,41,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,110,103,32,105,102,10,32,32,
+ 32,32,32,32,32,32,116,104,101,32,112,97,116,104,32,114,
+ 101,116,117,114,110,101,100,32,98,121,32,103,101,116,95,102,
+ 105,108,101,110,97,109,101,32,104,97,115,32,97,32,102,105,
+ 108,101,110,97,109,101,32,111,102,32,39,95,95,105,110,105,
+ 116,95,95,46,112,121,39,46,114,38,0,0,0,114,70,0,
+ 0,0,114,72,0,0,0,114,27,0,0,0,218,8,95,95,
+ 105,110,105,116,95,95,41,4,114,46,0,0,0,114,179,0,
+ 0,0,114,42,0,0,0,114,40,0,0,0,41,5,114,118,
+ 0,0,0,114,139,0,0,0,114,96,0,0,0,90,13,102,
+ 105,108,101,110,97,109,101,95,98,97,115,101,90,9,116,97,
+ 105,108,95,110,97,109,101,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,114,182,0,0,0,5,3,0,0,115,
+ 8,0,0,0,0,3,18,1,16,1,14,1,122,24,95,76,
+ 111,97,100,101,114,66,97,115,105,99,115,46,105,115,95,112,
+ 97,99,107,97,103,101,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,
+ 4,0,0,0,100,1,83,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,3,0,0,0,169,2,114,118,
+ 0,0,0,114,187,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,218,13,99,114,101,97,116,101,95,
+ 109,111,100,117,108,101,13,3,0,0,115,2,0,0,0,0,
+ 1,122,27,95,76,111,97,100,101,114,66,97,115,105,99,115,
+ 46,99,114,101,97,116,101,95,109,111,100,117,108,101,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,5,
+ 0,0,0,67,0,0,0,115,56,0,0,0,124,0,160,0,
+ 124,1,106,1,161,1,125,2,124,2,100,1,117,0,114,36,
+ 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,125,
+ 0,0,0,114,117,0,0,0,114,61,0,0,0,114,134,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,131,0,0,0,41,3,114,118,0,0,0,218,
+ 6,109,111,100,117,108,101,114,164,0,0,0,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,218,11,101,120,101,
+ 99,95,109,111,100,117,108,101,16,3,0,0,115,12,0,0,
+ 0,0,2,12,1,8,1,6,1,4,255,6,2,122,25,95,
+ 76,111,97,100,101,114,66,97,115,105,99,115,46,101,120,101,
+ 99,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,4,0,0,0,67,0,0,
+ 0,115,12,0,0,0,116,0,160,1,124,0,124,1,161,2,
+ 83,0,41,1,122,26,84,104,105,115,32,109,111,100,117,108,
+ 101,32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,
+ 41,2,114,134,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,118,0,0,
+ 0,114,139,0,0,0,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,218,11,108,111,97,100,95,109,111,100,117,
+ 108,101,24,3,0,0,115,2,0,0,0,0,2,122,25,95,
+ 76,111,97,100,101,114,66,97,115,105,99,115,46,108,111,97,
+ 100,95,109,111,100,117,108,101,78,41,8,114,125,0,0,0,
+ 114,124,0,0,0,114,126,0,0,0,114,127,0,0,0,114,
+ 182,0,0,0,114,212,0,0,0,114,217,0,0,0,114,220,
+ 0,0,0,114,3,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,114,208,0,0,0,0,3,0,0,
+ 115,10,0,0,0,8,2,4,3,8,8,8,3,8,8,114,
+ 208,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,3,0,0,0,64,0,0,0,115,74,0,
+ 0,0,101,0,90,1,100,0,90,2,100,1,100,2,132,0,
+ 90,3,100,3,100,4,132,0,90,4,100,5,100,6,132,0,
+ 90,5,100,7,100,8,132,0,90,6,100,9,100,10,132,0,
+ 90,7,100,11,100,12,156,1,100,13,100,14,132,2,90,8,
+ 100,15,100,16,132,0,90,9,100,17,83,0,41,18,218,12,
+ 83,111,117,114,99,101,76,111,97,100,101,114,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
+ 0,67,0,0,0,115,8,0,0,0,116,0,130,1,100,1,
+ 83,0,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,49,
+ 0,0,0,169,2,114,118,0,0,0,114,43,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,10,
+ 112,97,116,104,95,109,116,105,109,101,31,3,0,0,115,2,
+ 0,0,0,0,6,122,23,83,111,117,114,99,101,76,111,97,
+ 100,101,114,46,112,97,116,104,95,109,116,105,109,101,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
+ 0,0,0,67,0,0,0,115,14,0,0,0,100,1,124,0,
+ 160,0,124,1,161,1,105,1,83,0,41,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,
+ 169,0,0,0,41,1,114,223,0,0,0,114,222,0,0,0,
114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
- 13,99,114,101,97,116,101,95,109,111,100,117,108,101,12,3,
- 0,0,115,2,0,0,0,0,1,122,27,95,76,111,97,100,
- 101,114,66,97,115,105,99,115,46,99,114,101,97,116,101,95,
- 109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,3,0,0,0,5,0,0,0,67,0,0,0,115,
- 56,0,0,0,124,0,160,0,124,1,106,1,161,1,125,2,
- 124,2,100,1,117,0,114,36,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,125,0,0,0,114,117,0,0,0,
- 114,61,0,0,0,114,134,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,131,0,0,0,
- 41,3,114,118,0,0,0,218,6,109,111,100,117,108,101,114,
- 164,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,218,11,101,120,101,99,95,109,111,100,117,108,101,
- 15,3,0,0,115,12,0,0,0,0,2,12,1,8,1,6,
- 1,4,255,6,2,122,25,95,76,111,97,100,101,114,66,97,
- 115,105,99,115,46,101,120,101,99,95,109,111,100,117,108,101,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
- 0,4,0,0,0,67,0,0,0,115,12,0,0,0,116,0,
- 160,1,124,0,124,1,161,2,83,0,41,1,122,26,84,104,
- 105,115,32,109,111,100,117,108,101,32,105,115,32,100,101,112,
- 114,101,99,97,116,101,100,46,41,2,114,134,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,118,0,0,0,114,139,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,218,11,108,
- 111,97,100,95,109,111,100,117,108,101,23,3,0,0,115,2,
- 0,0,0,0,2,122,25,95,76,111,97,100,101,114,66,97,
- 115,105,99,115,46,108,111,97,100,95,109,111,100,117,108,101,
- 78,41,8,114,125,0,0,0,114,124,0,0,0,114,126,0,
- 0,0,114,127,0,0,0,114,182,0,0,0,114,212,0,0,
- 0,114,217,0,0,0,114,220,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
- 208,0,0,0,255,2,0,0,115,10,0,0,0,8,2,4,
- 3,8,8,8,3,8,8,114,208,0,0,0,99,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
- 0,64,0,0,0,115,74,0,0,0,101,0,90,1,100,0,
- 90,2,100,1,100,2,132,0,90,3,100,3,100,4,132,0,
- 90,4,100,5,100,6,132,0,90,5,100,7,100,8,132,0,
- 90,6,100,9,100,10,132,0,90,7,100,11,100,12,156,1,
- 100,13,100,14,132,2,90,8,100,15,100,16,132,0,90,9,
- 100,17,83,0,41,18,218,12,83,111,117,114,99,101,76,111,
- 97,100,101,114,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,1,0,0,0,67,0,0,0,115,8,0,
- 0,0,116,0,130,1,100,1,83,0,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,49,0,0,0,169,2,114,118,0,
- 0,0,114,43,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,218,10,112,97,116,104,95,109,116,105,
- 109,101,30,3,0,0,115,2,0,0,0,0,6,122,23,83,
- 111,117,114,99,101,76,111,97,100,101,114,46,112,97,116,104,
- 95,109,116,105,109,101,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,115,
- 14,0,0,0,100,1,124,0,160,0,124,1,161,1,105,1,
- 83,0,41,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,
+ 10,112,97,116,104,95,115,116,97,116,115,39,3,0,0,115,
+ 2,0,0,0,0,12,122,23,83,111,117,114,99,101,76,111,
+ 97,100,101,114,46,112,97,116,104,95,115,116,97,116,115,99,
+ 4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
+ 4,0,0,0,67,0,0,0,115,12,0,0,0,124,0,160,
+ 0,124,2,124,3,161,2,83,0,41,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,
+ 118,0,0,0,114,107,0,0,0,90,10,99,97,99,104,101,
+ 95,112,97,116,104,114,25,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,218,15,95,99,97,99,104,
+ 101,95,98,121,116,101,99,111,100,101,53,3,0,0,115,2,
+ 0,0,0,0,8,122,28,83,111,117,114,99,101,76,111,97,
+ 100,101,114,46,95,99,97,99,104,101,95,98,121,116,101,99,
+ 111,100,101,99,3,0,0,0,0,0,0,0,0,0,0,0,
+ 3,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
+ 0,100,1,83,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,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,169,0,0,0,41,1,114,223,
- 0,0,0,114,222,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,218,10,112,97,116,104,95,115,116,
- 97,116,115,38,3,0,0,115,2,0,0,0,0,12,122,23,
- 83,111,117,114,99,101,76,111,97,100,101,114,46,112,97,116,
- 104,95,115,116,97,116,115,99,4,0,0,0,0,0,0,0,
- 0,0,0,0,4,0,0,0,4,0,0,0,67,0,0,0,
- 115,12,0,0,0,124,0,160,0,124,2,124,3,161,2,83,
- 0,41,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,118,0,0,0,114,107,0,0,
- 0,90,10,99,97,99,104,101,95,112,97,116,104,114,25,0,
- 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,218,15,95,99,97,99,104,101,95,98,121,116,101,99,111,
- 100,101,52,3,0,0,115,2,0,0,0,0,8,122,28,83,
- 111,117,114,99,101,76,111,97,100,101,114,46,95,99,97,99,
- 104,101,95,98,121,116,101,99,111,100,101,99,3,0,0,0,
- 0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,
- 67,0,0,0,115,4,0,0,0,100,1,83,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,3,0,0,0,41,3,114,
- 118,0,0,0,114,43,0,0,0,114,25,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,114,225,0,
- 0,0,62,3,0,0,115,2,0,0,0,0,1,122,21,83,
- 111,117,114,99,101,76,111,97,100,101,114,46,115,101,116,95,
- 100,97,116,97,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,5,0,0,0,10,0,0,0,67,0,0,0,115,84,0,
- 0,0,124,0,160,0,124,1,161,1,125,2,122,14,124,0,
- 160,1,124,2,161,1,125,3,87,0,110,50,4,0,116,2,
- 121,74,1,0,125,4,1,0,122,26,116,3,100,1,124,1,
- 100,2,141,2,124,4,130,2,87,0,89,0,100,3,125,4,
- 126,4,110,10,100,3,125,4,126,4,48,0,48,0,116,4,
- 124,3,131,1,83,0,41,4,122,52,67,111,110,99,114,101,
+ 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,3,0,0,0,41,3,114,118,0,0,0,114,43,0,0,
+ 0,114,25,0,0,0,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,114,225,0,0,0,63,3,0,0,115,2,
+ 0,0,0,0,1,122,21,83,111,117,114,99,101,76,111,97,
+ 100,101,114,46,115,101,116,95,100,97,116,97,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,5,0,0,0,10,0,0,
+ 0,67,0,0,0,115,84,0,0,0,124,0,160,0,124,1,
+ 161,1,125,2,122,14,124,0,160,1,124,2,161,1,125,3,
+ 87,0,110,50,4,0,116,2,121,74,1,0,125,4,1,0,
+ 122,26,116,3,100,1,124,1,100,2,141,2,124,4,130,2,
+ 87,0,89,0,100,3,125,4,126,4,110,10,100,3,125,4,
+ 126,4,48,0,48,0,116,4,124,3,131,1,83,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,
+ 115,0,0,0,78,41,5,114,179,0,0,0,218,8,103,101,
+ 116,95,100,97,116,97,114,49,0,0,0,114,117,0,0,0,
+ 114,176,0,0,0,41,5,114,118,0,0,0,114,139,0,0,
+ 0,114,43,0,0,0,114,174,0,0,0,218,3,101,120,99,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
+ 10,103,101,116,95,115,111,117,114,99,101,70,3,0,0,115,
+ 20,0,0,0,0,2,10,1,2,1,14,1,14,1,4,1,
+ 2,255,4,1,2,255,24,2,122,23,83,111,117,114,99,101,
+ 76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,
+ 101,114,104,0,0,0,41,1,218,9,95,111,112,116,105,109,
+ 105,122,101,99,3,0,0,0,0,0,0,0,1,0,0,0,
+ 4,0,0,0,8,0,0,0,67,0,0,0,115,22,0,0,
+ 0,116,0,106,1,116,2,124,1,124,2,100,1,100,2,124,
+ 3,100,3,141,6,83,0,41,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,215,0,
+ 0,0,84,41,2,218,12,100,111,110,116,95,105,110,104,101,
+ 114,105,116,114,83,0,0,0,41,3,114,134,0,0,0,114,
+ 214,0,0,0,218,7,99,111,109,112,105,108,101,41,4,114,
+ 118,0,0,0,114,25,0,0,0,114,43,0,0,0,114,230,
+ 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,218,14,115,111,117,114,99,101,95,116,111,95,99,111,
+ 100,101,80,3,0,0,115,8,0,0,0,0,5,12,1,2,
+ 0,2,255,122,27,83,111,117,114,99,101,76,111,97,100,101,
+ 114,46,115,111,117,114,99,101,95,116,111,95,99,111,100,101,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,15,0,0,
+ 0,9,0,0,0,67,0,0,0,115,24,2,0,0,124,0,
+ 160,0,124,1,161,1,125,2,100,1,125,3,100,1,125,4,
+ 100,1,125,5,100,2,125,6,100,3,125,7,122,12,116,1,
+ 124,2,131,1,125,8,87,0,110,24,4,0,116,2,121,66,
+ 1,0,1,0,1,0,100,1,125,8,89,0,144,1,110,42,
+ 48,0,122,14,124,0,160,3,124,2,161,1,125,9,87,0,
+ 110,20,4,0,116,4,121,102,1,0,1,0,1,0,89,0,
+ 144,1,110,6,48,0,116,5,124,9,100,4,25,0,131,1,
+ 125,3,122,14,124,0,160,6,124,8,161,1,125,10,87,0,
+ 110,18,4,0,116,4,121,148,1,0,1,0,1,0,89,0,
+ 110,216,48,0,124,1,124,8,100,5,156,2,125,11,122,148,
+ 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,144,1,114,30,124,12,
+ 100,9,64,0,100,8,107,3,125,7,116,9,106,10,100,10,
+ 107,3,144,1,114,50,124,7,115,248,116,9,106,10,100,11,
+ 107,2,144,1,114,50,124,0,160,6,124,2,161,1,125,4,
+ 116,9,160,11,116,12,124,4,161,2,125,5,116,13,124,10,
+ 124,5,124,1,124,11,131,4,1,0,110,20,116,14,124,10,
+ 124,3,124,9,100,12,25,0,124,1,124,11,131,5,1,0,
+ 87,0,110,24,4,0,116,15,116,16,102,2,144,1,121,76,
+ 1,0,1,0,1,0,89,0,110,32,48,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,
+ 144,1,114,128,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,2,115,20,124,8,
+ 100,1,117,1,144,2,114,20,124,3,100,1,117,1,144,2,
+ 114,20,124,6,144,1,114,220,124,5,100,1,117,0,144,1,
+ 114,206,116,9,160,11,124,4,161,1,125,5,116,23,124,14,
+ 124,5,124,7,131,3,125,10,110,16,116,24,124,14,124,3,
+ 116,25,124,4,131,1,131,3,125,10,122,18,124,0,160,26,
+ 124,2,124,8,124,10,161,3,1,0,87,0,110,20,4,0,
+ 116,2,144,2,121,18,1,0,1,0,1,0,89,0,110,2,
+ 48,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,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,115,0,0,0,78,41,5,114,
- 179,0,0,0,218,8,103,101,116,95,100,97,116,97,114,49,
- 0,0,0,114,117,0,0,0,114,176,0,0,0,41,5,114,
- 118,0,0,0,114,139,0,0,0,114,43,0,0,0,114,174,
- 0,0,0,218,3,101,120,99,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,218,10,103,101,116,95,115,111,117,
- 114,99,101,69,3,0,0,115,20,0,0,0,0,2,10,1,
- 2,1,14,1,14,1,4,1,2,255,4,1,2,255,24,2,
- 122,23,83,111,117,114,99,101,76,111,97,100,101,114,46,103,
- 101,116,95,115,111,117,114,99,101,114,104,0,0,0,41,1,
- 218,9,95,111,112,116,105,109,105,122,101,99,3,0,0,0,
- 0,0,0,0,1,0,0,0,4,0,0,0,8,0,0,0,
- 67,0,0,0,115,22,0,0,0,116,0,106,1,116,2,124,
- 1,124,2,100,1,100,2,124,3,100,3,141,6,83,0,41,
- 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,215,0,0,0,84,41,2,218,12,100,
- 111,110,116,95,105,110,104,101,114,105,116,114,83,0,0,0,
- 41,3,114,134,0,0,0,114,214,0,0,0,218,7,99,111,
- 109,112,105,108,101,41,4,114,118,0,0,0,114,25,0,0,
- 0,114,43,0,0,0,114,230,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,218,14,115,111,117,114,
- 99,101,95,116,111,95,99,111,100,101,79,3,0,0,115,8,
- 0,0,0,0,5,12,1,2,0,2,255,122,27,83,111,117,
- 114,99,101,76,111,97,100,101,114,46,115,111,117,114,99,101,
- 95,116,111,95,99,111,100,101,99,2,0,0,0,0,0,0,
- 0,0,0,0,0,15,0,0,0,9,0,0,0,67,0,0,
- 0,115,24,2,0,0,124,0,160,0,124,1,161,1,125,2,
- 100,1,125,3,100,1,125,4,100,1,125,5,100,2,125,6,
- 100,3,125,7,122,12,116,1,124,2,131,1,125,8,87,0,
- 110,24,4,0,116,2,121,66,1,0,1,0,1,0,100,1,
- 125,8,89,0,144,1,110,42,48,0,122,14,124,0,160,3,
- 124,2,161,1,125,9,87,0,110,20,4,0,116,4,121,102,
- 1,0,1,0,1,0,89,0,144,1,110,6,48,0,116,5,
- 124,9,100,4,25,0,131,1,125,3,122,14,124,0,160,6,
- 124,8,161,1,125,10,87,0,110,18,4,0,116,4,121,148,
- 1,0,1,0,1,0,89,0,110,216,48,0,124,1,124,8,
- 100,5,156,2,125,11,122,148,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,144,1,114,30,124,12,100,9,64,0,100,8,107,3,
- 125,7,116,9,106,10,100,10,107,3,144,1,114,50,124,7,
- 115,248,116,9,106,10,100,11,107,2,144,1,114,50,124,0,
- 160,6,124,2,161,1,125,4,116,9,160,11,116,12,124,4,
- 161,2,125,5,116,13,124,10,124,5,124,1,124,11,131,4,
- 1,0,110,20,116,14,124,10,124,3,124,9,100,12,25,0,
- 124,1,124,11,131,5,1,0,87,0,110,24,4,0,116,15,
- 116,16,102,2,144,1,121,76,1,0,1,0,1,0,89,0,
- 110,32,48,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,144,1,114,128,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,2,115,20,124,8,100,1,117,1,144,2,114,20,
- 124,3,100,1,117,1,144,2,114,20,124,6,144,1,114,220,
- 124,5,100,1,117,0,144,1,114,206,116,9,160,11,124,4,
- 161,1,125,5,116,23,124,14,124,5,124,7,131,3,125,10,
- 110,16,116,24,124,14,124,3,116,25,124,4,131,1,131,3,
- 125,10,122,18,124,0,160,26,124,2,124,8,124,10,161,3,
- 1,0,87,0,110,20,4,0,116,2,144,2,121,18,1,0,
- 1,0,1,0,89,0,110,2,48,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,169,0,0,0,114,159,0,0,0,114,145,0,
- 0,0,114,38,0,0,0,114,72,0,0,0,114,27,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,116,0,0,0,114,106,0,0,
- 0,114,107,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,179,0,
- 0,0,114,97,0,0,0,114,81,0,0,0,114,224,0,0,
- 0,114,49,0,0,0,114,17,0,0,0,114,227,0,0,0,
- 114,152,0,0,0,218,10,109,101,109,111,114,121,118,105,101,
- 119,114,163,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,157,0,
- 0,0,218,17,95,82,65,87,95,77,65,71,73,67,95,78,
- 85,77,66,69,82,114,158,0,0,0,114,156,0,0,0,114,
- 117,0,0,0,114,150,0,0,0,114,134,0,0,0,114,149,
- 0,0,0,114,165,0,0,0,114,233,0,0,0,114,8,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,171,0,0,0,114,170,0,0,
- 0,114,22,0,0,0,114,226,0,0,0,41,15,114,118,0,
- 0,0,114,139,0,0,0,114,107,0,0,0,114,154,0,0,
- 0,114,174,0,0,0,114,157,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,106,0,0,0,218,2,115,116,114,25,
- 0,0,0,114,151,0,0,0,114,82,0,0,0,90,10,98,
- 121,116,101,115,95,100,97,116,97,90,11,99,111,100,101,95,
- 111,98,106,101,99,116,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,114,213,0,0,0,87,3,0,0,115,152,
- 0,0,0,0,7,10,1,4,1,4,1,4,1,4,1,4,
- 1,2,1,12,1,12,1,12,2,2,1,14,1,12,1,8,
- 2,12,1,2,1,14,1,12,1,6,3,2,1,2,254,6,
- 4,2,1,12,1,16,1,12,1,6,1,12,1,12,1,2,
- 255,2,2,8,254,4,3,10,1,4,1,2,1,2,254,4,
- 4,8,1,2,255,6,3,2,1,2,1,2,1,6,1,2,
- 1,2,251,8,7,18,1,6,2,8,1,2,255,4,2,6,
- 1,2,1,2,254,6,3,10,1,10,1,12,1,12,1,18,
- 1,6,255,4,2,6,1,10,1,10,1,14,2,6,1,6,
- 255,4,2,2,1,18,1,14,1,6,1,122,21,83,111,117,
- 114,99,101,76,111,97,100,101,114,46,103,101,116,95,99,111,
- 100,101,78,41,10,114,125,0,0,0,114,124,0,0,0,114,
- 126,0,0,0,114,223,0,0,0,114,224,0,0,0,114,226,
- 0,0,0,114,225,0,0,0,114,229,0,0,0,114,233,0,
- 0,0,114,213,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,114,221,0,0,0,
- 28,3,0,0,115,14,0,0,0,8,2,8,8,8,14,8,
- 10,8,7,8,10,14,8,114,221,0,0,0,99,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
- 0,0,0,0,0,115,124,0,0,0,101,0,90,1,100,0,
- 90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,
- 100,5,132,0,90,5,100,6,100,7,132,0,90,6,101,7,
- 135,0,102,1,100,8,100,9,132,8,131,1,90,8,101,7,
- 100,10,100,11,132,0,131,1,90,9,100,12,100,13,132,0,
- 90,10,101,7,100,14,100,15,132,0,131,1,90,11,100,16,
- 100,17,132,0,90,12,100,18,100,19,132,0,90,13,100,20,
- 100,21,132,0,90,14,100,22,100,23,132,0,90,15,135,0,
- 4,0,90,16,83,0,41,24,218,10,70,105,108,101,76,111,
- 97,100,101,114,122,103,66,97,115,101,32,102,105,108,101,32,
- 108,111,97,100,101,114,32,99,108,97,115,115,32,119,104,105,
- 99,104,32,105,109,112,108,101,109,101,110,116,115,32,116,104,
- 101,32,108,111,97,100,101,114,32,112,114,111,116,111,99,111,
- 108,32,109,101,116,104,111,100,115,32,116,104,97,116,10,32,
- 32,32,32,114,101,113,117,105,114,101,32,102,105,108,101,32,
- 115,121,115,116,101,109,32,117,115,97,103,101,46,99,3,0,
- 0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,
- 0,0,67,0,0,0,115,16,0,0,0,124,1,124,0,95,
- 0,124,2,124,0,95,1,100,1,83,0,41,2,122,75,67,
- 97,99,104,101,32,116,104,101,32,109,111,100,117,108,101,32,
- 110,97,109,101,32,97,110,100,32,116,104,101,32,112,97,116,
- 104,32,116,111,32,116,104,101,32,102,105,108,101,32,102,111,
- 117,110,100,32,98,121,32,116,104,101,10,32,32,32,32,32,
- 32,32,32,102,105,110,100,101,114,46,78,114,159,0,0,0,
- 41,3,114,118,0,0,0,114,139,0,0,0,114,43,0,0,
- 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 114,209,0,0,0,177,3,0,0,115,4,0,0,0,0,3,
- 6,1,122,19,70,105,108,101,76,111,97,100,101,114,46,95,
- 95,105,110,105,116,95,95,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,
- 115,24,0,0,0,124,0,106,0,124,1,106,0,107,2,111,
- 22,124,0,106,1,124,1,106,1,107,2,83,0,114,109,0,
- 0,0,169,2,218,9,95,95,99,108,97,115,115,95,95,114,
- 131,0,0,0,169,2,114,118,0,0,0,90,5,111,116,104,
- 101,114,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,218,6,95,95,101,113,95,95,183,3,0,0,115,6,0,
- 0,0,0,1,12,1,10,255,122,17,70,105,108,101,76,111,
- 97,100,101,114,46,95,95,101,113,95,95,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,
- 67,0,0,0,115,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,109,0,
- 0,0,169,3,218,4,104,97,115,104,114,116,0,0,0,114,
- 43,0,0,0,169,1,114,118,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,218,8,95,95,104,97,
- 115,104,95,95,187,3,0,0,115,2,0,0,0,0,1,122,
- 19,70,105,108,101,76,111,97,100,101,114,46,95,95,104,97,
- 115,104,95,95,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,3,0,0,0,3,0,0,0,115,16,0,
- 0,0,116,0,116,1,124,0,131,2,160,2,124,1,161,1,
- 83,0,41,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,239,0,0,0,114,220,0,0,0,114,219,0,
- 0,0,169,1,114,241,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,114,220,0,0,0,190,3,0,0,115,2,0,0,
- 0,0,10,122,22,70,105,108,101,76,111,97,100,101,114,46,
- 108,111,97,100,95,109,111,100,117,108,101,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
- 67,0,0,0,115,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,47,0,
- 0,0,114,219,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,114,179,0,0,0,202,3,0,0,115,
- 2,0,0,0,0,3,122,23,70,105,108,101,76,111,97,100,
- 101,114,46,103,101,116,95,102,105,108,101,110,97,109,101,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
- 8,0,0,0,67,0,0,0,115,126,0,0,0,116,0,124,
- 0,116,1,116,2,102,2,131,2,114,70,116,3,160,4,116,
- 5,124,1,131,1,161,1,143,24,125,2,124,2,160,6,161,
- 0,87,0,2,0,100,1,4,0,4,0,131,3,1,0,83,
- 0,49,0,115,58,48,0,1,0,1,0,1,0,89,0,1,
- 0,110,52,116,3,160,7,124,1,100,2,161,2,143,24,125,
- 2,124,2,160,6,161,0,87,0,2,0,100,1,4,0,4,
- 0,131,3,1,0,83,0,49,0,115,112,48,0,1,0,1,
- 0,1,0,89,0,1,0,100,1,83,0,41,3,122,39,82,
- 101,116,117,114,110,32,116,104,101,32,100,97,116,97,32,102,
- 114,111,109,32,112,97,116,104,32,97,115,32,114,97,119,32,
- 98,121,116,101,115,46,78,218,1,114,41,8,114,161,0,0,
- 0,114,221,0,0,0,218,19,69,120,116,101,110,115,105,111,
- 110,70,105,108,101,76,111,97,100,101,114,114,63,0,0,0,
- 90,9,111,112,101,110,95,99,111,100,101,114,84,0,0,0,
- 90,4,114,101,97,100,114,64,0,0,0,41,3,114,118,0,
- 0,0,114,43,0,0,0,114,67,0,0,0,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,114,227,0,0,0,
- 207,3,0,0,115,10,0,0,0,0,2,14,1,16,1,40,
- 2,14,1,122,19,70,105,108,101,76,111,97,100,101,114,46,
- 103,101,116,95,100,97,116,97,99,2,0,0,0,0,0,0,
- 0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,
- 0,115,18,0,0,0,124,0,160,0,124,1,161,1,114,14,
- 124,0,83,0,100,0,83,0,114,109,0,0,0,41,1,114,
- 182,0,0,0,169,2,114,118,0,0,0,114,216,0,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
- 19,103,101,116,95,114,101,115,111,117,114,99,101,95,114,101,
- 97,100,101,114,218,3,0,0,115,6,0,0,0,0,2,10,
- 1,4,1,122,30,70,105,108,101,76,111,97,100,101,114,46,
- 103,101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,
- 100,101,114,99,2,0,0,0,0,0,0,0,0,0,0,0,
- 3,0,0,0,4,0,0,0,67,0,0,0,115,32,0,0,
- 0,116,0,116,1,124,0,106,2,131,1,100,1,25,0,124,
- 1,131,2,125,2,116,3,160,4,124,2,100,2,161,2,83,
- 0,41,3,78,114,72,0,0,0,114,251,0,0,0,41,5,
- 114,37,0,0,0,114,46,0,0,0,114,43,0,0,0,114,
- 63,0,0,0,114,64,0,0,0,169,3,114,118,0,0,0,
- 90,8,114,101,115,111,117,114,99,101,114,43,0,0,0,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,13,
- 111,112,101,110,95,114,101,115,111,117,114,99,101,224,3,0,
- 0,115,4,0,0,0,0,1,20,1,122,24,70,105,108,101,
- 76,111,97,100,101,114,46,111,112,101,110,95,114,101,115,111,
- 117,114,99,101,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,3,0,0,0,3,0,0,0,67,0,0,0,115,38,0,
- 0,0,124,0,160,0,124,1,161,1,115,14,116,1,130,1,
- 116,2,116,3,124,0,106,4,131,1,100,1,25,0,124,1,
- 131,2,125,2,124,2,83,0,169,2,78,114,72,0,0,0,
- 41,5,218,11,105,115,95,114,101,115,111,117,114,99,101,218,
- 17,70,105,108,101,78,111,116,70,111,117,110,100,69,114,114,
- 111,114,114,37,0,0,0,114,46,0,0,0,114,43,0,0,
- 0,114,255,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,218,13,114,101,115,111,117,114,99,101,95,
- 112,97,116,104,228,3,0,0,115,8,0,0,0,0,1,10,
- 1,4,1,20,1,122,24,70,105,108,101,76,111,97,100,101,
- 114,46,114,101,115,111,117,114,99,101,95,112,97,116,104,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
- 3,0,0,0,67,0,0,0,115,40,0,0,0,116,0,124,
- 1,118,0,114,12,100,1,83,0,116,1,116,2,124,0,106,
- 3,131,1,100,2,25,0,124,1,131,2,125,2,116,4,124,
- 2,131,1,83,0,41,3,78,70,114,72,0,0,0,41,5,
- 114,34,0,0,0,114,37,0,0,0,114,46,0,0,0,114,
- 43,0,0,0,114,53,0,0,0,169,3,114,118,0,0,0,
- 114,116,0,0,0,114,43,0,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,114,2,1,0,0,234,3,
- 0,0,115,8,0,0,0,0,1,8,1,4,1,20,1,122,
- 22,70,105,108,101,76,111,97,100,101,114,46,105,115,95,114,
- 101,115,111,117,114,99,101,99,1,0,0,0,0,0,0,0,
- 0,0,0,0,1,0,0,0,5,0,0,0,67,0,0,0,
- 115,24,0,0,0,116,0,116,1,160,2,116,3,124,0,106,
- 4,131,1,100,1,25,0,161,1,131,1,83,0,114,1,1,
- 0,0,41,5,218,4,105,116,101,114,114,2,0,0,0,218,
- 7,108,105,115,116,100,105,114,114,46,0,0,0,114,43,0,
- 0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,218,8,99,111,110,116,101,110,116,115,
- 240,3,0,0,115,2,0,0,0,0,1,122,19,70,105,108,
- 101,76,111,97,100,101,114,46,99,111,110,116,101,110,116,115,
- 41,17,114,125,0,0,0,114,124,0,0,0,114,126,0,0,
- 0,114,127,0,0,0,114,209,0,0,0,114,243,0,0,0,
- 114,247,0,0,0,114,136,0,0,0,114,220,0,0,0,114,
- 179,0,0,0,114,227,0,0,0,114,254,0,0,0,114,0,
- 1,0,0,114,4,1,0,0,114,2,1,0,0,114,8,1,
- 0,0,90,13,95,95,99,108,97,115,115,99,101,108,108,95,
- 95,114,3,0,0,0,114,3,0,0,0,114,249,0,0,0,
- 114,6,0,0,0,114,239,0,0,0,172,3,0,0,115,30,
- 0,0,0,8,2,4,3,8,6,8,4,8,3,2,1,14,
- 11,2,1,10,4,8,11,2,1,10,5,8,4,8,6,8,
- 6,114,239,0,0,0,99,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,
- 46,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
- 100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,
- 100,6,100,7,156,1,100,8,100,9,132,2,90,6,100,10,
- 83,0,41,11,218,16,83,111,117,114,99,101,70,105,108,101,
- 76,111,97,100,101,114,122,62,67,111,110,99,114,101,116,101,
- 32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,
- 111,102,32,83,111,117,114,99,101,76,111,97,100,101,114,32,
- 117,115,105,110,103,32,116,104,101,32,102,105,108,101,32,115,
- 121,115,116,101,109,46,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,
- 22,0,0,0,116,0,124,1,131,1,125,2,124,2,106,1,
- 124,2,106,2,100,1,156,2,83,0,41,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,169,0,0,0,114,234,0,0,0,41,3,114,48,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,118,0,0,0,114,43,0,0,
- 0,114,238,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,114,224,0,0,0,248,3,0,0,115,4,
- 0,0,0,0,2,8,1,122,27,83,111,117,114,99,101,70,
- 105,108,101,76,111,97,100,101,114,46,112,97,116,104,95,115,
- 116,97,116,115,99,4,0,0,0,0,0,0,0,0,0,0,
- 0,5,0,0,0,5,0,0,0,67,0,0,0,115,24,0,
- 0,0,116,0,124,1,131,1,125,4,124,0,106,1,124,2,
- 124,3,124,4,100,1,141,3,83,0,41,2,78,169,1,218,
- 5,95,109,111,100,101,41,2,114,114,0,0,0,114,225,0,
- 0,0,41,5,114,118,0,0,0,114,107,0,0,0,114,106,
- 0,0,0,114,25,0,0,0,114,51,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,226,0,0,
- 0,253,3,0,0,115,4,0,0,0,0,2,8,1,122,32,
- 83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,114,
- 46,95,99,97,99,104,101,95,98,121,116,101,99,111,100,101,
- 114,59,0,0,0,114,11,1,0,0,99,3,0,0,0,0,
- 0,0,0,1,0,0,0,9,0,0,0,11,0,0,0,67,
- 0,0,0,115,252,0,0,0,116,0,124,1,131,1,92,2,
- 125,4,125,5,103,0,125,6,124,4,114,52,116,1,124,4,
- 131,1,115,52,116,0,124,4,131,1,92,2,125,4,125,7,
- 124,6,160,2,124,7,161,1,1,0,113,16,116,3,124,6,
- 131,1,68,0,93,104,125,7,116,4,124,4,124,7,131,2,
- 125,4,122,14,116,5,160,6,124,4,161,1,1,0,87,0,
- 113,60,4,0,116,7,121,110,1,0,1,0,1,0,89,0,
- 113,60,89,0,113,60,4,0,116,8,121,162,1,0,125,8,
- 1,0,122,30,116,9,160,10,100,1,124,4,124,8,161,3,
- 1,0,87,0,89,0,100,2,125,8,126,8,1,0,100,2,
- 83,0,100,2,125,8,126,8,48,0,48,0,113,60,122,28,
- 116,11,124,1,124,2,124,3,131,3,1,0,116,9,160,10,
- 100,3,124,1,161,2,1,0,87,0,110,52,4,0,116,8,
- 144,0,121,246,1,0,125,8,1,0,122,26,116,9,160,10,
- 100,1,124,1,124,8,161,3,1,0,87,0,89,0,100,2,
- 125,8,126,8,110,10,100,2,125,8,126,8,48,0,48,0,
- 100,2,83,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,46,0,0,0,114,55,0,0,0,114,186,0,0,0,
- 114,41,0,0,0,114,37,0,0,0,114,2,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,49,0,0,0,114,134,0,0,
- 0,114,149,0,0,0,114,68,0,0,0,41,9,114,118,0,
- 0,0,114,43,0,0,0,114,25,0,0,0,114,12,1,0,
- 0,218,6,112,97,114,101,110,116,114,96,0,0,0,114,36,
- 0,0,0,114,32,0,0,0,114,228,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,225,0,0,
- 0,2,4,0,0,115,48,0,0,0,0,2,12,1,4,2,
- 12,1,12,1,12,2,12,1,10,1,2,1,14,1,12,2,
- 8,1,14,3,6,1,2,0,2,255,4,2,28,1,2,1,
- 12,1,16,1,16,2,8,1,2,255,122,25,83,111,117,114,
- 99,101,70,105,108,101,76,111,97,100,101,114,46,115,101,116,
- 95,100,97,116,97,78,41,7,114,125,0,0,0,114,124,0,
- 0,0,114,126,0,0,0,114,127,0,0,0,114,224,0,0,
- 0,114,226,0,0,0,114,225,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
- 9,1,0,0,244,3,0,0,115,8,0,0,0,8,2,4,
- 2,8,5,8,5,114,9,1,0,0,99,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,
- 0,0,0,115,32,0,0,0,101,0,90,1,100,0,90,2,
- 100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,5,
- 132,0,90,5,100,6,83,0,41,7,218,20,83,111,117,114,
- 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,
- 122,45,76,111,97,100,101,114,32,119,104,105,99,104,32,104,
- 97,110,100,108,101,115,32,115,111,117,114,99,101,108,101,115,
- 115,32,102,105,108,101,32,105,109,112,111,114,116,115,46,99,
- 2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,
- 5,0,0,0,67,0,0,0,115,68,0,0,0,124,0,160,
- 0,124,1,161,1,125,2,124,0,160,1,124,2,161,1,125,
- 3,124,1,124,2,100,1,156,2,125,4,116,2,124,3,124,
- 1,124,4,131,3,1,0,116,3,116,4,124,3,131,1,100,
- 2,100,0,133,2,25,0,124,1,124,2,100,3,141,3,83,
- 0,41,4,78,114,159,0,0,0,114,145,0,0,0,41,2,
- 114,116,0,0,0,114,106,0,0,0,41,5,114,179,0,0,
- 0,114,227,0,0,0,114,152,0,0,0,114,165,0,0,0,
- 114,235,0,0,0,41,5,114,118,0,0,0,114,139,0,0,
- 0,114,43,0,0,0,114,25,0,0,0,114,151,0,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
- 213,0,0,0,37,4,0,0,115,22,0,0,0,0,1,10,
- 1,10,4,2,1,2,254,6,4,12,1,2,1,14,1,2,
- 1,2,253,122,29,83,111,117,114,99,101,108,101,115,115,70,
- 105,108,101,76,111,97,100,101,114,46,103,101,116,95,99,111,
- 100,101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,
- 100,1,83,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,3,0,0,0,114,219,0,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,114,229,0,0,0,53,4,
- 0,0,115,2,0,0,0,0,2,122,31,83,111,117,114,99,
- 101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,46,
- 103,101,116,95,115,111,117,114,99,101,78,41,6,114,125,0,
- 0,0,114,124,0,0,0,114,126,0,0,0,114,127,0,0,
- 0,114,213,0,0,0,114,229,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
- 15,1,0,0,33,4,0,0,115,6,0,0,0,8,2,4,
- 2,8,16,114,15,1,0,0,99,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,3,0,0,0,64,0,0,
- 0,115,92,0,0,0,101,0,90,1,100,0,90,2,100,1,
- 90,3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,
- 90,5,100,6,100,7,132,0,90,6,100,8,100,9,132,0,
- 90,7,100,10,100,11,132,0,90,8,100,12,100,13,132,0,
- 90,9,100,14,100,15,132,0,90,10,100,16,100,17,132,0,
- 90,11,101,12,100,18,100,19,132,0,131,1,90,13,100,20,
- 83,0,41,21,114,252,0,0,0,122,93,76,111,97,100,101,
- 114,32,102,111,114,32,101,120,116,101,110,115,105,111,110,32,
- 109,111,100,117,108,101,115,46,10,10,32,32,32,32,84,104,
- 101,32,99,111,110,115,116,114,117,99,116,111,114,32,105,115,
- 32,100,101,115,105,103,110,101,100,32,116,111,32,119,111,114,
- 107,32,119,105,116,104,32,70,105,108,101,70,105,110,100,101,
- 114,46,10,10,32,32,32,32,99,3,0,0,0,0,0,0,
- 0,0,0,0,0,3,0,0,0,2,0,0,0,67,0,0,
- 0,115,16,0,0,0,124,1,124,0,95,0,124,2,124,0,
- 95,1,100,0,83,0,114,109,0,0,0,114,159,0,0,0,
- 114,5,1,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,209,0,0,0,70,4,0,0,115,4,0,
- 0,0,0,1,6,1,122,28,69,120,116,101,110,115,105,111,
- 110,70,105,108,101,76,111,97,100,101,114,46,95,95,105,110,
- 105,116,95,95,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,2,0,0,0,67,0,0,0,115,24,0,
- 0,0,124,0,106,0,124,1,106,0,107,2,111,22,124,0,
- 106,1,124,1,106,1,107,2,83,0,114,109,0,0,0,114,
- 240,0,0,0,114,242,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,114,243,0,0,0,74,4,0,
- 0,115,6,0,0,0,0,1,12,1,10,255,122,26,69,120,
- 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,
- 114,46,95,95,101,113,95,95,99,1,0,0,0,0,0,0,
- 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
- 0,115,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,109,0,0,0,114,
- 244,0,0,0,114,246,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,114,247,0,0,0,78,4,0,
- 0,115,2,0,0,0,0,1,122,28,69,120,116,101,110,115,
- 105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,95,
- 104,97,115,104,95,95,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,3,0,0,0,5,0,0,0,67,0,0,0,115,
- 36,0,0,0,116,0,160,1,116,2,106,3,124,1,161,2,
- 125,2,116,0,160,4,100,1,124,1,106,5,124,0,106,6,
- 161,3,1,0,124,2,83,0,41,2,122,38,67,114,101,97,
- 116,101,32,97,110,32,117,110,105,116,105,97,108,105,122,101,
- 100,32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,
- 108,101,122,38,101,120,116,101,110,115,105,111,110,32,109,111,
- 100,117,108,101,32,123,33,114,125,32,108,111,97,100,101,100,
- 32,102,114,111,109,32,123,33,114,125,41,7,114,134,0,0,
- 0,114,214,0,0,0,114,163,0,0,0,90,14,99,114,101,
- 97,116,101,95,100,121,110,97,109,105,99,114,149,0,0,0,
- 114,116,0,0,0,114,43,0,0,0,41,3,114,118,0,0,
- 0,114,187,0,0,0,114,216,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,212,0,0,0,81,
- 4,0,0,115,18,0,0,0,0,2,4,1,4,0,2,255,
- 4,2,6,1,4,0,4,255,4,2,122,33,69,120,116,101,
- 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
- 99,114,101,97,116,101,95,109,111,100,117,108,101,99,2,0,
- 0,0,0,0,0,0,0,0,0,0,2,0,0,0,5,0,
- 0,0,67,0,0,0,115,36,0,0,0,116,0,160,1,116,
- 2,106,3,124,1,161,2,1,0,116,0,160,4,100,1,124,
- 0,106,5,124,0,106,6,161,3,1,0,100,2,83,0,41,
- 3,122,30,73,110,105,116,105,97,108,105,122,101,32,97,110,
- 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,
- 101,122,40,101,120,116,101,110,115,105,111,110,32,109,111,100,
- 117,108,101,32,123,33,114,125,32,101,120,101,99,117,116,101,
- 100,32,102,114,111,109,32,123,33,114,125,78,41,7,114,134,
- 0,0,0,114,214,0,0,0,114,163,0,0,0,90,12,101,
- 120,101,99,95,100,121,110,97,109,105,99,114,149,0,0,0,
- 114,116,0,0,0,114,43,0,0,0,114,253,0,0,0,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,217,
- 0,0,0,89,4,0,0,115,10,0,0,0,0,2,14,1,
- 6,1,4,0,4,255,122,31,69,120,116,101,110,115,105,111,
- 110,70,105,108,101,76,111,97,100,101,114,46,101,120,101,99,
- 95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,2,0,0,0,4,0,0,0,3,0,0,0,
- 115,36,0,0,0,116,0,124,0,106,1,131,1,100,1,25,
- 0,137,0,116,2,135,0,102,1,100,2,100,3,132,8,116,
- 3,68,0,131,1,131,1,83,0,41,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,38,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 2,0,0,0,4,0,0,0,51,0,0,0,115,26,0,0,
- 0,124,0,93,18,125,1,136,0,100,0,124,1,23,0,107,
- 2,86,0,1,0,113,2,100,1,83,0,41,2,114,209,0,
- 0,0,78,114,3,0,0,0,169,2,114,31,0,0,0,218,
- 6,115,117,102,102,105,120,169,1,90,9,102,105,108,101,95,
- 110,97,109,101,114,3,0,0,0,114,6,0,0,0,218,9,
- 60,103,101,110,101,120,112,114,62,98,4,0,0,115,4,0,
- 0,0,4,1,2,255,122,49,69,120,116,101,110,115,105,111,
- 110,70,105,108,101,76,111,97,100,101,114,46,105,115,95,112,
- 97,99,107,97,103,101,46,60,108,111,99,97,108,115,62,46,
- 60,103,101,110,101,120,112,114,62,41,4,114,46,0,0,0,
- 114,43,0,0,0,218,3,97,110,121,218,18,69,88,84,69,
- 78,83,73,79,78,95,83,85,70,70,73,88,69,83,114,219,
- 0,0,0,114,3,0,0,0,114,18,1,0,0,114,6,0,
- 0,0,114,182,0,0,0,95,4,0,0,115,8,0,0,0,
- 0,2,14,1,12,1,2,255,122,30,69,120,116,101,110,115,
- 105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,
- 95,112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,
- 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,
- 0,115,4,0,0,0,100,1,83,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,3,
- 0,0,0,114,219,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,114,213,0,0,0,101,4,0,0,
- 115,2,0,0,0,0,2,122,28,69,120,116,101,110,115,105,
- 111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,
- 95,99,111,100,101,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,
- 0,0,0,100,1,83,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,3,0,0,0,114,219,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,229,0,0,0,105,
- 4,0,0,115,2,0,0,0,0,2,122,30,69,120,116,101,
- 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
- 103,101,116,95,115,111,117,114,99,101,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
- 0,0,0,115,6,0,0,0,124,0,106,0,83,0,114,250,
- 0,0,0,114,47,0,0,0,114,219,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,179,0,0,
- 0,109,4,0,0,115,2,0,0,0,0,3,122,32,69,120,
- 116,101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,
- 114,46,103,101,116,95,102,105,108,101,110,97,109,101,78,41,
- 14,114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,
- 114,127,0,0,0,114,209,0,0,0,114,243,0,0,0,114,
- 247,0,0,0,114,212,0,0,0,114,217,0,0,0,114,182,
- 0,0,0,114,213,0,0,0,114,229,0,0,0,114,136,0,
- 0,0,114,179,0,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,114,252,0,0,0,
- 62,4,0,0,115,22,0,0,0,8,2,4,6,8,4,8,
- 4,8,3,8,8,8,6,8,6,8,4,8,4,2,1,114,
- 252,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,2,0,0,0,64,0,0,0,115,104,0,
+ 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,169,0,0,0,
+ 114,159,0,0,0,114,145,0,0,0,114,38,0,0,0,114,
+ 72,0,0,0,114,27,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,
+ 116,0,0,0,114,106,0,0,0,114,107,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,179,0,0,0,114,97,0,0,0,114,
+ 81,0,0,0,114,224,0,0,0,114,49,0,0,0,114,17,
+ 0,0,0,114,227,0,0,0,114,152,0,0,0,218,10,109,
+ 101,109,111,114,121,118,105,101,119,114,163,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,157,0,0,0,218,17,95,82,65,87,
+ 95,77,65,71,73,67,95,78,85,77,66,69,82,114,158,0,
+ 0,0,114,156,0,0,0,114,117,0,0,0,114,150,0,0,
+ 0,114,134,0,0,0,114,149,0,0,0,114,165,0,0,0,
+ 114,233,0,0,0,114,8,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,
+ 171,0,0,0,114,170,0,0,0,114,22,0,0,0,114,226,
+ 0,0,0,41,15,114,118,0,0,0,114,139,0,0,0,114,
+ 107,0,0,0,114,154,0,0,0,114,174,0,0,0,114,157,
+ 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,106,0,
+ 0,0,218,2,115,116,114,25,0,0,0,114,151,0,0,0,
+ 114,82,0,0,0,90,10,98,121,116,101,115,95,100,97,116,
+ 97,90,11,99,111,100,101,95,111,98,106,101,99,116,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,114,213,0,
+ 0,0,88,3,0,0,115,152,0,0,0,0,7,10,1,4,
+ 1,4,1,4,1,4,1,4,1,2,1,12,1,12,1,12,
+ 2,2,1,14,1,12,1,8,2,12,1,2,1,14,1,12,
+ 1,6,3,2,1,2,254,6,4,2,1,12,1,16,1,12,
+ 1,6,1,12,1,12,1,2,255,2,2,8,254,4,3,10,
+ 1,4,1,2,1,2,254,4,4,8,1,2,255,6,3,2,
+ 1,2,1,2,1,6,1,2,1,2,251,8,7,18,1,6,
+ 2,8,1,2,255,4,2,6,1,2,1,2,254,6,3,10,
+ 1,10,1,12,1,12,1,18,1,6,255,4,2,6,1,10,
+ 1,10,1,14,2,6,1,6,255,4,2,2,1,18,1,14,
+ 1,6,1,122,21,83,111,117,114,99,101,76,111,97,100,101,
+ 114,46,103,101,116,95,99,111,100,101,78,41,10,114,125,0,
+ 0,0,114,124,0,0,0,114,126,0,0,0,114,223,0,0,
+ 0,114,224,0,0,0,114,226,0,0,0,114,225,0,0,0,
+ 114,229,0,0,0,114,233,0,0,0,114,213,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,114,221,0,0,0,29,3,0,0,115,14,0,0,
+ 0,8,2,8,8,8,14,8,10,8,7,8,10,14,8,114,
+ 221,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,4,0,0,0,0,0,0,0,115,124,0,
0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,
100,3,132,0,90,4,100,4,100,5,132,0,90,5,100,6,
- 100,7,132,0,90,6,100,8,100,9,132,0,90,7,100,10,
- 100,11,132,0,90,8,100,12,100,13,132,0,90,9,100,14,
- 100,15,132,0,90,10,100,16,100,17,132,0,90,11,100,18,
- 100,19,132,0,90,12,100,20,100,21,132,0,90,13,100,22,
- 100,23,132,0,90,14,100,24,83,0,41,25,218,14,95,78,
- 97,109,101,115,112,97,99,101,80,97,116,104,97,38,1,0,
- 0,82,101,112,114,101,115,101,110,116,115,32,97,32,110,97,
- 109,101,115,112,97,99,101,32,112,97,99,107,97,103,101,39,
- 115,32,112,97,116,104,46,32,32,73,116,32,117,115,101,115,
- 32,116,104,101,32,109,111,100,117,108,101,32,110,97,109,101,
- 10,32,32,32,32,116,111,32,102,105,110,100,32,105,116,115,
- 32,112,97,114,101,110,116,32,109,111,100,117,108,101,44,32,
- 97,110,100,32,102,114,111,109,32,116,104,101,114,101,32,105,
- 116,32,108,111,111,107,115,32,117,112,32,116,104,101,32,112,
- 97,114,101,110,116,39,115,10,32,32,32,32,95,95,112,97,
- 116,104,95,95,46,32,32,87,104,101,110,32,116,104,105,115,
- 32,99,104,97,110,103,101,115,44,32,116,104,101,32,109,111,
- 100,117,108,101,39,115,32,111,119,110,32,112,97,116,104,32,
- 105,115,32,114,101,99,111,109,112,117,116,101,100,44,10,32,
- 32,32,32,117,115,105,110,103,32,112,97,116,104,95,102,105,
- 110,100,101,114,46,32,32,70,111,114,32,116,111,112,45,108,
- 101,118,101,108,32,109,111,100,117,108,101,115,44,32,116,104,
- 101,32,112,97,114,101,110,116,32,109,111,100,117,108,101,39,
- 115,32,112,97,116,104,10,32,32,32,32,105,115,32,115,121,
- 115,46,112,97,116,104,46,99,4,0,0,0,0,0,0,0,
- 0,0,0,0,4,0,0,0,3,0,0,0,67,0,0,0,
- 115,36,0,0,0,124,1,124,0,95,0,124,2,124,0,95,
- 1,116,2,124,0,160,3,161,0,131,1,124,0,95,4,124,
- 3,124,0,95,5,100,0,83,0,114,109,0,0,0,41,6,
- 218,5,95,110,97,109,101,218,5,95,112,97,116,104,114,111,
- 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,118,0,0,0,114,116,0,
- 0,0,114,43,0,0,0,90,11,112,97,116,104,95,102,105,
- 110,100,101,114,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,114,209,0,0,0,122,4,0,0,115,8,0,0,
- 0,0,1,6,1,6,1,14,1,122,23,95,78,97,109,101,
- 115,112,97,99,101,80,97,116,104,46,95,95,105,110,105,116,
- 95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,4,
- 0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,
- 124,0,106,0,160,1,100,1,161,1,92,3,125,1,125,2,
- 125,3,124,2,100,2,107,2,114,30,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,70,0,0,0,114,39,0,
- 0,0,41,2,114,8,0,0,0,114,43,0,0,0,90,8,
- 95,95,112,97,116,104,95,95,41,2,114,23,1,0,0,114,
- 40,0,0,0,41,4,114,118,0,0,0,114,14,1,0,0,
- 218,3,100,111,116,90,2,109,101,114,3,0,0,0,114,3,
- 0,0,0,114,6,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,128,4,0,0,115,8,0,0,0,0,2,18,1,8,2,
- 4,3,122,38,95,78,97,109,101,115,112,97,99,101,80,97,
- 116,104,46,95,102,105,110,100,95,112,97,114,101,110,116,95,
- 112,97,116,104,95,110,97,109,101,115,99,1,0,0,0,0,
- 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,
- 0,0,0,115,28,0,0,0,124,0,160,0,161,0,92,2,
- 125,1,125,2,116,1,116,2,106,3,124,1,25,0,124,2,
- 131,2,83,0,114,109,0,0,0,41,4,114,30,1,0,0,
- 114,130,0,0,0,114,8,0,0,0,218,7,109,111,100,117,
- 108,101,115,41,3,114,118,0,0,0,90,18,112,97,114,101,
- 110,116,95,109,111,100,117,108,101,95,110,97,109,101,90,14,
- 112,97,116,104,95,97,116,116,114,95,110,97,109,101,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,114,25,1,
- 0,0,138,4,0,0,115,4,0,0,0,0,1,12,1,122,
- 31,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
- 95,103,101,116,95,112,97,114,101,110,116,95,112,97,116,104,
- 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
- 0,4,0,0,0,67,0,0,0,115,80,0,0,0,116,0,
- 124,0,160,1,161,0,131,1,125,1,124,1,124,0,106,2,
- 107,3,114,74,124,0,160,3,124,0,106,4,124,1,161,2,
- 125,2,124,2,100,0,117,1,114,68,124,2,106,5,100,0,
- 117,0,114,68,124,2,106,6,114,68,124,2,106,6,124,0,
- 95,7,124,1,124,0,95,2,124,0,106,7,83,0,114,109,
- 0,0,0,41,8,114,111,0,0,0,114,25,1,0,0,114,
- 26,1,0,0,114,27,1,0,0,114,23,1,0,0,114,140,
- 0,0,0,114,178,0,0,0,114,24,1,0,0,41,3,114,
- 118,0,0,0,90,11,112,97,114,101,110,116,95,112,97,116,
- 104,114,187,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,218,12,95,114,101,99,97,108,99,117,108,
- 97,116,101,142,4,0,0,115,16,0,0,0,0,2,12,1,
- 10,1,14,3,18,1,6,1,8,1,6,1,122,27,95,78,
- 97,109,101,115,112,97,99,101,80,97,116,104,46,95,114,101,
- 99,97,108,99,117,108,97,116,101,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
- 0,0,115,12,0,0,0,116,0,124,0,160,1,161,0,131,
- 1,83,0,114,109,0,0,0,41,2,114,6,1,0,0,114,
- 32,1,0,0,114,246,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,218,8,95,95,105,116,101,114,
- 95,95,155,4,0,0,115,2,0,0,0,0,1,122,23,95,
- 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,
- 105,116,101,114,95,95,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,115,
- 12,0,0,0,124,0,160,0,161,0,124,1,25,0,83,0,
- 114,109,0,0,0,169,1,114,32,1,0,0,41,2,114,118,
- 0,0,0,218,5,105,110,100,101,120,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,218,11,95,95,103,101,116,
- 105,116,101,109,95,95,158,4,0,0,115,2,0,0,0,0,
- 1,122,26,95,78,97,109,101,115,112,97,99,101,80,97,116,
- 104,46,95,95,103,101,116,105,116,101,109,95,95,99,3,0,
- 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,
- 0,0,67,0,0,0,115,14,0,0,0,124,2,124,0,106,
- 0,124,1,60,0,100,0,83,0,114,109,0,0,0,41,1,
- 114,24,1,0,0,41,3,114,118,0,0,0,114,35,1,0,
- 0,114,43,0,0,0,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,218,11,95,95,115,101,116,105,116,101,109,
- 95,95,161,4,0,0,115,2,0,0,0,0,1,122,26,95,
- 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,
- 115,101,116,105,116,101,109,95,95,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,
- 0,0,115,12,0,0,0,116,0,124,0,160,1,161,0,131,
- 1,83,0,114,109,0,0,0,41,2,114,22,0,0,0,114,
- 32,1,0,0,114,246,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,218,7,95,95,108,101,110,95,
- 95,164,4,0,0,115,2,0,0,0,0,1,122,22,95,78,
- 97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,108,
- 101,110,95,95,99,1,0,0,0,0,0,0,0,0,0,0,
- 0,1,0,0,0,3,0,0,0,67,0,0,0,115,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,61,0,0,0,114,24,
- 1,0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,218,8,95,95,114,101,112,114,95,
- 95,167,4,0,0,115,2,0,0,0,0,1,122,23,95,78,
- 97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,114,
- 101,112,114,95,95,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,12,
- 0,0,0,124,1,124,0,160,0,161,0,118,0,83,0,114,
- 109,0,0,0,114,34,1,0,0,169,2,114,118,0,0,0,
- 218,4,105,116,101,109,114,3,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,218,12,95,95,99,111,110,116,97,105,110,
- 115,95,95,170,4,0,0,115,2,0,0,0,0,1,122,27,
- 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,
- 95,99,111,110,116,97,105,110,115,95,95,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
- 67,0,0,0,115,16,0,0,0,124,0,106,0,160,1,124,
- 1,161,1,1,0,100,0,83,0,114,109,0,0,0,41,2,
- 114,24,1,0,0,114,186,0,0,0,114,40,1,0,0,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,186,
- 0,0,0,173,4,0,0,115,2,0,0,0,0,1,122,21,
- 95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,97,
- 112,112,101,110,100,78,41,15,114,125,0,0,0,114,124,0,
- 0,0,114,126,0,0,0,114,127,0,0,0,114,209,0,0,
- 0,114,30,1,0,0,114,25,1,0,0,114,32,1,0,0,
- 114,33,1,0,0,114,36,1,0,0,114,37,1,0,0,114,
- 38,1,0,0,114,39,1,0,0,114,42,1,0,0,114,186,
- 0,0,0,114,3,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,114,22,1,0,0,115,4,0,0,
- 115,24,0,0,0,8,1,4,6,8,6,8,10,8,4,8,
- 13,8,3,8,3,8,3,8,3,8,3,8,3,114,22,1,
- 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,3,0,0,0,64,0,0,0,115,80,0,0,0,
- 101,0,90,1,100,0,90,2,100,1,100,2,132,0,90,3,
- 101,4,100,3,100,4,132,0,131,1,90,5,100,5,100,6,
- 132,0,90,6,100,7,100,8,132,0,90,7,100,9,100,10,
- 132,0,90,8,100,11,100,12,132,0,90,9,100,13,100,14,
- 132,0,90,10,100,15,100,16,132,0,90,11,100,17,83,0,
- 41,18,218,16,95,78,97,109,101,115,112,97,99,101,76,111,
- 97,100,101,114,99,4,0,0,0,0,0,0,0,0,0,0,
- 0,4,0,0,0,4,0,0,0,67,0,0,0,115,18,0,
- 0,0,116,0,124,1,124,2,124,3,131,3,124,0,95,1,
- 100,0,83,0,114,109,0,0,0,41,2,114,22,1,0,0,
- 114,24,1,0,0,114,28,1,0,0,114,3,0,0,0,114,
- 3,0,0,0,114,6,0,0,0,114,209,0,0,0,179,4,
- 0,0,115,2,0,0,0,0,1,122,25,95,78,97,109,101,
- 115,112,97,99,101,76,111,97,100,101,114,46,95,95,105,110,
- 105,116,95,95,99,2,0,0,0,0,0,0,0,0,0,0,
- 0,2,0,0,0,3,0,0,0,67,0,0,0,115,12,0,
- 0,0,100,1,160,0,124,1,106,1,161,1,83,0,41,2,
- 122,115,82,101,116,117,114,110,32,114,101,112,114,32,102,111,
- 114,32,116,104,101,32,109,111,100,117,108,101,46,10,10,32,
- 32,32,32,32,32,32,32,84,104,101,32,109,101,116,104,111,
- 100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,
- 32,32,84,104,101,32,105,109,112,111,114,116,32,109,97,99,
- 104,105,110,101,114,121,32,100,111,101,115,32,116,104,101,32,
- 106,111,98,32,105,116,115,101,108,102,46,10,10,32,32,32,
- 32,32,32,32,32,122,25,60,109,111,100,117,108,101,32,123,
- 33,114,125,32,40,110,97,109,101,115,112,97,99,101,41,62,
- 41,2,114,61,0,0,0,114,125,0,0,0,41,2,114,193,
+ 100,7,132,0,90,6,101,7,135,0,102,1,100,8,100,9,
+ 132,8,131,1,90,8,101,7,100,10,100,11,132,0,131,1,
+ 90,9,100,12,100,13,132,0,90,10,101,7,100,14,100,15,
+ 132,0,131,1,90,11,100,16,100,17,132,0,90,12,100,18,
+ 100,19,132,0,90,13,100,20,100,21,132,0,90,14,100,22,
+ 100,23,132,0,90,15,135,0,4,0,90,16,83,0,41,24,
+ 218,10,70,105,108,101,76,111,97,100,101,114,122,103,66,97,
+ 115,101,32,102,105,108,101,32,108,111,97,100,101,114,32,99,
+ 108,97,115,115,32,119,104,105,99,104,32,105,109,112,108,101,
+ 109,101,110,116,115,32,116,104,101,32,108,111,97,100,101,114,
+ 32,112,114,111,116,111,99,111,108,32,109,101,116,104,111,100,
+ 115,32,116,104,97,116,10,32,32,32,32,114,101,113,117,105,
+ 114,101,32,102,105,108,101,32,115,121,115,116,101,109,32,117,
+ 115,97,103,101,46,99,3,0,0,0,0,0,0,0,0,0,
+ 0,0,3,0,0,0,2,0,0,0,67,0,0,0,115,16,
+ 0,0,0,124,1,124,0,95,0,124,2,124,0,95,1,100,
+ 1,83,0,41,2,122,75,67,97,99,104,101,32,116,104,101,
+ 32,109,111,100,117,108,101,32,110,97,109,101,32,97,110,100,
+ 32,116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,
+ 32,102,105,108,101,32,102,111,117,110,100,32,98,121,32,116,
+ 104,101,10,32,32,32,32,32,32,32,32,102,105,110,100,101,
+ 114,46,78,114,159,0,0,0,41,3,114,118,0,0,0,114,
+ 139,0,0,0,114,43,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,114,209,0,0,0,178,3,0,
+ 0,115,4,0,0,0,0,3,6,1,122,19,70,105,108,101,
+ 76,111,97,100,101,114,46,95,95,105,110,105,116,95,95,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+ 2,0,0,0,67,0,0,0,115,24,0,0,0,124,0,106,
+ 0,124,1,106,0,107,2,111,22,124,0,106,1,124,1,106,
+ 1,107,2,83,0,114,109,0,0,0,169,2,218,9,95,95,
+ 99,108,97,115,115,95,95,114,131,0,0,0,169,2,114,118,
+ 0,0,0,90,5,111,116,104,101,114,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,218,6,95,95,101,113,95,
+ 95,184,3,0,0,115,6,0,0,0,0,1,12,1,10,255,
+ 122,17,70,105,108,101,76,111,97,100,101,114,46,95,95,101,
+ 113,95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,
+ 1,0,0,0,3,0,0,0,67,0,0,0,115,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,109,0,0,0,169,3,218,4,104,97,
+ 115,104,114,116,0,0,0,114,43,0,0,0,169,1,114,118,
+ 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,218,8,95,95,104,97,115,104,95,95,188,3,0,0,
+ 115,2,0,0,0,0,1,122,19,70,105,108,101,76,111,97,
+ 100,101,114,46,95,95,104,97,115,104,95,95,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,
+ 0,3,0,0,0,115,16,0,0,0,116,0,116,1,124,0,
+ 131,2,160,2,124,1,161,1,83,0,41,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,239,0,0,0,
+ 114,220,0,0,0,114,219,0,0,0,169,1,114,241,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,114,220,0,0,0,
+ 191,3,0,0,115,2,0,0,0,0,10,122,22,70,105,108,
+ 101,76,111,97,100,101,114,46,108,111,97,100,95,109,111,100,
+ 117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,1,0,0,0,67,0,0,0,115,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,47,0,0,0,114,219,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,179,
+ 0,0,0,203,3,0,0,115,2,0,0,0,0,3,122,23,
+ 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,102,
+ 105,108,101,110,97,109,101,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,3,0,0,0,8,0,0,0,67,0,0,0,
+ 115,126,0,0,0,116,0,124,0,116,1,116,2,102,2,131,
+ 2,114,70,116,3,160,4,116,5,124,1,131,1,161,1,143,
+ 24,125,2,124,2,160,6,161,0,87,0,2,0,100,1,4,
+ 0,4,0,131,3,1,0,83,0,49,0,115,58,48,0,1,
+ 0,1,0,1,0,89,0,1,0,110,52,116,3,160,7,124,
+ 1,100,2,161,2,143,24,125,2,124,2,160,6,161,0,87,
+ 0,2,0,100,1,4,0,4,0,131,3,1,0,83,0,49,
+ 0,115,112,48,0,1,0,1,0,1,0,89,0,1,0,100,
+ 1,83,0,41,3,122,39,82,101,116,117,114,110,32,116,104,
+ 101,32,100,97,116,97,32,102,114,111,109,32,112,97,116,104,
+ 32,97,115,32,114,97,119,32,98,121,116,101,115,46,78,218,
+ 1,114,41,8,114,161,0,0,0,114,221,0,0,0,218,19,
+ 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
+ 100,101,114,114,63,0,0,0,90,9,111,112,101,110,95,99,
+ 111,100,101,114,84,0,0,0,90,4,114,101,97,100,114,64,
+ 0,0,0,41,3,114,118,0,0,0,114,43,0,0,0,114,
+ 67,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,114,227,0,0,0,208,3,0,0,115,10,0,0,
+ 0,0,2,14,1,16,1,40,2,14,1,122,19,70,105,108,
+ 101,76,111,97,100,101,114,46,103,101,116,95,100,97,116,97,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+ 0,3,0,0,0,67,0,0,0,115,18,0,0,0,124,0,
+ 160,0,124,1,161,1,114,14,124,0,83,0,100,0,83,0,
+ 114,109,0,0,0,41,1,114,182,0,0,0,169,2,114,118,
0,0,0,114,216,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,218,11,109,111,100,117,108,101,95,
- 114,101,112,114,182,4,0,0,115,2,0,0,0,0,7,122,
- 28,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,
- 114,46,109,111,100,117,108,101,95,114,101,112,114,99,2,0,
+ 0,0,114,6,0,0,0,218,19,103,101,116,95,114,101,115,
+ 111,117,114,99,101,95,114,101,97,100,101,114,219,3,0,0,
+ 115,6,0,0,0,0,2,10,1,4,1,122,30,70,105,108,
+ 101,76,111,97,100,101,114,46,103,101,116,95,114,101,115,111,
+ 117,114,99,101,95,114,101,97,100,101,114,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,
+ 67,0,0,0,115,32,0,0,0,116,0,116,1,124,0,106,
+ 2,131,1,100,1,25,0,124,1,131,2,125,2,116,3,160,
+ 4,124,2,100,2,161,2,83,0,41,3,78,114,72,0,0,
+ 0,114,251,0,0,0,41,5,114,37,0,0,0,114,46,0,
+ 0,0,114,43,0,0,0,114,63,0,0,0,114,64,0,0,
+ 0,169,3,114,118,0,0,0,90,8,114,101,115,111,117,114,
+ 99,101,114,43,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,218,13,111,112,101,110,95,114,101,115,
+ 111,117,114,99,101,225,3,0,0,115,4,0,0,0,0,1,
+ 20,1,122,24,70,105,108,101,76,111,97,100,101,114,46,111,
+ 112,101,110,95,114,101,115,111,117,114,99,101,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,
+ 0,67,0,0,0,115,38,0,0,0,124,0,160,0,124,1,
+ 161,1,115,14,116,1,130,1,116,2,116,3,124,0,106,4,
+ 131,1,100,1,25,0,124,1,131,2,125,2,124,2,83,0,
+ 169,2,78,114,72,0,0,0,41,5,218,11,105,115,95,114,
+ 101,115,111,117,114,99,101,218,17,70,105,108,101,78,111,116,
+ 70,111,117,110,100,69,114,114,111,114,114,37,0,0,0,114,
+ 46,0,0,0,114,43,0,0,0,114,255,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,218,13,114,
+ 101,115,111,117,114,99,101,95,112,97,116,104,229,3,0,0,
+ 115,8,0,0,0,0,1,10,1,4,1,20,1,122,24,70,
+ 105,108,101,76,111,97,100,101,114,46,114,101,115,111,117,114,
+ 99,101,95,112,97,116,104,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,
+ 115,40,0,0,0,116,0,124,1,118,0,114,12,100,1,83,
+ 0,116,1,116,2,124,0,106,3,131,1,100,2,25,0,124,
+ 1,131,2,125,2,116,4,124,2,131,1,83,0,41,3,78,
+ 70,114,72,0,0,0,41,5,114,34,0,0,0,114,37,0,
+ 0,0,114,46,0,0,0,114,43,0,0,0,114,53,0,0,
+ 0,169,3,114,118,0,0,0,114,116,0,0,0,114,43,0,
+ 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,114,2,1,0,0,235,3,0,0,115,8,0,0,0,0,
+ 1,8,1,4,1,20,1,122,22,70,105,108,101,76,111,97,
+ 100,101,114,46,105,115,95,114,101,115,111,117,114,99,101,99,
+ 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
+ 5,0,0,0,67,0,0,0,115,24,0,0,0,116,0,116,
+ 1,160,2,116,3,124,0,106,4,131,1,100,1,25,0,161,
+ 1,131,1,83,0,114,1,1,0,0,41,5,218,4,105,116,
+ 101,114,114,2,0,0,0,218,7,108,105,115,116,100,105,114,
+ 114,46,0,0,0,114,43,0,0,0,114,246,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,8,
+ 99,111,110,116,101,110,116,115,241,3,0,0,115,2,0,0,
+ 0,0,1,122,19,70,105,108,101,76,111,97,100,101,114,46,
+ 99,111,110,116,101,110,116,115,41,17,114,125,0,0,0,114,
+ 124,0,0,0,114,126,0,0,0,114,127,0,0,0,114,209,
+ 0,0,0,114,243,0,0,0,114,247,0,0,0,114,136,0,
+ 0,0,114,220,0,0,0,114,179,0,0,0,114,227,0,0,
+ 0,114,254,0,0,0,114,0,1,0,0,114,4,1,0,0,
+ 114,2,1,0,0,114,8,1,0,0,90,13,95,95,99,108,
+ 97,115,115,99,101,108,108,95,95,114,3,0,0,0,114,3,
+ 0,0,0,114,249,0,0,0,114,6,0,0,0,114,239,0,
+ 0,0,173,3,0,0,115,30,0,0,0,8,2,4,3,8,
+ 6,8,4,8,3,2,1,14,11,2,1,10,4,8,11,2,
+ 1,10,5,8,4,8,6,8,6,114,239,0,0,0,99,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
+ 0,0,0,64,0,0,0,115,46,0,0,0,101,0,90,1,
+ 100,0,90,2,100,1,90,3,100,2,100,3,132,0,90,4,
+ 100,4,100,5,132,0,90,5,100,6,100,7,156,1,100,8,
+ 100,9,132,2,90,6,100,10,83,0,41,11,218,16,83,111,
+ 117,114,99,101,70,105,108,101,76,111,97,100,101,114,122,62,
+ 67,111,110,99,114,101,116,101,32,105,109,112,108,101,109,101,
+ 110,116,97,116,105,111,110,32,111,102,32,83,111,117,114,99,
+ 101,76,111,97,100,101,114,32,117,115,105,110,103,32,116,104,
+ 101,32,102,105,108,101,32,115,121,115,116,101,109,46,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,
+ 0,0,0,67,0,0,0,115,22,0,0,0,116,0,124,1,
+ 131,1,125,2,124,2,106,1,124,2,106,2,100,1,156,2,
+ 83,0,41,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,169,0,0,0,114,234,
+ 0,0,0,41,3,114,48,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,
+ 118,0,0,0,114,43,0,0,0,114,238,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,114,224,0,
+ 0,0,249,3,0,0,115,4,0,0,0,0,2,8,1,122,
+ 27,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,
+ 114,46,112,97,116,104,95,115,116,97,116,115,99,4,0,0,
+ 0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,0,
+ 0,67,0,0,0,115,24,0,0,0,116,0,124,1,131,1,
+ 125,4,124,0,106,1,124,2,124,3,124,4,100,1,141,3,
+ 83,0,41,2,78,169,1,218,5,95,109,111,100,101,41,2,
+ 114,114,0,0,0,114,225,0,0,0,41,5,114,118,0,0,
+ 0,114,107,0,0,0,114,106,0,0,0,114,25,0,0,0,
+ 114,51,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,226,0,0,0,254,3,0,0,115,4,0,
+ 0,0,0,2,8,1,122,32,83,111,117,114,99,101,70,105,
+ 108,101,76,111,97,100,101,114,46,95,99,97,99,104,101,95,
+ 98,121,116,101,99,111,100,101,114,59,0,0,0,114,11,1,
+ 0,0,99,3,0,0,0,0,0,0,0,1,0,0,0,9,
+ 0,0,0,11,0,0,0,67,0,0,0,115,252,0,0,0,
+ 116,0,124,1,131,1,92,2,125,4,125,5,103,0,125,6,
+ 124,4,114,52,116,1,124,4,131,1,115,52,116,0,124,4,
+ 131,1,92,2,125,4,125,7,124,6,160,2,124,7,161,1,
+ 1,0,113,16,116,3,124,6,131,1,68,0,93,104,125,7,
+ 116,4,124,4,124,7,131,2,125,4,122,14,116,5,160,6,
+ 124,4,161,1,1,0,87,0,113,60,4,0,116,7,121,110,
+ 1,0,1,0,1,0,89,0,113,60,89,0,113,60,4,0,
+ 116,8,121,162,1,0,125,8,1,0,122,30,116,9,160,10,
+ 100,1,124,4,124,8,161,3,1,0,87,0,89,0,100,2,
+ 125,8,126,8,1,0,100,2,83,0,100,2,125,8,126,8,
+ 48,0,48,0,113,60,122,28,116,11,124,1,124,2,124,3,
+ 131,3,1,0,116,9,160,10,100,3,124,1,161,2,1,0,
+ 87,0,110,52,4,0,116,8,144,0,121,246,1,0,125,8,
+ 1,0,122,26,116,9,160,10,100,1,124,1,124,8,161,3,
+ 1,0,87,0,89,0,100,2,125,8,126,8,110,10,100,2,
+ 125,8,126,8,48,0,48,0,100,2,83,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,46,0,0,0,114,55,
+ 0,0,0,114,186,0,0,0,114,41,0,0,0,114,37,0,
+ 0,0,114,2,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,
+ 49,0,0,0,114,134,0,0,0,114,149,0,0,0,114,68,
+ 0,0,0,41,9,114,118,0,0,0,114,43,0,0,0,114,
+ 25,0,0,0,114,12,1,0,0,218,6,112,97,114,101,110,
+ 116,114,96,0,0,0,114,36,0,0,0,114,32,0,0,0,
+ 114,228,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,225,0,0,0,3,4,0,0,115,48,0,
+ 0,0,0,2,12,1,4,2,12,1,12,1,12,2,12,1,
+ 10,1,2,1,14,1,12,2,8,1,14,3,6,1,2,0,
+ 2,255,4,2,28,1,2,1,12,1,16,1,16,2,8,1,
+ 2,255,122,25,83,111,117,114,99,101,70,105,108,101,76,111,
+ 97,100,101,114,46,115,101,116,95,100,97,116,97,78,41,7,
+ 114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,114,
+ 127,0,0,0,114,224,0,0,0,114,226,0,0,0,114,225,
+ 0,0,0,114,3,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,114,9,1,0,0,245,3,0,0,
+ 115,8,0,0,0,8,2,4,2,8,5,8,5,114,9,1,
+ 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,2,0,0,0,64,0,0,0,115,32,0,0,0,
+ 101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,3,
+ 132,0,90,4,100,4,100,5,132,0,90,5,100,6,83,0,
+ 41,7,218,20,83,111,117,114,99,101,108,101,115,115,70,105,
+ 108,101,76,111,97,100,101,114,122,45,76,111,97,100,101,114,
+ 32,119,104,105,99,104,32,104,97,110,100,108,101,115,32,115,
+ 111,117,114,99,101,108,101,115,115,32,102,105,108,101,32,105,
+ 109,112,111,114,116,115,46,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,
+ 115,68,0,0,0,124,0,160,0,124,1,161,1,125,2,124,
+ 0,160,1,124,2,161,1,125,3,124,1,124,2,100,1,156,
+ 2,125,4,116,2,124,3,124,1,124,4,131,3,1,0,116,
+ 3,116,4,124,3,131,1,100,2,100,0,133,2,25,0,124,
+ 1,124,2,100,3,141,3,83,0,41,4,78,114,159,0,0,
+ 0,114,145,0,0,0,41,2,114,116,0,0,0,114,106,0,
+ 0,0,41,5,114,179,0,0,0,114,227,0,0,0,114,152,
+ 0,0,0,114,165,0,0,0,114,235,0,0,0,41,5,114,
+ 118,0,0,0,114,139,0,0,0,114,43,0,0,0,114,25,
+ 0,0,0,114,151,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,114,213,0,0,0,38,4,0,0,
+ 115,22,0,0,0,0,1,10,1,10,4,2,1,2,254,6,
+ 4,12,1,2,1,14,1,2,1,2,253,122,29,83,111,117,
+ 114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,
+ 114,46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
+ 0,0,0,115,4,0,0,0,100,1,83,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,3,0,0,0,114,219,0,
+ 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,114,229,0,0,0,54,4,0,0,115,2,0,0,0,0,
+ 2,122,31,83,111,117,114,99,101,108,101,115,115,70,105,108,
+ 101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,
+ 99,101,78,41,6,114,125,0,0,0,114,124,0,0,0,114,
+ 126,0,0,0,114,127,0,0,0,114,213,0,0,0,114,229,
+ 0,0,0,114,3,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,114,15,1,0,0,34,4,0,0,
+ 115,6,0,0,0,8,2,4,2,8,16,114,15,1,0,0,
+ 99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,3,0,0,0,64,0,0,0,115,92,0,0,0,101,0,
+ 90,1,100,0,90,2,100,1,90,3,100,2,100,3,132,0,
+ 90,4,100,4,100,5,132,0,90,5,100,6,100,7,132,0,
+ 90,6,100,8,100,9,132,0,90,7,100,10,100,11,132,0,
+ 90,8,100,12,100,13,132,0,90,9,100,14,100,15,132,0,
+ 90,10,100,16,100,17,132,0,90,11,101,12,100,18,100,19,
+ 132,0,131,1,90,13,100,20,83,0,41,21,114,252,0,0,
+ 0,122,93,76,111,97,100,101,114,32,102,111,114,32,101,120,
+ 116,101,110,115,105,111,110,32,109,111,100,117,108,101,115,46,
+ 10,10,32,32,32,32,84,104,101,32,99,111,110,115,116,114,
+ 117,99,116,111,114,32,105,115,32,100,101,115,105,103,110,101,
+ 100,32,116,111,32,119,111,114,107,32,119,105,116,104,32,70,
+ 105,108,101,70,105,110,100,101,114,46,10,10,32,32,32,32,
+ 99,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
+ 0,2,0,0,0,67,0,0,0,115,16,0,0,0,124,1,
+ 124,0,95,0,124,2,124,0,95,1,100,0,83,0,114,109,
+ 0,0,0,114,159,0,0,0,114,5,1,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,209,0,0,
+ 0,71,4,0,0,115,4,0,0,0,0,1,6,1,122,28,
+ 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
+ 100,101,114,46,95,95,105,110,105,116,95,95,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,
+ 0,67,0,0,0,115,24,0,0,0,124,0,106,0,124,1,
+ 106,0,107,2,111,22,124,0,106,1,124,1,106,1,107,2,
+ 83,0,114,109,0,0,0,114,240,0,0,0,114,242,0,0,
+ 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
+ 114,243,0,0,0,75,4,0,0,115,6,0,0,0,0,1,
+ 12,1,10,255,122,26,69,120,116,101,110,115,105,111,110,70,
+ 105,108,101,76,111,97,100,101,114,46,95,95,101,113,95,95,
+ 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
+ 0,3,0,0,0,67,0,0,0,115,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,109,0,0,0,114,244,0,0,0,114,246,0,0,
+ 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
+ 114,247,0,0,0,79,4,0,0,115,2,0,0,0,0,1,
+ 122,28,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
+ 111,97,100,101,114,46,95,95,104,97,115,104,95,95,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,5,
+ 0,0,0,67,0,0,0,115,36,0,0,0,116,0,160,1,
+ 116,2,106,3,124,1,161,2,125,2,116,0,160,4,100,1,
+ 124,1,106,5,124,0,106,6,161,3,1,0,124,2,83,0,
+ 41,2,122,38,67,114,101,97,116,101,32,97,110,32,117,110,
+ 105,116,105,97,108,105,122,101,100,32,101,120,116,101,110,115,
+ 105,111,110,32,109,111,100,117,108,101,122,38,101,120,116,101,
+ 110,115,105,111,110,32,109,111,100,117,108,101,32,123,33,114,
+ 125,32,108,111,97,100,101,100,32,102,114,111,109,32,123,33,
+ 114,125,41,7,114,134,0,0,0,114,214,0,0,0,114,163,
+ 0,0,0,90,14,99,114,101,97,116,101,95,100,121,110,97,
+ 109,105,99,114,149,0,0,0,114,116,0,0,0,114,43,0,
+ 0,0,41,3,114,118,0,0,0,114,187,0,0,0,114,216,
+ 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,114,212,0,0,0,82,4,0,0,115,18,0,0,0,
+ 0,2,4,1,4,0,2,255,4,2,6,1,4,0,4,255,
+ 4,2,122,33,69,120,116,101,110,115,105,111,110,70,105,108,
+ 101,76,111,97,100,101,114,46,99,114,101,97,116,101,95,109,
+ 111,100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,5,0,0,0,67,0,0,0,115,36,
+ 0,0,0,116,0,160,1,116,2,106,3,124,1,161,2,1,
+ 0,116,0,160,4,100,1,124,0,106,5,124,0,106,6,161,
+ 3,1,0,100,2,83,0,41,3,122,30,73,110,105,116,105,
+ 97,108,105,122,101,32,97,110,32,101,120,116,101,110,115,105,
+ 111,110,32,109,111,100,117,108,101,122,40,101,120,116,101,110,
+ 115,105,111,110,32,109,111,100,117,108,101,32,123,33,114,125,
+ 32,101,120,101,99,117,116,101,100,32,102,114,111,109,32,123,
+ 33,114,125,78,41,7,114,134,0,0,0,114,214,0,0,0,
+ 114,163,0,0,0,90,12,101,120,101,99,95,100,121,110,97,
+ 109,105,99,114,149,0,0,0,114,116,0,0,0,114,43,0,
+ 0,0,114,253,0,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,114,217,0,0,0,90,4,0,0,115,
+ 10,0,0,0,0,2,14,1,6,1,4,0,4,255,122,31,
+ 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
+ 100,101,114,46,101,120,101,99,95,109,111,100,117,108,101,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
+ 4,0,0,0,3,0,0,0,115,36,0,0,0,116,0,124,
+ 0,106,1,131,1,100,1,25,0,137,0,116,2,135,0,102,
+ 1,100,2,100,3,132,8,116,3,68,0,131,1,131,1,83,
+ 0,41,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,38,0,0,0,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,
+ 51,0,0,0,115,26,0,0,0,124,0,93,18,125,1,136,
+ 0,100,0,124,1,23,0,107,2,86,0,1,0,113,2,100,
+ 1,83,0,41,2,114,209,0,0,0,78,114,3,0,0,0,
+ 169,2,114,31,0,0,0,218,6,115,117,102,102,105,120,169,
+ 1,90,9,102,105,108,101,95,110,97,109,101,114,3,0,0,
+ 0,114,6,0,0,0,218,9,60,103,101,110,101,120,112,114,
+ 62,99,4,0,0,115,4,0,0,0,4,1,2,255,122,49,
+ 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
+ 100,101,114,46,105,115,95,112,97,99,107,97,103,101,46,60,
+ 108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,
+ 62,41,4,114,46,0,0,0,114,43,0,0,0,218,3,97,
+ 110,121,218,18,69,88,84,69,78,83,73,79,78,95,83,85,
+ 70,70,73,88,69,83,114,219,0,0,0,114,3,0,0,0,
+ 114,18,1,0,0,114,6,0,0,0,114,182,0,0,0,96,
+ 4,0,0,115,8,0,0,0,0,2,14,1,12,1,2,255,
+ 122,30,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
+ 111,97,100,101,114,46,105,115,95,112,97,99,107,97,103,101,
+ 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+ 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,
+ 83,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,3,0,0,0,114,219,0,0,0,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
+ 213,0,0,0,102,4,0,0,115,2,0,0,0,0,2,122,
+ 28,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
+ 97,100,101,114,46,103,101,116,95,99,111,100,101,99,2,0,
0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,
0,0,67,0,0,0,115,4,0,0,0,100,1,83,0,41,
- 2,78,84,114,3,0,0,0,114,219,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,182,0,0,
- 0,191,4,0,0,115,2,0,0,0,0,1,122,27,95,78,
- 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,105,
- 115,95,112,97,99,107,97,103,101,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
- 0,0,115,4,0,0,0,100,1,83,0,41,2,78,114,39,
- 0,0,0,114,3,0,0,0,114,219,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,229,0,0,
- 0,194,4,0,0,115,2,0,0,0,0,1,122,27,95,78,
- 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,103,
- 101,116,95,115,111,117,114,99,101,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,2,0,0,0,6,0,0,0,67,0,
- 0,0,115,16,0,0,0,116,0,100,1,100,2,100,3,100,
- 4,100,5,141,4,83,0,41,6,78,114,39,0,0,0,122,
- 8,60,115,116,114,105,110,103,62,114,215,0,0,0,84,41,
- 1,114,231,0,0,0,41,1,114,232,0,0,0,114,219,0,
- 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,114,213,0,0,0,197,4,0,0,115,2,0,0,0,0,
- 1,122,25,95,78,97,109,101,115,112,97,99,101,76,111,97,
- 100,101,114,46,103,101,116,95,99,111,100,101,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
- 0,67,0,0,0,115,4,0,0,0,100,1,83,0,114,210,
- 0,0,0,114,3,0,0,0,114,211,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,212,0,0,
- 0,200,4,0,0,115,2,0,0,0,0,1,122,30,95,78,
- 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,99,
- 114,101,97,116,101,95,109,111,100,117,108,101,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
- 0,67,0,0,0,115,4,0,0,0,100,0,83,0,114,109,
- 0,0,0,114,3,0,0,0,114,253,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,217,0,0,
- 0,203,4,0,0,115,2,0,0,0,0,1,122,28,95,78,
- 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,101,
- 120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,67,
- 0,0,0,115,26,0,0,0,116,0,160,1,100,1,124,0,
- 106,2,161,2,1,0,116,0,160,3,124,0,124,1,161,2,
- 83,0,41,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,134,0,0,0,114,149,0,0,0,114,24,1,0,
- 0,114,218,0,0,0,114,219,0,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,220,0,0,0,206,
- 4,0,0,115,8,0,0,0,0,7,6,1,4,255,4,2,
- 122,28,95,78,97,109,101,115,112,97,99,101,76,111,97,100,
- 101,114,46,108,111,97,100,95,109,111,100,117,108,101,78,41,
- 12,114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,
- 114,209,0,0,0,114,207,0,0,0,114,44,1,0,0,114,
- 182,0,0,0,114,229,0,0,0,114,213,0,0,0,114,212,
- 0,0,0,114,217,0,0,0,114,220,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,114,43,1,0,0,178,4,0,0,115,18,0,0,0,8,
- 1,8,3,2,1,10,8,8,3,8,3,8,3,8,3,8,
- 3,114,43,1,0,0,99,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,4,0,0,0,64,0,0,0,115,
- 118,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
- 101,4,100,2,100,3,132,0,131,1,90,5,101,4,100,4,
- 100,5,132,0,131,1,90,6,101,4,100,6,100,7,132,0,
- 131,1,90,7,101,4,100,8,100,9,132,0,131,1,90,8,
- 101,4,100,19,100,11,100,12,132,1,131,1,90,9,101,4,
- 100,20,100,13,100,14,132,1,131,1,90,10,101,4,100,21,
- 100,15,100,16,132,1,131,1,90,11,101,4,100,17,100,18,
- 132,0,131,1,90,12,100,10,83,0,41,22,218,10,80,97,
- 116,104,70,105,110,100,101,114,122,62,77,101,116,97,32,112,
- 97,116,104,32,102,105,110,100,101,114,32,102,111,114,32,115,
- 121,115,46,112,97,116,104,32,97,110,100,32,112,97,99,107,
- 97,103,101,32,95,95,112,97,116,104,95,95,32,97,116,116,
- 114,105,98,117,116,101,115,46,99,1,0,0,0,0,0,0,
+ 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,3,0,0,0,114,219,
+ 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,114,229,0,0,0,106,4,0,0,115,2,0,0,0,
+ 0,2,122,30,69,120,116,101,110,115,105,111,110,70,105,108,
+ 101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,
+ 99,101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,1,0,0,0,67,0,0,0,115,6,0,0,0,
+ 124,0,106,0,83,0,114,250,0,0,0,114,47,0,0,0,
+ 114,219,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,179,0,0,0,110,4,0,0,115,2,0,
+ 0,0,0,3,122,32,69,120,116,101,110,115,105,111,110,70,
+ 105,108,101,76,111,97,100,101,114,46,103,101,116,95,102,105,
+ 108,101,110,97,109,101,78,41,14,114,125,0,0,0,114,124,
+ 0,0,0,114,126,0,0,0,114,127,0,0,0,114,209,0,
+ 0,0,114,243,0,0,0,114,247,0,0,0,114,212,0,0,
+ 0,114,217,0,0,0,114,182,0,0,0,114,213,0,0,0,
+ 114,229,0,0,0,114,136,0,0,0,114,179,0,0,0,114,
+ 3,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,114,252,0,0,0,63,4,0,0,115,22,0,0,
+ 0,8,2,4,6,8,4,8,4,8,3,8,8,8,6,8,
+ 6,8,4,8,4,2,1,114,252,0,0,0,99,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
+ 0,64,0,0,0,115,104,0,0,0,101,0,90,1,100,0,
+ 90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,
+ 100,5,132,0,90,5,100,6,100,7,132,0,90,6,100,8,
+ 100,9,132,0,90,7,100,10,100,11,132,0,90,8,100,12,
+ 100,13,132,0,90,9,100,14,100,15,132,0,90,10,100,16,
+ 100,17,132,0,90,11,100,18,100,19,132,0,90,12,100,20,
+ 100,21,132,0,90,13,100,22,100,23,132,0,90,14,100,24,
+ 83,0,41,25,218,14,95,78,97,109,101,115,112,97,99,101,
+ 80,97,116,104,97,38,1,0,0,82,101,112,114,101,115,101,
+ 110,116,115,32,97,32,110,97,109,101,115,112,97,99,101,32,
+ 112,97,99,107,97,103,101,39,115,32,112,97,116,104,46,32,
+ 32,73,116,32,117,115,101,115,32,116,104,101,32,109,111,100,
+ 117,108,101,32,110,97,109,101,10,32,32,32,32,116,111,32,
+ 102,105,110,100,32,105,116,115,32,112,97,114,101,110,116,32,
+ 109,111,100,117,108,101,44,32,97,110,100,32,102,114,111,109,
+ 32,116,104,101,114,101,32,105,116,32,108,111,111,107,115,32,
+ 117,112,32,116,104,101,32,112,97,114,101,110,116,39,115,10,
+ 32,32,32,32,95,95,112,97,116,104,95,95,46,32,32,87,
+ 104,101,110,32,116,104,105,115,32,99,104,97,110,103,101,115,
+ 44,32,116,104,101,32,109,111,100,117,108,101,39,115,32,111,
+ 119,110,32,112,97,116,104,32,105,115,32,114,101,99,111,109,
+ 112,117,116,101,100,44,10,32,32,32,32,117,115,105,110,103,
+ 32,112,97,116,104,95,102,105,110,100,101,114,46,32,32,70,
+ 111,114,32,116,111,112,45,108,101,118,101,108,32,109,111,100,
+ 117,108,101,115,44,32,116,104,101,32,112,97,114,101,110,116,
+ 32,109,111,100,117,108,101,39,115,32,112,97,116,104,10,32,
+ 32,32,32,105,115,32,115,121,115,46,112,97,116,104,46,99,
+ 4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
+ 3,0,0,0,67,0,0,0,115,36,0,0,0,124,1,124,
+ 0,95,0,124,2,124,0,95,1,116,2,124,0,160,3,161,
+ 0,131,1,124,0,95,4,124,3,124,0,95,5,100,0,83,
+ 0,114,109,0,0,0,41,6,218,5,95,110,97,109,101,218,
+ 5,95,112,97,116,104,114,111,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,118,0,0,0,114,116,0,0,0,114,43,0,0,0,90,
+ 11,112,97,116,104,95,102,105,110,100,101,114,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,114,209,0,0,0,
+ 123,4,0,0,115,8,0,0,0,0,1,6,1,6,1,14,
+ 1,122,23,95,78,97,109,101,115,112,97,99,101,80,97,116,
+ 104,46,95,95,105,110,105,116,95,95,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,
+ 0,0,0,115,38,0,0,0,124,0,106,0,160,1,100,1,
+ 161,1,92,3,125,1,125,2,125,3,124,2,100,2,107,2,
+ 114,30,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,70,0,0,0,114,39,0,0,0,41,2,114,8,0,0,
+ 0,114,43,0,0,0,90,8,95,95,112,97,116,104,95,95,
+ 41,2,114,23,1,0,0,114,40,0,0,0,41,4,114,118,
+ 0,0,0,114,14,1,0,0,218,3,100,111,116,90,2,109,
+ 101,114,3,0,0,0,114,3,0,0,0,114,6,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,129,4,0,0,115,8,0,
+ 0,0,0,2,18,1,8,2,4,3,122,38,95,78,97,109,
+ 101,115,112,97,99,101,80,97,116,104,46,95,102,105,110,100,
+ 95,112,97,114,101,110,116,95,112,97,116,104,95,110,97,109,
+ 101,115,99,1,0,0,0,0,0,0,0,0,0,0,0,3,
+ 0,0,0,3,0,0,0,67,0,0,0,115,28,0,0,0,
+ 124,0,160,0,161,0,92,2,125,1,125,2,116,1,116,2,
+ 106,3,124,1,25,0,124,2,131,2,83,0,114,109,0,0,
+ 0,41,4,114,30,1,0,0,114,130,0,0,0,114,8,0,
+ 0,0,218,7,109,111,100,117,108,101,115,41,3,114,118,0,
+ 0,0,90,18,112,97,114,101,110,116,95,109,111,100,117,108,
+ 101,95,110,97,109,101,90,14,112,97,116,104,95,97,116,116,
+ 114,95,110,97,109,101,114,3,0,0,0,114,3,0,0,0,
+ 114,6,0,0,0,114,25,1,0,0,139,4,0,0,115,4,
+ 0,0,0,0,1,12,1,122,31,95,78,97,109,101,115,112,
+ 97,99,101,80,97,116,104,46,95,103,101,116,95,112,97,114,
+ 101,110,116,95,112,97,116,104,99,1,0,0,0,0,0,0,
0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,0,
- 0,115,64,0,0,0,116,0,116,1,106,2,160,3,161,0,
- 131,1,68,0,93,44,92,2,125,1,125,2,124,2,100,1,
- 117,0,114,40,116,1,106,2,124,1,61,0,113,14,116,4,
- 124,2,100,2,131,2,114,14,124,2,160,5,161,0,1,0,
- 113,14,100,1,83,0,41,3,122,125,67,97,108,108,32,116,
- 104,101,32,105,110,118,97,108,105,100,97,116,101,95,99,97,
- 99,104,101,115,40,41,32,109,101,116,104,111,100,32,111,110,
- 32,97,108,108,32,112,97,116,104,32,101,110,116,114,121,32,
- 102,105,110,100,101,114,115,10,32,32,32,32,32,32,32,32,
- 115,116,111,114,101,100,32,105,110,32,115,121,115,46,112,97,
- 116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,
- 101,115,32,40,119,104,101,114,101,32,105,109,112,108,101,109,
- 101,110,116,101,100,41,46,78,218,17,105,110,118,97,108,105,
- 100,97,116,101,95,99,97,99,104,101,115,41,6,218,4,108,
- 105,115,116,114,8,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,128,0,0,0,114,46,1,0,0,41,3,
- 114,193,0,0,0,114,116,0,0,0,218,6,102,105,110,100,
- 101,114,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
- 0,114,46,1,0,0,224,4,0,0,115,10,0,0,0,0,
- 4,22,1,8,1,10,1,10,1,122,28,80,97,116,104,70,
- 105,110,100,101,114,46,105,110,118,97,108,105,100,97,116,101,
- 95,99,97,99,104,101,115,99,2,0,0,0,0,0,0,0,
- 0,0,0,0,3,0,0,0,9,0,0,0,67,0,0,0,
- 115,82,0,0,0,116,0,106,1,100,1,117,1,114,28,116,
- 0,106,1,115,28,116,2,160,3,100,2,116,4,161,2,1,
- 0,116,0,106,1,68,0,93,42,125,2,122,14,124,2,124,
- 1,131,1,87,0,2,0,1,0,83,0,4,0,116,5,121,
- 74,1,0,1,0,1,0,89,0,113,34,89,0,113,34,48,
- 0,113,34,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,8,0,0,0,218,10,112,97,116,104,
- 95,104,111,111,107,115,114,74,0,0,0,114,75,0,0,0,
- 114,138,0,0,0,114,117,0,0,0,41,3,114,193,0,0,
- 0,114,43,0,0,0,90,4,104,111,111,107,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,218,11,95,112,97,
- 116,104,95,104,111,111,107,115,234,4,0,0,115,16,0,0,
- 0,0,3,16,1,12,1,10,1,2,1,14,1,12,1,12,
- 2,122,22,80,97,116,104,70,105,110,100,101,114,46,95,112,
- 97,116,104,95,104,111,111,107,115,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,3,0,0,0,8,0,0,0,67,0,
- 0,0,115,100,0,0,0,124,1,100,1,107,2,114,42,122,
- 12,116,0,160,1,161,0,125,1,87,0,110,20,4,0,116,
- 2,121,40,1,0,1,0,1,0,89,0,100,2,83,0,48,
- 0,122,14,116,3,106,4,124,1,25,0,125,2,87,0,110,
- 38,4,0,116,5,121,94,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,110,2,48,0,124,2,83,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,39,0,0,0,78,41,7,114,2,0,0,0,114,54,
- 0,0,0,114,3,1,0,0,114,8,0,0,0,114,48,1,
- 0,0,218,8,75,101,121,69,114,114,111,114,114,52,1,0,
- 0,41,3,114,193,0,0,0,114,43,0,0,0,114,50,1,
- 0,0,114,3,0,0,0,114,3,0,0,0,114,6,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,247,4,0,0,115,22,0,0,0,
- 0,8,8,1,2,1,12,1,12,3,8,1,2,1,14,1,
- 12,1,10,1,16,1,122,31,80,97,116,104,70,105,110,100,
- 101,114,46,95,112,97,116,104,95,105,109,112,111,114,116,101,
- 114,95,99,97,99,104,101,99,3,0,0,0,0,0,0,0,
- 0,0,0,0,6,0,0,0,4,0,0,0,67,0,0,0,
- 115,82,0,0,0,116,0,124,2,100,1,131,2,114,26,124,
- 2,160,1,124,1,161,1,92,2,125,3,125,4,110,14,124,
- 2,160,2,124,1,161,1,125,3,103,0,125,4,124,3,100,
- 0,117,1,114,60,116,3,160,4,124,1,124,3,161,2,83,
- 0,116,3,160,5,124,1,100,0,161,2,125,5,124,4,124,
- 5,95,6,124,5,83,0,41,2,78,114,137,0,0,0,41,
- 7,114,128,0,0,0,114,137,0,0,0,114,206,0,0,0,
- 114,134,0,0,0,114,201,0,0,0,114,183,0,0,0,114,
- 178,0,0,0,41,6,114,193,0,0,0,114,139,0,0,0,
- 114,50,1,0,0,114,140,0,0,0,114,141,0,0,0,114,
- 187,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
- 0,0,0,218,16,95,108,101,103,97,99,121,95,103,101,116,
- 95,115,112,101,99,13,5,0,0,115,18,0,0,0,0,4,
- 10,1,16,2,10,1,4,1,8,1,12,1,12,1,6,1,
- 122,27,80,97,116,104,70,105,110,100,101,114,46,95,108,101,
- 103,97,99,121,95,103,101,116,95,115,112,101,99,78,99,4,
- 0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,5,
- 0,0,0,67,0,0,0,115,166,0,0,0,103,0,125,4,
- 124,2,68,0,93,134,125,5,116,0,124,5,116,1,116,2,
- 102,2,131,2,115,28,113,8,124,0,160,3,124,5,161,1,
- 125,6,124,6,100,1,117,1,114,8,116,4,124,6,100,2,
- 131,2,114,70,124,6,160,5,124,1,124,3,161,2,125,7,
- 110,12,124,0,160,6,124,1,124,6,161,2,125,7,124,7,
- 100,1,117,0,114,92,113,8,124,7,106,7,100,1,117,1,
- 114,110,124,7,2,0,1,0,83,0,124,7,106,8,125,8,
- 124,8,100,1,117,0,114,132,116,9,100,3,131,1,130,1,
- 124,4,160,10,124,8,161,1,1,0,113,8,116,11,160,12,
- 124,1,100,1,161,2,125,7,124,4,124,7,95,8,124,7,
- 83,0,41,4,122,63,70,105,110,100,32,116,104,101,32,108,
- 111,97,100,101,114,32,111,114,32,110,97,109,101,115,112,97,
- 99,101,95,112,97,116,104,32,102,111,114,32,116,104,105,115,
- 32,109,111,100,117,108,101,47,112,97,99,107,97,103,101,32,
- 110,97,109,101,46,78,114,203,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,161,0,0,0,114,84,0,0,0,218,5,98,121,
- 116,101,115,114,54,1,0,0,114,128,0,0,0,114,203,0,
- 0,0,114,55,1,0,0,114,140,0,0,0,114,178,0,0,
- 0,114,117,0,0,0,114,167,0,0,0,114,134,0,0,0,
- 114,183,0,0,0,41,9,114,193,0,0,0,114,139,0,0,
- 0,114,43,0,0,0,114,202,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,50,1,0,0,114,187,0,0,0,114,141,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,74,124,0,160,3,
+ 124,0,106,4,124,1,161,2,125,2,124,2,100,0,117,1,
+ 114,68,124,2,106,5,100,0,117,0,114,68,124,2,106,6,
+ 114,68,124,2,106,6,124,0,95,7,124,1,124,0,95,2,
+ 124,0,106,7,83,0,114,109,0,0,0,41,8,114,111,0,
+ 0,0,114,25,1,0,0,114,26,1,0,0,114,27,1,0,
+ 0,114,23,1,0,0,114,140,0,0,0,114,178,0,0,0,
+ 114,24,1,0,0,41,3,114,118,0,0,0,90,11,112,97,
+ 114,101,110,116,95,112,97,116,104,114,187,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,218,12,95,
+ 114,101,99,97,108,99,117,108,97,116,101,143,4,0,0,115,
+ 16,0,0,0,0,2,12,1,10,1,14,3,18,1,6,1,
+ 8,1,6,1,122,27,95,78,97,109,101,115,112,97,99,101,
+ 80,97,116,104,46,95,114,101,99,97,108,99,117,108,97,116,
+ 101,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
+ 0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,116,
+ 0,124,0,160,1,161,0,131,1,83,0,114,109,0,0,0,
+ 41,2,114,6,1,0,0,114,32,1,0,0,114,246,0,0,
0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 218,9,95,103,101,116,95,115,112,101,99,28,5,0,0,115,
- 40,0,0,0,0,5,4,1,8,1,14,1,2,1,10,1,
- 8,1,10,1,14,2,12,1,8,1,2,1,10,1,8,1,
- 6,1,8,1,8,5,12,2,12,1,6,1,122,20,80,97,
- 116,104,70,105,110,100,101,114,46,95,103,101,116,95,115,112,
- 101,99,99,4,0,0,0,0,0,0,0,0,0,0,0,6,
- 0,0,0,5,0,0,0,67,0,0,0,115,100,0,0,0,
- 124,2,100,1,117,0,114,14,116,0,106,1,125,2,124,0,
- 160,2,124,1,124,2,124,3,161,3,125,4,124,4,100,1,
- 117,0,114,40,100,1,83,0,124,4,106,3,100,1,117,0,
- 114,92,124,4,106,4,125,5,124,5,114,86,100,1,124,4,
- 95,5,116,6,124,1,124,5,124,0,106,2,131,3,124,4,
- 95,4,124,4,83,0,100,1,83,0,110,4,124,4,83,0,
- 100,1,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,8,0,0,0,114,43,0,
- 0,0,114,58,1,0,0,114,140,0,0,0,114,178,0,0,
- 0,114,181,0,0,0,114,22,1,0,0,41,6,114,193,0,
- 0,0,114,139,0,0,0,114,43,0,0,0,114,202,0,0,
- 0,114,187,0,0,0,114,57,1,0,0,114,3,0,0,0,
- 114,3,0,0,0,114,6,0,0,0,114,203,0,0,0,60,
- 5,0,0,115,26,0,0,0,0,6,8,1,6,1,14,1,
- 8,1,4,1,10,1,6,1,4,3,6,1,16,1,4,2,
- 6,2,122,20,80,97,116,104,70,105,110,100,101,114,46,102,
- 105,110,100,95,115,112,101,99,99,3,0,0,0,0,0,0,
- 0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,0,
- 0,115,30,0,0,0,124,0,160,0,124,1,124,2,161,2,
- 125,3,124,3,100,1,117,0,114,24,100,1,83,0,124,3,
- 106,1,83,0,41,2,122,170,102,105,110,100,32,116,104,101,
- 32,109,111,100,117,108,101,32,111,110,32,115,121,115,46,112,
- 97,116,104,32,111,114,32,39,112,97,116,104,39,32,98,97,
- 115,101,100,32,111,110,32,115,121,115,46,112,97,116,104,95,
- 104,111,111,107,115,32,97,110,100,10,32,32,32,32,32,32,
- 32,32,115,121,115,46,112,97,116,104,95,105,109,112,111,114,
- 116,101,114,95,99,97,99,104,101,46,10,10,32,32,32,32,
- 32,32,32,32,84,104,105,115,32,109,101,116,104,111,100,32,
- 105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,
- 85,115,101,32,102,105,110,100,95,115,112,101,99,40,41,32,
- 105,110,115,116,101,97,100,46,10,10,32,32,32,32,32,32,
- 32,32,78,114,204,0,0,0,114,205,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,206,0,0,
- 0,84,5,0,0,115,8,0,0,0,0,8,12,1,8,1,
- 4,1,122,22,80,97,116,104,70,105,110,100,101,114,46,102,
- 105,110,100,95,109,111,100,117,108,101,99,1,0,0,0,0,
- 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,79,
- 0,0,0,115,24,0,0,0,100,1,100,2,108,0,109,1,
- 125,3,1,0,124,3,106,2,124,1,124,2,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,72,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,59,1,0,0,218,18,102,
- 105,110,100,95,100,105,115,116,114,105,98,117,116,105,111,110,
- 115,41,4,114,193,0,0,0,114,119,0,0,0,114,120,0,
- 0,0,114,59,1,0,0,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,114,60,1,0,0,97,5,0,0,115,
- 4,0,0,0,0,10,12,1,122,29,80,97,116,104,70,105,
- 110,100,101,114,46,102,105,110,100,95,100,105,115,116,114,105,
- 98,117,116,105,111,110,115,41,1,78,41,2,78,78,41,1,
- 78,41,13,114,125,0,0,0,114,124,0,0,0,114,126,0,
- 0,0,114,127,0,0,0,114,207,0,0,0,114,46,1,0,
- 0,114,52,1,0,0,114,54,1,0,0,114,55,1,0,0,
- 114,58,1,0,0,114,203,0,0,0,114,206,0,0,0,114,
- 60,1,0,0,114,3,0,0,0,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,114,45,1,0,0,220,4,0,
- 0,115,34,0,0,0,8,2,4,2,2,1,10,9,2,1,
- 10,12,2,1,10,21,2,1,10,14,2,1,12,31,2,1,
- 12,23,2,1,12,12,2,1,114,45,1,0,0,99,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,
- 0,0,64,0,0,0,115,90,0,0,0,101,0,90,1,100,
- 0,90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,
- 4,100,5,132,0,90,5,101,6,90,7,100,6,100,7,132,
- 0,90,8,100,8,100,9,132,0,90,9,100,19,100,11,100,
- 12,132,1,90,10,100,13,100,14,132,0,90,11,101,12,100,
- 15,100,16,132,0,131,1,90,13,100,17,100,18,132,0,90,
- 14,100,10,83,0,41,20,218,10,70,105,108,101,70,105,110,
- 100,101,114,122,172,70,105,108,101,45,98,97,115,101,100,32,
- 102,105,110,100,101,114,46,10,10,32,32,32,32,73,110,116,
- 101,114,97,99,116,105,111,110,115,32,119,105,116,104,32,116,
- 104,101,32,102,105,108,101,32,115,121,115,116,101,109,32,97,
- 114,101,32,99,97,99,104,101,100,32,102,111,114,32,112,101,
- 114,102,111,114,109,97,110,99,101,44,32,98,101,105,110,103,
- 10,32,32,32,32,114,101,102,114,101,115,104,101,100,32,119,
- 104,101,110,32,116,104,101,32,100,105,114,101,99,116,111,114,
- 121,32,116,104,101,32,102,105,110,100,101,114,32,105,115,32,
- 104,97,110,100,108,105,110,103,32,104,97,115,32,98,101,101,
- 110,32,109,111,100,105,102,105,101,100,46,10,10,32,32,32,
- 32,99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,
- 0,0,6,0,0,0,7,0,0,0,115,84,0,0,0,103,
- 0,125,3,124,2,68,0,93,32,92,2,137,0,125,4,124,
- 3,160,0,135,0,102,1,100,1,100,2,132,8,124,4,68,
- 0,131,1,161,1,1,0,113,8,124,3,124,0,95,1,124,
- 1,112,54,100,3,124,0,95,2,100,4,124,0,95,3,116,
- 4,131,0,124,0,95,5,116,4,131,0,124,0,95,6,100,
- 5,83,0,41,6,122,154,73,110,105,116,105,97,108,105,122,
- 101,32,119,105,116,104,32,116,104,101,32,112,97,116,104,32,
- 116,111,32,115,101,97,114,99,104,32,111,110,32,97,110,100,
- 32,97,32,118,97,114,105,97,98,108,101,32,110,117,109,98,
- 101,114,32,111,102,10,32,32,32,32,32,32,32,32,50,45,
- 116,117,112,108,101,115,32,99,111,110,116,97,105,110,105,110,
- 103,32,116,104,101,32,108,111,97,100,101,114,32,97,110,100,
- 32,116,104,101,32,102,105,108,101,32,115,117,102,102,105,120,
- 101,115,32,116,104,101,32,108,111,97,100,101,114,10,32,32,
- 32,32,32,32,32,32,114,101,99,111,103,110,105,122,101,115,
- 46,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,3,0,0,0,51,0,0,0,115,22,0,0,0,124,
- 0,93,14,125,1,124,1,136,0,102,2,86,0,1,0,113,
- 2,100,0,83,0,114,109,0,0,0,114,3,0,0,0,114,
- 16,1,0,0,169,1,114,140,0,0,0,114,3,0,0,0,
- 114,6,0,0,0,114,19,1,0,0,126,5,0,0,115,4,
- 0,0,0,4,0,2,0,122,38,70,105,108,101,70,105,110,
- 100,101,114,46,95,95,105,110,105,116,95,95,46,60,108,111,
- 99,97,108,115,62,46,60,103,101,110,101,120,112,114,62,114,
- 70,0,0,0,114,104,0,0,0,78,41,7,114,167,0,0,
- 0,218,8,95,108,111,97,100,101,114,115,114,43,0,0,0,
- 218,11,95,112,97,116,104,95,109,116,105,109,101,218,3,115,
- 101,116,218,11,95,112,97,116,104,95,99,97,99,104,101,218,
- 19,95,114,101,108,97,120,101,100,95,112,97,116,104,95,99,
- 97,99,104,101,41,5,114,118,0,0,0,114,43,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,189,0,0,0,114,3,
- 0,0,0,114,62,1,0,0,114,6,0,0,0,114,209,0,
- 0,0,120,5,0,0,115,16,0,0,0,0,4,4,1,12,
- 1,26,1,6,2,10,1,6,1,8,1,122,19,70,105,108,
- 101,70,105,110,100,101,114,46,95,95,105,110,105,116,95,95,
- 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
- 0,2,0,0,0,67,0,0,0,115,10,0,0,0,100,1,
- 124,0,95,0,100,2,83,0,41,3,122,31,73,110,118,97,
- 108,105,100,97,116,101,32,116,104,101,32,100,105,114,101,99,
- 116,111,114,121,32,109,116,105,109,101,46,114,104,0,0,0,
- 78,41,1,114,64,1,0,0,114,246,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,114,46,1,0,
- 0,134,5,0,0,115,2,0,0,0,0,2,122,28,70,105,
- 108,101,70,105,110,100,101,114,46,105,110,118,97,108,105,100,
- 97,116,101,95,99,97,99,104,101,115,99,2,0,0,0,0,
- 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,
- 0,0,0,115,42,0,0,0,124,0,160,0,124,1,161,1,
- 125,2,124,2,100,1,117,0,114,26,100,1,103,0,102,2,
- 83,0,124,2,106,1,124,2,106,2,112,38,103,0,102,2,
- 83,0,41,2,122,197,84,114,121,32,116,111,32,102,105,110,
- 100,32,97,32,108,111,97,100,101,114,32,102,111,114,32,116,
- 104,101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,
- 117,108,101,44,32,111,114,32,116,104,101,32,110,97,109,101,
- 115,112,97,99,101,10,32,32,32,32,32,32,32,32,112,97,
- 99,107,97,103,101,32,112,111,114,116,105,111,110,115,46,32,
- 82,101,116,117,114,110,115,32,40,108,111,97,100,101,114,44,
- 32,108,105,115,116,45,111,102,45,112,111,114,116,105,111,110,
- 115,41,46,10,10,32,32,32,32,32,32,32,32,84,104,105,
- 115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,
- 101,99,97,116,101,100,46,32,32,85,115,101,32,102,105,110,
- 100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,100,
- 46,10,10,32,32,32,32,32,32,32,32,78,41,3,114,203,
- 0,0,0,114,140,0,0,0,114,178,0,0,0,41,3,114,
- 118,0,0,0,114,139,0,0,0,114,187,0,0,0,114,3,
- 0,0,0,114,3,0,0,0,114,6,0,0,0,114,137,0,
- 0,0,140,5,0,0,115,8,0,0,0,0,7,10,1,8,
- 1,8,1,122,22,70,105,108,101,70,105,110,100,101,114,46,
- 102,105,110,100,95,108,111,97,100,101,114,99,6,0,0,0,
- 0,0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,
- 67,0,0,0,115,26,0,0,0,124,1,124,2,124,3,131,
- 2,125,6,116,0,124,2,124,3,124,6,124,4,100,1,141,
- 4,83,0,41,2,78,114,177,0,0,0,41,1,114,190,0,
- 0,0,41,7,114,118,0,0,0,114,188,0,0,0,114,139,
- 0,0,0,114,43,0,0,0,90,4,115,109,115,108,114,202,
- 0,0,0,114,140,0,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,6,0,0,0,114,58,1,0,0,152,5,0,0,
- 115,8,0,0,0,0,1,10,1,8,1,2,255,122,20,70,
- 105,108,101,70,105,110,100,101,114,46,95,103,101,116,95,115,
- 112,101,99,78,99,3,0,0,0,0,0,0,0,0,0,0,
- 0,14,0,0,0,8,0,0,0,67,0,0,0,115,96,1,
- 0,0,100,1,125,3,124,1,160,0,100,2,161,1,100,3,
- 25,0,125,4,122,24,116,1,124,0,106,2,112,34,116,3,
- 160,4,161,0,131,1,106,5,125,5,87,0,110,22,4,0,
- 116,6,121,64,1,0,1,0,1,0,100,4,125,5,89,0,
- 110,2,48,0,124,5,124,0,106,7,107,3,114,90,124,0,
- 160,8,161,0,1,0,124,5,124,0,95,7,116,9,131,0,
- 114,112,124,0,106,10,125,6,124,4,160,11,161,0,125,7,
- 110,10,124,0,106,12,125,6,124,4,125,7,124,7,124,6,
- 118,0,114,216,116,13,124,0,106,2,124,4,131,2,125,8,
- 124,0,106,14,68,0,93,58,92,2,125,9,125,10,100,5,
- 124,9,23,0,125,11,116,13,124,8,124,11,131,2,125,12,
- 116,15,124,12,131,1,114,148,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,148,116,17,124,8,131,1,125,3,124,0,106,14,68,0,
- 93,82,92,2,125,9,125,10,116,13,124,0,106,2,124,4,
- 124,9,23,0,131,2,125,12,116,18,106,19,100,6,124,12,
- 100,3,100,7,141,3,1,0,124,7,124,9,23,0,124,6,
- 118,0,114,222,116,15,124,12,131,1,114,222,124,0,160,16,
- 124,10,124,1,124,12,100,8,124,2,161,5,2,0,1,0,
- 83,0,113,222,124,3,144,1,114,92,116,18,160,19,100,9,
- 124,8,161,2,1,0,116,18,160,20,124,1,100,8,161,2,
- 125,13,124,8,103,1,124,13,95,21,124,13,83,0,100,8,
- 83,0,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,70,0,0,0,114,27,0,0,0,
- 114,104,0,0,0,114,209,0,0,0,122,9,116,114,121,105,
- 110,103,32,123,125,41,1,90,9,118,101,114,98,111,115,105,
- 116,121,78,122,25,112,111,115,115,105,98,108,101,32,110,97,
- 109,101,115,112,97,99,101,32,102,111,114,32,123,125,41,22,
- 114,40,0,0,0,114,48,0,0,0,114,43,0,0,0,114,
- 2,0,0,0,114,54,0,0,0,114,10,1,0,0,114,49,
- 0,0,0,114,64,1,0,0,218,11,95,102,105,108,108,95,
- 99,97,99,104,101,114,7,0,0,0,114,67,1,0,0,114,
- 105,0,0,0,114,66,1,0,0,114,37,0,0,0,114,63,
- 1,0,0,114,53,0,0,0,114,58,1,0,0,114,55,0,
- 0,0,114,134,0,0,0,114,149,0,0,0,114,183,0,0,
- 0,114,178,0,0,0,41,14,114,118,0,0,0,114,139,0,
- 0,0,114,202,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,169,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,17,1,0,0,114,188,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,187,0,0,0,
- 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
- 203,0,0,0,157,5,0,0,115,74,0,0,0,0,5,4,
- 1,14,1,2,1,24,1,12,1,10,1,10,1,8,1,6,
- 2,6,1,6,1,10,2,6,1,4,2,8,1,12,1,14,
- 1,8,1,10,1,8,1,26,4,8,2,14,1,16,1,16,
- 1,12,1,8,1,10,1,2,0,2,255,10,2,6,1,12,
- 1,12,1,8,1,4,1,122,20,70,105,108,101,70,105,110,
- 100,101,114,46,102,105,110,100,95,115,112,101,99,99,1,0,
- 0,0,0,0,0,0,0,0,0,0,9,0,0,0,10,0,
- 0,0,67,0,0,0,115,188,0,0,0,124,0,106,0,125,
- 1,122,22,116,1,160,2,124,1,112,22,116,1,160,3,161,
- 0,161,1,125,2,87,0,110,28,4,0,116,4,116,5,116,
- 6,102,3,121,56,1,0,1,0,1,0,103,0,125,2,89,
- 0,110,2,48,0,116,7,106,8,160,9,100,1,161,1,115,
- 82,116,10,124,2,131,1,124,0,95,11,110,74,116,10,131,
- 0,125,3,124,2,68,0,93,56,125,4,124,4,160,12,100,
- 2,161,1,92,3,125,5,125,6,125,7,124,6,114,134,100,
- 3,160,13,124,5,124,7,160,14,161,0,161,2,125,8,110,
- 4,124,5,125,8,124,3,160,15,124,8,161,1,1,0,113,
- 92,124,3,124,0,95,11,116,7,106,8,160,9,116,16,161,
- 1,114,184,100,4,100,5,132,0,124,2,68,0,131,1,124,
- 0,95,17,100,6,83,0,41,7,122,68,70,105,108,108,32,
- 116,104,101,32,99,97,99,104,101,32,111,102,32,112,111,116,
- 101,110,116,105,97,108,32,109,111,100,117,108,101,115,32,97,
- 110,100,32,112,97,99,107,97,103,101,115,32,102,111,114,32,
- 116,104,105,115,32,100,105,114,101,99,116,111,114,121,46,114,
- 0,0,0,0,114,70,0,0,0,114,60,0,0,0,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4,
- 0,0,0,83,0,0,0,115,20,0,0,0,104,0,124,0,
- 93,12,125,1,124,1,160,0,161,0,146,2,113,4,83,0,
- 114,3,0,0,0,41,1,114,105,0,0,0,41,2,114,31,
- 0,0,0,90,2,102,110,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,218,9,60,115,101,116,99,111,109,112,
- 62,234,5,0,0,115,4,0,0,0,6,0,2,0,122,41,
- 70,105,108,101,70,105,110,100,101,114,46,95,102,105,108,108,
- 95,99,97,99,104,101,46,60,108,111,99,97,108,115,62,46,
- 60,115,101,116,99,111,109,112,62,78,41,18,114,43,0,0,
- 0,114,2,0,0,0,114,7,1,0,0,114,54,0,0,0,
- 114,3,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,8,0,0,0,114,
- 9,0,0,0,114,10,0,0,0,114,65,1,0,0,114,66,
- 1,0,0,114,100,0,0,0,114,61,0,0,0,114,105,0,
- 0,0,218,3,97,100,100,114,11,0,0,0,114,67,1,0,
- 0,41,9,114,118,0,0,0,114,43,0,0,0,114,8,1,
- 0,0,90,21,108,111,119,101,114,95,115,117,102,102,105,120,
- 95,99,111,110,116,101,110,116,115,114,41,1,0,0,114,116,
- 0,0,0,114,29,1,0,0,114,17,1,0,0,90,8,110,
- 101,119,95,110,97,109,101,114,3,0,0,0,114,3,0,0,
- 0,114,6,0,0,0,114,69,1,0,0,205,5,0,0,115,
- 34,0,0,0,0,2,6,1,2,1,22,1,18,3,10,3,
- 12,1,12,7,6,1,8,1,16,1,4,1,18,2,4,1,
- 12,1,6,1,12,1,122,22,70,105,108,101,70,105,110,100,
- 101,114,46,95,102,105,108,108,95,99,97,99,104,101,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,
- 0,0,0,7,0,0,0,115,18,0,0,0,135,0,135,1,
- 102,2,100,1,100,2,132,8,125,2,124,2,83,0,41,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,1,0,0,0,4,0,0,0,19,0,
- 0,0,115,36,0,0,0,116,0,124,0,131,1,115,20,116,
- 1,100,1,124,0,100,2,141,2,130,1,136,0,124,0,103,
- 1,136,1,162,1,82,0,142,0,83,0,41,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,47,0,0,
- 0,41,2,114,55,0,0,0,114,117,0,0,0,114,47,0,
- 0,0,169,2,114,193,0,0,0,114,68,1,0,0,114,3,
- 0,0,0,114,6,0,0,0,218,24,112,97,116,104,95,104,
- 111,111,107,95,102,111,114,95,70,105,108,101,70,105,110,100,
- 101,114,246,5,0,0,115,6,0,0,0,0,2,8,1,12,
- 1,122,54,70,105,108,101,70,105,110,100,101,114,46,112,97,
- 116,104,95,104,111,111,107,46,60,108,111,99,97,108,115,62,
- 46,112,97,116,104,95,104,111,111,107,95,102,111,114,95,70,
- 105,108,101,70,105,110,100,101,114,114,3,0,0,0,41,3,
- 114,193,0,0,0,114,68,1,0,0,114,75,1,0,0,114,
- 3,0,0,0,114,74,1,0,0,114,6,0,0,0,218,9,
- 112,97,116,104,95,104,111,111,107,236,5,0,0,115,4,0,
- 0,0,0,10,14,6,122,20,70,105,108,101,70,105,110,100,
- 101,114,46,112,97,116,104,95,104,111,111,107,99,1,0,0,
+ 218,8,95,95,105,116,101,114,95,95,156,4,0,0,115,2,
+ 0,0,0,0,1,122,23,95,78,97,109,101,115,112,97,99,
+ 101,80,97,116,104,46,95,95,105,116,101,114,95,95,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,
+ 0,0,0,67,0,0,0,115,12,0,0,0,124,0,160,0,
+ 161,0,124,1,25,0,83,0,114,109,0,0,0,169,1,114,
+ 32,1,0,0,41,2,114,118,0,0,0,218,5,105,110,100,
+ 101,120,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,218,11,95,95,103,101,116,105,116,101,109,95,95,159,4,
+ 0,0,115,2,0,0,0,0,1,122,26,95,78,97,109,101,
+ 115,112,97,99,101,80,97,116,104,46,95,95,103,101,116,105,
+ 116,101,109,95,95,99,3,0,0,0,0,0,0,0,0,0,
+ 0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,14,
+ 0,0,0,124,2,124,0,106,0,124,1,60,0,100,0,83,
+ 0,114,109,0,0,0,41,1,114,24,1,0,0,41,3,114,
+ 118,0,0,0,114,35,1,0,0,114,43,0,0,0,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,218,11,95,
+ 95,115,101,116,105,116,101,109,95,95,162,4,0,0,115,2,
+ 0,0,0,0,1,122,26,95,78,97,109,101,115,112,97,99,
+ 101,80,97,116,104,46,95,95,115,101,116,105,116,101,109,95,
+ 95,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,
+ 0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,116,
+ 0,124,0,160,1,161,0,131,1,83,0,114,109,0,0,0,
+ 41,2,114,22,0,0,0,114,32,1,0,0,114,246,0,0,
+ 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
+ 218,7,95,95,108,101,110,95,95,165,4,0,0,115,2,0,
+ 0,0,0,1,122,22,95,78,97,109,101,115,112,97,99,101,
+ 80,97,116,104,46,95,95,108,101,110,95,95,99,1,0,0,
0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,
0,67,0,0,0,115,12,0,0,0,100,1,160,0,124,0,
- 106,1,161,1,83,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,61,0,
- 0,0,114,43,0,0,0,114,246,0,0,0,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,114,39,1,0,0,
- 254,5,0,0,115,2,0,0,0,0,1,122,19,70,105,108,
- 101,70,105,110,100,101,114,46,95,95,114,101,112,114,95,95,
- 41,1,78,41,15,114,125,0,0,0,114,124,0,0,0,114,
- 126,0,0,0,114,127,0,0,0,114,209,0,0,0,114,46,
- 1,0,0,114,143,0,0,0,114,206,0,0,0,114,137,0,
- 0,0,114,58,1,0,0,114,203,0,0,0,114,69,1,0,
- 0,114,207,0,0,0,114,76,1,0,0,114,39,1,0,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,61,0,0,0,114,24,1,0,0,114,246,0,0,0,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
+ 8,95,95,114,101,112,114,95,95,168,4,0,0,115,2,0,
+ 0,0,0,1,122,23,95,78,97,109,101,115,112,97,99,101,
+ 80,97,116,104,46,95,95,114,101,112,114,95,95,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,
+ 0,0,67,0,0,0,115,12,0,0,0,124,1,124,0,160,
+ 0,161,0,118,0,83,0,114,109,0,0,0,114,34,1,0,
+ 0,169,2,114,118,0,0,0,218,4,105,116,101,109,114,3,
+ 0,0,0,114,3,0,0,0,114,6,0,0,0,218,12,95,
+ 95,99,111,110,116,97,105,110,115,95,95,171,4,0,0,115,
+ 2,0,0,0,0,1,122,27,95,78,97,109,101,115,112,97,
+ 99,101,80,97,116,104,46,95,95,99,111,110,116,97,105,110,
+ 115,95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,3,0,0,0,67,0,0,0,115,16,0,0,
+ 0,124,0,106,0,160,1,124,1,161,1,1,0,100,0,83,
+ 0,114,109,0,0,0,41,2,114,24,1,0,0,114,186,0,
+ 0,0,114,40,1,0,0,114,3,0,0,0,114,3,0,0,
+ 0,114,6,0,0,0,114,186,0,0,0,174,4,0,0,115,
+ 2,0,0,0,0,1,122,21,95,78,97,109,101,115,112,97,
+ 99,101,80,97,116,104,46,97,112,112,101,110,100,78,41,15,
+ 114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,114,
+ 127,0,0,0,114,209,0,0,0,114,30,1,0,0,114,25,
+ 1,0,0,114,32,1,0,0,114,33,1,0,0,114,36,1,
+ 0,0,114,37,1,0,0,114,38,1,0,0,114,39,1,0,
+ 0,114,42,1,0,0,114,186,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,
+ 22,1,0,0,116,4,0,0,115,24,0,0,0,8,1,4,
+ 6,8,6,8,10,8,4,8,13,8,3,8,3,8,3,8,
+ 3,8,3,8,3,114,22,1,0,0,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,64,
+ 0,0,0,115,80,0,0,0,101,0,90,1,100,0,90,2,
+ 100,1,100,2,132,0,90,3,101,4,100,3,100,4,132,0,
+ 131,1,90,5,100,5,100,6,132,0,90,6,100,7,100,8,
+ 132,0,90,7,100,9,100,10,132,0,90,8,100,11,100,12,
+ 132,0,90,9,100,13,100,14,132,0,90,10,100,15,100,16,
+ 132,0,90,11,100,17,83,0,41,18,218,16,95,78,97,109,
+ 101,115,112,97,99,101,76,111,97,100,101,114,99,4,0,0,
+ 0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,
+ 0,67,0,0,0,115,18,0,0,0,116,0,124,1,124,2,
+ 124,3,131,3,124,0,95,1,100,0,83,0,114,109,0,0,
+ 0,41,2,114,22,1,0,0,114,24,1,0,0,114,28,1,
+ 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,114,209,0,0,0,180,4,0,0,115,2,0,0,0,0,
+ 1,122,25,95,78,97,109,101,115,112,97,99,101,76,111,97,
+ 100,101,114,46,95,95,105,110,105,116,95,95,99,2,0,0,
+ 0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,
+ 0,67,0,0,0,115,12,0,0,0,100,1,160,0,124,1,
+ 106,1,161,1,83,0,41,2,122,115,82,101,116,117,114,110,
+ 32,114,101,112,114,32,102,111,114,32,116,104,101,32,109,111,
+ 100,117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,
+ 104,101,32,109,101,116,104,111,100,32,105,115,32,100,101,112,
+ 114,101,99,97,116,101,100,46,32,32,84,104,101,32,105,109,
+ 112,111,114,116,32,109,97,99,104,105,110,101,114,121,32,100,
+ 111,101,115,32,116,104,101,32,106,111,98,32,105,116,115,101,
+ 108,102,46,10,10,32,32,32,32,32,32,32,32,122,25,60,
+ 109,111,100,117,108,101,32,123,33,114,125,32,40,110,97,109,
+ 101,115,112,97,99,101,41,62,41,2,114,61,0,0,0,114,
+ 125,0,0,0,41,2,114,193,0,0,0,114,216,0,0,0,
+ 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,
+ 11,109,111,100,117,108,101,95,114,101,112,114,183,4,0,0,
+ 115,2,0,0,0,0,7,122,28,95,78,97,109,101,115,112,
+ 97,99,101,76,111,97,100,101,114,46,109,111,100,117,108,101,
+ 95,114,101,112,114,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,
+ 0,0,0,100,1,83,0,41,2,78,84,114,3,0,0,0,
+ 114,219,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,182,0,0,0,192,4,0,0,115,2,0,
+ 0,0,0,1,122,27,95,78,97,109,101,115,112,97,99,101,
+ 76,111,97,100,101,114,46,105,115,95,112,97,99,107,97,103,
+ 101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,
+ 1,83,0,41,2,78,114,39,0,0,0,114,3,0,0,0,
+ 114,219,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,229,0,0,0,195,4,0,0,115,2,0,
+ 0,0,0,1,122,27,95,78,97,109,101,115,112,97,99,101,
+ 76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,
+ 101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
+ 0,0,6,0,0,0,67,0,0,0,115,16,0,0,0,116,
+ 0,100,1,100,2,100,3,100,4,100,5,141,4,83,0,41,
+ 6,78,114,39,0,0,0,122,8,60,115,116,114,105,110,103,
+ 62,114,215,0,0,0,84,41,1,114,231,0,0,0,41,1,
+ 114,232,0,0,0,114,219,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,114,213,0,0,0,198,4,
+ 0,0,115,2,0,0,0,0,1,122,25,95,78,97,109,101,
+ 115,112,97,99,101,76,111,97,100,101,114,46,103,101,116,95,
+ 99,111,100,101,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,
+ 0,0,100,1,83,0,114,210,0,0,0,114,3,0,0,0,
+ 114,211,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,212,0,0,0,201,4,0,0,115,2,0,
+ 0,0,0,1,122,30,95,78,97,109,101,115,112,97,99,101,
+ 76,111,97,100,101,114,46,99,114,101,97,116,101,95,109,111,
+ 100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,
+ 0,0,100,0,83,0,114,109,0,0,0,114,3,0,0,0,
+ 114,253,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,217,0,0,0,204,4,0,0,115,2,0,
+ 0,0,0,1,122,28,95,78,97,109,101,115,112,97,99,101,
+ 76,111,97,100,101,114,46,101,120,101,99,95,109,111,100,117,
+ 108,101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,4,0,0,0,67,0,0,0,115,26,0,0,0,
+ 116,0,160,1,100,1,124,0,106,2,161,2,1,0,116,0,
+ 160,3,124,0,124,1,161,2,83,0,41,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,134,0,0,0,114,
+ 149,0,0,0,114,24,1,0,0,114,218,0,0,0,114,219,
+ 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,114,220,0,0,0,207,4,0,0,115,8,0,0,0,
+ 0,7,6,1,4,255,4,2,122,28,95,78,97,109,101,115,
+ 112,97,99,101,76,111,97,100,101,114,46,108,111,97,100,95,
+ 109,111,100,117,108,101,78,41,12,114,125,0,0,0,114,124,
+ 0,0,0,114,126,0,0,0,114,209,0,0,0,114,207,0,
+ 0,0,114,44,1,0,0,114,182,0,0,0,114,229,0,0,
+ 0,114,213,0,0,0,114,212,0,0,0,114,217,0,0,0,
+ 114,220,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,114,43,1,0,0,179,4,
+ 0,0,115,18,0,0,0,8,1,8,3,2,1,10,8,8,
+ 3,8,3,8,3,8,3,8,3,114,43,1,0,0,99,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
+ 0,0,0,64,0,0,0,115,118,0,0,0,101,0,90,1,
+ 100,0,90,2,100,1,90,3,101,4,100,2,100,3,132,0,
+ 131,1,90,5,101,4,100,4,100,5,132,0,131,1,90,6,
+ 101,4,100,6,100,7,132,0,131,1,90,7,101,4,100,8,
+ 100,9,132,0,131,1,90,8,101,4,100,19,100,11,100,12,
+ 132,1,131,1,90,9,101,4,100,20,100,13,100,14,132,1,
+ 131,1,90,10,101,4,100,21,100,15,100,16,132,1,131,1,
+ 90,11,101,4,100,17,100,18,132,0,131,1,90,12,100,10,
+ 83,0,41,22,218,10,80,97,116,104,70,105,110,100,101,114,
+ 122,62,77,101,116,97,32,112,97,116,104,32,102,105,110,100,
+ 101,114,32,102,111,114,32,115,121,115,46,112,97,116,104,32,
+ 97,110,100,32,112,97,99,107,97,103,101,32,95,95,112,97,
+ 116,104,95,95,32,97,116,116,114,105,98,117,116,101,115,46,
+ 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
+ 0,4,0,0,0,67,0,0,0,115,64,0,0,0,116,0,
+ 116,1,106,2,160,3,161,0,131,1,68,0,93,44,92,2,
+ 125,1,125,2,124,2,100,1,117,0,114,40,116,1,106,2,
+ 124,1,61,0,113,14,116,4,124,2,100,2,131,2,114,14,
+ 124,2,160,5,161,0,1,0,113,14,100,1,83,0,41,3,
+ 122,125,67,97,108,108,32,116,104,101,32,105,110,118,97,108,
+ 105,100,97,116,101,95,99,97,99,104,101,115,40,41,32,109,
+ 101,116,104,111,100,32,111,110,32,97,108,108,32,112,97,116,
+ 104,32,101,110,116,114,121,32,102,105,110,100,101,114,115,10,
+ 32,32,32,32,32,32,32,32,115,116,111,114,101,100,32,105,
+ 110,32,115,121,115,46,112,97,116,104,95,105,109,112,111,114,
+ 116,101,114,95,99,97,99,104,101,115,32,40,119,104,101,114,
+ 101,32,105,109,112,108,101,109,101,110,116,101,100,41,46,78,
+ 218,17,105,110,118,97,108,105,100,97,116,101,95,99,97,99,
+ 104,101,115,41,6,218,4,108,105,115,116,114,8,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,128,0,0,
+ 0,114,46,1,0,0,41,3,114,193,0,0,0,114,116,0,
+ 0,0,218,6,102,105,110,100,101,114,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,114,46,1,0,0,225,4,
+ 0,0,115,10,0,0,0,0,4,22,1,8,1,10,1,10,
+ 1,122,28,80,97,116,104,70,105,110,100,101,114,46,105,110,
+ 118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,99,
+ 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,
+ 9,0,0,0,67,0,0,0,115,82,0,0,0,116,0,106,
+ 1,100,1,117,1,114,28,116,0,106,1,115,28,116,2,160,
+ 3,100,2,116,4,161,2,1,0,116,0,106,1,68,0,93,
+ 42,125,2,122,14,124,2,124,1,131,1,87,0,2,0,1,
+ 0,83,0,4,0,116,5,121,74,1,0,1,0,1,0,89,
+ 0,113,34,89,0,113,34,48,0,113,34,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,8,0,
+ 0,0,218,10,112,97,116,104,95,104,111,111,107,115,114,74,
+ 0,0,0,114,75,0,0,0,114,138,0,0,0,114,117,0,
+ 0,0,41,3,114,193,0,0,0,114,43,0,0,0,90,4,
+ 104,111,111,107,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,218,11,95,112,97,116,104,95,104,111,111,107,115,
+ 235,4,0,0,115,16,0,0,0,0,3,16,1,12,1,10,
+ 1,2,1,14,1,12,1,12,2,122,22,80,97,116,104,70,
+ 105,110,100,101,114,46,95,112,97,116,104,95,104,111,111,107,
+ 115,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,
+ 0,0,8,0,0,0,67,0,0,0,115,100,0,0,0,124,
+ 1,100,1,107,2,114,42,122,12,116,0,160,1,161,0,125,
+ 1,87,0,110,20,4,0,116,2,121,40,1,0,1,0,1,
+ 0,89,0,100,2,83,0,48,0,122,14,116,3,106,4,124,
+ 1,25,0,125,2,87,0,110,38,4,0,116,5,121,94,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,110,2,48,0,124,
+ 2,83,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,39,0,0,0,78,41,
+ 7,114,2,0,0,0,114,54,0,0,0,114,3,1,0,0,
+ 114,8,0,0,0,114,48,1,0,0,218,8,75,101,121,69,
+ 114,114,111,114,114,52,1,0,0,41,3,114,193,0,0,0,
+ 114,43,0,0,0,114,50,1,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,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,248,
+ 4,0,0,115,22,0,0,0,0,8,8,1,2,1,12,1,
+ 12,3,8,1,2,1,14,1,12,1,10,1,16,1,122,31,
+ 80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,
+ 95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,99,
+ 3,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,
+ 4,0,0,0,67,0,0,0,115,82,0,0,0,116,0,124,
+ 2,100,1,131,2,114,26,124,2,160,1,124,1,161,1,92,
+ 2,125,3,125,4,110,14,124,2,160,2,124,1,161,1,125,
+ 3,103,0,125,4,124,3,100,0,117,1,114,60,116,3,160,
+ 4,124,1,124,3,161,2,83,0,116,3,160,5,124,1,100,
+ 0,161,2,125,5,124,4,124,5,95,6,124,5,83,0,41,
+ 2,78,114,137,0,0,0,41,7,114,128,0,0,0,114,137,
+ 0,0,0,114,206,0,0,0,114,134,0,0,0,114,201,0,
+ 0,0,114,183,0,0,0,114,178,0,0,0,41,6,114,193,
+ 0,0,0,114,139,0,0,0,114,50,1,0,0,114,140,0,
+ 0,0,114,141,0,0,0,114,187,0,0,0,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,218,16,95,108,101,
+ 103,97,99,121,95,103,101,116,95,115,112,101,99,14,5,0,
+ 0,115,18,0,0,0,0,4,10,1,16,2,10,1,4,1,
+ 8,1,12,1,12,1,6,1,122,27,80,97,116,104,70,105,
+ 110,100,101,114,46,95,108,101,103,97,99,121,95,103,101,116,
+ 95,115,112,101,99,78,99,4,0,0,0,0,0,0,0,0,
+ 0,0,0,9,0,0,0,5,0,0,0,67,0,0,0,115,
+ 166,0,0,0,103,0,125,4,124,2,68,0,93,134,125,5,
+ 116,0,124,5,116,1,116,2,102,2,131,2,115,28,113,8,
+ 124,0,160,3,124,5,161,1,125,6,124,6,100,1,117,1,
+ 114,8,116,4,124,6,100,2,131,2,114,70,124,6,160,5,
+ 124,1,124,3,161,2,125,7,110,12,124,0,160,6,124,1,
+ 124,6,161,2,125,7,124,7,100,1,117,0,114,92,113,8,
+ 124,7,106,7,100,1,117,1,114,110,124,7,2,0,1,0,
+ 83,0,124,7,106,8,125,8,124,8,100,1,117,0,114,132,
+ 116,9,100,3,131,1,130,1,124,4,160,10,124,8,161,1,
+ 1,0,113,8,116,11,160,12,124,1,100,1,161,2,125,7,
+ 124,4,124,7,95,8,124,7,83,0,41,4,122,63,70,105,
+ 110,100,32,116,104,101,32,108,111,97,100,101,114,32,111,114,
+ 32,110,97,109,101,115,112,97,99,101,95,112,97,116,104,32,
+ 102,111,114,32,116,104,105,115,32,109,111,100,117,108,101,47,
+ 112,97,99,107,97,103,101,32,110,97,109,101,46,78,114,203,
+ 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,161,0,0,0,114,
+ 84,0,0,0,218,5,98,121,116,101,115,114,54,1,0,0,
+ 114,128,0,0,0,114,203,0,0,0,114,55,1,0,0,114,
+ 140,0,0,0,114,178,0,0,0,114,117,0,0,0,114,167,
+ 0,0,0,114,134,0,0,0,114,183,0,0,0,41,9,114,
+ 193,0,0,0,114,139,0,0,0,114,43,0,0,0,114,202,
+ 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,50,1,0,0,114,
+ 187,0,0,0,114,141,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,218,9,95,103,101,116,95,115,
+ 112,101,99,29,5,0,0,115,40,0,0,0,0,5,4,1,
+ 8,1,14,1,2,1,10,1,8,1,10,1,14,2,12,1,
+ 8,1,2,1,10,1,8,1,6,1,8,1,8,5,12,2,
+ 12,1,6,1,122,20,80,97,116,104,70,105,110,100,101,114,
+ 46,95,103,101,116,95,115,112,101,99,99,4,0,0,0,0,
+ 0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,67,
+ 0,0,0,115,100,0,0,0,124,2,100,1,117,0,114,14,
+ 116,0,106,1,125,2,124,0,160,2,124,1,124,2,124,3,
+ 161,3,125,4,124,4,100,1,117,0,114,40,100,1,83,0,
+ 124,4,106,3,100,1,117,0,114,92,124,4,106,4,125,5,
+ 124,5,114,86,100,1,124,4,95,5,116,6,124,1,124,5,
+ 124,0,106,2,131,3,124,4,95,4,124,4,83,0,100,1,
+ 83,0,110,4,124,4,83,0,100,1,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,8,0,0,0,114,43,0,0,0,114,58,1,0,0,114,
+ 140,0,0,0,114,178,0,0,0,114,181,0,0,0,114,22,
+ 1,0,0,41,6,114,193,0,0,0,114,139,0,0,0,114,
+ 43,0,0,0,114,202,0,0,0,114,187,0,0,0,114,57,
+ 1,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,114,203,0,0,0,61,5,0,0,115,26,0,0,0,
+ 0,6,8,1,6,1,14,1,8,1,4,1,10,1,6,1,
+ 4,3,6,1,16,1,4,2,6,2,122,20,80,97,116,104,
+ 70,105,110,100,101,114,46,102,105,110,100,95,115,112,101,99,
+ 99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+ 0,4,0,0,0,67,0,0,0,115,30,0,0,0,124,0,
+ 160,0,124,1,124,2,161,2,125,3,124,3,100,1,117,0,
+ 114,24,100,1,83,0,124,3,106,1,83,0,41,2,122,170,
+ 102,105,110,100,32,116,104,101,32,109,111,100,117,108,101,32,
+ 111,110,32,115,121,115,46,112,97,116,104,32,111,114,32,39,
+ 112,97,116,104,39,32,98,97,115,101,100,32,111,110,32,115,
+ 121,115,46,112,97,116,104,95,104,111,111,107,115,32,97,110,
+ 100,10,32,32,32,32,32,32,32,32,115,121,115,46,112,97,
+ 116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,
+ 101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,
+ 32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,
+ 99,97,116,101,100,46,32,32,85,115,101,32,102,105,110,100,
+ 95,115,112,101,99,40,41,32,105,110,115,116,101,97,100,46,
+ 10,10,32,32,32,32,32,32,32,32,78,114,204,0,0,0,
+ 114,205,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,206,0,0,0,85,5,0,0,115,8,0,
+ 0,0,0,8,12,1,8,1,4,1,122,22,80,97,116,104,
+ 70,105,110,100,101,114,46,102,105,110,100,95,109,111,100,117,
+ 108,101,99,1,0,0,0,0,0,0,0,0,0,0,0,4,
+ 0,0,0,4,0,0,0,79,0,0,0,115,28,0,0,0,
+ 100,1,100,2,108,0,109,1,125,3,1,0,124,3,106,2,
+ 124,1,105,0,124,2,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,72,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,59,1,0,0,218,18,102,105,110,100,95,
+ 100,105,115,116,114,105,98,117,116,105,111,110,115,41,4,114,
+ 193,0,0,0,114,119,0,0,0,114,120,0,0,0,114,59,
+ 1,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,114,60,1,0,0,98,5,0,0,115,4,0,0,0,
+ 0,10,12,1,122,29,80,97,116,104,70,105,110,100,101,114,
+ 46,102,105,110,100,95,100,105,115,116,114,105,98,117,116,105,
+ 111,110,115,41,1,78,41,2,78,78,41,1,78,41,13,114,
+ 125,0,0,0,114,124,0,0,0,114,126,0,0,0,114,127,
+ 0,0,0,114,207,0,0,0,114,46,1,0,0,114,52,1,
+ 0,0,114,54,1,0,0,114,55,1,0,0,114,58,1,0,
+ 0,114,203,0,0,0,114,206,0,0,0,114,60,1,0,0,
114,3,0,0,0,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,61,1,0,0,111,5,0,0,115,22,0,
- 0,0,8,2,4,7,8,14,8,4,4,2,8,12,8,5,
- 10,48,8,31,2,1,10,17,114,61,1,0,0,99,4,0,
- 0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,0,
- 0,0,67,0,0,0,115,144,0,0,0,124,0,160,0,100,
- 1,161,1,125,4,124,0,160,0,100,2,161,1,125,5,124,
- 4,115,66,124,5,114,36,124,5,106,1,125,4,110,30,124,
- 2,124,3,107,2,114,56,116,2,124,1,124,2,131,2,125,
- 4,110,10,116,3,124,1,124,2,131,2,125,4,124,5,115,
- 84,116,4,124,1,124,2,124,4,100,3,141,3,125,5,122,
- 36,124,5,124,0,100,2,60,0,124,4,124,0,100,1,60,
- 0,124,2,124,0,100,4,60,0,124,3,124,0,100,5,60,
- 0,87,0,110,18,4,0,116,5,121,138,1,0,1,0,1,
- 0,89,0,110,2,48,0,100,0,83,0,41,6,78,218,10,
- 95,95,108,111,97,100,101,114,95,95,218,8,95,95,115,112,
- 101,99,95,95,114,62,1,0,0,90,8,95,95,102,105,108,
- 101,95,95,90,10,95,95,99,97,99,104,101,100,95,95,41,
- 6,218,3,103,101,116,114,140,0,0,0,114,15,1,0,0,
- 114,9,1,0,0,114,190,0,0,0,218,9,69,120,99,101,
- 112,116,105,111,110,41,6,90,2,110,115,114,116,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,140,0,0,0,114,187,0,0,0,114,
- 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,14,
- 95,102,105,120,95,117,112,95,109,111,100,117,108,101,4,6,
- 0,0,115,34,0,0,0,0,2,10,1,10,1,4,1,4,
- 1,8,1,8,1,12,2,10,1,4,1,14,1,2,1,8,
- 1,8,1,8,1,12,1,12,2,114,81,1,0,0,99,0,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,
- 0,0,0,67,0,0,0,115,38,0,0,0,116,0,116,1,
- 160,2,161,0,102,2,125,0,116,3,116,4,102,2,125,1,
- 116,5,116,6,102,2,125,2,124,0,124,1,124,2,103,3,
- 83,0,41,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,252,0,0,0,114,163,0,0,
- 0,218,18,101,120,116,101,110,115,105,111,110,95,115,117,102,
- 102,105,120,101,115,114,9,1,0,0,114,101,0,0,0,114,
- 15,1,0,0,114,88,0,0,0,41,3,90,10,101,120,116,
- 101,110,115,105,111,110,115,90,6,115,111,117,114,99,101,90,
- 8,98,121,116,101,99,111,100,101,114,3,0,0,0,114,3,
- 0,0,0,114,6,0,0,0,114,184,0,0,0,27,6,0,
- 0,115,8,0,0,0,0,5,12,1,8,1,8,1,114,184,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 12,0,0,0,9,0,0,0,67,0,0,0,115,176,1,0,
- 0,124,0,97,0,116,0,106,1,97,1,116,0,106,2,97,
- 2,116,1,106,3,116,4,25,0,125,1,100,1,68,0,93,
- 48,125,2,124,2,116,1,106,3,118,1,114,56,116,0,160,
- 5,124,2,161,1,125,3,110,10,116,1,106,3,124,2,25,
- 0,125,3,116,6,124,1,124,2,124,3,131,3,1,0,113,
- 30,100,2,100,3,103,1,102,2,100,4,100,5,100,3,103,
- 2,102,2,102,2,125,4,124,4,68,0,93,108,92,2,125,
- 5,125,6,116,7,100,6,100,7,132,0,124,6,68,0,131,
- 1,131,1,115,136,74,0,130,1,124,6,100,8,25,0,125,
- 7,124,5,116,1,106,3,118,0,114,170,116,1,106,3,124,
- 5,25,0,125,8,1,0,113,224,113,106,122,20,116,0,160,
- 5,124,5,161,1,125,8,87,0,1,0,113,224,87,0,113,
- 106,4,0,116,8,121,212,1,0,1,0,1,0,89,0,113,
- 106,89,0,113,106,48,0,113,106,116,8,100,9,131,1,130,
- 1,116,6,124,1,100,10,124,8,131,3,1,0,116,6,124,
- 1,100,11,124,7,131,3,1,0,116,6,124,1,100,12,100,
- 13,160,9,124,6,161,1,131,3,1,0,116,6,124,1,100,
- 14,100,15,100,16,132,0,124,6,68,0,131,1,131,3,1,
- 0,116,0,160,5,100,17,161,1,125,9,116,6,124,1,100,
- 17,124,9,131,3,1,0,116,0,160,5,100,18,161,1,125,
- 10,116,6,124,1,100,18,124,10,131,3,1,0,124,5,100,
- 4,107,2,144,1,114,108,116,0,160,5,100,19,161,1,125,
- 11,116,6,124,1,100,20,124,11,131,3,1,0,116,6,124,
- 1,100,21,116,10,131,0,131,3,1,0,116,11,160,12,116,
- 2,160,13,161,0,161,1,1,0,124,5,100,4,107,2,144,
- 1,114,172,116,14,160,15,100,22,161,1,1,0,100,23,116,
- 11,118,0,144,1,114,172,100,24,116,16,95,17,100,25,83,
- 0,41,26,122,205,83,101,116,117,112,32,116,104,101,32,112,
- 97,116,104,45,98,97,115,101,100,32,105,109,112,111,114,116,
- 101,114,115,32,102,111,114,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,10,32,32,32,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,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,79,116,
- 104,101,114,32,99,111,109,112,111,110,101,110,116,115,32,97,
- 114,101,32,101,120,116,114,97,99,116,101,100,32,102,114,111,
- 109,32,116,104,101,32,99,111,114,101,32,98,111,111,116,115,
- 116,114,97,112,32,109,111,100,117,108,101,46,10,10,32,32,
- 32,32,41,4,114,63,0,0,0,114,74,0,0,0,218,8,
- 98,117,105,108,116,105,110,115,114,160,0,0,0,90,5,112,
- 111,115,105,120,250,1,47,90,2,110,116,250,1,92,99,1,
- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,
- 0,0,0,115,0,0,0,115,26,0,0,0,124,0,93,18,
- 125,1,116,0,124,1,131,1,100,0,107,2,86,0,1,0,
- 113,2,100,1,83,0,41,2,114,38,0,0,0,78,41,1,
- 114,22,0,0,0,41,2,114,31,0,0,0,114,94,0,0,
+ 6,0,0,0,114,45,1,0,0,221,4,0,0,115,34,0,
+ 0,0,8,2,4,2,2,1,10,9,2,1,10,12,2,1,
+ 10,21,2,1,10,14,2,1,12,31,2,1,12,23,2,1,
+ 12,12,2,1,114,45,1,0,0,99,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,3,0,0,0,64,0,
+ 0,0,115,90,0,0,0,101,0,90,1,100,0,90,2,100,
+ 1,90,3,100,2,100,3,132,0,90,4,100,4,100,5,132,
+ 0,90,5,101,6,90,7,100,6,100,7,132,0,90,8,100,
+ 8,100,9,132,0,90,9,100,19,100,11,100,12,132,1,90,
+ 10,100,13,100,14,132,0,90,11,101,12,100,15,100,16,132,
+ 0,131,1,90,13,100,17,100,18,132,0,90,14,100,10,83,
+ 0,41,20,218,10,70,105,108,101,70,105,110,100,101,114,122,
+ 172,70,105,108,101,45,98,97,115,101,100,32,102,105,110,100,
+ 101,114,46,10,10,32,32,32,32,73,110,116,101,114,97,99,
+ 116,105,111,110,115,32,119,105,116,104,32,116,104,101,32,102,
+ 105,108,101,32,115,121,115,116,101,109,32,97,114,101,32,99,
+ 97,99,104,101,100,32,102,111,114,32,112,101,114,102,111,114,
+ 109,97,110,99,101,44,32,98,101,105,110,103,10,32,32,32,
+ 32,114,101,102,114,101,115,104,101,100,32,119,104,101,110,32,
+ 116,104,101,32,100,105,114,101,99,116,111,114,121,32,116,104,
+ 101,32,102,105,110,100,101,114,32,105,115,32,104,97,110,100,
+ 108,105,110,103,32,104,97,115,32,98,101,101,110,32,109,111,
+ 100,105,102,105,101,100,46,10,10,32,32,32,32,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,
+ 0,0,7,0,0,0,115,84,0,0,0,103,0,125,3,124,
+ 2,68,0,93,32,92,2,137,0,125,4,124,3,160,0,135,
+ 0,102,1,100,1,100,2,132,8,124,4,68,0,131,1,161,
+ 1,1,0,113,8,124,3,124,0,95,1,124,1,112,54,100,
+ 3,124,0,95,2,100,4,124,0,95,3,116,4,131,0,124,
+ 0,95,5,116,4,131,0,124,0,95,6,100,5,83,0,41,
+ 6,122,154,73,110,105,116,105,97,108,105,122,101,32,119,105,
+ 116,104,32,116,104,101,32,112,97,116,104,32,116,111,32,115,
+ 101,97,114,99,104,32,111,110,32,97,110,100,32,97,32,118,
+ 97,114,105,97,98,108,101,32,110,117,109,98,101,114,32,111,
+ 102,10,32,32,32,32,32,32,32,32,50,45,116,117,112,108,
+ 101,115,32,99,111,110,116,97,105,110,105,110,103,32,116,104,
+ 101,32,108,111,97,100,101,114,32,97,110,100,32,116,104,101,
+ 32,102,105,108,101,32,115,117,102,102,105,120,101,115,32,116,
+ 104,101,32,108,111,97,100,101,114,10,32,32,32,32,32,32,
+ 32,32,114,101,99,111,103,110,105,122,101,115,46,99,1,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,
+ 0,0,51,0,0,0,115,22,0,0,0,124,0,93,14,125,
+ 1,124,1,136,0,102,2,86,0,1,0,113,2,100,0,83,
+ 0,114,109,0,0,0,114,3,0,0,0,114,16,1,0,0,
+ 169,1,114,140,0,0,0,114,3,0,0,0,114,6,0,0,
+ 0,114,19,1,0,0,127,5,0,0,115,4,0,0,0,4,
+ 0,2,0,122,38,70,105,108,101,70,105,110,100,101,114,46,
+ 95,95,105,110,105,116,95,95,46,60,108,111,99,97,108,115,
+ 62,46,60,103,101,110,101,120,112,114,62,114,70,0,0,0,
+ 114,104,0,0,0,78,41,7,114,167,0,0,0,218,8,95,
+ 108,111,97,100,101,114,115,114,43,0,0,0,218,11,95,112,
+ 97,116,104,95,109,116,105,109,101,218,3,115,101,116,218,11,
+ 95,112,97,116,104,95,99,97,99,104,101,218,19,95,114,101,
+ 108,97,120,101,100,95,112,97,116,104,95,99,97,99,104,101,
+ 41,5,114,118,0,0,0,114,43,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,189,0,0,0,114,3,0,0,0,114,
+ 62,1,0,0,114,6,0,0,0,114,209,0,0,0,121,5,
+ 0,0,115,16,0,0,0,0,4,4,1,12,1,26,1,6,
+ 2,10,1,6,1,8,1,122,19,70,105,108,101,70,105,110,
+ 100,101,114,46,95,95,105,110,105,116,95,95,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,
+ 0,67,0,0,0,115,10,0,0,0,100,1,124,0,95,0,
+ 100,2,83,0,41,3,122,31,73,110,118,97,108,105,100,97,
+ 116,101,32,116,104,101,32,100,105,114,101,99,116,111,114,121,
+ 32,109,116,105,109,101,46,114,104,0,0,0,78,41,1,114,
+ 64,1,0,0,114,246,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,114,46,1,0,0,135,5,0,
+ 0,115,2,0,0,0,0,2,122,28,70,105,108,101,70,105,
+ 110,100,101,114,46,105,110,118,97,108,105,100,97,116,101,95,
+ 99,97,99,104,101,115,99,2,0,0,0,0,0,0,0,0,
+ 0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,
+ 42,0,0,0,124,0,160,0,124,1,161,1,125,2,124,2,
+ 100,1,117,0,114,26,100,1,103,0,102,2,83,0,124,2,
+ 106,1,124,2,106,2,112,38,103,0,102,2,83,0,41,2,
+ 122,197,84,114,121,32,116,111,32,102,105,110,100,32,97,32,
+ 108,111,97,100,101,114,32,102,111,114,32,116,104,101,32,115,
+ 112,101,99,105,102,105,101,100,32,109,111,100,117,108,101,44,
+ 32,111,114,32,116,104,101,32,110,97,109,101,115,112,97,99,
+ 101,10,32,32,32,32,32,32,32,32,112,97,99,107,97,103,
+ 101,32,112,111,114,116,105,111,110,115,46,32,82,101,116,117,
+ 114,110,115,32,40,108,111,97,100,101,114,44,32,108,105,115,
+ 116,45,111,102,45,112,111,114,116,105,111,110,115,41,46,10,
+ 10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,101,
+ 116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,
+ 101,100,46,32,32,85,115,101,32,102,105,110,100,95,115,112,
+ 101,99,40,41,32,105,110,115,116,101,97,100,46,10,10,32,
+ 32,32,32,32,32,32,32,78,41,3,114,203,0,0,0,114,
+ 140,0,0,0,114,178,0,0,0,41,3,114,118,0,0,0,
+ 114,139,0,0,0,114,187,0,0,0,114,3,0,0,0,114,
+ 3,0,0,0,114,6,0,0,0,114,137,0,0,0,141,5,
+ 0,0,115,8,0,0,0,0,7,10,1,8,1,8,1,122,
+ 22,70,105,108,101,70,105,110,100,101,114,46,102,105,110,100,
+ 95,108,111,97,100,101,114,99,6,0,0,0,0,0,0,0,
+ 0,0,0,0,7,0,0,0,6,0,0,0,67,0,0,0,
+ 115,26,0,0,0,124,1,124,2,124,3,131,2,125,6,116,
+ 0,124,2,124,3,124,6,124,4,100,1,141,4,83,0,41,
+ 2,78,114,177,0,0,0,41,1,114,190,0,0,0,41,7,
+ 114,118,0,0,0,114,188,0,0,0,114,139,0,0,0,114,
+ 43,0,0,0,90,4,115,109,115,108,114,202,0,0,0,114,
+ 140,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,
+ 0,0,0,114,58,1,0,0,153,5,0,0,115,8,0,0,
+ 0,0,1,10,1,8,1,2,255,122,20,70,105,108,101,70,
+ 105,110,100,101,114,46,95,103,101,116,95,115,112,101,99,78,
+ 99,3,0,0,0,0,0,0,0,0,0,0,0,14,0,0,
+ 0,8,0,0,0,67,0,0,0,115,96,1,0,0,100,1,
+ 125,3,124,1,160,0,100,2,161,1,100,3,25,0,125,4,
+ 122,24,116,1,124,0,106,2,112,34,116,3,160,4,161,0,
+ 131,1,106,5,125,5,87,0,110,22,4,0,116,6,121,64,
+ 1,0,1,0,1,0,100,4,125,5,89,0,110,2,48,0,
+ 124,5,124,0,106,7,107,3,114,90,124,0,160,8,161,0,
+ 1,0,124,5,124,0,95,7,116,9,131,0,114,112,124,0,
+ 106,10,125,6,124,4,160,11,161,0,125,7,110,10,124,0,
+ 106,12,125,6,124,4,125,7,124,7,124,6,118,0,114,216,
+ 116,13,124,0,106,2,124,4,131,2,125,8,124,0,106,14,
+ 68,0,93,58,92,2,125,9,125,10,100,5,124,9,23,0,
+ 125,11,116,13,124,8,124,11,131,2,125,12,116,15,124,12,
+ 131,1,114,148,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,148,116,17,
+ 124,8,131,1,125,3,124,0,106,14,68,0,93,82,92,2,
+ 125,9,125,10,116,13,124,0,106,2,124,4,124,9,23,0,
+ 131,2,125,12,116,18,106,19,100,6,124,12,100,3,100,7,
+ 141,3,1,0,124,7,124,9,23,0,124,6,118,0,114,222,
+ 116,15,124,12,131,1,114,222,124,0,160,16,124,10,124,1,
+ 124,12,100,8,124,2,161,5,2,0,1,0,83,0,113,222,
+ 124,3,144,1,114,92,116,18,160,19,100,9,124,8,161,2,
+ 1,0,116,18,160,20,124,1,100,8,161,2,125,13,124,8,
+ 103,1,124,13,95,21,124,13,83,0,100,8,83,0,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,70,0,0,0,114,27,0,0,0,114,104,0,0,
+ 0,114,209,0,0,0,122,9,116,114,121,105,110,103,32,123,
+ 125,41,1,90,9,118,101,114,98,111,115,105,116,121,78,122,
+ 25,112,111,115,115,105,98,108,101,32,110,97,109,101,115,112,
+ 97,99,101,32,102,111,114,32,123,125,41,22,114,40,0,0,
+ 0,114,48,0,0,0,114,43,0,0,0,114,2,0,0,0,
+ 114,54,0,0,0,114,10,1,0,0,114,49,0,0,0,114,
+ 64,1,0,0,218,11,95,102,105,108,108,95,99,97,99,104,
+ 101,114,7,0,0,0,114,67,1,0,0,114,105,0,0,0,
+ 114,66,1,0,0,114,37,0,0,0,114,63,1,0,0,114,
+ 53,0,0,0,114,58,1,0,0,114,55,0,0,0,114,134,
+ 0,0,0,114,149,0,0,0,114,183,0,0,0,114,178,0,
+ 0,0,41,14,114,118,0,0,0,114,139,0,0,0,114,202,
+ 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,169,
+ 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,17,1,0,0,114,188,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,187,0,0,0,114,3,0,0,
+ 0,114,3,0,0,0,114,6,0,0,0,114,203,0,0,0,
+ 158,5,0,0,115,74,0,0,0,0,5,4,1,14,1,2,
+ 1,24,1,12,1,10,1,10,1,8,1,6,2,6,1,6,
+ 1,10,2,6,1,4,2,8,1,12,1,14,1,8,1,10,
+ 1,8,1,26,4,8,2,14,1,16,1,16,1,12,1,8,
+ 1,10,1,2,0,2,255,10,2,6,1,12,1,12,1,8,
+ 1,4,1,122,20,70,105,108,101,70,105,110,100,101,114,46,
+ 102,105,110,100,95,115,112,101,99,99,1,0,0,0,0,0,
+ 0,0,0,0,0,0,9,0,0,0,10,0,0,0,67,0,
+ 0,0,115,188,0,0,0,124,0,106,0,125,1,122,22,116,
+ 1,160,2,124,1,112,22,116,1,160,3,161,0,161,1,125,
+ 2,87,0,110,28,4,0,116,4,116,5,116,6,102,3,121,
+ 56,1,0,1,0,1,0,103,0,125,2,89,0,110,2,48,
+ 0,116,7,106,8,160,9,100,1,161,1,115,82,116,10,124,
+ 2,131,1,124,0,95,11,110,74,116,10,131,0,125,3,124,
+ 2,68,0,93,56,125,4,124,4,160,12,100,2,161,1,92,
+ 3,125,5,125,6,125,7,124,6,114,134,100,3,160,13,124,
+ 5,124,7,160,14,161,0,161,2,125,8,110,4,124,5,125,
+ 8,124,3,160,15,124,8,161,1,1,0,113,92,124,3,124,
+ 0,95,11,116,7,106,8,160,9,116,16,161,1,114,184,100,
+ 4,100,5,132,0,124,2,68,0,131,1,124,0,95,17,100,
+ 6,83,0,41,7,122,68,70,105,108,108,32,116,104,101,32,
+ 99,97,99,104,101,32,111,102,32,112,111,116,101,110,116,105,
+ 97,108,32,109,111,100,117,108,101,115,32,97,110,100,32,112,
+ 97,99,107,97,103,101,115,32,102,111,114,32,116,104,105,115,
+ 32,100,105,114,101,99,116,111,114,121,46,114,0,0,0,0,
+ 114,70,0,0,0,114,60,0,0,0,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,83,
+ 0,0,0,115,20,0,0,0,104,0,124,0,93,12,125,1,
+ 124,1,160,0,161,0,146,2,113,4,83,0,114,3,0,0,
+ 0,41,1,114,105,0,0,0,41,2,114,31,0,0,0,90,
+ 2,102,110,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,218,9,60,115,101,116,99,111,109,112,62,235,5,0,
+ 0,115,4,0,0,0,6,0,2,0,122,41,70,105,108,101,
+ 70,105,110,100,101,114,46,95,102,105,108,108,95,99,97,99,
+ 104,101,46,60,108,111,99,97,108,115,62,46,60,115,101,116,
+ 99,111,109,112,62,78,41,18,114,43,0,0,0,114,2,0,
+ 0,0,114,7,1,0,0,114,54,0,0,0,114,3,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,8,0,0,0,114,9,0,0,0,
+ 114,10,0,0,0,114,65,1,0,0,114,66,1,0,0,114,
+ 100,0,0,0,114,61,0,0,0,114,105,0,0,0,218,3,
+ 97,100,100,114,11,0,0,0,114,67,1,0,0,41,9,114,
+ 118,0,0,0,114,43,0,0,0,114,8,1,0,0,90,21,
+ 108,111,119,101,114,95,115,117,102,102,105,120,95,99,111,110,
+ 116,101,110,116,115,114,41,1,0,0,114,116,0,0,0,114,
+ 29,1,0,0,114,17,1,0,0,90,8,110,101,119,95,110,
+ 97,109,101,114,3,0,0,0,114,3,0,0,0,114,6,0,
+ 0,0,114,69,1,0,0,206,5,0,0,115,34,0,0,0,
+ 0,2,6,1,2,1,22,1,18,3,10,3,12,1,12,7,
+ 6,1,8,1,16,1,4,1,18,2,4,1,12,1,6,1,
+ 12,1,122,22,70,105,108,101,70,105,110,100,101,114,46,95,
+ 102,105,108,108,95,99,97,99,104,101,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,7,
+ 0,0,0,115,18,0,0,0,135,0,135,1,102,2,100,1,
+ 100,2,132,8,125,2,124,2,83,0,41,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,1,0,0,0,4,0,0,0,19,0,0,0,115,36,
+ 0,0,0,116,0,124,0,131,1,115,20,116,1,100,1,124,
+ 0,100,2,141,2,130,1,136,0,124,0,103,1,136,1,162,
+ 1,82,0,142,0,83,0,41,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,47,0,0,0,41,2,114,
+ 55,0,0,0,114,117,0,0,0,114,47,0,0,0,169,2,
+ 114,193,0,0,0,114,68,1,0,0,114,3,0,0,0,114,
+ 6,0,0,0,218,24,112,97,116,104,95,104,111,111,107,95,
+ 102,111,114,95,70,105,108,101,70,105,110,100,101,114,247,5,
+ 0,0,115,6,0,0,0,0,2,8,1,12,1,122,54,70,
+ 105,108,101,70,105,110,100,101,114,46,112,97,116,104,95,104,
+ 111,111,107,46,60,108,111,99,97,108,115,62,46,112,97,116,
+ 104,95,104,111,111,107,95,102,111,114,95,70,105,108,101,70,
+ 105,110,100,101,114,114,3,0,0,0,41,3,114,193,0,0,
+ 0,114,68,1,0,0,114,75,1,0,0,114,3,0,0,0,
+ 114,74,1,0,0,114,6,0,0,0,218,9,112,97,116,104,
+ 95,104,111,111,107,237,5,0,0,115,4,0,0,0,0,10,
+ 14,6,122,20,70,105,108,101,70,105,110,100,101,114,46,112,
+ 97,116,104,95,104,111,111,107,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
+ 0,115,12,0,0,0,100,1,160,0,124,0,106,1,161,1,
+ 83,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,61,0,0,0,114,43,
+ 0,0,0,114,246,0,0,0,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,114,39,1,0,0,255,5,0,0,
+ 115,2,0,0,0,0,1,122,19,70,105,108,101,70,105,110,
+ 100,101,114,46,95,95,114,101,112,114,95,95,41,1,78,41,
+ 15,114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,
+ 114,127,0,0,0,114,209,0,0,0,114,46,1,0,0,114,
+ 143,0,0,0,114,206,0,0,0,114,137,0,0,0,114,58,
+ 1,0,0,114,203,0,0,0,114,69,1,0,0,114,207,0,
+ 0,0,114,76,1,0,0,114,39,1,0,0,114,3,0,0,
0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 114,19,1,0,0,63,6,0,0,115,4,0,0,0,4,0,
- 2,0,122,25,95,115,101,116,117,112,46,60,108,111,99,97,
- 108,115,62,46,60,103,101,110,101,120,112,114,62,114,72,0,
- 0,0,122,30,105,109,112,111,114,116,108,105,98,32,114,101,
- 113,117,105,114,101,115,32,112,111,115,105,120,32,111,114,32,
- 110,116,114,2,0,0,0,114,34,0,0,0,114,30,0,0,
- 0,114,39,0,0,0,114,57,0,0,0,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,
- 83,0,0,0,115,22,0,0,0,104,0,124,0,93,14,125,
- 1,100,0,124,1,155,0,157,2,146,2,113,4,83,0,41,
- 1,114,73,0,0,0,114,3,0,0,0,41,2,114,31,0,
- 0,0,218,1,115,114,3,0,0,0,114,3,0,0,0,114,
- 6,0,0,0,114,70,1,0,0,79,6,0,0,115,4,0,
- 0,0,6,0,2,0,122,25,95,115,101,116,117,112,46,60,
- 108,111,99,97,108,115,62,46,60,115,101,116,99,111,109,112,
- 62,90,7,95,116,104,114,101,97,100,90,8,95,119,101,97,
- 107,114,101,102,90,6,119,105,110,114,101,103,114,192,0,0,
- 0,114,7,0,0,0,122,4,46,112,121,119,122,6,95,100,
- 46,112,121,100,84,78,41,18,114,134,0,0,0,114,8,0,
- 0,0,114,163,0,0,0,114,31,1,0,0,114,125,0,0,
- 0,90,18,95,98,117,105,108,116,105,110,95,102,114,111,109,
- 95,110,97,109,101,114,129,0,0,0,218,3,97,108,108,114,
- 117,0,0,0,114,35,0,0,0,114,13,0,0,0,114,21,
- 1,0,0,114,167,0,0,0,114,82,1,0,0,114,101,0,
- 0,0,114,186,0,0,0,114,191,0,0,0,114,195,0,0,
- 0,41,12,218,17,95,98,111,111,116,115,116,114,97,112,95,
- 109,111,100,117,108,101,90,11,115,101,108,102,95,109,111,100,
- 117,108,101,90,12,98,117,105,108,116,105,110,95,110,97,109,
- 101,90,14,98,117,105,108,116,105,110,95,109,111,100,117,108,
- 101,90,10,111,115,95,100,101,116,97,105,108,115,90,10,98,
- 117,105,108,116,105,110,95,111,115,114,30,0,0,0,114,34,
- 0,0,0,90,9,111,115,95,109,111,100,117,108,101,90,13,
- 116,104,114,101,97,100,95,109,111,100,117,108,101,90,14,119,
- 101,97,107,114,101,102,95,109,111,100,117,108,101,90,13,119,
- 105,110,114,101,103,95,109,111,100,117,108,101,114,3,0,0,
- 0,114,3,0,0,0,114,6,0,0,0,218,6,95,115,101,
- 116,117,112,38,6,0,0,115,78,0,0,0,0,8,4,1,
- 6,1,6,3,10,1,8,1,10,1,12,2,10,1,14,3,
- 22,1,12,2,22,1,8,1,10,1,10,1,6,2,2,1,
- 10,1,10,1,12,1,12,2,8,1,12,1,12,1,18,1,
- 22,3,10,1,12,3,10,1,12,3,10,1,10,1,12,3,
- 14,1,14,1,10,1,10,1,10,1,114,89,1,0,0,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,
- 4,0,0,0,67,0,0,0,115,50,0,0,0,116,0,124,
- 0,131,1,1,0,116,1,131,0,125,1,116,2,106,3,160,
- 4,116,5,106,6,124,1,142,0,103,1,161,1,1,0,116,
- 2,106,7,160,8,116,9,161,1,1,0,100,1,83,0,41,
- 2,122,41,73,110,115,116,97,108,108,32,116,104,101,32,112,
- 97,116,104,45,98,97,115,101,100,32,105,109,112,111,114,116,
- 32,99,111,109,112,111,110,101,110,116,115,46,78,41,10,114,
- 89,1,0,0,114,184,0,0,0,114,8,0,0,0,114,51,
- 1,0,0,114,167,0,0,0,114,61,1,0,0,114,76,1,
- 0,0,218,9,109,101,116,97,95,112,97,116,104,114,186,0,
- 0,0,114,45,1,0,0,41,2,114,88,1,0,0,90,17,
- 115,117,112,112,111,114,116,101,100,95,108,111,97,100,101,114,
+ 114,61,1,0,0,112,5,0,0,115,22,0,0,0,8,2,
+ 4,7,8,14,8,4,4,2,8,12,8,5,10,48,8,31,
+ 2,1,10,17,114,61,1,0,0,99,4,0,0,0,0,0,
+ 0,0,0,0,0,0,6,0,0,0,8,0,0,0,67,0,
+ 0,0,115,144,0,0,0,124,0,160,0,100,1,161,1,125,
+ 4,124,0,160,0,100,2,161,1,125,5,124,4,115,66,124,
+ 5,114,36,124,5,106,1,125,4,110,30,124,2,124,3,107,
+ 2,114,56,116,2,124,1,124,2,131,2,125,4,110,10,116,
+ 3,124,1,124,2,131,2,125,4,124,5,115,84,116,4,124,
+ 1,124,2,124,4,100,3,141,3,125,5,122,36,124,5,124,
+ 0,100,2,60,0,124,4,124,0,100,1,60,0,124,2,124,
+ 0,100,4,60,0,124,3,124,0,100,5,60,0,87,0,110,
+ 18,4,0,116,5,121,138,1,0,1,0,1,0,89,0,110,
+ 2,48,0,100,0,83,0,41,6,78,218,10,95,95,108,111,
+ 97,100,101,114,95,95,218,8,95,95,115,112,101,99,95,95,
+ 114,62,1,0,0,90,8,95,95,102,105,108,101,95,95,90,
+ 10,95,95,99,97,99,104,101,100,95,95,41,6,218,3,103,
+ 101,116,114,140,0,0,0,114,15,1,0,0,114,9,1,0,
+ 0,114,190,0,0,0,218,9,69,120,99,101,112,116,105,111,
+ 110,41,6,90,2,110,115,114,116,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,140,0,0,0,114,187,0,0,0,114,3,0,0,0,
+ 114,3,0,0,0,114,6,0,0,0,218,14,95,102,105,120,
+ 95,117,112,95,109,111,100,117,108,101,5,6,0,0,115,34,
+ 0,0,0,0,2,10,1,10,1,4,1,4,1,8,1,8,
+ 1,12,2,10,1,4,1,14,1,2,1,8,1,8,1,8,
+ 1,12,1,12,2,114,81,1,0,0,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,
+ 0,0,0,115,38,0,0,0,116,0,116,1,160,2,161,0,
+ 102,2,125,0,116,3,116,4,102,2,125,1,116,5,116,6,
+ 102,2,125,2,124,0,124,1,124,2,103,3,83,0,41,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,252,0,0,0,114,163,0,0,0,218,18,101,
+ 120,116,101,110,115,105,111,110,95,115,117,102,102,105,120,101,
+ 115,114,9,1,0,0,114,101,0,0,0,114,15,1,0,0,
+ 114,88,0,0,0,41,3,90,10,101,120,116,101,110,115,105,
+ 111,110,115,90,6,115,111,117,114,99,101,90,8,98,121,116,
+ 101,99,111,100,101,114,3,0,0,0,114,3,0,0,0,114,
+ 6,0,0,0,114,184,0,0,0,28,6,0,0,115,8,0,
+ 0,0,0,5,12,1,8,1,8,1,114,184,0,0,0,99,
+ 1,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,
+ 9,0,0,0,67,0,0,0,115,176,1,0,0,124,0,97,
+ 0,116,0,106,1,97,1,116,0,106,2,97,2,116,1,106,
+ 3,116,4,25,0,125,1,100,1,68,0,93,48,125,2,124,
+ 2,116,1,106,3,118,1,114,56,116,0,160,5,124,2,161,
+ 1,125,3,110,10,116,1,106,3,124,2,25,0,125,3,116,
+ 6,124,1,124,2,124,3,131,3,1,0,113,30,100,2,100,
+ 3,103,1,102,2,100,4,100,5,100,3,103,2,102,2,102,
+ 2,125,4,124,4,68,0,93,108,92,2,125,5,125,6,116,
+ 7,100,6,100,7,132,0,124,6,68,0,131,1,131,1,115,
+ 136,74,0,130,1,124,6,100,8,25,0,125,7,124,5,116,
+ 1,106,3,118,0,114,170,116,1,106,3,124,5,25,0,125,
+ 8,1,0,113,224,113,106,122,20,116,0,160,5,124,5,161,
+ 1,125,8,87,0,1,0,113,224,87,0,113,106,4,0,116,
+ 8,121,212,1,0,1,0,1,0,89,0,113,106,89,0,113,
+ 106,48,0,113,106,116,8,100,9,131,1,130,1,116,6,124,
+ 1,100,10,124,8,131,3,1,0,116,6,124,1,100,11,124,
+ 7,131,3,1,0,116,6,124,1,100,12,100,13,160,9,124,
+ 6,161,1,131,3,1,0,116,6,124,1,100,14,100,15,100,
+ 16,132,0,124,6,68,0,131,1,131,3,1,0,116,0,160,
+ 5,100,17,161,1,125,9,116,6,124,1,100,17,124,9,131,
+ 3,1,0,116,0,160,5,100,18,161,1,125,10,116,6,124,
+ 1,100,18,124,10,131,3,1,0,124,5,100,4,107,2,144,
+ 1,114,108,116,0,160,5,100,19,161,1,125,11,116,6,124,
+ 1,100,20,124,11,131,3,1,0,116,6,124,1,100,21,116,
+ 10,131,0,131,3,1,0,116,11,160,12,116,2,160,13,161,
+ 0,161,1,1,0,124,5,100,4,107,2,144,1,114,172,116,
+ 14,160,15,100,22,161,1,1,0,100,23,116,11,118,0,144,
+ 1,114,172,100,24,116,16,95,17,100,25,83,0,41,26,122,
+ 205,83,101,116,117,112,32,116,104,101,32,112,97,116,104,45,
+ 98,97,115,101,100,32,105,109,112,111,114,116,101,114,115,32,
+ 102,111,114,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,10,32,32,32,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,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,79,116,104,101,114,32,
+ 99,111,109,112,111,110,101,110,116,115,32,97,114,101,32,101,
+ 120,116,114,97,99,116,101,100,32,102,114,111,109,32,116,104,
+ 101,32,99,111,114,101,32,98,111,111,116,115,116,114,97,112,
+ 32,109,111,100,117,108,101,46,10,10,32,32,32,32,41,4,
+ 114,63,0,0,0,114,74,0,0,0,218,8,98,117,105,108,
+ 116,105,110,115,114,160,0,0,0,90,5,112,111,115,105,120,
+ 250,1,47,90,2,110,116,250,1,92,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,115,
+ 0,0,0,115,26,0,0,0,124,0,93,18,125,1,116,0,
+ 124,1,131,1,100,0,107,2,86,0,1,0,113,2,100,1,
+ 83,0,41,2,114,38,0,0,0,78,41,1,114,22,0,0,
+ 0,41,2,114,31,0,0,0,114,94,0,0,0,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,114,19,1,0,
+ 0,64,6,0,0,115,4,0,0,0,4,0,2,0,122,25,
+ 95,115,101,116,117,112,46,60,108,111,99,97,108,115,62,46,
+ 60,103,101,110,101,120,112,114,62,114,72,0,0,0,122,30,
+ 105,109,112,111,114,116,108,105,98,32,114,101,113,117,105,114,
+ 101,115,32,112,111,115,105,120,32,111,114,32,110,116,114,2,
+ 0,0,0,114,34,0,0,0,114,30,0,0,0,114,39,0,
+ 0,0,114,57,0,0,0,99,1,0,0,0,0,0,0,0,
+ 0,0,0,0,2,0,0,0,4,0,0,0,83,0,0,0,
+ 115,22,0,0,0,104,0,124,0,93,14,125,1,100,0,124,
+ 1,155,0,157,2,146,2,113,4,83,0,41,1,114,73,0,
+ 0,0,114,3,0,0,0,41,2,114,31,0,0,0,218,1,
115,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,
- 218,8,95,105,110,115,116,97,108,108,103,6,0,0,115,8,
- 0,0,0,0,2,8,1,6,1,20,1,114,91,1,0,0,
- 41,1,114,59,0,0,0,41,1,78,41,3,78,78,78,41,
- 2,114,72,0,0,0,114,72,0,0,0,41,1,84,41,1,
- 78,41,1,78,41,63,114,127,0,0,0,114,12,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,11,0,0,0,114,13,0,0,
- 0,114,20,0,0,0,114,26,0,0,0,114,28,0,0,0,
- 114,37,0,0,0,114,46,0,0,0,114,48,0,0,0,114,
- 52,0,0,0,114,53,0,0,0,114,55,0,0,0,114,58,
- 0,0,0,114,68,0,0,0,218,4,116,121,112,101,218,8,
- 95,95,99,111,100,101,95,95,114,162,0,0,0,114,18,0,
- 0,0,114,148,0,0,0,114,17,0,0,0,114,23,0,0,
- 0,114,236,0,0,0,114,91,0,0,0,114,87,0,0,0,
- 114,101,0,0,0,114,88,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,97,0,0,0,114,102,0,0,0,114,108,0,0,0,114,
- 112,0,0,0,114,114,0,0,0,114,136,0,0,0,114,143,
- 0,0,0,114,152,0,0,0,114,156,0,0,0,114,158,0,
- 0,0,114,165,0,0,0,114,170,0,0,0,114,171,0,0,
- 0,114,176,0,0,0,218,6,111,98,106,101,99,116,114,185,
- 0,0,0,114,190,0,0,0,114,191,0,0,0,114,208,0,
- 0,0,114,221,0,0,0,114,239,0,0,0,114,9,1,0,
- 0,114,15,1,0,0,114,21,1,0,0,114,252,0,0,0,
- 114,22,1,0,0,114,43,1,0,0,114,45,1,0,0,114,
- 61,1,0,0,114,81,1,0,0,114,184,0,0,0,114,89,
- 1,0,0,114,91,1,0,0,114,3,0,0,0,114,3,0,
- 0,0,114,3,0,0,0,114,6,0,0,0,218,8,60,109,
- 111,100,117,108,101,62,1,0,0,0,115,126,0,0,0,4,
- 22,4,1,4,1,2,1,2,255,4,4,8,17,8,5,8,
- 5,8,6,8,6,8,12,8,10,8,9,8,5,8,7,8,
- 9,10,22,10,127,0,19,16,1,12,2,4,1,4,2,6,
- 2,6,2,8,2,16,71,8,40,8,19,8,12,8,12,8,
- 28,8,17,8,33,8,28,8,24,10,13,10,10,10,11,8,
- 14,6,3,4,1,2,255,12,68,14,64,14,29,16,127,0,
- 17,14,72,18,45,18,26,4,3,18,53,14,63,14,42,14,
- 127,0,20,14,127,0,22,10,23,8,11,8,65,
+ 114,70,1,0,0,80,6,0,0,115,4,0,0,0,6,0,
+ 2,0,122,25,95,115,101,116,117,112,46,60,108,111,99,97,
+ 108,115,62,46,60,115,101,116,99,111,109,112,62,90,7,95,
+ 116,104,114,101,97,100,90,8,95,119,101,97,107,114,101,102,
+ 90,6,119,105,110,114,101,103,114,192,0,0,0,114,7,0,
+ 0,0,122,4,46,112,121,119,122,6,95,100,46,112,121,100,
+ 84,78,41,18,114,134,0,0,0,114,8,0,0,0,114,163,
+ 0,0,0,114,31,1,0,0,114,125,0,0,0,90,18,95,
+ 98,117,105,108,116,105,110,95,102,114,111,109,95,110,97,109,
+ 101,114,129,0,0,0,218,3,97,108,108,114,117,0,0,0,
+ 114,35,0,0,0,114,13,0,0,0,114,21,1,0,0,114,
+ 167,0,0,0,114,82,1,0,0,114,101,0,0,0,114,186,
+ 0,0,0,114,191,0,0,0,114,195,0,0,0,41,12,218,
+ 17,95,98,111,111,116,115,116,114,97,112,95,109,111,100,117,
+ 108,101,90,11,115,101,108,102,95,109,111,100,117,108,101,90,
+ 12,98,117,105,108,116,105,110,95,110,97,109,101,90,14,98,
+ 117,105,108,116,105,110,95,109,111,100,117,108,101,90,10,111,
+ 115,95,100,101,116,97,105,108,115,90,10,98,117,105,108,116,
+ 105,110,95,111,115,114,30,0,0,0,114,34,0,0,0,90,
+ 9,111,115,95,109,111,100,117,108,101,90,13,116,104,114,101,
+ 97,100,95,109,111,100,117,108,101,90,14,119,101,97,107,114,
+ 101,102,95,109,111,100,117,108,101,90,13,119,105,110,114,101,
+ 103,95,109,111,100,117,108,101,114,3,0,0,0,114,3,0,
+ 0,0,114,6,0,0,0,218,6,95,115,101,116,117,112,39,
+ 6,0,0,115,78,0,0,0,0,8,4,1,6,1,6,3,
+ 10,1,8,1,10,1,12,2,10,1,14,3,22,1,12,2,
+ 22,1,8,1,10,1,10,1,6,2,2,1,10,1,10,1,
+ 12,1,12,2,8,1,12,1,12,1,18,1,22,3,10,1,
+ 12,3,10,1,12,3,10,1,10,1,12,3,14,1,14,1,
+ 10,1,10,1,10,1,114,89,1,0,0,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,
+ 67,0,0,0,115,50,0,0,0,116,0,124,0,131,1,1,
+ 0,116,1,131,0,125,1,116,2,106,3,160,4,116,5,106,
+ 6,124,1,142,0,103,1,161,1,1,0,116,2,106,7,160,
+ 8,116,9,161,1,1,0,100,1,83,0,41,2,122,41,73,
+ 110,115,116,97,108,108,32,116,104,101,32,112,97,116,104,45,
+ 98,97,115,101,100,32,105,109,112,111,114,116,32,99,111,109,
+ 112,111,110,101,110,116,115,46,78,41,10,114,89,1,0,0,
+ 114,184,0,0,0,114,8,0,0,0,114,51,1,0,0,114,
+ 167,0,0,0,114,61,1,0,0,114,76,1,0,0,218,9,
+ 109,101,116,97,95,112,97,116,104,114,186,0,0,0,114,45,
+ 1,0,0,41,2,114,88,1,0,0,90,17,115,117,112,112,
+ 111,114,116,101,100,95,108,111,97,100,101,114,115,114,3,0,
+ 0,0,114,3,0,0,0,114,6,0,0,0,218,8,95,105,
+ 110,115,116,97,108,108,104,6,0,0,115,8,0,0,0,0,
+ 2,8,1,6,1,20,1,114,91,1,0,0,41,1,114,59,
+ 0,0,0,41,1,78,41,3,78,78,78,41,2,114,72,0,
+ 0,0,114,72,0,0,0,41,1,84,41,1,78,41,1,78,
+ 41,63,114,127,0,0,0,114,12,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,11,0,0,0,114,13,0,0,0,114,20,0,
+ 0,0,114,26,0,0,0,114,28,0,0,0,114,37,0,0,
+ 0,114,46,0,0,0,114,48,0,0,0,114,52,0,0,0,
+ 114,53,0,0,0,114,55,0,0,0,114,58,0,0,0,114,
+ 68,0,0,0,218,4,116,121,112,101,218,8,95,95,99,111,
+ 100,101,95,95,114,162,0,0,0,114,18,0,0,0,114,148,
+ 0,0,0,114,17,0,0,0,114,23,0,0,0,114,236,0,
+ 0,0,114,91,0,0,0,114,87,0,0,0,114,101,0,0,
+ 0,114,88,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,97,0,0,
+ 0,114,102,0,0,0,114,108,0,0,0,114,112,0,0,0,
+ 114,114,0,0,0,114,136,0,0,0,114,143,0,0,0,114,
+ 152,0,0,0,114,156,0,0,0,114,158,0,0,0,114,165,
+ 0,0,0,114,170,0,0,0,114,171,0,0,0,114,176,0,
+ 0,0,218,6,111,98,106,101,99,116,114,185,0,0,0,114,
+ 190,0,0,0,114,191,0,0,0,114,208,0,0,0,114,221,
+ 0,0,0,114,239,0,0,0,114,9,1,0,0,114,15,1,
+ 0,0,114,21,1,0,0,114,252,0,0,0,114,22,1,0,
+ 0,114,43,1,0,0,114,45,1,0,0,114,61,1,0,0,
+ 114,81,1,0,0,114,184,0,0,0,114,89,1,0,0,114,
+ 91,1,0,0,114,3,0,0,0,114,3,0,0,0,114,3,
+ 0,0,0,114,6,0,0,0,218,8,60,109,111,100,117,108,
+ 101,62,1,0,0,0,115,126,0,0,0,4,22,4,1,4,
+ 1,2,1,2,255,4,4,8,17,8,5,8,5,8,6,8,
+ 6,8,12,8,10,8,9,8,5,8,7,8,9,10,22,10,
+ 127,0,20,16,1,12,2,4,1,4,2,6,2,6,2,8,
+ 2,16,71,8,40,8,19,8,12,8,12,8,28,8,17,8,
+ 33,8,28,8,24,10,13,10,10,10,11,8,14,6,3,4,
+ 1,2,255,12,68,14,64,14,29,16,127,0,17,14,72,18,
+ 45,18,26,4,3,18,53,14,63,14,42,14,127,0,20,14,
+ 127,0,22,10,23,8,11,8,65,
};
diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h
index d413bab0de4..538fdbe3e0b 100644
--- a/Python/opcode_targets.h
+++ b/Python/opcode_targets.h
@@ -149,8 +149,8 @@ static void *opcode_targets[256] = {
&&TARGET_MAP_ADD,
&&TARGET_LOAD_CLASSDEREF,
&&_unknown_opcode,
- &&TARGET_BUILD_MAP_UNPACK,
- &&TARGET_BUILD_MAP_UNPACK_WITH_CALL,
+ &&_unknown_opcode,
+ &&_unknown_opcode,
&&_unknown_opcode,
&&_unknown_opcode,
&&TARGET_SETUP_ASYNC_WITH,
@@ -163,8 +163,8 @@ static void *opcode_targets[256] = {
&&TARGET_CALL_METHOD,
&&TARGET_LIST_EXTEND,
&&TARGET_SET_UPDATE,
- &&_unknown_opcode,
- &&_unknown_opcode,
+ &&TARGET_DICT_MERGE,
+ &&TARGET_DICT_UPDATE,
&&_unknown_opcode,
&&_unknown_opcode,
&&_unknown_opcode,
From 997443c14cc29e5616b9f3d7c337e89fda60de11 Mon Sep 17 00:00:00 2001
From: Toshio Kuratomi
Date: Mon, 27 Jan 2020 04:08:39 -0800
Subject: [PATCH 215/380] Fix so that test.test_distutils can be executed by
unittest and not just regrtest (GH-13480)
---
Lib/test/test_distutils.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Lib/test/test_distutils.py b/Lib/test/test_distutils.py
index d613abe453b..a37f1179175 100644
--- a/Lib/test/test_distutils.py
+++ b/Lib/test/test_distutils.py
@@ -10,9 +10,15 @@ import test.support
def test_main():
+ # used by regrtest
test.support.run_unittest(distutils.tests.test_suite())
test.support.reap_children()
+def load_tests(*_):
+ # used by unittest
+ return distutils.tests.test_suite()
+
+
if __name__ == "__main__":
test_main()
From c7dd3c7d87d6961756d99b57aa13db7c7a03e1f8 Mon Sep 17 00:00:00 2001
From: Chris Withers
Date: Mon, 27 Jan 2020 14:11:19 +0000
Subject: [PATCH 216/380] Use relative imports in mock and its tests to help
backporting (GH-18197)
* asyncio.run only available in 3.8+
* iscoroutinefunction has important bungfixes in 3.8
* IsolatedAsyncioTestCase only available in 3.8+
---
Lib/unittest/mock.py | 17 +--
Lib/unittest/test/testmock/testasync.py | 134 +++++++++---------
.../test/testmock/testmagicmethods.py | 10 +-
3 files changed, 82 insertions(+), 79 deletions(-)
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
index 1acafc51df1..a3d8b6eab41 100644
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -30,6 +30,7 @@ import inspect
import pprint
import sys
import builtins
+from asyncio import iscoroutinefunction
from types import CodeType, ModuleType, MethodType
from unittest.util import safe_repr
from functools import wraps, partial
@@ -48,12 +49,12 @@ def _is_async_obj(obj):
return False
if hasattr(obj, '__func__'):
obj = getattr(obj, '__func__')
- return asyncio.iscoroutinefunction(obj) or inspect.isawaitable(obj)
+ return iscoroutinefunction(obj) or inspect.isawaitable(obj)
def _is_async_func(func):
if getattr(func, '__code__', None):
- return asyncio.iscoroutinefunction(func)
+ return iscoroutinefunction(func)
else:
return False
@@ -488,7 +489,7 @@ class NonCallableMock(Base):
_spec_asyncs = []
for attr in dir(spec):
- if asyncio.iscoroutinefunction(getattr(spec, attr, None)):
+ if iscoroutinefunction(getattr(spec, attr, None)):
_spec_asyncs.append(attr)
if spec is not None and not _is_list(spec):
@@ -2152,7 +2153,7 @@ class AsyncMockMixin(Base):
def __init__(self, /, *args, **kwargs):
super().__init__(*args, **kwargs)
- # asyncio.iscoroutinefunction() checks _is_coroutine property to say if an
+ # iscoroutinefunction() checks _is_coroutine property to say if an
# object is a coroutine. Without this check it looks to see if it is a
# function/method, which in this case it is not (since it is an
# AsyncMock).
@@ -2188,7 +2189,7 @@ class AsyncMockMixin(Base):
raise StopAsyncIteration
if _is_exception(result):
raise result
- elif asyncio.iscoroutinefunction(effect):
+ elif iscoroutinefunction(effect):
result = await effect(*args, **kwargs)
else:
result = effect(*args, **kwargs)
@@ -2200,7 +2201,7 @@ class AsyncMockMixin(Base):
return self.return_value
if self._mock_wraps is not None:
- if asyncio.iscoroutinefunction(self._mock_wraps):
+ if iscoroutinefunction(self._mock_wraps):
return await self._mock_wraps(*args, **kwargs)
return self._mock_wraps(*args, **kwargs)
@@ -2337,7 +2338,7 @@ class AsyncMock(AsyncMockMixin, AsyncMagicMixin, Mock):
recognized as an async function, and the result of a call is an awaitable:
>>> mock = AsyncMock()
- >>> asyncio.iscoroutinefunction(mock)
+ >>> iscoroutinefunction(mock)
True
>>> inspect.isawaitable(mock())
True
@@ -2710,7 +2711,7 @@ def create_autospec(spec, spec_set=False, instance=False, _parent=None,
skipfirst = _must_skip(spec, entry, is_type)
kwargs['_eat_self'] = skipfirst
- if asyncio.iscoroutinefunction(original):
+ if iscoroutinefunction(original):
child_klass = AsyncMock
else:
child_klass = MagicMock
diff --git a/Lib/unittest/test/testmock/testasync.py b/Lib/unittest/test/testmock/testasync.py
index 43b87498ef3..6cba42727af 100644
--- a/Lib/unittest/test/testmock/testasync.py
+++ b/Lib/unittest/test/testmock/testasync.py
@@ -3,6 +3,8 @@ import inspect
import re
import unittest
+from asyncio import run, iscoroutinefunction
+from unittest import IsolatedAsyncioTestCase
from unittest.mock import (ANY, call, AsyncMock, patch, MagicMock, Mock,
create_autospec, sentinel, _CallList)
@@ -54,7 +56,7 @@ class AsyncPatchDecoratorTest(unittest.TestCase):
def test_is_coroutine_function_patch(self):
@patch.object(AsyncClass, 'async_method')
def test_async(mock_method):
- self.assertTrue(asyncio.iscoroutinefunction(mock_method))
+ self.assertTrue(iscoroutinefunction(mock_method))
test_async()
def test_is_async_patch(self):
@@ -62,13 +64,13 @@ class AsyncPatchDecoratorTest(unittest.TestCase):
def test_async(mock_method):
m = mock_method()
self.assertTrue(inspect.isawaitable(m))
- asyncio.run(m)
+ run(m)
@patch(f'{async_foo_name}.async_method')
def test_no_parent_attribute(mock_method):
m = mock_method()
self.assertTrue(inspect.isawaitable(m))
- asyncio.run(m)
+ run(m)
test_async()
test_no_parent_attribute()
@@ -107,7 +109,7 @@ class AsyncPatchDecoratorTest(unittest.TestCase):
self.assertEqual(await async_func(), 1)
self.assertEqual(await async_func_args(1, 2, c=3), 2)
- asyncio.run(test_async())
+ run(test_async())
self.assertTrue(inspect.iscoroutinefunction(async_func))
@@ -115,7 +117,7 @@ class AsyncPatchCMTest(unittest.TestCase):
def test_is_async_function_cm(self):
def test_async():
with patch.object(AsyncClass, 'async_method') as mock_method:
- self.assertTrue(asyncio.iscoroutinefunction(mock_method))
+ self.assertTrue(iscoroutinefunction(mock_method))
test_async()
@@ -124,7 +126,7 @@ class AsyncPatchCMTest(unittest.TestCase):
with patch.object(AsyncClass, 'async_method') as mock_method:
m = mock_method()
self.assertTrue(inspect.isawaitable(m))
- asyncio.run(m)
+ run(m)
test_async()
@@ -141,31 +143,31 @@ class AsyncPatchCMTest(unittest.TestCase):
self.assertIsInstance(async_func, AsyncMock)
self.assertTrue(inspect.iscoroutinefunction(async_func))
- asyncio.run(test_async())
+ run(test_async())
class AsyncMockTest(unittest.TestCase):
def test_iscoroutinefunction_default(self):
mock = AsyncMock()
- self.assertTrue(asyncio.iscoroutinefunction(mock))
+ self.assertTrue(iscoroutinefunction(mock))
def test_iscoroutinefunction_function(self):
async def foo(): pass
mock = AsyncMock(foo)
- self.assertTrue(asyncio.iscoroutinefunction(mock))
+ self.assertTrue(iscoroutinefunction(mock))
self.assertTrue(inspect.iscoroutinefunction(mock))
def test_isawaitable(self):
mock = AsyncMock()
m = mock()
self.assertTrue(inspect.isawaitable(m))
- asyncio.run(m)
+ run(m)
self.assertIn('assert_awaited', dir(mock))
def test_iscoroutinefunction_normal_function(self):
def foo(): pass
mock = AsyncMock(foo)
- self.assertTrue(asyncio.iscoroutinefunction(mock))
+ self.assertTrue(iscoroutinefunction(mock))
self.assertTrue(inspect.iscoroutinefunction(mock))
def test_future_isfuture(self):
@@ -211,9 +213,9 @@ class AsyncAutospecTest(unittest.TestCase):
self.assertEqual(spec.await_args_list, [])
spec.assert_not_awaited()
- asyncio.run(main())
+ run(main())
- self.assertTrue(asyncio.iscoroutinefunction(spec))
+ self.assertTrue(iscoroutinefunction(spec))
self.assertTrue(asyncio.iscoroutine(awaitable))
self.assertEqual(spec.await_count, 1)
self.assertEqual(spec.await_args, call(1, 2, c=3))
@@ -234,7 +236,7 @@ class AsyncAutospecTest(unittest.TestCase):
awaitable = mock_method(1, 2, c=3)
self.assertIsInstance(mock_method.mock, AsyncMock)
- self.assertTrue(asyncio.iscoroutinefunction(mock_method))
+ self.assertTrue(iscoroutinefunction(mock_method))
self.assertTrue(asyncio.iscoroutine(awaitable))
self.assertTrue(inspect.isawaitable(awaitable))
@@ -259,7 +261,7 @@ class AsyncAutospecTest(unittest.TestCase):
self.assertIsNone(mock_method.await_args)
self.assertEqual(mock_method.await_args_list, [])
- asyncio.run(test_async())
+ run(test_async())
class AsyncSpecTest(unittest.TestCase):
@@ -313,14 +315,14 @@ class AsyncSpecTest(unittest.TestCase):
self.assertIsInstance(mock, AsyncMock)
m = mock()
self.assertTrue(inspect.isawaitable(m))
- asyncio.run(m)
+ run(m)
def test_spec_as_normal_positional_AsyncMock(self):
mock = AsyncMock(normal_func)
self.assertIsInstance(mock, AsyncMock)
m = mock()
self.assertTrue(inspect.isawaitable(m))
- asyncio.run(m)
+ run(m)
def test_spec_async_mock(self):
@patch.object(AsyncClass, 'async_method', spec=True)
@@ -370,13 +372,13 @@ class AsyncSpecSetTest(unittest.TestCase):
def test_is_async_AsyncMock(self):
mock = AsyncMock(spec_set=AsyncClass.async_method)
- self.assertTrue(asyncio.iscoroutinefunction(mock))
+ self.assertTrue(iscoroutinefunction(mock))
self.assertIsInstance(mock, AsyncMock)
def test_is_child_AsyncMock(self):
mock = MagicMock(spec_set=AsyncClass)
- self.assertTrue(asyncio.iscoroutinefunction(mock.async_method))
- self.assertFalse(asyncio.iscoroutinefunction(mock.normal_method))
+ self.assertTrue(iscoroutinefunction(mock.async_method))
+ self.assertFalse(iscoroutinefunction(mock.normal_method))
self.assertIsInstance(mock.async_method, AsyncMock)
self.assertIsInstance(mock.normal_method, MagicMock)
self.assertIsInstance(mock, MagicMock)
@@ -389,7 +391,7 @@ class AsyncSpecSetTest(unittest.TestCase):
self.assertIsInstance(cm, MagicMock)
-class AsyncArguments(unittest.IsolatedAsyncioTestCase):
+class AsyncArguments(IsolatedAsyncioTestCase):
async def test_add_return_value(self):
async def addition(self, var):
return var + 1
@@ -536,8 +538,8 @@ class AsyncMagicMethods(unittest.TestCase):
self.assertIsInstance(m_mock.__aenter__, AsyncMock)
self.assertIsInstance(m_mock.__aexit__, AsyncMock)
# AsyncMocks are also coroutine functions
- self.assertTrue(asyncio.iscoroutinefunction(m_mock.__aenter__))
- self.assertTrue(asyncio.iscoroutinefunction(m_mock.__aexit__))
+ self.assertTrue(iscoroutinefunction(m_mock.__aenter__))
+ self.assertTrue(iscoroutinefunction(m_mock.__aexit__))
class AsyncContextManagerTest(unittest.TestCase):
@@ -574,7 +576,7 @@ class AsyncContextManagerTest(unittest.TestCase):
response.json = AsyncMock(return_value={'json': 123})
cm.__aenter__.return_value = response
pc.session.post.return_value = cm
- result = asyncio.run(pc.main())
+ result = run(pc.main())
self.assertEqual(result, {'json': 123})
for mock_type in [AsyncMock, MagicMock]:
@@ -593,7 +595,7 @@ class AsyncContextManagerTest(unittest.TestCase):
called = True
return result
- cm_result = asyncio.run(use_context_manager())
+ cm_result = run(use_context_manager())
self.assertTrue(called)
self.assertTrue(cm_mock.__aenter__.called)
self.assertTrue(cm_mock.__aexit__.called)
@@ -618,7 +620,7 @@ class AsyncContextManagerTest(unittest.TestCase):
async with mock_instance as result:
return result
- self.assertIs(asyncio.run(use_context_manager()), expected_result)
+ self.assertIs(run(use_context_manager()), expected_result)
def test_mock_customize_async_context_manager_with_coroutine(self):
enter_called = False
@@ -642,7 +644,7 @@ class AsyncContextManagerTest(unittest.TestCase):
async with mock_instance:
pass
- asyncio.run(use_context_manager())
+ run(use_context_manager())
self.assertTrue(enter_called)
self.assertTrue(exit_called)
@@ -654,7 +656,7 @@ class AsyncContextManagerTest(unittest.TestCase):
instance = self.WithAsyncContextManager()
mock_instance = MagicMock(instance)
with self.assertRaises(TypeError):
- asyncio.run(raise_in(mock_instance))
+ run(raise_in(mock_instance))
class AsyncIteratorTest(unittest.TestCase):
@@ -678,7 +680,7 @@ class AsyncIteratorTest(unittest.TestCase):
mock_iter.__aiter__.return_value = [1, 2, 3]
async def main():
return [i async for i in mock_iter]
- result = asyncio.run(main())
+ result = run(main())
self.assertEqual(result, [1, 2, 3])
def test_mock_aiter_and_anext_asyncmock(self):
@@ -687,11 +689,11 @@ class AsyncIteratorTest(unittest.TestCase):
mock_instance = mock_type(instance)
# Check that the mock and the real thing bahave the same
# __aiter__ is not actually async, so not a coroutinefunction
- self.assertFalse(asyncio.iscoroutinefunction(instance.__aiter__))
- self.assertFalse(asyncio.iscoroutinefunction(mock_instance.__aiter__))
+ self.assertFalse(iscoroutinefunction(instance.__aiter__))
+ self.assertFalse(iscoroutinefunction(mock_instance.__aiter__))
# __anext__ is async
- self.assertTrue(asyncio.iscoroutinefunction(instance.__anext__))
- self.assertTrue(asyncio.iscoroutinefunction(mock_instance.__anext__))
+ self.assertTrue(iscoroutinefunction(instance.__anext__))
+ self.assertTrue(iscoroutinefunction(mock_instance.__anext__))
for mock_type in [AsyncMock, MagicMock]:
with self.subTest(f"test aiter and anext corourtine with {mock_type}"):
@@ -709,18 +711,18 @@ class AsyncIteratorTest(unittest.TestCase):
expected = ["FOO", "BAR", "BAZ"]
def test_default(mock_type):
mock_instance = mock_type(self.WithAsyncIterator())
- self.assertEqual(asyncio.run(iterate(mock_instance)), [])
+ self.assertEqual(run(iterate(mock_instance)), [])
def test_set_return_value(mock_type):
mock_instance = mock_type(self.WithAsyncIterator())
mock_instance.__aiter__.return_value = expected[:]
- self.assertEqual(asyncio.run(iterate(mock_instance)), expected)
+ self.assertEqual(run(iterate(mock_instance)), expected)
def test_set_return_value_iter(mock_type):
mock_instance = mock_type(self.WithAsyncIterator())
mock_instance.__aiter__.return_value = iter(expected[:])
- self.assertEqual(asyncio.run(iterate(mock_instance)), expected)
+ self.assertEqual(run(iterate(mock_instance)), expected)
for mock_type in [AsyncMock, MagicMock]:
with self.subTest(f"default value with {mock_type}"):
@@ -748,7 +750,7 @@ class AsyncMockAssert(unittest.TestCase):
with self.assertWarns(RuntimeWarning):
# Will raise a warning because never awaited
mock.async_method()
- self.assertTrue(asyncio.iscoroutinefunction(mock.async_method))
+ self.assertTrue(iscoroutinefunction(mock.async_method))
mock.async_method.assert_called()
mock.async_method.assert_called_once()
mock.async_method.assert_called_once_with()
@@ -766,7 +768,7 @@ class AsyncMockAssert(unittest.TestCase):
with self.assertRaises(AssertionError):
mock.async_method.assert_awaited()
- asyncio.run(self._await_coroutine(mock_coroutine))
+ run(self._await_coroutine(mock_coroutine))
# Assert we haven't re-called the function
mock.async_method.assert_called_once()
mock.async_method.assert_awaited()
@@ -780,7 +782,7 @@ class AsyncMockAssert(unittest.TestCase):
with self.assertRaises(AssertionError):
self.mock.assert_called()
- asyncio.run(self._runnable_test())
+ run(self._runnable_test())
self.mock.assert_called_once()
self.mock.assert_awaited_once()
@@ -794,7 +796,7 @@ class AsyncMockAssert(unittest.TestCase):
with self.assertRaises(AssertionError):
mock.async_method.assert_awaited()
mock.async_method.assert_called()
- asyncio.run(self._await_coroutine(coroutine))
+ run(self._await_coroutine(coroutine))
mock.async_method.assert_awaited()
mock.async_method.assert_awaited_once()
@@ -802,10 +804,10 @@ class AsyncMockAssert(unittest.TestCase):
mock = AsyncMock(AsyncClass)
coroutine = mock.async_method()
mock.async_method.assert_called_once()
- asyncio.run(self._await_coroutine(coroutine))
+ run(self._await_coroutine(coroutine))
with self.assertRaises(RuntimeError):
# Cannot reuse already awaited coroutine
- asyncio.run(self._await_coroutine(coroutine))
+ run(self._await_coroutine(coroutine))
mock.async_method.assert_awaited()
def test_assert_awaited_but_not_called(self):
@@ -815,7 +817,7 @@ class AsyncMockAssert(unittest.TestCase):
self.mock.assert_called()
with self.assertRaises(TypeError):
# You cannot await an AsyncMock, it must be a coroutine
- asyncio.run(self._await_coroutine(self.mock))
+ run(self._await_coroutine(self.mock))
with self.assertRaises(AssertionError):
self.mock.assert_awaited()
@@ -909,17 +911,17 @@ class AsyncMockAssert(unittest.TestCase):
with self.assertRaises(AssertionError):
self.mock.assert_awaited()
- asyncio.run(self._runnable_test())
+ run(self._runnable_test())
self.mock.assert_awaited()
def test_assert_awaited_once(self):
with self.assertRaises(AssertionError):
self.mock.assert_awaited_once()
- asyncio.run(self._runnable_test())
+ run(self._runnable_test())
self.mock.assert_awaited_once()
- asyncio.run(self._runnable_test())
+ run(self._runnable_test())
with self.assertRaises(AssertionError):
self.mock.assert_awaited_once()
@@ -928,15 +930,15 @@ class AsyncMockAssert(unittest.TestCase):
with self.assertRaisesRegex(AssertionError, msg):
self.mock.assert_awaited_with('foo')
- asyncio.run(self._runnable_test())
+ run(self._runnable_test())
msg = 'expected await not found'
with self.assertRaisesRegex(AssertionError, msg):
self.mock.assert_awaited_with('foo')
- asyncio.run(self._runnable_test('foo'))
+ run(self._runnable_test('foo'))
self.mock.assert_awaited_with('foo')
- asyncio.run(self._runnable_test('SomethingElse'))
+ run(self._runnable_test('SomethingElse'))
with self.assertRaises(AssertionError):
self.mock.assert_awaited_with('foo')
@@ -944,10 +946,10 @@ class AsyncMockAssert(unittest.TestCase):
with self.assertRaises(AssertionError):
self.mock.assert_awaited_once_with('foo')
- asyncio.run(self._runnable_test('foo'))
+ run(self._runnable_test('foo'))
self.mock.assert_awaited_once_with('foo')
- asyncio.run(self._runnable_test('foo'))
+ run(self._runnable_test('foo'))
with self.assertRaises(AssertionError):
self.mock.assert_awaited_once_with('foo')
@@ -955,14 +957,14 @@ class AsyncMockAssert(unittest.TestCase):
with self.assertRaises(AssertionError):
self.mock.assert_any_await('foo')
- asyncio.run(self._runnable_test('baz'))
+ run(self._runnable_test('baz'))
with self.assertRaises(AssertionError):
self.mock.assert_any_await('foo')
- asyncio.run(self._runnable_test('foo'))
+ run(self._runnable_test('foo'))
self.mock.assert_any_await('foo')
- asyncio.run(self._runnable_test('SomethingElse'))
+ run(self._runnable_test('SomethingElse'))
self.mock.assert_any_await('foo')
def test_assert_has_awaits_no_order(self):
@@ -972,25 +974,25 @@ class AsyncMockAssert(unittest.TestCase):
self.mock.assert_has_awaits(calls)
self.assertEqual(len(cm.exception.args), 1)
- asyncio.run(self._runnable_test('foo'))
+ run(self._runnable_test('foo'))
with self.assertRaises(AssertionError):
self.mock.assert_has_awaits(calls)
- asyncio.run(self._runnable_test('foo'))
+ run(self._runnable_test('foo'))
with self.assertRaises(AssertionError):
self.mock.assert_has_awaits(calls)
- asyncio.run(self._runnable_test('baz'))
+ run(self._runnable_test('baz'))
self.mock.assert_has_awaits(calls)
- asyncio.run(self._runnable_test('SomethingElse'))
+ run(self._runnable_test('SomethingElse'))
self.mock.assert_has_awaits(calls)
def test_awaits_asserts_with_any(self):
class Foo:
def __eq__(self, other): pass
- asyncio.run(self._runnable_test(Foo(), 1))
+ run(self._runnable_test(Foo(), 1))
self.mock.assert_has_awaits([call(ANY, 1)])
self.mock.assert_awaited_with(ANY, 1)
@@ -1005,7 +1007,7 @@ class AsyncMockAssert(unittest.TestCase):
async def _custom_mock_runnable_test(*args):
await mock_with_spec(*args)
- asyncio.run(_custom_mock_runnable_test(Foo(), 1))
+ run(_custom_mock_runnable_test(Foo(), 1))
mock_with_spec.assert_has_awaits([call(ANY, 1)])
mock_with_spec.assert_awaited_with(ANY, 1)
mock_with_spec.assert_any_await(ANY, 1)
@@ -1015,24 +1017,24 @@ class AsyncMockAssert(unittest.TestCase):
with self.assertRaises(AssertionError):
self.mock.assert_has_awaits(calls, any_order=True)
- asyncio.run(self._runnable_test('baz'))
+ run(self._runnable_test('baz'))
with self.assertRaises(AssertionError):
self.mock.assert_has_awaits(calls, any_order=True)
- asyncio.run(self._runnable_test('bamf'))
+ run(self._runnable_test('bamf'))
with self.assertRaises(AssertionError):
self.mock.assert_has_awaits(calls, any_order=True)
- asyncio.run(self._runnable_test('foo'))
+ run(self._runnable_test('foo'))
self.mock.assert_has_awaits(calls, any_order=True)
- asyncio.run(self._runnable_test('qux'))
+ run(self._runnable_test('qux'))
self.mock.assert_has_awaits(calls, any_order=True)
def test_assert_not_awaited(self):
self.mock.assert_not_awaited()
- asyncio.run(self._runnable_test())
+ run(self._runnable_test())
with self.assertRaises(AssertionError):
self.mock.assert_not_awaited()
@@ -1040,7 +1042,7 @@ class AsyncMockAssert(unittest.TestCase):
async def f(x=None): pass
self.mock = AsyncMock(spec=f)
- asyncio.run(self._runnable_test(1))
+ run(self._runnable_test(1))
with self.assertRaisesRegex(
AssertionError,
diff --git a/Lib/unittest/test/testmock/testmagicmethods.py b/Lib/unittest/test/testmock/testmagicmethods.py
index 76b3a560de0..5690f7a6bbb 100644
--- a/Lib/unittest/test/testmock/testmagicmethods.py
+++ b/Lib/unittest/test/testmock/testmagicmethods.py
@@ -1,8 +1,8 @@
-import asyncio
import math
import unittest
import os
import sys
+from asyncio import iscoroutinefunction
from unittest.mock import AsyncMock, Mock, MagicMock, _magics
@@ -286,8 +286,8 @@ class TestMockingMagicMethods(unittest.TestCase):
self.assertEqual(math.trunc(mock), mock.__trunc__())
self.assertEqual(math.floor(mock), mock.__floor__())
self.assertEqual(math.ceil(mock), mock.__ceil__())
- self.assertTrue(asyncio.iscoroutinefunction(mock.__aexit__))
- self.assertTrue(asyncio.iscoroutinefunction(mock.__aenter__))
+ self.assertTrue(iscoroutinefunction(mock.__aexit__))
+ self.assertTrue(iscoroutinefunction(mock.__aenter__))
self.assertIsInstance(mock.__aenter__, AsyncMock)
self.assertIsInstance(mock.__aexit__, AsyncMock)
@@ -312,8 +312,8 @@ class TestMockingMagicMethods(unittest.TestCase):
self.assertEqual(math.trunc(mock), mock.__trunc__())
self.assertEqual(math.floor(mock), mock.__floor__())
self.assertEqual(math.ceil(mock), mock.__ceil__())
- self.assertTrue(asyncio.iscoroutinefunction(mock.__aexit__))
- self.assertTrue(asyncio.iscoroutinefunction(mock.__aenter__))
+ self.assertTrue(iscoroutinefunction(mock.__aexit__))
+ self.assertTrue(iscoroutinefunction(mock.__aenter__))
self.assertIsInstance(mock.__aenter__, AsyncMock)
self.assertIsInstance(mock.__aexit__, AsyncMock)
From a46575a8f2ded8b49e26c25bb67192e1500e76ca Mon Sep 17 00:00:00 2001
From: Chris Withers
Date: Mon, 27 Jan 2020 14:55:56 +0000
Subject: [PATCH 217/380] Clarify and fix assertions that mocks have not been
awaited (GH-18196)
- The gc.collect is needed for other implementations, such as pypy
- Using context managers over multiple lines will only catch the warning from the first line in the context!
- remove a skip for a test that no longer fails on pypy
---
Lib/unittest/test/testmock/testasync.py | 55 ++++++++++---------
.../test/testmock/testmagicmethods.py | 2 -
2 files changed, 30 insertions(+), 27 deletions(-)
diff --git a/Lib/unittest/test/testmock/testasync.py b/Lib/unittest/test/testmock/testasync.py
index 6cba42727af..992076db787 100644
--- a/Lib/unittest/test/testmock/testasync.py
+++ b/Lib/unittest/test/testmock/testasync.py
@@ -1,7 +1,9 @@
import asyncio
+import gc
import inspect
import re
import unittest
+from contextlib import contextmanager
from asyncio import run, iscoroutinefunction
from unittest import IsolatedAsyncioTestCase
@@ -52,6 +54,15 @@ async_foo_name = f'{__name__}.AsyncClass'
normal_foo_name = f'{__name__}.NormalClass'
+@contextmanager
+def assertNeverAwaited(test):
+ with test.assertWarnsRegex(RuntimeWarning, "was never awaited$"):
+ yield
+ # In non-CPython implementations of Python, this is needed because timely
+ # deallocation is not guaranteed by the garbage collector.
+ gc.collect()
+
+
class AsyncPatchDecoratorTest(unittest.TestCase):
def test_is_coroutine_function_patch(self):
@patch.object(AsyncClass, 'async_method')
@@ -284,8 +295,7 @@ class AsyncSpecTest(unittest.TestCase):
def inner_test(mock_type):
async_mock = mock_type(spec=async_func)
self.assertIsInstance(async_mock, mock_type)
- with self.assertWarns(RuntimeWarning):
- # Will raise a warning because never awaited
+ with assertNeverAwaited(self):
self.assertTrue(inspect.isawaitable(async_mock()))
sync_mock = mock_type(spec=normal_func)
@@ -299,8 +309,7 @@ class AsyncSpecTest(unittest.TestCase):
def inner_test(mock_type):
async_mock = mock_type(async_func)
self.assertIsInstance(async_mock, mock_type)
- with self.assertWarns(RuntimeWarning):
- # Will raise a warning because never awaited
+ with assertNeverAwaited(self):
self.assertTrue(inspect.isawaitable(async_mock()))
sync_mock = mock_type(normal_func)
@@ -747,8 +756,7 @@ class AsyncMockAssert(unittest.TestCase):
def test_assert_called_but_not_awaited(self):
mock = AsyncMock(AsyncClass)
- with self.assertWarns(RuntimeWarning):
- # Will raise a warning because never awaited
+ with assertNeverAwaited(self):
mock.async_method()
self.assertTrue(iscoroutinefunction(mock.async_method))
mock.async_method.assert_called()
@@ -789,9 +797,9 @@ class AsyncMockAssert(unittest.TestCase):
def test_assert_called_twice_and_awaited_once(self):
mock = AsyncMock(AsyncClass)
coroutine = mock.async_method()
- with self.assertWarns(RuntimeWarning):
- # The first call will be awaited so no warning there
- # But this call will never get awaited, so it will warn here
+ # The first call will be awaited so no warning there
+ # But this call will never get awaited, so it will warn here
+ with assertNeverAwaited(self):
mock.async_method()
with self.assertRaises(AssertionError):
mock.async_method.assert_awaited()
@@ -826,38 +834,34 @@ class AsyncMockAssert(unittest.TestCase):
def test_assert_has_calls_not_awaits(self):
kalls = [call('foo')]
- with self.assertWarns(RuntimeWarning):
- # Will raise a warning because never awaited
+ with assertNeverAwaited(self):
self.mock('foo')
self.mock.assert_has_calls(kalls)
with self.assertRaises(AssertionError):
self.mock.assert_has_awaits(kalls)
def test_assert_has_mock_calls_on_async_mock_no_spec(self):
- with self.assertWarns(RuntimeWarning):
- # Will raise a warning because never awaited
+ with assertNeverAwaited(self):
self.mock()
kalls_empty = [('', (), {})]
self.assertEqual(self.mock.mock_calls, kalls_empty)
- with self.assertWarns(RuntimeWarning):
- # Will raise a warning because never awaited
+ with assertNeverAwaited(self):
self.mock('foo')
+ with assertNeverAwaited(self):
self.mock('baz')
mock_kalls = ([call(), call('foo'), call('baz')])
self.assertEqual(self.mock.mock_calls, mock_kalls)
def test_assert_has_mock_calls_on_async_mock_with_spec(self):
a_class_mock = AsyncMock(AsyncClass)
- with self.assertWarns(RuntimeWarning):
- # Will raise a warning because never awaited
+ with assertNeverAwaited(self):
a_class_mock.async_method()
kalls_empty = [('', (), {})]
self.assertEqual(a_class_mock.async_method.mock_calls, kalls_empty)
self.assertEqual(a_class_mock.mock_calls, [call.async_method()])
- with self.assertWarns(RuntimeWarning):
- # Will raise a warning because never awaited
+ with assertNeverAwaited(self):
a_class_mock.async_method(1, 2, 3, a=4, b=5)
method_kalls = [call(), call(1, 2, 3, a=4, b=5)]
mock_kalls = [call.async_method(), call.async_method(1, 2, 3, a=4, b=5)]
@@ -865,9 +869,9 @@ class AsyncMockAssert(unittest.TestCase):
self.assertEqual(a_class_mock.mock_calls, mock_kalls)
def test_async_method_calls_recorded(self):
- with self.assertWarns(RuntimeWarning):
- # Will raise warnings because never awaited
+ with assertNeverAwaited(self):
self.mock.something(3, fish=None)
+ with assertNeverAwaited(self):
self.mock.something_else.something(6, cake=sentinel.Cake)
self.assertEqual(self.mock.method_calls, [
@@ -889,19 +893,20 @@ class AsyncMockAssert(unittest.TestCase):
self.assertEqual(attr, [])
assert_attrs(self.mock)
- with self.assertWarns(RuntimeWarning):
- # Will raise warnings because never awaited
+ with assertNeverAwaited(self):
self.mock()
+ with assertNeverAwaited(self):
self.mock(1, 2)
+ with assertNeverAwaited(self):
self.mock(a=3)
self.mock.reset_mock()
assert_attrs(self.mock)
a_mock = AsyncMock(AsyncClass)
- with self.assertWarns(RuntimeWarning):
- # Will raise warnings because never awaited
+ with assertNeverAwaited(self):
a_mock.async_method()
+ with assertNeverAwaited(self):
a_mock.async_method(1, a=3)
a_mock.reset_mock()
diff --git a/Lib/unittest/test/testmock/testmagicmethods.py b/Lib/unittest/test/testmock/testmagicmethods.py
index 5690f7a6bbb..a4feae7e9d3 100644
--- a/Lib/unittest/test/testmock/testmagicmethods.py
+++ b/Lib/unittest/test/testmock/testmagicmethods.py
@@ -1,7 +1,6 @@
import math
import unittest
import os
-import sys
from asyncio import iscoroutinefunction
from unittest.mock import AsyncMock, Mock, MagicMock, _magics
@@ -429,7 +428,6 @@ class TestMockingMagicMethods(unittest.TestCase):
self.assertEqual(dir(mock), ['foo'])
- @unittest.skipIf('PyPy' in sys.version, "This fails differently on pypy")
def test_bound_methods(self):
m = Mock()
From 4dbf2d8c6789a9b7299b142033073213604b8fdc Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Tue, 28 Jan 2020 00:02:23 +0900
Subject: [PATCH 218/380] bpo-39453: Make list.__contains__ hold strong
references to avoid crashes (GH-18181)
---
Lib/test/test_list.py | 5 +++++
.../2020-01-25-23-51-17.bpo-39453.xCOkYk.rst | 2 ++
Objects/listobject.c | 7 ++++++-
3 files changed, 13 insertions(+), 1 deletion(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-01-25-23-51-17.bpo-39453.xCOkYk.rst
diff --git a/Lib/test/test_list.py b/Lib/test/test_list.py
index 6e3c4c10930..33a55f76d9b 100644
--- a/Lib/test/test_list.py
+++ b/Lib/test/test_list.py
@@ -221,6 +221,11 @@ class ListTest(list_tests.CommonTest):
with self.assertRaises(ValueError):
lst.remove(lst)
+ # bpo-39453: list.__contains__ was not holding strong references
+ # to list elements while calling PyObject_RichCompareBool().
+ lst = [X(), X()]
+ 3 in lst
+
if __name__ == "__main__":
unittest.main()
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-01-25-23-51-17.bpo-39453.xCOkYk.rst b/Misc/NEWS.d/next/Core and Builtins/2020-01-25-23-51-17.bpo-39453.xCOkYk.rst
new file mode 100644
index 00000000000..8c2e49f9474
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-01-25-23-51-17.bpo-39453.xCOkYk.rst
@@ -0,0 +1,2 @@
+Fixed a possible crash in :meth:`list.__contains__` when a list is changed
+during comparing items. Patch by Dong-hee Na.
diff --git a/Objects/listobject.c b/Objects/listobject.c
index a4e90dbf90c..38055d5f5f3 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -445,11 +445,16 @@ list_length(PyListObject *a)
static int
list_contains(PyListObject *a, PyObject *el)
{
+ PyObject *item;
Py_ssize_t i;
int cmp;
- for (i = 0, cmp = 0 ; cmp == 0 && i < Py_SIZE(a); ++i)
+ for (i = 0, cmp = 0 ; cmp == 0 && i < Py_SIZE(a); ++i) {
+ item = PyList_GET_ITEM(a, i);
+ Py_INCREF(item);
cmp = PyObject_RichCompareBool(PyList_GET_ITEM(a, i), el, Py_EQ);
+ Py_DECREF(item);
+ }
return cmp;
}
From 7023288dc500008609e7a4d12ae710c2093c3fc6 Mon Sep 17 00:00:00 2001
From: Nick Coghlan
Date: Tue, 28 Jan 2020 02:05:03 +1000
Subject: [PATCH 219/380] Ignore NEWS snippets in code coverage stats
(GH-18194)
---
.github/codecov.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/codecov.yml b/.github/codecov.yml
index 9d97dfbc43f..ea504f48672 100644
--- a/.github/codecov.yml
+++ b/.github/codecov.yml
@@ -5,7 +5,7 @@ codecov:
comment: off
ignore:
- "Doc/**/*"
- - "Misc/*"
+ - "Misc/**/*"
- "Mac/**/*"
- "PC/**/*"
- "PCbuild/**/*"
From 9e1ed518a576897f914227bf538bac426a02a081 Mon Sep 17 00:00:00 2001
From: Dong-hee Na
Date: Tue, 28 Jan 2020 02:04:25 +0900
Subject: [PATCH 220/380] bpo-39453: Add testcase for bpo-39453 (GH-18202)
https://bugs.python.org/issue39453
Automerge-Triggered-By: @pablogsal
Automerge-Triggered-By: @pablogsal
---
Lib/test/test_list.py | 2 ++
Objects/listobject.c | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/Lib/test/test_list.py b/Lib/test/test_list.py
index 33a55f76d9b..3c8d82958fd 100644
--- a/Lib/test/test_list.py
+++ b/Lib/test/test_list.py
@@ -225,6 +225,8 @@ class ListTest(list_tests.CommonTest):
# to list elements while calling PyObject_RichCompareBool().
lst = [X(), X()]
3 in lst
+ lst = [X(), X()]
+ X() in lst
if __name__ == "__main__":
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 38055d5f5f3..2c07ceb0d41 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -452,7 +452,7 @@ list_contains(PyListObject *a, PyObject *el)
for (i = 0, cmp = 0 ; cmp == 0 && i < Py_SIZE(a); ++i) {
item = PyList_GET_ITEM(a, i);
Py_INCREF(item);
- cmp = PyObject_RichCompareBool(PyList_GET_ITEM(a, i), el, Py_EQ);
+ cmp = PyObject_RichCompareBool(item, el, Py_EQ);
Py_DECREF(item);
}
return cmp;
From 4a46adc7746930c4589ee483cad88d3f8504c045 Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Mon, 27 Jan 2020 18:06:42 +0100
Subject: [PATCH 221/380] bpo-39459: test.pythoninfo logs effective uid/gid
(GH-18203)
Fix also umask formatting: use octal prefix.
---
Lib/test/pythoninfo.py | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/Lib/test/pythoninfo.py b/Lib/test/pythoninfo.py
index eab82c3631f..cc230dd2297 100644
--- a/Lib/test/pythoninfo.py
+++ b/Lib/test/pythoninfo.py
@@ -199,11 +199,19 @@ def collect_os(info_add):
)
copy_attributes(info_add, os, 'os.%s', attributes, formatter=format_attr)
- call_func(info_add, 'os.getcwd', os, 'getcwd')
-
- call_func(info_add, 'os.getuid', os, 'getuid')
- call_func(info_add, 'os.getgid', os, 'getgid')
- call_func(info_add, 'os.uname', os, 'uname')
+ for func in (
+ 'cpu_count',
+ 'getcwd',
+ 'getegid',
+ 'geteuid',
+ 'getgid',
+ 'getloadavg',
+ 'getresgid',
+ 'getresuid',
+ 'getuid',
+ 'uname',
+ ):
+ call_func(info_add, 'os.%s' % func, os, func)
def format_groups(groups):
return ', '.join(map(str, groups))
@@ -220,9 +228,6 @@ def collect_os(info_add):
else:
info_add("os.login", login)
- call_func(info_add, 'os.cpu_count', os, 'cpu_count')
- call_func(info_add, 'os.getloadavg', os, 'getloadavg')
-
# Environment variables used by the stdlib and tests. Don't log the full
# environment: filter to list to not leak sensitive information.
#
@@ -303,7 +308,7 @@ def collect_os(info_add):
if hasattr(os, 'umask'):
mask = os.umask(0)
os.umask(mask)
- info_add("os.umask", '%03o' % mask)
+ info_add("os.umask", '0o%03o' % mask)
def collect_pwd(info_add):
From a94c6b61aa5c09237b8105e5aee638cd54197b6f Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Mon, 27 Jan 2020 22:37:05 +0100
Subject: [PATCH 222/380] bpo-38631: Avoid Py_FatalError() in
PyModule_Create2() (GH-18212)
If PyModule_Create2() is called when the Python import machinery is
not initialized, it now raises a SystemError and returns NULL,
instead of calling Py_FatalError() which aborts the process.
The caller must be prepared to handle NULL anyway.
---
Objects/moduleobject.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c
index 03c7381311a..912c2584015 100644
--- a/Objects/moduleobject.c
+++ b/Objects/moduleobject.c
@@ -173,8 +173,11 @@ _add_methods_to_object(PyObject *module, PyObject *name, PyMethodDef *functions)
PyObject *
PyModule_Create2(struct PyModuleDef* module, int module_api_version)
{
- if (!_PyImport_IsInitialized(_PyInterpreterState_Get()))
- Py_FatalError("Python import machinery not initialized");
+ if (!_PyImport_IsInitialized(_PyInterpreterState_Get())) {
+ PyErr_SetString(PyExc_SystemError,
+ "Python import machinery not initialized");
+ return NULL;
+ }
return _PyModule_CreateInitialized(module, module_api_version);
}
From 47ee8a6063c22ec272fe7a2d95d12f7811ebb48b Mon Sep 17 00:00:00 2001
From: Victor Stinner
Date: Mon, 27 Jan 2020 22:37:44 +0100
Subject: [PATCH 223/380] bpo-38631: Avoid Py_FatalError() in _memory_release()
(GH-18214)
If the export count is negative, _memory_release() now raises a
SystemError and returns -1, rather than calling Py_FatalError()
which aborts the process.
---
Objects/memoryobject.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c
index 66920eaf947..d9dd11733ef 100644
--- a/Objects/memoryobject.c
+++ b/Objects/memoryobject.c
@@ -1048,7 +1048,8 @@ _memory_release(PyMemoryViewObject *self)
return -1;
}
- Py_FatalError("_memory_release(): negative export count");
+ PyErr_SetString(PyExc_SystemError,
+ "_memory_release(): negative export count");
return -1;
}
From 2528a6c3d0660c03ae43d796628462ccf8e58190 Mon Sep 17 00:00:00 2001
From: Dino Viehland
Date: Mon, 27 Jan 2020 14:04:56 -0800
Subject: [PATCH 224/380] Add test.test_import.data.unwritable package to
makefile (#18211)
---
Makefile.pre.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile.pre.in b/Makefile.pre.in
index cfe42b4f21e..d430dc30bb6 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1336,6 +1336,7 @@ LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \
test/test_import/data/circular_imports/subpkg \
test/test_import/data/package \
test/test_import/data/package2 \
+ test/test_import/data/unwritable \
importlib \
importlib/metadata \
test/test_importlib \
From dd023ad1619b6f1ab313986e8953eea32c18f50c Mon Sep 17 00:00:00 2001
From: Cheryl Sabella
Date: Mon, 27 Jan 2020 17:15:56 -0500
Subject: [PATCH 225/380] bpo-30780: Add IDLE configdialog tests (#3592)
Expose dialog buttons to test code and complete their test coverage.
Complete test coverage for highlights and keys tabs.
Co-authored-by: Terry Jan Reedy
---
Lib/idlelib/NEWS.txt | 3 +
Lib/idlelib/configdialog.py | 18 +-
Lib/idlelib/idle_test/test_configdialog.py | 158 +++++++++++++++---
.../2020-01-27-16-44-29.bpo-30780.nR80qu.rst | 1 +
4 files changed, 149 insertions(+), 31 deletions(-)
create mode 100644 Misc/NEWS.d/next/IDLE/2020-01-27-16-44-29.bpo-30780.nR80qu.rst
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index eda7c278876..2b543985b37 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,6 +3,9 @@ Released on 2020-10-05?
======================================
+bpo-30780: Add remaining configdialog tests for buttons and
+highlights and keys tabs.
+
bpo-39388: Settings dialog Cancel button cancels pending changes.
bpo-39050: Settings dialog Help button again displays help text.
diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py
index 2f95c9ccaa0..22359735874 100644
--- a/Lib/idlelib/configdialog.py
+++ b/Lib/idlelib/configdialog.py
@@ -149,17 +149,19 @@ class ConfigDialog(Toplevel):
else:
padding_args = {'padding': (6, 3)}
outer = Frame(self, padding=2)
- buttons = Frame(outer, padding=2)
+ buttons_frame = Frame(outer, padding=2)
+ self.buttons = {}
for txt, cmd in (
('Ok', self.ok),
('Apply', self.apply),
('Cancel', self.cancel),
('Help', self.help)):
- Button(buttons, text=txt, command=cmd, takefocus=FALSE,
- **padding_args).pack(side=LEFT, padx=5)
+ self.buttons[txt] = Button(buttons_frame, text=txt, command=cmd,
+ takefocus=FALSE, **padding_args)
+ self.buttons[txt].pack(side=LEFT, padx=5)
# Add space above buttons.
Frame(outer, height=2, borderwidth=0).pack(side=TOP)
- buttons.pack(side=BOTTOM)
+ buttons_frame.pack(side=BOTTOM)
return outer
def ok(self):
@@ -205,7 +207,6 @@ class ConfigDialog(Toplevel):
Attributes accessed:
note
-
Methods:
view_text: Method from textview module.
"""
@@ -852,6 +853,7 @@ class HighPage(Frame):
text.configure(
font=('courier', 12, ''), cursor='hand2', width=1, height=1,
takefocus=FALSE, highlightthickness=0, wrap=NONE)
+ # Prevent perhaps invisible selection of word or slice.
text.bind('', lambda e: 'break')
text.bind('', lambda e: 'break')
string_tags=(
@@ -1284,8 +1286,7 @@ class HighPage(Frame):
theme_name - string, the name of the new theme
theme - dictionary containing the new theme
"""
- if not idleConf.userCfg['highlight'].has_section(theme_name):
- idleConf.userCfg['highlight'].add_section(theme_name)
+ idleConf.userCfg['highlight'].AddSection(theme_name)
for element in theme:
value = theme[element]
idleConf.userCfg['highlight'].SetOption(theme_name, element, value)
@@ -1730,8 +1731,7 @@ class KeysPage(Frame):
keyset_name - string, the name of the new key set
keyset - dictionary containing the new keybindings
"""
- if not idleConf.userCfg['keys'].has_section(keyset_name):
- idleConf.userCfg['keys'].add_section(keyset_name)
+ idleConf.userCfg['keys'].AddSection(keyset_name)
for event in keyset:
value = keyset[event]
idleConf.userCfg['keys'].SetOption(keyset_name, event, value)
diff --git a/Lib/idlelib/idle_test/test_configdialog.py b/Lib/idlelib/idle_test/test_configdialog.py
index 817a35217bf..1fea6d41df8 100644
--- a/Lib/idlelib/idle_test/test_configdialog.py
+++ b/Lib/idlelib/idle_test/test_configdialog.py
@@ -8,7 +8,7 @@ requires('gui')
import unittest
from unittest import mock
from idlelib.idle_test.mock_idle import Func
-from tkinter import Tk, StringVar, IntVar, BooleanVar, DISABLED, NORMAL
+from tkinter import (Tk, StringVar, IntVar, BooleanVar, DISABLED, NORMAL)
from idlelib import config
from idlelib.configdialog import idleConf, changes, tracers
@@ -30,6 +30,7 @@ highpage = changes['highlight']
keyspage = changes['keys']
extpage = changes['extensions']
+
def setUpModule():
global root, dialog
idleConf.userCfg = testcfg
@@ -37,6 +38,7 @@ def setUpModule():
# root.withdraw() # Comment out, see issue 30870
dialog = configdialog.ConfigDialog(root, 'Test', _utest=True)
+
def tearDownModule():
global root, dialog
idleConf.userCfg = usercfg
@@ -48,22 +50,56 @@ def tearDownModule():
root = dialog = None
-class DialogTest(unittest.TestCase):
+class ConfigDialogTest(unittest.TestCase):
- @mock.patch(__name__+'.dialog.destroy', new_callable=Func)
- def test_cancel(self, destroy):
+ def test_deactivate_current_config(self):
+ pass
+
+ def activate_config_changes(self):
+ pass
+
+
+class ButtonTest(unittest.TestCase):
+
+ def test_click_ok(self):
+ d = dialog
+ apply = d.apply = mock.Mock()
+ destroy = d.destroy = mock.Mock()
+ d.buttons['Ok'].invoke()
+ apply.assert_called_once()
+ destroy.assert_called_once()
+ del d.destroy, d.apply
+
+ def test_click_apply(self):
+ d = dialog
+ deactivate = d.deactivate_current_config = mock.Mock()
+ save_ext = d.save_all_changed_extensions = mock.Mock()
+ activate = d.activate_config_changes = mock.Mock()
+ d.buttons['Apply'].invoke()
+ deactivate.assert_called_once()
+ save_ext.assert_called_once()
+ activate.assert_called_once()
+ del d.save_all_changed_extensions
+ del d.activate_config_changes, d.deactivate_current_config
+
+ def test_click_cancel(self):
+ d = dialog
+ d.destroy = Func()
changes['main']['something'] = 1
- dialog.cancel()
+ d.buttons['Cancel'].invoke()
self.assertEqual(changes['main'], {})
- self.assertEqual(destroy.called, 1)
+ self.assertEqual(d.destroy.called, 1)
+ del d.destroy
- @mock.patch('idlelib.configdialog.view_text', new_callable=Func)
- def test_help(self, view):
+ def test_click_help(self):
dialog.note.select(dialog.keyspage)
- dialog.help()
- s = view.kwds['contents']
- self.assertTrue(s.startswith('When you click') and
- s.endswith('a different name.\n'))
+ with mock.patch.object(configdialog, 'view_text',
+ new_callable=Func) as view:
+ dialog.buttons['Help'].invoke()
+ title, contents = view.kwds['title'], view.kwds['contents']
+ self.assertEqual(title, 'Help for IDLE preferences')
+ self.assertTrue(contents.startswith('When you click') and
+ contents.endswith('a different name.\n'))
class FontPageTest(unittest.TestCase):
@@ -438,6 +474,48 @@ class HighPageTest(unittest.TestCase):
eq(d.highlight_target.get(), elem[tag])
eq(d.set_highlight_target.called, count)
+ def test_highlight_sample_double_click(self):
+ # Test double click on highlight_sample.
+ eq = self.assertEqual
+ d = self.page
+
+ hs = d.highlight_sample
+ hs.focus_force()
+ hs.see(1.0)
+ hs.update_idletasks()
+
+ # Test binding from configdialog.
+ hs.event_generate('', x=0, y=0)
+ hs.event_generate('', x=0, y=0)
+ # Double click is a sequence of two clicks in a row.
+ for _ in range(2):
+ hs.event_generate('', x=0, y=0)
+ hs.event_generate('