ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQgYi9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CmluZGV4IGZjMGIxYzkuLjM0NzZhYjIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKKysrIGIvcnVudGltZS9kb2MvY2hhbmdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBKdWwgMzAKKypjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTE1MzQsNCArMTUzNCw4IEBACiBndWFyYW50ZWUgdGhhdCBzb3J0aW5nIGlzICJzdGFibGUiIG9yIG9iZXlzIHRoZSBjdXJyZW50IGxvY2FsZS4gIFlvdSB3aWxsIGhhdmUKIHRvIHRyeSBpdCBvdXQuCiAKK1RoZSBzb3J0aW5nIGl0c2VsZiBjYW5ub3QgYmUgaW50ZXJydXB0ZWQsIGJlY2F1c2Ugb2YgdXNpbmcgYSBzeXN0ZW0gbGlicmFyeQorZnVuY3Rpb24uICBZb3UgY2FuIGludGVycnVwdCB0aGUgcHJlcGFyYXRpb24gKGZvciB1bmRvKSBhbmQgcHV0dGluZyB0aGUgc29ydGVkCitsaW5lcyBpbnRvIHRoZSBidWZmZXIuICBJbiB0aGUgbGFzdCBjYXNlIHlvdSBtYXkgZW5kIHVwIHdpdGggZHVwbGljYXRlZCBsaW5lcy4KKwogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0IGIvcnVudGltZS9kb2MvZGV2ZWxvcC50eHQKaW5kZXggZGMzZDY5NS4uYTY0MGY1YiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZGV2ZWxvcC50eHQKKysrIGIvcnVudGltZS9kb2MvZGV2ZWxvcC50eHQKQEAgLTEsNCArMSw0IEBACi0qZGV2ZWxvcC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgSnVuIDEzCisqZGV2ZWxvcC50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXVnIDE0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMjMsNyArMTIzLDggQEAKIAogLSBUaGUgc291cmNlIGNvZGUgc2hvdWxkIG5vdCBiZWNvbWUgYSBtZXNzLiAgSXQgc2hvdWxkIGJlIHJlbGlhYmxlIGNvZGUuCiAtIFVzZSB0aGUgc2FtZSBsYXlvdXQgaW4gYWxsIGZpbGVzIHRvIG1ha2UgaXQgZWFzeSB0byByZWFkIHxjb2Rpbmctc3R5bGV8LgotLSBVc2UgY29tbWVudHMgaW4gYSB1c2VmdWwgd2F5IQorLSBVc2UgY29tbWVudHMgaW4gYSB1c2VmdWwgd2F5ISAgUXVvdGluZyB0aGUgZnVuY3Rpb24gbmFtZSBhbmQgYXJndW1lbnQgbmFtZXMKKyAgaXMgTk9UIHVzZWZ1bC4gIERvIGV4cGxhaW4gd2hhdCB0aGV5IGFyZSBmb3IuCiAtIFBvcnRpbmcgdG8gYW5vdGhlciBwbGF0Zm9ybSBzaG91bGQgYmUgbWFkZSBlYXN5LCB3aXRob3V0IGhhdmluZyB0byBjaGFuZ2UKICAgdG9vIG11Y2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgY29kZS4KIC0gVXNlIHRoZSBvYmplY3Qtb3JpZW50ZWQgc3Bpcml0OiBQdXQgZGF0YSBhbmQgY29kZSB0b2dldGhlci4gIE1pbmltaXplIHRoZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbWFwLnR4dCBiL3J1bnRpbWUvZG9jL21hcC50eHQKaW5kZXggMTlhOWQ1My4uZGUyOWYwZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbWFwLnR4dAorKysgYi9ydW50aW1lL2RvYy9tYXAudHh0CkBAIC0yNzMsNiArMjczLDE5IEBACiBOb3RlOiBXaGVuIHVzaW5nIG1hcHBpbmdzIGZvciBWaXN1YWwgbW9kZSwgeW91IGNhbiB1c2UgdGhlICInPCIgbWFyaywgd2hpY2gKIGlzIHRoZSBzdGFydCBvZiB0aGUgbGFzdCBzZWxlY3RlZCBWaXN1YWwgYXJlYSBpbiB0aGUgY3VycmVudCBidWZmZXIgfCc8fC4KIAorCQkJCQkJCSo6bWFwLXZlcmJvc2UqCitXaGVuICd2ZXJib3NlJyBpcyBub24temVybywgbGlzdGluZyBhIGtleSBtYXAgd2lsbCBhbHNvIGRpc3BsYXkgd2hlcmUgaXQgd2FzCitsYXN0IGRlZmluZWQuICBFeGFtcGxlOiA+CisKKwk6dmVyYm9zZSBtYXAgPEMtVz4qCisJbiAgPEMtVz4qICAgICAgKiA8Qy1XPjxDLVM+KgorCSAgICAgICAgTGFzdCBzZXQgZnJvbSAvaG9tZS9hYmNkLy52aW1yYworCitXaGVuIHRoZSBtYXAgd2FzIGRlZmluZWQgYnkgaGFuZCB0aGVyZSBpcyBubyAiTGFzdCBzZXQiIG1lc3NhZ2UuICBXaGVuIHRoZSBtYXAKK3dhcyBkZWZpbmVkIHdoaWxlIGV4ZWN1dGluZyBhIGZ1bmN0aW9uLCB1c2VyIGNvbW1hbmQgb3IgYXV0b2NvbW1hbmQsIHRoZQorc2NyaXB0IGluIHdoaWNoIGl0IHdhcyBkZWZpbmVkIGlzIHJlcG9ydGVkLgore25vdCBhdmFpbGFibGUgd2hlbiBjb21waWxlZCB3aXRob3V0IHRoZSArZXZhbCBmZWF0dXJlfQorCiAJCQkJCQkJKm1hcF9iYWNrc2xhc2gqCiBOb3RlIHRoYXQgb25seSBDVFJMLVYgaXMgbWVudGlvbmVkIGhlcmUgYXMgYSBzcGVjaWFsIGNoYXJhY3RlciBmb3IgbWFwcGluZ3MKIGFuZCBhYmJyZXZpYXRpb25zLiAgV2hlbiAnY3BvcHRpb25zJyBkb2VzIG5vdCBjb250YWluICdCJywgYSBiYWNrc2xhc2ggY2FuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9wYXR0ZXJuLnR4dCBiL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0CmluZGV4IGI5OWIwZDcuLjA3OGQ3NTQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0CisrKyBiL3J1bnRpbWUvZG9jL3BhdHRlcm4udHh0CkBAIC0xLDQgKzEsNCBAQAotKnBhdHRlcm4udHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1heSAyMgorKnBhdHRlcm4udHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAxNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtOTQ0LDYgKzk0NCw5IEBACiAJVGhpcyBtYWtlcyBpdCBWaSBjb21wYXRpYmxlOiBXaXRob3V0IHRoZSAiXF8iIG9yICJcbiIgdGhlIGNvbGxlY3Rpb24KIAlkb2VzIG5vdCBtYXRjaCBhbiBlbmQtb2YtbGluZS4KIAorCVdoZW4gdGhlICddJyBpcyBub3QgdGhlcmUgVmltIHdpbGwgbm90IGdpdmUgYW4gZXJyb3IgbWVzc2FnZSBidXQKKwlhc3N1bWUgbm8gY29sbGVjdGlvbiBpcyB1c2VkLiAgVXNlZnVsIHRvIHNlYXJjaCBmb3IgJ1snLgorCiAJSWYgdGhlIHNlcXVlbmNlIGJlZ2lucyB3aXRoICJeIiwgaXQgbWF0Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3RlciBOT1QKIAlpbiB0aGUgY29sbGVjdGlvbjogIlteeHl6XSIgbWF0Y2hlcyBhbnl0aGluZyBidXQgJ3gnLCAneScgYW5kICd6Jy4KIAktIElmIHR3byBjaGFyYWN0ZXJzIGluIHRoZSBzZXF1ZW5jZSBhcmUgc2VwYXJhdGVkIGJ5ICctJywgdGhpcyBpcwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc3BlbGwudHh0IGIvcnVudGltZS9kb2Mvc3BlbGwudHh0CmluZGV4IDdkOGE1MWEuLjA1MjUyOTEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3NwZWxsLnR4dAorKysgYi9ydW50aW1lL2RvYy9zcGVsbC50eHQKQEAgLTEsNCArMSw0IEBACi0qc3BlbGwudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMTIKKypzcGVsbC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAxNQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xOTUsNiArMTk1LDE0IEBACiAnc3BlbGxmaWxlJyBhcmUgb25seSB1c2VkIHdoZW4gYWxsIGVudHJpZXMgaW4gInNwZWxsbGFuZyIgc3BlY2lmeSB0aGUgc2FtZQogcmVnaW9uIChub3QgY291bnRpbmcgZmlsZXMgc3BlY2lmaWVkIGJ5IHRoZWlyIC5zcGwgbmFtZSkuCiAKK1NwZWNpZmljIGV4Y2VwdGlvbjogRm9yIEdlcm1hbiB0aGVzZSBzcGVjaWFsIHJlZ2lvbnMgYXJlIHVzZWQ6CisJZGUJCWFsbCBHZXJtYW4gd29yZHMgYWNjZXB0ZWQKKwlkZV9kZQkJb2xkIGFuZCBuZXcgc3BlbGxpbmcKKwlkZV8xOQkJb2xkIHNwZWxsaW5nCisJZGVfMjAJCW5ldyBzcGVsbGluZworCWRlX2F0CQlBdXN0cmlhCisJZGVfY2gJCVN3aXR6ZXJsYW5kCisKIAogU1BFTEwgRklMRVMJCQkJCQkqc3BlbGwtbG9hZCoKIApAQCAtMzM1LDYgKzM0MywyNyBAQAogTm90ZSB0aGF0IHRoZSBkZWZhdWx0IHNjcmlwdHMgZG9uJ3Qgc2V0ICdzcGVsbGNhcGNoZWNrJyBpZiBpdCB3YXMgY2hhbmdlZCBmcm9tCiB0aGUgZGVmYXVsdCB2YWx1ZS4gIFRoaXMgYXNzdW1lcyB0aGUgdXNlciBwcmVmZXJzIGFub3RoZXIgdmFsdWUgdGhlbi4KIAorCitET1VCTEUgU0NPUklORwkJCQkJCSpzcGVsbC1kb3VibGUtc2NvcmluZyoKKworVGhlICdzcGVsbHN1Z2dlc3QnIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBzZWxlY3QgImRvdWJsZSIgc2NvcmluZy4gIFRoaXMKK21lY2hhbmlzbSBpcyBiYXNlZCBvbiB0aGUgcHJpbmNpcGxlIHRoYXQgdGhlcmUgYXJlIHR3byBraW5kcyBvZiBzcGVsbGluZworbWlzdGFrZXM6CisKKzEuIFlvdSBrbm93IGhvdyB0byBzcGVsbCB0aGUgd29yZCwgYnV0IG1pc3R5cGUgc29tZXRoaW5nLiAgVGhpcyByZXN1bHRzIGluIGEKKyAgIHNtYWxsIGVkaXRpbmcgZGlzdGFuY2UgKGNoYXJhY3RlciBzd2FwcGVkL29taXR0ZWQvaW5zZXJ0ZWQpIGFuZCBwb3NzaWJseSBhCisgICB3b3JkIHRoYXQgc291bmRzIGNvbXBsZXRlbHkgZGlmZmVyZW50LgorCisyLiBZb3UgZG9uJ3Qga25vdyBob3cgdG8gc3BlbGwgdGhlIHdvcmQgYW5kIHR5cGUgc29tZXRoaW5nIHRoYXQgc291bmRzIHJpZ2h0LgorICAgVGhlIGVkaXQgZGlzdGFuY2UgY2FuIGJlIGJpZyBidXQgdGhlIHdvcmQgaXMgc2ltaWxhciBhZnRlciBzb3VuZC1mb2xkaW5nLgorCitTaW5jZSBzY29yZXMgZm9yIHRoZXNlIHR3byBtaXN0YWtlcyB3aWxsIGJlIHZlcnkgZGlmZmVyZW50IHdlIHVzZSBhIGxpc3QKK2ZvciBlYWNoIGFuZCBtaXggdGhlbS4KKworVGhlIHNvdW5kLWZvbGRpbmcgaXMgc2xvdyBhbmQgcGVvcGxlIHRoYXQga25vdyB0aGUgbGFuZ3VhZ2Ugd29uJ3QgbWFrZSB0aGUKK3NlY29uZCBraW5kIG9mIG1pc3Rha2VzLiAgVGhlcmVmb3JlICdzcGVsbHN1Z2dlc3QnIGNhbiBiZSBzZXQgdG8gc2VsZWN0IHRoZQorcHJlZmVycmVkIG1ldGhvZCBmb3Igc2NvcmluZyB0aGUgc3VnZ2VzdGlvbnMuCisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogMy4gR2VuZXJhdGluZyBhIHNwZWxsIGZpbGUJCQkJKnNwZWxsLW1rc3BlbGwqCiAKQEAgLTQwOSw2ICs0MzgsMTEgQEAKIAkJCWFuZCBwcm9kdWNpbmcgYW4gb3V0cHV0IGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5CiAJCQl0aGF0IGhhcyAiLntlbmN9LnNwbCIgYXBwZW5kZWQuCiAKK1ZpbSB3aWxsIHJlcG9ydCB0aGUgbnVtYmVyIG9mIGR1cGxpY2F0ZSB3b3Jkcy4gIFRoaXMgbWlnaHQgYmUgYSBtaXN0YWtlIGluIHRoZQorbGlzdCBvZiB3b3Jkcy4gIEJ1dCBzb21ldGltZXMgaXQgaXMgdXNlZCB0byBoYXZlIGRpZmZlcmVudCBwcmVmaXhlcyBhbmQKK3N1ZmZpeGVzIGZvciB0aGUgc2FtZSBiYXNpYyB3b3JkIHRvIGF2b2lkIHRoZW0gY29tYmluaW5nIChlLmcuIEN6ZWNoIHVzZXMKK3RoaXMpLgorCiBTaW5jZSB5b3UgbWlnaHQgd2FudCB0byBjaGFuZ2UgYSBNeXNwZWxsIHdvcmQgbGlzdCBmb3IgdXNlIHdpdGggVmltIHRoZQogZm9sbG93aW5nIHByb2NlZHVyZSBpcyByZWNvbW1lbmRlZDoKIApAQCAtNzE2LDkgKzc1MCwyNyBAQAogYnV0IGluIGxvd2VyIGNhc2UuICBUaHVzIHdoZW4gdGhlIGNob3Agc3RyaW5nIGlzIHVzZWQgdG8gYWxsb3cgdGhlIGZvbGxvd2luZwogd29yZCB0byBzdGFydCB3aXRoIGFuIHVwcGVyIGNhc2UgbGV0dGVyLgogCitJdCBpcyBub3QgcG9zc2libGUgdG8gdXNlIFBGWFBPU1RQT05FIHRvZ2V0aGVyIHdpdGggQ09NUE9VTkRGTEFHIG9yCitDT01QT1VOREZMQUdTLgogCi1LRUVQLUNBU0UgV09SRFMKLQkJCQkJCQkqc3BlbGwtYWZmaXgtS0VQKgorCitXT1JEUyBXSVRIIEEgU0xBU0gJCQkJCSpzcGVsbC1hZmZpeC1TTEFTSCoKKworVGhlIHNsYXNoIGlzIHVzZWQgaW4gdGhlIC5kaWMgZmlsZSB0byBzZXBhcmF0ZSB0aGUgYmFzaWMgd29yZCBmcm9tIHRoZSBhZmZpeAorbGV0dGVycyB0aGF0IGNhbiBiZSB1c2VkLiAgVW5mb3J0dW5hdGVseSwgdGhpcyBtZWFucyB5b3UgY2Fubm90IHVzZSBhIHNsYXNoIGluCithIHdvcmQuICBUaHVzICJUQ1AvSVAiIGNhbm5vdCBiZSBhIHdvcmQuICBUbyB3b3JrIGFyb3VuZCB0aGF0IHlvdSBjYW4gZGVmaW5lIGEKK3JlcGxhY2VtZW50IGNoYXJhY3RlciBmb3IgdGhlIHNsYXNoLiAgRXhhbXBsZToKKworCVNMQVNIICwgfgorCitOb3cgeW91IGNhbiB1c2UgIlRDUCxJUCIgdG8gYWRkIHRoZSB3b3JkICJUQ1AvSVAiLgorCitPZiBjb3Vyc2UsIHRoZSBsZXR0ZXIgdXNlZCBzaG91bGQgaXRzZWxmIG5vdCBhcHBlYXIgaW4gYW55IHdvcmQhICBUaGUgbGV0dGVyCittdXN0IGJlIEFTQ0lJLCB0aHVzIGEgc2luZ2xlIGJ5dGUuCisKKworS0VFUC1DQVNFIFdPUkRTCQkJCQkJKnNwZWxsLWFmZml4LUtFUCoKKwogSW4gdGhlIGFmZml4IGZpbGUgYSBLRVAgbGluZSBjYW4gYmUgdXNlZCB0byBkZWZpbmUgdGhlIGFmZml4IG5hbWUgdXNlZCBmb3IKIGtlZXAtY2FzZSB3b3Jkcy4gIEV4YW1wbGU6CiAKQEAgLTcyNyw4ICs3NzksOCBAQAogU2VlIGFib3ZlIGZvciBhbiBleGFtcGxlIHxzcGVsbC1hZmZpeC12aW18LgogCiAKLVJBUkUgV09SRFMKLQkJCQkJCQkqc3BlbGwtYWZmaXgtUkFSKgorUkFSRSBXT1JEUwkJCQkJCSpzcGVsbC1hZmZpeC1SQVIqCisKIEluIHRoZSBhZmZpeCBmaWxlIGEgUkFSIGxpbmUgY2FuIGJlIHVzZWQgdG8gZGVmaW5lIHRoZSBhZmZpeCBuYW1lIHVzZWQgZm9yCiByYXJlIHdvcmRzLiAgRXhhbXBsZToKIApAQCAtNzQwLDggKzc5Miw4IEBACiBoaWdobGlnaHRlZCBhcyByYXJlLgogCiAKLUJBRCBXT1JEUwotCQkJCQkJCSpzcGVsbC1hZmZpeC1CQUQqCitCQUQgV09SRFMJCQkJCQkqc3BlbGwtYWZmaXgtQkFEKgorCiBJbiB0aGUgYWZmaXggZmlsZSBhIEJBRCBsaW5lIGNhbiBiZSB1c2VkIHRvIGRlZmluZSB0aGUgYWZmaXggbmFtZSB1c2VkIGZvcgogYmFkIHdvcmRzLiAgRXhhbXBsZToKIApAQCAtNzU2LDYgKzgwOCwxMjUgQEAKIHdvcmQgYXMgZ29vZC4KIAogCitDT01QT1VORCBXT1JEUwkJCQkJCSpzcGVsbC1hZmZpeC1jb21wb3VuZCoKKworQSBjb21wb3VuZCB3b3JkIGlzIGEgbG9uZ2VyIHdvcmQgbWFkZSBieSBjb25jYXRlbmF0aW5nIHdvcmRzLiAgVG8gc3BlY2lmeQord2hpY2ggd29yZHMgbWF5IGJlIGNvbmNhdGVuYXRlZCBhIGNoYXJhY3RlciBpcyB1c2VkLiAgVGhpcyBjaGFyYWN0ZXIgaXMgcHV0IGluCit0aGUgbGlzdCBvZiBhZmZpeGVzIGFmdGVyIHRoZSB3b3JkLiAgV2Ugd2lsbCBjYWxsIHRoaXMgY2hhcmFjdGVyIGEgZmxhZyBoZXJlLgorT2J2aW91c2x5IHRoZXNlIGZsYWdzIG11c3QgYmUgZGlmZmVyZW50IGZyb20gYW55IGFmZml4IElEcyB1c2VkLgorCisJCQkJCQkJKnNwZWxsLUNPTVBPVU5ERkxBRyoKK1RoZSBNeXNwZWxsIGNvbXBhdGlibGUgbWV0aG9kIHVzZXMgb25lIGZsYWcsIHNwZWNpZmllZCB3aXRoIENPTVBPVU5ERkxBRy4KK0FsbCB3b3JkcyB3aXRoIHRoaXMgZmxhZyBjb21iaW5lIGluIGFueSBvcmRlciBhbmQgd2l0aG91dCBsaW1pdCBpbiBsZW5ndGguCitUaGlzIG1lYW5zIHRoZXJlIGlzIG5vIGNvbnRyb2wgb3ZlciB3aGljaCB3b3JkIGNvbWVzIGZpcnN0LiAgRXhhbXBsZToKKwlDT01QT1VOREZMQUcgYyB+CisKKwkJCQkJCQkqc3BlbGwtQ09NUE9VTkRGTEFHUyoKK1RoZSBtZXRob2QgYWRkZWQgYnkgVmltIGFsbG93cyBzcGVjaWZ5aW5nIHdoaWNoIHdvcmRzIGNhbiBiZSBwcmVwZW5kZWQgdG8KK290aGVyIHdvcmRzLCBhbmQgd2hpY2ggd29yZHMgY2FuIGJlIGFwcGVuZGVkIHRvIG90aGVyIHdvcmRzLiAgVGhpcyBpcyBhIGxpc3QKK29mIGNvbW1hIHNlcGFyYXRlZCBpdGVtcy4gIEVhY2ggaXRlbSBtYXkgY29udGFpbiB6ZXJvIG9yIG1vcmUgZGFzaGVzIGFuZCBwbHVzCitzaWducy4KKworTk9URTogQXQgdGhpcyBtb21lbnQgQ09NUE9VTkRGTEFHUyBoYXMgbm90IGJlZW4gaW1wbGVtZW50ZWQgeWV0IQorCitBbiBpdGVtIHdpdGhvdXQgZGFzaGVzIHNwZWNpZmllcyB3b3JkcyB0aGF0IGNvbWJpbmUgaW4gYW55IG9yZGVyIGFuZCBhcyBvZnRlbgorYXMgcG9zc2libGUuICBFeGFtcGxlOgorCUNPTVBPVU5ERkxBR1MgYyxtIH4KKworVGhpcyBhbGxvd3MgYWxsIHdvcmRzIHdpdGggdGhlICJjIiBmbGFnIHRvIGJlIGNvbWJpbmVkIGFuZCBhbGwgd29yZHMgd2l0aCB0aGUKKyJtIiBmbGFnIHRvIGJlIGNvbWJpbmVkLCBidXQgYSB3b3JkIHdpdGggdGhlICJjIiBmbGFnIGRvZXNuJ3QgY29tYmluZSB3aXRoIGEKK3dvcmQgd2l0aCB0aGUgIm0iIGZsYWcuCisKK0ZsYWdzIHRoYXQgYXJlIHB1dCB0b2dldGhlciwgd2l0aG91dCBhIHNlcGFyYXRpbmcgY29tbWEsIGFyZSBjb25zaWRlcmVkCitpbnRlcmNoYW5nYWJsZS4gIEV4YW1wbGU6CisJQ09NUE9VTkRGTEFHUyBjbSB+CisKK1RoaXMgYWxsb3dzIGFsbCB3b3JkcyB3aXRoIHRoZSAiYyIgYW5kL29yICJtIiBmbGFnIHRvIGJlIGNvbWJpbmVkLgorCitBbiBpdGVtIHdpdGggb25lIGRhc2ggc3BlY2lmaWVzIGZsYWdzIGZvciBhIGxlYWRpbmcgd29yZCBhbmQgZmxhZ3MgZm9yIGEKK3RyYWlsaW5nIHdvcmQuICBUaHVzIG9ubHkgdHdvLXdvcmQgY29tYmluYXRpb25zIGFyZSBtYWRlLiAgRXhhbXBsZToKKwlDT01QT1VOREZMQUdTIGYtZCB+CisKK0hlcmUgdGhlICdmJyBmbGFnIGNhbiBiZSB1c2VkIGZvciBmb29kIGFuZCAnZCcgZm9yIGRpc2hlcywgc3VjaCB0aGF0IHlvdSBjYW4KK3VzZSB0aGVzZSB3b3JkcyBpbiB0aGUgZGljdGlvbmFyeToKKwl0b21hdG8vZiB+CisJb25pb24vZn4KKwlzb3VwL2R+CisJc2FsYXQvZH4KKworV2hpY2ggbWFrZXMgdGhlIHdvcmRzOgorCXRvbWF0bworCW9uaW9uCisJc291cAorCXNhbGF0CisJdG9tYXRvc291cAorCXRvbWF0b3NhbGF0CisJb25pb25zb3VwCisJb25pb25zYWxhdAorCitOb3RlIHRoYXQgc29tZXRoaW5nIGxpa2UgInNvdXB0b21hdG8iIGlzIG5vdCBwb3NzaWJsZS4gIEFuZCB0aGF0IGl0J3MgYWN0dWFsbHkKK2Vhc2llciB0byBsaXN0IGFsbCB0aGUgd29yZHMgaWYgeW91IGhhdmUgb25seSB0aGlzIGZldy4KKworTW9yZSBkYXNoZXMgY2FuIGJlIHVzZWQgdG8gYWxsb3cgbW9yZSB3b3JkcyB0byBjb21iaW5lLiAgRm9yIGV4YW1wbGU6CisJQ09NUE9VTkRGTEFHUyBmLWQsZi1mLWQgfgorCitXb3VsZCBhbGxvdyAidG9tYXRvb25pb25zb3VwIiAoT0ssIHNvIHRoaXMgaXMgYSBiYWQgZXhhbXBsZSwgYnV0IHlvdSBnZXQgdGhlCitpZGVhKS4KKworV2hlbiBhIHdvcmQgY2FuIGJlIHVzZWQgYW4gdW5kZXRlcm1pbmVkIG51bWJlciBvZiB0aW1lcyB1c2UgYSBwbHVzIGluc3RlYWQgb2YKK2EgZGFzaC4gIEV4YW1wbGU6CisJQ09NUE9VTkRGTEFHUyBmK2QgfgorCitUaGVuIHlvdSBjYW4gbWFrZSB0YXN0eSAib25pb25vbmlvbnRvbWF0b3RvbWF0b3NvdXAiLgorCitUaGUgIisiIG1heSBhbHNvIGFwcGVhciBhdCB0aGUgZW5kLCB3aGljaCBtZWFucyB0aGF0IHRoZSBsYXN0IGZsYWdzIGNhbiBiZQorcmVwZWF0ZWQgbWFueSB0aW1lcy4gIEV4YW1wbGU6CisJQ09NUE9VTkRGTEFHUyBmLWQrIH4KKworV2hpY2ggYWxsb3dzIHRoZSB1c2Ugb2YgIm9uaW9uc291cHNvdXBzb3Vwc291cHNvdXBzb3VwIi4KKworCQkJCQkJCSpzcGVsbC1DT01QT1VORE1JTioKK1RoZSBtaW5pbWFsIGxlbmd0aCBvZiBhIHdvcmQgdXNlZCBmb3IgY29uY2F0ZW5hdGlvbiBpcyBzcGVjaWZpZWQgd2l0aAorQ09NUE9VTkRNSU4uICBFeGFtcGxlOgorCUNPTVBPVU5ETUlOIDUgfgorCitXaGVuIG9taXR0ZWQgYSBtaW5pbWFsIGxlbmd0aCBvZiAzIGJ5dGVzIGlzIHVzZWQuICBPYnZpb3VzbHkgeW91IGNvdWxkIGp1c3QKK2xlYXZlIG91dCB0aGUgY29tcG91bmQgZmxhZyBmcm9tIHNob3J0IHdvcmRzIGluc3RlYWQsIHRoaXMgZmVhdHVyZSBpcyBwcmVzZW50Citmb3IgY29tcGF0aWJpbGl0eSB3aXRoIE15c3BlbGwuCisKKwkJCQkJCQkqc3BlbGwtQ01QKgorTk9URTogQXQgdGhpcyBtb21lbnQgQ01QIGhhcyBub3QgYmVlbiBpbXBsZW1lbnRlZCB5ZXQhCisKK1NvbWV0aW1lcyBpdCBpcyBuZWNlc3NhcnkgdG8gY2hhbmdlIGEgd29yZCB3aGVuIGNvbmNhdGVuYXRpbmcgaXQgdG8gYW5vdGhlciwKK2J5IHJlbW92aW5nIGEgZmV3IGxldHRlcnMsIGluc2VydGluZyBzb21ldGhpbmcgb3IgYm90aC4gIEl0IGNhbiBhbHNvIGJlIHVzZWZ1bAordG8gcmVzdHJpY3QgY29uY2F0ZW5hdGlvbiB0byB3b3JkcyB0aGF0IG1hdGNoIGEgcGF0dGVybi4gIEZvciB0aGlzIHB1cnBvc2UgQ01QCitpdGVtcyBjYW4gYmUgdXNlZC4gIFRoZXkgbG9vayBsaWtlIHRoaXM6CisJQ01QIHtmbGFnfSB7c3RyaXB9IHthZGR9IHtjb25kfSB7Y29uZDJ9CisKKwl7ZmxhZ30JCXRoZSBmbGFnLCBhcyB1c2VkIGluIENPTVBPVU5ERkxBR1MgZm9yIHRoZSBsZWFkIHdvcmQKKwl7c3RyaXB9CQl0ZXh0IHRvIHJlbW92ZSBmcm9tIHRoZSBlbmQgb2YgdGhlIGxlYWQgd29yZCAoemVybworCQkJZm9yIG5vIHN0cmlwcGluZykKKwl7YWRkfQkJdGV4dCB0byBpbnNlcnQgYmV0d2VlbiB0aGUgd29yZHMgKHplcm8gZm9yIG5vCisJCQlhZGRpdGlvbikKKwl7Y29uZH0JCWNvbmRpdGlvbiB0byBtYXRjaCBhdCB0aGUgZW5kIG9mIHRoZSBsZWFkIHdvcmQKKwl7Y29uZDJ9CQljb25kaXRpb24gdG8gbWF0Y2ggYXQgdGhlIHN0YXJ0IG9mIHRoZSBmb2xsb3dpbmcgd29yZAorCitUaGlzIGlzIGV4YWN0bHkgdGhlIHNhbWUgYXMgd2hhdCBpcyB1c2VkIGZvciBTRlggYW5kIFBGWCBpdGVtcywgZXhjZXB0IHRoZXJlCitpcyBhbiBleHRyYSBjb25kaXRpb24uICBFeGFtcGxlOgorCUNNUCBmIDAgLSAuIC4gfgorCitXaGVuIHVzZWQgd2l0aCB0aGUgZm9vZCBhbmQgZGlzaCB3b3JkIGxpc3QgYWJvdmUsIHRoaXMgbWVhbnMgdGhhdCBhIGRhc2ggaXMKK2luc2VydGVkIGFmdGVyIGVhY2ggZm9vZCBpdGVtLiAgVGh1cyB5b3UgZ2V0ICJvbmlvbi1zb3VwIiBhbmQKKyJvbmlvbi10b21hdG8tc2FsYXQiLgorCitXaGVuIHRoZXJlIGFyZSBDTVAgaXRlbXMgZm9yIGEgY29tcG91bmQgZmxhZyB0aGUgY29uY2F0ZW5hdGlvbiBpcyBvbmx5IGRvbmUKK3doZW4gYSBDTVAgaXRlbSBtYXRjaGVzLgorCitXaGVuIHRoZXJlIGFyZSBubyBDTVAgaXRlbXMgZm9yIGEgY29tcG91bmQgZmxhZywgdGhlbiBhbGwgd29yZHMgd2lsbCBiZQorY29uY2F0ZW5hdGVkLCBhcyBpZiB0aGVyZSB3YXMgYW4gaXRlbToKKwlDTVAge2ZsYWd9IDAgMCAuIC4KKworCiBSRVBMQUNFTUVOVFMJCQkJCQkqc3BlbGwtYWZmaXgtUkVQKgogCiBJbiB0aGUgYWZmaXggZmlsZSBSRVAgaXRlbXMgY2FuIGJlIHVzZWQgdG8gZGVmaW5lIGNvbW1vbiBtaXN0YWtlcy4gIFRoaXMgaXMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQgYi9ydW50aW1lL2RvYy9zeW50YXgudHh0CmluZGV4IDM2NDNmN2EuLjA0ZTc2ZGIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3N5bnRheC50eHQKKysrIGIvcnVudGltZS9kb2Mvc3ludGF4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzeW50YXgudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMTEKKypzeW50YXgudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMTQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMjIzNCw3ICsyMjM0LDcgQEAKIChBZGFwdGVkIGZyb20gdGhlIGh0bWwudmltIGhlbHAgdGV4dCBieSBDbGF1ZGlvIEZsZWluZXIgPGNsYXVkaW9AZmxlaW5lci5jb20+KQogCiAKLVNICQkJCQkJKnNoLnZpbSogKnNoLXN5bnRheCoKK1NICQkJKnNoLnZpbSogKnNoLXN5bnRheCogKmJhc2gtc3ludGF4KiAqa3NoLXN5bnRheCoKIAogVGhpcyBjb3ZlcnMgdGhlICJub3JtYWwiIFVuaXggKEJvdXJuZSkgc2gsIGJhc2ggYW5kIHRoZSBLb3JuIHNoZWxsLgogCkBAIC0zNjQ3LDYgKzM2NDcsNyBAQAogcmVzdWx0IGlzIGxpa2UgdGhpcyBzaW5nbGUgY29tbWFuZCBoYXMgYmVlbiB1c2VkOiA+CiAgICA6aGkgQ29tbWVudAl0ZXJtPWJvbGQgY3Rlcm1mZz1DeWFuIGd1aWZnPSM4MGEwZmYgZ3VpPWJvbGQKIDwKKwkJCQkJCSAgICAJKjpoaWdobGlnaHQtdmVyYm9zZSoKIFdoZW4gbGlzdGluZyBhIGhpZ2hsaWdodCBncm91cCBhbmQgJ3ZlcmJvc2UnIGlzIG5vbi16ZXJvLCB0aGUgbGlzdGluZyB3aWxsCiBhbHNvIHRlbGwgd2hlcmUgaXQgd2FzIGxhc3Qgc2V0LiAgRXhhbXBsZTogPgogCTp2ZXJib3NlIGhpIENvbW1lbnQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3MgYi9ydW50aW1lL2RvYy90YWdzCmluZGV4IDEzZjMwNzMuLjE4ZjYwODggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3MKKysrIGIvcnVudGltZS9kb2MvdGFncwpAQCAtMjAxNCw2ICsyMDE0LDcgQEAKIDpoaWdobGlnaHQtZGVmYXVsdAlzeW50YXgudHh0CS8qOmhpZ2hsaWdodC1kZWZhdWx0KgogOmhpZ2hsaWdodC1saW5rCXN5bnRheC50eHQJLyo6aGlnaGxpZ2h0LWxpbmsqCiA6aGlnaGxpZ2h0LW5vcm1hbAlzeW50YXgudHh0CS8qOmhpZ2hsaWdodC1ub3JtYWwqCis6aGlnaGxpZ2h0LXZlcmJvc2UJc3ludGF4LnR4dAkvKjpoaWdobGlnaHQtdmVyYm9zZSoKIDpoaXN0b3J5CWNtZGxpbmUudHh0CS8qOmhpc3RvcnkqCiA6aGlzdG9yeS1pbmRleGluZwljbWRsaW5lLnR4dAkvKjpoaXN0b3J5LWluZGV4aW5nKgogOmkJaW5zZXJ0LnR4dAkvKjppKgpAQCAtMjEyNCw2ICsyMTI1LDcgQEAKIDptYXAtc2lsZW50CW1hcC50eHQJLyo6bWFwLXNpbGVudCoKIDptYXAtc3BlY2lhbC1rZXlzCW1hcC50eHQJLyo6bWFwLXNwZWNpYWwta2V5cyoKIDptYXAtdW5kbwltYXAudHh0CS8qOm1hcC11bmRvKgorOm1hcC12ZXJib3NlCW1hcC50eHQJLyo6bWFwLXZlcmJvc2UqCiA6bWFwX2wJbWFwLnR4dAkvKjptYXBfbCoKIDptYXBfbCEJbWFwLnR4dAkvKjptYXBfbCEqCiA6bWFwYwltYXAudHh0CS8qOm1hcGMqCkBAIC00MjQyLDYgKzQyNDQsNyBAQAogYmFyCW1vdGlvbi50eHQJLypiYXIqCiBiYXJzCWhlbHAudHh0CS8qYmFycyoKIGJhc2VfZm9udF9uYW1lX2xpc3QJbWJ5dGUudHh0CS8qYmFzZV9mb250X25hbWVfbGlzdCoKK2Jhc2gtc3ludGF4CXN5bnRheC50eHQJLypiYXNoLXN5bnRheCoKIGJhc2ljLXN5bnRheAlzeW50YXgudHh0CS8qYmFzaWMtc3ludGF4KgogYmFzaWMudmltCXN5bnRheC50eHQJLypiYXNpYy52aW0qCiBiZWVwCW9wdGlvbnMudHh0CS8qYmVlcCoKQEAgLTUyMDUsNyArNTIwOCw2IEBACiBoZWJyZXcudHh0CWhlYnJldy50eHQJLypoZWJyZXcudHh0KgogaGVscAl2YXJpb3VzLnR4dAkvKmhlbHAqCiBoZWxwLWNvbnRleHQJaGVscC50eHQJLypoZWxwLWNvbnRleHQqCi1oZWxwLXRhZ3MJdGFncwkxCiBoZWxwLXRyYW5zbGF0ZWQJdmFyaW91cy50eHQJLypoZWxwLXRyYW5zbGF0ZWQqCiBoZWxwLXh0ZXJtLXdpbmRvdwl2YXJpb3VzLnR4dAkvKmhlbHAteHRlcm0td2luZG93KgogaGVscC50eHQJaGVscC50eHQJLypoZWxwLnR4dCoKQEAgLTU1MzIsNiArNTUzNCw3IEBACiBrZXlwYWQtcG9pbnQJaW50cm8udHh0CS8qa2V5cGFkLXBvaW50Kgoga2V5cygpCWV2YWwudHh0CS8qa2V5cygpKgoga25vd24tYnVncwl0b2RvLnR4dAkvKmtub3duLWJ1Z3MqCitrc2gtc3ludGF4CXN5bnRheC50eHQJLyprc2gtc3ludGF4KgogbAltb3Rpb24udHh0CS8qbCoKIGw6dmFyCWV2YWwudHh0CS8qbDp2YXIqCiBsYWNlLXN5bnRheAlzeW50YXgudHh0CS8qbGFjZS1zeW50YXgqCkBAIC02MzcyLDYgKzYzNzUsOSBAQAogc3BlY2lhbC1idWZmZXJzCXdpbmRvd3MudHh0CS8qc3BlY2lhbC1idWZmZXJzKgogc3BlZWQtdXAJdGlwcy50eHQJLypzcGVlZC11cCoKIHNwZWxsCXNwZWxsLnR4dAkvKnNwZWxsKgorc3BlbGwtQ09NUE9VTkRGTEFHCXNwZWxsLnR4dAkvKnNwZWxsLUNPTVBPVU5ERkxBRyoKK3NwZWxsLUNPTVBPVU5ERkxBR1MJc3BlbGwudHh0CS8qc3BlbGwtQ09NUE9VTkRGTEFHUyoKK3NwZWxsLUNPTVBPVU5ETUlOCXNwZWxsLnR4dAkvKnNwZWxsLUNPTVBPVU5ETUlOKgogc3BlbGwtYWZmaXgtQkFECXNwZWxsLnR4dAkvKnNwZWxsLWFmZml4LUJBRCoKIHNwZWxsLWFmZml4LUZPTAlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1GT0wqCiBzcGVsbC1hZmZpeC1LRVAJc3BlbGwudHh0CS8qc3BlbGwtYWZmaXgtS0VQKgpAQCAtNjM4MywxMCArNjM4OSwxMiBAQAogc3BlbGwtYWZmaXgtUkVQCXNwZWxsLnR4dAkvKnNwZWxsLWFmZml4LVJFUCoKIHNwZWxsLWFmZml4LVNBTAlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1TQUwqCiBzcGVsbC1hZmZpeC1TRlgJc3BlbGwudHh0CS8qc3BlbGwtYWZmaXgtU0ZYKgorc3BlbGwtYWZmaXgtU0xBU0gJc3BlbGwudHh0CS8qc3BlbGwtYWZmaXgtU0xBU0gqCiBzcGVsbC1hZmZpeC1TT0ZPRlJPTQlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1TT0ZPRlJPTSoKIHNwZWxsLWFmZml4LVNPRk9UTwlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1TT0ZPVE8qCiBzcGVsbC1hZmZpeC1VUFAJc3BlbGwudHh0CS8qc3BlbGwtYWZmaXgtVVBQKgogc3BlbGwtYWZmaXgtY2hhcnMJc3BlbGwudHh0CS8qc3BlbGwtYWZmaXgtY2hhcnMqCitzcGVsbC1hZmZpeC1jb21wb3VuZAlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1jb21wb3VuZCoKIHNwZWxsLWFmZml4LW1ieXRlCXNwZWxsLnR4dAkvKnNwZWxsLWFmZml4LW1ieXRlKgogc3BlbGwtYWZmaXgtdmltCXNwZWxsLnR4dAkvKnNwZWxsLWFmZml4LXZpbSoKIHNwZWxsLWRpYy1mb3JtYXQJc3BlbGwudHh0CS8qc3BlbGwtZGljLWZvcm1hdCoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RvZG8udHh0IGIvcnVudGltZS9kb2MvdG9kby50eHQKaW5kZXggODM5N2I3Ny4uMWY4MmVjYyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdG9kby50eHQKKysrIGIvcnVudGltZS9kb2MvdG9kby50eHQKQEAgLTEsNCArMSw0IEBACi0qdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXVnIDEyCisqdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXVnIDE1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTMwLDYgKzMwLDExIEBACiAJCQkJCQkJKmtub3duLWJ1Z3MqCiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBLbm93biBidWdzIGFuZCBjdXJyZW50IHdvcmsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorU3BlbGxpbmc6CistIHN1Z2dlc3Rpb25zIGZvciBjb21wb3VuZCB3b3Jkcy4KKy0gSW1wbGVtZW50IG11bHRpcGxlIGZsYWdzIGZvciBjb21wb3VuZCB3b3Jkcy4gIEF3YWl0IGNvbW1lbnRzIGZyb20gb3RoZXIKKyAgc3BlbGwgY2hlY2tpbmcgYXV0aG9ycy4KKwogTWFjIHVuaWNvZGUgcGF0Y2ggKERhIFdvb24gSnVuZyk6CiAtIHNlbGVjdGluZyBwcm9wb3J0aW9uYWwgZm9udCBicmVha3MgZGlzcGxheQogLSBVVEYtOCB0ZXh0IGNhdXNlcyBkaXNwbGF5IHByb2JsZW1zLiAgRm9udCByZXBsYWNlbWVudCBjYXVzZXMgdGhpcy4KQEAgLTc3LDEyICs4MiwyNiBAQAogCVVzZSBzb21ldGhpbmcgbGlrZSAnY29tcGxldGVmdW5jJz8KIAlydW50aW1lL2NvbXBsZXRlL3tmaWxldHlwZX0udmltIGZpbGVzPwogCUluIGZ1bmN0aW9uIGFyZ3VtZW50cyBzdWdnZXN0IHZhcmlhYmxlcyBvZiBleHBlY3RlZCB0eXBlLgorCUxpc3Qgb2YgY29tcGxldGlvbnMgaXMgYSBEaWN0aW9uYXJ5IHdpdGggaXRlbXM6CisJICAgIGNvbXBsaXN0WzBdWyd0ZXh0J10gPSBjb21wbGV0aW9uIHRleHQKKwkgICAgY29tcGxpc3RbMF1bJ3R5cGUnXSA9IHR5cGUgb2YgY29tcGxldGlvbiAoZS5nLiBmdW5jdGlvbiwgdmFyLCBhcmcpCisJICAgIGNvbXBsaXN0WzBdWydoZWxwJ10gPSBoZWxwIHRleHQgKGUuZy4gZnVuY3Rpb24gZGVjbGFyYXRpb24pCisJICAgIGNvbXBsaXN0WzBdWydoZWxwZnVuYyddID0gZnVuY3Rpb24gdGhhdCBzaG93cyBoZWxwIHRleHQKKwkgICAgZXRjLgogCiAJSWRlYXMgZnJvbSBvdGhlcnM6CiAJaHR0cDovL3d3dy52aW0ub3JnL3NjcmlwdHMvc2NyaXB0LnBocD9zY3JpcHRfaWQ9NzQ3CisJICAgIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvaW5zZW52aW0KKwkJb2YgaHR0cDovL2luc2VudmltLnNvdXJjZWZvcmdlLm5ldAorCSAgICBKYXZhLCBYTUwsIEhUTUwsIEMrKywgSlNQLCBTUUwsIEMjCisJICAgIE1TLVdpbmRvd3Mgb25seSwgbG90cyBvZiBkZXBlbmRlbmNpZXMgKGUuZy4gUGVybCwgSW50ZXJuZXQKKwkJZXhwbG9yZXIpLCB1c2VzIC5kbGwgc2hhcmVkIGxpYnJhcmllcy4KKwkgICAgZm9yIEMrKyB1c2VzICRJTkNMVURFIGVudmlyb25tZW50IHZhcgorCSAgICBVSTogcG9wdXAgbWVudSB3aXRoIGxpc3Qgb2YgYWx0ZXJuYXRpdmVzLCBpY29uIHRvIGluZGljYXRlIHR5cGUKKwkJb3B0aW9uYWwgcG9wdXAgd2luZG93IHdpdGggaW5mbyBhYm91dCBzZWxlY3RlZCBhbHRlcm5hdGl2ZQorCSAgICBVbnJlbGF0ZWQgc2V0dGluZ3MgYXJlIGNoYW5nZWQgKGUuZy4gJ21vdXNlbW9kZWwnKS4KKwogCXd3dy52aW0ub3JnIHNjcmlwdCAxMjEzIChKYXZhIERldmVsb3BtZW50IEVudmlyb25tZW50KSAoRnVjaHVhbiBXYW5nKQotCWh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvaW5zZW52aW0KLQkgICAgb2YgaHR0cDovL2luc2VudmltLnNvdXJjZWZvcmdlLm5ldAogCUlDb21wbGV0ZTogaHR0cDovL3d3dy52aW0ub3JnL3NjcmlwdHMvc2NyaXB0LnBocD9zY3JpcHRfaWQ9MTI2NQogCSAgICBhbmQgaHR0cDovL3N0dWQ0LnR1d2llbi5hYy5hdC9+ZTAxMjU2NzIvaWNvbXBsZXRlLwogCWh0dHA6Ly9jZWRldC5zb3VyY2Vmb3JnZS5uZXQvaW50ZWxsaXNlbnNlLnNodG1sIChmb3IgRW1hY3MpCkBAIC0yNTcxLDE2ICsyNTkwLDEyIEBACiAKIAogTWFwcGluZ3MgYW5kIEFiYnJldmlhdGlvbnM6Ci04ICAgTGV0ICI6dmVyYm9zZSBtYXAgeHgiIHJlcG9ydCB3aGVyZSB0aGUgbWFwcGluZyB3YXMgc2V0LCBqdXN0IGxpa2Ugd2l0aAotICAgICI6dmVyYm9zZSBzZXQiLgogOCAgIFdoZW4gIjAiIGlzIG1hcHBlZCAoaXQgaXMgYSBtb3ZlbWVudCBjb21tYW5kKSB0aGlzIG1hcHBpbmcgc2hvdWxkIG5vdCBiZQogICAgIHVzZWQgYWZ0ZXIgdHlwaW5nIGFub3RoZXIgbnVtYmVyLCBlLmcuICIyMGwiLiAoQ2hhcmxlcyBDYW1wYmVsbCkKICAgICBJcyB0aGlzIHBvc3NpYmxlIHdpdGhvdXQgZGlzYWJsaW5nIHRoZSBtYXBwaW5nIG9mIHRoZSBmb2xsb3dpbmcgY29tbWFuZD8KIDggICBTaG91bGQgbWFwcGluZyA8Qy1BPiBhbmQgPEMtUy1BPiBib3RoIHdvcms/CiA3ICAgIjphYmJyIGIgYnl0ZSIsIGFwcGVuZCAiYiAiIHRvIGFuIGV4aXN0aW5nIHdvcmQgc3RpbGwgZXhwYW5kcyB0byAiYnl0ZSIuCiAgICAgVGhpcyBpcyBWaSBjb21wYXRpYmxlLCBidXQgY2FuIHdlIGF2b2lkIGl0IGFueXdheT8KLTggICAiOnZlcmJvc2UgbWFwIiBjb3VsZCBzaG93IHRoZSBzY3JpcHQgd2hlcmUgdGhlIG1hcHBpbmcgd2FzIGRlZmluZWQuCi0gICAgbV9zY3JpcHRfSUQgY2FuIGJlIHVzZWQuCiA4ICAgVG8gbWFrZSBhIG1hcHBpbmcgd29yayB3aXRoIGEgcHJlcGVuZGVkICJ4IHRvIHNlbGVjdCBhIHJlZ2lzdGVyLCBzdG9yZSB0aGUKICAgICBsYXN0IF90eXBlZF8gcmVnaXN0ZXIgbmFtZSBhbmQgYWNjZXNzIGl0IHdpdGggIiYuCiA4ICAgQWRkICI6YW1hcCIsIGxpa2UgIjphbWVudSIuCkBAIC0yNTkyLDggKzI2MDcsNiBAQAogOCAgIEFsbG93IG1hcHBpbmcgb2YgQ1RSTC1AIChhbnl3aGVyZSBpbiB0aGUgTEhTKS4KIDggICBHaXZlIGEgd2FybmluZyB3aGVuIHVzaW5nIENUUkwtQyBpbiB0aGUgbGhzIG9mIGEgbWFwcGluZy4gIEl0IHdpbGwgbmV2ZXIKICAgICAoPykgd29yay4KLTcgICAiOnZlcmJvc2UgbWFwIiBzaG91bGQgZGlzcGxheSB3aGVyZSBhIG1hcHBpbmcgd2FzIGRlZmluZWQsIGxpa2UgIjp2ZXJib3NlCi0gICAgc2V0Ii4KIDggICBBZGQgYSB3YXkgdG8gc2F2ZSBhIGN1cnJlbnQgbWFwcGluZyBhbmQgcmVzdG9yZSBpdCBsYXRlci4gIFVzZSBhIGZ1bmN0aW9uCiAgICAgdGhhdCByZXR1cm5zIHRoZSBtYXBwaW5nIGNvbW1hbmQgdG8gcmVzdG9yZSBpdDogbWFwY21kKCk/ICBtYXBjaGVjaygpIGlzCiAgICAgbm90IGZvb2wgcHJvb2YuICBIb3cgdG8gaGFuZGxlIGFtYmlndW91cyBtYXBwaW5ncz8KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dCBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dAppbmRleCAxMmY1ZGRmLi5hMWM1MzdmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKKysrIGIvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAxMgorKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAxNQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNTU5LDYgKzU1OSwxMSBAQAogRm9yIHh0ZXJtIG1vc3QgY29tYmluYXRpb25zIG9mIG1vZGlmaWVycyB3aXRoIGZ1bmN0aW9uIGtleXMgYXJlIHJlY29nbml6ZWQuCiB8eHRlcm0tbW9kaWZpZXIta2V5c3wKIAorV2hlbiAndmVyYm9zZScgaXMgc2V0IHRoZSBvdXRwdXQgb2YgIjpoaWdobGlnaHQiIHdpbGwgc2hvdyB3aGVyZSBhIGhpZ2hsaWdodAoraXRlbSB3YXMgbGFzdCBzZXQuCitXaGVuICd2ZXJib3NlJyBpcyBzZXQgdGhlIG91dHB1dCBvZiAiOm1hcCIgd2lsbCBzaG93IHdoZXJlIGEga2V5IG1hcCB3YXMKK2xhc3QgZGVmaW5lZC4gKFllZ2FwcGFuIExha3NobWFuYW4pCisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogSU1QUk9WRU1FTlRTCQkJCQkJKmltcHJvdmVtZW50cy03KgogCkBAIC03NDAsNiArNzQ1LDcgQEAKIFRoZSB0YWJsZSB3aXRoIGVuY29kaW5ncyBoYXMgYmVlbiBleHBhbmRlZCB3aXRoIG1hbnkgTVMtV2luZG93cyBjb2RlcGFnZXMsCiBzdWNoIGFzIGNwMTI1MCBhbmQgY3A3MzcsIHNvIHRoYXQgdGhlc2UgY2FuIGFsc28gYmUgdXNlZCBvbiBVbml4IHdpdGhvdXQKIHByZXBlbmRpbmcgIjhiaXQtIi4KK1doZW4gYW4gZW5jb2RpbmcgbmFtZSBzdGFydHMgd2l0aCAibWljcm9zb2Z0LWNwIiBpZ25vcmUgdGhlICJtaWNyb3NvZnQtIiBwYXJ0LgogCiBBZGRlZCB0aGUgImN1c3RvbWxpc3QiIGNvbXBsZXRpb24gYXJndW1lbnQgdG8gYSB1c2VyLWRlZmluZWQgY29tbWFuZC4gIFRoZQogdXNlci1kZWZpbmVkIGNvbXBsZXRpb24gZnVuY3Rpb24gc2hvdWxkIHJldHVybiB0aGUgY29tcGxldGlvbiBjYW5kaWRhdGVzIGFzIGEKQEAgLTc1Miw5ICs3NTgsNiBAQAogVGhlICdzJyBmbGFnIGlzIGFkZGVkIHRvIHRoZSBzZWFyY2goKSBhbmQgc2VhcmNocGFpcigpIGZ1bmN0aW9uIHRvIHNldCB0aGUKICcgbWFyayBpZiB0aGUgY3Vyc29yIGlzIG1vdmVkLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKIAotV2hlbiAndmVyYm9zZScgaXMgc2V0IHRoZSBvdXRwdXQgb2YgIjpoaWdobGlnaHQiIHdpbGwgc2hvdyB3aGVyZSBhIGhpZ2hsaWdodAotaXRlbSB3YXMgbGFzdCBzZXQuCi0KIEZvciAnZXJyb3Jmb3JtYXQnIGl0IHdhcyBub3QgcG9zc2libGUgdG8gaGF2ZSBhIGZpbGUgbmFtZSB0aGF0IGNvbnRhaW5zIHRoZQogY2hhcmFjdGVyIHRoYXQgZm9sbG93cyBhZnRlciAiJWYiLiAgRm9yIGV4YW1wbGUsIGluICIlZjolbDolbSIgdGhlIGZpbGUgbmFtZQogY291bGQgbm90IGNvbnRhaW4gIjoiLiAgTm93IGluY2x1ZGUgdGhlIGZpcnN0ICI6IiB3aGVyZSB0aGUgcmVzdCBvZiB0aGUKQEAgLTEyODMsNCArMTI4NiwxMCBAQAogCiBXaW4zMjogQ291bGQgbm90IHVzZSAiKiovIiBpbiAncGF0aCcsIGl0IGhhZCB0byBiZSAiKipcIi4KIAorVGhlIHNlYXJjaCBwYXR0ZXJuICJcbiIgZGlkIG5vdCBtYXRjaCBhdCB0aGUgZW5kIG9mIHRoZSBsYXN0IGxpbmUuCisKK1NlYXJjaGluZyBmb3IgYSBwYXR0ZXJuIGJhY2t3YXJkcywgc3RhcnRpbmcgb24gdGhlIE5VTCBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lCithbmQgJ2VuY29kaW5nJyBpcyAidXRmLTgiIHdvdWxkIG1hdGNoIHRoZSBwYXR0ZXJuIGp1c3QgYmVmb3JlIGl0IGluY29ycmVjdGx5LgorQWZmZWN0ZWQgc2VhcmNocGFpcignL1wqJywgJycsICdcKi8nKS4KKwogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZmlsZXR5cGUudmltIGIvcnVudGltZS9maWxldHlwZS52aW0KaW5kZXggZDhmZDBhZi4uNTYwYzQ3OSAxMDA2NDQKLS0tIGEvcnVudGltZS9maWxldHlwZS52aW0KKysrIGIvcnVudGltZS9maWxldHlwZS52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzdXBwb3J0IGZpbGUgdG8gZGV0ZWN0IGZpbGUgdHlwZXMKICIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDUgSnVsIDEzCisiIExhc3QgQ2hhbmdlOgkyMDA1IEF1ZyAxNQogCiAiIExpc3RlbiB2ZXJ5IGNhcmVmdWxseSwgSSB3aWxsIHNheSB0aGlzIG9ubHkgb25jZQogaWYgZXhpc3RzKCJkaWRfbG9hZF9maWxldHlwZXMiKQpAQCAtMTcwMCw2ICsxNzAwLDkgQEAKICIgVmVyaWxvZyBIREwKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnYJCQlzZXRmIHZlcmlsb2cKIAorIiBWZXJpbG9nLUFNUyBIREwKK2F1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLnZhLCoudmFtcwkJc2V0ZiB2ZXJpbG9nYW1zCisKICIgVkhETAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouaGRsLCoudmhkLCoudmhkbCwqLnZiZSwqLnZzdCAgc2V0ZiB2aGRsCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi52aGRsX1swLTldKgkJY2FsbCBzOlN0YXJTZXRmKCd2aGRsJykKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4vZGViY2hhbmdlbG9nLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vZGViY2hhbmdlbG9nLnZpbQppbmRleCAzMmRiNWE3Li41OWY2MDFhIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2RlYmNoYW5nZWxvZy52aW0KKysrIGIvcnVudGltZS9mdHBsdWdpbi9kZWJjaGFuZ2Vsb2cudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gZmlsZXR5cGUgcGx1Z2luIGZpbGUKICIgTGFuZ3VhZ2U6CURlYmlhbiBDaGFuZ2Vsb2cKICIgTWFpbnRhaW5lcjoJTWljaGFlbCBQaWVmZWwgPHBpZWZlbEBpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KLSIgTGFzdCBDaGFuZ2U6CTIzIE1hcmNoIDIwMDQKKyIgTGFzdCBDaGFuZ2U6CTE1IEF1Z3VzdCAyMDA1CiAKIGlmIGV4aXN0cygiZzpkaWRfY2hhbmdlbG9nX2Z0cGx1Z2luIikKICAgZmluaXNoCkBAIC0zMCw3ICszMCw3IEBACiAgICAgZWxzZWlmIGV4aXN0cygiJEVNQUlMIikKIAlyZXR1cm4gJEVNQUlMCiAgICAgZWxzZWlmIGV4aXN0cygiZzpkZWJpYW5lbWFpbCIpCi0JcmV0dXJuIGc6ZGViaWFuZnVsbGVtYWlsCisJcmV0dXJuIGc6ZGViaWFuZW1haWwKICAgICBlbHNlCiAJcmV0dXJuICJ5b3VyQGVtYWlsLmFkZHJlc3MiCiAgICAgZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvaW5kZW50L3BocC52aW0gYi9ydW50aW1lL2luZGVudC9waHAudmltCmluZGV4IDdmN2FhNTYuLjNlN2E5OTAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L3BocC52aW0KKysrIGIvcnVudGltZS9pbmRlbnQvcGhwLnZpbQpAQCAtMiw3ICsyLDcgQEAKICIgTGFuZ3VhZ2U6CVBIUAogIiBBdXRob3I6CUpvaG4gV2VsbGVzeiA8Sm9obi53ZWxsZXN6IChBVCkgdGVhc2VyIChET1QpIGZyPgogIiBVUkw6CQlodHRwOi8vd3d3LjIwNzJwcm9kdWN0aW9ucy5jb20vdmltL2luZGVudC9waHAudmltCi0iIExhc3QgQ2hhbmdlOiAyMDA1IEp1bmUgMzB0aAorIiBMYXN0IENoYW5nZTogMjAwNSBBdWcgMTUKICIgVmVyc2lvbjogMS4xNwogIgogIiBGb3IgYSBjb21wbGV0ZSBjaGFuZ2UgbG9nIGFuZCBsb3RzIG9mIGNvbW1lbnRzIGluIHRoZSBjb2RlLCBkb3dubG9hZCB0aGUgc2NyaXB0IG9uCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2FmL2FmX1pBLmRpZmYgYi9ydW50aW1lL3NwZWxsL2FmL2FmX1pBLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWM4NTgwNAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvYWYvYWZfWkEuZGlmZgpAQCAtMCwwICsxLDM2IEBACisqKiogYWZfWkEub3JpZy5hZmYJU3VuIEF1ZyAxNCAxNzozNzowMSAyMDA1CistLS0gYWZfWkEuYWZmCVN1biBBdWcgMTQgMTc6Mzg6MTEgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMjMsMjQgKioqKgorLS0tIDIzLDM0IC0tLS0KKyAgCisrIEZPTCAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgTE9XICDg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBVUFAgIMDBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQJJy0KKysgU0xBU0ggLAorKyAKKyAgTUFQIDMKKyoqKiBhZl9aQS5vcmlnLmRpYwlTdW4gQXVnIDE0IDE3OjM3OjAxIDIwMDUKKy0tLSBhZl9aQS5kaWMJU3VuIEF1ZyAxNCAxNzozODo1NCAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAxODYxLDE4NjQgKioqKgorICBULXNreWYKKyEgVENQL0lQCishIFRDUC9JUC1ib25kZWwKKyAgVExBCistLS0gMTg2MSwxODY0IC0tLS0KKyAgVC1za3lmCishIFRDUCxJUAorISBUQ1AsSVAtYm9uZGVsCisgIFRMQQorKioqKioqKioqKioqKioqCisqKiogMTI0MTA5LDEyNDExMSAqKioqCisgIHZyeXdpbGxpZ2xpaworLSB2dAorICB2dWlsZS9SCistLS0gMTI0MTA5LDEyNDExMCAtLS0tCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2FmL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9hZi9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzkzYzVmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9hZi9tYWluLmFhcApAQCAtMCwwICsxLDc5IEBACisjIEFhcCByZWNpcGUgZm9yIEFmcmlrYWFucyBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IGFmX1pBLmFmZiBhZl9aQS5kaWMKKworYWxsOiAkU1BFTExESVIvYWYubGF0aW4xLnNwbCAkU1BFTExESVIvYWYudXRmLTguc3BsIC4uL1JFQURNRV9hZi50eHQKKworJFNQRUxMRElSL2FmLmxhdGluMS5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWFmX1pBLklTTzg4NTktMQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9hZiBhZl9aQSIgLWMgcQorCiskU1BFTExESVIvYWYudXRmLTguc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1hZl9aQS5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9hZiBhZl9aQSIgLWMgcQorCisuLi9SRUFETUVfYWYudHh0IDogUkVBRE1FX2FmX1pBLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZSBmcm9tIFNvdXJjZUZvcmdlLiAgVGhlIGFyY2hpdmUgYXQgT3Blbk9mZmljZSBpcyBicm9rZW4hCisjCitGSUxFID0gaHR0cDovL3N1cmZuZXQuZGwuc291cmNlZm9yZ2UubmV0L3NvdXJjZWZvcmdlL3RyYW5zbGF0ZS9teXNwZWxsLWFmX1pBLTIwMDQwNzI3LnppcAorCis6YXR0ciB7ZmV0Y2ggPSAkRklMRX0gYWZfWkEuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCithZl9aQS5hZmYgYWZfWkEuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIGFmX1pBLnppcAorICAgICAgICA6c3lzICRVTlpJUCBhZl9aQS56aXAKKyAgICAgICAgOmRlbGV0ZSBhZl9aQS56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnYWZfWkEub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGFmX1pBLmFmZiBhZl9aQS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdhZl9aQS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgYWZfWkEuZGljIGFmX1pBLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnYWZfWkEuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8YWZfWkEuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBhZl9aQS5vcmlnLmFmZiBhZl9aQS5hZmYgPmFmX1pBLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBhZl9aQS5vcmlnLmRpYyBhZl9aQS5kaWMgPj5hZl9aQS5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBhZl9aQS56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2FmX1pBLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vYWZfWkEub3JpZy5hZmYgYWZfWkEuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGFmX1pBLmFmZiAuLi9hZl9aQS5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9hZl9aQS5vcmlnLmRpYyBhZl9aQS5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgYWZfWkEuZGljIC4uL2FmX1pBLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBhZl9aQS56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9iZy9iZ19CRy5kaWZmIGIvcnVudGltZS9zcGVsbC9iZy9iZ19CRy5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhMGE0ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2JnL2JnX0JHLmRpZmYKQEAgLTAsMCArMSw0MiBAQAorKioqIGJnX0JHLm9yaWcuYWZmCVN1biBBdWcgMTQgMTg6MTI6NDQgMjAwNQorLS0tIGJnX0JHLmFmZglTdW4gQXVnIDE0IDE4OjEzOjEyIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDEsMiAqKioqCishIFNFVCBtaWNyb3NvZnQtY3AxMjUxCisgIFRSWSDg5e3u6PDy4vHr6uzv5+T/8/rh9+P25vX49On5/vzAxc3OyNDSwtHLyszPx8Tf09rB18PWxtXY1MnZ3twKKy0tLSAxLDIgLS0tLQorISBTRVQgY3AxMjUxCisgIFRSWSDg5e3u6PDy4vHr6uzv5+T/8/rh9+P25vX49On5/vzAxc3OyNDSwtHLyszPx8Tf09rB18PWxtXY1MnZ3twKKyoqKioqKioqKioqKioqKgorKioqIDE2ODIsMTY4NCAqKioqCisgIAorISBNQVAgMjYKKyAgTUFQIOD6/GEKKy0tLSAxNjgyLDE2ODQgLS0tLQorICAKKyEgTUFQIDI1CisgIE1BUCDg+vxhCisqKioqKioqKioqKioqKioKKyoqKiAxNjkxLDE2OTUgKioqKgorICBNQVAg5vgKKyEgTUFQIOfxCisgIE1BUCBw8AorLSBNQVAgY/EKKyAgTUFQIHj1CistLS0gMTY5MSwxNjk0IC0tLS0KKyAgTUFQIOb4CishIE1BUCBj5/EKKyAgTUFQIHDwCisgIE1BUCB49QorKioqKioqKioqKioqKioqCisqKiogMTcwNywxNzA5ICoqKioKKyAgTUFQIFDQCistIE1BUCBZ0worICBNQVAgWNUKKy0tLSAxNzA2LDE3MTEgLS0tLQorICBNQVAgUNAKKyAgTUFQIFjVCisrIAorKyBSRVAgMgorKyBSRVAgWSDTCisrIFJFUCDTIFkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvYmcvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2JnL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4NDk1MjYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2JnL21haW4uYWFwCkBAIC0wLDAgKzEsNzkgQEAKKyMgQWFwIHJlY2lwZSBmb3IgQ3plY2ggVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBiZ19CRy5hZmYgYmdfQkcuZGljCisKK2FsbDogJFNQRUxMRElSL2JnLmNwMTI1MS5zcGwgJFNQRUxMRElSL2JnLnV0Zi04LnNwbCAuLi9SRUFETUVfYmcudHh0CisKKyRTUEVMTERJUi9iZy5jcDEyNTEuc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1iZ19CRy5DUDEyNTEgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvYmcgYmdfQkciIC1jIHEKKworJFNQRUxMRElSL2JnLnV0Zi04LnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9YmdfQkcuVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvYmcgYmdfQkciIC1jIHEKKworLi4vUkVBRE1FX2JnLnR4dDogUkVBRE1FX2JnX0JHLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGJnX0JHLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorIyBUaGlzIGlzIGEgYml0IHRyaWNreSwgc2luY2UgdGhlIGZpbGUgbmFtZSBpbmNsdWRlcyB0aGUgZGF0ZS4KK2JnX0JHLmFmZiBiZ19CRy5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggYmdfQkcuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGJnX0JHLnppcAorICAgICAgICA6ZGVsZXRlIGJnX0JHLnppcAorICAgICAgICA6c3lzICRWSU0gYmdfQkcuYWZmIC1jICJzZXQgZmY9dW5peCIgLWMgInVwZGF0ZSIgLWMgcQorICAgICAgICA6c3lzICRWSU0gYmdfQkcuZGljIC1jICJzZXQgZmY9dW5peCIgLWMgInVwZGF0ZSIgLWMgcQorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdiZ19CRy5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgYmdfQkcuYWZmIGJnX0JHLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2JnX0JHLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBiZ19CRy5kaWMgYmdfQkcub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdiZ19CRy5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxiZ19CRy5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGJnX0JHLm9yaWcuYWZmIGJnX0JHLmFmZiA+YmdfQkcuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGJnX0JHLm9yaWcuZGljIGJnX0JHLmRpYyA+PmJnX0JHLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIGJnX0JHLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vYmdfQkcuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9iZ19CRy5vcmlnLmFmZiBiZ19CRy5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgYmdfQkcuYWZmIC4uL2JnX0JHLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2JnX0JHLm9yaWcuZGljIGJnX0JHLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBiZ19CRy5kaWMgLi4vYmdfQkcubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGJnX0JHLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2NhL2NhX0VTLmRpZmYgYi9ydW50aW1lL3NwZWxsL2NhL2NhX0VTLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRhM2IwYQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvY2EvY2FfRVMuZGlmZgpAQCAtMCwwICsxLDc2IEBACisqKiogY2FfRVMub3JpZy5hZmYJU2F0IEF1ZyAxMyAxODowMTozNiAyMDA1CistLS0gY2FfRVMuYWZmCVNhdCBBdWcgMTMgMTg6MDE6MzIgMjAwNQorKioqKioqKioqKioqKioqCisqKiogNDQsNDggKioqKgorICAKKyEgIyBzdWJzdGl0dWNpb25zIHByZWZlcmlkZXMKKyEgRklSU1QgYS/gIGUv6S/oIOkv6C9lIOgv6S9lIGkv7S/vIO0vaS/vIG8v8y/yIPMv8i9vIPIv8y9vIHUv+i/8IPovdS/8IPwvdS/6CishIEZJUlNUIGwvbLdsIGy3bC9sCisgIAorLS0tIDQ0LDY1IC0tLS0KKyAgCishIEZPTCAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKyEgTE9XICDg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worISBVUFAgIMDBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//CishIAorISBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CishIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKyEgCishIE1JRFdPUkQJty0nCishIAorISBNQVAgNgorISBNQVAgYeDh4uPk5QorISBNQVAgZejp6usKKyEgTUFQIGns7e7vCishIE1BUCBv8vP09fYKKyEgTUFQIHX5+vv8CishIE1BUCBj5worISAKKyEgUkVQIDIKKyEgUkVQIGwgbLdsCishIFJFUCBst2wgbAorICAKKyoqKiBjYV9FUy5vcmlnLmRpYwlTYXQgQXVnIDEzIDE4OjAxOjU1IDIwMDUKKy0tLSBjYV9FUy5kaWMJU2F0IEF1ZyAxMyAxODowMTo1MSAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyNTMxMiwyNTMxNCAqKioqCisgIGNhb3MvRQorLSBjYXAKKyAgY2FwLXJvZG8vRQorLS0tIDI1MzEyLDI1MzEzIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDM1MTAzLDM1MTA1ICoqKioKKyAgY29ycmFzafMvRworLSBjb3JyZQorICBjb3JyZS1jb3JyZW50cworLS0tIDM1MTAyLDM1MTAzIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDk5ODA2LDk5ODA4ICoqKioKKyAgbWFq+nNjdWwvRgorLSBtYWwKKyAgbWFsLWxsZXZhdC9FCistLS0gOTk4MDQsOTk4MDUgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTA3NTE3LDEwNzUxOSAqKioqCisgIG5vdPJyaWFtZW50CistIG5vdQorICBub3UtY2VudGVzL0UKKy0tLSAxMDc1MTQsMTA3NTE1IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDEyMjY4NywxMjI2ODkgKioqKgorICByYXTgbmlhL0UKKy0gcmF1CisgIHJhdS1yYXUvRQorLS0tIDEyMjY4MywxMjI2ODQgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTM5Mzg5LDEzOTM5MSAqKioqCisgIHRh/HQvRQorLSB0ZQorICB0ZSdsCistLS0gMTM5Mzg0LDEzOTM4NSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNDc1OTAsMTQ3NTkyICoqKioKKyAgdml07WNvbGEvRQorLSB2aXUKKyAgdml1LXZpdS9FCistLS0gMTQ3NTg0LDE0NzU4NSAtLS0tCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2NhL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9jYS9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmY3MzUwCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9jYS9tYWluLmFhcApAQCAtMCwwICsxLDgxIEBACisjIEFhcCByZWNpcGUgZm9yIENhdGVsYW4gKFNwYWluKSBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IGNhX0VTLmFmZiBjYV9FUy5kaWMKKworYWxsOiAkU1BFTExESVIvY2EubGF0aW4xLnNwbCAkU1BFTExESVIvY2EudXRmLTguc3BsIC4uL1JFQURNRV9jYS50eHQKKworJFNQRUxMRElSL2NhLmxhdGluMS5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWNhX0VTLklTTzg4NTktMQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9jYSBjYV9FUyIgLWMgcQorCiskU1BFTExESVIvY2EudXRmLTguc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1jYV9FUy5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9jYSBjYV9FUyIgLWMgcQorCisuLi9SRUFETUVfY2EudHh0IDogUkVBRE1FX2NhX0VTLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGNhX0VTLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorIyBNYWtlIHN1cmUgdGhlIGZpbGVzIGFyZSBpbiBVbml4IGZpbGVmb3JtYXQKK2NhX0VTLmFmZiBjYV9FUy5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggY2FfRVMuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGNhX0VTLnppcAorICAgICAgICA6ZGVsZXRlIGNhX0VTLnppcAorICAgICAgICA6c3lzICRWSU0gY2FfRVMuYWZmIC1jICJzZXQgZmY9dW5peCIgLWMgInVwZGF0ZSIgLWMgcQorICAgICAgICA6c3lzICRWSU0gY2FfRVMuZGljIC1jICJzZXQgZmY9dW5peCIgLWMgInVwZGF0ZSIgLWMgcQorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdjYV9FUy5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgY2FfRVMuYWZmIGNhX0VTLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2NhX0VTLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBjYV9FUy5kaWMgY2FfRVMub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdjYV9FUy5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxjYV9FUy5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGNhX0VTLm9yaWcuYWZmIGNhX0VTLmFmZiA+Y2FfRVMuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGNhX0VTLm9yaWcuZGljIGNhX0VTLmRpYyA+PmNhX0VTLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIGNhX0VTLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vY2FfRVMuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9jYV9FUy5vcmlnLmFmZiBjYV9FUy5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgY2FfRVMuYWZmIC4uL2NhX0VTLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2NhX0VTLm9yaWcuZGljIGNhX0VTLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBjYV9FUy5kaWMgLi4vY2FfRVMubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGNhX0VTLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2NzL2NzX0NaLmRpZmYgYi9ydW50aW1lL3NwZWxsL2NzL2NzX0NaLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBhODRlZgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvY3MvY3NfQ1ouZGlmZgpAQCAtMCwwICsxLDc4MyBAQAorKioqIGNzX0NaLm9yaWcuYWZmCVNhdCBBdWcgMTMgMjE6Mzg6MjkgMjAwNQorLS0tIGNzX0NaLmFmZglTYXQgQXVnIDEzIDIzOjI5OjEzIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDMsNCAqKioqCistLS0gMyw4IC0tLS0KKyAgCisrIEZPTCCxorO1tqi5uru8vr+xsrO0tba3uLm6u7y9vr/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBMT1cgsaKztbaoubq7vL6/sbKztLW2t7i5uru8vb6/4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgVVBQIKGio6WmqKmqq6yur7Gys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//CisrIAorICBQRlggTiBZIDEKKyoqKioqKioqKioqKioqKgorKioqIDIxMTgsMjEyMCAqKioqCisgIFNGWCBBICAgbm91dCAgICAgICAgbHkgICAgICAgICBbYWVpb3V54ent8/r9+exdcm5vdXQKKyEgU0ZYIEEgICBub3V0ICAgICAgICBsICAgICAgICAgIFthZWlvdXnh6e3z+v357HJdW15hZWlvdXnh6e3z+v357HJsXVteYWVpb3V5CisgIFNGWCBBICAgbm91dCAgICAgICAgbCAgICAgICAgICBbYWVpb3V54ent8/r9+exyXVteYWVpb3V54ent8/r9+exybF1ub3V0CistLS0gMjEyMiwyMTI0IC0tLS0KKyAgU0ZYIEEgICBub3V0ICAgICAgICBseSAgICAgICAgIFthZWlvdXnh6e3z+v357F1ybm91dAorISBTRlggQSAgIG5vdXQgICAgICAgIGwgICAgICAgICAgW2FlaW91eeHp7fP6/fnscl1bXmFlaW91eeHp7fP6/fnscmxdW15hZWlvdXldb3V0CisgIFNGWCBBICAgbm91dCAgICAgICAgbCAgICAgICAgICBbYWVpb3V54ent8/r9+exyXVteYWVpb3V54ent8/r9+exybF1ub3V0CisqKiogY3NfQ1oub3JpZy5kaWMJU2F0IEF1ZyAxMyAyMTozODoyOSAyMDA1CistLS0gY3NfQ1ouZGljCVN1biBBdWcgMTQgMTU6MzM6MzggMjAwNQorKioqKioqKioqKioqKioqCisqKiogMjk0NCwyOTQ2ICoqKioKKyAgYXIvSAorLSBhcmNoCisgIGFyY2hhaWNr/S9ZQ1JOCistLS0gMjk0NCwyOTQ1IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDMwOTgsMzEwMCAqKioqCisgIGFyb2dhbnRu7S9ZS1JOCistIGFyb21hCisgIGFyb21hL0sKKy0tLSAzMDk3LDMwOTggLS0tLQorKioqKioqKioqKioqKioqCisqKiogNDc1Myw0NzU1ICoqKioKKyAgYmFuam8vTVEKKy0gYmFuaworICBiYW5rYS9aUQorLS0tIDQ3NTEsNDc1MiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA1NTQwLDU1NDIgKioqKgorICBCZWNoefLha/l2L1kKKy0gQmVjaHlu7AorICBCZWNoeW7sL1MKKy0tLSA1NTM3LDU1MzggLS0tLQorKioqKioqKioqKioqKioqCisqKiogNTk0NSw1OTQ3ICoqKioKKyAgYmVybXVkc2v9L1lSTgorLSBCZXJtdWR5CisgIEJlcm11ZHkvWlEKKy0tLSA1OTQxLDU5NDIgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNjExMSw2MTEzICoqKioKKyAgQmV1c3T5di9ZCistIGJlegorICBCZXrha2924S9ZCistLS0gNjEwNiw2MTA3IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDcyOTQsNzI5NiAqKioqCisgIGJs4W5hL1oKKy0gQmxhbmMKKyAgQmxhbmMvUFYKKy0tLSA3Mjg4LDcyODkgLS0tLQorKioqKioqKioqKioqKioqCisqKiogOTQ1Niw5NDU4ICoqKioKKyAgYvhpY2hvdml0/S9ZS1IKKy0gYvjtbewKKyAgYvjtbewvTQorLS0tIDk0NDksOTQ1MCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA5NjY3LDk2NjkgKioqKgorICBidWR5ue1uc2v9L1kKKy0gYnVmZXQKKyAgYnVmZXTh+Ohpbi9ZCistLS0gOTY1OSw5NjYwIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDk2NzcsOTY3OSAqKioqCisgIGJ1ZmZlcm92/S9ZUk4KKy0gYnVmZmV0CisgIGJ1ZmZldC9ICistLS0gOTY2OCw5NjY5IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDExMzg2LDExMzg4ICoqKioKKyAgY29wL0gKKy0gY29weXJpZ2h0CisgIGNvcHlyaWdodC9ICistLS0gMTEzNzYsMTEzNzcgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTE0NDYsMTE0NDggKioqKgorICBjcmVzYworLSBjcmVzY2VuZG8KKyAgY3Jlc2NlbmRvL01RCistLS0gMTE0MzUsMTE0MzYgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTM4MTAsMTM4MTIgKioqKgorICBkYWt0eWx1cy9RCistIGThbAorICBkYWxhamzhbWEvUFYKKy0tLSAxMzc5OCwxMzc5OSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMzgxNiwxMzgxOCAqKioqCisgIGThbC9FCistIGThbGUKKyAgRGFsZWNr/S9ZCistLS0gMTM4MDMsMTM4MDQgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTM4MjEsMTM4MjMgKioqKgorICBk4WxlL0UKKy0gZGFsZWtvCisgIGRhbGVrb2hsZWQvSAorLS0tIDEzODA3LDEzODA4IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE0MDgyLDE0MDg0ICoqKioKKyAgZGF0bGEKKy0gZGF0bGUKKyAgZGF0bGVjaAorLS0tIDE0MDY3LDE0MDY4IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE0NzU2LDE0NzU4ICoqKioKKyAgZGVrdXJh6G7tL1lSTgorLSBk7GwKKyAgZGVsYWJvcmFjZS9aCistLS0gMTQ3NDAsMTQ3NDEgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTUzMDEsMTUzMDMgKioqKgorICBkZXNhdGVy4Wv5di9ZCistIGRlc2F0ZXJvCisgIGRlc2F0ZXJvL01RCistLS0gMTUyODQsMTUyODUgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTU3MTYsMTU3MTggKioqKgorICBkZXZhdGVybu1rL0gKKy0gZGV2YXRlcm8KKyAgZGV2YXRlcm8vTVEKKy0tLSAxNTY5OCwxNTY5OSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNjE1MiwxNjE1NCAqKioqCisgIERJSworLSBk7WsKKyAgZGlrYWxjaXVtZm9zZuF0L0gKKy0tLSAxNjEzMywxNjEzNCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNjYwMywxNjYwNSAqKioqCisgIERp+XYvWQorLSBkaXYKKyAgZGl24WNr/S9ZS1IKKy0tLSAxNjU4MywxNjU4NCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxOTg4NiwxOTg4OCAqKioqCisgIGRvcG9sYQorLSBkb3BvbGVkbmUKKyAgZG9wb2xlZG5lL00KKy0tLSAxOTg2NSwxOTg2NiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxOTk3MCwxOTk3MiAqKioqCisgIGRvcHJhdC9BVE4KKy0gZG9wcmF2YQorICBkb3ByYXZhL1pRCistLS0gMTk5NDgsMTk5NDkgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMjI5MTIsMjI5MTQgKioqKgorICBk+O12L0UKKy0gZPjtdmUKKyAgZPjtdmXoa28vTVEKKy0tLSAyMjg4OSwyMjg5MCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAyNjM2OSwyNjM3MSAqKioqCisgIGZha29lbXVsc2lmaWthY2UvWgorLSBmYWtzaW1pbGUKKyAgZmFrc2ltaWxlL1oKKy0tLSAyNjM0NSwyNjM0NiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAyNzI2NiwyNzI2OCAqKioqCisgIGZpbfN6YS9aUQorLSBmaW7hbGUKKyAgZmlu4WxlL1oKKy0tLSAyNzI0MSwyNzI0MiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAyODEwMSwyODEwMyAqKioqCisgIGZveHRyb3Rvdv0vWQorLSBmb3llcgorICBmb3llci9ICistLS0gMjgwNzUsMjgwNzYgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMjg3NTksMjg3NjEgKioqKgorICBHYWpk+XYvWQorLSBHYWwKKyAgZ2FsCistLS0gMjg3MzIsMjg3MzMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMjkwNjAsMjkwNjIgKioqKgorICBnZW1vdmF0L0FUTgorLSBnZW4KKyAgZ2VuY2nhbm92/S9ZUgorLS0tIDI5MDMyLDI5MDMzIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDI5NDEwLDI5NDEyICoqKioKKyAgZ2xlanQvSAorLSBnbGlzc2FuZG8KKyAgZ2xpc3NhbmRvL01RCistLS0gMjkzODEsMjkzODIgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMzEyNDcsMzEyNDkgKioqKgorICBoZWZlYnJhbmQvSAorLSBIZWdlbAorICBIZWdlbGEKKy0tLSAzMTIxNywzMTIxOCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAzMTYwMiwzMTYwNCAqKioqCisgIEhlcmt1bGVtCistIEhlcmt1bGVzCisgIEhlcmt1bGVzL0QKKy0tLSAzMTU3MSwzMTU3MiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAzMjI1OCwzMjI2MCAqKioqCisgIGhsb3Vi7HTtbnNr/S9ZCistIGhsb3ViaQorICBobG91Ymlj7S9ZCistLS0gMzIyMjYsMzIyMjcgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMzI2MTIsMzI2MTQgKioqKgorICBIb2Nr/S9ZCistIGhvZAorICBIb2TsamljZS9DCistLS0gMzI1NzksMzI1ODAgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMzMwNjksMzMwNzEgKioqKgorICBob21vaXNvZmxhdm9ub2lkL0gKKy0gSG9tb2xhCisgIEhvbW9sYS9QVgorLS0tIDMzMDM1LDMzMDM2IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDM0Mzg5LDM0MzkxICoqKioKKyAgaPhlYmVsZWMvUworLSBo+GViZW4KKyAgaPhlYmVuYXRrYS9aUQorLS0tIDM0MzU0LDM0MzU1IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDM0ODE3LDM0ODE5ICoqKioKKyAgSHVzZXJr+XYvWQorLSBodXPtCisgIGh1c2ljZS9aUQorLS0tIDM0NzgxLDM0NzgyIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDM2NDQxLDM2NDQzICoqKioKKyAgY2j4dXBhdv0vWUtSTgorLSBjaHTsCisgIGNodOxqZS9YTgorLS0tIDM2NDA0LDM2NDA1IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDM4NTY5LDM4NTcxICoqKioKKyAgamFqYWoKKy0gamFrCisgIGpha+Frb2xpCistLS0gMzg1MzEsMzg1MzIgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMzkzMjMsMzkzMjUgKioqKgorICBqZWRu6S9OCistIGplZG5pCisgIGplZG5pY2UvWlEKKy0tLSAzOTI4NCwzOTI4NSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAzOTUzNCwzOTUzNiAqKioqCisgIGplZG5vdP1kZW5u7S9ZUgorLSBqZWRub3UKKyAgamVkbm/66GVsb3b9L1lSTgorLS0tIDM5NDk0LDM5NDk1IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDM5NzE3LDM5NzE5ICoqKioKKyAgamVtdb4KKy0gamVuCisgIEplbmEvWlEKKy0tLSAzOTY3NiwzOTY3NyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAzOTc1NSwzOTc1NyAqKioqCisgIGplbi9OCistIGplbm9tCisgIGplbm9tL04KKy0tLSAzOTcxMywzOTcxNCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA0MDE0OSw0MDE1MSAqKioqCisgIGppbuHoL1MKKy0gamluYWsKKyAgamluYWsvTgorLS0tIDQwMTA2LDQwMTA3IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDQxMzE3LDQxMzE5ICoqKioKKyAgS2FsaXN0+XYvWQorLSBLYWxpuQorICBrYWztuWVrL1EKKy0tLSA0MTI3Myw0MTI3NCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA0Mjg2MSw0Mjg2MyAqKioqCisgIGtkZb50bworLSBrZG8KKyAga2Rvau1qYWsKKy0tLSA0MjgxNiw0MjgxNyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA0NDA0OCw0NDA1MCAqKioqCisgIEtsc+Fr+XYvWQorLSBrbHViCisgIGtsdWJhau1j7S9ZTgorLS0tIDQ0MDAyLDQ0MDAzIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDQ0MjM1LDQ0MjM3ICoqKioKKyAgS25l+Pl2L1kKKy0ga27segorICBrbux6ZQorLS0tIDQ0MTg4LDQ0MTg5IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDQ1MDA3LDQ1MDA5ICoqKioKKyAga29saWsKKy0ga29saWthCisgIGtvbGlrYWNpZmVybv0vWUtSTgorLS0tIDQ0OTU5LDQ0OTYwIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDQ2MjkyLDQ2Mjk0ICoqKioKKyAga29udGludXVtL01RCistIGtvbnRvCisgIGtvbnRva29yZW50L0gKKy0tLSA0NjI0Myw0NjI0NCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA0NzE1Miw0NzE1NCAqKioqCisgIGtvc21vcG9saXT5di9ZCistIGtvc21vcworICBrb3Ntb3MvUQorLS0tIDQ3MTAyLDQ3MTAzIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDUxODQ0LDUxODQ2ICoqKioKKyAgTGVjbGFuY2hl+XYvWQorLSBsZegKKyAgbOnoYmEvWlEKKy0tLSA1MTc5Myw1MTc5NCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA1MjQ0OSw1MjQ1MSAqKioqCisgIGxluXRpdv0vWUtSTgorLSBsZXQKKyAgbOl0YWPtL1lOCistLS0gNTIzOTcsNTIzOTggLS0tLQorKioqKioqKioqKioqKioqCisqKiogNTQzNTEsNTQzNTMgKioqKgorICBs+WoKKy0gbHVrCisgIEx1a+Hob3bhL1kKKy0tLSA1NDI5OCw1NDI5OSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA1NTQwOCw1NTQxMCAqKioqCisgIE1hbGxvcmNhL1pRCistIG3hbG8KKyAgbWFsb2J1cr5vYXNpZS9aCistLS0gNTUzNTQsNTUzNTUgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNTU1NzQsNTU1NzYgKioqKgorICBtYW11dPl2L1kKKy0gTWFuCisgIG3hL04KKy0tLSA1NTUxOSw1NTUyMCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA1NTg1Miw1NTg1NCAqKioqCisgIE1hcHV0by9NUQorLSBtYXJhYnUKKyAgbWFyYWJ1L1BWCistLS0gNTU3OTYsNTU3OTcgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNTcyNTQsNTcyNTYgKioqKgorICBNZW5kbPl2L1kKKy0gbelu7AorICBt6W7sY2Vubuxque0vWVJXCistLS0gNTcxOTcsNTcxOTggLS0tLQorKioqKioqKioqKioqKioqCisqKiogNTgzNTgsNTgzNjAgKioqKgorICBtaWxlbv0vWU4KKy0gbWlsZXLhZAorICBtaWxlcuFkL08KKy0tLSA1ODMwMCw1ODMwMSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA1OTQyNiw1OTQyOCAqKioqCisgIG1vY+1tCistIG1vY2lw4W4KKyAgbW9jaXDhbmEKKy0tLSA1OTM2Nyw1OTM2OCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA2MDgzMyw2MDgzNSAqKioqCisgIE11Y2j5di9ZCistIG35agorICBt+WovWQorLS0tIDYwNzczLDYwNzc0IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDYyMzA4LDYyMzEwICoqKioKKyAgbmFkcGxvY2hhL1pRCistIG5hZHBv6GV0CisgIG5hZHBv6GV0buxque0vWVJXCistLS0gNjIyNDcsNjIyNDggLS0tLQorKioqKioqKioqKioqKioqCisqKiogNjYxMTQsNjYxMTYgKioqKgorICBuYXZhvnVq7WPtL1lOCistIG5hdmXoZXIKKyAgbmF2Zehlci9MCistLS0gNjYwNTIsNjYwNTMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNjY1ODEsNjY1ODMgKioqKgorICBuZWJlcworLSBuZWJlc2EKKyAgbmViZXNhL01RCistLS0gNjY1MTgsNjY1MTkgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNjgwODAsNjgwODIgKioqKgorICBub2JsZXNu7S9ZS1IKKy0gbm9jCisgIG5vY2VtaQorLS0tIDY4MDE2LDY4MDE3IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDY4NTYyLDY4NTY0ICoqKioKKyAgbm92dW0vTVEKKy0gTm92/QorICBOb3b9L1kKKy0tLSA2ODQ5Nyw2ODQ5OCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA3MzAxOCw3MzAyMCAqKioqCisgIG9kcG9qb3bhdmF0L0pUTgorLSBvZHBvbGVkbmUKKyAgb2Rwb2xlZG5lL00KKy0tLSA3Mjk1Miw3Mjk1MyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA3MzEyMSw3MzEyMyAqKioqCisgIG9kcHJhuW92YXQvQVROCistIG9kcHJhdmEKKyAgb2RwcmF2YS9aUQorLS0tIDczMDU0LDczMDU1IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDc2MTQ1LDc2MTQ3ICoqKioKKyAgb29zZulyYS9aUQorLSBvcAorICBvcOHoZW7tL1NOCistLS0gNzYwNzcsNzYwNzggLS0tLQorKioqKioqKioqKioqKioqCisqKiogNzgwNDAsNzgwNDIgKioqKgorICBvc3T4aWhub3V0L0FUTgorLSBPc3T4aWhvbQorICBPc3T4aWhvbS9LCistLS0gNzc5NzEsNzc5NzIgLS0tLQorKioqKioqKioqKioqKioqCisqKiogODAxMTcsODAxMjEgKioqKgorICBwYW50aGVpc3RpY2v9L1lDUgorLSBwYW50b2ZlbAorICBwYW50b2ZlbC9RCistIHBhbnRvZmxlCisgIHBhbnRvZmxlbWkKKy0tLSA4MDA0Nyw4MDA0OSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA4MDI1OCw4MDI2MCAqKioqCisgIHBhcgorLSBw4XIKKyAgcGFyYWFtZmlib2xpdC9ICistLS0gODAxODYsODAxODcgLS0tLQorKioqKioqKioqKioqKioqCisqKiogODE0MTQsODE0MTYgKioqKgorICBQRQorLSBwZWMKKyAgcGVjYfgvVQorLS0tIDgxMzQxLDgxMzQyIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDgyNzIwLDgyNzIyICoqKioKKyAgcGlhbmlzdPl2L1kKKy0gcGlhbm8KKyAgcGnhbm8vTVEKKy0tLSA4MjY0Niw4MjY0NyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA4MzMyMSw4MzMyMyAqKioqCisgIHBpenplcmllL1oKKy0gcGl6emljYXRvCisgIHBpenppY2F0by9NUQorLS0tIDgzMjQ2LDgzMjQ3IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDgzNzMxLDgzNzMzICoqKioKKyAgcGxlYmlzY2l0L0gKKy0gcGxlYnMKKyAgcGxlYnNlCistLS0gODM2NTUsODM2NTYgLS0tLQorKioqKioqKioqKioqKioqCisqKiogODM4MzMsODM4MzUgKioqKgorICBQbGVza290+XYvWQorLSBwbGVza3kKKyAgcGxlc2t5L0gKKy0tLSA4Mzc1Niw4Mzc1NyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA4NTg2MSw4NTg2MyAqKioqCisgIHBvZPhhZOxu7S9TTgorLSBwb2T4YWTsbv0KKyAgcG9k+GFk7G79L1lLUk4KKy0tLSA4NTc4Myw4NTc4NCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA4OTA3Nyw4OTA3OSAqKioqCisgIHBvcPjhdmF0L0pOCistIHBvcPhlZO0KKyAgcG9w+GVk7S9TCistLS0gODg5OTgsODg5OTkgLS0tLQorKioqKioqKioqKioqKioqCisqKiogOTEzNTgsOTEzNjAgKioqKgorICBwb3phYu1qZXQvSlROCistIHBvemFk7QorICBwb3phZO0vUworLS0tIDkxMjc4LDkxMjc5IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDkxNzgzLDkxNzg1ICoqKioKKyAgcHLhY2VzY2hvcG79L1lLUgorLSBwcmFj7QorICBwcuFjaQorLS0tIDkxNzAyLDkxNzAzIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDkyMTc2LDkyMTc4ICoqKioKKyAgcHJhduxr/S9ZS1IKKy0gcHLhdmVtCisgIHBy4XZlbS9OCistLS0gOTIwOTQsOTIwOTUgLS0tLQorKioqKioqKioqKioqKioqCisqKiogOTUzNzcsOTUzNzkgKioqKgorICBwcm9zcOF2YXQvSlROCistIHByb3Nw7GNoCisgIHByb3Nw7GNo4W7tL1NOCistLS0gOTUyOTQsOTUyOTUgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTA1MTk1LDEwNTE5NyAqKioqCisgIHD5bGRlbm7tL1lSCistIHD5bGRuZQorICBw+WxkbmVjaAorLS0tIDEwNTExMSwxMDUxMTIgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTA1MjE2LDEwNTIxOCAqKioqCisgIHD5bGRydWj9L1kKKy0gcPlsZQorICBwdWxlYy9VCistLS0gMTA1MTMxLDEwNTEzMiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMDYyNTcsMTA2MjU5ICoqKioKKyAgcuFtY292/S9ZUgorLSBy4W3sCisgIHLhbWVjL1MKKy0tLSAxMDYxNzEsMTA2MTcyIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDEwOTMwNCwxMDkzMDYgKioqKgorICByb3pk7Gx1au1j7S9ZTgorLSByb3pk7WwKKyAgcm96ZO1sZW7tL1NOCistLS0gMTA5MjE3LDEwOTIxOCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMTMwMjksMTEzMDMxICoqKioKKyAgUvpyL0gKKy0gUnVzCisgIHJ1c2Fs6O0vWQorLS0tIDExMjk0MSwxMTI5NDIgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTEzMTI0LDExMzEyNiAqKioqCisgIHJ1uXRpbmEvWlEKKy0gUvp0CisgIFL5dGEvUFYKKy0tLSAxMTMwMzUsMTEzMDM2IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDExNTEwNCwxMTUxMDYgKioqKgorICBzY2V6b3ZhdC9BVE4KKy0gc2NpZW5jZQorICBzY2llbmNlL1oKKy0tLSAxMTUwMTQsMTE1MDE1IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDExNTcyMywxMTU3MjUgKioqKgorICBzZWRtZXLoZS9LCistIHNlZG1lcm8KKyAgc2VkbWVyby9NUQorLS0tIDExNTYzMiwxMTU2MzMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTE2MjQ5LDExNjI1MSAqKioqCisgIFPpbfl2L1kKKy0gc2VuCisgIHNlbmH4L1BJCistLS0gMTE2MTU3LDExNjE1OCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMTY5NjIsMTE2OTY0ICoqKioKKyAgc2W5dmluZGxvdmF0L0FUTgorLSBzZXQKKyAgc2V0YmEvWlEKKy0tLSAxMTY4NjksMTE2ODcwIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDExNzc4NiwxMTc3ODggKioqKgorICBTaWv5di9ZCistIHNpbAorICBzaWzhY2v9L1lLUk4KKy0tLSAxMTc2OTIsMTE3NjkzIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDEyMTYzNSwxMjE2MzcgKioqKgorICBzcGF0bv0vWUtSCistIHNwYXRyYQorICBzcGF0cmEvWlEKKy0tLSAxMjE1NDAsMTIxNTQxIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDEyMTg4NywxMjE4ODkgKioqKgorICBzcO25CistIHNw7bllCisgIHNw7bllL0UKKy0tLSAxMjE3OTEsMTIxNzkyIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDEyMjMyMywxMjIzMjUgKioqKgorICBzcG9sdXBy4WNlL04KKy0gc3BvbHVwcuFjaQorICBzcG9sdXByYWPtY2gvTgorLS0tIDEyMjIyNiwxMjIyMjcgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTIyODkwLDEyMjg5MiAqKioqCisgIHNyb3ZuYW7sarntL1lSVworLSBzcm92buFu7QorICBzcm92buFu7S9TTgorLS0tIDEyMjc5MiwxMjI3OTMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTI5OTg3LDEyOTk4OSAqKioqCisgILl1bnQvSAorLSC5dXAKKyAguXVw4WNr/S9ZS1IKKy0tLSAxMjk4ODgsMTI5ODg5IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDEzMDQyNywxMzA0MjkgKioqKgorICB0YWtvdm91dG8KKy0gdGFrb3b9CisgIHRha292/WNodG8KKy0tLSAxMzAzMjcsMTMwMzI4IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDEzMTE5MCwxMzExOTIgKioqKgorICB0ZW2+c2v9L1kKKy0gdGVuCisgIHRlbmF0YS9NUQorLS0tIDEzMTA4OSwxMzEwOTAgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTMxOTU4LDEzMTk2MCAqKioqCisgIHRpY2j9L1lLUk8KKy0gdGlrCisgIHRpa2Fq7WPtL1lOCistLS0gMTMxODU2LDEzMTg1NyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxMzI1NDEsMTMyNTQzICoqKioKKyAgVG9tYXNjaPl2L1kKKy0gVG9t4bkKKyAgVG9t4bllay9QVgorLS0tIDEzMjQzOCwxMzI0MzkgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTMzODkwLDEzMzg5MiAqKioqCisgIFRydWJza+EvWQorLSB0cnVjCisgIHRydWMvSAorLS0tIDEzMzc4NiwxMzM3ODcgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTM0MDU3LDEzNDA1OSAqKioqCisgIHT44XN0L0lOCistIHT4ZWJhCisgIHT4ZWJhL04KKy0tLSAxMzM5NTIsMTMzOTUzIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDEzNTAyNCwxMzUwMjYgKioqKgorICB0dnJ6L1oKKy0gdHb5agorICB0dvlqL1kKKy0tLSAxMzQ5MTgsMTM0OTE5IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDEzNTUzMiwxMzU1MzQgKioqKgorICD66GVzb3b9L1lSCistIProZXQKKyAg+uhldG5pY2v9L1lSTgorLS0tIDEzNTQyNSwxMzU0MjYgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTM5NjIwLDEzOTYyMiAqKioqCisgIHV6YW1rbnV07S9TTgorLSB1emFta251dP0KKyAgdXphbWtudXT9L1lLUk4KKy0tLSAxMzk1MTIsMTM5NTEzIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE0MTYyNCwxNDE2MjYgKioqKgorICBWZXJkb2z5di9ZCistIHbscmVuCisgIHbscmVuL04KKy0tLSAxNDE1MTUsMTQxNTE2IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE0MTY1MSwxNDE2NTMgKioqKgorICB27HIvTgorLSB27HJuYQorICB27HJuYS9OCistLS0gMTQxNTQxLDE0MTU0MiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNDE2NjMsMTQxNjY1ICoqKioKKyAgVmVybmUvWQorLSB27HJuaQorICB27HJuaS9OCistLS0gMTQxNTUyLDE0MTU1MyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNDE2NjcsMTQxNjY5ICoqKioKKyAgdmVybmlz4b4vWgorLSB27HJubworICB27HJuby9OCistLS0gMTQxNTU1LDE0MTU1NiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNDE2NzEsMTQxNjc2ICoqKioKKyAgdmVybm92a2EvWlEKKy0gduxybnUKKyAgduxybnUvTgorICBWZXJu+XYvWQorLSB27HJueQorICB27HJueS9OCistLS0gMTQxNTU4LDE0MTU2MSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNDE5MjQsMTQxOTI2ICoqKioKKyAgdmV0a251dO0vU04KKy0gdmV0a251dP0KKyAgdmV0a251dP0vWUtSTgorLS0tIDE0MTgwOSwxNDE4MTAgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTQyMTE3LDE0MjExOSAqKioqCisgIHZobG91YmVu/S9ZS1JOCistIHZobG91Yml0CisgIHZobG91Yml0L0FUTgorLS0tIDE0MjAwMSwxNDIwMDIgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTQ0MTA0LDE0NDEwNiAqKioqCisgIFZvbGThbvl2L1kKKy0gdm9sZQorICB2b2xlYm7tL1lSCistLS0gMTQzOTg3LDE0Mzk4OCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNDQ0MDksMTQ0NDExICoqKioKKyAgVm90/XBr+XYvWQorLSB2b3VzCisgIHZvdXPh6C9VCistLS0gMTQ0MjkxLDE0NDI5MiAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNDQ5NTIsMTQ0OTU0ICoqKioKKyAgdnJ0dWxvdv0vWVIKKy0gdnJ1YgorICB2cnViL0gKKy0tLSAxNDQ4MzMsMTQ0ODM0IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE0NDk3OSwxNDQ5ODEgKioqKgorICB2cv12YXb9L1lSCistIHZyegorICBWcnrh6GVrL1BWCistLS0gMTQ0ODU5LDE0NDg2MCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNTEzMzAsMTUxMzMyICoqKioKKyAgdnl0a251dO0vU04KKy0gdnl0a251dP0KKyAgdnl0a251dP0vWVJOCistLS0gMTUxMjA5LDE1MTIxMCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNTE5MjcsMTUxOTI5ICoqKioKKyAgdnl2cmhudXTtL1NOCistIHZ5dnJobnV0/QorICB2eXZyaG51dP0vWUtSTgorLS0tIDE1MTgwNSwxNTE4MDYgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTUyNDM1LDE1MjQzNyAqKioqCisgIHZ6ZOxs4XZhdC9KVE4KKy0gdnpkb3IKKyAgdnpkb3IvSAorLS0tIDE1MjMxMiwxNTIzMTMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTU2MDQwLDE1NjA0MiAqKioqCisgIHphbWtudXTtL1NOCistIHphbWtudXT9CisgIHphbWtudXT9L1lLUk4KKy0tLSAxNTU5MTYsMTU1OTE3IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE1Nzc5NSwxNTc3OTcgKioqKgorICB6YXN0b25lanRlL04KKy0gemFzdG91cGVu7QorICB6YXN0b3VwZW7tL1NOCistLS0gMTU3NjcwLDE1NzY3MSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNjAzNjQsMTYwMzY2ICoqKioKKyAgemVi+O0vWQorLSB6ZWJ1CisgIHplYnUvQk4KKy0tLSAxNjAyMzgsMTYwMjM5IC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDE2NjQwOSwxNjY0MTEgKioqKgorICCubXXvCistIL5uZWMKKyAgvm5lYy9VCistLS0gMTY2MjgyLDE2NjI4MyAtLS0tCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2NzL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9jcy9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWFkNmQwCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9jcy9tYWluLmFhcApAQCAtMCwwICsxLDgxIEBACisjIEFhcCByZWNpcGUgZm9yIEN6ZWNoIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gY3NfQ1ouYWZmIGNzX0NaLmRpYworCithbGw6ICRTUEVMTERJUi9jcy5pc28tODg1OS0yLnNwbCAkU1BFTExESVIvY3MudXRmLTguc3BsIFwKKyAgICAgICAgJFNQRUxMRElSL2NzLmNwMTI1MC5zcGwgLi4vUkVBRE1FX2NzLnR4dAorCiskU1BFTExESVIvY3MuaXNvLTg4NTktMi5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWNzX0NaLklTTzg4NTktMiAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9jcyBjc19DWiIgLWMgcQorCiskU1BFTExESVIvY3MudXRmLTguc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1jc19DWi5VVEYtOCAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9jcyBjc19DWiIgLWMgcQorCiskU1BFTExESVIvY3MuY3AxMjUwLnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPWNwMTI1MCIgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9jcyBjc19DWiIgLWMgcQorCisuLi9SRUFETUVfY3MudHh0OiBSRUFETUVfY3NfQ1oudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gY3NfQ1ouemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCisjIFRoaXMgaXMgYSBiaXQgdHJpY2t5LCBzaW5jZSB0aGUgZmlsZSBuYW1lIGluY2x1ZGVzIHRoZSBkYXRlLgorY3NfQ1ouYWZmIGNzX0NaLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBjc19DWi56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgY3NfQ1ouemlwCisgICAgICAgIDpkZWxldGUgY3NfQ1ouemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2NzX0NaLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBjc19DWi5hZmYgY3NfQ1oub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnY3NfQ1oub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGNzX0NaLmRpYyBjc19DWi5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2NzX0NaLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGNzX0NaLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgY3NfQ1oub3JpZy5hZmYgY3NfQ1ouYWZmID5jc19DWi5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgY3NfQ1oub3JpZy5kaWMgY3NfQ1ouZGljID4+Y3NfQ1ouZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggY3NfQ1ouemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9jc19DWi56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2NzX0NaLm9yaWcuYWZmIGNzX0NaLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBjc19DWi5hZmYgLi4vY3NfQ1oubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vY3NfQ1oub3JpZy5kaWMgY3NfQ1ouZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGNzX0NaLmRpYyAuLi9jc19DWi5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgY3NfQ1ouemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZGEvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2RhL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzZTM3MTYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2RhL21haW4uYWFwCkBAIC0wLDAgKzEsNzggQEAKKyMgQWFwIHJlY2lwZSBmb3IgRnJlbmNoIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gZGFfREsuYWZmIGRhX0RLLmRpYworCithbGw6ICRTUEVMTERJUi9kYS5sYXRpbjEuc3BsICRTUEVMTERJUi9kYS51dGYtOC5zcGwgLi4vUkVBRE1FX2RhLnR4dAorCiskU1BFTExESVIvZGEubGF0aW4xLnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9ZGFfREsuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2RhIGRhX0RLIiAtYyBxCisKKyRTUEVMTERJUi9kYS51dGYtOC5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWRhX0RLLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2RhIGRhX0RLIiAtYyBxCisKKy4uL1JFQURNRV9kYS50eHQgOiBSRUFETUUgQ29weXJpZ2h0CisgICAgICAgIDpjYXQgJHNvdXJjZSA+ISAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBkYV9ESy56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK2RhX0RLLmFmZiBkYV9ESy5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggZGFfREsuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGRhX0RLLnppcAorICAgICAgICA6ZGVsZXRlIGRhX0RLLnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdkYV9ESy5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgZGFfREsuYWZmIGRhX0RLLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2RhX0RLLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBkYV9ESy5kaWMgZGFfREsub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdkYV9ESy5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxkYV9ESy5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGRhX0RLLm9yaWcuYWZmIGRhX0RLLmFmZiA+ZGFfREsuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGRhX0RLLm9yaWcuZGljIGRhX0RLLmRpYyA+PmRhX0RLLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIGRhX0RLLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vZGFfREsuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9kYV9ESy5vcmlnLmFmZiBkYV9ESy5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgZGFfREsuYWZmIC4uL2RhX0RLLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2RhX0RLLm9yaWcuZGljIGRhX0RLLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBkYV9ESy5kaWMgLi4vZGFfREsubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGRhX0RLLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2RlL2RlXzE5LmRpZmYgYi9ydW50aW1lL3NwZWxsL2RlL2RlXzE5LmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTgwN2E4YgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvZGUvZGVfMTkuZGlmZgpAQCAtMCwwICsxLDI3IEBACisqKiogZGVfMTkub3JpZy5hZmYJTW9uIEF1ZyAxNSAyMjo0NTozNSAyMDA1CistLS0gZGVfMTkuYWZmCU1vbiBBdWcgMTUgMjI6NTQ6MTAgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMyw0ICoqKioKKy0tLSAzLDI0IC0tLS0KKyAgCisrIEZPTCAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgTE9XICDg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBVUFAgIMDBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQJJworKyAKKysgTUFQIDkKKysgTUFQIGHg4eLj5OUKKysgTUFQIGXo6errCisrIE1BUCBp7O3u7worKyBNQVAgb/Lz9PX2CisrIE1BUCB1+fr7/AorKyBNQVAgbvEKKysgTUFQIGPnCisrIE1BUCB5//0KKysgTUFQIHPfCisrIAorICAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZGUvZGVfMjAuZGlmZiBiL3J1bnRpbWUvc3BlbGwvZGUvZGVfMjAuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzJhZDVmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9kZS9kZV8yMC5kaWZmCkBAIC0wLDAgKzEsMjggQEAKKyoqKiBkZV8yMC5vcmlnLmFmZglNb24gQXVnIDE1IDIyOjQ1OjQxIDIwMDUKKy0tLSBkZV8yMC5hZmYJTW9uIEF1ZyAxNSAyMjo1NDoxNiAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyLDMgKioqKgorLS0tIDIsMjQgLS0tLQorICBUUlkgZXNpYW5ydG9sY2R1Z21waGJ5ZnZrd+T89t/h6erg4vFFU0lBTlJUT0xDRFVHTVBIQllGVktXxNzWCisrIAorKyBGT0wgIODh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIExPVyAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgVVBQICDAwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNSURXT1JECScKKysgCisrIE1BUCA5CisrIE1BUCBh4OHi4+TlCisrIE1BUCBl6Onq6worKyBNQVAgaezt7u8KKysgTUFQIG/y8/T19gorKyBNQVAgdfn6+/wKKysgTUFQIG7xCisrIE1BUCBj5worKyBNQVAgef/9CisrIE1BUCBz3worKyAKKyAgIwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9kZS9kZV9BVC5kaWZmIGIvcnVudGltZS9zcGVsbC9kZS9kZV9BVC5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxM2U0ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2RlL2RlX0FULmRpZmYKQEAgLTAsMCArMSw0NCBAQAorKioqIGRlX0FULm9yaWcuYWZmCU1vbiBBdWcgMTUgMjI6NTk6NDMgMjAwNQorLS0tIGRlX0FULmFmZglNb24gQXVnIDE1IDIzOjAwOjI1IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDMsNCAqKioqCistLS0gMywyNCAtLS0tCisgIAorKyBGT0wgIODh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIExPVyAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgVVBQICDAwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNSURXT1JECScKKysgCisrIE1BUCA5CisrIE1BUCBh4OHi4+TlCisrIE1BUCBl6Onq6worKyBNQVAgaezt7u8KKysgTUFQIG/y8/T19gorKyBNQVAgdfn6+/wKKysgTUFQIG7xCisrIE1BUCBj5worKyBNQVAgef/9CisrIE1BUCBz3worKyAKKyAgCisqKiogZGVfQVQub3JpZy5kaWMJTW9uIEF1ZyAxNSAyMjo1OTo0MyAyMDA1CistLS0gZGVfQVQuZGljCU1vbiBBdWcgMTUgMjM6MDM6MTkgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMTgsMjAgKioqKgorICBGbGVpc2NoYuRua2UvTgorLSBGbGVpc2NoYmFuaworICBGbGVpc2NoaGF1ZXIvTlMKKy0tLSAxOCwxOSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNTEsMTUzICoqKioKKyAgenVsaWViCishIDc3ODU3CisgIMRidGUvTgorLS0tIDE1MCwxNTIgLS0tLQorICB6dWxpZWIKKyEgCisgIMRidGUvTgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9kZS9kZV9DSC5kaWZmIGIvcnVudGltZS9zcGVsbC9kZS9kZV9DSC5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwN2Y4NzQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2RlL2RlX0NILmRpZmYKQEAgLTAsMCArMSwyNyBAQAorKioqIGRlX0NILm9yaWcuYWZmCU1vbiBBdWcgMTUgMjI6NDU6NDMgMjAwNQorLS0tIGRlX0NILmFmZglNb24gQXVnIDE1IDIyOjU0OjIxIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDMsNCAqKioqCistLS0gMywyNCAtLS0tCisgIAorKyBGT0wgIODh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIExPVyAg4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgVVBQICDAwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNSURXT1JECScKKysgCisrIE1BUCA5CisrIE1BUCBh4OHi4+TlCisrIE1BUCBl6Onq6worKyBNQVAgaezt7u8KKysgTUFQIG/y8/T19gorKyBNQVAgdfn6+/wKKysgTUFQIG7xCisrIE1BUCBj5worKyBNQVAgef/9CisrIE1BUCBz3worKyAKKyAgCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2RlL2RlX0RFLmRpZmYgYi9ydW50aW1lL3NwZWxsL2RlL2RlX0RFLmRpZmYKaW5kZXggMGQzOTVlOC4uZmUzM2I0MSAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9kZS9kZV9ERS5kaWZmCisrKyBiL3J1bnRpbWUvc3BlbGwvZGUvZGVfREUuZGlmZgpAQCAtMSw1ICsxLDUgQEAKLSoqKiBkZV9ERS5vcmlnLmFmZglGcmkgRmViIDI1IDEyOjUwOjEwIDIwMDUKLS0tLSBkZV9ERS5hZmYJU3VuIEp1bCAzMSAyMjoxNTo0OSAyMDA1CisqKiogZGVfREUub3JpZy5hZmYJTW9uIEF1ZyAxNSAyMjo0NTozMyAyMDA1CistLS0gZGVfREUuYWZmCU1vbiBBdWcgMTUgMjI6NDU6MzMgMjAwNQogKioqKioqKioqKioqKioqCiAqKiogMiwzICoqKioKIC0tLSAyLDI0IC0tLS0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZGUvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2RlL21haW4uYWFwCmluZGV4IDgwYmZjZWEuLmRmNjA4ZTEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZGUvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9kZS9tYWluLmFhcApAQCAtMSw0ICsxLDEzIEBACiAjIEFhcCByZWNpcGUgZm9yIEdlcm1hbiBWaW0gc3BlbGwgZmlsZXMuCisjCisjIFNpbmNlIHRoZXJlIGlzIGEgYmlnIGRpc2N1c3Npb24gYWJvdXQgd2hldGhlciB0byB1c2UgdGhlIG9sZCBvciB0aGUgbmV3CisjIHNwZWxsaW5nIHJ1bGVzLCBib3RoIGhhdmUgYmVlbiBpbmNsdWRlZC4KKyMgICAgImRlIjogYWxsIHBvc3NpYmxlIHdvcmRzIGFsbG93ZWQKKyMgImRlX2RlIjogb2xkIGFuZCBuZXcgR2VybWFuIHNwZWxsaW5nCisjICJkZV8xOSI6IG9sZCBHZXJtYW4gc3BlbGxpbmcKKyMgImRlXzIwIjogbmV3IEdlcm1hbiBzcGVsbGluZworIyAiZGVfQVQiOiBBdXN0cmlhbiBzcGVsbGluZworIyAiZGVfQ0giOiBTd2lzcyBzcGVsbGluZwogCiAjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KIEBpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgpAQCAtNiw2NiArMTUsMTcwIEBACiBAZWxzZToKICAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCiAKLVNQRUxMRElSID0gLi4KLUZJTEVTICAgID0gZGVfREUuYWZmIGRlX0RFLmRpYwotWklQRklMRSAgPSBkZV9ERV9jb21iLnppcAorUkVHSU9OUyA9IERFIDE5IDIwIEFUIENICitERV9SRUdJT05TID0gZGVfJCpSRUdJT05TCiAKLWFsbDogJChTUEVMTERJUikvZGUubGF0aW4xLnNwbCAkKFNQRUxMRElSKS9kZS51dGYtOC5zcGwgLi4vUkVBRE1FX2RlLnR4dAorU1BFTExESVIgICA9IC4uCitGSUxFUyAgICAgID0gZGVfJCooUkVHSU9OUykuYWZmIGRlXyQqKFJFR0lPTlMpLmRpYwogCi0kKFNQRUxMRElSKS9kZS5sYXRpbjEuc3BsIDogJChWSU0pICQoRklMRVMpCitaSVBGSUxFX0RFID0gZGVfREVfY29tYi56aXAKK1pJUEZJTEVfMTkgPSBkZV9ERS56aXAKK1pJUEZJTEVfMjAgPSBkZV9ERV9uZXUuemlwCitaSVBGSUxFX0FUID0gZGVfQVQuemlwCitaSVBGSUxFX0NIID0gZGVfQ0guemlwCitaSVBGSUxFUyAgID0gJFpJUEZJTEVfREUgJFpJUEZJTEVfMTkgJFpJUEZJTEVfMjAgJFpJUEZJTEVfQVQgJFpJUEZJTEVfQ0gKKworUkVBRE1FUyAgICA9IFJFQURNRV9kZV8kKihSRUdJT05TKS50eHQKKworYWxsOiAkU1BFTExESVIvZGUubGF0aW4xLnNwbCAkU1BFTExESVIvZGUudXRmLTguc3BsIC4uL1JFQURNRV9kZS50eHQKKworJFNQRUxMRElSL2RlLmxhdGluMS5zcGwgOiAkVklNICRGSUxFUwogICAgICAgICA6c3lzIGVudiBMQU5HPWRlX0RFLklTTzg4NTktMQotCQkkKFZJTSkgLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJChTUEVMTERJUikvZGUgZGVfREUiIC1jIHEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZGUgJERFX1JFR0lPTlMiIC1jIHEKIAotJChTUEVMTERJUikvZGUudXRmLTguc3BsIDogJChWSU0pICQoRklMRVMpCiskU1BFTExESVIvZGUudXRmLTguc3BsIDogJFZJTSAkRklMRVMKICAgICAgICAgOnN5cyBlbnYgTEFORz1kZV9ERS5VVEYtOAotCQkkKFZJTSkgLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJChTUEVMTERJUikvZGUgZGVfREUiIC1jIHEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZGUgJERFX1JFR0lPTlMiIC1jIHEKIAotLi4vUkVBRE1FX2RlLnR4dDogUkVBRE1FX2RlX0RFX2NvbWIudHh0Ci0gICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorLi4vUkVBRE1FX2RlLnR4dDogJFJFQURNRVMKKyAgICAgICAgOnByaW50IGRlX0RFIChjb21iaW5lZCkgPiEgJHRhcmdldAorICAgICAgICA6Y2F0IFJFQURNRV9kZV9ERS50eHQgICA+PiAkdGFyZ2V0CisgICAgICAgIDpwcmludCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gPj4kdGFyZ2V0CisgICAgICAgIDpwcmludCBkZV8xOSAob2xkKSAgICAgID4+ICR0YXJnZXQKKyAgICAgICAgOmNhdCBSRUFETUVfZGVfMTkudHh0ICAgPj4gJHRhcmdldAorICAgICAgICA6cHJpbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ID4+JHRhcmdldAorICAgICAgICA6cHJpbnQgZGVfMjAgKG5ldykgICAgICA+PiAkdGFyZ2V0CisgICAgICAgIDpjYXQgUkVBRE1FX2RlXzIwLnR4dCAgID4+ICR0YXJnZXQKKyAgICAgICAgOnByaW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSA+PiR0YXJnZXQKKyAgICAgICAgOnByaW50IGRlX0FUIChBdXN0cmlhKSAgPj4gJHRhcmdldAorICAgICAgICA6Y2F0IFJFQURNRV9kZV9BVC50eHQgICA+PiAkdGFyZ2V0CisgICAgICAgIDpwcmludCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gPj4kdGFyZ2V0CisgICAgICAgIDpwcmludCBkZV9DSCAoU3dpc3MpICAgID4+ICR0YXJnZXQKKyAgICAgICAgOmNhdCBSRUFETUVfZGVfQ0gudHh0ICAgPj4gJHRhcmdldAogCiAjCiAjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgogIwogT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcwotOmF0dHIge2ZldGNoID0gJChPT0RJUikvJWZpbGUlfSAkKFpJUEZJTEUpCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSAkWklQRklMRVMKIAogIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgogIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KIGRlX0RFLmFmZiBkZV9ERS5kaWM6IHtidWlsZGNoZWNrPX0KICAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAotICAgICAgICA6ZmV0Y2ggJChaSVBGSUxFKQotICAgICAgICA6c3lzICQoVU5aSVApICQoWklQRklMRSkKLSAgICAgICAgOmRlbGV0ZSAkKFpJUEZJTEUpCisgICAgICAgIDpmZXRjaCAkWklQRklMRV9ERQorICAgICAgICA6c3lzICRVTlpJUCAkWklQRklMRV9ERQorICAgICAgICA6ZGVsZXRlICRaSVBGSUxFX0RFCiAgICAgICAgIDptb3ZlIGRlX0RFX2NvbWIuYWZmIGRlX0RFLmFmZgogICAgICAgICA6bW92ZSBkZV9ERV9jb21iLmRpYyBkZV9ERS5kaWMKKyAgICAgICAgOm1vdmUgUkVBRE1FX2RlX0RFX2NvbWIudHh0IFJFQURNRV9kZV9ERS50eHQKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZGVfREUub3JpZy5hZmYnKToKLSAgICAgICAgICAgICAgICA6Y29weSBkZV9ERS5hZmYgZGVfREUub3JpZy5hZmYKKyAgICAgICAgICAgIDpjb3B5IGRlX0RFLmFmZiBkZV9ERS5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdkZV9ERS5vcmlnLmRpYycpOgotICAgICAgICAgICAgICAgIDpjb3B5IGRlX0RFLmRpYyBkZV9ERS5vcmlnLmRpYworICAgICAgICAgICAgOmNvcHkgZGVfREUuZGljIGRlX0RFLm9yaWcuZGljCiAgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnZGVfREUuZGlmZicpOgogICAgICAgICAgICAgOnN5cyBwYXRjaCA8ZGVfREUuZGlmZgogCitkZV8xOS5hZmYgZGVfMTkuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoICRaSVBGSUxFXzE5CisgICAgICAgICMgTW92ZSB0aGUgb3RoZXIgZmlsZXMgb3V0IG9mIHRoZSB3YXkuCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygiZGVfREUuYWZmIik6CisgICAgICAgICAgICA6bW92ZSBkZV9ERS5hZmYgZGVfREVfY29tYi5hZmYKKyAgICAgICAgICAgIDptb3ZlIGRlX0RFLmRpYyBkZV9ERV9jb21iLmRpYworICAgICAgICAgICAgOm1vdmUgUkVBRE1FX2RlX0RFLnR4dCBSRUFETUVfZGVfREVfY29tYi50eHQKKworICAgICAgICA6c3lzICRVTlpJUCAkWklQRklMRV8xOQorICAgICAgICA6ZGVsZXRlICRaSVBGSUxFXzE5CisgICAgICAgIDpkZWxldGUge2Z9IGRlX0FULmRpYworICAgICAgICA6bW92ZSBkZV9ERS5hZmYgZGVfMTkuYWZmCisgICAgICAgIDptb3ZlIGRlX0RFLmRpYyBkZV8xOS5kaWMKKyAgICAgICAgOm1vdmUgUkVBRE1FX2RlX0RFLnR4dCBSRUFETUVfZGVfMTkudHh0CisKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCJkZV9ERV9jb21iLmFmZiIpOgorICAgICAgICAgICAgOm1vdmUgZGVfREVfY29tYi5hZmYgZGVfREUuYWZmCisgICAgICAgICAgICA6bW92ZSBkZV9ERV9jb21iLmRpYyBkZV9ERS5kaWMKKyAgICAgICAgICAgIDptb3ZlIFJFQURNRV9kZV9ERV9jb21iLnR4dCBSRUFETUVfZGVfREUudHh0CisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2RlXzE5Lm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBkZV8xOS5hZmYgZGVfMTkub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZGVfMTkub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGRlXzE5LmRpYyBkZV8xOS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2RlXzE5LmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGRlXzE5LmRpZmYKKworZGVfMjAuYWZmIGRlXzIwLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCAkWklQRklMRV8yMAorICAgICAgICA6c3lzICRVTlpJUCAkWklQRklMRV8yMAorICAgICAgICA6ZGVsZXRlICRaSVBGSUxFXzIwCisgICAgICAgIDptb3ZlIGRlX0RFX25ldS5hZmYgZGVfMjAuYWZmCisgICAgICAgIDptb3ZlIGRlX0RFX25ldS5kaWMgZGVfMjAuZGljCisgICAgICAgIDptb3ZlIFJFQURNRV9kZV9ERV9uZXUudHh0IFJFQURNRV9kZV8yMC50eHQKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZGVfMjAub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGRlXzIwLmFmZiBkZV8yMC5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdkZV8yMC5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgZGVfMjAuZGljIGRlXzIwLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnZGVfMjAuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8ZGVfMjAuZGlmZgorCisjIEl0IGFwcGVhcnMgZGVfQVQuZGljIGlzIG9ubHkgYW4gYWRkaXRpb25hbCBmaWxlIGZvciBhbm90aGVyIHdvcmQgbGlzdC4gIFdlCisjIGd1ZXNzIGl0J3MgdGhlIG9sZCBzcGVsbGluZyBvbmUgYW5kIGNvbmNhdGVuYXRlIHRoZW0uICBDb21wbGljYXRpb24gaXMgdGhhdAorIyBkZV9BVC5kaWMgaXMgbWlzc2luZyBhIG5ld2xpbmUgYXQgdGhlIGVuZC4KK2RlX0FULmFmZiBkZV9BVC5kaWM6IHtidWlsZGNoZWNrPX0gZGVfMTkuZGljCisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoICRaSVBGSUxFX0FUCisgICAgICAgIDpzeXMgJFVOWklQICRaSVBGSUxFX0FUCisgICAgICAgIDpkZWxldGUgJFpJUEZJTEVfQVQKKyAgICAgICAgOnByaW50ID4+ZGVfQVQuZGljCisgICAgICAgIDpjYXQgZGVfMTkuZGljID4+ZGVfQVQuZGljCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2RlX0FULm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBkZV9BVC5hZmYgZGVfQVQub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZGVfQVQub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGRlX0FULmRpYyBkZV9BVC5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2RlX0FULmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGRlX0FULmRpZmYKKworZGVfQ0guYWZmIGRlX0NILmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCAkWklQRklMRV9DSAorICAgICAgICA6c3lzICRVTlpJUCAkWklQRklMRV9DSAorICAgICAgICA6ZGVsZXRlICRaSVBGSUxFX0NICisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2RlX0NILm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBkZV9DSC5hZmYgZGVfQ0gub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZGVfQ0gub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGRlX0NILmRpYyBkZV9DSC5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2RlX0NILmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGRlX0NILmRpZmYKKwogCiAjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CiAjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KLQogZGlmZjoKICAgICAgICAgOmFzc2VydHBrZyBkaWZmCiAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZGVfREUub3JpZy5hZmYgZGVfREUuYWZmID5kZV9ERS5kaWZmCiAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZGVfREUub3JpZy5kaWMgZGVfREUuZGljID4+ZGVfREUuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGRlXzE5Lm9yaWcuYWZmIGRlXzE5LmFmZiA+ZGVfMTkuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGRlXzE5Lm9yaWcuZGljIGRlXzE5LmRpYyA+PmRlXzE5LmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBkZV8yMC5vcmlnLmFmZiBkZV8yMC5hZmYgPmRlXzIwLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBkZV8yMC5vcmlnLmRpYyBkZV8yMC5kaWMgPj5kZV8yMC5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZGVfQVQub3JpZy5hZmYgZGVfQVQuYWZmID5kZV9BVC5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZGVfQVQub3JpZy5kaWMgZGVfQVQuZGljID4+ZGVfQVQuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGRlX0NILm9yaWcuYWZmIGRlX0NILmFmZiA+ZGVfQ0guZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGRlX0NILm9yaWcuZGljIGRlX0NILmRpYyA+PmRlX0NILmRpZmYKIAogCiAjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQogIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCiAKIGNoZWNrOgorICAgICAgICA6cHJpbnQgVE9ETyEhISEKICAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCi0gICAgICAgIDpmZXRjaCAkKFpJUEZJTEUpCisgICAgICAgIDpmZXRjaCAkWklQRklMRV9ERQogICAgICAgICA6bWtkaXIgdG1wCiAgICAgICAgIDpjZCB0bXAKICAgICAgICAgQHRyeToKICAgICAgICAgICAgIEBpbXBvcnQgc3RhdAotICAgICAgICAgICAgOnN5cyAkKFVOWklQKSAuLi8kKFpJUEZJTEUpCisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi8kWklQRklMRV9ERQogICAgICAgICAgICAgOm1vdmUgZGVfREVfY29tYi5hZmYgZGVfREUuYWZmCiAgICAgICAgICAgICA6bW92ZSBkZV9ERV9jb21iLmRpYyBkZV9ERS5kaWMKICAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2RlX0RFLm9yaWcuYWZmIGRlX0RFLmFmZiA+ZApAQCAtNzcsNyArMTkwLDcgQEAKICAgICAgICAgQGZpbmFsbHk6CiAgICAgICAgICAgICA6Y2QgLi4KICAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAotICAgICAgICAgICAgOmRlbGV0ZSAkKFpJUEZJTEUpCisgICAgICAgICAgICA6ZGVsZXRlICRaSVBGSUxFX0RFCiAKIAogIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZW4uYXNjaWkuc3BsIGIvcnVudGltZS9zcGVsbC9lbi5hc2NpaS5zcGwKaW5kZXggNzNjNTljNy4uYzc3ZWY5YSAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9lbi5hc2NpaS5zcGwKKysrIGIvcnVudGltZS9zcGVsbC9lbi5hc2NpaS5zcGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9lbi5sYXRpbjEuc3BsIGIvcnVudGltZS9zcGVsbC9lbi5sYXRpbjEuc3BsCmluZGV4IGVkNjQ1YjguLjg1MWY3MTQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZW4ubGF0aW4xLnNwbAorKysgYi9ydW50aW1lL3NwZWxsL2VuLmxhdGluMS5zcGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9lbi51dGYtOC5zcGwgYi9ydW50aW1lL3NwZWxsL2VuLnV0Zi04LnNwbAppbmRleCBiYjJiZGI1Li5kNmI3ODM2IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2VuLnV0Zi04LnNwbAorKysgYi9ydW50aW1lL3NwZWxsL2VuLnV0Zi04LnNwbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2VuL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9lbi9tYWluLmFhcAppbmRleCBkNDY2ODMwLi4zN2E5ZWQxIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2VuL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvZW4vbWFpbi5hYXAKQEAgLTEzLDIxICsxMywyMSBAQAogICAgICAgICAgICBlbl9HQi5hZmYgZW5fR0IuZGljCiAgICAgICAgICAgIGVuX05aLmFmZiBlbl9OWi5kaWMKIAotYWxsOiAkKFNQRUxMRElSKS9lbi5sYXRpbjEuc3BsICQoU1BFTExESVIpL2VuLnV0Zi04LnNwbCBcCi0gICAgICAgICQoU1BFTExESVIpL2VuLmFzY2lpLnNwbCAuLi9SRUFETUVfZW4udHh0CithbGw6ICRTUEVMTERJUi9lbi5sYXRpbjEuc3BsICRTUEVMTERJUi9lbi51dGYtOC5zcGwgXAorICAgICAgICAkU1BFTExESVIvZW4uYXNjaWkuc3BsIC4uL1JFQURNRV9lbi50eHQKIAotJChTUEVMTERJUikvZW4ubGF0aW4xLnNwbCA6ICQoVklNKSAkKEZJTEVTKQorJFNQRUxMRElSL2VuLmxhdGluMS5zcGwgOiAkVklNICRGSUxFUwogICAgICAgICA6c3lzIGVudiBMQU5HPWVuX1VTLklTTzg4NTktMQotCQkkKFZJTSkgLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJChTUEVMTERJUikvZW4KKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZW4KICAgICAgICAgICAgICAgICAgICAgICAgIGVuX1VTIGVuX0FVIGVuX0NBIGVuX0dCIGVuX05aIiAtYyBxCiAKLSQoU1BFTExESVIpL2VuLnV0Zi04LnNwbCA6ICQoVklNKSAkKEZJTEVTKQorJFNQRUxMRElSL2VuLnV0Zi04LnNwbCA6ICRWSU0gJEZJTEVTCiAgICAgICAgIDpzeXMgZW52IExBTkc9ZW5fVVMuVVRGLTgKLQkJJChWSU0pIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL2VuCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2VuCiAgICAgICAgICAgICAgICAgICAgICAgICBlbl9VUyBlbl9BVSBlbl9DQSBlbl9HQiBlbl9OWiIgLWMgcQogCi0kKFNQRUxMRElSKS9lbi5hc2NpaS5zcGwgOiAkKFZJTSkgJChGSUxFUykKLSAgICAgICAgOnN5cyAkKFZJTSkgLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgLWFzY2lpICQoU1BFTExESVIpL2VuCiskU1BFTExESVIvZW4uYXNjaWkuc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhIC1hc2NpaSAkU1BFTExESVIvZW4KICAgICAgICAgICAgICAgICAgICAgICAgIGVuX1VTIGVuX0FVIGVuX0NBIGVuX0dCIGVuX05aIiAtYyBxCiAgCiAuLi9SRUFETUVfZW4udHh0OiBSRUFETUVfZW5fVVMudHh0IFJFQURNRV9lbl9BVS50eHQKQEAgLTUwLDcgKzUwLDcgQEAKICMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCiAjCiBPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCi06YXR0ciB7ZmV0Y2ggPSAkKE9PRElSKS8lZmlsZSV9IGVuX1VTLnppcCBlbl9DQS56aXAgZW5fTlouemlwCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBlbl9VUy56aXAgZW5fQ0EuemlwIGVuX05aLnppcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbl9HQi56aXAgZW5fQVUuemlwCiAKICMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KQEAgLTU4LDYxICs1OCw2MSBAQAogZW5fVVMuYWZmIGVuX1VTLmRpYzoge2J1aWxkY2hlY2s9fQogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCiAgICAgICAgIDpmZXRjaCBlbl9VUy56aXAKLSAgICAgICAgOnN5cyAkKFVOWklQKSBlbl9VUy56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgZW5fVVMuemlwCiAgICAgICAgIDpkZWxldGUgZW5fVVMuemlwCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2VuX1VTLm9yaWcuYWZmJyk6Ci0gICAgICAgICAgICAgICAgOmNvcHkgZW5fVVMuYWZmIGVuX1VTLm9yaWcuYWZmCisgICAgICAgICAgICA6Y29weSBlbl9VUy5hZmYgZW5fVVMub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZW5fVVMub3JpZy5kaWMnKToKLSAgICAgICAgICAgICAgICA6Y29weSBlbl9VUy5kaWMgZW5fVVMub3JpZy5kaWMKKyAgICAgICAgICAgIDpjb3B5IGVuX1VTLmRpYyBlbl9VUy5vcmlnLmRpYwogICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2VuX1VTLmRpZmYnKToKICAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGVuX1VTLmRpZmYKIAogZW5fQVUuYWZmIGVuX0FVLmRpYzoge2J1aWxkY2hlY2s9fQogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCiAgICAgICAgIDpmZXRjaCBlbl9BVS56aXAKLSAgICAgICAgOnN5cyAkKFVOWklQKSBlbl9BVS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgZW5fQVUuemlwCiAgICAgICAgIDpkZWxldGUgZW5fQVUuemlwCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2VuX0FVLm9yaWcuYWZmJyk6Ci0gICAgICAgICAgICAgICAgOmNvcHkgZW5fQVUuYWZmIGVuX0FVLm9yaWcuYWZmCisgICAgICAgICAgICA6Y29weSBlbl9BVS5hZmYgZW5fQVUub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZW5fQVUub3JpZy5kaWMnKToKLSAgICAgICAgICAgICAgICA6Y29weSBlbl9BVS5kaWMgZW5fQVUub3JpZy5kaWMKKyAgICAgICAgICAgIDpjb3B5IGVuX0FVLmRpYyBlbl9BVS5vcmlnLmRpYwogICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2VuX0FVLmRpZmYnKToKICAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGVuX0FVLmRpZmYKIAogZW5fQ0EuYWZmIGVuX0NBLmRpYzoge2J1aWxkY2hlY2s9fQogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCiAgICAgICAgIDpmZXRjaCBlbl9DQS56aXAKLSAgICAgICAgOnN5cyAkKFVOWklQKSBlbl9DQS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgZW5fQ0EuemlwCiAgICAgICAgIDpkZWxldGUgZW5fQ0EuemlwCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2VuX0NBLm9yaWcuYWZmJyk6Ci0gICAgICAgICAgICAgICAgOmNvcHkgZW5fQ0EuYWZmIGVuX0NBLm9yaWcuYWZmCisgICAgICAgICAgICA6Y29weSBlbl9DQS5hZmYgZW5fQ0Eub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZW5fQ0Eub3JpZy5kaWMnKToKLSAgICAgICAgICAgICAgICA6Y29weSBlbl9DQS5kaWMgZW5fQ0Eub3JpZy5kaWMKKyAgICAgICAgICAgIDpjb3B5IGVuX0NBLmRpYyBlbl9DQS5vcmlnLmRpYwogICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2VuX0NBLmRpZmYnKToKICAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGVuX0NBLmRpZmYKIAogZW5fR0IuYWZmIGVuX0dCLmRpYzoge2J1aWxkY2hlY2s9fQogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCiAgICAgICAgIDpmZXRjaCBlbl9HQi56aXAKLSAgICAgICAgOnN5cyAkKFVOWklQKSBlbl9HQi56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgZW5fR0IuemlwCiAgICAgICAgIDpkZWxldGUgZW5fR0IuemlwCiAgICAgICAgIDpkZWxldGUgZGljdGlvbmFyeS5sc3QuZXhhbXBsZQogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdlbl9HQi5vcmlnLmFmZicpOgotICAgICAgICAgICAgICAgIDpjb3B5IGVuX0dCLmFmZiBlbl9HQi5vcmlnLmFmZgorICAgICAgICAgICAgOmNvcHkgZW5fR0IuYWZmIGVuX0dCLm9yaWcuYWZmCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2VuX0dCLm9yaWcuZGljJyk6Ci0gICAgICAgICAgICAgICAgOmNvcHkgZW5fR0IuZGljIGVuX0dCLm9yaWcuZGljCisgICAgICAgICAgICA6Y29weSBlbl9HQi5kaWMgZW5fR0Iub3JpZy5kaWMKICAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdlbl9HQi5kaWZmJyk6CiAgICAgICAgICAgICA6c3lzIHBhdGNoIDxlbl9HQi5kaWZmCiAKIGVuX05aLmFmZiBlbl9OWi5kaWM6IHtidWlsZGNoZWNrPX0KICAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAogICAgICAgICA6ZmV0Y2ggZW5fTlouemlwCi0gICAgICAgIDpzeXMgJChVTlpJUCkgZW5fTlouemlwCisgICAgICAgIDpzeXMgJFVOWklQIGVuX05aLnppcAogICAgICAgICA6ZGVsZXRlIGVuX05aLnppcAogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdlbl9OWi5vcmlnLmFmZicpOgotICAgICAgICAgICAgICAgIDpjb3B5IGVuX05aLmFmZiBlbl9OWi5vcmlnLmFmZgorICAgICAgICAgICAgOmNvcHkgZW5fTlouYWZmIGVuX05aLm9yaWcuYWZmCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2VuX05aLm9yaWcuZGljJyk6Ci0gICAgICAgICAgICAgICAgOmNvcHkgZW5fTlouZGljIGVuX05aLm9yaWcuZGljCisgICAgICAgICAgICA6Y29weSBlbl9OWi5kaWMgZW5fTloub3JpZy5kaWMKICAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdlbl9OWi5kaWZmJyk6CiAgICAgICAgICAgICA6c3lzIHBhdGNoIDxlbl9OWi5kaWZmCiAKQEAgLTE0Niw3ICsxNDYsNyBAQAogICAgICAgICA6Y2QgdG1wCiAgICAgICAgIEB0cnk6CiAgICAgICAgICAgICBAaW1wb3J0IHN0YXQKLSAgICAgICAgICAgIDpzeXMgJChVTlpJUCkgLi4vZW5fVVMuemlwCisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9lbl9VUy56aXAKICAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2VuX1VTLm9yaWcuYWZmIGVuX1VTLmFmZiA+ZAogICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKICAgICAgICAgICAgICAgICA6Y29weSBlbl9VUy5hZmYgLi4vZW5fVVMubmV3LmFmZgpAQCAtMTY1LDcgKzE2NSw3IEBACiAgICAgICAgIDpjZCB0bXAKICAgICAgICAgQHRyeToKICAgICAgICAgICAgIEBpbXBvcnQgc3RhdAotICAgICAgICAgICAgOnN5cyAkKFVOWklQKSAuLi9lbl9BVS56aXAKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2VuX0FVLnppcAogICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vZW5fQVUub3JpZy5hZmYgZW5fQVUuYWZmID5kCiAgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgogICAgICAgICAgICAgICAgIDpjb3B5IGVuX0FVLmFmZiAuLi9lbl9BVS5uZXcuYWZmCkBAIC0xODQsNyArMTg0LDcgQEAKICAgICAgICAgOmNkIHRtcAogICAgICAgICBAdHJ5OgogICAgICAgICAgICAgQGltcG9ydCBzdGF0Ci0gICAgICAgICAgICA6c3lzICQoVU5aSVApIC4uL2VuX0NBLnppcAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vZW5fQ0EuemlwCiAgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9lbl9DQS5vcmlnLmFmZiBlbl9DQS5hZmYgPmQKICAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CiAgICAgICAgICAgICAgICAgOmNvcHkgZW5fQ0EuYWZmIC4uL2VuX0NBLm5ldy5hZmYKQEAgLTIwMyw3ICsyMDMsNyBAQAogICAgICAgICA6Y2QgdG1wCiAgICAgICAgIEB0cnk6CiAgICAgICAgICAgICBAaW1wb3J0IHN0YXQKLSAgICAgICAgICAgIDpzeXMgJChVTlpJUCkgLi4vZW5fR0IuemlwCisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9lbl9HQi56aXAKICAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2VuX0dCLm9yaWcuYWZmIGVuX0dCLmFmZiA+ZAogICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKICAgICAgICAgICAgICAgICA6Y29weSBlbl9HQi5hZmYgLi4vZW5fR0IubmV3LmFmZgpAQCAtMjIyLDcgKzIyMiw3IEBACiAgICAgICAgIDpjZCB0bXAKICAgICAgICAgQHRyeToKICAgICAgICAgICAgIEBpbXBvcnQgc3RhdAotICAgICAgICAgICAgOnN5cyAkKFVOWklQKSAuLi9lbl9OWi56aXAKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2VuX05aLnppcAogICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vZW5fTloub3JpZy5hZmYgZW5fTlouYWZmID5kCiAgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgogICAgICAgICAgICAgICAgIDpjb3B5IGVuX05aLmFmZiAuLi9lbl9OWi5uZXcuYWZmCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2ZyL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9mci9tYWluLmFhcAppbmRleCA0NTgwYzljLi45ZTUxMDM5IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2ZyL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvZnIvbWFpbi5hYXAKQEAgLTksMTUgKzksMTUgQEAKIFNQRUxMRElSID0gLi4KIEZJTEVTICAgID0gZnJfRlIuYWZmIGZyX0ZSLmRpYwogCi1hbGw6ICQoU1BFTExESVIpL2ZyLmxhdGluMS5zcGwgJChTUEVMTERJUikvZnIudXRmLTguc3BsIC4uL1JFQURNRV9mci50eHQKK2FsbDogJFNQRUxMRElSL2ZyLmxhdGluMS5zcGwgJFNQRUxMRElSL2ZyLnV0Zi04LnNwbCAuLi9SRUFETUVfZnIudHh0CiAKLSQoU1BFTExESVIpL2ZyLmxhdGluMS5zcGwgOiAkKFZJTSkgJChGSUxFUykKKyRTUEVMTERJUi9mci5sYXRpbjEuc3BsIDogJFZJTSAkRklMRVMKICAgICAgICAgOnN5cyBlbnYgTEFORz1mcl9GUi5JU084ODU5LTEKLQkJJChWSU0pIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL2ZyIGZyX0ZSIiAtYyBxCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2ZyIGZyX0ZSIiAtYyBxCiAKLSQoU1BFTExESVIpL2ZyLnV0Zi04LnNwbCA6ICQoVklNKSAkKEZJTEVTKQorJFNQRUxMRElSL2ZyLnV0Zi04LnNwbCA6ICRWSU0gJEZJTEVTCiAgICAgICAgIDpzeXMgZW52IExBTkc9ZnJfRlIuVVRGLTgKLQkJJChWSU0pIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL2ZyIGZyX0ZSIiAtYyBxCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2ZyIGZyX0ZSIiAtYyBxCiAKIC4uL1JFQURNRV9mci50eHQgOiBSRUFETUVfZnJfRlIudHh0CiAgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldApAQCAtMjYsMTkgKzI2LDE5IEBACiAjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgogIwogT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcwotOmF0dHIge2ZldGNoID0gJChPT0RJUikvJWZpbGUlfSBmcl9GUi56aXAKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGZyX0ZSLnppcAogCiAjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCiAjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgogZnJfRlIuYWZmIGZyX0ZSLmRpYzoge2J1aWxkY2hlY2s9fQogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCiAgICAgICAgIDpmZXRjaCBmcl9GUi56aXAKLSAgICAgICAgOnN5cyAkKFVOWklQKSBmcl9GUi56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgZnJfRlIuemlwCiAgICAgICAgIDpkZWxldGUgZnJfRlIuemlwCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2ZyX0ZSLm9yaWcuYWZmJyk6Ci0gICAgICAgICAgICAgICAgOmNvcHkgZnJfRlIuYWZmIGZyX0ZSLm9yaWcuYWZmCisgICAgICAgICAgICA6Y29weSBmcl9GUi5hZmYgZnJfRlIub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZnJfRlIub3JpZy5kaWMnKToKLSAgICAgICAgICAgICAgICA6Y29weSBmcl9GUi5kaWMgZnJfRlIub3JpZy5kaWMKKyAgICAgICAgICAgIDpjb3B5IGZyX0ZSLmRpYyBmcl9GUi5vcmlnLmRpYwogICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2ZyX0ZSLmRpZmYnKToKICAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGZyX0ZSLmRpZmYKIApAQCAtNjIsNyArNjIsNyBAQAogICAgICAgICA6Y2QgdG1wCiAgICAgICAgIEB0cnk6CiAgICAgICAgICAgICBAaW1wb3J0IHN0YXQKLSAgICAgICAgICAgIDpzeXMgJChVTlpJUCkgLi4vZnJfRlIuemlwCisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9mcl9GUi56aXAKICAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2ZyX0ZSLm9yaWcuYWZmIGZyX0ZSLmFmZiA+ZAogICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKICAgICAgICAgICAgICAgICA6Y29weSBmcl9GUi5hZmYgLi4vZnJfRlIubmV3LmFmZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9oZS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvaGUvbWFpbi5hYXAKaW5kZXggYTAwMmJjNy4uNGRiOTMwYiAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9oZS9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL2hlL21haW4uYWFwCkBAIC05LDE1ICs5LDE1IEBACiBTUEVMTERJUiA9IC4uCiBGSUxFUyAgICA9IGhlX0lMLmFmZiBoZV9JTC5kaWMKIAotYWxsOiAkKFNQRUxMRElSKS9oZS51dGYtOC5zcGwgJChTUEVMTERJUikvaGUuaXNvLTg4NTktOC5zcGwgLi4vUkVBRE1FX2hlLnR4dAorYWxsOiAkU1BFTExESVIvaGUudXRmLTguc3BsICRTUEVMTERJUi9oZS5pc28tODg1OS04LnNwbCAuLi9SRUFETUVfaGUudHh0CiAKLSQoU1BFTExESVIpL2hlLnV0Zi04LnNwbCA6ICQoVklNKSAkKEZJTEVTKQorJFNQRUxMRElSL2hlLnV0Zi04LnNwbCA6ICRWSU0gJEZJTEVTCiAgICAgICAgIDpzeXMgZW52IExBTkc9aGVfSUwuVVRGLTgKLQkJJChWSU0pIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL2hlIGhlX0lMIiAtYyBxCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2hlIGhlX0lMIiAtYyBxCiAKLSQoU1BFTExESVIpL2hlLmlzby04ODU5LTguc3BsIDogJChWSU0pICQoRklMRVMpCi0gICAgICAgIDpzeXMgJChWSU0pIC11IE5PTkUgLWUgLWMgInNldCBlbmM9aXNvLTg4NTktOCIKLSAgICAgICAgICAgICAgICAgICAgICAgIC1jICJta3NwZWxsISAkKFNQRUxMRElSKS9oZSBoZV9JTCIgLWMgcQorJFNQRUxMRElSL2hlLmlzby04ODU5LTguc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9aXNvLTg4NTktOCIKKyAgICAgICAgICAgICAgICAgICAgICAgIC1jICJta3NwZWxsISAkU1BFTExESVIvaGUgaGVfSUwiIC1jIHEKIAogLi4vUkVBRE1FX2hlLnR4dCA6IFJFQURNRV9oZV9JTC50eHQKICAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CkBAIC0yNiwxOSArMjYsMTkgQEAKICMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCiAjCiBPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCi06YXR0ciB7ZmV0Y2ggPSAkKE9PRElSKS8lZmlsZSV9IGhlX0lMLnppcAorOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gaGVfSUwuemlwCiAKICMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KICMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCiBoZV9JTC5hZmYgaGVfSUwuZGljOiB7YnVpbGRjaGVjaz19CiAgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKICAgICAgICAgOmZldGNoIGhlX0lMLnppcAotICAgICAgICA6c3lzICQoVU5aSVApIGhlX0lMLnppcAorICAgICAgICA6c3lzICRVTlpJUCBoZV9JTC56aXAKICAgICAgICAgOmRlbGV0ZSBoZV9JTC56aXAKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnaGVfSUwub3JpZy5hZmYnKToKLSAgICAgICAgICAgICAgICA6Y29weSBoZV9JTC5hZmYgaGVfSUwub3JpZy5hZmYKKyAgICAgICAgICAgIDpjb3B5IGhlX0lMLmFmZiBoZV9JTC5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdoZV9JTC5vcmlnLmRpYycpOgotICAgICAgICAgICAgICAgIDpjb3B5IGhlX0lMLmRpYyBoZV9JTC5vcmlnLmRpYworICAgICAgICAgICAgOmNvcHkgaGVfSUwuZGljIGhlX0lMLm9yaWcuZGljCiAgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnaGVfSUwuZGlmZicpOgogICAgICAgICAgICAgOnN5cyBwYXRjaCA8aGVfSUwuZGlmZgogCkBAIC02Miw3ICs2Miw3IEBACiAgICAgICAgIDpjZCB0bXAKICAgICAgICAgQHRyeToKICAgICAgICAgICAgIEBpbXBvcnQgc3RhdAotICAgICAgICAgICAgOnN5cyAkKFVOWklQKSAuLi9oZV9JTC56aXAKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2hlX0lMLnppcAogICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vaGVfSUwub3JpZy5hZmYgaGVfSUwuYWZmID5kCiAgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgogICAgICAgICAgICAgICAgIDpjb3B5IGhlX0lMLmFmZiAuLi9oZV9JTC5uZXcuYWZmCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2hyL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9oci9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjcyYjg3Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9oci9tYWluLmFhcApAQCAtMCwwICsxLDgxIEBACisjIEFhcCByZWNpcGUgZm9yIFBvbGlzaCBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IGhyX0hSLmFmZiBocl9IUi5kaWMKKworYWxsOiAkU1BFTExESVIvaHIuaXNvLTg4NTktMi5zcGwgJFNQRUxMRElSL3BsLnV0Zi04LnNwbCBcCisgICAgICAgICRTUEVMTERJUi9oci5jcDEyNTAuc3BsIC4uL1JFQURNRV9wbC50eHQKKworJFNQRUxMRElSL2hyLmlzby04ODU5LTIuc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ocl9IUi5JU084ODU5LTIgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvaHIgaHJfSFIiIC1jIHEKKworJFNQRUxMRElSL2hyLnV0Zi04LnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9aHJfSFIuVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvaHIgaHJfSFIiIC1jIHEKKworJFNQRUxMRElSL2hyLmNwMTI1MC5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAic2V0IGVuYz1jcDEyNTAiIC1jICJta3NwZWxsISAkU1BFTExESVIvaHIgaHJfSFIiIC1jIHEKKworLi4vUkVBRE1FX2hyLnR4dDogUkVBRE1FX2hyX0hSLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGhyX0hSLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorIyBUaGlzIGlzIGEgYml0IHRyaWNreSwgc2luY2UgdGhlIGZpbGUgbmFtZSBpbmNsdWRlcyB0aGUgZGF0ZS4KK2hyX0hSLmFmZiBocl9IUi5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggaHJfSFIuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGhyX0hSLnppcAorICAgICAgICA6ZGVsZXRlIGhyX0hSLnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdocl9IUi5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgaHJfSFIuYWZmIGhyX0hSLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2hyX0hSLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBocl9IUi5kaWMgaHJfSFIub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdocl9IUi5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxocl9IUi5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGhyX0hSLm9yaWcuYWZmIGhyX0hSLmFmZiA+aHJfSFIuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGhyX0hSLm9yaWcuZGljIGhyX0hSLmRpYyA+PmhyX0hSLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBocl9IUi56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2hyX0hSLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vaHJfSFIub3JpZy5hZmYgaHJfSFIuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGhyX0hSLmFmZiAuLi9ocl9IUi5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9ocl9IUi5vcmlnLmRpYyBocl9IUi5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgaHJfSFIuZGljIC4uL2hyX0hSLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBocl9IUi56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9pdC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvaXQvbWFpbi5hYXAKaW5kZXggMDRlMTE2Zi4uZWY1NDFjNCAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9pdC9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL2l0L21haW4uYWFwCkBAIC05LDE1ICs5LDE1IEBACiBTUEVMTERJUiA9IC4uCiBGSUxFUyAgICA9IGl0X0lULmFmZiBpdF9JVC5kaWMKIAotYWxsOiAkKFNQRUxMRElSKS9pdC5sYXRpbjEuc3BsICQoU1BFTExESVIpL2l0LnV0Zi04LnNwbCAuLi9SRUFETUVfaXQudHh0CithbGw6ICRTUEVMTERJUi9pdC5sYXRpbjEuc3BsICRTUEVMTERJUi9pdC51dGYtOC5zcGwgLi4vUkVBRE1FX2l0LnR4dAogCi0kKFNQRUxMRElSKS9pdC5sYXRpbjEuc3BsIDogJChWSU0pICQoRklMRVMpCiskU1BFTExESVIvaXQubGF0aW4xLnNwbCA6ICRWSU0gJEZJTEVTCiAgICAgICAgIDpzeXMgZW52IExBTkc9aXRfSVQuSVNPODg1OS0xCi0JCSQoVklNKSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkKFNQRUxMRElSKS9pdCBpdF9JVCIgLWMgcQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9pdCBpdF9JVCIgLWMgcQogCi0kKFNQRUxMRElSKS9pdC51dGYtOC5zcGwgOiAkKFZJTSkgJChGSUxFUykKKyRTUEVMTERJUi9pdC51dGYtOC5zcGwgOiAkVklNICRGSUxFUwogICAgICAgICA6c3lzIGVudiBMQU5HPWl0X0lULlVURi04Ci0JCSQoVklNKSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkKFNQRUxMRElSKS9pdCBpdF9JVCIgLWMgcQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9pdCBpdF9JVCIgLWMgcQogCiAuLi9SRUFETUVfaXQudHh0IDogUkVBRE1FX2l0X0lULnR4dAogICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKQEAgLTI2LDE0ICsyNiwxNCBAQAogIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KICMKIE9PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKLTphdHRyIHtmZXRjaCA9ICQoT09ESVIpLyVmaWxlJX0gaXRfSVQuemlwCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBpdF9JVC56aXAKIAogIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgogIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KIGl0X0lULmFmZiBpdF9JVC5kaWM6IHtidWlsZGNoZWNrPX0KICAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAogICAgICAgICA6ZmV0Y2ggaXRfSVQuemlwCi0gICAgICAgIDpzeXMgJChVTlpJUCkgaXRfSVQuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGl0X0lULnppcAogICAgICAgICA6ZGVsZXRlIGl0X0lULnppcAogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdpdF9JVC5vcmlnLmFmZicpOgogICAgICAgICAgICAgOmNvcHkgaXRfSVQuYWZmIGl0X0lULm9yaWcuYWZmCkBAIC02Miw3ICs2Miw3IEBACiAgICAgICAgIDpjZCB0bXAKICAgICAgICAgQHRyeToKICAgICAgICAgICAgIEBpbXBvcnQgc3RhdAotICAgICAgICAgICAgOnN5cyAkKFVOWklQKSAuLi9pdF9JVC56aXAKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2l0X0lULnppcAogICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vaXRfSVQub3JpZy5hZmYgaXRfSVQuYWZmID5kCiAgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgogICAgICAgICAgICAgICAgIDpjb3B5IGl0X0lULmFmZiAuLi9pdF9JVC5uZXcuYWZmCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9tYWluLmFhcAppbmRleCA0NGQxOTkwLi42ODg2NGI4IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvbWFpbi5hYXAKQEAgLTEsNyArMSw3IEBACiAjICJhYXAiOiBnZW5lcmF0ZSBhbGwgdGhlIC5zcGwgZmlsZXMKICMgImFhcCBkaWZmIiBjcmVhdGUgYWxsIHRoZSBkaWZmIGZpbGVzCiAKLUxBTkcgPSBkZSBlbiBmciBoZSBpdCBubCBwbCB5aQorTEFORyA9IGFmIGJnIGNhIGNzIGRhIGRlIGVuIGZyIGhlIGhyIGl0IG5sIG55IHBsIHNrIHlpCiAKIGRpZmY6ICQqTEFORy9kaWZmCiAgICAgICAgIDpwcmludCBkb25lCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL25sL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9ubC9tYWluLmFhcAppbmRleCBiNDE0MTYxLi4wMmFlNDlkIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL25sL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvbmwvbWFpbi5hYXAKQEAgLTksMTUgKzksMTUgQEAKIFNQRUxMRElSID0gLi4KIEZJTEVTICAgID0gbmxfTkwuYWZmIG5sX05MLmRpYwogCi1hbGw6ICQoU1BFTExESVIpL25sLmxhdGluMS5zcGwgJChTUEVMTERJUikvbmwudXRmLTguc3BsIC4uL1JFQURNRV9ubC50eHQKK2FsbDogJFNQRUxMRElSL25sLmxhdGluMS5zcGwgJFNQRUxMRElSL25sLnV0Zi04LnNwbCAuLi9SRUFETUVfbmwudHh0CiAKLSQoU1BFTExESVIpL25sLmxhdGluMS5zcGwgOiAkKFZJTSkgJChGSUxFUykKKyRTUEVMTERJUi9ubC5sYXRpbjEuc3BsIDogJFZJTSAkRklMRVMKICAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5JU084ODU5LTEKLQkJJChWSU0pIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL25sIG5sX05MIiAtYyBxCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL25sIG5sX05MIiAtYyBxCiAKLSQoU1BFTExESVIpL25sLnV0Zi04LnNwbCA6ICQoVklNKSAkKEZJTEVTKQorJFNQRUxMRElSL25sLnV0Zi04LnNwbCA6ICRWSU0gJEZJTEVTCiAgICAgICAgIDpzeXMgZW52IExBTkc9bmxfTkwuVVRGLTgKLQkJJChWSU0pIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL25sIG5sX05MIiAtYyBxCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL25sIG5sX05MIiAtYyBxCiAKIC4uL1JFQURNRV9ubC50eHQgOiBSRUFETUVfbmxfTkwudHh0CiAgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldApAQCAtMjYsMTkgKzI2LDE5IEBACiAjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgogIwogT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcwotOmF0dHIge2ZldGNoID0gJChPT0RJUikvJWZpbGUlfSBubF9OTC56aXAKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IG5sX05MLnppcAogCiAjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCiAjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgogbmxfTkwuYWZmIG5sX05MLmRpYzoge2J1aWxkY2hlY2s9fQogICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCiAgICAgICAgIDpmZXRjaCBubF9OTC56aXAKLSAgICAgICAgOnN5cyAkKFVOWklQKSBubF9OTC56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgbmxfTkwuemlwCiAgICAgICAgIDpkZWxldGUgbmxfTkwuemlwCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ25sX05MLm9yaWcuYWZmJyk6Ci0gICAgICAgICAgICAgICAgOmNvcHkgbmxfTkwuYWZmIG5sX05MLm9yaWcuYWZmCisgICAgICAgICAgICA6Y29weSBubF9OTC5hZmYgbmxfTkwub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbmxfTkwub3JpZy5kaWMnKToKLSAgICAgICAgICAgICAgICA6Y29weSBubF9OTC5kaWMgbmxfTkwub3JpZy5kaWMKKyAgICAgICAgICAgIDpjb3B5IG5sX05MLmRpYyBubF9OTC5vcmlnLmRpYwogICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ25sX05MLmRpZmYnKToKICAgICAgICAgICAgIDpzeXMgcGF0Y2ggPG5sX05MLmRpZmYKIApAQCAtNjIsNyArNjIsNyBAQAogICAgICAgICA6Y2QgdG1wCiAgICAgICAgIEB0cnk6CiAgICAgICAgICAgICBAaW1wb3J0IHN0YXQKLSAgICAgICAgICAgIDpzeXMgJChVTlpJUCkgLi4vbmxfTkwuemlwCisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9ubF9OTC56aXAKICAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL25sX05MLm9yaWcuYWZmIG5sX05MLmFmZiA+ZAogICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKICAgICAgICAgICAgICAgICA6Y29weSBubF9OTC5hZmYgLi4vbmxfTkwubmV3LmFmZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9ueS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvbnkvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdmY2JmNwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbnkvbWFpbi5hYXAKQEAgLTAsMCArMSw4MiBAQAorIyBBYXAgcmVjaXBlIGZvciBEdXRjaCBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IG55X01XLmFmZiBueV9NVy5kaWMKKworYWxsOiAkU1BFTExESVIvbnkuaXNvLTg4NTktMTQuc3BsICRTUEVMTERJUi9ueS51dGYtOC5zcGwgXAorICAgICAgICAkU1BFTExESVIvbnkuYXNjaWkuc3BsIC4uL1JFQURNRV9ueS50eHQKKworJFNQRUxMRElSL255Lmlzby04ODU5LTE0LnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPWlzby04ODU5LTE0IiAKKyAgICAgICAgICAgICAgICAtYyAibWtzcGVsbCEgJFNQRUxMRElSL255IG55X01XIiAtYyBxCisKKyRTUEVMTERJUi9ueS51dGYtOC5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAic2V0IGVuYz11dGYtOCIKKyAgICAgICAgICAgICAgICAtYyAibWtzcGVsbCEgJFNQRUxMRElSL255IG55X01XIiAtYyBxCisKKyRTUEVMTERJUi9ueS5hc2NpaS5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgLWFzY2lpICRTUEVMTERJUi9ueSBueV9NVyIgLWMgcQorIAorLi4vUkVBRE1FX255LnR4dCA6IFJFQURNRV9ueV9NVy50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBueV9NVy56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK255X01XLmFmZiBueV9NVy5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggbnlfTVcuemlwCisgICAgICAgIDpzeXMgJFVOWklQIG55X01XLnppcAorICAgICAgICA6ZGVsZXRlIG55X01XLnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdueV9NVy5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgbnlfTVcuYWZmIG55X01XLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ255X01XLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBueV9NVy5kaWMgbnlfTVcub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdueV9NVy5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxueV9NVy5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIG55X01XLm9yaWcuYWZmIG55X01XLmFmZiA+bnlfTVcuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIG55X01XLm9yaWcuZGljIG55X01XLmRpYyA+Pm55X01XLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIG55X01XLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vbnlfTVcuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9ueV9NVy5vcmlnLmFmZiBueV9NVy5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbnlfTVcuYWZmIC4uL255X01XLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL255X01XLm9yaWcuZGljIG55X01XLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBueV9NVy5kaWMgLi4vbnlfTVcubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIG55X01XLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3BsL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9wbC9tYWluLmFhcAppbmRleCA2OTE2ZGYzLi5lMzNhY2Y4IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL3BsL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvcGwvbWFpbi5hYXAKQEAgLTksMTcgKzksMTcgQEAKIFNQRUxMRElSID0gLi4KIEZJTEVTICAgID0gcGxfUEwuYWZmIHBsX1BMLmRpYwogCi1hbGw6ICQoU1BFTExESVIpL3BsLmlzby04ODU5LTIuc3BsICQoU1BFTExESVIpL3BsLnV0Zi04LnNwbCBcCi0gICAgICAgICQoU1BFTExESVIpL3BsLmNwMTI1MC5zcGwgLi4vUkVBRE1FX3BsLnR4dAorYWxsOiAkU1BFTExESVIvcGwuaXNvLTg4NTktMi5zcGwgJFNQRUxMRElSL3BsLnV0Zi04LnNwbCBcCisgICAgICAgICRTUEVMTERJUi9wbC5jcDEyNTAuc3BsIC4uL1JFQURNRV9wbC50eHQKIAotJChTUEVMTERJUikvcGwuaXNvLTg4NTktMi5zcGwgOiAkKFZJTSkgJChGSUxFUykKLSAgICAgICAgOnN5cyBlbnYgTEFORz1wbF9QTC5JU084ODU5LTIgJChWSU0pIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL3BsIHBsX1BMIiAtYyBxCiskU1BFTExESVIvcGwuaXNvLTg4NTktMi5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXBsX1BMLklTTzg4NTktMiAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9wbCBwbF9QTCIgLWMgcQogCi0kKFNQRUxMRElSKS9wbC51dGYtOC5zcGwgOiAkKFZJTSkgJChGSUxFUykKLSAgICAgICAgOnN5cyBlbnYgTEFORz1wbF9QTC5VVEYtOCAkKFZJTSkgLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJChTUEVMTERJUikvcGwgcGxfUEwiIC1jIHEKKyRTUEVMTERJUi9wbC51dGYtOC5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXBsX1BMLlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3BsIHBsX1BMIiAtYyBxCiAKLSQoU1BFTExESVIpL3BsLmNwMTI1MC5zcGwgOiAkKFZJTSkgJChGSUxFUykKLSAgICAgICAgOnN5cyAkKFZJTSkgLXUgTk9ORSAtZSAtYyAic2V0IGVuYz1jcDEyNTAiIC1jICJta3NwZWxsISAkKFNQRUxMRElSKS9wbCBwbF9QTCIgLWMgcQorJFNQRUxMRElSL3BsLmNwMTI1MC5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAic2V0IGVuYz1jcDEyNTAiIC1jICJta3NwZWxsISAkU1BFTExESVIvcGwgcGxfUEwiIC1jIHEKIAogLi4vUkVBRE1FX3BsLnR4dDogUkVBRE1FX3BsX1BMLnR4dAogICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKQEAgLTI4LDcgKzI4LDcgQEAKICMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCiAjCiAjT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcwotIzphdHRyIHtmZXRjaCA9ICQoT09ESVIpLyVmaWxlJX0gcGxfUEwuemlwCisjOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gcGxfUEwuemlwCiAKICMKICMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20KQEAgLTQzLDI0ICs0MywyNCBAQAogICAgICAgICBAZnJvbSB0aW1lIGltcG9ydCBzdHJmdGltZSwgZ210aW1lLCB0aW1lCiAgICAgICAgIEBmb3IgZGF5IGluIHJhbmdlKDIwKToKICAgICAgICAgICAgIGRhdGUgPSBgc3RyZnRpbWUoJyVZJW0lZCcsIGdtdGltZSh0aW1lKCkgLSBkYXkgKiAyNCAqIDYwICogNjApKWAKLSAgICAgICAgICAgIGJhc2UgPSAgYWx0LW15c3BlbGwtcGwtJChkYXRlKQotICAgICAgICAgICAgZm5hbWUgPSAkKGJhc2UpLnRhci5iejIKLSAgICAgICAgICAgIDphdHRyIHtmZXRjaCA9ICQoSFRUUERJUikvJWZpbGUlfSAkKGZuYW1lKQorICAgICAgICAgICAgYmFzZSA9ICBhbHQtbXlzcGVsbC1wbC0kZGF0ZQorICAgICAgICAgICAgZm5hbWUgPSAkYmFzZS50YXIuYnoyCisgICAgICAgICAgICA6YXR0ciB7ZmV0Y2ggPSAkSFRUUERJUi8lZmlsZSV9ICRmbmFtZQogICAgICAgICAgICAgQHRyeToKLSAgICAgICAgICAgICAgICA6ZmV0Y2ggJChmbmFtZSkKKyAgICAgICAgICAgICAgICA6ZmV0Y2ggJGZuYW1lCiAgICAgICAgICAgICAgICAgb2sgPSAxCiAgICAgICAgICAgICBAZXhjZXB0OgogICAgICAgICAgICAgICAgIG9rID0gMAogICAgICAgICAgICAgQGlmIG9rOgogICAgICAgICAgICAgICAgIEBicmVhawotICAgICAgICA6c3lzIGJ1bnppcDIgLWMgJChmbmFtZSkgfCB0YXIgeGYgLQotICAgICAgICA6bW92ZSAkKGJhc2UpLyogLgotICAgICAgICA6ZGVsZGlyICQoYmFzZSkKLSAgICAgICAgOmRlbGV0ZSAkKGZuYW1lKQorICAgICAgICA6c3lzIGJ1bnppcDIgLWMgJGZuYW1lIHwgdGFyIHhmIC0KKyAgICAgICAgOm1vdmUgJGJhc2UvKiAuCisgICAgICAgIDpkZWxkaXIgJGJhc2UKKyAgICAgICAgOmRlbGV0ZSAkZm5hbWUKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncGxfUEwub3JpZy5hZmYnKToKLSAgICAgICAgICAgICAgICA6Y29weSBwbF9QTC5hZmYgcGxfUEwub3JpZy5hZmYKKyAgICAgICAgICAgIDpjb3B5IHBsX1BMLmFmZiBwbF9QTC5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdwbF9QTC5vcmlnLmRpYycpOgotICAgICAgICAgICAgICAgIDpjb3B5IHBsX1BMLmRpYyBwbF9QTC5vcmlnLmRpYworICAgICAgICAgICAgOmNvcHkgcGxfUEwuZGljIHBsX1BMLm9yaWcuZGljCiAgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygncGxfUEwuZGlmZicpOgogICAgICAgICAgICAgOnN5cyBwYXRjaCA8cGxfUEwuZGlmZgogCkBAIC03NCwxNyArNzQsMjkgQEAKICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBwbF9QTC5vcmlnLmRpYyBwbF9QTC5kaWMgPj5wbF9QTC5kaWZmCiAKIAotIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQogIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCiAKIGNoZWNrOgotICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKLSAgICAgICAgOmZldGNoIHBsX1BMLnppcAotICAgICAgICA6bWtkaXIgdG1wCi0gICAgICAgIDpjZCB0bXAKKyAgICAgICAgOmFzc2VydHBrZyB0YXIgYnVuemlwMiBkaWZmCisgICAgICAgIEBmcm9tIHRpbWUgaW1wb3J0IHN0cmZ0aW1lLCBnbXRpbWUsIHRpbWUKKyAgICAgICAgQGZvciBkYXkgaW4gcmFuZ2UoMjApOgorICAgICAgICAgICAgZGF0ZSA9IGBzdHJmdGltZSgnJVklbSVkJywgZ210aW1lKHRpbWUoKSAtIGRheSAqIDI0ICogNjAgKiA2MCkpYAorICAgICAgICAgICAgYmFzZSA9ICBhbHQtbXlzcGVsbC1wbC0kZGF0ZQorICAgICAgICAgICAgZm5hbWUgPSAkYmFzZS50YXIuYnoyCisgICAgICAgICAgICA6YXR0ciB7ZmV0Y2ggPSAkSFRUUERJUi8lZmlsZSV9ICRmbmFtZQorICAgICAgICAgICAgQHRyeToKKyAgICAgICAgICAgICAgICA6ZmV0Y2ggJGZuYW1lCisgICAgICAgICAgICAgICAgb2sgPSAxCisgICAgICAgICAgICBAZXhjZXB0OgorICAgICAgICAgICAgICAgIG9rID0gMAorICAgICAgICAgICAgQGlmIG9rOgorICAgICAgICAgICAgICAgIEBicmVhaworICAgICAgICA6c3lzIGJ1bnppcDIgLWMgJGZuYW1lIHwgdGFyIHhmIC0KKyAgICAgICAgOmNkICRiYXNlCiAgICAgICAgIEB0cnk6CiAgICAgICAgICAgICBAaW1wb3J0IHN0YXQKLSAgICAgICAgICAgIDpzeXMgJChVTlpJUCkgLi4vcGxfUEwuemlwCisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9wbF9QTC56aXAKICAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3BsX1BMLm9yaWcuYWZmIHBsX1BMLmFmZiA+ZAogICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKICAgICAgICAgICAgICAgICA6Y29weSBwbF9QTC5hZmYgLi4vcGxfUEwubmV3LmFmZgpAQCAtOTMsOCArMTA1LDggQEAKICAgICAgICAgICAgICAgICA6Y29weSBwbF9QTC5kaWMgLi4vcGxfUEwubmV3LmRpYwogICAgICAgICBAZmluYWxseToKICAgICAgICAgICAgIDpjZCAuLgotICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCi0gICAgICAgICAgICA6ZGVsZXRlIHBsX1BMLnppcAorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gJGJhc2UKKyAgICAgICAgICAgIDpkZWxldGUgJGZuYW1lCiAKIAogIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvc2svbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3NrL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxOGQxOTUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3NrL21haW4uYWFwCkBAIC0wLDAgKzEsODEgQEAKKyMgQWFwIHJlY2lwZSBmb3IgQ3plY2ggVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBza19TSy5hZmYgc2tfU0suZGljCisKK2FsbDogJFNQRUxMRElSL3NrLmlzby04ODU5LTIuc3BsICRTUEVMTERJUi9zay51dGYtOC5zcGwgXAorICAgICAgICAkU1BFTExESVIvc2suY3AxMjUwLnNwbCAuLi9SRUFETUVfc2sudHh0CisKKyRTUEVMTERJUi9zay5pc28tODg1OS0yLnNwbCA6ICRWSU0gJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9c2tfU0suSVNPODg1OS0yICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3NrIHNrX1NLIiAtYyBxCisKKyRTUEVMTERJUi9zay51dGYtOC5zcGwgOiAkVklNICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXNrX1NLLlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3NrIHNrX1NLIiAtYyBxCisKKyRTUEVMTERJUi9zay5jcDEyNTAuc3BsIDogJFZJTSAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9Y3AxMjUwIiAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3NrIHNrX1NLIiAtYyBxCisKKy4uL1JFQURNRV9zay50eHQ6IFJFQURNRV9za19TSy50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBza19TSy56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCitza19TSy5hZmYgc2tfU0suZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHNrX1NLLnppcAorICAgICAgICA6c3lzICRVTlpJUCBza19TSy56aXAKKyAgICAgICAgOmRlbGV0ZSBza19TSy56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnc2tfU0sub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHNrX1NLLmFmZiBza19TSy5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdza19TSy5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgc2tfU0suZGljIHNrX1NLLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnc2tfU0suZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8c2tfU0suZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBza19TSy5vcmlnLmFmZiBza19TSy5hZmYgPnNrX1NLLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBza19TSy5vcmlnLmRpYyBza19TSy5kaWMgPj5za19TSy5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBza19TSy56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL3NrX1NLLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vc2tfU0sub3JpZy5hZmYgc2tfU0suYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHNrX1NLLmFmZiAuLi9za19TSy5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9za19TSy5vcmlnLmRpYyBza19TSy5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgc2tfU0suZGljIC4uL3NrX1NLLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBza19TSy56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zay9za19TSy5kaWZmIGIvcnVudGltZS9zcGVsbC9zay9za19TSy5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyNzlmZDMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3NrL3NrX1NLLmRpZmYKQEAgLTAsMCArMSwxOCBAQAorKioqIHNrX1NLLm9yaWcuYWZmCVN1biBBdWcgMTQgMTY6NDg6MjEgMjAwNQorLS0tIHNrX1NLLmFmZglTdW4gQXVnIDE0IDE2OjUwOjA4IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDQsNSAqKioqCistLS0gNCw5IC0tLS0KKyAgCisrIEZPTCCxorO1tqi5uru8vr+xsrO0tba3uLm6u7y9vr/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBMT1cgsaKztbaoubq7vL6/sbKztLW2t7i5uru8vb6/4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgVVBQIKGio6WmqKmqq6yur7Gys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//CisrIAorICBQRlggTiBZIDEKKyoqKiBza19TSy5vcmlnLmRpYwlTdW4gQXVnIDE0IDE2OjQ4OjIxIDIwMDUKKy0tLSBza19TSy5kaWMJU3VuIEF1ZyAxNCAxNjo1MjoyMyAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAxNjY1NjcsMTY2NTY4ICoqKioKKyAgvnZpYWthuy9OWAorLSAxNjY1NjcKKy0tLSAxNjY1NjcgLS0tLQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC95aS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwveWkvbWFpbi5hYXAKaW5kZXggODE2MGU4My4uMzFkMDU3ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC95aS9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL3lpL21haW4uYWFwCkBAIC0xNCw3ICsxNCw3IEBACiAKICRTUEVMTERJUi95aS51dGYtOC5zcGwgOiAkVklNICRGSUxFUwogICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPXV0Zi04IgotICAgICAgICAgICAgLWMgIm1rc3BlbGwhICQoU1BFTExESVIpL3lpIHlpIiAtYyBxCisgICAgICAgICAgICAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3lpIHlpIiAtYyBxCiAKIC4uL1JFQURNRV95aS50eHQgOiBSRUFETUUudHh0CiAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC92ZXJpbG9nYW1zLnZpbSBiL3J1bnRpbWUvc3ludGF4L3Zlcmlsb2dhbXMudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNDFlY2EKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3N5bnRheC92ZXJpbG9nYW1zLnZpbQpAQCAtMCwwICsxLDE0MiBAQAorIiBWaW0gc3ludGF4IGZpbGUKKyIgTGFuZ3VhZ2U6CVZlcmlsb2ctQU1TCisiIE1haW50YWluZXI6CVMuIE15bGVzIFByYXRoZXIgPHNtcHJhdGhlckBnbWFpbC5jb20+CisiIExhc3QgVXBkYXRlOiAgU3VuIEF1ZyAxNCAwMzo1ODowMCBDU1QgMjAwMworCisiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcworIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAoraWYgdmVyc2lvbiA8IDYwMAorICAgc3ludGF4IGNsZWFyCitlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgIGZpbmlzaAorZW5kaWYKKworIiBTZXQgdGhlIGxvY2FsIHZhbHVlIG9mIHRoZSAnaXNrZXl3b3JkJyBvcHRpb24KK2lmIHZlcnNpb24gPj0gNjAwCisgICBzZXRsb2NhbCBpc2tleXdvcmQ9QCw0OC01NyxfLDE5Mi0yNTUKK2Vsc2UKKyAgIHNldCBpc2tleXdvcmQ9QCw0OC01NyxfLDE5Mi0yNTUKK2VuZGlmCisKKyIgQW5uZXggQi4xICdBbGwga2V5d29yZHMnCitzeW4ga2V5d29yZCB2ZXJpbG9nYW1zU3RhdGVtZW50IGFib3ZlIGFicyBhYnNkZWxheSBhY29zIGFjb3NoIGFjX3N0aW0KK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgYWx3YXlzIGFuYWxvZyBhbmFseXNpcyBhbmQgYXNpbgorc3luIGtleXdvcmQgdmVyaWxvZ2Ftc1N0YXRlbWVudCBhc2luaCBhc3NpZ24gYXRhbiBhdGFuMiBhdGFuaCBicmFuY2gKK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgYnVmIGJ1ZmlmMSBjZWlsIGNtb3MKK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgY29ubmVjdHJ1bGVzIGNvcyBjb3NoIGNyb3NzIGRkdCBkZHggZGVhc3NpZ24KK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgZGVmcGFyYW0gZGlzYWJsZSBkaXNjaXBsaW5lCitzeW4ga2V5d29yZCB2ZXJpbG9nYW1zU3RhdGVtZW50IGRyaXZlcl91cGRhdGUgZWRnZSBlbmRkaXNjaXBsaW5lCitzeW4ga2V5d29yZCB2ZXJpbG9nYW1zU3RhdGVtZW50IGVuZGNvbm5lY3RydWxlcyBlbmRtb2R1bGUgZW5kZnVuY3Rpb24KK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgZW5kbmF0dXJlIGVuZHBhcmFtc2V0IGVuZHByaW1pdGl2ZSBlbmRzcGVjaWZ5CitzeW4ga2V5d29yZCB2ZXJpbG9nYW1zU3RhdGVtZW50IGVuZHRhYmxlIGVuZHRhc2sgZXZlbnQgZXhwIGZpbmFsX3N0ZXAKK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgZmxpY2tlcl9ub2lzZSBmbG9vciBmbG93IGZvcmNlIGZvcmsKK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgZnVuY3Rpb24gZ2VuZXJhdGUgZ2VudmFyIGhpZ2h6MAorc3luIGtleXdvcmQgdmVyaWxvZ2Ftc1N0YXRlbWVudCBoaWdoejEgaHlwb3QgaWR0IGlkdG1vZCBpZiBpZm5vbmUgaW5pdGlhbAorc3luIGtleXdvcmQgdmVyaWxvZ2Ftc1N0YXRlbWVudCBpbml0aWFsX3N0ZXAgaW5vdXQgaW5wdXQgam9pbgorc3luIGtleXdvcmQgdmVyaWxvZ2Ftc1N0YXRlbWVudCBsYXBsYWNlX25kIGxhcGxhY2VfbnAgbGFwbGFjZV96ZCBsYXBsYWNlX3pwCitzeW4ga2V5d29yZCB2ZXJpbG9nYW1zU3RhdGVtZW50IGxhcmdlIGxhc3RfY3Jvc3NpbmcgbGltZXhwIGxuIGxvY2FscGFyYW0gbG9nCitzeW4ga2V5d29yZCB2ZXJpbG9nYW1zU3RhdGVtZW50IG1hY3JvbW9kdWxlIG1heCBtZWRpdW0gbWluIG1vZHVsZSBuYW5kIG5hdHVyZQorc3luIGtleXdvcmQgdmVyaWxvZ2Ftc1N0YXRlbWVudCBuZWdlZGdlIG5ldF9yZXNvbHV0aW9uIG5tb3Mgbm9pc2VfdGFibGUgbm9yIG5vdAorc3luIGtleXdvcmQgdmVyaWxvZ2Ftc1N0YXRlbWVudCBub3RpZjAgbm90aWYxIG9yIG91dHB1dCBwYXJhbXNldCBwbW9zCitzeW4ga2V5d29yZCB2ZXJpbG9nYW1zVHlwZSAgICAgIHBhcmFtZXRlciByZWFsIGludGVnZXIgZWxlY3RyaWNhbCBpbnB1dCBvdXRwdXQKK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNUeXBlICAgICAgaW5vdXQgcmVnIHRyaSB0cmkwIHRyaTEgdHJpYW5kIHRyaW9yIHRyaXJlZworc3luIGtleXdvcmQgdmVyaWxvZ2Ftc1R5cGUgICAgICBzdHJpbmcgZnJvbSBleGNsdWRlIGFsaWFzcGFyYW0gZ3JvdW5kCitzeW4ga2V5d29yZCB2ZXJpbG9nYW1zU3RhdGVtZW50IHBvc2VkZ2UgcG90ZW50aWFsIHBvdyBwcmltaXRpdmUgcHVsbDAgcHVsbDEKK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgcHVsbHVwIHB1bGxkb3duIHJjbW9zIHJlbGVhc2UKK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgcm5tb3MgcnBtb3MgcnRyYW4gcnRyYW5pZjAgcnRyYW5pZjEKK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgc2NhbGFyZWQgc2luIHNpbmggc2xldyBzbWFsbCBzcGVjaWZ5IHNwZWNwYXJhbQorc3luIGtleXdvcmQgdmVyaWxvZ2Ftc1N0YXRlbWVudCBzcXJ0IHN0cm9uZzAgc3Ryb25nMSBzdXBwbHkwIHN1cHBseTEKK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgdGFibGUgdGFuIHRhbmggdGFzayB0aW1lIHRpbWVyIHRyYW4gdHJhbmlmMAorc3luIGtleXdvcmQgdmVyaWxvZ2Ftc1N0YXRlbWVudCB0cmFuaWYxIHRyYW5zaXRpb24KK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgdmVjdG9yZWQgd2FpdCB3YW5kIHdlYWswIHdlYWsxCitzeW4ga2V5d29yZCB2ZXJpbG9nYW1zU3RhdGVtZW50IHdoaXRlX25vaXNlIHdpcmUgd29yIHdyZWFsIHhub3IgeG9yIHppX25kCitzeW4ga2V5d29yZCB2ZXJpbG9nYW1zU3RhdGVtZW50IHppX25wIHppX3pkCitzeW4ga2V5d29yZCB2ZXJpbG9nYW1zUmVwZWF0ICAgIGZvcmV2ZXIgcmVwZWF0IHdoaWxlIGZvcgorc3luIGtleXdvcmQgdmVyaWxvZ2Ftc0xhYmVsICAgICBiZWdpbiBlbmQKK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNDb25kaXRpb25hbCBpZiBlbHNlIGNhc2UgY2FzZXggY2FzZXogZGVmYXVsdCBlbmRjYXNlCitzeW4gbWF0Y2ggICB2ZXJpbG9nYW1zQ29uc3RhbnQgICI6aW5mImxjPTEKK3N5biBtYXRjaCAgIHZlcmlsb2dhbXNDb25zdGFudCAgIi1pbmYibGM9MQorIiBBbm5leCBCLjIgRGlzY2lwbGluZS9uYXR1cmUKK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgYWJzdG9sIGFjY2VzcyBjb250aW51b3VzIGRkdF9uYXR1cmUgZGlzY3JldGUKK3N5biBrZXl3b3JkIHZlcmlsb2dhbXNTdGF0ZW1lbnQgZG9tYWluIGlkdF9uYXR1cmUgdW5pdHMgCisiIEFubmV4IEIuMyBDb25uZWN0IFJ1bGVzCitzeW4ga2V5d29yZCB2ZXJpbG9nYW1zU3RhdGVtZW50IGNvbm5lY3QgbWVyZ2VkIHJlc29sdmV0byBzcGxpdAorCitzeW4gbWF0Y2ggICB2ZXJpbG9nYW1zT3BlcmF0b3IgICJbJnx+PjwhKSgqIyVAKy89Pzo7fXssLlxeXC1cW1xdXSIKK3N5biBtYXRjaCAgIHZlcmlsb2dhbXNPcGVyYXRvciAgIjwrIgorc3luIG1hdGNoICAgdmVyaWxvZ2Ftc1N0YXRlbWVudCAiW3ZWXSgibWU9ZS0xCitzeW4gbWF0Y2ggICB2ZXJpbG9nYW1zU3RhdGVtZW50ICJbaUldKCJtZT1lLTEKKworc3luIGtleXdvcmQgdmVyaWxvZ2Ftc1RvZG8gY29udGFpbmVkIFRPRE8KK3N5biByZWdpb24gIHZlcmlsb2dhbXNDb21tZW50IHN0YXJ0PSIvXCoiIGVuZD0iXCovIiBjb250YWlucz12ZXJpbG9nYW1zVG9kbworc3luIG1hdGNoICAgdmVyaWxvZ2Ftc0NvbW1lbnQgIi8vLioiIGNvbnRhaW5zPXZlcmlsb2dhbXNUb2RvCisKK3N5biBtYXRjaCB2ZXJpbG9nYW1zR2xvYmFsICJgY2VsbGRlZmluZSIKK3N5biBtYXRjaCB2ZXJpbG9nYW1zR2xvYmFsICJgZGVmYXVsdF9uZXR0eXBlIgorc3luIG1hdGNoIHZlcmlsb2dhbXNHbG9iYWwgImBkZWZpbmUiCitzeW4gbWF0Y2ggdmVyaWxvZ2Ftc0dsb2JhbCAiYGVsc2UiCitzeW4gbWF0Y2ggdmVyaWxvZ2Ftc0dsb2JhbCAiYGVsc2lmIgorc3luIG1hdGNoIHZlcmlsb2dhbXNHbG9iYWwgImBlbmRjZWxsZGVmaW5lIgorc3luIG1hdGNoIHZlcmlsb2dhbXNHbG9iYWwgImBlbmRpZiIKK3N5biBtYXRjaCB2ZXJpbG9nYW1zR2xvYmFsICJgaWZkZWYiCitzeW4gbWF0Y2ggdmVyaWxvZ2Ftc0dsb2JhbCAiYGlmbmRlZiIKK3N5biBtYXRjaCB2ZXJpbG9nYW1zR2xvYmFsICJgaW5jbHVkZSIKK3N5biBtYXRjaCB2ZXJpbG9nYW1zR2xvYmFsICJgbGluZSIKK3N5biBtYXRjaCB2ZXJpbG9nYW1zR2xvYmFsICJgbm91bmNvbm5lY3RlZF9kcml2ZSIKK3N5biBtYXRjaCB2ZXJpbG9nYW1zR2xvYmFsICJgcmVzZXRhbGwiCitzeW4gbWF0Y2ggdmVyaWxvZ2Ftc0dsb2JhbCAiYHRpbWVzY2FsZSIKK3N5biBtYXRjaCB2ZXJpbG9nYW1zR2xvYmFsICJgdW5jb25uZWN0ZWRfZHJpdmUiCitzeW4gbWF0Y2ggdmVyaWxvZ2Ftc0dsb2JhbCAiYHVuZGVmIgorc3luIG1hdGNoIHZlcmlsb2dhbXNTeXN0YXNrICIkW2EtekEtWjAtOV9dXCtcPiIKKworc3luIG1hdGNoIHZlcmlsb2dhbXNDb25zdGFudCAiXDxbQS1aXVtBLVowLTlfXVwrXD4iCisKK3N5biBtYXRjaCAgIHZlcmlsb2dhbXNOdW1iZXIgIlwoXDxcZFwrXHxcKSdbYkJdXHMqWzAtMV94WHpaP11cK1w+Igorc3luIG1hdGNoICAgdmVyaWxvZ2Ftc051bWJlciAiXChcPFxkXCtcfFwpJ1tvT11ccypbMC03X3hYelo/XVwrXD4iCitzeW4gbWF0Y2ggICB2ZXJpbG9nYW1zTnVtYmVyICJcKFw8XGRcK1x8XCknW2REXVxzKlswLTlfeFh6Wj9dXCtcPiIKK3N5biBtYXRjaCAgIHZlcmlsb2dhbXNOdW1iZXIgIlwoXDxcZFwrXHxcKSdbaEhdXHMqWzAtOWEtZkEtRl94WHpaP11cK1w+Igorc3luIG1hdGNoICAgdmVyaWxvZ2Ftc051bWJlciAiXDxbKy1dXD1bMC05X11cK1woXC5bMC05X10qXHxcKVwoZVswLTlfXSpcfFwpXD4iCisKK3N5biByZWdpb24gIHZlcmlsb2dhbXNTdHJpbmcgc3RhcnQ9KyIrIHNraXA9K1xcIisgZW5kPSsiKyBjb250YWlucz12ZXJpbG9nYW1zRXNjYXBlCitzeW4gbWF0Y2ggICB2ZXJpbG9nYW1zRXNjYXBlICtcXFtudCJcXF0rIGNvbnRhaW5lZAorc3luIG1hdGNoICAgdmVyaWxvZ2Ftc0VzY2FwZSAiXFxcb1xvXD1cb1w9IiBjb250YWluZWQKKworIk1vZGlmeSB0aGUgZm9sbG93aW5nIGFzIG5lZWRlZC4gIFRoZSB0cmFkZS1vZmYgaXMgcGVyZm9ybWFuY2UgdmVyc3VzCisiZnVuY3Rpb25hbGl0eS4KK3N5biBzeW5jIGxpbmVzPTUwCisKKyIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KKyIgRm9yIHZlcnNpb24gNS43IGFuZCBlYXJsaWVyOiBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeQorIiBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyOiBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldAoraWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cygiZGlkX3Zlcmlsb2dhbXNfc3luX2luaXRzIikKKyAgIGlmIHZlcnNpb24gPCA1MDgKKyAgICAgIGxldCBkaWRfdmVyaWxvZ2Ftc19zeW5faW5pdHMgPSAxCisgICAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBsaW5rIDxhcmdzPgorICAgZWxzZQorICAgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+CisgICBlbmRpZgorCisgICAiIFRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KKyAgIEhpTGluayB2ZXJpbG9nYW1zQ2hhcmFjdGVyICAgIENoYXJhY3RlcgorICAgSGlMaW5rIHZlcmlsb2dhbXNDb25kaXRpb25hbCAgQ29uZGl0aW9uYWwKKyAgIEhpTGluayB2ZXJpbG9nYW1zUmVwZWF0ICAgICAgIFJlcGVhdAorICAgSGlMaW5rIHZlcmlsb2dhbXNTdHJpbmcgICAgICAgU3RyaW5nCisgICBIaUxpbmsgdmVyaWxvZ2Ftc1RvZG8gICAgICAgICBUb2RvCisgICBIaUxpbmsgdmVyaWxvZ2Ftc0NvbW1lbnQgICAgICBDb21tZW50CisgICBIaUxpbmsgdmVyaWxvZ2Ftc0NvbnN0YW50ICAgICBDb25zdGFudAorICAgSGlMaW5rIHZlcmlsb2dhbXNMYWJlbCAgICAgICAgTGFiZWwKKyAgIEhpTGluayB2ZXJpbG9nYW1zTnVtYmVyICAgICAgIE51bWJlcgorICAgSGlMaW5rIHZlcmlsb2dhbXNPcGVyYXRvciAgICAgU3BlY2lhbAorICAgSGlMaW5rIHZlcmlsb2dhbXNTdGF0ZW1lbnQgICAgU3RhdGVtZW50CisgICBIaUxpbmsgdmVyaWxvZ2Ftc0dsb2JhbCAgICAgICBEZWZpbmUKKyAgIEhpTGluayB2ZXJpbG9nYW1zRGlyZWN0aXZlICAgIFNwZWNpYWxDb21tZW50CisgICBIaUxpbmsgdmVyaWxvZ2Ftc0VzY2FwZSAgICAgICBTcGVjaWFsCisgICBIaUxpbmsgdmVyaWxvZ2Ftc1R5cGUgICAgICAgICBUeXBlCisgICBIaUxpbmsgdmVyaWxvZ2Ftc1N5c3Rhc2sgICAgICBGdW5jdGlvbgorCisgICBkZWxjb21tYW5kIEhpTGluaworZW5kaWYKKworbGV0IGI6Y3VycmVudF9zeW50YXggPSAidmVyaWxvZ2FtcyIKKworIiB2aW06IHRzPTgK