* [PATCH 19/24 v2] pynfs: python3 support plan: fix import fail on python3 @ 2018-07-24 10:33 jiyin 2018-08-23 21:02 ` J. Bruce Fields 0 siblings, 1 reply; 4+ messages in thread From: jiyin @ 2018-07-24 10:33 UTC (permalink / raw) To: bfields; +Cc: linux-nfs, Jianhong.Yin From: "Jianhong.Yin" <yin-jianhong@163.com> Signed-off-by: Jianhong Yin <yin-jianhong@163.com> --- nfs4.0/servertests/environment.py | 2 +- nfs4.0/servertests/st_access.py | 2 +- nfs4.0/servertests/st_acl.py | 2 +- nfs4.0/servertests/st_close.py | 2 +- nfs4.0/servertests/st_commit.py | 2 +- nfs4.0/servertests/st_compound.py | 5 +++-- nfs4.0/servertests/st_create.py | 2 +- nfs4.0/servertests/st_delegation.py | 2 +- nfs4.0/servertests/st_fslocations.py | 2 +- nfs4.0/servertests/st_getattr.py | 2 +- nfs4.0/servertests/st_getfh.py | 2 +- nfs4.0/servertests/st_gss.py | 4 ++-- nfs4.0/servertests/st_link.py | 2 +- nfs4.0/servertests/st_lock.py | 2 +- nfs4.0/servertests/st_lockt.py | 2 +- nfs4.0/servertests/st_locku.py | 2 +- nfs4.0/servertests/st_lookup.py | 4 ++-- nfs4.0/servertests/st_lookupp.py | 2 +- nfs4.0/servertests/st_nverify.py | 2 +- nfs4.0/servertests/st_open.py | 2 +- nfs4.0/servertests/st_openconfirm.py | 2 +- nfs4.0/servertests/st_opendowngrade.py | 2 +- nfs4.0/servertests/st_putfh.py | 2 +- nfs4.0/servertests/st_putpubfh.py | 2 +- nfs4.0/servertests/st_putrootfh.py | 2 +- nfs4.0/servertests/st_read.py | 4 ++-- nfs4.0/servertests/st_readdir.py | 2 +- nfs4.0/servertests/st_readlink.py | 2 +- nfs4.0/servertests/st_reboot.py | 2 +- nfs4.0/servertests/st_releaselockowner.py | 2 +- nfs4.0/servertests/st_remove.py | 2 +- nfs4.0/servertests/st_rename.py | 2 +- nfs4.0/servertests/st_renew.py | 2 +- nfs4.0/servertests/st_replay.py | 2 +- nfs4.0/servertests/st_restorefh.py | 2 +- nfs4.0/servertests/st_savefh.py | 2 +- nfs4.0/servertests/st_secinfo.py | 2 +- nfs4.0/servertests/st_setattr.py | 2 +- nfs4.0/servertests/st_setclientid.py | 2 +- nfs4.0/servertests/st_setclientidconfirm.py | 2 +- nfs4.0/servertests/st_spoof.py | 2 +- nfs4.0/servertests/st_verify.py | 2 +- nfs4.0/servertests/st_write.py | 4 ++-- nfs4.0/testserver.py | 2 +- nfs4.1/client41tests/ct_reboot.py | 2 +- nfs4.1/client41tests/environment.py | 2 +- nfs4.1/dataserver.py | 2 +- nfs4.1/nfs3client.py | 2 +- nfs4.1/nfs4client.py | 2 +- nfs4.1/nfs4lib.py | 2 +- nfs4.1/nfs4proxy.py | 2 +- nfs4.1/nfs4server.py | 2 +- nfs4.1/nfs4state.py | 2 +- nfs4.1/server41tests/environment.py | 2 +- nfs4.1/server41tests/st_block.py | 2 +- nfs4.1/server41tests/st_compound.py | 2 +- nfs4.1/server41tests/st_create_session.py | 2 +- nfs4.1/server41tests/st_current_stateid.py | 4 ++-- nfs4.1/server41tests/st_debug.py | 2 +- nfs4.1/server41tests/st_delegation.py | 2 +- nfs4.1/server41tests/st_destroy_clientid.py | 2 +- nfs4.1/server41tests/st_destroy_session.py | 4 ++-- nfs4.1/server41tests/st_exchange_id.py | 2 +- nfs4.1/server41tests/st_flex.py | 2 +- nfs4.1/server41tests/st_getdevicelist.py | 2 +- nfs4.1/server41tests/st_lookup.py | 4 ++-- nfs4.1/server41tests/st_lookupp.py | 2 +- nfs4.1/server41tests/st_open.py | 4 ++-- nfs4.1/server41tests/st_putfh.py | 2 +- nfs4.1/server41tests/st_reboot.py | 2 +- nfs4.1/server41tests/st_reclaim_complete.py | 2 +- nfs4.1/server41tests/st_rename.py | 2 +- nfs4.1/server41tests/st_secinfo.py | 2 +- nfs4.1/server41tests/st_secinfo_no_name.py | 2 +- nfs4.1/server41tests/st_sequence.py | 2 +- nfs4.1/server41tests/st_sparse.py | 2 +- nfs4.1/server41tests/st_trunking.py | 2 +- nfs4.1/server41tests/st_verify.py | 2 +- nfs4.1/testclient.py | 2 +- nfs4.1/testserver.py | 2 +- rpc/rpc.py | 3 ++- 81 files changed, 92 insertions(+), 90 deletions(-) diff --git a/nfs4.0/servertests/environment.py b/nfs4.0/servertests/environment.py index a5cfe60..4d85837 100644 --- a/nfs4.0/servertests/environment.py +++ b/nfs4.0/servertests/environment.py @@ -14,7 +14,7 @@ from nfs4lib import NFS4Client, get_attrbitnum_dict from xdrdef.nfs4_const import * from xdrdef.nfs4_type import fsid4, nfsace4, fs_locations4, fs_location4, \ specdata4, nfstime4, settime4, stateid4 -import rpc +import rpc.rpc as rpc import sys import os import nfs_ops diff --git a/nfs4.0/servertests/st_access.py b/nfs4.0/servertests/st_access.py index 58c42bc..0a16986 100644 --- a/nfs4.0/servertests/st_access.py +++ b/nfs4.0/servertests/st_access.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_acl.py b/nfs4.0/servertests/st_acl.py index 88667d2..3194ebc 100644 --- a/nfs4.0/servertests/st_acl.py +++ b/nfs4.0/servertests/st_acl.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check from xdrdef.nfs4_type import nfsace4 from nfs4lib import list2bitmap diff --git a/nfs4.0/servertests/st_close.py b/nfs4.0/servertests/st_close.py index 89ccbba..e0166f6 100644 --- a/nfs4.0/servertests/st_close.py +++ b/nfs4.0/servertests/st_close.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, makeStaleId +from .environment import check, makeStaleId def testCloseCreate(t, env): diff --git a/nfs4.0/servertests/st_commit.py b/nfs4.0/servertests/st_commit.py index eecf2c8..9345424 100644 --- a/nfs4.0/servertests/st_commit.py +++ b/nfs4.0/servertests/st_commit.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check _text = "Random data to write" diff --git a/nfs4.0/servertests/st_compound.py b/nfs4.0/servertests/st_compound.py index 59a279d..5225f61 100644 --- a/nfs4.0/servertests/st_compound.py +++ b/nfs4.0/servertests/st_compound.py @@ -1,8 +1,9 @@ from xdrdef.nfs4_const import * from xdrdef.nfs4_type import nfs_argop4 from xdrdef.nfs4_pack import NFS4Packer -from environment import check, get_invalid_utf8strings -from rpc import RPCError +from .environment import check, get_invalid_utf8strings +from rpc.rpc import RPCError + import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_create.py b/nfs4.0/servertests/st_create.py index c7256e5..a43003b 100644 --- a/nfs4.0/servertests/st_create.py +++ b/nfs4.0/servertests/st_create.py @@ -1,6 +1,6 @@ from xdrdef.nfs4_const import * from xdrdef.nfs4_type import createtype4, specdata4 -from environment import check +from .environment import check import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_delegation.py b/nfs4.0/servertests/st_delegation.py index 937d95f..0247151 100644 --- a/nfs4.0/servertests/st_delegation.py +++ b/nfs4.0/servertests/st_delegation.py @@ -1,6 +1,6 @@ from xdrdef.nfs4_const import * from xdrdef.nfs4_type import nfs_client_id4, clientaddr4, cb_client4 -from environment import check +from .environment import check import os import threading import time diff --git a/nfs4.0/servertests/st_fslocations.py b/nfs4.0/servertests/st_fslocations.py index 442d5a2..0387843 100644 --- a/nfs4.0/servertests/st_fslocations.py +++ b/nfs4.0/servertests/st_fslocations.py @@ -1,6 +1,6 @@ from xdrdef.nfs4_const import * from nfs4lib import list2bitmap -from environment import check +from .environment import check import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_getattr.py b/nfs4.0/servertests/st_getattr.py index 65a5701..292fcd2 100644 --- a/nfs4.0/servertests/st_getattr.py +++ b/nfs4.0/servertests/st_getattr.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check from nfs4lib import get_attr_name import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_getfh.py b/nfs4.0/servertests/st_getfh.py index 6fd22e7..4abe320 100644 --- a/nfs4.0/servertests/st_getfh.py +++ b/nfs4.0/servertests/st_getfh.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_gss.py b/nfs4.0/servertests/st_gss.py index 414883e..e10e849 100644 --- a/nfs4.0/servertests/st_gss.py +++ b/nfs4.0/servertests/st_gss.py @@ -1,7 +1,7 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check from socket import timeout -import rpc +import rpc.rpc as rpc import rpc.rpcsec.gss_const as gss from rpc.rpcsec.gss_type import rpc_gss_cred_t import nfs_ops diff --git a/nfs4.0/servertests/st_link.py b/nfs4.0/servertests/st_link.py index feddf1e..0ef5009 100644 --- a/nfs4.0/servertests/st_link.py +++ b/nfs4.0/servertests/st_link.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, get_invalid_utf8strings +from .environment import check, get_invalid_utf8strings import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_lock.py b/nfs4.0/servertests/st_lock.py index 060236a..b815a54 100644 --- a/nfs4.0/servertests/st_lock.py +++ b/nfs4.0/servertests/st_lock.py @@ -1,6 +1,6 @@ from xdrdef.nfs4_const import * from xdrdef.nfs4_type import stateid4 -from environment import check, get_invalid_clientid, makeStaleId, makeBadIDganesha +from .environment import check, get_invalid_clientid, makeStaleId, makeBadIDganesha import time import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_lockt.py b/nfs4.0/servertests/st_lockt.py index 7f8c5e1..ee0b825 100644 --- a/nfs4.0/servertests/st_lockt.py +++ b/nfs4.0/servertests/st_lockt.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, get_invalid_clientid +from .environment import check, get_invalid_clientid def testUnlockedFile(t, env): """LOCKT on a regular unlocked file diff --git a/nfs4.0/servertests/st_locku.py b/nfs4.0/servertests/st_locku.py index 74b464a..3524a61 100644 --- a/nfs4.0/servertests/st_locku.py +++ b/nfs4.0/servertests/st_locku.py @@ -1,6 +1,6 @@ from xdrdef.nfs4_const import * from xdrdef.nfs4_type import stateid4 -from environment import check, makeStaleId +from .environment import check, makeStaleId def testFile(t, env): """LOCKU a regular file diff --git a/nfs4.0/servertests/st_lookup.py b/nfs4.0/servertests/st_lookup.py index eed7100..9bfaffe 100644 --- a/nfs4.0/servertests/st_lookup.py +++ b/nfs4.0/servertests/st_lookup.py @@ -1,6 +1,6 @@ from xdrdef.nfs4_const import * -from environment import check, get_invalid_utf8strings -import rpc +from .environment import check, get_invalid_utf8strings +import rpc.rpc as rpc import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_lookupp.py b/nfs4.0/servertests/st_lookupp.py index 13c1553..7c38600 100644 --- a/nfs4.0/servertests/st_lookupp.py +++ b/nfs4.0/servertests/st_lookupp.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, get_invalid_utf8strings +from .environment import check, get_invalid_utf8strings import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_nverify.py b/nfs4.0/servertests/st_nverify.py index 4185970..e2a8130 100644 --- a/nfs4.0/servertests/st_nverify.py +++ b/nfs4.0/servertests/st_nverify.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, get_invalid_clientid, makeStaleId +from .environment import check, get_invalid_clientid, makeStaleId import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_open.py b/nfs4.0/servertests/st_open.py index b4af81c..9f5d1aa 100644 --- a/nfs4.0/servertests/st_open.py +++ b/nfs4.0/servertests/st_open.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, checkdict, get_invalid_utf8strings +from .environment import check, checkdict, get_invalid_utf8strings from nfs4lib import get_bitnumattr_dict # Any test that uses create_confirm should depend on this test diff --git a/nfs4.0/servertests/st_openconfirm.py b/nfs4.0/servertests/st_openconfirm.py index 3b5b98f..631855a 100644 --- a/nfs4.0/servertests/st_openconfirm.py +++ b/nfs4.0/servertests/st_openconfirm.py @@ -1,6 +1,6 @@ from xdrdef.nfs4_const import * from xdrdef.nfs4_type import stateid4 -from environment import check, makeStaleId +from .environment import check, makeStaleId import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_opendowngrade.py b/nfs4.0/servertests/st_opendowngrade.py index 213b2dd..2180223 100644 --- a/nfs4.0/servertests/st_opendowngrade.py +++ b/nfs4.0/servertests/st_opendowngrade.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, makeStaleId +from .environment import check, makeStaleId def testRegularOpen(t, env): """OPENDOWNGRADE on regular file diff --git a/nfs4.0/servertests/st_putfh.py b/nfs4.0/servertests/st_putfh.py index ba9ce27..6560f2e 100644 --- a/nfs4.0/servertests/st_putfh.py +++ b/nfs4.0/servertests/st_putfh.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_putpubfh.py b/nfs4.0/servertests/st_putpubfh.py index 0149b9d..1514fde 100644 --- a/nfs4.0/servertests/st_putpubfh.py +++ b/nfs4.0/servertests/st_putpubfh.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_putrootfh.py b/nfs4.0/servertests/st_putrootfh.py index dd47f58..b13c694 100644 --- a/nfs4.0/servertests/st_putrootfh.py +++ b/nfs4.0/servertests/st_putrootfh.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_read.py b/nfs4.0/servertests/st_read.py index 15f8795..1eb996c 100644 --- a/nfs4.0/servertests/st_read.py +++ b/nfs4.0/servertests/st_read.py @@ -1,6 +1,6 @@ from xdrdef.nfs4_const import * -from environment import check, makeBadID, makeBadIDganesha, makeStaleId -import rpc +from .environment import check, makeBadID, makeBadIDganesha, makeStaleId +import rpc.rpc as rpc def _compare(t, res, expect, eof=True): def shorten(str): diff --git a/nfs4.0/servertests/st_readdir.py b/nfs4.0/servertests/st_readdir.py index 798b2d0..b9a8a4d 100644 --- a/nfs4.0/servertests/st_readdir.py +++ b/nfs4.0/servertests/st_readdir.py @@ -1,6 +1,6 @@ from xdrdef.nfs4_const import * from nfs4lib import get_attr_name -from environment import check +from .environment import check def _compare(t, entries, expect, attrlist=[]): names = [e.name for e in entries] diff --git a/nfs4.0/servertests/st_readlink.py b/nfs4.0/servertests/st_readlink.py index 8b905d0..d8e3ea1 100644 --- a/nfs4.0/servertests/st_readlink.py +++ b/nfs4.0/servertests/st_readlink.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_reboot.py b/nfs4.0/servertests/st_reboot.py index 16cb008..2a03e60 100644 --- a/nfs4.0/servertests/st_reboot.py +++ b/nfs4.0/servertests/st_reboot.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check import os import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_releaselockowner.py b/nfs4.0/servertests/st_releaselockowner.py index 17dfe1a..8021ddf 100644 --- a/nfs4.0/servertests/st_releaselockowner.py +++ b/nfs4.0/servertests/st_releaselockowner.py @@ -1,6 +1,6 @@ from xdrdef.nfs4_const import * from xdrdef.nfs4_type import lock_owner4 -from environment import check +from .environment import check import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_remove.py b/nfs4.0/servertests/st_remove.py index 5f531f4..a9c397f 100644 --- a/nfs4.0/servertests/st_remove.py +++ b/nfs4.0/servertests/st_remove.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, get_invalid_utf8strings +from .environment import check, get_invalid_utf8strings import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_rename.py b/nfs4.0/servertests/st_rename.py index 8f41763..3a7fa1e 100644 --- a/nfs4.0/servertests/st_rename.py +++ b/nfs4.0/servertests/st_rename.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, get_invalid_utf8strings +from .environment import check, get_invalid_utf8strings import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_renew.py b/nfs4.0/servertests/st_renew.py index 3a9f774..679363c 100644 --- a/nfs4.0/servertests/st_renew.py +++ b/nfs4.0/servertests/st_renew.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_replay.py b/nfs4.0/servertests/st_replay.py index 81b8332..3eba563 100644 --- a/nfs4.0/servertests/st_replay.py +++ b/nfs4.0/servertests/st_replay.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check from xdrdef.nfs4_type import * import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_restorefh.py b/nfs4.0/servertests/st_restorefh.py index 839079f..e5db09a 100644 --- a/nfs4.0/servertests/st_restorefh.py +++ b/nfs4.0/servertests/st_restorefh.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_savefh.py b/nfs4.0/servertests/st_savefh.py index eef810c..c574718 100644 --- a/nfs4.0/servertests/st_savefh.py +++ b/nfs4.0/servertests/st_savefh.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_secinfo.py b/nfs4.0/servertests/st_secinfo.py index eb874b1..6c828bf 100644 --- a/nfs4.0/servertests/st_secinfo.py +++ b/nfs4.0/servertests/st_secinfo.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, get_invalid_utf8strings +from .environment import check, get_invalid_utf8strings import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_setattr.py b/nfs4.0/servertests/st_setattr.py index aa7123b..edf8caa 100644 --- a/nfs4.0/servertests/st_setattr.py +++ b/nfs4.0/servertests/st_setattr.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, get_invalid_utf8strings +from .environment import check, get_invalid_utf8strings from nfs4lib import bitmap2list, dict2fattr from xdrdef.nfs4_type import nfstime4, settime4 import nfs_ops diff --git a/nfs4.0/servertests/st_setclientid.py b/nfs4.0/servertests/st_setclientid.py index 7f42d2d..6ad91f8 100644 --- a/nfs4.0/servertests/st_setclientid.py +++ b/nfs4.0/servertests/st_setclientid.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check import os import struct, time import nfs_ops diff --git a/nfs4.0/servertests/st_setclientidconfirm.py b/nfs4.0/servertests/st_setclientidconfirm.py index 51f7981..4ecf635 100644 --- a/nfs4.0/servertests/st_setclientidconfirm.py +++ b/nfs4.0/servertests/st_setclientidconfirm.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check import os import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_spoof.py b/nfs4.0/servertests/st_spoof.py index 777985e..68778d4 100644 --- a/nfs4.0/servertests/st_spoof.py +++ b/nfs4.0/servertests/st_spoof.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check +from .environment import check def testSpoofUser(t, env): """SPOOF test, try to spoof user diff --git a/nfs4.0/servertests/st_verify.py b/nfs4.0/servertests/st_verify.py index 219d0a0..16d7c0c 100644 --- a/nfs4.0/servertests/st_verify.py +++ b/nfs4.0/servertests/st_verify.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, get_invalid_clientid, makeStaleId +from .environment import check, get_invalid_clientid, makeStaleId import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/servertests/st_write.py b/nfs4.0/servertests/st_write.py index 5b48153..70ff49e 100644 --- a/nfs4.0/servertests/st_write.py +++ b/nfs4.0/servertests/st_write.py @@ -1,8 +1,8 @@ from xdrdef.nfs4_const import * from xdrdef.nfs4_type import * -from environment import check, compareTimes, makeBadID, makeBadIDganesha, makeStaleId +from .environment import check, compareTimes, makeBadID, makeBadIDganesha, makeStaleId import struct -import rpc +import rpc.rpc as rpc import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.0/testserver.py b/nfs4.0/testserver.py index 581dc3e..ebce58d 100755 --- a/nfs4.0/testserver.py +++ b/nfs4.0/testserver.py @@ -40,7 +40,7 @@ import testmod from optparse import OptionParser, OptionGroup, IndentedHelpFormatter import servertests.environment as environment import socket -import rpc +import rpc.rpc as rpc import pickle VERSION="0.2" # How/when update this? diff --git a/nfs4.1/client41tests/ct_reboot.py b/nfs4.1/client41tests/ct_reboot.py index 3bd241b..efbd74e 100644 --- a/nfs4.1/client41tests/ct_reboot.py +++ b/nfs4.1/client41tests/ct_reboot.py @@ -1,5 +1,5 @@ import os -from environment import fail +from .environment import fail def testReboot(t, env): """Test reboot diff --git a/nfs4.1/client41tests/environment.py b/nfs4.1/client41tests/environment.py index 933264c..09d07c2 100644 --- a/nfs4.1/client41tests/environment.py +++ b/nfs4.1/client41tests/environment.py @@ -12,7 +12,7 @@ import time import testmod from xdrdef.nfs4_const import * from xdrdef.nfs4_type import * -import rpc +import rpc.rpc as rpc import nfs4client import os import nfs4lib diff --git a/nfs4.1/dataserver.py b/nfs4.1/dataserver.py index af0e35a..f76ca5a 100644 --- a/nfs4.1/dataserver.py +++ b/nfs4.1/dataserver.py @@ -1,4 +1,4 @@ -import rpc +import rpc.rpc as rpc import nfs4lib import xdrdef.nfs4_type as type4 from xdrdef.nfs4_pack import NFS4Packer diff --git a/nfs4.1/nfs3client.py b/nfs4.1/nfs3client.py index 176765c..f98f691 100644 --- a/nfs4.1/nfs3client.py +++ b/nfs4.1/nfs3client.py @@ -1,5 +1,5 @@ import use_local # HACK so don't have to rebuild constantly -import rpc +import rpc.rpc as rpc import nfs4lib #from nfs4lib import NFS4Error, NFS4Replay, inc_u32 from xdrdef.sctrl_pack import SCTRLPacker, SCTRLUnpacker diff --git a/nfs4.1/nfs4client.py b/nfs4.1/nfs4client.py index 0588d7b..e8c649b 100644 --- a/nfs4.1/nfs4client.py +++ b/nfs4.1/nfs4client.py @@ -1,5 +1,5 @@ import use_local # HACK so don't have to rebuild constantly -import rpc +import rpc.rpc as rpc import nfs4lib from nfs4lib import NFS4Error, NFS4Replay, inc_u32 from xdrdef.nfs4_type import * diff --git a/nfs4.1/nfs4lib.py b/nfs4.1/nfs4lib.py index 20eae0f..d46706a 100644 --- a/nfs4.1/nfs4lib.py +++ b/nfs4.1/nfs4lib.py @@ -1,5 +1,5 @@ from __future__ import with_statement -import rpc +import rpc.rpc as rpc import xdrdef.nfs4_const from xdrdef.nfs4_pack import NFS4Packer, NFS4Unpacker import xdrdef.nfs4_type diff --git a/nfs4.1/nfs4proxy.py b/nfs4.1/nfs4proxy.py index efb6744..dc8fdd4 100755 --- a/nfs4.1/nfs4proxy.py +++ b/nfs4.1/nfs4proxy.py @@ -3,7 +3,7 @@ from __future__ import with_statement import use_local # HACK so don't have to rebuild constantly import nfs4lib from nfs4lib import inc_u32, NFS4Error, NFS4Replay -import rpc +import rpc.rpc as rpc from xdrdef.nfs4_const import * from xdrdef.nfs4_type import * from xdrdef.sctrl_pack import SCTRLPacker, SCTRLUnpacker diff --git a/nfs4.1/nfs4server.py b/nfs4.1/nfs4server.py index cd78082..767319d 100755 --- a/nfs4.1/nfs4server.py +++ b/nfs4.1/nfs4server.py @@ -3,7 +3,7 @@ from __future__ import with_statement import use_local # HACK so don't have to rebuild constantly import nfs4lib from nfs4lib import inc_u32, NFS4Error, NFS4Replay -import rpc +import rpc.rpc as rpc from xdrdef.nfs4_const import * from xdrdef.nfs4_type import * from xdrdef.sctrl_pack import SCTRLPacker, SCTRLUnpacker diff --git a/nfs4.1/nfs4state.py b/nfs4.1/nfs4state.py index 95f84df..f2cad04 100644 --- a/nfs4.1/nfs4state.py +++ b/nfs4.1/nfs4state.py @@ -9,7 +9,7 @@ from nfs4lib import NFS4Error from xdrdef.nfs4_type import * from xdrdef.nfs4_const import * import nfs_ops -import rpc +import rpc.rpc as rpc import logging log = logging.getLogger("nfs.server.state") diff --git a/nfs4.1/server41tests/environment.py b/nfs4.1/server41tests/environment.py index 360089e..9e1201f 100644 --- a/nfs4.1/server41tests/environment.py +++ b/nfs4.1/server41tests/environment.py @@ -12,7 +12,7 @@ import time import testmod from xdrdef.nfs4_const import * from xdrdef.nfs4_type import * -import rpc +import rpc.rpc as rpc import nfs4client import sys import os diff --git a/nfs4.1/server41tests/st_block.py b/nfs4.1/server41tests/st_block.py index 2041de3..3cfc1c6 100644 --- a/nfs4.1/server41tests/st_block.py +++ b/nfs4.1/server41tests/st_block.py @@ -2,7 +2,7 @@ from xdrdef.nfs4_const import * from xdrdef.nfs4_type import * import nfs_ops op = nfs_ops.NFS4ops() -from environment import check, fail, create_file +from .environment import check, fail, create_file from block import Packer as BlockPacker, Unpacker as BlockUnpacker, \ PNFS_BLOCK_READWRITE_DATA, pnfs_block_layoutupdate4, \ pnfs_block_extent4 diff --git a/nfs4.1/server41tests/st_compound.py b/nfs4.1/server41tests/st_compound.py index 3915dd8..ded5465 100644 --- a/nfs4.1/server41tests/st_compound.py +++ b/nfs4.1/server41tests/st_compound.py @@ -1,7 +1,7 @@ from xdrdef.nfs4_const import * import nfs_ops op = nfs_ops.NFS4ops() -from environment import check, fail, get_invalid_utf8strings +from .environment import check, fail, get_invalid_utf8strings from xdrdef.nfs4_type import * from rpc import RPCAcceptError, GARBAGE_ARGS, RPCTimeout from nfs4lib import NFS4Error, hash_oids, encrypt_oids, FancyNFS4Packer diff --git a/nfs4.1/server41tests/st_create_session.py b/nfs4.1/server41tests/st_create_session.py index 5018ec6..a638990 100644 --- a/nfs4.1/server41tests/st_create_session.py +++ b/nfs4.1/server41tests/st_create_session.py @@ -1,7 +1,7 @@ from xdrdef.nfs4_const import * import nfs_ops op = nfs_ops.NFS4ops() -from environment import check, fail, create_file, open_file +from .environment import check, fail, create_file, open_file from xdrdef.nfs4_type import * import random import nfs4lib diff --git a/nfs4.1/server41tests/st_current_stateid.py b/nfs4.1/server41tests/st_current_stateid.py index 819dfb1..58f6e9b 100644 --- a/nfs4.1/server41tests/st_current_stateid.py +++ b/nfs4.1/server41tests/st_current_stateid.py @@ -1,8 +1,8 @@ from st_create_session import create_session from xdrdef.nfs4_const import * -from environment import check, fail, create_file, open_file, close_file -from environment import open_create_file_op, use_obj +from .environment import check, fail, create_file, open_file, close_file +from .environment import open_create_file_op, use_obj from xdrdef.nfs4_type import open_owner4, openflag4, createhow4, open_claim4 from xdrdef.nfs4_type import creatverfattr, fattr4, stateid4, locker4, lock_owner4 from xdrdef.nfs4_type import open_to_lock_owner4 diff --git a/nfs4.1/server41tests/st_debug.py b/nfs4.1/server41tests/st_debug.py index 345fc77..3e3087d 100644 --- a/nfs4.1/server41tests/st_debug.py +++ b/nfs4.1/server41tests/st_debug.py @@ -1,6 +1,6 @@ from st_create_session import create_session from xdrdef.nfs4_const import * -from environment import check, fail, create_file, close_file +from .environment import check, fail, create_file, close_file from xdrdef.nfs4_type import open_owner4, openflag4, createhow4, open_claim4 import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.1/server41tests/st_delegation.py b/nfs4.1/server41tests/st_delegation.py index cbabb85..4f05bf1 100644 --- a/nfs4.1/server41tests/st_delegation.py +++ b/nfs4.1/server41tests/st_delegation.py @@ -2,7 +2,7 @@ from st_create_session import create_session from st_open import open_claim4 from xdrdef.nfs4_const import * -from environment import check, fail, create_file, open_file, close_file +from .environment import check, fail, create_file, open_file, close_file from xdrdef.nfs4_type import * import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.1/server41tests/st_destroy_clientid.py b/nfs4.1/server41tests/st_destroy_clientid.py index 25cc12a..50081b1 100644 --- a/nfs4.1/server41tests/st_destroy_clientid.py +++ b/nfs4.1/server41tests/st_destroy_clientid.py @@ -1,6 +1,6 @@ from st_create_session import create_session from xdrdef.nfs4_const import * -from environment import check, fail +from .environment import check, fail import nfs_ops op = nfs_ops.NFS4ops() import nfs4lib diff --git a/nfs4.1/server41tests/st_destroy_session.py b/nfs4.1/server41tests/st_destroy_session.py index c776617..c80c845 100644 --- a/nfs4.1/server41tests/st_destroy_session.py +++ b/nfs4.1/server41tests/st_destroy_session.py @@ -1,11 +1,11 @@ from st_create_session import create_session from xdrdef.nfs4_const import * -from environment import check, fail, create_file, open_file +from .environment import check, fail, create_file, open_file from xdrdef.nfs4_type import open_owner4, openflag4, createhow4, open_claim4 import nfs_ops op = nfs_ops.NFS4ops() import threading -import rpc +import rpc.rpc as rpc def testDestroy(t, env): """ diff --git a/nfs4.1/server41tests/st_exchange_id.py b/nfs4.1/server41tests/st_exchange_id.py index 9becec6..5a29634 100644 --- a/nfs4.1/server41tests/st_exchange_id.py +++ b/nfs4.1/server41tests/st_exchange_id.py @@ -2,7 +2,7 @@ from xdrdef.nfs4_const import * import nfs_ops op = nfs_ops.NFS4ops() import time -from environment import check, fail +from .environment import check, fail from xdrdef.nfs4_type import * from rpc import RPCAcceptError, GARBAGE_ARGS, RPCTimeout from nfs4lib import NFS4Error, hash_oids, encrypt_oids diff --git a/nfs4.1/server41tests/st_flex.py b/nfs4.1/server41tests/st_flex.py index 35be489..335b2c8 100644 --- a/nfs4.1/server41tests/st_flex.py +++ b/nfs4.1/server41tests/st_flex.py @@ -3,7 +3,7 @@ from xdrdef.nfs4_type import * from xdrdef.nfs4_pack import * import nfs_ops op = nfs_ops.NFS4ops() -from environment import check, fail, create_file, close_file, open_create_file_op +from .environment import check, fail, create_file, close_file, open_create_file_op from xdrdef.nfs4_pack import NFS4Packer as FlexPacker, \ NFS4Unpacker as FlexUnpacker from nfs4lib import FancyNFS4Packer, get_nfstime diff --git a/nfs4.1/server41tests/st_getdevicelist.py b/nfs4.1/server41tests/st_getdevicelist.py index edf5fe4..aff510e 100644 --- a/nfs4.1/server41tests/st_getdevicelist.py +++ b/nfs4.1/server41tests/st_getdevicelist.py @@ -1,6 +1,6 @@ from xdrdef.nfs4_const import * from xdrdef.nfs4_type import * -from environment import check, fail, use_obj, open_file, create_file, get_blocksize +from .environment import check, fail, use_obj, open_file, create_file, get_blocksize import nfs_ops op = nfs_ops.NFS4ops() from block import Packer as BlockPacker, Unpacker as BlockUnpacker, \ diff --git a/nfs4.1/server41tests/st_lookup.py b/nfs4.1/server41tests/st_lookup.py index 3899425..c46e7d2 100644 --- a/nfs4.1/server41tests/st_lookup.py +++ b/nfs4.1/server41tests/st_lookup.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, fail +from .environment import check, fail import nfs_ops op = nfs_ops.NFS4ops() @@ -64,7 +64,7 @@ def testLongName(t, env): ############################################################## if 0: - from environment import check, get_invalid_utf8strings + from .environment import check, get_invalid_utf8strings def testDir(t, env): """LOOKUP testtree dir diff --git a/nfs4.1/server41tests/st_lookupp.py b/nfs4.1/server41tests/st_lookupp.py index 4c863a4..c91e39e 100644 --- a/nfs4.1/server41tests/st_lookupp.py +++ b/nfs4.1/server41tests/st_lookupp.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, fail, use_obj +from .environment import check, fail, use_obj import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.1/server41tests/st_open.py b/nfs4.1/server41tests/st_open.py index 473732d..ceca656 100644 --- a/nfs4.1/server41tests/st_open.py +++ b/nfs4.1/server41tests/st_open.py @@ -1,8 +1,8 @@ from st_create_session import create_session from xdrdef.nfs4_const import * -from environment import check, fail, create_file, open_file, close_file -from environment import open_create_file_op +from .environment import check, fail, create_file, open_file, close_file +from .environment import open_create_file_op from xdrdef.nfs4_type import open_owner4, openflag4, createhow4, open_claim4 from xdrdef.nfs4_type import creatverfattr, fattr4, stateid4, locker4, lock_owner4 from xdrdef.nfs4_type import open_to_lock_owner4 diff --git a/nfs4.1/server41tests/st_putfh.py b/nfs4.1/server41tests/st_putfh.py index e1d6320..f8bfa71 100644 --- a/nfs4.1/server41tests/st_putfh.py +++ b/nfs4.1/server41tests/st_putfh.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, fail, use_obj, create_confirm, close_file +from .environment import check, fail, use_obj, create_confirm, close_file import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.1/server41tests/st_reboot.py b/nfs4.1/server41tests/st_reboot.py index b19c343..b852ded 100644 --- a/nfs4.1/server41tests/st_reboot.py +++ b/nfs4.1/server41tests/st_reboot.py @@ -1,6 +1,6 @@ from xdrdef.nfs4_const import * from xdrdef.nfs4_type import * -from environment import check, fail, create_file, open_file, create_confirm +from .environment import check, fail, create_file, open_file, create_confirm import sys import os import nfs4lib diff --git a/nfs4.1/server41tests/st_reclaim_complete.py b/nfs4.1/server41tests/st_reclaim_complete.py index 642ada2..ee51843 100644 --- a/nfs4.1/server41tests/st_reclaim_complete.py +++ b/nfs4.1/server41tests/st_reclaim_complete.py @@ -1,6 +1,6 @@ from st_create_session import create_session from xdrdef.nfs4_const import * -from environment import check, fail, open_file, create_file, create_confirm +from .environment import check, fail, open_file, create_file, create_confirm import nfs_ops op = nfs_ops.NFS4ops() import nfs4lib diff --git a/nfs4.1/server41tests/st_rename.py b/nfs4.1/server41tests/st_rename.py index c7c2c20..3042909 100644 --- a/nfs4.1/server41tests/st_rename.py +++ b/nfs4.1/server41tests/st_rename.py @@ -1,5 +1,5 @@ from xdrdef.nfs4_const import * -from environment import check, fail, maketree, rename_obj, get_invalid_utf8strings, create_obj, create_confirm, link, use_obj, create_file +from .environment import check, fail, maketree, rename_obj, get_invalid_utf8strings, create_obj, create_confirm, link, use_obj, create_file import nfs_ops op = nfs_ops.NFS4ops() from xdrdef.nfs4_type import * diff --git a/nfs4.1/server41tests/st_secinfo.py b/nfs4.1/server41tests/st_secinfo.py index 008dc1e..d7f9557 100644 --- a/nfs4.1/server41tests/st_secinfo.py +++ b/nfs4.1/server41tests/st_secinfo.py @@ -1,6 +1,6 @@ from st_create_session import create_session from xdrdef.nfs4_const import * -from environment import check, fail, use_obj, bad_sessionid, create_file +from .environment import check, fail, use_obj, bad_sessionid, create_file from xdrdef.nfs4_type import channel_attrs4 import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.1/server41tests/st_secinfo_no_name.py b/nfs4.1/server41tests/st_secinfo_no_name.py index 9cd6bd3..a044940 100644 --- a/nfs4.1/server41tests/st_secinfo_no_name.py +++ b/nfs4.1/server41tests/st_secinfo_no_name.py @@ -1,6 +1,6 @@ from st_create_session import create_session from xdrdef.nfs4_const import * -from environment import check, fail, bad_sessionid, create_file +from .environment import check, fail, bad_sessionid, create_file from xdrdef.nfs4_type import channel_attrs4 import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.1/server41tests/st_sequence.py b/nfs4.1/server41tests/st_sequence.py index 25e5113..208160f 100644 --- a/nfs4.1/server41tests/st_sequence.py +++ b/nfs4.1/server41tests/st_sequence.py @@ -1,6 +1,6 @@ from st_create_session import create_session from xdrdef.nfs4_const import * -from environment import check, fail, bad_sessionid, create_file +from .environment import check, fail, bad_sessionid, create_file from xdrdef.nfs4_type import channel_attrs4 import nfs_ops op = nfs_ops.NFS4ops() diff --git a/nfs4.1/server41tests/st_sparse.py b/nfs4.1/server41tests/st_sparse.py index 6adf3d6..06be19e 100644 --- a/nfs4.1/server41tests/st_sparse.py +++ b/nfs4.1/server41tests/st_sparse.py @@ -1,6 +1,6 @@ from st_create_session import create_session from xdrdef.nfs4_const import * -from environment import check, fail, create_file +from .environment import check, fail, create_file import nfs_ops op = nfs_ops.NFS4ops() import nfs4lib diff --git a/nfs4.1/server41tests/st_trunking.py b/nfs4.1/server41tests/st_trunking.py index 684423d..72afa1f 100644 --- a/nfs4.1/server41tests/st_trunking.py +++ b/nfs4.1/server41tests/st_trunking.py @@ -1,7 +1,7 @@ from xdrdef.nfs4_const import * import nfs_ops op = nfs_ops.NFS4ops() -from environment import check, fail +from .environment import check, fail from xdrdef.nfs4_type import * import random import nfs4lib diff --git a/nfs4.1/server41tests/st_verify.py b/nfs4.1/server41tests/st_verify.py index 7fb8a47..64d6156 100644 --- a/nfs4.1/server41tests/st_verify.py +++ b/nfs4.1/server41tests/st_verify.py @@ -1,7 +1,7 @@ from xdrdef.nfs4_const import * import nfs_ops op = nfs_ops.NFS4ops() -from environment import check, get_invalid_clientid, makeStaleId, \ +from .environment import check, get_invalid_clientid, makeStaleId, \ do_getattrdict, use_obj def _try_mand(t, env, path): diff --git a/nfs4.1/testclient.py b/nfs4.1/testclient.py index 3665253..5d21eaa 100755 --- a/nfs4.1/testclient.py +++ b/nfs4.1/testclient.py @@ -33,7 +33,7 @@ import testmod from optparse import OptionParser, OptionGroup, IndentedHelpFormatter import client41tests.environment as environment import socket -import rpc +import rpc.rpc as rpc import pickle def parse_useparams(str): diff --git a/nfs4.1/testserver.py b/nfs4.1/testserver.py index 7818a5d..2becc13 100755 --- a/nfs4.1/testserver.py +++ b/nfs4.1/testserver.py @@ -37,7 +37,7 @@ import testmod from optparse import OptionParser, OptionGroup, IndentedHelpFormatter import server41tests.environment as environment import socket -import rpc +import rpc.rpc as rpc import pickle VERSION="0.2" # How/when update this? diff --git a/rpc/rpc.py b/rpc/rpc.py index af2b325..0c4a20a 100644 --- a/rpc/rpc.py +++ b/rpc/rpc.py @@ -1,4 +1,5 @@ from __future__ import with_statement +from __future__ import absolute_import import socket, select import struct @@ -7,7 +8,7 @@ import logging from collections import deque as Deque from errno import EINPROGRESS, EWOULDBLOCK -import rpc_pack +import rpc.rpc_pack as rpc_pack from rpc_const import * from rpc_type import * -- 2.17.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 19/24 v2] pynfs: python3 support plan: fix import fail on python3 2018-07-24 10:33 [PATCH 19/24 v2] pynfs: python3 support plan: fix import fail on python3 jiyin @ 2018-08-23 21:02 ` J. Bruce Fields 2018-08-24 3:01 ` 尹剑虹 0 siblings, 1 reply; 4+ messages in thread From: J. Bruce Fields @ 2018-08-23 21:02 UTC (permalink / raw) To: jiyin; +Cc: linux-nfs, Jianhong.Yin Thanks for the patches, and apologies for the delay handling them. I've applied all 24 (including the v2 version of this patch), and pushed out to my public git repo. Does this complete the python3 work, or is there more to do? --b. On Tue, Jul 24, 2018 at 06:33:15PM +0800, jiyin@redhat.com wrote: > From: "Jianhong.Yin" <yin-jianhong@163.com> > > Signed-off-by: Jianhong Yin <yin-jianhong@163.com> > --- > nfs4.0/servertests/environment.py | 2 +- > nfs4.0/servertests/st_access.py | 2 +- > nfs4.0/servertests/st_acl.py | 2 +- > nfs4.0/servertests/st_close.py | 2 +- > nfs4.0/servertests/st_commit.py | 2 +- > nfs4.0/servertests/st_compound.py | 5 +++-- > nfs4.0/servertests/st_create.py | 2 +- > nfs4.0/servertests/st_delegation.py | 2 +- > nfs4.0/servertests/st_fslocations.py | 2 +- > nfs4.0/servertests/st_getattr.py | 2 +- > nfs4.0/servertests/st_getfh.py | 2 +- > nfs4.0/servertests/st_gss.py | 4 ++-- > nfs4.0/servertests/st_link.py | 2 +- > nfs4.0/servertests/st_lock.py | 2 +- > nfs4.0/servertests/st_lockt.py | 2 +- > nfs4.0/servertests/st_locku.py | 2 +- > nfs4.0/servertests/st_lookup.py | 4 ++-- > nfs4.0/servertests/st_lookupp.py | 2 +- > nfs4.0/servertests/st_nverify.py | 2 +- > nfs4.0/servertests/st_open.py | 2 +- > nfs4.0/servertests/st_openconfirm.py | 2 +- > nfs4.0/servertests/st_opendowngrade.py | 2 +- > nfs4.0/servertests/st_putfh.py | 2 +- > nfs4.0/servertests/st_putpubfh.py | 2 +- > nfs4.0/servertests/st_putrootfh.py | 2 +- > nfs4.0/servertests/st_read.py | 4 ++-- > nfs4.0/servertests/st_readdir.py | 2 +- > nfs4.0/servertests/st_readlink.py | 2 +- > nfs4.0/servertests/st_reboot.py | 2 +- > nfs4.0/servertests/st_releaselockowner.py | 2 +- > nfs4.0/servertests/st_remove.py | 2 +- > nfs4.0/servertests/st_rename.py | 2 +- > nfs4.0/servertests/st_renew.py | 2 +- > nfs4.0/servertests/st_replay.py | 2 +- > nfs4.0/servertests/st_restorefh.py | 2 +- > nfs4.0/servertests/st_savefh.py | 2 +- > nfs4.0/servertests/st_secinfo.py | 2 +- > nfs4.0/servertests/st_setattr.py | 2 +- > nfs4.0/servertests/st_setclientid.py | 2 +- > nfs4.0/servertests/st_setclientidconfirm.py | 2 +- > nfs4.0/servertests/st_spoof.py | 2 +- > nfs4.0/servertests/st_verify.py | 2 +- > nfs4.0/servertests/st_write.py | 4 ++-- > nfs4.0/testserver.py | 2 +- > nfs4.1/client41tests/ct_reboot.py | 2 +- > nfs4.1/client41tests/environment.py | 2 +- > nfs4.1/dataserver.py | 2 +- > nfs4.1/nfs3client.py | 2 +- > nfs4.1/nfs4client.py | 2 +- > nfs4.1/nfs4lib.py | 2 +- > nfs4.1/nfs4proxy.py | 2 +- > nfs4.1/nfs4server.py | 2 +- > nfs4.1/nfs4state.py | 2 +- > nfs4.1/server41tests/environment.py | 2 +- > nfs4.1/server41tests/st_block.py | 2 +- > nfs4.1/server41tests/st_compound.py | 2 +- > nfs4.1/server41tests/st_create_session.py | 2 +- > nfs4.1/server41tests/st_current_stateid.py | 4 ++-- > nfs4.1/server41tests/st_debug.py | 2 +- > nfs4.1/server41tests/st_delegation.py | 2 +- > nfs4.1/server41tests/st_destroy_clientid.py | 2 +- > nfs4.1/server41tests/st_destroy_session.py | 4 ++-- > nfs4.1/server41tests/st_exchange_id.py | 2 +- > nfs4.1/server41tests/st_flex.py | 2 +- > nfs4.1/server41tests/st_getdevicelist.py | 2 +- > nfs4.1/server41tests/st_lookup.py | 4 ++-- > nfs4.1/server41tests/st_lookupp.py | 2 +- > nfs4.1/server41tests/st_open.py | 4 ++-- > nfs4.1/server41tests/st_putfh.py | 2 +- > nfs4.1/server41tests/st_reboot.py | 2 +- > nfs4.1/server41tests/st_reclaim_complete.py | 2 +- > nfs4.1/server41tests/st_rename.py | 2 +- > nfs4.1/server41tests/st_secinfo.py | 2 +- > nfs4.1/server41tests/st_secinfo_no_name.py | 2 +- > nfs4.1/server41tests/st_sequence.py | 2 +- > nfs4.1/server41tests/st_sparse.py | 2 +- > nfs4.1/server41tests/st_trunking.py | 2 +- > nfs4.1/server41tests/st_verify.py | 2 +- > nfs4.1/testclient.py | 2 +- > nfs4.1/testserver.py | 2 +- > rpc/rpc.py | 3 ++- > 81 files changed, 92 insertions(+), 90 deletions(-) > > diff --git a/nfs4.0/servertests/environment.py b/nfs4.0/servertests/environment.py > index a5cfe60..4d85837 100644 > --- a/nfs4.0/servertests/environment.py > +++ b/nfs4.0/servertests/environment.py > @@ -14,7 +14,7 @@ from nfs4lib import NFS4Client, get_attrbitnum_dict > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import fsid4, nfsace4, fs_locations4, fs_location4, \ > specdata4, nfstime4, settime4, stateid4 > -import rpc > +import rpc.rpc as rpc > import sys > import os > import nfs_ops > diff --git a/nfs4.0/servertests/st_access.py b/nfs4.0/servertests/st_access.py > index 58c42bc..0a16986 100644 > --- a/nfs4.0/servertests/st_access.py > +++ b/nfs4.0/servertests/st_access.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_acl.py b/nfs4.0/servertests/st_acl.py > index 88667d2..3194ebc 100644 > --- a/nfs4.0/servertests/st_acl.py > +++ b/nfs4.0/servertests/st_acl.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > from xdrdef.nfs4_type import nfsace4 > from nfs4lib import list2bitmap > > diff --git a/nfs4.0/servertests/st_close.py b/nfs4.0/servertests/st_close.py > index 89ccbba..e0166f6 100644 > --- a/nfs4.0/servertests/st_close.py > +++ b/nfs4.0/servertests/st_close.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, makeStaleId > +from .environment import check, makeStaleId > > > def testCloseCreate(t, env): > diff --git a/nfs4.0/servertests/st_commit.py b/nfs4.0/servertests/st_commit.py > index eecf2c8..9345424 100644 > --- a/nfs4.0/servertests/st_commit.py > +++ b/nfs4.0/servertests/st_commit.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > > _text = "Random data to write" > > diff --git a/nfs4.0/servertests/st_compound.py b/nfs4.0/servertests/st_compound.py > index 59a279d..5225f61 100644 > --- a/nfs4.0/servertests/st_compound.py > +++ b/nfs4.0/servertests/st_compound.py > @@ -1,8 +1,9 @@ > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import nfs_argop4 > from xdrdef.nfs4_pack import NFS4Packer > -from environment import check, get_invalid_utf8strings > -from rpc import RPCError > +from .environment import check, get_invalid_utf8strings > +from rpc.rpc import RPCError > + > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_create.py b/nfs4.0/servertests/st_create.py > index c7256e5..a43003b 100644 > --- a/nfs4.0/servertests/st_create.py > +++ b/nfs4.0/servertests/st_create.py > @@ -1,6 +1,6 @@ > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import createtype4, specdata4 > -from environment import check > +from .environment import check > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_delegation.py b/nfs4.0/servertests/st_delegation.py > index 937d95f..0247151 100644 > --- a/nfs4.0/servertests/st_delegation.py > +++ b/nfs4.0/servertests/st_delegation.py > @@ -1,6 +1,6 @@ > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import nfs_client_id4, clientaddr4, cb_client4 > -from environment import check > +from .environment import check > import os > import threading > import time > diff --git a/nfs4.0/servertests/st_fslocations.py b/nfs4.0/servertests/st_fslocations.py > index 442d5a2..0387843 100644 > --- a/nfs4.0/servertests/st_fslocations.py > +++ b/nfs4.0/servertests/st_fslocations.py > @@ -1,6 +1,6 @@ > from xdrdef.nfs4_const import * > from nfs4lib import list2bitmap > -from environment import check > +from .environment import check > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_getattr.py b/nfs4.0/servertests/st_getattr.py > index 65a5701..292fcd2 100644 > --- a/nfs4.0/servertests/st_getattr.py > +++ b/nfs4.0/servertests/st_getattr.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > from nfs4lib import get_attr_name > import nfs_ops > op = nfs_ops.NFS4ops() > diff --git a/nfs4.0/servertests/st_getfh.py b/nfs4.0/servertests/st_getfh.py > index 6fd22e7..4abe320 100644 > --- a/nfs4.0/servertests/st_getfh.py > +++ b/nfs4.0/servertests/st_getfh.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_gss.py b/nfs4.0/servertests/st_gss.py > index 414883e..e10e849 100644 > --- a/nfs4.0/servertests/st_gss.py > +++ b/nfs4.0/servertests/st_gss.py > @@ -1,7 +1,7 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > from socket import timeout > -import rpc > +import rpc.rpc as rpc > import rpc.rpcsec.gss_const as gss > from rpc.rpcsec.gss_type import rpc_gss_cred_t > import nfs_ops > diff --git a/nfs4.0/servertests/st_link.py b/nfs4.0/servertests/st_link.py > index feddf1e..0ef5009 100644 > --- a/nfs4.0/servertests/st_link.py > +++ b/nfs4.0/servertests/st_link.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, get_invalid_utf8strings > +from .environment import check, get_invalid_utf8strings > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_lock.py b/nfs4.0/servertests/st_lock.py > index 060236a..b815a54 100644 > --- a/nfs4.0/servertests/st_lock.py > +++ b/nfs4.0/servertests/st_lock.py > @@ -1,6 +1,6 @@ > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import stateid4 > -from environment import check, get_invalid_clientid, makeStaleId, makeBadIDganesha > +from .environment import check, get_invalid_clientid, makeStaleId, makeBadIDganesha > import time > import nfs_ops > op = nfs_ops.NFS4ops() > diff --git a/nfs4.0/servertests/st_lockt.py b/nfs4.0/servertests/st_lockt.py > index 7f8c5e1..ee0b825 100644 > --- a/nfs4.0/servertests/st_lockt.py > +++ b/nfs4.0/servertests/st_lockt.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, get_invalid_clientid > +from .environment import check, get_invalid_clientid > > def testUnlockedFile(t, env): > """LOCKT on a regular unlocked file > diff --git a/nfs4.0/servertests/st_locku.py b/nfs4.0/servertests/st_locku.py > index 74b464a..3524a61 100644 > --- a/nfs4.0/servertests/st_locku.py > +++ b/nfs4.0/servertests/st_locku.py > @@ -1,6 +1,6 @@ > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import stateid4 > -from environment import check, makeStaleId > +from .environment import check, makeStaleId > > def testFile(t, env): > """LOCKU a regular file > diff --git a/nfs4.0/servertests/st_lookup.py b/nfs4.0/servertests/st_lookup.py > index eed7100..9bfaffe 100644 > --- a/nfs4.0/servertests/st_lookup.py > +++ b/nfs4.0/servertests/st_lookup.py > @@ -1,6 +1,6 @@ > from xdrdef.nfs4_const import * > -from environment import check, get_invalid_utf8strings > -import rpc > +from .environment import check, get_invalid_utf8strings > +import rpc.rpc as rpc > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_lookupp.py b/nfs4.0/servertests/st_lookupp.py > index 13c1553..7c38600 100644 > --- a/nfs4.0/servertests/st_lookupp.py > +++ b/nfs4.0/servertests/st_lookupp.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, get_invalid_utf8strings > +from .environment import check, get_invalid_utf8strings > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_nverify.py b/nfs4.0/servertests/st_nverify.py > index 4185970..e2a8130 100644 > --- a/nfs4.0/servertests/st_nverify.py > +++ b/nfs4.0/servertests/st_nverify.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, get_invalid_clientid, makeStaleId > +from .environment import check, get_invalid_clientid, makeStaleId > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_open.py b/nfs4.0/servertests/st_open.py > index b4af81c..9f5d1aa 100644 > --- a/nfs4.0/servertests/st_open.py > +++ b/nfs4.0/servertests/st_open.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, checkdict, get_invalid_utf8strings > +from .environment import check, checkdict, get_invalid_utf8strings > from nfs4lib import get_bitnumattr_dict > > # Any test that uses create_confirm should depend on this test > diff --git a/nfs4.0/servertests/st_openconfirm.py b/nfs4.0/servertests/st_openconfirm.py > index 3b5b98f..631855a 100644 > --- a/nfs4.0/servertests/st_openconfirm.py > +++ b/nfs4.0/servertests/st_openconfirm.py > @@ -1,6 +1,6 @@ > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import stateid4 > -from environment import check, makeStaleId > +from .environment import check, makeStaleId > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_opendowngrade.py b/nfs4.0/servertests/st_opendowngrade.py > index 213b2dd..2180223 100644 > --- a/nfs4.0/servertests/st_opendowngrade.py > +++ b/nfs4.0/servertests/st_opendowngrade.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, makeStaleId > +from .environment import check, makeStaleId > > def testRegularOpen(t, env): > """OPENDOWNGRADE on regular file > diff --git a/nfs4.0/servertests/st_putfh.py b/nfs4.0/servertests/st_putfh.py > index ba9ce27..6560f2e 100644 > --- a/nfs4.0/servertests/st_putfh.py > +++ b/nfs4.0/servertests/st_putfh.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_putpubfh.py b/nfs4.0/servertests/st_putpubfh.py > index 0149b9d..1514fde 100644 > --- a/nfs4.0/servertests/st_putpubfh.py > +++ b/nfs4.0/servertests/st_putpubfh.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_putrootfh.py b/nfs4.0/servertests/st_putrootfh.py > index dd47f58..b13c694 100644 > --- a/nfs4.0/servertests/st_putrootfh.py > +++ b/nfs4.0/servertests/st_putrootfh.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_read.py b/nfs4.0/servertests/st_read.py > index 15f8795..1eb996c 100644 > --- a/nfs4.0/servertests/st_read.py > +++ b/nfs4.0/servertests/st_read.py > @@ -1,6 +1,6 @@ > from xdrdef.nfs4_const import * > -from environment import check, makeBadID, makeBadIDganesha, makeStaleId > -import rpc > +from .environment import check, makeBadID, makeBadIDganesha, makeStaleId > +import rpc.rpc as rpc > > def _compare(t, res, expect, eof=True): > def shorten(str): > diff --git a/nfs4.0/servertests/st_readdir.py b/nfs4.0/servertests/st_readdir.py > index 798b2d0..b9a8a4d 100644 > --- a/nfs4.0/servertests/st_readdir.py > +++ b/nfs4.0/servertests/st_readdir.py > @@ -1,6 +1,6 @@ > from xdrdef.nfs4_const import * > from nfs4lib import get_attr_name > -from environment import check > +from .environment import check > > def _compare(t, entries, expect, attrlist=[]): > names = [e.name for e in entries] > diff --git a/nfs4.0/servertests/st_readlink.py b/nfs4.0/servertests/st_readlink.py > index 8b905d0..d8e3ea1 100644 > --- a/nfs4.0/servertests/st_readlink.py > +++ b/nfs4.0/servertests/st_readlink.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_reboot.py b/nfs4.0/servertests/st_reboot.py > index 16cb008..2a03e60 100644 > --- a/nfs4.0/servertests/st_reboot.py > +++ b/nfs4.0/servertests/st_reboot.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > import os > import nfs_ops > op = nfs_ops.NFS4ops() > diff --git a/nfs4.0/servertests/st_releaselockowner.py b/nfs4.0/servertests/st_releaselockowner.py > index 17dfe1a..8021ddf 100644 > --- a/nfs4.0/servertests/st_releaselockowner.py > +++ b/nfs4.0/servertests/st_releaselockowner.py > @@ -1,6 +1,6 @@ > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import lock_owner4 > -from environment import check > +from .environment import check > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_remove.py b/nfs4.0/servertests/st_remove.py > index 5f531f4..a9c397f 100644 > --- a/nfs4.0/servertests/st_remove.py > +++ b/nfs4.0/servertests/st_remove.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, get_invalid_utf8strings > +from .environment import check, get_invalid_utf8strings > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_rename.py b/nfs4.0/servertests/st_rename.py > index 8f41763..3a7fa1e 100644 > --- a/nfs4.0/servertests/st_rename.py > +++ b/nfs4.0/servertests/st_rename.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, get_invalid_utf8strings > +from .environment import check, get_invalid_utf8strings > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_renew.py b/nfs4.0/servertests/st_renew.py > index 3a9f774..679363c 100644 > --- a/nfs4.0/servertests/st_renew.py > +++ b/nfs4.0/servertests/st_renew.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_replay.py b/nfs4.0/servertests/st_replay.py > index 81b8332..3eba563 100644 > --- a/nfs4.0/servertests/st_replay.py > +++ b/nfs4.0/servertests/st_replay.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > from xdrdef.nfs4_type import * > import nfs_ops > op = nfs_ops.NFS4ops() > diff --git a/nfs4.0/servertests/st_restorefh.py b/nfs4.0/servertests/st_restorefh.py > index 839079f..e5db09a 100644 > --- a/nfs4.0/servertests/st_restorefh.py > +++ b/nfs4.0/servertests/st_restorefh.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_savefh.py b/nfs4.0/servertests/st_savefh.py > index eef810c..c574718 100644 > --- a/nfs4.0/servertests/st_savefh.py > +++ b/nfs4.0/servertests/st_savefh.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_secinfo.py b/nfs4.0/servertests/st_secinfo.py > index eb874b1..6c828bf 100644 > --- a/nfs4.0/servertests/st_secinfo.py > +++ b/nfs4.0/servertests/st_secinfo.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, get_invalid_utf8strings > +from .environment import check, get_invalid_utf8strings > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_setattr.py b/nfs4.0/servertests/st_setattr.py > index aa7123b..edf8caa 100644 > --- a/nfs4.0/servertests/st_setattr.py > +++ b/nfs4.0/servertests/st_setattr.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, get_invalid_utf8strings > +from .environment import check, get_invalid_utf8strings > from nfs4lib import bitmap2list, dict2fattr > from xdrdef.nfs4_type import nfstime4, settime4 > import nfs_ops > diff --git a/nfs4.0/servertests/st_setclientid.py b/nfs4.0/servertests/st_setclientid.py > index 7f42d2d..6ad91f8 100644 > --- a/nfs4.0/servertests/st_setclientid.py > +++ b/nfs4.0/servertests/st_setclientid.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > import os > import struct, time > import nfs_ops > diff --git a/nfs4.0/servertests/st_setclientidconfirm.py b/nfs4.0/servertests/st_setclientidconfirm.py > index 51f7981..4ecf635 100644 > --- a/nfs4.0/servertests/st_setclientidconfirm.py > +++ b/nfs4.0/servertests/st_setclientidconfirm.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > import os > import nfs_ops > op = nfs_ops.NFS4ops() > diff --git a/nfs4.0/servertests/st_spoof.py b/nfs4.0/servertests/st_spoof.py > index 777985e..68778d4 100644 > --- a/nfs4.0/servertests/st_spoof.py > +++ b/nfs4.0/servertests/st_spoof.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check > +from .environment import check > > def testSpoofUser(t, env): > """SPOOF test, try to spoof user > diff --git a/nfs4.0/servertests/st_verify.py b/nfs4.0/servertests/st_verify.py > index 219d0a0..16d7c0c 100644 > --- a/nfs4.0/servertests/st_verify.py > +++ b/nfs4.0/servertests/st_verify.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, get_invalid_clientid, makeStaleId > +from .environment import check, get_invalid_clientid, makeStaleId > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/servertests/st_write.py b/nfs4.0/servertests/st_write.py > index 5b48153..70ff49e 100644 > --- a/nfs4.0/servertests/st_write.py > +++ b/nfs4.0/servertests/st_write.py > @@ -1,8 +1,8 @@ > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import * > -from environment import check, compareTimes, makeBadID, makeBadIDganesha, makeStaleId > +from .environment import check, compareTimes, makeBadID, makeBadIDganesha, makeStaleId > import struct > -import rpc > +import rpc.rpc as rpc > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.0/testserver.py b/nfs4.0/testserver.py > index 581dc3e..ebce58d 100755 > --- a/nfs4.0/testserver.py > +++ b/nfs4.0/testserver.py > @@ -40,7 +40,7 @@ import testmod > from optparse import OptionParser, OptionGroup, IndentedHelpFormatter > import servertests.environment as environment > import socket > -import rpc > +import rpc.rpc as rpc > import pickle > > VERSION="0.2" # How/when update this? > diff --git a/nfs4.1/client41tests/ct_reboot.py b/nfs4.1/client41tests/ct_reboot.py > index 3bd241b..efbd74e 100644 > --- a/nfs4.1/client41tests/ct_reboot.py > +++ b/nfs4.1/client41tests/ct_reboot.py > @@ -1,5 +1,5 @@ > import os > -from environment import fail > +from .environment import fail > > def testReboot(t, env): > """Test reboot > diff --git a/nfs4.1/client41tests/environment.py b/nfs4.1/client41tests/environment.py > index 933264c..09d07c2 100644 > --- a/nfs4.1/client41tests/environment.py > +++ b/nfs4.1/client41tests/environment.py > @@ -12,7 +12,7 @@ import time > import testmod > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import * > -import rpc > +import rpc.rpc as rpc > import nfs4client > import os > import nfs4lib > diff --git a/nfs4.1/dataserver.py b/nfs4.1/dataserver.py > index af0e35a..f76ca5a 100644 > --- a/nfs4.1/dataserver.py > +++ b/nfs4.1/dataserver.py > @@ -1,4 +1,4 @@ > -import rpc > +import rpc.rpc as rpc > import nfs4lib > import xdrdef.nfs4_type as type4 > from xdrdef.nfs4_pack import NFS4Packer > diff --git a/nfs4.1/nfs3client.py b/nfs4.1/nfs3client.py > index 176765c..f98f691 100644 > --- a/nfs4.1/nfs3client.py > +++ b/nfs4.1/nfs3client.py > @@ -1,5 +1,5 @@ > import use_local # HACK so don't have to rebuild constantly > -import rpc > +import rpc.rpc as rpc > import nfs4lib > #from nfs4lib import NFS4Error, NFS4Replay, inc_u32 > from xdrdef.sctrl_pack import SCTRLPacker, SCTRLUnpacker > diff --git a/nfs4.1/nfs4client.py b/nfs4.1/nfs4client.py > index 0588d7b..e8c649b 100644 > --- a/nfs4.1/nfs4client.py > +++ b/nfs4.1/nfs4client.py > @@ -1,5 +1,5 @@ > import use_local # HACK so don't have to rebuild constantly > -import rpc > +import rpc.rpc as rpc > import nfs4lib > from nfs4lib import NFS4Error, NFS4Replay, inc_u32 > from xdrdef.nfs4_type import * > diff --git a/nfs4.1/nfs4lib.py b/nfs4.1/nfs4lib.py > index 20eae0f..d46706a 100644 > --- a/nfs4.1/nfs4lib.py > +++ b/nfs4.1/nfs4lib.py > @@ -1,5 +1,5 @@ > from __future__ import with_statement > -import rpc > +import rpc.rpc as rpc > import xdrdef.nfs4_const > from xdrdef.nfs4_pack import NFS4Packer, NFS4Unpacker > import xdrdef.nfs4_type > diff --git a/nfs4.1/nfs4proxy.py b/nfs4.1/nfs4proxy.py > index efb6744..dc8fdd4 100755 > --- a/nfs4.1/nfs4proxy.py > +++ b/nfs4.1/nfs4proxy.py > @@ -3,7 +3,7 @@ from __future__ import with_statement > import use_local # HACK so don't have to rebuild constantly > import nfs4lib > from nfs4lib import inc_u32, NFS4Error, NFS4Replay > -import rpc > +import rpc.rpc as rpc > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import * > from xdrdef.sctrl_pack import SCTRLPacker, SCTRLUnpacker > diff --git a/nfs4.1/nfs4server.py b/nfs4.1/nfs4server.py > index cd78082..767319d 100755 > --- a/nfs4.1/nfs4server.py > +++ b/nfs4.1/nfs4server.py > @@ -3,7 +3,7 @@ from __future__ import with_statement > import use_local # HACK so don't have to rebuild constantly > import nfs4lib > from nfs4lib import inc_u32, NFS4Error, NFS4Replay > -import rpc > +import rpc.rpc as rpc > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import * > from xdrdef.sctrl_pack import SCTRLPacker, SCTRLUnpacker > diff --git a/nfs4.1/nfs4state.py b/nfs4.1/nfs4state.py > index 95f84df..f2cad04 100644 > --- a/nfs4.1/nfs4state.py > +++ b/nfs4.1/nfs4state.py > @@ -9,7 +9,7 @@ from nfs4lib import NFS4Error > from xdrdef.nfs4_type import * > from xdrdef.nfs4_const import * > import nfs_ops > -import rpc > +import rpc.rpc as rpc > import logging > > log = logging.getLogger("nfs.server.state") > diff --git a/nfs4.1/server41tests/environment.py b/nfs4.1/server41tests/environment.py > index 360089e..9e1201f 100644 > --- a/nfs4.1/server41tests/environment.py > +++ b/nfs4.1/server41tests/environment.py > @@ -12,7 +12,7 @@ import time > import testmod > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import * > -import rpc > +import rpc.rpc as rpc > import nfs4client > import sys > import os > diff --git a/nfs4.1/server41tests/st_block.py b/nfs4.1/server41tests/st_block.py > index 2041de3..3cfc1c6 100644 > --- a/nfs4.1/server41tests/st_block.py > +++ b/nfs4.1/server41tests/st_block.py > @@ -2,7 +2,7 @@ from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import * > import nfs_ops > op = nfs_ops.NFS4ops() > -from environment import check, fail, create_file > +from .environment import check, fail, create_file > from block import Packer as BlockPacker, Unpacker as BlockUnpacker, \ > PNFS_BLOCK_READWRITE_DATA, pnfs_block_layoutupdate4, \ > pnfs_block_extent4 > diff --git a/nfs4.1/server41tests/st_compound.py b/nfs4.1/server41tests/st_compound.py > index 3915dd8..ded5465 100644 > --- a/nfs4.1/server41tests/st_compound.py > +++ b/nfs4.1/server41tests/st_compound.py > @@ -1,7 +1,7 @@ > from xdrdef.nfs4_const import * > import nfs_ops > op = nfs_ops.NFS4ops() > -from environment import check, fail, get_invalid_utf8strings > +from .environment import check, fail, get_invalid_utf8strings > from xdrdef.nfs4_type import * > from rpc import RPCAcceptError, GARBAGE_ARGS, RPCTimeout > from nfs4lib import NFS4Error, hash_oids, encrypt_oids, FancyNFS4Packer > diff --git a/nfs4.1/server41tests/st_create_session.py b/nfs4.1/server41tests/st_create_session.py > index 5018ec6..a638990 100644 > --- a/nfs4.1/server41tests/st_create_session.py > +++ b/nfs4.1/server41tests/st_create_session.py > @@ -1,7 +1,7 @@ > from xdrdef.nfs4_const import * > import nfs_ops > op = nfs_ops.NFS4ops() > -from environment import check, fail, create_file, open_file > +from .environment import check, fail, create_file, open_file > from xdrdef.nfs4_type import * > import random > import nfs4lib > diff --git a/nfs4.1/server41tests/st_current_stateid.py b/nfs4.1/server41tests/st_current_stateid.py > index 819dfb1..58f6e9b 100644 > --- a/nfs4.1/server41tests/st_current_stateid.py > +++ b/nfs4.1/server41tests/st_current_stateid.py > @@ -1,8 +1,8 @@ > from st_create_session import create_session > from xdrdef.nfs4_const import * > > -from environment import check, fail, create_file, open_file, close_file > -from environment import open_create_file_op, use_obj > +from .environment import check, fail, create_file, open_file, close_file > +from .environment import open_create_file_op, use_obj > from xdrdef.nfs4_type import open_owner4, openflag4, createhow4, open_claim4 > from xdrdef.nfs4_type import creatverfattr, fattr4, stateid4, locker4, lock_owner4 > from xdrdef.nfs4_type import open_to_lock_owner4 > diff --git a/nfs4.1/server41tests/st_debug.py b/nfs4.1/server41tests/st_debug.py > index 345fc77..3e3087d 100644 > --- a/nfs4.1/server41tests/st_debug.py > +++ b/nfs4.1/server41tests/st_debug.py > @@ -1,6 +1,6 @@ > from st_create_session import create_session > from xdrdef.nfs4_const import * > -from environment import check, fail, create_file, close_file > +from .environment import check, fail, create_file, close_file > from xdrdef.nfs4_type import open_owner4, openflag4, createhow4, open_claim4 > import nfs_ops > op = nfs_ops.NFS4ops() > diff --git a/nfs4.1/server41tests/st_delegation.py b/nfs4.1/server41tests/st_delegation.py > index cbabb85..4f05bf1 100644 > --- a/nfs4.1/server41tests/st_delegation.py > +++ b/nfs4.1/server41tests/st_delegation.py > @@ -2,7 +2,7 @@ from st_create_session import create_session > from st_open import open_claim4 > from xdrdef.nfs4_const import * > > -from environment import check, fail, create_file, open_file, close_file > +from .environment import check, fail, create_file, open_file, close_file > from xdrdef.nfs4_type import * > import nfs_ops > op = nfs_ops.NFS4ops() > diff --git a/nfs4.1/server41tests/st_destroy_clientid.py b/nfs4.1/server41tests/st_destroy_clientid.py > index 25cc12a..50081b1 100644 > --- a/nfs4.1/server41tests/st_destroy_clientid.py > +++ b/nfs4.1/server41tests/st_destroy_clientid.py > @@ -1,6 +1,6 @@ > from st_create_session import create_session > from xdrdef.nfs4_const import * > -from environment import check, fail > +from .environment import check, fail > import nfs_ops > op = nfs_ops.NFS4ops() > import nfs4lib > diff --git a/nfs4.1/server41tests/st_destroy_session.py b/nfs4.1/server41tests/st_destroy_session.py > index c776617..c80c845 100644 > --- a/nfs4.1/server41tests/st_destroy_session.py > +++ b/nfs4.1/server41tests/st_destroy_session.py > @@ -1,11 +1,11 @@ > from st_create_session import create_session > from xdrdef.nfs4_const import * > -from environment import check, fail, create_file, open_file > +from .environment import check, fail, create_file, open_file > from xdrdef.nfs4_type import open_owner4, openflag4, createhow4, open_claim4 > import nfs_ops > op = nfs_ops.NFS4ops() > import threading > -import rpc > +import rpc.rpc as rpc > > def testDestroy(t, env): > """ > diff --git a/nfs4.1/server41tests/st_exchange_id.py b/nfs4.1/server41tests/st_exchange_id.py > index 9becec6..5a29634 100644 > --- a/nfs4.1/server41tests/st_exchange_id.py > +++ b/nfs4.1/server41tests/st_exchange_id.py > @@ -2,7 +2,7 @@ from xdrdef.nfs4_const import * > import nfs_ops > op = nfs_ops.NFS4ops() > import time > -from environment import check, fail > +from .environment import check, fail > from xdrdef.nfs4_type import * > from rpc import RPCAcceptError, GARBAGE_ARGS, RPCTimeout > from nfs4lib import NFS4Error, hash_oids, encrypt_oids > diff --git a/nfs4.1/server41tests/st_flex.py b/nfs4.1/server41tests/st_flex.py > index 35be489..335b2c8 100644 > --- a/nfs4.1/server41tests/st_flex.py > +++ b/nfs4.1/server41tests/st_flex.py > @@ -3,7 +3,7 @@ from xdrdef.nfs4_type import * > from xdrdef.nfs4_pack import * > import nfs_ops > op = nfs_ops.NFS4ops() > -from environment import check, fail, create_file, close_file, open_create_file_op > +from .environment import check, fail, create_file, close_file, open_create_file_op > from xdrdef.nfs4_pack import NFS4Packer as FlexPacker, \ > NFS4Unpacker as FlexUnpacker > from nfs4lib import FancyNFS4Packer, get_nfstime > diff --git a/nfs4.1/server41tests/st_getdevicelist.py b/nfs4.1/server41tests/st_getdevicelist.py > index edf5fe4..aff510e 100644 > --- a/nfs4.1/server41tests/st_getdevicelist.py > +++ b/nfs4.1/server41tests/st_getdevicelist.py > @@ -1,6 +1,6 @@ > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import * > -from environment import check, fail, use_obj, open_file, create_file, get_blocksize > +from .environment import check, fail, use_obj, open_file, create_file, get_blocksize > import nfs_ops > op = nfs_ops.NFS4ops() > from block import Packer as BlockPacker, Unpacker as BlockUnpacker, \ > diff --git a/nfs4.1/server41tests/st_lookup.py b/nfs4.1/server41tests/st_lookup.py > index 3899425..c46e7d2 100644 > --- a/nfs4.1/server41tests/st_lookup.py > +++ b/nfs4.1/server41tests/st_lookup.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, fail > +from .environment import check, fail > import nfs_ops > op = nfs_ops.NFS4ops() > > @@ -64,7 +64,7 @@ def testLongName(t, env): > > ############################################################## > if 0: > - from environment import check, get_invalid_utf8strings > + from .environment import check, get_invalid_utf8strings > > def testDir(t, env): > """LOOKUP testtree dir > diff --git a/nfs4.1/server41tests/st_lookupp.py b/nfs4.1/server41tests/st_lookupp.py > index 4c863a4..c91e39e 100644 > --- a/nfs4.1/server41tests/st_lookupp.py > +++ b/nfs4.1/server41tests/st_lookupp.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, fail, use_obj > +from .environment import check, fail, use_obj > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.1/server41tests/st_open.py b/nfs4.1/server41tests/st_open.py > index 473732d..ceca656 100644 > --- a/nfs4.1/server41tests/st_open.py > +++ b/nfs4.1/server41tests/st_open.py > @@ -1,8 +1,8 @@ > from st_create_session import create_session > from xdrdef.nfs4_const import * > > -from environment import check, fail, create_file, open_file, close_file > -from environment import open_create_file_op > +from .environment import check, fail, create_file, open_file, close_file > +from .environment import open_create_file_op > from xdrdef.nfs4_type import open_owner4, openflag4, createhow4, open_claim4 > from xdrdef.nfs4_type import creatverfattr, fattr4, stateid4, locker4, lock_owner4 > from xdrdef.nfs4_type import open_to_lock_owner4 > diff --git a/nfs4.1/server41tests/st_putfh.py b/nfs4.1/server41tests/st_putfh.py > index e1d6320..f8bfa71 100644 > --- a/nfs4.1/server41tests/st_putfh.py > +++ b/nfs4.1/server41tests/st_putfh.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, fail, use_obj, create_confirm, close_file > +from .environment import check, fail, use_obj, create_confirm, close_file > import nfs_ops > op = nfs_ops.NFS4ops() > > diff --git a/nfs4.1/server41tests/st_reboot.py b/nfs4.1/server41tests/st_reboot.py > index b19c343..b852ded 100644 > --- a/nfs4.1/server41tests/st_reboot.py > +++ b/nfs4.1/server41tests/st_reboot.py > @@ -1,6 +1,6 @@ > from xdrdef.nfs4_const import * > from xdrdef.nfs4_type import * > -from environment import check, fail, create_file, open_file, create_confirm > +from .environment import check, fail, create_file, open_file, create_confirm > import sys > import os > import nfs4lib > diff --git a/nfs4.1/server41tests/st_reclaim_complete.py b/nfs4.1/server41tests/st_reclaim_complete.py > index 642ada2..ee51843 100644 > --- a/nfs4.1/server41tests/st_reclaim_complete.py > +++ b/nfs4.1/server41tests/st_reclaim_complete.py > @@ -1,6 +1,6 @@ > from st_create_session import create_session > from xdrdef.nfs4_const import * > -from environment import check, fail, open_file, create_file, create_confirm > +from .environment import check, fail, open_file, create_file, create_confirm > import nfs_ops > op = nfs_ops.NFS4ops() > import nfs4lib > diff --git a/nfs4.1/server41tests/st_rename.py b/nfs4.1/server41tests/st_rename.py > index c7c2c20..3042909 100644 > --- a/nfs4.1/server41tests/st_rename.py > +++ b/nfs4.1/server41tests/st_rename.py > @@ -1,5 +1,5 @@ > from xdrdef.nfs4_const import * > -from environment import check, fail, maketree, rename_obj, get_invalid_utf8strings, create_obj, create_confirm, link, use_obj, create_file > +from .environment import check, fail, maketree, rename_obj, get_invalid_utf8strings, create_obj, create_confirm, link, use_obj, create_file > import nfs_ops > op = nfs_ops.NFS4ops() > from xdrdef.nfs4_type import * > diff --git a/nfs4.1/server41tests/st_secinfo.py b/nfs4.1/server41tests/st_secinfo.py > index 008dc1e..d7f9557 100644 > --- a/nfs4.1/server41tests/st_secinfo.py > +++ b/nfs4.1/server41tests/st_secinfo.py > @@ -1,6 +1,6 @@ > from st_create_session import create_session > from xdrdef.nfs4_const import * > -from environment import check, fail, use_obj, bad_sessionid, create_file > +from .environment import check, fail, use_obj, bad_sessionid, create_file > from xdrdef.nfs4_type import channel_attrs4 > import nfs_ops > op = nfs_ops.NFS4ops() > diff --git a/nfs4.1/server41tests/st_secinfo_no_name.py b/nfs4.1/server41tests/st_secinfo_no_name.py > index 9cd6bd3..a044940 100644 > --- a/nfs4.1/server41tests/st_secinfo_no_name.py > +++ b/nfs4.1/server41tests/st_secinfo_no_name.py > @@ -1,6 +1,6 @@ > from st_create_session import create_session > from xdrdef.nfs4_const import * > -from environment import check, fail, bad_sessionid, create_file > +from .environment import check, fail, bad_sessionid, create_file > from xdrdef.nfs4_type import channel_attrs4 > import nfs_ops > op = nfs_ops.NFS4ops() > diff --git a/nfs4.1/server41tests/st_sequence.py b/nfs4.1/server41tests/st_sequence.py > index 25e5113..208160f 100644 > --- a/nfs4.1/server41tests/st_sequence.py > +++ b/nfs4.1/server41tests/st_sequence.py > @@ -1,6 +1,6 @@ > from st_create_session import create_session > from xdrdef.nfs4_const import * > -from environment import check, fail, bad_sessionid, create_file > +from .environment import check, fail, bad_sessionid, create_file > from xdrdef.nfs4_type import channel_attrs4 > import nfs_ops > op = nfs_ops.NFS4ops() > diff --git a/nfs4.1/server41tests/st_sparse.py b/nfs4.1/server41tests/st_sparse.py > index 6adf3d6..06be19e 100644 > --- a/nfs4.1/server41tests/st_sparse.py > +++ b/nfs4.1/server41tests/st_sparse.py > @@ -1,6 +1,6 @@ > from st_create_session import create_session > from xdrdef.nfs4_const import * > -from environment import check, fail, create_file > +from .environment import check, fail, create_file > import nfs_ops > op = nfs_ops.NFS4ops() > import nfs4lib > diff --git a/nfs4.1/server41tests/st_trunking.py b/nfs4.1/server41tests/st_trunking.py > index 684423d..72afa1f 100644 > --- a/nfs4.1/server41tests/st_trunking.py > +++ b/nfs4.1/server41tests/st_trunking.py > @@ -1,7 +1,7 @@ > from xdrdef.nfs4_const import * > import nfs_ops > op = nfs_ops.NFS4ops() > -from environment import check, fail > +from .environment import check, fail > from xdrdef.nfs4_type import * > import random > import nfs4lib > diff --git a/nfs4.1/server41tests/st_verify.py b/nfs4.1/server41tests/st_verify.py > index 7fb8a47..64d6156 100644 > --- a/nfs4.1/server41tests/st_verify.py > +++ b/nfs4.1/server41tests/st_verify.py > @@ -1,7 +1,7 @@ > from xdrdef.nfs4_const import * > import nfs_ops > op = nfs_ops.NFS4ops() > -from environment import check, get_invalid_clientid, makeStaleId, \ > +from .environment import check, get_invalid_clientid, makeStaleId, \ > do_getattrdict, use_obj > > def _try_mand(t, env, path): > diff --git a/nfs4.1/testclient.py b/nfs4.1/testclient.py > index 3665253..5d21eaa 100755 > --- a/nfs4.1/testclient.py > +++ b/nfs4.1/testclient.py > @@ -33,7 +33,7 @@ import testmod > from optparse import OptionParser, OptionGroup, IndentedHelpFormatter > import client41tests.environment as environment > import socket > -import rpc > +import rpc.rpc as rpc > import pickle > > def parse_useparams(str): > diff --git a/nfs4.1/testserver.py b/nfs4.1/testserver.py > index 7818a5d..2becc13 100755 > --- a/nfs4.1/testserver.py > +++ b/nfs4.1/testserver.py > @@ -37,7 +37,7 @@ import testmod > from optparse import OptionParser, OptionGroup, IndentedHelpFormatter > import server41tests.environment as environment > import socket > -import rpc > +import rpc.rpc as rpc > import pickle > > VERSION="0.2" # How/when update this? > diff --git a/rpc/rpc.py b/rpc/rpc.py > index af2b325..0c4a20a 100644 > --- a/rpc/rpc.py > +++ b/rpc/rpc.py > @@ -1,4 +1,5 @@ > from __future__ import with_statement > +from __future__ import absolute_import > > import socket, select > import struct > @@ -7,7 +8,7 @@ import logging > from collections import deque as Deque > from errno import EINPROGRESS, EWOULDBLOCK > > -import rpc_pack > +import rpc.rpc_pack as rpc_pack > from rpc_const import * > from rpc_type import * > > -- > 2.17.1 > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re:Re: [PATCH 19/24 v2] pynfs: python3 support plan: fix import fail on python3 2018-08-23 21:02 ` J. Bruce Fields @ 2018-08-24 3:01 ` 尹剑虹 2018-08-24 15:37 ` J. Bruce Fields 0 siblings, 1 reply; 4+ messages in thread From: 尹剑虹 @ 2018-08-24 3:01 UTC (permalink / raw) To: J. Bruce Fields; +Cc: jiyin, linux-nfs CkF0IDIwMTgtMDgtMjQgMDU6MDI6MjgsICJKLiBCcnVjZSBGaWVsZHMiIDxiZmllbGRzQHJlZGhh dC5jb20+IHdyb3RlOgo+VGhhbmtzIGZvciB0aGUgcGF0Y2hlcywgYW5kIGFwb2xvZ2llcyBmb3Ig dGhlIGRlbGF5IGhhbmRsaW5nIHRoZW0uICBJJ3ZlCj5hcHBsaWVkIGFsbCAyNCAoaW5jbHVkaW5n IHRoZSB2MiB2ZXJzaW9uIG9mIHRoaXMgcGF0Y2gpLCBhbmQgcHVzaGVkIG91dAo+dG8gbXkgcHVi bGljIGdpdCByZXBvLgo+Cj5Eb2VzIHRoaXMgY29tcGxldGUgdGhlIHB5dGhvbjMgd29yaywgb3Ig aXMgdGhlcmUgbW9yZSB0byBkbz8KTm8sIHNlZSAgW1BBVENIIDI0LzI0XSBweW5mczogcHl0aG9u MyBzdXBwb3J0IHBsYW46IGZpeCBhY2Nlc3MgY2xhc3MgdmFyIGluIGxpc3QgY29tcHJlaGVuc2lv bgogICAgU3RhdHVzOgogICAgJycnCiAgICBhbGwgcGF0Y2hlcyB3b3JrcyBmaW5lIG9uIHB5dGhv bi0yLjcKICAgIGFuZCBidWlsZCBzdWNjZXNzIG9uIHB5dGhvbi0zLjYKICAgIGJ1dCBiZWNhdXNl IHhkcmxpYiBpc3N1ZSBodHRwczovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTk1NDQKICAgIHB5bmZz IGhhcyBub3QgYmVlbiBhYmxlIHRvIHJ1biBvbiBweXRob24tMy42IG5vdwogICAgJycnCgpUb2Rv IGxpc3Q6CiAgaW52ZXN0aWdhdGUgcHl0aG9uIHhkcmxpYiBpc3N1ZSBvbiBweXRob24zIDogaHR0 cHM6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWU5NTQ0CiAgaW52ZXN0aWdhdGUgd2h5IChweXRob24t cGx5ID4zLjQpIGNhbid0IHdvcmsgd2l0aCBweW5mcyAob24gYm90aCBweXRob24yIGFuZCBweXRo b24zKQoKVGhhbmtzIEouIEJydWNlCgo+Cj4tLWIuCj4KPk9uIFR1ZSwgSnVsIDI0LCAyMDE4IGF0 IDA2OjMzOjE1UE0gKzA4MDAsIGppeWluQHJlZGhhdC5jb20gd3JvdGU6Cj4+IEZyb206ICJKaWFu aG9uZy5ZaW4iIDx5aW4tamlhbmhvbmdAMTYzLmNvbT4KPj4gCj4+IFNpZ25lZC1vZmYtYnk6IEpp YW5ob25nIFlpbiA8eWluLWppYW5ob25nQDE2My5jb20+Cj4+IC0tLQo+PiAgbmZzNC4wL3NlcnZl cnRlc3RzL2Vudmlyb25tZW50LnB5ICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMC9zZXJ2ZXJ0 ZXN0cy9zdF9hY2Nlc3MucHkgICAgICAgICAgICAgfCAyICstCj4+ICBuZnM0LjAvc2VydmVydGVz dHMvc3RfYWNsLnB5ICAgICAgICAgICAgICAgIHwgMiArLQo+PiAgbmZzNC4wL3NlcnZlcnRlc3Rz L3N0X2Nsb3NlLnB5ICAgICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMC9zZXJ2ZXJ0ZXN0cy9z dF9jb21taXQucHkgICAgICAgICAgICAgfCAyICstCj4+ICBuZnM0LjAvc2VydmVydGVzdHMvc3Rf Y29tcG91bmQucHkgICAgICAgICAgIHwgNSArKystLQo+PiAgbmZzNC4wL3NlcnZlcnRlc3RzL3N0 X2NyZWF0ZS5weSAgICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9k ZWxlZ2F0aW9uLnB5ICAgICAgICAgfCAyICstCj4+ICBuZnM0LjAvc2VydmVydGVzdHMvc3RfZnNs b2NhdGlvbnMucHkgICAgICAgIHwgMiArLQo+PiAgbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2dldGF0 dHIucHkgICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9nZXRmaC5w eSAgICAgICAgICAgICAgfCAyICstCj4+ICBuZnM0LjAvc2VydmVydGVzdHMvc3RfZ3NzLnB5ICAg ICAgICAgICAgICAgIHwgNCArKy0tCj4+ICBuZnM0LjAvc2VydmVydGVzdHMvc3RfbGluay5weSAg ICAgICAgICAgICAgIHwgMiArLQo+PiAgbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2xvY2sucHkgICAg ICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9sb2NrdC5weSAgICAg ICAgICAgICAgfCAyICstCj4+ICBuZnM0LjAvc2VydmVydGVzdHMvc3RfbG9ja3UucHkgICAgICAg ICAgICAgIHwgMiArLQo+PiAgbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2xvb2t1cC5weSAgICAgICAg ICAgICB8IDQgKystLQo+PiAgbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2xvb2t1cHAucHkgICAgICAg ICAgICB8IDIgKy0KPj4gIG5mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9udmVyaWZ5LnB5ICAgICAgICAg ICAgfCAyICstCj4+ICBuZnM0LjAvc2VydmVydGVzdHMvc3Rfb3Blbi5weSAgICAgICAgICAgICAg IHwgMiArLQo+PiAgbmZzNC4wL3NlcnZlcnRlc3RzL3N0X29wZW5jb25maXJtLnB5ICAgICAgICB8 IDIgKy0KPj4gIG5mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9vcGVuZG93bmdyYWRlLnB5ICAgICAgfCAy ICstCj4+ICBuZnM0LjAvc2VydmVydGVzdHMvc3RfcHV0ZmgucHkgICAgICAgICAgICAgIHwgMiAr LQo+PiAgbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3B1dHB1YmZoLnB5ICAgICAgICAgICB8IDIgKy0K Pj4gIG5mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9wdXRyb290ZmgucHkgICAgICAgICAgfCAyICstCj4+ ICBuZnM0LjAvc2VydmVydGVzdHMvc3RfcmVhZC5weSAgICAgICAgICAgICAgIHwgNCArKy0tCj4+ ICBuZnM0LjAvc2VydmVydGVzdHMvc3RfcmVhZGRpci5weSAgICAgICAgICAgIHwgMiArLQo+PiAg bmZzNC4wL3NlcnZlcnRlc3RzL3N0X3JlYWRsaW5rLnB5ICAgICAgICAgICB8IDIgKy0KPj4gIG5m czQuMC9zZXJ2ZXJ0ZXN0cy9zdF9yZWJvb3QucHkgICAgICAgICAgICAgfCAyICstCj4+ICBuZnM0 LjAvc2VydmVydGVzdHMvc3RfcmVsZWFzZWxvY2tvd25lci5weSAgIHwgMiArLQo+PiAgbmZzNC4w L3NlcnZlcnRlc3RzL3N0X3JlbW92ZS5weSAgICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMC9z ZXJ2ZXJ0ZXN0cy9zdF9yZW5hbWUucHkgICAgICAgICAgICAgfCAyICstCj4+ICBuZnM0LjAvc2Vy dmVydGVzdHMvc3RfcmVuZXcucHkgICAgICAgICAgICAgIHwgMiArLQo+PiAgbmZzNC4wL3NlcnZl cnRlc3RzL3N0X3JlcGxheS5weSAgICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMC9zZXJ2ZXJ0 ZXN0cy9zdF9yZXN0b3JlZmgucHkgICAgICAgICAgfCAyICstCj4+ICBuZnM0LjAvc2VydmVydGVz dHMvc3Rfc2F2ZWZoLnB5ICAgICAgICAgICAgIHwgMiArLQo+PiAgbmZzNC4wL3NlcnZlcnRlc3Rz L3N0X3NlY2luZm8ucHkgICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMC9zZXJ2ZXJ0ZXN0cy9z dF9zZXRhdHRyLnB5ICAgICAgICAgICAgfCAyICstCj4+ICBuZnM0LjAvc2VydmVydGVzdHMvc3Rf c2V0Y2xpZW50aWQucHkgICAgICAgIHwgMiArLQo+PiAgbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3Nl dGNsaWVudGlkY29uZmlybS5weSB8IDIgKy0KPj4gIG5mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9zcG9v Zi5weSAgICAgICAgICAgICAgfCAyICstCj4+ICBuZnM0LjAvc2VydmVydGVzdHMvc3RfdmVyaWZ5 LnB5ICAgICAgICAgICAgIHwgMiArLQo+PiAgbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3dyaXRlLnB5 ICAgICAgICAgICAgICB8IDQgKystLQo+PiAgbmZzNC4wL3Rlc3RzZXJ2ZXIucHkgICAgICAgICAg ICAgICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMS9jbGllbnQ0MXRlc3RzL2N0X3JlYm9vdC5w eSAgICAgICAgICAgfCAyICstCj4+ICBuZnM0LjEvY2xpZW50NDF0ZXN0cy9lbnZpcm9ubWVudC5w eSAgICAgICAgIHwgMiArLQo+PiAgbmZzNC4xL2RhdGFzZXJ2ZXIucHkgICAgICAgICAgICAgICAg ICAgICAgICB8IDIgKy0KPj4gIG5mczQuMS9uZnMzY2xpZW50LnB5ICAgICAgICAgICAgICAgICAg ICAgICAgfCAyICstCj4+ICBuZnM0LjEvbmZzNGNsaWVudC5weSAgICAgICAgICAgICAgICAgICAg ICAgIHwgMiArLQo+PiAgbmZzNC4xL25mczRsaWIucHkgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDIgKy0KPj4gIG5mczQuMS9uZnM0cHJveHkucHkgICAgICAgICAgICAgICAgICAgICAgICAg fCAyICstCj4+ICBuZnM0LjEvbmZzNHNlcnZlci5weSAgICAgICAgICAgICAgICAgICAgICAgIHwg MiArLQo+PiAgbmZzNC4xL25mczRzdGF0ZS5weSAgICAgICAgICAgICAgICAgICAgICAgICB8IDIg Ky0KPj4gIG5mczQuMS9zZXJ2ZXI0MXRlc3RzL2Vudmlyb25tZW50LnB5ICAgICAgICAgfCAyICst Cj4+ICBuZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9ibG9jay5weSAgICAgICAgICAgIHwgMiArLQo+ PiAgbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfY29tcG91bmQucHkgICAgICAgICB8IDIgKy0KPj4g IG5mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2NyZWF0ZV9zZXNzaW9uLnB5ICAgfCAyICstCj4+ICBu ZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9jdXJyZW50X3N0YXRlaWQucHkgIHwgNCArKy0tCj4+ICBu ZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9kZWJ1Zy5weSAgICAgICAgICAgIHwgMiArLQo+PiAgbmZz NC4xL3NlcnZlcjQxdGVzdHMvc3RfZGVsZWdhdGlvbi5weSAgICAgICB8IDIgKy0KPj4gIG5mczQu MS9zZXJ2ZXI0MXRlc3RzL3N0X2Rlc3Ryb3lfY2xpZW50aWQucHkgfCAyICstCj4+ICBuZnM0LjEv c2VydmVyNDF0ZXN0cy9zdF9kZXN0cm95X3Nlc3Npb24ucHkgIHwgNCArKy0tCj4+ICBuZnM0LjEv c2VydmVyNDF0ZXN0cy9zdF9leGNoYW5nZV9pZC5weSAgICAgIHwgMiArLQo+PiAgbmZzNC4xL3Nl cnZlcjQxdGVzdHMvc3RfZmxleC5weSAgICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMS9zZXJ2 ZXI0MXRlc3RzL3N0X2dldGRldmljZWxpc3QucHkgICAgfCAyICstCj4+ICBuZnM0LjEvc2VydmVy NDF0ZXN0cy9zdF9sb29rdXAucHkgICAgICAgICAgIHwgNCArKy0tCj4+ICBuZnM0LjEvc2VydmVy NDF0ZXN0cy9zdF9sb29rdXBwLnB5ICAgICAgICAgIHwgMiArLQo+PiAgbmZzNC4xL3NlcnZlcjQx dGVzdHMvc3Rfb3Blbi5weSAgICAgICAgICAgICB8IDQgKystLQo+PiAgbmZzNC4xL3NlcnZlcjQx dGVzdHMvc3RfcHV0ZmgucHkgICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMS9zZXJ2ZXI0MXRl c3RzL3N0X3JlYm9vdC5weSAgICAgICAgICAgfCAyICstCj4+ICBuZnM0LjEvc2VydmVyNDF0ZXN0 cy9zdF9yZWNsYWltX2NvbXBsZXRlLnB5IHwgMiArLQo+PiAgbmZzNC4xL3NlcnZlcjQxdGVzdHMv c3RfcmVuYW1lLnB5ICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0 X3NlY2luZm8ucHkgICAgICAgICAgfCAyICstCj4+ICBuZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9z ZWNpbmZvX25vX25hbWUucHkgIHwgMiArLQo+PiAgbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3Rfc2Vx dWVuY2UucHkgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X3NwYXJz ZS5weSAgICAgICAgICAgfCAyICstCj4+ICBuZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF90cnVua2lu Zy5weSAgICAgICAgIHwgMiArLQo+PiAgbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfdmVyaWZ5LnB5 ICAgICAgICAgICB8IDIgKy0KPj4gIG5mczQuMS90ZXN0Y2xpZW50LnB5ICAgICAgICAgICAgICAg ICAgICAgICAgfCAyICstCj4+ICBuZnM0LjEvdGVzdHNlcnZlci5weSAgICAgICAgICAgICAgICAg ICAgICAgIHwgMiArLQo+PiAgcnBjL3JwYy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDMgKystCj4+ICA4MSBmaWxlcyBjaGFuZ2VkLCA5MiBpbnNlcnRpb25zKCspLCA5MCBk ZWxldGlvbnMoLSkKPj4gCj4+IGRpZmYgLS1naXQgYS9uZnM0LjAvc2VydmVydGVzdHMvZW52aXJv bm1lbnQucHkgYi9uZnM0LjAvc2VydmVydGVzdHMvZW52aXJvbm1lbnQucHkKPj4gaW5kZXggYTVj ZmU2MC4uNGQ4NTgzNyAxMDA2NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL2Vudmlyb25t ZW50LnB5Cj4+ICsrKyBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9lbnZpcm9ubWVudC5weQo+PiBAQCAt MTQsNyArMTQsNyBAQCBmcm9tIG5mczRsaWIgaW1wb3J0IE5GUzRDbGllbnQsIGdldF9hdHRyYml0 bnVtX2RpY3QKPj4gIGZyb20geGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoKPj4gIGZyb20geGRy ZGVmLm5mczRfdHlwZSBpbXBvcnQgZnNpZDQsIG5mc2FjZTQsIGZzX2xvY2F0aW9uczQsIGZzX2xv Y2F0aW9uNCwgXAo+PiAgICAgICBzcGVjZGF0YTQsIG5mc3RpbWU0LCBzZXR0aW1lNCwgc3RhdGVp ZDQKPj4gLWltcG9ydCBycGMKPj4gK2ltcG9ydCBycGMucnBjIGFzIHJwYwo+PiAgaW1wb3J0IHN5 cwo+PiAgaW1wb3J0IG9zCj4+ICBpbXBvcnQgbmZzX29wcwo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4w L3NlcnZlcnRlc3RzL3N0X2FjY2Vzcy5weSBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9hY2Nlc3Mu cHkKPj4gaW5kZXggNThjNDJiYy4uMGExNjk4NiAxMDA2NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZl cnRlc3RzL3N0X2FjY2Vzcy5weQo+PiArKysgYi9uZnM0LjAvc2VydmVydGVzdHMvc3RfYWNjZXNz LnB5Cj4+IEBAIC0xLDUgKzEsNSBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25zdCBpbXBvcnQg Kgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2sKPj4gK2Zyb20gLmVudmlyb25tZW50 IGltcG9ydCBjaGVjawo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5ORlM0b3Bz KCkKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2FjbC5weSBiL25m czQuMC9zZXJ2ZXJ0ZXN0cy9zdF9hY2wucHkKPj4gaW5kZXggODg2NjdkMi4uMzE5NGViYyAxMDA2 NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2FjbC5weQo+PiArKysgYi9uZnM0LjAv c2VydmVydGVzdHMvc3RfYWNsLnB5Cj4+IEBAIC0xLDUgKzEsNSBAQAo+PiAgZnJvbSB4ZHJkZWYu bmZzNF9jb25zdCBpbXBvcnQgKgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2sKPj4g K2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjawo+PiAgZnJvbSB4ZHJkZWYubmZzNF90eXBl IGltcG9ydCBuZnNhY2U0Cj4+ICBmcm9tIG5mczRsaWIgaW1wb3J0IGxpc3QyYml0bWFwCj4+ICAK Pj4gZGlmZiAtLWdpdCBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9jbG9zZS5weSBiL25mczQuMC9z ZXJ2ZXJ0ZXN0cy9zdF9jbG9zZS5weQo+PiBpbmRleCA4OWNjYmJhLi5lMDE2NmY2IDEwMDY0NAo+ PiAtLS0gYS9uZnM0LjAvc2VydmVydGVzdHMvc3RfY2xvc2UucHkKPj4gKysrIGIvbmZzNC4wL3Nl cnZlcnRlc3RzL3N0X2Nsb3NlLnB5Cj4+IEBAIC0xLDUgKzEsNSBAQAo+PiAgZnJvbSB4ZHJkZWYu bmZzNF9jb25zdCBpbXBvcnQgKgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIG1h a2VTdGFsZUlkCj4+ICtmcm9tIC5lbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIG1ha2VTdGFsZUlk Cj4+ICAKPj4gIAo+PiAgZGVmIHRlc3RDbG9zZUNyZWF0ZSh0LCBlbnYpOgo+PiBkaWZmIC0tZ2l0 IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2NvbW1pdC5weSBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9z dF9jb21taXQucHkKPj4gaW5kZXggZWVjZjJjOC4uOTM0NTQyNCAxMDA2NDQKPj4gLS0tIGEvbmZz NC4wL3NlcnZlcnRlc3RzL3N0X2NvbW1pdC5weQo+PiArKysgYi9uZnM0LjAvc2VydmVydGVzdHMv c3RfY29tbWl0LnB5Cj4+IEBAIC0xLDUgKzEsNSBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25z dCBpbXBvcnQgKgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2sKPj4gK2Zyb20gLmVu dmlyb25tZW50IGltcG9ydCBjaGVjawo+PiAgCj4+ICBfdGV4dCA9ICJSYW5kb20gZGF0YSB0byB3 cml0ZSIKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2NvbXBvdW5k LnB5IGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2NvbXBvdW5kLnB5Cj4+IGluZGV4IDU5YTI3OWQu LjUyMjVmNjEgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9jb21wb3VuZC5w eQo+PiArKysgYi9uZnM0LjAvc2VydmVydGVzdHMvc3RfY29tcG91bmQucHkKPj4gQEAgLTEsOCAr MSw5IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+ICBmcm9tIHhkcmRl Zi5uZnM0X3R5cGUgaW1wb3J0IG5mc19hcmdvcDQKPj4gIGZyb20geGRyZGVmLm5mczRfcGFjayBp bXBvcnQgTkZTNFBhY2tlcgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGdldF9p bnZhbGlkX3V0ZjhzdHJpbmdzCj4+IC1mcm9tIHJwYyBpbXBvcnQgUlBDRXJyb3IKPj4gK2Zyb20g LmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZ2V0X2ludmFsaWRfdXRmOHN0cmluZ3MKPj4gK2Zy b20gcnBjLnJwYyBpbXBvcnQgUlBDRXJyb3IKPj4gKwo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9w ID0gbmZzX29wcy5ORlM0b3BzKCkKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3NlcnZlcnRl c3RzL3N0X2NyZWF0ZS5weSBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9jcmVhdGUucHkKPj4gaW5k ZXggYzcyNTZlNS4uYTQzMDAzYiAxMDA2NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0 X2NyZWF0ZS5weQo+PiArKysgYi9uZnM0LjAvc2VydmVydGVzdHMvc3RfY3JlYXRlLnB5Cj4+IEBA IC0xLDYgKzEsNiBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+PiAgZnJv bSB4ZHJkZWYubmZzNF90eXBlIGltcG9ydCBjcmVhdGV0eXBlNCwgc3BlY2RhdGE0Cj4+IC1mcm9t IGVudmlyb25tZW50IGltcG9ydCBjaGVjawo+PiArZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0IGNo ZWNrCj4+ICBpbXBvcnQgbmZzX29wcwo+PiAgb3AgPSBuZnNfb3BzLk5GUzRvcHMoKQo+PiAgCj4+ IGRpZmYgLS1naXQgYS9uZnM0LjAvc2VydmVydGVzdHMvc3RfZGVsZWdhdGlvbi5weSBiL25mczQu MC9zZXJ2ZXJ0ZXN0cy9zdF9kZWxlZ2F0aW9uLnB5Cj4+IGluZGV4IDkzN2Q5NWYuLjAyNDcxNTEg MTAwNjQ0Cj4+IC0tLSBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9kZWxlZ2F0aW9uLnB5Cj4+ICsr KyBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9kZWxlZ2F0aW9uLnB5Cj4+IEBAIC0xLDYgKzEsNiBA QAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+PiAgZnJvbSB4ZHJkZWYubmZz NF90eXBlIGltcG9ydCBuZnNfY2xpZW50X2lkNCwgY2xpZW50YWRkcjQsIGNiX2NsaWVudDQKPj4g LWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrCj4+ICtmcm9tIC5lbnZpcm9ubWVudCBpbXBv cnQgY2hlY2sKPj4gIGltcG9ydCBvcwo+PiAgaW1wb3J0IHRocmVhZGluZwo+PiAgaW1wb3J0IHRp bWUKPj4gZGlmZiAtLWdpdCBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9mc2xvY2F0aW9ucy5weSBi L25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9mc2xvY2F0aW9ucy5weQo+PiBpbmRleCA0NDJkNWEyLi4w Mzg3ODQzIDEwMDY0NAo+PiAtLS0gYS9uZnM0LjAvc2VydmVydGVzdHMvc3RfZnNsb2NhdGlvbnMu cHkKPj4gKysrIGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2ZzbG9jYXRpb25zLnB5Cj4+IEBAIC0x LDYgKzEsNiBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+PiAgZnJvbSBu ZnM0bGliIGltcG9ydCBsaXN0MmJpdG1hcAo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hl Y2sKPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjawo+PiAgaW1wb3J0IG5mc19vcHMK Pj4gIG9wID0gbmZzX29wcy5ORlM0b3BzKCkKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3Nl cnZlcnRlc3RzL3N0X2dldGF0dHIucHkgYi9uZnM0LjAvc2VydmVydGVzdHMvc3RfZ2V0YXR0ci5w eQo+PiBpbmRleCA2NWE1NzAxLi4yOTJmY2QyIDEwMDY0NAo+PiAtLS0gYS9uZnM0LjAvc2VydmVy dGVzdHMvc3RfZ2V0YXR0ci5weQo+PiArKysgYi9uZnM0LjAvc2VydmVydGVzdHMvc3RfZ2V0YXR0 ci5weQo+PiBAQCAtMSw1ICsxLDUgQEAKPj4gIGZyb20geGRyZGVmLm5mczRfY29uc3QgaW1wb3J0 ICoKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrCj4+ICtmcm9tIC5lbnZpcm9ubWVu dCBpbXBvcnQgY2hlY2sKPj4gIGZyb20gbmZzNGxpYiBpbXBvcnQgZ2V0X2F0dHJfbmFtZQo+PiAg aW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5ORlM0b3BzKCkKPj4gZGlmZiAtLWdpdCBh L25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9nZXRmaC5weSBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9n ZXRmaC5weQo+PiBpbmRleCA2ZmQyMmU3Li40YWJlMzIwIDEwMDY0NAo+PiAtLS0gYS9uZnM0LjAv c2VydmVydGVzdHMvc3RfZ2V0ZmgucHkKPj4gKysrIGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2dl dGZoLnB5Cj4+IEBAIC0xLDUgKzEsNSBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25zdCBpbXBv cnQgKgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2sKPj4gK2Zyb20gLmVudmlyb25t ZW50IGltcG9ydCBjaGVjawo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5ORlM0 b3BzKCkKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2dzcy5weSBi L25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9nc3MucHkKPj4gaW5kZXggNDE0ODgzZS4uZTEwZTg0OSAx MDA2NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2dzcy5weQo+PiArKysgYi9uZnM0 LjAvc2VydmVydGVzdHMvc3RfZ3NzLnB5Cj4+IEBAIC0xLDcgKzEsNyBAQAo+PiAgZnJvbSB4ZHJk ZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2sK Pj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjawo+PiAgZnJvbSBzb2NrZXQgaW1wb3J0 IHRpbWVvdXQKPj4gLWltcG9ydCBycGMKPj4gK2ltcG9ydCBycGMucnBjIGFzIHJwYwo+PiAgaW1w b3J0IHJwYy5ycGNzZWMuZ3NzX2NvbnN0IGFzIGdzcwo+PiAgZnJvbSBycGMucnBjc2VjLmdzc190 eXBlIGltcG9ydCBycGNfZ3NzX2NyZWRfdAo+PiAgaW1wb3J0IG5mc19vcHMKPj4gZGlmZiAtLWdp dCBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9saW5rLnB5IGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0 X2xpbmsucHkKPj4gaW5kZXggZmVkZGYxZS4uMGVmNTAwOSAxMDA2NDQKPj4gLS0tIGEvbmZzNC4w L3NlcnZlcnRlc3RzL3N0X2xpbmsucHkKPj4gKysrIGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2xp bmsucHkKPj4gQEAgLTEsNSArMSw1IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9y dCAqCj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZ2V0X2ludmFsaWRfdXRmOHN0 cmluZ3MKPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZ2V0X2ludmFsaWRfdXRm OHN0cmluZ3MKPj4gIGltcG9ydCBuZnNfb3BzCj4+ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+ ICAKPj4gZGlmZiAtLWdpdCBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9sb2NrLnB5IGIvbmZzNC4w L3NlcnZlcnRlc3RzL3N0X2xvY2sucHkKPj4gaW5kZXggMDYwMjM2YS4uYjgxNWE1NCAxMDA2NDQK Pj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2xvY2sucHkKPj4gKysrIGIvbmZzNC4wL3Nl cnZlcnRlc3RzL3N0X2xvY2sucHkKPj4gQEAgLTEsNiArMSw2IEBACj4+ICBmcm9tIHhkcmRlZi5u ZnM0X2NvbnN0IGltcG9ydCAqCj4+ICBmcm9tIHhkcmRlZi5uZnM0X3R5cGUgaW1wb3J0IHN0YXRl aWQ0Cj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZ2V0X2ludmFsaWRfY2xpZW50 aWQsIG1ha2VTdGFsZUlkLCBtYWtlQmFkSURnYW5lc2hhCj4+ICtmcm9tIC5lbnZpcm9ubWVudCBp bXBvcnQgY2hlY2ssIGdldF9pbnZhbGlkX2NsaWVudGlkLCBtYWtlU3RhbGVJZCwgbWFrZUJhZElE Z2FuZXNoYQo+PiAgaW1wb3J0IHRpbWUKPj4gIGltcG9ydCBuZnNfb3BzCj4+ICBvcCA9IG5mc19v cHMuTkZTNG9wcygpCj4+IGRpZmYgLS1naXQgYS9uZnM0LjAvc2VydmVydGVzdHMvc3RfbG9ja3Qu cHkgYi9uZnM0LjAvc2VydmVydGVzdHMvc3RfbG9ja3QucHkKPj4gaW5kZXggN2Y4YzVlMS4uZWUw YjgyNSAxMDA2NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2xvY2t0LnB5Cj4+ICsr KyBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9sb2NrdC5weQo+PiBAQCAtMSw1ICsxLDUgQEAKPj4g IGZyb20geGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1w b3J0IGNoZWNrLCBnZXRfaW52YWxpZF9jbGllbnRpZAo+PiArZnJvbSAuZW52aXJvbm1lbnQgaW1w b3J0IGNoZWNrLCBnZXRfaW52YWxpZF9jbGllbnRpZAo+PiAgCj4+ICBkZWYgdGVzdFVubG9ja2Vk RmlsZSh0LCBlbnYpOgo+PiAgICAgICIiIkxPQ0tUIG9uIGEgcmVndWxhciB1bmxvY2tlZCBmaWxl Cj4+IGRpZmYgLS1naXQgYS9uZnM0LjAvc2VydmVydGVzdHMvc3RfbG9ja3UucHkgYi9uZnM0LjAv c2VydmVydGVzdHMvc3RfbG9ja3UucHkKPj4gaW5kZXggNzRiNDY0YS4uMzUyNGE2MSAxMDA2NDQK Pj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2xvY2t1LnB5Cj4+ICsrKyBiL25mczQuMC9z ZXJ2ZXJ0ZXN0cy9zdF9sb2NrdS5weQo+PiBAQCAtMSw2ICsxLDYgQEAKPj4gIGZyb20geGRyZGVm Lm5mczRfY29uc3QgaW1wb3J0ICoKPj4gIGZyb20geGRyZGVmLm5mczRfdHlwZSBpbXBvcnQgc3Rh dGVpZDQKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBtYWtlU3RhbGVJZAo+PiAr ZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBtYWtlU3RhbGVJZAo+PiAgCj4+ICBkZWYg dGVzdEZpbGUodCwgZW52KToKPj4gICAgICAiIiJMT0NLVSBhIHJlZ3VsYXIgZmlsZQo+PiBkaWZm IC0tZ2l0IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2xvb2t1cC5weSBiL25mczQuMC9zZXJ2ZXJ0 ZXN0cy9zdF9sb29rdXAucHkKPj4gaW5kZXggZWVkNzEwMC4uOWJmYWZmZSAxMDA2NDQKPj4gLS0t IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2xvb2t1cC5weQo+PiArKysgYi9uZnM0LjAvc2VydmVy dGVzdHMvc3RfbG9va3VwLnB5Cj4+IEBAIC0xLDYgKzEsNiBAQAo+PiAgZnJvbSB4ZHJkZWYubmZz NF9jb25zdCBpbXBvcnQgKgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGdldF9p bnZhbGlkX3V0ZjhzdHJpbmdzCj4+IC1pbXBvcnQgcnBjCj4+ICtmcm9tIC5lbnZpcm9ubWVudCBp bXBvcnQgY2hlY2ssIGdldF9pbnZhbGlkX3V0ZjhzdHJpbmdzCj4+ICtpbXBvcnQgcnBjLnJwYyBh cyBycGMKPj4gIGltcG9ydCBuZnNfb3BzCj4+ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+ICAK Pj4gZGlmZiAtLWdpdCBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9sb29rdXBwLnB5IGIvbmZzNC4w L3NlcnZlcnRlc3RzL3N0X2xvb2t1cHAucHkKPj4gaW5kZXggMTNjMTU1My4uN2MzODYwMCAxMDA2 NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X2xvb2t1cHAucHkKPj4gKysrIGIvbmZz NC4wL3NlcnZlcnRlc3RzL3N0X2xvb2t1cHAucHkKPj4gQEAgLTEsNSArMSw1IEBACj4+ICBmcm9t IHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBj aGVjaywgZ2V0X2ludmFsaWRfdXRmOHN0cmluZ3MKPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9y dCBjaGVjaywgZ2V0X2ludmFsaWRfdXRmOHN0cmluZ3MKPj4gIGltcG9ydCBuZnNfb3BzCj4+ICBv cCA9IG5mc19vcHMuTkZTNG9wcygpCj4+ICAKPj4gZGlmZiAtLWdpdCBhL25mczQuMC9zZXJ2ZXJ0 ZXN0cy9zdF9udmVyaWZ5LnB5IGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X252ZXJpZnkucHkKPj4g aW5kZXggNDE4NTk3MC4uZTJhODEzMCAxMDA2NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3Rz L3N0X252ZXJpZnkucHkKPj4gKysrIGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X252ZXJpZnkucHkK Pj4gQEAgLTEsNSArMSw1IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+ IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZ2V0X2ludmFsaWRfY2xpZW50aWQsIG1h a2VTdGFsZUlkCj4+ICtmcm9tIC5lbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGdldF9pbnZhbGlk X2NsaWVudGlkLCBtYWtlU3RhbGVJZAo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29w cy5ORlM0b3BzKCkKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X29w ZW4ucHkgYi9uZnM0LjAvc2VydmVydGVzdHMvc3Rfb3Blbi5weQo+PiBpbmRleCBiNGFmODFjLi45 ZjVkMWFhIDEwMDY0NAo+PiAtLS0gYS9uZnM0LjAvc2VydmVydGVzdHMvc3Rfb3Blbi5weQo+PiAr KysgYi9uZnM0LjAvc2VydmVydGVzdHMvc3Rfb3Blbi5weQo+PiBAQCAtMSw1ICsxLDUgQEAKPj4g IGZyb20geGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1w b3J0IGNoZWNrLCBjaGVja2RpY3QsIGdldF9pbnZhbGlkX3V0ZjhzdHJpbmdzCj4+ICtmcm9tIC5l bnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGNoZWNrZGljdCwgZ2V0X2ludmFsaWRfdXRmOHN0cmlu Z3MKPj4gIGZyb20gbmZzNGxpYiBpbXBvcnQgZ2V0X2JpdG51bWF0dHJfZGljdAo+PiAgCj4+ICAj IEFueSB0ZXN0IHRoYXQgdXNlcyBjcmVhdGVfY29uZmlybSBzaG91bGQgZGVwZW5kIG9uIHRoaXMg dGVzdAo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X29wZW5jb25maXJtLnB5 IGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X29wZW5jb25maXJtLnB5Cj4+IGluZGV4IDNiNWI5OGYu LjYzMTg1NWEgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9vcGVuY29uZmly bS5weQo+PiArKysgYi9uZnM0LjAvc2VydmVydGVzdHMvc3Rfb3BlbmNvbmZpcm0ucHkKPj4gQEAg LTEsNiArMSw2IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+ICBmcm9t IHhkcmRlZi5uZnM0X3R5cGUgaW1wb3J0IHN0YXRlaWQ0Cj4+IC1mcm9tIGVudmlyb25tZW50IGlt cG9ydCBjaGVjaywgbWFrZVN0YWxlSWQKPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVj aywgbWFrZVN0YWxlSWQKPj4gIGltcG9ydCBuZnNfb3BzCj4+ICBvcCA9IG5mc19vcHMuTkZTNG9w cygpCj4+ICAKPj4gZGlmZiAtLWdpdCBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9vcGVuZG93bmdy YWRlLnB5IGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X29wZW5kb3duZ3JhZGUucHkKPj4gaW5kZXgg MjEzYjJkZC4uMjE4MDIyMyAxMDA2NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X29w ZW5kb3duZ3JhZGUucHkKPj4gKysrIGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X29wZW5kb3duZ3Jh ZGUucHkKPj4gQEAgLTEsNSArMSw1IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9y dCAqCj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjaywgbWFrZVN0YWxlSWQKPj4gK2Zy b20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgbWFrZVN0YWxlSWQKPj4gIAo+PiAgZGVmIHRl c3RSZWd1bGFyT3Blbih0LCBlbnYpOgo+PiAgICAgICIiIk9QRU5ET1dOR1JBREUgb24gcmVndWxh ciBmaWxlCj4+IGRpZmYgLS1naXQgYS9uZnM0LjAvc2VydmVydGVzdHMvc3RfcHV0ZmgucHkgYi9u ZnM0LjAvc2VydmVydGVzdHMvc3RfcHV0ZmgucHkKPj4gaW5kZXggYmE5Y2UyNy4uNjU2MGYyZSAx MDA2NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3B1dGZoLnB5Cj4+ICsrKyBiL25m czQuMC9zZXJ2ZXJ0ZXN0cy9zdF9wdXRmaC5weQo+PiBAQCAtMSw1ICsxLDUgQEAKPj4gIGZyb20g eGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNo ZWNrCj4+ICtmcm9tIC5lbnZpcm9ubWVudCBpbXBvcnQgY2hlY2sKPj4gIGltcG9ydCBuZnNfb3Bz Cj4+ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+ICAKPj4gZGlmZiAtLWdpdCBhL25mczQuMC9z ZXJ2ZXJ0ZXN0cy9zdF9wdXRwdWJmaC5weSBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9wdXRwdWJm aC5weQo+PiBpbmRleCAwMTQ5YjlkLi4xNTE0ZmRlIDEwMDY0NAo+PiAtLS0gYS9uZnM0LjAvc2Vy dmVydGVzdHMvc3RfcHV0cHViZmgucHkKPj4gKysrIGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3B1 dHB1YmZoLnB5Cj4+IEBAIC0xLDUgKzEsNSBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25zdCBp bXBvcnQgKgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2sKPj4gK2Zyb20gLmVudmly b25tZW50IGltcG9ydCBjaGVjawo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5O RlM0b3BzKCkKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3B1dHJv b3RmaC5weSBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9wdXRyb290ZmgucHkKPj4gaW5kZXggZGQ0 N2Y1OC4uYjEzYzY5NCAxMDA2NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3B1dHJv b3RmaC5weQo+PiArKysgYi9uZnM0LjAvc2VydmVydGVzdHMvc3RfcHV0cm9vdGZoLnB5Cj4+IEBA IC0xLDUgKzEsNSBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+PiAtZnJv bSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2sKPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBj aGVjawo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5ORlM0b3BzKCkKPj4gIAo+ PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3JlYWQucHkgYi9uZnM0LjAvc2Vy dmVydGVzdHMvc3RfcmVhZC5weQo+PiBpbmRleCAxNWY4Nzk1Li4xZWI5OTZjIDEwMDY0NAo+PiAt LS0gYS9uZnM0LjAvc2VydmVydGVzdHMvc3RfcmVhZC5weQo+PiArKysgYi9uZnM0LjAvc2VydmVy dGVzdHMvc3RfcmVhZC5weQo+PiBAQCAtMSw2ICsxLDYgQEAKPj4gIGZyb20geGRyZGVmLm5mczRf Y29uc3QgaW1wb3J0ICoKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBtYWtlQmFk SUQsIG1ha2VCYWRJRGdhbmVzaGEsIG1ha2VTdGFsZUlkCj4+IC1pbXBvcnQgcnBjCj4+ICtmcm9t IC5lbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIG1ha2VCYWRJRCwgbWFrZUJhZElEZ2FuZXNoYSwg bWFrZVN0YWxlSWQKPj4gK2ltcG9ydCBycGMucnBjIGFzIHJwYwo+PiAgCj4+ICBkZWYgX2NvbXBh cmUodCwgcmVzLCBleHBlY3QsIGVvZj1UcnVlKToKPj4gICAgICBkZWYgc2hvcnRlbihzdHIpOgo+ PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3JlYWRkaXIucHkgYi9uZnM0LjAv c2VydmVydGVzdHMvc3RfcmVhZGRpci5weQo+PiBpbmRleCA3OThiMmQwLi5iOWE4YTRkIDEwMDY0 NAo+PiAtLS0gYS9uZnM0LjAvc2VydmVydGVzdHMvc3RfcmVhZGRpci5weQo+PiArKysgYi9uZnM0 LjAvc2VydmVydGVzdHMvc3RfcmVhZGRpci5weQo+PiBAQCAtMSw2ICsxLDYgQEAKPj4gIGZyb20g eGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoKPj4gIGZyb20gbmZzNGxpYiBpbXBvcnQgZ2V0X2F0 dHJfbmFtZQo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2sKPj4gK2Zyb20gLmVudmly b25tZW50IGltcG9ydCBjaGVjawo+PiAgCj4+ICBkZWYgX2NvbXBhcmUodCwgZW50cmllcywgZXhw ZWN0LCBhdHRybGlzdD1bXSk6Cj4+ICAgICAgbmFtZXMgPSBbZS5uYW1lIGZvciBlIGluIGVudHJp ZXNdCj4+IGRpZmYgLS1naXQgYS9uZnM0LjAvc2VydmVydGVzdHMvc3RfcmVhZGxpbmsucHkgYi9u ZnM0LjAvc2VydmVydGVzdHMvc3RfcmVhZGxpbmsucHkKPj4gaW5kZXggOGI5MDVkMC4uZDhlM2Vh MSAxMDA2NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3JlYWRsaW5rLnB5Cj4+ICsr KyBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9yZWFkbGluay5weQo+PiBAQCAtMSw1ICsxLDUgQEAK Pj4gIGZyb20geGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoKPj4gLWZyb20gZW52aXJvbm1lbnQg aW1wb3J0IGNoZWNrCj4+ICtmcm9tIC5lbnZpcm9ubWVudCBpbXBvcnQgY2hlY2sKPj4gIGltcG9y dCBuZnNfb3BzCj4+ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+ICAKPj4gZGlmZiAtLWdpdCBh L25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9yZWJvb3QucHkgYi9uZnM0LjAvc2VydmVydGVzdHMvc3Rf cmVib290LnB5Cj4+IGluZGV4IDE2Y2IwMDguLjJhMDNlNjAgMTAwNjQ0Cj4+IC0tLSBhL25mczQu MC9zZXJ2ZXJ0ZXN0cy9zdF9yZWJvb3QucHkKPj4gKysrIGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0 X3JlYm9vdC5weQo+PiBAQCAtMSw1ICsxLDUgQEAKPj4gIGZyb20geGRyZGVmLm5mczRfY29uc3Qg aW1wb3J0ICoKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrCj4+ICtmcm9tIC5lbnZp cm9ubWVudCBpbXBvcnQgY2hlY2sKPj4gIGltcG9ydCBvcwo+PiAgaW1wb3J0IG5mc19vcHMKPj4g IG9wID0gbmZzX29wcy5ORlM0b3BzKCkKPj4gZGlmZiAtLWdpdCBhL25mczQuMC9zZXJ2ZXJ0ZXN0 cy9zdF9yZWxlYXNlbG9ja293bmVyLnB5IGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3JlbGVhc2Vs b2Nrb3duZXIucHkKPj4gaW5kZXggMTdkZmUxYS4uODAyMWRkZiAxMDA2NDQKPj4gLS0tIGEvbmZz NC4wL3NlcnZlcnRlc3RzL3N0X3JlbGVhc2Vsb2Nrb3duZXIucHkKPj4gKysrIGIvbmZzNC4wL3Nl cnZlcnRlc3RzL3N0X3JlbGVhc2Vsb2Nrb3duZXIucHkKPj4gQEAgLTEsNiArMSw2IEBACj4+ICBm cm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+ICBmcm9tIHhkcmRlZi5uZnM0X3R5cGUg aW1wb3J0IGxvY2tfb3duZXI0Cj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjawo+PiAr ZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrCj4+ICBpbXBvcnQgbmZzX29wcwo+PiAgb3Ag PSBuZnNfb3BzLk5GUzRvcHMoKQo+PiAgCj4+IGRpZmYgLS1naXQgYS9uZnM0LjAvc2VydmVydGVz dHMvc3RfcmVtb3ZlLnB5IGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3JlbW92ZS5weQo+PiBpbmRl eCA1ZjUzMWY0Li5hOWMzOTdmIDEwMDY0NAo+PiAtLS0gYS9uZnM0LjAvc2VydmVydGVzdHMvc3Rf cmVtb3ZlLnB5Cj4+ICsrKyBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9yZW1vdmUucHkKPj4gQEAg LTEsNSArMSw1IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+IC1mcm9t IGVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZ2V0X2ludmFsaWRfdXRmOHN0cmluZ3MKPj4gK2Zy b20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZ2V0X2ludmFsaWRfdXRmOHN0cmluZ3MKPj4g IGltcG9ydCBuZnNfb3BzCj4+ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+ICAKPj4gZGlmZiAt LWdpdCBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9yZW5hbWUucHkgYi9uZnM0LjAvc2VydmVydGVz dHMvc3RfcmVuYW1lLnB5Cj4+IGluZGV4IDhmNDE3NjMuLjNhN2ZhMWUgMTAwNjQ0Cj4+IC0tLSBh L25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9yZW5hbWUucHkKPj4gKysrIGIvbmZzNC4wL3NlcnZlcnRl c3RzL3N0X3JlbmFtZS5weQo+PiBAQCAtMSw1ICsxLDUgQEAKPj4gIGZyb20geGRyZGVmLm5mczRf Y29uc3QgaW1wb3J0ICoKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBnZXRfaW52 YWxpZF91dGY4c3RyaW5ncwo+PiArZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBnZXRf aW52YWxpZF91dGY4c3RyaW5ncwo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5O RlM0b3BzKCkKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3JlbmV3 LnB5IGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3JlbmV3LnB5Cj4+IGluZGV4IDNhOWY3NzQuLjY3 OTM2M2MgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9yZW5ldy5weQo+PiAr KysgYi9uZnM0LjAvc2VydmVydGVzdHMvc3RfcmVuZXcucHkKPj4gQEAgLTEsNSArMSw1IEBACj4+ ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+IC1mcm9tIGVudmlyb25tZW50IGlt cG9ydCBjaGVjawo+PiArZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrCj4+ICBpbXBvcnQg bmZzX29wcwo+PiAgb3AgPSBuZnNfb3BzLk5GUzRvcHMoKQo+PiAgCj4+IGRpZmYgLS1naXQgYS9u ZnM0LjAvc2VydmVydGVzdHMvc3RfcmVwbGF5LnB5IGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3Jl cGxheS5weQo+PiBpbmRleCA4MWI4MzMyLi4zZWJhNTYzIDEwMDY0NAo+PiAtLS0gYS9uZnM0LjAv c2VydmVydGVzdHMvc3RfcmVwbGF5LnB5Cj4+ICsrKyBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9y ZXBsYXkucHkKPj4gQEAgLTEsNSArMSw1IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGlt cG9ydCAqCj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjawo+PiArZnJvbSAuZW52aXJv bm1lbnQgaW1wb3J0IGNoZWNrCj4+ICBmcm9tIHhkcmRlZi5uZnM0X3R5cGUgaW1wb3J0ICoKPj4g IGltcG9ydCBuZnNfb3BzCj4+ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+IGRpZmYgLS1naXQg YS9uZnM0LjAvc2VydmVydGVzdHMvc3RfcmVzdG9yZWZoLnB5IGIvbmZzNC4wL3NlcnZlcnRlc3Rz L3N0X3Jlc3RvcmVmaC5weQo+PiBpbmRleCA4MzkwNzlmLi5lNWRiMDlhIDEwMDY0NAo+PiAtLS0g YS9uZnM0LjAvc2VydmVydGVzdHMvc3RfcmVzdG9yZWZoLnB5Cj4+ICsrKyBiL25mczQuMC9zZXJ2 ZXJ0ZXN0cy9zdF9yZXN0b3JlZmgucHkKPj4gQEAgLTEsNSArMSw1IEBACj4+ICBmcm9tIHhkcmRl Zi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjawo+ PiArZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrCj4+ICBpbXBvcnQgbmZzX29wcwo+PiAg b3AgPSBuZnNfb3BzLk5GUzRvcHMoKQo+PiAgCj4+IGRpZmYgLS1naXQgYS9uZnM0LjAvc2VydmVy dGVzdHMvc3Rfc2F2ZWZoLnB5IGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3NhdmVmaC5weQo+PiBp bmRleCBlZWY4MTBjLi5jNTc0NzE4IDEwMDY0NAo+PiAtLS0gYS9uZnM0LjAvc2VydmVydGVzdHMv c3Rfc2F2ZWZoLnB5Cj4+ICsrKyBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9zYXZlZmgucHkKPj4g QEAgLTEsNSArMSw1IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+IC1m cm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjawo+PiArZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0 IGNoZWNrCj4+ICBpbXBvcnQgbmZzX29wcwo+PiAgb3AgPSBuZnNfb3BzLk5GUzRvcHMoKQo+PiAg Cj4+IGRpZmYgLS1naXQgYS9uZnM0LjAvc2VydmVydGVzdHMvc3Rfc2VjaW5mby5weSBiL25mczQu MC9zZXJ2ZXJ0ZXN0cy9zdF9zZWNpbmZvLnB5Cj4+IGluZGV4IGViODc0YjEuLjZjODI4YmYgMTAw NjQ0Cj4+IC0tLSBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9zZWNpbmZvLnB5Cj4+ICsrKyBiL25m czQuMC9zZXJ2ZXJ0ZXN0cy9zdF9zZWNpbmZvLnB5Cj4+IEBAIC0xLDUgKzEsNSBAQAo+PiAgZnJv bSB4ZHJkZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQg Y2hlY2ssIGdldF9pbnZhbGlkX3V0ZjhzdHJpbmdzCj4+ICtmcm9tIC5lbnZpcm9ubWVudCBpbXBv cnQgY2hlY2ssIGdldF9pbnZhbGlkX3V0ZjhzdHJpbmdzCj4+ICBpbXBvcnQgbmZzX29wcwo+PiAg b3AgPSBuZnNfb3BzLk5GUzRvcHMoKQo+PiAgCj4+IGRpZmYgLS1naXQgYS9uZnM0LjAvc2VydmVy dGVzdHMvc3Rfc2V0YXR0ci5weSBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9zZXRhdHRyLnB5Cj4+ IGluZGV4IGFhNzEyM2IuLmVkZjhjYWEgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMC9zZXJ2ZXJ0ZXN0 cy9zdF9zZXRhdHRyLnB5Cj4+ICsrKyBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9zZXRhdHRyLnB5 Cj4+IEBAIC0xLDUgKzEsNSBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+ PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGdldF9pbnZhbGlkX3V0ZjhzdHJpbmdz Cj4+ICtmcm9tIC5lbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGdldF9pbnZhbGlkX3V0ZjhzdHJp bmdzCj4+ICBmcm9tIG5mczRsaWIgaW1wb3J0IGJpdG1hcDJsaXN0LCBkaWN0MmZhdHRyCj4+ICBm cm9tIHhkcmRlZi5uZnM0X3R5cGUgaW1wb3J0IG5mc3RpbWU0LCBzZXR0aW1lNAo+PiAgaW1wb3J0 IG5mc19vcHMKPj4gZGlmZiAtLWdpdCBhL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9zZXRjbGllbnRp ZC5weSBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9zZXRjbGllbnRpZC5weQo+PiBpbmRleCA3ZjQy ZDJkLi42YWQ5MWY4IDEwMDY0NAo+PiAtLS0gYS9uZnM0LjAvc2VydmVydGVzdHMvc3Rfc2V0Y2xp ZW50aWQucHkKPj4gKysrIGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3NldGNsaWVudGlkLnB5Cj4+ IEBAIC0xLDUgKzEsNSBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+PiAt ZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2sKPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9y dCBjaGVjawo+PiAgaW1wb3J0IG9zCj4+ICBpbXBvcnQgc3RydWN0LCB0aW1lCj4+ICBpbXBvcnQg bmZzX29wcwo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3NldGNsaWVudGlk Y29uZmlybS5weSBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF9zZXRjbGllbnRpZGNvbmZpcm0ucHkK Pj4gaW5kZXggNTFmNzk4MS4uNGVjZjYzNSAxMDA2NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRl c3RzL3N0X3NldGNsaWVudGlkY29uZmlybS5weQo+PiArKysgYi9uZnM0LjAvc2VydmVydGVzdHMv c3Rfc2V0Y2xpZW50aWRjb25maXJtLnB5Cj4+IEBAIC0xLDUgKzEsNSBAQAo+PiAgZnJvbSB4ZHJk ZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2sK Pj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjawo+PiAgaW1wb3J0IG9zCj4+ICBpbXBv cnQgbmZzX29wcwo+PiAgb3AgPSBuZnNfb3BzLk5GUzRvcHMoKQo+PiBkaWZmIC0tZ2l0IGEvbmZz NC4wL3NlcnZlcnRlc3RzL3N0X3Nwb29mLnB5IGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3Nwb29m LnB5Cj4+IGluZGV4IDc3Nzk4NWUuLjY4Nzc4ZDQgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMC9zZXJ2 ZXJ0ZXN0cy9zdF9zcG9vZi5weQo+PiArKysgYi9uZnM0LjAvc2VydmVydGVzdHMvc3Rfc3Bvb2Yu cHkKPj4gQEAgLTEsNSArMSw1IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAq Cj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjawo+PiArZnJvbSAuZW52aXJvbm1lbnQg aW1wb3J0IGNoZWNrCj4+ICAKPj4gIGRlZiB0ZXN0U3Bvb2ZVc2VyKHQsIGVudik6Cj4+ICAgICAg IiIiU1BPT0YgdGVzdCwgdHJ5IHRvIHNwb29mIHVzZXIKPj4gZGlmZiAtLWdpdCBhL25mczQuMC9z ZXJ2ZXJ0ZXN0cy9zdF92ZXJpZnkucHkgYi9uZnM0LjAvc2VydmVydGVzdHMvc3RfdmVyaWZ5LnB5 Cj4+IGluZGV4IDIxOWQwYTAuLjE2ZDdjMGMgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMC9zZXJ2ZXJ0 ZXN0cy9zdF92ZXJpZnkucHkKPj4gKysrIGIvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3ZlcmlmeS5w eQo+PiBAQCAtMSw1ICsxLDUgQEAKPj4gIGZyb20geGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoK Pj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBnZXRfaW52YWxpZF9jbGllbnRpZCwg bWFrZVN0YWxlSWQKPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZ2V0X2ludmFs aWRfY2xpZW50aWQsIG1ha2VTdGFsZUlkCj4+ICBpbXBvcnQgbmZzX29wcwo+PiAgb3AgPSBuZnNf b3BzLk5GUzRvcHMoKQo+PiAgCj4+IGRpZmYgLS1naXQgYS9uZnM0LjAvc2VydmVydGVzdHMvc3Rf d3JpdGUucHkgYi9uZnM0LjAvc2VydmVydGVzdHMvc3Rfd3JpdGUucHkKPj4gaW5kZXggNWI0ODE1 My4uNzBmZjQ5ZSAxMDA2NDQKPj4gLS0tIGEvbmZzNC4wL3NlcnZlcnRlc3RzL3N0X3dyaXRlLnB5 Cj4+ICsrKyBiL25mczQuMC9zZXJ2ZXJ0ZXN0cy9zdF93cml0ZS5weQo+PiBAQCAtMSw4ICsxLDgg QEAKPj4gIGZyb20geGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoKPj4gIGZyb20geGRyZGVmLm5m czRfdHlwZSBpbXBvcnQgKgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGNvbXBh cmVUaW1lcywgbWFrZUJhZElELCBtYWtlQmFkSURnYW5lc2hhLCBtYWtlU3RhbGVJZAo+PiArZnJv bSAuZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBjb21wYXJlVGltZXMsIG1ha2VCYWRJRCwgbWFr ZUJhZElEZ2FuZXNoYSwgbWFrZVN0YWxlSWQKPj4gIGltcG9ydCBzdHJ1Y3QKPj4gLWltcG9ydCBy cGMKPj4gK2ltcG9ydCBycGMucnBjIGFzIHJwYwo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0g bmZzX29wcy5ORlM0b3BzKCkKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4wL3Rlc3RzZXJ2ZXIu cHkgYi9uZnM0LjAvdGVzdHNlcnZlci5weQo+PiBpbmRleCA1ODFkYzNlLi5lYmNlNThkIDEwMDc1 NQo+PiAtLS0gYS9uZnM0LjAvdGVzdHNlcnZlci5weQo+PiArKysgYi9uZnM0LjAvdGVzdHNlcnZl ci5weQo+PiBAQCAtNDAsNyArNDAsNyBAQCBpbXBvcnQgdGVzdG1vZAo+PiAgZnJvbSBvcHRwYXJz ZSBpbXBvcnQgT3B0aW9uUGFyc2VyLCBPcHRpb25Hcm91cCwgSW5kZW50ZWRIZWxwRm9ybWF0dGVy Cj4+ICBpbXBvcnQgc2VydmVydGVzdHMuZW52aXJvbm1lbnQgYXMgZW52aXJvbm1lbnQKPj4gIGlt cG9ydCBzb2NrZXQKPj4gLWltcG9ydCBycGMKPj4gK2ltcG9ydCBycGMucnBjIGFzIHJwYwo+PiAg aW1wb3J0IHBpY2tsZQo+PiAgCj4+ICBWRVJTSU9OPSIwLjIiICMgSG93L3doZW4gdXBkYXRlIHRo aXM/Cj4+IGRpZmYgLS1naXQgYS9uZnM0LjEvY2xpZW50NDF0ZXN0cy9jdF9yZWJvb3QucHkgYi9u ZnM0LjEvY2xpZW50NDF0ZXN0cy9jdF9yZWJvb3QucHkKPj4gaW5kZXggM2JkMjQxYi4uZWZiZDc0 ZSAxMDA2NDQKPj4gLS0tIGEvbmZzNC4xL2NsaWVudDQxdGVzdHMvY3RfcmVib290LnB5Cj4+ICsr KyBiL25mczQuMS9jbGllbnQ0MXRlc3RzL2N0X3JlYm9vdC5weQo+PiBAQCAtMSw1ICsxLDUgQEAK Pj4gIGltcG9ydCBvcwo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgZmFpbAo+PiArZnJvbSAu ZW52aXJvbm1lbnQgaW1wb3J0IGZhaWwKPj4gIAo+PiAgZGVmIHRlc3RSZWJvb3QodCwgZW52KToK Pj4gICAgICAiIiJUZXN0IHJlYm9vdAo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4xL2NsaWVudDQxdGVz dHMvZW52aXJvbm1lbnQucHkgYi9uZnM0LjEvY2xpZW50NDF0ZXN0cy9lbnZpcm9ubWVudC5weQo+ PiBpbmRleCA5MzMyNjRjLi4wOWQwN2MyIDEwMDY0NAo+PiAtLS0gYS9uZnM0LjEvY2xpZW50NDF0 ZXN0cy9lbnZpcm9ubWVudC5weQo+PiArKysgYi9uZnM0LjEvY2xpZW50NDF0ZXN0cy9lbnZpcm9u bWVudC5weQo+PiBAQCAtMTIsNyArMTIsNyBAQCBpbXBvcnQgdGltZQo+PiAgaW1wb3J0IHRlc3Rt b2QKPj4gIGZyb20geGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoKPj4gIGZyb20geGRyZGVmLm5m czRfdHlwZSBpbXBvcnQgKgo+PiAtaW1wb3J0IHJwYwo+PiAraW1wb3J0IHJwYy5ycGMgYXMgcnBj Cj4+ICBpbXBvcnQgbmZzNGNsaWVudAo+PiAgaW1wb3J0IG9zCj4+ICBpbXBvcnQgbmZzNGxpYgo+ PiBkaWZmIC0tZ2l0IGEvbmZzNC4xL2RhdGFzZXJ2ZXIucHkgYi9uZnM0LjEvZGF0YXNlcnZlci5w eQo+PiBpbmRleCBhZjBlMzVhLi5mNzZjYTVhIDEwMDY0NAo+PiAtLS0gYS9uZnM0LjEvZGF0YXNl cnZlci5weQo+PiArKysgYi9uZnM0LjEvZGF0YXNlcnZlci5weQo+PiBAQCAtMSw0ICsxLDQgQEAK Pj4gLWltcG9ydCBycGMKPj4gK2ltcG9ydCBycGMucnBjIGFzIHJwYwo+PiAgaW1wb3J0IG5mczRs aWIKPj4gIGltcG9ydCB4ZHJkZWYubmZzNF90eXBlIGFzIHR5cGU0Cj4+ICBmcm9tIHhkcmRlZi5u ZnM0X3BhY2sgaW1wb3J0IE5GUzRQYWNrZXIKPj4gZGlmZiAtLWdpdCBhL25mczQuMS9uZnMzY2xp ZW50LnB5IGIvbmZzNC4xL25mczNjbGllbnQucHkKPj4gaW5kZXggMTc2NzY1Yy4uZjk4ZjY5MSAx MDA2NDQKPj4gLS0tIGEvbmZzNC4xL25mczNjbGllbnQucHkKPj4gKysrIGIvbmZzNC4xL25mczNj bGllbnQucHkKPj4gQEAgLTEsNSArMSw1IEBACj4+ICBpbXBvcnQgdXNlX2xvY2FsICMgSEFDSyBz byBkb24ndCBoYXZlIHRvIHJlYnVpbGQgY29uc3RhbnRseQo+PiAtaW1wb3J0IHJwYwo+PiAraW1w b3J0IHJwYy5ycGMgYXMgcnBjCj4+ICBpbXBvcnQgbmZzNGxpYgo+PiAgI2Zyb20gbmZzNGxpYiBp bXBvcnQgTkZTNEVycm9yLCBORlM0UmVwbGF5LCBpbmNfdTMyCj4+ICBmcm9tIHhkcmRlZi5zY3Ry bF9wYWNrIGltcG9ydCBTQ1RSTFBhY2tlciwgU0NUUkxVbnBhY2tlcgo+PiBkaWZmIC0tZ2l0IGEv bmZzNC4xL25mczRjbGllbnQucHkgYi9uZnM0LjEvbmZzNGNsaWVudC5weQo+PiBpbmRleCAwNTg4 ZDdiLi5lOGM2NDliIDEwMDY0NAo+PiAtLS0gYS9uZnM0LjEvbmZzNGNsaWVudC5weQo+PiArKysg Yi9uZnM0LjEvbmZzNGNsaWVudC5weQo+PiBAQCAtMSw1ICsxLDUgQEAKPj4gIGltcG9ydCB1c2Vf bG9jYWwgIyBIQUNLIHNvIGRvbid0IGhhdmUgdG8gcmVidWlsZCBjb25zdGFudGx5Cj4+IC1pbXBv cnQgcnBjCj4+ICtpbXBvcnQgcnBjLnJwYyBhcyBycGMKPj4gIGltcG9ydCBuZnM0bGliCj4+ICBm cm9tIG5mczRsaWIgaW1wb3J0IE5GUzRFcnJvciwgTkZTNFJlcGxheSwgaW5jX3UzMgo+PiAgZnJv bSB4ZHJkZWYubmZzNF90eXBlIGltcG9ydCAqCj4+IGRpZmYgLS1naXQgYS9uZnM0LjEvbmZzNGxp Yi5weSBiL25mczQuMS9uZnM0bGliLnB5Cj4+IGluZGV4IDIwZWFlMGYuLmQ0NjcwNmEgMTAwNjQ0 Cj4+IC0tLSBhL25mczQuMS9uZnM0bGliLnB5Cj4+ICsrKyBiL25mczQuMS9uZnM0bGliLnB5Cj4+ IEBAIC0xLDUgKzEsNSBAQAo+PiAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVu dAo+PiAtaW1wb3J0IHJwYwo+PiAraW1wb3J0IHJwYy5ycGMgYXMgcnBjCj4+ICBpbXBvcnQgeGRy ZGVmLm5mczRfY29uc3QKPj4gIGZyb20geGRyZGVmLm5mczRfcGFjayBpbXBvcnQgTkZTNFBhY2tl ciwgTkZTNFVucGFja2VyCj4+ICBpbXBvcnQgeGRyZGVmLm5mczRfdHlwZQo+PiBkaWZmIC0tZ2l0 IGEvbmZzNC4xL25mczRwcm94eS5weSBiL25mczQuMS9uZnM0cHJveHkucHkKPj4gaW5kZXggZWZi Njc0NC4uZGM4ZmRkNCAxMDA3NTUKPj4gLS0tIGEvbmZzNC4xL25mczRwcm94eS5weQo+PiArKysg Yi9uZnM0LjEvbmZzNHByb3h5LnB5Cj4+IEBAIC0zLDcgKzMsNyBAQCBmcm9tIF9fZnV0dXJlX18g aW1wb3J0IHdpdGhfc3RhdGVtZW50Cj4+ICBpbXBvcnQgdXNlX2xvY2FsICMgSEFDSyBzbyBkb24n dCBoYXZlIHRvIHJlYnVpbGQgY29uc3RhbnRseQo+PiAgaW1wb3J0IG5mczRsaWIKPj4gIGZyb20g bmZzNGxpYiBpbXBvcnQgaW5jX3UzMiwgTkZTNEVycm9yLCBORlM0UmVwbGF5Cj4+IC1pbXBvcnQg cnBjCj4+ICtpbXBvcnQgcnBjLnJwYyBhcyBycGMKPj4gIGZyb20geGRyZGVmLm5mczRfY29uc3Qg aW1wb3J0ICoKPj4gIGZyb20geGRyZGVmLm5mczRfdHlwZSBpbXBvcnQgKgo+PiAgZnJvbSB4ZHJk ZWYuc2N0cmxfcGFjayBpbXBvcnQgU0NUUkxQYWNrZXIsIFNDVFJMVW5wYWNrZXIKPj4gZGlmZiAt LWdpdCBhL25mczQuMS9uZnM0c2VydmVyLnB5IGIvbmZzNC4xL25mczRzZXJ2ZXIucHkKPj4gaW5k ZXggY2Q3ODA4Mi4uNzY3MzE5ZCAxMDA3NTUKPj4gLS0tIGEvbmZzNC4xL25mczRzZXJ2ZXIucHkK Pj4gKysrIGIvbmZzNC4xL25mczRzZXJ2ZXIucHkKPj4gQEAgLTMsNyArMyw3IEBAIGZyb20gX19m dXR1cmVfXyBpbXBvcnQgd2l0aF9zdGF0ZW1lbnQKPj4gIGltcG9ydCB1c2VfbG9jYWwgIyBIQUNL IHNvIGRvbid0IGhhdmUgdG8gcmVidWlsZCBjb25zdGFudGx5Cj4+ICBpbXBvcnQgbmZzNGxpYgo+ PiAgZnJvbSBuZnM0bGliIGltcG9ydCBpbmNfdTMyLCBORlM0RXJyb3IsIE5GUzRSZXBsYXkKPj4g LWltcG9ydCBycGMKPj4gK2ltcG9ydCBycGMucnBjIGFzIHJwYwo+PiAgZnJvbSB4ZHJkZWYubmZz NF9jb25zdCBpbXBvcnQgKgo+PiAgZnJvbSB4ZHJkZWYubmZzNF90eXBlIGltcG9ydCAqCj4+ICBm cm9tIHhkcmRlZi5zY3RybF9wYWNrIGltcG9ydCBTQ1RSTFBhY2tlciwgU0NUUkxVbnBhY2tlcgo+ PiBkaWZmIC0tZ2l0IGEvbmZzNC4xL25mczRzdGF0ZS5weSBiL25mczQuMS9uZnM0c3RhdGUucHkK Pj4gaW5kZXggOTVmODRkZi4uZjJjYWQwNCAxMDA2NDQKPj4gLS0tIGEvbmZzNC4xL25mczRzdGF0 ZS5weQo+PiArKysgYi9uZnM0LjEvbmZzNHN0YXRlLnB5Cj4+IEBAIC05LDcgKzksNyBAQCBmcm9t IG5mczRsaWIgaW1wb3J0IE5GUzRFcnJvcgo+PiAgZnJvbSB4ZHJkZWYubmZzNF90eXBlIGltcG9y dCAqCj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+ICBpbXBvcnQgbmZzX29w cwo+PiAtaW1wb3J0IHJwYwo+PiAraW1wb3J0IHJwYy5ycGMgYXMgcnBjCj4+ICBpbXBvcnQgbG9n Z2luZwo+PiAgCj4+ICBsb2cgPSBsb2dnaW5nLmdldExvZ2dlcigibmZzLnNlcnZlci5zdGF0ZSIp Cj4+IGRpZmYgLS1naXQgYS9uZnM0LjEvc2VydmVyNDF0ZXN0cy9lbnZpcm9ubWVudC5weSBiL25m czQuMS9zZXJ2ZXI0MXRlc3RzL2Vudmlyb25tZW50LnB5Cj4+IGluZGV4IDM2MDA4OWUuLjllMTIw MWYgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMS9zZXJ2ZXI0MXRlc3RzL2Vudmlyb25tZW50LnB5Cj4+ ICsrKyBiL25mczQuMS9zZXJ2ZXI0MXRlc3RzL2Vudmlyb25tZW50LnB5Cj4+IEBAIC0xMiw3ICsx Miw3IEBAIGltcG9ydCB0aW1lCj4+ICBpbXBvcnQgdGVzdG1vZAo+PiAgZnJvbSB4ZHJkZWYubmZz NF9jb25zdCBpbXBvcnQgKgo+PiAgZnJvbSB4ZHJkZWYubmZzNF90eXBlIGltcG9ydCAqCj4+IC1p bXBvcnQgcnBjCj4+ICtpbXBvcnQgcnBjLnJwYyBhcyBycGMKPj4gIGltcG9ydCBuZnM0Y2xpZW50 Cj4+ICBpbXBvcnQgc3lzCj4+ICBpbXBvcnQgb3MKPj4gZGlmZiAtLWdpdCBhL25mczQuMS9zZXJ2 ZXI0MXRlc3RzL3N0X2Jsb2NrLnB5IGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfYmxvY2sucHkK Pj4gaW5kZXggMjA0MWRlMy4uM2NmYzFjNiAxMDA2NDQKPj4gLS0tIGEvbmZzNC4xL3NlcnZlcjQx dGVzdHMvc3RfYmxvY2sucHkKPj4gKysrIGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfYmxvY2su cHkKPj4gQEAgLTIsNyArMiw3IEBAIGZyb20geGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoKPj4g IGZyb20geGRyZGVmLm5mczRfdHlwZSBpbXBvcnQgKgo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9w ID0gbmZzX29wcy5ORlM0b3BzKCkKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBm YWlsLCBjcmVhdGVfZmlsZQo+PiArZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBmYWls LCBjcmVhdGVfZmlsZQo+PiAgZnJvbSBibG9jayBpbXBvcnQgUGFja2VyIGFzIEJsb2NrUGFja2Vy LCBVbnBhY2tlciBhcyBCbG9ja1VucGFja2VyLCBcCj4+ICAgICAgUE5GU19CTE9DS19SRUFEV1JJ VEVfREFUQSwgcG5mc19ibG9ja19sYXlvdXR1cGRhdGU0LCBcCj4+ICAgICAgcG5mc19ibG9ja19l eHRlbnQ0Cj4+IGRpZmYgLS1naXQgYS9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9jb21wb3VuZC5w eSBiL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2NvbXBvdW5kLnB5Cj4+IGluZGV4IDM5MTVkZDgu LmRlZDU0NjUgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2NvbXBvdW5k LnB5Cj4+ICsrKyBiL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2NvbXBvdW5kLnB5Cj4+IEBAIC0x LDcgKzEsNyBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+PiAgaW1wb3J0 IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5ORlM0b3BzKCkKPj4gLWZyb20gZW52aXJvbm1lbnQg aW1wb3J0IGNoZWNrLCBmYWlsLCBnZXRfaW52YWxpZF91dGY4c3RyaW5ncwo+PiArZnJvbSAuZW52 aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBmYWlsLCBnZXRfaW52YWxpZF91dGY4c3RyaW5ncwo+PiAg ZnJvbSB4ZHJkZWYubmZzNF90eXBlIGltcG9ydCAqCj4+ICBmcm9tIHJwYyBpbXBvcnQgUlBDQWNj ZXB0RXJyb3IsIEdBUkJBR0VfQVJHUywgUlBDVGltZW91dAo+PiAgZnJvbSBuZnM0bGliIGltcG9y dCBORlM0RXJyb3IsIGhhc2hfb2lkcywgZW5jcnlwdF9vaWRzLCBGYW5jeU5GUzRQYWNrZXIKPj4g ZGlmZiAtLWdpdCBhL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2NyZWF0ZV9zZXNzaW9uLnB5IGIv bmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfY3JlYXRlX3Nlc3Npb24ucHkKPj4gaW5kZXggNTAxOGVj Ni4uYTYzODk5MCAxMDA2NDQKPj4gLS0tIGEvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfY3JlYXRl X3Nlc3Npb24ucHkKPj4gKysrIGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfY3JlYXRlX3Nlc3Np b24ucHkKPj4gQEAgLTEsNyArMSw3IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9y dCAqCj4+ICBpbXBvcnQgbmZzX29wcwo+PiAgb3AgPSBuZnNfb3BzLk5GUzRvcHMoKQo+PiAtZnJv bSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGZhaWwsIGNyZWF0ZV9maWxlLCBvcGVuX2ZpbGUK Pj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZmFpbCwgY3JlYXRlX2ZpbGUsIG9w ZW5fZmlsZQo+PiAgZnJvbSB4ZHJkZWYubmZzNF90eXBlIGltcG9ydCAqCj4+ICBpbXBvcnQgcmFu ZG9tCj4+ICBpbXBvcnQgbmZzNGxpYgo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4xL3NlcnZlcjQxdGVz dHMvc3RfY3VycmVudF9zdGF0ZWlkLnB5IGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfY3VycmVu dF9zdGF0ZWlkLnB5Cj4+IGluZGV4IDgxOWRmYjEuLjU4ZjZlOWIgMTAwNjQ0Cj4+IC0tLSBhL25m czQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2N1cnJlbnRfc3RhdGVpZC5weQo+PiArKysgYi9uZnM0LjEv c2VydmVyNDF0ZXN0cy9zdF9jdXJyZW50X3N0YXRlaWQucHkKPj4gQEAgLTEsOCArMSw4IEBACj4+ ICBmcm9tIHN0X2NyZWF0ZV9zZXNzaW9uIGltcG9ydCBjcmVhdGVfc2Vzc2lvbgo+PiAgZnJvbSB4 ZHJkZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+PiAgCj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9y dCBjaGVjaywgZmFpbCwgY3JlYXRlX2ZpbGUsIG9wZW5fZmlsZSwgY2xvc2VfZmlsZQo+PiAtZnJv bSBlbnZpcm9ubWVudCBpbXBvcnQgb3Blbl9jcmVhdGVfZmlsZV9vcCwgdXNlX29iago+PiArZnJv bSAuZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBmYWlsLCBjcmVhdGVfZmlsZSwgb3Blbl9maWxl LCBjbG9zZV9maWxlCj4+ICtmcm9tIC5lbnZpcm9ubWVudCBpbXBvcnQgb3Blbl9jcmVhdGVfZmls ZV9vcCwgdXNlX29iago+PiAgZnJvbSB4ZHJkZWYubmZzNF90eXBlIGltcG9ydCBvcGVuX293bmVy NCwgb3BlbmZsYWc0LCBjcmVhdGVob3c0LCBvcGVuX2NsYWltNAo+PiAgZnJvbSB4ZHJkZWYubmZz NF90eXBlIGltcG9ydCBjcmVhdHZlcmZhdHRyLCBmYXR0cjQsIHN0YXRlaWQ0LCBsb2NrZXI0LCBs b2NrX293bmVyNAo+PiAgZnJvbSB4ZHJkZWYubmZzNF90eXBlIGltcG9ydCBvcGVuX3RvX2xvY2tf b3duZXI0Cj4+IGRpZmYgLS1naXQgYS9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9kZWJ1Zy5weSBi L25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2RlYnVnLnB5Cj4+IGluZGV4IDM0NWZjNzcuLjNlMzA4 N2QgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2RlYnVnLnB5Cj4+ICsr KyBiL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2RlYnVnLnB5Cj4+IEBAIC0xLDYgKzEsNiBAQAo+ PiAgZnJvbSBzdF9jcmVhdGVfc2Vzc2lvbiBpbXBvcnQgY3JlYXRlX3Nlc3Npb24KPj4gIGZyb20g eGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNo ZWNrLCBmYWlsLCBjcmVhdGVfZmlsZSwgY2xvc2VfZmlsZQo+PiArZnJvbSAuZW52aXJvbm1lbnQg aW1wb3J0IGNoZWNrLCBmYWlsLCBjcmVhdGVfZmlsZSwgY2xvc2VfZmlsZQo+PiAgZnJvbSB4ZHJk ZWYubmZzNF90eXBlIGltcG9ydCBvcGVuX293bmVyNCwgb3BlbmZsYWc0LCBjcmVhdGVob3c0LCBv cGVuX2NsYWltNAo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5ORlM0b3BzKCkK Pj4gZGlmZiAtLWdpdCBhL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2RlbGVnYXRpb24ucHkgYi9u ZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9kZWxlZ2F0aW9uLnB5Cj4+IGluZGV4IGNiYWJiODUuLjRm MDViZjEgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2RlbGVnYXRpb24u cHkKPj4gKysrIGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfZGVsZWdhdGlvbi5weQo+PiBAQCAt Miw3ICsyLDcgQEAgZnJvbSBzdF9jcmVhdGVfc2Vzc2lvbiBpbXBvcnQgY3JlYXRlX3Nlc3Npb24K Pj4gIGZyb20gc3Rfb3BlbiBpbXBvcnQgb3Blbl9jbGFpbTQKPj4gIGZyb20geGRyZGVmLm5mczRf Y29uc3QgaW1wb3J0ICoKPj4gIAo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGZh aWwsIGNyZWF0ZV9maWxlLCBvcGVuX2ZpbGUsIGNsb3NlX2ZpbGUKPj4gK2Zyb20gLmVudmlyb25t ZW50IGltcG9ydCBjaGVjaywgZmFpbCwgY3JlYXRlX2ZpbGUsIG9wZW5fZmlsZSwgY2xvc2VfZmls ZQo+PiAgZnJvbSB4ZHJkZWYubmZzNF90eXBlIGltcG9ydCAqCj4+ICBpbXBvcnQgbmZzX29wcwo+ PiAgb3AgPSBuZnNfb3BzLk5GUzRvcHMoKQo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4xL3NlcnZlcjQx dGVzdHMvc3RfZGVzdHJveV9jbGllbnRpZC5weSBiL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2Rl c3Ryb3lfY2xpZW50aWQucHkKPj4gaW5kZXggMjVjYzEyYS4uNTAwODFiMSAxMDA2NDQKPj4gLS0t IGEvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfZGVzdHJveV9jbGllbnRpZC5weQo+PiArKysgYi9u ZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9kZXN0cm95X2NsaWVudGlkLnB5Cj4+IEBAIC0xLDYgKzEs NiBAQAo+PiAgZnJvbSBzdF9jcmVhdGVfc2Vzc2lvbiBpbXBvcnQgY3JlYXRlX3Nlc3Npb24KPj4g IGZyb20geGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1w b3J0IGNoZWNrLCBmYWlsCj4+ICtmcm9tIC5lbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGZhaWwK Pj4gIGltcG9ydCBuZnNfb3BzCj4+ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+ICBpbXBvcnQg bmZzNGxpYgo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfZGVzdHJveV9z ZXNzaW9uLnB5IGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfZGVzdHJveV9zZXNzaW9uLnB5Cj4+ IGluZGV4IGM3NzY2MTcuLmM4MGM4NDUgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMS9zZXJ2ZXI0MXRl c3RzL3N0X2Rlc3Ryb3lfc2Vzc2lvbi5weQo+PiArKysgYi9uZnM0LjEvc2VydmVyNDF0ZXN0cy9z dF9kZXN0cm95X3Nlc3Npb24ucHkKPj4gQEAgLTEsMTEgKzEsMTEgQEAKPj4gIGZyb20gc3RfY3Jl YXRlX3Nlc3Npb24gaW1wb3J0IGNyZWF0ZV9zZXNzaW9uCj4+ICBmcm9tIHhkcmRlZi5uZnM0X2Nv bnN0IGltcG9ydCAqCj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZmFpbCwgY3Jl YXRlX2ZpbGUsIG9wZW5fZmlsZQo+PiArZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBm YWlsLCBjcmVhdGVfZmlsZSwgb3Blbl9maWxlCj4+ICBmcm9tIHhkcmRlZi5uZnM0X3R5cGUgaW1w b3J0IG9wZW5fb3duZXI0LCBvcGVuZmxhZzQsIGNyZWF0ZWhvdzQsIG9wZW5fY2xhaW00Cj4+ICBp bXBvcnQgbmZzX29wcwo+PiAgb3AgPSBuZnNfb3BzLk5GUzRvcHMoKQo+PiAgaW1wb3J0IHRocmVh ZGluZwo+PiAtaW1wb3J0IHJwYwo+PiAraW1wb3J0IHJwYy5ycGMgYXMgcnBjCj4+ICAKPj4gIGRl ZiB0ZXN0RGVzdHJveSh0LCBlbnYpOgo+PiAgICAgICIiIgo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4x L3NlcnZlcjQxdGVzdHMvc3RfZXhjaGFuZ2VfaWQucHkgYi9uZnM0LjEvc2VydmVyNDF0ZXN0cy9z dF9leGNoYW5nZV9pZC5weQo+PiBpbmRleCA5YmVjZWM2Li41YTI5NjM0IDEwMDY0NAo+PiAtLS0g YS9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9leGNoYW5nZV9pZC5weQo+PiArKysgYi9uZnM0LjEv c2VydmVyNDF0ZXN0cy9zdF9leGNoYW5nZV9pZC5weQo+PiBAQCAtMiw3ICsyLDcgQEAgZnJvbSB4 ZHJkZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZz X29wcy5ORlM0b3BzKCkKPj4gIGltcG9ydCB0aW1lCj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9y dCBjaGVjaywgZmFpbAo+PiArZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBmYWlsCj4+ ICBmcm9tIHhkcmRlZi5uZnM0X3R5cGUgaW1wb3J0ICoKPj4gIGZyb20gcnBjIGltcG9ydCBSUENB Y2NlcHRFcnJvciwgR0FSQkFHRV9BUkdTLCBSUENUaW1lb3V0Cj4+ICBmcm9tIG5mczRsaWIgaW1w b3J0IE5GUzRFcnJvciwgaGFzaF9vaWRzLCBlbmNyeXB0X29pZHMKPj4gZGlmZiAtLWdpdCBhL25m czQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2ZsZXgucHkgYi9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9m bGV4LnB5Cj4+IGluZGV4IDM1YmU0ODkuLjMzNWIyYzggMTAwNjQ0Cj4+IC0tLSBhL25mczQuMS9z ZXJ2ZXI0MXRlc3RzL3N0X2ZsZXgucHkKPj4gKysrIGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3Rf ZmxleC5weQo+PiBAQCAtMyw3ICszLDcgQEAgZnJvbSB4ZHJkZWYubmZzNF90eXBlIGltcG9ydCAq Cj4+ICBmcm9tIHhkcmRlZi5uZnM0X3BhY2sgaW1wb3J0ICoKPj4gIGltcG9ydCBuZnNfb3BzCj4+ ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVj aywgZmFpbCwgY3JlYXRlX2ZpbGUsIGNsb3NlX2ZpbGUsIG9wZW5fY3JlYXRlX2ZpbGVfb3AKPj4g K2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZmFpbCwgY3JlYXRlX2ZpbGUsIGNsb3Nl X2ZpbGUsIG9wZW5fY3JlYXRlX2ZpbGVfb3AKPj4gIGZyb20geGRyZGVmLm5mczRfcGFjayBpbXBv cnQgTkZTNFBhY2tlciBhcyBGbGV4UGFja2VyLCBcCj4+ICAJTkZTNFVucGFja2VyIGFzIEZsZXhV bnBhY2tlcgo+PiAgZnJvbSBuZnM0bGliIGltcG9ydCBGYW5jeU5GUzRQYWNrZXIsIGdldF9uZnN0 aW1lCj4+IGRpZmYgLS1naXQgYS9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9nZXRkZXZpY2VsaXN0 LnB5IGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfZ2V0ZGV2aWNlbGlzdC5weQo+PiBpbmRleCBl ZGY1ZmU0Li5hZmY1MTBlIDEwMDY0NAo+PiAtLS0gYS9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9n ZXRkZXZpY2VsaXN0LnB5Cj4+ICsrKyBiL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2dldGRldmlj ZWxpc3QucHkKPj4gQEAgLTEsNiArMSw2IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGlt cG9ydCAqCj4+ICBmcm9tIHhkcmRlZi5uZnM0X3R5cGUgaW1wb3J0ICoKPj4gLWZyb20gZW52aXJv bm1lbnQgaW1wb3J0IGNoZWNrLCBmYWlsLCB1c2Vfb2JqLCBvcGVuX2ZpbGUsIGNyZWF0ZV9maWxl LCBnZXRfYmxvY2tzaXplCj4+ICtmcm9tIC5lbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGZhaWws IHVzZV9vYmosIG9wZW5fZmlsZSwgY3JlYXRlX2ZpbGUsIGdldF9ibG9ja3NpemUKPj4gIGltcG9y dCBuZnNfb3BzCj4+ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+ICBmcm9tIGJsb2NrIGltcG9y dCBQYWNrZXIgYXMgQmxvY2tQYWNrZXIsIFVucGFja2VyIGFzIEJsb2NrVW5wYWNrZXIsIFwKPj4g ZGlmZiAtLWdpdCBhL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X2xvb2t1cC5weSBiL25mczQuMS9z ZXJ2ZXI0MXRlc3RzL3N0X2xvb2t1cC5weQo+PiBpbmRleCAzODk5NDI1Li5jNDZlN2QyIDEwMDY0 NAo+PiAtLS0gYS9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9sb29rdXAucHkKPj4gKysrIGIvbmZz NC4xL3NlcnZlcjQxdGVzdHMvc3RfbG9va3VwLnB5Cj4+IEBAIC0xLDUgKzEsNSBAQAo+PiAgZnJv bSB4ZHJkZWYubmZzNF9jb25zdCBpbXBvcnQgKgo+PiAtZnJvbSBlbnZpcm9ubWVudCBpbXBvcnQg Y2hlY2ssIGZhaWwKPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZmFpbAo+PiAg aW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5ORlM0b3BzKCkKPj4gIAo+PiBAQCAtNjQs NyArNjQsNyBAQCBkZWYgdGVzdExvbmdOYW1lKHQsIGVudik6Cj4+ICAKPj4gICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCj4+ICBp ZiAwOgo+PiAtICAgIGZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBnZXRfaW52YWxpZF91 dGY4c3RyaW5ncwo+PiArICAgIGZyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZ2V0X2lu dmFsaWRfdXRmOHN0cmluZ3MKPj4gIAo+PiAgICAgIGRlZiB0ZXN0RGlyKHQsIGVudik6Cj4+ICAg ICAgICAgICIiIkxPT0tVUCB0ZXN0dHJlZSBkaXIKPj4gZGlmZiAtLWdpdCBhL25mczQuMS9zZXJ2 ZXI0MXRlc3RzL3N0X2xvb2t1cHAucHkgYi9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9sb29rdXBw LnB5Cj4+IGluZGV4IDRjODYzYTQuLmM5MWUzOWUgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMS9zZXJ2 ZXI0MXRlc3RzL3N0X2xvb2t1cHAucHkKPj4gKysrIGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3Rf bG9va3VwcC5weQo+PiBAQCAtMSw1ICsxLDUgQEAKPj4gIGZyb20geGRyZGVmLm5mczRfY29uc3Qg aW1wb3J0ICoKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBmYWlsLCB1c2Vfb2Jq Cj4+ICtmcm9tIC5lbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGZhaWwsIHVzZV9vYmoKPj4gIGlt cG9ydCBuZnNfb3BzCj4+ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+ICAKPj4gZGlmZiAtLWdp dCBhL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X29wZW4ucHkgYi9uZnM0LjEvc2VydmVyNDF0ZXN0 cy9zdF9vcGVuLnB5Cj4+IGluZGV4IDQ3MzczMmQuLmNlY2E2NTYgMTAwNjQ0Cj4+IC0tLSBhL25m czQuMS9zZXJ2ZXI0MXRlc3RzL3N0X29wZW4ucHkKPj4gKysrIGIvbmZzNC4xL3NlcnZlcjQxdGVz dHMvc3Rfb3Blbi5weQo+PiBAQCAtMSw4ICsxLDggQEAKPj4gIGZyb20gc3RfY3JlYXRlX3Nlc3Np b24gaW1wb3J0IGNyZWF0ZV9zZXNzaW9uCj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9y dCAqCj4+ICAKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBmYWlsLCBjcmVhdGVf ZmlsZSwgb3Blbl9maWxlLCBjbG9zZV9maWxlCj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBv cGVuX2NyZWF0ZV9maWxlX29wCj4+ICtmcm9tIC5lbnZpcm9ubWVudCBpbXBvcnQgY2hlY2ssIGZh aWwsIGNyZWF0ZV9maWxlLCBvcGVuX2ZpbGUsIGNsb3NlX2ZpbGUKPj4gK2Zyb20gLmVudmlyb25t ZW50IGltcG9ydCBvcGVuX2NyZWF0ZV9maWxlX29wCj4+ICBmcm9tIHhkcmRlZi5uZnM0X3R5cGUg aW1wb3J0IG9wZW5fb3duZXI0LCBvcGVuZmxhZzQsIGNyZWF0ZWhvdzQsIG9wZW5fY2xhaW00Cj4+ ICBmcm9tIHhkcmRlZi5uZnM0X3R5cGUgaW1wb3J0IGNyZWF0dmVyZmF0dHIsIGZhdHRyNCwgc3Rh dGVpZDQsIGxvY2tlcjQsIGxvY2tfb3duZXI0Cj4+ICBmcm9tIHhkcmRlZi5uZnM0X3R5cGUgaW1w b3J0IG9wZW5fdG9fbG9ja19vd25lcjQKPj4gZGlmZiAtLWdpdCBhL25mczQuMS9zZXJ2ZXI0MXRl c3RzL3N0X3B1dGZoLnB5IGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfcHV0ZmgucHkKPj4gaW5k ZXggZTFkNjMyMC4uZjhiZmE3MSAxMDA2NDQKPj4gLS0tIGEvbmZzNC4xL3NlcnZlcjQxdGVzdHMv c3RfcHV0ZmgucHkKPj4gKysrIGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfcHV0ZmgucHkKPj4g QEAgLTEsNSArMSw1IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+IC1m cm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZmFpbCwgdXNlX29iaiwgY3JlYXRlX2NvbmZp cm0sIGNsb3NlX2ZpbGUKPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZmFpbCwg dXNlX29iaiwgY3JlYXRlX2NvbmZpcm0sIGNsb3NlX2ZpbGUKPj4gIGltcG9ydCBuZnNfb3BzCj4+ ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+ICAKPj4gZGlmZiAtLWdpdCBhL25mczQuMS9zZXJ2 ZXI0MXRlc3RzL3N0X3JlYm9vdC5weSBiL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X3JlYm9vdC5w eQo+PiBpbmRleCBiMTljMzQzLi5iODUyZGVkIDEwMDY0NAo+PiAtLS0gYS9uZnM0LjEvc2VydmVy NDF0ZXN0cy9zdF9yZWJvb3QucHkKPj4gKysrIGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfcmVi b290LnB5Cj4+IEBAIC0xLDYgKzEsNiBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25zdCBpbXBv cnQgKgo+PiAgZnJvbSB4ZHJkZWYubmZzNF90eXBlIGltcG9ydCAqCj4+IC1mcm9tIGVudmlyb25t ZW50IGltcG9ydCBjaGVjaywgZmFpbCwgY3JlYXRlX2ZpbGUsIG9wZW5fZmlsZSwgY3JlYXRlX2Nv bmZpcm0KPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZmFpbCwgY3JlYXRlX2Zp bGUsIG9wZW5fZmlsZSwgY3JlYXRlX2NvbmZpcm0KPj4gIGltcG9ydCBzeXMKPj4gIGltcG9ydCBv cwo+PiAgaW1wb3J0IG5mczRsaWIKPj4gZGlmZiAtLWdpdCBhL25mczQuMS9zZXJ2ZXI0MXRlc3Rz L3N0X3JlY2xhaW1fY29tcGxldGUucHkgYi9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9yZWNsYWlt X2NvbXBsZXRlLnB5Cj4+IGluZGV4IDY0MmFkYTIuLmVlNTE4NDMgMTAwNjQ0Cj4+IC0tLSBhL25m czQuMS9zZXJ2ZXI0MXRlc3RzL3N0X3JlY2xhaW1fY29tcGxldGUucHkKPj4gKysrIGIvbmZzNC4x L3NlcnZlcjQxdGVzdHMvc3RfcmVjbGFpbV9jb21wbGV0ZS5weQo+PiBAQCAtMSw2ICsxLDYgQEAK Pj4gIGZyb20gc3RfY3JlYXRlX3Nlc3Npb24gaW1wb3J0IGNyZWF0ZV9zZXNzaW9uCj4+ICBmcm9t IHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBj aGVjaywgZmFpbCwgb3Blbl9maWxlLCBjcmVhdGVfZmlsZSwgY3JlYXRlX2NvbmZpcm0KPj4gK2Zy b20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZmFpbCwgb3Blbl9maWxlLCBjcmVhdGVfZmls ZSwgY3JlYXRlX2NvbmZpcm0KPj4gIGltcG9ydCBuZnNfb3BzCj4+ICBvcCA9IG5mc19vcHMuTkZT NG9wcygpCj4+ICBpbXBvcnQgbmZzNGxpYgo+PiBkaWZmIC0tZ2l0IGEvbmZzNC4xL3NlcnZlcjQx dGVzdHMvc3RfcmVuYW1lLnB5IGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3RfcmVuYW1lLnB5Cj4+ IGluZGV4IGM3YzJjMjAuLjMwNDI5MDkgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMS9zZXJ2ZXI0MXRl c3RzL3N0X3JlbmFtZS5weQo+PiArKysgYi9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9yZW5hbWUu cHkKPj4gQEAgLTEsNSArMSw1IEBACj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAq Cj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZmFpbCwgbWFrZXRyZWUsIHJlbmFt ZV9vYmosIGdldF9pbnZhbGlkX3V0ZjhzdHJpbmdzLCBjcmVhdGVfb2JqLCBjcmVhdGVfY29uZmly bSwgbGluaywgdXNlX29iaiwgY3JlYXRlX2ZpbGUKPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9y dCBjaGVjaywgZmFpbCwgbWFrZXRyZWUsIHJlbmFtZV9vYmosIGdldF9pbnZhbGlkX3V0ZjhzdHJp bmdzLCBjcmVhdGVfb2JqLCBjcmVhdGVfY29uZmlybSwgbGluaywgdXNlX29iaiwgY3JlYXRlX2Zp bGUKPj4gIGltcG9ydCBuZnNfb3BzCj4+ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+ICBmcm9t IHhkcmRlZi5uZnM0X3R5cGUgaW1wb3J0ICoKPj4gZGlmZiAtLWdpdCBhL25mczQuMS9zZXJ2ZXI0 MXRlc3RzL3N0X3NlY2luZm8ucHkgYi9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9zZWNpbmZvLnB5 Cj4+IGluZGV4IDAwOGRjMWUuLmQ3Zjk1NTcgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMS9zZXJ2ZXI0 MXRlc3RzL3N0X3NlY2luZm8ucHkKPj4gKysrIGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3Rfc2Vj aW5mby5weQo+PiBAQCAtMSw2ICsxLDYgQEAKPj4gIGZyb20gc3RfY3JlYXRlX3Nlc3Npb24gaW1w b3J0IGNyZWF0ZV9zZXNzaW9uCj4+ICBmcm9tIHhkcmRlZi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+ IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZmFpbCwgdXNlX29iaiwgYmFkX3Nlc3Np b25pZCwgY3JlYXRlX2ZpbGUKPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZmFp bCwgdXNlX29iaiwgYmFkX3Nlc3Npb25pZCwgY3JlYXRlX2ZpbGUKPj4gIGZyb20geGRyZGVmLm5m czRfdHlwZSBpbXBvcnQgY2hhbm5lbF9hdHRyczQKPj4gIGltcG9ydCBuZnNfb3BzCj4+ICBvcCA9 IG5mc19vcHMuTkZTNG9wcygpCj4+IGRpZmYgLS1naXQgYS9uZnM0LjEvc2VydmVyNDF0ZXN0cy9z dF9zZWNpbmZvX25vX25hbWUucHkgYi9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9zZWNpbmZvX25v X25hbWUucHkKPj4gaW5kZXggOWNkNmJkMy4uYTA0NDk0MCAxMDA2NDQKPj4gLS0tIGEvbmZzNC4x L3NlcnZlcjQxdGVzdHMvc3Rfc2VjaW5mb19ub19uYW1lLnB5Cj4+ICsrKyBiL25mczQuMS9zZXJ2 ZXI0MXRlc3RzL3N0X3NlY2luZm9fbm9fbmFtZS5weQo+PiBAQCAtMSw2ICsxLDYgQEAKPj4gIGZy b20gc3RfY3JlYXRlX3Nlc3Npb24gaW1wb3J0IGNyZWF0ZV9zZXNzaW9uCj4+ICBmcm9tIHhkcmRl Zi5uZnM0X2NvbnN0IGltcG9ydCAqCj4+IC1mcm9tIGVudmlyb25tZW50IGltcG9ydCBjaGVjaywg ZmFpbCwgYmFkX3Nlc3Npb25pZCwgY3JlYXRlX2ZpbGUKPj4gK2Zyb20gLmVudmlyb25tZW50IGlt cG9ydCBjaGVjaywgZmFpbCwgYmFkX3Nlc3Npb25pZCwgY3JlYXRlX2ZpbGUKPj4gIGZyb20geGRy ZGVmLm5mczRfdHlwZSBpbXBvcnQgY2hhbm5lbF9hdHRyczQKPj4gIGltcG9ydCBuZnNfb3BzCj4+ ICBvcCA9IG5mc19vcHMuTkZTNG9wcygpCj4+IGRpZmYgLS1naXQgYS9uZnM0LjEvc2VydmVyNDF0 ZXN0cy9zdF9zZXF1ZW5jZS5weSBiL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X3NlcXVlbmNlLnB5 Cj4+IGluZGV4IDI1ZTUxMTMuLjIwODE2MGYgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMS9zZXJ2ZXI0 MXRlc3RzL3N0X3NlcXVlbmNlLnB5Cj4+ICsrKyBiL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X3Nl cXVlbmNlLnB5Cj4+IEBAIC0xLDYgKzEsNiBAQAo+PiAgZnJvbSBzdF9jcmVhdGVfc2Vzc2lvbiBp bXBvcnQgY3JlYXRlX3Nlc3Npb24KPj4gIGZyb20geGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoK Pj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBmYWlsLCBiYWRfc2Vzc2lvbmlkLCBj cmVhdGVfZmlsZQo+PiArZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBmYWlsLCBiYWRf c2Vzc2lvbmlkLCBjcmVhdGVfZmlsZQo+PiAgZnJvbSB4ZHJkZWYubmZzNF90eXBlIGltcG9ydCBj aGFubmVsX2F0dHJzNAo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5ORlM0b3Bz KCkKPj4gZGlmZiAtLWdpdCBhL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X3NwYXJzZS5weSBiL25m czQuMS9zZXJ2ZXI0MXRlc3RzL3N0X3NwYXJzZS5weQo+PiBpbmRleCA2YWRmM2Q2Li4wNmJlMTll IDEwMDY0NAo+PiAtLS0gYS9uZnM0LjEvc2VydmVyNDF0ZXN0cy9zdF9zcGFyc2UucHkKPj4gKysr IGIvbmZzNC4xL3NlcnZlcjQxdGVzdHMvc3Rfc3BhcnNlLnB5Cj4+IEBAIC0xLDYgKzEsNiBAQAo+ PiAgZnJvbSBzdF9jcmVhdGVfc2Vzc2lvbiBpbXBvcnQgY3JlYXRlX3Nlc3Npb24KPj4gIGZyb20g eGRyZGVmLm5mczRfY29uc3QgaW1wb3J0ICoKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNo ZWNrLCBmYWlsLCBjcmVhdGVfZmlsZQo+PiArZnJvbSAuZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNr LCBmYWlsLCBjcmVhdGVfZmlsZQo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5O RlM0b3BzKCkKPj4gIGltcG9ydCBuZnM0bGliCj4+IGRpZmYgLS1naXQgYS9uZnM0LjEvc2VydmVy NDF0ZXN0cy9zdF90cnVua2luZy5weSBiL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0X3RydW5raW5n LnB5Cj4+IGluZGV4IDY4NDQyM2QuLjcyYWZhMWYgMTAwNjQ0Cj4+IC0tLSBhL25mczQuMS9zZXJ2 ZXI0MXRlc3RzL3N0X3RydW5raW5nLnB5Cj4+ICsrKyBiL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0 X3RydW5raW5nLnB5Cj4+IEBAIC0xLDcgKzEsNyBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9jb25z dCBpbXBvcnQgKgo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5ORlM0b3BzKCkK Pj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBmYWlsCj4+ICtmcm9tIC5lbnZpcm9u bWVudCBpbXBvcnQgY2hlY2ssIGZhaWwKPj4gIGZyb20geGRyZGVmLm5mczRfdHlwZSBpbXBvcnQg Kgo+PiAgaW1wb3J0IHJhbmRvbQo+PiAgaW1wb3J0IG5mczRsaWIKPj4gZGlmZiAtLWdpdCBhL25m czQuMS9zZXJ2ZXI0MXRlc3RzL3N0X3ZlcmlmeS5weSBiL25mczQuMS9zZXJ2ZXI0MXRlc3RzL3N0 X3ZlcmlmeS5weQo+PiBpbmRleCA3ZmI4YTQ3Li42NGQ2MTU2IDEwMDY0NAo+PiAtLS0gYS9uZnM0 LjEvc2VydmVyNDF0ZXN0cy9zdF92ZXJpZnkucHkKPj4gKysrIGIvbmZzNC4xL3NlcnZlcjQxdGVz dHMvc3RfdmVyaWZ5LnB5Cj4+IEBAIC0xLDcgKzEsNyBAQAo+PiAgZnJvbSB4ZHJkZWYubmZzNF9j b25zdCBpbXBvcnQgKgo+PiAgaW1wb3J0IG5mc19vcHMKPj4gIG9wID0gbmZzX29wcy5ORlM0b3Bz KCkKPj4gLWZyb20gZW52aXJvbm1lbnQgaW1wb3J0IGNoZWNrLCBnZXRfaW52YWxpZF9jbGllbnRp ZCwgbWFrZVN0YWxlSWQsIFwKPj4gK2Zyb20gLmVudmlyb25tZW50IGltcG9ydCBjaGVjaywgZ2V0 X2ludmFsaWRfY2xpZW50aWQsIG1ha2VTdGFsZUlkLCBcCj4+ICAgICAgZG9fZ2V0YXR0cmRpY3Qs IHVzZV9vYmoKPj4gIAo+PiAgZGVmIF90cnlfbWFuZCh0LCBlbnYsIHBhdGgpOgo+PiBkaWZmIC0t Z2l0IGEvbmZzNC4xL3Rlc3RjbGllbnQucHkgYi9uZnM0LjEvdGVzdGNsaWVudC5weQo+PiBpbmRl eCAzNjY1MjUzLi41ZDIxZWFhIDEwMDc1NQo+PiAtLS0gYS9uZnM0LjEvdGVzdGNsaWVudC5weQo+ PiArKysgYi9uZnM0LjEvdGVzdGNsaWVudC5weQo+PiBAQCAtMzMsNyArMzMsNyBAQCBpbXBvcnQg dGVzdG1vZAo+PiAgZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2VyLCBPcHRpb25Hcm91 cCwgSW5kZW50ZWRIZWxwRm9ybWF0dGVyCj4+ICBpbXBvcnQgY2xpZW50NDF0ZXN0cy5lbnZpcm9u bWVudCBhcyBlbnZpcm9ubWVudAo+PiAgaW1wb3J0IHNvY2tldAo+PiAtaW1wb3J0IHJwYwo+PiAr aW1wb3J0IHJwYy5ycGMgYXMgcnBjCj4+ICBpbXBvcnQgcGlja2xlCj4+ICAKPj4gIGRlZiBwYXJz ZV91c2VwYXJhbXMoc3RyKToKPj4gZGlmZiAtLWdpdCBhL25mczQuMS90ZXN0c2VydmVyLnB5IGIv bmZzNC4xL3Rlc3RzZXJ2ZXIucHkKPj4gaW5kZXggNzgxOGE1ZC4uMmJlY2MxMyAxMDA3NTUKPj4g LS0tIGEvbmZzNC4xL3Rlc3RzZXJ2ZXIucHkKPj4gKysrIGIvbmZzNC4xL3Rlc3RzZXJ2ZXIucHkK Pj4gQEAgLTM3LDcgKzM3LDcgQEAgaW1wb3J0IHRlc3Rtb2QKPj4gIGZyb20gb3B0cGFyc2UgaW1w b3J0IE9wdGlvblBhcnNlciwgT3B0aW9uR3JvdXAsIEluZGVudGVkSGVscEZvcm1hdHRlcgo+PiAg aW1wb3J0IHNlcnZlcjQxdGVzdHMuZW52aXJvbm1lbnQgYXMgZW52aXJvbm1lbnQKPj4gIGltcG9y dCBzb2NrZXQKPj4gLWltcG9ydCBycGMKPj4gK2ltcG9ydCBycGMucnBjIGFzIHJwYwo+PiAgaW1w b3J0IHBpY2tsZQo+PiAgCj4+ICBWRVJTSU9OPSIwLjIiICMgSG93L3doZW4gdXBkYXRlIHRoaXM/ Cj4+IGRpZmYgLS1naXQgYS9ycGMvcnBjLnB5IGIvcnBjL3JwYy5weQo+PiBpbmRleCBhZjJiMzI1 Li4wYzRhMjBhIDEwMDY0NAo+PiAtLS0gYS9ycGMvcnBjLnB5Cj4+ICsrKyBiL3JwYy9ycGMucHkK Pj4gQEAgLTEsNCArMSw1IEBACj4+ICBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVt ZW50Cj4+ICtmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAo+PiAgCj4+ICBp bXBvcnQgc29ja2V0LCBzZWxlY3QKPj4gIGltcG9ydCBzdHJ1Y3QKPj4gQEAgLTcsNyArOCw3IEBA IGltcG9ydCBsb2dnaW5nCj4+ICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZXF1ZSBhcyBEZXF1 ZQo+PiAgZnJvbSBlcnJubyBpbXBvcnQgRUlOUFJPR1JFU1MsIEVXT1VMREJMT0NLCj4+ICAKPj4g LWltcG9ydCBycGNfcGFjawo+PiAraW1wb3J0IHJwYy5ycGNfcGFjayBhcyBycGNfcGFjawo+PiAg ZnJvbSBycGNfY29uc3QgaW1wb3J0ICoKPj4gIGZyb20gcnBjX3R5cGUgaW1wb3J0ICoKPj4gIAo+ PiAtLSAKPj4gMi4xNy4xCj4+IAo= ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Re: [PATCH 19/24 v2] pynfs: python3 support plan: fix import fail on python3 2018-08-24 3:01 ` 尹剑虹 @ 2018-08-24 15:37 ` J. Bruce Fields 0 siblings, 0 replies; 4+ messages in thread From: J. Bruce Fields @ 2018-08-24 15:37 UTC (permalink / raw) To: 尹剑虹; +Cc: J. Bruce Fields, jiyin, linux-nfs On Fri, Aug 24, 2018 at 11:01:18AM +0800, 尹剑虹 wrote: > No, see [PATCH 24/24] pynfs: python3 support plan: fix access class var in list comprehension > Status: > ''' > all patches works fine on python-2.7 > and build success on python-3.6 > but because xdrlib issue https://bugs.python.org/issue9544 > pynfs has not been able to run on python-3.6 now > ''' > > Todo list: > investigate python xdrlib issue on python3 : https://bugs.python.org/issue9544 > investigate why (python-ply >3.4) can't work with pynfs (on both python2 and python3) OK, thanks for the explanation. --b. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-08-24 19:12 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-07-24 10:33 [PATCH 19/24 v2] pynfs: python3 support plan: fix import fail on python3 jiyin 2018-08-23 21:02 ` J. Bruce Fields 2018-08-24 3:01 ` 尹剑虹 2018-08-24 15:37 ` J. Bruce Fields
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).