Rework of the new dialogs
artur <[email protected]> Sun, 11 Apr 2010 11:03:48 +0200
| Newsgroups | gmane.network.freenet.frost.devel |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------080902060605060009070307 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Hi, I have reworked the new dialogs (Add Download, Manage Tracked Downloads) a little bit. Cell padding, Tooltips,.. and stuff. Cheers artur --------------080902060605060009070307 Content-Type: text/plain; name="reworkNewDialogs.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="reworkNewDialogs.patch" SW5kZXg6IHNvdXJjZS9mcm9zdC9ndWkvQWRkTmV3RG93bmxvYWRzRGlhbG9nLmphdmENCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCi0tLSBzb3VyY2UvZnJvc3QvZ3VpL0FkZE5ld0Rvd25sb2Fkc0RpYWxv Zy5qYXZhCShyZXZpc2lvbiAzMTk2KQ0KKysrIHNvdXJjZS9mcm9zdC9ndWkvQWRkTmV3RG93 bmxvYWRzRGlhbG9nLmphdmEJKHdvcmtpbmcgY29weSkNCkBAIC0yMCwyNSArMjAsMzEgQEAN CiAKIGltcG9ydCBqYXZhLmF3dC4qOwogaW1wb3J0IGphdmEuYXd0LmV2ZW50Lio7CitpbXBv cnQgamF2YS5pby5GaWxlOwogaW1wb3J0IGphdmEudXRpbC4qOwogaW1wb3J0IGphdmEudXRp bC5MaXN0OwogCiBpbXBvcnQgamF2YXguc3dpbmcuKjsKK2ltcG9ydCBqYXZheC5zd2luZy50 YWJsZS5KVGFibGVIZWFkZXI7CitpbXBvcnQgamF2YXguc3dpbmcudGFibGUuVGFibGVDZWxs UmVuZGVyZXI7CiAKIGltcG9ydCBmcm9zdC4qOwogaW1wb3J0IGZyb3N0LmZpbGVUcmFuc2Zl ci5kb3dubG9hZC4qOwogaW1wb3J0IGZyb3N0Lmd1aS5tb2RlbC4qOwogaW1wb3J0IGZyb3N0 LnN0b3JhZ2UucGVyc3QuKjsKK2ltcG9ydCBmcm9zdC51dGlsLkRhdGVGdW47CitpbXBvcnQg ZnJvc3QudXRpbC5Gb3JtYXR0ZXJVdGlsczsKIGltcG9ydCBmcm9zdC51dGlsLmd1aS4qOwog aW1wb3J0IGZyb3N0LnV0aWwuZ3VpLnRyYW5zbGF0aW9uLio7CiAKIHB1YmxpYyBjbGFzcyBB ZGROZXdEb3dubG9hZHNEaWFsb2cgZXh0ZW5kcyBqYXZheC5zd2luZy5KRGlhbG9nIHsKIAog CXByaXZhdGUgZmluYWwgTGFuZ3VhZ2UgbGFuZ3VhZ2U7CisKIAlwcml2YXRlIGZpbmFsIFRy YWNrRG93bmxvYWRLZXlzU3RvcmFnZSB0cmFja0Rvd25sb2FkS2V5c1N0b3JhZ2U7CiAKIAlw cml2YXRlIEFkZE5ld0Rvd25sb2Fkc1RhYmxlTW9kZWwgYWRkTmV3RG93bmxvYWRzVGFibGVN b2RlbDsKLQlwcml2YXRlIFNvcnRlZFRhYmxlIGFkZE5ld0Rvd25sb2Fkc1RhYmxlOworCXBy aXZhdGUgQWRkTmV3RG93bmxvYWRzVGFibGUgYWRkTmV3RG93bmxvYWRzVGFibGU7CiAJcHJp dmF0ZSBKQnV0dG9uIHJlbW92ZUFscmVhZHlEb3dubG9hZGVkQnV0dG9uOwogCXByaXZhdGUg SkJ1dHRvbiByZW1vdmVBbHJlYWR5RXhpc3RzQnV0dG9uOwogCXByaXZhdGUgSkJ1dHRvbiBv a0J1dHRvbjsKQEAgLTUxLDcgKzU3LDcgQEANCiAKIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBs b25nIHNlcmlhbFZlcnNpb25VSUQgPSAxTDsKIAotCXB1YmxpYyBBZGROZXdEb3dubG9hZHNE aWFsb2coZmluYWwgSkZyYW1lIGZyYW1lLCBmaW5hbCBMaXN0PEZyb3N0RG93bmxvYWRJdGVt PiBmcm9zdERvd25sb2FkSXRlbUxpc3QpIHsKKwlwdWJsaWMgQWRkTmV3RG93bmxvYWRzRGlh bG9nKGZpbmFsIEpGcmFtZSBmcmFtZSwgZmluYWwgTGlzdDxGcm9zdERvd25sb2FkSXRlbT4g ZnJvc3REb3dubG9hZEl0ZW1MaXN0KSB7IAogCQlzdXBlcihmcmFtZSk7CiAJCXBhcmVudEZy YW1lID0gZnJhbWU7CiAJCXNldE1vZGFsKHRydWUpOwpAQCAtMTI0LDcgKzEzMCw3IEBADQog CiAJCQkvLyBEb3dubG9hZCBUYWJsZQogCQkJYWRkTmV3RG93bmxvYWRzVGFibGVNb2RlbCA9 IG5ldyBBZGROZXdEb3dubG9hZHNUYWJsZU1vZGVsKCk7Ci0JCQlhZGROZXdEb3dubG9hZHNU YWJsZSA9IG5ldyBTb3J0ZWRUYWJsZSggYWRkTmV3RG93bmxvYWRzVGFibGVNb2RlbCApOwor CQkJYWRkTmV3RG93bmxvYWRzVGFibGUgPSBuZXcgQWRkTmV3RG93bmxvYWRzVGFibGUoIGFk ZE5ld0Rvd25sb2Fkc1RhYmxlTW9kZWwgKTsKIAkJCWFkZE5ld0Rvd25sb2Fkc1RhYmxlLnNl dFJvd1NlbGVjdGlvbkFsbG93ZWQodHJ1ZSk7CiAJCQlhZGROZXdEb3dubG9hZHNUYWJsZS5z ZXRTZWxlY3Rpb25Nb2RlKCBMaXN0U2VsZWN0aW9uTW9kZWwuTVVMVElQTEVfSU5URVJWQUxf U0VMRUNUSU9OICk7CiAJCQlhZGROZXdEb3dubG9hZHNUYWJsZS5zZXRSb3dIZWlnaHQoMTgp OwpAQCAtMjczLDcgKzI3OSw3IEBADQogCQkJCS8vIGFkZCB0aGUgYm9hcmQocykgdG8gYm9h cmQgdHJlZSBhbmQgcmVtb3ZlIGl0IGZyb20gdGFibGUKIAkJCQlmaW5hbCBBZGROZXdEb3du bG9hZHNUYWJsZU1lbWJlciByb3cgPSAoQWRkTmV3RG93bmxvYWRzVGFibGVNZW1iZXIpIGFk ZE5ld0Rvd25sb2Fkc1RhYmxlTW9kZWwuZ2V0Um93KHJvd0luZGV4KTsKIAkJCQlyb3cuZ2V0 RG93bmxvYWRJdGVtKCkuc2V0RG93bmxvYWREaXIoY2hvb3Nlci5nZXRTZWxlY3RlZEZpbGUo KS50b1N0cmluZygpKTsKLQkJCQlyb3cudXBkYXRlQ29tbWVudCgpOworCQkJCXJvdy51cGRh dGVFeGlzdHNDaGVjaygpOwogCQkJfQogCQkJYWRkTmV3RG93bmxvYWRzVGFibGUuY2xlYXJT ZWxlY3Rpb24oKTsKIAkJfQpAQCAtMzE0LDE0ICszMjAsOTUgQEANCiAJCQlhZGROZXdEb3du bG9hZHNUYWJsZS5jbGVhclNlbGVjdGlvbigpOwogCQl9CiAJfQorCQorCQorCXByaXZhdGUg c3RhdGljIGNsYXNzIEFkZE5ld0Rvd25sb2Fkc1RhYmxlTW9kZWwgZXh0ZW5kcyBTb3J0ZWRU YWJsZU1vZGVseworCQlwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25V SUQgPSAxTDsKIAotCWNsYXNzIEFkZE5ld0Rvd25sb2Fkc1RhYmxlTWVtYmVyIGltcGxlbWVu dHMgVGFibGVNZW1iZXIgeworCQlwcml2YXRlIExhbmd1YWdlIGxhbmd1YWdlID0gbnVsbDsK IAotCQlGcm9zdERvd25sb2FkSXRlbSBmcm9zdERvd25sb2FkSXRlbTsKLQkJU3RyaW5nIGNv bW1lbnQ7CisJCXByb3RlY3RlZCBmaW5hbCBzdGF0aWMgU3RyaW5nIGNvbHVtbk5hbWVzW10g PSBuZXcgU3RyaW5nWzZdOwogCisJCXByb3RlY3RlZCBmaW5hbCBzdGF0aWMgQ2xhc3M8Pz4g Y29sdW1uQ2xhc3Nlc1tdID0gIHsKKwkJCVN0cmluZy5jbGFzcywKKwkJCVN0cmluZy5jbGFz cywKKwkJCVN0cmluZy5jbGFzcywKKwkJCVN0cmluZy5jbGFzcywKKwkJCVN0cmluZy5jbGFz cywKKwkJCVN0cmluZy5jbGFzcworCQl9OworCisJCXB1YmxpYyBBZGROZXdEb3dubG9hZHNU YWJsZU1vZGVsKCkgeworCQkJc3VwZXIoKTsKKwkJCWFzc2VydCBjb2x1bW5DbGFzc2VzLmxl bmd0aCA9PSBjb2x1bW5OYW1lcy5sZW5ndGg7CisJCQlsYW5ndWFnZSA9IExhbmd1YWdlLmdl dEluc3RhbmNlKCk7CisJCQlyZWZyZXNoTGFuZ3VhZ2UoKTsKKwkJfQorCisJCXByaXZhdGUg dm9pZCByZWZyZXNoTGFuZ3VhZ2UoKSB7CisJCQljb2x1bW5OYW1lc1swXSA9IGxhbmd1YWdl LmdldFN0cmluZygiQWRkTmV3RG93bmxvYWRzRGlhbG9nLnRhYmxlLm5hbWUiKTsKKwkJCWNv bHVtbk5hbWVzWzFdID0gbGFuZ3VhZ2UuZ2V0U3RyaW5nKCJBZGROZXdEb3dubG9hZHNEaWFs b2cudGFibGUua2V5Iik7CisJCQljb2x1bW5OYW1lc1syXSA9IGxhbmd1YWdlLmdldFN0cmlu ZygiQWRkTmV3RG93bmxvYWRzRGlhbG9nLnRhYmxlLnByaW9yaXR5Iik7CisJCQljb2x1bW5O YW1lc1szXSA9IGxhbmd1YWdlLmdldFN0cmluZygiQWRkTmV3RG93bmxvYWRzRGlhbG9nLnRh YmxlLmRvd25sb2FkRGlyIik7CisJCQljb2x1bW5OYW1lc1s0XSA9IGxhbmd1YWdlLmdldFN0 cmluZygiQWRkTmV3RG93bmxvYWRzRGlhbG9nLnRhYmxlLmRvd25sb2FkZWQiKTsKKwkJCWNv bHVtbk5hbWVzWzVdID0gbGFuZ3VhZ2UuZ2V0U3RyaW5nKCJBZGROZXdEb3dubG9hZHNEaWFs b2cudGFibGUuZXhpc3RzIik7CisJCX0KKworCQlwdWJsaWMgYm9vbGVhbiBpc0NlbGxFZGl0 YWJsZShpbnQgcm93LCBpbnQgY29sKSB7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQlw dWJsaWMgU3RyaW5nIGdldENvbHVtbk5hbWUoaW50IGNvbHVtbikgeworCQkJaWYoIGNvbHVt biA+PSAwICYmIGNvbHVtbiA8IGNvbHVtbk5hbWVzLmxlbmd0aCApCisJCQkJcmV0dXJuIGNv bHVtbk5hbWVzW2NvbHVtbl07CisJCQlyZXR1cm4gbnVsbDsKKwkJfQorCisJCXB1YmxpYyBp bnQgZ2V0Q29sdW1uQ291bnQoKSB7CisJCQlyZXR1cm4gY29sdW1uTmFtZXMubGVuZ3RoOwor CQl9CisKKwkJcHVibGljIENsYXNzPD8+IGdldENvbHVtbkNsYXNzKGludCBjb2x1bW4pIHsK KwkJCWlmKCBjb2x1bW4gPj0gMCAmJiBjb2x1bW4gPCBjb2x1bW5DbGFzc2VzLmxlbmd0aCAp CisJCQkJcmV0dXJuIGNvbHVtbkNsYXNzZXNbY29sdW1uXTsKKwkJCXJldHVybiBudWxsOwor CQl9CisJfQorCisJcHJpdmF0ZSBjbGFzcyBBZGROZXdEb3dubG9hZHNUYWJsZU1lbWJlciBp bXBsZW1lbnRzIFRhYmxlTWVtYmVyIHsKKworCQlwcml2YXRlIEZyb3N0RG93bmxvYWRJdGVt IGZyb3N0RG93bmxvYWRJdGVtOworCQlwcml2YXRlIGJvb2xlYW4gZG93bmxvYWRlZDsKKwkJ cHJpdmF0ZSBTdHJpbmcgZG93bmxvYWRlZFRvb2x0aXA7CisJCXByaXZhdGUgYm9vbGVhbiBl eGlzdHM7CisJCXByaXZhdGUgU3RyaW5nIGV4aXN0c1Rvb2x0aXA7CisKIAkJcHVibGljIEFk ZE5ld0Rvd25sb2Fkc1RhYmxlTWVtYmVyKGZpbmFsIEZyb3N0RG93bmxvYWRJdGVtIGZyb3N0 RG93bmxvYWRJdGVtKXsKIAkJCXRoaXMuZnJvc3REb3dubG9hZEl0ZW0gPSBmcm9zdERvd25s b2FkSXRlbTsKKwkJCVRyYWNrRG93bmxvYWRLZXlzIHRyYWNrRG93bmxvYWRLZXlzID0gdHJh Y2tEb3dubG9hZEtleXNTdG9yYWdlLmdldEl0ZW1CeUtleShmcm9zdERvd25sb2FkSXRlbS5n ZXRLZXkoKSk7CisJCQlkb3dubG9hZGVkID0gdHJhY2tEb3dubG9hZEtleXMgIT0gbnVsbDsK KwkJCWlmKCBkb3dubG9hZGVkICkgeworCQkJCWZpbmFsIGxvbmcgZGF0ZSA9IHRyYWNrRG93 bmxvYWRLZXlzLmdldERvd25sb2FkRmluaXNoZWRUaW1lKCk7CisJCQkJZG93bmxvYWRlZFRv b2x0aXAgPSBuZXcgU3RyaW5nQnVpbGRlcigiPGh0bWw+IikKKwkJCQkJCS5hcHBlbmQobGFu Z3VhZ2UuZ2V0U3RyaW5nKCJNYW5hZ2VEb3dubG9hZFRyYWNraW5nRGlhbG9nLnRhYmxlLmZp bmlzaGVkIikpCisJCQkJCQkuYXBwZW5kKCI6ICIpCisJCQkJCQkuYXBwZW5kKERhdGVGdW4u Rk9STUFUX0RBVEVfVklTSUJMRS5wcmludChkYXRlKSkKKwkJCQkJCS5hcHBlbmQoIiAiKQor CQkJCQkJLmFwcGVuZChEYXRlRnVuLkZPUk1BVF9USU1FX1ZJU0lCTEUucHJpbnQoZGF0ZSkp CisJCQkJCQkuYXBwZW5kKCI8YnIgLz5cbiIpCisJCQkJCQkuYXBwZW5kKGxhbmd1YWdlLmdl dFN0cmluZygiTWFuYWdlRG93bmxvYWRUcmFja2luZ0RpYWxvZy50YWJsZS5ib2FyZCIpKQor CQkJCQkJLmFwcGVuZCgiOiAiKQorCQkJCQkJLmFwcGVuZCh0cmFja0Rvd25sb2FkS2V5cy5n ZXRCb2FyZE5hbWUoKSkKKwkJCQkJCS5hcHBlbmQoIjxiciAvPlxuIikKKwkJCQkJCS5hcHBl bmQobGFuZ3VhZ2UuZ2V0U3RyaW5nKCJNYW5hZ2VEb3dubG9hZFRyYWNraW5nRGlhbG9nLnRh YmxlLnNpemUiKSkKKwkJCQkJCS5hcHBlbmQoIjogIikKKwkJCQkJCS5hcHBlbmQoRm9ybWF0 dGVyVXRpbHMuZm9ybWF0U2l6ZSh0cmFja0Rvd25sb2FkS2V5cy5nZXRGaWxlU2l6ZSgpKSkK KwkJCQkJCS5hcHBlbmQoIjwvaHRtbD4iKQorCQkJCQkJLnRvU3RyaW5nKCk7CisJCQl9IGVs c2UgeworCQkJCWRvd25sb2FkZWRUb29sdGlwID0gIiI7CisJCQl9CisJCQl1cGRhdGVFeGlz dHNDaGVjaygpOwogCQl9CiAKIAkJcHVibGljIE9iamVjdCBnZXRWYWx1ZUF0KGZpbmFsIGlu dCBjb2x1bW4pIHsKQEAgLTMzOSwzMCArNDI2LDM0IEBADQogCQkJCWNhc2UgMzoKIAkJCQkJ cmV0dXJuIGZyb3N0RG93bmxvYWRJdGVtLmdldERvd25sb2FkRGlyKCk7CiAJCQkJY2FzZSA0 OgotCQkJCQlpZihjb21tZW50ID09IG51bGwpIHsKLQkJCQkJCXRoaXMudXBkYXRlQ29tbWVu dCgpOwotCQkJCQl9Ci0JCQkJCXJldHVybiBjb21tZW50OworCQkJCQlyZXR1cm4gZG93bmxv YWRlZCA/ICJYIiA6ICIiOworCQkJCWNhc2UgNToKKwkJCQkJcmV0dXJuIGV4aXN0cyA/ICJY IiA6ICIiOwogCQkJCWRlZmF1bHQgOgogCQkJCQl0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlv bigiVW5rbm93biBDb2x1bW4gcG9zIik7CiAJCQl9CiAJCX0KIAotCQlwdWJsaWMgdm9pZCB1 cGRhdGVDb21tZW50KCkgewotCQkgICAgY29tbWVudCA9ICIiOwotCi0JCSAgICAvLyBIYXMg dGhpcyBrZXkgYWxyZWFkeSBiZWVuIGRvd25sb2FkZWQ/Ci0JCSAgICBpZiAodHJhY2tEb3du bG9hZEtleXNTdG9yYWdlLnNlYXJjaEl0ZW1LZXkoIGZyb3N0RG93bmxvYWRJdGVtLmdldEtl eSgpICkpIHsKLQkJCQljb21tZW50ICs9IGxhbmd1YWdlLmdldFN0cmluZygiQWRkTmV3RG93 bmxvYWRzRGlhbG9nLnRhYmxlLmFscmVhZHlEb3dubG9hZGVkIik7CisJCXB1YmxpYyB2b2lk IHVwZGF0ZUV4aXN0c0NoZWNrKCkgeworCQkJRmlsZSBleGlzdGluZ0ZpbGUgPSBuZXcgamF2 YS5pby5GaWxlKGZyb3N0RG93bmxvYWRJdGVtLmdldERvd25sb2FkRGlyKCkgKyBmcm9zdERv d25sb2FkSXRlbS5nZXRGaWxlbmFtZSgpKTsKKwkJCWV4aXN0cyA9IGV4aXN0aW5nRmlsZS5l eGlzdHMoKTsKKwkJCWlmKCBleGlzdHMpIHsKKwkJCQlmaW5hbCBsb25nIGRhdGUgPSBleGlz dGluZ0ZpbGUubGFzdE1vZGlmaWVkKCk7CisJCQkJZXhpc3RzVG9vbHRpcCA9IG5ldyBTdHJp bmdCdWlsZGVyKCI8aHRtbD4iKQorCQkJCS5hcHBlbmQobGFuZ3VhZ2UuZ2V0U3RyaW5nKCJB ZGROZXdEb3dubG9hZHNEaWFsb2cudGFibGUubGFzdE1vZGlmaWVkVG9vbHRpcCIpKQorCQkJ CS5hcHBlbmQoIjogIikKKwkJCQkuYXBwZW5kKERhdGVGdW4uRk9STUFUX0RBVEVfVklTSUJM RS5wcmludChkYXRlKSkKKwkJCQkuYXBwZW5kKCIgIikKKwkJCQkuYXBwZW5kKERhdGVGdW4u Rk9STUFUX1RJTUVfVklTSUJMRS5wcmludChkYXRlKSkKKwkJCQkuYXBwZW5kKCI8YnIgLz5c biIpCisJCQkJLmFwcGVuZChsYW5ndWFnZS5nZXRTdHJpbmcoIkFkZE5ld0Rvd25sb2Fkc0Rp YWxvZy50YWJsZS5maWxlU2l6ZVRvb2x0aXAiKSkKKwkJCQkuYXBwZW5kKCI6ICIpCisJCQkJ LmFwcGVuZChGb3JtYXR0ZXJVdGlscy5mb3JtYXRTaXplKGV4aXN0aW5nRmlsZS5sZW5ndGgo KSkpCisJCQkJLmFwcGVuZCgiPC9odG1sPiIpCisJCQkJLnRvU3RyaW5nKCk7CisJCQl9IGVs c2UgeworCQkJCWV4aXN0c1Rvb2x0aXAgPSAiIjsKIAkJCX0KLQotICAgICAgICAgICAgLy8g RG9lcyB0YXJnZXQgZmlsZSBhbHJlYWR5IGV4aXN0PwotCQkgICAgaWYgKG5ldyBqYXZhLmlv LkZpbGUoZnJvc3REb3dubG9hZEl0ZW0uZ2V0RG93bmxvYWREaXIoKSArIGZyb3N0RG93bmxv YWRJdGVtLmdldEZpbGVuYW1lKCkpLmV4aXN0cygpICkgewotCQkJICAgIGlmIChjb21tZW50 Lmxlbmd0aCgpID4gMCkgewotCQkJICAgICAgICBjb21tZW50ICs9ICIsICI7Ci0JCQkgICAg fQotCQkJICAgIGNvbW1lbnQgKz0gbGFuZ3VhZ2UuZ2V0U3RyaW5nKCJBZGROZXdEb3dubG9h ZHNEaWFsb2cudGFibGUuYWxyZWFkeUV4aXN0cyIpOwotCQkJfQogCQl9CiAKIAkJcHVibGlj IGludCBjb21wYXJlVG8oZmluYWwgVGFibGVNZW1iZXIgYW5PdGhlciwgZmluYWwgaW50IHRh YmxlQ29sdW1JbmRleCkgewpAQCAtMzc2LDcgKzQ2Nyw3IEBADQogCQl9CiAJfQogCi0JY2xh c3MgVGFibGVQb3B1cE1lbnVNb3VzZUxpc3RlbmVyIGltcGxlbWVudHMgTW91c2VMaXN0ZW5l ciB7CisJcHJpdmF0ZSBjbGFzcyBUYWJsZVBvcHVwTWVudU1vdXNlTGlzdGVuZXIgaW1wbGVt ZW50cyBNb3VzZUxpc3RlbmVyIHsKIAkJcHVibGljIHZvaWQgbW91c2VSZWxlYXNlZChmaW5h bCBNb3VzZUV2ZW50IGV2ZW50KSB7CiAJCQltYXliZVNob3dQb3B1cChldmVudCk7CiAJCX0K QEAgLTM5MCwxMCArNDgxLDkyIEBADQogCQlwcm90ZWN0ZWQgdm9pZCBtYXliZVNob3dQb3B1 cChmaW5hbCBNb3VzZUV2ZW50IGUpIHsKIAkJCWlmKCBlLmlzUG9wdXBUcmlnZ2VyKCkgKSB7 CiAJCQkJaWYoIGFkZE5ld0Rvd25sb2Fkc1RhYmxlLmdldFNlbGVjdGVkUm93Q291bnQoKSA+ IDAgKSB7Ci0JCQkJCS8vIGRvbid0IHNob3cgbWVudSBpZiBub3RoaW5nIGlzIHNlbGVjdGVk CiAJCQkJCXRhYmxlUG9wdXBNZW51LnNob3coYWRkTmV3RG93bmxvYWRzVGFibGUsIGUuZ2V0 WCgpLCBlLmdldFkoKSk7CiAJCQkJfQogCQkJfQogCQl9CiAJfQorCQorCXByaXZhdGUgY2xh c3MgQWRkTmV3RG93bmxvYWRzVGFibGUgZXh0ZW5kcyBTb3J0ZWRUYWJsZSB7CisKKwkJcHJp dmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMUw7CisJCXByaXZh dGUgQ2VudGVyQ2VsbFJlbmRlcmVyIGNlbnRlckNlbGxSZW5kZXJlcjsKKwkJCisJCXByaXZh dGUgZmluYWwgU3RyaW5nW10gY29sdW1uVG9vbHRpcHMgPSB7CisJCQludWxsLAorCQkJbnVs bCwKKwkJCW51bGwsCisJCQludWxsLAorCQkJbGFuZ3VhZ2UuZ2V0U3RyaW5nKCJBZGROZXdE b3dubG9hZHNEaWFsb2cudGFibGVUb29sbHRpcC5kb3dubG9hZGVkIiksCisJCQlsYW5ndWFn ZS5nZXRTdHJpbmcoIkFkZE5ld0Rvd25sb2Fkc0RpYWxvZy50YWJsZVRvb2xsdGlwLmV4aXN0 cyIpCisJCX07CisKKwkJcHVibGljIEFkZE5ld0Rvd25sb2Fkc1RhYmxlKGZpbmFsIEFkZE5l d0Rvd25sb2Fkc1RhYmxlTW9kZWwgYWRkTmV3RG93bmxvYWRzVGFibGVNb2RlbCkgeworCQkJ c3VwZXIoYWRkTmV3RG93bmxvYWRzVGFibGVNb2RlbCk7CisJCQl0aGlzLnNldEludGVyY2Vs bFNwYWNpbmcobmV3IERpbWVuc2lvbig1LCAxKSk7CisJCQljZW50ZXJDZWxsUmVuZGVyZXIg PSBuZXcgQ2VudGVyQ2VsbFJlbmRlcmVyKCk7CisJCX0KKworCQlwdWJsaWMgU3RyaW5nIGdl dFRvb2xUaXBUZXh0KGZpbmFsIE1vdXNlRXZlbnQgbW91c2VFdmVudCkgeworCQkJZmluYWwg amF2YS5hd3QuUG9pbnQgcG9pbnQgPSBtb3VzZUV2ZW50LmdldFBvaW50KCk7CisJCQlmaW5h bCBpbnQgcm93SW5kZXggPSByb3dBdFBvaW50KHBvaW50KTsKKwkJCWZpbmFsIGludCBjb2xJ bmRleCA9IGNvbHVtbkF0UG9pbnQocG9pbnQpOworCQkJZmluYWwgaW50IHJlYWxDb2x1bW5J bmRleCA9IGNvbnZlcnRDb2x1bW5JbmRleFRvTW9kZWwoY29sSW5kZXgpOworCQkJZmluYWwg QWRkTmV3RG93bmxvYWRzVGFibGVNb2RlbCB0YWJsZU1vZGVsID0gKEFkZE5ld0Rvd25sb2Fk c1RhYmxlTW9kZWwpIGdldE1vZGVsKCk7CisJCQlzd2l0Y2gocmVhbENvbHVtbkluZGV4KXsK KwkJCQljYXNlIDA6CisJCQkJY2FzZSAxOgorCQkJCWNhc2UgMjoKKwkJCQljYXNlIDM6CisJ CQkJCXJldHVybiB0YWJsZU1vZGVsLmdldFZhbHVlQXQocm93SW5kZXgsIHJlYWxDb2x1bW5J bmRleCkudG9TdHJpbmcoKTsKKwkJCQljYXNlIDQ6CisJCQkJCXJldHVybiAoKEFkZE5ld0Rv d25sb2Fkc1RhYmxlTWVtYmVyKSBhZGROZXdEb3dubG9hZHNUYWJsZU1vZGVsLmdldFJvdyhy b3dJbmRleCkpLmRvd25sb2FkZWRUb29sdGlwOworCQkJCWNhc2UgNToKKwkJCQkJcmV0dXJu ICgoQWRkTmV3RG93bmxvYWRzVGFibGVNZW1iZXIpIGFkZE5ld0Rvd25sb2Fkc1RhYmxlTW9k ZWwuZ2V0Um93KHJvd0luZGV4KSkuZXhpc3RzVG9vbHRpcDsKKwkJCQlkZWZhdWx0OgorCQkJ CQlhc3NlcnQgZmFsc2U7CisJCQl9CisJCQlyZXR1cm4gdGFibGVNb2RlbC5nZXRWYWx1ZUF0 KHJvd0luZGV4LCByZWFsQ29sdW1uSW5kZXgpLnRvU3RyaW5nKCk7CisJCX0KKwkJCisJCXB1 YmxpYyBUYWJsZUNlbGxSZW5kZXJlciBnZXRDZWxsUmVuZGVyZXIoZmluYWwgaW50IHJvd0lu ZGV4LCBmaW5hbCBpbnQgY29sdW1uSW5kZXgpIHsKKwkJCXN3aXRjaChjb2x1bW5JbmRleCl7 CisJCQkJY2FzZSAwOgorCQkJCWNhc2UgMToKKwkJCQljYXNlIDI6CisJCQkJY2FzZSAzOgor CQkJCQlyZXR1cm4gc3VwZXIuZ2V0Q2VsbFJlbmRlcmVyKHJvd0luZGV4LCBjb2x1bW5JbmRl eCk7CisJCQkJY2FzZSA0OgorCQkJCWNhc2UgNToKKwkJCQkJcmV0dXJuIGNlbnRlckNlbGxS ZW5kZXJlcjsKKwkJCQlkZWZhdWx0OgorCQkJCQlhc3NlcnQgZmFsc2U7CisJCQl9CisJCQly ZXR1cm4gc3VwZXIuZ2V0Q2VsbFJlbmRlcmVyKHJvd0luZGV4LCBjb2x1bW5JbmRleCk7CisJ CX0KKworCQlwcml2YXRlIGNsYXNzIENlbnRlckNlbGxSZW5kZXJlciBleHRlbmRzIEpMYWJl bCBpbXBsZW1lbnRzIFRhYmxlQ2VsbFJlbmRlcmVyIHsKKwkJCXByaXZhdGUgc3RhdGljIGZp bmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDFMOworCisJCQlwdWJsaWMgQ29tcG9uZW50 IGdldFRhYmxlQ2VsbFJlbmRlcmVyQ29tcG9uZW50KGZpbmFsIEpUYWJsZSB0YWJsZSwKKwkJ CQkJZmluYWwgT2JqZWN0IHZhbHVlLCBmaW5hbCBib29sZWFuIGlzU2VsZWN0ZWQsIGZpbmFs IGJvb2xlYW4gaGFzRm9jdXMsCisJCQkJCWZpbmFsIGludCByb3csIGZpbmFsIGludCBjb2x1 bW4pIHsKKwkJCQl0aGlzLnNldFRleHQodmFsdWUudG9TdHJpbmcoKSk7CisJCQkJdGhpcy5z ZXRIb3Jpem9udGFsQWxpZ25tZW50KFN3aW5nQ29uc3RhbnRzLkNFTlRFUik7CisJCQkJcmV0 dXJuIHRoaXM7CisJCQl9CisJCX0KKwkJCisJCXByb3RlY3RlZCBKVGFibGVIZWFkZXIgY3Jl YXRlRGVmYXVsdFRhYmxlSGVhZGVyKCkgeworCQkJcmV0dXJuIG5ldyBKVGFibGVIZWFkZXIo Y29sdW1uTW9kZWwpIHsKKwkJCQlwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZl cnNpb25VSUQgPSAxTDsKKwkJCQlwdWJsaWMgU3RyaW5nIGdldFRvb2xUaXBUZXh0KGZpbmFs IE1vdXNlRXZlbnQgZSkgeworCQkJCQlmaW5hbCBqYXZhLmF3dC5Qb2ludCBwID0gZS5nZXRQ b2ludCgpOworCQkJCQlmaW5hbCBpbnQgaW5kZXggPSBjb2x1bW5Nb2RlbC5nZXRDb2x1bW5J bmRleEF0WChwLngpOworCQkJCQlmaW5hbCBpbnQgcmVhbEluZGV4ID0gY29sdW1uTW9kZWwu Z2V0Q29sdW1uKGluZGV4KS5nZXRNb2RlbEluZGV4KCk7CisJCQkJCXJldHVybiBjb2x1bW5U b29sdGlwc1tyZWFsSW5kZXhdOworCQkJCX0KKwkJCX07CisJCX0KKwl9CiB9CkluZGV4OiBz b3VyY2UvZnJvc3QvZ3VpL01hbmFnZVRyYWNrZWREb3dubG9hZHMuamF2YQ0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KLS0tIHNvdXJjZS9mcm9zdC9ndWkvTWFuYWdlVHJhY2tlZERvd25sb2Fkcy5qYXZh CShyZXZpc2lvbiAzMTk2KQ0KKysrIHNvdXJjZS9mcm9zdC9ndWkvTWFuYWdlVHJhY2tlZERv d25sb2Fkcy5qYXZhCSh3b3JraW5nIGNvcHkpDQpAQCAtMjQsNiArMjQsOCBAQA0KIGltcG9y dCBqYXZhLmlvLio7CiAKIGltcG9ydCBqYXZheC5zd2luZy4qOworaW1wb3J0IGphdmF4LnN3 aW5nLnRhYmxlLlRhYmxlQ2VsbFJlbmRlcmVyOworaW1wb3J0IGphdmF4LnN3aW5nLnRhYmxl LlRhYmxlTW9kZWw7CiAKIGltcG9ydCBmcm9zdC4qOwogaW1wb3J0IGZyb3N0LmZjcC4qOwpA QCAtMzgsNyArNDAsNyBAQA0KIAlwcml2YXRlIGZpbmFsIFRyYWNrRG93bmxvYWRLZXlzU3Rv cmFnZSB0cmFja0Rvd25sb2FkS2V5c1N0b3JhZ2U7CiAKIAlwcml2YXRlIFRyYWNrZWREb3du bG9hZHNNb2RlbCB0cmFja2VkRG93bmxvYWRzTW9kZWw7Ci0JcHJpdmF0ZSBTb3J0ZWRUYWJs ZSB0cmFja2VkRG93bmxvYWRzVGFibGU7CisJcHJpdmF0ZSBUcmFja2VkRG93bmxvYWRzVGFi bGUgdHJhY2tlZERvd25sb2Fkc1RhYmxlOwogCiAJcHJpdmF0ZSBKVGV4dEZpZWxkIG1heEFn ZVRleHRGaWVsZDsKIAlwcml2YXRlIEpCdXR0b24gbWF4QWdlQnV0dG9uOwpAQCAtMTE0LDcg KzExNiw3IEBADQogCiAJCQkvLyBEb3dubG9hZCBUYWJsZQogCQkJdHJhY2tlZERvd25sb2Fk c01vZGVsID0gbmV3IFRyYWNrZWREb3dubG9hZHNNb2RlbCgpOwotCQkJdHJhY2tlZERvd25s b2Fkc1RhYmxlID0gbmV3IFNvcnRlZFRhYmxlKCB0cmFja2VkRG93bmxvYWRzTW9kZWwgKTsK KwkJCXRyYWNrZWREb3dubG9hZHNUYWJsZSA9IG5ldyBUcmFja2VkRG93bmxvYWRzVGFibGUo IHRyYWNrZWREb3dubG9hZHNNb2RlbCApOwogCQkJdHJhY2tlZERvd25sb2Fkc1RhYmxlLnNl dFJvd1NlbGVjdGlvbkFsbG93ZWQodHJ1ZSk7CiAJCQl0cmFja2VkRG93bmxvYWRzVGFibGUu c2V0U2VsZWN0aW9uTW9kZSggTGlzdFNlbGVjdGlvbk1vZGVsLk1VTFRJUExFX0lOVEVSVkFM X1NFTEVDVElPTiApOwogCQkJdHJhY2tlZERvd25sb2Fkc1RhYmxlLnNldFJvd0hlaWdodCgx OCk7CkBAIC0yNDUsNyArMjQ3LDcgQEANCiAJCQkJCXRyYWNrRG93bmxvYWRLZXlzU3RvcmFn ZS5zdG9yZUl0ZW0obmV3IFRyYWNrRG93bmxvYWRLZXlzKHN0ckxpbmUsIGZpbGVOYW1lLCAi Iiwgc2VsZWN0ZWRGaWxlLmxlbmd0aCgpLCBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSkp OwogCQkJCX0KIAkJCX0KLQkJfWNhdGNoKGZpbmFsIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiBl eCkgeworCQl9IGNhdGNoKGZpbmFsIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiBleCkgewogCQkJ ZXgucHJpbnRTdGFja1RyYWNlKCk7CiAJCX0gY2F0Y2ggKGZpbmFsIElPRXhjZXB0aW9uIGV4 KSB7CiAJCQlleC5wcmludFN0YWNrVHJhY2UoKTsKQEAgLTI2OCwxMSArMjcwLDYyIEBADQog CQl0cmFja0Rvd25sb2FkS2V5c1N0b3JhZ2UuY2xlYW51cFRhYmxlKG1heF9hZ2UpOwogCQls b2FkVHJhY2tlZERvd25sb2Fkc0ludG9UYWJsZSgpOwogCX0KKwkKKwlwcml2YXRlIHN0YXRp YyBjbGFzcyBUcmFja2VkRG93bmxvYWRzTW9kZWwgZXh0ZW5kcyBTb3J0ZWRUYWJsZU1vZGVs IHsKKwkJcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMUw7 CiAKLQljbGFzcyBUcmFja2VkRG93bmxvYWRUYWJsZU1lbWJlciBpbXBsZW1lbnRzIFRhYmxl TWVtYmVyIHsKKwkJcHJpdmF0ZSBMYW5ndWFnZSBsYW5ndWFnZSA9IG51bGw7CiAKKwkJcHJv dGVjdGVkIGZpbmFsIHN0YXRpYyBTdHJpbmcgY29sdW1uTmFtZXNbXSA9IG5ldyBTdHJpbmdb NV07CisKKwkJcHJvdGVjdGVkIGZpbmFsIHN0YXRpYyBDbGFzczw/PiBjb2x1bW5DbGFzc2Vz W10gPSAgeworCQkJU3RyaW5nLmNsYXNzLAorCQkJU3RyaW5nLmNsYXNzLAorCQkJU3RyaW5n LmNsYXNzLAorCQkJU3RyaW5nLmNsYXNzLAorCQkJU3RyaW5nLmNsYXNzCisJCX07CisKKwkJ cHVibGljIFRyYWNrZWREb3dubG9hZHNNb2RlbCgpIHsKKwkJCXN1cGVyKCk7CisJCQlhc3Nl cnQgY29sdW1uQ2xhc3Nlcy5sZW5ndGggPT0gY29sdW1uTmFtZXMubGVuZ3RoOworCQkJbGFu Z3VhZ2UgPSBMYW5ndWFnZS5nZXRJbnN0YW5jZSgpOworCQkJcmVmcmVzaExhbmd1YWdlKCk7 CisJCX0KKworCQlwcml2YXRlIHZvaWQgcmVmcmVzaExhbmd1YWdlKCkgeworCQkJY29sdW1u TmFtZXNbMF0gPSBsYW5ndWFnZS5nZXRTdHJpbmcoIk1hbmFnZURvd25sb2FkVHJhY2tpbmdE aWFsb2cudGFibGUubmFtZSIpOworCQkJY29sdW1uTmFtZXNbMV0gPSBsYW5ndWFnZS5nZXRT dHJpbmcoIk1hbmFnZURvd25sb2FkVHJhY2tpbmdEaWFsb2cudGFibGUua2V5Iik7CisJCQlj b2x1bW5OYW1lc1syXSA9IGxhbmd1YWdlLmdldFN0cmluZygiTWFuYWdlRG93bmxvYWRUcmFj a2luZ0RpYWxvZy50YWJsZS5ib2FyZCIpOworCQkJY29sdW1uTmFtZXNbM10gPSBsYW5ndWFn ZS5nZXRTdHJpbmcoIk1hbmFnZURvd25sb2FkVHJhY2tpbmdEaWFsb2cudGFibGUuc2l6ZSIp OworCQkJY29sdW1uTmFtZXNbNF0gPSBsYW5ndWFnZS5nZXRTdHJpbmcoIk1hbmFnZURvd25s b2FkVHJhY2tpbmdEaWFsb2cudGFibGUuZmluaXNoZWQiKTsKKwkJfQorCisJCXB1YmxpYyBi b29sZWFuIGlzQ2VsbEVkaXRhYmxlKGludCByb3csIGludCBjb2wpIHsKKwkJCXJldHVybiBm YWxzZTsKKwkJfQorCisJCXB1YmxpYyBTdHJpbmcgZ2V0Q29sdW1uTmFtZShpbnQgY29sdW1u KSB7CisJCQlpZiggY29sdW1uID49IDAgJiYgY29sdW1uIDwgY29sdW1uTmFtZXMubGVuZ3Ro ICkKKwkJCQlyZXR1cm4gY29sdW1uTmFtZXNbY29sdW1uXTsKKwkJCXJldHVybiBudWxsOwor CQl9CisKKwkJcHVibGljIGludCBnZXRDb2x1bW5Db3VudCgpIHsKKwkJCXJldHVybiBjb2x1 bW5OYW1lcy5sZW5ndGg7CisJCX0KKworCQlwdWJsaWMgQ2xhc3M8Pz4gZ2V0Q29sdW1uQ2xh c3MoaW50IGNvbHVtbikgeworCQkJaWYoIGNvbHVtbiA+PSAwICYmIGNvbHVtbiA8IGNvbHVt bkNsYXNzZXMubGVuZ3RoICkKKwkJCQlyZXR1cm4gY29sdW1uQ2xhc3Nlc1tjb2x1bW5dOwor CQkJcmV0dXJuIG51bGw7CisJCX0KKwl9CisJCisKKwlwcml2YXRlIGNsYXNzIFRyYWNrZWRE b3dubG9hZFRhYmxlTWVtYmVyIGltcGxlbWVudHMgVGFibGVNZW1iZXIgeworCiAJCVRyYWNr RG93bmxvYWRLZXlzIHRyYWNrRG93bmxvYWRLZXk7Ci0JCVN0cmluZyBjb21tZW50OwogCiAJ CXB1YmxpYyBUcmFja2VkRG93bmxvYWRUYWJsZU1lbWJlcihmaW5hbCBUcmFja0Rvd25sb2Fk S2V5cyB0cmFja0Rvd25sb2Fka2V5KXsKIAkJCXRoaXMudHJhY2tEb3dubG9hZEtleSA9IHRy YWNrRG93bmxvYWRrZXk7CkBAIC0yODcsMTIgKzM0MCwxMiBAQA0KIAkJCQljYXNlIDI6CiAJ CQkJCXJldHVybiB0cmFja0Rvd25sb2FkS2V5LmdldEJvYXJkTmFtZSgpOwogCQkJCWNhc2Ug MzoKLQkJCQkJcmV0dXJuIHRyYWNrRG93bmxvYWRLZXkuZ2V0RmlsZVNpemUoKTsKKwkJCQkJ cmV0dXJuIEZvcm1hdHRlclV0aWxzLmZvcm1hdFNpemUodHJhY2tEb3dubG9hZEtleS5nZXRG aWxlU2l6ZSgpKTsKIAkJCQljYXNlIDQ6CiAJCQkJCWZpbmFsIGxvbmcgZGF0ZSA9IHRyYWNr RG93bmxvYWRLZXkuZ2V0RG93bmxvYWRGaW5pc2hlZFRpbWUoKTsKIAkJCQkJcmV0dXJuIG5l dyBTdHJpbmdCdWlsZGVyKCkKIAkJCQkJLmFwcGVuZChEYXRlRnVuLkZPUk1BVF9EQVRFX1ZJ U0lCTEUucHJpbnQoZGF0ZSkpCi0JCQkJCS5hcHBlbmQoIiAtICIpCisJCQkJCS5hcHBlbmQo IiAiKQogCQkJCQkuYXBwZW5kKERhdGVGdW4uRk9STUFUX1RJTUVfVklTSUJMRS5wcmludChk YXRlKSkKIAkJCQkJLnRvU3RyaW5nKCk7CiAJCQkJZGVmYXVsdCA6CkBAIC0zMTEsNyArMzY0 LDcgQEANCiAJCX0KIAl9CiAKLQljbGFzcyBUYWJsZVBvcHVwTWVudU1vdXNlTGlzdGVuZXIg aW1wbGVtZW50cyBNb3VzZUxpc3RlbmVyIHsKKwlwcml2YXRlIGNsYXNzIFRhYmxlUG9wdXBN ZW51TW91c2VMaXN0ZW5lciBpbXBsZW1lbnRzIE1vdXNlTGlzdGVuZXIgewogCQlwdWJsaWMg dm9pZCBtb3VzZVJlbGVhc2VkKGZpbmFsIE1vdXNlRXZlbnQgZXZlbnQpIHsKIAkJCW1heWJl U2hvd1BvcHVwKGV2ZW50KTsKIAkJfQpAQCAtMzI1LDEwICszNzgsNTEgQEANCiAJCXByb3Rl Y3RlZCB2b2lkIG1heWJlU2hvd1BvcHVwKGZpbmFsIE1vdXNlRXZlbnQgZSkgewogCQkJaWYo IGUuaXNQb3B1cFRyaWdnZXIoKSApIHsKIAkJCQlpZiggdHJhY2tlZERvd25sb2Fkc1RhYmxl LmdldFNlbGVjdGVkUm93Q291bnQoKSA+IDAgKSB7Ci0JCQkJCS8vIGRvbid0IHNob3cgbWVu dSBpZiBub3RoaW5nIGlzIHNlbGVjdGVkCiAJCQkJCXRhYmxlUG9wdXBNZW51LnNob3codHJh Y2tlZERvd25sb2Fkc1RhYmxlLCBlLmdldFgoKSwgZS5nZXRZKCkpOwogCQkJCX0KIAkJCX0K IAkJfQogCX0KKwkKKwkKKwlwcml2YXRlIGNsYXNzIFRyYWNrZWREb3dubG9hZHNUYWJsZSBl eHRlbmRzIFNvcnRlZFRhYmxlIHsKKwkJcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJp YWxWZXJzaW9uVUlEID0gMUw7CisJCQorCQlmaW5hbCBUYWJsZUNlbGxSZW5kZXJlciBzaXpl Q29sdW1uUmVuZGVyZXI7CisKKwkJcHVibGljIFRyYWNrZWREb3dubG9hZHNUYWJsZShmaW5h bCBUcmFja2VkRG93bmxvYWRzTW9kZWwgdHJhY2tEb3dubG9hZHNNb2RlbCkgeworCQkJc3Vw ZXIodHJhY2tEb3dubG9hZHNNb2RlbCk7CisJCQl0aGlzLnNldEludGVyY2VsbFNwYWNpbmco bmV3IERpbWVuc2lvbig1LCAxKSk7CisJCQkKKwkJCXNpemVDb2x1bW5SZW5kZXJlciA9IG5l dyBTaXplQ29sdW1uVGFibGVDZWxsUmVuZGVyZXIoKTsKKwkJfQorCisJCXB1YmxpYyBTdHJp bmcgZ2V0VG9vbFRpcFRleHQoZmluYWwgTW91c2VFdmVudCBtb3VzZUV2ZW50KSB7CisJCQlm aW5hbCBqYXZhLmF3dC5Qb2ludCBwb2ludCA9IG1vdXNlRXZlbnQuZ2V0UG9pbnQoKTsKKwkJ CWZpbmFsIGludCByb3dJbmRleCA9IHJvd0F0UG9pbnQocG9pbnQpOworCQkJZmluYWwgaW50 IGNvbEluZGV4ID0gY29sdW1uQXRQb2ludChwb2ludCk7CisJCQlmaW5hbCBpbnQgcmVhbENv bHVtbkluZGV4ID0gY29udmVydENvbHVtbkluZGV4VG9Nb2RlbChjb2xJbmRleCk7CisJCQlm aW5hbCBUYWJsZU1vZGVsIHRhYmxlTW9kZWwgPSBnZXRNb2RlbCgpOworCQkJcmV0dXJuIHRh YmxlTW9kZWwuZ2V0VmFsdWVBdChyb3dJbmRleCwgcmVhbENvbHVtbkluZGV4KS50b1N0cmlu ZygpOworCQl9CisJCQorCQlwdWJsaWMgVGFibGVDZWxsUmVuZGVyZXIgZ2V0Q2VsbFJlbmRl cmVyKGZpbmFsIGludCByb3csIGZpbmFsIGludCBjb2x1bW4pIHsKKwkJCWlmKGNvbHVtbiA9 PSAzKSB7CisJCQkJcmV0dXJuIHNpemVDb2x1bW5SZW5kZXJlcjsKKwkJCX0KKwkJCXJldHVy biBzdXBlci5nZXRDZWxsUmVuZGVyZXIocm93LCBjb2x1bW4pOworCQl9CisJCQorCQlwcml2 YXRlIGNsYXNzIFNpemVDb2x1bW5UYWJsZUNlbGxSZW5kZXJlciBleHRlbmRzIEpMYWJlbCBp bXBsZW1lbnRzIFRhYmxlQ2VsbFJlbmRlcmVyIHsKKwkJCXByaXZhdGUgc3RhdGljIGZpbmFs IGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDFMOworCisJCQlwdWJsaWMgQ29tcG9uZW50IGdl dFRhYmxlQ2VsbFJlbmRlcmVyQ29tcG9uZW50KGZpbmFsIEpUYWJsZSB0YWJsZSwKKwkJCQkJ ZmluYWwgT2JqZWN0IHZhbHVlLCBmaW5hbCBib29sZWFuIGlzU2VsZWN0ZWQsIGZpbmFsIGJv b2xlYW4gaGFzRm9jdXMsCisJCQkJCWZpbmFsIGludCByb3csIGZpbmFsIGludCBjb2x1bW4p IHsKKwkJCQl0aGlzLnNldFRleHQodmFsdWUudG9TdHJpbmcoKSk7CisJCQkJdGhpcy5zZXRI b3Jpem9udGFsQWxpZ25tZW50KFN3aW5nQ29uc3RhbnRzLlJJR0hUKTsKKwkJCQlyZXR1cm4g dGhpczsKKwkJCX0KKwkJfQorCX0KIH0KSW5kZXg6IHNvdXJjZS9mcm9zdC9ndWkvbW9kZWwv QWRkTmV3RG93bmxvYWRzVGFibGVNb2RlbC5qYXZhDQo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gc291 cmNlL2Zyb3N0L2d1aS9tb2RlbC9BZGROZXdEb3dubG9hZHNUYWJsZU1vZGVsLmphdmEJKHJl dmlzaW9uIDMxOTYpDQorKysgc291cmNlL2Zyb3N0L2d1aS9tb2RlbC9BZGROZXdEb3dubG9h ZHNUYWJsZU1vZGVsLmphdmEJKHdvcmtpbmcgY29weSkNCkBAIC0xLDcyICswLDAgQEANCi0v KgotICBBZGROZXdEb3dubG9hZHNUYWJsZU1vZGVsLmphdmEgLyBGcm9zdAotICBDb3B5cmln aHQgKEMpIDIwMTAgIEZyb3N0IFByb2plY3QgPGp0Y2Zyb3N0LnNvdXJjZWZvcmdlLm5ldD4K LQotICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCi0gIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCi0gIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCi0gIHRoZSBMaWNlbnNlLCBv ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgotICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VCi0gIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLQotICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICBGb3VuZGF0aW9u LCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KLSovCi1w YWNrYWdlIGZyb3N0Lmd1aS5tb2RlbDsKLQotaW1wb3J0IGZyb3N0LnV0aWwuZ3VpLnRyYW5z bGF0aW9uLkxhbmd1YWdlOwotCi1wdWJsaWMgY2xhc3MgQWRkTmV3RG93bmxvYWRzVGFibGVN b2RlbCBleHRlbmRzIFNvcnRlZFRhYmxlTW9kZWx7Ci0JcHJpdmF0ZSBzdGF0aWMgZmluYWwg bG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMUw7Ci0KLQlwcml2YXRlIExhbmd1YWdlIGxhbmd1 YWdlID0gbnVsbDsKLQotCXByb3RlY3RlZCBmaW5hbCBzdGF0aWMgU3RyaW5nIGNvbHVtbk5h bWVzW10gPSBuZXcgU3RyaW5nWzVdOwotCi0JcHJvdGVjdGVkIGZpbmFsIHN0YXRpYyBDbGFz czw/PiBjb2x1bW5DbGFzc2VzW10gPSAgewotCQlTdHJpbmcuY2xhc3MsCi0JCVN0cmluZy5j bGFzcywKLQkJU3RyaW5nLmNsYXNzLAotCQlTdHJpbmcuY2xhc3MsCi0JCVN0cmluZy5jbGFz cwotCX07Ci0KLQlwdWJsaWMgQWRkTmV3RG93bmxvYWRzVGFibGVNb2RlbCgpIHsKLQkJc3Vw ZXIoKTsKLQkJbGFuZ3VhZ2UgPSBMYW5ndWFnZS5nZXRJbnN0YW5jZSgpOwotCQlyZWZyZXNo TGFuZ3VhZ2UoKTsKLQl9Ci0KLQlwcml2YXRlIHZvaWQgcmVmcmVzaExhbmd1YWdlKCkgewot CQljb2x1bW5OYW1lc1swXSA9IGxhbmd1YWdlLmdldFN0cmluZygiQWRkTmV3RG93bmxvYWRz RGlhbG9nLnRhYmxlLm5hbWUiKTsKLQkJY29sdW1uTmFtZXNbMV0gPSBsYW5ndWFnZS5nZXRT dHJpbmcoIkFkZE5ld0Rvd25sb2Fkc0RpYWxvZy50YWJsZS5rZXkiKTsKLQkJY29sdW1uTmFt ZXNbMl0gPSBsYW5ndWFnZS5nZXRTdHJpbmcoIkFkZE5ld0Rvd25sb2Fkc0RpYWxvZy50YWJs ZS5wcmlvcml0eSIpOwotCQljb2x1bW5OYW1lc1szXSA9IGxhbmd1YWdlLmdldFN0cmluZygi QWRkTmV3RG93bmxvYWRzRGlhbG9nLnRhYmxlLmRvd25sb2FkRGlyIik7Ci0JCWNvbHVtbk5h bWVzWzRdID0gbGFuZ3VhZ2UuZ2V0U3RyaW5nKCJBZGROZXdEb3dubG9hZHNEaWFsb2cudGFi bGUuY29tbWVudCIpOwotCX0KLQotCXB1YmxpYyBib29sZWFuIGlzQ2VsbEVkaXRhYmxlKGlu dCByb3csIGludCBjb2wpIHsKLQkJcmV0dXJuIGZhbHNlOwotCX0KLQotCXB1YmxpYyBTdHJp bmcgZ2V0Q29sdW1uTmFtZShpbnQgY29sdW1uKSB7Ci0JCWlmKCBjb2x1bW4gPj0gMCAmJiBj b2x1bW4gPCBjb2x1bW5OYW1lcy5sZW5ndGggKQotCQkJcmV0dXJuIGNvbHVtbk5hbWVzW2Nv bHVtbl07Ci0JCXJldHVybiBudWxsOwotCX0KLQotCXB1YmxpYyBpbnQgZ2V0Q29sdW1uQ291 bnQoKSB7Ci0JCXJldHVybiBjb2x1bW5OYW1lcy5sZW5ndGg7Ci0JfQotCi0JcHVibGljIENs YXNzPD8+IGdldENvbHVtbkNsYXNzKGludCBjb2x1bW4pIHsKLQkJaWYoIGNvbHVtbiA+PSAw ICYmIGNvbHVtbiA8IGNvbHVtbkNsYXNzZXMubGVuZ3RoICkKLQkJCXJldHVybiBjb2x1bW5D bGFzc2VzW2NvbHVtbl07Ci0JCXJldHVybiBudWxsOwotCX0KLQotfQpJbmRleDogc291cmNl L2Zyb3N0L2d1aS9tb2RlbC9UcmFja2VkRG93bmxvYWRzTW9kZWwuamF2YQ0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KLS0tIHNvdXJjZS9mcm9zdC9ndWkvbW9kZWwvVHJhY2tlZERvd25sb2Fkc01vZGVs LmphdmEJKHJldmlzaW9uIDMxOTYpDQorKysgc291cmNlL2Zyb3N0L2d1aS9tb2RlbC9UcmFj a2VkRG93bmxvYWRzTW9kZWwuamF2YQkod29ya2luZyBjb3B5KQ0KQEAgLTEsNzEgKzAsMCBA QA0KLS8qCi0gIFRyYWNrZWREb3dubG9hZHNNb2RlbC5qYXZhIC8gRnJvc3QKLSAgQ29weXJp Z2h0IChDKSAyMDEwICBGcm9zdCBQcm9qZWN0IDxqdGNmcm9zdC5zb3VyY2Vmb3JnZS5uZXQ+ Ci0KLSAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgotICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgotICB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK LSAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKLSAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVQotICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCi0KLSAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAgRm91bmRhdGlv biwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCi0qLwot cGFja2FnZSBmcm9zdC5ndWkubW9kZWw7Ci0KLWltcG9ydCBmcm9zdC51dGlsLmd1aS50cmFu c2xhdGlvbi5MYW5ndWFnZTsKLQotcHVibGljIGNsYXNzIFRyYWNrZWREb3dubG9hZHNNb2Rl bCBleHRlbmRzIFNvcnRlZFRhYmxlTW9kZWwgewotCXByaXZhdGUgc3RhdGljIGZpbmFsIGxv bmcgc2VyaWFsVmVyc2lvblVJRCA9IDFMOwotCi0JcHJpdmF0ZSBMYW5ndWFnZSBsYW5ndWFn ZSA9IG51bGw7Ci0KLQlwcm90ZWN0ZWQgZmluYWwgc3RhdGljIFN0cmluZyBjb2x1bW5OYW1l c1tdID0gbmV3IFN0cmluZ1s1XTsKLQotCXByb3RlY3RlZCBmaW5hbCBzdGF0aWMgQ2xhc3M8 Pz4gY29sdW1uQ2xhc3Nlc1tdID0gIHsKLQkJU3RyaW5nLmNsYXNzLAotCQlTdHJpbmcuY2xh c3MsCi0JCVN0cmluZy5jbGFzcywKLQkJU3RyaW5nLmNsYXNzLAotCQlTdHJpbmcuY2xhc3MK LQl9OwotCi0JcHVibGljIFRyYWNrZWREb3dubG9hZHNNb2RlbCgpIHsKLQkJc3VwZXIoKTsK LQkJbGFuZ3VhZ2UgPSBMYW5ndWFnZS5nZXRJbnN0YW5jZSgpOwotCQlyZWZyZXNoTGFuZ3Vh Z2UoKTsKLQl9Ci0KLQlwcml2YXRlIHZvaWQgcmVmcmVzaExhbmd1YWdlKCkgewotCQljb2x1 bW5OYW1lc1swXSA9IGxhbmd1YWdlLmdldFN0cmluZygiTWFuYWdlRG93bmxvYWRUcmFja2lu Z0RpYWxvZy50YWJsZS5uYW1lIik7Ci0JCWNvbHVtbk5hbWVzWzFdID0gbGFuZ3VhZ2UuZ2V0 U3RyaW5nKCJNYW5hZ2VEb3dubG9hZFRyYWNraW5nRGlhbG9nLnRhYmxlLmtleSIpOwotCQlj b2x1bW5OYW1lc1syXSA9IGxhbmd1YWdlLmdldFN0cmluZygiTWFuYWdlRG93bmxvYWRUcmFj a2luZ0RpYWxvZy50YWJsZS5ib2FyZCIpOwotCQljb2x1bW5OYW1lc1szXSA9IGxhbmd1YWdl LmdldFN0cmluZygiTWFuYWdlRG93bmxvYWRUcmFja2luZ0RpYWxvZy50YWJsZS5zaXplIik7 Ci0JCWNvbHVtbk5hbWVzWzRdID0gbGFuZ3VhZ2UuZ2V0U3RyaW5nKCJNYW5hZ2VEb3dubG9h ZFRyYWNraW5nRGlhbG9nLnRhYmxlLmZpbmlzaGVkIik7Ci0JfQotCi0JcHVibGljIGJvb2xl YW4gaXNDZWxsRWRpdGFibGUoaW50IHJvdywgaW50IGNvbCkgewotCQlyZXR1cm4gZmFsc2U7 Ci0JfQotCi0JcHVibGljIFN0cmluZyBnZXRDb2x1bW5OYW1lKGludCBjb2x1bW4pIHsKLQkJ aWYoIGNvbHVtbiA+PSAwICYmIGNvbHVtbiA8IGNvbHVtbk5hbWVzLmxlbmd0aCApCi0JCQly ZXR1cm4gY29sdW1uTmFtZXNbY29sdW1uXTsKLQkJcmV0dXJuIG51bGw7Ci0JfQotCi0JcHVi bGljIGludCBnZXRDb2x1bW5Db3VudCgpIHsKLQkJcmV0dXJuIGNvbHVtbk5hbWVzLmxlbmd0 aDsKLQl9Ci0KLQlwdWJsaWMgQ2xhc3M8Pz4gZ2V0Q29sdW1uQ2xhc3MoaW50IGNvbHVtbikg ewotCQlpZiggY29sdW1uID49IDAgJiYgY29sdW1uIDwgY29sdW1uQ2xhc3Nlcy5sZW5ndGgg KQotCQkJcmV0dXJuIGNvbHVtbkNsYXNzZXNbY29sdW1uXTsKLQkJcmV0dXJuIG51bGw7Ci0J fQotfQpJbmRleDogc291cmNlL2kxOG4vbGFuZ3Jlcy5wcm9wZXJ0aWVzDQo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQotLS0gc291cmNlL2kxOG4vbGFuZ3Jlcy5wcm9wZXJ0aWVzCShyZXZpc2lvbiAzMTk2 KQ0KKysrIHNvdXJjZS9pMThuL2xhbmdyZXMucHJvcGVydGllcwkod29ya2luZyBjb3B5KQ0K QEAgLTE1LDEwICsxNSwxNiBAQA0KIEFkZE5ld0Rvd25sb2Fkc0RpYWxvZy50YWJsZS5rZXk9 S2V5CiBBZGROZXdEb3dubG9hZHNEaWFsb2cudGFibGUucHJpb3JpdHk9UHJpb3JpdHkKIEFk ZE5ld0Rvd25sb2Fkc0RpYWxvZy50YWJsZS5kb3dubG9hZERpcj1Eb3dubG9hZCBEaXJlY3Rv cnkKLUFkZE5ld0Rvd25sb2Fkc0RpYWxvZy50YWJsZS5jb21tZW50PUNvbW1lbnQKK0FkZE5l d0Rvd25sb2Fkc0RpYWxvZy50YWJsZS5kb3dubG9hZGVkPURvd25sb2FkZWQKK0FkZE5ld0Rv d25sb2Fkc0RpYWxvZy50YWJsZVRvb2xsdGlwLmRvd25sb2FkZWQ9SW5kaWNhdGVzIGlmIHRo ZSBmaWxlIChzYW1lIGtleSkgaGFzIGJlZW4gZG93bmxvYWRlZCBwcmV2aW91c2x5CitBZGRO ZXdEb3dubG9hZHNEaWFsb2cudGFibGUuZXhpc3RzPUV4aXN0cworQWRkTmV3RG93bmxvYWRz RGlhbG9nLnRhYmxlVG9vbGx0aXAuZXhpc3RzPUluZGljYXRlcyBpZiBhIGZpbGUgd2l0aCB0 aGUgc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSB0YXJnZXQgZG93bmxvYWQgZGly ZWN0b3J5CiBBZGROZXdEb3dubG9hZHNEaWFsb2cudGFibGUuYWxyZWFkeURvd25sb2FkZWQ9 RmlsZSBkb3dubG9hZGVkIHByZXZpb3VzbHkKIEFkZE5ld0Rvd25sb2Fkc0RpYWxvZy50YWJs ZS5hbHJlYWR5RG93bmxvYWRlZE5hbWU9RmlsZSB3aXRoIHNhbWUgbmFtZSBkb3dubG9hZGVk IHByZXZpb3VzbHkKIEFkZE5ld0Rvd25sb2Fkc0RpYWxvZy50YWJsZS5hbHJlYWR5RXhpc3Rz PUZpbGUgYWxyZWFkeSBleGlzdHMgaW4gZG93bmxvYWQgZGlyZWN0b3J5CitBZGROZXdEb3du bG9hZHNEaWFsb2cudGFibGUuc2l6ZVRvb2x0aXA9RmlsZXNpemUKK0FkZE5ld0Rvd25sb2Fk c0RpYWxvZy50YWJsZS5sYXN0TW9kaWZpZWRUb29sdGlwPUxhc3QgbW9kaWZpZWQKK0FkZE5l d0Rvd25sb2Fkc0RpYWxvZy50YWJsZS5maWxlU2l6ZVRvb2x0aXA9RmlsZSBzaXplCiBBZGRO ZXdEb3dubG9hZHNEaWFsb2cuYnV0dG9uLnJlbW92ZUFscmVhZHlEb3dubG9hZGVkQnV0dG9u PVJlbW92ZSBhbHJlYWR5IGRvd25sb2FkZWQKIEFkZE5ld0Rvd25sb2Fkc0RpYWxvZy5idXR0 b24ucmVtb3ZlQWxyZWFkeURvd25sb2FkZWROYW1lQnV0dG9uPVJlbW92ZSBhbHJlYWR5IGRv d25sb2FkZWQgYnkgbmFtZQogQWRkTmV3RG93bmxvYWRzRGlhbG9nLmJ1dHRvbi5yZW1vdmVB bHJlYWR5RXhpc3RzQnV0dG9uPVJlbW92ZSBhbHJlYWR5IGV4aXN0cwo= --------------080902060605060009070307 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev --------------080902060605060009070307 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Jtcfrost-devl mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jtcfrost-devl --------------080902060605060009070307--