[issue35588] Speed up mod/divmod/floordiv for Fraction type

2018-12-29 Thread Mark Dickinson
Mark Dickinson added the comment: > since the code with divmod() is simpler, I think it is worth to use it. +1 from me, and +1 on the PR in general. -- ___ Python tracker

[issue35613] Escaping string containing invalid characters as per XML

2018-12-29 Thread Ned Deily
Ned Deily added the comment: This question has come up before. See Issue13648 where it was pointed out that null characters "are forbidden both in raw form *and* in escaped form. So even if they get escaped, they *still* will lead to errors. So there is no point in escaping them."

[issue35603] table header in output of difflib.HtmlDiff.make_table is not escaped and can be rendered as code in the browser

2018-12-29 Thread Karthikeyan Singaravelan
Karthikeyan Singaravelan added the comment: Yes, 2.7 is also affected at https://github.com/python/cpython/blob/befe3f7afdc5279b320af88a9e57f682c0172599/Lib/difflib.py#L2001 . I think it was missed during the initial addition in issue914575 and no one would be using it as a feature to have

[issue35155] Clarify Protocol Handlers in urllib.request Docs

2018-12-29 Thread Denton Liu
Denton Liu added the comment: Pinging again for updates. Would appreciate a PR review. Thanks! -- ___ Python tracker ___ ___

[issue35612] Text wrap over text containing tab character

2018-12-29 Thread Devika Sondhi
Devika Sondhi added the comment: I wasn't aware of this. Thanks for clarifying -- stage: -> resolved status: open -> closed ___ Python tracker ___

[issue35583] (glibc2.28/MIPS32EL) python 3.7.x interpreter segmentation fault (3.6.x/2.7.x compile fine)

2018-12-29 Thread Gagan
Gagan added the comment: hello everyone. the core problem was that the 3.x series configure file includes a "-lintl" flag when it discovers the libintl header. in 2.x, this was not the case. so when configure is checking for wchar_t, the inclusion of -lintl (as opposed to libgnuintl, which

[issue35609] Improve of abc.py docstring

2018-12-29 Thread Serhiy Storchaka
Change by Serhiy Storchaka : -- pull_requests: +10664, 10665 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35609] Improve of abc.py docstring

2018-12-29 Thread Serhiy Storchaka
Change by Serhiy Storchaka : -- pull_requests: +10664 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35609] Improve of abc.py docstring

2018-12-29 Thread Serhiy Storchaka
Change by Serhiy Storchaka : -- pull_requests: +10664, 10665, 10666 ___ Python tracker ___ ___ Python-bugs-list mailing list

[issue35614] Broken help() on metaclasses

2018-12-29 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: It fails also for builtin "type". $ ./python -m pydoc type Traceback (most recent call last): File "/home/serhiy/py/cpython/Lib/runpy.py", line 192, in _run_module_as_main return _run_code(code, main_globals, None, File

[issue35603] table header in output of difflib.HtmlDiff.make_table is not escaped and can be rendered as code in the browser

2018-12-29 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: New changeset 78de01198b047347abc5e458851bb12c48429e24 by Serhiy Storchaka (Xtreak) in branch 'master': bpo-35603: Escape table header of make_table output that can cause potential XSS. (GH-11341)

[issue35603] table header in output of difflib.HtmlDiff.make_table is not escaped and can be rendered as code in the browser

2018-12-29 Thread miss-islington
Change by miss-islington : -- pull_requests: +10659 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35603] table header in output of difflib.HtmlDiff.make_table is not escaped and can be rendered as code in the browser

2018-12-29 Thread miss-islington
Change by miss-islington : -- pull_requests: +10659, 10660 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35612] Text wrap over text containing tab character

2018-12-29 Thread Steven D'Aprano
Steven D'Aprano added the comment: I think you may be misunderstanding what you are seeing. The documentation for textwrap.wrap says: By default, tabs in 'text' are expanded with string.expandtabs() which converts tabs to one or more spaces, enough to align to some multiple of column

[issue35609] Improve of abc.py docstring

2018-12-29 Thread Emmanuel Arias
Emmanuel Arias added the comment: > Double spaces between sentences increase readability. This is not a bug. hmm ok. I can see other docstring with not double spaces. But I will ignore. > Since abstractclassmethod and like are deprecated and should not be used in > new code, I do not see a

[issue33661] urllib may leak sensitive HTTP headers to a third-party web site

2018-12-29 Thread Katsuhiko YOSHIDA
Katsuhiko YOSHIDA added the comment: According to RFC7235 (https://tools.ietf.org/html/rfc7235#section-4.1), WWW-Authenticate header is sent from server to client. And it has not credential data. Also, Cookie2 header is already obsoleted by RFC6295 (https://tools.ietf.org/html/rfc6265).

[issue35608] python3 multiprocessing queue deadlock when use thread and process at same time

2018-12-29 Thread Tim Peters
Tim Peters added the comment: Antoine, alas, it's subtler than that. The worker process (process_func()) puts _another_ `StopIteration` on the input queue in its `finally` clause. So the first worker process to finish adds back a sentinel for the next worker to see, and so on. At the

[issue35603] table header in output of difflib.HtmlDiff.make_table is not escaped and can be rendered as code in the browser

2018-12-29 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: Is 2.7 affected? This looks like potentially security issue, so it may be worth to backport the fix to 3.6 and 3.5. -- nosy: +larry, ned.deily type: behavior -> security versions: +Python 3.5, Python 3.6 ___

[issue35603] table header in output of difflib.HtmlDiff.make_table is not escaped and can be rendered as code in the browser

2018-12-29 Thread miss-islington
Change by miss-islington : -- pull_requests: +10661, 10662 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35603] table header in output of difflib.HtmlDiff.make_table is not escaped and can be rendered as code in the browser

2018-12-29 Thread miss-islington
Change by miss-islington : -- pull_requests: +10661 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35608] python3 multiprocessing queue deadlock when use thread and process at same time

2018-12-29 Thread Antoine Pitrou
Antoine Pitrou added the comment: Your input_thread puts StopIteration once input the queue. But there are several worker processes popping from that queue, and only one of them will see the StopIteration. So I'm not surprised other worker processes would be stuck waiting in their loop.

[issue35612] Text wrap over text containing tab character

2018-12-29 Thread Devika Sondhi
New submission from Devika Sondhi : textwrap.wrap does not seem to preserve tab character ('\t') in the text if it is not separated from other characters by a space. Example: >>> textwrap.wrap("Here is\tone line of text that is going to be wrapped after >>> 20 columns.",20)

[issue35613] Escaping string containing invalid characters as per XML

2018-12-29 Thread Devika Sondhi
New submission from Devika Sondhi : As per XML 1.0 and 1.1 specs, the null character is treated as invalid in an XML doc. (https://en.wikipedia.org/wiki/Valid_characters_in_XML) Shouldn't invalid xml characters be omitted while escaping? The current behavior(tested on Python 3.7) is as

[issue35609] Improve of abc.py docstring

2018-12-29 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: These examples teach you how to use abstractclassmethod and similar decorators. But first, docstrings are not tutorial, and second, you should not use them in new code at all, because they are deprecated. --

[issue35603] table header in output of difflib.HtmlDiff.make_table is not escaped and can be rendered as code in the browser

2018-12-29 Thread Karthikeyan Singaravelan
Karthikeyan Singaravelan added the comment: Thanks Serhiy for the input. I initially thought this should be escaped since content was escaped and the same for header since user input taken directly could result in XSS. Maybe someone might using this undocumented feature intentionally that

[issue35614] Broken help() on metaclasses

2018-12-29 Thread Serhiy Storchaka
New submission from Serhiy Storchaka : $ ./python -m pydoc abc Traceback (most recent call last): File "/home/serhiy/py/cpython/Lib/runpy.py", line 192, in _run_module_as_main return _run_code(code, main_globals, None, File "/home/serhiy/py/cpython/Lib/runpy.py", line 85, in _run_code

[issue8525] Display exceptions' subclasses in help()

2018-12-29 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: This caused a regression. See issue35614 for details. -- nosy: +serhiy.storchaka ___ Python tracker ___

[issue35603] table header in output of difflib.HtmlDiff.make_table is not escaped and can be rendered as code in the browser

2018-12-29 Thread Serhiy Storchaka
Change by Serhiy Storchaka : -- pull_requests: +10667, 10668, 10669 ___ Python tracker ___ ___ Python-bugs-list mailing list

[issue35603] table header in output of difflib.HtmlDiff.make_table is not escaped and can be rendered as code in the browser

2018-12-29 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: After some thoughts, I'm no longer sure that this is a correct change. The user can use this for highlighting the part of the column header, adding links or images, displaying complex multiline headers. I suspect that this change will break some existing

[issue35603] table header in output of difflib.HtmlDiff.make_table is not escaped and can be rendered as code in the browser

2018-12-29 Thread Serhiy Storchaka
Change by Serhiy Storchaka : -- pull_requests: +10667 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35603] table header in output of difflib.HtmlDiff.make_table is not escaped and can be rendered as code in the browser

2018-12-29 Thread Serhiy Storchaka
Change by Serhiy Storchaka : -- pull_requests: +10667, 10668 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35614] Broken help() on metaclasses

2018-12-29 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: There are two ways of solving this issue: 1) skip this chunk of code if object is a type subclass, 2) use `type.__subclasses__(object)` instead of `object.__subclasses__()`. -- ___ Python tracker

[issue35614] Broken help() on metaclasses

2018-12-29 Thread Sanyam Khurana
Change by Sanyam Khurana : -- keywords: +patch, patch, patch pull_requests: +10670, 10671, 10672 stage: -> patch review ___ Python tracker ___

[issue35614] Broken help() on metaclasses

2018-12-29 Thread Sanyam Khurana
Change by Sanyam Khurana : -- keywords: +patch, patch pull_requests: +10670, 10671 stage: -> patch review ___ Python tracker ___

[issue35614] Broken help() on metaclasses

2018-12-29 Thread Sanyam Khurana
Change by Sanyam Khurana : -- keywords: +patch pull_requests: +10670 stage: -> patch review ___ Python tracker ___ ___

[issue35602] cleanup code may fail in test_asyncio.test_unix_events.SelectorEventLoopUnixSockSendfileTests

2018-12-29 Thread miss-islington
miss-islington added the comment: New changeset fe06646d186780881fa5ee61442886a6d7cf9f08 by Miss Islington (bot) in branch '3.7': bpo-35602: Make sure the transport is always closed in SelectorEventLoopUnixSockSendfileTests (GH-11338)

[issue35611] open doesn't call IncrementalEncoder with final=True

2018-12-29 Thread Martin Panter
Martin Panter added the comment: FWIW this happens with the built-in IDNA codec, and Amaury gave a demonstration under . I don’t think the “TextIOWrapper.flush” method should use final=True, but “close” and “detach” probably should. --

[issue35616] Change references to '4.0'.

2018-12-29 Thread Emmanuel Arias
Emmanuel Arias added the comment: Same similar occur with other docs $ git grep 'deprecated-removed::.*4\.0' Doc/c-api/arg.rst: .. deprecated-removed:: 3.3 4.0 Doc/c-api/arg.rst: .. deprecated-removed:: 3.3 4.0 Doc/c-api/arg.rst: .. deprecated-removed:: 3.3 4.0 Doc/c-api/arg.rst: ..

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread Terry J. Reedy
Change by Terry J. Reedy : -- pull_requests: -10686 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread Terry J. Reedy
Change by Terry J. Reedy : -- pull_requests: -10687 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35599] asyncio windows_events.py IocpProactor bug

2018-12-29 Thread Jeff Robbins
Jeff Robbins added the comment: This issue is likely a duplicate of https://bugs.python.org/issue34323 which was reported in Python 3.5. -- ___ Python tracker ___

[issue35583] (glibc2.28/MIPS32EL) python 3.7.x interpreter segmentation fault (3.6.x/2.7.x compile fine)

2018-12-29 Thread Gagan
Change by Gagan : -- resolution: not a bug -> rejected ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread miss-islington
miss-islington added the comment: New changeset 34aadec448f373b95653318e91f6f959354ffa89 by Miss Islington (bot) in branch '3.7': bpo-35598: IDLE: Increase test coverage for config_key.py (GH-11360) https://github.com/python/cpython/commit/34aadec448f373b95653318e91f6f959354ffa89

[issue35601] Race condition in test_signal_handling_args x86-64 High Sierra 3.75

2018-12-29 Thread Pablo Galindo Salgado
Pablo Galindo Salgado added the comment: I am going to close this one as the only branch left is 3.6 and is on security fixes only. -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker

[issue35578] Add test for Argument Clinic converters

2018-12-29 Thread Pablo Galindo Salgado
Pablo Galindo Salgado added the comment: Is there anything left in this issue or we can close it? -- nosy: +pablogsal ___ Python tracker ___

[issue35606] Add prod() function to the math module

2018-12-29 Thread Pablo Galindo Salgado
Change by Pablo Galindo Salgado : -- keywords: +patch, patch, patch pull_requests: +10676, 10677, 10678 stage: -> patch review ___ Python tracker ___

[issue35606] Add prod() function to the math module

2018-12-29 Thread Pablo Galindo Salgado
Change by Pablo Galindo Salgado : -- keywords: +patch, patch pull_requests: +10676, 10677 stage: -> patch review ___ Python tracker ___

[issue35606] Add prod() function to the math module

2018-12-29 Thread Pablo Galindo Salgado
Change by Pablo Galindo Salgado : -- keywords: +patch pull_requests: +10676 stage: -> patch review ___ Python tracker ___ ___

[issue17404] ValueError: can't have unbuffered text I/O for io.open(1, 'wt', 0)

2018-12-29 Thread Martin Panter
Martin Panter added the comment: It is documented that buffering=0 is not supported in text mode. Look a handful of paragraphs down from : “Pass 0 to switch buffering off (only allowed in binary mode)” Amaury’s problem with

[issue35540] dataclasses.asdict breaks with defaultdict fields

2018-12-29 Thread Rémi Lapeyre
Change by Rémi Lapeyre : -- keywords: +patch, patch pull_requests: +10682, 10683 stage: -> patch review ___ Python tracker ___ ___

[issue35540] dataclasses.asdict breaks with defaultdict fields

2018-12-29 Thread Rémi Lapeyre
Change by Rémi Lapeyre : -- keywords: +patch pull_requests: +10682 stage: -> patch review ___ Python tracker ___ ___

[issue35540] dataclasses.asdict breaks with defaultdict fields

2018-12-29 Thread Rémi Lapeyre
Change by Rémi Lapeyre : -- keywords: +patch, patch, patch pull_requests: +10682, 10683, 10684 stage: -> patch review ___ Python tracker ___

[issue35616] Change references to '4.0'.

2018-12-29 Thread Emmanuel Arias
Change by Emmanuel Arias : -- keywords: +patch, patch, patch pull_requests: +10688, 10689, 10690 stage: needs patch -> patch review ___ Python tracker ___

[issue35602] cleanup code may fail in test_asyncio.test_unix_events.SelectorEventLoopUnixSockSendfileTests

2018-12-29 Thread Pablo Galindo Salgado
Change by Pablo Galindo Salgado : -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker ___

[issue35616] Change references to '4.0'.

2018-12-29 Thread Terry J. Reedy
New submission from Terry J. Reedy : https://docs.python.org/3/c-api/unicode.html#deprecated-py-unicode-apis says "Deprecated since version 3.3, will be removed in version 4.0." (I am aware that the quote above was written before we decided that '3.9' should be followed by '3.10' rather than

[issue33234] Improve list() pre-sizing for inputs with known lengths

2018-12-29 Thread Pablo Galindo Salgado
Change by Pablo Galindo Salgado : -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker ___

[issue35540] dataclasses.asdict breaks with defaultdict fields

2018-12-29 Thread Rémi Lapeyre
Rémi Lapeyre added the comment: Hi @wrmsr, this happens because the constructor for `collections.defaultdict` differs from the one of `dict`. I think the argument that collections.defaultdict is in the stdlib and should be supported is right, the changes in PR #11361 should do what you want.

[issue35602] cleanup code may fail in test_asyncio.test_unix_events.SelectorEventLoopUnixSockSendfileTests

2018-12-29 Thread miss-islington
Change by miss-islington : -- pull_requests: +10673 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35602] cleanup code may fail in test_asyncio.test_unix_events.SelectorEventLoopUnixSockSendfileTests

2018-12-29 Thread miss-islington
Change by miss-islington : -- pull_requests: +10673, 10674 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35606] Add prod() function to the math module

2018-12-29 Thread Pablo Galindo Salgado
Change by Pablo Galindo Salgado : -- pull_requests: -10678 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35606] Add prod() function to the math module

2018-12-29 Thread Pablo Galindo Salgado
Change by Pablo Galindo Salgado : -- pull_requests: -10677, 10678 ___ Python tracker ___ ___ Python-bugs-list mailing list

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread Cheryl Sabella
Change by Cheryl Sabella : -- pull_requests: -10680 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread Cheryl Sabella
Change by Cheryl Sabella : -- pull_requests: -10681 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread miss-islington
Change by miss-islington : -- pull_requests: +10685, 10686 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread miss-islington
Change by miss-islington : -- pull_requests: +10685 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread Terry J. Reedy
Terry J. Reedy added the comment: New changeset b0a6196ffd58ff91462191f426706897dc920eee by Terry Jan Reedy (Cheryl Sabella) in branch 'master': bpo-35598: IDLE: Increase test coverage for config_key.py (#11360)

[issue34778] Memoryview for column-major (f_contiguous) arrays from bytes impossible to achieve

2018-12-29 Thread Laurent Gautier
Laurent Gautier added the comment: Bump. What are the next steps here ? -- ___ Python tracker ___ ___ Python-bugs-list mailing

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread miss-islington
Change by miss-islington : -- pull_requests: +10685, 10686, 10687 ___ Python tracker ___ ___ Python-bugs-list mailing list

[issue35602] cleanup code may fail in test_asyncio.test_unix_events.SelectorEventLoopUnixSockSendfileTests

2018-12-29 Thread Pablo Galindo Salgado
Pablo Galindo Salgado added the comment: New changeset d51324a2f5d172665f8824b25456c9822797fc84 by Pablo Galindo in branch 'master': bpo-35602: Make sure the transport is always closed in SelectorEventLoopUnixSockSendfileTests (GH-11338)

[issue35602] cleanup code may fail in test_asyncio.test_unix_events.SelectorEventLoopUnixSockSendfileTests

2018-12-29 Thread miss-islington
Change by miss-islington : -- pull_requests: +10673, 10674, 10675 ___ Python tracker ___ ___ Python-bugs-list mailing list

[issue35605] backported patch requires new sphinx, minimum sphinx version was not bumped

2018-12-29 Thread Julien Palard
Julien Palard added the comment: The patch (try/except) to make https://github.com/python/cpython/pull/11251/files work with what Doc/conf.py says about minimum sphinx version (1.2) is OK for me. No need to apply it on 3.7 which needs_sphinx 1.6.6 according to its Doc/conf.py. --

[issue33234] Improve list() pre-sizing for inputs with known lengths

2018-12-29 Thread Pablo Galindo Salgado
Pablo Galindo Salgado added the comment: New changeset 0e5f771f38138714415f665651de7e674fcebc38 by Pablo Galindo (Sergey Fedoseev) in branch 'master': bpo-33234: Simplify list_preallocate_exact() (GH-11220) https://github.com/python/cpython/commit/0e5f771f38138714415f665651de7e674fcebc38

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread Cheryl Sabella
Change by Cheryl Sabella : -- pull_requests: +10679 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread Cheryl Sabella
Cheryl Sabella added the comment: PR11360 adds tests to increase coverage. There isn't any refactor (moving translate_key) as part of this. I also didn't add any GUI-related tests against the buttons, entry, or listbox, except for the cancel key (in case that helps with the new bug

[issue35616] Change references to '4.0'.

2018-12-29 Thread Emmanuel Arias
Change by Emmanuel Arias : -- keywords: +patch, patch pull_requests: +10688, 10689 stage: needs patch -> patch review ___ Python tracker ___

[issue35616] Change references to '4.0'.

2018-12-29 Thread Emmanuel Arias
Change by Emmanuel Arias : -- keywords: +patch pull_requests: +10688 stage: needs patch -> patch review ___ Python tracker ___ ___

[issue20171] Derby #2: Convert 115 sites to Argument Clinic in Modules/_cursesmodule.c

2018-12-29 Thread Pablo Galindo Salgado
Pablo Galindo Salgado added the comment: Should we close this issue or is anything left in this Derby? -- nosy: +pablogsal ___ Python tracker ___

[issue35615] "RuntimeError: Dictionary changed size during iteration" when copying a WeakValueDictionary

2018-12-29 Thread Fish Wang
New submission from Fish Wang : I come across this issue recently when developing a multi-threaded PySide2 (Qt) application. When I'm calling .copy() on a WeakValueDictionary, there is a high chance that my application crashes with the following stack backtrace: -- Traceback (most

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread Cheryl Sabella
Change by Cheryl Sabella : -- pull_requests: +10679, 10680 ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue35598] IDLE: Modernize config_key module

2018-12-29 Thread Cheryl Sabella
Change by Cheryl Sabella : -- pull_requests: +10679, 10680, 10681 ___ Python tracker ___ ___ Python-bugs-list mailing list

[issue35608] python3 multiprocessing queue deadlock when use thread and process at same time

2018-12-29 Thread beruhan
beruhan added the comment: debug message as follows: [DEBUG/MainProcess] created semlock with handle 140059486064640 [DEBUG/MainProcess] created semlock with handle 140059486060544 [DEBUG/MainProcess] created semlock with handle 140059486056448 [DEBUG/MainProcess] Queue._after_fork()