[MonoDevelop] Love for File Browser

Iñigo Illán kodeport@terra.es
Fri, 27 Feb 2004 16:02:23 +0100


--=-9AYZ4HHxzz9FUdgZl0ZP
Content-Type: multipart/mixed; boundary="=-m8ZdrRNwBNhsmbAewLDo"


--=-m8ZdrRNwBNhsmbAewLDo
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

I have write some patches for the file browser included on MonoDevelop.

What this patches do are:

	+ Remove . and .. directories from the directories tree view.

	+ Add a button for going to the up directory.

	+ You can now open nautilus or a terminal just clicking with the with
the right button on a directory and selecting the option. For know the
browser and the terminal are hardcoded but we should get gnome's
default.

	+ Added a pixmap for all the directories on the directory tree view.

	+ Do the directory view work in a correct way (now you have to enter to
the directory to view the files in).

There are some known issues so this should not go in MonoDevelop v0.1.
The patches have been tested against rev 1018. I hope you like it.

--=-m8ZdrRNwBNhsmbAewLDo
Content-Disposition: attachment; filename=compileguiutilsfirst.patch
Content-Type: text/plain; name=compileguiutilsfirst.patch; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64

LS0tIE1vbm9EZXZlbG9wLmJhay9zcmMvTGlicmFyaWVzL01ha2VmaWxlLmFtCTIwMDQtMDItMDkg
MDM6MDU6MTIuMDAwMDAwMDAwICswMTAwDQorKysgTW9ub0RldmVsb3Avc3JjL0xpYnJhcmllcy9N
YWtlZmlsZS5hbQkyMDA0LTAyLTI3IDE1OjMxOjU4LjAwMDAwMDAwMCArMDEwMA0KQEAgLTEgKzEg
QEANCi1TVUJESVJTPVNoYXJwQXNzZW1ibHkgU2hhcnBSZWZhY3RvcnkgTW9ub0RldmVsb3AuQ29y
ZSBNb25vRGV2ZWxvcC5HdWkuV2lkZ2V0cyBNb25vRGV2ZWxvcC5HdWkuVXRpbHMNCitTVUJESVJT
PVNoYXJwQXNzZW1ibHkgU2hhcnBSZWZhY3RvcnkgTW9ub0RldmVsb3AuQ29yZSBNb25vRGV2ZWxv
cC5HdWkuVXRpbHMgTW9ub0RldmVsb3AuR3VpLldpZGdldHMNCg==

--=-m8ZdrRNwBNhsmbAewLDo
Content-Disposition: attachment; filename=filescout.patch
Content-Type: text/plain; name=filescout.patch; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64

LS0tIE1vbm9EZXZlbG9wLmJhay9zcmMvTWFpbi9CYXNlL0d1aS9QYWRzL0ZpbGVTY291dC5jcwky
MDA0LTAyLTIzIDEwOjQyOjExLjAwMDAwMDAwMCArMDEwMA0KKysrIE1vbm9EZXZlbG9wL3NyYy9N
YWluL0Jhc2UvR3VpL1BhZHMvRmlsZVNjb3V0LmNzCTIwMDQtMDItMjcgMTI6NTc6MzcuMDAwMDAw
MDAwICswMTAwDQpAQCAtMzEwLDE2ICszMTAsMTcgQEANCiAJCQ0KIAkJRmlsZUxpc3QgICBmaWxl
bGlzdGVyID0gbmV3IEZpbGVMaXN0KCk7DQogCQlGaWxlQnJvd3NlciBmYiA9IG5ldyBGaWxlQnJv
d3NlciAoKTsNCi0JCUd0ay5FbnRyeSBwYXRoRW50cnk7DQorCQkvLyBHdGsuRW50cnkgcGF0aEVu
dHJ5Ow0KIAkJUHJvcGVydHlTZXJ2aWNlIFByb3BlcnR5U2VydmljZSA9IChQcm9wZXJ0eVNlcnZp
Y2UpIFNlcnZpY2VNYW5hZ2VyLlNlcnZpY2VzLkdldFNlcnZpY2UgKHR5cGVvZiAoUHJvcGVydHlT
ZXJ2aWNlKSk7DQogDQogCQlwdWJsaWMgRmlsZVNjb3V0KCkNCiAJCXsNCi0JCQlmYi5UcmVlVmll
dy5TZWxlY3Rpb24uQ2hhbmdlZCArPSBuZXcgRXZlbnRIYW5kbGVyIChPbkRpckNoYW5nZWQpOw0K
KwkJCS8vIGZiLlRyZWVWaWV3LlNlbGVjdGlvbi5DaGFuZ2VkICs9IG5ldyBFdmVudEhhbmRsZXIg
KE9uRGlyQ2hhbmdlZCk7DQorCQkJZmIuRGlyZWN0b3J5Q2hhbmdlZEV2ZW50ICs9IG5ldyBEaXJl
Y3RvcnlDaGFuZ2VkRXZlbnRIYW5kbGVyIChPbkRpckNoYW5nZWQpOw0KIAkJCWZpbGVsaXN0ZXIu
Um93QWN0aXZhdGVkICs9IG5ldyBHdGsuUm93QWN0aXZhdGVkSGFuZGxlcihGaWxlU2VsZWN0ZWQp
Ow0KIA0KIAkJCUd0ay5GcmFtZSB0cmVlZiAgPSBuZXcgR3RrLkZyYW1lKCk7DQotCQkJR3RrLlZC
b3ggdXRpbFZCb3ggPSBuZXcgR3RrLlZCb3ggKGZhbHNlLCAwKTsNCisJCQkvKkd0ay5WQm94IHV0
aWxWQm94ID0gbmV3IEd0ay5WQm94IChmYWxzZSwgMCk7DQogCQkJR3RrLkhCb3ggaGJveCA9IG5l
dyBHdGsuSEJveCAoZmFsc2UsIDYpOw0KIAkJCXBhdGhFbnRyeSA9IG5ldyBHdGsuRW50cnkgKGZi
LkN1cnJlbnREaXIpOw0KIAkJCXBhdGhFbnRyeS5BY3RpdmF0ZWQgKz0gbmV3IEV2ZW50SGFuZGxl
ciAoT25QYXRoRW50cnlBY3RpdmF0ZWQpOw0KQEAgLTMzMSwzOCArMzMyLDI4IEBADQogCQkJaG9t
ZUJ1dHRvbi5DbGlja2VkICs9IG5ldyBFdmVudEhhbmRsZXIgKE9uSG9tZUNsaWNrZWQpOw0KIAkJ
CWhib3guUGFja1N0YXJ0IChob21lQnV0dG9uLCBmYWxzZSwgZmFsc2UsIDApOw0KIAkJCXV0aWxW
Qm94LlBhY2tTdGFydCAoaGJveCwgZmFsc2UsIHRydWUsIDApOw0KLQkJCXV0aWxWQm94LlBhY2tT
dGFydCAoZmIpOw0KLQkJCXRyZWVmLkFkZCh1dGlsVkJveCk7DQorCQkJdXRpbFZCb3guUGFja1N0
YXJ0IChwYXRoRW50cnksIGZhbHNlLCB0cnVlLCAwKTsNCisJCQl1dGlsVkJveC5QYWNrU3RhcnQg
KGZiKTsqLw0KKwkJCXRyZWVmLkFkZChmYik7DQogCQkJDQogCQkJR3RrLlNjcm9sbGVkV2luZG93
IGxpc3RzdyA9IG5ldyBHdGsuU2Nyb2xsZWRXaW5kb3cgKCk7DQogCQkJbGlzdHN3LkFkZChmaWxl
bGlzdGVyKTsNCi0JCQlHdGsuRnJhbWUgbGlzdGYgID0gbmV3IEd0ay5GcmFtZSgpOw0KLQkJCWxp
c3RmLkFkZChsaXN0c3cpOw0KKwkJCS8qR3RrLkZyYW1lIGxpc3RmICA9IG5ldyBHdGsuRnJhbWUo
KTsNCisJCQlsaXN0Zi5BZGQobGlzdHN3KTsqLw0KIAkJCQ0KIAkJCVBhY2sxKHRyZWVmLCB0cnVl
LCB0cnVlKTsNCi0JCQlQYWNrMihsaXN0ZiwgdHJ1ZSwgdHJ1ZSk7DQorCQkJUGFjazIobGlzdHN3
LCB0cnVlLCB0cnVlKTsNCiANCiAJCQlmYi5UcmVlVmlldy5TZWxlY3Rpb24uU2VsZWN0UGF0aCAo
bmV3IEd0ay5UcmVlUGF0aCAoIjAiKSk7DQorCQkJDQorCQkJT25EaXJDaGFuZ2VkKGZiLkN1cnJl
bnREaXIpOw0KIAkJfQ0KIA0KLQkJdm9pZCBPbkhvbWVDbGlja2VkIChvYmplY3Qgc2VuZGVyLCBF
dmVudEFyZ3MgYXJncykNCi0JCXsNCi0JCQlmYi5DdXJyZW50RGlyID0gRW52aXJvbm1lbnQuR2V0
RW52aXJvbm1lbnRWYXJpYWJsZSAoIkhPTUUiKTsNCi0JCQlPbkRpckNoYW5nZWQgKHNlbmRlciwg
YXJncyk7DQotCQl9DQotDQotCQl2b2lkIE9uUGF0aEVudHJ5QWN0aXZhdGVkIChvYmplY3Qgc2Vu
ZGVyLCBFdmVudEFyZ3MgYXJncykNCi0JCXsNCi0JCQlpZiAoRGlyZWN0b3J5LkV4aXN0cyAocGF0
aEVudHJ5LlRleHQuVHJpbSAoKSkpDQotCQkJew0KLQkJCQlmYi5DdXJyZW50RGlyID0gcGF0aEVu
dHJ5LlRleHQ7DQotCQkJCU9uRGlyQ2hhbmdlZCAoc2VuZGVyLCBhcmdzKTsNCi0JCQl9DQotCQl9
DQogCQkNCi0JCXZvaWQgT25EaXJDaGFuZ2VkKG9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdz
KSANCisJCS8vIHZvaWQgT25EaXJDaGFuZ2VkKG9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdz
KQ0KKwkJdm9pZCBPbkRpckNoYW5nZWQgKHN0cmluZyBwYXRoKSANCiAJCXsNCi0JCQlwYXRoRW50
cnkuVGV4dCA9IGZiLkN1cnJlbnREaXI7DQorCQkJLy8gcGF0aEVudHJ5LlRleHQgPSBmYi5DdXJy
ZW50RGlyOw0KIAkJCWZpbGVsaXN0ZXIuQ2xlYXIgKCk7DQogDQogCQkJUHJvcGVydHlTZXJ2aWNl
IHAgPSAoUHJvcGVydHlTZXJ2aWNlKVNlcnZpY2VNYW5hZ2VyLlNlcnZpY2VzLkdldFNlcnZpY2Uo
dHlwZW9mKFByb3BlcnR5U2VydmljZSkpOw0K

--=-m8ZdrRNwBNhsmbAewLDo
Content-Disposition: attachment; filename=loveforfilebrowser.patch
Content-Type: text/plain; name=loveforfilebrowser.patch; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64

LS0tIE1vbm9EZXZlbG9wLmJhay9zcmMvTGlicmFyaWVzL01vbm9EZXZlbG9wLkd1aS5XaWRnZXRz
L0ZpbGVCcm93c2VyL0ZpbGVCcm93c2VyLmNzCTIwMDQtMDItMjMgMTA6NDI6MTEuMDAwMDAwMDAw
ICswMTAwDQorKysgTW9ub0RldmVsb3Avc3JjL0xpYnJhcmllcy9Nb25vRGV2ZWxvcC5HdWkuV2lk
Z2V0cy9GaWxlQnJvd3Nlci9GaWxlQnJvd3Nlci5jcwkyMDA0LTAyLTI3IDEzOjQxOjExLjAwMDAw
MDAwMCArMDEwMA0KQEAgLTQsMTkgKzQsMjkgQEANCiAvLw0KIA0KIHVzaW5nIFN5c3RlbTsNCit1
c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7DQogdXNpbmcgU3lzdGVtLklPOw0KIHVzaW5nIEd0azsN
CiB1c2luZyBHdGtTaGFycDsNCiANCiB1c2luZyBJQ1NoYXJwQ29kZS5Db3JlLlByb3BlcnRpZXM7
DQogdXNpbmcgSUNTaGFycENvZGUuQ29yZS5TZXJ2aWNlczsNCit1c2luZyBNb25vRGV2ZWxvcC5H
dWkuVXRpbHM7DQordXNpbmcgTW9ub0RldmVsb3AuR3VpVXRpbHM7DQogDQogbmFtZXNwYWNlIE1v
bm9EZXZlbG9wLkd1aS5XaWRnZXRzDQogew0KLQlwdWJsaWMgY2xhc3MgRmlsZUJyb3dzZXIgOiBT
Y3JvbGxlZFdpbmRvdw0KKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEaXJlY3RvcnlDaGFuZ2VkRXZl
bnRIYW5kbGVyIChzdHJpbmcgcGF0aCk7DQorDQorCXB1YmxpYyBjbGFzcyBGaWxlQnJvd3NlciA6
IFZCb3gNCiAJew0KKwkJcHVibGljIERpcmVjdG9yeUNoYW5nZWRFdmVudEhhbmRsZXIgRGlyZWN0
b3J5Q2hhbmdlZEV2ZW50Ow0KIAkJcHJpdmF0ZSBzdGF0aWMgR0xpYi5HVHlwZSBndHlwZTsNCiAJ
CXByaXZhdGUgR3RrLlRyZWVWaWV3IHR2Ow0KKwkJcHJpdmF0ZSBHdGsuU2Nyb2xsZWRXaW5kb3cg
c2Nyb2xsZWR3aW5kb3c7DQorCQlwcml2YXRlIEd0ay5IQm94IGJ1dHRvbmJveDsNCisJCXByaXZh
dGUgR3RrLkJ1dHRvbiB1cGJ1dHRvbiwgaG9tZWJ1dHRvbjsNCisJCXByaXZhdGUgR3RrLkVudHJ5
IGVudHJ5Ow0KIAkJcHJpdmF0ZSBMaXN0U3RvcmUgc3RvcmU7DQogCQlwcml2YXRlIHN0cmluZyBj
dXJyZW50RGlyOw0KIAkJcHJpdmF0ZSBib29sIGlnbm9yZUhpZGRlbiA9IHRydWU7DQpAQCAtMjYs
MjQgKzM2LDY2IEBADQogDQogCQlwdWJsaWMgRmlsZUJyb3dzZXIgKCkgOiBiYXNlIChHVHlwZSkN
CiAJCXsNCi0JCQl0aGlzLlZzY3JvbGxiYXJQb2xpY3kgPSBQb2xpY3lUeXBlLkF1dG9tYXRpYzsN
Ci0JCQl0aGlzLkhzY3JvbGxiYXJQb2xpY3kgPSBQb2xpY3lUeXBlLkF1dG9tYXRpYzsNCisJCQlp
ZiAoIVZmcy5Jbml0aWFsaXplZCkgew0KKwkJCQlWZnMuSW5pdCgpOw0KKwkJCX0NCisNCisJCQlz
Y3JvbGxlZHdpbmRvdyA9IG5ldyBTY3JvbGxlZFdpbmRvdygpOw0KKwkJCXNjcm9sbGVkd2luZG93
LlZzY3JvbGxiYXJQb2xpY3kgPSBQb2xpY3lUeXBlLkF1dG9tYXRpYzsNCisJCQlzY3JvbGxlZHdp
bmRvdy5Ic2Nyb2xsYmFyUG9saWN5ID0gUG9saWN5VHlwZS5BdXRvbWF0aWM7DQorDQorCQkJaG9t
ZWJ1dHRvbiA9IG5ldyBHdGsuQnV0dG9uICgpOw0KKwkJCS8vIEdkay5QaXhidWYgaG9tZWJ1dHRv
bnBpeCA9IEZpbGVJY29uTG9hZGVyLkdldFBpeGJ1ZkZvclR5cGUgKCJnbm9tZS1ob21lIik7DQor
CQkJaG9tZWJ1dHRvbi5BZGQgKG5ldyBHdGsuSW1hZ2UgKCJndGstaG9tZSIsIEd0ay5JY29uU2l6
ZS5MYXJnZVRvb2xiYXIpKTsgLy8gaG9tZWJ1dHRvbnBpeC5TY2FsZVNpbXBsZSAoMjAsIDIwLCBH
ZGsuSW50ZXJwVHlwZS5CaWxpbmVhcikpKTsNCisJCQlob21lYnV0dG9uLlJlbGllZiA9IEd0ay5S
ZWxpZWZTdHlsZS5Ob25lOw0KKwkJCWhvbWVidXR0b24uQ2xpY2tlZCArPSBuZXcgRXZlbnRIYW5k
bGVyIChPbkhvbWVDbGlja2VkKTsNCisNCisJCQl1cGJ1dHRvbiA9IG5ldyBHdGsuQnV0dG9uICgp
Ow0KKwkJCXVwYnV0dG9uLkFkZCAobmV3IEd0ay5JbWFnZSAoImd0ay1nby11cCIsIEd0ay5JY29u
U2l6ZS5MYXJnZVRvb2xiYXIpKTsNCisJCQl1cGJ1dHRvbi5SZWxpZWYgPSBHdGsuUmVsaWVmU3R5
bGUuTm9uZTsNCisJCQl1cGJ1dHRvbi5DbGlja2VkICs9IG5ldyBFdmVudEhhbmRsZXIgKE9uVXBD
bGlja2VkKTsNCisNCisJCQllbnRyeSA9IG5ldyBHdGsuRW50cnkoKTsNCisJCQllbnRyeS5BY3Rp
dmF0ZWQgKz0gbmV3IEV2ZW50SGFuZGxlciAoT25FbnRyeUFjdGl2YXRlZCk7DQorDQorCQkJYnV0
dG9uYm94ID0gbmV3IEhCb3goZmFsc2UsIDApOw0KKwkJCS8vIGJ1dHRvbmJveC5MYXlvdXRTdHls
ZSA9IEd0ay5CdXR0b25Cb3hTdHlsZS5TdGFydDsNCisJCQlidXR0b25ib3guUGFja1N0YXJ0KHVw
YnV0dG9uLCBmYWxzZSwgZmFsc2UsIDApOw0KKwkJCWJ1dHRvbmJveC5QYWNrU3RhcnQoaG9tZWJ1
dHRvbiwgZmFsc2UsIGZhbHNlLCAwKTsNCisJCQlidXR0b25ib3guUGFja1N0YXJ0KGVudHJ5LCB0
cnVlLCB0cnVlLCAwKTsNCiANCiAJCQlJUHJvcGVydGllcyBwID0gKElQcm9wZXJ0aWVzKSBQcm9w
ZXJ0eVNlcnZpY2UuR2V0UHJvcGVydHkgKCJTaGFycERldmVsb3AuVUkuU2VsZWN0U3R5bGVPcHRp
b25zIiwgbmV3IERlZmF1bHRQcm9wZXJ0aWVzICgpKTsNCiAJCQlpZ25vcmVIaWRkZW4gPSAhcC5H
ZXRQcm9wZXJ0eSAoIklDU2hhcnBDb2RlLlNoYXJwRGV2ZWxvcC5HdWkuRmlsZVNjb3V0LlNob3dI
aWRkZW4iLCBmYWxzZSk7DQogDQogCQkJdHYgPSBuZXcgR3RrLlRyZWVWaWV3ICgpOw0KIAkJCXR2
LlJ1bGVzSGludCA9IHRydWU7DQotCQkJdHYuQXBwZW5kQ29sdW1uICgiRGlyZWN0b3JpZXMiLCBu
ZXcgQ2VsbFJlbmRlcmVyVGV4dCAoKSwgInRleHQiLCAwKTsNCi0JCQlzdG9yZSA9IG5ldyBMaXN0
U3RvcmUgKHR5cGVvZiAoc3RyaW5nKSk7DQotCQkJY3VycmVudERpciA9IEVudmlyb25tZW50Lkdl
dEVudmlyb25tZW50VmFyaWFibGUgKCJIT01FIik7DQotCQkJUG9wdWxhdGUgKCk7DQorDQorCQkJ
VHJlZVZpZXdDb2x1bW4gZGlyZWN0b3J5Y29sdW1uID0gbmV3IFRyZWVWaWV3Q29sdW1uKCk7DQor
CQkJZGlyZWN0b3J5Y29sdW1uLlRpdGxlID0gIkRpcmVjdG9yaWVzIjsNCisJCQkNCisJCQlHdGsu
Q2VsbFJlbmRlcmVyUGl4YnVmIHBpeF9yZW5kZXIgPSBuZXcgR3RrLkNlbGxSZW5kZXJlclBpeGJ1
ZiAoKTsNCisJCQlkaXJlY3Rvcnljb2x1bW4uUGFja1N0YXJ0IChwaXhfcmVuZGVyLCBmYWxzZSk7
DQorCQkJZGlyZWN0b3J5Y29sdW1uLkFkZEF0dHJpYnV0ZSAocGl4X3JlbmRlciwgInBpeGJ1ZiIs
IDApOw0KKw0KKwkJCUd0ay5DZWxsUmVuZGVyZXJUZXh0IHRleHRfcmVuZGVyID0gbmV3IEd0ay5D
ZWxsUmVuZGVyZXJUZXh0KCk7DQorCQkJZGlyZWN0b3J5Y29sdW1uLlBhY2tTdGFydCAodGV4dF9y
ZW5kZXIsIGZhbHNlKTsNCisJCQlkaXJlY3Rvcnljb2x1bW4uQWRkQXR0cmlidXRlICh0ZXh0X3Jl
bmRlciwgInRleHQiLCAxKTsNCisJCQkNCisJCQl0di5BcHBlbmRDb2x1bW4gKGRpcmVjdG9yeWNv
bHVtbik7DQorDQorCQkJc3RvcmUgPSBuZXcgTGlzdFN0b3JlICh0eXBlb2YoR2RrLlBpeGJ1Ziks
IHR5cGVvZiAoc3RyaW5nKSk7DQorCQkJQ3VycmVudERpciA9IEVudmlyb25tZW50LkdldEVudmly
b25tZW50VmFyaWFibGUgKCJIT01FIik7DQorCQkJLy8gUG9wdWxhdGUgKCk7DQogCQkJdHYuTW9k
ZWwgPSBzdG9yZTsNCiANCiAJCQl0di5Sb3dBY3RpdmF0ZWQgKz0gbmV3IFJvd0FjdGl2YXRlZEhh
bmRsZXIgKE9uUm93QWN0aXZhdGVkKTsNCi0JCQl0di5TZWxlY3Rpb24uQ2hhbmdlZCArPSBuZXcg
RXZlbnRIYW5kbGVyIChPblNlbGVjdGlvbkNoYW5nZWQpOw0KKwkJCS8vIHR2LlNlbGVjdGlvbi5D
aGFuZ2VkICs9IG5ldyBFdmVudEhhbmRsZXIgKE9uU2VsZWN0aW9uQ2hhbmdlZCk7DQorCQkJdHYu
QnV0dG9uUmVsZWFzZUV2ZW50ICs9IG5ldyBCdXR0b25SZWxlYXNlRXZlbnRIYW5kbGVyIChPbkJ1
dHRvblJlbGVhc2VFdmVudCk7DQogDQotCQkJdGhpcy5BZGQgKHR2KTsNCisJCQlzY3JvbGxlZHdp
bmRvdy5BZGQgKHR2KTsNCisJCQl0aGlzLkhvbW9nZW5lb3VzID0gZmFsc2U7DQorCQkJdGhpcy5Q
YWNrU3RhcnQgKGJ1dHRvbmJveCwgZmFsc2UsIGZhbHNlLCAwKTsNCisJCQl0aGlzLlBhY2tTdGFy
dCAoc2Nyb2xsZWR3aW5kb3cpOw0KIAkJCXRoaXMuU2hvd0FsbCAoKTsNCiAJCQlpbml0ID0gdHJ1
ZTsNCiAJCX0NCkBAIC03NSw4ICsxMjcsMTMgQEANCiAJCXB1YmxpYyBzdHJpbmcgQ3VycmVudERp
cg0KIAkJew0KIAkJCWdldCB7IHJldHVybiBTeXN0ZW0uSU8uUGF0aC5HZXRGdWxsUGF0aCAoY3Vy
cmVudERpcik7IH0NCi0JCQlzZXQgeyBjdXJyZW50RGlyID0gdmFsdWU7DQotCQkJCSAgUG9wdWxh
dGUgKCk7IH0NCisJCQlzZXQgeyANCisJCQkJCWN1cnJlbnREaXIgPSBTeXN0ZW0uSU8uUGF0aC5H
ZXRGdWxsUGF0aCAodmFsdWUpOw0KKwkJCQkJUG9wdWxhdGUgKCk7DQorCQkJCQlpZiAoRGlyZWN0
b3J5Q2hhbmdlZEV2ZW50ICE9IG51bGwpIHsNCisJCQkJCQlEaXJlY3RvcnlDaGFuZ2VkRXZlbnQo
Q3VycmVudERpcik7DQorCQkJCQl9DQorCQkJCX0NCiAJCX0NCiANCiAJCXB1YmxpYyBzdHJpbmdb
XSBGaWxlcw0KQEAgLTEwNCwyOCArMTYxLDM1IEBADQogCQl7DQogCQkJc3RvcmUuQ2xlYXIgKCk7
DQogCQkJLy8gc2VlbXMgdW5uZWNlc3NhcnkNCi0JCQlzdG9yZS5BcHBlbmRWYWx1ZXMgKCIuIik7
DQorCQkJLy8gc3RvcmUuQXBwZW5kVmFsdWVzIChGaWxlSWNvbkxvYWRlci5HZXRQaXhidWZGb3JG
aWxlIChTeXN0ZW0uSU8uUGF0aC5Db21iaW5lIChjdXJyZW50RGlyLCAiLiIpLCAyNCwgMjQpLCAi
LiIpOyAvLyBGaWxlSWNvbkxvYWRlci5HZXRQaXhidWZGb3JGaWxlIChTeXN0ZW0uSU8uUGF0aC5D
b21iaW5lIChjdXJyZW50RGlyLCAiLiIpLCAyNCwgMjQpKTsNCiANCi0JCQlpZiAoY3VycmVudERp
ciAhPSAiLyIpDQotCQkJCXN0b3JlLkFwcGVuZFZhbHVlcyAoIi4uIik7DQorCQkJaWYgKFN5c3Rl
bS5JTy5QYXRoLkdldFBhdGhSb290KEN1cnJlbnREaXIpID09IEN1cnJlbnREaXIpDQorCQkJCXVw
YnV0dG9uLlN0YXRlID0gU3RhdGVUeXBlLkluc2Vuc2l0aXZlOw0KKwkJCWVsc2UgaWYgKHVwYnV0
dG9uLlN0YXRlID09IFN0YXRlVHlwZS5JbnNlbnNpdGl2ZSkNCisJCQkJdXBidXR0b24uU3RhdGUg
PSBTdGF0ZVR5cGUuTm9ybWFsOw0KKwkJCQkvLyBzdG9yZS5BcHBlbmRWYWx1ZXMgKEZpbGVJY29u
TG9hZGVyLkdldFBpeGJ1ZkZvckZpbGUgKFN5c3RlbS5JTy5QYXRoLkNvbWJpbmUgKGN1cnJlbnRE
aXIsICIuLiIpLCAyNCwgMjQpLCAiLi4iKTsNCiANCi0JCQlEaXJlY3RvcnlJbmZvIGRpID0gbmV3
IERpcmVjdG9yeUluZm8gKGN1cnJlbnREaXIpOw0KKwkJCURpcmVjdG9yeUluZm8gZGkgPSBuZXcg
RGlyZWN0b3J5SW5mbyAoQ3VycmVudERpcik7DQogCQkJRGlyZWN0b3J5SW5mb1tdIGRpcnMgPSBk
aS5HZXREaXJlY3RvcmllcyAoKTsNCi0JDQorCQkJDQogCQkJZm9yZWFjaCAoRGlyZWN0b3J5SW5m
byBkIGluIGRpcnMpDQogCQkJew0KIAkJCQlpZiAoaWdub3JlSGlkZGVuKQ0KIAkJCQl7DQogCQkJ
CQlpZiAoIWQuTmFtZS5TdGFydHNXaXRoICgiLiIpKQ0KLQkJCQkJCXN0b3JlLkFwcGVuZFZhbHVl
cyAoZC5OYW1lKTsNCisJCQkJCQlzdG9yZS5BcHBlbmRWYWx1ZXMgKEZpbGVJY29uTG9hZGVyLkdl
dFBpeGJ1ZkZvckZpbGUgKFN5c3RlbS5JTy5QYXRoLkNvbWJpbmUgKEN1cnJlbnREaXIsIGQuTmFt
ZSksIDI0LCAyNCksIGQuTmFtZSk7DQogCQkJCX0NCiAJCQkJZWxzZQ0KIAkJCQl7DQotCQkJCQlz
dG9yZS5BcHBlbmRWYWx1ZXMgKGQuTmFtZSk7DQorCQkJCQlzdG9yZS5BcHBlbmRWYWx1ZXMgKEZp
bGVJY29uTG9hZGVyLkdldFBpeGJ1ZkZvckZpbGUgKFN5c3RlbS5JTy5QYXRoLkNvbWJpbmUgKEN1
cnJlbnREaXIsIGQuTmFtZSksIDI0LCAyNCksIGQuTmFtZSk7DQogCQkJCX0NCiAJCQl9DQogCQkJ
aWYgKGluaXQgPT0gdHJ1ZSkNCiAJCQkJdHYuU2VsZWN0aW9uLlNlbGVjdFBhdGggKG5ldyBHdGsu
VHJlZVBhdGggKCIwIikpOw0KKw0KKwkJCWVudHJ5LlRleHQgPSBDdXJyZW50RGlyOw0KKwkJCUNv
bnNvbGUuV3JpdGVMaW5lKEN1cnJlbnREaXIpOw0KKwkJCWZpbGVzID0gRGlyZWN0b3J5LkdldEZp
bGVzIChDdXJyZW50RGlyKTsNCiAJCX0NCiANCiAJCXByaXZhdGUgdm9pZCBPblNlbGVjdGlvbkNo
YW5nZWQgKG9iamVjdCBvLCBFdmVudEFyZ3MgYXJncykNCkBAIC0xMzQsNyArMTk4LDcgQEANCiAJ
CQlUcmVlTW9kZWwgbW9kZWw7DQogCQkJaWYgKHR2LlNlbGVjdGlvbi5HZXRTZWxlY3RlZCAob3V0
IG1vZGVsLCBvdXQgaXRlcikpDQogCQkJew0KLQkJCQlzdHJpbmcgc2VsZWN0aW9uID0gKHN0cmlu
Zykgc3RvcmUuR2V0VmFsdWUgKGl0ZXIsIDApOw0KKwkJCQlzdHJpbmcgc2VsZWN0aW9uID0gKHN0
cmluZykgc3RvcmUuR2V0VmFsdWUgKGl0ZXIsIDEpOw0KIAkJCQlmaWxlcyA9IERpcmVjdG9yeS5H
ZXRGaWxlcyAoU3lzdGVtLklPLlBhdGguQ29tYmluZSAoY3VycmVudERpciwgc2VsZWN0aW9uKSk7
DQogCQkJfQ0KIAkJfQ0KQEAgLTE0MywxNCArMjA3LDc4IEBADQogCQl7DQogCQkJVHJlZUl0ZXIg
aXRlcjsNCiAJCQlzdG9yZS5HZXRJdGVyIChvdXQgaXRlciwgYXJncy5QYXRoKTsNCi0JCQlzdHJp
bmcgZmlsZSA9IChzdHJpbmcpIHN0b3JlLkdldFZhbHVlIChpdGVyLCAwKTsNCisJCQlzdHJpbmcg
ZmlsZSA9IChzdHJpbmcpIHN0b3JlLkdldFZhbHVlIChpdGVyLCAxKTsNCiAJCQlzdHJpbmcgbmV3
RGlyID0gU3lzdGVtLklPLlBhdGguQ29tYmluZSAoY3VycmVudERpciwgZmlsZSk7DQogCQkJaWYg
KERpcmVjdG9yeS5FeGlzdHMgKG5ld0RpcikpDQogCQkJew0KLQkJCQljdXJyZW50RGlyID0gbmV3
RGlyOw0KLQkJCQlQb3B1bGF0ZSAoKTsNCisJCQkJQ3VycmVudERpciA9IG5ld0RpcjsNCisJCQkJ
Ly8gUG9wdWxhdGUgKCk7DQorCQkJfQ0KKwkJfQ0KKwkJDQorCQlwcml2YXRlIHZvaWQgT25CdXR0
b25SZWxlYXNlRXZlbnQob2JqZWN0IG8sIEJ1dHRvblJlbGVhc2VFdmVudEFyZ3MgYXJncykNCisJ
CXsNCisgCQkJaWYgKGFyZ3MuRXZlbnQuQnV0dG9uID09IDMpIHsNCisJCQkJIEd0ay5NZW51IG1l
bnUgPSBuZXcgTWVudSgpOw0KKwkJCQkgR3RrLk1lbnVJdGVtIG9wZW5maWxlYnJvd3NlciA9IG5l
dyBNZW51SXRlbSgiT3BlbiB3aXRoIGZpbGUgYnJvd3NlciIpOw0KKwkJCQkgb3BlbmZpbGVicm93
c2VyLkFjdGl2YXRlZCArPSBuZXcgRXZlbnRIYW5kbGVyKE9wZW5GaWxlQnJvd3Nlcik7DQorDQor
CQkJCSBHdGsuTWVudUl0ZW0gb3BlbnRlcm1pbmFsID0gbmV3IE1lbnVJdGVtKCJPcGVuIHdpdGgg
dGVybWluYWwiKTsNCisJCQkJIG9wZW50ZXJtaW5hbC5BY3RpdmF0ZWQgKz0gbmV3IEV2ZW50SGFu
ZGxlcihPcGVuVGVybWluYWwpOw0KKw0KKwkJCQkgbWVudS5BcHBlbmQob3BlbnRlcm1pbmFsKTsN
CisJCQkJIG1lbnUuQXBwZW5kKG9wZW5maWxlYnJvd3Nlcik7DQorCQkJCSBtZW51LlBvcHVwKG51
bGwsIG51bGwsIG51bGwsIEludFB0ci5aZXJvLCAzLCAwKTsNCisJCQkJIG1lbnUuU2hvd0FsbCgp
Ow0KIAkJCX0NCiAJCX0NCisJCQ0KKwkJcHJpdmF0ZSB2b2lkIE9wZW5GaWxlQnJvd3NlcihvYmpl
Y3QgbywgRXZlbnRBcmdzIGFyZ3MpDQorCQl7DQorCQkJVHJlZUl0ZXIgaXRlcjsNCisJCQlUcmVl
TW9kZWwgbW9kZWw7DQorCQkJc3RyaW5nIGNvbW1hbmRsaW5lID0gIm5hdXRpbHVzIFwiIjsNCisJ
CQlpZiAodHYuU2VsZWN0aW9uLkdldFNlbGVjdGVkIChvdXQgbW9kZWwsIG91dCBpdGVyKSkNCisJ
CQl7DQorCQkJCXN0cmluZyBzZWxlY3Rpb24gPSAoc3RyaW5nKSBzdG9yZS5HZXRWYWx1ZSAoaXRl
ciwgMSk7DQorCQkJCWNvbW1hbmRsaW5lICs9IFN5c3RlbS5JTy5QYXRoLkNvbWJpbmUgKGN1cnJl
bnREaXIsIHNlbGVjdGlvbikgKyAiXCIiOw0KKwkJCQlQcm9jZXNzLlN0YXJ0KGNvbW1hbmRsaW5l
KTsNCisJCQl9DQorCQl9DQorCQkNCisJCXByaXZhdGUgdm9pZCBPcGVuVGVybWluYWwob2JqZWN0
IG8sIEV2ZW50QXJncyBhcmdzKQ0KKwkJew0KKwkJCVRyZWVJdGVyIGl0ZXI7DQorCQkJVHJlZU1v
ZGVsIG1vZGVsOw0KKwkJCXN0cmluZyBjb21tYW5kbGluZSA9ICJnbm9tZS10ZXJtaW5hbCAtLXdv
cmtpbmctZGlyZWN0b3J5PVwiIjsNCisJCQlpZiAodHYuU2VsZWN0aW9uLkdldFNlbGVjdGVkIChv
dXQgbW9kZWwsIG91dCBpdGVyKSkNCisJCQl7DQorCQkJCXN0cmluZyBzZWxlY3Rpb24gPSAoc3Ry
aW5nKSBzdG9yZS5HZXRWYWx1ZSAoaXRlciwgMSk7DQorCQkJCWNvbW1hbmRsaW5lICs9IFN5c3Rl
bS5JTy5QYXRoLkNvbWJpbmUgKGN1cnJlbnREaXIsIHNlbGVjdGlvbikgKyAiXCIiOw0KKwkJCQlQ
cm9jZXNzLlN0YXJ0KGNvbW1hbmRsaW5lKTsNCisJCQl9DQorCQl9DQorCQkNCisJCXByaXZhdGUg
dm9pZCBPblVwQ2xpY2tlZCAob2JqZWN0IG8sIEV2ZW50QXJncyBhcmdzKQ0KKwkJew0KKwkJCWlm
IChDdXJyZW50RGlyLkVuZHNXaXRoKFN5c3RlbS5JTy5QYXRoLkRpcmVjdG9yeVNlcGFyYXRvckNo
YXIuVG9TdHJpbmcoKSkpDQorCQkJCWlmIChTeXN0ZW0uSU8uUGF0aC5HZXRQYXRoUm9vdChDdXJy
ZW50RGlyKSAhPSBDdXJyZW50RGlyKQ0KKwkJCQkJQ3VycmVudERpciArPSAiLi4iOw0KKwkJCQll
bHNlIENvbnNvbGUuV3JpdGVMaW5lKEN1cnJlbnREaXIpOw0KKwkJCWVsc2UNCisJCQkJQ3VycmVu
dERpciArPSBTeXN0ZW0uSU8uUGF0aC5EaXJlY3RvcnlTZXBhcmF0b3JDaGFyICsgIi4uIjsNCisJ
CX0NCisJCQ0KKwkJcHJpdmF0ZSB2b2lkIE9uSG9tZUNsaWNrZWQgKG9iamVjdCBvLCBFdmVudEFy
Z3MgYXJncykNCisJCXsNCisJCQlDdXJyZW50RGlyID0gRW52aXJvbm1lbnQuR2V0RW52aXJvbm1l
bnRWYXJpYWJsZSAoIkhPTUUiKTsNCisJCX0NCisNCisJCXZvaWQgT25FbnRyeUFjdGl2YXRlZCAo
b2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGFyZ3MpDQorCQl7DQorCQkJaWYgKERpcmVjdG9yeS5F
eGlzdHMgKGVudHJ5LlRleHQuVHJpbSAoKSkpDQorCQkJCUN1cnJlbnREaXIgPSBlbnRyeS5UZXh0
Ow0KKwkJfQ0KIAl9DQogfQ0KIA0K

--=-m8ZdrRNwBNhsmbAewLDo
Content-Disposition: attachment; filename=referenceguiutils.patch
Content-Type: text/plain; name=referenceguiutils.patch; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64

LS0tIE1vbm9EZXZlbG9wLmJhay9zcmMvTGlicmFyaWVzL01vbm9EZXZlbG9wLkd1aS5XaWRnZXRz
L01ha2VmaWxlLmFtCTIwMDQtMDItMjMgMjI6NTk6MzMuMDAwMDAwMDAwICswMTAwDQorKysgTW9u
b0RldmVsb3Avc3JjL0xpYnJhcmllcy9Nb25vRGV2ZWxvcC5HdWkuV2lkZ2V0cy9NYWtlZmlsZS5h
bQkyMDA0LTAyLTI3IDE1OjI3OjUzLjAwMDAwMDAwMCArMDEwMA0KQEAgLTMsNyArMyw3IEBADQog
DQogRExMID0gLi4vLi4vLi4vYnVpbGQvYmluL01vbm9EZXZlbG9wLkd1aS5XaWRnZXRzLmRsbA0K
IA0KLVJFRkVSRU5DRVMgPSAvcjpTeXN0ZW0uRHJhd2luZy5kbGwgL3I6Z3RrLXNoYXJwLmRsbCAv
cjpnZGstc2hhcnAuZGxsIC9yOnBhbmdvLXNoYXJwLmRsbCAvcjpnbm9tZS1zaGFycC5kbGwgL3I6
Z2xpYi1zaGFycC5kbGwgL3I6Z2xhZGUtc2hhcnAuZGxsIC9yOi4uLy4uLy4uL2J1aWxkL2Jpbi9N
b25vRGV2ZWxvcC5Db3JlLmRsbA0KK1JFRkVSRU5DRVMgPSAvcjpTeXN0ZW0uRHJhd2luZy5kbGwg
L3I6Z3RrLXNoYXJwLmRsbCAvcjpnZGstc2hhcnAuZGxsIC9yOnBhbmdvLXNoYXJwLmRsbCAvcjpn
bm9tZS1zaGFycC5kbGwgL3I6Z2xpYi1zaGFycC5kbGwgL3I6Z2xhZGUtc2hhcnAuZGxsIC9yOi4u
Ly4uLy4uL2J1aWxkL2Jpbi9Nb25vRGV2ZWxvcC5Db3JlLmRsbCAvcjouLi8uLi8uLi9idWlsZC9i
aW4vTW9ub0RldmVsb3AuR3VpLlV0aWxzLmRsbA0KIA0KIEZJTEVTID0gLi9UcmVlL1RyZWVWaWV3
LmNzIFwNCiAuL1RyZWUvVHJlZU5vZGVDb2xsZWN0aW9uLmNzIFwNCg==

--=-m8ZdrRNwBNhsmbAewLDo--

--=-9AYZ4HHxzz9FUdgZl0ZP
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada
	digitalmente

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQBAP1v/H1wFafwdGkARAsmsAJ9YkTWewtD2AkqNo1La37Ic/vV6+ACfakX0
rMWxZzo83u0nXNB1jDGPuSQ=
=mB9d
-----END PGP SIGNATURE-----

--=-9AYZ4HHxzz9FUdgZl0ZP--