Name: series-workflowcbnqr Phase: Failed StartedAt: 2026-08-05 19:12:05 +0000 UTC FinishedAt: 2026-08-05 19:16:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcbnqr[0] Phase: Succeeded StartedAt: 2026-08-05 19:12:05 +0000 UTC FinishedAt: 2026-08-05 19:16:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcbnqr[0].run-triage Phase: Succeeded StartedAt: 2026-08-05 19:12:05 +0000 UTC FinishedAt: 2026-08-05 19:16:03 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDE5OjE1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIHJlYWQtb25seSBzeXNjdGwgdG8gZXhwb3NlIHRoZSBzdGF0ZSBvZiBhIHN0YXRpYyBrZXkgKG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkgYW5kIHVwZGF0ZXMgZG9jdW1lbnRhdGlvbi4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTk6MTU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1ZmEwYjYwNjczOTg1YjUyNWZjNTEyYWMwMGM3ZGJlY2JlMGRmNDAxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgNSAxOToxNTozMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL21tL2FsbG9jYXRpb24tcHJvZmlsaW5nLnJzdCBiL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0XG5pbmRleCBjM2EyODQ2Nzk1NWYzLi5iMmViY2VmOGFmNmYyIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3RcbiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0XG5AQCAtNDMsNiAmIzQzOzQzLDE3IEBAIHN5c2N0bDpcbiAgIHdhcm5pbmdzIHByb2R1Y2VkIGJ5IGFsbG9jYXRpb25zIG1hZGUgd2hpbGUgcHJvZmlsaW5nIGlzIGRpc2FibGVkIGFuZCBmcmVlZFxuICAgd2hlbiBpdCYjMzk7cyBlbmFibGVkLlxuIFxuJiM0MzsgIC9wcm9jL3N5cy92bS9tZW1fcHJvZmlsaW5nX2NvbXByZXNzZWRcbiYjNDM7XG4mIzQzOyAgMTogUGFnZSBhbGxvYyB0YWcgY29tcHJlc3Npb24gaXMgZW5hYmxlZC5cbiYjNDM7XG4mIzQzOyAgMDogUGFnZSBhbGxvYyB0YWcgY29tcHJlc3Npb24gaXMgZGlzYWJsZWQuXG4mIzQzO1xuJiM0MzsgIFRoaXMgcmVmbGVjdHMgYSBzdGF0aWMgYm9vdC10aW1lIGNvbmZpZ3VyYXRpb24gb2YgaG93IHBhZ2UgYWxsb2NhdGlvbiB0YWdzIGFyZVxuJiM0MzsgIHN0b3JlZCAoaW4gcGFnZSBmbGFncyB3aGVuIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQgYW5kIGluIHBhZ2VfZXh0IHdoZW4gZGlzYWJsZWQpLlxuJiM0MzsgIFRvZ2dsaW5nIGBgbWVtX3Byb2ZpbGluZ2BgIGF0IHJ1bnRpbWUgZG9lcyBub3QgY2hhbmdlIHRoZSBzdGF0ZSBvZlxuJiM0MzsgIGBgbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkYGAuXG4mIzQzO1xuIFJ1bnRpbWUgaW5mbzpcbiAgIC9wcm9jL2FsbG9jaW5mb1xuIFxuZGlmZiAtLWdpdCBhL21tL2FsbG9jX3RhZy5jIGIvbW0vYWxsb2NfdGFnLmNcbmluZGV4IDg0YzVjMzc4M2NhNDYuLmIzMzQxMDMxMDQ3NzkgMTAwNjQ0XG4tLS0gYS9tbS9hbGxvY190YWcuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbW0vYWxsb2NfdGFnLmNcbkBAIC0xMzAzLDYgJiM0MzsxMzAzLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlIG1lbW9yeV9hbGxvY2F0aW9uX3Byb2ZpbGluZ19zeXNjdGxzW10gPSB7XG4gXHRcdC5tb2RlXHRcdD0gMDY0NCxcbiBcdFx0LnByb2NfaGFuZGxlclx0PSBwcm9jX21lbV9wcm9maWxpbmdfaGFuZGxlcixcbiBcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LnByb2NuYW1lXHQ9IFwmIzM0O21lbV9wcm9maWxpbmdfY29tcHJlc3NlZFwmIzM0OyxcbiYjNDM7XHRcdC5kYXRhXHRcdD0gXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkLFxuJiM0MztcdFx0Lm1vZGVcdFx0PSAwNDQ0LFxuJiM0MztcdFx0LnByb2NfaGFuZGxlclx0PSBwcm9jX2RvX3N0YXRpY19rZXksXG4mIzQzO1x0fSxcbiB9O1xuIFxuIHN0YXRpYyB2b2lkIF9faW5pdCBzeXNjdGxfaW5pdCh2b2lkKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDE5OjE1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYSByZWFkLW9ubHkgc3lzY3RsIHRvIGV4cG9zZSB0aGUgc3RhdGUgb2YgYSBzdGF0aWMga2V5IChtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpIGFuZCB1cGRhdGVzIGRvY3VtZW50YXRpb24uIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNWZhMGI2MDY3Mzk4NWI1MjVmYzUxMmFjMDBjN2RiZWNiZTBkZjQwMQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgQXVnIDUgMTk6MTU6MzEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL21tL2FsbG9jYXRpb24tcHJvZmlsaW5nLnJzdCBiL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0CmluZGV4IGMzYTI4NDY3OTU1ZjMuLmIyZWJjZWY4YWY2ZjIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0CiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0CkBAIC00Myw2ICYjNDM7NDMsMTcgQEAgc3lzY3RsOgogICB3YXJuaW5ncyBwcm9kdWNlZCBieSBhbGxvY2F0aW9ucyBtYWRlIHdoaWxlIHByb2ZpbGluZyBpcyBkaXNhYmxlZCBhbmQgZnJlZWQKICAgd2hlbiBpdCYjMzk7cyBlbmFibGVkLgogCiYjNDM7ICAvcHJvYy9zeXMvdm0vbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkCiYjNDM7CiYjNDM7ICAxOiBQYWdlIGFsbG9jIHRhZyBjb21wcmVzc2lvbiBpcyBlbmFibGVkLgomIzQzOwomIzQzOyAgMDogUGFnZSBhbGxvYyB0YWcgY29tcHJlc3Npb24gaXMgZGlzYWJsZWQuCiYjNDM7CiYjNDM7ICBUaGlzIHJlZmxlY3RzIGEgc3RhdGljIGJvb3QtdGltZSBjb25maWd1cmF0aW9uIG9mIGhvdyBwYWdlIGFsbG9jYXRpb24gdGFncyBhcmUKJiM0MzsgIHN0b3JlZCAoaW4gcGFnZSBmbGFncyB3aGVuIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQgYW5kIGluIHBhZ2VfZXh0IHdoZW4gZGlzYWJsZWQpLgomIzQzOyAgVG9nZ2xpbmcgYGBtZW1fcHJvZmlsaW5nYGAgYXQgcnVudGltZSBkb2VzIG5vdCBjaGFuZ2UgdGhlIHN0YXRlIG9mCiYjNDM7ICBgYG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZGBgLgomIzQzOwogUnVudGltZSBpbmZvOgogICAvcHJvYy9hbGxvY2luZm8KIApkaWZmIC0tZ2l0IGEvbW0vYWxsb2NfdGFnLmMgYi9tbS9hbGxvY190YWcuYwppbmRleCA4NGM1YzM3ODNjYTQ2Li5iMzM0MTAzMTA0Nzc5IDEwMDY0NAotLS0gYS9tbS9hbGxvY190YWcuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9hbGxvY190YWcuYwpAQCAtMTMwMyw2ICYjNDM7MTMwMywxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGN0bF90YWJsZSBtZW1vcnlfYWxsb2NhdGlvbl9wcm9maWxpbmdfc3lzY3Rsc1tdID0gewogCQkubW9kZQkJPSAwNjQ0LAogCQkucHJvY19oYW5kbGVyCT0gcHJvY19tZW1fcHJvZmlsaW5nX2hhbmRsZXIsCiAJfSwKJiM0MzsJewomIzQzOwkJLnByb2NuYW1lCT0gJiMzNDttZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQmIzM0OywKJiM0MzsJCS5kYXRhCQk9ICZhbXA7bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkLAomIzQzOwkJLm1vZGUJCT0gMDQ0NCwKJiM0MzsJCS5wcm9jX2hhbmRsZXIJPSBwcm9jX2RvX3N0YXRpY19rZXksCiYjNDM7CX0sCiB9OwogCiBzdGF0aWMgdm9pZCBfX2luaXQgc3lzY3RsX2luaXQodm9pZCkKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTk6MTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMzNgoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDE3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE5ldyBTeXNjdGwgaW4gbW0vYWxsb2NfdGFnLmMqKgoKT2theSwgc28gdGhlcmUmIzM5O3MgYSBuZXcgcGF0Y2ggaW50cm9kdWNpbmcgYSBgbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkYCBzeXNjdGwgd2l0aGluIGBtbS9hbGxvY190YWcuY2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBxdWlja2x5IGFzc2VzcyBpdHMgaW1wYWN0LiBJdCYjMzk7cyByZWFkLW9ubHksIG1vZGUgMDQ0NCwgYW5kIHVzZXMgYHByb2NfZG9fc3RhdGljX2tleWAuIFRoYXQgc3VnZ2VzdHMgaXQmIzM5O3MgbWVyZWx5IGV4cG9zaW5nIGEgc3RhdGljIGJvb3QtdGltZSBjb25maWd1cmF0aW9uLCBwcm9iYWJseSByZWxhdGVkIHRvIG1lbW9yeSBwcm9maWxpbmcuIEkgbmVlZCB0byBxdWlja2x5IHNjYW4gdGhlIGNvZGUgaW4gYG1tL2FsbG9jX3RhZy5jYCB0byBzZWUgaWYgdGhpcyBpcyB0aGUgb25seSBjaGFuZ2Ugb3IgaWYgdGhlcmUgYXJlIG90aGVycy4KClJpZ2h0LCB0aGUgcGF0Y2gganVzdCBhZGRzIHRoZSBzeXNjdGwgYW5kIHVwZGF0ZXMgc29tZSBkb2N1bWVudGF0aW9uLiBTbywgaXQgYXBwZWFycyB0byBiZSBzdHJhaWdodGZvcndhcmQuIEJ1dCB3YWl04oCmYHByb2NfZG9fc3RhdGljX2tleWDigKZ0aGF0JiMzOTtzIGZvciByZWFkaW5nIGEgc3RhdGljIGtleS4gTm93IEkmIzM5O20gcGF1c2luZy4gSXMgdGhpcyBldmVuIHNvbWV0aGluZyBJIG5lZWQgdG8gc3BlbmQgdGltZSBmdXp6aW5nPyBJdCYjMzk7cyBsaXRlcmFsbHkgYSByZWFkLW9ubHkgc3lzY3RsIHJlZmxlY3RpbmcgYSBzdGF0aWMga2V5IHN0YXRlLiBTZWVtcyBwcmV0dHkgbG93LWhhbmdpbmcgZnJ1aXQuIExldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGUgY29kZSB0byBjb25maXJtIHdoYXQgYG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZGAgYWN0dWFsbHkgcmVwcmVzZW50cy4gSXQgd291bGQgYmUgaGVscGZ1bCB0byB1bmRlcnN0YW5kIHdoYXQgaXMgYmVpbmcgZXhwb3NlZCB0aHJvdWdoIHRoaXMgcmVhZC1vbmx5IHN5c2N0bC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxOToxNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3Q9MzM9c3lzY3RsOlxuLS1cbkRvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0LTQ1LVxuRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3Q6NDY6ICAvcHJvYy9zeXMvdm0vbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkXG5Eb2N1bWVudGF0aW9uL21tL2FsbG9jYXRpb24tcHJvZmlsaW5nLnJzdC00Ny1cbi0tXG5Eb2N1bWVudGF0aW9uL21tL2FsbG9jYXRpb24tcHJvZmlsaW5nLnJzdC01NC0gIFRvZ2dsaW5nIGBgbWVtX3Byb2ZpbGluZ2BgIGF0IHJ1bnRpbWUgZG9lcyBub3QgY2hhbmdlIHRoZSBzdGF0ZSBvZlxuRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3Q6NTU6ICBgYG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZGBgLlxuRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3QtNTYtXG4tLVxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oPTE3PWV4dGVybiBzdHJ1Y3QgYWxsb2NfdGFnX2tlcm5lbF9zZWN0aW9uIGtlcm5lbF90YWdzO1xuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTE4LVxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oOjE5OkRFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRShtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpO1xuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTIwLVxuLS1cbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaD0xMDE9c3RhdGljIGlubGluZSBib29sIGdldF9wYWdlX3RhZ19yZWYoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuaW9uIGNvZGV0YWdfcmVmICpyZWYsXG4tLVxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTEwNi1cbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaDoxMDc6XHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaC0xMDgtXHRcdHBnYWxsb2NfdGFnX2lkeCBpZHg7XG4tLVxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oPTEzMD1zdGF0aWMgaW5saW5lIHZvaWQgcHV0X3BhZ2VfdGFnX3JlZih1bmlvbiBwZ3RhZ19yZWZfaGFuZGxlIGhhbmRsZSlcbi0tXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmgtMTM0LVxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oOjEzNTpcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmgtMTM2LVx0XHRwYWdlX2V4dF9wdXQoKHZvaWQgKiloYW5kbGUucmVmIC0gcGFnZV9hbGxvY190YWdnaW5nX29wcy5vZmZzZXQpO1xuLS1cbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaD0xMzk9c3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9wYWdlX3RhZ19yZWYodW5pb24gcGd0YWdfcmVmX2hhbmRsZSBoYW5kbGUsIHVuaW9uIGNvZGV0YWdfcmVmICpyZWYpXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmgtMTQwLXtcbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaDoxNDE6XHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaC0xNDItXHRcdHN0cnVjdCBwYWdlICpwYWdlID0gaGFuZGxlLnBhZ2U7XG4tLVxubGliL2FsbG9jX3RhZy5jPTQ3PUVYUE9SVF9TWU1CT0wobWVtX2FsbG9jX3Byb2ZpbGluZ19rZXkpO1xubGliL2FsbG9jX3RhZy5jLTQ4LVxubGliL2FsbG9jX3RhZy5jOjQ5OkRFRklORV9TVEFUSUNfS0VZX0ZBTFNFKG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCk7XG5saWIvYWxsb2NfdGFnLmMtNTAtXG4tLVxubGliL2FsbG9jX3RhZy5jPTI2Mj12b2lkIF9faW5pdCBhbGxvY190YWdfc2VjX2luaXQodm9pZClcbi0tXG5saWIvYWxsb2NfdGFnLmMtMjY4LVxubGliL2FsbG9jX3RhZy5jOjI2OTpcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXG5saWIvYWxsb2NfdGFnLmMtMjcwLVx0XHRyZXR1cm47XG4tLVxubGliL2FsbG9jX3RhZy5jPTMwMz1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgYWxsb2NfdGFnX2FsaWduKHVuc2lnbmVkIGxvbmcgdmFsKVxubGliL2FsbG9jX3RhZy5jLTMwNC17XG5saWIvYWxsb2NfdGFnLmM6MzA1Olx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xubGliL2FsbG9jX3RhZy5jLTMwNi1cdFx0LyogTm8gYWxpZ25tZW50IHJlcXVpcmVtZW50cyB3aGVuIHdlIGFyZSBub3QgaW5kZXhpbmcgdGhlIHRhZ3MgKi9cbi0tXG5saWIvYWxsb2NfdGFnLmM9MzE1PXN0YXRpYyBib29sIGVuc3VyZV9hbGlnbm1lbnQodW5zaWduZWQgbG9uZyBhbGlnbiwgdW5zaWduZWQgaW50ICpwcmVwZW5kKVxubGliL2FsbG9jX3RhZy5jLTMxNi17XG5saWIvYWxsb2NfdGFnLmM6MzE3Olx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xubGliL2FsbG9jX3RhZy5jLTMxOC1cdFx0LyogTm8gYWxpZ25tZW50IHJlcXVpcmVtZW50cyB3aGVuIHdlIGFyZSBub3QgaW5kZXhpbmcgdGhlIHRhZ3MgKi9cbi0tXG5saWIvYWxsb2NfdGFnLmM9MzM2PXN0YXRpYyBpbmxpbmUgYm9vbCB0YWdzX2FkZHJlc3NhYmxlKHZvaWQpXG4tLVxubGliL2FsbG9jX3RhZy5jLTMzOS1cbmxpYi9hbGxvY190YWcuYzozNDA6XHRpZiAoIXN0YXRpY19rZXlfZW5hYmxlZChcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxubGliL2FsbG9jX3RhZy5jLTM0MS1cdFx0cmV0dXJuIHRydWU7IC8qIHdpdGggcGFnZV9leHQgdGFncyBhcmUgYWx3YXlzIGFkZHJlc3NhYmxlICovXG4tLVxubGliL2FsbG9jX3RhZy5jPTcyMj1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9lYXJseV9tZW1fcHJvZmlsaW5nKGNoYXIgKnN0cilcbi0tXG5saWIvYWxsb2NfdGFnLmMtNzU3LVx0fVxubGliL2FsbG9jX3RhZy5jOjc1ODpcdGlmIChjb21wcmVzc2VkICE9IHN0YXRpY19rZXlfZW5hYmxlZChcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKSB7XG5saWIvYWxsb2NfdGFnLmMtNzU5LVx0XHRpZiAoY29tcHJlc3NlZClcbmxpYi9hbGxvY190YWcuYzo3NjA6XHRcdFx0c3RhdGljX2JyYW5jaF9lbmFibGUoXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcbmxpYi9hbGxvY190YWcuYy03NjEtXHRcdGVsc2VcbmxpYi9hbGxvY190YWcuYzo3NjI6XHRcdFx0c3RhdGljX2JyYW5jaF9kaXNhYmxlKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCk7XG5saWIvYWxsb2NfdGFnLmMtNzYzLVx0fVxuLS1cbmxpYi9hbGxvY190YWcuYz03Njk9c3RhdGljIF9faW5pdCBib29sIG5lZWRfcGFnZV9hbGxvY190YWdnaW5nKHZvaWQpXG5saWIvYWxsb2NfdGFnLmMtNzcwLXtcbmxpYi9hbGxvY190YWcuYzo3NzE6XHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXG5saWIvYWxsb2NfdGFnLmMtNzcyLVx0XHRyZXR1cm4gZmFsc2U7XG4tLVxubGliL2FsbG9jX3RhZy5jPTg0OT12b2lkIGFsbG9jX3RhZ19hZGRfZWFybHlfcGZuKHVuc2lnbmVkIGxvbmcgcGZuLCBnZnBfdCBnZnBfZmxhZ3MpXG4tLVxubGliL2FsbG9jX3RhZy5jLTg1Mi1cbmxpYi9hbGxvY190YWcuYzo4NTM6XHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXG5saWIvYWxsb2NfdGFnLmMtODU0LVx0XHRyZXR1cm47XG4tLVxubGliL2FsbG9jX3RhZy5jPTg2Nz1zdGF0aWMgdm9pZCBfX2luaXQgY2xlYXJfZWFybHlfYWxsb2NfcGZuX3RhZ19yZWZzKHZvaWQpXG4tLVxubGliL2FsbG9jX3RhZy5jLTg3Mi1cbmxpYi9hbGxvY190YWcuYzo4NzM6XHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXG5saWIvYWxsb2NfdGFnLmMtODc0LVx0XHRyZXR1cm47XG4tLVxubW0vYWxsb2NfdGFnLmM9NTM9RVhQT1JUX1NZTUJPTChtZW1fYWxsb2NfcHJvZmlsaW5nX2tleSk7XG5tbS9hbGxvY190YWcuYy01NC1cbm1tL2FsbG9jX3RhZy5jOjU1OkRFRklORV9TVEFUSUNfS0VZX0ZBTFNFKG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCk7XG5tbS9hbGxvY190YWcuYy01Ni1cbi0tXG5tbS9hbGxvY190YWcuYz02MDc9dm9pZCBfX2luaXQgYWxsb2NfdGFnX3NlY19pbml0KHZvaWQpXG4tLVxubW0vYWxsb2NfdGFnLmMtNjEzLVxubW0vYWxsb2NfdGFnLmM6NjE0Olx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSlcbm1tL2FsbG9jX3RhZy5jLTYxNS1cdFx0cmV0dXJuO1xuLS1cbm1tL2FsbG9jX3RhZy5jPTY0OD1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgYWxsb2NfdGFnX2FsaWduKHVuc2lnbmVkIGxvbmcgdmFsKVxubW0vYWxsb2NfdGFnLmMtNjQ5LXtcbm1tL2FsbG9jX3RhZy5jOjY1MDpcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcbm1tL2FsbG9jX3RhZy5jLTY1MS1cdFx0LyogTm8gYWxpZ25tZW50IHJlcXVpcmVtZW50cyB3aGVuIHdlIGFyZSBub3QgaW5kZXhpbmcgdGhlIHRhZ3MgKi9cbi0tXG5tbS9hbGxvY190YWcuYz02NjA9c3RhdGljIGJvb2wgZW5zdXJlX2FsaWdubWVudCh1bnNpZ25lZCBsb25nIGFsaWduLCB1bnNpZ25lZCBpbnQgKnByZXBlbmQpXG5tbS9hbGxvY190YWcuYy02NjEte1xubW0vYWxsb2NfdGFnLmM6NjYyOlx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xubW0vYWxsb2NfdGFnLmMtNjYzLVx0XHQvKiBObyBhbGlnbm1lbnQgcmVxdWlyZW1lbnRzIHdoZW4gd2UgYXJlIG5vdCBpbmRleGluZyB0aGUgdGFncyAqL1xuLS1cbm1tL2FsbG9jX3RhZy5jPTY4MT1zdGF0aWMgaW5saW5lIGJvb2wgdGFnc19hZGRyZXNzYWJsZSh2b2lkKVxuLS1cbm1tL2FsbG9jX3RhZy5jLTY4NC1cbm1tL2FsbG9jX3RhZy5jOjY4NTpcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXG5tbS9hbGxvY190YWcuYy02ODYtXHRcdHJldHVybiB0cnVlOyAvKiB3aXRoIHBhZ2VfZXh0IHRhZ3MgYXJlIGFsd2F5cyBhZGRyZXNzYWJsZSAqL1xuLS1cbm1tL2FsbG9jX3RhZy5jPTEwNjc9c3RhdGljIGludCBfX2luaXQgc2V0dXBfZWFybHlfbWVtX3Byb2ZpbGluZyhjaGFyICpzdHIpXG4tLVxubW0vYWxsb2NfdGFnLmMtMTEwMi1cdH1cbm1tL2FsbG9jX3RhZy5jOjExMDM6XHRpZiAoY29tcHJlc3NlZCAhPSBzdGF0aWNfa2V5X2VuYWJsZWQoXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xubW0vYWxsb2NfdGFnLmMtMTEwNC1cdFx0aWYgKGNvbXByZXNzZWQpXG5tbS9hbGxvY190YWcuYzoxMTA1Olx0XHRcdHN0YXRpY19icmFuY2hfZW5hYmxlKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCk7XG5tbS9hbGxvY190YWcuYy0xMTA2LVx0XHRlbHNlXG5tbS9hbGxvY190YWcuYzoxMTA3Olx0XHRcdHN0YXRpY19icmFuY2hfZGlzYWJsZShcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpO1xubW0vYWxsb2NfdGFnLmMtMTEwOC1cdH1cbi0tXG5tbS9hbGxvY190YWcuYz0xMTE0PXN0YXRpYyBfX2luaXQgYm9vbCBuZWVkX3BhZ2VfYWxsb2NfdGFnZ2luZyh2b2lkKVxubW0vYWxsb2NfdGFnLmMtMTExNS17XG5tbS9hbGxvY190YWcuYzoxMTE2Olx0aWYgKHN0YXRpY19rZXlfZW5hYmxlZChcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxubW0vYWxsb2NfdGFnLmMtMTExNy1cdFx0cmV0dXJuIGZhbHNlO1xuLS1cbm1tL2FsbG9jX3RhZy5jPTExODI9dm9pZCBhbGxvY190YWdfYWRkX2Vhcmx5X3Bmbih1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWduZWQgaW50IGFsbG9jX2ZsYWdzKVxuLS1cbm1tL2FsbG9jX3RhZy5jLTExODUtXG5tbS9hbGxvY190YWcuYzoxMTg2Olx0aWYgKHN0YXRpY19rZXlfZW5hYmxlZChcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxubW0vYWxsb2NfdGFnLmMtMTE4Ny1cdFx0cmV0dXJuO1xuLS1cbm1tL2FsbG9jX3RhZy5jPTEyMDA9c3RhdGljIHZvaWQgX19pbml0IGNsZWFyX2Vhcmx5X2FsbG9jX3Bmbl90YWdfcmVmcyh2b2lkKVxuLS1cbm1tL2FsbG9jX3RhZy5jLTEyMDUtXG5tbS9hbGxvY190YWcuYzoxMjA2Olx0aWYgKHN0YXRpY19rZXlfZW5hYmxlZChcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxubW0vYWxsb2NfdGFnLmMtMTIwNy1cdFx0cmV0dXJuO1xuLS1cbm1tL2FsbG9jX3RhZy5jPTEyOTk9c3RhdGljIGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgbWVtb3J5X2FsbG9jYXRpb25fcHJvZmlsaW5nX3N5c2N0bHNbXSA9IHtcbi0tXG5tbS9hbGxvY190YWcuYy0xMzA2LVx0e1xubW0vYWxsb2NfdGFnLmM6MTMwNzpcdFx0LnByb2NuYW1lXHQ9IFwmIzM0O21lbV9wcm9maWxpbmdfY29tcHJlc3NlZFwmIzM0Oyxcbm1tL2FsbG9jX3RhZy5jOjEzMDg6XHRcdC5kYXRhXHRcdD0gXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkLFxubW0vYWxsb2NfdGFnLmMtMTMwOS1cdFx0Lm1vZGVcdFx0PSAwNDQ0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDE5OjE1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0MTYKCQkJCQkJCW91dHB1dDogNzMKCQkJCQkJCXRob3VnaHRzOiAzNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQXNzZXNzaW5nIHRoZSBGdXp6aW5nIEltcGFjdCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGcm9tIHdoYXQgSSBzZWUsIHRoaXMgcGF0Y2ggaXMgb25seSBhZGRpbmcgYSByZWFkLW9ubHkgYHN5c2N0bGAgZW50cnkgdG8gZXhwb3NlIHRoZSB2YWx1ZSBvZiBgbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBhbmQgSSYjMzk7bSBjb25maWRlbnQgaW4gc2F5aW5nLCB0aGF0IHRoaXMgaXMgcHVyZWx5IG9ic2VydmF0aW9uYWwuIEl0JiMzOTtzIG5vdCBtb2RpZnlpbmcgYW55IGtlcm5lbCBsb2dpYywganVzdCBleHBvc2luZyBhIHN0YXRpYyBrZXkgc3RhdGUuIFRoaXMgbmV3IHN5c2N0bCBlbnRyeSBpcyBwdXJlbHkgaW5mb3JtYXRpb25hbCwgbGlrZSBwZWVraW5nIGludG8gYSB2YXJpYWJsZSwgaXQgZG9lc24mIzM5O3QgaW1wYWN0IGFueSBleGVjdXRpb24gZmxvd3MuCgpMZXQgbWUgdGFrZSBhbm90aGVyIGxvb2sgYXQgdGhlIGRpZmYganVzdCB0byBiZSBleHRyYSBzdXJlLiAqQ2hlY2tzIHRoZSBkaWZmKiBOb3BlLCBzdGlsbCB0aGUgc2FtZS4gSSBjYW4gY29uZmlybSB0aGlzIGlzIGEgc3RyYWlnaHRmb3J3YXJkIGFkZGl0aW9uIG9mIGEgc3lzY3RsLgoKVGhlcmVmb3JlLCBnaXZlbiB0aGUgbmF0dXJlIG9mIHRoaXMgY2hhbmdlLCBJJiMzOTttIGNvbWZvcnRhYmxlIHNldHRpbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuIE5vIGFjdGl2ZSBmdXp6aW5nIGlzIG5lZWRlZCBmb3IgdGhpcyBwYXRjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxOToxNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIHJlYWQtb25seSBzeXNjdGwgdG8gZXhwb3NlIHRoZSBzdGF0ZSBvZiBhIHN0YXRpYyBrZXkgKG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkgYW5kIHVwZGF0ZXMgZG9jdW1lbnRhdGlvbi4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIHJlYWQtb25seSBzeXNjdGwgdG8gZXhwb3NlIHRoZSBzdGF0ZSBvZiBhIHN0YXRpYyBrZXkgKG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkgYW5kIHVwZGF0ZXMgZG9jdW1lbnRhdGlvbi4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxOToxNTozMy4yNDM1MTk3NTFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzg4ODYxMjc1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgcmVhZC1vbmx5IHN5c2N0bCB0byBleHBvc2UgdGhlIHN0YXRlIG9mIGEgc3RhdGljIGtleSAobWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSBhbmQgdXBkYXRlcyBkb2N1bWVudGF0aW9uLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTk6MTU6MzMuMjQzNTMwMDIxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDM0NDUyMjYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNWZhMGI2MDY3Mzk4NWI1MjVmYzUxMmFjMDBjN2RiZWNiZTBkZjQwMVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEF1ZyA1IDE5OjE1OjMxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0IGIvRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3RcXG5pbmRleCBjM2EyODQ2Nzk1NWYzLi5iMmViY2VmOGFmNmYyIDEwMDY0NFxcbi0tLSBhL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0XFxuKysrIGIvRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3RcXG5AQCAtNDMsNiArNDMsMTcgQEAgc3lzY3RsOlxcbiAgIHdhcm5pbmdzIHByb2R1Y2VkIGJ5IGFsbG9jYXRpb25zIG1hZGUgd2hpbGUgcHJvZmlsaW5nIGlzIGRpc2FibGVkIGFuZCBmcmVlZFxcbiAgIHdoZW4gaXQncyBlbmFibGVkLlxcbiBcXG4rICAvcHJvYy9zeXMvdm0vbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkXFxuK1xcbisgIDE6IFBhZ2UgYWxsb2MgdGFnIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQuXFxuK1xcbisgIDA6IFBhZ2UgYWxsb2MgdGFnIGNvbXByZXNzaW9uIGlzIGRpc2FibGVkLlxcbitcXG4rICBUaGlzIHJlZmxlY3RzIGEgc3RhdGljIGJvb3QtdGltZSBjb25maWd1cmF0aW9uIG9mIGhvdyBwYWdlIGFsbG9jYXRpb24gdGFncyBhcmVcXG4rICBzdG9yZWQgKGluIHBhZ2UgZmxhZ3Mgd2hlbiBjb21wcmVzc2lvbiBpcyBlbmFibGVkIGFuZCBpbiBwYWdlX2V4dCB3aGVuIGRpc2FibGVkKS5cXG4rICBUb2dnbGluZyBgYG1lbV9wcm9maWxpbmdgYCBhdCBydW50aW1lIGRvZXMgbm90IGNoYW5nZSB0aGUgc3RhdGUgb2ZcXG4rICBgYG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZGBgLlxcbitcXG4gUnVudGltZSBpbmZvOlxcbiAgIC9wcm9jL2FsbG9jaW5mb1xcbiBcXG5kaWZmIC0tZ2l0IGEvbW0vYWxsb2NfdGFnLmMgYi9tbS9hbGxvY190YWcuY1xcbmluZGV4IDg0YzVjMzc4M2NhNDYuLmIzMzQxMDMxMDQ3NzkgMTAwNjQ0XFxuLS0tIGEvbW0vYWxsb2NfdGFnLmNcXG4rKysgYi9tbS9hbGxvY190YWcuY1xcbkBAIC0xMzAzLDYgKzEzMDMsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgbWVtb3J5X2FsbG9jYXRpb25fcHJvZmlsaW5nX3N5c2N0bHNbXSA9IHtcXG4gXFx0XFx0Lm1vZGVcXHRcXHQ9IDA2NDQsXFxuIFxcdFxcdC5wcm9jX2hhbmRsZXJcXHQ9IHByb2NfbWVtX3Byb2ZpbGluZ19oYW5kbGVyLFxcbiBcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5wcm9jbmFtZVxcdD0gXFxcIm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZFxcXCIsXFxuK1xcdFxcdC5kYXRhXFx0XFx0PSBcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkLFxcbitcXHRcXHQubW9kZVxcdFxcdD0gMDQ0NCxcXG4rXFx0XFx0LnByb2NfaGFuZGxlclxcdD0gcHJvY19kb19zdGF0aWNfa2V5LFxcbitcXHR9LFxcbiB9O1xcbiBcXG4gc3RhdGljIHZvaWQgX19pbml0IHN5c2N0bF9pbml0KHZvaWQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDE5OjE1OjM0LjY3OTE2NjI1MloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE2NDUyOTU1MjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgYSByZWFkLW9ubHkgc3lzY3RsIHRvIGV4cG9zZSB0aGUgc3RhdGUgb2YgYSBzdGF0aWMga2V5IChtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpIGFuZCB1cGRhdGVzIGRvY3VtZW50YXRpb24uIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1ZmEwYjYwNjczOTg1YjUyNWZjNTEyYWMwMGM3ZGJlY2JlMGRmNDAxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgNSAxOToxNTozMSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0IGIvRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3RcbmluZGV4IGMzYTI4NDY3OTU1ZjMuLmIyZWJjZWY4YWY2ZjIgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL21tL2FsbG9jYXRpb24tcHJvZmlsaW5nLnJzdFxuKysrIGIvRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3RcbkBAIC00Myw2ICs0MywxNyBAQCBzeXNjdGw6XG4gICB3YXJuaW5ncyBwcm9kdWNlZCBieSBhbGxvY2F0aW9ucyBtYWRlIHdoaWxlIHByb2ZpbGluZyBpcyBkaXNhYmxlZCBhbmQgZnJlZWRcbiAgIHdoZW4gaXQncyBlbmFibGVkLlxuIFxuKyAgL3Byb2Mvc3lzL3ZtL21lbV9wcm9maWxpbmdfY29tcHJlc3NlZFxuK1xuKyAgMTogUGFnZSBhbGxvYyB0YWcgY29tcHJlc3Npb24gaXMgZW5hYmxlZC5cbitcbisgIDA6IFBhZ2UgYWxsb2MgdGFnIGNvbXByZXNzaW9uIGlzIGRpc2FibGVkLlxuK1xuKyAgVGhpcyByZWZsZWN0cyBhIHN0YXRpYyBib290LXRpbWUgY29uZmlndXJhdGlvbiBvZiBob3cgcGFnZSBhbGxvY2F0aW9uIHRhZ3MgYXJlXG4rICBzdG9yZWQgKGluIHBhZ2UgZmxhZ3Mgd2hlbiBjb21wcmVzc2lvbiBpcyBlbmFibGVkIGFuZCBpbiBwYWdlX2V4dCB3aGVuIGRpc2FibGVkKS5cbisgIFRvZ2dsaW5nIGBgbWVtX3Byb2ZpbGluZ2BgIGF0IHJ1bnRpbWUgZG9lcyBub3QgY2hhbmdlIHRoZSBzdGF0ZSBvZlxuKyAgYGBtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWRgYC5cbitcbiBSdW50aW1lIGluZm86XG4gICAvcHJvYy9hbGxvY2luZm9cbiBcbmRpZmYgLS1naXQgYS9tbS9hbGxvY190YWcuYyBiL21tL2FsbG9jX3RhZy5jXG5pbmRleCA4NGM1YzM3ODNjYTQ2Li5iMzM0MTAzMTA0Nzc5IDEwMDY0NFxuLS0tIGEvbW0vYWxsb2NfdGFnLmNcbisrKyBiL21tL2FsbG9jX3RhZy5jXG5AQCAtMTMwMyw2ICsxMzAzLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlIG1lbW9yeV9hbGxvY2F0aW9uX3Byb2ZpbGluZ19zeXNjdGxzW10gPSB7XG4gXHRcdC5tb2RlXHRcdD0gMDY0NCxcbiBcdFx0LnByb2NfaGFuZGxlclx0PSBwcm9jX21lbV9wcm9maWxpbmdfaGFuZGxlcixcbiBcdH0sXG4rXHR7XG4rXHRcdC5wcm9jbmFtZVx0PSBcIm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZFwiLFxuK1x0XHQuZGF0YVx0XHQ9IFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCxcbitcdFx0Lm1vZGVcdFx0PSAwNDQ0LFxuK1x0XHQucHJvY19oYW5kbGVyXHQ9IHByb2NfZG9fc3RhdGljX2tleSxcbitcdH0sXG4gfTtcbiBcbiBzdGF0aWMgdm9pZCBfX2luaXQgc3lzY3RsX2luaXQodm9pZClcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDE5OjE1OjM0LjY3OTE2OTExMloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNTQxNjgyMzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOZXcgU3lzY3RsIGluIG1tL2FsbG9jX3RhZy5jKipcblxuT2theSwgc28gdGhlcmUncyBhIG5ldyBwYXRjaCBpbnRyb2R1Y2luZyBhIGBtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWRgIHN5c2N0bCB3aXRoaW4gYG1tL2FsbG9jX3RhZy5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHF1aWNrbHkgYXNzZXNzIGl0cyBpbXBhY3QuIEl0J3MgcmVhZC1vbmx5LCBtb2RlIDA0NDQsIGFuZCB1c2VzIGBwcm9jX2RvX3N0YXRpY19rZXlgLiBUaGF0IHN1Z2dlc3RzIGl0J3MgbWVyZWx5IGV4cG9zaW5nIGEgc3RhdGljIGJvb3QtdGltZSBjb25maWd1cmF0aW9uLCBwcm9iYWJseSByZWxhdGVkIHRvIG1lbW9yeSBwcm9maWxpbmcuIEkgbmVlZCB0byBxdWlja2x5IHNjYW4gdGhlIGNvZGUgaW4gYG1tL2FsbG9jX3RhZy5jYCB0byBzZWUgaWYgdGhpcyBpcyB0aGUgb25seSBjaGFuZ2Ugb3IgaWYgdGhlcmUgYXJlIG90aGVycy5cblxuUmlnaHQsIHRoZSBwYXRjaCBqdXN0IGFkZHMgdGhlIHN5c2N0bCBhbmQgdXBkYXRlcyBzb21lIGRvY3VtZW50YXRpb24uIFNvLCBpdCBhcHBlYXJzIHRvIGJlIHN0cmFpZ2h0Zm9yd2FyZC4gQnV0IHdhaXTigKZgcHJvY19kb19zdGF0aWNfa2V5YOKApnRoYXQncyBmb3IgcmVhZGluZyBhIHN0YXRpYyBrZXkuIE5vdyBJJ20gcGF1c2luZy4gSXMgdGhpcyBldmVuIHNvbWV0aGluZyBJIG5lZWQgdG8gc3BlbmQgdGltZSBmdXp6aW5nPyBJdCdzIGxpdGVyYWxseSBhIHJlYWQtb25seSBzeXNjdGwgcmVmbGVjdGluZyBhIHN0YXRpYyBrZXkgc3RhdGUuIFNlZW1zIHByZXR0eSBsb3ctaGFuZ2luZyBmcnVpdC4gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBjb2RlIHRvIGNvbmZpcm0gd2hhdCBgbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkYCBhY3R1YWxseSByZXByZXNlbnRzLiBJdCB3b3VsZCBiZSBoZWxwZnVsIHRvIHVuZGVyc3RhbmQgd2hhdCBpcyBiZWluZyBleHBvc2VkIHRocm91Z2ggdGhpcyByZWFkLW9ubHkgc3lzY3RsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzM2LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTk6MTU6MzguNzMzMzQwNzEzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyMjA2NjA1NDEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0PTMzPXN5c2N0bDpcXG4tLVxcbkRvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0LTQ1LVxcbkRvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0OjQ2OiAgL3Byb2Mvc3lzL3ZtL21lbV9wcm9maWxpbmdfY29tcHJlc3NlZFxcbkRvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0LTQ3LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3QtNTQtICBUb2dnbGluZyBgYG1lbV9wcm9maWxpbmdgYCBhdCBydW50aW1lIGRvZXMgbm90IGNoYW5nZSB0aGUgc3RhdGUgb2ZcXG5Eb2N1bWVudGF0aW9uL21tL2FsbG9jYXRpb24tcHJvZmlsaW5nLnJzdDo1NTogIGBgbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkYGAuXFxuRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3QtNTYtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmg9MTc9ZXh0ZXJuIHN0cnVjdCBhbGxvY190YWdfa2VybmVsX3NlY3Rpb24ga2VybmVsX3RhZ3M7XFxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTE4LVxcbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaDoxOTpERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0UobWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmgtMjAtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmg9MTAxPXN0YXRpYyBpbmxpbmUgYm9vbCBnZXRfcGFnZV90YWdfcmVmKHN0cnVjdCBwYWdlICpwYWdlLCB1bmlvbiBjb2RldGFnX3JlZiAqcmVmLFxcbi0tXFxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTEwNi1cXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmg6MTA3OlxcdGlmIChzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmgtMTA4LVxcdFxcdHBnYWxsb2NfdGFnX2lkeCBpZHg7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmg9MTMwPXN0YXRpYyBpbmxpbmUgdm9pZCBwdXRfcGFnZV90YWdfcmVmKHVuaW9uIHBndGFnX3JlZl9oYW5kbGUgaGFuZGxlKVxcbi0tXFxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTEzNC1cXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmg6MTM1OlxcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxcbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaC0xMzYtXFx0XFx0cGFnZV9leHRfcHV0KCh2b2lkICopaGFuZGxlLnJlZiAtIHBhZ2VfYWxsb2NfdGFnZ2luZ19vcHMub2Zmc2V0KTtcXG4tLVxcbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaD0xMzk9c3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9wYWdlX3RhZ19yZWYodW5pb24gcGd0YWdfcmVmX2hhbmRsZSBoYW5kbGUsIHVuaW9uIGNvZGV0YWdfcmVmICpyZWYpXFxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTE0MC17XFxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oOjE0MTpcXHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKSB7XFxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTE0Mi1cXHRcXHRzdHJ1Y3QgcGFnZSAqcGFnZSA9IGhhbmRsZS5wYWdlO1xcbi0tXFxubGliL2FsbG9jX3RhZy5jPTQ3PUVYUE9SVF9TWU1CT0wobWVtX2FsbG9jX3Byb2ZpbGluZ19rZXkpO1xcbmxpYi9hbGxvY190YWcuYy00OC1cXG5saWIvYWxsb2NfdGFnLmM6NDk6REVGSU5FX1NUQVRJQ19LRVlfRkFMU0UobWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcXG5saWIvYWxsb2NfdGFnLmMtNTAtXFxuLS1cXG5saWIvYWxsb2NfdGFnLmM9MjYyPXZvaWQgX19pbml0IGFsbG9jX3RhZ19zZWNfaW5pdCh2b2lkKVxcbi0tXFxubGliL2FsbG9jX3RhZy5jLTI2OC1cXG5saWIvYWxsb2NfdGFnLmM6MjY5OlxcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxcbmxpYi9hbGxvY190YWcuYy0yNzAtXFx0XFx0cmV0dXJuO1xcbi0tXFxubGliL2FsbG9jX3RhZy5jPTMwMz1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgYWxsb2NfdGFnX2FsaWduKHVuc2lnbmVkIGxvbmcgdmFsKVxcbmxpYi9hbGxvY190YWcuYy0zMDQte1xcbmxpYi9hbGxvY190YWcuYzozMDU6XFx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcXG5saWIvYWxsb2NfdGFnLmMtMzA2LVxcdFxcdC8qIE5vIGFsaWdubWVudCByZXF1aXJlbWVudHMgd2hlbiB3ZSBhcmUgbm90IGluZGV4aW5nIHRoZSB0YWdzICovXFxuLS1cXG5saWIvYWxsb2NfdGFnLmM9MzE1PXN0YXRpYyBib29sIGVuc3VyZV9hbGlnbm1lbnQodW5zaWduZWQgbG9uZyBhbGlnbiwgdW5zaWduZWQgaW50ICpwcmVwZW5kKVxcbmxpYi9hbGxvY190YWcuYy0zMTYte1xcbmxpYi9hbGxvY190YWcuYzozMTc6XFx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcXG5saWIvYWxsb2NfdGFnLmMtMzE4LVxcdFxcdC8qIE5vIGFsaWdubWVudCByZXF1aXJlbWVudHMgd2hlbiB3ZSBhcmUgbm90IGluZGV4aW5nIHRoZSB0YWdzICovXFxuLS1cXG5saWIvYWxsb2NfdGFnLmM9MzM2PXN0YXRpYyBpbmxpbmUgYm9vbCB0YWdzX2FkZHJlc3NhYmxlKHZvaWQpXFxuLS1cXG5saWIvYWxsb2NfdGFnLmMtMzM5LVxcbmxpYi9hbGxvY190YWcuYzozNDA6XFx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXFxubGliL2FsbG9jX3RhZy5jLTM0MS1cXHRcXHRyZXR1cm4gdHJ1ZTsgLyogd2l0aCBwYWdlX2V4dCB0YWdzIGFyZSBhbHdheXMgYWRkcmVzc2FibGUgKi9cXG4tLVxcbmxpYi9hbGxvY190YWcuYz03MjI9c3RhdGljIGludCBfX2luaXQgc2V0dXBfZWFybHlfbWVtX3Byb2ZpbGluZyhjaGFyICpzdHIpXFxuLS1cXG5saWIvYWxsb2NfdGFnLmMtNzU3LVxcdH1cXG5saWIvYWxsb2NfdGFnLmM6NzU4OlxcdGlmIChjb21wcmVzc2VkICE9IHN0YXRpY19rZXlfZW5hYmxlZChcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xcbmxpYi9hbGxvY190YWcuYy03NTktXFx0XFx0aWYgKGNvbXByZXNzZWQpXFxubGliL2FsbG9jX3RhZy5jOjc2MDpcXHRcXHRcXHRzdGF0aWNfYnJhbmNoX2VuYWJsZShcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcXG5saWIvYWxsb2NfdGFnLmMtNzYxLVxcdFxcdGVsc2VcXG5saWIvYWxsb2NfdGFnLmM6NzYyOlxcdFxcdFxcdHN0YXRpY19icmFuY2hfZGlzYWJsZShcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcXG5saWIvYWxsb2NfdGFnLmMtNzYzLVxcdH1cXG4tLVxcbmxpYi9hbGxvY190YWcuYz03Njk9c3RhdGljIF9faW5pdCBib29sIG5lZWRfcGFnZV9hbGxvY190YWdnaW5nKHZvaWQpXFxubGliL2FsbG9jX3RhZy5jLTc3MC17XFxubGliL2FsbG9jX3RhZy5jOjc3MTpcXHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxcbmxpYi9hbGxvY190YWcuYy03NzItXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxubGliL2FsbG9jX3RhZy5jPTg0OT12b2lkIGFsbG9jX3RhZ19hZGRfZWFybHlfcGZuKHVuc2lnbmVkIGxvbmcgcGZuLCBnZnBfdCBnZnBfZmxhZ3MpXFxuLS1cXG5saWIvYWxsb2NfdGFnLmMtODUyLVxcbmxpYi9hbGxvY190YWcuYzo4NTM6XFx0aWYgKHN0YXRpY19rZXlfZW5hYmxlZChcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSlcXG5saWIvYWxsb2NfdGFnLmMtODU0LVxcdFxcdHJldHVybjtcXG4tLVxcbmxpYi9hbGxvY190YWcuYz04Njc9c3RhdGljIHZvaWQgX19pbml0IGNsZWFyX2Vhcmx5X2FsbG9jX3Bmbl90YWdfcmVmcyh2b2lkKVxcbi0tXFxubGliL2FsbG9jX3RhZy5jLTg3Mi1cXG5saWIvYWxsb2NfdGFnLmM6ODczOlxcdGlmIChzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXFxubGliL2FsbG9jX3RhZy5jLTg3NC1cXHRcXHRyZXR1cm47XFxuLS1cXG5tbS9hbGxvY190YWcuYz01Mz1FWFBPUlRfU1lNQk9MKG1lbV9hbGxvY19wcm9maWxpbmdfa2V5KTtcXG5tbS9hbGxvY190YWcuYy01NC1cXG5tbS9hbGxvY190YWcuYzo1NTpERUZJTkVfU1RBVElDX0tFWV9GQUxTRShtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpO1xcbm1tL2FsbG9jX3RhZy5jLTU2LVxcbi0tXFxubW0vYWxsb2NfdGFnLmM9NjA3PXZvaWQgX19pbml0IGFsbG9jX3RhZ19zZWNfaW5pdCh2b2lkKVxcbi0tXFxubW0vYWxsb2NfdGFnLmMtNjEzLVxcbm1tL2FsbG9jX3RhZy5jOjYxNDpcXHRpZiAoIXN0YXRpY19rZXlfZW5hYmxlZChcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSlcXG5tbS9hbGxvY190YWcuYy02MTUtXFx0XFx0cmV0dXJuO1xcbi0tXFxubW0vYWxsb2NfdGFnLmM9NjQ4PXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBhbGxvY190YWdfYWxpZ24odW5zaWduZWQgbG9uZyB2YWwpXFxubW0vYWxsb2NfdGFnLmMtNjQ5LXtcXG5tbS9hbGxvY190YWcuYzo2NTA6XFx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcXG5tbS9hbGxvY190YWcuYy02NTEtXFx0XFx0LyogTm8gYWxpZ25tZW50IHJlcXVpcmVtZW50cyB3aGVuIHdlIGFyZSBub3QgaW5kZXhpbmcgdGhlIHRhZ3MgKi9cXG4tLVxcbm1tL2FsbG9jX3RhZy5jPTY2MD1zdGF0aWMgYm9vbCBlbnN1cmVfYWxpZ25tZW50KHVuc2lnbmVkIGxvbmcgYWxpZ24sIHVuc2lnbmVkIGludCAqcHJlcGVuZClcXG5tbS9hbGxvY190YWcuYy02NjEte1xcbm1tL2FsbG9jX3RhZy5jOjY2MjpcXHRpZiAoIXN0YXRpY19rZXlfZW5hYmxlZChcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xcbm1tL2FsbG9jX3RhZy5jLTY2My1cXHRcXHQvKiBObyBhbGlnbm1lbnQgcmVxdWlyZW1lbnRzIHdoZW4gd2UgYXJlIG5vdCBpbmRleGluZyB0aGUgdGFncyAqL1xcbi0tXFxubW0vYWxsb2NfdGFnLmM9NjgxPXN0YXRpYyBpbmxpbmUgYm9vbCB0YWdzX2FkZHJlc3NhYmxlKHZvaWQpXFxuLS1cXG5tbS9hbGxvY190YWcuYy02ODQtXFxubW0vYWxsb2NfdGFnLmM6Njg1OlxcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxcbm1tL2FsbG9jX3RhZy5jLTY4Ni1cXHRcXHRyZXR1cm4gdHJ1ZTsgLyogd2l0aCBwYWdlX2V4dCB0YWdzIGFyZSBhbHdheXMgYWRkcmVzc2FibGUgKi9cXG4tLVxcbm1tL2FsbG9jX3RhZy5jPTEwNjc9c3RhdGljIGludCBfX2luaXQgc2V0dXBfZWFybHlfbWVtX3Byb2ZpbGluZyhjaGFyICpzdHIpXFxuLS1cXG5tbS9hbGxvY190YWcuYy0xMTAyLVxcdH1cXG5tbS9hbGxvY190YWcuYzoxMTAzOlxcdGlmIChjb21wcmVzc2VkICE9IHN0YXRpY19rZXlfZW5hYmxlZChcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xcbm1tL2FsbG9jX3RhZy5jLTExMDQtXFx0XFx0aWYgKGNvbXByZXNzZWQpXFxubW0vYWxsb2NfdGFnLmM6MTEwNTpcXHRcXHRcXHRzdGF0aWNfYnJhbmNoX2VuYWJsZShcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcXG5tbS9hbGxvY190YWcuYy0xMTA2LVxcdFxcdGVsc2VcXG5tbS9hbGxvY190YWcuYzoxMTA3OlxcdFxcdFxcdHN0YXRpY19icmFuY2hfZGlzYWJsZShcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcXG5tbS9hbGxvY190YWcuYy0xMTA4LVxcdH1cXG4tLVxcbm1tL2FsbG9jX3RhZy5jPTExMTQ9c3RhdGljIF9faW5pdCBib29sIG5lZWRfcGFnZV9hbGxvY190YWdnaW5nKHZvaWQpXFxubW0vYWxsb2NfdGFnLmMtMTExNS17XFxubW0vYWxsb2NfdGFnLmM6MTExNjpcXHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxcbm1tL2FsbG9jX3RhZy5jLTExMTctXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxubW0vYWxsb2NfdGFnLmM9MTE4Mj12b2lkIGFsbG9jX3RhZ19hZGRfZWFybHlfcGZuKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBpbnQgYWxsb2NfZmxhZ3MpXFxuLS1cXG5tbS9hbGxvY190YWcuYy0xMTg1LVxcbm1tL2FsbG9jX3RhZy5jOjExODY6XFx0aWYgKHN0YXRpY19rZXlfZW5hYmxlZChcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSlcXG5tbS9hbGxvY190YWcuYy0xMTg3LVxcdFxcdHJldHVybjtcXG4tLVxcbm1tL2FsbG9jX3RhZy5jPTEyMDA9c3RhdGljIHZvaWQgX19pbml0IGNsZWFyX2Vhcmx5X2FsbG9jX3Bmbl90YWdfcmVmcyh2b2lkKVxcbi0tXFxubW0vYWxsb2NfdGFnLmMtMTIwNS1cXG5tbS9hbGxvY190YWcuYzoxMjA2OlxcdGlmIChzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXFxubW0vYWxsb2NfdGFnLmMtMTIwNy1cXHRcXHRyZXR1cm47XFxuLS1cXG5tbS9hbGxvY190YWcuYz0xMjk5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlIG1lbW9yeV9hbGxvY2F0aW9uX3Byb2ZpbGluZ19zeXNjdGxzW10gPSB7XFxuLS1cXG5tbS9hbGxvY190YWcuYy0xMzA2LVxcdHtcXG5tbS9hbGxvY190YWcuYzoxMzA3OlxcdFxcdC5wcm9jbmFtZVxcdD0gXFxcIm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZFxcXCIsXFxubW0vYWxsb2NfdGFnLmM6MTMwODpcXHRcXHQuZGF0YVxcdFxcdD0gXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCxcXG5tbS9hbGxvY190YWcuYy0xMzA5LVxcdFxcdC5tb2RlXFx0XFx0PSAwNDQ0LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxOToxNTo0My45NTQwMTE1ODRaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MTc4MDYzNTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyB0aGUgRnV6emluZyBJbXBhY3QqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJIHNlZSwgdGhpcyBwYXRjaCBpcyBvbmx5IGFkZGluZyBhIHJlYWQtb25seSBgc3lzY3RsYCBlbnRyeSB0byBleHBvc2UgdGhlIHZhbHVlIG9mIGBtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWRgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGFuZCBJJ20gY29uZmlkZW50IGluIHNheWluZywgdGhhdCB0aGlzIGlzIHB1cmVseSBvYnNlcnZhdGlvbmFsLiBJdCdzIG5vdCBtb2RpZnlpbmcgYW55IGtlcm5lbCBsb2dpYywganVzdCBleHBvc2luZyBhIHN0YXRpYyBrZXkgc3RhdGUuIFRoaXMgbmV3IHN5c2N0bCBlbnRyeSBpcyBwdXJlbHkgaW5mb3JtYXRpb25hbCwgbGlrZSBwZWVraW5nIGludG8gYSB2YXJpYWJsZSwgaXQgZG9lc24ndCBpbXBhY3QgYW55IGV4ZWN1dGlvbiBmbG93cy5cblxuTGV0IG1lIHRha2UgYW5vdGhlciBsb29rIGF0IHRoZSBkaWZmIGp1c3QgdG8gYmUgZXh0cmEgc3VyZS4gKkNoZWNrcyB0aGUgZGlmZiogTm9wZSwgc3RpbGwgdGhlIHNhbWUuIEkgY2FuIGNvbmZpcm0gdGhpcyBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCBhZGRpdGlvbiBvZiBhIHN5c2N0bC5cblxuVGhlcmVmb3JlLCBnaXZlbiB0aGUgbmF0dXJlIG9mIHRoaXMgY2hhbmdlLCBJJ20gY29tZm9ydGFibGUgc2V0dGluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gTm8gYWN0aXZlIGZ1enppbmcgaXMgbmVlZGVkIGZvciB0aGlzIHBhdGNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDE2LCJPdXRwdXRUb2tlbnMiOjczLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDE5OjE1OjUxLjEzMjA4MDI4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozODY1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgYSByZWFkLW9ubHkgc3lzY3RsIHRvIGV4cG9zZSB0aGUgc3RhdGUgb2YgYSBzdGF0aWMga2V5IChtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpIGFuZCB1cGRhdGVzIGRvY3VtZW50YXRpb24uIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgYSByZWFkLW9ubHkgc3lzY3RsIHRvIGV4cG9zZSB0aGUgc3RhdGUgb2YgYSBzdGF0aWMga2V5IChtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpIGFuZCB1cGRhdGVzIGRvY3VtZW50YXRpb24uIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcbnqr[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-05 19:12:05 +0000 UTC FinishedAt: 2026-08-05 19:15:52 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDE5OjE1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIHJlYWQtb25seSBzeXNjdGwgdG8gZXhwb3NlIHRoZSBzdGF0ZSBvZiBhIHN0YXRpYyBrZXkgKG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkgYW5kIHVwZGF0ZXMgZG9jdW1lbnRhdGlvbi4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTk6MTU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1ZmEwYjYwNjczOTg1YjUyNWZjNTEyYWMwMGM3ZGJlY2JlMGRmNDAxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgNSAxOToxNTozMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL21tL2FsbG9jYXRpb24tcHJvZmlsaW5nLnJzdCBiL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0XG5pbmRleCBjM2EyODQ2Nzk1NWYzLi5iMmViY2VmOGFmNmYyIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3RcbiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0XG5AQCAtNDMsNiAmIzQzOzQzLDE3IEBAIHN5c2N0bDpcbiAgIHdhcm5pbmdzIHByb2R1Y2VkIGJ5IGFsbG9jYXRpb25zIG1hZGUgd2hpbGUgcHJvZmlsaW5nIGlzIGRpc2FibGVkIGFuZCBmcmVlZFxuICAgd2hlbiBpdCYjMzk7cyBlbmFibGVkLlxuIFxuJiM0MzsgIC9wcm9jL3N5cy92bS9tZW1fcHJvZmlsaW5nX2NvbXByZXNzZWRcbiYjNDM7XG4mIzQzOyAgMTogUGFnZSBhbGxvYyB0YWcgY29tcHJlc3Npb24gaXMgZW5hYmxlZC5cbiYjNDM7XG4mIzQzOyAgMDogUGFnZSBhbGxvYyB0YWcgY29tcHJlc3Npb24gaXMgZGlzYWJsZWQuXG4mIzQzO1xuJiM0MzsgIFRoaXMgcmVmbGVjdHMgYSBzdGF0aWMgYm9vdC10aW1lIGNvbmZpZ3VyYXRpb24gb2YgaG93IHBhZ2UgYWxsb2NhdGlvbiB0YWdzIGFyZVxuJiM0MzsgIHN0b3JlZCAoaW4gcGFnZSBmbGFncyB3aGVuIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQgYW5kIGluIHBhZ2VfZXh0IHdoZW4gZGlzYWJsZWQpLlxuJiM0MzsgIFRvZ2dsaW5nIGBgbWVtX3Byb2ZpbGluZ2BgIGF0IHJ1bnRpbWUgZG9lcyBub3QgY2hhbmdlIHRoZSBzdGF0ZSBvZlxuJiM0MzsgIGBgbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkYGAuXG4mIzQzO1xuIFJ1bnRpbWUgaW5mbzpcbiAgIC9wcm9jL2FsbG9jaW5mb1xuIFxuZGlmZiAtLWdpdCBhL21tL2FsbG9jX3RhZy5jIGIvbW0vYWxsb2NfdGFnLmNcbmluZGV4IDg0YzVjMzc4M2NhNDYuLmIzMzQxMDMxMDQ3NzkgMTAwNjQ0XG4tLS0gYS9tbS9hbGxvY190YWcuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbW0vYWxsb2NfdGFnLmNcbkBAIC0xMzAzLDYgJiM0MzsxMzAzLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlIG1lbW9yeV9hbGxvY2F0aW9uX3Byb2ZpbGluZ19zeXNjdGxzW10gPSB7XG4gXHRcdC5tb2RlXHRcdD0gMDY0NCxcbiBcdFx0LnByb2NfaGFuZGxlclx0PSBwcm9jX21lbV9wcm9maWxpbmdfaGFuZGxlcixcbiBcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LnByb2NuYW1lXHQ9IFwmIzM0O21lbV9wcm9maWxpbmdfY29tcHJlc3NlZFwmIzM0OyxcbiYjNDM7XHRcdC5kYXRhXHRcdD0gXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkLFxuJiM0MztcdFx0Lm1vZGVcdFx0PSAwNDQ0LFxuJiM0MztcdFx0LnByb2NfaGFuZGxlclx0PSBwcm9jX2RvX3N0YXRpY19rZXksXG4mIzQzO1x0fSxcbiB9O1xuIFxuIHN0YXRpYyB2b2lkIF9faW5pdCBzeXNjdGxfaW5pdCh2b2lkKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDE5OjE1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYSByZWFkLW9ubHkgc3lzY3RsIHRvIGV4cG9zZSB0aGUgc3RhdGUgb2YgYSBzdGF0aWMga2V5IChtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpIGFuZCB1cGRhdGVzIGRvY3VtZW50YXRpb24uIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNWZhMGI2MDY3Mzk4NWI1MjVmYzUxMmFjMDBjN2RiZWNiZTBkZjQwMQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgQXVnIDUgMTk6MTU6MzEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL21tL2FsbG9jYXRpb24tcHJvZmlsaW5nLnJzdCBiL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0CmluZGV4IGMzYTI4NDY3OTU1ZjMuLmIyZWJjZWY4YWY2ZjIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0CiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0CkBAIC00Myw2ICYjNDM7NDMsMTcgQEAgc3lzY3RsOgogICB3YXJuaW5ncyBwcm9kdWNlZCBieSBhbGxvY2F0aW9ucyBtYWRlIHdoaWxlIHByb2ZpbGluZyBpcyBkaXNhYmxlZCBhbmQgZnJlZWQKICAgd2hlbiBpdCYjMzk7cyBlbmFibGVkLgogCiYjNDM7ICAvcHJvYy9zeXMvdm0vbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkCiYjNDM7CiYjNDM7ICAxOiBQYWdlIGFsbG9jIHRhZyBjb21wcmVzc2lvbiBpcyBlbmFibGVkLgomIzQzOwomIzQzOyAgMDogUGFnZSBhbGxvYyB0YWcgY29tcHJlc3Npb24gaXMgZGlzYWJsZWQuCiYjNDM7CiYjNDM7ICBUaGlzIHJlZmxlY3RzIGEgc3RhdGljIGJvb3QtdGltZSBjb25maWd1cmF0aW9uIG9mIGhvdyBwYWdlIGFsbG9jYXRpb24gdGFncyBhcmUKJiM0MzsgIHN0b3JlZCAoaW4gcGFnZSBmbGFncyB3aGVuIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQgYW5kIGluIHBhZ2VfZXh0IHdoZW4gZGlzYWJsZWQpLgomIzQzOyAgVG9nZ2xpbmcgYGBtZW1fcHJvZmlsaW5nYGAgYXQgcnVudGltZSBkb2VzIG5vdCBjaGFuZ2UgdGhlIHN0YXRlIG9mCiYjNDM7ICBgYG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZGBgLgomIzQzOwogUnVudGltZSBpbmZvOgogICAvcHJvYy9hbGxvY2luZm8KIApkaWZmIC0tZ2l0IGEvbW0vYWxsb2NfdGFnLmMgYi9tbS9hbGxvY190YWcuYwppbmRleCA4NGM1YzM3ODNjYTQ2Li5iMzM0MTAzMTA0Nzc5IDEwMDY0NAotLS0gYS9tbS9hbGxvY190YWcuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9hbGxvY190YWcuYwpAQCAtMTMwMyw2ICYjNDM7MTMwMywxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGN0bF90YWJsZSBtZW1vcnlfYWxsb2NhdGlvbl9wcm9maWxpbmdfc3lzY3Rsc1tdID0gewogCQkubW9kZQkJPSAwNjQ0LAogCQkucHJvY19oYW5kbGVyCT0gcHJvY19tZW1fcHJvZmlsaW5nX2hhbmRsZXIsCiAJfSwKJiM0MzsJewomIzQzOwkJLnByb2NuYW1lCT0gJiMzNDttZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQmIzM0OywKJiM0MzsJCS5kYXRhCQk9ICZhbXA7bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkLAomIzQzOwkJLm1vZGUJCT0gMDQ0NCwKJiM0MzsJCS5wcm9jX2hhbmRsZXIJPSBwcm9jX2RvX3N0YXRpY19rZXksCiYjNDM7CX0sCiB9OwogCiBzdGF0aWMgdm9pZCBfX2luaXQgc3lzY3RsX2luaXQodm9pZCkKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDUgMTk6MTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMzNgoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDE3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE5ldyBTeXNjdGwgaW4gbW0vYWxsb2NfdGFnLmMqKgoKT2theSwgc28gdGhlcmUmIzM5O3MgYSBuZXcgcGF0Y2ggaW50cm9kdWNpbmcgYSBgbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkYCBzeXNjdGwgd2l0aGluIGBtbS9hbGxvY190YWcuY2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBxdWlja2x5IGFzc2VzcyBpdHMgaW1wYWN0LiBJdCYjMzk7cyByZWFkLW9ubHksIG1vZGUgMDQ0NCwgYW5kIHVzZXMgYHByb2NfZG9fc3RhdGljX2tleWAuIFRoYXQgc3VnZ2VzdHMgaXQmIzM5O3MgbWVyZWx5IGV4cG9zaW5nIGEgc3RhdGljIGJvb3QtdGltZSBjb25maWd1cmF0aW9uLCBwcm9iYWJseSByZWxhdGVkIHRvIG1lbW9yeSBwcm9maWxpbmcuIEkgbmVlZCB0byBxdWlja2x5IHNjYW4gdGhlIGNvZGUgaW4gYG1tL2FsbG9jX3RhZy5jYCB0byBzZWUgaWYgdGhpcyBpcyB0aGUgb25seSBjaGFuZ2Ugb3IgaWYgdGhlcmUgYXJlIG90aGVycy4KClJpZ2h0LCB0aGUgcGF0Y2gganVzdCBhZGRzIHRoZSBzeXNjdGwgYW5kIHVwZGF0ZXMgc29tZSBkb2N1bWVudGF0aW9uLiBTbywgaXQgYXBwZWFycyB0byBiZSBzdHJhaWdodGZvcndhcmQuIEJ1dCB3YWl04oCmYHByb2NfZG9fc3RhdGljX2tleWDigKZ0aGF0JiMzOTtzIGZvciByZWFkaW5nIGEgc3RhdGljIGtleS4gTm93IEkmIzM5O20gcGF1c2luZy4gSXMgdGhpcyBldmVuIHNvbWV0aGluZyBJIG5lZWQgdG8gc3BlbmQgdGltZSBmdXp6aW5nPyBJdCYjMzk7cyBsaXRlcmFsbHkgYSByZWFkLW9ubHkgc3lzY3RsIHJlZmxlY3RpbmcgYSBzdGF0aWMga2V5IHN0YXRlLiBTZWVtcyBwcmV0dHkgbG93LWhhbmdpbmcgZnJ1aXQuIExldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGUgY29kZSB0byBjb25maXJtIHdoYXQgYG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZGAgYWN0dWFsbHkgcmVwcmVzZW50cy4gSXQgd291bGQgYmUgaGVscGZ1bCB0byB1bmRlcnN0YW5kIHdoYXQgaXMgYmVpbmcgZXhwb3NlZCB0aHJvdWdoIHRoaXMgcmVhZC1vbmx5IHN5c2N0bC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxOToxNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3Q9MzM9c3lzY3RsOlxuLS1cbkRvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0LTQ1LVxuRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3Q6NDY6ICAvcHJvYy9zeXMvdm0vbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkXG5Eb2N1bWVudGF0aW9uL21tL2FsbG9jYXRpb24tcHJvZmlsaW5nLnJzdC00Ny1cbi0tXG5Eb2N1bWVudGF0aW9uL21tL2FsbG9jYXRpb24tcHJvZmlsaW5nLnJzdC01NC0gIFRvZ2dsaW5nIGBgbWVtX3Byb2ZpbGluZ2BgIGF0IHJ1bnRpbWUgZG9lcyBub3QgY2hhbmdlIHRoZSBzdGF0ZSBvZlxuRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3Q6NTU6ICBgYG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZGBgLlxuRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3QtNTYtXG4tLVxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oPTE3PWV4dGVybiBzdHJ1Y3QgYWxsb2NfdGFnX2tlcm5lbF9zZWN0aW9uIGtlcm5lbF90YWdzO1xuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTE4LVxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oOjE5OkRFQ0xBUkVfU1RBVElDX0tFWV9GQUxTRShtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpO1xuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTIwLVxuLS1cbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaD0xMDE9c3RhdGljIGlubGluZSBib29sIGdldF9wYWdlX3RhZ19yZWYoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuaW9uIGNvZGV0YWdfcmVmICpyZWYsXG4tLVxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTEwNi1cbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaDoxMDc6XHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaC0xMDgtXHRcdHBnYWxsb2NfdGFnX2lkeCBpZHg7XG4tLVxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oPTEzMD1zdGF0aWMgaW5saW5lIHZvaWQgcHV0X3BhZ2VfdGFnX3JlZih1bmlvbiBwZ3RhZ19yZWZfaGFuZGxlIGhhbmRsZSlcbi0tXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmgtMTM0LVxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oOjEzNTpcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmgtMTM2LVx0XHRwYWdlX2V4dF9wdXQoKHZvaWQgKiloYW5kbGUucmVmIC0gcGFnZV9hbGxvY190YWdnaW5nX29wcy5vZmZzZXQpO1xuLS1cbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaD0xMzk9c3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9wYWdlX3RhZ19yZWYodW5pb24gcGd0YWdfcmVmX2hhbmRsZSBoYW5kbGUsIHVuaW9uIGNvZGV0YWdfcmVmICpyZWYpXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmgtMTQwLXtcbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaDoxNDE6XHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaC0xNDItXHRcdHN0cnVjdCBwYWdlICpwYWdlID0gaGFuZGxlLnBhZ2U7XG4tLVxubGliL2FsbG9jX3RhZy5jPTQ3PUVYUE9SVF9TWU1CT0wobWVtX2FsbG9jX3Byb2ZpbGluZ19rZXkpO1xubGliL2FsbG9jX3RhZy5jLTQ4LVxubGliL2FsbG9jX3RhZy5jOjQ5OkRFRklORV9TVEFUSUNfS0VZX0ZBTFNFKG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCk7XG5saWIvYWxsb2NfdGFnLmMtNTAtXG4tLVxubGliL2FsbG9jX3RhZy5jPTI2Mj12b2lkIF9faW5pdCBhbGxvY190YWdfc2VjX2luaXQodm9pZClcbi0tXG5saWIvYWxsb2NfdGFnLmMtMjY4LVxubGliL2FsbG9jX3RhZy5jOjI2OTpcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXG5saWIvYWxsb2NfdGFnLmMtMjcwLVx0XHRyZXR1cm47XG4tLVxubGliL2FsbG9jX3RhZy5jPTMwMz1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgYWxsb2NfdGFnX2FsaWduKHVuc2lnbmVkIGxvbmcgdmFsKVxubGliL2FsbG9jX3RhZy5jLTMwNC17XG5saWIvYWxsb2NfdGFnLmM6MzA1Olx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xubGliL2FsbG9jX3RhZy5jLTMwNi1cdFx0LyogTm8gYWxpZ25tZW50IHJlcXVpcmVtZW50cyB3aGVuIHdlIGFyZSBub3QgaW5kZXhpbmcgdGhlIHRhZ3MgKi9cbi0tXG5saWIvYWxsb2NfdGFnLmM9MzE1PXN0YXRpYyBib29sIGVuc3VyZV9hbGlnbm1lbnQodW5zaWduZWQgbG9uZyBhbGlnbiwgdW5zaWduZWQgaW50ICpwcmVwZW5kKVxubGliL2FsbG9jX3RhZy5jLTMxNi17XG5saWIvYWxsb2NfdGFnLmM6MzE3Olx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xubGliL2FsbG9jX3RhZy5jLTMxOC1cdFx0LyogTm8gYWxpZ25tZW50IHJlcXVpcmVtZW50cyB3aGVuIHdlIGFyZSBub3QgaW5kZXhpbmcgdGhlIHRhZ3MgKi9cbi0tXG5saWIvYWxsb2NfdGFnLmM9MzM2PXN0YXRpYyBpbmxpbmUgYm9vbCB0YWdzX2FkZHJlc3NhYmxlKHZvaWQpXG4tLVxubGliL2FsbG9jX3RhZy5jLTMzOS1cbmxpYi9hbGxvY190YWcuYzozNDA6XHRpZiAoIXN0YXRpY19rZXlfZW5hYmxlZChcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxubGliL2FsbG9jX3RhZy5jLTM0MS1cdFx0cmV0dXJuIHRydWU7IC8qIHdpdGggcGFnZV9leHQgdGFncyBhcmUgYWx3YXlzIGFkZHJlc3NhYmxlICovXG4tLVxubGliL2FsbG9jX3RhZy5jPTcyMj1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9lYXJseV9tZW1fcHJvZmlsaW5nKGNoYXIgKnN0cilcbi0tXG5saWIvYWxsb2NfdGFnLmMtNzU3LVx0fVxubGliL2FsbG9jX3RhZy5jOjc1ODpcdGlmIChjb21wcmVzc2VkICE9IHN0YXRpY19rZXlfZW5hYmxlZChcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKSB7XG5saWIvYWxsb2NfdGFnLmMtNzU5LVx0XHRpZiAoY29tcHJlc3NlZClcbmxpYi9hbGxvY190YWcuYzo3NjA6XHRcdFx0c3RhdGljX2JyYW5jaF9lbmFibGUoXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcbmxpYi9hbGxvY190YWcuYy03NjEtXHRcdGVsc2VcbmxpYi9hbGxvY190YWcuYzo3NjI6XHRcdFx0c3RhdGljX2JyYW5jaF9kaXNhYmxlKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCk7XG5saWIvYWxsb2NfdGFnLmMtNzYzLVx0fVxuLS1cbmxpYi9hbGxvY190YWcuYz03Njk9c3RhdGljIF9faW5pdCBib29sIG5lZWRfcGFnZV9hbGxvY190YWdnaW5nKHZvaWQpXG5saWIvYWxsb2NfdGFnLmMtNzcwLXtcbmxpYi9hbGxvY190YWcuYzo3NzE6XHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXG5saWIvYWxsb2NfdGFnLmMtNzcyLVx0XHRyZXR1cm4gZmFsc2U7XG4tLVxubGliL2FsbG9jX3RhZy5jPTg0OT12b2lkIGFsbG9jX3RhZ19hZGRfZWFybHlfcGZuKHVuc2lnbmVkIGxvbmcgcGZuLCBnZnBfdCBnZnBfZmxhZ3MpXG4tLVxubGliL2FsbG9jX3RhZy5jLTg1Mi1cbmxpYi9hbGxvY190YWcuYzo4NTM6XHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXG5saWIvYWxsb2NfdGFnLmMtODU0LVx0XHRyZXR1cm47XG4tLVxubGliL2FsbG9jX3RhZy5jPTg2Nz1zdGF0aWMgdm9pZCBfX2luaXQgY2xlYXJfZWFybHlfYWxsb2NfcGZuX3RhZ19yZWZzKHZvaWQpXG4tLVxubGliL2FsbG9jX3RhZy5jLTg3Mi1cbmxpYi9hbGxvY190YWcuYzo4NzM6XHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXG5saWIvYWxsb2NfdGFnLmMtODc0LVx0XHRyZXR1cm47XG4tLVxubW0vYWxsb2NfdGFnLmM9NTM9RVhQT1JUX1NZTUJPTChtZW1fYWxsb2NfcHJvZmlsaW5nX2tleSk7XG5tbS9hbGxvY190YWcuYy01NC1cbm1tL2FsbG9jX3RhZy5jOjU1OkRFRklORV9TVEFUSUNfS0VZX0ZBTFNFKG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCk7XG5tbS9hbGxvY190YWcuYy01Ni1cbi0tXG5tbS9hbGxvY190YWcuYz02MDc9dm9pZCBfX2luaXQgYWxsb2NfdGFnX3NlY19pbml0KHZvaWQpXG4tLVxubW0vYWxsb2NfdGFnLmMtNjEzLVxubW0vYWxsb2NfdGFnLmM6NjE0Olx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSlcbm1tL2FsbG9jX3RhZy5jLTYxNS1cdFx0cmV0dXJuO1xuLS1cbm1tL2FsbG9jX3RhZy5jPTY0OD1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgYWxsb2NfdGFnX2FsaWduKHVuc2lnbmVkIGxvbmcgdmFsKVxubW0vYWxsb2NfdGFnLmMtNjQ5LXtcbm1tL2FsbG9jX3RhZy5jOjY1MDpcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcbm1tL2FsbG9jX3RhZy5jLTY1MS1cdFx0LyogTm8gYWxpZ25tZW50IHJlcXVpcmVtZW50cyB3aGVuIHdlIGFyZSBub3QgaW5kZXhpbmcgdGhlIHRhZ3MgKi9cbi0tXG5tbS9hbGxvY190YWcuYz02NjA9c3RhdGljIGJvb2wgZW5zdXJlX2FsaWdubWVudCh1bnNpZ25lZCBsb25nIGFsaWduLCB1bnNpZ25lZCBpbnQgKnByZXBlbmQpXG5tbS9hbGxvY190YWcuYy02NjEte1xubW0vYWxsb2NfdGFnLmM6NjYyOlx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xubW0vYWxsb2NfdGFnLmMtNjYzLVx0XHQvKiBObyBhbGlnbm1lbnQgcmVxdWlyZW1lbnRzIHdoZW4gd2UgYXJlIG5vdCBpbmRleGluZyB0aGUgdGFncyAqL1xuLS1cbm1tL2FsbG9jX3RhZy5jPTY4MT1zdGF0aWMgaW5saW5lIGJvb2wgdGFnc19hZGRyZXNzYWJsZSh2b2lkKVxuLS1cbm1tL2FsbG9jX3RhZy5jLTY4NC1cbm1tL2FsbG9jX3RhZy5jOjY4NTpcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXG5tbS9hbGxvY190YWcuYy02ODYtXHRcdHJldHVybiB0cnVlOyAvKiB3aXRoIHBhZ2VfZXh0IHRhZ3MgYXJlIGFsd2F5cyBhZGRyZXNzYWJsZSAqL1xuLS1cbm1tL2FsbG9jX3RhZy5jPTEwNjc9c3RhdGljIGludCBfX2luaXQgc2V0dXBfZWFybHlfbWVtX3Byb2ZpbGluZyhjaGFyICpzdHIpXG4tLVxubW0vYWxsb2NfdGFnLmMtMTEwMi1cdH1cbm1tL2FsbG9jX3RhZy5jOjExMDM6XHRpZiAoY29tcHJlc3NlZCAhPSBzdGF0aWNfa2V5X2VuYWJsZWQoXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xubW0vYWxsb2NfdGFnLmMtMTEwNC1cdFx0aWYgKGNvbXByZXNzZWQpXG5tbS9hbGxvY190YWcuYzoxMTA1Olx0XHRcdHN0YXRpY19icmFuY2hfZW5hYmxlKFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCk7XG5tbS9hbGxvY190YWcuYy0xMTA2LVx0XHRlbHNlXG5tbS9hbGxvY190YWcuYzoxMTA3Olx0XHRcdHN0YXRpY19icmFuY2hfZGlzYWJsZShcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpO1xubW0vYWxsb2NfdGFnLmMtMTEwOC1cdH1cbi0tXG5tbS9hbGxvY190YWcuYz0xMTE0PXN0YXRpYyBfX2luaXQgYm9vbCBuZWVkX3BhZ2VfYWxsb2NfdGFnZ2luZyh2b2lkKVxubW0vYWxsb2NfdGFnLmMtMTExNS17XG5tbS9hbGxvY190YWcuYzoxMTE2Olx0aWYgKHN0YXRpY19rZXlfZW5hYmxlZChcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxubW0vYWxsb2NfdGFnLmMtMTExNy1cdFx0cmV0dXJuIGZhbHNlO1xuLS1cbm1tL2FsbG9jX3RhZy5jPTExODI9dm9pZCBhbGxvY190YWdfYWRkX2Vhcmx5X3Bmbih1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWduZWQgaW50IGFsbG9jX2ZsYWdzKVxuLS1cbm1tL2FsbG9jX3RhZy5jLTExODUtXG5tbS9hbGxvY190YWcuYzoxMTg2Olx0aWYgKHN0YXRpY19rZXlfZW5hYmxlZChcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxubW0vYWxsb2NfdGFnLmMtMTE4Ny1cdFx0cmV0dXJuO1xuLS1cbm1tL2FsbG9jX3RhZy5jPTEyMDA9c3RhdGljIHZvaWQgX19pbml0IGNsZWFyX2Vhcmx5X2FsbG9jX3Bmbl90YWdfcmVmcyh2b2lkKVxuLS1cbm1tL2FsbG9jX3RhZy5jLTEyMDUtXG5tbS9hbGxvY190YWcuYzoxMjA2Olx0aWYgKHN0YXRpY19rZXlfZW5hYmxlZChcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxubW0vYWxsb2NfdGFnLmMtMTIwNy1cdFx0cmV0dXJuO1xuLS1cbm1tL2FsbG9jX3RhZy5jPTEyOTk9c3RhdGljIGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgbWVtb3J5X2FsbG9jYXRpb25fcHJvZmlsaW5nX3N5c2N0bHNbXSA9IHtcbi0tXG5tbS9hbGxvY190YWcuYy0xMzA2LVx0e1xubW0vYWxsb2NfdGFnLmM6MTMwNzpcdFx0LnByb2NuYW1lXHQ9IFwmIzM0O21lbV9wcm9maWxpbmdfY29tcHJlc3NlZFwmIzM0Oyxcbm1tL2FsbG9jX3RhZy5jOjEzMDg6XHRcdC5kYXRhXHRcdD0gXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkLFxubW0vYWxsb2NfdGFnLmMtMTMwOS1cdFx0Lm1vZGVcdFx0PSAwNDQ0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA1IDE5OjE1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0MTYKCQkJCQkJCW91dHB1dDogNzMKCQkJCQkJCXRob3VnaHRzOiAzNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQXNzZXNzaW5nIHRoZSBGdXp6aW5nIEltcGFjdCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGcm9tIHdoYXQgSSBzZWUsIHRoaXMgcGF0Y2ggaXMgb25seSBhZGRpbmcgYSByZWFkLW9ubHkgYHN5c2N0bGAgZW50cnkgdG8gZXhwb3NlIHRoZSB2YWx1ZSBvZiBgbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBhbmQgSSYjMzk7bSBjb25maWRlbnQgaW4gc2F5aW5nLCB0aGF0IHRoaXMgaXMgcHVyZWx5IG9ic2VydmF0aW9uYWwuIEl0JiMzOTtzIG5vdCBtb2RpZnlpbmcgYW55IGtlcm5lbCBsb2dpYywganVzdCBleHBvc2luZyBhIHN0YXRpYyBrZXkgc3RhdGUuIFRoaXMgbmV3IHN5c2N0bCBlbnRyeSBpcyBwdXJlbHkgaW5mb3JtYXRpb25hbCwgbGlrZSBwZWVraW5nIGludG8gYSB2YXJpYWJsZSwgaXQgZG9lc24mIzM5O3QgaW1wYWN0IGFueSBleGVjdXRpb24gZmxvd3MuCgpMZXQgbWUgdGFrZSBhbm90aGVyIGxvb2sgYXQgdGhlIGRpZmYganVzdCB0byBiZSBleHRyYSBzdXJlLiAqQ2hlY2tzIHRoZSBkaWZmKiBOb3BlLCBzdGlsbCB0aGUgc2FtZS4gSSBjYW4gY29uZmlybSB0aGlzIGlzIGEgc3RyYWlnaHRmb3J3YXJkIGFkZGl0aW9uIG9mIGEgc3lzY3RsLgoKVGhlcmVmb3JlLCBnaXZlbiB0aGUgbmF0dXJlIG9mIHRoaXMgY2hhbmdlLCBJJiMzOTttIGNvbWZvcnRhYmxlIHNldHRpbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuIE5vIGFjdGl2ZSBmdXp6aW5nIGlzIG5lZWRlZCBmb3IgdGhpcyBwYXRjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNSAxOToxNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIHJlYWQtb25seSBzeXNjdGwgdG8gZXhwb3NlIHRoZSBzdGF0ZSBvZiBhIHN0YXRpYyBrZXkgKG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkgYW5kIHVwZGF0ZXMgZG9jdW1lbnRhdGlvbi4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIHJlYWQtb25seSBzeXNjdGwgdG8gZXhwb3NlIHRoZSBzdGF0ZSBvZiBhIHN0YXRpYyBrZXkgKG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkgYW5kIHVwZGF0ZXMgZG9jdW1lbnRhdGlvbi4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxOToxNTozMy4yNDM1MTk3NTFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzg4ODYxMjc1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgcmVhZC1vbmx5IHN5c2N0bCB0byBleHBvc2UgdGhlIHN0YXRlIG9mIGEgc3RhdGljIGtleSAobWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSBhbmQgdXBkYXRlcyBkb2N1bWVudGF0aW9uLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTk6MTU6MzMuMjQzNTMwMDIxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDM0NDUyMjYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNWZhMGI2MDY3Mzk4NWI1MjVmYzUxMmFjMDBjN2RiZWNiZTBkZjQwMVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEF1ZyA1IDE5OjE1OjMxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0IGIvRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3RcXG5pbmRleCBjM2EyODQ2Nzk1NWYzLi5iMmViY2VmOGFmNmYyIDEwMDY0NFxcbi0tLSBhL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0XFxuKysrIGIvRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3RcXG5AQCAtNDMsNiArNDMsMTcgQEAgc3lzY3RsOlxcbiAgIHdhcm5pbmdzIHByb2R1Y2VkIGJ5IGFsbG9jYXRpb25zIG1hZGUgd2hpbGUgcHJvZmlsaW5nIGlzIGRpc2FibGVkIGFuZCBmcmVlZFxcbiAgIHdoZW4gaXQncyBlbmFibGVkLlxcbiBcXG4rICAvcHJvYy9zeXMvdm0vbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkXFxuK1xcbisgIDE6IFBhZ2UgYWxsb2MgdGFnIGNvbXByZXNzaW9uIGlzIGVuYWJsZWQuXFxuK1xcbisgIDA6IFBhZ2UgYWxsb2MgdGFnIGNvbXByZXNzaW9uIGlzIGRpc2FibGVkLlxcbitcXG4rICBUaGlzIHJlZmxlY3RzIGEgc3RhdGljIGJvb3QtdGltZSBjb25maWd1cmF0aW9uIG9mIGhvdyBwYWdlIGFsbG9jYXRpb24gdGFncyBhcmVcXG4rICBzdG9yZWQgKGluIHBhZ2UgZmxhZ3Mgd2hlbiBjb21wcmVzc2lvbiBpcyBlbmFibGVkIGFuZCBpbiBwYWdlX2V4dCB3aGVuIGRpc2FibGVkKS5cXG4rICBUb2dnbGluZyBgYG1lbV9wcm9maWxpbmdgYCBhdCBydW50aW1lIGRvZXMgbm90IGNoYW5nZSB0aGUgc3RhdGUgb2ZcXG4rICBgYG1lbV9wcm9maWxpbmdfY29tcHJlc3NlZGBgLlxcbitcXG4gUnVudGltZSBpbmZvOlxcbiAgIC9wcm9jL2FsbG9jaW5mb1xcbiBcXG5kaWZmIC0tZ2l0IGEvbW0vYWxsb2NfdGFnLmMgYi9tbS9hbGxvY190YWcuY1xcbmluZGV4IDg0YzVjMzc4M2NhNDYuLmIzMzQxMDMxMDQ3NzkgMTAwNjQ0XFxuLS0tIGEvbW0vYWxsb2NfdGFnLmNcXG4rKysgYi9tbS9hbGxvY190YWcuY1xcbkBAIC0xMzAzLDYgKzEzMDMsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjdGxfdGFibGUgbWVtb3J5X2FsbG9jYXRpb25fcHJvZmlsaW5nX3N5c2N0bHNbXSA9IHtcXG4gXFx0XFx0Lm1vZGVcXHRcXHQ9IDA2NDQsXFxuIFxcdFxcdC5wcm9jX2hhbmRsZXJcXHQ9IHByb2NfbWVtX3Byb2ZpbGluZ19oYW5kbGVyLFxcbiBcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5wcm9jbmFtZVxcdD0gXFxcIm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZFxcXCIsXFxuK1xcdFxcdC5kYXRhXFx0XFx0PSBcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkLFxcbitcXHRcXHQubW9kZVxcdFxcdD0gMDQ0NCxcXG4rXFx0XFx0LnByb2NfaGFuZGxlclxcdD0gcHJvY19kb19zdGF0aWNfa2V5LFxcbitcXHR9LFxcbiB9O1xcbiBcXG4gc3RhdGljIHZvaWQgX19pbml0IHN5c2N0bF9pbml0KHZvaWQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDE5OjE1OjM0LjY3OTE2NjI1MloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE2NDUyOTU1MjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgYSByZWFkLW9ubHkgc3lzY3RsIHRvIGV4cG9zZSB0aGUgc3RhdGUgb2YgYSBzdGF0aWMga2V5IChtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpIGFuZCB1cGRhdGVzIGRvY3VtZW50YXRpb24uIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1ZmEwYjYwNjczOTg1YjUyNWZjNTEyYWMwMGM3ZGJlY2JlMGRmNDAxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgNSAxOToxNTozMSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0IGIvRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3RcbmluZGV4IGMzYTI4NDY3OTU1ZjMuLmIyZWJjZWY4YWY2ZjIgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL21tL2FsbG9jYXRpb24tcHJvZmlsaW5nLnJzdFxuKysrIGIvRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3RcbkBAIC00Myw2ICs0MywxNyBAQCBzeXNjdGw6XG4gICB3YXJuaW5ncyBwcm9kdWNlZCBieSBhbGxvY2F0aW9ucyBtYWRlIHdoaWxlIHByb2ZpbGluZyBpcyBkaXNhYmxlZCBhbmQgZnJlZWRcbiAgIHdoZW4gaXQncyBlbmFibGVkLlxuIFxuKyAgL3Byb2Mvc3lzL3ZtL21lbV9wcm9maWxpbmdfY29tcHJlc3NlZFxuK1xuKyAgMTogUGFnZSBhbGxvYyB0YWcgY29tcHJlc3Npb24gaXMgZW5hYmxlZC5cbitcbisgIDA6IFBhZ2UgYWxsb2MgdGFnIGNvbXByZXNzaW9uIGlzIGRpc2FibGVkLlxuK1xuKyAgVGhpcyByZWZsZWN0cyBhIHN0YXRpYyBib290LXRpbWUgY29uZmlndXJhdGlvbiBvZiBob3cgcGFnZSBhbGxvY2F0aW9uIHRhZ3MgYXJlXG4rICBzdG9yZWQgKGluIHBhZ2UgZmxhZ3Mgd2hlbiBjb21wcmVzc2lvbiBpcyBlbmFibGVkIGFuZCBpbiBwYWdlX2V4dCB3aGVuIGRpc2FibGVkKS5cbisgIFRvZ2dsaW5nIGBgbWVtX3Byb2ZpbGluZ2BgIGF0IHJ1bnRpbWUgZG9lcyBub3QgY2hhbmdlIHRoZSBzdGF0ZSBvZlxuKyAgYGBtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWRgYC5cbitcbiBSdW50aW1lIGluZm86XG4gICAvcHJvYy9hbGxvY2luZm9cbiBcbmRpZmYgLS1naXQgYS9tbS9hbGxvY190YWcuYyBiL21tL2FsbG9jX3RhZy5jXG5pbmRleCA4NGM1YzM3ODNjYTQ2Li5iMzM0MTAzMTA0Nzc5IDEwMDY0NFxuLS0tIGEvbW0vYWxsb2NfdGFnLmNcbisrKyBiL21tL2FsbG9jX3RhZy5jXG5AQCAtMTMwMyw2ICsxMzAzLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlIG1lbW9yeV9hbGxvY2F0aW9uX3Byb2ZpbGluZ19zeXNjdGxzW10gPSB7XG4gXHRcdC5tb2RlXHRcdD0gMDY0NCxcbiBcdFx0LnByb2NfaGFuZGxlclx0PSBwcm9jX21lbV9wcm9maWxpbmdfaGFuZGxlcixcbiBcdH0sXG4rXHR7XG4rXHRcdC5wcm9jbmFtZVx0PSBcIm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZFwiLFxuK1x0XHQuZGF0YVx0XHQ9IFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCxcbitcdFx0Lm1vZGVcdFx0PSAwNDQ0LFxuK1x0XHQucHJvY19oYW5kbGVyXHQ9IHByb2NfZG9fc3RhdGljX2tleSxcbitcdH0sXG4gfTtcbiBcbiBzdGF0aWMgdm9pZCBfX2luaXQgc3lzY3RsX2luaXQodm9pZClcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDE5OjE1OjM0LjY3OTE2OTExMloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNTQxNjgyMzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOZXcgU3lzY3RsIGluIG1tL2FsbG9jX3RhZy5jKipcblxuT2theSwgc28gdGhlcmUncyBhIG5ldyBwYXRjaCBpbnRyb2R1Y2luZyBhIGBtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWRgIHN5c2N0bCB3aXRoaW4gYG1tL2FsbG9jX3RhZy5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHF1aWNrbHkgYXNzZXNzIGl0cyBpbXBhY3QuIEl0J3MgcmVhZC1vbmx5LCBtb2RlIDA0NDQsIGFuZCB1c2VzIGBwcm9jX2RvX3N0YXRpY19rZXlgLiBUaGF0IHN1Z2dlc3RzIGl0J3MgbWVyZWx5IGV4cG9zaW5nIGEgc3RhdGljIGJvb3QtdGltZSBjb25maWd1cmF0aW9uLCBwcm9iYWJseSByZWxhdGVkIHRvIG1lbW9yeSBwcm9maWxpbmcuIEkgbmVlZCB0byBxdWlja2x5IHNjYW4gdGhlIGNvZGUgaW4gYG1tL2FsbG9jX3RhZy5jYCB0byBzZWUgaWYgdGhpcyBpcyB0aGUgb25seSBjaGFuZ2Ugb3IgaWYgdGhlcmUgYXJlIG90aGVycy5cblxuUmlnaHQsIHRoZSBwYXRjaCBqdXN0IGFkZHMgdGhlIHN5c2N0bCBhbmQgdXBkYXRlcyBzb21lIGRvY3VtZW50YXRpb24uIFNvLCBpdCBhcHBlYXJzIHRvIGJlIHN0cmFpZ2h0Zm9yd2FyZC4gQnV0IHdhaXTigKZgcHJvY19kb19zdGF0aWNfa2V5YOKApnRoYXQncyBmb3IgcmVhZGluZyBhIHN0YXRpYyBrZXkuIE5vdyBJJ20gcGF1c2luZy4gSXMgdGhpcyBldmVuIHNvbWV0aGluZyBJIG5lZWQgdG8gc3BlbmQgdGltZSBmdXp6aW5nPyBJdCdzIGxpdGVyYWxseSBhIHJlYWQtb25seSBzeXNjdGwgcmVmbGVjdGluZyBhIHN0YXRpYyBrZXkgc3RhdGUuIFNlZW1zIHByZXR0eSBsb3ctaGFuZ2luZyBmcnVpdC4gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBjb2RlIHRvIGNvbmZpcm0gd2hhdCBgbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkYCBhY3R1YWxseSByZXByZXNlbnRzLiBJdCB3b3VsZCBiZSBoZWxwZnVsIHRvIHVuZGVyc3RhbmQgd2hhdCBpcyBiZWluZyBleHBvc2VkIHRocm91Z2ggdGhpcyByZWFkLW9ubHkgc3lzY3RsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzM2LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDVUMTk6MTU6MzguNzMzMzQwNzEzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyMjA2NjA1NDEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0PTMzPXN5c2N0bDpcXG4tLVxcbkRvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0LTQ1LVxcbkRvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0OjQ2OiAgL3Byb2Mvc3lzL3ZtL21lbV9wcm9maWxpbmdfY29tcHJlc3NlZFxcbkRvY3VtZW50YXRpb24vbW0vYWxsb2NhdGlvbi1wcm9maWxpbmcucnN0LTQ3LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3QtNTQtICBUb2dnbGluZyBgYG1lbV9wcm9maWxpbmdgYCBhdCBydW50aW1lIGRvZXMgbm90IGNoYW5nZSB0aGUgc3RhdGUgb2ZcXG5Eb2N1bWVudGF0aW9uL21tL2FsbG9jYXRpb24tcHJvZmlsaW5nLnJzdDo1NTogIGBgbWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkYGAuXFxuRG9jdW1lbnRhdGlvbi9tbS9hbGxvY2F0aW9uLXByb2ZpbGluZy5yc3QtNTYtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmg9MTc9ZXh0ZXJuIHN0cnVjdCBhbGxvY190YWdfa2VybmVsX3NlY3Rpb24ga2VybmVsX3RhZ3M7XFxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTE4LVxcbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaDoxOTpERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0UobWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmgtMjAtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmg9MTAxPXN0YXRpYyBpbmxpbmUgYm9vbCBnZXRfcGFnZV90YWdfcmVmKHN0cnVjdCBwYWdlICpwYWdlLCB1bmlvbiBjb2RldGFnX3JlZiAqcmVmLFxcbi0tXFxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTEwNi1cXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmg6MTA3OlxcdGlmIChzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmgtMTA4LVxcdFxcdHBnYWxsb2NfdGFnX2lkeCBpZHg7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmg9MTMwPXN0YXRpYyBpbmxpbmUgdm9pZCBwdXRfcGFnZV90YWdfcmVmKHVuaW9uIHBndGFnX3JlZl9oYW5kbGUgaGFuZGxlKVxcbi0tXFxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTEzNC1cXG5pbmNsdWRlL2xpbnV4L3BnYWxsb2NfdGFnLmg6MTM1OlxcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxcbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaC0xMzYtXFx0XFx0cGFnZV9leHRfcHV0KCh2b2lkICopaGFuZGxlLnJlZiAtIHBhZ2VfYWxsb2NfdGFnZ2luZ19vcHMub2Zmc2V0KTtcXG4tLVxcbmluY2x1ZGUvbGludXgvcGdhbGxvY190YWcuaD0xMzk9c3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9wYWdlX3RhZ19yZWYodW5pb24gcGd0YWdfcmVmX2hhbmRsZSBoYW5kbGUsIHVuaW9uIGNvZGV0YWdfcmVmICpyZWYpXFxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTE0MC17XFxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oOjE0MTpcXHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKSB7XFxuaW5jbHVkZS9saW51eC9wZ2FsbG9jX3RhZy5oLTE0Mi1cXHRcXHRzdHJ1Y3QgcGFnZSAqcGFnZSA9IGhhbmRsZS5wYWdlO1xcbi0tXFxubGliL2FsbG9jX3RhZy5jPTQ3PUVYUE9SVF9TWU1CT0wobWVtX2FsbG9jX3Byb2ZpbGluZ19rZXkpO1xcbmxpYi9hbGxvY190YWcuYy00OC1cXG5saWIvYWxsb2NfdGFnLmM6NDk6REVGSU5FX1NUQVRJQ19LRVlfRkFMU0UobWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcXG5saWIvYWxsb2NfdGFnLmMtNTAtXFxuLS1cXG5saWIvYWxsb2NfdGFnLmM9MjYyPXZvaWQgX19pbml0IGFsbG9jX3RhZ19zZWNfaW5pdCh2b2lkKVxcbi0tXFxubGliL2FsbG9jX3RhZy5jLTI2OC1cXG5saWIvYWxsb2NfdGFnLmM6MjY5OlxcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxcbmxpYi9hbGxvY190YWcuYy0yNzAtXFx0XFx0cmV0dXJuO1xcbi0tXFxubGliL2FsbG9jX3RhZy5jPTMwMz1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgYWxsb2NfdGFnX2FsaWduKHVuc2lnbmVkIGxvbmcgdmFsKVxcbmxpYi9hbGxvY190YWcuYy0zMDQte1xcbmxpYi9hbGxvY190YWcuYzozMDU6XFx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcXG5saWIvYWxsb2NfdGFnLmMtMzA2LVxcdFxcdC8qIE5vIGFsaWdubWVudCByZXF1aXJlbWVudHMgd2hlbiB3ZSBhcmUgbm90IGluZGV4aW5nIHRoZSB0YWdzICovXFxuLS1cXG5saWIvYWxsb2NfdGFnLmM9MzE1PXN0YXRpYyBib29sIGVuc3VyZV9hbGlnbm1lbnQodW5zaWduZWQgbG9uZyBhbGlnbiwgdW5zaWduZWQgaW50ICpwcmVwZW5kKVxcbmxpYi9hbGxvY190YWcuYy0zMTYte1xcbmxpYi9hbGxvY190YWcuYzozMTc6XFx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcXG5saWIvYWxsb2NfdGFnLmMtMzE4LVxcdFxcdC8qIE5vIGFsaWdubWVudCByZXF1aXJlbWVudHMgd2hlbiB3ZSBhcmUgbm90IGluZGV4aW5nIHRoZSB0YWdzICovXFxuLS1cXG5saWIvYWxsb2NfdGFnLmM9MzM2PXN0YXRpYyBpbmxpbmUgYm9vbCB0YWdzX2FkZHJlc3NhYmxlKHZvaWQpXFxuLS1cXG5saWIvYWxsb2NfdGFnLmMtMzM5LVxcbmxpYi9hbGxvY190YWcuYzozNDA6XFx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXFxubGliL2FsbG9jX3RhZy5jLTM0MS1cXHRcXHRyZXR1cm4gdHJ1ZTsgLyogd2l0aCBwYWdlX2V4dCB0YWdzIGFyZSBhbHdheXMgYWRkcmVzc2FibGUgKi9cXG4tLVxcbmxpYi9hbGxvY190YWcuYz03MjI9c3RhdGljIGludCBfX2luaXQgc2V0dXBfZWFybHlfbWVtX3Byb2ZpbGluZyhjaGFyICpzdHIpXFxuLS1cXG5saWIvYWxsb2NfdGFnLmMtNzU3LVxcdH1cXG5saWIvYWxsb2NfdGFnLmM6NzU4OlxcdGlmIChjb21wcmVzc2VkICE9IHN0YXRpY19rZXlfZW5hYmxlZChcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xcbmxpYi9hbGxvY190YWcuYy03NTktXFx0XFx0aWYgKGNvbXByZXNzZWQpXFxubGliL2FsbG9jX3RhZy5jOjc2MDpcXHRcXHRcXHRzdGF0aWNfYnJhbmNoX2VuYWJsZShcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcXG5saWIvYWxsb2NfdGFnLmMtNzYxLVxcdFxcdGVsc2VcXG5saWIvYWxsb2NfdGFnLmM6NzYyOlxcdFxcdFxcdHN0YXRpY19icmFuY2hfZGlzYWJsZShcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcXG5saWIvYWxsb2NfdGFnLmMtNzYzLVxcdH1cXG4tLVxcbmxpYi9hbGxvY190YWcuYz03Njk9c3RhdGljIF9faW5pdCBib29sIG5lZWRfcGFnZV9hbGxvY190YWdnaW5nKHZvaWQpXFxubGliL2FsbG9jX3RhZy5jLTc3MC17XFxubGliL2FsbG9jX3RhZy5jOjc3MTpcXHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxcbmxpYi9hbGxvY190YWcuYy03NzItXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxubGliL2FsbG9jX3RhZy5jPTg0OT12b2lkIGFsbG9jX3RhZ19hZGRfZWFybHlfcGZuKHVuc2lnbmVkIGxvbmcgcGZuLCBnZnBfdCBnZnBfZmxhZ3MpXFxuLS1cXG5saWIvYWxsb2NfdGFnLmMtODUyLVxcbmxpYi9hbGxvY190YWcuYzo4NTM6XFx0aWYgKHN0YXRpY19rZXlfZW5hYmxlZChcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSlcXG5saWIvYWxsb2NfdGFnLmMtODU0LVxcdFxcdHJldHVybjtcXG4tLVxcbmxpYi9hbGxvY190YWcuYz04Njc9c3RhdGljIHZvaWQgX19pbml0IGNsZWFyX2Vhcmx5X2FsbG9jX3Bmbl90YWdfcmVmcyh2b2lkKVxcbi0tXFxubGliL2FsbG9jX3RhZy5jLTg3Mi1cXG5saWIvYWxsb2NfdGFnLmM6ODczOlxcdGlmIChzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXFxubGliL2FsbG9jX3RhZy5jLTg3NC1cXHRcXHRyZXR1cm47XFxuLS1cXG5tbS9hbGxvY190YWcuYz01Mz1FWFBPUlRfU1lNQk9MKG1lbV9hbGxvY19wcm9maWxpbmdfa2V5KTtcXG5tbS9hbGxvY190YWcuYy01NC1cXG5tbS9hbGxvY190YWcuYzo1NTpERUZJTkVfU1RBVElDX0tFWV9GQUxTRShtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpO1xcbm1tL2FsbG9jX3RhZy5jLTU2LVxcbi0tXFxubW0vYWxsb2NfdGFnLmM9NjA3PXZvaWQgX19pbml0IGFsbG9jX3RhZ19zZWNfaW5pdCh2b2lkKVxcbi0tXFxubW0vYWxsb2NfdGFnLmMtNjEzLVxcbm1tL2FsbG9jX3RhZy5jOjYxNDpcXHRpZiAoIXN0YXRpY19rZXlfZW5hYmxlZChcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSlcXG5tbS9hbGxvY190YWcuYy02MTUtXFx0XFx0cmV0dXJuO1xcbi0tXFxubW0vYWxsb2NfdGFnLmM9NjQ4PXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBhbGxvY190YWdfYWxpZ24odW5zaWduZWQgbG9uZyB2YWwpXFxubW0vYWxsb2NfdGFnLmMtNjQ5LXtcXG5tbS9hbGxvY190YWcuYzo2NTA6XFx0aWYgKCFzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpIHtcXG5tbS9hbGxvY190YWcuYy02NTEtXFx0XFx0LyogTm8gYWxpZ25tZW50IHJlcXVpcmVtZW50cyB3aGVuIHdlIGFyZSBub3QgaW5kZXhpbmcgdGhlIHRhZ3MgKi9cXG4tLVxcbm1tL2FsbG9jX3RhZy5jPTY2MD1zdGF0aWMgYm9vbCBlbnN1cmVfYWxpZ25tZW50KHVuc2lnbmVkIGxvbmcgYWxpZ24sIHVuc2lnbmVkIGludCAqcHJlcGVuZClcXG5tbS9hbGxvY190YWcuYy02NjEte1xcbm1tL2FsbG9jX3RhZy5jOjY2MjpcXHRpZiAoIXN0YXRpY19rZXlfZW5hYmxlZChcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xcbm1tL2FsbG9jX3RhZy5jLTY2My1cXHRcXHQvKiBObyBhbGlnbm1lbnQgcmVxdWlyZW1lbnRzIHdoZW4gd2UgYXJlIG5vdCBpbmRleGluZyB0aGUgdGFncyAqL1xcbi0tXFxubW0vYWxsb2NfdGFnLmM9NjgxPXN0YXRpYyBpbmxpbmUgYm9vbCB0YWdzX2FkZHJlc3NhYmxlKHZvaWQpXFxuLS1cXG5tbS9hbGxvY190YWcuYy02ODQtXFxubW0vYWxsb2NfdGFnLmM6Njg1OlxcdGlmICghc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxcbm1tL2FsbG9jX3RhZy5jLTY4Ni1cXHRcXHRyZXR1cm4gdHJ1ZTsgLyogd2l0aCBwYWdlX2V4dCB0YWdzIGFyZSBhbHdheXMgYWRkcmVzc2FibGUgKi9cXG4tLVxcbm1tL2FsbG9jX3RhZy5jPTEwNjc9c3RhdGljIGludCBfX2luaXQgc2V0dXBfZWFybHlfbWVtX3Byb2ZpbGluZyhjaGFyICpzdHIpXFxuLS1cXG5tbS9hbGxvY190YWcuYy0xMTAyLVxcdH1cXG5tbS9hbGxvY190YWcuYzoxMTAzOlxcdGlmIChjb21wcmVzc2VkICE9IHN0YXRpY19rZXlfZW5hYmxlZChcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSkge1xcbm1tL2FsbG9jX3RhZy5jLTExMDQtXFx0XFx0aWYgKGNvbXByZXNzZWQpXFxubW0vYWxsb2NfdGFnLmM6MTEwNTpcXHRcXHRcXHRzdGF0aWNfYnJhbmNoX2VuYWJsZShcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcXG5tbS9hbGxvY190YWcuYy0xMTA2LVxcdFxcdGVsc2VcXG5tbS9hbGxvY190YWcuYzoxMTA3OlxcdFxcdFxcdHN0YXRpY19icmFuY2hfZGlzYWJsZShcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKTtcXG5tbS9hbGxvY190YWcuYy0xMTA4LVxcdH1cXG4tLVxcbm1tL2FsbG9jX3RhZy5jPTExMTQ9c3RhdGljIF9faW5pdCBib29sIG5lZWRfcGFnZV9hbGxvY190YWdnaW5nKHZvaWQpXFxubW0vYWxsb2NfdGFnLmMtMTExNS17XFxubW0vYWxsb2NfdGFnLmM6MTExNjpcXHRpZiAoc3RhdGljX2tleV9lbmFibGVkKFxcdTAwMjZtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpKVxcbm1tL2FsbG9jX3RhZy5jLTExMTctXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxubW0vYWxsb2NfdGFnLmM9MTE4Mj12b2lkIGFsbG9jX3RhZ19hZGRfZWFybHlfcGZuKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBpbnQgYWxsb2NfZmxhZ3MpXFxuLS1cXG5tbS9hbGxvY190YWcuYy0xMTg1LVxcbm1tL2FsbG9jX3RhZy5jOjExODY6XFx0aWYgKHN0YXRpY19rZXlfZW5hYmxlZChcXHUwMDI2bWVtX3Byb2ZpbGluZ19jb21wcmVzc2VkKSlcXG5tbS9hbGxvY190YWcuYy0xMTg3LVxcdFxcdHJldHVybjtcXG4tLVxcbm1tL2FsbG9jX3RhZy5jPTEyMDA9c3RhdGljIHZvaWQgX19pbml0IGNsZWFyX2Vhcmx5X2FsbG9jX3Bmbl90YWdfcmVmcyh2b2lkKVxcbi0tXFxubW0vYWxsb2NfdGFnLmMtMTIwNS1cXG5tbS9hbGxvY190YWcuYzoxMjA2OlxcdGlmIChzdGF0aWNfa2V5X2VuYWJsZWQoXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCkpXFxubW0vYWxsb2NfdGFnLmMtMTIwNy1cXHRcXHRyZXR1cm47XFxuLS1cXG5tbS9hbGxvY190YWcuYz0xMjk5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgY3RsX3RhYmxlIG1lbW9yeV9hbGxvY2F0aW9uX3Byb2ZpbGluZ19zeXNjdGxzW10gPSB7XFxuLS1cXG5tbS9hbGxvY190YWcuYy0xMzA2LVxcdHtcXG5tbS9hbGxvY190YWcuYzoxMzA3OlxcdFxcdC5wcm9jbmFtZVxcdD0gXFxcIm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZFxcXCIsXFxubW0vYWxsb2NfdGFnLmM6MTMwODpcXHRcXHQuZGF0YVxcdFxcdD0gXFx1MDAyNm1lbV9wcm9maWxpbmdfY29tcHJlc3NlZCxcXG5tbS9hbGxvY190YWcuYy0xMzA5LVxcdFxcdC5tb2RlXFx0XFx0PSAwNDQ0LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNVQxOToxNTo0My45NTQwMTE1ODRaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MTc4MDYzNTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyB0aGUgRnV6emluZyBJbXBhY3QqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJIHNlZSwgdGhpcyBwYXRjaCBpcyBvbmx5IGFkZGluZyBhIHJlYWQtb25seSBgc3lzY3RsYCBlbnRyeSB0byBleHBvc2UgdGhlIHZhbHVlIG9mIGBtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWRgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGFuZCBJJ20gY29uZmlkZW50IGluIHNheWluZywgdGhhdCB0aGlzIGlzIHB1cmVseSBvYnNlcnZhdGlvbmFsLiBJdCdzIG5vdCBtb2RpZnlpbmcgYW55IGtlcm5lbCBsb2dpYywganVzdCBleHBvc2luZyBhIHN0YXRpYyBrZXkgc3RhdGUuIFRoaXMgbmV3IHN5c2N0bCBlbnRyeSBpcyBwdXJlbHkgaW5mb3JtYXRpb25hbCwgbGlrZSBwZWVraW5nIGludG8gYSB2YXJpYWJsZSwgaXQgZG9lc24ndCBpbXBhY3QgYW55IGV4ZWN1dGlvbiBmbG93cy5cblxuTGV0IG1lIHRha2UgYW5vdGhlciBsb29rIGF0IHRoZSBkaWZmIGp1c3QgdG8gYmUgZXh0cmEgc3VyZS4gKkNoZWNrcyB0aGUgZGlmZiogTm9wZSwgc3RpbGwgdGhlIHNhbWUuIEkgY2FuIGNvbmZpcm0gdGhpcyBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCBhZGRpdGlvbiBvZiBhIHN5c2N0bC5cblxuVGhlcmVmb3JlLCBnaXZlbiB0aGUgbmF0dXJlIG9mIHRoaXMgY2hhbmdlLCBJJ20gY29tZm9ydGFibGUgc2V0dGluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gTm8gYWN0aXZlIGZ1enppbmcgaXMgbmVlZGVkIGZvciB0aGlzIHBhdGNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDE2LCJPdXRwdXRUb2tlbnMiOjczLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA1VDE5OjE1OjUxLjEzMjA4MDI4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozODY1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgYSByZWFkLW9ubHkgc3lzY3RsIHRvIGV4cG9zZSB0aGUgc3RhdGUgb2YgYSBzdGF0aWMga2V5IChtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpIGFuZCB1cGRhdGVzIGRvY3VtZW50YXRpb24uIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgYSByZWFkLW9ubHkgc3lzY3RsIHRvIGV4cG9zZSB0aGUgc3RhdGUgb2YgYSBzdGF0aWMga2V5IChtZW1fcHJvZmlsaW5nX2NvbXByZXNzZWQpIGFuZCB1cGRhdGVzIGRvY3VtZW50YXRpb24uIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcbnqr[1] Phase: Running StartedAt: 2026-08-05 19:16:03 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcbnqr[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-05 19:16:03 +0000 UTC FinishedAt: 2026-08-05 19:16:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}