Name: series-workflowp7z64 Phase: Succeeded StartedAt: 2026-07-21 03:07:56 +0000 UTC FinishedAt: 2026-07-21 08:22:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[0] Phase: Succeeded StartedAt: 2026-07-21 03:07:56 +0000 UTC FinishedAt: 2026-07-21 03:48:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[0].run-triage Phase: Succeeded StartedAt: 2026-07-21 03:07:56 +0000 UTC FinishedAt: 2026-07-21 03:48:11 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "25f744ffa0c8e799e06250ce2e618367b166b0d4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "25f744ffa0c8e799e06250ce2e618367b166b0d4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "43091e7b-1263-4d62-ade1-7c4daba12271" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_pmu_instruction_retired", "kvm_pmu_branch_retired" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDAzOjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCYjMzQ7LAogICAgJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IEtWTSBjYXBhYmlsaXR5IGBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HYCB0aGF0IGFsdGVycyB0aGUgYmVoYXZpb3Igb2Ygc29mdHdhcmUgYWNjb3VudGluZyBmb3IgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucy4gSXQgbW9kaWZpZXMgY29yZSBLVk0gUE1VIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgY2FwYWJpbGl0eSBpcyBoYW5kbGVkIGNvcnJlY3RseSBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHZ1bG5lcmFiaWxpdGllcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwMzo0NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGExZWZkMTJlMDZhNTQ3MWJlNzM5YzkxOGEwNGU4MWI2ZWEwOTU2MDVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyMSAwMzo0NzozNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbmluZGV4IGE1ZjllZTkyZjQzZThkLi4yMzFhNWJhNzU2N2M1MSAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdFxuJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XG5AQCAtODk0OSw2ICYjNDM7ODk0OSwzOCBAQCBlbmFibGVkLCBjbW1hIGNhbiYjMzk7dCBiZSBlbmFibGVkIGFueW1vcmUgYW5kIHBmbWZpIGFuZCB0aGUgc3RvcmFnZSBrZXlcbiBpbnRlcnByZXRhdGlvbiBhcmUgZGlzYWJsZWQuIElmIGNtbWEgaGFzIGFscmVhZHkgYmVlbiBlbmFibGVkIG9yIHRoZVxuIGhwYWdlXzJnIG1vZHVsZSBwYXJhbWV0ZXIgaXMgbm90IHNldCB0byAxLCAtRUlOVkFMIGlzIHJldHVybmVkLlxuIFxuJiM0Mzs3LjQ4IEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdcbiYjNDM7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4mIzQzO1xuJiM0Mzs6QXJjaGl0ZWN0dXJlczogeDg2XG4mIzQzOzpUeXBlOiB2bVxuJiM0Mzs6UGFyYW1ldGVyczogYXJnc1swXSAtIGJpdG1hc2sgb2YgUEVSRl9DT1VOVF9IV18qIGV2ZW50IElEc1xuJiM0Mzs6UmV0dXJuczogMCBvbiBzdWNjZXNzOyAtRUlOVkFMIGlmIGFyZ3NbMF0gY29udGFpbnMgYW4gdW5zdXBwb3J0ZWQgZXZlbnQgb3JcbiYjNDM7ICAgICAgICAgIGlmIHRoZSBWTSBhbHJlYWR5IGhhcyB2Q1BVcy5cbiYjNDM7XG4mIzQzO0J5IGRlZmF1bHQsIEtWTSBzb2Z0d2FyZS1hY2NvdW50cyBpbnN0cnVjdGlvbnMgaXQgZW11bGF0ZXMgYWdhaW5zdCBhIGd1ZXN0XG4mIzQzO1BNVSBjb3VudGVyIHByb2dyYW1tZWQgZm9yIHJldGlyZWQgaW5zdHJ1Y3Rpb25zIChQRVJGX0NPVU5UX0hXX0lOU1RSVUNUSU9OUylcbiYjNDM7b3IgcmV0aXJlZCBicmFuY2hlcyAoUEVSRl9DT1VOVF9IV19CUkFOQ0hfSU5TVFJVQ1RJT05TKSwgYnkgd2Fsa2luZyB0aGUgdlBNVVxuJiM0Mztjb3VudGVycyBhbmQgcmVxdWVzdGluZyBhIGNvdW50ZXIgcmVwcm9ncmFtIG9uIHRoZSBuZXh0IFZNLWVudHJ5LiBPbiBob3N0c1xuJiM0Mzt3aXRoIGFuIGVtdWxhdGVkIHZQTVUgdGhpcyByZXByb2dyYW0gaXMgZXhwZW5zaXZlIGFuZCwgdW5kZXIgc29tZSB3b3JrbG9hZHMsXG4mIzQzO2luZmxhdGVzIHRpbWVyLWludGVycnVwdCBoYW5kbGluZyBlbm91Z2ggdG8gdHJpZ2dlciBndWVzdCBDU0QgbG9ja3Vwcy5cbiYjNDM7XG4mIzQzO1RoaXMgY2FwYWJpbGl0eSBsZXRzIHVzZXJzcGFjZSBkaXNhYmxlIHRoYXQgc29mdHdhcmUgYWNjb3VudGluZyBmb3IgdGhlIGdpdmVuXG4mIzQzO2V2ZW50cy4gU2V0dGluZyBhIGJpdCBmb3IgYW4gZXZlbnQgSUQgbWFrZXMgS1ZNIHNraXAgdGhlIGFjY291bnRpbmcgZm9yIHRoYXRcbiYjNDM7ZXZlbnQ6IGluc3RydWN0aW9ucyBLVk0gZW11bGF0ZXMgaW4gaG9zdCBjb250ZXh0IGdvIHVuY291bnRlZC4gSGFyZHdhcmUtXG4mIzQzO2V4ZWN1dGVkIGd1ZXN0IGluc3RydWN0aW9ucyBhcmUgc3RpbGwgY291bnRlZCBieSB0aGUgYmFja2luZyBwZXJmX2V2ZW50LCBhbmRcbiYjNDM7aXRzIG92ZXJmbG93L1BNSSBwYXRoIGlzIHVuYWZmZWN0ZWQuXG4mIzQzO1xuJiM0MztUaGUgY2FwYWJpbGl0eSBvbmx5IGFmZmVjdHMgdGhlIGVtdWxhdGVkIChwZXJmLWJhc2VkKSB2UE1VLiBBIG1lZGlhdGVkIHZQTVVcbiYjNDM7ZG9lcyBub3QgaW5jdXIgdGhlIHJlcHJvZ3JhbSBjb3N0IGFuZCBpbmNyZW1lbnRzIHRoZSBndWVzdCBjb3VudGVyIGRpcmVjdGx5LFxuJiM0MztzbyBhY2NvdW50aW5nIGlzIG5ldmVyIHNraXBwZWQgZm9yIGl0IHJlZ2FyZGxlc3Mgb2YgdGhpcyBzZXR0aW5nLlxuJiM0MztcbiYjNDM7VGhpcyBjYW4gb25seSBiZSBpbnZva2VkIG9uIGEgVk0gcHJpb3IgdG8gdGhlIGNyZWF0aW9uIG9mIHZDUFVzOyBhdHRlbXB0aW5nIHRvXG4mIzQzO3NldCBpdCBvbmNlIGFueSB2Q1BVIGV4aXN0cyByZXR1cm5zIC1FSU5WQUwuXG4mIzQzO1xuJiM0MztLVk1fQ0hFQ0tfRVhURU5TSU9OIHJldHVybnMgdGhlIGJpdG1hc2sgb2YgZXZlbnQgSURzIHRoYXQgY2FuIGJlIGRpc2FibGVkLlxuJiM0MzthcmdzWzBdIG11c3QgYmUgYSBzdWJzZXQgb2YgdGhhdCBtYXNrLlxuJiM0MztcbiA4LiBPdGhlciBjYXBhYmlsaXRpZXMuXG4gPT09PT09PT09PT09PT09PT09PT09PVxuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCA1ZjZjMWNlOTY3M2I3Zi4uNTIyZjY2YzQ0ZTZhMDAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5AQCAtMTU2MCw2ICYjNDM7MTU2MCwxMyBAQCBzdHJ1Y3Qga3ZtX2FyY2gge1xuIFx0Ym9vbCBlbmFibGVfcG11O1xuIFx0Ym9vbCBjcmVhdGVkX21lZGlhdGVkX3BtdTtcbiBcbiYjNDM7XHQvKlxuJiM0MztcdCAqIEJpdG1hc2sgb2YgUEVSRl9DT1VOVF9IV18qIGV2ZW50IElEcyBmb3Igd2hpY2ggc29mdHdhcmUgYWNjb3VudGluZ1xuJiM0MztcdCAqIG9mIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMgaXMgZGlzYWJsZWQgKEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1xuJiM0MztcdCAqIFNXX0FDQ09VTlRJTkcpLiBTZWUga3ZtX3BtdV90cmlnZ2VyX2V2ZW50KCkuXG4mIzQzO1x0ICovXG4mIzQzO1x0dTY0IHBtdV9kaXNhYmxlX3N3X2FjY291bnRpbmc7XG4mIzQzO1xuIFx0dTMyIG5vdGlmeV93aW5kb3c7XG4gXHR1MzIgbm90aWZ5X3ZtZXhpdF9mbGFncztcbiBcdC8qXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3BtdS5jIGIvYXJjaC94ODYva3ZtL3BtdS5jXG5pbmRleCBkZDFjNTc1OTNmNDhiOC4uZmIzZjJkZjA2OGRjNDcgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vcG11LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS9wbXUuY1xuQEAgLTExNDUsMTQgJiM0MzsxMTQ1LDM1IEBAIHN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRzcmN1X3JlYWRfdW5sb2NrKFx1MDAyNnZjcHUtXHUwMDNla3ZtLVx1MDAzZXNyY3UsIGlkeCk7XG4gfVxuIFxuJiM0MzsvKlxuJiM0MzsgKiBXaGV0aGVyIHNvZnR3YXJlIGFjY291bnRpbmcgb2YgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucyBmb3IgQHBlcmZfaHdfaWQgaXNcbiYjNDM7ICogZGlzYWJsZWQgdmlhIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkcuIFRoZSBjYXBhYmlsaXR5IG9ubHlcbiYjNDM7ICogdGFyZ2V0cyB0aGUgZW11bGF0ZWQgKHBlcmYtYmFzZWQpIHZQTVUsIHdoZXJlIHRoZSBhY2NvdW50aW5nIGRyaXZlcyBhblxuJiM0MzsgKiBleHBlbnNpdmUgY291bnRlciByZXByb2dyYW07IGEgbWVkaWF0ZWQgdlBNVSBpbmNyZW1lbnRzIHBtYy1cdTAwM2Vjb3VudGVyXG4mIzQzOyAqIGRpcmVjdGx5IChhbmQgbWF5IHJhaXNlIGEgUE1JIG9uIG92ZXJmbG93KSwgc28gaXQgaXMgbmV2ZXIgc2tpcHBlZC5cbiYjNDM7ICovXG4mIzQzO3N0YXRpYyBib29sIGt2bV9wbXVfc2tpcF9zd19hY2NvdW50aW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IHBlcmZfaHdfaWQpXG4mIzQzO3tcbiYjNDM7XHRpZiAoa3ZtX3ZjcHVfaGFzX21lZGlhdGVkX3BtdSh2Y3B1KSlcbiYjNDM7XHRcdHJldHVybiBmYWxzZTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHZjcHUtXHUwMDNla3ZtLVx1MDAzZWFyY2gucG11X2Rpc2FibGVfc3dfYWNjb3VudGluZyBcdTAwMjYgQklUX1VMTChwZXJmX2h3X2lkKTtcbiYjNDM7fVxuJiM0MztcbiB2b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4ge1xuJiM0MztcdGlmIChrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZyh2Y3B1LCBQRVJGX0NPVU5UX0hXX0lOU1RSVUNUSU9OUykpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuIFx0a3ZtX3BtdV90cmlnZ2VyX2V2ZW50KHZjcHUsIHZjcHVfdG9fcG11KHZjcHUpLVx1MDAzZXBtY19jb3VudGluZ19pbnN0cnVjdGlvbnMpO1xuIH1cbiBFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoa3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKTtcbiBcbiB2b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiYjNDM7XHRpZiAoa3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmcodmNwdSwgUEVSRl9DT1VOVF9IV19CUkFOQ0hfSU5TVFJVQ1RJT05TKSlcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4gXHRrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktXHUwMDNlcG1jX2NvdW50aW5nX2JyYW5jaGVzKTtcbiB9XG4gRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfYnJhbmNoX3JldGlyZWQpO1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9wbXUuaCBiL2FyY2gveDg2L2t2bS9wbXUuaFxuaW5kZXggYTU4MjFkN2M4N2Y5MzUuLmUzNGI5ZTgxNDM1NTU3IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3BtdS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vcG11LmhcbkBAIC0yMyw2ICYjNDM7MjMsMTUgQEBcbiBcbiAjZGVmaW5lIEtWTV9GSVhFRF9QTUNfQkFTRV9JRFggSU5URUxfUE1DX0lEWF9GSVhFRFxuIFxuJiM0MzsvKlxuJiM0MzsgKiBFdmVudHMgZm9yIHdoaWNoIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkcgY2FuIGRpc2FibGUgc29mdHdhcmVcbiYjNDM7ICogYWNjb3VudGluZyBvZiBlbXVsYXRlZCBpbnN0cnVjdGlvbnMuIFRoZXNlIGFyZSB0aGUgb25seSBldmVudHMgS1ZNIGV2ZXJcbiYjNDM7ICogcGFzc2VzIHRvIGt2bV9wbXVfdHJpZ2dlcl9ldmVudCgpIChmcm9tIHRoZSByZXRpcmVkLWluc3RydWN0aW9uIHBhdGgpLlxuJiM0MzsgKi9cbiYjNDM7I2RlZmluZSBLVk1fUE1VX1NXX0FDQ09VTlRJTkdfVkFMSURfTUFTS1x0XHRcdFxcXG4mIzQzO1x0KEJJVF9VTEwoUEVSRl9DT1VOVF9IV19JTlNUUlVDVElPTlMpIHxcdFx0XHRcXFxuJiM0MztcdCBCSVRfVUxMKFBFUkZfQ09VTlRfSFdfQlJBTkNIX0lOU1RSVUNUSU9OUykpXG4mIzQzO1xuIHN0cnVjdCBrdm1fcG11X29wcyB7XG4gXHRzdHJ1Y3Qga3ZtX3BtYyAqKCpyZHBtY19lY3hfdG9fcG1jKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRcdHVuc2lnbmVkIGludCBpZHgsIHU2NCAqbWFzayk7XG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5pbmRleCBhZmNhYzEwNDI5NDdhNS4uY2M4YTM2ZjI4YWVhOTggMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS94ODYuY1xuQEAgLTQ5NjQsNiAmIzQzOzQ5NjQsOSBAQCBpbnQga3ZtX3ZtX2lvY3RsX2NoZWNrX2V4dGVuc2lvbihzdHJ1Y3Qga3ZtICprdm0sIGxvbmcgZXh0KVxuIFx0Y2FzZSBLVk1fQ0FQX0RJU0FCTEVfUVVJUktTMjpcbiBcdFx0ciA9IGt2bV9jYXBzLnN1cHBvcnRlZF9xdWlya3M7XG4gXHRcdGJyZWFrO1xuJiM0MztcdGNhc2UgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElORzpcbiYjNDM7XHRcdHIgPSBLVk1fUE1VX1NXX0FDQ09VTlRJTkdfVkFMSURfTUFTSztcbiYjNDM7XHRcdGJyZWFrO1xuIFx0Y2FzZSBLVk1fQ0FQX1g4Nl9OT1RJRllfVk1FWElUOlxuIFx0XHRyID0ga3ZtX2NhcHMuaGFzX25vdGlmeV92bWV4aXQ7XG4gXHRcdGJyZWFrO1xuQEAgLTY3MzAsNiAmIzQzOzY3MzMsMTggQEAgaW50IGt2bV92bV9pb2N0bF9lbmFibGVfY2FwKHN0cnVjdCBrdm0gKmt2bSxcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4gXHRzd2l0Y2ggKGNhcC1cdTAwM2VjYXApIHtcbiYjNDM7XHRjYXNlIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkc6XG4mIzQzO1x0XHRyID0gLUVJTlZBTDtcbiYjNDM7XHRcdGlmIChjYXAtXHUwMDNlYXJnc1swXSBcdTAwMjYgfktWTV9QTVVfU1dfQUNDT1VOVElOR19WQUxJRF9NQVNLKVxuJiM0MztcdFx0XHRicmVhaztcbiYjNDM7XG4mIzQzO1x0XHRtdXRleF9sb2NrKFx1MDAyNmt2bS1cdTAwM2Vsb2NrKTtcbiYjNDM7XHRcdGlmICgha3ZtLVx1MDAzZWNyZWF0ZWRfdmNwdXMpIHtcbiYjNDM7XHRcdFx0a3ZtLVx1MDAzZWFyY2gucG11X2Rpc2FibGVfc3dfYWNjb3VudGluZyA9IGNhcC1cdTAwM2VhcmdzWzBdO1xuJiM0MztcdFx0XHRyID0gMDtcbiYjNDM7XHRcdH1cbiYjNDM7XHRcdG11dGV4X3VubG9jayhcdTAwMjZrdm0tXHUwMDNlbG9jayk7XG4mIzQzO1x0XHRicmVhaztcbiBcdGNhc2UgS1ZNX0NBUF9ESVNBQkxFX1FVSVJLUzI6XG4gXHRcdHIgPSAtRUlOVkFMO1xuIFx0XHRpZiAoY2FwLVx1MDAzZWFyZ3NbMF0gXHUwMDI2IH5rdm1fY2Fwcy5zdXBwb3J0ZWRfcXVpcmtzKVxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaFxuaW5kZXggNDE5MDExMDk3ZmE4ZTIuLjE4NjA1NDI0NWI4MGVhIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmhcbkBAIC05OTcsNiAmIzQzOzk5Nyw3IEBAIHN0cnVjdCBrdm1fZW5hYmxlX2NhcCB7XG4gI2RlZmluZSBLVk1fQ0FQX1MzOTBfS0VZT1AgMjQ3XG4gI2RlZmluZSBLVk1fQ0FQX1MzOTBfVlNJRV9FU0FNT0RFIDI0OFxuICNkZWZpbmUgS1ZNX0NBUF9TMzkwX0hQQUdFXzJHIDI0OVxuJiM0MzsjZGVmaW5lIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkcgMjUwXG4gXG4gc3RydWN0IGt2bV9pcnFfcm91dGluZ19pcnFjaGlwIHtcbiBcdF9fdTMyIGlycWNoaXA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDM6NDc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCYjMzQ7LAogICAgJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IEtWTSBjYXBhYmlsaXR5IGBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HYCB0aGF0IGFsdGVycyB0aGUgYmVoYXZpb3Igb2Ygc29mdHdhcmUgYWNjb3VudGluZyBmb3IgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucy4gSXQgbW9kaWZpZXMgY29yZSBLVk0gUE1VIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgY2FwYWJpbGl0eSBpcyBoYW5kbGVkIGNvcnJlY3RseSBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHZ1bG5lcmFiaWxpdGllcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTFlZmQxMmUwNmE1NDcxYmU3MzljOTE4YTA0ZTgxYjZlYTA5NTYwNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgSnVsIDIxIDAzOjQ3OjM1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0CmluZGV4IGE1ZjllZTkyZjQzZThkLi4yMzFhNWJhNzU2N2M1MSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0CiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdApAQCAtODk0OSw2ICYjNDM7ODk0OSwzOCBAQCBlbmFibGVkLCBjbW1hIGNhbiYjMzk7dCBiZSBlbmFibGVkIGFueW1vcmUgYW5kIHBmbWZpIGFuZCB0aGUgc3RvcmFnZSBrZXkKIGludGVycHJldGF0aW9uIGFyZSBkaXNhYmxlZC4gSWYgY21tYSBoYXMgYWxyZWFkeSBiZWVuIGVuYWJsZWQgb3IgdGhlCiBocGFnZV8yZyBtb2R1bGUgcGFyYW1ldGVyIGlzIG5vdCBzZXQgdG8gMSwgLUVJTlZBTCBpcyByZXR1cm5lZC4KIAomIzQzOzcuNDggS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElORwomIzQzOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQomIzQzOwomIzQzOzpBcmNoaXRlY3R1cmVzOiB4ODYKJiM0Mzs6VHlwZTogdm0KJiM0Mzs6UGFyYW1ldGVyczogYXJnc1swXSAtIGJpdG1hc2sgb2YgUEVSRl9DT1VOVF9IV18qIGV2ZW50IElEcwomIzQzOzpSZXR1cm5zOiAwIG9uIHN1Y2Nlc3M7IC1FSU5WQUwgaWYgYXJnc1swXSBjb250YWlucyBhbiB1bnN1cHBvcnRlZCBldmVudCBvcgomIzQzOyAgICAgICAgICBpZiB0aGUgVk0gYWxyZWFkeSBoYXMgdkNQVXMuCiYjNDM7CiYjNDM7QnkgZGVmYXVsdCwgS1ZNIHNvZnR3YXJlLWFjY291bnRzIGluc3RydWN0aW9ucyBpdCBlbXVsYXRlcyBhZ2FpbnN0IGEgZ3Vlc3QKJiM0MztQTVUgY291bnRlciBwcm9ncmFtbWVkIGZvciByZXRpcmVkIGluc3RydWN0aW9ucyAoUEVSRl9DT1VOVF9IV19JTlNUUlVDVElPTlMpCiYjNDM7b3IgcmV0aXJlZCBicmFuY2hlcyAoUEVSRl9DT1VOVF9IV19CUkFOQ0hfSU5TVFJVQ1RJT05TKSwgYnkgd2Fsa2luZyB0aGUgdlBNVQomIzQzO2NvdW50ZXJzIGFuZCByZXF1ZXN0aW5nIGEgY291bnRlciByZXByb2dyYW0gb24gdGhlIG5leHQgVk0tZW50cnkuIE9uIGhvc3RzCiYjNDM7d2l0aCBhbiBlbXVsYXRlZCB2UE1VIHRoaXMgcmVwcm9ncmFtIGlzIGV4cGVuc2l2ZSBhbmQsIHVuZGVyIHNvbWUgd29ya2xvYWRzLAomIzQzO2luZmxhdGVzIHRpbWVyLWludGVycnVwdCBoYW5kbGluZyBlbm91Z2ggdG8gdHJpZ2dlciBndWVzdCBDU0QgbG9ja3Vwcy4KJiM0MzsKJiM0MztUaGlzIGNhcGFiaWxpdHkgbGV0cyB1c2Vyc3BhY2UgZGlzYWJsZSB0aGF0IHNvZnR3YXJlIGFjY291bnRpbmcgZm9yIHRoZSBnaXZlbgomIzQzO2V2ZW50cy4gU2V0dGluZyBhIGJpdCBmb3IgYW4gZXZlbnQgSUQgbWFrZXMgS1ZNIHNraXAgdGhlIGFjY291bnRpbmcgZm9yIHRoYXQKJiM0MztldmVudDogaW5zdHJ1Y3Rpb25zIEtWTSBlbXVsYXRlcyBpbiBob3N0IGNvbnRleHQgZ28gdW5jb3VudGVkLiBIYXJkd2FyZS0KJiM0MztleGVjdXRlZCBndWVzdCBpbnN0cnVjdGlvbnMgYXJlIHN0aWxsIGNvdW50ZWQgYnkgdGhlIGJhY2tpbmcgcGVyZl9ldmVudCwgYW5kCiYjNDM7aXRzIG92ZXJmbG93L1BNSSBwYXRoIGlzIHVuYWZmZWN0ZWQuCiYjNDM7CiYjNDM7VGhlIGNhcGFiaWxpdHkgb25seSBhZmZlY3RzIHRoZSBlbXVsYXRlZCAocGVyZi1iYXNlZCkgdlBNVS4gQSBtZWRpYXRlZCB2UE1VCiYjNDM7ZG9lcyBub3QgaW5jdXIgdGhlIHJlcHJvZ3JhbSBjb3N0IGFuZCBpbmNyZW1lbnRzIHRoZSBndWVzdCBjb3VudGVyIGRpcmVjdGx5LAomIzQzO3NvIGFjY291bnRpbmcgaXMgbmV2ZXIgc2tpcHBlZCBmb3IgaXQgcmVnYXJkbGVzcyBvZiB0aGlzIHNldHRpbmcuCiYjNDM7CiYjNDM7VGhpcyBjYW4gb25seSBiZSBpbnZva2VkIG9uIGEgVk0gcHJpb3IgdG8gdGhlIGNyZWF0aW9uIG9mIHZDUFVzOyBhdHRlbXB0aW5nIHRvCiYjNDM7c2V0IGl0IG9uY2UgYW55IHZDUFUgZXhpc3RzIHJldHVybnMgLUVJTlZBTC4KJiM0MzsKJiM0MztLVk1fQ0hFQ0tfRVhURU5TSU9OIHJldHVybnMgdGhlIGJpdG1hc2sgb2YgZXZlbnQgSURzIHRoYXQgY2FuIGJlIGRpc2FibGVkLgomIzQzO2FyZ3NbMF0gbXVzdCBiZSBhIHN1YnNldCBvZiB0aGF0IG1hc2suCiYjNDM7CiA4LiBPdGhlciBjYXBhYmlsaXRpZXMuCiA9PT09PT09PT09PT09PT09PT09PT09CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCmluZGV4IDVmNmMxY2U5NjczYjdmLi41MjJmNjZjNDRlNmEwMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCkBAIC0xNTYwLDYgJiM0MzsxNTYwLDEzIEBAIHN0cnVjdCBrdm1fYXJjaCB7CiAJYm9vbCBlbmFibGVfcG11OwogCWJvb2wgY3JlYXRlZF9tZWRpYXRlZF9wbXU7CiAKJiM0MzsJLyoKJiM0MzsJICogQml0bWFzayBvZiBQRVJGX0NPVU5UX0hXXyogZXZlbnQgSURzIGZvciB3aGljaCBzb2Z0d2FyZSBhY2NvdW50aW5nCiYjNDM7CSAqIG9mIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMgaXMgZGlzYWJsZWQgKEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VXwomIzQzOwkgKiBTV19BQ0NPVU5USU5HKS4gU2VlIGt2bV9wbXVfdHJpZ2dlcl9ldmVudCgpLgomIzQzOwkgKi8KJiM0MzsJdTY0IHBtdV9kaXNhYmxlX3N3X2FjY291bnRpbmc7CiYjNDM7CiAJdTMyIG5vdGlmeV93aW5kb3c7CiAJdTMyIG5vdGlmeV92bWV4aXRfZmxhZ3M7CiAJLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9wbXUuYyBiL2FyY2gveDg2L2t2bS9wbXUuYwppbmRleCBkZDFjNTc1OTNmNDhiOC4uZmIzZjJkZjA2OGRjNDcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS9wbXUuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vcG11LmMKQEAgLTExNDUsMTQgJiM0MzsxMTQ1LDM1IEBAIHN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJc3JjdV9yZWFkX3VubG9jaygmYW1wO3ZjcHUtJmd0O2t2bS0mZ3Q7c3JjdSwgaWR4KTsKIH0KIAomIzQzOy8qCiYjNDM7ICogV2hldGhlciBzb2Z0d2FyZSBhY2NvdW50aW5nIG9mIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMgZm9yIEBwZXJmX2h3X2lkIGlzCiYjNDM7ICogZGlzYWJsZWQgdmlhIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkcuIFRoZSBjYXBhYmlsaXR5IG9ubHkKJiM0MzsgKiB0YXJnZXRzIHRoZSBlbXVsYXRlZCAocGVyZi1iYXNlZCkgdlBNVSwgd2hlcmUgdGhlIGFjY291bnRpbmcgZHJpdmVzIGFuCiYjNDM7ICogZXhwZW5zaXZlIGNvdW50ZXIgcmVwcm9ncmFtOyBhIG1lZGlhdGVkIHZQTVUgaW5jcmVtZW50cyBwbWMtJmd0O2NvdW50ZXIKJiM0MzsgKiBkaXJlY3RseSAoYW5kIG1heSByYWlzZSBhIFBNSSBvbiBvdmVyZmxvdyksIHNvIGl0IGlzIG5ldmVyIHNraXBwZWQuCiYjNDM7ICovCiYjNDM7c3RhdGljIGJvb2wga3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgcGVyZl9od19pZCkKJiM0Mzt7CiYjNDM7CWlmIChrdm1fdmNwdV9oYXNfbWVkaWF0ZWRfcG11KHZjcHUpKQomIzQzOwkJcmV0dXJuIGZhbHNlOwomIzQzOwomIzQzOwlyZXR1cm4gdmNwdS0mZ3Q7a3ZtLSZndDthcmNoLnBtdV9kaXNhYmxlX3N3X2FjY291bnRpbmcgJmFtcDsgQklUX1VMTChwZXJmX2h3X2lkKTsKJiM0Mzt9CiYjNDM7CiB2b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiYjNDM7CWlmIChrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZyh2Y3B1LCBQRVJGX0NPVU5UX0hXX0lOU1RSVUNUSU9OUykpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiAJa3ZtX3BtdV90cmlnZ2VyX2V2ZW50KHZjcHUsIHZjcHVfdG9fcG11KHZjcHUpLSZndDtwbWNfY291bnRpbmdfaW5zdHJ1Y3Rpb25zKTsKIH0KIEVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQpOwogCiB2b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewomIzQzOwlpZiAoa3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmcodmNwdSwgUEVSRl9DT1VOVF9IV19CUkFOQ0hfSU5TVFJVQ1RJT05TKSkKJiM0MzsJCXJldHVybjsKJiM0MzsKIAlrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktJmd0O3BtY19jb3VudGluZ19icmFuY2hlcyk7CiB9CiBFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoa3ZtX3BtdV9icmFuY2hfcmV0aXJlZCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vcG11LmggYi9hcmNoL3g4Ni9rdm0vcG11LmgKaW5kZXggYTU4MjFkN2M4N2Y5MzUuLmUzNGI5ZTgxNDM1NTU3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vcG11LmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3BtdS5oCkBAIC0yMyw2ICYjNDM7MjMsMTUgQEAKIAogI2RlZmluZSBLVk1fRklYRURfUE1DX0JBU0VfSURYIElOVEVMX1BNQ19JRFhfRklYRUQKIAomIzQzOy8qCiYjNDM7ICogRXZlbnRzIGZvciB3aGljaCBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HIGNhbiBkaXNhYmxlIHNvZnR3YXJlCiYjNDM7ICogYWNjb3VudGluZyBvZiBlbXVsYXRlZCBpbnN0cnVjdGlvbnMuIFRoZXNlIGFyZSB0aGUgb25seSBldmVudHMgS1ZNIGV2ZXIKJiM0MzsgKiBwYXNzZXMgdG8ga3ZtX3BtdV90cmlnZ2VyX2V2ZW50KCkgKGZyb20gdGhlIHJldGlyZWQtaW5zdHJ1Y3Rpb24gcGF0aCkuCiYjNDM7ICovCiYjNDM7I2RlZmluZSBLVk1fUE1VX1NXX0FDQ09VTlRJTkdfVkFMSURfTUFTSwkJCVwKJiM0MzsJKEJJVF9VTEwoUEVSRl9DT1VOVF9IV19JTlNUUlVDVElPTlMpIHwJCQlcCiYjNDM7CSBCSVRfVUxMKFBFUkZfQ09VTlRfSFdfQlJBTkNIX0lOU1RSVUNUSU9OUykpCiYjNDM7CiBzdHJ1Y3Qga3ZtX3BtdV9vcHMgewogCXN0cnVjdCBrdm1fcG1jICooKnJkcG1jX2VjeF90b19wbWMpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkJdW5zaWduZWQgaW50IGlkeCwgdTY0ICptYXNrKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCBhZmNhYzEwNDI5NDdhNS4uY2M4YTM2ZjI4YWVhOTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTQ5NjQsNiAmIzQzOzQ5NjQsOSBAQCBpbnQga3ZtX3ZtX2lvY3RsX2NoZWNrX2V4dGVuc2lvbihzdHJ1Y3Qga3ZtICprdm0sIGxvbmcgZXh0KQogCWNhc2UgS1ZNX0NBUF9ESVNBQkxFX1FVSVJLUzI6CiAJCXIgPSBrdm1fY2Fwcy5zdXBwb3J0ZWRfcXVpcmtzOwogCQlicmVhazsKJiM0MzsJY2FzZSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HOgomIzQzOwkJciA9IEtWTV9QTVVfU1dfQUNDT1VOVElOR19WQUxJRF9NQVNLOwomIzQzOwkJYnJlYWs7CiAJY2FzZSBLVk1fQ0FQX1g4Nl9OT1RJRllfVk1FWElUOgogCQlyID0ga3ZtX2NhcHMuaGFzX25vdGlmeV92bWV4aXQ7CiAJCWJyZWFrOwpAQCAtNjczMCw2ICYjNDM7NjczMywxOCBAQCBpbnQga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAoc3RydWN0IGt2bSAqa3ZtLAogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXN3aXRjaCAoY2FwLSZndDtjYXApIHsKJiM0MzsJY2FzZSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HOgomIzQzOwkJciA9IC1FSU5WQUw7CiYjNDM7CQlpZiAoY2FwLSZndDthcmdzWzBdICZhbXA7IH5LVk1fUE1VX1NXX0FDQ09VTlRJTkdfVkFMSURfTUFTSykKJiM0MzsJCQlicmVhazsKJiM0MzsKJiM0MzsJCW11dGV4X2xvY2soJmFtcDtrdm0tJmd0O2xvY2spOwomIzQzOwkJaWYgKCFrdm0tJmd0O2NyZWF0ZWRfdmNwdXMpIHsKJiM0MzsJCQlrdm0tJmd0O2FyY2gucG11X2Rpc2FibGVfc3dfYWNjb3VudGluZyA9IGNhcC0mZ3Q7YXJnc1swXTsKJiM0MzsJCQlyID0gMDsKJiM0MzsJCX0KJiM0MzsJCW11dGV4X3VubG9jaygmYW1wO2t2bS0mZ3Q7bG9jayk7CiYjNDM7CQlicmVhazsKIAljYXNlIEtWTV9DQVBfRElTQUJMRV9RVUlSS1MyOgogCQlyID0gLUVJTlZBTDsKIAkJaWYgKGNhcC0mZ3Q7YXJnc1swXSAmYW1wOyB+a3ZtX2NhcHMuc3VwcG9ydGVkX3F1aXJrcykKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaAppbmRleCA0MTkwMTEwOTdmYThlMi4uMTg2MDU0MjQ1YjgwZWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmgKQEAgLTk5Nyw2ICYjNDM7OTk3LDcgQEAgc3RydWN0IGt2bV9lbmFibGVfY2FwIHsKICNkZWZpbmUgS1ZNX0NBUF9TMzkwX0tFWU9QIDI0NwogI2RlZmluZSBLVk1fQ0FQX1MzOTBfVlNJRV9FU0FNT0RFIDI0OAogI2RlZmluZSBLVk1fQ0FQX1MzOTBfSFBBR0VfMkcgMjQ5CiYjNDM7I2RlZmluZSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HIDI1MAogCiBzdHJ1Y3Qga3ZtX2lycV9yb3V0aW5nX2lycWNoaXAgewogCV9fdTMyIGlycWNoaXA7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDAzOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyODkKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAzNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgS1ZNIFBNVSBTb2Z0d2FyZSBBY2NvdW50aW5nIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGludHJvZHVjaW5nIGBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HYCAoMjUwKS4gSXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSBnaXZpbmcgdXNlcnNwYWNlIHRoZSBhYmlsaXR5IHRvIGRpc2FibGUgdGhlIHNvZnR3YXJlLWJhc2VkIGFjY291bnRpbmcgb2YgaW5zdHJ1Y3Rpb25zIHdpdGhpbiBLVk0sIHNwZWNpZmljYWxseSBmb3IgdGhlIGBQRVJGX0NPVU5UX0hXX0lOU1RSVUNUSU9OU2AgYW5kIGBQRVJGX0NPVU5UX0hXX0JSQU5DSF9JTlNUUlVDVElPTlNgIGV2ZW50cy4gVGhhdCYjMzk7cyBhIHJlYXNvbmFibGUgcmVxdWVzdCwgZXNwZWNpYWxseSBpbiBwZXJmb3JtYW5jZS1zZW5zaXRpdmUgc2NlbmFyaW9zIG9yIHdoZXJlIHVzZXJzcGFjZSB3YW50cyB2ZXJ5IGZpbmUtZ3JhaW5lZCBjb250cm9sIG92ZXIgdGhlIHBlcmZvcm1hbmNlIGRhdGEgaXQmIzM5O3MgY29sbGVjdGluZy4KClRoZXkmIzM5O3ZlIG1vZGlmaWVkIGBhcmNoL3g4Ni9rdm0vcG11LmNgIGFuZCBgYXJjaC94ODYva3ZtL3g4Ni5jYCwgYW5kIHRoZXkmIzM5O3ZlIGFkZGVkIGEgYHBtdV9kaXNhYmxlX3N3X2FjY291bnRpbmdgIGZpZWxkIHRvIHRoZSBgc3RydWN0IGt2bV9hcmNoYC4gTWFrZXMgc2Vuc2Ug4oCTIGEgY2xlYW4gd2F5IHRvIHN0b3JlIHRoZSBkaXNhYmxpbmcgc3RhdGUuCgpUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGluIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuICBFc3NlbnRpYWxseSwgdGhlIHBhdGNoIGlzIGFkZGluZyBhIGNoZWNrIGluIHRoZXNlIGZ1bmN0aW9ucy4gSWYgdGhlIGNhcGFiaWxpdHkgYml0IGlzIHNldCwgaXQgYnlwYXNzZXMgdGhlIGBrdm1fcG11X3RyaWdnZXJfZXZlbnRgIGNhbGwsIHdoaWNoIGlzIHdoZXJlIHRoZSBhY2NvdW50aW5nIHdvdWxkIGhhcHBlbi4gU28sIHRoZXkmIzM5O3JlIGF2b2lkaW5nIHRoZSBvdmVyaGVhZCBvZiB0cmlnZ2VyaW5nIHRob3NlIGV2ZW50cy4KClRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBLVk0geDg2IHN1YnN5c3RlbS4gVGhhdCBtZWFucyB0aGlzIG5lZWRzIHNvbWUgc2VyaW91cyBmdXp6aW5nLiBHb3R0YSBjaGVjayBmb3IgYW55IGVkZ2UgY2FzZXMgb3IgdW5leHBlY3RlZCBiZWhhdmlvciB3aGVuIHRoaXMgYWNjb3VudGluZyBpcyBkaXNhYmxlZC4KCkxldCYjMzk7cyBzZWUsIHdoYXQgYXJlIHRoZSBrZXkgc3ltYm9scz8gTG9va3MgbGlrZSB0aGUgcHJpbWFyeSBmb2N1cyBzaG91bGQgYmUgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAsIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYCwgYW5kIG1heWJlIGBrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZ2AsIGV2ZW4gdGhvdWdoIHRoYXQgb25lIGlzIHN0YXRpYyBhbmQgbWlnaHQgYmUgaW5saW5lZC4gSeKAmW0gZ29pbmcgdG8gY29uc2lkZXIgYGt2bV92bV9pb2N0bF9lbmFibGVfY2FwYCBidXQgaXQgc2VlbXMgcHJldHR5IGdlbmVyaWMsIHNvIGl0IG1pZ2h0IG5vdCBiZSBhIHRhcmdldC4KCldhaXQsIGxvb2tpbmcgYXQgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYCwgdGhleSBhcmUgYmVpbmcgY2FsbGVkIHdoZW4gaW5zdHJ1Y3Rpb25zIGFyZSByZXRpcmVkLiBDcnVjaWFsbHksIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGlzIGNhbGxlZCB3aGVuIEtWTSBpcyAqZW11bGF0aW5nKiBhbiBpbnN0cnVjdGlvbiwgd2hpY2ggbWF5IGJlIG1vcmUgZnJlcXVlbnQgdGhhbiBpbnN0cnVjdGlvbiByZXRpcmVtZW50LiBMZXQgbWUgZG91YmxlIGNoZWNrIHdoZXJlIHRob3NlIGFyZSBiZWluZyBjYWxsZWQuIFRoYXQmIzM5O3MgdGhlIGNyaXRpY2FsIHBhdGggdG8gZXhhbWluZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwMzo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3BtdS5jPTExNTU9c3RhdGljIGJvb2wga3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgcGVyZl9od19pZClcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2Mi1cbmFyY2gveDg2L2t2bS9wbXUuYzoxMTYzOnZvaWQga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTY0LXtcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2OS19XG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE3MDpFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoa3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTcxLVxuLS1cbmFyY2gveDg2L2t2bS9wbXUuaD0yOTM9aW50IGt2bV92bV9pb2N0bF9zZXRfcG11X2V2ZW50X2ZpbHRlcihzdHJ1Y3Qga3ZtICprdm0sIHZvaWQgX191c2VyICphcmdwKTtcbmFyY2gveDg2L2t2bS9wbXUuaDoyOTQ6dm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbmFyY2gveDg2L2t2bS9wbXUuaC0yOTUtdm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4tLVxuYXJjaC94ODYva3ZtL3N2bS9uZXN0ZWQuYz0xMTE0PWludCBuZXN0ZWRfc3ZtX3ZtcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0vc3ZtL25lc3RlZC5jLTExOTctXHQgKi9cbmFyY2gveDg2L2t2bS9zdm0vbmVzdGVkLmM6MTE5ODpcdGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCh2Y3B1KTtcbmFyY2gveDg2L2t2bS9zdm0vbmVzdGVkLmMtMTE5OS1cdHJldHVybiAxO1xuLS1cbmFyY2gveDg2L2t2bS94ODYuYz05Mjc4PWludCBrdm1fc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTkyODYtXG5hcmNoL3g4Ni9rdm0veDg2LmM6OTI4NzpcdGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCh2Y3B1KTtcbmFyY2gveDg2L2t2bS94ODYuYy05Mjg4LVxuLS1cbmFyY2gveDg2L2t2bS94ODYuYz05NDM2PWludCB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGdwYV90IGNyMl9vcl9ncGEsXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MzEtXHRcdCAgICBleGNlcHRpb25fdHlwZShjdHh0LVx1MDAzZWV4Y2VwdGlvbi52ZWN0b3IpID09IEVYQ1BUX1RSQVApIHtcbmFyY2gveDg2L2t2bS94ODYuYzo5NjMyOlx0XHRcdGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCh2Y3B1KTtcbmFyY2gveDg2L2t2bS94ODYuYy05NjMzLVx0XHRcdGlmIChjdHh0LVx1MDAzZWlzX2JyYW5jaClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwMzo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTg5CgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqQW5hbHl6aW5nIEtWTSBQZXJmb3JtYW5jZSBDb3VudGVycyoqCgpSaWdodCwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCBwZXJmb3JtYW5jZSBtb25pdG9yaW5nIGluIEtWTSBhZ2FpbiwgYW5kIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAgYXJlIGRlZmluaXRlbHkga2V5IGZvY3VzIHBvaW50cy4gVGhvc2UgYXJlIHNvbGlkIHN5bWJvbHMgdG8gaG9uZSBpbiBvbi4gQW5kIHRoZW4gSSByZWNhbGwgdGhhdCBga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXBgIGdldHMgaXRzIGhhbmRzIGRpcnR5IHdpdGggYEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdgIHdoaWNoIGlzIGFsc28gcmVsZXZhbnQuIEdvdHRhIGtlZXAgdGhvc2UgaW50ZXJyZWxhdGVkLgoKTGV0JiMzOTtzIGRpZyBpbnRvIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gSSB3YW50IHRvIHNlZSB3aGF0JiMzOTtzIGhhcHBlbmluZyB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwMzo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9wbXUuYz0xMTcwPUVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQpO1xuYXJjaC94ODYva3ZtL3BtdS5jLTExNzEtXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE3Mjp2b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzMte1xuLS1cbmFyY2gveDg2L2t2bS9wbXUuYy0xMTc4LX1cbmFyY2gveDg2L2t2bS9wbXUuYzoxMTc5OkVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2JyYW5jaF9yZXRpcmVkKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTgwLVxuLS1cbmFyY2gveDg2L2t2bS9wbXUuaD0yOTQ9dm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbmFyY2gveDg2L2t2bS9wbXUuaDoyOTU6dm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG5hcmNoL3g4Ni9rdm0vcG11LmgtMjk2LXZvaWQga3ZtX21lZGlhdGVkX3BtdV9sb2FkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4tLVxuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYz0zNzc3PXN0YXRpYyBpbnQgbmVzdGVkX3ZteF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGxhdW5jaClcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jLTM3OTMtXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jOjM3OTQ6XHRrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYy0zNzk1LVxuLS1cbmFyY2gveDg2L2t2bS94ODYuYz05NDM2PWludCB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGdwYV90IGNyMl9vcl9ncGEsXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MzMtXHRcdFx0aWYgKGN0eHQtXHUwMDNlaXNfYnJhbmNoKVxuYXJjaC94ODYva3ZtL3g4Ni5jOjk2MzQ6XHRcdFx0XHRrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MzUtXHRcdFx0a3ZtX3JpcF93cml0ZSh2Y3B1LCBjdHh0LVx1MDAzZWVpcCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDM6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjg3NgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcml6ZWQgdGhvdWdodCBwcm9jZXNzLCBwcmVzZW50ZWQgYXMgaWYgSSYjMzk7bSB0aGlua2luZyBpdDoKCioqQ2hlY2tpbmcgS2NvbmZpZyBmb3IgS1ZNKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IHN0YXJ0ZWQuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBtYWtlIHN1cmUgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYW55dGhpbmcgY3J1Y2lhbCByZWdhcmRpbmcgS1ZNIGNvbmZpZ3VyYXRpb24uIFRoZSBmaXJzdCBwb3J0IG9mIGNhbGwsIG5hdHVyYWxseSwgaXMgdGhlIEtjb25maWcgZmlsZXMuIEkgbmVlZCB0byBxdWlja2x5IGFuZCBtZXRob2RpY2FsbHkgY29uZmlybSB0aGF0IGFsbCByZWxldmFudCBLVk0gb3B0aW9ucyBhcmUgZW5hYmxlZCBvciwgYXQgbGVhc3QsIGNvcnJlY3RseSBoYW5kbGVkIHdpdGhpbiB0aGUga2VybmVsIGJ1aWxkIGNvbmZpZ3VyYXRpb24uIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIGRlcGVuZGVuY2llcywgZGVmYXVsdCBzZXR0aW5ncywgYW5kIGFueSBwb3RlbnRpYWwgY29uZmxpY3RzIHdpdGggb3RoZXIgZmVhdHVyZXMgdGhhdCBtaWdodCBpbXBhY3QgS1ZNJiMzOTtzIHBlcmZvcm1hbmNlIG9yIGZ1bmN0aW9uYWxpdHkuIFRoaXMgcXVpY2sgYXVkaXQgd2lsbCBob3BlZnVsbHkgcHJldmVudCBhbnkgbmVlZGxlc3MgZGVidWdnaW5nIGxhdGVyIG9uLiBMZXQmIzM5O3MgZGlnIGluIGFuZCBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBhcyBpdCBzaG91bGQgYmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDM6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEtWTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMS1cdGRlZl90cmlzdGF0ZSBLVk0gaWYgKEtWTV9JTlRFTCAhPSBuIHx8IEtWTV9BTUQgIT0gbilcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01MS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjUyOmNvbmZpZyBLVk1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctNjgtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxuYXJjaC94ODYva3ZtL0tjb25maWctNzAtXHRib29sIFwmIzM0O0NvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6ODM6Y29uZmlnIEtWTV9TV19QUk9URUNURURfVk1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTg0LVx0Ym9vbCBcJiMzNDtFbmFibGUgc3VwcG9ydCBmb3IgS1ZNIHNvZnR3YXJlLXByb3RlY3RlZCBWTXNcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjk2OmNvbmZpZyBLVk1fSU5URUxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwNi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDgtICAgICAgICBib29sIFwmIzM0O0NoZWNrIHRoYXQgZ3Vlc3RzIGRvIG5vdCByZWNlaXZlICNWRSBleGNlcHRpb25zXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MTIyPWNvbmZpZyBYODZfU0dYX0tWTVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzMy1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjEzNDpjb25maWcgS1ZNX0lOVEVMX1REWFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVx0Ym9vbCBcJiMzNDtJbnRlbCBUcnVzdCBEb21haW4gRXh0ZW5zaW9ucyAoVERYKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDctXHR0cmlzdGF0ZSBcJiMzNDtLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNTY6Y29uZmlnIEtWTV9BTURfU0VWXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTctXHRib29sIFwmIzM0O0FNRCBTZWN1cmUgRW5jcnlwdGVkIFZpcnR1YWxpemF0aW9uIChTRVYpIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzEtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9JT0FQSUNcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3My1cdGJvb2wgXCYjMzQ7SS9PIEFQSUMsIFBJQywgYW5kIFBJVCBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODEtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODI6Y29uZmlnIEtWTV9TTU1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4My1cdGJvb2wgXCYjMzQ7U3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxOTM6Y29uZmlnIEtWTV9IWVBFUlZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NC1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgTWljcm9zb2Z0IEh5cGVyLVYgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjA2LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA3OmNvbmZpZyBLVk1fWEVOXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDgtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIFhlbiBoeXBlcmNhbGwgaW50ZXJmYWNlXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjE1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE2OmNvbmZpZyBLVk1fUFJPVkVfTU1VXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTctXHRib29sIFwmIzM0O1Byb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjgtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMjk6Y29uZmlnIEtWTV9FWFRFUk5BTF9XUklURV9UUkFDS0lOR1xuYXJjaC94ODYva3ZtL0tjb25maWctMjMwLVx0Ym9vbFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMyOmNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzMtXHRpbnQgXCYjMzQ7TWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDAzOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgyOTMKCQkJCQkJCW91dHB1dDogMTMxCgkJCQkJCQl0aG91Z2h0czogMjUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBLVk0gUE1VIFNvZnR3YXJlIEFjY291bnRpbmcgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgYmVlbiBsb29raW5nIGF0IHRoaXMgbmV3IHBhdGNoIHJlbGF0ZWQgdG8gdGhlIEtWTSBQTVUgYW5kIGl0cyBzb2Z0d2FyZSBhY2NvdW50aW5nLiBUaGUga2V5IGNvbmZpZ3VyYXRpb25zIGFyZSBgS1ZNYCBhbmQgYEtWTV9YODZgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gemVybyBpbiBvbiB0aGUgcmVsZXZhbnQgc3ltYm9sczsgdGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzLiBJJiMzOTt2ZSBpZGVudGlmaWVkIHRoZSBmb2N1cyBzeW1ib2xzOiBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCwgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgLCBhbmQgYGt2bV9wbXVfc2tpcF9zd19hY2NvdW50aW5nYC4KCkkgbmVlZCB0byBjb25maXJtIGlmIGBrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZ2AgaXMgYSBzdGF0aWMgdmFyaWFibGUsIGFuZCB5ZXMsIEkmIzM5O3ZlIGNvbmZpcm1lZCBpdCYjMzk7cyBzdGF0aWMgd2l0aGluIGBhcmNoL3g4Ni9rdm0vcG11LmNgLiBCYXNlZCBvbiB0aGlzLCBpdCYjMzk7cyBwcm9iYWJseSBsZXNzIGNyaXRpY2FsIGZvciBkaXJlY3QgZnV6emluZy4gVGhlcmVmb3JlLCBJJiMzOTtsbCBwcmlvcml0aXplIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAgYXMgdGhlIHByaW1hcnkgdGFyZ2V0cy4KCkdpdmVuIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9uIGNvcmUgS1ZNIFBNVSBsb2dpYyBpbnRyb2R1Y2VkIGJ5IGBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HYCwgSSYjMzk7dmUgZGVjaWRlZCB0aGlzIGRlZmluaXRlbHkgd2FycmFudHMgZnV6emluZy4gSSYjMzk7bGwgc2V0IG15IGludGVybmFsIGZsYWcsIGBXb3J0aEZ1enppbmdgLCB0byB0cnVlLgoKVGhlcmVmb3JlLCB0aGUga2V5IGNvbmZpZ3VyYXRpb25zIEkmIzM5O2xsIHVzZSBpbiBteSBmdXp6aW5nIGNhbXBhaWduIHdpbGwgYmUgYEtWTWAsIGFuZCBJIHdpbGwgdGFyZ2V0IHRoZSBzeW1ib2xzIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuIEkgbmVlZCB0byBlbnN1cmUgdGhlIG5ldyBjYXBhYmlsaXR5IGlzIGhhbmRsZWQgY29ycmVjdGx5LiBJIGFsc28gd2FudCB0byBwcmV2ZW50IHJlZ3Jlc3Npb25zIG9yIHZ1bG5lcmFiaWxpdGllcy4gVGhpcyBsb29rcyBsaWtlIGEgc29saWQgc3RhcnRpbmcgcG9pbnQgZm9yIGZ1enppbmcgdGhpcyBwYXRjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDM6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCYjMzQ7LAogICAgJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IEtWTSBjYXBhYmlsaXR5IGBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HYCB0aGF0IGFsdGVycyB0aGUgYmVoYXZpb3Igb2Ygc29mdHdhcmUgYWNjb3VudGluZyBmb3IgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucy4gSXQgbW9kaWZpZXMgY29yZSBLVk0gUE1VIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgY2FwYWJpbGl0eSBpcyBoYW5kbGVkIGNvcnJlY3RseSBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHZ1bG5lcmFiaWxpdGllcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkJiMzNDssCiAgICAmIzM0O2t2bV9wbXVfYnJhbmNoX3JldGlyZWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgS1ZNIGNhcGFiaWxpdHkgYEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdgIHRoYXQgYWx0ZXJzIHRoZSBiZWhhdmlvciBvZiBzb2Z0d2FyZSBhY2NvdW50aW5nIGZvciBLVk0tZW11bGF0ZWQgaW5zdHJ1Y3Rpb25zLiBJdCBtb2RpZmllcyBjb3JlIEtWTSBQTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBjYXBhYmlsaXR5IGlzIGhhbmRsZWQgY29ycmVjdGx5IGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgdnVsbmVyYWJpbGl0aWVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjFUMDM6NDc6MzcuMTM3NTYzMjUzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE5Mzk0MDQ4NTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkXCIsXG4gICAgXCJrdm1fcG11X2JyYW5jaF9yZXRpcmVkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgS1ZNIGNhcGFiaWxpdHkgYEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdgIHRoYXQgYWx0ZXJzIHRoZSBiZWhhdmlvciBvZiBzb2Z0d2FyZSBhY2NvdW50aW5nIGZvciBLVk0tZW11bGF0ZWQgaW5zdHJ1Y3Rpb25zLiBJdCBtb2RpZmllcyBjb3JlIEtWTSBQTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBjYXBhYmlsaXR5IGlzIGhhbmRsZWQgY29ycmVjdGx5IGFuZCBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciB2dWxuZXJhYmlsaXRpZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDAzOjQ3OjM3LjEzNzU3NTA1M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE1NDYxMTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYTFlZmQxMmUwNmE1NDcxYmU3MzljOTE4YTA0ZTgxYjZlYTA5NTYwNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCAyMSAwMzo0NzozNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcXG5pbmRleCBhNWY5ZWU5MmY0M2U4ZC4uMjMxYTViYTc1NjdjNTEgMTAwNjQ0XFxuLS0tIGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XFxuKysrIGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XFxuQEAgLTg5NDksNiArODk0OSwzOCBAQCBlbmFibGVkLCBjbW1hIGNhbid0IGJlIGVuYWJsZWQgYW55bW9yZSBhbmQgcGZtZmkgYW5kIHRoZSBzdG9yYWdlIGtleVxcbiBpbnRlcnByZXRhdGlvbiBhcmUgZGlzYWJsZWQuIElmIGNtbWEgaGFzIGFscmVhZHkgYmVlbiBlbmFibGVkIG9yIHRoZVxcbiBocGFnZV8yZyBtb2R1bGUgcGFyYW1ldGVyIGlzIG5vdCBzZXQgdG8gMSwgLUVJTlZBTCBpcyByZXR1cm5lZC5cXG4gXFxuKzcuNDggS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElOR1xcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4rXFxuKzpBcmNoaXRlY3R1cmVzOiB4ODZcXG4rOlR5cGU6IHZtXFxuKzpQYXJhbWV0ZXJzOiBhcmdzWzBdIC0gYml0bWFzayBvZiBQRVJGX0NPVU5UX0hXXyogZXZlbnQgSURzXFxuKzpSZXR1cm5zOiAwIG9uIHN1Y2Nlc3M7IC1FSU5WQUwgaWYgYXJnc1swXSBjb250YWlucyBhbiB1bnN1cHBvcnRlZCBldmVudCBvclxcbisgICAgICAgICAgaWYgdGhlIFZNIGFscmVhZHkgaGFzIHZDUFVzLlxcbitcXG4rQnkgZGVmYXVsdCwgS1ZNIHNvZnR3YXJlLWFjY291bnRzIGluc3RydWN0aW9ucyBpdCBlbXVsYXRlcyBhZ2FpbnN0IGEgZ3Vlc3RcXG4rUE1VIGNvdW50ZXIgcHJvZ3JhbW1lZCBmb3IgcmV0aXJlZCBpbnN0cnVjdGlvbnMgKFBFUkZfQ09VTlRfSFdfSU5TVFJVQ1RJT05TKVxcbitvciByZXRpcmVkIGJyYW5jaGVzIChQRVJGX0NPVU5UX0hXX0JSQU5DSF9JTlNUUlVDVElPTlMpLCBieSB3YWxraW5nIHRoZSB2UE1VXFxuK2NvdW50ZXJzIGFuZCByZXF1ZXN0aW5nIGEgY291bnRlciByZXByb2dyYW0gb24gdGhlIG5leHQgVk0tZW50cnkuIE9uIGhvc3RzXFxuK3dpdGggYW4gZW11bGF0ZWQgdlBNVSB0aGlzIHJlcHJvZ3JhbSBpcyBleHBlbnNpdmUgYW5kLCB1bmRlciBzb21lIHdvcmtsb2FkcyxcXG4raW5mbGF0ZXMgdGltZXItaW50ZXJydXB0IGhhbmRsaW5nIGVub3VnaCB0byB0cmlnZ2VyIGd1ZXN0IENTRCBsb2NrdXBzLlxcbitcXG4rVGhpcyBjYXBhYmlsaXR5IGxldHMgdXNlcnNwYWNlIGRpc2FibGUgdGhhdCBzb2Z0d2FyZSBhY2NvdW50aW5nIGZvciB0aGUgZ2l2ZW5cXG4rZXZlbnRzLiBTZXR0aW5nIGEgYml0IGZvciBhbiBldmVudCBJRCBtYWtlcyBLVk0gc2tpcCB0aGUgYWNjb3VudGluZyBmb3IgdGhhdFxcbitldmVudDogaW5zdHJ1Y3Rpb25zIEtWTSBlbXVsYXRlcyBpbiBob3N0IGNvbnRleHQgZ28gdW5jb3VudGVkLiBIYXJkd2FyZS1cXG4rZXhlY3V0ZWQgZ3Vlc3QgaW5zdHJ1Y3Rpb25zIGFyZSBzdGlsbCBjb3VudGVkIGJ5IHRoZSBiYWNraW5nIHBlcmZfZXZlbnQsIGFuZFxcbitpdHMgb3ZlcmZsb3cvUE1JIHBhdGggaXMgdW5hZmZlY3RlZC5cXG4rXFxuK1RoZSBjYXBhYmlsaXR5IG9ubHkgYWZmZWN0cyB0aGUgZW11bGF0ZWQgKHBlcmYtYmFzZWQpIHZQTVUuIEEgbWVkaWF0ZWQgdlBNVVxcbitkb2VzIG5vdCBpbmN1ciB0aGUgcmVwcm9ncmFtIGNvc3QgYW5kIGluY3JlbWVudHMgdGhlIGd1ZXN0IGNvdW50ZXIgZGlyZWN0bHksXFxuK3NvIGFjY291bnRpbmcgaXMgbmV2ZXIgc2tpcHBlZCBmb3IgaXQgcmVnYXJkbGVzcyBvZiB0aGlzIHNldHRpbmcuXFxuK1xcbitUaGlzIGNhbiBvbmx5IGJlIGludm9rZWQgb24gYSBWTSBwcmlvciB0byB0aGUgY3JlYXRpb24gb2YgdkNQVXM7IGF0dGVtcHRpbmcgdG9cXG4rc2V0IGl0IG9uY2UgYW55IHZDUFUgZXhpc3RzIHJldHVybnMgLUVJTlZBTC5cXG4rXFxuK0tWTV9DSEVDS19FWFRFTlNJT04gcmV0dXJucyB0aGUgYml0bWFzayBvZiBldmVudCBJRHMgdGhhdCBjYW4gYmUgZGlzYWJsZWQuXFxuK2FyZ3NbMF0gbXVzdCBiZSBhIHN1YnNldCBvZiB0aGF0IG1hc2suXFxuK1xcbiA4LiBPdGhlciBjYXBhYmlsaXRpZXMuXFxuID09PT09PT09PT09PT09PT09PT09PT1cXG4gXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuaW5kZXggNWY2YzFjZTk2NzNiN2YuLjUyMmY2NmM0NGU2YTAwIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuQEAgLTE1NjAsNiArMTU2MCwxMyBAQCBzdHJ1Y3Qga3ZtX2FyY2gge1xcbiBcXHRib29sIGVuYWJsZV9wbXU7XFxuIFxcdGJvb2wgY3JlYXRlZF9tZWRpYXRlZF9wbXU7XFxuIFxcbitcXHQvKlxcbitcXHQgKiBCaXRtYXNrIG9mIFBFUkZfQ09VTlRfSFdfKiBldmVudCBJRHMgZm9yIHdoaWNoIHNvZnR3YXJlIGFjY291bnRpbmdcXG4rXFx0ICogb2YgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucyBpcyBkaXNhYmxlZCAoS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfXFxuK1xcdCAqIFNXX0FDQ09VTlRJTkcpLiBTZWUga3ZtX3BtdV90cmlnZ2VyX2V2ZW50KCkuXFxuK1xcdCAqL1xcbitcXHR1NjQgcG11X2Rpc2FibGVfc3dfYWNjb3VudGluZztcXG4rXFxuIFxcdHUzMiBub3RpZnlfd2luZG93O1xcbiBcXHR1MzIgbm90aWZ5X3ZtZXhpdF9mbGFncztcXG4gXFx0LypcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3BtdS5jIGIvYXJjaC94ODYva3ZtL3BtdS5jXFxuaW5kZXggZGQxYzU3NTkzZjQ4YjguLmZiM2YyZGYwNjhkYzQ3IDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2t2bS9wbXUuY1xcbisrKyBiL2FyY2gveDg2L2t2bS9wbXUuY1xcbkBAIC0xMTQ1LDE0ICsxMTQ1LDM1IEBAIHN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuIFxcdHNyY3VfcmVhZF91bmxvY2soXFx1MDAyNnZjcHUtXFx1MDAzZWt2bS1cXHUwMDNlc3JjdSwgaWR4KTtcXG4gfVxcbiBcXG4rLypcXG4rICogV2hldGhlciBzb2Z0d2FyZSBhY2NvdW50aW5nIG9mIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMgZm9yIEBwZXJmX2h3X2lkIGlzXFxuKyAqIGRpc2FibGVkIHZpYSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HLiBUaGUgY2FwYWJpbGl0eSBvbmx5XFxuKyAqIHRhcmdldHMgdGhlIGVtdWxhdGVkIChwZXJmLWJhc2VkKSB2UE1VLCB3aGVyZSB0aGUgYWNjb3VudGluZyBkcml2ZXMgYW5cXG4rICogZXhwZW5zaXZlIGNvdW50ZXIgcmVwcm9ncmFtOyBhIG1lZGlhdGVkIHZQTVUgaW5jcmVtZW50cyBwbWMtXFx1MDAzZWNvdW50ZXJcXG4rICogZGlyZWN0bHkgKGFuZCBtYXkgcmFpc2UgYSBQTUkgb24gb3ZlcmZsb3cpLCBzbyBpdCBpcyBuZXZlciBza2lwcGVkLlxcbisgKi9cXG4rc3RhdGljIGJvb2wga3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgcGVyZl9od19pZClcXG4re1xcbitcXHRpZiAoa3ZtX3ZjcHVfaGFzX21lZGlhdGVkX3BtdSh2Y3B1KSlcXG4rXFx0XFx0cmV0dXJuIGZhbHNlO1xcbitcXG4rXFx0cmV0dXJuIHZjcHUtXFx1MDAzZWt2bS1cXHUwMDNlYXJjaC5wbXVfZGlzYWJsZV9zd19hY2NvdW50aW5nIFxcdTAwMjYgQklUX1VMTChwZXJmX2h3X2lkKTtcXG4rfVxcbitcXG4gdm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbiB7XFxuK1xcdGlmIChrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZyh2Y3B1LCBQRVJGX0NPVU5UX0hXX0lOU1RSVUNUSU9OUykpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuIFxcdGt2bV9wbXVfdHJpZ2dlcl9ldmVudCh2Y3B1LCB2Y3B1X3RvX3BtdSh2Y3B1KS1cXHUwMDNlcG1jX2NvdW50aW5nX2luc3RydWN0aW9ucyk7XFxuIH1cXG4gRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCk7XFxuIFxcbiB2b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbiB7XFxuK1xcdGlmIChrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZyh2Y3B1LCBQRVJGX0NPVU5UX0hXX0JSQU5DSF9JTlNUUlVDVElPTlMpKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHRrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktXFx1MDAzZXBtY19jb3VudGluZ19icmFuY2hlcyk7XFxuIH1cXG4gRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfYnJhbmNoX3JldGlyZWQpO1xcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vcG11LmggYi9hcmNoL3g4Ni9rdm0vcG11LmhcXG5pbmRleCBhNTgyMWQ3Yzg3ZjkzNS4uZTM0YjllODE0MzU1NTcgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3BtdS5oXFxuKysrIGIvYXJjaC94ODYva3ZtL3BtdS5oXFxuQEAgLTIzLDYgKzIzLDE1IEBAXFxuIFxcbiAjZGVmaW5lIEtWTV9GSVhFRF9QTUNfQkFTRV9JRFggSU5URUxfUE1DX0lEWF9GSVhFRFxcbiBcXG4rLypcXG4rICogRXZlbnRzIGZvciB3aGljaCBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HIGNhbiBkaXNhYmxlIHNvZnR3YXJlXFxuKyAqIGFjY291bnRpbmcgb2YgZW11bGF0ZWQgaW5zdHJ1Y3Rpb25zLiBUaGVzZSBhcmUgdGhlIG9ubHkgZXZlbnRzIEtWTSBldmVyXFxuKyAqIHBhc3NlcyB0byBrdm1fcG11X3RyaWdnZXJfZXZlbnQoKSAoZnJvbSB0aGUgcmV0aXJlZC1pbnN0cnVjdGlvbiBwYXRoKS5cXG4rICovXFxuKyNkZWZpbmUgS1ZNX1BNVV9TV19BQ0NPVU5USU5HX1ZBTElEX01BU0tcXHRcXHRcXHRcXFxcXFxuK1xcdChCSVRfVUxMKFBFUkZfQ09VTlRfSFdfSU5TVFJVQ1RJT05TKSB8XFx0XFx0XFx0XFxcXFxcbitcXHQgQklUX1VMTChQRVJGX0NPVU5UX0hXX0JSQU5DSF9JTlNUUlVDVElPTlMpKVxcbitcXG4gc3RydWN0IGt2bV9wbXVfb3BzIHtcXG4gXFx0c3RydWN0IGt2bV9wbWMgKigqcmRwbWNfZWN4X3RvX3BtYykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbiBcXHRcXHR1bnNpZ25lZCBpbnQgaWR4LCB1NjQgKm1hc2spO1xcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcXG5pbmRleCBhZmNhYzEwNDI5NDdhNS4uY2M4YTM2ZjI4YWVhOTggMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXFxuKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jXFxuQEAgLTQ5NjQsNiArNDk2NCw5IEBAIGludCBrdm1fdm1faW9jdGxfY2hlY2tfZXh0ZW5zaW9uKHN0cnVjdCBrdm0gKmt2bSwgbG9uZyBleHQpXFxuIFxcdGNhc2UgS1ZNX0NBUF9ESVNBQkxFX1FVSVJLUzI6XFxuIFxcdFxcdHIgPSBrdm1fY2Fwcy5zdXBwb3J0ZWRfcXVpcmtzO1xcbiBcXHRcXHRicmVhaztcXG4rXFx0Y2FzZSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HOlxcbitcXHRcXHRyID0gS1ZNX1BNVV9TV19BQ0NPVU5USU5HX1ZBTElEX01BU0s7XFxuK1xcdFxcdGJyZWFrO1xcbiBcXHRjYXNlIEtWTV9DQVBfWDg2X05PVElGWV9WTUVYSVQ6XFxuIFxcdFxcdHIgPSBrdm1fY2Fwcy5oYXNfbm90aWZ5X3ZtZXhpdDtcXG4gXFx0XFx0YnJlYWs7XFxuQEAgLTY3MzAsNiArNjczMywxOCBAQCBpbnQga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAoc3RydWN0IGt2bSAqa3ZtLFxcbiBcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFxuIFxcdHN3aXRjaCAoY2FwLVxcdTAwM2VjYXApIHtcXG4rXFx0Y2FzZSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HOlxcbitcXHRcXHRyID0gLUVJTlZBTDtcXG4rXFx0XFx0aWYgKGNhcC1cXHUwMDNlYXJnc1swXSBcXHUwMDI2IH5LVk1fUE1VX1NXX0FDQ09VTlRJTkdfVkFMSURfTUFTSylcXG4rXFx0XFx0XFx0YnJlYWs7XFxuK1xcbitcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZrdm0tXFx1MDAzZWxvY2spO1xcbitcXHRcXHRpZiAoIWt2bS1cXHUwMDNlY3JlYXRlZF92Y3B1cykge1xcbitcXHRcXHRcXHRrdm0tXFx1MDAzZWFyY2gucG11X2Rpc2FibGVfc3dfYWNjb3VudGluZyA9IGNhcC1cXHUwMDNlYXJnc1swXTtcXG4rXFx0XFx0XFx0ciA9IDA7XFxuK1xcdFxcdH1cXG4rXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZrdm0tXFx1MDAzZWxvY2spO1xcbitcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBLVk1fQ0FQX0RJU0FCTEVfUVVJUktTMjpcXG4gXFx0XFx0ciA9IC1FSU5WQUw7XFxuIFxcdFxcdGlmIChjYXAtXFx1MDAzZWFyZ3NbMF0gXFx1MDAyNiB+a3ZtX2NhcHMuc3VwcG9ydGVkX3F1aXJrcylcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oXFxuaW5kZXggNDE5MDExMDk3ZmE4ZTIuLjE4NjA1NDI0NWI4MGVhIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaFxcbisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaFxcbkBAIC05OTcsNiArOTk3LDcgQEAgc3RydWN0IGt2bV9lbmFibGVfY2FwIHtcXG4gI2RlZmluZSBLVk1fQ0FQX1MzOTBfS0VZT1AgMjQ3XFxuICNkZWZpbmUgS1ZNX0NBUF9TMzkwX1ZTSUVfRVNBTU9ERSAyNDhcXG4gI2RlZmluZSBLVk1fQ0FQX1MzOTBfSFBBR0VfMkcgMjQ5XFxuKyNkZWZpbmUgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElORyAyNTBcXG4gXFxuIHN0cnVjdCBrdm1faXJxX3JvdXRpbmdfaXJxY2hpcCB7XFxuIFxcdF9fdTMyIGlycWNoaXA7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDAzOjQ3OjM3Ljc1MzczMTA3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MjEzMjMyMjYwMzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkXCIsXG4gICAgXCJrdm1fcG11X2JyYW5jaF9yZXRpcmVkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgS1ZNIGNhcGFiaWxpdHkgYEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdgIHRoYXQgYWx0ZXJzIHRoZSBiZWhhdmlvciBvZiBzb2Z0d2FyZSBhY2NvdW50aW5nIGZvciBLVk0tZW11bGF0ZWQgaW5zdHJ1Y3Rpb25zLiBJdCBtb2RpZmllcyBjb3JlIEtWTSBQTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBjYXBhYmlsaXR5IGlzIGhhbmRsZWQgY29ycmVjdGx5IGFuZCBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciB2dWxuZXJhYmlsaXRpZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTFlZmQxMmUwNmE1NDcxYmU3MzljOTE4YTA0ZTgxYjZlYTA5NTYwNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDIxIDAzOjQ3OjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XG5pbmRleCBhNWY5ZWU5MmY0M2U4ZC4uMjMxYTViYTc1NjdjNTEgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbisrKyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdFxuQEAgLTg5NDksNiArODk0OSwzOCBAQCBlbmFibGVkLCBjbW1hIGNhbid0IGJlIGVuYWJsZWQgYW55bW9yZSBhbmQgcGZtZmkgYW5kIHRoZSBzdG9yYWdlIGtleVxuIGludGVycHJldGF0aW9uIGFyZSBkaXNhYmxlZC4gSWYgY21tYSBoYXMgYWxyZWFkeSBiZWVuIGVuYWJsZWQgb3IgdGhlXG4gaHBhZ2VfMmcgbW9kdWxlIHBhcmFtZXRlciBpcyBub3Qgc2V0IHRvIDEsIC1FSU5WQUwgaXMgcmV0dXJuZWQuXG4gXG4rNy40OCBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HXG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4rXG4rOkFyY2hpdGVjdHVyZXM6IHg4NlxuKzpUeXBlOiB2bVxuKzpQYXJhbWV0ZXJzOiBhcmdzWzBdIC0gYml0bWFzayBvZiBQRVJGX0NPVU5UX0hXXyogZXZlbnQgSURzXG4rOlJldHVybnM6IDAgb24gc3VjY2VzczsgLUVJTlZBTCBpZiBhcmdzWzBdIGNvbnRhaW5zIGFuIHVuc3VwcG9ydGVkIGV2ZW50IG9yXG4rICAgICAgICAgIGlmIHRoZSBWTSBhbHJlYWR5IGhhcyB2Q1BVcy5cbitcbitCeSBkZWZhdWx0LCBLVk0gc29mdHdhcmUtYWNjb3VudHMgaW5zdHJ1Y3Rpb25zIGl0IGVtdWxhdGVzIGFnYWluc3QgYSBndWVzdFxuK1BNVSBjb3VudGVyIHByb2dyYW1tZWQgZm9yIHJldGlyZWQgaW5zdHJ1Y3Rpb25zIChQRVJGX0NPVU5UX0hXX0lOU1RSVUNUSU9OUylcbitvciByZXRpcmVkIGJyYW5jaGVzIChQRVJGX0NPVU5UX0hXX0JSQU5DSF9JTlNUUlVDVElPTlMpLCBieSB3YWxraW5nIHRoZSB2UE1VXG4rY291bnRlcnMgYW5kIHJlcXVlc3RpbmcgYSBjb3VudGVyIHJlcHJvZ3JhbSBvbiB0aGUgbmV4dCBWTS1lbnRyeS4gT24gaG9zdHNcbit3aXRoIGFuIGVtdWxhdGVkIHZQTVUgdGhpcyByZXByb2dyYW0gaXMgZXhwZW5zaXZlIGFuZCwgdW5kZXIgc29tZSB3b3JrbG9hZHMsXG4raW5mbGF0ZXMgdGltZXItaW50ZXJydXB0IGhhbmRsaW5nIGVub3VnaCB0byB0cmlnZ2VyIGd1ZXN0IENTRCBsb2NrdXBzLlxuK1xuK1RoaXMgY2FwYWJpbGl0eSBsZXRzIHVzZXJzcGFjZSBkaXNhYmxlIHRoYXQgc29mdHdhcmUgYWNjb3VudGluZyBmb3IgdGhlIGdpdmVuXG4rZXZlbnRzLiBTZXR0aW5nIGEgYml0IGZvciBhbiBldmVudCBJRCBtYWtlcyBLVk0gc2tpcCB0aGUgYWNjb3VudGluZyBmb3IgdGhhdFxuK2V2ZW50OiBpbnN0cnVjdGlvbnMgS1ZNIGVtdWxhdGVzIGluIGhvc3QgY29udGV4dCBnbyB1bmNvdW50ZWQuIEhhcmR3YXJlLVxuK2V4ZWN1dGVkIGd1ZXN0IGluc3RydWN0aW9ucyBhcmUgc3RpbGwgY291bnRlZCBieSB0aGUgYmFja2luZyBwZXJmX2V2ZW50LCBhbmRcbitpdHMgb3ZlcmZsb3cvUE1JIHBhdGggaXMgdW5hZmZlY3RlZC5cbitcbitUaGUgY2FwYWJpbGl0eSBvbmx5IGFmZmVjdHMgdGhlIGVtdWxhdGVkIChwZXJmLWJhc2VkKSB2UE1VLiBBIG1lZGlhdGVkIHZQTVVcbitkb2VzIG5vdCBpbmN1ciB0aGUgcmVwcm9ncmFtIGNvc3QgYW5kIGluY3JlbWVudHMgdGhlIGd1ZXN0IGNvdW50ZXIgZGlyZWN0bHksXG4rc28gYWNjb3VudGluZyBpcyBuZXZlciBza2lwcGVkIGZvciBpdCByZWdhcmRsZXNzIG9mIHRoaXMgc2V0dGluZy5cbitcbitUaGlzIGNhbiBvbmx5IGJlIGludm9rZWQgb24gYSBWTSBwcmlvciB0byB0aGUgY3JlYXRpb24gb2YgdkNQVXM7IGF0dGVtcHRpbmcgdG9cbitzZXQgaXQgb25jZSBhbnkgdkNQVSBleGlzdHMgcmV0dXJucyAtRUlOVkFMLlxuK1xuK0tWTV9DSEVDS19FWFRFTlNJT04gcmV0dXJucyB0aGUgYml0bWFzayBvZiBldmVudCBJRHMgdGhhdCBjYW4gYmUgZGlzYWJsZWQuXG4rYXJnc1swXSBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoYXQgbWFzay5cbitcbiA4LiBPdGhlciBjYXBhYmlsaXRpZXMuXG4gPT09PT09PT09PT09PT09PT09PT09PVxuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCA1ZjZjMWNlOTY3M2I3Zi4uNTIyZjY2YzQ0ZTZhMDAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5AQCAtMTU2MCw2ICsxNTYwLDEzIEBAIHN0cnVjdCBrdm1fYXJjaCB7XG4gXHRib29sIGVuYWJsZV9wbXU7XG4gXHRib29sIGNyZWF0ZWRfbWVkaWF0ZWRfcG11O1xuIFxuK1x0LypcbitcdCAqIEJpdG1hc2sgb2YgUEVSRl9DT1VOVF9IV18qIGV2ZW50IElEcyBmb3Igd2hpY2ggc29mdHdhcmUgYWNjb3VudGluZ1xuK1x0ICogb2YgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucyBpcyBkaXNhYmxlZCAoS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfXG4rXHQgKiBTV19BQ0NPVU5USU5HKS4gU2VlIGt2bV9wbXVfdHJpZ2dlcl9ldmVudCgpLlxuK1x0ICovXG4rXHR1NjQgcG11X2Rpc2FibGVfc3dfYWNjb3VudGluZztcbitcbiBcdHUzMiBub3RpZnlfd2luZG93O1xuIFx0dTMyIG5vdGlmeV92bWV4aXRfZmxhZ3M7XG4gXHQvKlxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9wbXUuYyBiL2FyY2gveDg2L2t2bS9wbXUuY1xuaW5kZXggZGQxYzU3NTkzZjQ4YjguLmZiM2YyZGYwNjhkYzQ3IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3BtdS5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vcG11LmNcbkBAIC0xMTQ1LDE0ICsxMTQ1LDM1IEBAIHN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRzcmN1X3JlYWRfdW5sb2NrKFx1MDAyNnZjcHUtXHUwMDNla3ZtLVx1MDAzZXNyY3UsIGlkeCk7XG4gfVxuIFxuKy8qXG4rICogV2hldGhlciBzb2Z0d2FyZSBhY2NvdW50aW5nIG9mIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMgZm9yIEBwZXJmX2h3X2lkIGlzXG4rICogZGlzYWJsZWQgdmlhIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkcuIFRoZSBjYXBhYmlsaXR5IG9ubHlcbisgKiB0YXJnZXRzIHRoZSBlbXVsYXRlZCAocGVyZi1iYXNlZCkgdlBNVSwgd2hlcmUgdGhlIGFjY291bnRpbmcgZHJpdmVzIGFuXG4rICogZXhwZW5zaXZlIGNvdW50ZXIgcmVwcm9ncmFtOyBhIG1lZGlhdGVkIHZQTVUgaW5jcmVtZW50cyBwbWMtXHUwMDNlY291bnRlclxuKyAqIGRpcmVjdGx5IChhbmQgbWF5IHJhaXNlIGEgUE1JIG9uIG92ZXJmbG93KSwgc28gaXQgaXMgbmV2ZXIgc2tpcHBlZC5cbisgKi9cbitzdGF0aWMgYm9vbCBrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBwZXJmX2h3X2lkKVxuK3tcbitcdGlmIChrdm1fdmNwdV9oYXNfbWVkaWF0ZWRfcG11KHZjcHUpKVxuK1x0XHRyZXR1cm4gZmFsc2U7XG4rXG4rXHRyZXR1cm4gdmNwdS1cdTAwM2Vrdm0tXHUwMDNlYXJjaC5wbXVfZGlzYWJsZV9zd19hY2NvdW50aW5nIFx1MDAyNiBCSVRfVUxMKHBlcmZfaHdfaWQpO1xuK31cbitcbiB2b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4ge1xuK1x0aWYgKGt2bV9wbXVfc2tpcF9zd19hY2NvdW50aW5nKHZjcHUsIFBFUkZfQ09VTlRfSFdfSU5TVFJVQ1RJT05TKSlcbitcdFx0cmV0dXJuO1xuK1xuIFx0a3ZtX3BtdV90cmlnZ2VyX2V2ZW50KHZjcHUsIHZjcHVfdG9fcG11KHZjcHUpLVx1MDAzZXBtY19jb3VudGluZ19pbnN0cnVjdGlvbnMpO1xuIH1cbiBFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoa3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKTtcbiBcbiB2b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbitcdGlmIChrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZyh2Y3B1LCBQRVJGX0NPVU5UX0hXX0JSQU5DSF9JTlNUUlVDVElPTlMpKVxuK1x0XHRyZXR1cm47XG4rXG4gXHRrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktXHUwMDNlcG1jX2NvdW50aW5nX2JyYW5jaGVzKTtcbiB9XG4gRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfYnJhbmNoX3JldGlyZWQpO1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9wbXUuaCBiL2FyY2gveDg2L2t2bS9wbXUuaFxuaW5kZXggYTU4MjFkN2M4N2Y5MzUuLmUzNGI5ZTgxNDM1NTU3IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3BtdS5oXG4rKysgYi9hcmNoL3g4Ni9rdm0vcG11LmhcbkBAIC0yMyw2ICsyMywxNSBAQFxuIFxuICNkZWZpbmUgS1ZNX0ZJWEVEX1BNQ19CQVNFX0lEWCBJTlRFTF9QTUNfSURYX0ZJWEVEXG4gXG4rLypcbisgKiBFdmVudHMgZm9yIHdoaWNoIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkcgY2FuIGRpc2FibGUgc29mdHdhcmVcbisgKiBhY2NvdW50aW5nIG9mIGVtdWxhdGVkIGluc3RydWN0aW9ucy4gVGhlc2UgYXJlIHRoZSBvbmx5IGV2ZW50cyBLVk0gZXZlclxuKyAqIHBhc3NlcyB0byBrdm1fcG11X3RyaWdnZXJfZXZlbnQoKSAoZnJvbSB0aGUgcmV0aXJlZC1pbnN0cnVjdGlvbiBwYXRoKS5cbisgKi9cbisjZGVmaW5lIEtWTV9QTVVfU1dfQUNDT1VOVElOR19WQUxJRF9NQVNLXHRcdFx0XFxcbitcdChCSVRfVUxMKFBFUkZfQ09VTlRfSFdfSU5TVFJVQ1RJT05TKSB8XHRcdFx0XFxcbitcdCBCSVRfVUxMKFBFUkZfQ09VTlRfSFdfQlJBTkNIX0lOU1RSVUNUSU9OUykpXG4rXG4gc3RydWN0IGt2bV9wbXVfb3BzIHtcbiBcdHN0cnVjdCBrdm1fcG1jICooKnJkcG1jX2VjeF90b19wbWMpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbiBcdFx0dW5zaWduZWQgaW50IGlkeCwgdTY0ICptYXNrKTtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbmluZGV4IGFmY2FjMTA0Mjk0N2E1Li5jYzhhMzZmMjhhZWE5OCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS94ODYuY1xuKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5AQCAtNDk2NCw2ICs0OTY0LDkgQEAgaW50IGt2bV92bV9pb2N0bF9jaGVja19leHRlbnNpb24oc3RydWN0IGt2bSAqa3ZtLCBsb25nIGV4dClcbiBcdGNhc2UgS1ZNX0NBUF9ESVNBQkxFX1FVSVJLUzI6XG4gXHRcdHIgPSBrdm1fY2Fwcy5zdXBwb3J0ZWRfcXVpcmtzO1xuIFx0XHRicmVhaztcbitcdGNhc2UgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElORzpcbitcdFx0ciA9IEtWTV9QTVVfU1dfQUNDT1VOVElOR19WQUxJRF9NQVNLO1xuK1x0XHRicmVhaztcbiBcdGNhc2UgS1ZNX0NBUF9YODZfTk9USUZZX1ZNRVhJVDpcbiBcdFx0ciA9IGt2bV9jYXBzLmhhc19ub3RpZnlfdm1leGl0O1xuIFx0XHRicmVhaztcbkBAIC02NzMwLDYgKzY3MzMsMTggQEAgaW50IGt2bV92bV9pb2N0bF9lbmFibGVfY2FwKHN0cnVjdCBrdm0gKmt2bSxcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4gXHRzd2l0Y2ggKGNhcC1cdTAwM2VjYXApIHtcbitcdGNhc2UgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElORzpcbitcdFx0ciA9IC1FSU5WQUw7XG4rXHRcdGlmIChjYXAtXHUwMDNlYXJnc1swXSBcdTAwMjYgfktWTV9QTVVfU1dfQUNDT1VOVElOR19WQUxJRF9NQVNLKVxuK1x0XHRcdGJyZWFrO1xuK1xuK1x0XHRtdXRleF9sb2NrKFx1MDAyNmt2bS1cdTAwM2Vsb2NrKTtcbitcdFx0aWYgKCFrdm0tXHUwMDNlY3JlYXRlZF92Y3B1cykge1xuK1x0XHRcdGt2bS1cdTAwM2VhcmNoLnBtdV9kaXNhYmxlX3N3X2FjY291bnRpbmcgPSBjYXAtXHUwMDNlYXJnc1swXTtcbitcdFx0XHRyID0gMDtcbitcdFx0fVxuK1x0XHRtdXRleF91bmxvY2soXHUwMDI2a3ZtLVx1MDAzZWxvY2spO1xuK1x0XHRicmVhaztcbiBcdGNhc2UgS1ZNX0NBUF9ESVNBQkxFX1FVSVJLUzI6XG4gXHRcdHIgPSAtRUlOVkFMO1xuIFx0XHRpZiAoY2FwLVx1MDAzZWFyZ3NbMF0gXHUwMDI2IH5rdm1fY2Fwcy5zdXBwb3J0ZWRfcXVpcmtzKVxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaFxuaW5kZXggNDE5MDExMDk3ZmE4ZTIuLjE4NjA1NDI0NWI4MGVhIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmhcbkBAIC05OTcsNiArOTk3LDcgQEAgc3RydWN0IGt2bV9lbmFibGVfY2FwIHtcbiAjZGVmaW5lIEtWTV9DQVBfUzM5MF9LRVlPUCAyNDdcbiAjZGVmaW5lIEtWTV9DQVBfUzM5MF9WU0lFX0VTQU1PREUgMjQ4XG4gI2RlZmluZSBLVk1fQ0FQX1MzOTBfSFBBR0VfMkcgMjQ5XG4rI2RlZmluZSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HIDI1MFxuIFxuIHN0cnVjdCBrdm1faXJxX3JvdXRpbmdfaXJxY2hpcCB7XG4gXHRfX3UzMiBpcnFjaGlwO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjFUMDM6NDc6MzcuNzUzNzMyNzdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzU5NTU1MTk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEtWTSBQTVUgU29mdHdhcmUgQWNjb3VudGluZyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW50cm9kdWNpbmcgYEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdgICgyNTApLiBJdCBsb29rcyBsaWtlIHRoZXkncmUgZ2l2aW5nIHVzZXJzcGFjZSB0aGUgYWJpbGl0eSB0byBkaXNhYmxlIHRoZSBzb2Z0d2FyZS1iYXNlZCBhY2NvdW50aW5nIG9mIGluc3RydWN0aW9ucyB3aXRoaW4gS1ZNLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBgUEVSRl9DT1VOVF9IV19JTlNUUlVDVElPTlNgIGFuZCBgUEVSRl9DT1VOVF9IV19CUkFOQ0hfSU5TVFJVQ1RJT05TYCBldmVudHMuIFRoYXQncyBhIHJlYXNvbmFibGUgcmVxdWVzdCwgZXNwZWNpYWxseSBpbiBwZXJmb3JtYW5jZS1zZW5zaXRpdmUgc2NlbmFyaW9zIG9yIHdoZXJlIHVzZXJzcGFjZSB3YW50cyB2ZXJ5IGZpbmUtZ3JhaW5lZCBjb250cm9sIG92ZXIgdGhlIHBlcmZvcm1hbmNlIGRhdGEgaXQncyBjb2xsZWN0aW5nLlxuXG5UaGV5J3ZlIG1vZGlmaWVkIGBhcmNoL3g4Ni9rdm0vcG11LmNgIGFuZCBgYXJjaC94ODYva3ZtL3g4Ni5jYCwgYW5kIHRoZXkndmUgYWRkZWQgYSBgcG11X2Rpc2FibGVfc3dfYWNjb3VudGluZ2AgZmllbGQgdG8gdGhlIGBzdHJ1Y3Qga3ZtX2FyY2hgLiBNYWtlcyBzZW5zZSDigJMgYSBjbGVhbiB3YXkgdG8gc3RvcmUgdGhlIGRpc2FibGluZyBzdGF0ZS5cblxuVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBpbiBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBhbmQgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgLiAgRXNzZW50aWFsbHksIHRoZSBwYXRjaCBpcyBhZGRpbmcgYSBjaGVjayBpbiB0aGVzZSBmdW5jdGlvbnMuIElmIHRoZSBjYXBhYmlsaXR5IGJpdCBpcyBzZXQsIGl0IGJ5cGFzc2VzIHRoZSBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCBjYWxsLCB3aGljaCBpcyB3aGVyZSB0aGUgYWNjb3VudGluZyB3b3VsZCBoYXBwZW4uIFNvLCB0aGV5J3JlIGF2b2lkaW5nIHRoZSBvdmVyaGVhZCBvZiB0cmlnZ2VyaW5nIHRob3NlIGV2ZW50cy5cblxuVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIEtWTSB4ODYgc3Vic3lzdGVtLiBUaGF0IG1lYW5zIHRoaXMgbmVlZHMgc29tZSBzZXJpb3VzIGZ1enppbmcuIEdvdHRhIGNoZWNrIGZvciBhbnkgZWRnZSBjYXNlcyBvciB1bmV4cGVjdGVkIGJlaGF2aW9yIHdoZW4gdGhpcyBhY2NvdW50aW5nIGlzIGRpc2FibGVkLlxuXG5MZXQncyBzZWUsIHdoYXQgYXJlIHRoZSBrZXkgc3ltYm9scz8gTG9va3MgbGlrZSB0aGUgcHJpbWFyeSBmb2N1cyBzaG91bGQgYmUgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAsIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYCwgYW5kIG1heWJlIGBrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZ2AsIGV2ZW4gdGhvdWdoIHRoYXQgb25lIGlzIHN0YXRpYyBhbmQgbWlnaHQgYmUgaW5saW5lZC4gSeKAmW0gZ29pbmcgdG8gY29uc2lkZXIgYGt2bV92bV9pb2N0bF9lbmFibGVfY2FwYCBidXQgaXQgc2VlbXMgcHJldHR5IGdlbmVyaWMsIHNvIGl0IG1pZ2h0IG5vdCBiZSBhIHRhcmdldC5cblxuV2FpdCwgbG9va2luZyBhdCBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBhbmQgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgLCB0aGV5IGFyZSBiZWluZyBjYWxsZWQgd2hlbiBpbnN0cnVjdGlvbnMgYXJlIHJldGlyZWQuIENydWNpYWxseSwgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgaXMgY2FsbGVkIHdoZW4gS1ZNIGlzICplbXVsYXRpbmcqIGFuIGluc3RydWN0aW9uLCB3aGljaCBtYXkgYmUgbW9yZSBmcmVxdWVudCB0aGFuIGluc3RydWN0aW9uIHJldGlyZW1lbnQuIExldCBtZSBkb3VibGUgY2hlY2sgd2hlcmUgdGhvc2UgYXJlIGJlaW5nIGNhbGxlZC4gVGhhdCdzIHRoZSBjcml0aWNhbCBwYXRoIHRvIGV4YW1pbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyODksIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNjUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwMzo0Nzo0NC4xMTMyOTE2MTZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk4NzIzNjcyNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3BtdS5jPTExNTU9c3RhdGljIGJvb2wga3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgcGVyZl9od19pZClcXG4tLVxcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTYyLVxcbmFyY2gveDg2L2t2bS9wbXUuYzoxMTYzOnZvaWQga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2NC17XFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2OS19XFxuYXJjaC94ODYva3ZtL3BtdS5jOjExNzA6RVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCk7XFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzEtXFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11Lmg9MjkzPWludCBrdm1fdm1faW9jdGxfc2V0X3BtdV9ldmVudF9maWx0ZXIoc3RydWN0IGt2bSAqa3ZtLCB2b2lkIF9fdXNlciAqYXJncCk7XFxuYXJjaC94ODYva3ZtL3BtdS5oOjI5NDp2b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbmFyY2gveDg2L2t2bS9wbXUuaC0yOTUtdm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuLS1cXG5hcmNoL3g4Ni9rdm0vc3ZtL25lc3RlZC5jPTExMTQ9aW50IG5lc3RlZF9zdm1fdm1ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbi0tXFxuYXJjaC94ODYva3ZtL3N2bS9uZXN0ZWQuYy0xMTk3LVxcdCAqL1xcbmFyY2gveDg2L2t2bS9zdm0vbmVzdGVkLmM6MTE5ODpcXHRrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQodmNwdSk7XFxuYXJjaC94ODYva3ZtL3N2bS9uZXN0ZWQuYy0xMTk5LVxcdHJldHVybiAxO1xcbi0tXFxuYXJjaC94ODYva3ZtL3g4Ni5jPTkyNzg9aW50IGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYy05Mjg2LVxcbmFyY2gveDg2L2t2bS94ODYuYzo5Mjg3OlxcdGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTI4OC1cXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYz05NDM2PWludCB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGdwYV90IGNyMl9vcl9ncGEsXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTYzMS1cXHRcXHQgICAgZXhjZXB0aW9uX3R5cGUoY3R4dC1cXHUwMDNlZXhjZXB0aW9uLnZlY3RvcikgPT0gRVhDUFRfVFJBUCkge1xcbmFyY2gveDg2L2t2bS94ODYuYzo5NjMyOlxcdFxcdFxcdGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTYzMy1cXHRcXHRcXHRpZiAoY3R4dC1cXHUwMDNlaXNfYnJhbmNoKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwMzo0Nzo0Ni4xMDA1Mzc3NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMTI2MzQyMjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkFuYWx5emluZyBLVk0gUGVyZm9ybWFuY2UgQ291bnRlcnMqKlxuXG5SaWdodCwgc28gSSdtIHRoaW5raW5nIGFib3V0IHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgaW4gS1ZNIGFnYWluLCBhbmQgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYCBhcmUgZGVmaW5pdGVseSBrZXkgZm9jdXMgcG9pbnRzLiBUaG9zZSBhcmUgc29saWQgc3ltYm9scyB0byBob25lIGluIG9uLiBBbmQgdGhlbiBJIHJlY2FsbCB0aGF0IGBrdm1fdm1faW9jdGxfZW5hYmxlX2NhcGAgZ2V0cyBpdHMgaGFuZHMgZGlydHkgd2l0aCBgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElOR2Agd2hpY2ggaXMgYWxzbyByZWxldmFudC4gR290dGEga2VlcCB0aG9zZSBpbnRlcnJlbGF0ZWQuXG5cbkxldCdzIGRpZyBpbnRvIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gSSB3YW50IHRvIHNlZSB3aGF0J3MgaGFwcGVuaW5nIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTg5LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjFUMDM6NDc6NDkuMjEzMTc1MDFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk4Njk5NzMwNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcG11X2JyYW5jaF9yZXRpcmVkXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS9wbXUuYz0xMTcwPUVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQpO1xcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTcxLVxcbmFyY2gveDg2L2t2bS9wbXUuYzoxMTcyOnZvaWQga3ZtX3BtdV9icmFuY2hfcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzMte1xcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzgtfVxcbmFyY2gveDg2L2t2bS9wbXUuYzoxMTc5OkVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2JyYW5jaF9yZXRpcmVkKTtcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE4MC1cXG4tLVxcbmFyY2gveDg2L2t2bS9wbXUuaD0yOTQ9dm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vcG11Lmg6Mjk1OnZvaWQga3ZtX3BtdV9icmFuY2hfcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbmFyY2gveDg2L2t2bS9wbXUuaC0yOTYtdm9pZCBrdm1fbWVkaWF0ZWRfcG11X2xvYWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvbmVzdGVkLmM9Mzc3Nz1zdGF0aWMgaW50IG5lc3RlZF92bXhfcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBsYXVuY2gpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jLTM3OTMtXFxuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYzozNzk0OlxcdGt2bV9wbXVfYnJhbmNoX3JldGlyZWQodmNwdSk7XFxuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYy0zNzk1LVxcbi0tXFxuYXJjaC94ODYva3ZtL3g4Ni5jPTk0MzY9aW50IHg4Nl9lbXVsYXRlX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgZ3BhX3QgY3IyX29yX2dwYSxcXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYy05NjMzLVxcdFxcdFxcdGlmIChjdHh0LVxcdTAwM2Vpc19icmFuY2gpXFxuYXJjaC94ODYva3ZtL3g4Ni5jOjk2MzQ6XFx0XFx0XFx0XFx0a3ZtX3BtdV9icmFuY2hfcmV0aXJlZCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTYzNS1cXHRcXHRcXHRrdm1fcmlwX3dyaXRlKHZjcHUsIGN0eHQtXFx1MDAzZWVpcCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDAzOjQ3OjUxLjIwMDE4NTk0NVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI2NzU1OTYwMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJpemVkIHRob3VnaHQgcHJvY2VzcywgcHJlc2VudGVkIGFzIGlmIEknbSB0aGlua2luZyBpdDpcblxuKipDaGVja2luZyBLY29uZmlnIGZvciBLVk0qKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCBzdGFydGVkLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55dGhpbmcgY3J1Y2lhbCByZWdhcmRpbmcgS1ZNIGNvbmZpZ3VyYXRpb24uIFRoZSBmaXJzdCBwb3J0IG9mIGNhbGwsIG5hdHVyYWxseSwgaXMgdGhlIEtjb25maWcgZmlsZXMuIEkgbmVlZCB0byBxdWlja2x5IGFuZCBtZXRob2RpY2FsbHkgY29uZmlybSB0aGF0IGFsbCByZWxldmFudCBLVk0gb3B0aW9ucyBhcmUgZW5hYmxlZCBvciwgYXQgbGVhc3QsIGNvcnJlY3RseSBoYW5kbGVkIHdpdGhpbiB0aGUga2VybmVsIGJ1aWxkIGNvbmZpZ3VyYXRpb24uIEknbGwgbmVlZCB0byBkb3VibGUtY2hlY2sgZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHNldHRpbmdzLCBhbmQgYW55IHBvdGVudGlhbCBjb25mbGljdHMgd2l0aCBvdGhlciBmZWF0dXJlcyB0aGF0IG1pZ2h0IGltcGFjdCBLVk0ncyBwZXJmb3JtYW5jZSBvciBmdW5jdGlvbmFsaXR5LiBUaGlzIHF1aWNrIGF1ZGl0IHdpbGwgaG9wZWZ1bGx5IHByZXZlbnQgYW55IG5lZWRsZXNzIGRlYnVnZ2luZyBsYXRlciBvbi4gTGV0J3MgZGlnIGluIGFuZCBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBhcyBpdCBzaG91bGQgYmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY4NzYsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwMzo0Nzo1My44NzU3ODQ5OTdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjEyNTQyMjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXFx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVxcdGJvb2wgXFxcIkNvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cXHRib29sIFxcXCJBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTcxLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mjpjb25maWcgS1ZNX0lPQVBJQ1xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3My1cXHRib29sIFxcXCJJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4MS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODI6Y29uZmlnIEtWTV9TTU1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODMtXFx0Ym9vbCBcXFwiU3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTItXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTkzOmNvbmZpZyBLVk1fSFlQRVJWXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTk0LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDc6Y29uZmlnIEtWTV9YRU5cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDgtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE2OmNvbmZpZyBLVk1fUFJPVkVfTU1VXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE3LVxcdGJvb2wgXFxcIlByb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjgtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzAtXFx0Ym9vbFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzI6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzMtXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwMzo0Nzo1My45MzcwNDM3ODNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDU1OTI4MzIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBLVk0gUE1VIFNvZnR3YXJlIEFjY291bnRpbmcgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIG5ldyBwYXRjaCByZWxhdGVkIHRvIHRoZSBLVk0gUE1VIGFuZCBpdHMgc29mdHdhcmUgYWNjb3VudGluZy4gVGhlIGtleSBjb25maWd1cmF0aW9ucyBhcmUgYEtWTWAgYW5kIGBLVk1fWDg2YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHplcm8gaW4gb24gdGhlIHJlbGV2YW50IHN5bWJvbHM7IHRoYXQncyB3aGVyZSBJIG5lZWQgdG8gZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzLiBJJ3ZlIGlkZW50aWZpZWQgdGhlIGZvY3VzIHN5bWJvbHM6IGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgLCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAsIGFuZCBga3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmdgLlxuXG5JIG5lZWQgdG8gY29uZmlybSBpZiBga3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmdgIGlzIGEgc3RhdGljIHZhcmlhYmxlLCBhbmQgeWVzLCBJJ3ZlIGNvbmZpcm1lZCBpdCdzIHN0YXRpYyB3aXRoaW4gYGFyY2gveDg2L2t2bS9wbXUuY2AuIEJhc2VkIG9uIHRoaXMsIGl0J3MgcHJvYmFibHkgbGVzcyBjcml0aWNhbCBmb3IgZGlyZWN0IGZ1enppbmcuIFRoZXJlZm9yZSwgSSdsbCBwcmlvcml0aXplIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAgYXMgdGhlIHByaW1hcnkgdGFyZ2V0cy5cblxuR2l2ZW4gdGhlIHBvdGVudGlhbCBpbXBhY3Qgb24gY29yZSBLVk0gUE1VIGxvZ2ljIGludHJvZHVjZWQgYnkgYEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdgLCBJJ3ZlIGRlY2lkZWQgdGhpcyBkZWZpbml0ZWx5IHdhcnJhbnRzIGZ1enppbmcuIEknbGwgc2V0IG15IGludGVybmFsIGZsYWcsIGBXb3J0aEZ1enppbmdgLCB0byB0cnVlLlxuXG5UaGVyZWZvcmUsIHRoZSBrZXkgY29uZmlndXJhdGlvbnMgSSdsbCB1c2UgaW4gbXkgZnV6emluZyBjYW1wYWlnbiB3aWxsIGJlIGBLVk1gLCBhbmQgSSB3aWxsIHRhcmdldCB0aGUgc3ltYm9scyBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBhbmQgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgLiBJIG5lZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2FwYWJpbGl0eSBpcyBoYW5kbGVkIGNvcnJlY3RseS4gSSBhbHNvIHdhbnQgdG8gcHJldmVudCByZWdyZXNzaW9ucyBvciB2dWxuZXJhYmlsaXRpZXMuIFRoaXMgbG9va3MgbGlrZSBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50IGZvciBmdXp6aW5nIHRoaXMgcGF0Y2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgyOTMsIk91dHB1dFRva2VucyI6MTMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDAzOjQ3OjU4Ljk5Mjk3NTM3NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgzOTc2MTA2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRcIixcbiAgICBcImt2bV9wbXVfYnJhbmNoX3JldGlyZWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBLVk0gY2FwYWJpbGl0eSBgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElOR2AgdGhhdCBhbHRlcnMgdGhlIGJlaGF2aW9yIG9mIHNvZnR3YXJlIGFjY291bnRpbmcgZm9yIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMuIEl0IG1vZGlmaWVzIGNvcmUgS1ZNIFBNVSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGNhcGFiaWxpdHkgaXMgaGFuZGxlZCBjb3JyZWN0bHkgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHZ1bG5lcmFiaWxpdGllcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRcIixcbiAgICBcImt2bV9wbXVfYnJhbmNoX3JldGlyZWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBLVk0gY2FwYWJpbGl0eSBgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElOR2AgdGhhdCBhbHRlcnMgdGhlIGJlaGF2aW9yIG9mIHNvZnR3YXJlIGFjY291bnRpbmcgZm9yIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMuIEl0IG1vZGlmaWVzIGNvcmUgS1ZNIFBNVSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGNhcGFiaWxpdHkgaXMgaGFuZGxlZCBjb3JyZWN0bHkgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHZ1bG5lcmFiaWxpdGllcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowp7z64[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-21 03:07:56 +0000 UTC FinishedAt: 2026-07-21 03:48:01 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "25f744ffa0c8e799e06250ce2e618367b166b0d4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "25f744ffa0c8e799e06250ce2e618367b166b0d4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "43091e7b-1263-4d62-ade1-7c4daba12271" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_pmu_instruction_retired", "kvm_pmu_branch_retired" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDAzOjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCYjMzQ7LAogICAgJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IEtWTSBjYXBhYmlsaXR5IGBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HYCB0aGF0IGFsdGVycyB0aGUgYmVoYXZpb3Igb2Ygc29mdHdhcmUgYWNjb3VudGluZyBmb3IgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucy4gSXQgbW9kaWZpZXMgY29yZSBLVk0gUE1VIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgY2FwYWJpbGl0eSBpcyBoYW5kbGVkIGNvcnJlY3RseSBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHZ1bG5lcmFiaWxpdGllcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwMzo0NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGExZWZkMTJlMDZhNTQ3MWJlNzM5YzkxOGEwNGU4MWI2ZWEwOTU2MDVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyMSAwMzo0NzozNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbmluZGV4IGE1ZjllZTkyZjQzZThkLi4yMzFhNWJhNzU2N2M1MSAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdFxuJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XG5AQCAtODk0OSw2ICYjNDM7ODk0OSwzOCBAQCBlbmFibGVkLCBjbW1hIGNhbiYjMzk7dCBiZSBlbmFibGVkIGFueW1vcmUgYW5kIHBmbWZpIGFuZCB0aGUgc3RvcmFnZSBrZXlcbiBpbnRlcnByZXRhdGlvbiBhcmUgZGlzYWJsZWQuIElmIGNtbWEgaGFzIGFscmVhZHkgYmVlbiBlbmFibGVkIG9yIHRoZVxuIGhwYWdlXzJnIG1vZHVsZSBwYXJhbWV0ZXIgaXMgbm90IHNldCB0byAxLCAtRUlOVkFMIGlzIHJldHVybmVkLlxuIFxuJiM0Mzs3LjQ4IEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdcbiYjNDM7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4mIzQzO1xuJiM0Mzs6QXJjaGl0ZWN0dXJlczogeDg2XG4mIzQzOzpUeXBlOiB2bVxuJiM0Mzs6UGFyYW1ldGVyczogYXJnc1swXSAtIGJpdG1hc2sgb2YgUEVSRl9DT1VOVF9IV18qIGV2ZW50IElEc1xuJiM0Mzs6UmV0dXJuczogMCBvbiBzdWNjZXNzOyAtRUlOVkFMIGlmIGFyZ3NbMF0gY29udGFpbnMgYW4gdW5zdXBwb3J0ZWQgZXZlbnQgb3JcbiYjNDM7ICAgICAgICAgIGlmIHRoZSBWTSBhbHJlYWR5IGhhcyB2Q1BVcy5cbiYjNDM7XG4mIzQzO0J5IGRlZmF1bHQsIEtWTSBzb2Z0d2FyZS1hY2NvdW50cyBpbnN0cnVjdGlvbnMgaXQgZW11bGF0ZXMgYWdhaW5zdCBhIGd1ZXN0XG4mIzQzO1BNVSBjb3VudGVyIHByb2dyYW1tZWQgZm9yIHJldGlyZWQgaW5zdHJ1Y3Rpb25zIChQRVJGX0NPVU5UX0hXX0lOU1RSVUNUSU9OUylcbiYjNDM7b3IgcmV0aXJlZCBicmFuY2hlcyAoUEVSRl9DT1VOVF9IV19CUkFOQ0hfSU5TVFJVQ1RJT05TKSwgYnkgd2Fsa2luZyB0aGUgdlBNVVxuJiM0Mztjb3VudGVycyBhbmQgcmVxdWVzdGluZyBhIGNvdW50ZXIgcmVwcm9ncmFtIG9uIHRoZSBuZXh0IFZNLWVudHJ5LiBPbiBob3N0c1xuJiM0Mzt3aXRoIGFuIGVtdWxhdGVkIHZQTVUgdGhpcyByZXByb2dyYW0gaXMgZXhwZW5zaXZlIGFuZCwgdW5kZXIgc29tZSB3b3JrbG9hZHMsXG4mIzQzO2luZmxhdGVzIHRpbWVyLWludGVycnVwdCBoYW5kbGluZyBlbm91Z2ggdG8gdHJpZ2dlciBndWVzdCBDU0QgbG9ja3Vwcy5cbiYjNDM7XG4mIzQzO1RoaXMgY2FwYWJpbGl0eSBsZXRzIHVzZXJzcGFjZSBkaXNhYmxlIHRoYXQgc29mdHdhcmUgYWNjb3VudGluZyBmb3IgdGhlIGdpdmVuXG4mIzQzO2V2ZW50cy4gU2V0dGluZyBhIGJpdCBmb3IgYW4gZXZlbnQgSUQgbWFrZXMgS1ZNIHNraXAgdGhlIGFjY291bnRpbmcgZm9yIHRoYXRcbiYjNDM7ZXZlbnQ6IGluc3RydWN0aW9ucyBLVk0gZW11bGF0ZXMgaW4gaG9zdCBjb250ZXh0IGdvIHVuY291bnRlZC4gSGFyZHdhcmUtXG4mIzQzO2V4ZWN1dGVkIGd1ZXN0IGluc3RydWN0aW9ucyBhcmUgc3RpbGwgY291bnRlZCBieSB0aGUgYmFja2luZyBwZXJmX2V2ZW50LCBhbmRcbiYjNDM7aXRzIG92ZXJmbG93L1BNSSBwYXRoIGlzIHVuYWZmZWN0ZWQuXG4mIzQzO1xuJiM0MztUaGUgY2FwYWJpbGl0eSBvbmx5IGFmZmVjdHMgdGhlIGVtdWxhdGVkIChwZXJmLWJhc2VkKSB2UE1VLiBBIG1lZGlhdGVkIHZQTVVcbiYjNDM7ZG9lcyBub3QgaW5jdXIgdGhlIHJlcHJvZ3JhbSBjb3N0IGFuZCBpbmNyZW1lbnRzIHRoZSBndWVzdCBjb3VudGVyIGRpcmVjdGx5LFxuJiM0MztzbyBhY2NvdW50aW5nIGlzIG5ldmVyIHNraXBwZWQgZm9yIGl0IHJlZ2FyZGxlc3Mgb2YgdGhpcyBzZXR0aW5nLlxuJiM0MztcbiYjNDM7VGhpcyBjYW4gb25seSBiZSBpbnZva2VkIG9uIGEgVk0gcHJpb3IgdG8gdGhlIGNyZWF0aW9uIG9mIHZDUFVzOyBhdHRlbXB0aW5nIHRvXG4mIzQzO3NldCBpdCBvbmNlIGFueSB2Q1BVIGV4aXN0cyByZXR1cm5zIC1FSU5WQUwuXG4mIzQzO1xuJiM0MztLVk1fQ0hFQ0tfRVhURU5TSU9OIHJldHVybnMgdGhlIGJpdG1hc2sgb2YgZXZlbnQgSURzIHRoYXQgY2FuIGJlIGRpc2FibGVkLlxuJiM0MzthcmdzWzBdIG11c3QgYmUgYSBzdWJzZXQgb2YgdGhhdCBtYXNrLlxuJiM0MztcbiA4LiBPdGhlciBjYXBhYmlsaXRpZXMuXG4gPT09PT09PT09PT09PT09PT09PT09PVxuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCA1ZjZjMWNlOTY3M2I3Zi4uNTIyZjY2YzQ0ZTZhMDAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5AQCAtMTU2MCw2ICYjNDM7MTU2MCwxMyBAQCBzdHJ1Y3Qga3ZtX2FyY2gge1xuIFx0Ym9vbCBlbmFibGVfcG11O1xuIFx0Ym9vbCBjcmVhdGVkX21lZGlhdGVkX3BtdTtcbiBcbiYjNDM7XHQvKlxuJiM0MztcdCAqIEJpdG1hc2sgb2YgUEVSRl9DT1VOVF9IV18qIGV2ZW50IElEcyBmb3Igd2hpY2ggc29mdHdhcmUgYWNjb3VudGluZ1xuJiM0MztcdCAqIG9mIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMgaXMgZGlzYWJsZWQgKEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1xuJiM0MztcdCAqIFNXX0FDQ09VTlRJTkcpLiBTZWUga3ZtX3BtdV90cmlnZ2VyX2V2ZW50KCkuXG4mIzQzO1x0ICovXG4mIzQzO1x0dTY0IHBtdV9kaXNhYmxlX3N3X2FjY291bnRpbmc7XG4mIzQzO1xuIFx0dTMyIG5vdGlmeV93aW5kb3c7XG4gXHR1MzIgbm90aWZ5X3ZtZXhpdF9mbGFncztcbiBcdC8qXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3BtdS5jIGIvYXJjaC94ODYva3ZtL3BtdS5jXG5pbmRleCBkZDFjNTc1OTNmNDhiOC4uZmIzZjJkZjA2OGRjNDcgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vcG11LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS9wbXUuY1xuQEAgLTExNDUsMTQgJiM0MzsxMTQ1LDM1IEBAIHN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRzcmN1X3JlYWRfdW5sb2NrKFx1MDAyNnZjcHUtXHUwMDNla3ZtLVx1MDAzZXNyY3UsIGlkeCk7XG4gfVxuIFxuJiM0MzsvKlxuJiM0MzsgKiBXaGV0aGVyIHNvZnR3YXJlIGFjY291bnRpbmcgb2YgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucyBmb3IgQHBlcmZfaHdfaWQgaXNcbiYjNDM7ICogZGlzYWJsZWQgdmlhIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkcuIFRoZSBjYXBhYmlsaXR5IG9ubHlcbiYjNDM7ICogdGFyZ2V0cyB0aGUgZW11bGF0ZWQgKHBlcmYtYmFzZWQpIHZQTVUsIHdoZXJlIHRoZSBhY2NvdW50aW5nIGRyaXZlcyBhblxuJiM0MzsgKiBleHBlbnNpdmUgY291bnRlciByZXByb2dyYW07IGEgbWVkaWF0ZWQgdlBNVSBpbmNyZW1lbnRzIHBtYy1cdTAwM2Vjb3VudGVyXG4mIzQzOyAqIGRpcmVjdGx5IChhbmQgbWF5IHJhaXNlIGEgUE1JIG9uIG92ZXJmbG93KSwgc28gaXQgaXMgbmV2ZXIgc2tpcHBlZC5cbiYjNDM7ICovXG4mIzQzO3N0YXRpYyBib29sIGt2bV9wbXVfc2tpcF9zd19hY2NvdW50aW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IHBlcmZfaHdfaWQpXG4mIzQzO3tcbiYjNDM7XHRpZiAoa3ZtX3ZjcHVfaGFzX21lZGlhdGVkX3BtdSh2Y3B1KSlcbiYjNDM7XHRcdHJldHVybiBmYWxzZTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHZjcHUtXHUwMDNla3ZtLVx1MDAzZWFyY2gucG11X2Rpc2FibGVfc3dfYWNjb3VudGluZyBcdTAwMjYgQklUX1VMTChwZXJmX2h3X2lkKTtcbiYjNDM7fVxuJiM0MztcbiB2b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4ge1xuJiM0MztcdGlmIChrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZyh2Y3B1LCBQRVJGX0NPVU5UX0hXX0lOU1RSVUNUSU9OUykpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuIFx0a3ZtX3BtdV90cmlnZ2VyX2V2ZW50KHZjcHUsIHZjcHVfdG9fcG11KHZjcHUpLVx1MDAzZXBtY19jb3VudGluZ19pbnN0cnVjdGlvbnMpO1xuIH1cbiBFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoa3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKTtcbiBcbiB2b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiYjNDM7XHRpZiAoa3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmcodmNwdSwgUEVSRl9DT1VOVF9IV19CUkFOQ0hfSU5TVFJVQ1RJT05TKSlcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4gXHRrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktXHUwMDNlcG1jX2NvdW50aW5nX2JyYW5jaGVzKTtcbiB9XG4gRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfYnJhbmNoX3JldGlyZWQpO1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9wbXUuaCBiL2FyY2gveDg2L2t2bS9wbXUuaFxuaW5kZXggYTU4MjFkN2M4N2Y5MzUuLmUzNGI5ZTgxNDM1NTU3IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3BtdS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vcG11LmhcbkBAIC0yMyw2ICYjNDM7MjMsMTUgQEBcbiBcbiAjZGVmaW5lIEtWTV9GSVhFRF9QTUNfQkFTRV9JRFggSU5URUxfUE1DX0lEWF9GSVhFRFxuIFxuJiM0MzsvKlxuJiM0MzsgKiBFdmVudHMgZm9yIHdoaWNoIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkcgY2FuIGRpc2FibGUgc29mdHdhcmVcbiYjNDM7ICogYWNjb3VudGluZyBvZiBlbXVsYXRlZCBpbnN0cnVjdGlvbnMuIFRoZXNlIGFyZSB0aGUgb25seSBldmVudHMgS1ZNIGV2ZXJcbiYjNDM7ICogcGFzc2VzIHRvIGt2bV9wbXVfdHJpZ2dlcl9ldmVudCgpIChmcm9tIHRoZSByZXRpcmVkLWluc3RydWN0aW9uIHBhdGgpLlxuJiM0MzsgKi9cbiYjNDM7I2RlZmluZSBLVk1fUE1VX1NXX0FDQ09VTlRJTkdfVkFMSURfTUFTS1x0XHRcdFxcXG4mIzQzO1x0KEJJVF9VTEwoUEVSRl9DT1VOVF9IV19JTlNUUlVDVElPTlMpIHxcdFx0XHRcXFxuJiM0MztcdCBCSVRfVUxMKFBFUkZfQ09VTlRfSFdfQlJBTkNIX0lOU1RSVUNUSU9OUykpXG4mIzQzO1xuIHN0cnVjdCBrdm1fcG11X29wcyB7XG4gXHRzdHJ1Y3Qga3ZtX3BtYyAqKCpyZHBtY19lY3hfdG9fcG1jKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRcdHVuc2lnbmVkIGludCBpZHgsIHU2NCAqbWFzayk7XG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5pbmRleCBhZmNhYzEwNDI5NDdhNS4uY2M4YTM2ZjI4YWVhOTggMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS94ODYuY1xuQEAgLTQ5NjQsNiAmIzQzOzQ5NjQsOSBAQCBpbnQga3ZtX3ZtX2lvY3RsX2NoZWNrX2V4dGVuc2lvbihzdHJ1Y3Qga3ZtICprdm0sIGxvbmcgZXh0KVxuIFx0Y2FzZSBLVk1fQ0FQX0RJU0FCTEVfUVVJUktTMjpcbiBcdFx0ciA9IGt2bV9jYXBzLnN1cHBvcnRlZF9xdWlya3M7XG4gXHRcdGJyZWFrO1xuJiM0MztcdGNhc2UgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElORzpcbiYjNDM7XHRcdHIgPSBLVk1fUE1VX1NXX0FDQ09VTlRJTkdfVkFMSURfTUFTSztcbiYjNDM7XHRcdGJyZWFrO1xuIFx0Y2FzZSBLVk1fQ0FQX1g4Nl9OT1RJRllfVk1FWElUOlxuIFx0XHRyID0ga3ZtX2NhcHMuaGFzX25vdGlmeV92bWV4aXQ7XG4gXHRcdGJyZWFrO1xuQEAgLTY3MzAsNiAmIzQzOzY3MzMsMTggQEAgaW50IGt2bV92bV9pb2N0bF9lbmFibGVfY2FwKHN0cnVjdCBrdm0gKmt2bSxcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4gXHRzd2l0Y2ggKGNhcC1cdTAwM2VjYXApIHtcbiYjNDM7XHRjYXNlIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkc6XG4mIzQzO1x0XHRyID0gLUVJTlZBTDtcbiYjNDM7XHRcdGlmIChjYXAtXHUwMDNlYXJnc1swXSBcdTAwMjYgfktWTV9QTVVfU1dfQUNDT1VOVElOR19WQUxJRF9NQVNLKVxuJiM0MztcdFx0XHRicmVhaztcbiYjNDM7XG4mIzQzO1x0XHRtdXRleF9sb2NrKFx1MDAyNmt2bS1cdTAwM2Vsb2NrKTtcbiYjNDM7XHRcdGlmICgha3ZtLVx1MDAzZWNyZWF0ZWRfdmNwdXMpIHtcbiYjNDM7XHRcdFx0a3ZtLVx1MDAzZWFyY2gucG11X2Rpc2FibGVfc3dfYWNjb3VudGluZyA9IGNhcC1cdTAwM2VhcmdzWzBdO1xuJiM0MztcdFx0XHRyID0gMDtcbiYjNDM7XHRcdH1cbiYjNDM7XHRcdG11dGV4X3VubG9jayhcdTAwMjZrdm0tXHUwMDNlbG9jayk7XG4mIzQzO1x0XHRicmVhaztcbiBcdGNhc2UgS1ZNX0NBUF9ESVNBQkxFX1FVSVJLUzI6XG4gXHRcdHIgPSAtRUlOVkFMO1xuIFx0XHRpZiAoY2FwLVx1MDAzZWFyZ3NbMF0gXHUwMDI2IH5rdm1fY2Fwcy5zdXBwb3J0ZWRfcXVpcmtzKVxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaFxuaW5kZXggNDE5MDExMDk3ZmE4ZTIuLjE4NjA1NDI0NWI4MGVhIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmhcbkBAIC05OTcsNiAmIzQzOzk5Nyw3IEBAIHN0cnVjdCBrdm1fZW5hYmxlX2NhcCB7XG4gI2RlZmluZSBLVk1fQ0FQX1MzOTBfS0VZT1AgMjQ3XG4gI2RlZmluZSBLVk1fQ0FQX1MzOTBfVlNJRV9FU0FNT0RFIDI0OFxuICNkZWZpbmUgS1ZNX0NBUF9TMzkwX0hQQUdFXzJHIDI0OVxuJiM0MzsjZGVmaW5lIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkcgMjUwXG4gXG4gc3RydWN0IGt2bV9pcnFfcm91dGluZ19pcnFjaGlwIHtcbiBcdF9fdTMyIGlycWNoaXA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDM6NDc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCYjMzQ7LAogICAgJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IEtWTSBjYXBhYmlsaXR5IGBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HYCB0aGF0IGFsdGVycyB0aGUgYmVoYXZpb3Igb2Ygc29mdHdhcmUgYWNjb3VudGluZyBmb3IgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucy4gSXQgbW9kaWZpZXMgY29yZSBLVk0gUE1VIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgY2FwYWJpbGl0eSBpcyBoYW5kbGVkIGNvcnJlY3RseSBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHZ1bG5lcmFiaWxpdGllcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTFlZmQxMmUwNmE1NDcxYmU3MzljOTE4YTA0ZTgxYjZlYTA5NTYwNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgSnVsIDIxIDAzOjQ3OjM1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0CmluZGV4IGE1ZjllZTkyZjQzZThkLi4yMzFhNWJhNzU2N2M1MSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0CiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdApAQCAtODk0OSw2ICYjNDM7ODk0OSwzOCBAQCBlbmFibGVkLCBjbW1hIGNhbiYjMzk7dCBiZSBlbmFibGVkIGFueW1vcmUgYW5kIHBmbWZpIGFuZCB0aGUgc3RvcmFnZSBrZXkKIGludGVycHJldGF0aW9uIGFyZSBkaXNhYmxlZC4gSWYgY21tYSBoYXMgYWxyZWFkeSBiZWVuIGVuYWJsZWQgb3IgdGhlCiBocGFnZV8yZyBtb2R1bGUgcGFyYW1ldGVyIGlzIG5vdCBzZXQgdG8gMSwgLUVJTlZBTCBpcyByZXR1cm5lZC4KIAomIzQzOzcuNDggS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElORwomIzQzOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQomIzQzOwomIzQzOzpBcmNoaXRlY3R1cmVzOiB4ODYKJiM0Mzs6VHlwZTogdm0KJiM0Mzs6UGFyYW1ldGVyczogYXJnc1swXSAtIGJpdG1hc2sgb2YgUEVSRl9DT1VOVF9IV18qIGV2ZW50IElEcwomIzQzOzpSZXR1cm5zOiAwIG9uIHN1Y2Nlc3M7IC1FSU5WQUwgaWYgYXJnc1swXSBjb250YWlucyBhbiB1bnN1cHBvcnRlZCBldmVudCBvcgomIzQzOyAgICAgICAgICBpZiB0aGUgVk0gYWxyZWFkeSBoYXMgdkNQVXMuCiYjNDM7CiYjNDM7QnkgZGVmYXVsdCwgS1ZNIHNvZnR3YXJlLWFjY291bnRzIGluc3RydWN0aW9ucyBpdCBlbXVsYXRlcyBhZ2FpbnN0IGEgZ3Vlc3QKJiM0MztQTVUgY291bnRlciBwcm9ncmFtbWVkIGZvciByZXRpcmVkIGluc3RydWN0aW9ucyAoUEVSRl9DT1VOVF9IV19JTlNUUlVDVElPTlMpCiYjNDM7b3IgcmV0aXJlZCBicmFuY2hlcyAoUEVSRl9DT1VOVF9IV19CUkFOQ0hfSU5TVFJVQ1RJT05TKSwgYnkgd2Fsa2luZyB0aGUgdlBNVQomIzQzO2NvdW50ZXJzIGFuZCByZXF1ZXN0aW5nIGEgY291bnRlciByZXByb2dyYW0gb24gdGhlIG5leHQgVk0tZW50cnkuIE9uIGhvc3RzCiYjNDM7d2l0aCBhbiBlbXVsYXRlZCB2UE1VIHRoaXMgcmVwcm9ncmFtIGlzIGV4cGVuc2l2ZSBhbmQsIHVuZGVyIHNvbWUgd29ya2xvYWRzLAomIzQzO2luZmxhdGVzIHRpbWVyLWludGVycnVwdCBoYW5kbGluZyBlbm91Z2ggdG8gdHJpZ2dlciBndWVzdCBDU0QgbG9ja3Vwcy4KJiM0MzsKJiM0MztUaGlzIGNhcGFiaWxpdHkgbGV0cyB1c2Vyc3BhY2UgZGlzYWJsZSB0aGF0IHNvZnR3YXJlIGFjY291bnRpbmcgZm9yIHRoZSBnaXZlbgomIzQzO2V2ZW50cy4gU2V0dGluZyBhIGJpdCBmb3IgYW4gZXZlbnQgSUQgbWFrZXMgS1ZNIHNraXAgdGhlIGFjY291bnRpbmcgZm9yIHRoYXQKJiM0MztldmVudDogaW5zdHJ1Y3Rpb25zIEtWTSBlbXVsYXRlcyBpbiBob3N0IGNvbnRleHQgZ28gdW5jb3VudGVkLiBIYXJkd2FyZS0KJiM0MztleGVjdXRlZCBndWVzdCBpbnN0cnVjdGlvbnMgYXJlIHN0aWxsIGNvdW50ZWQgYnkgdGhlIGJhY2tpbmcgcGVyZl9ldmVudCwgYW5kCiYjNDM7aXRzIG92ZXJmbG93L1BNSSBwYXRoIGlzIHVuYWZmZWN0ZWQuCiYjNDM7CiYjNDM7VGhlIGNhcGFiaWxpdHkgb25seSBhZmZlY3RzIHRoZSBlbXVsYXRlZCAocGVyZi1iYXNlZCkgdlBNVS4gQSBtZWRpYXRlZCB2UE1VCiYjNDM7ZG9lcyBub3QgaW5jdXIgdGhlIHJlcHJvZ3JhbSBjb3N0IGFuZCBpbmNyZW1lbnRzIHRoZSBndWVzdCBjb3VudGVyIGRpcmVjdGx5LAomIzQzO3NvIGFjY291bnRpbmcgaXMgbmV2ZXIgc2tpcHBlZCBmb3IgaXQgcmVnYXJkbGVzcyBvZiB0aGlzIHNldHRpbmcuCiYjNDM7CiYjNDM7VGhpcyBjYW4gb25seSBiZSBpbnZva2VkIG9uIGEgVk0gcHJpb3IgdG8gdGhlIGNyZWF0aW9uIG9mIHZDUFVzOyBhdHRlbXB0aW5nIHRvCiYjNDM7c2V0IGl0IG9uY2UgYW55IHZDUFUgZXhpc3RzIHJldHVybnMgLUVJTlZBTC4KJiM0MzsKJiM0MztLVk1fQ0hFQ0tfRVhURU5TSU9OIHJldHVybnMgdGhlIGJpdG1hc2sgb2YgZXZlbnQgSURzIHRoYXQgY2FuIGJlIGRpc2FibGVkLgomIzQzO2FyZ3NbMF0gbXVzdCBiZSBhIHN1YnNldCBvZiB0aGF0IG1hc2suCiYjNDM7CiA4LiBPdGhlciBjYXBhYmlsaXRpZXMuCiA9PT09PT09PT09PT09PT09PT09PT09CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCmluZGV4IDVmNmMxY2U5NjczYjdmLi41MjJmNjZjNDRlNmEwMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCkBAIC0xNTYwLDYgJiM0MzsxNTYwLDEzIEBAIHN0cnVjdCBrdm1fYXJjaCB7CiAJYm9vbCBlbmFibGVfcG11OwogCWJvb2wgY3JlYXRlZF9tZWRpYXRlZF9wbXU7CiAKJiM0MzsJLyoKJiM0MzsJICogQml0bWFzayBvZiBQRVJGX0NPVU5UX0hXXyogZXZlbnQgSURzIGZvciB3aGljaCBzb2Z0d2FyZSBhY2NvdW50aW5nCiYjNDM7CSAqIG9mIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMgaXMgZGlzYWJsZWQgKEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VXwomIzQzOwkgKiBTV19BQ0NPVU5USU5HKS4gU2VlIGt2bV9wbXVfdHJpZ2dlcl9ldmVudCgpLgomIzQzOwkgKi8KJiM0MzsJdTY0IHBtdV9kaXNhYmxlX3N3X2FjY291bnRpbmc7CiYjNDM7CiAJdTMyIG5vdGlmeV93aW5kb3c7CiAJdTMyIG5vdGlmeV92bWV4aXRfZmxhZ3M7CiAJLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9wbXUuYyBiL2FyY2gveDg2L2t2bS9wbXUuYwppbmRleCBkZDFjNTc1OTNmNDhiOC4uZmIzZjJkZjA2OGRjNDcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS9wbXUuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vcG11LmMKQEAgLTExNDUsMTQgJiM0MzsxMTQ1LDM1IEBAIHN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJc3JjdV9yZWFkX3VubG9jaygmYW1wO3ZjcHUtJmd0O2t2bS0mZ3Q7c3JjdSwgaWR4KTsKIH0KIAomIzQzOy8qCiYjNDM7ICogV2hldGhlciBzb2Z0d2FyZSBhY2NvdW50aW5nIG9mIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMgZm9yIEBwZXJmX2h3X2lkIGlzCiYjNDM7ICogZGlzYWJsZWQgdmlhIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkcuIFRoZSBjYXBhYmlsaXR5IG9ubHkKJiM0MzsgKiB0YXJnZXRzIHRoZSBlbXVsYXRlZCAocGVyZi1iYXNlZCkgdlBNVSwgd2hlcmUgdGhlIGFjY291bnRpbmcgZHJpdmVzIGFuCiYjNDM7ICogZXhwZW5zaXZlIGNvdW50ZXIgcmVwcm9ncmFtOyBhIG1lZGlhdGVkIHZQTVUgaW5jcmVtZW50cyBwbWMtJmd0O2NvdW50ZXIKJiM0MzsgKiBkaXJlY3RseSAoYW5kIG1heSByYWlzZSBhIFBNSSBvbiBvdmVyZmxvdyksIHNvIGl0IGlzIG5ldmVyIHNraXBwZWQuCiYjNDM7ICovCiYjNDM7c3RhdGljIGJvb2wga3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgcGVyZl9od19pZCkKJiM0Mzt7CiYjNDM7CWlmIChrdm1fdmNwdV9oYXNfbWVkaWF0ZWRfcG11KHZjcHUpKQomIzQzOwkJcmV0dXJuIGZhbHNlOwomIzQzOwomIzQzOwlyZXR1cm4gdmNwdS0mZ3Q7a3ZtLSZndDthcmNoLnBtdV9kaXNhYmxlX3N3X2FjY291bnRpbmcgJmFtcDsgQklUX1VMTChwZXJmX2h3X2lkKTsKJiM0Mzt9CiYjNDM7CiB2b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7CiYjNDM7CWlmIChrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZyh2Y3B1LCBQRVJGX0NPVU5UX0hXX0lOU1RSVUNUSU9OUykpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiAJa3ZtX3BtdV90cmlnZ2VyX2V2ZW50KHZjcHUsIHZjcHVfdG9fcG11KHZjcHUpLSZndDtwbWNfY291bnRpbmdfaW5zdHJ1Y3Rpb25zKTsKIH0KIEVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQpOwogCiB2b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewomIzQzOwlpZiAoa3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmcodmNwdSwgUEVSRl9DT1VOVF9IV19CUkFOQ0hfSU5TVFJVQ1RJT05TKSkKJiM0MzsJCXJldHVybjsKJiM0MzsKIAlrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktJmd0O3BtY19jb3VudGluZ19icmFuY2hlcyk7CiB9CiBFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoa3ZtX3BtdV9icmFuY2hfcmV0aXJlZCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vcG11LmggYi9hcmNoL3g4Ni9rdm0vcG11LmgKaW5kZXggYTU4MjFkN2M4N2Y5MzUuLmUzNGI5ZTgxNDM1NTU3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vcG11LmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3BtdS5oCkBAIC0yMyw2ICYjNDM7MjMsMTUgQEAKIAogI2RlZmluZSBLVk1fRklYRURfUE1DX0JBU0VfSURYIElOVEVMX1BNQ19JRFhfRklYRUQKIAomIzQzOy8qCiYjNDM7ICogRXZlbnRzIGZvciB3aGljaCBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HIGNhbiBkaXNhYmxlIHNvZnR3YXJlCiYjNDM7ICogYWNjb3VudGluZyBvZiBlbXVsYXRlZCBpbnN0cnVjdGlvbnMuIFRoZXNlIGFyZSB0aGUgb25seSBldmVudHMgS1ZNIGV2ZXIKJiM0MzsgKiBwYXNzZXMgdG8ga3ZtX3BtdV90cmlnZ2VyX2V2ZW50KCkgKGZyb20gdGhlIHJldGlyZWQtaW5zdHJ1Y3Rpb24gcGF0aCkuCiYjNDM7ICovCiYjNDM7I2RlZmluZSBLVk1fUE1VX1NXX0FDQ09VTlRJTkdfVkFMSURfTUFTSwkJCVwKJiM0MzsJKEJJVF9VTEwoUEVSRl9DT1VOVF9IV19JTlNUUlVDVElPTlMpIHwJCQlcCiYjNDM7CSBCSVRfVUxMKFBFUkZfQ09VTlRfSFdfQlJBTkNIX0lOU1RSVUNUSU9OUykpCiYjNDM7CiBzdHJ1Y3Qga3ZtX3BtdV9vcHMgewogCXN0cnVjdCBrdm1fcG1jICooKnJkcG1jX2VjeF90b19wbWMpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkJdW5zaWduZWQgaW50IGlkeCwgdTY0ICptYXNrKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuYwppbmRleCBhZmNhYzEwNDI5NDdhNS4uY2M4YTM2ZjI4YWVhOTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTQ5NjQsNiAmIzQzOzQ5NjQsOSBAQCBpbnQga3ZtX3ZtX2lvY3RsX2NoZWNrX2V4dGVuc2lvbihzdHJ1Y3Qga3ZtICprdm0sIGxvbmcgZXh0KQogCWNhc2UgS1ZNX0NBUF9ESVNBQkxFX1FVSVJLUzI6CiAJCXIgPSBrdm1fY2Fwcy5zdXBwb3J0ZWRfcXVpcmtzOwogCQlicmVhazsKJiM0MzsJY2FzZSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HOgomIzQzOwkJciA9IEtWTV9QTVVfU1dfQUNDT1VOVElOR19WQUxJRF9NQVNLOwomIzQzOwkJYnJlYWs7CiAJY2FzZSBLVk1fQ0FQX1g4Nl9OT1RJRllfVk1FWElUOgogCQlyID0ga3ZtX2NhcHMuaGFzX25vdGlmeV92bWV4aXQ7CiAJCWJyZWFrOwpAQCAtNjczMCw2ICYjNDM7NjczMywxOCBAQCBpbnQga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAoc3RydWN0IGt2bSAqa3ZtLAogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXN3aXRjaCAoY2FwLSZndDtjYXApIHsKJiM0MzsJY2FzZSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HOgomIzQzOwkJciA9IC1FSU5WQUw7CiYjNDM7CQlpZiAoY2FwLSZndDthcmdzWzBdICZhbXA7IH5LVk1fUE1VX1NXX0FDQ09VTlRJTkdfVkFMSURfTUFTSykKJiM0MzsJCQlicmVhazsKJiM0MzsKJiM0MzsJCW11dGV4X2xvY2soJmFtcDtrdm0tJmd0O2xvY2spOwomIzQzOwkJaWYgKCFrdm0tJmd0O2NyZWF0ZWRfdmNwdXMpIHsKJiM0MzsJCQlrdm0tJmd0O2FyY2gucG11X2Rpc2FibGVfc3dfYWNjb3VudGluZyA9IGNhcC0mZ3Q7YXJnc1swXTsKJiM0MzsJCQlyID0gMDsKJiM0MzsJCX0KJiM0MzsJCW11dGV4X3VubG9jaygmYW1wO2t2bS0mZ3Q7bG9jayk7CiYjNDM7CQlicmVhazsKIAljYXNlIEtWTV9DQVBfRElTQUJMRV9RVUlSS1MyOgogCQlyID0gLUVJTlZBTDsKIAkJaWYgKGNhcC0mZ3Q7YXJnc1swXSAmYW1wOyB+a3ZtX2NhcHMuc3VwcG9ydGVkX3F1aXJrcykKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaAppbmRleCA0MTkwMTEwOTdmYThlMi4uMTg2MDU0MjQ1YjgwZWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmgKQEAgLTk5Nyw2ICYjNDM7OTk3LDcgQEAgc3RydWN0IGt2bV9lbmFibGVfY2FwIHsKICNkZWZpbmUgS1ZNX0NBUF9TMzkwX0tFWU9QIDI0NwogI2RlZmluZSBLVk1fQ0FQX1MzOTBfVlNJRV9FU0FNT0RFIDI0OAogI2RlZmluZSBLVk1fQ0FQX1MzOTBfSFBBR0VfMkcgMjQ5CiYjNDM7I2RlZmluZSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HIDI1MAogCiBzdHJ1Y3Qga3ZtX2lycV9yb3V0aW5nX2lycWNoaXAgewogCV9fdTMyIGlycWNoaXA7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDAzOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyODkKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAzNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgS1ZNIFBNVSBTb2Z0d2FyZSBBY2NvdW50aW5nIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGludHJvZHVjaW5nIGBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HYCAoMjUwKS4gSXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSBnaXZpbmcgdXNlcnNwYWNlIHRoZSBhYmlsaXR5IHRvIGRpc2FibGUgdGhlIHNvZnR3YXJlLWJhc2VkIGFjY291bnRpbmcgb2YgaW5zdHJ1Y3Rpb25zIHdpdGhpbiBLVk0sIHNwZWNpZmljYWxseSBmb3IgdGhlIGBQRVJGX0NPVU5UX0hXX0lOU1RSVUNUSU9OU2AgYW5kIGBQRVJGX0NPVU5UX0hXX0JSQU5DSF9JTlNUUlVDVElPTlNgIGV2ZW50cy4gVGhhdCYjMzk7cyBhIHJlYXNvbmFibGUgcmVxdWVzdCwgZXNwZWNpYWxseSBpbiBwZXJmb3JtYW5jZS1zZW5zaXRpdmUgc2NlbmFyaW9zIG9yIHdoZXJlIHVzZXJzcGFjZSB3YW50cyB2ZXJ5IGZpbmUtZ3JhaW5lZCBjb250cm9sIG92ZXIgdGhlIHBlcmZvcm1hbmNlIGRhdGEgaXQmIzM5O3MgY29sbGVjdGluZy4KClRoZXkmIzM5O3ZlIG1vZGlmaWVkIGBhcmNoL3g4Ni9rdm0vcG11LmNgIGFuZCBgYXJjaC94ODYva3ZtL3g4Ni5jYCwgYW5kIHRoZXkmIzM5O3ZlIGFkZGVkIGEgYHBtdV9kaXNhYmxlX3N3X2FjY291bnRpbmdgIGZpZWxkIHRvIHRoZSBgc3RydWN0IGt2bV9hcmNoYC4gTWFrZXMgc2Vuc2Ug4oCTIGEgY2xlYW4gd2F5IHRvIHN0b3JlIHRoZSBkaXNhYmxpbmcgc3RhdGUuCgpUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGluIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuICBFc3NlbnRpYWxseSwgdGhlIHBhdGNoIGlzIGFkZGluZyBhIGNoZWNrIGluIHRoZXNlIGZ1bmN0aW9ucy4gSWYgdGhlIGNhcGFiaWxpdHkgYml0IGlzIHNldCwgaXQgYnlwYXNzZXMgdGhlIGBrdm1fcG11X3RyaWdnZXJfZXZlbnRgIGNhbGwsIHdoaWNoIGlzIHdoZXJlIHRoZSBhY2NvdW50aW5nIHdvdWxkIGhhcHBlbi4gU28sIHRoZXkmIzM5O3JlIGF2b2lkaW5nIHRoZSBvdmVyaGVhZCBvZiB0cmlnZ2VyaW5nIHRob3NlIGV2ZW50cy4KClRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBLVk0geDg2IHN1YnN5c3RlbS4gVGhhdCBtZWFucyB0aGlzIG5lZWRzIHNvbWUgc2VyaW91cyBmdXp6aW5nLiBHb3R0YSBjaGVjayBmb3IgYW55IGVkZ2UgY2FzZXMgb3IgdW5leHBlY3RlZCBiZWhhdmlvciB3aGVuIHRoaXMgYWNjb3VudGluZyBpcyBkaXNhYmxlZC4KCkxldCYjMzk7cyBzZWUsIHdoYXQgYXJlIHRoZSBrZXkgc3ltYm9scz8gTG9va3MgbGlrZSB0aGUgcHJpbWFyeSBmb2N1cyBzaG91bGQgYmUgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAsIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYCwgYW5kIG1heWJlIGBrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZ2AsIGV2ZW4gdGhvdWdoIHRoYXQgb25lIGlzIHN0YXRpYyBhbmQgbWlnaHQgYmUgaW5saW5lZC4gSeKAmW0gZ29pbmcgdG8gY29uc2lkZXIgYGt2bV92bV9pb2N0bF9lbmFibGVfY2FwYCBidXQgaXQgc2VlbXMgcHJldHR5IGdlbmVyaWMsIHNvIGl0IG1pZ2h0IG5vdCBiZSBhIHRhcmdldC4KCldhaXQsIGxvb2tpbmcgYXQgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYCwgdGhleSBhcmUgYmVpbmcgY2FsbGVkIHdoZW4gaW5zdHJ1Y3Rpb25zIGFyZSByZXRpcmVkLiBDcnVjaWFsbHksIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGlzIGNhbGxlZCB3aGVuIEtWTSBpcyAqZW11bGF0aW5nKiBhbiBpbnN0cnVjdGlvbiwgd2hpY2ggbWF5IGJlIG1vcmUgZnJlcXVlbnQgdGhhbiBpbnN0cnVjdGlvbiByZXRpcmVtZW50LiBMZXQgbWUgZG91YmxlIGNoZWNrIHdoZXJlIHRob3NlIGFyZSBiZWluZyBjYWxsZWQuIFRoYXQmIzM5O3MgdGhlIGNyaXRpY2FsIHBhdGggdG8gZXhhbWluZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwMzo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3BtdS5jPTExNTU9c3RhdGljIGJvb2wga3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgcGVyZl9od19pZClcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2Mi1cbmFyY2gveDg2L2t2bS9wbXUuYzoxMTYzOnZvaWQga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTY0LXtcbi0tXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2OS19XG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE3MDpFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoa3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTcxLVxuLS1cbmFyY2gveDg2L2t2bS9wbXUuaD0yOTM9aW50IGt2bV92bV9pb2N0bF9zZXRfcG11X2V2ZW50X2ZpbHRlcihzdHJ1Y3Qga3ZtICprdm0sIHZvaWQgX191c2VyICphcmdwKTtcbmFyY2gveDg2L2t2bS9wbXUuaDoyOTQ6dm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbmFyY2gveDg2L2t2bS9wbXUuaC0yOTUtdm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4tLVxuYXJjaC94ODYva3ZtL3N2bS9uZXN0ZWQuYz0xMTE0PWludCBuZXN0ZWRfc3ZtX3ZtcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0vc3ZtL25lc3RlZC5jLTExOTctXHQgKi9cbmFyY2gveDg2L2t2bS9zdm0vbmVzdGVkLmM6MTE5ODpcdGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCh2Y3B1KTtcbmFyY2gveDg2L2t2bS9zdm0vbmVzdGVkLmMtMTE5OS1cdHJldHVybiAxO1xuLS1cbmFyY2gveDg2L2t2bS94ODYuYz05Mjc4PWludCBrdm1fc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTkyODYtXG5hcmNoL3g4Ni9rdm0veDg2LmM6OTI4NzpcdGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCh2Y3B1KTtcbmFyY2gveDg2L2t2bS94ODYuYy05Mjg4LVxuLS1cbmFyY2gveDg2L2t2bS94ODYuYz05NDM2PWludCB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGdwYV90IGNyMl9vcl9ncGEsXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MzEtXHRcdCAgICBleGNlcHRpb25fdHlwZShjdHh0LVx1MDAzZWV4Y2VwdGlvbi52ZWN0b3IpID09IEVYQ1BUX1RSQVApIHtcbmFyY2gveDg2L2t2bS94ODYuYzo5NjMyOlx0XHRcdGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCh2Y3B1KTtcbmFyY2gveDg2L2t2bS94ODYuYy05NjMzLVx0XHRcdGlmIChjdHh0LVx1MDAzZWlzX2JyYW5jaClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwMzo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTg5CgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqQW5hbHl6aW5nIEtWTSBQZXJmb3JtYW5jZSBDb3VudGVycyoqCgpSaWdodCwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCBwZXJmb3JtYW5jZSBtb25pdG9yaW5nIGluIEtWTSBhZ2FpbiwgYW5kIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAgYXJlIGRlZmluaXRlbHkga2V5IGZvY3VzIHBvaW50cy4gVGhvc2UgYXJlIHNvbGlkIHN5bWJvbHMgdG8gaG9uZSBpbiBvbi4gQW5kIHRoZW4gSSByZWNhbGwgdGhhdCBga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXBgIGdldHMgaXRzIGhhbmRzIGRpcnR5IHdpdGggYEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdgIHdoaWNoIGlzIGFsc28gcmVsZXZhbnQuIEdvdHRhIGtlZXAgdGhvc2UgaW50ZXJyZWxhdGVkLgoKTGV0JiMzOTtzIGRpZyBpbnRvIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gSSB3YW50IHRvIHNlZSB3aGF0JiMzOTtzIGhhcHBlbmluZyB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMSAwMzo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9wbXUuYz0xMTcwPUVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQpO1xuYXJjaC94ODYva3ZtL3BtdS5jLTExNzEtXG5hcmNoL3g4Ni9rdm0vcG11LmM6MTE3Mjp2b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzMte1xuLS1cbmFyY2gveDg2L2t2bS9wbXUuYy0xMTc4LX1cbmFyY2gveDg2L2t2bS9wbXUuYzoxMTc5OkVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2JyYW5jaF9yZXRpcmVkKTtcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTgwLVxuLS1cbmFyY2gveDg2L2t2bS9wbXUuaD0yOTQ9dm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbmFyY2gveDg2L2t2bS9wbXUuaDoyOTU6dm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG5hcmNoL3g4Ni9rdm0vcG11LmgtMjk2LXZvaWQga3ZtX21lZGlhdGVkX3BtdV9sb2FkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4tLVxuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYz0zNzc3PXN0YXRpYyBpbnQgbmVzdGVkX3ZteF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGxhdW5jaClcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jLTM3OTMtXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jOjM3OTQ6XHRrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYy0zNzk1LVxuLS1cbmFyY2gveDg2L2t2bS94ODYuYz05NDM2PWludCB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGdwYV90IGNyMl9vcl9ncGEsXG4tLVxuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MzMtXHRcdFx0aWYgKGN0eHQtXHUwMDNlaXNfYnJhbmNoKVxuYXJjaC94ODYva3ZtL3g4Ni5jOjk2MzQ6XHRcdFx0XHRrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHZjcHUpO1xuYXJjaC94ODYva3ZtL3g4Ni5jLTk2MzUtXHRcdFx0a3ZtX3JpcF93cml0ZSh2Y3B1LCBjdHh0LVx1MDAzZWVpcCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDM6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjg3NgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcml6ZWQgdGhvdWdodCBwcm9jZXNzLCBwcmVzZW50ZWQgYXMgaWYgSSYjMzk7bSB0aGlua2luZyBpdDoKCioqQ2hlY2tpbmcgS2NvbmZpZyBmb3IgS1ZNKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IHN0YXJ0ZWQuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBtYWtlIHN1cmUgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYW55dGhpbmcgY3J1Y2lhbCByZWdhcmRpbmcgS1ZNIGNvbmZpZ3VyYXRpb24uIFRoZSBmaXJzdCBwb3J0IG9mIGNhbGwsIG5hdHVyYWxseSwgaXMgdGhlIEtjb25maWcgZmlsZXMuIEkgbmVlZCB0byBxdWlja2x5IGFuZCBtZXRob2RpY2FsbHkgY29uZmlybSB0aGF0IGFsbCByZWxldmFudCBLVk0gb3B0aW9ucyBhcmUgZW5hYmxlZCBvciwgYXQgbGVhc3QsIGNvcnJlY3RseSBoYW5kbGVkIHdpdGhpbiB0aGUga2VybmVsIGJ1aWxkIGNvbmZpZ3VyYXRpb24uIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIGRlcGVuZGVuY2llcywgZGVmYXVsdCBzZXR0aW5ncywgYW5kIGFueSBwb3RlbnRpYWwgY29uZmxpY3RzIHdpdGggb3RoZXIgZmVhdHVyZXMgdGhhdCBtaWdodCBpbXBhY3QgS1ZNJiMzOTtzIHBlcmZvcm1hbmNlIG9yIGZ1bmN0aW9uYWxpdHkuIFRoaXMgcXVpY2sgYXVkaXQgd2lsbCBob3BlZnVsbHkgcHJldmVudCBhbnkgbmVlZGxlc3MgZGVidWdnaW5nIGxhdGVyIG9uLiBMZXQmIzM5O3MgZGlnIGluIGFuZCBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBhcyBpdCBzaG91bGQgYmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDM6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEtWTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMS1cdGRlZl90cmlzdGF0ZSBLVk0gaWYgKEtWTV9JTlRFTCAhPSBuIHx8IEtWTV9BTUQgIT0gbilcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01MS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjUyOmNvbmZpZyBLVk1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctNjgtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxuYXJjaC94ODYva3ZtL0tjb25maWctNzAtXHRib29sIFwmIzM0O0NvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6ODM6Y29uZmlnIEtWTV9TV19QUk9URUNURURfVk1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTg0LVx0Ym9vbCBcJiMzNDtFbmFibGUgc3VwcG9ydCBmb3IgS1ZNIHNvZnR3YXJlLXByb3RlY3RlZCBWTXNcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjk2OmNvbmZpZyBLVk1fSU5URUxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwNi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDgtICAgICAgICBib29sIFwmIzM0O0NoZWNrIHRoYXQgZ3Vlc3RzIGRvIG5vdCByZWNlaXZlICNWRSBleGNlcHRpb25zXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MTIyPWNvbmZpZyBYODZfU0dYX0tWTVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzMy1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjEzNDpjb25maWcgS1ZNX0lOVEVMX1REWFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVx0Ym9vbCBcJiMzNDtJbnRlbCBUcnVzdCBEb21haW4gRXh0ZW5zaW9ucyAoVERYKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDctXHR0cmlzdGF0ZSBcJiMzNDtLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNTY6Y29uZmlnIEtWTV9BTURfU0VWXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTctXHRib29sIFwmIzM0O0FNRCBTZWN1cmUgRW5jcnlwdGVkIFZpcnR1YWxpemF0aW9uIChTRVYpIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzEtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9JT0FQSUNcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3My1cdGJvb2wgXCYjMzQ7SS9PIEFQSUMsIFBJQywgYW5kIFBJVCBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODEtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODI6Y29uZmlnIEtWTV9TTU1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4My1cdGJvb2wgXCYjMzQ7U3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxOTM6Y29uZmlnIEtWTV9IWVBFUlZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NC1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgTWljcm9zb2Z0IEh5cGVyLVYgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjA2LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA3OmNvbmZpZyBLVk1fWEVOXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDgtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIFhlbiBoeXBlcmNhbGwgaW50ZXJmYWNlXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjE1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE2OmNvbmZpZyBLVk1fUFJPVkVfTU1VXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTctXHRib29sIFwmIzM0O1Byb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjgtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMjk6Y29uZmlnIEtWTV9FWFRFUk5BTF9XUklURV9UUkFDS0lOR1xuYXJjaC94ODYva3ZtL0tjb25maWctMjMwLVx0Ym9vbFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMyOmNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzMtXHRpbnQgXCYjMzQ7TWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIxIDAzOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgyOTMKCQkJCQkJCW91dHB1dDogMTMxCgkJCQkJCQl0aG91Z2h0czogMjUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBLVk0gUE1VIFNvZnR3YXJlIEFjY291bnRpbmcgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgYmVlbiBsb29raW5nIGF0IHRoaXMgbmV3IHBhdGNoIHJlbGF0ZWQgdG8gdGhlIEtWTSBQTVUgYW5kIGl0cyBzb2Z0d2FyZSBhY2NvdW50aW5nLiBUaGUga2V5IGNvbmZpZ3VyYXRpb25zIGFyZSBgS1ZNYCBhbmQgYEtWTV9YODZgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gemVybyBpbiBvbiB0aGUgcmVsZXZhbnQgc3ltYm9sczsgdGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzLiBJJiMzOTt2ZSBpZGVudGlmaWVkIHRoZSBmb2N1cyBzeW1ib2xzOiBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCwgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgLCBhbmQgYGt2bV9wbXVfc2tpcF9zd19hY2NvdW50aW5nYC4KCkkgbmVlZCB0byBjb25maXJtIGlmIGBrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZ2AgaXMgYSBzdGF0aWMgdmFyaWFibGUsIGFuZCB5ZXMsIEkmIzM5O3ZlIGNvbmZpcm1lZCBpdCYjMzk7cyBzdGF0aWMgd2l0aGluIGBhcmNoL3g4Ni9rdm0vcG11LmNgLiBCYXNlZCBvbiB0aGlzLCBpdCYjMzk7cyBwcm9iYWJseSBsZXNzIGNyaXRpY2FsIGZvciBkaXJlY3QgZnV6emluZy4gVGhlcmVmb3JlLCBJJiMzOTtsbCBwcmlvcml0aXplIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAgYXMgdGhlIHByaW1hcnkgdGFyZ2V0cy4KCkdpdmVuIHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9uIGNvcmUgS1ZNIFBNVSBsb2dpYyBpbnRyb2R1Y2VkIGJ5IGBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HYCwgSSYjMzk7dmUgZGVjaWRlZCB0aGlzIGRlZmluaXRlbHkgd2FycmFudHMgZnV6emluZy4gSSYjMzk7bGwgc2V0IG15IGludGVybmFsIGZsYWcsIGBXb3J0aEZ1enppbmdgLCB0byB0cnVlLgoKVGhlcmVmb3JlLCB0aGUga2V5IGNvbmZpZ3VyYXRpb25zIEkmIzM5O2xsIHVzZSBpbiBteSBmdXp6aW5nIGNhbXBhaWduIHdpbGwgYmUgYEtWTWAsIGFuZCBJIHdpbGwgdGFyZ2V0IHRoZSBzeW1ib2xzIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAuIEkgbmVlZCB0byBlbnN1cmUgdGhlIG5ldyBjYXBhYmlsaXR5IGlzIGhhbmRsZWQgY29ycmVjdGx5LiBJIGFsc28gd2FudCB0byBwcmV2ZW50IHJlZ3Jlc3Npb25zIG9yIHZ1bG5lcmFiaWxpdGllcy4gVGhpcyBsb29rcyBsaWtlIGEgc29saWQgc3RhcnRpbmcgcG9pbnQgZm9yIGZ1enppbmcgdGhpcyBwYXRjaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjEgMDM6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCYjMzQ7LAogICAgJiMzNDtrdm1fcG11X2JyYW5jaF9yZXRpcmVkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IEtWTSBjYXBhYmlsaXR5IGBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HYCB0aGF0IGFsdGVycyB0aGUgYmVoYXZpb3Igb2Ygc29mdHdhcmUgYWNjb3VudGluZyBmb3IgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucy4gSXQgbW9kaWZpZXMgY29yZSBLVk0gUE1VIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgY2FwYWJpbGl0eSBpcyBoYW5kbGVkIGNvcnJlY3RseSBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHZ1bG5lcmFiaWxpdGllcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkJiMzNDssCiAgICAmIzM0O2t2bV9wbXVfYnJhbmNoX3JldGlyZWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgS1ZNIGNhcGFiaWxpdHkgYEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdgIHRoYXQgYWx0ZXJzIHRoZSBiZWhhdmlvciBvZiBzb2Z0d2FyZSBhY2NvdW50aW5nIGZvciBLVk0tZW11bGF0ZWQgaW5zdHJ1Y3Rpb25zLiBJdCBtb2RpZmllcyBjb3JlIEtWTSBQTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBjYXBhYmlsaXR5IGlzIGhhbmRsZWQgY29ycmVjdGx5IGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgdnVsbmVyYWJpbGl0aWVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjFUMDM6NDc6MzcuMTM3NTYzMjUzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE5Mzk0MDQ4NTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkXCIsXG4gICAgXCJrdm1fcG11X2JyYW5jaF9yZXRpcmVkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgS1ZNIGNhcGFiaWxpdHkgYEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdgIHRoYXQgYWx0ZXJzIHRoZSBiZWhhdmlvciBvZiBzb2Z0d2FyZSBhY2NvdW50aW5nIGZvciBLVk0tZW11bGF0ZWQgaW5zdHJ1Y3Rpb25zLiBJdCBtb2RpZmllcyBjb3JlIEtWTSBQTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBjYXBhYmlsaXR5IGlzIGhhbmRsZWQgY29ycmVjdGx5IGFuZCBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciB2dWxuZXJhYmlsaXRpZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDAzOjQ3OjM3LjEzNzU3NTA1M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE1NDYxMTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYTFlZmQxMmUwNmE1NDcxYmU3MzljOTE4YTA0ZTgxYjZlYTA5NTYwNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCAyMSAwMzo0NzozNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcXG5pbmRleCBhNWY5ZWU5MmY0M2U4ZC4uMjMxYTViYTc1NjdjNTEgMTAwNjQ0XFxuLS0tIGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XFxuKysrIGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XFxuQEAgLTg5NDksNiArODk0OSwzOCBAQCBlbmFibGVkLCBjbW1hIGNhbid0IGJlIGVuYWJsZWQgYW55bW9yZSBhbmQgcGZtZmkgYW5kIHRoZSBzdG9yYWdlIGtleVxcbiBpbnRlcnByZXRhdGlvbiBhcmUgZGlzYWJsZWQuIElmIGNtbWEgaGFzIGFscmVhZHkgYmVlbiBlbmFibGVkIG9yIHRoZVxcbiBocGFnZV8yZyBtb2R1bGUgcGFyYW1ldGVyIGlzIG5vdCBzZXQgdG8gMSwgLUVJTlZBTCBpcyByZXR1cm5lZC5cXG4gXFxuKzcuNDggS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElOR1xcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4rXFxuKzpBcmNoaXRlY3R1cmVzOiB4ODZcXG4rOlR5cGU6IHZtXFxuKzpQYXJhbWV0ZXJzOiBhcmdzWzBdIC0gYml0bWFzayBvZiBQRVJGX0NPVU5UX0hXXyogZXZlbnQgSURzXFxuKzpSZXR1cm5zOiAwIG9uIHN1Y2Nlc3M7IC1FSU5WQUwgaWYgYXJnc1swXSBjb250YWlucyBhbiB1bnN1cHBvcnRlZCBldmVudCBvclxcbisgICAgICAgICAgaWYgdGhlIFZNIGFscmVhZHkgaGFzIHZDUFVzLlxcbitcXG4rQnkgZGVmYXVsdCwgS1ZNIHNvZnR3YXJlLWFjY291bnRzIGluc3RydWN0aW9ucyBpdCBlbXVsYXRlcyBhZ2FpbnN0IGEgZ3Vlc3RcXG4rUE1VIGNvdW50ZXIgcHJvZ3JhbW1lZCBmb3IgcmV0aXJlZCBpbnN0cnVjdGlvbnMgKFBFUkZfQ09VTlRfSFdfSU5TVFJVQ1RJT05TKVxcbitvciByZXRpcmVkIGJyYW5jaGVzIChQRVJGX0NPVU5UX0hXX0JSQU5DSF9JTlNUUlVDVElPTlMpLCBieSB3YWxraW5nIHRoZSB2UE1VXFxuK2NvdW50ZXJzIGFuZCByZXF1ZXN0aW5nIGEgY291bnRlciByZXByb2dyYW0gb24gdGhlIG5leHQgVk0tZW50cnkuIE9uIGhvc3RzXFxuK3dpdGggYW4gZW11bGF0ZWQgdlBNVSB0aGlzIHJlcHJvZ3JhbSBpcyBleHBlbnNpdmUgYW5kLCB1bmRlciBzb21lIHdvcmtsb2FkcyxcXG4raW5mbGF0ZXMgdGltZXItaW50ZXJydXB0IGhhbmRsaW5nIGVub3VnaCB0byB0cmlnZ2VyIGd1ZXN0IENTRCBsb2NrdXBzLlxcbitcXG4rVGhpcyBjYXBhYmlsaXR5IGxldHMgdXNlcnNwYWNlIGRpc2FibGUgdGhhdCBzb2Z0d2FyZSBhY2NvdW50aW5nIGZvciB0aGUgZ2l2ZW5cXG4rZXZlbnRzLiBTZXR0aW5nIGEgYml0IGZvciBhbiBldmVudCBJRCBtYWtlcyBLVk0gc2tpcCB0aGUgYWNjb3VudGluZyBmb3IgdGhhdFxcbitldmVudDogaW5zdHJ1Y3Rpb25zIEtWTSBlbXVsYXRlcyBpbiBob3N0IGNvbnRleHQgZ28gdW5jb3VudGVkLiBIYXJkd2FyZS1cXG4rZXhlY3V0ZWQgZ3Vlc3QgaW5zdHJ1Y3Rpb25zIGFyZSBzdGlsbCBjb3VudGVkIGJ5IHRoZSBiYWNraW5nIHBlcmZfZXZlbnQsIGFuZFxcbitpdHMgb3ZlcmZsb3cvUE1JIHBhdGggaXMgdW5hZmZlY3RlZC5cXG4rXFxuK1RoZSBjYXBhYmlsaXR5IG9ubHkgYWZmZWN0cyB0aGUgZW11bGF0ZWQgKHBlcmYtYmFzZWQpIHZQTVUuIEEgbWVkaWF0ZWQgdlBNVVxcbitkb2VzIG5vdCBpbmN1ciB0aGUgcmVwcm9ncmFtIGNvc3QgYW5kIGluY3JlbWVudHMgdGhlIGd1ZXN0IGNvdW50ZXIgZGlyZWN0bHksXFxuK3NvIGFjY291bnRpbmcgaXMgbmV2ZXIgc2tpcHBlZCBmb3IgaXQgcmVnYXJkbGVzcyBvZiB0aGlzIHNldHRpbmcuXFxuK1xcbitUaGlzIGNhbiBvbmx5IGJlIGludm9rZWQgb24gYSBWTSBwcmlvciB0byB0aGUgY3JlYXRpb24gb2YgdkNQVXM7IGF0dGVtcHRpbmcgdG9cXG4rc2V0IGl0IG9uY2UgYW55IHZDUFUgZXhpc3RzIHJldHVybnMgLUVJTlZBTC5cXG4rXFxuK0tWTV9DSEVDS19FWFRFTlNJT04gcmV0dXJucyB0aGUgYml0bWFzayBvZiBldmVudCBJRHMgdGhhdCBjYW4gYmUgZGlzYWJsZWQuXFxuK2FyZ3NbMF0gbXVzdCBiZSBhIHN1YnNldCBvZiB0aGF0IG1hc2suXFxuK1xcbiA4LiBPdGhlciBjYXBhYmlsaXRpZXMuXFxuID09PT09PT09PT09PT09PT09PT09PT1cXG4gXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuaW5kZXggNWY2YzFjZTk2NzNiN2YuLjUyMmY2NmM0NGU2YTAwIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuQEAgLTE1NjAsNiArMTU2MCwxMyBAQCBzdHJ1Y3Qga3ZtX2FyY2gge1xcbiBcXHRib29sIGVuYWJsZV9wbXU7XFxuIFxcdGJvb2wgY3JlYXRlZF9tZWRpYXRlZF9wbXU7XFxuIFxcbitcXHQvKlxcbitcXHQgKiBCaXRtYXNrIG9mIFBFUkZfQ09VTlRfSFdfKiBldmVudCBJRHMgZm9yIHdoaWNoIHNvZnR3YXJlIGFjY291bnRpbmdcXG4rXFx0ICogb2YgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucyBpcyBkaXNhYmxlZCAoS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfXFxuK1xcdCAqIFNXX0FDQ09VTlRJTkcpLiBTZWUga3ZtX3BtdV90cmlnZ2VyX2V2ZW50KCkuXFxuK1xcdCAqL1xcbitcXHR1NjQgcG11X2Rpc2FibGVfc3dfYWNjb3VudGluZztcXG4rXFxuIFxcdHUzMiBub3RpZnlfd2luZG93O1xcbiBcXHR1MzIgbm90aWZ5X3ZtZXhpdF9mbGFncztcXG4gXFx0LypcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3BtdS5jIGIvYXJjaC94ODYva3ZtL3BtdS5jXFxuaW5kZXggZGQxYzU3NTkzZjQ4YjguLmZiM2YyZGYwNjhkYzQ3IDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2t2bS9wbXUuY1xcbisrKyBiL2FyY2gveDg2L2t2bS9wbXUuY1xcbkBAIC0xMTQ1LDE0ICsxMTQ1LDM1IEBAIHN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuIFxcdHNyY3VfcmVhZF91bmxvY2soXFx1MDAyNnZjcHUtXFx1MDAzZWt2bS1cXHUwMDNlc3JjdSwgaWR4KTtcXG4gfVxcbiBcXG4rLypcXG4rICogV2hldGhlciBzb2Z0d2FyZSBhY2NvdW50aW5nIG9mIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMgZm9yIEBwZXJmX2h3X2lkIGlzXFxuKyAqIGRpc2FibGVkIHZpYSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HLiBUaGUgY2FwYWJpbGl0eSBvbmx5XFxuKyAqIHRhcmdldHMgdGhlIGVtdWxhdGVkIChwZXJmLWJhc2VkKSB2UE1VLCB3aGVyZSB0aGUgYWNjb3VudGluZyBkcml2ZXMgYW5cXG4rICogZXhwZW5zaXZlIGNvdW50ZXIgcmVwcm9ncmFtOyBhIG1lZGlhdGVkIHZQTVUgaW5jcmVtZW50cyBwbWMtXFx1MDAzZWNvdW50ZXJcXG4rICogZGlyZWN0bHkgKGFuZCBtYXkgcmFpc2UgYSBQTUkgb24gb3ZlcmZsb3cpLCBzbyBpdCBpcyBuZXZlciBza2lwcGVkLlxcbisgKi9cXG4rc3RhdGljIGJvb2wga3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgcGVyZl9od19pZClcXG4re1xcbitcXHRpZiAoa3ZtX3ZjcHVfaGFzX21lZGlhdGVkX3BtdSh2Y3B1KSlcXG4rXFx0XFx0cmV0dXJuIGZhbHNlO1xcbitcXG4rXFx0cmV0dXJuIHZjcHUtXFx1MDAzZWt2bS1cXHUwMDNlYXJjaC5wbXVfZGlzYWJsZV9zd19hY2NvdW50aW5nIFxcdTAwMjYgQklUX1VMTChwZXJmX2h3X2lkKTtcXG4rfVxcbitcXG4gdm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbiB7XFxuK1xcdGlmIChrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZyh2Y3B1LCBQRVJGX0NPVU5UX0hXX0lOU1RSVUNUSU9OUykpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuIFxcdGt2bV9wbXVfdHJpZ2dlcl9ldmVudCh2Y3B1LCB2Y3B1X3RvX3BtdSh2Y3B1KS1cXHUwMDNlcG1jX2NvdW50aW5nX2luc3RydWN0aW9ucyk7XFxuIH1cXG4gRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCk7XFxuIFxcbiB2b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbiB7XFxuK1xcdGlmIChrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZyh2Y3B1LCBQRVJGX0NPVU5UX0hXX0JSQU5DSF9JTlNUUlVDVElPTlMpKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHRrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktXFx1MDAzZXBtY19jb3VudGluZ19icmFuY2hlcyk7XFxuIH1cXG4gRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfYnJhbmNoX3JldGlyZWQpO1xcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vcG11LmggYi9hcmNoL3g4Ni9rdm0vcG11LmhcXG5pbmRleCBhNTgyMWQ3Yzg3ZjkzNS4uZTM0YjllODE0MzU1NTcgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3BtdS5oXFxuKysrIGIvYXJjaC94ODYva3ZtL3BtdS5oXFxuQEAgLTIzLDYgKzIzLDE1IEBAXFxuIFxcbiAjZGVmaW5lIEtWTV9GSVhFRF9QTUNfQkFTRV9JRFggSU5URUxfUE1DX0lEWF9GSVhFRFxcbiBcXG4rLypcXG4rICogRXZlbnRzIGZvciB3aGljaCBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HIGNhbiBkaXNhYmxlIHNvZnR3YXJlXFxuKyAqIGFjY291bnRpbmcgb2YgZW11bGF0ZWQgaW5zdHJ1Y3Rpb25zLiBUaGVzZSBhcmUgdGhlIG9ubHkgZXZlbnRzIEtWTSBldmVyXFxuKyAqIHBhc3NlcyB0byBrdm1fcG11X3RyaWdnZXJfZXZlbnQoKSAoZnJvbSB0aGUgcmV0aXJlZC1pbnN0cnVjdGlvbiBwYXRoKS5cXG4rICovXFxuKyNkZWZpbmUgS1ZNX1BNVV9TV19BQ0NPVU5USU5HX1ZBTElEX01BU0tcXHRcXHRcXHRcXFxcXFxuK1xcdChCSVRfVUxMKFBFUkZfQ09VTlRfSFdfSU5TVFJVQ1RJT05TKSB8XFx0XFx0XFx0XFxcXFxcbitcXHQgQklUX1VMTChQRVJGX0NPVU5UX0hXX0JSQU5DSF9JTlNUUlVDVElPTlMpKVxcbitcXG4gc3RydWN0IGt2bV9wbXVfb3BzIHtcXG4gXFx0c3RydWN0IGt2bV9wbWMgKigqcmRwbWNfZWN4X3RvX3BtYykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbiBcXHRcXHR1bnNpZ25lZCBpbnQgaWR4LCB1NjQgKm1hc2spO1xcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcXG5pbmRleCBhZmNhYzEwNDI5NDdhNS4uY2M4YTM2ZjI4YWVhOTggMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXFxuKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jXFxuQEAgLTQ5NjQsNiArNDk2NCw5IEBAIGludCBrdm1fdm1faW9jdGxfY2hlY2tfZXh0ZW5zaW9uKHN0cnVjdCBrdm0gKmt2bSwgbG9uZyBleHQpXFxuIFxcdGNhc2UgS1ZNX0NBUF9ESVNBQkxFX1FVSVJLUzI6XFxuIFxcdFxcdHIgPSBrdm1fY2Fwcy5zdXBwb3J0ZWRfcXVpcmtzO1xcbiBcXHRcXHRicmVhaztcXG4rXFx0Y2FzZSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HOlxcbitcXHRcXHRyID0gS1ZNX1BNVV9TV19BQ0NPVU5USU5HX1ZBTElEX01BU0s7XFxuK1xcdFxcdGJyZWFrO1xcbiBcXHRjYXNlIEtWTV9DQVBfWDg2X05PVElGWV9WTUVYSVQ6XFxuIFxcdFxcdHIgPSBrdm1fY2Fwcy5oYXNfbm90aWZ5X3ZtZXhpdDtcXG4gXFx0XFx0YnJlYWs7XFxuQEAgLTY3MzAsNiArNjczMywxOCBAQCBpbnQga3ZtX3ZtX2lvY3RsX2VuYWJsZV9jYXAoc3RydWN0IGt2bSAqa3ZtLFxcbiBcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFxuIFxcdHN3aXRjaCAoY2FwLVxcdTAwM2VjYXApIHtcXG4rXFx0Y2FzZSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HOlxcbitcXHRcXHRyID0gLUVJTlZBTDtcXG4rXFx0XFx0aWYgKGNhcC1cXHUwMDNlYXJnc1swXSBcXHUwMDI2IH5LVk1fUE1VX1NXX0FDQ09VTlRJTkdfVkFMSURfTUFTSylcXG4rXFx0XFx0XFx0YnJlYWs7XFxuK1xcbitcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZrdm0tXFx1MDAzZWxvY2spO1xcbitcXHRcXHRpZiAoIWt2bS1cXHUwMDNlY3JlYXRlZF92Y3B1cykge1xcbitcXHRcXHRcXHRrdm0tXFx1MDAzZWFyY2gucG11X2Rpc2FibGVfc3dfYWNjb3VudGluZyA9IGNhcC1cXHUwMDNlYXJnc1swXTtcXG4rXFx0XFx0XFx0ciA9IDA7XFxuK1xcdFxcdH1cXG4rXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZrdm0tXFx1MDAzZWxvY2spO1xcbitcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBLVk1fQ0FQX0RJU0FCTEVfUVVJUktTMjpcXG4gXFx0XFx0ciA9IC1FSU5WQUw7XFxuIFxcdFxcdGlmIChjYXAtXFx1MDAzZWFyZ3NbMF0gXFx1MDAyNiB+a3ZtX2NhcHMuc3VwcG9ydGVkX3F1aXJrcylcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oXFxuaW5kZXggNDE5MDExMDk3ZmE4ZTIuLjE4NjA1NDI0NWI4MGVhIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaFxcbisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaFxcbkBAIC05OTcsNiArOTk3LDcgQEAgc3RydWN0IGt2bV9lbmFibGVfY2FwIHtcXG4gI2RlZmluZSBLVk1fQ0FQX1MzOTBfS0VZT1AgMjQ3XFxuICNkZWZpbmUgS1ZNX0NBUF9TMzkwX1ZTSUVfRVNBTU9ERSAyNDhcXG4gI2RlZmluZSBLVk1fQ0FQX1MzOTBfSFBBR0VfMkcgMjQ5XFxuKyNkZWZpbmUgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElORyAyNTBcXG4gXFxuIHN0cnVjdCBrdm1faXJxX3JvdXRpbmdfaXJxY2hpcCB7XFxuIFxcdF9fdTMyIGlycWNoaXA7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDAzOjQ3OjM3Ljc1MzczMTA3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MjEzMjMyMjYwMzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkXCIsXG4gICAgXCJrdm1fcG11X2JyYW5jaF9yZXRpcmVkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgS1ZNIGNhcGFiaWxpdHkgYEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdgIHRoYXQgYWx0ZXJzIHRoZSBiZWhhdmlvciBvZiBzb2Z0d2FyZSBhY2NvdW50aW5nIGZvciBLVk0tZW11bGF0ZWQgaW5zdHJ1Y3Rpb25zLiBJdCBtb2RpZmllcyBjb3JlIEtWTSBQTVUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBjYXBhYmlsaXR5IGlzIGhhbmRsZWQgY29ycmVjdGx5IGFuZCBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciB2dWxuZXJhYmlsaXRpZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTFlZmQxMmUwNmE1NDcxYmU3MzljOTE4YTA0ZTgxYjZlYTA5NTYwNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVsIDIxIDAzOjQ3OjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0XG5pbmRleCBhNWY5ZWU5MmY0M2U4ZC4uMjMxYTViYTc1NjdjNTEgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3RcbisrKyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdFxuQEAgLTg5NDksNiArODk0OSwzOCBAQCBlbmFibGVkLCBjbW1hIGNhbid0IGJlIGVuYWJsZWQgYW55bW9yZSBhbmQgcGZtZmkgYW5kIHRoZSBzdG9yYWdlIGtleVxuIGludGVycHJldGF0aW9uIGFyZSBkaXNhYmxlZC4gSWYgY21tYSBoYXMgYWxyZWFkeSBiZWVuIGVuYWJsZWQgb3IgdGhlXG4gaHBhZ2VfMmcgbW9kdWxlIHBhcmFtZXRlciBpcyBub3Qgc2V0IHRvIDEsIC1FSU5WQUwgaXMgcmV0dXJuZWQuXG4gXG4rNy40OCBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HXG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4rXG4rOkFyY2hpdGVjdHVyZXM6IHg4NlxuKzpUeXBlOiB2bVxuKzpQYXJhbWV0ZXJzOiBhcmdzWzBdIC0gYml0bWFzayBvZiBQRVJGX0NPVU5UX0hXXyogZXZlbnQgSURzXG4rOlJldHVybnM6IDAgb24gc3VjY2VzczsgLUVJTlZBTCBpZiBhcmdzWzBdIGNvbnRhaW5zIGFuIHVuc3VwcG9ydGVkIGV2ZW50IG9yXG4rICAgICAgICAgIGlmIHRoZSBWTSBhbHJlYWR5IGhhcyB2Q1BVcy5cbitcbitCeSBkZWZhdWx0LCBLVk0gc29mdHdhcmUtYWNjb3VudHMgaW5zdHJ1Y3Rpb25zIGl0IGVtdWxhdGVzIGFnYWluc3QgYSBndWVzdFxuK1BNVSBjb3VudGVyIHByb2dyYW1tZWQgZm9yIHJldGlyZWQgaW5zdHJ1Y3Rpb25zIChQRVJGX0NPVU5UX0hXX0lOU1RSVUNUSU9OUylcbitvciByZXRpcmVkIGJyYW5jaGVzIChQRVJGX0NPVU5UX0hXX0JSQU5DSF9JTlNUUlVDVElPTlMpLCBieSB3YWxraW5nIHRoZSB2UE1VXG4rY291bnRlcnMgYW5kIHJlcXVlc3RpbmcgYSBjb3VudGVyIHJlcHJvZ3JhbSBvbiB0aGUgbmV4dCBWTS1lbnRyeS4gT24gaG9zdHNcbit3aXRoIGFuIGVtdWxhdGVkIHZQTVUgdGhpcyByZXByb2dyYW0gaXMgZXhwZW5zaXZlIGFuZCwgdW5kZXIgc29tZSB3b3JrbG9hZHMsXG4raW5mbGF0ZXMgdGltZXItaW50ZXJydXB0IGhhbmRsaW5nIGVub3VnaCB0byB0cmlnZ2VyIGd1ZXN0IENTRCBsb2NrdXBzLlxuK1xuK1RoaXMgY2FwYWJpbGl0eSBsZXRzIHVzZXJzcGFjZSBkaXNhYmxlIHRoYXQgc29mdHdhcmUgYWNjb3VudGluZyBmb3IgdGhlIGdpdmVuXG4rZXZlbnRzLiBTZXR0aW5nIGEgYml0IGZvciBhbiBldmVudCBJRCBtYWtlcyBLVk0gc2tpcCB0aGUgYWNjb3VudGluZyBmb3IgdGhhdFxuK2V2ZW50OiBpbnN0cnVjdGlvbnMgS1ZNIGVtdWxhdGVzIGluIGhvc3QgY29udGV4dCBnbyB1bmNvdW50ZWQuIEhhcmR3YXJlLVxuK2V4ZWN1dGVkIGd1ZXN0IGluc3RydWN0aW9ucyBhcmUgc3RpbGwgY291bnRlZCBieSB0aGUgYmFja2luZyBwZXJmX2V2ZW50LCBhbmRcbitpdHMgb3ZlcmZsb3cvUE1JIHBhdGggaXMgdW5hZmZlY3RlZC5cbitcbitUaGUgY2FwYWJpbGl0eSBvbmx5IGFmZmVjdHMgdGhlIGVtdWxhdGVkIChwZXJmLWJhc2VkKSB2UE1VLiBBIG1lZGlhdGVkIHZQTVVcbitkb2VzIG5vdCBpbmN1ciB0aGUgcmVwcm9ncmFtIGNvc3QgYW5kIGluY3JlbWVudHMgdGhlIGd1ZXN0IGNvdW50ZXIgZGlyZWN0bHksXG4rc28gYWNjb3VudGluZyBpcyBuZXZlciBza2lwcGVkIGZvciBpdCByZWdhcmRsZXNzIG9mIHRoaXMgc2V0dGluZy5cbitcbitUaGlzIGNhbiBvbmx5IGJlIGludm9rZWQgb24gYSBWTSBwcmlvciB0byB0aGUgY3JlYXRpb24gb2YgdkNQVXM7IGF0dGVtcHRpbmcgdG9cbitzZXQgaXQgb25jZSBhbnkgdkNQVSBleGlzdHMgcmV0dXJucyAtRUlOVkFMLlxuK1xuK0tWTV9DSEVDS19FWFRFTlNJT04gcmV0dXJucyB0aGUgYml0bWFzayBvZiBldmVudCBJRHMgdGhhdCBjYW4gYmUgZGlzYWJsZWQuXG4rYXJnc1swXSBtdXN0IGJlIGEgc3Vic2V0IG9mIHRoYXQgbWFzay5cbitcbiA4LiBPdGhlciBjYXBhYmlsaXRpZXMuXG4gPT09PT09PT09PT09PT09PT09PT09PVxuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCA1ZjZjMWNlOTY3M2I3Zi4uNTIyZjY2YzQ0ZTZhMDAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5AQCAtMTU2MCw2ICsxNTYwLDEzIEBAIHN0cnVjdCBrdm1fYXJjaCB7XG4gXHRib29sIGVuYWJsZV9wbXU7XG4gXHRib29sIGNyZWF0ZWRfbWVkaWF0ZWRfcG11O1xuIFxuK1x0LypcbitcdCAqIEJpdG1hc2sgb2YgUEVSRl9DT1VOVF9IV18qIGV2ZW50IElEcyBmb3Igd2hpY2ggc29mdHdhcmUgYWNjb3VudGluZ1xuK1x0ICogb2YgS1ZNLWVtdWxhdGVkIGluc3RydWN0aW9ucyBpcyBkaXNhYmxlZCAoS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfXG4rXHQgKiBTV19BQ0NPVU5USU5HKS4gU2VlIGt2bV9wbXVfdHJpZ2dlcl9ldmVudCgpLlxuK1x0ICovXG4rXHR1NjQgcG11X2Rpc2FibGVfc3dfYWNjb3VudGluZztcbitcbiBcdHUzMiBub3RpZnlfd2luZG93O1xuIFx0dTMyIG5vdGlmeV92bWV4aXRfZmxhZ3M7XG4gXHQvKlxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9wbXUuYyBiL2FyY2gveDg2L2t2bS9wbXUuY1xuaW5kZXggZGQxYzU3NTkzZjQ4YjguLmZiM2YyZGYwNjhkYzQ3IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3BtdS5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vcG11LmNcbkBAIC0xMTQ1LDE0ICsxMTQ1LDM1IEBAIHN0YXRpYyB2b2lkIGt2bV9wbXVfdHJpZ2dlcl9ldmVudChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRzcmN1X3JlYWRfdW5sb2NrKFx1MDAyNnZjcHUtXHUwMDNla3ZtLVx1MDAzZXNyY3UsIGlkeCk7XG4gfVxuIFxuKy8qXG4rICogV2hldGhlciBzb2Z0d2FyZSBhY2NvdW50aW5nIG9mIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMgZm9yIEBwZXJmX2h3X2lkIGlzXG4rICogZGlzYWJsZWQgdmlhIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkcuIFRoZSBjYXBhYmlsaXR5IG9ubHlcbisgKiB0YXJnZXRzIHRoZSBlbXVsYXRlZCAocGVyZi1iYXNlZCkgdlBNVSwgd2hlcmUgdGhlIGFjY291bnRpbmcgZHJpdmVzIGFuXG4rICogZXhwZW5zaXZlIGNvdW50ZXIgcmVwcm9ncmFtOyBhIG1lZGlhdGVkIHZQTVUgaW5jcmVtZW50cyBwbWMtXHUwMDNlY291bnRlclxuKyAqIGRpcmVjdGx5IChhbmQgbWF5IHJhaXNlIGEgUE1JIG9uIG92ZXJmbG93KSwgc28gaXQgaXMgbmV2ZXIgc2tpcHBlZC5cbisgKi9cbitzdGF0aWMgYm9vbCBrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBwZXJmX2h3X2lkKVxuK3tcbitcdGlmIChrdm1fdmNwdV9oYXNfbWVkaWF0ZWRfcG11KHZjcHUpKVxuK1x0XHRyZXR1cm4gZmFsc2U7XG4rXG4rXHRyZXR1cm4gdmNwdS1cdTAwM2Vrdm0tXHUwMDNlYXJjaC5wbXVfZGlzYWJsZV9zd19hY2NvdW50aW5nIFx1MDAyNiBCSVRfVUxMKHBlcmZfaHdfaWQpO1xuK31cbitcbiB2b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4ge1xuK1x0aWYgKGt2bV9wbXVfc2tpcF9zd19hY2NvdW50aW5nKHZjcHUsIFBFUkZfQ09VTlRfSFdfSU5TVFJVQ1RJT05TKSlcbitcdFx0cmV0dXJuO1xuK1xuIFx0a3ZtX3BtdV90cmlnZ2VyX2V2ZW50KHZjcHUsIHZjcHVfdG9fcG11KHZjcHUpLVx1MDAzZXBtY19jb3VudGluZ19pbnN0cnVjdGlvbnMpO1xuIH1cbiBFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoa3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKTtcbiBcbiB2b2lkIGt2bV9wbXVfYnJhbmNoX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbitcdGlmIChrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZyh2Y3B1LCBQRVJGX0NPVU5UX0hXX0JSQU5DSF9JTlNUUlVDVElPTlMpKVxuK1x0XHRyZXR1cm47XG4rXG4gXHRrdm1fcG11X3RyaWdnZXJfZXZlbnQodmNwdSwgdmNwdV90b19wbXUodmNwdSktXHUwMDNlcG1jX2NvdW50aW5nX2JyYW5jaGVzKTtcbiB9XG4gRVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfYnJhbmNoX3JldGlyZWQpO1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9wbXUuaCBiL2FyY2gveDg2L2t2bS9wbXUuaFxuaW5kZXggYTU4MjFkN2M4N2Y5MzUuLmUzNGI5ZTgxNDM1NTU3IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3BtdS5oXG4rKysgYi9hcmNoL3g4Ni9rdm0vcG11LmhcbkBAIC0yMyw2ICsyMywxNSBAQFxuIFxuICNkZWZpbmUgS1ZNX0ZJWEVEX1BNQ19CQVNFX0lEWCBJTlRFTF9QTUNfSURYX0ZJWEVEXG4gXG4rLypcbisgKiBFdmVudHMgZm9yIHdoaWNoIEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkcgY2FuIGRpc2FibGUgc29mdHdhcmVcbisgKiBhY2NvdW50aW5nIG9mIGVtdWxhdGVkIGluc3RydWN0aW9ucy4gVGhlc2UgYXJlIHRoZSBvbmx5IGV2ZW50cyBLVk0gZXZlclxuKyAqIHBhc3NlcyB0byBrdm1fcG11X3RyaWdnZXJfZXZlbnQoKSAoZnJvbSB0aGUgcmV0aXJlZC1pbnN0cnVjdGlvbiBwYXRoKS5cbisgKi9cbisjZGVmaW5lIEtWTV9QTVVfU1dfQUNDT1VOVElOR19WQUxJRF9NQVNLXHRcdFx0XFxcbitcdChCSVRfVUxMKFBFUkZfQ09VTlRfSFdfSU5TVFJVQ1RJT05TKSB8XHRcdFx0XFxcbitcdCBCSVRfVUxMKFBFUkZfQ09VTlRfSFdfQlJBTkNIX0lOU1RSVUNUSU9OUykpXG4rXG4gc3RydWN0IGt2bV9wbXVfb3BzIHtcbiBcdHN0cnVjdCBrdm1fcG1jICooKnJkcG1jX2VjeF90b19wbWMpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbiBcdFx0dW5zaWduZWQgaW50IGlkeCwgdTY0ICptYXNrKTtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbmluZGV4IGFmY2FjMTA0Mjk0N2E1Li5jYzhhMzZmMjhhZWE5OCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS94ODYuY1xuKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5AQCAtNDk2NCw2ICs0OTY0LDkgQEAgaW50IGt2bV92bV9pb2N0bF9jaGVja19leHRlbnNpb24oc3RydWN0IGt2bSAqa3ZtLCBsb25nIGV4dClcbiBcdGNhc2UgS1ZNX0NBUF9ESVNBQkxFX1FVSVJLUzI6XG4gXHRcdHIgPSBrdm1fY2Fwcy5zdXBwb3J0ZWRfcXVpcmtzO1xuIFx0XHRicmVhaztcbitcdGNhc2UgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElORzpcbitcdFx0ciA9IEtWTV9QTVVfU1dfQUNDT1VOVElOR19WQUxJRF9NQVNLO1xuK1x0XHRicmVhaztcbiBcdGNhc2UgS1ZNX0NBUF9YODZfTk9USUZZX1ZNRVhJVDpcbiBcdFx0ciA9IGt2bV9jYXBzLmhhc19ub3RpZnlfdm1leGl0O1xuIFx0XHRicmVhaztcbkBAIC02NzMwLDYgKzY3MzMsMTggQEAgaW50IGt2bV92bV9pb2N0bF9lbmFibGVfY2FwKHN0cnVjdCBrdm0gKmt2bSxcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4gXHRzd2l0Y2ggKGNhcC1cdTAwM2VjYXApIHtcbitcdGNhc2UgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElORzpcbitcdFx0ciA9IC1FSU5WQUw7XG4rXHRcdGlmIChjYXAtXHUwMDNlYXJnc1swXSBcdTAwMjYgfktWTV9QTVVfU1dfQUNDT1VOVElOR19WQUxJRF9NQVNLKVxuK1x0XHRcdGJyZWFrO1xuK1xuK1x0XHRtdXRleF9sb2NrKFx1MDAyNmt2bS1cdTAwM2Vsb2NrKTtcbitcdFx0aWYgKCFrdm0tXHUwMDNlY3JlYXRlZF92Y3B1cykge1xuK1x0XHRcdGt2bS1cdTAwM2VhcmNoLnBtdV9kaXNhYmxlX3N3X2FjY291bnRpbmcgPSBjYXAtXHUwMDNlYXJnc1swXTtcbitcdFx0XHRyID0gMDtcbitcdFx0fVxuK1x0XHRtdXRleF91bmxvY2soXHUwMDI2a3ZtLVx1MDAzZWxvY2spO1xuK1x0XHRicmVhaztcbiBcdGNhc2UgS1ZNX0NBUF9ESVNBQkxFX1FVSVJLUzI6XG4gXHRcdHIgPSAtRUlOVkFMO1xuIFx0XHRpZiAoY2FwLVx1MDAzZWFyZ3NbMF0gXHUwMDI2IH5rdm1fY2Fwcy5zdXBwb3J0ZWRfcXVpcmtzKVxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaFxuaW5kZXggNDE5MDExMDk3ZmE4ZTIuLjE4NjA1NDI0NWI4MGVhIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oXG4rKysgYi9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmhcbkBAIC05OTcsNiArOTk3LDcgQEAgc3RydWN0IGt2bV9lbmFibGVfY2FwIHtcbiAjZGVmaW5lIEtWTV9DQVBfUzM5MF9LRVlPUCAyNDdcbiAjZGVmaW5lIEtWTV9DQVBfUzM5MF9WU0lFX0VTQU1PREUgMjQ4XG4gI2RlZmluZSBLVk1fQ0FQX1MzOTBfSFBBR0VfMkcgMjQ5XG4rI2RlZmluZSBLVk1fQ0FQX1g4Nl9ESVNBQkxFX1BNVV9TV19BQ0NPVU5USU5HIDI1MFxuIFxuIHN0cnVjdCBrdm1faXJxX3JvdXRpbmdfaXJxY2hpcCB7XG4gXHRfX3UzMiBpcnFjaGlwO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjFUMDM6NDc6MzcuNzUzNzMyNzdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzU5NTU1MTk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEtWTSBQTVUgU29mdHdhcmUgQWNjb3VudGluZyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW50cm9kdWNpbmcgYEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdgICgyNTApLiBJdCBsb29rcyBsaWtlIHRoZXkncmUgZ2l2aW5nIHVzZXJzcGFjZSB0aGUgYWJpbGl0eSB0byBkaXNhYmxlIHRoZSBzb2Z0d2FyZS1iYXNlZCBhY2NvdW50aW5nIG9mIGluc3RydWN0aW9ucyB3aXRoaW4gS1ZNLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBgUEVSRl9DT1VOVF9IV19JTlNUUlVDVElPTlNgIGFuZCBgUEVSRl9DT1VOVF9IV19CUkFOQ0hfSU5TVFJVQ1RJT05TYCBldmVudHMuIFRoYXQncyBhIHJlYXNvbmFibGUgcmVxdWVzdCwgZXNwZWNpYWxseSBpbiBwZXJmb3JtYW5jZS1zZW5zaXRpdmUgc2NlbmFyaW9zIG9yIHdoZXJlIHVzZXJzcGFjZSB3YW50cyB2ZXJ5IGZpbmUtZ3JhaW5lZCBjb250cm9sIG92ZXIgdGhlIHBlcmZvcm1hbmNlIGRhdGEgaXQncyBjb2xsZWN0aW5nLlxuXG5UaGV5J3ZlIG1vZGlmaWVkIGBhcmNoL3g4Ni9rdm0vcG11LmNgIGFuZCBgYXJjaC94ODYva3ZtL3g4Ni5jYCwgYW5kIHRoZXkndmUgYWRkZWQgYSBgcG11X2Rpc2FibGVfc3dfYWNjb3VudGluZ2AgZmllbGQgdG8gdGhlIGBzdHJ1Y3Qga3ZtX2FyY2hgLiBNYWtlcyBzZW5zZSDigJMgYSBjbGVhbiB3YXkgdG8gc3RvcmUgdGhlIGRpc2FibGluZyBzdGF0ZS5cblxuVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBpbiBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBhbmQgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgLiAgRXNzZW50aWFsbHksIHRoZSBwYXRjaCBpcyBhZGRpbmcgYSBjaGVjayBpbiB0aGVzZSBmdW5jdGlvbnMuIElmIHRoZSBjYXBhYmlsaXR5IGJpdCBpcyBzZXQsIGl0IGJ5cGFzc2VzIHRoZSBga3ZtX3BtdV90cmlnZ2VyX2V2ZW50YCBjYWxsLCB3aGljaCBpcyB3aGVyZSB0aGUgYWNjb3VudGluZyB3b3VsZCBoYXBwZW4uIFNvLCB0aGV5J3JlIGF2b2lkaW5nIHRoZSBvdmVyaGVhZCBvZiB0cmlnZ2VyaW5nIHRob3NlIGV2ZW50cy5cblxuVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIEtWTSB4ODYgc3Vic3lzdGVtLiBUaGF0IG1lYW5zIHRoaXMgbmVlZHMgc29tZSBzZXJpb3VzIGZ1enppbmcuIEdvdHRhIGNoZWNrIGZvciBhbnkgZWRnZSBjYXNlcyBvciB1bmV4cGVjdGVkIGJlaGF2aW9yIHdoZW4gdGhpcyBhY2NvdW50aW5nIGlzIGRpc2FibGVkLlxuXG5MZXQncyBzZWUsIHdoYXQgYXJlIHRoZSBrZXkgc3ltYm9scz8gTG9va3MgbGlrZSB0aGUgcHJpbWFyeSBmb2N1cyBzaG91bGQgYmUgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAsIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYCwgYW5kIG1heWJlIGBrdm1fcG11X3NraXBfc3dfYWNjb3VudGluZ2AsIGV2ZW4gdGhvdWdoIHRoYXQgb25lIGlzIHN0YXRpYyBhbmQgbWlnaHQgYmUgaW5saW5lZC4gSeKAmW0gZ29pbmcgdG8gY29uc2lkZXIgYGt2bV92bV9pb2N0bF9lbmFibGVfY2FwYCBidXQgaXQgc2VlbXMgcHJldHR5IGdlbmVyaWMsIHNvIGl0IG1pZ2h0IG5vdCBiZSBhIHRhcmdldC5cblxuV2FpdCwgbG9va2luZyBhdCBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBhbmQgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgLCB0aGV5IGFyZSBiZWluZyBjYWxsZWQgd2hlbiBpbnN0cnVjdGlvbnMgYXJlIHJldGlyZWQuIENydWNpYWxseSwgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgaXMgY2FsbGVkIHdoZW4gS1ZNIGlzICplbXVsYXRpbmcqIGFuIGluc3RydWN0aW9uLCB3aGljaCBtYXkgYmUgbW9yZSBmcmVxdWVudCB0aGFuIGluc3RydWN0aW9uIHJldGlyZW1lbnQuIExldCBtZSBkb3VibGUgY2hlY2sgd2hlcmUgdGhvc2UgYXJlIGJlaW5nIGNhbGxlZC4gVGhhdCdzIHRoZSBjcml0aWNhbCBwYXRoIHRvIGV4YW1pbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyODksIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNjUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwMzo0Nzo0NC4xMTMyOTE2MTZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk4NzIzNjcyNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3BtdS5jPTExNTU9c3RhdGljIGJvb2wga3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgcGVyZl9od19pZClcXG4tLVxcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTYyLVxcbmFyY2gveDg2L2t2bS9wbXUuYzoxMTYzOnZvaWQga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2NC17XFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE2OS19XFxuYXJjaC94ODYva3ZtL3BtdS5jOjExNzA6RVhQT1JUX1NZTUJPTF9GT1JfS1ZNX0lOVEVSTkFMKGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCk7XFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzEtXFxuLS1cXG5hcmNoL3g4Ni9rdm0vcG11Lmg9MjkzPWludCBrdm1fdm1faW9jdGxfc2V0X3BtdV9ldmVudF9maWx0ZXIoc3RydWN0IGt2bSAqa3ZtLCB2b2lkIF9fdXNlciAqYXJncCk7XFxuYXJjaC94ODYva3ZtL3BtdS5oOjI5NDp2b2lkIGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbmFyY2gveDg2L2t2bS9wbXUuaC0yOTUtdm9pZCBrdm1fcG11X2JyYW5jaF9yZXRpcmVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuLS1cXG5hcmNoL3g4Ni9rdm0vc3ZtL25lc3RlZC5jPTExMTQ9aW50IG5lc3RlZF9zdm1fdm1ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbi0tXFxuYXJjaC94ODYva3ZtL3N2bS9uZXN0ZWQuYy0xMTk3LVxcdCAqL1xcbmFyY2gveDg2L2t2bS9zdm0vbmVzdGVkLmM6MTE5ODpcXHRrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQodmNwdSk7XFxuYXJjaC94ODYva3ZtL3N2bS9uZXN0ZWQuYy0xMTk5LVxcdHJldHVybiAxO1xcbi0tXFxuYXJjaC94ODYva3ZtL3g4Ni5jPTkyNzg9aW50IGt2bV9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYy05Mjg2LVxcbmFyY2gveDg2L2t2bS94ODYuYzo5Mjg3OlxcdGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTI4OC1cXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYz05NDM2PWludCB4ODZfZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGdwYV90IGNyMl9vcl9ncGEsXFxuLS1cXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTYzMS1cXHRcXHQgICAgZXhjZXB0aW9uX3R5cGUoY3R4dC1cXHUwMDNlZXhjZXB0aW9uLnZlY3RvcikgPT0gRVhDUFRfVFJBUCkge1xcbmFyY2gveDg2L2t2bS94ODYuYzo5NjMyOlxcdFxcdFxcdGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTYzMy1cXHRcXHRcXHRpZiAoY3R4dC1cXHUwMDNlaXNfYnJhbmNoKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwMzo0Nzo0Ni4xMDA1Mzc3NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMTI2MzQyMjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkFuYWx5emluZyBLVk0gUGVyZm9ybWFuY2UgQ291bnRlcnMqKlxuXG5SaWdodCwgc28gSSdtIHRoaW5raW5nIGFib3V0IHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgaW4gS1ZNIGFnYWluLCBhbmQgYGt2bV9wbXVfaW5zdHJ1Y3Rpb25fcmV0aXJlZGAgYW5kIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYCBhcmUgZGVmaW5pdGVseSBrZXkgZm9jdXMgcG9pbnRzLiBUaG9zZSBhcmUgc29saWQgc3ltYm9scyB0byBob25lIGluIG9uLiBBbmQgdGhlbiBJIHJlY2FsbCB0aGF0IGBrdm1fdm1faW9jdGxfZW5hYmxlX2NhcGAgZ2V0cyBpdHMgaGFuZHMgZGlydHkgd2l0aCBgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElOR2Agd2hpY2ggaXMgYWxzbyByZWxldmFudC4gR290dGEga2VlcCB0aG9zZSBpbnRlcnJlbGF0ZWQuXG5cbkxldCdzIGRpZyBpbnRvIGBrdm1fcG11X2JyYW5jaF9yZXRpcmVkYC4gSSB3YW50IHRvIHNlZSB3aGF0J3MgaGFwcGVuaW5nIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTg5LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjFUMDM6NDc6NDkuMjEzMTc1MDFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk4Njk5NzMwNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcG11X2JyYW5jaF9yZXRpcmVkXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS9wbXUuYz0xMTcwPUVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQpO1xcbmFyY2gveDg2L2t2bS9wbXUuYy0xMTcxLVxcbmFyY2gveDg2L2t2bS9wbXUuYzoxMTcyOnZvaWQga3ZtX3BtdV9icmFuY2hfcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzMte1xcbi0tXFxuYXJjaC94ODYva3ZtL3BtdS5jLTExNzgtfVxcbmFyY2gveDg2L2t2bS9wbXUuYzoxMTc5OkVYUE9SVF9TWU1CT0xfRk9SX0tWTV9JTlRFUk5BTChrdm1fcG11X2JyYW5jaF9yZXRpcmVkKTtcXG5hcmNoL3g4Ni9rdm0vcG11LmMtMTE4MC1cXG4tLVxcbmFyY2gveDg2L2t2bS9wbXUuaD0yOTQ9dm9pZCBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vcG11Lmg6Mjk1OnZvaWQga3ZtX3BtdV9icmFuY2hfcmV0aXJlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbmFyY2gveDg2L2t2bS9wbXUuaC0yOTYtdm9pZCBrdm1fbWVkaWF0ZWRfcG11X2xvYWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvbmVzdGVkLmM9Mzc3Nz1zdGF0aWMgaW50IG5lc3RlZF92bXhfcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBsYXVuY2gpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L25lc3RlZC5jLTM3OTMtXFxuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYzozNzk0OlxcdGt2bV9wbXVfYnJhbmNoX3JldGlyZWQodmNwdSk7XFxuYXJjaC94ODYva3ZtL3ZteC9uZXN0ZWQuYy0zNzk1LVxcbi0tXFxuYXJjaC94ODYva3ZtL3g4Ni5jPTk0MzY9aW50IHg4Nl9lbXVsYXRlX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgZ3BhX3QgY3IyX29yX2dwYSxcXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYy05NjMzLVxcdFxcdFxcdGlmIChjdHh0LVxcdTAwM2Vpc19icmFuY2gpXFxuYXJjaC94ODYva3ZtL3g4Ni5jOjk2MzQ6XFx0XFx0XFx0XFx0a3ZtX3BtdV9icmFuY2hfcmV0aXJlZCh2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTYzNS1cXHRcXHRcXHRrdm1fcmlwX3dyaXRlKHZjcHUsIGN0eHQtXFx1MDAzZWVpcCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDAzOjQ3OjUxLjIwMDE4NTk0NVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI2NzU1OTYwMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJpemVkIHRob3VnaHQgcHJvY2VzcywgcHJlc2VudGVkIGFzIGlmIEknbSB0aGlua2luZyBpdDpcblxuKipDaGVja2luZyBLY29uZmlnIGZvciBLVk0qKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCBzdGFydGVkLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55dGhpbmcgY3J1Y2lhbCByZWdhcmRpbmcgS1ZNIGNvbmZpZ3VyYXRpb24uIFRoZSBmaXJzdCBwb3J0IG9mIGNhbGwsIG5hdHVyYWxseSwgaXMgdGhlIEtjb25maWcgZmlsZXMuIEkgbmVlZCB0byBxdWlja2x5IGFuZCBtZXRob2RpY2FsbHkgY29uZmlybSB0aGF0IGFsbCByZWxldmFudCBLVk0gb3B0aW9ucyBhcmUgZW5hYmxlZCBvciwgYXQgbGVhc3QsIGNvcnJlY3RseSBoYW5kbGVkIHdpdGhpbiB0aGUga2VybmVsIGJ1aWxkIGNvbmZpZ3VyYXRpb24uIEknbGwgbmVlZCB0byBkb3VibGUtY2hlY2sgZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHNldHRpbmdzLCBhbmQgYW55IHBvdGVudGlhbCBjb25mbGljdHMgd2l0aCBvdGhlciBmZWF0dXJlcyB0aGF0IG1pZ2h0IGltcGFjdCBLVk0ncyBwZXJmb3JtYW5jZSBvciBmdW5jdGlvbmFsaXR5LiBUaGlzIHF1aWNrIGF1ZGl0IHdpbGwgaG9wZWZ1bGx5IHByZXZlbnQgYW55IG5lZWRsZXNzIGRlYnVnZ2luZyBsYXRlciBvbi4gTGV0J3MgZGlnIGluIGFuZCBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBhcyBpdCBzaG91bGQgYmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY4NzYsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwMzo0Nzo1My44NzU3ODQ5OTdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjEyNTQyMjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXFx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVxcdGJvb2wgXFxcIkNvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cXHRib29sIFxcXCJBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTcxLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mjpjb25maWcgS1ZNX0lPQVBJQ1xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3My1cXHRib29sIFxcXCJJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4MS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODI6Y29uZmlnIEtWTV9TTU1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODMtXFx0Ym9vbCBcXFwiU3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTItXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTkzOmNvbmZpZyBLVk1fSFlQRVJWXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTk0LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDc6Y29uZmlnIEtWTV9YRU5cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDgtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE2OmNvbmZpZyBLVk1fUFJPVkVfTU1VXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE3LVxcdGJvb2wgXFxcIlByb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjgtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzAtXFx0Ym9vbFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzI6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzMtXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMVQwMzo0Nzo1My45MzcwNDM3ODNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDU1OTI4MzIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBLVk0gUE1VIFNvZnR3YXJlIEFjY291bnRpbmcgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIG5ldyBwYXRjaCByZWxhdGVkIHRvIHRoZSBLVk0gUE1VIGFuZCBpdHMgc29mdHdhcmUgYWNjb3VudGluZy4gVGhlIGtleSBjb25maWd1cmF0aW9ucyBhcmUgYEtWTWAgYW5kIGBLVk1fWDg2YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHplcm8gaW4gb24gdGhlIHJlbGV2YW50IHN5bWJvbHM7IHRoYXQncyB3aGVyZSBJIG5lZWQgdG8gZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzLiBJJ3ZlIGlkZW50aWZpZWQgdGhlIGZvY3VzIHN5bWJvbHM6IGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgLCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAsIGFuZCBga3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmdgLlxuXG5JIG5lZWQgdG8gY29uZmlybSBpZiBga3ZtX3BtdV9za2lwX3N3X2FjY291bnRpbmdgIGlzIGEgc3RhdGljIHZhcmlhYmxlLCBhbmQgeWVzLCBJJ3ZlIGNvbmZpcm1lZCBpdCdzIHN0YXRpYyB3aXRoaW4gYGFyY2gveDg2L2t2bS9wbXUuY2AuIEJhc2VkIG9uIHRoaXMsIGl0J3MgcHJvYmFibHkgbGVzcyBjcml0aWNhbCBmb3IgZGlyZWN0IGZ1enppbmcuIFRoZXJlZm9yZSwgSSdsbCBwcmlvcml0aXplIGBrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRgIGFuZCBga3ZtX3BtdV9icmFuY2hfcmV0aXJlZGAgYXMgdGhlIHByaW1hcnkgdGFyZ2V0cy5cblxuR2l2ZW4gdGhlIHBvdGVudGlhbCBpbXBhY3Qgb24gY29yZSBLVk0gUE1VIGxvZ2ljIGludHJvZHVjZWQgYnkgYEtWTV9DQVBfWDg2X0RJU0FCTEVfUE1VX1NXX0FDQ09VTlRJTkdgLCBJJ3ZlIGRlY2lkZWQgdGhpcyBkZWZpbml0ZWx5IHdhcnJhbnRzIGZ1enppbmcuIEknbGwgc2V0IG15IGludGVybmFsIGZsYWcsIGBXb3J0aEZ1enppbmdgLCB0byB0cnVlLlxuXG5UaGVyZWZvcmUsIHRoZSBrZXkgY29uZmlndXJhdGlvbnMgSSdsbCB1c2UgaW4gbXkgZnV6emluZyBjYW1wYWlnbiB3aWxsIGJlIGBLVk1gLCBhbmQgSSB3aWxsIHRhcmdldCB0aGUgc3ltYm9scyBga3ZtX3BtdV9pbnN0cnVjdGlvbl9yZXRpcmVkYCBhbmQgYGt2bV9wbXVfYnJhbmNoX3JldGlyZWRgLiBJIG5lZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2FwYWJpbGl0eSBpcyBoYW5kbGVkIGNvcnJlY3RseS4gSSBhbHNvIHdhbnQgdG8gcHJldmVudCByZWdyZXNzaW9ucyBvciB2dWxuZXJhYmlsaXRpZXMuIFRoaXMgbG9va3MgbGlrZSBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50IGZvciBmdXp6aW5nIHRoaXMgcGF0Y2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgyOTMsIk91dHB1dFRva2VucyI6MTMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIxVDAzOjQ3OjU4Ljk5Mjk3NTM3NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgzOTc2MTA2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRcIixcbiAgICBcImt2bV9wbXVfYnJhbmNoX3JldGlyZWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBLVk0gY2FwYWJpbGl0eSBgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElOR2AgdGhhdCBhbHRlcnMgdGhlIGJlaGF2aW9yIG9mIHNvZnR3YXJlIGFjY291bnRpbmcgZm9yIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMuIEl0IG1vZGlmaWVzIGNvcmUgS1ZNIFBNVSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGNhcGFiaWxpdHkgaXMgaGFuZGxlZCBjb3JyZWN0bHkgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHZ1bG5lcmFiaWxpdGllcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcG11X2luc3RydWN0aW9uX3JldGlyZWRcIixcbiAgICBcImt2bV9wbXVfYnJhbmNoX3JldGlyZWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBLVk0gY2FwYWJpbGl0eSBgS1ZNX0NBUF9YODZfRElTQUJMRV9QTVVfU1dfQUNDT1VOVElOR2AgdGhhdCBhbHRlcnMgdGhlIGJlaGF2aW9yIG9mIHNvZnR3YXJlIGFjY291bnRpbmcgZm9yIEtWTS1lbXVsYXRlZCBpbnN0cnVjdGlvbnMuIEl0IG1vZGlmaWVzIGNvcmUgS1ZNIFBNVSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIGNhcGFiaWxpdHkgaXMgaGFuZGxlZCBjb3JyZWN0bHkgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHZ1bG5lcmFiaWxpdGllcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowp7z64[1] Phase: Succeeded StartedAt: 2026-07-21 03:48:11 +0000 UTC FinishedAt: 2026-07-21 03:48:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-21 03:48:11 +0000 UTC FinishedAt: 2026-07-21 03:48:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2] Phase: Succeeded StartedAt: 2026-07-21 03:48:11 +0000 UTC FinishedAt: 2026-07-21 08:22:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-21 03:48:11 +0000 UTC FinishedAt: 2026-07-21 08:22:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-21 03:48:11 +0000 UTC FinishedAt: 2026-07-21 03:48:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-21 03:48:11 +0000 UTC FinishedAt: 2026-07-21 03:48:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-convert-artifact-3102265225/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-21 03:48:21 +0000 UTC FinishedAt: 2026-07-21 04:36:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-21 03:48:21 +0000 UTC FinishedAt: 2026-07-21 04:36:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*38c2db91-1112-48b8-b41f-4e68c65d7ea2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-convert-artifact-3102265225/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "ad95b435-a9b2-4a26-b15b-04c5e2fbb1f1", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-build-action-3179382887/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-21 03:48:21 +0000 UTC FinishedAt: 2026-07-21 04:36:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*38c2db91-1112-48b8-b41f-4e68c65d7ea2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-convert-artifact-3102265225/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "ad95b435-a9b2-4a26-b15b-04c5e2fbb1f1", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-build-action-3179382887/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-21 04:36:35 +0000 UTC FinishedAt: 2026-07-21 04:36:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-21 04:36:35 +0000 UTC FinishedAt: 2026-07-21 04:36:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-21 04:36:35 +0000 UTC FinishedAt: 2026-07-21 04:36:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-21 04:36:35 +0000 UTC FinishedAt: 2026-07-21 04:36:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-convert-artifact-3832842908/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-21 04:36:45 +0000 UTC FinishedAt: 2026-07-21 04:39:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-21 04:36:45 +0000 UTC FinishedAt: 2026-07-21 04:38:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ad95b435-a9b2-4a26-b15b-04c5e2fbb1f1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-build-action-3179382887/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-21 04:39:06 +0000 UTC FinishedAt: 2026-07-21 04:39:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-21 04:39:06 +0000 UTC FinishedAt: 2026-07-21 04:39:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-21 04:39:06 +0000 UTC FinishedAt: 2026-07-21 05:18:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-21 04:39:06 +0000 UTC FinishedAt: 2026-07-21 05:18:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*38c2db91-1112-48b8-b41f-4e68c65d7ea2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-convert-artifact-3832842908/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "5fdb27b4-973b-4d28-8b10-b4e827b718ff", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-build-action-1416244728/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-21 04:39:06 +0000 UTC FinishedAt: 2026-07-21 05:18:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*38c2db91-1112-48b8-b41f-4e68c65d7ea2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-convert-artifact-3832842908/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "5fdb27b4-973b-4d28-8b10-b4e827b718ff", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-build-action-1416244728/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-21 05:18:57 +0000 UTC FinishedAt: 2026-07-21 05:18:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-21 05:18:57 +0000 UTC FinishedAt: 2026-07-21 05:18:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-21 05:18:57 +0000 UTC FinishedAt: 2026-07-21 05:20:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-21 05:18:57 +0000 UTC FinishedAt: 2026-07-21 05:20:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*5fdb27b4-973b-4d28-8b10-b4e827b718ff,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-build-action-1416244728/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-21 05:20:57 +0000 UTC FinishedAt: 2026-07-21 08:22:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-21 05:20:57 +0000 UTC FinishedAt: 2026-07-21 08:22:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*ad95b435-a9b2-4a26-b15b-04c5e2fbb1f1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*5fdb27b4-973b-4d28-8b10-b4e827b718ff,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-build-action-3179382887/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-build-action-1416244728/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-21 05:20:57 +0000 UTC FinishedAt: 2026-07-21 05:21:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-21 05:20:57 +0000 UTC FinishedAt: 2026-07-21 05:21:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-convert-artifact-1758057061/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-21 05:20:57 +0000 UTC FinishedAt: 2026-07-21 05:20:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-21 05:20:57 +0000 UTC FinishedAt: 2026-07-21 05:20:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-21 05:20:57 +0000 UTC FinishedAt: 2026-07-21 05:20:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-21 05:21:09 +0000 UTC FinishedAt: 2026-07-21 08:22:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7z64[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_pmu_instruction_retired","kvm_pmu_branch_retired"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"25f744ffa0c8e799e06250ce2e618367b166b0d4","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"43091e7b-1263-4d62-ade1-7c4daba12271","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-21 05:21:09 +0000 UTC FinishedAt: 2026-07-21 08:22:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ad95b435-a9b2-4a26-b15b-04c5e2fbb1f1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*5fdb27b4-973b-4d28-8b10-b4e827b718ff,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-build-action-3179382887/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-build-action-1416244728/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7z64/series-workflowp7z64-convert-artifact-1758057061/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}