ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2luZGV4LnR4dCBiL3J1bnRpbWUvZG9jL2luZGV4LnR4dAppbmRleCAzOGYyNjEyLi5iYmQxNzhkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbmRleC50eHQKKysrIGIvcnVudGltZS9kb2MvaW5kZXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IERlYyAxMQorKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IERlYyAxMgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNzM2LDYgKzczNiw3IEBACiB8Z3V8CQlndXttb3Rpb259CTIgIG1ha2UgTm1vdmUgdGV4dCBsb3dlcmNhc2UKIHxndnwJCWd2CQkgICByZXNlbGVjdCB0aGUgcHJldmlvdXMgVmlzdWFsIGFyZWEKIHxnd3wJCWd3e21vdGlvbn0JMiAgZm9ybWF0IE5tb3ZlIHRleHQgYW5kIGtlZXAgY3Vyc29yCit8Z0B8ICAgICAgICAgICAgZ0B7bW90aW9ufSAgICAgICAgIGNhbGwgJ29wZXJhdG9yZnVuYycKIHxnfnwJCWd+e21vdGlvbn0JMiAgc3dhcCBjYXNlIGZvciBObW92ZSB0ZXh0CiB8ZzxEb3duPnwJZzxEb3duPgkJMSAgc2FtZSBhcyAiZ2oiCiB8ZzxFbmQ+fAlnPEVuZD4JCTEgIHNhbWUgYXMgImckIgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dCBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKaW5kZXggOWQ4ZTRlNi4uYTYyNzcxZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAorKysgYi9ydW50aW1lL2RvYy9pbnNlcnQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluc2VydC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE5vdiAyMgorKmluc2VydC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IERlYyAxMgogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTA0MCw5ICsxMDQwLDkgQEAKIAogWE1MICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZnQteG1sLW9tbmkqCiAKLVZpbSA3IHByb3ZpZGVzIG1lY2hhbmlzbSB0byBjb250ZXh0IGF3YXJlIGNvbXBsZXRpb24gb2YgWE1MIGZpbGVzLiBJdCBkZXBlbmRzCi1vbiBzcGVjaWFsIHx4bWwtZGF0YS1maWxlfCBhbmQgdHdvIGNvbW1hbmRzOiB8OlhNTG5zfCBhbmQgfDpYTUxlbnR8LiBGZWF0dXJlcwotYXJlOgorVmltIDcgcHJvdmlkZXMgbWVjaGFuaXNtIHRvIGNvbnRleHQgYXdhcmUgY29tcGxldGlvbiBvZiBYTUwgZmlsZXMuICBJdCBkZXBlbmRzCitvbiBzcGVjaWFsIHx4bWwtb21uaS1kYXRhZmlsZXwgYW5kIHR3byBjb21tYW5kczogfDpYTUxuc3wgYW5kIHw6WE1MZW50fC4KK0ZlYXR1cmVzIGFyZToKIAogLSBhZnRlciAiPCIgY29tcGxldGUgdGFnIG5hbWUgZGVwZW5kaW5nIG9uIGNvbnRleHQgKG5vIGRpdiBzdWdnZXN0CiAgIGluc2lkZSBvZiBhbiBhIHRhZykKQEAgLTEwNTAsNyArMTA1MCw3IEBACiAgIGEgdGFnKQogLSB3aGVuIGF0dHJpYnV0ZSBoYXMgbGltaXRlZCBudW1iZXIgb2YgcG9zc2libGUgdmFsdWVzIGhlbHAgdG8gY29tcGxldGUKICAgdGhlbQotLSBjb21wbGV0ZSBuYW1lcyBvZiBlbnRpdGllcyAoZGVmaW5lZCBpbiB8eG1sLWRhdGEtZmlsZXwgYW5kIGluIGN1cnJlbnQgZmlsZQorLSBjb21wbGV0ZSBuYW1lcyBvZiBlbnRpdGllcyAoZGVmaW5lZCBpbiB8eG1sLW9tbmktZGF0YWZpbGV8IGFuZCBpbiBjdXJyZW50IGZpbGUKICAgd2l0aCAiPCFFTlRJVFkiIGRlY2xhcmF0aW9ucwogLSB3aGVuIHVzZWQgYWZ0ZXIgIjwvIiBDVFJMLVggQ1RSTC1PIHdpbGwgY2xvc2UgdGhlIGxhc3Qgb3BlbmVkIHRhZwogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tYXAudHh0IGIvcnVudGltZS9kb2MvbWFwLnR4dAppbmRleCBlNmVjNDdhLi5kNzUzNDNhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tYXAudHh0CisrKyBiL3J1bnRpbWUvZG9jL21hcC50eHQKQEAgLTEsNCArMSw0IEBACi0qbWFwLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgRGVjIDExCisqbWFwLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgRGVjIDEyCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMCw2ICsxMCwxNyBAQAogbWFudWFsLgogCiAxLiBLZXkgbWFwcGluZwkJCXxrZXktbWFwcGluZ3wKKyAgIDEuMSBNQVAgQ09NTUFORFMJCQl8Om1hcC1jb21tYW5kc3wKKyAgIDEuMiBTcGVjaWFsIGFyZ3VtZW50cwkJfDptYXAtYXJndW1lbnRzfAorICAgMS4zIE1hcHBpbmcgYW5kIG1vZGVzCQl8Om1hcC1tb2Rlc3wKKyAgIDEuNCBMaXN0aW5nIG1hcHBpbmdzCQkJfG1hcC1saXN0aW5nfAorICAgMS41IE1hcHBpbmcgc3BlY2lhbCBrZXlzCQl8Om1hcC1zcGVjaWFsLWtleXN8CisgICAxLjYgU3BlY2lhbCBjaGFyYWN0ZXJzCQl8Om1hcC1zcGVjaWFsLWNoYXJzfAorICAgMS43IFdoYXQga2V5cyB0byBtYXAJCQl8bWFwLXdoaWNoLWtleXN8CisgICAxLjggRXhhbXBsZXMJCQkJfG1hcC1leGFtcGxlc3wKKyAgIDEuOSBVc2luZyBtYXBwaW5ncwkJCXxtYXAtdHlwaW5nfAorICAgMS4xMCBNYXBwaW5nIGFsdC1rZXlzCQl8Om1hcC1hbHQta2V5c3wKKyAgIDEuMTEgTWFwcGluZyBhbiBvcGVyYXRvcgkJfDptYXAtb3BlcmF0b3J8CiAyLiBBYmJyZXZpYXRpb25zCQl8YWJicmV2aWF0aW9uc3wKIDMuIExvY2FsIG1hcHBpbmdzIGFuZCBmdW5jdGlvbnMJfHNjcmlwdC1sb2NhbHwKIDQuIFVzZXItZGVmaW5lZCBjb21tYW5kcwl8dXNlci1jb21tYW5kc3wKQEAgLTI0LDYgKzM1LDkgQEAKIAogVGhpcyBhcHBlbmRzIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgYWZ0ZXIgdGhlIGN1cnNvciAoaW4gPD4gbm90YXRpb24gfDw+fCkuCiAKKworMS4xIE1BUCBDT01NQU5EUwkJCQkJKjptYXAtY29tbWFuZHMqCisKIFRoZXJlIGFyZSBjb21tYW5kcyB0byBlbnRlciBuZXcgbWFwcGluZ3MsIHJlbW92ZSBtYXBwaW5ncyBhbmQgbGlzdCBtYXBwaW5ncy4KIFNlZSB8bWFwLW92ZXJ2aWV3fCBmb3IgdGhlIHZhcmlvdXMgZm9ybXMgb2YgIm1hcCIgYW5kIHRoZWlyIHJlbGF0aW9uc2hpcHMgd2l0aAogbW9kZXMuCkBAIC0xMTYsNiArMTMwLDIxIEBACiB0cmFuc2xhdGUgb25lIGtleSBpbnRvIGFub3RoZXIsIGV0Yy4gIFNlZSB8Om1rZXhyY3wgZm9yIGhvdyB0byBzYXZlIGFuZAogcmVzdG9yZSB0aGUgY3VycmVudCBtYXBwaW5ncy4KIAorCQkJCQkJCSptYXAtYW1iaWd1b3VzKgorV2hlbiB0d28gbWFwcGluZ3Mgc3RhcnQgd2l0aCB0aGUgc2FtZSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzLCB0aGV5IGFyZQorYW1iaWd1b3VzLiAgRXhhbXBsZTogPgorCTppbWFwIGFhIGZvbworCTppbWFwIGFhYSBiYXIKK1doZW4gVmltIGhhcyByZWFkICJhYSIsIGl0IHdpbGwgbmVlZCB0byBnZXQgYW5vdGhlciBjaGFyYWN0ZXIgdG8gYmUgYWJsZSB0bworZGVjaWRlIGlmICJhYSIgb3IgImFhYSIgc2hvdWxkIGJlIG1hcHBlZC4gIFRoaXMgbWVhbnMgdGhhdCBhZnRlciB0eXBpbmcgImFhIgordGhhdCBtYXBwaW5nIHdvbid0IGdldCBleHBhbmRlZCB5ZXQsIFZpbSBpcyB3YWl0aW5nIGZvciBhbm90aGVyIGNoYXJhY3Rlci4KK0lmIHlvdSB0eXBlIGEgc3BhY2UsIHRoZW4gImZvbyIgd2lsbCBnZXQgaW5zZXJ0ZWQsIHBsdXMgdGhlIHNwYWNlLiAgSWYgeW91Cit0eXBlICJhIiwgdGhlbiAiYmFyIiB3aWxsIGdldCBpbnNlcnRlZC4KK3tWaSBkb2VzIG5vdCBhbGxvdyBhbWJpZ3VvdXMgbWFwcGluZ3N9CisKKworMS4yIFNQRUNJQUwgQVJHVU1FTlRTCQkJCQkqOm1hcC1hcmd1bWVudHMqCisKIAkJCQkqOm1hcC1sb2NhbCogKjptYXAtPGJ1ZmZlcj4qICpFMjI0KiAqRTIyNSoKIElmIHRoZSBmaXJzdCBhcmd1bWVudCB0byBvbmUgb2YgdGhlc2UgY29tbWFuZHMgaXMgIjxidWZmZXI+IiBpdCB3aWxsIGFwcGx5IHRvCiBtYXBwaW5ncyBsb2NhbGx5IHRvIHRoZSBjdXJyZW50IGJ1ZmZlciBvbmx5LiAgRXhhbXBsZTogPgpAQCAtMTY3LDcgKzE5Niw3IEBACiBUaGV5IG11c3QgYXBwZWFyIHJpZ2h0IGFmdGVyIHRoZSBjb21tYW5kLCBiZWZvcmUgYW55IG90aGVyIGFyZ3VtZW50cy4KIAogCi1NQVBQSU5HIEFORCBNT0RFUworMS4zIE1BUFBJTkcgQU5EIE1PREVTCQkJCQkqOm1hcC1tb2RlcyoKIAogVGhlcmUgYXJlIGZpdmUgc2V0cyBvZiBtYXBwaW5ncwogLSBGb3IgTm9ybWFsIG1vZGU6IFdoZW4gdHlwaW5nIGNvbW1hbmRzLgpAQCAtMjM2LDE5ICsyNjUsOSBAQAogYXJlIG9ubHkgdXNlZCBmb3IgdHlwZWQgY2hhcmFjdGVycy4gIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSBsYW5ndWFnZSBtYXBwaW5nCiB3YXMgYWxyZWFkeSBkb25lIHdoZW4gdHlwaW5nIHRoZSBtYXBwaW5nLgogCi0JCQkJCQkJKm1hcC1tdWx0aWJ5dGUqCi1JdCBpcyBwb3NzaWJsZSB0byBtYXAgbXVsdGlieXRlIGNoYXJhY3RlcnMsIGJ1dCBvbmx5IHRoZSB3aG9sZSBjaGFyYWN0ZXIuICBZb3UKLWNhbm5vdCBtYXAgdGhlIGZpcnN0IGJ5dGUgb25seS4gIFRoaXMgd2FzIGRvbmUgdG8gcHJldmVudCBwcm9ibGVtcyBpbiB0aGlzCi1zY2VuYXJpbzogPgotCTpzZXQgZW5jb2Rpbmc9bGF0aW4xCi0JOmltYXAgPE0tQz4gZm9vCi0JOnNldCBlbmNvZGluZz11dGYtOAotVGhlIG1hcHBpbmcgZm9yIDxNLUM+IGlzIGRlZmluZWQgd2l0aCB0aGUgbGF0aW4xIGVuY29kaW5nLCByZXN1bHRpbmcgaW4gYSAweGMzCi1ieXRlLiAgSWYgeW91IHR5cGUgdGhlIGNoYXJhY3RlciDhICgweGVhIDxNLWE+KSBpbiBVVEYtOCBlbmNvZGluZyB0aGlzIGlzIHRoZQotdHdvIGJ5dGVzIDB4YzMgMHhhMS4gIFlvdSBkb24ndCB3YW50IHRoZSAweGMzIGJ5dGUgdG8gYmUgbWFwcGVkIHRoZW4sCi1vdGhlcndpc2UgaXQgd291bGQgYmUgaW1wb3NzaWJsZSB0byB0eXBlIHRoZSDhIGNoYXJhY3Rlci4KIAotCQkJCQkJCSptYXAtbGlzdGluZyoKKzEuNCBMSVNUSU5HIE1BUFBJTkdTCQkJCQkqbWFwLWxpc3RpbmcqCisKIFdoZW4gbGlzdGluZyBtYXBwaW5ncyB0aGUgY2hhcmFjdGVycyBpbiB0aGUgZmlyc3QgdHdvIGNvbHVtbnMgYXJlOgogCiAgICAgICBDSEFSCU1PREUJfgpAQCAtMjgzLDYgKzMwMiw0OCBAQAogCiBTZWUgfDp2ZXJib3NlLWNtZHwgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAKKworMS41IE1BUFBJTkcgU1BFQ0lBTCBLRVlTCQkJCSo6bWFwLXNwZWNpYWwta2V5cyoKKworVGhlcmUgYXJlIHRocmVlIHdheXMgdG8gbWFwIGEgc3BlY2lhbCBrZXk6CisxLiBUaGUgVmktY29tcGF0aWJsZSBtZXRob2Q6IE1hcCB0aGUga2V5IGNvZGUuICBPZnRlbiB0aGlzIGlzIGEgc2VxdWVuY2UgdGhhdAorICAgc3RhcnRzIHdpdGggPEVzYz4uICBUbyBlbnRlciBhIG1hcHBpbmcgbGlrZSB0aGlzIHlvdSB0eXBlICI6bWFwICIgYW5kIHRoZW4KKyAgIHlvdSBoYXZlIHRvIHR5cGUgQ1RSTC1WIGJlZm9yZSBoaXR0aW5nIHRoZSBmdW5jdGlvbiBrZXkuICBOb3RlIHRoYXQgd2hlbgorICAgdGhlIGtleSBjb2RlIGZvciB0aGUga2V5IGlzIGluIHRoZSB0ZXJtY2FwICh0aGUgdF8gb3B0aW9ucyksIGl0IHdpbGwKKyAgIGF1dG9tYXRpY2FsbHkgYmUgdHJhbnNsYXRlZCBpbnRvIHRoZSBpbnRlcm5hbCBjb2RlIGFuZCBiZWNvbWUgdGhlIHNlY29uZAorICAgd2F5IG9mIG1hcHBpbmcgKHVubGVzcyB0aGUgJ2snIGZsYWcgaXMgaW5jbHVkZWQgaW4gJ2Nwb3B0aW9ucycpLgorMi4gVGhlIHNlY29uZCBtZXRob2QgaXMgdG8gdXNlIHRoZSBpbnRlcm5hbCBjb2RlIGZvciB0aGUgZnVuY3Rpb24ga2V5LiAgVG8KKyAgIGVudGVyIHN1Y2ggYSBtYXBwaW5nIHR5cGUgQ1RSTC1LIGFuZCB0aGVuIGhpdCB0aGUgZnVuY3Rpb24ga2V5LCBvciB1c2UKKyAgIHRoZSBmb3JtICIjMSIsICIjMiIsIC4uICIjOSIsICIjMCIsICI8VXA+IiwgIjxTLURvd24+IiwgIjxTLUY3PiIsIGV0Yy4KKyAgIChzZWUgdGFibGUgb2Yga2V5cyB8a2V5LW5vdGF0aW9ufCwgYWxsIGtleXMgZnJvbSA8VXA+IGNhbiBiZSB1c2VkKS4gIFRoZQorICAgZmlyc3QgdGVuIGZ1bmN0aW9uIGtleXMgY2FuIGJlIGRlZmluZWQgaW4gdHdvIHdheXM6IEp1c3QgdGhlIG51bWJlciwgbGlrZQorICAgIiMyIiwgYW5kIHdpdGggIjxGPiIsIGxpa2UgIjxGMj4iLiAgQm90aCBzdGFuZCBmb3IgZnVuY3Rpb24ga2V5IDIuICAiIzAiCisgICByZWZlcnMgdG8gZnVuY3Rpb24ga2V5IDEwLCBkZWZpbmVkIHdpdGggb3B0aW9uICd0X2YxMCcsIHdoaWNoIG1heSBiZQorICAgZnVuY3Rpb24ga2V5IHplcm8gb24gc29tZSBrZXlib2FyZHMuICBUaGUgPD4gZm9ybSBjYW5ub3QgYmUgdXNlZCB3aGVuCisgICAnY3BvcHRpb25zJyBpbmNsdWRlcyB0aGUgJzwnIGZsYWcuCiszLiBVc2UgdGhlIHRlcm1jYXAgZW50cnksIHdpdGggdGhlIGZvcm0gPHRfeHg+LCB3aGVyZSAieHgiIGlzIHRoZSBuYW1lIG9mIHRoZQorICAgdGVybWNhcCBlbnRyeS4gIEFueSBzdHJpbmcgZW50cnkgY2FuIGJlIHVzZWQuICBGb3IgZXhhbXBsZTogPgorICAgICA6bWFwIDx0X0YzPiBHCis8ICBNYXBzIGZ1bmN0aW9uIGtleSAxMyB0byAiRyIuICBUaGlzIGRvZXMgbm90IHdvcmsgaWYgJ2Nwb3B0aW9ucycgaW5jbHVkZXMKKyAgIHRoZSAnPCcgZmxhZy4KKworVGhlIGFkdmFudGFnZSBvZiB0aGUgc2Vjb25kIGFuZCB0aGlyZCBtZXRob2QgaXMgdGhhdCB0aGUgbWFwcGluZyB3aWxsIHdvcmsgb24KK2RpZmZlcmVudCB0ZXJtaW5hbHMgd2l0aG91dCBtb2RpZmljYXRpb24gKHRoZSBmdW5jdGlvbiBrZXkgd2lsbCBiZQordHJhbnNsYXRlZCBpbnRvIHRoZSBzYW1lIGludGVybmFsIGNvZGUgb3IgdGhlIGFjdHVhbCBrZXkgY29kZSwgbm8gbWF0dGVyIHdoYXQKK3Rlcm1pbmFsIHlvdSBhcmUgdXNpbmcuICBUaGUgdGVybWNhcCBtdXN0IGJlIGNvcnJlY3QgZm9yIHRoaXMgdG8gd29yaywgYW5kIHlvdQorbXVzdCB1c2UgdGhlIHNhbWUgbWFwcGluZ3MpLgorCitERVRBSUw6IFZpbSBmaXJzdCBjaGVja3MgaWYgYSBzZXF1ZW5jZSBmcm9tIHRoZSBrZXlib2FyZCBpcyBtYXBwZWQuICBJZiBpdAoraXNuJ3QgdGhlIHRlcm1pbmFsIGtleSBjb2RlcyBhcmUgdHJpZWQgKHNlZSB8dGVybWluYWwtb3B0aW9uc3wpLiAgSWYgYQordGVybWluYWwgY29kZSBpcyBmb3VuZCBpdCBpcyByZXBsYWNlZCB3aXRoIHRoZSBpbnRlcm5hbCBjb2RlLiAgVGhlbiB0aGUgY2hlY2sKK2ZvciBhIG1hcHBpbmcgaXMgZG9uZSBhZ2FpbiAoc28geW91IGNhbiBtYXAgYW4gaW50ZXJuYWwgY29kZSB0byBzb21ldGhpbmcKK2Vsc2UpLiAgV2hhdCBpcyB3cml0dGVuIGludG8gdGhlIHNjcmlwdCBmaWxlIGRlcGVuZHMgb24gd2hhdCBpcyByZWNvZ25pemVkLgorSWYgdGhlIHRlcm1pbmFsIGtleSBjb2RlIHdhcyByZWNvZ25pemVkIGFzIGEgbWFwcGluZyB0aGUga2V5IGNvZGUgaXRzZWxmIGlzCit3cml0dGVuIHRvIHRoZSBzY3JpcHQgZmlsZS4gIElmIGl0IHdhcyByZWNvZ25pemVkIGFzIGEgdGVybWluYWwgY29kZSB0aGUKK2ludGVybmFsIGNvZGUgaXMgd3JpdHRlbiB0byB0aGUgc2NyaXB0IGZpbGUuCisKKworMS42IFNQRUNJQUwgQ0hBUkFDVEVSUwkJCQkJKjptYXAtc3BlY2lhbC1jaGFycyoKIAkJCQkJCQkqbWFwX2JhY2tzbGFzaCoKIE5vdGUgdGhhdCBvbmx5IENUUkwtViBpcyBtZW50aW9uZWQgaGVyZSBhcyBhIHNwZWNpYWwgY2hhcmFjdGVyIGZvciBtYXBwaW5ncwogYW5kIGFiYnJldmlhdGlvbnMuICBXaGVuICdjcG9wdGlvbnMnIGRvZXMgbm90IGNvbnRhaW4gJ0InLCBhIGJhY2tzbGFzaCBjYW4KQEAgLTI5NCwxOCArMzU1LDYgQEAKIHNlcXVlbmNlICI8QnNsYXNoPiIgY2FuIGJlIHVzZWQuICBUaGlzIGF2b2lkcyB0aGUgbmVlZCB0byBkb3VibGUgYmFja3NsYXNoZXMKIHdoZW4gdXNpbmcgbmVzdGVkIG1hcHBpbmdzLgogCi0JCQkJCQkJKm1hcC1hbWJpZ3VvdXMqCi1XaGVuIHR3byBtYXBwaW5ncyBzdGFydCB3aXRoIHRoZSBzYW1lIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMsIHRoZXkgYXJlCi1hbWJpZ3VvdXMuICBFeGFtcGxlOiA+Ci0JOmltYXAgYWEgZm9vCi0JOmltYXAgYWFhIGJhcgotV2hlbiBWaW0gaGFzIHJlYWQgImFhIiwgaXQgd2lsbCBuZWVkIHRvIGdldCBhbm90aGVyIGNoYXJhY3RlciB0byBiZSBhYmxlIHRvCi1kZWNpZGUgaWYgImFhIiBvciAiYWFhIiBzaG91bGQgYmUgbWFwcGVkLiAgVGhpcyBtZWFucyB0aGF0IGFmdGVyIHR5cGluZyAiYWEiCi10aGF0IG1hcHBpbmcgd29uJ3QgZ2V0IGV4cGFuZGVkIHlldCwgVmltIGlzIHdhaXRpbmcgZm9yIGFub3RoZXIgY2hhcmFjdGVyLgotSWYgeW91IHR5cGUgYSBzcGFjZSwgdGhlbiAiZm9vIiB3aWxsIGdldCBpbnNlcnRlZCwgcGx1cyB0aGUgc3BhY2UuICBJZiB5b3UKLXR5cGUgImEiLCB0aGVuICJiYXIiIHdpbGwgZ2V0IGluc2VydGVkLgote1ZpIGRvZXMgbm90IGFsbG93IGFtYmlndW91cyBtYXBwaW5nc30KLQogCQkJCQkJCSptYXBfQ1RSTC1DKgogVXNpbmcgQ1RSTC1DIGluIHRoZSB7bGhzfSBpcyBwb3NzaWJsZSwgYnV0IGl0IHdpbGwgb25seSB3b3JrIHdoZW4gVmltIGlzCiB3YWl0aW5nIGZvciBhIGtleSwgbm90IHdoZW4gVmltIGlzIGJ1c3kgd2l0aCBzb21ldGhpbmcuICBXaGVuIFZpbSBpcyBidXN5CkBAIC0zMzEsNiArMzgwLDE4IEBACiAJOm1hcCAgPEY4PiAgPE5vcD4KIAk6bWFwISA8Rjg+ICA8Tm9wPgogPAorCQkJCQkJCSptYXAtbXVsdGlieXRlKgorSXQgaXMgcG9zc2libGUgdG8gbWFwIG11bHRpYnl0ZSBjaGFyYWN0ZXJzLCBidXQgb25seSB0aGUgd2hvbGUgY2hhcmFjdGVyLiAgWW91CitjYW5ub3QgbWFwIHRoZSBmaXJzdCBieXRlIG9ubHkuICBUaGlzIHdhcyBkb25lIHRvIHByZXZlbnQgcHJvYmxlbXMgaW4gdGhpcworc2NlbmFyaW86ID4KKwk6c2V0IGVuY29kaW5nPWxhdGluMQorCTppbWFwIDxNLUM+IGZvbworCTpzZXQgZW5jb2Rpbmc9dXRmLTgKK1RoZSBtYXBwaW5nIGZvciA8TS1DPiBpcyBkZWZpbmVkIHdpdGggdGhlIGxhdGluMSBlbmNvZGluZywgcmVzdWx0aW5nIGluIGEgMHhjMworYnl0ZS4gIElmIHlvdSB0eXBlIHRoZSBjaGFyYWN0ZXIg4SAoMHhlYSA8TS1hPikgaW4gVVRGLTggZW5jb2RpbmcgdGhpcyBpcyB0aGUKK3R3byBieXRlcyAweGMzIDB4YTEuICBZb3UgZG9uJ3Qgd2FudCB0aGUgMHhjMyBieXRlIHRvIGJlIG1hcHBlZCB0aGVuLAorb3RoZXJ3aXNlIGl0IHdvdWxkIGJlIGltcG9zc2libGUgdG8gdHlwZSB0aGUg4SBjaGFyYWN0ZXIuCisKIAkJCQkJKjxMZWFkZXI+KiAqbWFwbGVhZGVyKgogVG8gZGVmaW5lIGEgbWFwcGluZyB3aGljaCB1c2VzIHRoZSAibWFwbGVhZGVyIiB2YXJpYWJsZSwgdGhlIHNwZWNpYWwgc3RyaW5nCiAiPExlYWRlcj4iIGNhbiBiZSB1c2VkLiAgSXQgaXMgcmVwbGFjZWQgd2l0aCB0aGUgc3RyaW5nIHZhbHVlIG9mICJtYXBsZWFkZXIiLgpAQCAtNDE4LDcgKzQ3OSw5IEBACiByZWdpc3RlcnMgYW5kIG1hcmtzLCBldmVuIHdoZW4gdGhlIGNvbW1hbmQgd2l0aCB0aGUgc2FtZSBuYW1lIGhhcyBiZWVuCiBtYXBwZWQuCiAKLQkJCQkJCQkqbWFwLXdoaWNoLWtleXMqCisKKzEuNyBXSEFUIEtFWVMgVE8gTUFQCQkJCQkqbWFwLXdoaWNoLWtleXMqCisKIElmIHlvdSBhcmUgZ29pbmcgdG8gbWFwIHNvbWV0aGluZywgeW91IHdpbGwgbmVlZCB0byBjaG9vc2Ugd2hpY2gga2V5KHMpIHRvIHVzZQogZm9yIHRoZSB7bGhzfS4gIFlvdSB3aWxsIGhhdmUgdG8gYXZvaWQga2V5cyB0aGF0IGFyZSB1c2VkIGZvciBWaW0gY29tbWFuZHMsCiBvdGhlcndpc2UgeW91IHdvdWxkIG5vdCBiZSBhYmxlIHRvIHVzZSB0aG9zZSBjb21tYW5kcyBhbnltb3JlLiAgSGVyZSBhcmUgYSBmZXcKQEAgLTQzNiw3ICs0OTksOSBAQAogYSBrZXkgaXMgdXNlZCBmb3Igc29tZSBjb21tYW5kLiAgKHtrZXl9IGlzIHRoZSBzcGVjaWZpYyBrZXkgeW91IHdhbnQgdG8gZmluZAogb3V0IGFib3V0LCBeRCBpcyBDVFJMLUQpLgogCi0JCQkJCQkJKm1hcC1leGFtcGxlcyoKKworMS44IEVYQU1QTEVTCQkJCQkJKm1hcC1leGFtcGxlcyoKKwogQSBmZXcgZXhhbXBsZXMgKGdpdmVuIGFzIHlvdSB0eXBlIHRoZW0sIGZvciAiPENSPiIgeW91IHR5cGUgZm91ciBjaGFyYWN0ZXJzOwogdGhlICc8JyBmbGFnIG11c3Qgbm90IGJlIHByZXNlbnQgaW4gJ2Nwb3B0aW9ucycgZm9yIHRoaXMgdG8gd29yaykuID4KIApAQCAtNDQ1LDcgKzUxMCw5IEBACiAgICA6bWFwIF94ICAgIGQvRU5EL2U8Q1I+CiAgICA6bWFwISBxcSAgIHF1YWRyaWxsaW9uIHF1ZXN0aW9ucwogPAotCQkJCQkJCSptYXAtdHlwaW5nKgorCisxLjkgVVNJTkcgTUFQUElOR1MJCQkJCSptYXAtdHlwaW5nKgorCiBWaW0gd2lsbCBjb21wYXJlIHdoYXQgeW91IHR5cGUgd2l0aCB0aGUgc3RhcnQgb2YgYSBtYXBwZWQgc2VxdWVuY2UuICBJZiB0aGVyZQogaXMgYW4gaW5jb21wbGV0ZSBtYXRjaCwgaXQgd2lsbCBnZXQgbW9yZSBjaGFyYWN0ZXJzIHVudGlsIHRoZXJlIGVpdGhlciBpcyBhCiBjb21wbGV0ZSBtYXRjaCBvciB1bnRpbCB0aGVyZSBpcyBubyBtYXRjaCBhdCBhbGwuICBFeGFtcGxlOiBJZiB5b3UgbWFwISAicXEiLApAQCAtNTIxLDQ2ICs1ODgsOCBAQAogc2VxdWVuY2UgKGhhdmluZyB0d28gdW5kbyBjb21tYW5kcyBpbiBhIG1hcHBlZCBzZXF1ZW5jZSBkaWQgbm90IG1ha2Ugc2Vuc2UKIGluIHRoZSBvcmlnaW5hbCBWaSwgeW91IHdvdWxkIGdldCBiYWNrIHRoZSB0ZXh0IGJlZm9yZSB0aGUgZmlyc3QgdW5kbykuCiAKLQkJCQkJCQkqOm1hcC1zcGVjaWFsLWtleXMqCi1UaGVyZSBhcmUgdGhyZWUgd2F5cyB0byBtYXAgYSBzcGVjaWFsIGtleToKLTEuIFRoZSBWaS1jb21wYXRpYmxlIG1ldGhvZDogTWFwIHRoZSBrZXkgY29kZS4gIE9mdGVuIHRoaXMgaXMgYSBzZXF1ZW5jZSB0aGF0Ci0gICBzdGFydHMgd2l0aCA8RXNjPi4gIFRvIGVudGVyIGEgbWFwcGluZyBsaWtlIHRoaXMgeW91IHR5cGUgIjptYXAgIiBhbmQgdGhlbgotICAgeW91IGhhdmUgdG8gdHlwZSBDVFJMLVYgYmVmb3JlIGhpdHRpbmcgdGhlIGZ1bmN0aW9uIGtleS4gIE5vdGUgdGhhdCB3aGVuCi0gICB0aGUga2V5IGNvZGUgZm9yIHRoZSBrZXkgaXMgaW4gdGhlIHRlcm1jYXAgKHRoZSB0XyBvcHRpb25zKSwgaXQgd2lsbAotICAgYXV0b21hdGljYWxseSBiZSB0cmFuc2xhdGVkIGludG8gdGhlIGludGVybmFsIGNvZGUgYW5kIGJlY29tZSB0aGUgc2Vjb25kCi0gICB3YXkgb2YgbWFwcGluZyAodW5sZXNzIHRoZSAnaycgZmxhZyBpcyBpbmNsdWRlZCBpbiAnY3BvcHRpb25zJykuCi0yLiBUaGUgc2Vjb25kIG1ldGhvZCBpcyB0byB1c2UgdGhlIGludGVybmFsIGNvZGUgZm9yIHRoZSBmdW5jdGlvbiBrZXkuICBUbwotICAgZW50ZXIgc3VjaCBhIG1hcHBpbmcgdHlwZSBDVFJMLUsgYW5kIHRoZW4gaGl0IHRoZSBmdW5jdGlvbiBrZXksIG9yIHVzZQotICAgdGhlIGZvcm0gIiMxIiwgIiMyIiwgLi4gIiM5IiwgIiMwIiwgIjxVcD4iLCAiPFMtRG93bj4iLCAiPFMtRjc+IiwgZXRjLgotICAgKHNlZSB0YWJsZSBvZiBrZXlzIHxrZXktbm90YXRpb258LCBhbGwga2V5cyBmcm9tIDxVcD4gY2FuIGJlIHVzZWQpLiAgVGhlCi0gICBmaXJzdCB0ZW4gZnVuY3Rpb24ga2V5cyBjYW4gYmUgZGVmaW5lZCBpbiB0d28gd2F5czogSnVzdCB0aGUgbnVtYmVyLCBsaWtlCi0gICAiIzIiLCBhbmQgd2l0aCAiPEY+IiwgbGlrZSAiPEYyPiIuICBCb3RoIHN0YW5kIGZvciBmdW5jdGlvbiBrZXkgMi4gICIjMCIKLSAgIHJlZmVycyB0byBmdW5jdGlvbiBrZXkgMTAsIGRlZmluZWQgd2l0aCBvcHRpb24gJ3RfZjEwJywgd2hpY2ggbWF5IGJlCi0gICBmdW5jdGlvbiBrZXkgemVybyBvbiBzb21lIGtleWJvYXJkcy4gIFRoZSA8PiBmb3JtIGNhbm5vdCBiZSB1c2VkIHdoZW4KLSAgICdjcG9wdGlvbnMnIGluY2x1ZGVzIHRoZSAnPCcgZmxhZy4KLTMuIFVzZSB0aGUgdGVybWNhcCBlbnRyeSwgd2l0aCB0aGUgZm9ybSA8dF94eD4sIHdoZXJlICJ4eCIgaXMgdGhlIG5hbWUgb2YgdGhlCi0gICB0ZXJtY2FwIGVudHJ5LiAgQW55IHN0cmluZyBlbnRyeSBjYW4gYmUgdXNlZC4gIEZvciBleGFtcGxlOiA+Ci0gICAgIDptYXAgPHRfRjM+IEcKLTwgIE1hcHMgZnVuY3Rpb24ga2V5IDEzIHRvICJHIi4gIFRoaXMgZG9lcyBub3Qgd29yayBpZiAnY3BvcHRpb25zJyBpbmNsdWRlcwotICAgdGhlICc8JyBmbGFnLgogCi1UaGUgYWR2YW50YWdlIG9mIHRoZSBzZWNvbmQgYW5kIHRoaXJkIG1ldGhvZCBpcyB0aGF0IHRoZSBtYXBwaW5nIHdpbGwgd29yayBvbgotZGlmZmVyZW50IHRlcm1pbmFscyB3aXRob3V0IG1vZGlmaWNhdGlvbiAodGhlIGZ1bmN0aW9uIGtleSB3aWxsIGJlCi10cmFuc2xhdGVkIGludG8gdGhlIHNhbWUgaW50ZXJuYWwgY29kZSBvciB0aGUgYWN0dWFsIGtleSBjb2RlLCBubyBtYXR0ZXIgd2hhdAotdGVybWluYWwgeW91IGFyZSB1c2luZy4gIFRoZSB0ZXJtY2FwIG11c3QgYmUgY29ycmVjdCBmb3IgdGhpcyB0byB3b3JrLCBhbmQgeW91Ci1tdXN0IHVzZSB0aGUgc2FtZSBtYXBwaW5ncykuCi0KLURFVEFJTDogVmltIGZpcnN0IGNoZWNrcyBpZiBhIHNlcXVlbmNlIGZyb20gdGhlIGtleWJvYXJkIGlzIG1hcHBlZC4gIElmIGl0Ci1pc24ndCB0aGUgdGVybWluYWwga2V5IGNvZGVzIGFyZSB0cmllZCAoc2VlIHx0ZXJtaW5hbC1vcHRpb25zfCkuICBJZiBhCi10ZXJtaW5hbCBjb2RlIGlzIGZvdW5kIGl0IGlzIHJlcGxhY2VkIHdpdGggdGhlIGludGVybmFsIGNvZGUuICBUaGVuIHRoZSBjaGVjawotZm9yIGEgbWFwcGluZyBpcyBkb25lIGFnYWluIChzbyB5b3UgY2FuIG1hcCBhbiBpbnRlcm5hbCBjb2RlIHRvIHNvbWV0aGluZwotZWxzZSkuICBXaGF0IGlzIHdyaXR0ZW4gaW50byB0aGUgc2NyaXB0IGZpbGUgZGVwZW5kcyBvbiB3aGF0IGlzIHJlY29nbml6ZWQuCi1JZiB0aGUgdGVybWluYWwga2V5IGNvZGUgd2FzIHJlY29nbml6ZWQgYXMgYSBtYXBwaW5nIHRoZSBrZXkgY29kZSBpdHNlbGYgaXMKLXdyaXR0ZW4gdG8gdGhlIHNjcmlwdCBmaWxlLiAgSWYgaXQgd2FzIHJlY29nbml6ZWQgYXMgYSB0ZXJtaW5hbCBjb2RlIHRoZQotaW50ZXJuYWwgY29kZSBpcyB3cml0dGVuIHRvIHRoZSBzY3JpcHQgZmlsZS4KLQotCi1NYXBwaW5nIEFMVC1rZXlzCQkJCQkqOm1hcC1hbHQta2V5cyoKKzEuMTAgTUFQUElORyBBTFQtS0VZUwkJCQkJKjptYXAtYWx0LWtleXMqCiAKIEluIHRoZSBHVUkgVmltIGhhbmRsZXMgdGhlIEFsdCBrZXkgaXRzZWxmLCB0aHVzIG1hcHBpbmcga2V5cyB3aXRoIEFMVCBzaG91bGQKIGFsd2F5cyB3b3JrLiAgQnV0IGluIGEgdGVybWluYWwgVmltIGdldHMgYSBzZXF1ZW5jZSBvZiBieXRlcyBhbmQgaGFzIHRvIGZpZ3VyZQpAQCAtNjAxLDYgKzYzMCw2MiBAQAogb24gdGhlIHRlcm1pbmFsOyB0aGF0J3MgYSBnb29kIGxhc3QgcmVzb3VyY2UgaW4gY2FzZSB5b3Ugd2FudCB0byBzZW5kIEVTQyB3aGVuCiB1c2luZyBvdGhlciBhcHBsaWNhdGlvbnMgYnV0IG5vdCB3aGVuIGluc2lkZSBWSU0uCiAKKworMS4xMSBNQVBQSU5HIEFOIE9QRVJBVE9SCQkJCSo6bWFwLW9wZXJhdG9yKgorCitBbiBvcGVyYXRvciBpcyB1c2VkIGJlZm9yZSBhIHttb3Rpb259IGNvbW1hbmQuICBUbyBkZWZpbmUgeW91ciBvd24gb3BlcmF0b3IKK3lvdSBtdXN0IGNyZWF0ZSBtYXBwaW5nIHRoYXQgZmlyc3Qgc2V0cyB0aGUgJ29wZXJhdG9yZnVuYycgb3B0aW9uIGFuZCB0aGVuCitpbnZva2UgdGhlIHxnQHwgb3BlcmF0b3IuICBBZnRlciB0aGUgdXNlciB0eXBlcyB0aGUge21vdGlvbn0gY29tbWFuZCB0aGUKK3NwZWNpZmllZCBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZC4KKworCQkJCQkJCSpnQCoKK2dAe21vdGlvbn0JCUNhbGwgdGhlIGZ1bmN0aW9uIHNldCBieSB0aGUgJ29wZXJhdG9yZnVuYycgb3B0aW9uLgorCQkJVGhlICdbIG1hcmsgaXMgcG9zaXRpb25lZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHRleHQKKwkJCW1vdmVkIG92ZXIgYnkge21vdGlvbn0sIHRoZSAnXSBtYXJrIG9uIHRoZSBsYXN0CisJCQljaGFyYWN0ZXIgb2YgdGhlIHRleHQuCisJCQlUaGUgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggb25lIFN0cmluZyBhcmd1bWVudDoKKwkJCSAgICAibGluZSIJe21vdGlvbn0gd2FzIHxsaW5ld2lzZXwKKwkJCSAgICAiY2hhciIJe21vdGlvbn0gd2FzIHxjaGFyYWN0ZXJ3aXNlfAorCQkJICAgICJibG9jayIJe21vdGlvbn0gd2FzIHxibG9ja3dpc2UtdmlzdWFsfHwKKwkJCUFsdGhvdWdoICJibG9jayIgd291bGQgcmFyZWx5IGFwcGVhciwgc2luY2UgaXQgY2FuCisJCQlvbmx5IHJlc3VsdCBmcm9tIFZpc3VhbCBtb2RlIHdoZXJlICJnQCIgaXMgbm90IHVzZWZ1bC4KKwkJCXtub3QgYXZhaWxhYmxlIHdoZW4gY29tcGlsZWQgd2l0aG91dCB0aGUgK2V2YWwKKwkJCWZlYXR1cmV9CisKK0hlcmUgaXMgYW4gZXhhbXBsZSB0aGF0IGNvdW50cyB0aGUgbnVtYmVyIG9mIHNwYWNlcyB3aXRoIDxGND46ID4KKworCW5tYXAgPHNpbGVudD4gPEY0PiA6c2V0IG9wZnVuYz1Db3VudFNwYWNlczxDUj5nQAorCXZtYXAgPHNpbGVudD4gPEY0PiA6PEMtVT5jYWxsIENvdW50U3BhY2VzKHZpc3VhbG1vZGUoKSwgMSk8Q1I+CisKKwlmdW5jdGlvbiEgQ291bnRTcGFjZXModHlwZSwgLi4uKQorCSAgbGV0IHNlbF9zYXZlID0gJnNlbGVjdGlvbgorCSAgbGV0ICZzZWxlY3Rpb24gPSAiaW5jbHVzaXZlIgorCSAgbGV0IHJlZ19zYXZlID0gQEAKKworCSAgaWYgYTowICAiIEludm9rZWQgZnJvbSBWaXN1YWwgbW9kZSwgdXNlICc8IGFuZCAnPiBtYXJrcy4KKwkgICAgc2lsZW50IGV4ZSAibm9ybWFsISBgPCIgLiBhOnR5cGUgLiAiYD55IgorCSAgZWxzZWlmIGE6dHlwZSA9PSAnbGluZScKKwkgICAgc2lsZW50IGV4ZSAibm9ybWFsISAnW1YnXXkiCisJICBlbHNlaWYgYTp0eXBlID09ICdibG9jaycKKwkgICAgc2lsZW50IGV4ZSAibm9ybWFsISBgW1w8Qy1WPmBdeSIKKwkgIGVsc2UKKwkgICAgc2lsZW50IGV4ZSAibm9ybWFsISBgW3ZgXXkiCisJICBlbmRpZgorCisJICBlY2hvbXNnIHN0cmxlbihzdWJzdGl0dXRlKEBALCAnW14gXScsICcnLCAnZycpKQorCisJICBsZXQgJnNlbGVjdGlvbiA9IHNlbF9zYXZlCisJICBsZXQgQEAgPSByZWdfc2F2ZQorCWVuZGZ1bmN0aW9uCisKK05vdGUgdGhhdCB0aGUgJ3NlbGVjdGlvbicgb3B0aW9uIGlzIHRlbXBvcmFyaWx5IHNldCB0byAiaW5jbHVzaXZlIiB0byBiZSBhYmxlCit0byB5YW5rIGV4YWN0bHkgdGhlIHJpZ2h0IHRleHQgYnkgdXNpbmcgVmlzdWFsIG1vZGUgZnJvbSB0aGUgJ1sgdG8gdGhlICddCittYXJrLgorCitBbHNvIG5vdGUgdGhhdCB0aGVyZSBpcyBhIHNlcGFyYXRlIG1hcHBpbmcgZm9yIFZpc3VhbCBtb2RlLiAgSXQgcmVtb3ZlcyB0aGUKKyInPCwnPiIgcmFuZ2UgdGhhdCAiOiIgaW5zZXJ0cyBpbiBWaXN1YWwgbW9kZSBhbmQgaW52b2tlcyB0aGUgZnVuY3Rpb24gd2l0aAordmlzdWFsbW9kZSgpIGFuZCBhbiBleHRyYSBhcmd1bWVudC4KKwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAyLiBBYmJyZXZpYXRpb25zCQkJKmFiYnJldmlhdGlvbnMqICpBYmJyZXZpYXRpb25zKgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQgYi9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQKaW5kZXggOWY0ZjdlNi4uNjg3ZTVjZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0CisrKyBiL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpxdWlja3JlZi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBOb3YgMjUKKypxdWlja3JlZi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBEZWMgMTIKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTc3NCw2ICs3NzQsNyBAQAogfCdudW1iZXInfAkgIHwnbnUnfCAgICAgcHJpbnQgdGhlIGxpbmUgbnVtYmVyIGluIGZyb250IG9mIGVhY2ggbGluZQogfCdudW1iZXJ3aWR0aCd8CSAgfCdudXcnfCAgICBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGZvciB0aGUgbGluZSBudW1iZXIKIHwnb21uaWZ1bmMnfCAgICAgIHwnb2Z1J3wgICAgZnVuY3Rpb24gZm9yIGZpbGV0eXBlLXNwZWNpZmljIGNvbXBsZXRpb24KK3wnb3BlcmF0b3JmdW5jJ3wgIHwnb3BmdW5jJ3wgZnVudGlvbiB0byBiZSBjYWxsZWQgZm9yIHxnQHwgb3BlcmF0b3IKIHwnb3NmaWxldHlwZSd8CSAgfCdvZnQnfCAgICBvcGVyYXRpbmcgc3lzdGVtLXNwZWNpZmljIGZpbGV0eXBlIGluZm9ybWF0aW9uCiB8J3BhcmFncmFwaHMnfAkgIHwncGFyYSd8ICAgbnJvZmYgbWFjcm9zIHRoYXQgc2VwYXJhdGUgcGFyYWdyYXBocwogfCdwYXN0ZSd8CQkgICAgIGFsbG93IHBhc3RpbmcgdGV4dAo=