ZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvcm8vbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3JvL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwN2UyNzEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3JvL21haW4uYWFwCkBAIC0wLDAgKzEsODEgQEAKKyMgQWFwIHJlY2lwZSBmb3IgUm9tYW5pYW4gVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSByb19STy5hZmYgcm9fUk8uZGljCisKK2FsbDogJFNQRUxMRElSL3JvLmlzby04ODU5LTIuc3BsICRTUEVMTERJUi9yby51dGYtOC5zcGwgXAorICAgICAgICAkU1BFTExESVIvcm8uY3AxMjUwLnNwbCAuLi9SRUFETUVfcm8udHh0CisKKyRTUEVMTERJUi9yby5pc28tODg1OS0yLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXJvX1JPLklTTzg4NTktMiAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9ybyByb19STyIgLWMgcQorCiskU1BFTExESVIvcm8udXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9cm9fUk8uVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvcm8gcm9fUk8iIC1jIHEKKworJFNQRUxMRElSL3JvLmNwMTI1MC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9Y3AxMjUwIiAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3JvIHJvX1JPIiAtYyBxCisKKy4uL1JFQURNRV9yby50eHQ6IFJFQURNRV9yb19STy50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSByb19STy56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCityb19STy5hZmYgcm9fUk8uZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHJvX1JPLnppcAorICAgICAgICA6c3lzICRVTlpJUCByb19STy56aXAKKyAgICAgICAgOmRlbGV0ZSByb19STy56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncm9fUk8ub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHJvX1JPLmFmZiByb19STy5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdyb19STy5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgcm9fUk8uZGljIHJvX1JPLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygncm9fUk8uZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8cm9fUk8uZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSByb19STy5vcmlnLmFmZiByb19STy5hZmYgPnJvX1JPLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSByb19STy5vcmlnLmRpYyByb19STy5kaWMgPj5yb19STy5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggcm9fUk8uemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9yb19STy56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3JvX1JPLm9yaWcuYWZmIHJvX1JPLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSByb19STy5hZmYgLi4vcm9fUk8ubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vcm9fUk8ub3JpZy5kaWMgcm9fUk8uZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHJvX1JPLmRpYyAuLi9yb19STy5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgcm9fUk8uemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvcm8vcm9fUk8uZGlmZiBiL3J1bnRpbWUvc3BlbGwvcm8vcm9fUk8uZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDc3MDMwCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9yby9yb19STy5kaWZmCkBAIC0wLDAgKzEsNDIgQEAKKyoqKiByb19STy5vcmlnLmFmZglXZWQgQXVnIDMxIDIwOjM0OjM4IDIwMDUKKy0tLSByb19STy5hZmYJV2VkIEF1ZyAzMSAyMDozOTo1NyAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAzLDQgKioqKgorLS0tIDMsOCAtLS0tCisgIAorKyBGT0wgsaKztbaoubq7vL6/sbKztLW2t7i5uru8vb6/4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgTE9XILGis7W2qLm6u7y+v7Gys7S1tre4ubq7vL2+v+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIFVQUCChoqOlpqipqqusrq+xsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/worKyAKKyAgUEZYIEUgWSAxCisqKioqKioqKioqKioqKioKKyoqKiAxMiwxNSAqKioqCisgIFNGWCBMICAgMCAgICAgICAgICBsICAgICAgICAgIHUKKyEgU0ZYIEwgICAwICAgICAgICAgIGxlICAgICAgICAgW15jZ10gaQorISBTRlggTCAgIDAgICAgICAgICAgaSAgICAgICAgICBbY2ddIGkKKyAgU0ZYIEwgICAwICAgICAgICAgIGxlICAgICAgICAgZQorLS0tIDE2LDE5IC0tLS0KKyAgU0ZYIEwgICAwICAgICAgICAgIGwgICAgICAgICAgdQorISBTRlggTCAgIDAgICAgICAgICAgbGUgICAgICAgICBbXmNnXWkKKyEgU0ZYIEwgICAwICAgICAgICAgIGkgICAgICAgICAgW2NnXWkKKyAgU0ZYIEwgICAwICAgICAgICAgIGxlICAgICAgICAgZQorKioqKioqKioqKioqKioqCisqKiogMTgsMjAgKioqKgorICBTRlggVSAgIDAgICAgICAgICAgYSAgICAgICAgICByZQorISBTRlggVSAgIDAgICAgICAgICAgaSAgICAgICAgICBbXmldIGlpCisgIAorLS0tIDIyLDI0IC0tLS0KKyAgU0ZYIFUgICAwICAgICAgICAgIGEgICAgICAgICAgcmUKKyEgU0ZYIFUgICAwICAgICAgICAgIGkgICAgICAgICAgW15pXWlpCisgIAorKioqKioqKioqKioqKioqCisqKiogMzgsNDEgKioqKgorICBTRlggSSAgIDAgICAgICAgICAgdWx1aSAgICAgICBbXnVhXQorISBTRlggSSAgIGEgICAgICAgICAgaWkgICAgICAgICBbZ2NdIGEKKyEgU0ZYIEkgICBhICAgICAgICAgIGVpICAgICAgICAgW15jZ10gYQorICAKKy0tLSA0Miw0NSAtLS0tCisgIFNGWCBJICAgMCAgICAgICAgICB1bHVpICAgICAgIFtedWFdCishIFNGWCBJICAgYSAgICAgICAgICBpaSAgICAgICAgIFtnY11hCishIFNGWCBJICAgYSAgICAgICAgICBlaSAgICAgICAgIFteY2ddYQorICAK