Name: series-workflowt44sm Phase: Succeeded StartedAt: 2026-07-31 03:24:10 +0000 UTC FinishedAt: 2026-07-31 07:13:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[0] Phase: Succeeded StartedAt: 2026-07-31 03:24:10 +0000 UTC FinishedAt: 2026-07-31 03:30:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[0].run-triage Phase: Succeeded StartedAt: 2026-07-31 03:24:10 +0000 UTC FinishedAt: 2026-07-31 03:30:02 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "51b093a7ba27476e1f639455f005e8d2e75390e4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VSOCKETS", "VIRTIO_VSOCKETS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "51b093a7ba27476e1f639455f005e8d2e75390e4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VSOCKETS", "VIRTIO_VSOCKETS" ], "series_id": "866205c5-3b37-45b9-baa4-e1092b04b47b" }, "track": "KASAN", "fuzz": { "focus": [ "kvm", "net" ], "focus_symbols": [ "virtio_transport_tx_work", "virtio_transport_event_work", "virtio_transport_rx_work" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db", "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZTT0NLRVRTJiMzNDssCiAgICAmIzM0O1ZJUlRJT19WU09DS0VUUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZpcnRpb190cmFuc3BvcnRfdHhfd29yayYjMzQ7LAogICAgJiMzNDt2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmsmIzM0OywKICAgICYjMzQ7dmlydGlvX3RyYW5zcG9ydF9yeF93b3JrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB2aXJ0aW8gdnNvY2sgd29ya3F1ZXVlIGhhbmRsZXJzIGJ5IGNoZWNraW5nIHRoZSBgcnVuYCBmbGFncyBiZWZvcmUgYWNjZXNzaW5nIHRoZSB2aXJ0cXVldWVzLiBUaGVzZSB3b3JrIGhhbmRsZXJzIGFyZSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI1PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMDcxMjdlYTgwM2NmZWMxNDZkOWJlNjgzZDM4YWVlZGRhNjFhY2U1YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDMxIDAzOjI1OjQ0IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jIGIvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNcbmluZGV4IDU3ZjJkNmVjM2ZmYzYuLjk2YzlmZThkMzU3YzYgMTAwNjQ0XG4tLS0gYS9uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNcbkBAIC0zNDYsMTIgJiM0MzszNDYsMTMgQEAgc3RhdGljIHZvaWQgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbiBcdHN0cnVjdCB2aXJ0cXVldWUgKnZxO1xuIFx0Ym9vbCBhZGRlZCA9IGZhbHNlO1xuIFxuLVx0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfVFhdO1xuIFx0bXV0ZXhfbG9jayhcdTAwMjZ2c29jay1cdTAwM2V0eF9sb2NrKTtcbiBcbiBcdGlmICghdnNvY2stXHUwMDNldHhfcnVuKVxuIFx0XHRnb3RvIG91dDtcbiBcbiYjNDM7XHR2cSA9IHZzb2NrLVx1MDAzZXZxc1tWU09DS19WUV9UWF07XG4mIzQzO1xuIFx0ZG8ge1xuIFx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuIFx0XHR1bnNpZ25lZCBpbnQgbGVuO1xuQEAgLTQ1MSwxMyAmIzQzOzQ1MiwxMyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0XHRjb250YWluZXJfb2Yod29yaywgc3RydWN0IHZpcnRpb192c29jaywgZXZlbnRfd29yayk7XG4gXHRzdHJ1Y3QgdmlydHF1ZXVlICp2cTtcbiBcbi1cdHZxID0gdnNvY2stXHUwMDNldnFzW1ZTT0NLX1ZRX0VWRU5UXTtcbi1cbiBcdG11dGV4X2xvY2soXHUwMDI2dnNvY2stXHUwMDNlZXZlbnRfbG9jayk7XG4gXG4gXHRpZiAoIXZzb2NrLVx1MDAzZWV2ZW50X3J1bilcbiBcdFx0Z290byBvdXQ7XG4gXG4mIzQzO1x0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfRVZFTlRdO1xuJiM0MztcbiBcdGRvIHtcbiBcdFx0c3RydWN0IHZpcnRpb192c29ja19ldmVudCAqZXZlbnQ7XG4gXHRcdHVuc2lnbmVkIGludCBsZW47XG5AQCAtNjM0LDEyICYjNDM7NjM1LDEyIEBAIHN0YXRpYyB2b2lkIHZpcnRpb190cmFuc3BvcnRfcnhfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4gXHRcdGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdmlydGlvX3Zzb2NrLCByeF93b3JrKTtcbiBcdHN0cnVjdCB2aXJ0cXVldWUgKnZxO1xuIFxuLVx0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfUlhdO1xuLVxuIFx0bXV0ZXhfbG9jayhcdTAwMjZ2c29jay1cdTAwM2VyeF9sb2NrKTtcbiBcbiBcdGlmICghdnNvY2stXHUwMDNlcnhfcnVuKVxuLVx0XHRnb3RvIG91dDtcbiYjNDM7XHRcdGdvdG8gb3V0X25vZmlsbDtcbiYjNDM7XG4mIzQzO1x0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfUlhdO1xuIFxuIFx0ZG8ge1xuIFx0XHR2aXJ0cXVldWVfZGlzYWJsZV9jYih2cSk7XG5AQCAtNjkxLDYgJiM0Mzs2OTIsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIG91dDpcbiBcdGlmICh2c29jay1cdTAwM2VyeF9idWZfbnIgXHUwMDNjIHZzb2NrLVx1MDAzZXJ4X2J1Zl9tYXhfbnIgLyAyKVxuIFx0XHR2aXJ0aW9fdnNvY2tfcnhfZmlsbCh2c29jayk7XG4mIzQzO291dF9ub2ZpbGw6XG4gXHRtdXRleF91bmxvY2soXHUwMDI2dnNvY2stXHUwMDNlcnhfbG9jayk7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWU09DS0VUUyYjMzQ7LAogICAgJiMzNDtWSVJUSU9fVlNPQ0tFVFMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmsmIzM0OywKICAgICYjMzQ7dmlydGlvX3RyYW5zcG9ydF9ldmVudF93b3JrJiMzNDssCiAgICAmIzM0O3ZpcnRpb190cmFuc3BvcnRfcnhfd29yayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBudWxsLXBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdmlydGlvIHZzb2NrIHdvcmtxdWV1ZSBoYW5kbGVycyBieSBjaGVja2luZyB0aGUgYHJ1bmAgZmxhZ3MgYmVmb3JlIGFjY2Vzc2luZyB0aGUgdmlydHF1ZXVlcy4gVGhlc2Ugd29yayBoYW5kbGVycyBhcmUgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDA3MTI3ZWE4MDNjZmVjMTQ2ZDliZTY4M2QzOGFlZWRkYTYxYWNlNWEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAzMSAwMzoyNTo0NCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jIGIvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMKaW5kZXggNTdmMmQ2ZWMzZmZjNi4uOTZjOWZlOGQzNTdjNiAxMDA2NDQKLS0tIGEvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMKQEAgLTM0NiwxMiAmIzQzOzM0NiwxMyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXN0cnVjdCB2aXJ0cXVldWUgKnZxOwogCWJvb2wgYWRkZWQgPSBmYWxzZTsKIAotCXZxID0gdnNvY2stJmd0O3Zxc1tWU09DS19WUV9UWF07CiAJbXV0ZXhfbG9jaygmYW1wO3Zzb2NrLSZndDt0eF9sb2NrKTsKIAogCWlmICghdnNvY2stJmd0O3R4X3J1bikKIAkJZ290byBvdXQ7CiAKJiM0MzsJdnEgPSB2c29jay0mZ3Q7dnFzW1ZTT0NLX1ZRX1RYXTsKJiM0MzsKIAlkbyB7CiAJCXN0cnVjdCBza19idWZmICpza2I7CiAJCXVuc2lnbmVkIGludCBsZW47CkBAIC00NTEsMTMgJiM0Mzs0NTIsMTMgQEAgc3RhdGljIHZvaWQgdmlydGlvX3RyYW5zcG9ydF9ldmVudF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB2aXJ0aW9fdnNvY2ssIGV2ZW50X3dvcmspOwogCXN0cnVjdCB2aXJ0cXVldWUgKnZxOwogCi0JdnEgPSB2c29jay0mZ3Q7dnFzW1ZTT0NLX1ZRX0VWRU5UXTsKLQogCW11dGV4X2xvY2soJmFtcDt2c29jay0mZ3Q7ZXZlbnRfbG9jayk7CiAKIAlpZiAoIXZzb2NrLSZndDtldmVudF9ydW4pCiAJCWdvdG8gb3V0OwogCiYjNDM7CXZxID0gdnNvY2stJmd0O3Zxc1tWU09DS19WUV9FVkVOVF07CiYjNDM7CiAJZG8gewogCQlzdHJ1Y3QgdmlydGlvX3Zzb2NrX2V2ZW50ICpldmVudDsKIAkJdW5zaWduZWQgaW50IGxlbjsKQEAgLTYzNCwxMiAmIzQzOzYzNSwxMiBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IHZpcnRpb192c29jaywgcnhfd29yayk7CiAJc3RydWN0IHZpcnRxdWV1ZSAqdnE7CiAKLQl2cSA9IHZzb2NrLSZndDt2cXNbVlNPQ0tfVlFfUlhdOwotCiAJbXV0ZXhfbG9jaygmYW1wO3Zzb2NrLSZndDtyeF9sb2NrKTsKIAogCWlmICghdnNvY2stJmd0O3J4X3J1bikKLQkJZ290byBvdXQ7CiYjNDM7CQlnb3RvIG91dF9ub2ZpbGw7CiYjNDM7CiYjNDM7CXZxID0gdnNvY2stJmd0O3Zxc1tWU09DS19WUV9SWF07CiAKIAlkbyB7CiAJCXZpcnRxdWV1ZV9kaXNhYmxlX2NiKHZxKTsKQEAgLTY5MSw2ICYjNDM7NjkyLDcgQEAgc3RhdGljIHZvaWQgdmlydGlvX3RyYW5zcG9ydF9yeF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIG91dDoKIAlpZiAodnNvY2stJmd0O3J4X2J1Zl9uciAmbHQ7IHZzb2NrLSZndDtyeF9idWZfbWF4X25yIC8gMikKIAkJdmlydGlvX3Zzb2NrX3J4X2ZpbGwodnNvY2spOwomIzQzO291dF9ub2ZpbGw6CiAJbXV0ZXhfdW5sb2NrKCZhbXA7dnNvY2stJmd0O3J4X2xvY2spOwogfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1MzMKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAzNzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgVmlydGlvLVZTT0NLIFBhdGNoIGZvciBQb3RlbnRpYWwgVnVsbmVyYWJpbGl0aWVzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNgLiBJdCYjMzk7cyB0d2Vha2luZyBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29ya2AsIGFuZCBgdmlydGlvX3RyYW5zcG9ydF9yeF93b3JrYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSByZS1vcmRlcmluZyB0aGluZ3MuIFRoZSBhc3NpZ25tZW50IG9mIGB2cSA9IHZzb2NrLSZndDt2cXNbLi4uXWAgaXMgYmVpbmcgbW92ZWQgKmFmdGVyKiBhIGNoZWNrIGZvciB3aGV0aGVyIHRoZSB2c29jayBpcyBzdGlsbCBydW5uaW5nLiBJbiBgcnhfd29ya2AsIHRoZXJlJiMzOTtzIGFsc28gYSBgZ290b2AgY2hhbmdlLiBJbnN0ZWFkIG9mIGp1bXBpbmcgdG8gYG91dGAsIGl0IGp1bXBzIHRvIGBvdXRfbm9maWxsYCB3aGVuIHRoZSB2c29jayBpc24mIzM5O3QgcnVubmluZywgd2hpY2ggd2lsbCBza2lwIGNhbGxpbmcgdGhlIGB2aXJ0aW9fdnNvY2tfcnhfZmlsbCh2c29jaylgIGZ1bmN0aW9uLgoKTXkgaW5pdGlhbCB0aG91Z2h0PyBUaGlzIHNtZWxscyBsaWtlIGEgY2xhc3NpYyBtZW1vcnkgc2FmZXR5IGZpeC4gSXQmIzM5O3MgbGlrZWx5IGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGR1cmluZyB2c29jayB0ZWFyZG93bi4gQmFzaWNhbGx5LCBpZiB0aGUgdnNvY2sgaXMgYmVpbmcgc2h1dCBkb3duIGNvbmN1cnJlbnRseSwgdGhlIGB2c29jay0mZ3Q7dnFzYCBhcnJheSBtaWdodCBiZWNvbWUgaW52YWxpZCAob3IgaGF2ZSBhbHJlYWR5IGJlZW4gZnJlZWQpIGJlZm9yZSB0aG9zZSBlYXJsaWVyIGFzc2lnbm1lbnRzLiBNb3ZpbmcgdGhlIGFzc2lnbm1lbnQgKmFmdGVyKiB0aGUgcnVuLXN0YXRlIGNoZWNrIHByZXZlbnRzIHRoZSBjcmFzaCBieSBlbnN1cmluZyB3ZSYjMzk7cmUgb25seSBhY2Nlc3NpbmcgdGhvc2Ugc3RydWN0dXJlcyB3aGVuIHRoZSB2c29jayBpcyBzdGlsbCBhY3RpdmUuIFNtYXJ0LgoKSSBuZWVkIHRvIGNvbmZpcm0gaWYgSSBzZWUgdGhpcyBwYXRjaCwgc28gbGV0IG1lIGRvIGEgcXVpY2sgc2NhbiBvZiB0aGUgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG1vZGlmaWVkOiBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29ya2AsIGFuZCBgdmlydGlvX3RyYW5zcG9ydF9yeF93b3JrYC4gWWVhaCwgdGhlc2UgYXJlIGRlZmluaXRlbHkgd29ya3F1ZXVlIGhhbmRsZXJzIGZvciB2aXJ0aW8gdnNvY2suIFRoZXkmIzM5O3JlIGRlZmluaXRlbHkgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGxpa2UgUUVNVSB3aXRoIHZpcnRpby12c29jay4gU28gdGhlc2UgZnVuY3Rpb25zIGFyZSBnb29kIGNhbmRpZGF0ZXMgZm9yIGZ1enppbmcuCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlIGFib3V0IGdldHRpbmcgdGhlIHJpZ2h0IGNvbmZpZyBvcHRpb25zIHRvIHRyaWdnZXIgdGhlc2UgZnVuY3Rpb25zIGFuZCBnZXQgdGhlIHRlc3QgZW52IHNldHVwLiBXaGVyZSBhcmUgdGhlIGNvbmZpZyBvcHRpb25zIGZvciB2aXJ0aW8gdnNvY2sgZGVmaW5lZD8gYG5ldC92bXdfdnNvY2svS2NvbmZpZ2Agb3IgbWF5YmUgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2A/IFRpbWUgdG8gZmlndXJlIG91dCB3aGF0IGNvbmZpZyBvcHRpb25zIEkgbmVlZC4gSSYjMzk7bGwgZ3JlcCBmb3IgYHZpcnRpb190cmFuc3BvcnQuY2AgaW4gYG5ldC92bXdfdnNvY2svTWFrZWZpbGVgIHRvIHNlZSBpZiB0aGF0IGdpdmVzIG1lIGFueSBjbHVlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMzoyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2aXJ0aW9fdHJhbnNwb3J0Lm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdm13X3Zzb2NrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdm13X3Zzb2NrL01ha2VmaWxlPTQ9b2JqLSQoQ09ORklHX1ZNV0FSRV9WTUNJX1ZTT0NLRVRTKSAmIzQzOz0gdm13X3Zzb2NrX3ZtY2lfdHJhbnNwb3J0Lm9cbm5ldC92bXdfdnNvY2svTWFrZWZpbGU6NTpvYmotJChDT05GSUdfVklSVElPX1ZTT0NLRVRTKSAmIzQzOz0gdm13X3Zzb2NrX3ZpcnRpb190cmFuc3BvcnQub1xubmV0L3Ztd192c29jay9NYWtlZmlsZS02LW9iai0kKENPTkZJR19WSVJUSU9fVlNPQ0tFVFNfQ09NTU9OKSAmIzQzOz0gdm13X3Zzb2NrX3ZpcnRpb190cmFuc3BvcnRfY29tbW9uLm9cbi0tXG5uZXQvdm13X3Zzb2NrL01ha2VmaWxlPTE1PXZtd192c29ja192bWNpX3RyYW5zcG9ydC15ICYjNDM7PSB2bWNpX3RyYW5zcG9ydC5vIHZtY2lfdHJhbnNwb3J0X25vdGlmeS5vIFxcXG4tLVxubmV0L3Ztd192c29jay9NYWtlZmlsZS0xNy1cbm5ldC92bXdfdnNvY2svTWFrZWZpbGU6MTg6dm13X3Zzb2NrX3ZpcnRpb190cmFuc3BvcnQteSAmIzQzOz0gdmlydGlvX3RyYW5zcG9ydC5vXG5uZXQvdm13X3Zzb2NrL01ha2VmaWxlLTE5LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2NzkKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBWaXJ0aW8gdnNvY2tldHMgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCBzbyB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBgQ09ORklHX1ZJUlRJT19WU09DS0VUU2AuIFRoYXQmIzM5O3MgdGhlIGtleSB0byBlbmFibGluZyB2aXJ0aW8tYmFzZWQgdnNvY2tldCBzdXBwb3J0LiBNeSBpbW1lZGlhdGUgbmV4dCBzdGVwIGlzIHRvIGRyaWxsIGRvd24gaW50byBpdHMgZGVwZW5kZW5jaWVzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IG90aGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpdCByZWxpZXMgb24g4oCTIGtlcm5lbCBmZWF0dXJlcywgb3RoZXIgdmlydGlvIGRldmljZSBzdXBwb3J0LCBwZXJoYXBzIHNwZWNpZmljIG5ldHdvcmtpbmcgaW5mcmFzdHJ1Y3R1cmUgZWxlbWVudHMuIEEgZGVlcCBkaXZlIGludG8gZGVwZW5kZW5jaWVzIGlzIGNydWNpYWwgYmVjYXVzZSBJIG5lZWQgdG8gZ3Jhc3AgdGhlIGZ1bGwgaW1wbGljYXRpb25zIG9mIGVuYWJsaW5nIHRoaXMgYW5kIGhvdyBpdCBmaXRzIGludG8gdGhlIGJyb2FkZXIgc3lzdGVtIGFyY2hpdGVjdHVyZS4gSXQmIzM5O3MgYWxsIGFib3V0IGVuc3VyaW5nIGNvbXBhdGliaWxpdHkgYW5kIGF2b2lkaW5nIGFueSB1bmV4cGVjdGVkIGNvbmZsaWN0cyBkb3duIHRoZSBsaW5lLCBlc3BlY2lhbGx5IGluIGEgY29tcGxleCBlbnZpcm9ubWVudC4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoZSBLY29uZmlnIGZpbGVzIHJldmVhbC4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBWSVJUSU9fVlNPQ0tFVFMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdm13X3Zzb2NrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdm13X3Zzb2NrL0tjb25maWc9NDE9Y29uZmlnIFZNV0FSRV9WTUNJX1ZTT0NLRVRTXG4tLVxubmV0L3Ztd192c29jay9LY29uZmlnLTUyLVxubmV0L3Ztd192c29jay9LY29uZmlnOjUzOmNvbmZpZyBWSVJUSU9fVlNPQ0tFVFNcbm5ldC92bXdfdnNvY2svS2NvbmZpZy01NC1cdHRyaXN0YXRlIFwmIzM0O3ZpcnRpbyB0cmFuc3BvcnQgZm9yIFZpcnR1YWwgU29ja2V0c1wmIzM0O1xuLS1cbm5ldC92bXdfdnNvY2svS2NvbmZpZy02NS1cbm5ldC92bXdfdnNvY2svS2NvbmZpZzo2Njpjb25maWcgVklSVElPX1ZTT0NLRVRTX0NPTU1PTlxubmV0L3Ztd192c29jay9LY29uZmlnLTY3LVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMzoyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDc4CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipLY29uZmlnIEV4cGxvcmF0aW9uKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSSYjMzk7bSB0aGlua2luZyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgYHZtd192c29ja2AgbW9kdWxlLCBsaWtlbHkgaW4gdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0uIEkmIzM5O20gZ29pbmcgdG8gcGlucG9pbnQgdGhlIGBLY29uZmlnYCBmaWxlIHdpdGhpbiB0aGUgYG5ldC92bXdfdnNvY2tgIGRpcmVjdG9yeSwgZm9jdXNpbmcgb24gb3IgYXJvdW5kIGxpbmUgNTMuIEkmIzM5O20gZXhwZWN0aW5nIHRoaXMgZmlsZSB0byBkZWZpbmUgdGhlIGJ1aWxkLXRpbWUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLCBkZXBlbmRlbmNpZXMsIGFuZCBoZWxwIHRleHQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdmlydHVhbCBzb2NrZXQgaW1wbGVtZW50YXRpb24uIE15IGdvYWwgaXMgbGlrZWx5IHRvIGlkZW50aWZ5IHRoZSBrZXkgc2V0dGluZ3MsIHBlcmhhcHMgcmVsYXRlZCB0byBmZWF0dXJlcywgZGVidWdnaW5nIG9wdGlvbnMsIG9yIGhhcmR3YXJlIHN1cHBvcnQsIHRoYXQgSSBtaWdodCBuZWVkIHRvIGNvbnNpZGVyIG9yIG1vZGlmeS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBjb250cm9sbGFibGUgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC92bXdfdnNvY2svS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDUwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNTA6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxuICA1MTpcdFx0ICB3aWxsIGJlIGNhbGxlZCB2bXdfdnNvY2tfdm1jaV90cmFuc3BvcnQuIElmIHVuc3VyZSwgc2F5IE4uXG4gIDUyOlx0XG4gIDUzOlx0Y29uZmlnIFZJUlRJT19WU09DS0VUU1xuICA1NDpcdFx0dHJpc3RhdGUgXCYjMzQ7dmlydGlvIHRyYW5zcG9ydCBmb3IgVmlydHVhbCBTb2NrZXRzXCYjMzQ7XG4gIDU1Olx0XHRkZXBlbmRzIG9uIFZTT0NLRVRTIFx1MDAyNlx1MDAyNiBWSVJUSU9cbiAgNTY6XHRcdHNlbGVjdCBWSVJUSU9fVlNPQ0tFVFNfQ09NTU9OXG4gIDU3Olx0XHRoZWxwXG4gIDU4Olx0XHQgIFRoaXMgbW9kdWxlIGltcGxlbWVudHMgYSB2aXJ0aW8gdHJhbnNwb3J0IGZvciBWaXJ0dWFsIFNvY2tldHMuXG4gIDU5Olx0XG4gIDYwOlx0XHQgIEVuYWJsZSB0aGlzIHRyYW5zcG9ydCBpZiB5b3VyIFZpcnR1YWwgTWFjaGluZSBob3N0IHN1cHBvcnRzIFZpcnR1YWxcbiAgNjE6XHRcdCAgU29ja2V0cyBvdmVyIHZpcnRpby5cbiAgNjI6XHRcbiAgNjM6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsIGJlXG4gIDY0Olx0XHQgIGNhbGxlZCB2bXdfdnNvY2tfdmlydGlvX3RyYW5zcG9ydC4gSWYgdW5zdXJlLCBzYXkgTi5cbiAgNjU6XHRcbiAgNjY6XHRjb25maWcgVklSVElPX1ZTT0NLRVRTX0NPTU1PTlxuICA2NzpcdFx0dHJpc3RhdGVcbiAgNjg6XHRcdGhlbHBcbiAgNjk6XHRcdCAgVGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQgYnkgYW55IGRyaXZlciB3aGljaCBuZWVkcyB0byBhY2Nlc3NcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMzoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTk5CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTgyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVmlydGlvLVZTT0NLIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHJlbGF0ZWQgdG8gVmlydGlvLVZTT0NLLCBhbmQgaW1tZWRpYXRlbHkgbXkgbWluZCBqdW1wcyB0byB0aGUgZGVwZW5kZW5jaWVzLiBJIHNlZSBtZW50aW9uIG9mIGBWU09DS0VUU2AgYW5kIGBWSVJUSU9gLCBhbmQgYFZJUlRJT19WU09DS0VUU2AgaXMgb2J2aW91c2x5IGltcGxpY2F0ZWQuIEkmIzM5O2xsIG1ha2UgYSBtZW50YWwgbm90ZSB0aGF0IGFsbCB0aHJlZSBvZiB0aGVzZSBzaG91bGQgYmUgZW5hYmxlZCwgdGhvdWdoIEkgYWxtb3N0IGFsd2F5cyBzZWUgYFZJUlRJT2AgZW5hYmxlZCBieSBkZWZhdWx0IGFueXdheS4KCk5vdywgdGhlIHBhdGNoIGxpc3RzIGEgZmV3IG1vZGlmaWVkIGZ1bmN0aW9uczogYHZpcnRpb190cmFuc3BvcnRfdHhfd29ya2AsIGB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtgLCBhbmQgYHZpcnRpb190cmFuc3BvcnRfcnhfd29ya2AuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIGNvcmUgY2hhbmdlcyBhcmUgbGlrZWx5IGhhcHBlbmluZywgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlbS4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gY2hlY2sgaWYgdGhlc2UgYXJlIHN0YXRpYyBmdW5jdGlvbnMuIElmIHRoZXkgKmFyZSosIHRoZXkgbWF5IG5vdCBiZSB0aGUgbW9zdCBpbXBvcnRhbnQgc3ltYm9scyB0byBmb2N1cyBvbiwgYXMgdGhleSBoYXZlIGxpbWl0ZWQgdmlzaWJpbGl0eS4KCkFscmlnaHQsIHRoZSBwYXRjaCBjb25maXJtcyBteSBzdXNwaWNpb246IHRoZXNlIGZ1bmN0aW9ucyAqYXJlKiBkZWNsYXJlZCBhcyBgc3RhdGljYC4gU2luY2UgdGhleSYjMzk7cmUgc3RhdGljLCB0aGUgcmVhbCBxdWVzdGlvbiBiZWNvbWVzIHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZC4gS25vd2luZyB0aGUgY29udGV4dCBvZiB0aGVpciB1c2FnZSB3aWxsIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBwYXRjaCYjMzk7cyBvdmVyYWxsIGltcGFjdC4gSSYjMzk7bGwgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIGNvZGUgdG8gZGV0ZXJtaW5lIHRoZSBjYWxsIHNpdGVzIGFuZCBob3cgdGhlIGNoYW5nZXMgYWZmZWN0IHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDM6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7SU5JVF9XT1JLLip2aXJ0aW9fdHJhbnNwb3J0Xy4qX3dvcmsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdm13X3Zzb2NrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYz04MDA9c3RhdGljIGludCB2aXJ0aW9fdnNvY2tfcHJvYmUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpXG4tLVxubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMtODI5LVx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZ2c29jay1cdTAwM2VzZW5kX3BrdF9xdWV1ZSk7XG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzo4MzA6XHRJTklUX1dPUksoXHUwMDI2dnNvY2stXHUwMDNlcnhfd29yaywgdmlydGlvX3RyYW5zcG9ydF9yeF93b3JrKTtcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjgzMTpcdElOSVRfV09SSyhcdTAwMjZ2c29jay1cdTAwM2V0eF93b3JrLCB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmspO1xubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6ODMyOlx0SU5JVF9XT1JLKFx1MDAyNnZzb2NrLVx1MDAzZWV2ZW50X3dvcmssIHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29yayk7XG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzo4MzM6XHRJTklUX1dPUksoXHUwMDI2dnNvY2stXHUwMDNlc2VuZF9wa3Rfd29yaywgdmlydGlvX3RyYW5zcG9ydF9zZW5kX3BrdF93b3JrKTtcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTgzNC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDM6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTM3MgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzLCB3aXRoIHRoZSBib2xkZWQgaGVhZGVyIGFzIHJlcXVlc3RlZDoKCioqRGVjb25zdHJ1Y3RpbmcgQXN5bmNocm9ub3VzIFdvcmtxdWV1ZSBIYW5kbGVycyBpbiBWaXJ0aW8tVlNPQ0sqKgoKUmlnaHQsIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggd29ya3F1ZXVlIGhhbmRsZXJzIGhlcmUuIFRoZSBrZXkgcG9pbnQgaXMgdGhhdCB0aGV5JiMzOTtyZSAqYXN5bmNocm9ub3VzKiwgbWVhbmluZyB0aGV5JiMzOTtyZSBub3QgZXhlY3V0ZWQgaW1tZWRpYXRlbHkgaW4gdGhlIGN1cnJlbnQgY29udGV4dC4gVGhhdCBpbXBsaWVzIGEgZGVsYXksIHBvc3NpYmx5IGJhc2VkIG9uIHNvbWUgZXZlbnQgb3Igc2NoZWR1bGluZyBkZWNpc2lvbi4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzOiB3aGF0IGFjdHVhbGx5IGtpY2tzIHRoZXNlIGhhbmRsZXJzIGludG8gYWN0aW9uPyBXaGF04oCZcyB0aGUgdHJpZ2dlcj8KCkxldCYjMzk7cyBzZWXigKYgQWgsICpgdmlydGlvX3Zzb2NrX3Byb2JlYCogaW5pdGlhbGl6ZXMgdGhlbS4gVGhhdOKAmXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBTbywgdGhlIHByb2JlIGZ1bmN0aW9uIHNldHMgdGhlbSB1cCwgYnV0IGRvZXNuJiMzOTt0IG5lY2Vzc2FyaWx5ICpydW4qIHRoZW0uIE15IGZvY3VzIG5vdyBzaGlmdHMgdG8gZmlndXJpbmcgb3V0IHdoYXQgZXZlbnRzIG9yIGNvZGUgcGF0aHMgYWN0dWFsbHkgKnF1ZXVlKiB0aGVzZSBoYW5kbGVycy4gVW5kZXJzdGFuZGluZyB0aGUgcXVldWluZyBtZWNoYW5pc20gaXMgY3JpdGljYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgd29ya2Zsb3csIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMsIGFuZCBvdmVyYWxsIHBlcmZvcm1hbmNlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGlzIFZpcnRpby1WU09DSyBpbXBsZW1lbnRhdGlvbi4gSSBuZWVkIHRvIHRyYWNlIHRoZSBjYWxsIHBhdGhzIGZyb20gYHZpcnRpb192c29ja19wcm9iZWAgYW5kIGlkZW50aWZ5IHRoZSBmdW5jdGlvbnMgcmVzcG9uc2libGUgZm9yIHN1Ym1pdHRpbmcgdGhlIHdvcmsgdG8gdGhlIHF1ZXVlLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSByZWFsIG1lYXQgb2YgdGhlIG9wZXJhdGlvbiBsaWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtxdWV1ZV93b3JrLipyeF93b3JrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3Ztd192c29jay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM9MTU4PXZpcnRpb190cmFuc3BvcnRfc2VuZF9wa3Rfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMtMjEwLVx0aWYgKHJlc3RhcnRfcngpXG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzoyMTE6XHRcdHF1ZXVlX3dvcmsodmlydGlvX3Zzb2NrX3dvcmtxdWV1ZSwgXHUwMDI2dnNvY2stXHUwMDNlcnhfd29yayk7XG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYy0yMTItfVxuLS1cbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jPTI4MD12aXJ0aW9fdHJhbnNwb3J0X2NhbmNlbF9wa3Qoc3RydWN0IHZzb2NrX3NvY2sgKnZzaylcbi0tXG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYy0zMDAtXHRcdCAgICBuZXdfY250IFx1MDAzYyB2aXJ0cXVldWVfZ2V0X3ZyaW5nX3NpemUocnhfdnEpKVxubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6MzAxOlx0XHRcdHF1ZXVlX3dvcmsodmlydGlvX3Zzb2NrX3dvcmtxdWV1ZSwgXHUwMDI2dnNvY2stXHUwMDNlcnhfd29yayk7XG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYy0zMDItXHR9XG4tLVxubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM9NDk4PXN0YXRpYyB2b2lkIHZpcnRpb192c29ja19yeF9kb25lKHN0cnVjdCB2aXJ0cXVldWUgKnZxKVxuLS1cbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTUwMy1cdFx0cmV0dXJuO1xubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6NTA0Olx0cXVldWVfd29yayh2aXJ0aW9fdnNvY2tfd29ya3F1ZXVlLCBcdTAwMjZ2c29jay1cdTAwM2VyeF93b3JrKTtcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTUwNS19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYxMTIKCQkJCQkJCW91dHB1dDogMTMyCgkJCQkJCQl0aG91Z2h0czogNTA4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVmlydGlvIFZTb2NrIFBhdGNoIGZvciBGdXp6aW5nIE9wcG9ydHVuaXRpZXMqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGlkZW50aWZ5IHRoZSBrZXkgZnVuY3Rpb25zIG9yIGNvZGUgcGF0aHMgYWZmZWN0ZWQgYnkgdGhpcyBwYXRjaC4gIGB2aXJ0aW9fdnNvY2tfcnhfZG9uZWAgaXMgdGhlIHByaW1hcnkgdmlydHF1ZXVlIGNhbGxiYWNrOyB0aGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4gIGB2aXJ0aW9fdnNvY2tfdHhfZG9uZWAgYW5kIGB2aXJ0aW9fdnNvY2tfZXZlbnRfZG9uZWAgbGlrZWx5IHF1ZXVlIG90aGVyIHdvcmsuICBTaW5jZSB0aGVzZSB3b3JrIGhhbmRsZXJzIGFyZSBzdGF0aWMsIG15IGZpcnN0IGluY2xpbmF0aW9uIGlzIHRvIHplcm8gaW4gb24gKndoZXJlKiB0aGV5JiMzOTtyZSBxdWV1ZWQsIG9yIHBvc3NpYmx5IHRoZSBoYW5kbGVycyB0aGVtc2VsdmVzIGlmIHRoZXkmIzM5O3JlIHN1YnN0YW50aWFsLgoKQWhhLCB0aGUgd29yayBoYW5kbGVycyBhcmUgcGFzc2VkIGFzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIGBJTklUX1dPUktgLiAgVGhhdCYjMzk7cyBpbXBvcnRhbnQuICBCZWNhdXNlIHRoZWlyIGFkZHJlc3NlcyBhcmUgdGFrZW4sIHRoZSBjb21waWxlciBjYW4mIzM5O3QgaW5saW5lIHRoZW0uICBUaGVyZWZvcmUsIGB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmtgLCBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYW5kIGB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtgIHdpbGwgZGVmaW5pdGVseSBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgYW5kIHRoYXQgdGhleSBhcmUgd29ydGggaW52ZXN0aWdhdGluZy4gTGV0IG1lIHF1aWNrbHkgdmVyaWZ5IHRoZXkgYXJlIGluIGB2aXJ0aW9fdHJhbnNwb3J0LmNgLiBZZXAsIHRoZXJlIHRoZXkgYXJlLgoKTm93LCBsZXQgbWUgZG91YmxlIGNoZWNrIHRoYXQgdGhpcyBpcyB0aGUgZnVsbCBwaWN0dXJlLiBUaGUgcGF0Y2ggbW9kaWZpZXMgdGhvc2Ugd29yayBoYW5kbGVycyBkaXJlY3RseS4gVGhhdCBjb25maXJtcyBteSBmb2N1cyBpcyBjb3JyZWN0bHkgcGxhY2VkIG9uIGB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmtgLCBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYW5kIGB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtgLgoKTmV4dCwgSSBuZWVkIHRvIGNoZWNrIGZvciByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIEFoLCBgVlNPQ0tFVFNgIGFuZCBgVklSVElPX1ZTT0NLRVRTYC4gR290IGl0LgoKQW55dGhpbmcgZWxzZSBvZiBub3RlPyAgVGhlIHBhdGNoIGlzIHdpdGhpbiBgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNgLiAgVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlbGF0ZWQgdG8gdmlydGlvIHZzb2NrLiBTcGVjaWZpY2FsbHksIGl0IGd1YXJkcyBhZ2FpbnN0IGEgcG90ZW50aWFsIGJ1ZyB3aGVyZSBgdnNvY2stJmd0O3Zxc1tWU09DS19WUV9UWF1gIGlzIGFjY2Vzc2VkIHdpdGhvdXQgZmlyc3QgY2hlY2tpbmcgYHZzb2NrLSZndDt0eF9ydW5gLiAgSWYgYHZzb2NrLSZndDt0eF9ydW5gIGlzIGZhbHNlLCBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgdnNvY2sgaXMgYmVpbmcgcmVtb3ZlZCBvciBpcyBub3QgZnVsbHkgaW5pdGlhbGl6ZWQsIG1ha2luZyB0aGUgYHZxc2AgcG9pbnRlciBwb3RlbnRpYWxseSBpbnZhbGlkIG9yIE5VTEwuIFRoaXMgaXMgYSBjbGFzc2ljIGNvbmN1cnJlbmN5IGJ1ZywgYW5kIGRlZmluaXRlbHkgYSBnb29kIHRhcmdldC4KClRoZXJlZm9yZSwgZm9yIGZ1enppbmcsIEkmIzM5O2xsIHNldDoKCiogICAqKldvcnRoRnV6emluZzogdHJ1ZSoqIC0gRGVmaW5pdGVseSB3b3J0aCB0aGUgZWZmb3J0LgoqICAgKipGb2N1c1N5bWJvbHM6IGB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmtgLCBgdmlydGlvX3RyYW5zcG9ydF9ldmVudF93b3JrYCwgYHZpcnRpb190cmFuc3BvcnRfcnhfd29ya2AqKiAtIFRoZXNlIHdvcmsgaGFuZGxlcnMgYXJlIHRoZSBjb3JlIG9mIHRoZSBmaXggYW5kIHNob3VsZCBiZSBvdXIgcHJpbWFyeSB0YXJnZXRzLgoqICAgKipFbmFibGVDb25maWdzOiBgVlNPQ0tFVFNgLCBgVklSVElPX1ZTT0NLRVRTYCoqIC0gV2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGVzZSBjb25maWd1cmF0aW9ucyBhcmUgZW5hYmxlZCBmb3IgdGhpcyBjb2RlIHRvIGJlIGNvbXBpbGVkIGFuZCBleGVyY2lzZWQuCiogICAqKlJlYXNvbmluZzoqKiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlIHZ1bG5lcmFiaWxpdHkgd2l0aGluIHZpcnRpbyB2c29jayYjMzk7cyB3b3JrcXVldWUgaGFuZGxlcnMuIEl0IGVuZm9yY2VzIGEgY3JpdGljYWwgYHJ1bmAgZmxhZyBjaGVjayBiZWZvcmUgYWNjZXNzaW5nIHRoZSB2aXJ0cXVldWVzLCB3aGljaCBhcmUgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGh1cywgZnV6emluZyB0aGVzZSB3b3JrIGhhbmRsZXJzIGlzIGNydWNpYWwgZm9yIHZlcmlmeWluZyB0aGUgZml4IGFuZCBlbnN1cmluZyB0aGUgc3RhYmlsaXR5IG9mIHZpcnRpbyB2c29jay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDM6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZTT0NLRVRTJiMzNDssCiAgICAmIzM0O1ZJUlRJT19WU09DS0VUUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZpcnRpb190cmFuc3BvcnRfdHhfd29yayYjMzQ7LAogICAgJiMzNDt2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmsmIzM0OywKICAgICYjMzQ7dmlydGlvX3RyYW5zcG9ydF9yeF93b3JrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB2aXJ0aW8gdnNvY2sgd29ya3F1ZXVlIGhhbmRsZXJzIGJ5IGNoZWNraW5nIHRoZSBgcnVuYCBmbGFncyBiZWZvcmUgYWNjZXNzaW5nIHRoZSB2aXJ0cXVldWVzLiBUaGVzZSB3b3JrIGhhbmRsZXJzIGFyZSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWU09DS0VUUyYjMzQ7LAogICAgJiMzNDtWSVJUSU9fVlNPQ0tFVFMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmsmIzM0OywKICAgICYjMzQ7dmlydGlvX3RyYW5zcG9ydF9ldmVudF93b3JrJiMzNDssCiAgICAmIzM0O3ZpcnRpb190cmFuc3BvcnRfcnhfd29yayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBudWxsLXBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdmlydGlvIHZzb2NrIHdvcmtxdWV1ZSBoYW5kbGVycyBieSBjaGVja2luZyB0aGUgYHJ1bmAgZmxhZ3MgYmVmb3JlIGFjY2Vzc2luZyB0aGUgdmlydHF1ZXVlcy4gVGhlc2Ugd29yayBoYW5kbGVycyBhcmUgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAzOjI1OjQ1LjU0OTExNzkyNloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyNjI5NDMxNjYxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWU09DS0VUU1wiLFxuICAgIFwiVklSVElPX1ZTT0NLRVRTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmlydGlvX3RyYW5zcG9ydF90eF93b3JrXCIsXG4gICAgXCJ2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtcIixcbiAgICBcInZpcnRpb190cmFuc3BvcnRfcnhfd29ya1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB2aXJ0aW8gdnNvY2sgd29ya3F1ZXVlIGhhbmRsZXJzIGJ5IGNoZWNraW5nIHRoZSBgcnVuYCBmbGFncyBiZWZvcmUgYWNjZXNzaW5nIHRoZSB2aXJ0cXVldWVzLiBUaGVzZSB3b3JrIGhhbmRsZXJzIGFyZSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMzoyNTo0NS41NDkxMjQyODZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5ODcwOTA2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDA3MTI3ZWE4MDNjZmVjMTQ2ZDliZTY4M2QzOGFlZWRkYTYxYWNlNWFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMzEgMDM6MjU6NDQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMgYi9uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuY1xcbmluZGV4IDU3ZjJkNmVjM2ZmYzYuLjk2YzlmZThkMzU3YzYgMTAwNjQ0XFxuLS0tIGEvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNcXG4rKysgYi9uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuY1xcbkBAIC0zNDYsMTIgKzM0NiwxMyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbiBcXHRzdHJ1Y3QgdmlydHF1ZXVlICp2cTtcXG4gXFx0Ym9vbCBhZGRlZCA9IGZhbHNlO1xcbiBcXG4tXFx0dnEgPSB2c29jay1cXHUwMDNldnFzW1ZTT0NLX1ZRX1RYXTtcXG4gXFx0bXV0ZXhfbG9jayhcXHUwMDI2dnNvY2stXFx1MDAzZXR4X2xvY2spO1xcbiBcXG4gXFx0aWYgKCF2c29jay1cXHUwMDNldHhfcnVuKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFxuK1xcdHZxID0gdnNvY2stXFx1MDAzZXZxc1tWU09DS19WUV9UWF07XFxuK1xcbiBcXHRkbyB7XFxuIFxcdFxcdHN0cnVjdCBza19idWZmICpza2I7XFxuIFxcdFxcdHVuc2lnbmVkIGludCBsZW47XFxuQEAgLTQ1MSwxMyArNDUyLDEzIEBAIHN0YXRpYyB2b2lkIHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuIFxcdFxcdGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdmlydGlvX3Zzb2NrLCBldmVudF93b3JrKTtcXG4gXFx0c3RydWN0IHZpcnRxdWV1ZSAqdnE7XFxuIFxcbi1cXHR2cSA9IHZzb2NrLVxcdTAwM2V2cXNbVlNPQ0tfVlFfRVZFTlRdO1xcbi1cXG4gXFx0bXV0ZXhfbG9jayhcXHUwMDI2dnNvY2stXFx1MDAzZWV2ZW50X2xvY2spO1xcbiBcXG4gXFx0aWYgKCF2c29jay1cXHUwMDNlZXZlbnRfcnVuKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFxuK1xcdHZxID0gdnNvY2stXFx1MDAzZXZxc1tWU09DS19WUV9FVkVOVF07XFxuK1xcbiBcXHRkbyB7XFxuIFxcdFxcdHN0cnVjdCB2aXJ0aW9fdnNvY2tfZXZlbnQgKmV2ZW50O1xcbiBcXHRcXHR1bnNpZ25lZCBpbnQgbGVuO1xcbkBAIC02MzQsMTIgKzYzNSwxMiBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbiBcXHRcXHRjb250YWluZXJfb2Yod29yaywgc3RydWN0IHZpcnRpb192c29jaywgcnhfd29yayk7XFxuIFxcdHN0cnVjdCB2aXJ0cXVldWUgKnZxO1xcbiBcXG4tXFx0dnEgPSB2c29jay1cXHUwMDNldnFzW1ZTT0NLX1ZRX1JYXTtcXG4tXFxuIFxcdG11dGV4X2xvY2soXFx1MDAyNnZzb2NrLVxcdTAwM2VyeF9sb2NrKTtcXG4gXFxuIFxcdGlmICghdnNvY2stXFx1MDAzZXJ4X3J1bilcXG4tXFx0XFx0Z290byBvdXQ7XFxuK1xcdFxcdGdvdG8gb3V0X25vZmlsbDtcXG4rXFxuK1xcdHZxID0gdnNvY2stXFx1MDAzZXZxc1tWU09DS19WUV9SWF07XFxuIFxcbiBcXHRkbyB7XFxuIFxcdFxcdHZpcnRxdWV1ZV9kaXNhYmxlX2NiKHZxKTtcXG5AQCAtNjkxLDYgKzY5Miw3IEBAIHN0YXRpYyB2b2lkIHZpcnRpb190cmFuc3BvcnRfcnhfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuIG91dDpcXG4gXFx0aWYgKHZzb2NrLVxcdTAwM2VyeF9idWZfbnIgXFx1MDAzYyB2c29jay1cXHUwMDNlcnhfYnVmX21heF9uciAvIDIpXFxuIFxcdFxcdHZpcnRpb192c29ja19yeF9maWxsKHZzb2NrKTtcXG4rb3V0X25vZmlsbDpcXG4gXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ2c29jay1cXHUwMDNlcnhfbG9jayk7XFxuIH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAzOjI1OjQ2LjA0ODQ1Nzg2NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjIyNTc5NDk2NDc5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWU09DS0VUU1wiLFxuICAgIFwiVklSVElPX1ZTT0NLRVRTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmlydGlvX3RyYW5zcG9ydF90eF93b3JrXCIsXG4gICAgXCJ2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtcIixcbiAgICBcInZpcnRpb190cmFuc3BvcnRfcnhfd29ya1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB2aXJ0aW8gdnNvY2sgd29ya3F1ZXVlIGhhbmRsZXJzIGJ5IGNoZWNraW5nIHRoZSBgcnVuYCBmbGFncyBiZWZvcmUgYWNjZXNzaW5nIHRoZSB2aXJ0cXVldWVzLiBUaGVzZSB3b3JrIGhhbmRsZXJzIGFyZSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwNzEyN2VhODAzY2ZlYzE0NmQ5YmU2ODNkMzhhZWVkZGE2MWFjZTVhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMzEgMDM6MjU6NDQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYyBiL25ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jXG5pbmRleCA1N2YyZDZlYzNmZmM2Li45NmM5ZmU4ZDM1N2M2IDEwMDY0NFxuLS0tIGEvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNcbisrKyBiL25ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jXG5AQCAtMzQ2LDEyICszNDYsMTMgQEAgc3RhdGljIHZvaWQgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbiBcdHN0cnVjdCB2aXJ0cXVldWUgKnZxO1xuIFx0Ym9vbCBhZGRlZCA9IGZhbHNlO1xuIFxuLVx0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfVFhdO1xuIFx0bXV0ZXhfbG9jayhcdTAwMjZ2c29jay1cdTAwM2V0eF9sb2NrKTtcbiBcbiBcdGlmICghdnNvY2stXHUwMDNldHhfcnVuKVxuIFx0XHRnb3RvIG91dDtcbiBcbitcdHZxID0gdnNvY2stXHUwMDNldnFzW1ZTT0NLX1ZRX1RYXTtcbitcbiBcdGRvIHtcbiBcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbiBcdFx0dW5zaWduZWQgaW50IGxlbjtcbkBAIC00NTEsMTMgKzQ1MiwxMyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0XHRjb250YWluZXJfb2Yod29yaywgc3RydWN0IHZpcnRpb192c29jaywgZXZlbnRfd29yayk7XG4gXHRzdHJ1Y3QgdmlydHF1ZXVlICp2cTtcbiBcbi1cdHZxID0gdnNvY2stXHUwMDNldnFzW1ZTT0NLX1ZRX0VWRU5UXTtcbi1cbiBcdG11dGV4X2xvY2soXHUwMDI2dnNvY2stXHUwMDNlZXZlbnRfbG9jayk7XG4gXG4gXHRpZiAoIXZzb2NrLVx1MDAzZWV2ZW50X3J1bilcbiBcdFx0Z290byBvdXQ7XG4gXG4rXHR2cSA9IHZzb2NrLVx1MDAzZXZxc1tWU09DS19WUV9FVkVOVF07XG4rXG4gXHRkbyB7XG4gXHRcdHN0cnVjdCB2aXJ0aW9fdnNvY2tfZXZlbnQgKmV2ZW50O1xuIFx0XHR1bnNpZ25lZCBpbnQgbGVuO1xuQEAgLTYzNCwxMiArNjM1LDEyIEBAIHN0YXRpYyB2b2lkIHZpcnRpb190cmFuc3BvcnRfcnhfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4gXHRcdGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdmlydGlvX3Zzb2NrLCByeF93b3JrKTtcbiBcdHN0cnVjdCB2aXJ0cXVldWUgKnZxO1xuIFxuLVx0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfUlhdO1xuLVxuIFx0bXV0ZXhfbG9jayhcdTAwMjZ2c29jay1cdTAwM2VyeF9sb2NrKTtcbiBcbiBcdGlmICghdnNvY2stXHUwMDNlcnhfcnVuKVxuLVx0XHRnb3RvIG91dDtcbitcdFx0Z290byBvdXRfbm9maWxsO1xuK1xuK1x0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfUlhdO1xuIFxuIFx0ZG8ge1xuIFx0XHR2aXJ0cXVldWVfZGlzYWJsZV9jYih2cSk7XG5AQCAtNjkxLDYgKzY5Miw3IEBAIHN0YXRpYyB2b2lkIHZpcnRpb190cmFuc3BvcnRfcnhfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4gb3V0OlxuIFx0aWYgKHZzb2NrLVx1MDAzZXJ4X2J1Zl9uciBcdTAwM2MgdnNvY2stXHUwMDNlcnhfYnVmX21heF9uciAvIDIpXG4gXHRcdHZpcnRpb192c29ja19yeF9maWxsKHZzb2NrKTtcbitvdXRfbm9maWxsOlxuIFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnZzb2NrLVx1MDAzZXJ4X2xvY2spO1xuIH1cbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAzOjI1OjQ2LjA0ODQ1OTAwNloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyMTg2MTM2MDYyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBWaXJ0aW8tVlNPQ0sgUGF0Y2ggZm9yIFBvdGVudGlhbCBWdWxuZXJhYmlsaXRpZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNgLiBJdCdzIHR3ZWFraW5nIGB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmtgLCBgdmlydGlvX3RyYW5zcG9ydF9ldmVudF93b3JrYCwgYW5kIGB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmtgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIHJlLW9yZGVyaW5nIHRoaW5ncy4gVGhlIGFzc2lnbm1lbnQgb2YgYHZxID0gdnNvY2stXHUwMDNldnFzWy4uLl1gIGlzIGJlaW5nIG1vdmVkICphZnRlciogYSBjaGVjayBmb3Igd2hldGhlciB0aGUgdnNvY2sgaXMgc3RpbGwgcnVubmluZy4gSW4gYHJ4X3dvcmtgLCB0aGVyZSdzIGFsc28gYSBgZ290b2AgY2hhbmdlLiBJbnN0ZWFkIG9mIGp1bXBpbmcgdG8gYG91dGAsIGl0IGp1bXBzIHRvIGBvdXRfbm9maWxsYCB3aGVuIHRoZSB2c29jayBpc24ndCBydW5uaW5nLCB3aGljaCB3aWxsIHNraXAgY2FsbGluZyB0aGUgYHZpcnRpb192c29ja19yeF9maWxsKHZzb2NrKWAgZnVuY3Rpb24uXG5cbk15IGluaXRpYWwgdGhvdWdodD8gVGhpcyBzbWVsbHMgbGlrZSBhIGNsYXNzaWMgbWVtb3J5IHNhZmV0eSBmaXguIEl0J3MgbGlrZWx5IGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGR1cmluZyB2c29jayB0ZWFyZG93bi4gQmFzaWNhbGx5LCBpZiB0aGUgdnNvY2sgaXMgYmVpbmcgc2h1dCBkb3duIGNvbmN1cnJlbnRseSwgdGhlIGB2c29jay1cdTAwM2V2cXNgIGFycmF5IG1pZ2h0IGJlY29tZSBpbnZhbGlkIChvciBoYXZlIGFscmVhZHkgYmVlbiBmcmVlZCkgYmVmb3JlIHRob3NlIGVhcmxpZXIgYXNzaWdubWVudHMuIE1vdmluZyB0aGUgYXNzaWdubWVudCAqYWZ0ZXIqIHRoZSBydW4tc3RhdGUgY2hlY2sgcHJldmVudHMgdGhlIGNyYXNoIGJ5IGVuc3VyaW5nIHdlJ3JlIG9ubHkgYWNjZXNzaW5nIHRob3NlIHN0cnVjdHVyZXMgd2hlbiB0aGUgdnNvY2sgaXMgc3RpbGwgYWN0aXZlLiBTbWFydC5cblxuSSBuZWVkIHRvIGNvbmZpcm0gaWYgSSBzZWUgdGhpcyBwYXRjaCwgc28gbGV0IG1lIGRvIGEgcXVpY2sgc2NhbiBvZiB0aGUgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG1vZGlmaWVkOiBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29ya2AsIGFuZCBgdmlydGlvX3RyYW5zcG9ydF9yeF93b3JrYC4gWWVhaCwgdGhlc2UgYXJlIGRlZmluaXRlbHkgd29ya3F1ZXVlIGhhbmRsZXJzIGZvciB2aXJ0aW8gdnNvY2suIFRoZXkncmUgZGVmaW5pdGVseSByZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgbGlrZSBRRU1VIHdpdGggdmlydGlvLXZzb2NrLiBTbyB0aGVzZSBmdW5jdGlvbnMgYXJlIGdvb2QgY2FuZGlkYXRlcyBmb3IgZnV6emluZy5cblxuQWxyaWdodCwgbGV0J3Mgc2VlIGFib3V0IGdldHRpbmcgdGhlIHJpZ2h0IGNvbmZpZyBvcHRpb25zIHRvIHRyaWdnZXIgdGhlc2UgZnVuY3Rpb25zIGFuZCBnZXQgdGhlIHRlc3QgZW52IHNldHVwLiBXaGVyZSBhcmUgdGhlIGNvbmZpZyBvcHRpb25zIGZvciB2aXJ0aW8gdnNvY2sgZGVmaW5lZD8gYG5ldC92bXdfdnNvY2svS2NvbmZpZ2Agb3IgbWF5YmUgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2A/IFRpbWUgdG8gZmlndXJlIG91dCB3aGF0IGNvbmZpZyBvcHRpb25zIEkgbmVlZC4gSSdsbCBncmVwIGZvciBgdmlydGlvX3RyYW5zcG9ydC5jYCBpbiBgbmV0L3Ztd192c29jay9NYWtlZmlsZWAgdG8gc2VlIGlmIHRoYXQgZ2l2ZXMgbWUgYW55IGNsdWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTMzLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDM6Mjc6NDcuOTA5ODIyNTE4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxODE2MTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZpcnRpb190cmFuc3BvcnQub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdm13X3Zzb2NrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdm13X3Zzb2NrL01ha2VmaWxlPTQ9b2JqLSQoQ09ORklHX1ZNV0FSRV9WTUNJX1ZTT0NLRVRTKSArPSB2bXdfdnNvY2tfdm1jaV90cmFuc3BvcnQub1xcbm5ldC92bXdfdnNvY2svTWFrZWZpbGU6NTpvYmotJChDT05GSUdfVklSVElPX1ZTT0NLRVRTKSArPSB2bXdfdnNvY2tfdmlydGlvX3RyYW5zcG9ydC5vXFxubmV0L3Ztd192c29jay9NYWtlZmlsZS02LW9iai0kKENPTkZJR19WSVJUSU9fVlNPQ0tFVFNfQ09NTU9OKSArPSB2bXdfdnNvY2tfdmlydGlvX3RyYW5zcG9ydF9jb21tb24ub1xcbi0tXFxubmV0L3Ztd192c29jay9NYWtlZmlsZT0xNT12bXdfdnNvY2tfdm1jaV90cmFuc3BvcnQteSArPSB2bWNpX3RyYW5zcG9ydC5vIHZtY2lfdHJhbnNwb3J0X25vdGlmeS5vIFxcXFxcXG4tLVxcbm5ldC92bXdfdnNvY2svTWFrZWZpbGUtMTctXFxubmV0L3Ztd192c29jay9NYWtlZmlsZToxODp2bXdfdnNvY2tfdmlydGlvX3RyYW5zcG9ydC15ICs9IHZpcnRpb190cmFuc3BvcnQub1xcbm5ldC92bXdfdnNvY2svTWFrZWZpbGUtMTktXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAzOjI3OjQ3Ljk1MTY0NjAxNloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY3MjY2NjAyMzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIFZpcnRpbyB2c29ja2V0cyBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgc28gd2UncmUgdGFsa2luZyBhYm91dCBgQ09ORklHX1ZJUlRJT19WU09DS0VUU2AuIFRoYXQncyB0aGUga2V5IHRvIGVuYWJsaW5nIHZpcnRpby1iYXNlZCB2c29ja2V0IHN1cHBvcnQuIE15IGltbWVkaWF0ZSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biBpbnRvIGl0cyBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3RoZXIgY29uZmlndXJhdGlvbiBvcHRpb25zIGl0IHJlbGllcyBvbiDigJMga2VybmVsIGZlYXR1cmVzLCBvdGhlciB2aXJ0aW8gZGV2aWNlIHN1cHBvcnQsIHBlcmhhcHMgc3BlY2lmaWMgbmV0d29ya2luZyBpbmZyYXN0cnVjdHVyZSBlbGVtZW50cy4gQSBkZWVwIGRpdmUgaW50byBkZXBlbmRlbmNpZXMgaXMgY3J1Y2lhbCBiZWNhdXNlIEkgbmVlZCB0byBncmFzcCB0aGUgZnVsbCBpbXBsaWNhdGlvbnMgb2YgZW5hYmxpbmcgdGhpcyBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgYnJvYWRlciBzeXN0ZW0gYXJjaGl0ZWN0dXJlLiBJdCdzIGFsbCBhYm91dCBlbnN1cmluZyBjb21wYXRpYmlsaXR5IGFuZCBhdm9pZGluZyBhbnkgdW5leHBlY3RlZCBjb25mbGljdHMgZG93biB0aGUgbGluZSwgZXNwZWNpYWxseSBpbiBhIGNvbXBsZXggZW52aXJvbm1lbnQuIExldCdzIHNlZSB3aGF0IHRoZSBLY29uZmlnIGZpbGVzIHJldmVhbC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjc5LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDM6Mjc6NTQuNjc4MzA5MTQzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0NDY1NTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBWSVJUSU9fVlNPQ0tFVFNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3Ztd192c29jay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3Ztd192c29jay9LY29uZmlnPTQxPWNvbmZpZyBWTVdBUkVfVk1DSV9WU09DS0VUU1xcbi0tXFxubmV0L3Ztd192c29jay9LY29uZmlnLTUyLVxcbm5ldC92bXdfdnNvY2svS2NvbmZpZzo1Mzpjb25maWcgVklSVElPX1ZTT0NLRVRTXFxubmV0L3Ztd192c29jay9LY29uZmlnLTU0LVxcdHRyaXN0YXRlIFxcXCJ2aXJ0aW8gdHJhbnNwb3J0IGZvciBWaXJ0dWFsIFNvY2tldHNcXFwiXFxuLS1cXG5uZXQvdm13X3Zzb2NrL0tjb25maWctNjUtXFxubmV0L3Ztd192c29jay9LY29uZmlnOjY2OmNvbmZpZyBWSVJUSU9fVlNPQ0tFVFNfQ09NTU9OXFxubmV0L3Ztd192c29jay9LY29uZmlnLTY3LVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAzOjI3OjU0LjcyMjc4MDUyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQwNzI0MDQ1MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqS2NvbmZpZyBFeHBsb3JhdGlvbioqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBJJ20gdGhpbmtpbmcgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGB2bXdfdnNvY2tgIG1vZHVsZSwgbGlrZWx5IGluIHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtLiBJJ20gZ29pbmcgdG8gcGlucG9pbnQgdGhlIGBLY29uZmlnYCBmaWxlIHdpdGhpbiB0aGUgYG5ldC92bXdfdnNvY2tgIGRpcmVjdG9yeSwgZm9jdXNpbmcgb24gb3IgYXJvdW5kIGxpbmUgNTMuIEknbSBleHBlY3RpbmcgdGhpcyBmaWxlIHRvIGRlZmluZSB0aGUgYnVpbGQtdGltZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMsIGRlcGVuZGVuY2llcywgYW5kIGhlbHAgdGV4dCBhc3NvY2lhdGVkIHdpdGggdGhpcyB2aXJ0dWFsIHNvY2tldCBpbXBsZW1lbnRhdGlvbi4gTXkgZ29hbCBpcyBsaWtlbHkgdG8gaWRlbnRpZnkgdGhlIGtleSBzZXR0aW5ncywgcGVyaGFwcyByZWxhdGVkIHRvIGZlYXR1cmVzLCBkZWJ1Z2dpbmcgb3B0aW9ucywgb3IgaGFyZHdhcmUgc3VwcG9ydCwgdGhhdCBJIG1pZ2h0IG5lZWQgdG8gY29uc2lkZXIgb3IgbW9kaWZ5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgY29udHJvbGxhYmxlIGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwNzgsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMzoyOTowOC43OTUxODcwOThaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTk2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvdm13X3Zzb2NrL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNTAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNTA6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlXFxuICA1MTpcXHRcXHQgIHdpbGwgYmUgY2FsbGVkIHZtd192c29ja192bWNpX3RyYW5zcG9ydC4gSWYgdW5zdXJlLCBzYXkgTi5cXG4gIDUyOlxcdFxcbiAgNTM6XFx0Y29uZmlnIFZJUlRJT19WU09DS0VUU1xcbiAgNTQ6XFx0XFx0dHJpc3RhdGUgXFxcInZpcnRpbyB0cmFuc3BvcnQgZm9yIFZpcnR1YWwgU29ja2V0c1xcXCJcXG4gIDU1OlxcdFxcdGRlcGVuZHMgb24gVlNPQ0tFVFMgXFx1MDAyNlxcdTAwMjYgVklSVElPXFxuICA1NjpcXHRcXHRzZWxlY3QgVklSVElPX1ZTT0NLRVRTX0NPTU1PTlxcbiAgNTc6XFx0XFx0aGVscFxcbiAgNTg6XFx0XFx0ICBUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIGEgdmlydGlvIHRyYW5zcG9ydCBmb3IgVmlydHVhbCBTb2NrZXRzLlxcbiAgNTk6XFx0XFxuICA2MDpcXHRcXHQgIEVuYWJsZSB0aGlzIHRyYW5zcG9ydCBpZiB5b3VyIFZpcnR1YWwgTWFjaGluZSBob3N0IHN1cHBvcnRzIFZpcnR1YWxcXG4gIDYxOlxcdFxcdCAgU29ja2V0cyBvdmVyIHZpcnRpby5cXG4gIDYyOlxcdFxcbiAgNjM6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGwgYmVcXG4gIDY0OlxcdFxcdCAgY2FsbGVkIHZtd192c29ja192aXJ0aW9fdHJhbnNwb3J0LiBJZiB1bnN1cmUsIHNheSBOLlxcbiAgNjU6XFx0XFxuICA2NjpcXHRjb25maWcgVklSVElPX1ZTT0NLRVRTX0NPTU1PTlxcbiAgNjc6XFx0XFx0dHJpc3RhdGVcXG4gIDY4OlxcdFxcdGhlbHBcXG4gIDY5OlxcdFxcdCAgVGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQgYnkgYW55IGRyaXZlciB3aGljaCBuZWVkcyB0byBhY2Nlc3NcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDM6Mjk6MDguNzk1MjYwMzg4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI3Nzk0NjM0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFZpcnRpby1WU09DSyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggcmVsYXRlZCB0byBWaXJ0aW8tVlNPQ0ssIGFuZCBpbW1lZGlhdGVseSBteSBtaW5kIGp1bXBzIHRvIHRoZSBkZXBlbmRlbmNpZXMuIEkgc2VlIG1lbnRpb24gb2YgYFZTT0NLRVRTYCBhbmQgYFZJUlRJT2AsIGFuZCBgVklSVElPX1ZTT0NLRVRTYCBpcyBvYnZpb3VzbHkgaW1wbGljYXRlZC4gSSdsbCBtYWtlIGEgbWVudGFsIG5vdGUgdGhhdCBhbGwgdGhyZWUgb2YgdGhlc2Ugc2hvdWxkIGJlIGVuYWJsZWQsIHRob3VnaCBJIGFsbW9zdCBhbHdheXMgc2VlIGBWSVJUSU9gIGVuYWJsZWQgYnkgZGVmYXVsdCBhbnl3YXkuXG5cbk5vdywgdGhlIHBhdGNoIGxpc3RzIGEgZmV3IG1vZGlmaWVkIGZ1bmN0aW9uczogYHZpcnRpb190cmFuc3BvcnRfdHhfd29ya2AsIGB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtgLCBhbmQgYHZpcnRpb190cmFuc3BvcnRfcnhfd29ya2AuIFRoYXQncyB3aGVyZSB0aGUgY29yZSBjaGFuZ2VzIGFyZSBsaWtlbHkgaGFwcGVuaW5nLCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGVtLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBjaGVjayBpZiB0aGVzZSBhcmUgc3RhdGljIGZ1bmN0aW9ucy4gSWYgdGhleSAqYXJlKiwgdGhleSBtYXkgbm90IGJlIHRoZSBtb3N0IGltcG9ydGFudCBzeW1ib2xzIHRvIGZvY3VzIG9uLCBhcyB0aGV5IGhhdmUgbGltaXRlZCB2aXNpYmlsaXR5LlxuXG5BbHJpZ2h0LCB0aGUgcGF0Y2ggY29uZmlybXMgbXkgc3VzcGljaW9uOiB0aGVzZSBmdW5jdGlvbnMgKmFyZSogZGVjbGFyZWQgYXMgYHN0YXRpY2AuIFNpbmNlIHRoZXkncmUgc3RhdGljLCB0aGUgcmVhbCBxdWVzdGlvbiBiZWNvbWVzIHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZC4gS25vd2luZyB0aGUgY29udGV4dCBvZiB0aGVpciB1c2FnZSB3aWxsIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBwYXRjaCdzIG92ZXJhbGwgaW1wYWN0LiBJJ2xsIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBjb2RlIHRvIGRldGVybWluZSB0aGUgY2FsbCBzaXRlcyBhbmQgaG93IHRoZSBjaGFuZ2VzIGFmZmVjdCB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1OTksIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxODIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMzoyOToxNC4wNzMyMTM2NTJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NTYzNDQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIklOSVRfV09SSy4qdmlydGlvX3RyYW5zcG9ydF8uKl93b3JrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC92bXdfdnNvY2svXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jPTgwMD1zdGF0aWMgaW50IHZpcnRpb192c29ja19wcm9iZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldilcXG4tLVxcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTgyOS1cXHRza2JfcXVldWVfaGVhZF9pbml0KFxcdTAwMjZ2c29jay1cXHUwMDNlc2VuZF9wa3RfcXVldWUpO1xcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjgzMDpcXHRJTklUX1dPUksoXFx1MDAyNnZzb2NrLVxcdTAwM2VyeF93b3JrLCB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmspO1xcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjgzMTpcXHRJTklUX1dPUksoXFx1MDAyNnZzb2NrLVxcdTAwM2V0eF93b3JrLCB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmspO1xcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjgzMjpcXHRJTklUX1dPUksoXFx1MDAyNnZzb2NrLVxcdTAwM2VldmVudF93b3JrLCB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmspO1xcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjgzMzpcXHRJTklUX1dPUksoXFx1MDAyNnZzb2NrLVxcdTAwM2VzZW5kX3BrdF93b3JrLCB2aXJ0aW9fdHJhbnNwb3J0X3NlbmRfcGt0X3dvcmspO1xcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTgzNC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDM6Mjk6MTQuMTE5Nzg4MjY5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyMDg5MzM0NjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIG15IG93biBtZW50YWwgcHJvY2Vzcywgd2l0aCB0aGUgYm9sZGVkIGhlYWRlciBhcyByZXF1ZXN0ZWQ6XG5cbioqRGVjb25zdHJ1Y3RpbmcgQXN5bmNocm9ub3VzIFdvcmtxdWV1ZSBIYW5kbGVycyBpbiBWaXJ0aW8tVlNPQ0sqKlxuXG5SaWdodCwgc28gd2UncmUgZGVhbGluZyB3aXRoIHdvcmtxdWV1ZSBoYW5kbGVycyBoZXJlLiBUaGUga2V5IHBvaW50IGlzIHRoYXQgdGhleSdyZSAqYXN5bmNocm9ub3VzKiwgbWVhbmluZyB0aGV5J3JlIG5vdCBleGVjdXRlZCBpbW1lZGlhdGVseSBpbiB0aGUgY3VycmVudCBjb250ZXh0LiBUaGF0IGltcGxpZXMgYSBkZWxheSwgcG9zc2libHkgYmFzZWQgb24gc29tZSBldmVudCBvciBzY2hlZHVsaW5nIGRlY2lzaW9uLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXM6IHdoYXQgYWN0dWFsbHkga2lja3MgdGhlc2UgaGFuZGxlcnMgaW50byBhY3Rpb24/IFdoYXTigJlzIHRoZSB0cmlnZ2VyP1xuXG5MZXQncyBzZWXigKYgQWgsICpgdmlydGlvX3Zzb2NrX3Byb2JlYCogaW5pdGlhbGl6ZXMgdGhlbS4gVGhhdOKAmXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBTbywgdGhlIHByb2JlIGZ1bmN0aW9uIHNldHMgdGhlbSB1cCwgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgKnJ1biogdGhlbS4gTXkgZm9jdXMgbm93IHNoaWZ0cyB0byBmaWd1cmluZyBvdXQgd2hhdCBldmVudHMgb3IgY29kZSBwYXRocyBhY3R1YWxseSAqcXVldWUqIHRoZXNlIGhhbmRsZXJzLiBVbmRlcnN0YW5kaW5nIHRoZSBxdWV1aW5nIG1lY2hhbmlzbSBpcyBjcml0aWNhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSB3b3JrZmxvdywgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucywgYW5kIG92ZXJhbGwgcGVyZm9ybWFuY2UgY2hhcmFjdGVyaXN0aWNzIG9mIHRoaXMgVmlydGlvLVZTT0NLIGltcGxlbWVudGF0aW9uLiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGwgcGF0aHMgZnJvbSBgdmlydGlvX3Zzb2NrX3Byb2JlYCBhbmQgaWRlbnRpZnkgdGhlIGZ1bmN0aW9ucyByZXNwb25zaWJsZSBmb3Igc3VibWl0dGluZyB0aGUgd29yayB0byB0aGUgcXVldWUuIFRoYXQncyB3aGVyZSB0aGUgcmVhbCBtZWF0IG9mIHRoZSBvcGVyYXRpb24gbGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTM3MiwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAzOjI5OjE4LjMyODcyNDQ3NloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDUyMzE2NjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicXVldWVfd29yay4qcnhfd29ya1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdm13X3Zzb2NrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYz0xNTg9dmlydGlvX3RyYW5zcG9ydF9zZW5kX3BrdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTIxMC1cXHRpZiAocmVzdGFydF9yeClcXG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzoyMTE6XFx0XFx0cXVldWVfd29yayh2aXJ0aW9fdnNvY2tfd29ya3F1ZXVlLCBcXHUwMDI2dnNvY2stXFx1MDAzZXJ4X3dvcmspO1xcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTIxMi19XFxuLS1cXG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYz0yODA9dmlydGlvX3RyYW5zcG9ydF9jYW5jZWxfcGt0KHN0cnVjdCB2c29ja19zb2NrICp2c2spXFxuLS1cXG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYy0zMDAtXFx0XFx0ICAgIG5ld19jbnQgXFx1MDAzYyB2aXJ0cXVldWVfZ2V0X3ZyaW5nX3NpemUocnhfdnEpKVxcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjMwMTpcXHRcXHRcXHRxdWV1ZV93b3JrKHZpcnRpb192c29ja193b3JrcXVldWUsIFxcdTAwMjZ2c29jay1cXHUwMDNlcnhfd29yayk7XFxubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMtMzAyLVxcdH1cXG4tLVxcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jPTQ5OD1zdGF0aWMgdm9pZCB2aXJ0aW9fdnNvY2tfcnhfZG9uZShzdHJ1Y3QgdmlydHF1ZXVlICp2cSlcXG4tLVxcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTUwMy1cXHRcXHRyZXR1cm47XFxubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6NTA0OlxcdHF1ZXVlX3dvcmsodmlydGlvX3Zzb2NrX3dvcmtxdWV1ZSwgXFx1MDAyNnZzb2NrLVxcdTAwM2VyeF93b3JrKTtcXG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYy01MDUtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMzoyOToxOC4zNzM5NjI0NjRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTMzNzczMDI3MjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBWaXJ0aW8gVlNvY2sgUGF0Y2ggZm9yIEZ1enppbmcgT3Bwb3J0dW5pdGllcyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGlkZW50aWZ5IHRoZSBrZXkgZnVuY3Rpb25zIG9yIGNvZGUgcGF0aHMgYWZmZWN0ZWQgYnkgdGhpcyBwYXRjaC4gIGB2aXJ0aW9fdnNvY2tfcnhfZG9uZWAgaXMgdGhlIHByaW1hcnkgdmlydHF1ZXVlIGNhbGxiYWNrOyB0aGF0J3MgdGhlIHN0YXJ0aW5nIHBvaW50LiAgYHZpcnRpb192c29ja190eF9kb25lYCBhbmQgYHZpcnRpb192c29ja19ldmVudF9kb25lYCBsaWtlbHkgcXVldWUgb3RoZXIgd29yay4gIFNpbmNlIHRoZXNlIHdvcmsgaGFuZGxlcnMgYXJlIHN0YXRpYywgbXkgZmlyc3QgaW5jbGluYXRpb24gaXMgdG8gemVybyBpbiBvbiAqd2hlcmUqIHRoZXkncmUgcXVldWVkLCBvciBwb3NzaWJseSB0aGUgaGFuZGxlcnMgdGhlbXNlbHZlcyBpZiB0aGV5J3JlIHN1YnN0YW50aWFsLlxuXG5BaGEsIHRoZSB3b3JrIGhhbmRsZXJzIGFyZSBwYXNzZWQgYXMgZnVuY3Rpb24gcG9pbnRlcnMgdG8gYElOSVRfV09SS2AuICBUaGF0J3MgaW1wb3J0YW50LiAgQmVjYXVzZSB0aGVpciBhZGRyZXNzZXMgYXJlIHRha2VuLCB0aGUgY29tcGlsZXIgY2FuJ3QgaW5saW5lIHRoZW0uICBUaGVyZWZvcmUsIGB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmtgLCBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYW5kIGB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtgIHdpbGwgZGVmaW5pdGVseSBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgYW5kIHRoYXQgdGhleSBhcmUgd29ydGggaW52ZXN0aWdhdGluZy4gTGV0IG1lIHF1aWNrbHkgdmVyaWZ5IHRoZXkgYXJlIGluIGB2aXJ0aW9fdHJhbnNwb3J0LmNgLiBZZXAsIHRoZXJlIHRoZXkgYXJlLlxuXG5Ob3csIGxldCBtZSBkb3VibGUgY2hlY2sgdGhhdCB0aGlzIGlzIHRoZSBmdWxsIHBpY3R1cmUuIFRoZSBwYXRjaCBtb2RpZmllcyB0aG9zZSB3b3JrIGhhbmRsZXJzIGRpcmVjdGx5LiBUaGF0IGNvbmZpcm1zIG15IGZvY3VzIGlzIGNvcnJlY3RseSBwbGFjZWQgb24gYHZpcnRpb190cmFuc3BvcnRfcnhfd29ya2AsIGB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmtgLCBhbmQgYHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29ya2AuXG5cbk5leHQsIEkgbmVlZCB0byBjaGVjayBmb3IgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBBaCwgYFZTT0NLRVRTYCBhbmQgYFZJUlRJT19WU09DS0VUU2AuIEdvdCBpdC5cblxuQW55dGhpbmcgZWxzZSBvZiBub3RlPyAgVGhlIHBhdGNoIGlzIHdpdGhpbiBgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNgLiAgVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlbGF0ZWQgdG8gdmlydGlvIHZzb2NrLiBTcGVjaWZpY2FsbHksIGl0IGd1YXJkcyBhZ2FpbnN0IGEgcG90ZW50aWFsIGJ1ZyB3aGVyZSBgdnNvY2stXHUwMDNldnFzW1ZTT0NLX1ZRX1RYXWAgaXMgYWNjZXNzZWQgd2l0aG91dCBmaXJzdCBjaGVja2luZyBgdnNvY2stXHUwMDNldHhfcnVuYC4gIElmIGB2c29jay1cdTAwM2V0eF9ydW5gIGlzIGZhbHNlLCBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgdnNvY2sgaXMgYmVpbmcgcmVtb3ZlZCBvciBpcyBub3QgZnVsbHkgaW5pdGlhbGl6ZWQsIG1ha2luZyB0aGUgYHZxc2AgcG9pbnRlciBwb3RlbnRpYWxseSBpbnZhbGlkIG9yIE5VTEwuIFRoaXMgaXMgYSBjbGFzc2ljIGNvbmN1cnJlbmN5IGJ1ZywgYW5kIGRlZmluaXRlbHkgYSBnb29kIHRhcmdldC5cblxuVGhlcmVmb3JlLCBmb3IgZnV6emluZywgSSdsbCBzZXQ6XG5cbiogICAqKldvcnRoRnV6emluZzogdHJ1ZSoqIC0gRGVmaW5pdGVseSB3b3J0aCB0aGUgZWZmb3J0LlxuKiAgICoqRm9jdXNTeW1ib2xzOiBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29ya2AsIGB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmtgKiogLSBUaGVzZSB3b3JrIGhhbmRsZXJzIGFyZSB0aGUgY29yZSBvZiB0aGUgZml4IGFuZCBzaG91bGQgYmUgb3VyIHByaW1hcnkgdGFyZ2V0cy5cbiogICAqKkVuYWJsZUNvbmZpZ3M6IGBWU09DS0VUU2AsIGBWSVJUSU9fVlNPQ0tFVFNgKiogLSBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZXNlIGNvbmZpZ3VyYXRpb25zIGFyZSBlbmFibGVkIGZvciB0aGlzIGNvZGUgdG8gYmUgY29tcGlsZWQgYW5kIGV4ZXJjaXNlZC5cbiogICAqKlJlYXNvbmluZzoqKiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlIHZ1bG5lcmFiaWxpdHkgd2l0aGluIHZpcnRpbyB2c29jaydzIHdvcmtxdWV1ZSBoYW5kbGVycy4gSXQgZW5mb3JjZXMgYSBjcml0aWNhbCBgcnVuYCBmbGFnIGNoZWNrIGJlZm9yZSBhY2Nlc3NpbmcgdGhlIHZpcnRxdWV1ZXMsIHdoaWNoIGFyZSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaHVzLCBmdXp6aW5nIHRoZXNlIHdvcmsgaGFuZGxlcnMgaXMgY3J1Y2lhbCBmb3IgdmVyaWZ5aW5nIHRoZSBmaXggYW5kIGVuc3VyaW5nIHRoZSBzdGFiaWxpdHkgb2YgdmlydGlvIHZzb2NrLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTEyLCJPdXRwdXRUb2tlbnMiOjEzMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUwOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMzoyOTozMS43NTEyNjgxNDJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjE1MDk1NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVlNPQ0tFVFNcIixcbiAgICBcIlZJUlRJT19WU09DS0VUU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZpcnRpb190cmFuc3BvcnRfdHhfd29ya1wiLFxuICAgIFwidmlydGlvX3RyYW5zcG9ydF9ldmVudF93b3JrXCIsXG4gICAgXCJ2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBudWxsLXBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdmlydGlvIHZzb2NrIHdvcmtxdWV1ZSBoYW5kbGVycyBieSBjaGVja2luZyB0aGUgYHJ1bmAgZmxhZ3MgYmVmb3JlIGFjY2Vzc2luZyB0aGUgdmlydHF1ZXVlcy4gVGhlc2Ugd29yayBoYW5kbGVycyBhcmUgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWU09DS0VUU1wiLFxuICAgIFwiVklSVElPX1ZTT0NLRVRTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmlydGlvX3RyYW5zcG9ydF90eF93b3JrXCIsXG4gICAgXCJ2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtcIixcbiAgICBcInZpcnRpb190cmFuc3BvcnRfcnhfd29ya1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB2aXJ0aW8gdnNvY2sgd29ya3F1ZXVlIGhhbmRsZXJzIGJ5IGNoZWNraW5nIHRoZSBgcnVuYCBmbGFncyBiZWZvcmUgYWNjZXNzaW5nIHRoZSB2aXJ0cXVldWVzLiBUaGVzZSB3b3JrIGhhbmRsZXJzIGFyZSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowt44sm[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-31 03:24:10 +0000 UTC FinishedAt: 2026-07-31 03:29:33 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "51b093a7ba27476e1f639455f005e8d2e75390e4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VSOCKETS", "VIRTIO_VSOCKETS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "51b093a7ba27476e1f639455f005e8d2e75390e4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VSOCKETS", "VIRTIO_VSOCKETS" ], "series_id": "866205c5-3b37-45b9-baa4-e1092b04b47b" }, "track": "KASAN", "fuzz": { "focus": [ "kvm", "net" ], "focus_symbols": [ "virtio_transport_tx_work", "virtio_transport_event_work", "virtio_transport_rx_work" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db", "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZTT0NLRVRTJiMzNDssCiAgICAmIzM0O1ZJUlRJT19WU09DS0VUUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZpcnRpb190cmFuc3BvcnRfdHhfd29yayYjMzQ7LAogICAgJiMzNDt2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmsmIzM0OywKICAgICYjMzQ7dmlydGlvX3RyYW5zcG9ydF9yeF93b3JrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB2aXJ0aW8gdnNvY2sgd29ya3F1ZXVlIGhhbmRsZXJzIGJ5IGNoZWNraW5nIHRoZSBgcnVuYCBmbGFncyBiZWZvcmUgYWNjZXNzaW5nIHRoZSB2aXJ0cXVldWVzLiBUaGVzZSB3b3JrIGhhbmRsZXJzIGFyZSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI1PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMDcxMjdlYTgwM2NmZWMxNDZkOWJlNjgzZDM4YWVlZGRhNjFhY2U1YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDMxIDAzOjI1OjQ0IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jIGIvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNcbmluZGV4IDU3ZjJkNmVjM2ZmYzYuLjk2YzlmZThkMzU3YzYgMTAwNjQ0XG4tLS0gYS9uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNcbkBAIC0zNDYsMTIgJiM0MzszNDYsMTMgQEAgc3RhdGljIHZvaWQgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbiBcdHN0cnVjdCB2aXJ0cXVldWUgKnZxO1xuIFx0Ym9vbCBhZGRlZCA9IGZhbHNlO1xuIFxuLVx0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfVFhdO1xuIFx0bXV0ZXhfbG9jayhcdTAwMjZ2c29jay1cdTAwM2V0eF9sb2NrKTtcbiBcbiBcdGlmICghdnNvY2stXHUwMDNldHhfcnVuKVxuIFx0XHRnb3RvIG91dDtcbiBcbiYjNDM7XHR2cSA9IHZzb2NrLVx1MDAzZXZxc1tWU09DS19WUV9UWF07XG4mIzQzO1xuIFx0ZG8ge1xuIFx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuIFx0XHR1bnNpZ25lZCBpbnQgbGVuO1xuQEAgLTQ1MSwxMyAmIzQzOzQ1MiwxMyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0XHRjb250YWluZXJfb2Yod29yaywgc3RydWN0IHZpcnRpb192c29jaywgZXZlbnRfd29yayk7XG4gXHRzdHJ1Y3QgdmlydHF1ZXVlICp2cTtcbiBcbi1cdHZxID0gdnNvY2stXHUwMDNldnFzW1ZTT0NLX1ZRX0VWRU5UXTtcbi1cbiBcdG11dGV4X2xvY2soXHUwMDI2dnNvY2stXHUwMDNlZXZlbnRfbG9jayk7XG4gXG4gXHRpZiAoIXZzb2NrLVx1MDAzZWV2ZW50X3J1bilcbiBcdFx0Z290byBvdXQ7XG4gXG4mIzQzO1x0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfRVZFTlRdO1xuJiM0MztcbiBcdGRvIHtcbiBcdFx0c3RydWN0IHZpcnRpb192c29ja19ldmVudCAqZXZlbnQ7XG4gXHRcdHVuc2lnbmVkIGludCBsZW47XG5AQCAtNjM0LDEyICYjNDM7NjM1LDEyIEBAIHN0YXRpYyB2b2lkIHZpcnRpb190cmFuc3BvcnRfcnhfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4gXHRcdGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdmlydGlvX3Zzb2NrLCByeF93b3JrKTtcbiBcdHN0cnVjdCB2aXJ0cXVldWUgKnZxO1xuIFxuLVx0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfUlhdO1xuLVxuIFx0bXV0ZXhfbG9jayhcdTAwMjZ2c29jay1cdTAwM2VyeF9sb2NrKTtcbiBcbiBcdGlmICghdnNvY2stXHUwMDNlcnhfcnVuKVxuLVx0XHRnb3RvIG91dDtcbiYjNDM7XHRcdGdvdG8gb3V0X25vZmlsbDtcbiYjNDM7XG4mIzQzO1x0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfUlhdO1xuIFxuIFx0ZG8ge1xuIFx0XHR2aXJ0cXVldWVfZGlzYWJsZV9jYih2cSk7XG5AQCAtNjkxLDYgJiM0Mzs2OTIsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIG91dDpcbiBcdGlmICh2c29jay1cdTAwM2VyeF9idWZfbnIgXHUwMDNjIHZzb2NrLVx1MDAzZXJ4X2J1Zl9tYXhfbnIgLyAyKVxuIFx0XHR2aXJ0aW9fdnNvY2tfcnhfZmlsbCh2c29jayk7XG4mIzQzO291dF9ub2ZpbGw6XG4gXHRtdXRleF91bmxvY2soXHUwMDI2dnNvY2stXHUwMDNlcnhfbG9jayk7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWU09DS0VUUyYjMzQ7LAogICAgJiMzNDtWSVJUSU9fVlNPQ0tFVFMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmsmIzM0OywKICAgICYjMzQ7dmlydGlvX3RyYW5zcG9ydF9ldmVudF93b3JrJiMzNDssCiAgICAmIzM0O3ZpcnRpb190cmFuc3BvcnRfcnhfd29yayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBudWxsLXBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdmlydGlvIHZzb2NrIHdvcmtxdWV1ZSBoYW5kbGVycyBieSBjaGVja2luZyB0aGUgYHJ1bmAgZmxhZ3MgYmVmb3JlIGFjY2Vzc2luZyB0aGUgdmlydHF1ZXVlcy4gVGhlc2Ugd29yayBoYW5kbGVycyBhcmUgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDA3MTI3ZWE4MDNjZmVjMTQ2ZDliZTY4M2QzOGFlZWRkYTYxYWNlNWEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAzMSAwMzoyNTo0NCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jIGIvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMKaW5kZXggNTdmMmQ2ZWMzZmZjNi4uOTZjOWZlOGQzNTdjNiAxMDA2NDQKLS0tIGEvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMKQEAgLTM0NiwxMiAmIzQzOzM0NiwxMyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXN0cnVjdCB2aXJ0cXVldWUgKnZxOwogCWJvb2wgYWRkZWQgPSBmYWxzZTsKIAotCXZxID0gdnNvY2stJmd0O3Zxc1tWU09DS19WUV9UWF07CiAJbXV0ZXhfbG9jaygmYW1wO3Zzb2NrLSZndDt0eF9sb2NrKTsKIAogCWlmICghdnNvY2stJmd0O3R4X3J1bikKIAkJZ290byBvdXQ7CiAKJiM0MzsJdnEgPSB2c29jay0mZ3Q7dnFzW1ZTT0NLX1ZRX1RYXTsKJiM0MzsKIAlkbyB7CiAJCXN0cnVjdCBza19idWZmICpza2I7CiAJCXVuc2lnbmVkIGludCBsZW47CkBAIC00NTEsMTMgJiM0Mzs0NTIsMTMgQEAgc3RhdGljIHZvaWQgdmlydGlvX3RyYW5zcG9ydF9ldmVudF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB2aXJ0aW9fdnNvY2ssIGV2ZW50X3dvcmspOwogCXN0cnVjdCB2aXJ0cXVldWUgKnZxOwogCi0JdnEgPSB2c29jay0mZ3Q7dnFzW1ZTT0NLX1ZRX0VWRU5UXTsKLQogCW11dGV4X2xvY2soJmFtcDt2c29jay0mZ3Q7ZXZlbnRfbG9jayk7CiAKIAlpZiAoIXZzb2NrLSZndDtldmVudF9ydW4pCiAJCWdvdG8gb3V0OwogCiYjNDM7CXZxID0gdnNvY2stJmd0O3Zxc1tWU09DS19WUV9FVkVOVF07CiYjNDM7CiAJZG8gewogCQlzdHJ1Y3QgdmlydGlvX3Zzb2NrX2V2ZW50ICpldmVudDsKIAkJdW5zaWduZWQgaW50IGxlbjsKQEAgLTYzNCwxMiAmIzQzOzYzNSwxMiBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IHZpcnRpb192c29jaywgcnhfd29yayk7CiAJc3RydWN0IHZpcnRxdWV1ZSAqdnE7CiAKLQl2cSA9IHZzb2NrLSZndDt2cXNbVlNPQ0tfVlFfUlhdOwotCiAJbXV0ZXhfbG9jaygmYW1wO3Zzb2NrLSZndDtyeF9sb2NrKTsKIAogCWlmICghdnNvY2stJmd0O3J4X3J1bikKLQkJZ290byBvdXQ7CiYjNDM7CQlnb3RvIG91dF9ub2ZpbGw7CiYjNDM7CiYjNDM7CXZxID0gdnNvY2stJmd0O3Zxc1tWU09DS19WUV9SWF07CiAKIAlkbyB7CiAJCXZpcnRxdWV1ZV9kaXNhYmxlX2NiKHZxKTsKQEAgLTY5MSw2ICYjNDM7NjkyLDcgQEAgc3RhdGljIHZvaWQgdmlydGlvX3RyYW5zcG9ydF9yeF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIG91dDoKIAlpZiAodnNvY2stJmd0O3J4X2J1Zl9uciAmbHQ7IHZzb2NrLSZndDtyeF9idWZfbWF4X25yIC8gMikKIAkJdmlydGlvX3Zzb2NrX3J4X2ZpbGwodnNvY2spOwomIzQzO291dF9ub2ZpbGw6CiAJbXV0ZXhfdW5sb2NrKCZhbXA7dnNvY2stJmd0O3J4X2xvY2spOwogfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1MzMKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAzNzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgVmlydGlvLVZTT0NLIFBhdGNoIGZvciBQb3RlbnRpYWwgVnVsbmVyYWJpbGl0aWVzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNgLiBJdCYjMzk7cyB0d2Vha2luZyBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29ya2AsIGFuZCBgdmlydGlvX3RyYW5zcG9ydF9yeF93b3JrYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSByZS1vcmRlcmluZyB0aGluZ3MuIFRoZSBhc3NpZ25tZW50IG9mIGB2cSA9IHZzb2NrLSZndDt2cXNbLi4uXWAgaXMgYmVpbmcgbW92ZWQgKmFmdGVyKiBhIGNoZWNrIGZvciB3aGV0aGVyIHRoZSB2c29jayBpcyBzdGlsbCBydW5uaW5nLiBJbiBgcnhfd29ya2AsIHRoZXJlJiMzOTtzIGFsc28gYSBgZ290b2AgY2hhbmdlLiBJbnN0ZWFkIG9mIGp1bXBpbmcgdG8gYG91dGAsIGl0IGp1bXBzIHRvIGBvdXRfbm9maWxsYCB3aGVuIHRoZSB2c29jayBpc24mIzM5O3QgcnVubmluZywgd2hpY2ggd2lsbCBza2lwIGNhbGxpbmcgdGhlIGB2aXJ0aW9fdnNvY2tfcnhfZmlsbCh2c29jaylgIGZ1bmN0aW9uLgoKTXkgaW5pdGlhbCB0aG91Z2h0PyBUaGlzIHNtZWxscyBsaWtlIGEgY2xhc3NpYyBtZW1vcnkgc2FmZXR5IGZpeC4gSXQmIzM5O3MgbGlrZWx5IGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGR1cmluZyB2c29jayB0ZWFyZG93bi4gQmFzaWNhbGx5LCBpZiB0aGUgdnNvY2sgaXMgYmVpbmcgc2h1dCBkb3duIGNvbmN1cnJlbnRseSwgdGhlIGB2c29jay0mZ3Q7dnFzYCBhcnJheSBtaWdodCBiZWNvbWUgaW52YWxpZCAob3IgaGF2ZSBhbHJlYWR5IGJlZW4gZnJlZWQpIGJlZm9yZSB0aG9zZSBlYXJsaWVyIGFzc2lnbm1lbnRzLiBNb3ZpbmcgdGhlIGFzc2lnbm1lbnQgKmFmdGVyKiB0aGUgcnVuLXN0YXRlIGNoZWNrIHByZXZlbnRzIHRoZSBjcmFzaCBieSBlbnN1cmluZyB3ZSYjMzk7cmUgb25seSBhY2Nlc3NpbmcgdGhvc2Ugc3RydWN0dXJlcyB3aGVuIHRoZSB2c29jayBpcyBzdGlsbCBhY3RpdmUuIFNtYXJ0LgoKSSBuZWVkIHRvIGNvbmZpcm0gaWYgSSBzZWUgdGhpcyBwYXRjaCwgc28gbGV0IG1lIGRvIGEgcXVpY2sgc2NhbiBvZiB0aGUgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG1vZGlmaWVkOiBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29ya2AsIGFuZCBgdmlydGlvX3RyYW5zcG9ydF9yeF93b3JrYC4gWWVhaCwgdGhlc2UgYXJlIGRlZmluaXRlbHkgd29ya3F1ZXVlIGhhbmRsZXJzIGZvciB2aXJ0aW8gdnNvY2suIFRoZXkmIzM5O3JlIGRlZmluaXRlbHkgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGxpa2UgUUVNVSB3aXRoIHZpcnRpby12c29jay4gU28gdGhlc2UgZnVuY3Rpb25zIGFyZSBnb29kIGNhbmRpZGF0ZXMgZm9yIGZ1enppbmcuCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlIGFib3V0IGdldHRpbmcgdGhlIHJpZ2h0IGNvbmZpZyBvcHRpb25zIHRvIHRyaWdnZXIgdGhlc2UgZnVuY3Rpb25zIGFuZCBnZXQgdGhlIHRlc3QgZW52IHNldHVwLiBXaGVyZSBhcmUgdGhlIGNvbmZpZyBvcHRpb25zIGZvciB2aXJ0aW8gdnNvY2sgZGVmaW5lZD8gYG5ldC92bXdfdnNvY2svS2NvbmZpZ2Agb3IgbWF5YmUgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2A/IFRpbWUgdG8gZmlndXJlIG91dCB3aGF0IGNvbmZpZyBvcHRpb25zIEkgbmVlZC4gSSYjMzk7bGwgZ3JlcCBmb3IgYHZpcnRpb190cmFuc3BvcnQuY2AgaW4gYG5ldC92bXdfdnNvY2svTWFrZWZpbGVgIHRvIHNlZSBpZiB0aGF0IGdpdmVzIG1lIGFueSBjbHVlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMzoyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2aXJ0aW9fdHJhbnNwb3J0Lm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdm13X3Zzb2NrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdm13X3Zzb2NrL01ha2VmaWxlPTQ9b2JqLSQoQ09ORklHX1ZNV0FSRV9WTUNJX1ZTT0NLRVRTKSAmIzQzOz0gdm13X3Zzb2NrX3ZtY2lfdHJhbnNwb3J0Lm9cbm5ldC92bXdfdnNvY2svTWFrZWZpbGU6NTpvYmotJChDT05GSUdfVklSVElPX1ZTT0NLRVRTKSAmIzQzOz0gdm13X3Zzb2NrX3ZpcnRpb190cmFuc3BvcnQub1xubmV0L3Ztd192c29jay9NYWtlZmlsZS02LW9iai0kKENPTkZJR19WSVJUSU9fVlNPQ0tFVFNfQ09NTU9OKSAmIzQzOz0gdm13X3Zzb2NrX3ZpcnRpb190cmFuc3BvcnRfY29tbW9uLm9cbi0tXG5uZXQvdm13X3Zzb2NrL01ha2VmaWxlPTE1PXZtd192c29ja192bWNpX3RyYW5zcG9ydC15ICYjNDM7PSB2bWNpX3RyYW5zcG9ydC5vIHZtY2lfdHJhbnNwb3J0X25vdGlmeS5vIFxcXG4tLVxubmV0L3Ztd192c29jay9NYWtlZmlsZS0xNy1cbm5ldC92bXdfdnNvY2svTWFrZWZpbGU6MTg6dm13X3Zzb2NrX3ZpcnRpb190cmFuc3BvcnQteSAmIzQzOz0gdmlydGlvX3RyYW5zcG9ydC5vXG5uZXQvdm13X3Zzb2NrL01ha2VmaWxlLTE5LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2NzkKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBWaXJ0aW8gdnNvY2tldHMgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCBzbyB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBgQ09ORklHX1ZJUlRJT19WU09DS0VUU2AuIFRoYXQmIzM5O3MgdGhlIGtleSB0byBlbmFibGluZyB2aXJ0aW8tYmFzZWQgdnNvY2tldCBzdXBwb3J0LiBNeSBpbW1lZGlhdGUgbmV4dCBzdGVwIGlzIHRvIGRyaWxsIGRvd24gaW50byBpdHMgZGVwZW5kZW5jaWVzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IG90aGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpdCByZWxpZXMgb24g4oCTIGtlcm5lbCBmZWF0dXJlcywgb3RoZXIgdmlydGlvIGRldmljZSBzdXBwb3J0LCBwZXJoYXBzIHNwZWNpZmljIG5ldHdvcmtpbmcgaW5mcmFzdHJ1Y3R1cmUgZWxlbWVudHMuIEEgZGVlcCBkaXZlIGludG8gZGVwZW5kZW5jaWVzIGlzIGNydWNpYWwgYmVjYXVzZSBJIG5lZWQgdG8gZ3Jhc3AgdGhlIGZ1bGwgaW1wbGljYXRpb25zIG9mIGVuYWJsaW5nIHRoaXMgYW5kIGhvdyBpdCBmaXRzIGludG8gdGhlIGJyb2FkZXIgc3lzdGVtIGFyY2hpdGVjdHVyZS4gSXQmIzM5O3MgYWxsIGFib3V0IGVuc3VyaW5nIGNvbXBhdGliaWxpdHkgYW5kIGF2b2lkaW5nIGFueSB1bmV4cGVjdGVkIGNvbmZsaWN0cyBkb3duIHRoZSBsaW5lLCBlc3BlY2lhbGx5IGluIGEgY29tcGxleCBlbnZpcm9ubWVudC4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoZSBLY29uZmlnIGZpbGVzIHJldmVhbC4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBWSVJUSU9fVlNPQ0tFVFMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdm13X3Zzb2NrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdm13X3Zzb2NrL0tjb25maWc9NDE9Y29uZmlnIFZNV0FSRV9WTUNJX1ZTT0NLRVRTXG4tLVxubmV0L3Ztd192c29jay9LY29uZmlnLTUyLVxubmV0L3Ztd192c29jay9LY29uZmlnOjUzOmNvbmZpZyBWSVJUSU9fVlNPQ0tFVFNcbm5ldC92bXdfdnNvY2svS2NvbmZpZy01NC1cdHRyaXN0YXRlIFwmIzM0O3ZpcnRpbyB0cmFuc3BvcnQgZm9yIFZpcnR1YWwgU29ja2V0c1wmIzM0O1xuLS1cbm5ldC92bXdfdnNvY2svS2NvbmZpZy02NS1cbm5ldC92bXdfdnNvY2svS2NvbmZpZzo2Njpjb25maWcgVklSVElPX1ZTT0NLRVRTX0NPTU1PTlxubmV0L3Ztd192c29jay9LY29uZmlnLTY3LVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMzoyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDc4CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipLY29uZmlnIEV4cGxvcmF0aW9uKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSSYjMzk7bSB0aGlua2luZyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgYHZtd192c29ja2AgbW9kdWxlLCBsaWtlbHkgaW4gdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0uIEkmIzM5O20gZ29pbmcgdG8gcGlucG9pbnQgdGhlIGBLY29uZmlnYCBmaWxlIHdpdGhpbiB0aGUgYG5ldC92bXdfdnNvY2tgIGRpcmVjdG9yeSwgZm9jdXNpbmcgb24gb3IgYXJvdW5kIGxpbmUgNTMuIEkmIzM5O20gZXhwZWN0aW5nIHRoaXMgZmlsZSB0byBkZWZpbmUgdGhlIGJ1aWxkLXRpbWUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLCBkZXBlbmRlbmNpZXMsIGFuZCBoZWxwIHRleHQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdmlydHVhbCBzb2NrZXQgaW1wbGVtZW50YXRpb24uIE15IGdvYWwgaXMgbGlrZWx5IHRvIGlkZW50aWZ5IHRoZSBrZXkgc2V0dGluZ3MsIHBlcmhhcHMgcmVsYXRlZCB0byBmZWF0dXJlcywgZGVidWdnaW5nIG9wdGlvbnMsIG9yIGhhcmR3YXJlIHN1cHBvcnQsIHRoYXQgSSBtaWdodCBuZWVkIHRvIGNvbnNpZGVyIG9yIG1vZGlmeS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBjb250cm9sbGFibGUgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC92bXdfdnNvY2svS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDUwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNTA6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxuICA1MTpcdFx0ICB3aWxsIGJlIGNhbGxlZCB2bXdfdnNvY2tfdm1jaV90cmFuc3BvcnQuIElmIHVuc3VyZSwgc2F5IE4uXG4gIDUyOlx0XG4gIDUzOlx0Y29uZmlnIFZJUlRJT19WU09DS0VUU1xuICA1NDpcdFx0dHJpc3RhdGUgXCYjMzQ7dmlydGlvIHRyYW5zcG9ydCBmb3IgVmlydHVhbCBTb2NrZXRzXCYjMzQ7XG4gIDU1Olx0XHRkZXBlbmRzIG9uIFZTT0NLRVRTIFx1MDAyNlx1MDAyNiBWSVJUSU9cbiAgNTY6XHRcdHNlbGVjdCBWSVJUSU9fVlNPQ0tFVFNfQ09NTU9OXG4gIDU3Olx0XHRoZWxwXG4gIDU4Olx0XHQgIFRoaXMgbW9kdWxlIGltcGxlbWVudHMgYSB2aXJ0aW8gdHJhbnNwb3J0IGZvciBWaXJ0dWFsIFNvY2tldHMuXG4gIDU5Olx0XG4gIDYwOlx0XHQgIEVuYWJsZSB0aGlzIHRyYW5zcG9ydCBpZiB5b3VyIFZpcnR1YWwgTWFjaGluZSBob3N0IHN1cHBvcnRzIFZpcnR1YWxcbiAgNjE6XHRcdCAgU29ja2V0cyBvdmVyIHZpcnRpby5cbiAgNjI6XHRcbiAgNjM6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsIGJlXG4gIDY0Olx0XHQgIGNhbGxlZCB2bXdfdnNvY2tfdmlydGlvX3RyYW5zcG9ydC4gSWYgdW5zdXJlLCBzYXkgTi5cbiAgNjU6XHRcbiAgNjY6XHRjb25maWcgVklSVElPX1ZTT0NLRVRTX0NPTU1PTlxuICA2NzpcdFx0dHJpc3RhdGVcbiAgNjg6XHRcdGhlbHBcbiAgNjk6XHRcdCAgVGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQgYnkgYW55IGRyaXZlciB3aGljaCBuZWVkcyB0byBhY2Nlc3NcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMzoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTk5CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTgyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVmlydGlvLVZTT0NLIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHJlbGF0ZWQgdG8gVmlydGlvLVZTT0NLLCBhbmQgaW1tZWRpYXRlbHkgbXkgbWluZCBqdW1wcyB0byB0aGUgZGVwZW5kZW5jaWVzLiBJIHNlZSBtZW50aW9uIG9mIGBWU09DS0VUU2AgYW5kIGBWSVJUSU9gLCBhbmQgYFZJUlRJT19WU09DS0VUU2AgaXMgb2J2aW91c2x5IGltcGxpY2F0ZWQuIEkmIzM5O2xsIG1ha2UgYSBtZW50YWwgbm90ZSB0aGF0IGFsbCB0aHJlZSBvZiB0aGVzZSBzaG91bGQgYmUgZW5hYmxlZCwgdGhvdWdoIEkgYWxtb3N0IGFsd2F5cyBzZWUgYFZJUlRJT2AgZW5hYmxlZCBieSBkZWZhdWx0IGFueXdheS4KCk5vdywgdGhlIHBhdGNoIGxpc3RzIGEgZmV3IG1vZGlmaWVkIGZ1bmN0aW9uczogYHZpcnRpb190cmFuc3BvcnRfdHhfd29ya2AsIGB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtgLCBhbmQgYHZpcnRpb190cmFuc3BvcnRfcnhfd29ya2AuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIGNvcmUgY2hhbmdlcyBhcmUgbGlrZWx5IGhhcHBlbmluZywgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlbS4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gY2hlY2sgaWYgdGhlc2UgYXJlIHN0YXRpYyBmdW5jdGlvbnMuIElmIHRoZXkgKmFyZSosIHRoZXkgbWF5IG5vdCBiZSB0aGUgbW9zdCBpbXBvcnRhbnQgc3ltYm9scyB0byBmb2N1cyBvbiwgYXMgdGhleSBoYXZlIGxpbWl0ZWQgdmlzaWJpbGl0eS4KCkFscmlnaHQsIHRoZSBwYXRjaCBjb25maXJtcyBteSBzdXNwaWNpb246IHRoZXNlIGZ1bmN0aW9ucyAqYXJlKiBkZWNsYXJlZCBhcyBgc3RhdGljYC4gU2luY2UgdGhleSYjMzk7cmUgc3RhdGljLCB0aGUgcmVhbCBxdWVzdGlvbiBiZWNvbWVzIHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZC4gS25vd2luZyB0aGUgY29udGV4dCBvZiB0aGVpciB1c2FnZSB3aWxsIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBwYXRjaCYjMzk7cyBvdmVyYWxsIGltcGFjdC4gSSYjMzk7bGwgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIGNvZGUgdG8gZGV0ZXJtaW5lIHRoZSBjYWxsIHNpdGVzIGFuZCBob3cgdGhlIGNoYW5nZXMgYWZmZWN0IHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDM6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7SU5JVF9XT1JLLip2aXJ0aW9fdHJhbnNwb3J0Xy4qX3dvcmsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdm13X3Zzb2NrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYz04MDA9c3RhdGljIGludCB2aXJ0aW9fdnNvY2tfcHJvYmUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpXG4tLVxubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMtODI5LVx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZ2c29jay1cdTAwM2VzZW5kX3BrdF9xdWV1ZSk7XG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzo4MzA6XHRJTklUX1dPUksoXHUwMDI2dnNvY2stXHUwMDNlcnhfd29yaywgdmlydGlvX3RyYW5zcG9ydF9yeF93b3JrKTtcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjgzMTpcdElOSVRfV09SSyhcdTAwMjZ2c29jay1cdTAwM2V0eF93b3JrLCB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmspO1xubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6ODMyOlx0SU5JVF9XT1JLKFx1MDAyNnZzb2NrLVx1MDAzZWV2ZW50X3dvcmssIHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29yayk7XG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzo4MzM6XHRJTklUX1dPUksoXHUwMDI2dnNvY2stXHUwMDNlc2VuZF9wa3Rfd29yaywgdmlydGlvX3RyYW5zcG9ydF9zZW5kX3BrdF93b3JrKTtcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTgzNC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDM6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTM3MgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzLCB3aXRoIHRoZSBib2xkZWQgaGVhZGVyIGFzIHJlcXVlc3RlZDoKCioqRGVjb25zdHJ1Y3RpbmcgQXN5bmNocm9ub3VzIFdvcmtxdWV1ZSBIYW5kbGVycyBpbiBWaXJ0aW8tVlNPQ0sqKgoKUmlnaHQsIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggd29ya3F1ZXVlIGhhbmRsZXJzIGhlcmUuIFRoZSBrZXkgcG9pbnQgaXMgdGhhdCB0aGV5JiMzOTtyZSAqYXN5bmNocm9ub3VzKiwgbWVhbmluZyB0aGV5JiMzOTtyZSBub3QgZXhlY3V0ZWQgaW1tZWRpYXRlbHkgaW4gdGhlIGN1cnJlbnQgY29udGV4dC4gVGhhdCBpbXBsaWVzIGEgZGVsYXksIHBvc3NpYmx5IGJhc2VkIG9uIHNvbWUgZXZlbnQgb3Igc2NoZWR1bGluZyBkZWNpc2lvbi4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzOiB3aGF0IGFjdHVhbGx5IGtpY2tzIHRoZXNlIGhhbmRsZXJzIGludG8gYWN0aW9uPyBXaGF04oCZcyB0aGUgdHJpZ2dlcj8KCkxldCYjMzk7cyBzZWXigKYgQWgsICpgdmlydGlvX3Zzb2NrX3Byb2JlYCogaW5pdGlhbGl6ZXMgdGhlbS4gVGhhdOKAmXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBTbywgdGhlIHByb2JlIGZ1bmN0aW9uIHNldHMgdGhlbSB1cCwgYnV0IGRvZXNuJiMzOTt0IG5lY2Vzc2FyaWx5ICpydW4qIHRoZW0uIE15IGZvY3VzIG5vdyBzaGlmdHMgdG8gZmlndXJpbmcgb3V0IHdoYXQgZXZlbnRzIG9yIGNvZGUgcGF0aHMgYWN0dWFsbHkgKnF1ZXVlKiB0aGVzZSBoYW5kbGVycy4gVW5kZXJzdGFuZGluZyB0aGUgcXVldWluZyBtZWNoYW5pc20gaXMgY3JpdGljYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgd29ya2Zsb3csIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMsIGFuZCBvdmVyYWxsIHBlcmZvcm1hbmNlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGlzIFZpcnRpby1WU09DSyBpbXBsZW1lbnRhdGlvbi4gSSBuZWVkIHRvIHRyYWNlIHRoZSBjYWxsIHBhdGhzIGZyb20gYHZpcnRpb192c29ja19wcm9iZWAgYW5kIGlkZW50aWZ5IHRoZSBmdW5jdGlvbnMgcmVzcG9uc2libGUgZm9yIHN1Ym1pdHRpbmcgdGhlIHdvcmsgdG8gdGhlIHF1ZXVlLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSByZWFsIG1lYXQgb2YgdGhlIG9wZXJhdGlvbiBsaWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAwMzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtxdWV1ZV93b3JrLipyeF93b3JrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3Ztd192c29jay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM9MTU4PXZpcnRpb190cmFuc3BvcnRfc2VuZF9wa3Rfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMtMjEwLVx0aWYgKHJlc3RhcnRfcngpXG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzoyMTE6XHRcdHF1ZXVlX3dvcmsodmlydGlvX3Zzb2NrX3dvcmtxdWV1ZSwgXHUwMDI2dnNvY2stXHUwMDNlcnhfd29yayk7XG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYy0yMTItfVxuLS1cbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jPTI4MD12aXJ0aW9fdHJhbnNwb3J0X2NhbmNlbF9wa3Qoc3RydWN0IHZzb2NrX3NvY2sgKnZzaylcbi0tXG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYy0zMDAtXHRcdCAgICBuZXdfY250IFx1MDAzYyB2aXJ0cXVldWVfZ2V0X3ZyaW5nX3NpemUocnhfdnEpKVxubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6MzAxOlx0XHRcdHF1ZXVlX3dvcmsodmlydGlvX3Zzb2NrX3dvcmtxdWV1ZSwgXHUwMDI2dnNvY2stXHUwMDNlcnhfd29yayk7XG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYy0zMDItXHR9XG4tLVxubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM9NDk4PXN0YXRpYyB2b2lkIHZpcnRpb192c29ja19yeF9kb25lKHN0cnVjdCB2aXJ0cXVldWUgKnZxKVxuLS1cbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTUwMy1cdFx0cmV0dXJuO1xubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6NTA0Olx0cXVldWVfd29yayh2aXJ0aW9fdnNvY2tfd29ya3F1ZXVlLCBcdTAwMjZ2c29jay1cdTAwM2VyeF93b3JrKTtcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTUwNS19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDAzOjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYxMTIKCQkJCQkJCW91dHB1dDogMTMyCgkJCQkJCQl0aG91Z2h0czogNTA4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVmlydGlvIFZTb2NrIFBhdGNoIGZvciBGdXp6aW5nIE9wcG9ydHVuaXRpZXMqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGlkZW50aWZ5IHRoZSBrZXkgZnVuY3Rpb25zIG9yIGNvZGUgcGF0aHMgYWZmZWN0ZWQgYnkgdGhpcyBwYXRjaC4gIGB2aXJ0aW9fdnNvY2tfcnhfZG9uZWAgaXMgdGhlIHByaW1hcnkgdmlydHF1ZXVlIGNhbGxiYWNrOyB0aGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4gIGB2aXJ0aW9fdnNvY2tfdHhfZG9uZWAgYW5kIGB2aXJ0aW9fdnNvY2tfZXZlbnRfZG9uZWAgbGlrZWx5IHF1ZXVlIG90aGVyIHdvcmsuICBTaW5jZSB0aGVzZSB3b3JrIGhhbmRsZXJzIGFyZSBzdGF0aWMsIG15IGZpcnN0IGluY2xpbmF0aW9uIGlzIHRvIHplcm8gaW4gb24gKndoZXJlKiB0aGV5JiMzOTtyZSBxdWV1ZWQsIG9yIHBvc3NpYmx5IHRoZSBoYW5kbGVycyB0aGVtc2VsdmVzIGlmIHRoZXkmIzM5O3JlIHN1YnN0YW50aWFsLgoKQWhhLCB0aGUgd29yayBoYW5kbGVycyBhcmUgcGFzc2VkIGFzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIGBJTklUX1dPUktgLiAgVGhhdCYjMzk7cyBpbXBvcnRhbnQuICBCZWNhdXNlIHRoZWlyIGFkZHJlc3NlcyBhcmUgdGFrZW4sIHRoZSBjb21waWxlciBjYW4mIzM5O3QgaW5saW5lIHRoZW0uICBUaGVyZWZvcmUsIGB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmtgLCBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYW5kIGB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtgIHdpbGwgZGVmaW5pdGVseSBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgYW5kIHRoYXQgdGhleSBhcmUgd29ydGggaW52ZXN0aWdhdGluZy4gTGV0IG1lIHF1aWNrbHkgdmVyaWZ5IHRoZXkgYXJlIGluIGB2aXJ0aW9fdHJhbnNwb3J0LmNgLiBZZXAsIHRoZXJlIHRoZXkgYXJlLgoKTm93LCBsZXQgbWUgZG91YmxlIGNoZWNrIHRoYXQgdGhpcyBpcyB0aGUgZnVsbCBwaWN0dXJlLiBUaGUgcGF0Y2ggbW9kaWZpZXMgdGhvc2Ugd29yayBoYW5kbGVycyBkaXJlY3RseS4gVGhhdCBjb25maXJtcyBteSBmb2N1cyBpcyBjb3JyZWN0bHkgcGxhY2VkIG9uIGB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmtgLCBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYW5kIGB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtgLgoKTmV4dCwgSSBuZWVkIHRvIGNoZWNrIGZvciByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIEFoLCBgVlNPQ0tFVFNgIGFuZCBgVklSVElPX1ZTT0NLRVRTYC4gR290IGl0LgoKQW55dGhpbmcgZWxzZSBvZiBub3RlPyAgVGhlIHBhdGNoIGlzIHdpdGhpbiBgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNgLiAgVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlbGF0ZWQgdG8gdmlydGlvIHZzb2NrLiBTcGVjaWZpY2FsbHksIGl0IGd1YXJkcyBhZ2FpbnN0IGEgcG90ZW50aWFsIGJ1ZyB3aGVyZSBgdnNvY2stJmd0O3Zxc1tWU09DS19WUV9UWF1gIGlzIGFjY2Vzc2VkIHdpdGhvdXQgZmlyc3QgY2hlY2tpbmcgYHZzb2NrLSZndDt0eF9ydW5gLiAgSWYgYHZzb2NrLSZndDt0eF9ydW5gIGlzIGZhbHNlLCBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgdnNvY2sgaXMgYmVpbmcgcmVtb3ZlZCBvciBpcyBub3QgZnVsbHkgaW5pdGlhbGl6ZWQsIG1ha2luZyB0aGUgYHZxc2AgcG9pbnRlciBwb3RlbnRpYWxseSBpbnZhbGlkIG9yIE5VTEwuIFRoaXMgaXMgYSBjbGFzc2ljIGNvbmN1cnJlbmN5IGJ1ZywgYW5kIGRlZmluaXRlbHkgYSBnb29kIHRhcmdldC4KClRoZXJlZm9yZSwgZm9yIGZ1enppbmcsIEkmIzM5O2xsIHNldDoKCiogICAqKldvcnRoRnV6emluZzogdHJ1ZSoqIC0gRGVmaW5pdGVseSB3b3J0aCB0aGUgZWZmb3J0LgoqICAgKipGb2N1c1N5bWJvbHM6IGB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmtgLCBgdmlydGlvX3RyYW5zcG9ydF9ldmVudF93b3JrYCwgYHZpcnRpb190cmFuc3BvcnRfcnhfd29ya2AqKiAtIFRoZXNlIHdvcmsgaGFuZGxlcnMgYXJlIHRoZSBjb3JlIG9mIHRoZSBmaXggYW5kIHNob3VsZCBiZSBvdXIgcHJpbWFyeSB0YXJnZXRzLgoqICAgKipFbmFibGVDb25maWdzOiBgVlNPQ0tFVFNgLCBgVklSVElPX1ZTT0NLRVRTYCoqIC0gV2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGVzZSBjb25maWd1cmF0aW9ucyBhcmUgZW5hYmxlZCBmb3IgdGhpcyBjb2RlIHRvIGJlIGNvbXBpbGVkIGFuZCBleGVyY2lzZWQuCiogICAqKlJlYXNvbmluZzoqKiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlIHZ1bG5lcmFiaWxpdHkgd2l0aGluIHZpcnRpbyB2c29jayYjMzk7cyB3b3JrcXVldWUgaGFuZGxlcnMuIEl0IGVuZm9yY2VzIGEgY3JpdGljYWwgYHJ1bmAgZmxhZyBjaGVjayBiZWZvcmUgYWNjZXNzaW5nIHRoZSB2aXJ0cXVldWVzLCB3aGljaCBhcmUgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGh1cywgZnV6emluZyB0aGVzZSB3b3JrIGhhbmRsZXJzIGlzIGNydWNpYWwgZm9yIHZlcmlmeWluZyB0aGUgZml4IGFuZCBlbnN1cmluZyB0aGUgc3RhYmlsaXR5IG9mIHZpcnRpbyB2c29jay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMDM6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZTT0NLRVRTJiMzNDssCiAgICAmIzM0O1ZJUlRJT19WU09DS0VUUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZpcnRpb190cmFuc3BvcnRfdHhfd29yayYjMzQ7LAogICAgJiMzNDt2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmsmIzM0OywKICAgICYjMzQ7dmlydGlvX3RyYW5zcG9ydF9yeF93b3JrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB2aXJ0aW8gdnNvY2sgd29ya3F1ZXVlIGhhbmRsZXJzIGJ5IGNoZWNraW5nIHRoZSBgcnVuYCBmbGFncyBiZWZvcmUgYWNjZXNzaW5nIHRoZSB2aXJ0cXVldWVzLiBUaGVzZSB3b3JrIGhhbmRsZXJzIGFyZSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWU09DS0VUUyYjMzQ7LAogICAgJiMzNDtWSVJUSU9fVlNPQ0tFVFMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmsmIzM0OywKICAgICYjMzQ7dmlydGlvX3RyYW5zcG9ydF9ldmVudF93b3JrJiMzNDssCiAgICAmIzM0O3ZpcnRpb190cmFuc3BvcnRfcnhfd29yayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBudWxsLXBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdmlydGlvIHZzb2NrIHdvcmtxdWV1ZSBoYW5kbGVycyBieSBjaGVja2luZyB0aGUgYHJ1bmAgZmxhZ3MgYmVmb3JlIGFjY2Vzc2luZyB0aGUgdmlydHF1ZXVlcy4gVGhlc2Ugd29yayBoYW5kbGVycyBhcmUgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAzOjI1OjQ1LjU0OTExNzkyNloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyNjI5NDMxNjYxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWU09DS0VUU1wiLFxuICAgIFwiVklSVElPX1ZTT0NLRVRTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmlydGlvX3RyYW5zcG9ydF90eF93b3JrXCIsXG4gICAgXCJ2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtcIixcbiAgICBcInZpcnRpb190cmFuc3BvcnRfcnhfd29ya1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB2aXJ0aW8gdnNvY2sgd29ya3F1ZXVlIGhhbmRsZXJzIGJ5IGNoZWNraW5nIHRoZSBgcnVuYCBmbGFncyBiZWZvcmUgYWNjZXNzaW5nIHRoZSB2aXJ0cXVldWVzLiBUaGVzZSB3b3JrIGhhbmRsZXJzIGFyZSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMzoyNTo0NS41NDkxMjQyODZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5ODcwOTA2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDA3MTI3ZWE4MDNjZmVjMTQ2ZDliZTY4M2QzOGFlZWRkYTYxYWNlNWFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMzEgMDM6MjU6NDQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMgYi9uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuY1xcbmluZGV4IDU3ZjJkNmVjM2ZmYzYuLjk2YzlmZThkMzU3YzYgMTAwNjQ0XFxuLS0tIGEvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNcXG4rKysgYi9uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuY1xcbkBAIC0zNDYsMTIgKzM0NiwxMyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbiBcXHRzdHJ1Y3QgdmlydHF1ZXVlICp2cTtcXG4gXFx0Ym9vbCBhZGRlZCA9IGZhbHNlO1xcbiBcXG4tXFx0dnEgPSB2c29jay1cXHUwMDNldnFzW1ZTT0NLX1ZRX1RYXTtcXG4gXFx0bXV0ZXhfbG9jayhcXHUwMDI2dnNvY2stXFx1MDAzZXR4X2xvY2spO1xcbiBcXG4gXFx0aWYgKCF2c29jay1cXHUwMDNldHhfcnVuKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFxuK1xcdHZxID0gdnNvY2stXFx1MDAzZXZxc1tWU09DS19WUV9UWF07XFxuK1xcbiBcXHRkbyB7XFxuIFxcdFxcdHN0cnVjdCBza19idWZmICpza2I7XFxuIFxcdFxcdHVuc2lnbmVkIGludCBsZW47XFxuQEAgLTQ1MSwxMyArNDUyLDEzIEBAIHN0YXRpYyB2b2lkIHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuIFxcdFxcdGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdmlydGlvX3Zzb2NrLCBldmVudF93b3JrKTtcXG4gXFx0c3RydWN0IHZpcnRxdWV1ZSAqdnE7XFxuIFxcbi1cXHR2cSA9IHZzb2NrLVxcdTAwM2V2cXNbVlNPQ0tfVlFfRVZFTlRdO1xcbi1cXG4gXFx0bXV0ZXhfbG9jayhcXHUwMDI2dnNvY2stXFx1MDAzZWV2ZW50X2xvY2spO1xcbiBcXG4gXFx0aWYgKCF2c29jay1cXHUwMDNlZXZlbnRfcnVuKVxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFxuK1xcdHZxID0gdnNvY2stXFx1MDAzZXZxc1tWU09DS19WUV9FVkVOVF07XFxuK1xcbiBcXHRkbyB7XFxuIFxcdFxcdHN0cnVjdCB2aXJ0aW9fdnNvY2tfZXZlbnQgKmV2ZW50O1xcbiBcXHRcXHR1bnNpZ25lZCBpbnQgbGVuO1xcbkBAIC02MzQsMTIgKzYzNSwxMiBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbiBcXHRcXHRjb250YWluZXJfb2Yod29yaywgc3RydWN0IHZpcnRpb192c29jaywgcnhfd29yayk7XFxuIFxcdHN0cnVjdCB2aXJ0cXVldWUgKnZxO1xcbiBcXG4tXFx0dnEgPSB2c29jay1cXHUwMDNldnFzW1ZTT0NLX1ZRX1JYXTtcXG4tXFxuIFxcdG11dGV4X2xvY2soXFx1MDAyNnZzb2NrLVxcdTAwM2VyeF9sb2NrKTtcXG4gXFxuIFxcdGlmICghdnNvY2stXFx1MDAzZXJ4X3J1bilcXG4tXFx0XFx0Z290byBvdXQ7XFxuK1xcdFxcdGdvdG8gb3V0X25vZmlsbDtcXG4rXFxuK1xcdHZxID0gdnNvY2stXFx1MDAzZXZxc1tWU09DS19WUV9SWF07XFxuIFxcbiBcXHRkbyB7XFxuIFxcdFxcdHZpcnRxdWV1ZV9kaXNhYmxlX2NiKHZxKTtcXG5AQCAtNjkxLDYgKzY5Miw3IEBAIHN0YXRpYyB2b2lkIHZpcnRpb190cmFuc3BvcnRfcnhfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuIG91dDpcXG4gXFx0aWYgKHZzb2NrLVxcdTAwM2VyeF9idWZfbnIgXFx1MDAzYyB2c29jay1cXHUwMDNlcnhfYnVmX21heF9uciAvIDIpXFxuIFxcdFxcdHZpcnRpb192c29ja19yeF9maWxsKHZzb2NrKTtcXG4rb3V0X25vZmlsbDpcXG4gXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ2c29jay1cXHUwMDNlcnhfbG9jayk7XFxuIH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAzOjI1OjQ2LjA0ODQ1Nzg2NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjIyNTc5NDk2NDc5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWU09DS0VUU1wiLFxuICAgIFwiVklSVElPX1ZTT0NLRVRTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmlydGlvX3RyYW5zcG9ydF90eF93b3JrXCIsXG4gICAgXCJ2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtcIixcbiAgICBcInZpcnRpb190cmFuc3BvcnRfcnhfd29ya1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB2aXJ0aW8gdnNvY2sgd29ya3F1ZXVlIGhhbmRsZXJzIGJ5IGNoZWNraW5nIHRoZSBgcnVuYCBmbGFncyBiZWZvcmUgYWNjZXNzaW5nIHRoZSB2aXJ0cXVldWVzLiBUaGVzZSB3b3JrIGhhbmRsZXJzIGFyZSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwNzEyN2VhODAzY2ZlYzE0NmQ5YmU2ODNkMzhhZWVkZGE2MWFjZTVhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMzEgMDM6MjU6NDQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYyBiL25ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jXG5pbmRleCA1N2YyZDZlYzNmZmM2Li45NmM5ZmU4ZDM1N2M2IDEwMDY0NFxuLS0tIGEvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNcbisrKyBiL25ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jXG5AQCAtMzQ2LDEyICszNDYsMTMgQEAgc3RhdGljIHZvaWQgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbiBcdHN0cnVjdCB2aXJ0cXVldWUgKnZxO1xuIFx0Ym9vbCBhZGRlZCA9IGZhbHNlO1xuIFxuLVx0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfVFhdO1xuIFx0bXV0ZXhfbG9jayhcdTAwMjZ2c29jay1cdTAwM2V0eF9sb2NrKTtcbiBcbiBcdGlmICghdnNvY2stXHUwMDNldHhfcnVuKVxuIFx0XHRnb3RvIG91dDtcbiBcbitcdHZxID0gdnNvY2stXHUwMDNldnFzW1ZTT0NLX1ZRX1RYXTtcbitcbiBcdGRvIHtcbiBcdFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbiBcdFx0dW5zaWduZWQgaW50IGxlbjtcbkBAIC00NTEsMTMgKzQ1MiwxMyBAQCBzdGF0aWMgdm9pZCB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0XHRjb250YWluZXJfb2Yod29yaywgc3RydWN0IHZpcnRpb192c29jaywgZXZlbnRfd29yayk7XG4gXHRzdHJ1Y3QgdmlydHF1ZXVlICp2cTtcbiBcbi1cdHZxID0gdnNvY2stXHUwMDNldnFzW1ZTT0NLX1ZRX0VWRU5UXTtcbi1cbiBcdG11dGV4X2xvY2soXHUwMDI2dnNvY2stXHUwMDNlZXZlbnRfbG9jayk7XG4gXG4gXHRpZiAoIXZzb2NrLVx1MDAzZWV2ZW50X3J1bilcbiBcdFx0Z290byBvdXQ7XG4gXG4rXHR2cSA9IHZzb2NrLVx1MDAzZXZxc1tWU09DS19WUV9FVkVOVF07XG4rXG4gXHRkbyB7XG4gXHRcdHN0cnVjdCB2aXJ0aW9fdnNvY2tfZXZlbnQgKmV2ZW50O1xuIFx0XHR1bnNpZ25lZCBpbnQgbGVuO1xuQEAgLTYzNCwxMiArNjM1LDEyIEBAIHN0YXRpYyB2b2lkIHZpcnRpb190cmFuc3BvcnRfcnhfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4gXHRcdGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdmlydGlvX3Zzb2NrLCByeF93b3JrKTtcbiBcdHN0cnVjdCB2aXJ0cXVldWUgKnZxO1xuIFxuLVx0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfUlhdO1xuLVxuIFx0bXV0ZXhfbG9jayhcdTAwMjZ2c29jay1cdTAwM2VyeF9sb2NrKTtcbiBcbiBcdGlmICghdnNvY2stXHUwMDNlcnhfcnVuKVxuLVx0XHRnb3RvIG91dDtcbitcdFx0Z290byBvdXRfbm9maWxsO1xuK1xuK1x0dnEgPSB2c29jay1cdTAwM2V2cXNbVlNPQ0tfVlFfUlhdO1xuIFxuIFx0ZG8ge1xuIFx0XHR2aXJ0cXVldWVfZGlzYWJsZV9jYih2cSk7XG5AQCAtNjkxLDYgKzY5Miw3IEBAIHN0YXRpYyB2b2lkIHZpcnRpb190cmFuc3BvcnRfcnhfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4gb3V0OlxuIFx0aWYgKHZzb2NrLVx1MDAzZXJ4X2J1Zl9uciBcdTAwM2MgdnNvY2stXHUwMDNlcnhfYnVmX21heF9uciAvIDIpXG4gXHRcdHZpcnRpb192c29ja19yeF9maWxsKHZzb2NrKTtcbitvdXRfbm9maWxsOlxuIFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnZzb2NrLVx1MDAzZXJ4X2xvY2spO1xuIH1cbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAzOjI1OjQ2LjA0ODQ1OTAwNloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyMTg2MTM2MDYyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBWaXJ0aW8tVlNPQ0sgUGF0Y2ggZm9yIFBvdGVudGlhbCBWdWxuZXJhYmlsaXRpZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNgLiBJdCdzIHR3ZWFraW5nIGB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmtgLCBgdmlydGlvX3RyYW5zcG9ydF9ldmVudF93b3JrYCwgYW5kIGB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmtgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIHJlLW9yZGVyaW5nIHRoaW5ncy4gVGhlIGFzc2lnbm1lbnQgb2YgYHZxID0gdnNvY2stXHUwMDNldnFzWy4uLl1gIGlzIGJlaW5nIG1vdmVkICphZnRlciogYSBjaGVjayBmb3Igd2hldGhlciB0aGUgdnNvY2sgaXMgc3RpbGwgcnVubmluZy4gSW4gYHJ4X3dvcmtgLCB0aGVyZSdzIGFsc28gYSBgZ290b2AgY2hhbmdlLiBJbnN0ZWFkIG9mIGp1bXBpbmcgdG8gYG91dGAsIGl0IGp1bXBzIHRvIGBvdXRfbm9maWxsYCB3aGVuIHRoZSB2c29jayBpc24ndCBydW5uaW5nLCB3aGljaCB3aWxsIHNraXAgY2FsbGluZyB0aGUgYHZpcnRpb192c29ja19yeF9maWxsKHZzb2NrKWAgZnVuY3Rpb24uXG5cbk15IGluaXRpYWwgdGhvdWdodD8gVGhpcyBzbWVsbHMgbGlrZSBhIGNsYXNzaWMgbWVtb3J5IHNhZmV0eSBmaXguIEl0J3MgbGlrZWx5IGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGR1cmluZyB2c29jayB0ZWFyZG93bi4gQmFzaWNhbGx5LCBpZiB0aGUgdnNvY2sgaXMgYmVpbmcgc2h1dCBkb3duIGNvbmN1cnJlbnRseSwgdGhlIGB2c29jay1cdTAwM2V2cXNgIGFycmF5IG1pZ2h0IGJlY29tZSBpbnZhbGlkIChvciBoYXZlIGFscmVhZHkgYmVlbiBmcmVlZCkgYmVmb3JlIHRob3NlIGVhcmxpZXIgYXNzaWdubWVudHMuIE1vdmluZyB0aGUgYXNzaWdubWVudCAqYWZ0ZXIqIHRoZSBydW4tc3RhdGUgY2hlY2sgcHJldmVudHMgdGhlIGNyYXNoIGJ5IGVuc3VyaW5nIHdlJ3JlIG9ubHkgYWNjZXNzaW5nIHRob3NlIHN0cnVjdHVyZXMgd2hlbiB0aGUgdnNvY2sgaXMgc3RpbGwgYWN0aXZlLiBTbWFydC5cblxuSSBuZWVkIHRvIGNvbmZpcm0gaWYgSSBzZWUgdGhpcyBwYXRjaCwgc28gbGV0IG1lIGRvIGEgcXVpY2sgc2NhbiBvZiB0aGUgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG1vZGlmaWVkOiBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29ya2AsIGFuZCBgdmlydGlvX3RyYW5zcG9ydF9yeF93b3JrYC4gWWVhaCwgdGhlc2UgYXJlIGRlZmluaXRlbHkgd29ya3F1ZXVlIGhhbmRsZXJzIGZvciB2aXJ0aW8gdnNvY2suIFRoZXkncmUgZGVmaW5pdGVseSByZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgbGlrZSBRRU1VIHdpdGggdmlydGlvLXZzb2NrLiBTbyB0aGVzZSBmdW5jdGlvbnMgYXJlIGdvb2QgY2FuZGlkYXRlcyBmb3IgZnV6emluZy5cblxuQWxyaWdodCwgbGV0J3Mgc2VlIGFib3V0IGdldHRpbmcgdGhlIHJpZ2h0IGNvbmZpZyBvcHRpb25zIHRvIHRyaWdnZXIgdGhlc2UgZnVuY3Rpb25zIGFuZCBnZXQgdGhlIHRlc3QgZW52IHNldHVwLiBXaGVyZSBhcmUgdGhlIGNvbmZpZyBvcHRpb25zIGZvciB2aXJ0aW8gdnNvY2sgZGVmaW5lZD8gYG5ldC92bXdfdnNvY2svS2NvbmZpZ2Agb3IgbWF5YmUgYGRyaXZlcnMvdmhvc3QvS2NvbmZpZ2A/IFRpbWUgdG8gZmlndXJlIG91dCB3aGF0IGNvbmZpZyBvcHRpb25zIEkgbmVlZC4gSSdsbCBncmVwIGZvciBgdmlydGlvX3RyYW5zcG9ydC5jYCBpbiBgbmV0L3Ztd192c29jay9NYWtlZmlsZWAgdG8gc2VlIGlmIHRoYXQgZ2l2ZXMgbWUgYW55IGNsdWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTMzLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDM6Mjc6NDcuOTA5ODIyNTE4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxODE2MTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZpcnRpb190cmFuc3BvcnQub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdm13X3Zzb2NrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdm13X3Zzb2NrL01ha2VmaWxlPTQ9b2JqLSQoQ09ORklHX1ZNV0FSRV9WTUNJX1ZTT0NLRVRTKSArPSB2bXdfdnNvY2tfdm1jaV90cmFuc3BvcnQub1xcbm5ldC92bXdfdnNvY2svTWFrZWZpbGU6NTpvYmotJChDT05GSUdfVklSVElPX1ZTT0NLRVRTKSArPSB2bXdfdnNvY2tfdmlydGlvX3RyYW5zcG9ydC5vXFxubmV0L3Ztd192c29jay9NYWtlZmlsZS02LW9iai0kKENPTkZJR19WSVJUSU9fVlNPQ0tFVFNfQ09NTU9OKSArPSB2bXdfdnNvY2tfdmlydGlvX3RyYW5zcG9ydF9jb21tb24ub1xcbi0tXFxubmV0L3Ztd192c29jay9NYWtlZmlsZT0xNT12bXdfdnNvY2tfdm1jaV90cmFuc3BvcnQteSArPSB2bWNpX3RyYW5zcG9ydC5vIHZtY2lfdHJhbnNwb3J0X25vdGlmeS5vIFxcXFxcXG4tLVxcbm5ldC92bXdfdnNvY2svTWFrZWZpbGUtMTctXFxubmV0L3Ztd192c29jay9NYWtlZmlsZToxODp2bXdfdnNvY2tfdmlydGlvX3RyYW5zcG9ydC15ICs9IHZpcnRpb190cmFuc3BvcnQub1xcbm5ldC92bXdfdnNvY2svTWFrZWZpbGUtMTktXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAzOjI3OjQ3Ljk1MTY0NjAxNloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY3MjY2NjAyMzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIFZpcnRpbyB2c29ja2V0cyBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgc28gd2UncmUgdGFsa2luZyBhYm91dCBgQ09ORklHX1ZJUlRJT19WU09DS0VUU2AuIFRoYXQncyB0aGUga2V5IHRvIGVuYWJsaW5nIHZpcnRpby1iYXNlZCB2c29ja2V0IHN1cHBvcnQuIE15IGltbWVkaWF0ZSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biBpbnRvIGl0cyBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3RoZXIgY29uZmlndXJhdGlvbiBvcHRpb25zIGl0IHJlbGllcyBvbiDigJMga2VybmVsIGZlYXR1cmVzLCBvdGhlciB2aXJ0aW8gZGV2aWNlIHN1cHBvcnQsIHBlcmhhcHMgc3BlY2lmaWMgbmV0d29ya2luZyBpbmZyYXN0cnVjdHVyZSBlbGVtZW50cy4gQSBkZWVwIGRpdmUgaW50byBkZXBlbmRlbmNpZXMgaXMgY3J1Y2lhbCBiZWNhdXNlIEkgbmVlZCB0byBncmFzcCB0aGUgZnVsbCBpbXBsaWNhdGlvbnMgb2YgZW5hYmxpbmcgdGhpcyBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgYnJvYWRlciBzeXN0ZW0gYXJjaGl0ZWN0dXJlLiBJdCdzIGFsbCBhYm91dCBlbnN1cmluZyBjb21wYXRpYmlsaXR5IGFuZCBhdm9pZGluZyBhbnkgdW5leHBlY3RlZCBjb25mbGljdHMgZG93biB0aGUgbGluZSwgZXNwZWNpYWxseSBpbiBhIGNvbXBsZXggZW52aXJvbm1lbnQuIExldCdzIHNlZSB3aGF0IHRoZSBLY29uZmlnIGZpbGVzIHJldmVhbC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjc5LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDM6Mjc6NTQuNjc4MzA5MTQzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0NDY1NTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBWSVJUSU9fVlNPQ0tFVFNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3Ztd192c29jay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3Ztd192c29jay9LY29uZmlnPTQxPWNvbmZpZyBWTVdBUkVfVk1DSV9WU09DS0VUU1xcbi0tXFxubmV0L3Ztd192c29jay9LY29uZmlnLTUyLVxcbm5ldC92bXdfdnNvY2svS2NvbmZpZzo1Mzpjb25maWcgVklSVElPX1ZTT0NLRVRTXFxubmV0L3Ztd192c29jay9LY29uZmlnLTU0LVxcdHRyaXN0YXRlIFxcXCJ2aXJ0aW8gdHJhbnNwb3J0IGZvciBWaXJ0dWFsIFNvY2tldHNcXFwiXFxuLS1cXG5uZXQvdm13X3Zzb2NrL0tjb25maWctNjUtXFxubmV0L3Ztd192c29jay9LY29uZmlnOjY2OmNvbmZpZyBWSVJUSU9fVlNPQ0tFVFNfQ09NTU9OXFxubmV0L3Ztd192c29jay9LY29uZmlnLTY3LVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAzOjI3OjU0LjcyMjc4MDUyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQwNzI0MDQ1MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqS2NvbmZpZyBFeHBsb3JhdGlvbioqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBJJ20gdGhpbmtpbmcgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGB2bXdfdnNvY2tgIG1vZHVsZSwgbGlrZWx5IGluIHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtLiBJJ20gZ29pbmcgdG8gcGlucG9pbnQgdGhlIGBLY29uZmlnYCBmaWxlIHdpdGhpbiB0aGUgYG5ldC92bXdfdnNvY2tgIGRpcmVjdG9yeSwgZm9jdXNpbmcgb24gb3IgYXJvdW5kIGxpbmUgNTMuIEknbSBleHBlY3RpbmcgdGhpcyBmaWxlIHRvIGRlZmluZSB0aGUgYnVpbGQtdGltZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMsIGRlcGVuZGVuY2llcywgYW5kIGhlbHAgdGV4dCBhc3NvY2lhdGVkIHdpdGggdGhpcyB2aXJ0dWFsIHNvY2tldCBpbXBsZW1lbnRhdGlvbi4gTXkgZ29hbCBpcyBsaWtlbHkgdG8gaWRlbnRpZnkgdGhlIGtleSBzZXR0aW5ncywgcGVyaGFwcyByZWxhdGVkIHRvIGZlYXR1cmVzLCBkZWJ1Z2dpbmcgb3B0aW9ucywgb3IgaGFyZHdhcmUgc3VwcG9ydCwgdGhhdCBJIG1pZ2h0IG5lZWQgdG8gY29uc2lkZXIgb3IgbW9kaWZ5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgY29udHJvbGxhYmxlIGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwNzgsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMzoyOTowOC43OTUxODcwOThaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTk2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvdm13X3Zzb2NrL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNTAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNTA6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlXFxuICA1MTpcXHRcXHQgIHdpbGwgYmUgY2FsbGVkIHZtd192c29ja192bWNpX3RyYW5zcG9ydC4gSWYgdW5zdXJlLCBzYXkgTi5cXG4gIDUyOlxcdFxcbiAgNTM6XFx0Y29uZmlnIFZJUlRJT19WU09DS0VUU1xcbiAgNTQ6XFx0XFx0dHJpc3RhdGUgXFxcInZpcnRpbyB0cmFuc3BvcnQgZm9yIFZpcnR1YWwgU29ja2V0c1xcXCJcXG4gIDU1OlxcdFxcdGRlcGVuZHMgb24gVlNPQ0tFVFMgXFx1MDAyNlxcdTAwMjYgVklSVElPXFxuICA1NjpcXHRcXHRzZWxlY3QgVklSVElPX1ZTT0NLRVRTX0NPTU1PTlxcbiAgNTc6XFx0XFx0aGVscFxcbiAgNTg6XFx0XFx0ICBUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIGEgdmlydGlvIHRyYW5zcG9ydCBmb3IgVmlydHVhbCBTb2NrZXRzLlxcbiAgNTk6XFx0XFxuICA2MDpcXHRcXHQgIEVuYWJsZSB0aGlzIHRyYW5zcG9ydCBpZiB5b3VyIFZpcnR1YWwgTWFjaGluZSBob3N0IHN1cHBvcnRzIFZpcnR1YWxcXG4gIDYxOlxcdFxcdCAgU29ja2V0cyBvdmVyIHZpcnRpby5cXG4gIDYyOlxcdFxcbiAgNjM6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGwgYmVcXG4gIDY0OlxcdFxcdCAgY2FsbGVkIHZtd192c29ja192aXJ0aW9fdHJhbnNwb3J0LiBJZiB1bnN1cmUsIHNheSBOLlxcbiAgNjU6XFx0XFxuICA2NjpcXHRjb25maWcgVklSVElPX1ZTT0NLRVRTX0NPTU1PTlxcbiAgNjc6XFx0XFx0dHJpc3RhdGVcXG4gIDY4OlxcdFxcdGhlbHBcXG4gIDY5OlxcdFxcdCAgVGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQgYnkgYW55IGRyaXZlciB3aGljaCBuZWVkcyB0byBhY2Nlc3NcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDM6Mjk6MDguNzk1MjYwMzg4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI3Nzk0NjM0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFZpcnRpby1WU09DSyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggcmVsYXRlZCB0byBWaXJ0aW8tVlNPQ0ssIGFuZCBpbW1lZGlhdGVseSBteSBtaW5kIGp1bXBzIHRvIHRoZSBkZXBlbmRlbmNpZXMuIEkgc2VlIG1lbnRpb24gb2YgYFZTT0NLRVRTYCBhbmQgYFZJUlRJT2AsIGFuZCBgVklSVElPX1ZTT0NLRVRTYCBpcyBvYnZpb3VzbHkgaW1wbGljYXRlZC4gSSdsbCBtYWtlIGEgbWVudGFsIG5vdGUgdGhhdCBhbGwgdGhyZWUgb2YgdGhlc2Ugc2hvdWxkIGJlIGVuYWJsZWQsIHRob3VnaCBJIGFsbW9zdCBhbHdheXMgc2VlIGBWSVJUSU9gIGVuYWJsZWQgYnkgZGVmYXVsdCBhbnl3YXkuXG5cbk5vdywgdGhlIHBhdGNoIGxpc3RzIGEgZmV3IG1vZGlmaWVkIGZ1bmN0aW9uczogYHZpcnRpb190cmFuc3BvcnRfdHhfd29ya2AsIGB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtgLCBhbmQgYHZpcnRpb190cmFuc3BvcnRfcnhfd29ya2AuIFRoYXQncyB3aGVyZSB0aGUgY29yZSBjaGFuZ2VzIGFyZSBsaWtlbHkgaGFwcGVuaW5nLCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGVtLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBjaGVjayBpZiB0aGVzZSBhcmUgc3RhdGljIGZ1bmN0aW9ucy4gSWYgdGhleSAqYXJlKiwgdGhleSBtYXkgbm90IGJlIHRoZSBtb3N0IGltcG9ydGFudCBzeW1ib2xzIHRvIGZvY3VzIG9uLCBhcyB0aGV5IGhhdmUgbGltaXRlZCB2aXNpYmlsaXR5LlxuXG5BbHJpZ2h0LCB0aGUgcGF0Y2ggY29uZmlybXMgbXkgc3VzcGljaW9uOiB0aGVzZSBmdW5jdGlvbnMgKmFyZSogZGVjbGFyZWQgYXMgYHN0YXRpY2AuIFNpbmNlIHRoZXkncmUgc3RhdGljLCB0aGUgcmVhbCBxdWVzdGlvbiBiZWNvbWVzIHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZC4gS25vd2luZyB0aGUgY29udGV4dCBvZiB0aGVpciB1c2FnZSB3aWxsIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBwYXRjaCdzIG92ZXJhbGwgaW1wYWN0LiBJJ2xsIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBjb2RlIHRvIGRldGVybWluZSB0aGUgY2FsbCBzaXRlcyBhbmQgaG93IHRoZSBjaGFuZ2VzIGFmZmVjdCB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1OTksIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxODIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMzoyOToxNC4wNzMyMTM2NTJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NTYzNDQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIklOSVRfV09SSy4qdmlydGlvX3RyYW5zcG9ydF8uKl93b3JrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC92bXdfdnNvY2svXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jPTgwMD1zdGF0aWMgaW50IHZpcnRpb192c29ja19wcm9iZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldilcXG4tLVxcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTgyOS1cXHRza2JfcXVldWVfaGVhZF9pbml0KFxcdTAwMjZ2c29jay1cXHUwMDNlc2VuZF9wa3RfcXVldWUpO1xcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjgzMDpcXHRJTklUX1dPUksoXFx1MDAyNnZzb2NrLVxcdTAwM2VyeF93b3JrLCB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmspO1xcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjgzMTpcXHRJTklUX1dPUksoXFx1MDAyNnZzb2NrLVxcdTAwM2V0eF93b3JrLCB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmspO1xcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjgzMjpcXHRJTklUX1dPUksoXFx1MDAyNnZzb2NrLVxcdTAwM2VldmVudF93b3JrLCB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmspO1xcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjgzMzpcXHRJTklUX1dPUksoXFx1MDAyNnZzb2NrLVxcdTAwM2VzZW5kX3BrdF93b3JrLCB2aXJ0aW9fdHJhbnNwb3J0X3NlbmRfcGt0X3dvcmspO1xcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTgzNC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMDM6Mjk6MTQuMTE5Nzg4MjY5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyMDg5MzM0NjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIG15IG93biBtZW50YWwgcHJvY2Vzcywgd2l0aCB0aGUgYm9sZGVkIGhlYWRlciBhcyByZXF1ZXN0ZWQ6XG5cbioqRGVjb25zdHJ1Y3RpbmcgQXN5bmNocm9ub3VzIFdvcmtxdWV1ZSBIYW5kbGVycyBpbiBWaXJ0aW8tVlNPQ0sqKlxuXG5SaWdodCwgc28gd2UncmUgZGVhbGluZyB3aXRoIHdvcmtxdWV1ZSBoYW5kbGVycyBoZXJlLiBUaGUga2V5IHBvaW50IGlzIHRoYXQgdGhleSdyZSAqYXN5bmNocm9ub3VzKiwgbWVhbmluZyB0aGV5J3JlIG5vdCBleGVjdXRlZCBpbW1lZGlhdGVseSBpbiB0aGUgY3VycmVudCBjb250ZXh0LiBUaGF0IGltcGxpZXMgYSBkZWxheSwgcG9zc2libHkgYmFzZWQgb24gc29tZSBldmVudCBvciBzY2hlZHVsaW5nIGRlY2lzaW9uLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXM6IHdoYXQgYWN0dWFsbHkga2lja3MgdGhlc2UgaGFuZGxlcnMgaW50byBhY3Rpb24/IFdoYXTigJlzIHRoZSB0cmlnZ2VyP1xuXG5MZXQncyBzZWXigKYgQWgsICpgdmlydGlvX3Zzb2NrX3Byb2JlYCogaW5pdGlhbGl6ZXMgdGhlbS4gVGhhdOKAmXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBTbywgdGhlIHByb2JlIGZ1bmN0aW9uIHNldHMgdGhlbSB1cCwgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgKnJ1biogdGhlbS4gTXkgZm9jdXMgbm93IHNoaWZ0cyB0byBmaWd1cmluZyBvdXQgd2hhdCBldmVudHMgb3IgY29kZSBwYXRocyBhY3R1YWxseSAqcXVldWUqIHRoZXNlIGhhbmRsZXJzLiBVbmRlcnN0YW5kaW5nIHRoZSBxdWV1aW5nIG1lY2hhbmlzbSBpcyBjcml0aWNhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSB3b3JrZmxvdywgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucywgYW5kIG92ZXJhbGwgcGVyZm9ybWFuY2UgY2hhcmFjdGVyaXN0aWNzIG9mIHRoaXMgVmlydGlvLVZTT0NLIGltcGxlbWVudGF0aW9uLiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGwgcGF0aHMgZnJvbSBgdmlydGlvX3Zzb2NrX3Byb2JlYCBhbmQgaWRlbnRpZnkgdGhlIGZ1bmN0aW9ucyByZXNwb25zaWJsZSBmb3Igc3VibWl0dGluZyB0aGUgd29yayB0byB0aGUgcXVldWUuIFRoYXQncyB3aGVyZSB0aGUgcmVhbCBtZWF0IG9mIHRoZSBvcGVyYXRpb24gbGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTM3MiwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDAzOjI5OjE4LjMyODcyNDQ3NloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDUyMzE2NjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicXVldWVfd29yay4qcnhfd29ya1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdm13X3Zzb2NrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYz0xNTg9dmlydGlvX3RyYW5zcG9ydF9zZW5kX3BrdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTIxMC1cXHRpZiAocmVzdGFydF9yeClcXG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYzoyMTE6XFx0XFx0cXVldWVfd29yayh2aXJ0aW9fdnNvY2tfd29ya3F1ZXVlLCBcXHUwMDI2dnNvY2stXFx1MDAzZXJ4X3dvcmspO1xcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTIxMi19XFxuLS1cXG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYz0yODA9dmlydGlvX3RyYW5zcG9ydF9jYW5jZWxfcGt0KHN0cnVjdCB2c29ja19zb2NrICp2c2spXFxuLS1cXG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYy0zMDAtXFx0XFx0ICAgIG5ld19jbnQgXFx1MDAzYyB2aXJ0cXVldWVfZ2V0X3ZyaW5nX3NpemUocnhfdnEpKVxcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jOjMwMTpcXHRcXHRcXHRxdWV1ZV93b3JrKHZpcnRpb192c29ja193b3JrcXVldWUsIFxcdTAwMjZ2c29jay1cXHUwMDNlcnhfd29yayk7XFxubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmMtMzAyLVxcdH1cXG4tLVxcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jPTQ5OD1zdGF0aWMgdm9pZCB2aXJ0aW9fdnNvY2tfcnhfZG9uZShzdHJ1Y3QgdmlydHF1ZXVlICp2cSlcXG4tLVxcbm5ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydC5jLTUwMy1cXHRcXHRyZXR1cm47XFxubmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmM6NTA0OlxcdHF1ZXVlX3dvcmsodmlydGlvX3Zzb2NrX3dvcmtxdWV1ZSwgXFx1MDAyNnZzb2NrLVxcdTAwM2VyeF93b3JrKTtcXG5uZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnQuYy01MDUtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMzoyOToxOC4zNzM5NjI0NjRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTMzNzczMDI3MjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBWaXJ0aW8gVlNvY2sgUGF0Y2ggZm9yIEZ1enppbmcgT3Bwb3J0dW5pdGllcyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGlkZW50aWZ5IHRoZSBrZXkgZnVuY3Rpb25zIG9yIGNvZGUgcGF0aHMgYWZmZWN0ZWQgYnkgdGhpcyBwYXRjaC4gIGB2aXJ0aW9fdnNvY2tfcnhfZG9uZWAgaXMgdGhlIHByaW1hcnkgdmlydHF1ZXVlIGNhbGxiYWNrOyB0aGF0J3MgdGhlIHN0YXJ0aW5nIHBvaW50LiAgYHZpcnRpb192c29ja190eF9kb25lYCBhbmQgYHZpcnRpb192c29ja19ldmVudF9kb25lYCBsaWtlbHkgcXVldWUgb3RoZXIgd29yay4gIFNpbmNlIHRoZXNlIHdvcmsgaGFuZGxlcnMgYXJlIHN0YXRpYywgbXkgZmlyc3QgaW5jbGluYXRpb24gaXMgdG8gemVybyBpbiBvbiAqd2hlcmUqIHRoZXkncmUgcXVldWVkLCBvciBwb3NzaWJseSB0aGUgaGFuZGxlcnMgdGhlbXNlbHZlcyBpZiB0aGV5J3JlIHN1YnN0YW50aWFsLlxuXG5BaGEsIHRoZSB3b3JrIGhhbmRsZXJzIGFyZSBwYXNzZWQgYXMgZnVuY3Rpb24gcG9pbnRlcnMgdG8gYElOSVRfV09SS2AuICBUaGF0J3MgaW1wb3J0YW50LiAgQmVjYXVzZSB0aGVpciBhZGRyZXNzZXMgYXJlIHRha2VuLCB0aGUgY29tcGlsZXIgY2FuJ3QgaW5saW5lIHRoZW0uICBUaGVyZWZvcmUsIGB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmtgLCBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYW5kIGB2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtgIHdpbGwgZGVmaW5pdGVseSBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgYW5kIHRoYXQgdGhleSBhcmUgd29ydGggaW52ZXN0aWdhdGluZy4gTGV0IG1lIHF1aWNrbHkgdmVyaWZ5IHRoZXkgYXJlIGluIGB2aXJ0aW9fdHJhbnNwb3J0LmNgLiBZZXAsIHRoZXJlIHRoZXkgYXJlLlxuXG5Ob3csIGxldCBtZSBkb3VibGUgY2hlY2sgdGhhdCB0aGlzIGlzIHRoZSBmdWxsIHBpY3R1cmUuIFRoZSBwYXRjaCBtb2RpZmllcyB0aG9zZSB3b3JrIGhhbmRsZXJzIGRpcmVjdGx5LiBUaGF0IGNvbmZpcm1zIG15IGZvY3VzIGlzIGNvcnJlY3RseSBwbGFjZWQgb24gYHZpcnRpb190cmFuc3BvcnRfcnhfd29ya2AsIGB2aXJ0aW9fdHJhbnNwb3J0X3R4X3dvcmtgLCBhbmQgYHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29ya2AuXG5cbk5leHQsIEkgbmVlZCB0byBjaGVjayBmb3IgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBBaCwgYFZTT0NLRVRTYCBhbmQgYFZJUlRJT19WU09DS0VUU2AuIEdvdCBpdC5cblxuQW55dGhpbmcgZWxzZSBvZiBub3RlPyAgVGhlIHBhdGNoIGlzIHdpdGhpbiBgbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0LmNgLiAgVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlbGF0ZWQgdG8gdmlydGlvIHZzb2NrLiBTcGVjaWZpY2FsbHksIGl0IGd1YXJkcyBhZ2FpbnN0IGEgcG90ZW50aWFsIGJ1ZyB3aGVyZSBgdnNvY2stXHUwMDNldnFzW1ZTT0NLX1ZRX1RYXWAgaXMgYWNjZXNzZWQgd2l0aG91dCBmaXJzdCBjaGVja2luZyBgdnNvY2stXHUwMDNldHhfcnVuYC4gIElmIGB2c29jay1cdTAwM2V0eF9ydW5gIGlzIGZhbHNlLCBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgdnNvY2sgaXMgYmVpbmcgcmVtb3ZlZCBvciBpcyBub3QgZnVsbHkgaW5pdGlhbGl6ZWQsIG1ha2luZyB0aGUgYHZxc2AgcG9pbnRlciBwb3RlbnRpYWxseSBpbnZhbGlkIG9yIE5VTEwuIFRoaXMgaXMgYSBjbGFzc2ljIGNvbmN1cnJlbmN5IGJ1ZywgYW5kIGRlZmluaXRlbHkgYSBnb29kIHRhcmdldC5cblxuVGhlcmVmb3JlLCBmb3IgZnV6emluZywgSSdsbCBzZXQ6XG5cbiogICAqKldvcnRoRnV6emluZzogdHJ1ZSoqIC0gRGVmaW5pdGVseSB3b3J0aCB0aGUgZWZmb3J0LlxuKiAgICoqRm9jdXNTeW1ib2xzOiBgdmlydGlvX3RyYW5zcG9ydF90eF93b3JrYCwgYHZpcnRpb190cmFuc3BvcnRfZXZlbnRfd29ya2AsIGB2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmtgKiogLSBUaGVzZSB3b3JrIGhhbmRsZXJzIGFyZSB0aGUgY29yZSBvZiB0aGUgZml4IGFuZCBzaG91bGQgYmUgb3VyIHByaW1hcnkgdGFyZ2V0cy5cbiogICAqKkVuYWJsZUNvbmZpZ3M6IGBWU09DS0VUU2AsIGBWSVJUSU9fVlNPQ0tFVFNgKiogLSBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZXNlIGNvbmZpZ3VyYXRpb25zIGFyZSBlbmFibGVkIGZvciB0aGlzIGNvZGUgdG8gYmUgY29tcGlsZWQgYW5kIGV4ZXJjaXNlZC5cbiogICAqKlJlYXNvbmluZzoqKiBUaGUgcGF0Y2ggYWRkcmVzc2VzIGEgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlIHZ1bG5lcmFiaWxpdHkgd2l0aGluIHZpcnRpbyB2c29jaydzIHdvcmtxdWV1ZSBoYW5kbGVycy4gSXQgZW5mb3JjZXMgYSBjcml0aWNhbCBgcnVuYCBmbGFnIGNoZWNrIGJlZm9yZSBhY2Nlc3NpbmcgdGhlIHZpcnRxdWV1ZXMsIHdoaWNoIGFyZSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaHVzLCBmdXp6aW5nIHRoZXNlIHdvcmsgaGFuZGxlcnMgaXMgY3J1Y2lhbCBmb3IgdmVyaWZ5aW5nIHRoZSBmaXggYW5kIGVuc3VyaW5nIHRoZSBzdGFiaWxpdHkgb2YgdmlydGlvIHZzb2NrLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTEyLCJPdXRwdXRUb2tlbnMiOjEzMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUwOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQwMzoyOTozMS43NTEyNjgxNDJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjE1MDk1NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVlNPQ0tFVFNcIixcbiAgICBcIlZJUlRJT19WU09DS0VUU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZpcnRpb190cmFuc3BvcnRfdHhfd29ya1wiLFxuICAgIFwidmlydGlvX3RyYW5zcG9ydF9ldmVudF93b3JrXCIsXG4gICAgXCJ2aXJ0aW9fdHJhbnNwb3J0X3J4X3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBudWxsLXBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdmlydGlvIHZzb2NrIHdvcmtxdWV1ZSBoYW5kbGVycyBieSBjaGVja2luZyB0aGUgYHJ1bmAgZmxhZ3MgYmVmb3JlIGFjY2Vzc2luZyB0aGUgdmlydHF1ZXVlcy4gVGhlc2Ugd29yayBoYW5kbGVycyBhcmUgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWU09DS0VUU1wiLFxuICAgIFwiVklSVElPX1ZTT0NLRVRTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmlydGlvX3RyYW5zcG9ydF90eF93b3JrXCIsXG4gICAgXCJ2aXJ0aW9fdHJhbnNwb3J0X2V2ZW50X3dvcmtcIixcbiAgICBcInZpcnRpb190cmFuc3BvcnRfcnhfd29ya1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB2aXJ0aW8gdnNvY2sgd29ya3F1ZXVlIGhhbmRsZXJzIGJ5IGNoZWNraW5nIHRoZSBgcnVuYCBmbGFncyBiZWZvcmUgYWNjZXNzaW5nIHRoZSB2aXJ0cXVldWVzLiBUaGVzZSB3b3JrIGhhbmRsZXJzIGFyZSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowt44sm[1] Phase: Succeeded StartedAt: 2026-07-31 03:30:02 +0000 UTC FinishedAt: 2026-07-31 03:30:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-31 03:30:02 +0000 UTC FinishedAt: 2026-07-31 03:30:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2] Phase: Succeeded StartedAt: 2026-07-31 03:30:02 +0000 UTC FinishedAt: 2026-07-31 07:13:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-31 03:30:02 +0000 UTC FinishedAt: 2026-07-31 07:13:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-31 03:30:02 +0000 UTC FinishedAt: 2026-07-31 03:30:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-31 03:30:02 +0000 UTC FinishedAt: 2026-07-31 03:30:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowt44sm/series-workflowt44sm-convert-artifact-13795393/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-31 03:30:13 +0000 UTC FinishedAt: 2026-07-31 03:50:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-31 03:30:13 +0000 UTC FinishedAt: 2026-07-31 03:50:56 +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:*c24f83ff-8361-4286-8a47-fe9556aa9340,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-workflowt44sm/series-workflowt44sm-convert-artifact-13795393/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": "88eb2bc7-0491-46ec-ae41-b0d9e3e9d436", "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-workflowt44sm/series-workflowt44sm-build-action-3135219311/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-31 03:30:13 +0000 UTC FinishedAt: 2026-07-31 03:50:21 +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:*c24f83ff-8361-4286-8a47-fe9556aa9340,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-workflowt44sm/series-workflowt44sm-convert-artifact-13795393/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": "88eb2bc7-0491-46ec-ae41-b0d9e3e9d436", "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-workflowt44sm/series-workflowt44sm-build-action-3135219311/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-31 03:50:56 +0000 UTC FinishedAt: 2026-07-31 03:50:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-31 03:50:56 +0000 UTC FinishedAt: 2026-07-31 03:50:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-31 03:50:56 +0000 UTC FinishedAt: 2026-07-31 03:51:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-31 03:50:56 +0000 UTC FinishedAt: 2026-07-31 03:51:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowt44sm/series-workflowt44sm-convert-artifact-1785870356/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-31 03:51:06 +0000 UTC FinishedAt: 2026-07-31 03:53:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-31 03:51:06 +0000 UTC FinishedAt: 2026-07-31 03:53:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*88eb2bc7-0491-46ec-ae41-b0d9e3e9d436,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-workflowt44sm/series-workflowt44sm-build-action-3135219311/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-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-31 03:53:12 +0000 UTC FinishedAt: 2026-07-31 03:53:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-31 03:53:12 +0000 UTC FinishedAt: 2026-07-31 03:53:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-31 03:53:12 +0000 UTC FinishedAt: 2026-07-31 04:09:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-31 03:53:12 +0000 UTC FinishedAt: 2026-07-31 04:09:53 +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:*c24f83ff-8361-4286-8a47-fe9556aa9340,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-workflowt44sm/series-workflowt44sm-convert-artifact-1785870356/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": "52e26f99-4e79-4b9f-a00e-7fe25538c522", "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-workflowt44sm/series-workflowt44sm-build-action-3753550048/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-31 03:53:12 +0000 UTC FinishedAt: 2026-07-31 04:09:43 +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:*c24f83ff-8361-4286-8a47-fe9556aa9340,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-workflowt44sm/series-workflowt44sm-convert-artifact-1785870356/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": "52e26f99-4e79-4b9f-a00e-7fe25538c522", "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-workflowt44sm/series-workflowt44sm-build-action-3753550048/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-31 04:09:53 +0000 UTC FinishedAt: 2026-07-31 04:09:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-31 04:09:53 +0000 UTC FinishedAt: 2026-07-31 04:09:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-31 04:09:53 +0000 UTC FinishedAt: 2026-07-31 04:11:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-31 04:09:53 +0000 UTC FinishedAt: 2026-07-31 04:11:49 +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:*52e26f99-4e79-4b9f-a00e-7fe25538c522,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-workflowt44sm/series-workflowt44sm-build-action-3753550048/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-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-31 04:11:59 +0000 UTC FinishedAt: 2026-07-31 07:13:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-31 04:11:59 +0000 UTC FinishedAt: 2026-07-31 07:13:18 +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","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"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:*88eb2bc7-0491-46ec-ae41-b0d9e3e9d436,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*52e26f99-4e79-4b9f-a00e-7fe25538c522,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-workflowt44sm/series-workflowt44sm-build-action-3135219311/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-workflowt44sm/series-workflowt44sm-build-action-3753550048/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-31 04:11:59 +0000 UTC FinishedAt: 2026-07-31 04:12:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-31 04:11:59 +0000 UTC FinishedAt: 2026-07-31 04:12:06 +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","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"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-workflowt44sm/series-workflowt44sm-convert-artifact-2313289277/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-31 04:11:59 +0000 UTC FinishedAt: 2026-07-31 04:11:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-31 04:11:59 +0000 UTC FinishedAt: 2026-07-31 04:11:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-31 04:11:59 +0000 UTC FinishedAt: 2026-07-31 04:11:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-31 04:12:09 +0000 UTC FinishedAt: 2026-07-31 07:13:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt44sm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["kvm","net"],"focus_symbols":["virtio_transport_tx_work","virtio_transport_event_work","virtio_transport_rx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["VSOCKETS","VIRTIO_VSOCKETS"],"series_id":"866205c5-3b37-45b9-baa4-e1092b04b47b","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-31 04:12:09 +0000 UTC FinishedAt: 2026-07-31 07:13:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*88eb2bc7-0491-46ec-ae41-b0d9e3e9d436,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*52e26f99-4e79-4b9f-a00e-7fe25538c522,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-workflowt44sm/series-workflowt44sm-build-action-3135219311/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-workflowt44sm/series-workflowt44sm-build-action-3753550048/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-workflowt44sm/series-workflowt44sm-convert-artifact-2313289277/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,}