RE: cvs2svn errors

Kevin Tsubota <[email protected]> Thu, 13 Feb 2014 17:59:40 +0000
Newsgroups gmane.comp.version-control.subversion.cvs2svn.user
Message-ID <[email protected]>
------=_Part_2279_135839467.1392314386295
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Thank you Michael.

I've attached my options file but I think it's a similar problem where I'm =
trying to pick and choose directories of a large single project and convert=
 them separately.

I think I will have to make a copy of my CVS repository, remove what I don'=
t want, then  convert everything as a single project.

Thanks again.
Kevin

-----Original Message-----
From: Michael Haggerty [mailto:[email protected]]=20
Sent: Wednesday, February 12, 2014 10:40 PM
To: Kevin Tsubota
Cc: [email protected]
Subject: Re: cvs2svn errors

On 02/12/2014 07:37 PM, Kevin Tsubota wrote:
> I'm new at SVN and am attempting to convert my CVS repository to SVN.
>=20
> I do not want to convert everything and thought I could pick and=20
> choose directories.
>=20
> On the first directory everything works fine.  When I try to convert a=20
> second directory I get the following error:
>=20
> /ERROR: svnadmin failed with the following output while loading the=20
> dumpfile:/
>=20
> /svnadmin: E160020: File already exists: filesystem=20
> '279ab81a-938e-11e3-8307-1bc1b6162cbb', transaction '4498-3gy', path=20
> '/trunk'/
>
> Here are the commands that I'm using:
>
> =C3=98  /cvs2svn -s /usr/local/svnroot --existing-svnrepos=20
> /net/cvsserver/local/cvsroot/*kroot/ktl*/
>
> =C3=98  /cvs2svn -s /usr/local/svnroot --existing-svnrepos=20
> /net/cvsserver/local/cvsroot/*kroot/etc*/

The problem is not that you are picking and choosing directories, but that =
you are trying to put the results into a single Subversion repository.  Sup=
pose your tree looks like

    ktl/file1
    ktl/file2
    etc/file3
    etc/file4

then the first conversion would create the following paths in Subversion:

    trunk/
    trunk/file1
    trunk/file2
    branches/
    tags/

The second conversion would try to create the following paths:

    trunk/
    trunk/file3
    trunk/file4
    branches/
    tags/

The second conversion fails because the path "trunk" already exists.
(If not for this error, it would also fail because of "branches" and "tags"=
.

But the more serious problem is that the two conversions would try to put t=
heir results within the same directory; i.e., even if the two results could=
 somehow be married together, you would get

    trunk/
    trunk/file1
    trunk/file2
    trunk/file3
    trunk/file4
    branches/
    tags/

rather than having file1 and file2 within a "trunk/ktl" directory and
file3 and file4 within a "trunk/etc" directory, which is presumably what yo=
u want.

There would be further conflicts if files within the two hierarchies have t=
he same names or if they have branches and/or tags with the same names.

If all of these directories are a single project, with a shared set of bran=
ches and tags, then there is no reasonable alternative but to convert them =
in a single run of cvs2svn.

If these directories are in fact separate projects, with independent sets o=
f branches and tags, then what you are doing is a "multiproject conversion"=
.  If you search in the documentation for that term you will find more info=
rmation.

> Also, I've tried using an options file but get the following error:
>=20
> =C3=98  /cvs2svn --options=3D../cvs2svn.options/
>=20
> /Traceback (most recent call last):/
> /  File "./cvs2svn", line 70, in <module>/
> /    svn_main(os.path.basename(sys.argv[0]), sys.argv[1:])/
> /  File "/home/cm/cvs2svn-2.4.0/cvs2svn_lib/main.py", line 113, in svn_ma=
in/
> /    main(progname, run_options, pass_manager)/
> /  File "/home/cm/cvs2svn-2.4.0/cvs2svn_lib/main.py", line 96, in main/
> /    pass_manager.run(run_options)/
> /  File "/home/cm/cvs2svn-2.4.0/cvs2svn_lib/pass_manager.py", line=20
> 150, in run/
> /    the_pass.register_artifacts()/
> /  File "/home/cm/cvs2svn-2.4.0/cvs2svn_lib/passes.py", line 452, in=20
> register_artifacts/
> /    Ctx().revision_collector.register_artifacts(self)/
> /AttributeError: 'NoneType' object has no attribute=20
> 'register_artifacts'/

We can't really help you with this problem unless you show us your options =
file.  I can only remind you that you should start with the example options=
 file that is in the cvs2svn project and edit it to suite your preferences,=
 and to make sure that the example options file that you start with is from=
 the exact same version of cvs2svn as the one you are using for the convers=
ion.

Michael

--
Michael Haggerty
[email protected]
http://softwareswirl.blogspot.com/

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=3D1670&dsMessageId=3D=
3072967

To unsubscribe from this discussion, e-mail: [[email protected]=
ris.org].
------=_Part_2279_135839467.1392314386295
Content-Type: application/octet-stream; name=cvs2svn.options
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=cvs2svn.options; size=7312; 
	creation-date="Thu, 13 Feb 2014 17:54:57 GMT"; 
	modification-date="Thu, 13 Feb 2014 17:54:21 GMT"
Content-Description: cvs2svn.options

IyAoQmUgaW4gLSotIG1vZGU6IHB5dGhvbjsgY29kaW5nOiB1dGYtOCAtKi0gbW9kZS4pCiMKIyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQojIENvcHlyaWdodCAoYykgMjAwNi0yMDA5IENvbGxhYk5ldC4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiMKIyBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIGFzIGRlc2NyaWJlZCBp
biB0aGUgZmlsZSBDT1BZSU5HLCB3aGljaAojIHlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhcyBw
YXJ0IG9mIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIHRlcm1zCiMgYXJlIGFsc28gYXZhaWxhYmxl
IGF0IGh0dHA6Ly9zdWJ2ZXJzaW9uLnRpZ3Jpcy5vcmcvbGljZW5zZS0xLmh0bWwuCiMgSWYgbmV3
ZXIgdmVyc2lvbnMgb2YgdGhpcyBsaWNlbnNlIGFyZSBwb3N0ZWQgdGhlcmUsIHlvdSBtYXkgdXNl
IGEKIyBuZXdlciB2ZXJzaW9uIGluc3RlYWQsIGF0IHlvdXIgb3B0aW9uLgojCiMgVGhpcyBzb2Z0
d2FyZSBjb25zaXN0cyBvZiB2b2x1bnRhcnkgY29udHJpYnV0aW9ucyBtYWRlIGJ5IG1hbnkKIyBp
bmRpdmlkdWFscy4gIEZvciBleGFjdCBjb250cmlidXRpb24gaGlzdG9yeSwgc2VlIHRoZSByZXZp
c2lvbgojIGhpc3RvcnkgYW5kIGxvZ3MsIGF2YWlsYWJsZSBhdCBodHRwOi8vY3ZzMnN2bi50aWdy
aXMub3JnLy4KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQoKIyAgICAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMj
IyMjIyMjIwojICAgICAgICAgICAgICAgICAgIyMgUExFQVNFIFJFQUQgTUUhICMjCiMgICAgICAg
ICAgICAgICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIwojIFRoaXMgaXMgYSB0ZW1wbGF0ZSBm
b3IgYW4gb3B0aW9ucyBmaWxlIHRoYXQgY2FuIGJlIHVzZWQgdG8gY29uZmlndXJlCiMgY3ZzMnN2
bi4gIE1hbnkgb3B0aW9ucyBkbyBub3QgaGF2ZSBkZWZhdWx0cywgc28gaXQgaXMgZWFzaWVyIHRv
IGNvcHkKIyB0aGlzIGZpbGUgYW5kIG1vZGlmeSB3aGF0IHlvdSBuZWVkIHJhdGhlciB0aGFuIGNy
ZWF0aW5nIGEgbmV3CiMgb3B0aW9ucyBmaWxlIGZyb20gc2NyYXRjaC4KIwojIFRoaXMgZmlsZSBp
cyBpbiBQeXRob24gc3ludGF4LCBidXQgeW91IGRvbid0IG5lZWQgdG8ga25vdyBQeXRob24gdG8K
IyBtb2RpZnkgaXQuICBCdXQgaWYgeW91ICpkbyoga25vdyBQeXRob24sIHRoZW4geW91IHdpbGwg
YmUgaGFwcHkgdG8KIyBrbm93IHRoYXQgeW91IGNhbiB1c2UgYXJiaXRhcnkgUHl0aG9uIGNvbnN0
cnVjdHMgdG8gZG8gZmFuY3kKIyBjb25maWd1cmF0aW9uIHRyaWNrcy4KIwojIEJ1dCBwbGVhc2Ug
YmUgYXdhcmUgb2YgdGhlIGZvbGxvd2luZzoKIwojICogSW4gbWFueSBwbGFjZXMsIGxlYWRpbmcg
d2hpdGVzcGFjZSBpcyBzaWduaWZpY2FudCBpbiBQeXRob24gKGl0IGlzCiMgICB1c2VkIGluc3Rl
YWQgb2YgY3VybHkgYnJhY2VzIHRvIGdyb3VwIHN0YXRlbWVudHMgdG9nZXRoZXIpLgojICAgVGhl
cmVmb3JlLCBpZiB5b3UgZG9uJ3Qga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcsIGl0IGlzIGJlc3Qg
dG8KIyAgIGxlYXZlIHRoZSB3aGl0ZXNwYWNlIGFzIGl0IGlzLgojCiMgKiBJbiBub3JtYWwgc3Ry
aW5ncywgUHl0aG9uIHRyZWF0cyBhIGJhY2tzbGFzaCAoIlwiKSBhcyBhbiBlc2NhcGUKIyAgIGNo
YXJhY3Rlci4gIFRoZXJlZm9yZSwgaWYgeW91IHdhbnQgdG8gc3BlY2lmeSBhIHN0cmluZyB0aGF0
CiMgICBjb250YWlucyBhIGJhY2tzbGFzaCwgeW91IG5lZWQgZWl0aGVyIHRvIGVzY2FwZSB0aGUg
YmFja3NsYXNoIHdpdGgKIyAgIGFub3RoZXIgYmFja3NsYXNoICgiXFwiKSwgb3IgdXNlIGEgInJh
dyBzdHJpbmciLCBhcyBpbiBvbmUgaWYgdGhlCiMgICBmb2xsb3dpbmcgZXF1aXZhbGVudCBleGFt
cGxlczoKIwojICAgICAgIGN2c19leGVjdXRhYmxlID0gJ2M6XFx3aW5kb3dzXFxzeXN0ZW0zMlxc
Y3ZzLmV4ZScKIyAgICAgICBjdnNfZXhlY3V0YWJsZSA9IHInYzpcd2luZG93c1xzeXN0ZW0zMlxj
dnMuZXhlJwojCiMgICBTZWUgaHR0cDovL2RvY3MucHl0aG9uLm9yZy90dXRvcmlhbC9pbnRyb2R1
Y3Rpb24uaHRtbCNzdHJpbmdzIGZvcgojICAgbW9yZSBpbmZvcm1hdGlvbi4KIwojIFR3byBpZGVu
dGlmaWVycyB3aWxsIGhhdmUgYmVlbiBkZWZpbmVkIGJlZm9yZSB0aGlzIGZpbGUgaXMgZXhlY3V0
ZWQsCiMgYW5kIGNhbiBiZSB1c2VkIGZyZWVseSB3aXRoaW4gdGhpcyBmaWxlOgojCiMgICAgIGN0
eCAtLSBhIEN0eCBvYmplY3QgKHNlZSBjdnMyc3ZuX2xpYi9jb250ZXh0LnB5KSwgd2hpY2ggaG9s
ZHMKIyAgICAgICAgIG1hbnkgY29uZmlndXJhdGlvbiBvcHRpb25zCiMKIyAgICAgcnVuX29wdGlv
bnMgLS0gYW4gaW5zdGFuY2Ugb2YgdGhlIFNWTlJ1bk9wdGlvbnMgY2xhc3MgKHNlZQojICAgICAg
ICAgY3ZzMnN2bl9saWIvc3ZuX3J1bl9vcHRpb25zLnB5KSwgd2hpY2ggaG9sZHMgc29tZSB2YXJp
YWJsZXMKIyAgICAgICAgIGdvdmVybmluZyBob3cgY3ZzMnN2biBpcyBydW4KCgojIEltcG9ydCBz
b21lIG1vZHVsZXMgdGhhdCBhcmUgdXNlZCBpbiBzZXR0aW5nIHRoZSBvcHRpb25zOgpmcm9tIGN2
czJzdm5fbGliIGltcG9ydCBjb25maWcKZnJvbSBjdnMyc3ZuX2xpYiBpbXBvcnQgY2hhbmdlc2V0
X2RhdGFiYXNlCmZyb20gY3ZzMnN2bl9saWIuY29tbW9uIGltcG9ydCBDVlNUZXh0RGVjb2Rlcgpm
cm9tIGN2czJzdm5fbGliLmxvZyBpbXBvcnQgbG9nZ2VyCmZyb20gY3ZzMnN2bl9saWIuc3ZuX291
dHB1dF9vcHRpb24gaW1wb3J0IER1bXBmaWxlT3V0cHV0T3B0aW9uCmZyb20gY3ZzMnN2bl9saWIu
c3ZuX291dHB1dF9vcHRpb24gaW1wb3J0IEV4aXN0aW5nUmVwb3NpdG9yeU91dHB1dE9wdGlvbgpm
cm9tIGN2czJzdm5fbGliLnN2bl9vdXRwdXRfb3B0aW9uIGltcG9ydCBOZXdSZXBvc2l0b3J5T3V0
cHV0T3B0aW9uCmZyb20gY3ZzMnN2bl9saWIuc3ZuX3J1bl9vcHRpb25zIGltcG9ydCBTVk5FT0xG
aXhQcm9wZXJ0eVNldHRlcgpmcm9tIGN2czJzdm5fbGliLnN2bl9ydW5fb3B0aW9ucyBpbXBvcnQg
U1ZOS2V5d29yZEhhbmRsaW5nUHJvcGVydHlTZXR0ZXIKZnJvbSBjdnMyc3ZuX2xpYi5yZXZpc2lv
bl9tYW5hZ2VyIGltcG9ydCBOdWxsUmV2aXNpb25Db2xsZWN0b3IKZnJvbSBjdnMyc3ZuX2xpYi5y
Y3NfcmV2aXNpb25fbWFuYWdlciBpbXBvcnQgUkNTUmV2aXNpb25SZWFkZXIKZnJvbSBjdnMyc3Zu
X2xpYi5jdnNfcmV2aXNpb25fbWFuYWdlciBpbXBvcnQgQ1ZTUmV2aXNpb25SZWFkZXIKZnJvbSBj
dnMyc3ZuX2xpYi5jaGVja291dF9pbnRlcm5hbCBpbXBvcnQgSW50ZXJuYWxSZXZpc2lvbkNvbGxl
Y3Rvcgpmcm9tIGN2czJzdm5fbGliLmNoZWNrb3V0X2ludGVybmFsIGltcG9ydCBJbnRlcm5hbFJl
dmlzaW9uUmVhZGVyCmZyb20gY3ZzMnN2bl9saWIuc3ltYm9sX3N0cmF0ZWd5IGltcG9ydCBBbGxC
cmFuY2hSdWxlCmZyb20gY3ZzMnN2bl9saWIuc3ltYm9sX3N0cmF0ZWd5IGltcG9ydCBBbGxUYWdS
dWxlCmZyb20gY3ZzMnN2bl9saWIuc3ltYm9sX3N0cmF0ZWd5IGltcG9ydCBCcmFuY2hJZkNvbW1p
dHNSdWxlCmZyb20gY3ZzMnN2bl9saWIuc3ltYm9sX3N0cmF0ZWd5IGltcG9ydCBFeGNsdWRlUmVn
ZXhwU3RyYXRlZ3lSdWxlCmZyb20gY3ZzMnN2bl9saWIuc3ltYm9sX3N0cmF0ZWd5IGltcG9ydCBG
b3JjZUJyYW5jaFJlZ2V4cFN0cmF0ZWd5UnVsZQpmcm9tIGN2czJzdm5fbGliLnN5bWJvbF9zdHJh
dGVneSBpbXBvcnQgRm9yY2VUYWdSZWdleHBTdHJhdGVneVJ1bGUKZnJvbSBjdnMyc3ZuX2xpYi5z
eW1ib2xfc3RyYXRlZ3kgaW1wb3J0IEV4Y2x1ZGVUcml2aWFsSW1wb3J0QnJhbmNoUnVsZQpmcm9t
IGN2czJzdm5fbGliLnN5bWJvbF9zdHJhdGVneSBpbXBvcnQgRXhjbHVkZVZlbmRvckJyYW5jaFJ1
bGUKZnJvbSBjdnMyc3ZuX2xpYi5zeW1ib2xfc3RyYXRlZ3kgaW1wb3J0IEhldXJpc3RpY1N0cmF0
ZWd5UnVsZQpmcm9tIGN2czJzdm5fbGliLnN5bWJvbF9zdHJhdGVneSBpbXBvcnQgVW5hbWJpZ3Vv
dXNVc2FnZVJ1bGUKZnJvbSBjdnMyc3ZuX2xpYi5zeW1ib2xfc3RyYXRlZ3kgaW1wb3J0IEhldXJp
c3RpY1ByZWZlcnJlZFBhcmVudFJ1bGUKZnJvbSBjdnMyc3ZuX2xpYi5zeW1ib2xfc3RyYXRlZ3kg
aW1wb3J0IFN5bWJvbEhpbnRzRmlsZVJ1bGUKZnJvbSBjdnMyc3ZuX2xpYi5zeW1ib2xfdHJhbnNm
b3JtIGltcG9ydCBSZXBsYWNlU3Vic3RyaW5nc1N5bWJvbFRyYW5zZm9ybQpmcm9tIGN2czJzdm5f
bGliLnN5bWJvbF90cmFuc2Zvcm0gaW1wb3J0IFJlZ2V4cFN5bWJvbFRyYW5zZm9ybQpmcm9tIGN2
czJzdm5fbGliLnN5bWJvbF90cmFuc2Zvcm0gaW1wb3J0IElnbm9yZVN5bWJvbFRyYW5zZm9ybQpm
cm9tIGN2czJzdm5fbGliLnN5bWJvbF90cmFuc2Zvcm0gaW1wb3J0IE5vcm1hbGl6ZVBhdGhzU3lt
Ym9sVHJhbnNmb3JtCmZyb20gY3ZzMnN2bl9saWIucHJvcGVydHlfc2V0dGVycyBpbXBvcnQgQXV0
b1Byb3BzUHJvcGVydHlTZXR0ZXIKZnJvbSBjdnMyc3ZuX2xpYi5wcm9wZXJ0eV9zZXR0ZXJzIGlt
cG9ydCBDVlNCaW5hcnlGaWxlRGVmYXVsdE1pbWVUeXBlU2V0dGVyCmZyb20gY3ZzMnN2bl9saWIu
cHJvcGVydHlfc2V0dGVycyBpbXBvcnQgQ1ZTQmluYXJ5RmlsZUVPTFN0eWxlU2V0dGVyCmZyb20g
Y3ZzMnN2bl9saWIucHJvcGVydHlfc2V0dGVycyBpbXBvcnQgQ1ZTUmV2aXNpb25OdW1iZXJTZXR0
ZXIKZnJvbSBjdnMyc3ZuX2xpYi5wcm9wZXJ0eV9zZXR0ZXJzIGltcG9ydCBEZWZhdWx0RU9MU3R5
bGVTZXR0ZXIKI2Zyb20gY3ZzMnN2bl9saWIucHJvcGVydHlfc2V0dGVycyBpbXBvcnQgRU9MU3R5
bGVmcm9tTWltZVR5cGVTZXR0ZXIKZnJvbSBjdnMyc3ZuX2xpYi5wcm9wZXJ0eV9zZXR0ZXJzIGlt
cG9ydCBFeGVjdXRhYmxlUHJvcGVydHlTZXR0ZXIKZnJvbSBjdnMyc3ZuX2xpYi5wcm9wZXJ0eV9z
ZXR0ZXJzIGltcG9ydCBEZXNjcmlwdGlvblByb3BlcnR5U2V0dGVyCmZyb20gY3ZzMnN2bl9saWIu
cHJvcGVydHlfc2V0dGVycyBpbXBvcnQgS2V5d29yZHNQcm9wZXJ0eVNldHRlcgpmcm9tIGN2czJz
dm5fbGliLnByb3BlcnR5X3NldHRlcnMgaW1wb3J0IE1pbWVNYXBwZXIKZnJvbSBjdnMyc3ZuX2xp
Yi5wcm9wZXJ0eV9zZXR0ZXJzIGltcG9ydCBTVk5CaW5hcnlGaWxlS2V5d29yZHNQcm9wZXJ0eVNl
dHRlcgoKIyBUbyBjaG9vc2UgdGhlIGxldmVsIG9mIGxvZ2dpbmcgb3V0cHV0LCB1bmNvbW1lbnQg
b25lIG9mIHRoZQojIGZvbGxvd2luZyBsaW5lczoKI2xvZ2dlci5sb2dfbGV2ZWwgPSBsb2dnZXIu
V0FSTgojbG9nZ2VyLmxvZ19sZXZlbCA9IGxvZ2dlci5RVUlFVApsb2dnZXIubG9nX2xldmVsID0g
bG9nZ2VyLk5PUk1BTAojbG9nZ2VyLmxvZ19sZXZlbCA9IGxvZ2dlci5WRVJCT1NFCiNsb2dnZXIu
bG9nX2xldmVsID0gbG9nZ2VyLkRFQlVHCgoKIyBUaGUgZGlyZWN0b3J5IHRvIHVzZSBmb3IgdGVt
cG9yYXJ5IGZpbGVzOgpjdHgudG1wZGlyID0gcidjdnMyc3ZuLXRtcCcKCiMgVXNlIHRoaXMgb3V0
cHV0IG9wdGlvbiBpZiB5b3Ugd291bGQgbGlrZSBjdnMyc3ZuIHRvIGNyZWF0ZSBhIG5ldyBTVk4K
IyByZXBvc2l0b3J5IGFuZCBzdG9yZSB0aGUgY29udmVydGVkIHJlcG9zaXRvcnkgdGhlcmUuICBU
aGUgZmlyc3QKIyBhcmd1bWVudCBpcyB0aGUgcGF0aCB0byB3aGljaCB0aGUgcmVwb3NpdG9yeSBz
aG91bGQgYmUgd3JpdHRlbiAodGhpcwojIHJlcG9zaXRvcnkgbXVzdCBub3QgYWxyZWFkeSBleGlz
dCkuICBUaGUgKG9wdGlvbmFsKSBmc190eXBlIGFyZ3VtZW50CiMgYWxsb3dzIGEgLS1mcy10eXBl
IG9wdGlvbiB0byBiZSBwYXNzZWQgdG8gInN2bmFkbWluIGNyZWF0ZSIuICBUaGUKIyAob3B0aW9u
YWwpIGJkYl90eG5fbm9zeW5jIGFyZ3VtZW50IGNhbiBiZSBzcGVjaWZpZWQgdG8gc2V0IHRoZQoj
IC0tYmRiLXR4bi1ub3N5bmMgb3B0aW9uIG9uIGEgYmRiIHJlcG9zaXRvcnkuICBUaGUgKG9wdGlv
bmFsKQojIGNyZWF0ZV9vcHRpb25zIGFyZ3VtZW50IGNhbiBiZSBzcGVjaWZpZWQgdG8gc2V0IGEg
bGlzdCBvZiB2ZXJiYXRpbQojIG9wdGlvbnMgdG8gYmUgcGFzc2VkIHRvICJzdm5hZG1pbiBjcmVh
dGUiLiAgVGhlIChvcHRpb25hbCkKIyBhdXRob3JfdHJhbnNmb3JtcyBhcmd1bWVudCBhbGxvd3Mg
Q1ZTIGF1dGhvciBuYW1lcyB0byBiZSB0cmFuc2Zvcm1lZAojIGFyYml0cmFyaWx5IGludG8gU1ZO
IGF1dGhvciBuYW1lcyAoYXMgZGVzY3JpYmVkIGFib3ZlKToKY3R4Lm91dHB1dF9vcHRpb24gPSBO
ZXdSZXBvc2l0b3J5T3V0cHV0T3B0aW9uKAogICAgcicvdXNyL2xvY2FsL3N2bnJvb3Qva3Jvb3Qn
LAogICAgZnNfdHlwZT0nZnNmcycsCiAgICAjYmRiX3R4bl9ub3N5bmM9RmFsc2UsCiAgICAjY3Jl
YXRlX29wdGlvbnM9WyctLXByZS0xLjUtY29tcGF0aWJsZSddLAogICAgI2F1dGhvcl90cmFuc2Zv
cm1zPWF1dGhvcl90cmFuc2Zvcm1zLAogICAgKQoKIyBVc2UgdGhpcyBvdXRwdXQgb3B0aW9uIGlm
IHlvdSB3b3VsZCBsaWtlIGN2czJzdm4gdG8gc3RvcmUgdGhlCiMgY29udmVydGVkIENWUyByZXBv
c2l0b3J5IGludG8gYW4gU1ZOIHJlcG9zaXRvcnkgdGhhdCBhbHJlYWR5IGV4aXN0cy4KIyBUaGUg
Zmlyc3QgYXJndW1lbnQgaXMgdGhlIGZpbGVzeXN0ZW0gcGF0aCBvZiBhbiBleGlzdGluZyBsb2Nh
bCBTVk4KIyByZXBvc2l0b3J5ICh0aGlzIHJlcG9zaXRvcnkgbXVzdCBhbHJlYWR5IGV4aXN0KS4g
IFRoZQojIGF1dGhvcl90cmFuc2Zvcm1zIG9wdGlvbiBpcyBhcyBkZXNjcmliZWQgYWJvdmU6CiMj
Y3R4Lm91dHB1dF9vcHRpb24gPSBFeGlzdGluZ1JlcG9zaXRvcnlPdXRwdXRPcHRpb24oCiMjICAg
IHInL3Vzci9sb2NhbC9zdm5yb290JywgIyBQYXRoIHRvIHJlcG9zaXRvcnkKICMgICAjYXV0aG9y
X3RyYW5zZm9ybXM9YXV0aG9yX3RyYW5zZm9ybXMsCiMjICAgICkKCnByb2plY3RzID0gWydrcm9v
dC9ldGMnLCAna3Jvb3Qva3RsJywgJ2tyb290L2t1aScsICdrcm9vdC9rc3MvY29tbW9uJywgJ2ty
b290L2tzcy90Y3MnXQoKY3ZzX3JlcG9fbWFpbl9kaXIgPSByJy9uZXQvY3Zzc2VydmVyL2xvY2Fs
L2N2c3Jvb3QnCmZvciBwcm9qZWN0IGluIHByb2plY3RzOgogICAgcnVuX29wdGlvbnMuYWRkX3By
b2plY3QoCiAgICAgICAgY3ZzX3JlcG9fbWFpbl9kaXIgKyAnLycgKyBwcm9qZWN0LAogICAgICAg
IHRydW5rX3BhdGg9KHByb2plY3QgKyAnL3RydW5rJyksCiAgICAgICAgYnJhbmNoZXNfcGF0aD0o
cHJvamVjdCArICcvYnJhbmNoZXMnKSwKICAgICAgICB0YWdzX3BhdGg9KHByb2plY3QgKyAnL3Rh
Z3MnKSwKICAgICAgICApCg==
------=_Part_2279_135839467.1392314386295--