Hello community, here is the log from the commit of package trytond_account_invoice_stock for openSUSE:Factory checked in at 2019-12-04 13:51:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/trytond_account_invoice_stock (Old) and /work/SRC/openSUSE:Factory/.trytond_account_invoice_stock.new.4691 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "trytond_account_invoice_stock" Wed Dec 4 13:51:24 2019 rev:5 rq:752395 version:5.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/trytond_account_invoice_stock/trytond_account_invoice_stock.changes 2019-01-21 10:49:35.808074761 +0100 +++ /work/SRC/openSUSE:Factory/.trytond_account_invoice_stock.new.4691/trytond_account_invoice_stock.changes 2019-12-04 14:19:46.722407718 +0100 @@ -1,0 +2,5 @@ +Thu Nov 21 14:08:42 UTC 2019 - Axel Braun <axel.br...@gmx.de> + +- version 5.0.1 (GNU Health 3.6 series) + +------------------------------------------------------------------- Old: ---- trytond_account_invoice_stock-4.6.0.tar.gz New: ---- trytond_account_invoice_stock-5.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ trytond_account_invoice_stock.spec ++++++ --- /var/tmp/diff_new_pack.YezJOB/_old 2019-12-04 14:19:47.058408002 +0100 +++ /var/tmp/diff_new_pack.YezJOB/_new 2019-12-04 14:19:47.058408002 +0100 @@ -1,7 +1,7 @@ # # spec file for package trytond_account_invoice_stock # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LLC. # Copyright (c) 2017 Dr. Axel Braun # # All modifications and additions to the file contributed by third parties @@ -17,15 +17,15 @@ # -%define majorver 4.6 +%define majorver 5.0 Name: trytond_account_invoice_stock -Version: %{majorver}.0 +Version: %{majorver}.1 Release: 0 Summary: The "account_invoice_stock" module for the Tryton ERP system License: GPL-3.0-only Group: Productivity/Office/Management -Url: http://www.tryton.org/ +URL: http://www.tryton.org/ Source: http://downloads.tryton.org/%{majorver}/%{name}-%{version}.tar.gz BuildRequires: fdupes BuildRequires: python3-setuptools ++++++ trytond_account_invoice_stock-4.6.0.tar.gz -> trytond_account_invoice_stock-5.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/.drone.yml new/trytond_account_invoice_stock-5.0.1/.drone.yml --- old/trytond_account_invoice_stock-4.6.0/.drone.yml 2017-10-24 00:07:59.000000000 +0200 +++ new/trytond_account_invoice_stock-5.0.1/.drone.yml 2018-10-01 15:51:16.000000000 +0200 @@ -25,12 +25,6 @@ matrix: include: - - IMAGE: python:2.7 - TOXENV: py27 - DATABASE: sqlite - - IMAGE: python:2.7 - TOXENV: py27 - DATABASE: postgresql - IMAGE: python:3.4 TOXENV: py34 DATABASE: sqlite @@ -49,3 +43,9 @@ - IMAGE: python:3.6 TOXENV: py36 DATABASE: postgresql + - IMAGE: python:3.7 + TOXENV: py37 + DATABASE: sqlite + - IMAGE: python:3.7 + TOXENV: py37 + DATABASE: postgresql diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/.hgtags new/trytond_account_invoice_stock-5.0.1/.hgtags --- old/trytond_account_invoice_stock-4.6.0/.hgtags 2017-10-30 15:20:18.000000000 +0100 +++ new/trytond_account_invoice_stock-5.0.1/.hgtags 2019-02-19 21:56:29.000000000 +0100 @@ -6,3 +6,6 @@ 202852b4356e3a74a59564c10a45bcdf52603dca 4.2.0 9eb18b7f227e61138c25ef3a517a2704f4faf32e 4.4.0 8fe4212e90f17a44c171e6e718cdbf5f01ff13e9 4.6.0 +7adb0f7eb4c62d6740538f3f544e9c00b5d7ee80 4.8.0 +8d2d5e121643a1da0fef72d16c5ac57ec356bb3a 5.0.0 +b466fa50cd7a83c027f32da42f87071fd2c02a7f 5.0.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/CHANGELOG new/trytond_account_invoice_stock-5.0.1/CHANGELOG --- old/trytond_account_invoice_stock-4.6.0/CHANGELOG 2017-10-30 15:20:17.000000000 +0100 +++ new/trytond_account_invoice_stock-5.0.1/CHANGELOG 2019-02-19 21:56:29.000000000 +0100 @@ -1,3 +1,13 @@ +Version 5.0.1 - 2019-02-19 +* Bug fixes (see mercurial logs for details) + +Version 5.0.0 - 2018-10-01 +* Bug fixes (see mercurial logs for details) +* Remove support for Python 2.7 + +Version 4.8.0 - 2018-04-23 +* Bug fixes (see mercurial logs for details) + Version 4.6.0 - 2017-10-30 * Bug fixes (see mercurial logs for details) @@ -21,4 +31,4 @@ * Bug fixes (see mercurial logs for details) Version 3.2.0 - 2014-04-21 -* Initial release \ No newline at end of file +* Initial release diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/COPYRIGHT new/trytond_account_invoice_stock-5.0.1/COPYRIGHT --- old/trytond_account_invoice_stock-4.6.0/COPYRIGHT 2017-10-30 15:20:17.000000000 +0100 +++ new/trytond_account_invoice_stock-5.0.1/COPYRIGHT 2019-02-19 21:56:28.000000000 +0100 @@ -1,5 +1,5 @@ -Copyright (C) 2014-2017 Cédric Krier. -Copyright (C) 2014-2017 B2CK SPRL. +Copyright (C) 2014-2019 Cédric Krier. +Copyright (C) 2014-2019 B2CK SPRL. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/INSTALL new/trytond_account_invoice_stock-5.0.1/INSTALL --- old/trytond_account_invoice_stock-4.6.0/INSTALL 2016-10-30 20:41:26.000000000 +0100 +++ new/trytond_account_invoice_stock-5.0.1/INSTALL 2018-10-01 15:51:16.000000000 +0200 @@ -4,7 +4,7 @@ Prerequisites ------------- - * Python 2.7 or later (http://www.python.org/) + * Python 3.4 or later (http://www.python.org/) * trytond (http://www.tryton.org/) * trytond_account_invoice (http://www.tryton.org/) * trytond_stock (http://www.tryton.org/) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/PKG-INFO new/trytond_account_invoice_stock-5.0.1/PKG-INFO --- old/trytond_account_invoice_stock-4.6.0/PKG-INFO 2017-10-30 15:20:19.000000000 +0100 +++ new/trytond_account_invoice_stock-5.0.1/PKG-INFO 2019-02-19 21:56:30.000000000 +0100 @@ -1,12 +1,12 @@ -Metadata-Version: 1.1 +Metadata-Version: 1.2 Name: trytond_account_invoice_stock -Version: 4.6.0 +Version: 5.0.1 Summary: Tryton module to link stock and invoice Home-page: http://www.tryton.org/ Author: Tryton Author-email: issue_trac...@tryton.org License: GPL-3 -Download-URL: http://downloads.tryton.org/4.6/ +Download-URL: http://downloads.tryton.org/5.0/ Description: trytond_account_invoice_stock ============================= @@ -62,17 +62,19 @@ Classifier: Natural Language :: German Classifier: Natural Language :: Hungarian Classifier: Natural Language :: Italian +Classifier: Natural Language :: Persian Classifier: Natural Language :: Polish Classifier: Natural Language :: Portuguese (Brazilian) Classifier: Natural Language :: Russian Classifier: Natural Language :: Slovenian Classifier: Natural Language :: Spanish Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Office/Business Classifier: Topic :: Office/Business :: Financial :: Accounting +Requires-Python: >=3.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/account.py new/trytond_account_invoice_stock-5.0.1/account.py --- old/trytond_account_invoice_stock-4.6.0/account.py 2016-03-09 22:11:02.000000000 +0100 +++ new/trytond_account_invoice_stock-5.0.1/account.py 2018-10-01 15:51:16.000000000 +0200 @@ -18,8 +18,7 @@ select=True, ondelete='CASCADE') -class InvoiceLine: - __metaclass__ = PoolMeta +class InvoiceLine(metaclass=PoolMeta): __name__ = 'account.invoice.line' stock_moves = fields.Many2Many('account.invoice.line-stock.move', 'invoice_line', 'stock_move', 'Stock Moves', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/locale/de.po new/trytond_account_invoice_stock-5.0.1/locale/de.po --- old/trytond_account_invoice_stock-4.6.0/locale/de.po 2017-10-29 00:46:40.000000000 +0200 +++ new/trytond_account_invoice_stock-5.0.1/locale/de.po 2018-10-01 15:51:16.000000000 +0200 @@ -24,7 +24,7 @@ msgctxt "field:account.invoice.line-stock.move,rec_name:" msgid "Record Name" -msgstr "" +msgstr "Bezeichnung des Datensatzes" msgctxt "field:account.invoice.line-stock.move,stock_move:" msgid "Stock Move" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/locale/fa.po new/trytond_account_invoice_stock-5.0.1/locale/fa.po --- old/trytond_account_invoice_stock-4.6.0/locale/fa.po 1970-01-01 01:00:00.000000000 +0100 +++ new/trytond_account_invoice_stock-5.0.1/locale/fa.po 2018-10-01 15:51:16.000000000 +0200 @@ -0,0 +1,51 @@ +# +msgid "" +msgstr "Content-Type: text/plain; charset=utf-8\n" + +msgctxt "field:account.invoice.line,stock_moves:" +msgid "Stock Moves" +msgstr "جابجایی موجودی" + +msgctxt "field:account.invoice.line-stock.move,create_date:" +msgid "Create Date" +msgstr "تاریخ ایجاد" + +msgctxt "field:account.invoice.line-stock.move,create_uid:" +msgid "Create User" +msgstr "کاربر ایجاد کننده" + +msgctxt "field:account.invoice.line-stock.move,id:" +msgid "ID" +msgstr "شناسه" + +msgctxt "field:account.invoice.line-stock.move,invoice_line:" +msgid "Invoice Line" +msgstr "خط صورتحساب" + +msgctxt "field:account.invoice.line-stock.move,rec_name:" +msgid "Record Name" +msgstr "نام پرونده" + +msgctxt "field:account.invoice.line-stock.move,stock_move:" +msgid "Stock Move" +msgstr "جابجایی موجودی" + +msgctxt "field:account.invoice.line-stock.move,write_date:" +msgid "Write Date" +msgstr "تاریخ نوشته" + +msgctxt "field:account.invoice.line-stock.move,write_uid:" +msgid "Write User" +msgstr "نوشته کاربر" + +msgctxt "field:stock.move,invoice_lines:" +msgid "Invoice Lines" +msgstr "خطوط صورتحساب" + +msgctxt "model:account.invoice.line-stock.move,name:" +msgid "Invoice Line - Stock Move" +msgstr "خط صورتحساب - جابجایی موجودی" + +msgctxt "view:account.invoice.line:" +msgid "Stock" +msgstr "موجودی" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/locale/sl.po new/trytond_account_invoice_stock-5.0.1/locale/sl.po --- old/trytond_account_invoice_stock-4.6.0/locale/sl.po 2017-10-29 00:46:40.000000000 +0200 +++ new/trytond_account_invoice_stock-5.0.1/locale/sl.po 2018-10-01 15:51:16.000000000 +0200 @@ -24,7 +24,7 @@ msgctxt "field:account.invoice.line-stock.move,rec_name:" msgid "Record Name" -msgstr "" +msgstr "Ime" msgctxt "field:account.invoice.line-stock.move,stock_move:" msgid "Stock Move" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/setup.py new/trytond_account_invoice_stock-5.0.1/setup.py --- old/trytond_account_invoice_stock-4.6.0/setup.py 2017-10-24 00:07:59.000000000 +0200 +++ new/trytond_account_invoice_stock-5.0.1/setup.py 2019-01-26 01:11:25.000000000 +0100 @@ -1,15 +1,12 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from setuptools import setup -import re -import os import io -try: - from configparser import ConfigParser -except ImportError: - from ConfigParser import ConfigParser +import os +import re +from configparser import ConfigParser +from setuptools import setup def read(fname): @@ -27,8 +24,9 @@ major_version, minor_version + 1) return require + config = ConfigParser() -config.readfp(open('tryton.cfg')) +config.read_file(open('tryton.cfg')) info = dict(config.items('tryton')) for key in ('depends', 'extras_depend', 'xml'): if key in info: @@ -53,6 +51,10 @@ requires.append(get_require_version('trytond_%s' % dep)) requires.append(get_require_version('trytond')) +dependency_links = [] +if minor_version % 2: + dependency_links.append('https://trydevpi.tryton.org/') + setup(name=name, version=version, description='Tryton module to link stock and invoice', @@ -89,23 +91,26 @@ 'Natural Language :: German', 'Natural Language :: Hungarian', 'Natural Language :: Italian', + 'Natural Language :: Persian', 'Natural Language :: Polish', 'Natural Language :: Portuguese (Brazilian)', 'Natural Language :: Russian', 'Natural Language :: Slovenian', 'Natural Language :: Spanish', 'Operating System :: OS Independent', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Office/Business', 'Topic :: Office/Business :: Financial :: Accounting', ], license='GPL-3', + python_requires='>=3.4', install_requires=requires, + dependency_links=dependency_links, zip_safe=False, entry_points=""" [trytond.modules] @@ -113,5 +118,4 @@ """, test_suite='tests', test_loader='trytond.test_loader:Loader', - use_2to3=True, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/stock.py new/trytond_account_invoice_stock-5.0.1/stock.py --- old/trytond_account_invoice_stock-4.6.0/stock.py 2016-03-09 22:11:02.000000000 +0100 +++ new/trytond_account_invoice_stock-5.0.1/stock.py 2018-10-01 15:51:16.000000000 +0200 @@ -2,13 +2,13 @@ # this repository contains the full copyright notices and license terms. from trytond.model import fields from trytond.pool import Pool, PoolMeta +from trytond.transaction import Transaction __all__ = ['StockMove'] -class StockMove: - __metaclass__ = PoolMeta +class StockMove(metaclass=PoolMeta): __name__ = 'stock.move' invoice_lines = fields.Many2Many('account.invoice.line-stock.move', 'stock_move', 'invoice_line', 'Invoice Lines') @@ -30,5 +30,6 @@ default = {} else: default = default.copy() - default.setdefault('invoice_lines', None) + if not Transaction().context.get('_stock_move_split'): + default.setdefault('invoice_lines', None) return super(StockMove, cls).copy(moves, default=default) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/tox.ini new/trytond_account_invoice_stock-5.0.1/tox.ini --- old/trytond_account_invoice_stock-4.6.0/tox.ini 2017-10-24 00:07:59.000000000 +0200 +++ new/trytond_account_invoice_stock-5.0.1/tox.ini 2019-01-25 23:27:45.000000000 +0100 @@ -1,18 +1,15 @@ [tox] -envlist = {py27,py34,py35,py36}-{sqlite,postgresql,mysql},pypy-{sqlite,postgresql} +envlist = {py34,py35,py36,py37}-{sqlite,postgresql},pypy3-{sqlite,postgresql} [testenv] commands = {envpython} setup.py test deps = - {py27,py34,py35,py36}-postgresql: psycopg2 >= 2.5 - pypy-postgresql: psycopg2cffi >= 2.5 - mysql: MySQL-python - sqlite: sqlitebck + {py34,py35,py36,py37}-postgresql: psycopg2 >= 2.5 + pypy3-postgresql: psycopg2cffi >= 2.5 + {py34,py35,py36}-sqlite: sqlitebck setenv = sqlite: TRYTOND_DATABASE_URI={env:SQLITE_URI:sqlite://} postgresql: TRYTOND_DATABASE_URI={env:POSTGRESQL_URI:postgresql://} - mysql: TRYTOND_DATABASE_URI={env:MYSQL_URI:mysql://} sqlite: DB_NAME={env:SQLITE_NAME::memory:} postgresql: DB_NAME={env:POSTGRESQL_NAME:test} - mysql: DB_NAME={env:MYSQL_NAME:test} install_command = pip install --pre --find-links https://trydevpi.tryton.org/ {opts} {packages} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/tryton.cfg new/trytond_account_invoice_stock-5.0.1/tryton.cfg --- old/trytond_account_invoice_stock-4.6.0/tryton.cfg 2017-10-30 15:20:16.000000000 +0100 +++ new/trytond_account_invoice_stock-5.0.1/tryton.cfg 2018-10-01 15:52:21.000000000 +0200 @@ -1,5 +1,5 @@ [tryton] -version=4.6.0 +version=5.0.1 depends: account_invoice stock diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/trytond_account_invoice_stock.egg-info/PKG-INFO new/trytond_account_invoice_stock-5.0.1/trytond_account_invoice_stock.egg-info/PKG-INFO --- old/trytond_account_invoice_stock-4.6.0/trytond_account_invoice_stock.egg-info/PKG-INFO 2017-10-30 15:20:18.000000000 +0100 +++ new/trytond_account_invoice_stock-5.0.1/trytond_account_invoice_stock.egg-info/PKG-INFO 2019-02-19 21:56:29.000000000 +0100 @@ -1,12 +1,12 @@ -Metadata-Version: 1.1 +Metadata-Version: 1.2 Name: trytond-account-invoice-stock -Version: 4.6.0 +Version: 5.0.1 Summary: Tryton module to link stock and invoice Home-page: http://www.tryton.org/ Author: Tryton Author-email: issue_trac...@tryton.org License: GPL-3 -Download-URL: http://downloads.tryton.org/4.6/ +Download-URL: http://downloads.tryton.org/5.0/ Description: trytond_account_invoice_stock ============================= @@ -62,17 +62,19 @@ Classifier: Natural Language :: German Classifier: Natural Language :: Hungarian Classifier: Natural Language :: Italian +Classifier: Natural Language :: Persian Classifier: Natural Language :: Polish Classifier: Natural Language :: Portuguese (Brazilian) Classifier: Natural Language :: Russian Classifier: Natural Language :: Slovenian Classifier: Natural Language :: Spanish Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Office/Business Classifier: Topic :: Office/Business :: Financial :: Accounting +Requires-Python: >=3.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/trytond_account_invoice_stock.egg-info/SOURCES.txt new/trytond_account_invoice_stock-5.0.1/trytond_account_invoice_stock.egg-info/SOURCES.txt --- old/trytond_account_invoice_stock-4.6.0/trytond_account_invoice_stock.egg-info/SOURCES.txt 2017-10-30 15:20:18.000000000 +0100 +++ new/trytond_account_invoice_stock-5.0.1/trytond_account_invoice_stock.egg-info/SOURCES.txt 2019-02-19 21:56:30.000000000 +0100 @@ -26,6 +26,7 @@ ./locale/de.po ./locale/es.po ./locale/es_419.po +./locale/fa.po ./locale/fr.po ./locale/hu_HU.po ./locale/it_IT.po @@ -48,6 +49,7 @@ locale/de.po locale/es.po locale/es_419.po +locale/fa.po locale/fr.po locale/hu_HU.po locale/it_IT.po diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trytond_account_invoice_stock-4.6.0/trytond_account_invoice_stock.egg-info/requires.txt new/trytond_account_invoice_stock-5.0.1/trytond_account_invoice_stock.egg-info/requires.txt --- old/trytond_account_invoice_stock-4.6.0/trytond_account_invoice_stock.egg-info/requires.txt 2017-10-30 15:20:18.000000000 +0100 +++ new/trytond_account_invoice_stock-5.0.1/trytond_account_invoice_stock.egg-info/requires.txt 2019-02-19 21:56:29.000000000 +0100 @@ -1,4 +1,4 @@ -trytond_account_invoice >= 4.6, < 4.7 -trytond_stock >= 4.6, < 4.7 -trytond_product >= 4.6, < 4.7 -trytond >= 4.6, < 4.7 +trytond_account_invoice<5.1,>=5.0 +trytond_stock<5.1,>=5.0 +trytond_product<5.1,>=5.0 +trytond<5.1,>=5.0