Name: series-workflowdjjxh Phase: Failed StartedAt: 2026-07-05 19:11:23 +0000 UTC FinishedAt: 2026-07-05 19:28:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdjjxh[0] Phase: Succeeded StartedAt: 2026-07-05 19:11:23 +0000 UTC FinishedAt: 2026-07-05 19:28:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdjjxh[0].run-triage Phase: Succeeded StartedAt: 2026-07-05 19:11:23 +0000 UTC FinishedAt: 2026-07-05 19:28:46 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgaGFyZHdhcmUtc3BlY2lmaWMgcXVpcmtzIGZvciBwaHlzaWNhbCBTRlAgbW9kdWxlcy4gVGhlIGNvZGUgcmVsaWVzIG9uIHJlYWRpbmcgdGhlIG1vZHVsZSYjMzk7cyBFRVBST00gb3ZlciBJMkMgYW5kIHZhbGlkYXRpbmcgaXRzIGNoZWNrc3VtLCB3aGljaCBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUvR0NFIHdpdGhvdXQgYSBkZWRpY2F0ZWQgaGFyZHdhcmUgbW9jay4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwMGUzNzc2ZDc2MjU1M2I1OTJmNTExMWQ2ZjI4YTcxMzg1NzgxNGM3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgNSAxOToyNzowMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvc2ZwLmMgYi9kcml2ZXJzL25ldC9waHkvc2ZwLmNcbmluZGV4IGY1MjAyMDY3MzRkYWFhLi5lYWUwNjk5MWNjNGQ1ZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvcGh5L3NmcC5jXG5AQCAtNTE2LDYgJiM0Mzs1MTYsMTMgQEAgc3RhdGljIHZvaWQgc2ZwX3F1aXJrX3VibnRfdWZfaW5zdGFudChjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQsXG4gXHR7IC52ZW5kb3IgPSBfdiwgLnBhcnQgPSBfcCwgLnN1cHBvcnQgPSBfcywgLmZpeHVwID0gX2YsIH1cbiAjZGVmaW5lIFNGUF9RVUlSS19TKF92LCBfcCwgX3MpIFNGUF9RVUlSSyhfdiwgX3AsIF9zLCBOVUxMKVxuICNkZWZpbmUgU0ZQX1FVSVJLX0YoX3YsIF9wLCBfZikgU0ZQX1FVSVJLKF92LCBfcCwgTlVMTCwgX2YpXG4mIzQzOy8qIExpa2UgU0ZQX1FVSVJLX0YsIGJ1dCBtYXRjaGVzIGFzIGEgcHJlZml4LiBVc2UgZm9yIGNsb25lIG1vZHVsZXNcbiYjNDM7ICogdGhhdCBmaWxsIEVFUFJPTSB0cmFpbGluZyBieXRlcyB3aXRoIGdhcmJhZ2UgaW5zdGVhZCBvZiB0aGVcbiYjNDM7ICogU0ZGLTg0NzItbWFuZGF0ZWQgc3BhY2UgcGFkZGluZywgc28gc2ZwX3N0cmxlbiBjYW4mIzM5O3QgdHJpbSB0aGVcbiYjNDM7ICogZmllbGQgZG93biB0byB0aGUgbGVnaXRpbWF0ZSBsZW5ndGguXG4mIzQzOyAqL1xuJiM0MzsjZGVmaW5lIFNGUF9RVUlSS19GX1BSRUZJWChfdiwgX3AsIF9mKSBcXFxuJiM0MztcdHsgLnZlbmRvciA9IF92LCAucGFydCA9IF9wLCAuc3VwcG9ydCA9IE5VTEwsIC5maXh1cCA9IF9mLCAucHJlZml4X21hdGNoID0gdHJ1ZSB9XG4gXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0ge1xuIFx0Ly8gQWxjYXRlbCBMdWNlbnQgRy0wMTBTLVAgY2FuIG9wZXJhdGUgYXQgMjUwMGJhc2UtWCwgYnV0IGluY29ycmVjdGx5XG5AQCAtNTQ4LDYgJiM0Mzs1NTUsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0ge1xuIFx0U0ZQX1FVSVJLKFwmIzM0O0ZTXCYjMzQ7LCBcJiMzNDtHUE9OLU9OVS0zNC0yMEJJXCYjMzQ7LCBzZnBfcXVpcmtfMjUwMGJhc2V4LFxuIFx0XHQgIHNmcF9maXh1cF9pZ25vcmVfdHhfZmF1bHQpLFxuIFxuJiM0MztcdC8vIEZpYmVyc3RvcmUgWEdTLVNGUC1PTlQtTUFDSSBpcyBhIE1BQy1tb2RlIFhHUy1QT04gT05UIHN0aWNrIHdpdGhcbiYjNDM7XHQvLyBPTlQtY2xhc3Mgc2VyaWFsLXBhc3N0aHJvdWdoIFRYX0ZBVUxUL0xPUyB3aXJpbmcgYW5kIHNsb3cgc3RhcnR1cDtcbiYjNDM7XHQvLyBtYXNrIGJvdGggc2lnbmFscyBhbmQgZXh0ZW5kIFRfU1RBUlRfVVAgdmlhIHRoZSBwb3Ryb24gZml4dXAuIFRoZVxuJiM0MztcdC8vIEVFUFJPTSB2ZW5kb3IgUE4gZmllbGQgaXMgbm90IHNwYWNlLXBhZGRlZCBwYXN0IHRoZSBsZWdpdGltYXRlXG4mIzQzO1x0Ly8gc3RyaW5nLCBzbyBtYXRjaCBpdCBhcyBhIHByZWZpeC5cbiYjNDM7XHRTRlBfUVVJUktfRl9QUkVGSVgoXCYjMzQ7RlNcJiMzNDssIFwmIzM0O1hHUy1TRlAtT05ULU1BQ0lcJiMzNDssIHNmcF9maXh1cF9wb3Ryb24pLFxuJiM0MztcbiBcdFNGUF9RVUlSS19GKFwmIzM0O0hBTE55XCYjMzQ7LCBcJiMzNDtITC1HU0ZQXCYjMzQ7LCBzZnBfZml4dXBfaGFsbnlfZ3NmcCksXG4gXG4gXHRTRlBfUVVJUktfRihcJiMzNDtILUNPTVwmIzM0OywgXCYjMzQ7U1BQNDI1SC1HQUI0XCYjMzQ7LCBzZnBfZml4dXBfcG90cm9uKSxcbkBAIC02MDUsNiAmIzQzOzYxOSwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayBzZnBfcXVpcmtzW10gPSB7XG4gXHRTRlBfUVVJUktfUyhcJiMzNDtPRU1cJiMzNDssIFwmIzM0O1NGUC0yLjVHLUxIMjAtQVwmIzM0Oywgc2ZwX3F1aXJrXzI1MDBiYXNleCksXG4gXHRTRlBfUVVJUktfRihcJiMzNDtPRU1cJiMzNDssIFwmIzM0O1JUU0ZQLTEwXCYjMzQ7LCBzZnBfZml4dXBfcm9sbGJhbGxfY2MpLFxuIFx0U0ZQX1FVSVJLX0YoXCYjMzQ7T0VNXCYjMzQ7LCBcJiMzNDtSVFNGUC0xMEdcJiMzNDssIHNmcF9maXh1cF9yb2xsYmFsbF9jYyksXG4mIzQzO1xuJiM0MztcdC8vIE9FTSBYR1NQT05TVDIwMDEgaXMgYW4gWEdTLVBPTiBPTlQgc3RpY2sgd2l0aCBicm9rZW4gVFhfRkFVTFQgYW5kXG4mIzQzO1x0Ly8gTE9TIGluZGljYXRvcnMgYW5kIHNsb3cgc3RhcnR1cCwganVzdCBsaWtlIHBvdHJvbi4gVGhlIEVFUFJPTVxuJiM0MztcdC8vIHZlbmRvciBQTiBmaWVsZCBpcyBmaWxsZWQgd2l0aCBub24tcHJpbnRhYmxlIGdhcmJhZ2UgcGFzdCB0aGVcbiYjNDM7XHQvLyBsZWdpdGltYXRlIHN0cmluZyBpbnN0ZWFkIG9mIHNwYWNlIHBhZGRpbmcsIHNvIG1hdGNoIGl0IGFzIGFcbiYjNDM7XHQvLyBwcmVmaXguXG4mIzQzO1x0U0ZQX1FVSVJLX0ZfUFJFRklYKFwmIzM0O09FTVwmIzM0OywgXCYjMzQ7WEdTUE9OU1QyMDAxXCYjMzQ7LCBzZnBfZml4dXBfcG90cm9uKSxcbiYjNDM7XG4gXHRTRlBfUVVJUktfRihcJiMzNDtUdXJyaXNcJiMzNDssIFwmIzM0O1JUU0ZQLTIuNUdcJiMzNDssIHNmcF9maXh1cF9yb2xsYmFsbCksXG4gXHRTRlBfUVVJUktfRihcJiMzNDtUdXJyaXNcJiMzNDssIFwmIzM0O1JUU0ZQLTEwXCYjMzQ7LCBzZnBfZml4dXBfcm9sbGJhbGwpLFxuIFx0U0ZQX1FVSVJLX0YoXCYjMzQ7VHVycmlzXCYjMzQ7LCBcJiMzNDtSVFNGUC0xMEdcJiMzNDssIHNmcF9maXh1cF9yb2xsYmFsbCksXG5AQCAtNjI2LDEzICYjNDM7NjQ4LDE2IEBAIHN0YXRpYyBzaXplX3Qgc2ZwX3N0cmxlbihjb25zdCBjaGFyICpzdHIsIHNpemVfdCBtYXhsZW4pXG4gXHRyZXR1cm4gc2l6ZTtcbiB9XG4gXG4tc3RhdGljIGJvb2wgc2ZwX21hdGNoKGNvbnN0IGNoYXIgKnFzLCBjb25zdCBjaGFyICpzdHIsIHNpemVfdCBsZW4pXG4mIzQzO3N0YXRpYyBib29sIHNmcF9tYXRjaChjb25zdCBjaGFyICpxcywgY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVuLCBib29sIHByZWZpeClcbiB7XG4mIzQzO1x0c2l6ZV90IHFzX2xlbjtcbiYjNDM7XG4gXHRpZiAoIXFzKVxuIFx0XHRyZXR1cm4gdHJ1ZTtcbi1cdGlmIChzdHJsZW4ocXMpICE9IGxlbilcbiYjNDM7XHRxc19sZW4gPSBzdHJsZW4ocXMpO1xuJiM0MztcdGlmIChwcmVmaXggPyBxc19sZW4gXHUwMDNlIGxlbiA6IHFzX2xlbiAhPSBsZW4pXG4gXHRcdHJldHVybiBmYWxzZTtcbi1cdHJldHVybiAhc3RybmNtcChxcywgc3RyLCBsZW4pO1xuJiM0MztcdHJldHVybiAhc3RybmNtcChxcywgc3RyLCBxc19sZW4pO1xuIH1cbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpXG5AQCAtNjQ1LDggJiM0Mzs2NzAsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgKnNmcF9sb29rdXBfcXVpcmsoY29uc3Qgc3RydWN0IHNmcF9lZXByb21faWQgKmlkKVxuIFx0cHMgPSBzZnBfc3RybGVuKGlkLVx1MDAzZWJhc2UudmVuZG9yX3BuLCBBUlJBWV9TSVpFKGlkLVx1MDAzZWJhc2UudmVuZG9yX3BuKSk7XG4gXG4gXHRmb3IgKGkgPSAwLCBxID0gc2ZwX3F1aXJrczsgaSBcdTAwM2MgQVJSQVlfU0laRShzZnBfcXVpcmtzKTsgaSYjNDM7JiM0MzssIHEmIzQzOyYjNDM7KVxuLVx0XHRpZiAoc2ZwX21hdGNoKHEtXHUwMDNldmVuZG9yLCBpZC1cdTAwM2ViYXNlLnZlbmRvcl9uYW1lLCB2cykgXHUwMDI2XHUwMDI2XG4tXHRcdCAgICBzZnBfbWF0Y2gocS1cdTAwM2VwYXJ0LCBpZC1cdTAwM2ViYXNlLnZlbmRvcl9wbiwgcHMpKVxuJiM0MztcdFx0aWYgKHNmcF9tYXRjaChxLVx1MDAzZXZlbmRvciwgaWQtXHUwMDNlYmFzZS52ZW5kb3JfbmFtZSwgdnMsXG4mIzQzO1x0XHRcdCAgICAgIHEtXHUwMDNlcHJlZml4X21hdGNoKSBcdTAwMjZcdTAwMjZcbiYjNDM7XHRcdCAgICBzZnBfbWF0Y2gocS1cdTAwM2VwYXJ0LCBpZC1cdTAwM2ViYXNlLnZlbmRvcl9wbiwgcHMsXG4mIzQzO1x0XHRcdCAgICAgIHEtXHUwMDNlcHJlZml4X21hdGNoKSlcbiBcdFx0XHRyZXR1cm4gcTtcbiBcbiBcdHJldHVybiBOVUxMO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuaCBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuaFxuaW5kZXggODc5ZGZmN2FmZTZhNDEuLjg2N2U0NWVmYmYzZjFlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvcGh5L3NmcC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9waHkvc2ZwLmhcbkBAIC0xMiw2ICYjNDM7MTIsNyBAQCBzdHJ1Y3Qgc2ZwX3F1aXJrIHtcbiBcdHZvaWQgKCpzdXBwb3J0KShjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQsXG4gXHRcdFx0c3RydWN0IHNmcF9tb2R1bGVfY2FwcyAqY2Fwcyk7XG4gXHR2b2lkICgqZml4dXApKHN0cnVjdCBzZnAgKnNmcCk7XG4mIzQzO1x0Ym9vbCBwcmVmaXhfbWF0Y2g7XG4gfTtcbiBcbiBzdHJ1Y3Qgc2ZwX3NvY2tldF9vcHMge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgaGFyZHdhcmUtc3BlY2lmaWMgcXVpcmtzIGZvciBwaHlzaWNhbCBTRlAgbW9kdWxlcy4gVGhlIGNvZGUgcmVsaWVzIG9uIHJlYWRpbmcgdGhlIG1vZHVsZSYjMzk7cyBFRVBST00gb3ZlciBJMkMgYW5kIHZhbGlkYXRpbmcgaXRzIGNoZWNrc3VtLCB3aGljaCBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUvR0NFIHdpdGhvdXQgYSBkZWRpY2F0ZWQgaGFyZHdhcmUgbW9jay4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDAwZTM3NzZkNzYyNTUzYjU5MmY1MTExZDZmMjhhNzEzODU3ODE0YzcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1bCA1IDE5OjI3OjAzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5jIGIvZHJpdmVycy9uZXQvcGh5L3NmcC5jCmluZGV4IGY1MjAyMDY3MzRkYWFhLi5lYWUwNjk5MWNjNGQ1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3NmcC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuYwpAQCAtNTE2LDYgJiM0Mzs1MTYsMTMgQEAgc3RhdGljIHZvaWQgc2ZwX3F1aXJrX3VibnRfdWZfaW5zdGFudChjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQsCiAJeyAudmVuZG9yID0gX3YsIC5wYXJ0ID0gX3AsIC5zdXBwb3J0ID0gX3MsIC5maXh1cCA9IF9mLCB9CiAjZGVmaW5lIFNGUF9RVUlSS19TKF92LCBfcCwgX3MpIFNGUF9RVUlSSyhfdiwgX3AsIF9zLCBOVUxMKQogI2RlZmluZSBTRlBfUVVJUktfRihfdiwgX3AsIF9mKSBTRlBfUVVJUksoX3YsIF9wLCBOVUxMLCBfZikKJiM0MzsvKiBMaWtlIFNGUF9RVUlSS19GLCBidXQgbWF0Y2hlcyBhcyBhIHByZWZpeC4gVXNlIGZvciBjbG9uZSBtb2R1bGVzCiYjNDM7ICogdGhhdCBmaWxsIEVFUFJPTSB0cmFpbGluZyBieXRlcyB3aXRoIGdhcmJhZ2UgaW5zdGVhZCBvZiB0aGUKJiM0MzsgKiBTRkYtODQ3Mi1tYW5kYXRlZCBzcGFjZSBwYWRkaW5nLCBzbyBzZnBfc3RybGVuIGNhbiYjMzk7dCB0cmltIHRoZQomIzQzOyAqIGZpZWxkIGRvd24gdG8gdGhlIGxlZ2l0aW1hdGUgbGVuZ3RoLgomIzQzOyAqLwomIzQzOyNkZWZpbmUgU0ZQX1FVSVJLX0ZfUFJFRklYKF92LCBfcCwgX2YpIFwKJiM0MzsJeyAudmVuZG9yID0gX3YsIC5wYXJ0ID0gX3AsIC5zdXBwb3J0ID0gTlVMTCwgLmZpeHVwID0gX2YsIC5wcmVmaXhfbWF0Y2ggPSB0cnVlIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0gewogCS8vIEFsY2F0ZWwgTHVjZW50IEctMDEwUy1QIGNhbiBvcGVyYXRlIGF0IDI1MDBiYXNlLVgsIGJ1dCBpbmNvcnJlY3RseQpAQCAtNTQ4LDYgJiM0Mzs1NTUsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0gewogCVNGUF9RVUlSSygmIzM0O0ZTJiMzNDssICYjMzQ7R1BPTi1PTlUtMzQtMjBCSSYjMzQ7LCBzZnBfcXVpcmtfMjUwMGJhc2V4LAogCQkgIHNmcF9maXh1cF9pZ25vcmVfdHhfZmF1bHQpLAogCiYjNDM7CS8vIEZpYmVyc3RvcmUgWEdTLVNGUC1PTlQtTUFDSSBpcyBhIE1BQy1tb2RlIFhHUy1QT04gT05UIHN0aWNrIHdpdGgKJiM0MzsJLy8gT05ULWNsYXNzIHNlcmlhbC1wYXNzdGhyb3VnaCBUWF9GQVVMVC9MT1Mgd2lyaW5nIGFuZCBzbG93IHN0YXJ0dXA7CiYjNDM7CS8vIG1hc2sgYm90aCBzaWduYWxzIGFuZCBleHRlbmQgVF9TVEFSVF9VUCB2aWEgdGhlIHBvdHJvbiBmaXh1cC4gVGhlCiYjNDM7CS8vIEVFUFJPTSB2ZW5kb3IgUE4gZmllbGQgaXMgbm90IHNwYWNlLXBhZGRlZCBwYXN0IHRoZSBsZWdpdGltYXRlCiYjNDM7CS8vIHN0cmluZywgc28gbWF0Y2ggaXQgYXMgYSBwcmVmaXguCiYjNDM7CVNGUF9RVUlSS19GX1BSRUZJWCgmIzM0O0ZTJiMzNDssICYjMzQ7WEdTLVNGUC1PTlQtTUFDSSYjMzQ7LCBzZnBfZml4dXBfcG90cm9uKSwKJiM0MzsKIAlTRlBfUVVJUktfRigmIzM0O0hBTE55JiMzNDssICYjMzQ7SEwtR1NGUCYjMzQ7LCBzZnBfZml4dXBfaGFsbnlfZ3NmcCksCiAKIAlTRlBfUVVJUktfRigmIzM0O0gtQ09NJiMzNDssICYjMzQ7U1BQNDI1SC1HQUI0JiMzNDssIHNmcF9maXh1cF9wb3Ryb24pLApAQCAtNjA1LDYgJiM0Mzs2MTksMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0gewogCVNGUF9RVUlSS19TKCYjMzQ7T0VNJiMzNDssICYjMzQ7U0ZQLTIuNUctTEgyMC1BJiMzNDssIHNmcF9xdWlya18yNTAwYmFzZXgpLAogCVNGUF9RVUlSS19GKCYjMzQ7T0VNJiMzNDssICYjMzQ7UlRTRlAtMTAmIzM0Oywgc2ZwX2ZpeHVwX3JvbGxiYWxsX2NjKSwKIAlTRlBfUVVJUktfRigmIzM0O09FTSYjMzQ7LCAmIzM0O1JUU0ZQLTEwRyYjMzQ7LCBzZnBfZml4dXBfcm9sbGJhbGxfY2MpLAomIzQzOwomIzQzOwkvLyBPRU0gWEdTUE9OU1QyMDAxIGlzIGFuIFhHUy1QT04gT05UIHN0aWNrIHdpdGggYnJva2VuIFRYX0ZBVUxUIGFuZAomIzQzOwkvLyBMT1MgaW5kaWNhdG9ycyBhbmQgc2xvdyBzdGFydHVwLCBqdXN0IGxpa2UgcG90cm9uLiBUaGUgRUVQUk9NCiYjNDM7CS8vIHZlbmRvciBQTiBmaWVsZCBpcyBmaWxsZWQgd2l0aCBub24tcHJpbnRhYmxlIGdhcmJhZ2UgcGFzdCB0aGUKJiM0MzsJLy8gbGVnaXRpbWF0ZSBzdHJpbmcgaW5zdGVhZCBvZiBzcGFjZSBwYWRkaW5nLCBzbyBtYXRjaCBpdCBhcyBhCiYjNDM7CS8vIHByZWZpeC4KJiM0MzsJU0ZQX1FVSVJLX0ZfUFJFRklYKCYjMzQ7T0VNJiMzNDssICYjMzQ7WEdTUE9OU1QyMDAxJiMzNDssIHNmcF9maXh1cF9wb3Ryb24pLAomIzQzOwogCVNGUF9RVUlSS19GKCYjMzQ7VHVycmlzJiMzNDssICYjMzQ7UlRTRlAtMi41RyYjMzQ7LCBzZnBfZml4dXBfcm9sbGJhbGwpLAogCVNGUF9RVUlSS19GKCYjMzQ7VHVycmlzJiMzNDssICYjMzQ7UlRTRlAtMTAmIzM0Oywgc2ZwX2ZpeHVwX3JvbGxiYWxsKSwKIAlTRlBfUVVJUktfRigmIzM0O1R1cnJpcyYjMzQ7LCAmIzM0O1JUU0ZQLTEwRyYjMzQ7LCBzZnBfZml4dXBfcm9sbGJhbGwpLApAQCAtNjI2LDEzICYjNDM7NjQ4LDE2IEBAIHN0YXRpYyBzaXplX3Qgc2ZwX3N0cmxlbihjb25zdCBjaGFyICpzdHIsIHNpemVfdCBtYXhsZW4pCiAJcmV0dXJuIHNpemU7CiB9CiAKLXN0YXRpYyBib29sIHNmcF9tYXRjaChjb25zdCBjaGFyICpxcywgY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVuKQomIzQzO3N0YXRpYyBib29sIHNmcF9tYXRjaChjb25zdCBjaGFyICpxcywgY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVuLCBib29sIHByZWZpeCkKIHsKJiM0MzsJc2l6ZV90IHFzX2xlbjsKJiM0MzsKIAlpZiAoIXFzKQogCQlyZXR1cm4gdHJ1ZTsKLQlpZiAoc3RybGVuKHFzKSAhPSBsZW4pCiYjNDM7CXFzX2xlbiA9IHN0cmxlbihxcyk7CiYjNDM7CWlmIChwcmVmaXggPyBxc19sZW4gJmd0OyBsZW4gOiBxc19sZW4gIT0gbGVuKQogCQlyZXR1cm4gZmFsc2U7Ci0JcmV0dXJuICFzdHJuY21wKHFzLCBzdHIsIGxlbik7CiYjNDM7CXJldHVybiAhc3RybmNtcChxcywgc3RyLCBxc19sZW4pOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpCkBAIC02NDUsOCAmIzQzOzY3MCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpCiAJcHMgPSBzZnBfc3RybGVuKGlkLSZndDtiYXNlLnZlbmRvcl9wbiwgQVJSQVlfU0laRShpZC0mZ3Q7YmFzZS52ZW5kb3JfcG4pKTsKIAogCWZvciAoaSA9IDAsIHEgPSBzZnBfcXVpcmtzOyBpICZsdDsgQVJSQVlfU0laRShzZnBfcXVpcmtzKTsgaSYjNDM7JiM0MzssIHEmIzQzOyYjNDM7KQotCQlpZiAoc2ZwX21hdGNoKHEtJmd0O3ZlbmRvciwgaWQtJmd0O2Jhc2UudmVuZG9yX25hbWUsIHZzKSAmYW1wOyZhbXA7Ci0JCSAgICBzZnBfbWF0Y2gocS0mZ3Q7cGFydCwgaWQtJmd0O2Jhc2UudmVuZG9yX3BuLCBwcykpCiYjNDM7CQlpZiAoc2ZwX21hdGNoKHEtJmd0O3ZlbmRvciwgaWQtJmd0O2Jhc2UudmVuZG9yX25hbWUsIHZzLAomIzQzOwkJCSAgICAgIHEtJmd0O3ByZWZpeF9tYXRjaCkgJmFtcDsmYW1wOwomIzQzOwkJICAgIHNmcF9tYXRjaChxLSZndDtwYXJ0LCBpZC0mZ3Q7YmFzZS52ZW5kb3JfcG4sIHBzLAomIzQzOwkJCSAgICAgIHEtJmd0O3ByZWZpeF9tYXRjaCkpCiAJCQlyZXR1cm4gcTsKIAogCXJldHVybiBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5oIGIvZHJpdmVycy9uZXQvcGh5L3NmcC5oCmluZGV4IDg3OWRmZjdhZmU2YTQxLi44NjdlNDVlZmJmM2YxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3NmcC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuaApAQCAtMTIsNiAmIzQzOzEyLDcgQEAgc3RydWN0IHNmcF9xdWlyayB7CiAJdm9pZCAoKnN1cHBvcnQpKGNvbnN0IHN0cnVjdCBzZnBfZWVwcm9tX2lkICppZCwKIAkJCXN0cnVjdCBzZnBfbW9kdWxlX2NhcHMgKmNhcHMpOwogCXZvaWQgKCpmaXh1cCkoc3RydWN0IHNmcCAqc2ZwKTsKJiM0MzsJYm9vbCBwcmVmaXhfbWF0Y2g7CiB9OwogCiBzdHJ1Y3Qgc2ZwX3NvY2tldF9vcHMgewo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzY2CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMjAyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkV2YWx1YXRpbmcgdGhlIFNGUCBNb2R1bGUgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9waHkvc2ZwLmNgIGFuZCBgZHJpdmVycy9uZXQvcGh5L3NmcC5oYC4gSXQgc2VlbXMgdGhleSYjMzk7cmUgaW50cm9kdWNpbmcgYSBuZXcgcXVpcmssIGBTRlBfUVVJUktfRl9QUkVGSVhgLCB3aGljaCBpcyBhbGwgYWJvdXQgcHJlZml4IG1hdGNoaW5nIGZvciB0aGVzZSBTRlAgbW9kdWxlcy4gQmFzaWNhbGx5LCBpdOKAmXMgYWRkaW5nIG1vcmUgZmxleGliaWxpdHkgdG8gaG93IHdlIGlkZW50aWZ5IGFuZCBoYW5kbGUgdGhlc2UgdHJhbnNjZWl2ZXJzLiBUaGUgY2hhbmdlcyBtb2RpZnkgYHNmcF9tYXRjaGAgdG8gaW5jb3Jwb3JhdGUgYSBgYm9vbCBwcmVmaXhgIGFyZ3VtZW50IGFuZCBhZGFwdHMgYHNmcF9sb29rdXBfcXVpcmtgIHRvIGxldmVyYWdlIHRoaXMgbmV3IHBhcmFtZXRlci4gVGhleSYjMzk7dmUgYWxzbyBhZGRlZCBhIGNvdXBsZSBvZiBuZXcgcXVpcmtzIHV0aWxpemluZyB0aGlzIG1hY3JvLgoKRnVuY3Rpb25hbGx5LCBJIHRoaW5rIGl04oCZcyBzb3VuZC4gSXQgZGVmaW5pdGVseSBjaGFuZ2VzIHRoZSBtYXRjaGluZyBsb2dpYyBhbmQgZXhwYW5kcyB0aGUgcXVpcmsgZGF0YWJhc2UsIHdoaWNoIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIEJ1dCwgdGhlIHF1ZXN0aW9uIG9mIHJlYWNoYWJpbGl0eSBjb21lcyB0byBtaW5kLiBUaGVzZSBhcmUsIGFmdGVyIGFsbCwgcGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlcy4gSSBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhpcyBhZmZlY3RzIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiBIb3cgYXJlIHdlIGdvaW5nIHRvIHRlc3QgdGhpcz8gQ2FuIHdlIGV2ZW4gZWZmZWN0aXZlbHkgZW11bGF0ZSBTRlAgbW9kdWxlcyBpbiBRRU1VIHRvIGVuc3VyZSB0aGUgYWRkZWQgcXVpcmtzIGJlaGF2ZSBhcyBpbnRlbmRlZD8gSSYjMzk7bGwgbmVlZCB0byBjaGVjayBmb3IgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSBmb3IgU0ZQIG1vZHVsZXMgd2l0aGluIHRoZSBrZXJuZWwgdG8gZGV0ZXJtaW5lIHRoZSBmZWFzaWJpbGl0eSBvZiBjb21wbGV0ZSB0ZXN0aW5nLiBJJiMzOTtsbCBzZWFyY2ggdGhlIGtlcm5lbCBmb3IgYHNmcGAgdG8gc2VlIHdoYXQgY29tZXMgdXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2ZwX21hdGNoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L3NmcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9zZnAuYz02Mzc9c3RhdGljIHNpemVfdCBzZnBfc3RybGVuKGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IG1heGxlbilcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtNjUwLVxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjY1MTpzdGF0aWMgYm9vbCBzZnBfbWF0Y2goY29uc3QgY2hhciAqcXMsIGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IGxlbiwgYm9vbCBwcmVmaXgpXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtNjUyLXtcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM9NjYzPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2ZwX3F1aXJrICpzZnBfbG9va3VwX3F1aXJrKGNvbnN0IHN0cnVjdCBzZnBfZWVwcm9tX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtNjcyLVx0Zm9yIChpID0gMCwgcSA9IHNmcF9xdWlya3M7IGkgXHUwMDNjIEFSUkFZX1NJWkUoc2ZwX3F1aXJrcyk7IGkmIzQzOyYjNDM7LCBxJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYzo2NzM6XHRcdGlmIChzZnBfbWF0Y2gocS1cdTAwM2V2ZW5kb3IsIGlkLVx1MDAzZWJhc2UudmVuZG9yX25hbWUsIHZzLFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTY3NC1cdFx0XHQgICAgICBxLVx1MDAzZXByZWZpeF9tYXRjaCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9waHkvc2ZwLmM6Njc1Olx0XHQgICAgc2ZwX21hdGNoKHEtXHUwMDNlcGFydCwgaWQtXHUwMDNlYmFzZS52ZW5kb3JfcG4sIHBzLFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTY3Ni1cdFx0XHQgICAgICBxLVx1MDAzZXByZWZpeF9tYXRjaCkpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDIzMwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBTRlAgRHJpdmVyOiBJbml0aWFsIEFzc2Vzc21lbnQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHNmcC5jYCBkcml2ZXIsIHdoaWNoIGhhbmRsZXMgdGhvc2UgU0ZQIGNhZ2VzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7Q2FuIHdlIGZ1enogdGhpcyB0aGluZz8mIzM0OyBJdCYjMzk7cyBjbGVhciBmcm9tIHRoZSBjb2RlIHRoYXQgaXQmIzM5O3MgcmVseWluZyBvbiBJMkMgdG8gcmVhZCBFRVBST00gZGF0YS4gVGhhdCBvcGVucyB1cCBzb21lIGludGVyZXN0aW5nIHBvc3NpYmlsaXRpZXMuCgpUaGUgZmlyc3QgcXVlc3Rpb24gaXMgKmhvdyouIElmIHdlJiMzOTt2ZSBnb3QgYW4gSTJDIGRldmljZSBlbXVsYXRpb24gc2V0dXAsIG9yIGJldHRlciB5ZXQsIGlmIHN5emthbGxlciBjYW4gaW5qZWN0IEkyQyB0cmFmZmljIGRpcmVjdGx5LCB0aGVuIG1heWJlIHdlIGNhbi4gQnV0LCBJIG5lZWQgdG8gcmVtaW5kIG15c2VsZiBob3cgc3l6a2FsbGVyIGhhbmRsZXMgSTJDLiBJIHZhZ3VlbHkgcmVjYWxsIGl0IGhhcyBzb21lIEkyQyBmdXp6aW5nIGNhcGFiaWxpdGllcyB1c2luZyBgL2Rldi9pMmMtKmAgZGV2aWNlcy4gSG93ZXZlciwgSSYjMzk7bSBwcmV0dHkgc3VyZSB0aGF0JiMzOTtzIG1haW5seSBmb3IgZnV6emluZyB1c2VyLXNwYWNlIGFwcGxpY2F0aW9ucyBpbnRlcmFjdGluZyB3aXRoIEkyQyBkZXZpY2VzLCBvciBwb3NzaWJseSBmb3IgaW5qZWN0aW5nIEkyQyAqcmVzcG9uc2VzKiB0byBhIGRyaXZlci4KCldhaXQgYSBzZWNvbmTigKYgZG9lcyB0aGUgYHNmcGAgZHJpdmVyIGFjdHVhbGx5IHJlZ2lzdGVyIGFzIGFuIEkyQyBjbGllbnQ/IFRoYXQmIzM5O3MgdGhlIGNydWNpYWwgcXVlc3Rpb24uIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGUgYHNmcGAgZHJpdmVyIGdldHMgcHJvYmVkIGFuZCBpbnRlcmFjdHMgd2l0aCB0aGUgSTJDIGJ1cy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCBpdCBpcyBhbiBJMkMgY2xpZW50IGFuZCBob3cgaXQgaXMgYmVpbmcgdXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBTRlAgbW9kdWxlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9pMmNfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L3NmcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjkzCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byBgc2ZwLmNgIEluaXRpYWxpemF0aW9uKioKCk9rYXksIHNvIEkgd2FudCB0byBnZXQgYSBoYW5kbGUgb24gaG93IGBzZnAuY2AgaXMgaW5pdGlhbGl6ZWQuIEkmIzM5O20gc3BlY2lmaWNhbGx5IGludGVyZXN0ZWQgaW4gdGhlIHN0YXJ0dXAgc2VxdWVuY2Ug4oCTIHdoYXQmIzM5O3MgaGFwcGVuaW5nIGZpcnN0IGFuZCB3aGF0IGRlcGVuZGVuY2llcyBhcmUgaW4gcGxheS4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBkYXRhIHN0cnVjdHVyZXMgaXQgdXNlcywgYW5kIGhvdyB0aGV5IGdldCBwb3B1bGF0ZWQuIEFyZSB3ZSB0YWxraW5nIGFib3V0IHN0YXRpYyBpbml0aWFsaXphdGlvbiwgb3IgaXMgdGhlcmUgYSBtb3JlIGR5bmFtaWMgYXBwcm9hY2ggaGFwcGVuaW5nPyBJJiMzOTtsbCBwcm9iYWJseSBzdGFydCBieSBsb29raW5nIGZvciB0aGUgZW50cnkgcG9pbnQsIGxpa2VseSBgbWFpbmAgb3Igc29tZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBjYWxsZWQgZWFybHkgaW4gdGhlIGJvb3QgcHJvY2Vzcy4gRnJvbSB0aGVyZSwgSSYjMzk7bGwgdHJhY2UgdGhyb3VnaCB0aGUgY2FsbHMsIG5vdGluZyB0aGUgaW1wb3J0YW50IHZhcmlhYmxlcyBhbmQgYW55IGV4dGVybmFsIGRlcGVuZGVuY2llcy4gSSYjMzk7bSBrZWVuIHRvIHVuZGVyc3RhbmQgdGhlIGludGVyYWN0aW9ucyB3aXRoIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlLCBpZiBhbnksIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSB1bnVzdWFsIGluaXRpYWxpemF0aW9uIHBhdHRlcm5zIG9yIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMgdGhhdCBtaWdodCBiZWNvbWUgYXBwYXJlbnQuIEkgYWxzbyB3YW50IHRvIG1ha2Ugc3VyZSBJIGRvbiYjMzk7dCBtaXNzIGFueSBzdWJ0bGUsIGJ1dCBjcml0aWNhbCwgc3RlcHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9zZnAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDk2MwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gc2ZwLmM6IFRoZSBFbmQgaXMgdGhlIEJlZ2lubmluZyAob3IgYXQgbGVhc3QsIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCkqKgoKT2theSwgdGltZSB0byBnZXQgYSBncmlwIG9uIHRoaXMuIFdoZXJlIGFyZSB3ZSwgcmVhbGx5PyBMZXQmIzM5O3MgYXNzdW1lIHRoZSBoaWdoLWxldmVsIGFyY2hpdGVjdHVyZSBpcyBzb2xpZCAoZm9yIG5vdyEpLCBhbmQgdGhlIGlzc3VlcyBhcmVuJiMzOTt0IGltbWVkaWF0ZWx5IHNjcmVhbWluZyBhdCB1cyBmcm9tIHRoZSBtYWluIHJvdXRpbmVzLiBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgY29tcGxleCBzeXN0ZW1zIG9mdGVuIGhhdmUgdGhlaXIgJiMzOTtnb3RjaGFzJiMzOTsgbmVzdGxlZCBpbiB0aGUgZGV0YWlscyDigJMgdGhlIGVkZ2UgY2FzZXMsIHRoZSBjbGVhbnVwLCB0aGUgaW5pdGlhbGl6YXRpb24sIHRoZSBzaHV0ZG93bi4KClNvLCBhIGxvZ2ljYWwgbmV4dCBzdGVwIGlzIHRvIGhlYWQgc3RyYWlnaHQgdG8gdGhlIGJvdHRvbSBvZiBgc2ZwLmNgLiBGb3JnZXQgdGhlIHRvcCBmb3IgYSBtb21lbnQ7IGl0JiMzOTtzIHRoZSBlbmQgb2YgYSBDIGZpbGUgdGhhdCB0eXBpY2FsbHkgaG9sZHMgdGhlIGluaXRpYWxpemF0aW9uL2RlLWluaXRpYWxpemF0aW9uL2NsZWFudXAgY29kZSBvciwgdGhlIGNvcmUgZnVuY3Rpb25zIG9uIHdoaWNoIG90aGVycyBidWlsZC4gVW5kZXJzdGFuZGluZyB0aGVzZSAmIzM0O2ZpbmFsJiMzNDsgc2VjdGlvbnMgb2Z0ZW4gcmV2ZWFscyB0aGUgZGVwZW5kZW5jaWVzLCByZXNvdXJjZSBtYW5hZ2VtZW50LCBhbmQgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyB0aGF0IG1pZ2h0IGV4cGxhaW4gYW55IG9ic2VydmVkIGJlaGF2aW9yLiBUaGlzICYjMzk7Ym90dG9tLXVwJiMzOTsgYXBwcm9hY2ggY2FuIHF1aWNrbHkgc3VyZmFjZSBmdW5kYW1lbnRhbCBhc3N1bXB0aW9ucyBvciBvdmVybG9va2VkIGludGVyYWN0aW9ucy4gSXQmIzM5O3MgYWJvdXQgZ3JvdW5kaW5nIG15c2VsZiBpbiB0aGUgaW1wbGVtZW50YXRpb24gc3BlY2lmaWNzIGJlZm9yZSBnZXR0aW5nIGxvc3QgaW4gdGhlIGFic3RyYWN0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlXy4qZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L3NmcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9zZnAuYz0zNDgwPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNmcF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTM0ODktXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM6MzQ5MDptb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHNmcF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTM0OTEtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzNDYKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBsYXRmb3JtIERyaXZlciBhbmQgU3l6a2FsbGVyJiMzOTtzIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIsIHNlZW1zIHRvIGJlIGEgcGxhdGZvcm0gZHJpdmVyIG9mIHNvbWUga2luZC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O0NhbiBzeXprYWxsZXIgZXZlbiBnZXQgYXQgdGhpcyBgc2ZwX2xvb2t1cF9xdWlya2AgZnVuY3Rpb24/JiMzNDsgVGhhdCYjMzk7cyB0aGUgcmVhbCBxdWVzdGlvbi4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGF0dGFjayBzdXJmYWNlLgoKTm93LCBgc2ZwX2xvb2t1cF9xdWlya2AsIGlmIEkmIzM5O20gcmVtZW1iZXJpbmcgcmlnaHQsIGlzIGNhbGxlZCBzcGVjaWZpY2FsbHkgZHVyaW5nIFNGUCBtb2R1bGUgaW5zZXJ0aW9uIG9yIHByb2Jpbmcg4oCTIHRoYXQmIzM5O3MgdGhlIHRyaWdnZXIgSSYjMzk7bSBpbnRlcmVzdGVkIGluLiBTbywgdG8gZ2V0IHN5emthbGxlciB0byBoaXQgaXQsIEkgaGF2ZSB0byB0cmFjZSBob3cgdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZC4gVGltZSB0byBzZWUgd2hlcmUgdGhhdCBmdW5jdGlvbiBpcyBhY3R1YWxseSBpbnZva2VkLiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGxpbmcgcGF0aC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2ZwX2xvb2t1cF9xdWlyayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9zZnAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvc2ZwLmM9NjUxPXN0YXRpYyBib29sIHNmcF9tYXRjaChjb25zdCBjaGFyICpxcywgY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVuLCBib29sIHByZWZpeClcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtNjYyLVxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjY2MzpzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtNjY0LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM9MjQ5ND1zdGF0aWMgaW50IHNmcF9zbV9tb2RfcHJvYmUoc3RydWN0IHNmcCAqc2ZwLCBib29sIHJlcG9ydClcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtMjY2OC1cbmRyaXZlcnMvbmV0L3BoeS9zZnAuYzoyNjY5Olx0c2ZwLVx1MDAzZXF1aXJrID0gc2ZwX2xvb2t1cF9xdWlyayhcdTAwMjZpZCk7XG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtMjY3MC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTg0NQoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDE4MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgU0ZQIE1vZHVsZSBQcm9iZSoqCgpPa2F5LCBzbyBgc2ZwX3NtX21vZF9wcm9iZWAgaXMgdHJpZ2dlcmVkIGJ5IHRoZSBTRlAgc3RhdGUgbWFjaGluZSwgbW9zdCBsaWtlbHkgZnJvbSBhbiBldmVudCB3aXRoaW4gdGhlIHN0YXRlIG1hY2hpbmUgbGlrZSBgc2ZwX3NtX2V2ZW50YC4gVGhhdCBtYWtlcyBzZW5zZS4gVGhlIGNydWNpYWwgcXVlc3Rpb24gaXMgaG93ICp0aGF0KiBzdGF0ZSBtYWNoaW5lIGdldHMgYWN0aXZhdGVkLiBJdCBsb29rcyBsaWtlIGl0JiMzOTtzIGRyaXZlbiBieSBHUElPIGludGVycnVwdHMsIHNpZ25hbGluZyBtb2R1bGUgaW5zZXJ0aW9uLCBvciBwb3RlbnRpYWxseSB0aHJvdWdoIHBvbGxpbmcuIAoKTm93LCBjYW4gSSBsZXZlcmFnZSBzeXprYWxsZXIgdG8gYWN0dWFsbHkgKnRlc3QqIHRoaXM/IFRoZSBjaGFsbGVuZ2UgaXMgaW4gZW11bGF0aW5nIHRoZSBoYXJkd2FyZS4gSSBuZWVkIGEgd2F5IHRvIG1vY2sgdXAgYSBwbGF0Zm9ybSBkZXZpY2UgY29tcGxldGUgd2l0aCB0aGUgbmVjZXNzYXJ5IEdQSU9zIGFuZCBJMkMgYnVzZXMgdGhhdCB0aGUgU0ZQIGNvZGUgZXhwZWN0cy4gSSBrbm93IHRoYXQgcGxhdGZvcm0gZGV2aWNlcyBhcmUgdHlwaWNhbGx5IGRlc2NyaWJlZCB0aHJvdWdoIERldmljZSBUcmVlIG9yIEFDUEkuIFN5emthbGxlciAqZG9lcyogaGF2ZSBtZWNoYW5pc21zIHRvIGluamVjdCBwbGF0Zm9ybSBkZXZpY2VzLCBsaWtlbHkgdXNpbmcgc29tZXRoaW5nIGxpa2UgYHN5el9kZXZfcGxhdGZvcm1gIG9yIGEgc2ltaWxhciBmdW5jdGlvbiBjYWxsLiBIb3dldmVyLCB0aGUgY29tcGxleGl0eSBoZXJlIGlzIHNpZ25pZmljYW50LiBJJiMzOTttIGltYWdpbmluZyBzcGVjaWZpYyBEZXZpY2UgVHJlZSBub2RlcyBkZWZpbmluZyBhbiBTRlAgY2FnZSwgY29tcGxldGUgd2l0aCB0aGUgaW50cmljYXRlIGRldGFpbHMgb2YgdGhlIEkyQyBidXMgYW5kIHRoZSBhc3NvY2lhdGVkIEdQSU9zLiBJdCBzZWVtcyB1bmxpa2VseSB0aGF0IHN0YW5kYXJkIHN5emthbGxlciwgd2l0aG91dCBjdXN0b20gZGVzY3JpcHRpb25zLCB3b3VsZCBzdXBwb3J0IHRoaXMga2luZCBvZiBkZXRhaWxlZCBjb25maWd1cmF0aW9uIG91dC1vZi10aGUtYm94LiBJdCYjMzk7cyBwcm9iYWJseSB0b28gbmljaGUgdG8gYmUgZ2VuZXJpYy4KCkFjdHVhbGx5LCBiZWZvcmUgSSBnZXQgdG9vIGRlZXAgaW4sIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBvYnZpb3VzLiBEb2VzIHN5emthbGxlciBldmVuICpmdXp6KiBTRlAgbW9kdWxlcyBkaXJlY3RseT8gTGV0JiMzOTtzIHF1aWNrbHkgc2VhcmNoIGZvciBleGlzdGluZyBzeXprYWxsZXIgZGVzY3JpcHRpb25zIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgU0ZQIGZ1bmN0aW9uYWxpdHkuIFRoYXQmIzM5O2xsIHNhdmUgYSBsb3Qgb2YgdGltZSBpZiBzb21lb25lIGVsc2UgaGFzIGFscmVhZHkgdGFja2xlZCB0aGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NmcCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NDAzCgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMTYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIHRoZSBTRlAgRUVQUk9NIFF1aXJrcyBDb2RlKioKCk9rYXksIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCBob3cgcmVhY2hhYmxlIHRoaXMgbmV3IGNvZGUgaXMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHRoZSBhY2Nlc3MgcGF0aC4gSWYgaXQmIzM5O3MgYSBwbGF0Zm9ybSBkcml2ZXIsIHRoZW4gdGhlIHVzdWFsIHN1c3BlY3RzIGFwcGx5OiBhIGRldmljZSB0cmVlIG5vZGUgd2l0aCB0aGUgJiMzNDtzZmYsc2ZwJiMzNDsgY29tcGF0aWJsZSBzdHJpbmcuIE5vdywgcmVhbGlzdGljYWxseSwgU3l6a2FsbGVyIHVzdWFsbHkgZG9lc24mIzM5O3QganVzdCAqbWFnaWNhbGx5KiBpbmplY3QgYXJiaXRyYXJ5IGRldmljZSB0cmVlIG5vZGVzIHVubGVzcyB0aGVyZSYjMzk7cyBzb21lIHNvcnQgb2Ygc3BlY2lmaWNhbGx5IGRlZmluZWQgcHNldWRvLWRldmljZSwgb3IgaXQmIzM5O3MgcGFydCBvZiB0aGUgYmFzZSBpbWFnZSBzZXR1cC4gU28sIHRoYXQmIzM5O3Mgc29tZXRoaW5nIHRvIGltbWVkaWF0ZWx5IGNvbnNpZGVyLgoKVGhlIG5leHQgcXVlc3Rpb24gaXMsIGlzIGl0IGV2ZW4gd29ydGggdGhlIGVmZm9ydCB0byBmdXp6IGl0PyBUaGlzIHBhdGNoLCBmcm9tIHdoYXQgSSYjMzk7bSBzZWVpbmcsIHNlZW1zIHRvIGltcGxlbWVudCBhIGZhaXJseSBzdHJhaWdodGZvcndhcmQgc3RyaW5nIG1hdGNoaW5nIGxvZ2ljIHJlbGF0ZWQgdG8gU0ZQIEVFUFJPTSBxdWlya3MuIEl0JiMzOTtzIGhhcmR3YXJlLXNwZWNpZmljLCBmb2N1c2luZyBvbiBTRlAgdHJhbnNjZWl2ZXJzLCBzbyByaWdodCBhd2F5IEkmIzM5O20gd29uZGVyaW5nIGFib3V0IHJlYWNoYWJpbGl0eSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFVubGVzcyB3ZSYjMzk7dmUgZ290IGFuIEkyQyBtb2NrICphbmQqIGEgcGxhdGZvcm0gZGV2aWNlIG1vY2sgZm9yIFNGUCwgdGhlIG9kZHMgc2VlbSBzbGltLiBTbywgYXMgYSBmaXJzdCBzdGVwLCBsZXQmIzM5O3MgY2hlY2sgdGhlIGtlcm5lbCBzb3VyY2UgLSBpcyB0aGVyZSBhIG1vY2sgU0ZQIGFueXdoZXJlIHRoYXQgY291bGQgYXNzaXN0IHVzIGluIHRlc3RpbmcgdGhpcyBjb2RlPwoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZmYsc2ZwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL2dwaW8tbGluZS1tdXgueWFtbD03Nj1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9ncGlvLWxpbmUtbXV4LnlhbWwtMTAwLSAgICBzZnAxOiBzZnAtcDEge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vZ3Bpby1saW5lLW11eC55YW1sOjEwMTogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vZ3Bpby1saW5lLW11eC55YW1sLTEwMi1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL25ldC9zZmYsc2ZwLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sPTEzPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWwtMTUtICAgIGVudW06XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbDoxNjogICAgICAtIHNmZixzZnAgICMgZm9yIFNGUCBtb2R1bGVzXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC0xNy0gICAgICAtIHNmZixzZmYgICMgZm9yIHNvbGRlcmVkIGRvd24gU0ZGIG1vZHVsZXNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbD04OT1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC05My0gICAgc2ZwMTogc2ZwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sOjk0OiAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWwtOTUtICAgICAgaTJjLWJ1cyA9IFx1MDAzY1x1MDAyNnNmcF8xZ19pMmNcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWwtMTE1LSAgICBzZnAyOiBzZnAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWw6MTE2OiAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWwtMTE3LSAgICAgIGkyYy1idXMgPSBcdTAwM2NcdTAwMjZzZnBfaTJjXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3Q9NDA0PWRvY3VtZW50YXRpb24gaW4gdGhlIGtlcm5lbCBzb3VyY2UgdHJlZVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3NmcC1waHlsaW5rLnJzdDo0MDU6YGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbGBgLlxuLS1cbk1BSU5UQUlORVJTPTI0NjAxPVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzoyNDYwMjpGOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWxcbk1BSU5UQUlORVJTLTI0NjAzLUY6XHRkcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvYnJvYWRjb20vYmNtOTU4NjI1aHIuZHRzPTU4PVx0c2ZwOiBzZnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvYnJvYWRjb20vYmNtOTU4NjI1aHIuZHRzOjU5Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2Jyb2FkY29tL2JjbTk1ODYyNWhyLmR0cy02MC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyYzBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LWNsZWFyZm9nLWd0ci1sOC5kdHM9MTE9XHRzZnAxOiBzZnAtMSB7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLWw4LmR0czoxMjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLWw4LmR0cy0xMy1cdFx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2Y2ZfZ3RyX3NmcDFfcGluc1x1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLmR0c2k9Mjg1PVx0c2ZwMDogc2ZwLTAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LWNsZWFyZm9nLWd0ci5kdHNpOjI4NjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLmR0c2ktMjg3LVx0XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZjZl9ndHJfc2ZwMF9waW5zXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS10dXJyaXMtb21uaWEuZHRzPTk3PVx0c2ZwOiBzZnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHM6OTg6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHMtOTktXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZzZnBfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4OC1jbGVhcmZvZy5kdHNpPTgwPVx0c2ZwOiBzZnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg4LWNsZWFyZm9nLmR0c2k6ODE6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg4LWNsZWFyZm9nLmR0c2ktODItXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmMxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LWtvbnRyb24ta3N3aXRjaC1kMTAtbW10LTZnLTJncy5kdHM9MTk9XHRzZnAwOiBzZnAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LWtvbnRyb24ta3N3aXRjaC1kMTAtbW10LTZnLTJncy5kdHM6MjA6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2Nngta29udHJvbi1rc3dpdGNoLWQxMC1tbXQtNmctMmdzLmR0cy0yMS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyYzRcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2Nngta29udHJvbi1rc3dpdGNoLWQxMC1tbXQtNmctMmdzLmR0cz0zMT1cdHNmcDE6IHNmcDEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2Nngta29udHJvbi1rc3dpdGNoLWQxMC1tbXQtNmctMmdzLmR0czozMjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY2eC1rb250cm9uLWtzd2l0Y2gtZDEwLW1tdC02Zy0yZ3MuZHRzLTMzLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjMVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY2eC1wY2I4MzA5LmR0cz04MT1cdHNmcDI6IHNmcDIge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHM6ODI6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHMtODMtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmMxMDJcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHM9OTA9XHRzZnAzOiBzZnAzIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LXBjYjgzMDkuZHRzOjkxOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LXBjYjgzMDkuZHRzLTkyLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjMTAzXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwNDZhLXFkcy5kdHM9NDY9XHRzZnAxOiBzZnAtMSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDQ2YS1xZHMuZHRzOjQ3Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwNDZhLXFkcy5kdHMtNDgtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZzZnAxX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDQ2YS1xZHMuZHRzPTUzPVx0c2ZwMjogc2ZwLTIge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0NmEtcWRzLmR0czo1NDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDQ2YS1xZHMuZHRzLTU1LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwMl9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA4OGEtdGVuNjQuZHRzPTcxPVx0c2ZwX3hnMDogZHBtYWMyLXNmcCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDg4YS10ZW42NC5kdHM6NzI6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA4OGEtdGVuNjQuZHRzLTczLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwbG93ZXJfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLXRlbjY0LmR0cz04MT1cdHNmcF94ZzE6IGRwbWFjMS1zZnAge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA4OGEtdGVuNjQuZHRzOjgyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLXRlbjY0LmR0cy04My1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNnNmcHVwcGVyX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1jbGVhcmZvZy1pdHguZHRzaT0zMT1cdHNmcDA6IHNmcC0wIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpOjMyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpLTMzLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwMF9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2k9Mzg9XHRzZnAxOiBzZnAtMSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1jbGVhcmZvZy1pdHguZHRzaTozOTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1jbGVhcmZvZy1pdHguZHRzaS00MC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNnNmcDFfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpPTQ1PVx0c2ZwMjogc2ZwLTIge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2k6NDY6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2ktNDctXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZzZnAyX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1jbGVhcmZvZy1pdHguZHRzaT01Mj1cdHNmcDM6IHNmcC0zIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpOjUzOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpLTU0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwM19pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9Mjg3PVx0aHRfYzNfYnRfc2ZwOiBzZnAtMSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czoyODg6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMjg5LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aHR3aW5zX3NmcF9jM19idF9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9Mjk0PVx0aHRfYzNfYmJfc2ZwOiBzZnAtMiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czoyOTU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMjk2LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aHR3aW5zX3NmcF9jM19iYl9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzAxPVx0aHRfYzNfYXRfc2ZwOiBzZnAtMyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMDI6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzAzLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aHR3aW5zX3NmcF9jM19hdF9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzA4PVx0aHRfYzNfYWJfc2ZwOiBzZnAtNCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMDk6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzEwLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aHR3aW5zX3NmcF9jM19hYl9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzE1PVx0YzFfYnRfc2ZwOiBzZnAtOSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMTY6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzE3LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MxX2J0X2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zMjI9XHRjMV9iYl9zZnA6IHNmcC0xMCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMjM6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzI0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MxX2JiX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zMjk9XHRjMV9hdF9zZnA6IHNmcC0xMSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMzA6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzMxLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MxX2F0X2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zMzY9XHRjMV9hYl9zZnA6IHNmcC0xMiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMzc6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzM4LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MxX2FiX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNDM9XHRjMl9idF9zZnA6IHNmcC0xMyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNDQ6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzQ1LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MyX2J0X2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNTA9XHRjMl9iYl9zZnA6IHNmcC0xNCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNTE6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzUyLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MyX2JiX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNTc9XHRjMl9hdF9zZnA6IHNmcC0xNSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNTg6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzU5LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MyX2F0X2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNjQ9XHRjMl9hYl9zZnA6IHNmcC0xNiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNjU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzY2LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MyX2FiX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNzE9XHRjM19idF9zZnA6IHNmcC0xNyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNzI6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzczLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MzX2J0X2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNzg9XHRjM19iYl9zZnA6IHNmcC0xOCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNzk6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzgwLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MzX2JiX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zODU9XHRjM19hdF9zZnA6IHNmcC0xOSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozODY6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzg3LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MzX2F0X2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zOTI9XHRjM19hYl9zZnA6IHNmcC0yMCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozOTM6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzk0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MzX2FiX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1yZGIuZHRzPTM1PVx0c2ZwMjogc2ZwLTIge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtcmRiLmR0czozNjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1yZGIuZHRzLTM3LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwMl9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtcmRiLmR0cz00Nj1cdHNmcDM6IHNmcC0zIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXJkYi5kdHM6NDc6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtcmRiLmR0cy00OC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNnNmcDNfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXRxbWx4MjE2MGEtbWJseDIxNjBhLmR0cz03MD1cdHNmcF94ZmkxOiBzZnAteGZpMSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS10cW1seDIxNjBhLW1ibHgyMTYwYS5kdHM6NzE6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtdHFtbHgyMTYwYS1tYmx4MjE2MGEuZHRzLTcyLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2eGZpMV9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtdHFtbHgyMTYwYS1tYmx4MjE2MGEuZHRzPTgwPVx0c2ZwX3hmaTI6IHNmcC14ZmkyIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXRxbWx4MjE2MGEtbWJseDIxNjBhLmR0czo4MTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS10cW1seDIxNjBhLW1ibHgyMTYwYS5kdHMtODItXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZ4ZmkyX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHM9ODM9XHRzZnBfYXQ6IHNmcC1hdCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHM6ODQ6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzLTg1LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwX2kyYzBcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzPTkwPVx0c2ZwX2FiOiBzZnAtYWIge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzOjkxOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjJhLWNsZWFyZm9nLmR0cy05Mi1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNnNmcF9pMmMxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjJhLWNsZWFyZm9nLmR0cz05Nz1cdHNmcF9idDogc2ZwLWJ0IHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjJhLWNsZWFyZm9nLmR0czo5ODpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHMtOTktXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZzZnBfaTJjMlx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHM9MTA0PVx0c2ZwX2JiOiBzZnAtYmIge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzOjEwNTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHMtMTA2LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwX2kyYzNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OTUtdmFyLWRhcnQtc29uYXRhLmR0cz0xMzg9XHRzZnAwOiBzZnAge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OTUtdmFyLWRhcnQtc29uYXRhLmR0czoxMzk6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OTUtdmFyLWRhcnQtc29uYXRhLmR0cy0xNDAtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZscGkyYzNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvdHFtbHMxMHh4YS1tYmxzMTB4eGEuZHRzaT01MT1cdHNmcDE6IHNmcDEge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvdHFtbHMxMHh4YS1tYmxzMTB4eGEuZHRzaTo1MjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS90cW1sczEweHhhLW1ibHMxMHh4YS5kdHNpLTUzLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwMV9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvdHFtbHMxMHh4YS1tYmxzMTB4eGEuZHRzaT02MT1cdHNmcDI6IHNmcDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvdHFtbHMxMHh4YS1tYmxzMTB4eGEuZHRzaTo2MjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS90cW1sczEweHhhLW1ibHMxMHh4YS5kdHNpLTYzLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwMl9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzPTEwMD1cdHNmcDogc2ZwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0czoxMDE6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzLTEwMi1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyYzBcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXVEUFUuZHRzPTExPVx0c2ZwX2V0aDA6IHNmcC1ldGgwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC11RFBVLmR0czoxMjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdURQVS5kdHMtMTMtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmMwXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC11RFBVLmR0c2k9Njg9XHRzZnBfZXRoMTogc2ZwLWV0aDEge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXVEUFUuZHRzaTo2OTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdURQVS5kdHNpLTcwLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTcwNDAtbW9jaGFiaW4uZHRzPTM0PVx0c2ZwX2V0aDA6IHNmcC1ldGgwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtNzA0MC1tb2NoYWJpbi5kdHM6MzU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0cy0zNi1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmNwMF9pMmMxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtNzA0MC1tb2NoYWJpbi5kdHM9NDQ9XHRzZnBfZXRoMjogc2ZwLWV0aDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0czo0NTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTcwNDAtbW9jaGFiaW4uZHRzLTQ2LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2Y3AwX2kyYzBcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9nLWd0LThrLmR0cz02ND1cdHNmcF9jcDBfZXRoMDogc2ZwLWNwMC1ldGgwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1jbGVhcmZvZy1ndC04ay5kdHM6NjU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9nLWd0LThrLmR0cy02Ni1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmNwMF9pMmMxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpPTY0PVx0c2ZwX2V0aDA6IHNmcC1ldGgwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTY1LVx0XHQvKiBDT04xNSwxNiAtIENQTSBsYW5lIDQgKi9cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpOjY2Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTY3LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwcDBfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpPTc3PVx0c2ZwX2V0aDE6IHNmcC1ldGgxIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTc4LVx0XHQvKiBDT04xNywxOCAtIENQUyBsYW5lIDQgKi9cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpOjc5Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTgwLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwcDFfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpPTkwPVx0c2ZwX2V0aDM6IHNmcC1ldGgzIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTkxLVx0XHQvKiBDT04xMywxNCAtIENQUyBsYW5lIDUgKi9cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpOjkyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTkzLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwXzFnX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtcHV6emxlLW04MDEuZHRzPTY3PVx0c2ZwX2NwMF9ldGgwOiBzZnAtY3AwLWV0aDAge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLXB1enpsZS1tODAxLmR0czo2ODpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtcHV6emxlLW04MDEuZHRzLTY5LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwcGx1czBfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1wdXp6bGUtbTgwMS5kdHM9Nzc9XHRzZnBfY3AxX2V0aDA6IHNmcC1jcDEtZXRoMCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtcHV6emxlLW04MDEuZHRzOjc4Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1wdXp6bGUtbTgwMS5kdHMtNzktXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZzZnBwbHVzMV9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi5kdHNpPTI3PVx0c2ZwOiBzZnAge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi5kdHNpOjI4Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YuZHRzaS0yOS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmNwMF9pMmMxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY3JiLmR0c2k9Nzk9XHRzZnA6IHNmcCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWNyYi5kdHNpOjgwOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY3JiLmR0c2ktODEtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZjcDBfaTJjMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWRiLmR0c2k9OTI9XHRjcDBfc2ZwX2V0aDA6IHNmcC1ldGgtMSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWRiLmR0c2k6OTM6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1kYi5kdHNpLTk0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2Y3AwX3NmcHAwX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMxLWNmLXNvbGlkd2FuLmR0cz0xMjE9XHRzZnAwOiBzZnAtMCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMxLWNmLXNvbGlkd2FuLmR0czoxMjI6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMS1jZi1zb2xpZHdhbi5kdHMtMTIzLVx0XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZjcDBfc2ZwMF9waW5zXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzEtY2Ytc29saWR3YW4uZHRzPTEzMz1cdHNmcDE6IHNmcC0xIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzEtY2Ytc29saWR3YW4uZHRzOjEzNDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMxLWNmLXNvbGlkd2FuLmR0cy0xMzUtXHRcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNmNwMV9zZnAxX3BpbnNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMS1kYi5kdHNpPTM4PVx0Y3AxX3NmcF9ldGgxOiBzZnAtZXRoLTIge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMS1kYi5kdHNpOjM5Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzEtZGIuZHRzaS00MC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmNwMV9pMmMwXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItY2xlYXJmb2cuZHRzPTEyND1cdHNmcDogc2ZwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItY2xlYXJmb2cuZHRzOjEyNTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMyLWNsZWFyZm9nLmR0cy0xMjYtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZjb21fMTBnX3NmcF9pMmMwXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItZGIuZHRzaT01OT1cdGNwMl9zZnBfZXRoMDogc2ZwLWV0aC0zIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItZGIuZHRzaTo2MDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMyLWRiLmR0c2ktNjEtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZjcDJfc2ZwcDBfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg2YS1iYW5hbmFwaS1icGktcjMuZHRzPTEyMT1cdHNmcDE6IHNmcC0xIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg2YS1iYW5hbmFwaS1icGktcjMuZHRzOjEyMjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0cy0xMjMtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0cz0xMzI9XHRzZnAyOiBzZnAtMiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0czoxMzM6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODZhLWJhbmFuYXBpLWJwaS1yMy5kdHMtMTM0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDJcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaT05ND1cdHNmcDE6IHNmcDEge1xuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaTo5NTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LXByby5kdHNpLTk2LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aW11eDFfc2ZwMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LXByby5kdHNpPTEwND1cdHNmcDI6IHNmcDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaToxMDU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaS0xMDYtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpbXV4Ml9zZnAyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQuZHRzPTEzPVx0c2ZwMjogc2ZwMiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LmR0czoxNDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LmR0cy0xNS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQuZHRzaT03MD1cdHNmcDE6IHNmcDEge1xuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC5kdHNpOjcxOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQuZHRzaS03Mi1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzPTE0ND1cdHNmcDA6IHNmcDAge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM6MTQ1Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzLTE0Ni1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzPTE1Mz1cdHNmcDE6IHNmcDEge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM6MTU0Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzLTE1NS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzPTE2Mj1cdHNmcDI6IHNmcDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM6MTYzOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzLTE2NC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzPTE3MT1cdHNmcDM6IHNmcDMge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM6MTcyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzLTE3My1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAzXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0yNjY9XHRzZnBfZXRoMTI6IHNmcC1ldGgxMiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MjY3Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0yNjgtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9Mjc1PVx0c2ZwX2V0aDEzOiBzZnAtZXRoMTMge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjI3NjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMjc3LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDJcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTI4ND1cdHNmcF9ldGgxNDogc2ZwLWV0aDE0IHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaToyODU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTI4Ni1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAzXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0yOTM9XHRzZnBfZXRoMTU6IHNmcC1ldGgxNSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6Mjk0Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0yOTUtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwNFx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzAyPVx0c2ZwX2V0aDQ4OiBzZnAtZXRoNDgge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjMwMzpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMzA0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDVcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTMxMT1cdHNmcF9ldGg0OTogc2ZwLWV0aDQ5IHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTozMTI6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTMxMy1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnA2XHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0zMjA9XHRzZnBfZXRoNTA6IHNmcC1ldGg1MCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzIxOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0zMjItXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwN1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzI5PVx0c2ZwX2V0aDUxOiBzZnAtZXRoNTEge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjMzMDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMzMxLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDhcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTMzOD1cdHNmcF9ldGg1Mjogc2ZwLWV0aDUyIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTozMzk6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTM0MC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnA5XHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0zNDc9XHRzZnBfZXRoNTM6IHNmcC1ldGg1MyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzQ4Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0zNDktXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMTBcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTM1Nj1cdHNmcF9ldGg1NDogc2ZwLWV0aDU0IHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTozNTc6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTM1OC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAxMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzY1PVx0c2ZwX2V0aDU1OiBzZnAtZXRoNTUge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjM2NjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMzY3LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDEyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0zNzQ9XHRzZnBfZXRoNTY6IHNmcC1ldGg1NiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6Mzc1Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0zNzYtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMTNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTM4Mz1cdHNmcF9ldGg1Nzogc2ZwLWV0aDU3IHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTozODQ6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTM4NS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAxNFx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzkyPVx0c2ZwX2V0aDU4OiBzZnAtZXRoNTgge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjM5MzpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMzk0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDE1XHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT00MDE9XHRzZnBfZXRoNTk6IHNmcC1ldGg1OSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6NDAyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS00MDMtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMTZcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTQxMD1cdHNmcF9ldGg2MDogc2ZwLWV0aDYwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTo0MTE6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTQxMi1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAxN1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9NDE5PVx0c2ZwX2V0aDYxOiBzZnAtZXRoNjEge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjQyMDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktNDIxLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDE4XHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT00Mjg9XHRzZnBfZXRoNjI6IHNmcC1ldGg2MiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6NDI5Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS00MzAtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMTlcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTQzNz1cdHNmcF9ldGg2Mzogc2ZwLWV0aDYzIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTo0Mzg6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTQzOS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAyMFx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM1X2JvYXJkLmR0c2k9Njc9XHRzZnBfZXRoNjA6IHNmcC1ldGg2MCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM1X2JvYXJkLmR0c2k6Njg6XHRcdGNvbXBhdGlibGVcdCA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM1X2JvYXJkLmR0c2ktNjktXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM1X2JvYXJkLmR0c2k9Nzc9XHRzZnBfZXRoNjE6IHNmcC1ldGg2MSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM1X2JvYXJkLmR0c2k6Nzg6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpLTc5LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDJcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpPTg3PVx0c2ZwX2V0aDYyOiBzZnAtZXRoNjIge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpOjg4Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaS04OS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAzXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaT05Nz1cdHNmcF9ldGg2Mzogc2ZwLWV0aDYzIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaTo5ODpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM1X2JvYXJkLmR0c2ktOTktXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwNFx1MDAzZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jPTI3PXN0YXRpYyBpbnQgdHhnYmVfc3dub2Rlc19yZWdpc3RlcihzdHJ1Y3QgdHhnYmUgKnR4Z2JlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjY1Olx0bm9kZXMtXHUwMDNlc2ZwX3Byb3BzWzBdID0gUFJPUEVSVFlfRU5UUllfU1RSSU5HKFwmIzM0O2NvbXBhdGlibGVcJiMzNDssIFwmIzM0O3NmZixzZnBcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02Ni1cdG5vZGVzLVx1MDAzZXNmcF9wcm9wc1sxXSA9IFBST1BFUlRZX0VOVFJZX1JFRl9BUlJBWShcJiMzNDtpMmMtYnVzXCYjMzQ7LCBub2Rlcy1cdTAwM2VpMmNfcmVmKTtcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM9MzYyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNmcF9vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTM2My1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZmXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNmZl9kYXRhLCB9LFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjM2NDpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNmcF9kYXRhLCB9LFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTM2NS1cdHsgfSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI0MjgKCQkJCQkJCW91dHB1dDogNTEKCQkJCQkJCXRob3VnaHRzOiA1NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkluaXRpYWwgQXNzZXNzbWVudDogU0ZQIFJlZ2lzdHJhdGlvbiBpbiB0eGdiZV9waHkuYyoqCgpBbHJpZ2h0LCBteSBpbnRlcm5hbCByYWRhciBqdXN0IHBpbmdlZC4gTG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuY2AsIEkgc2VlIGEgc29mdHdhcmUgbm9kZSByZWdpc3RyYXRpb24gZm9yIGBzZmYsc2ZwYC4gVGhhdCBpbW1lZGlhdGVseSBzcGFya3MgbXkgaW50ZXJlc3Q7IEkmIzM5O3ZlIHNlZW4gYSBmZXcgaW1wbGVtZW50YXRpb25zIG9mIFNGUC9TRlAmIzQzOyBoYW5kbGluZyBpbiBzaW1pbGFyIGRyaXZlcnMsIGFuZCB0aGV5IGNhbiBiZSBxdWl0ZSB2YXJpZWQuIFRoZSBmYWN0IHRoYXQgaXQmIzM5O3MgYSBzb2Z0d2FyZSBub2RlIHN1Z2dlc3RzIGEgZGVncmVlIG9mIGFic3RyYWN0aW9uIOKAkyBwb3NzaWJseSBwcm9iaW5nLCBvciBjb25maWd1cmF0aW9uLCBtYXliZSBldmVuIGhhbmRsaW5nIHNwZWNpZmljIFBIWSBkZXRhaWxzIGJhc2VkIG9uIHRoZSBtb2R1bGUgdHlwZS4gVGltZSB0byBkaWcgZGVlcGVyLiBNeSBmb2N1cyBpcyBnb2luZyBzdHJhaWdodCB0byBgdHhnYmVfc3dub2Rlc19yZWdpc3RlcmAuIFRoaXMgaXMgYWxtb3N0IGNlcnRhaW5seSB3aGVyZSB0aGUgbWVhdCBvZiB0aGUgU0ZQL1NGUCYjNDM7IG1vZHVsZSBpbml0aWFsaXphdGlvbiBhbmQgcmVzb3VyY2UgbWFuYWdlbWVudCBpcyBoYW5kbGVkLCBlc3BlY2lhbGx5IHRoZSAmIzM0O3NvZnR3YXJlIG5vZGUmIzM0OyBhc3BlY3QuIEkgd2FudCB0byBzZWUgaG93IHRoaXMgcGFydGljdWxhciBkcml2ZXIgYXBwcm9hY2hlcyB0aGUgU0ZQIGludGVyZmFjZS4gQ3VyaW91cyB0byBsZWFybiBob3cgaXQmIzM5O3MgaGFuZGxlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHhnYmVfc3dub2Rlc19yZWdpc3RlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy0yNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6Mjc6c3RhdGljIGludCB0eGdiZV9zd25vZGVzX3JlZ2lzdGVyKHN0cnVjdCB0eGdiZSAqdHhnYmUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTI4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jPTU3NT1pbnQgdHhnYmVfaW5pdF9waHkoc3RydWN0IHR4Z2JlICp0eGdiZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTU5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NTkyOlx0cmV0ID0gdHhnYmVfc3dub2Rlc19yZWdpc3Rlcih0eGdiZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTU5My1cdGlmIChyZXQpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMwMzgKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYHR4Z2JlYCBhbmQgYHNmcGAgRHJpdmVyIEludGVyYWN0aW9uIHdpdGhpbiBTeXprYWxsZXIqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGlzIGB0eGdiZWAgTklDLCBhbmQgZmlyc3QsIEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyBhIFBDSSBkZXZpY2UuIFllcCwgV2FuZ3h1biAxMEdiRSBQQ0kgRXhwcmVzcywgZ290IGl0LiBOb3cgdGhlIHF1ZXN0aW9uIGlzLCBjYW4gU3l6a2FsbGVyIGVtdWxhdGUgdGhpcyB0aGluZz8gSSBrbm93IFN5emthbGxlciBoYXMgUENJIGVtdWxhdGlvbiwgYnV0IGl0JiMzOTtzIHVzdWFsbHkgZWl0aGVyIGJyb2FkIG9yIGZvY3VzZWQgb24gY2VydGFpbiBkZXZpY2VzIGxpa2UgdGhlIGUxMDAwZS4gSXQgZGVmaW5pdGVseSBkb2VzbiYjMzk7dCBoYXZlIGEgc3BlY2lmaWMgYHR4Z2JlYCBpbXBsZW1lbnRhdGlvbi4KClNvLCB3aXRob3V0IHRoYXQgZGV0YWlsZWQgZW11bGF0aW9uLCB0aGUgYHNmcGAgZHJpdmVyIGlzbiYjMzk7dCBnb2luZyB0byBnZXQgcHJvYmVkIGF1dG9tYXRpY2FsbHkuIFN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIGFyZW4mIzM5O3QgZ29pbmcgdG8gaGF2ZSBhIGRldmljZSB0cmVlIG5vZGUgb3IgYSBzb2Z0d2FyZSBub2RlIGRlZmluZWQgd2l0aCB0aGUgcmlnaHQgJiMzNDtjb21wYXRpYmxlJiMzNDsgc3RyaW5nIChgc2ZmLHNmcGApLiBJdCBuZWVkcyBzb21ldGhpbmcgdG8gbGF0Y2ggb250by4KCkhvbGQgb24sIHRob3VnaC4gSSByZWNhbGwgU3l6a2FsbGVyIGhhcyB0aGF0IGBzeXpfZGV2X3BsYXRmb3JtYCBmZWF0dXJlLiBJICpjb3VsZCogaW5qZWN0IGEgcGxhdGZvcm0gZGV2aWNlLiBCdXQgaGVyZSYjMzk7cyB0aGUga2lja2VyOiBldmVuIGlmIEkgZG8gdGhhdCwgdGhlIGBzZnAuY2AgZHJpdmVyIHJlcXVpcmVzIEkyQyBhbmQgR1BJTy4gU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGF1dG9tYXRpY2FsbHkga25vdyBob3cgdG8gc2V0IHRob3NlIHVwIGZvciBhIHBsYXRmb3JtIGRldmljZS4gSSYjMzk7ZCBoYXZlIHRvIHNwZWNpZnkgdGhlbSBhcyBwYXJ0IG9mIG15IHN5emthbGxlciBjb2RlLgoKSG1tLi4uIGJlZm9yZSBJIGdvIGRvd24gdGhhdCBjb21wbGljYXRlZCByb2FkLCBJIHNob3VsZCBjaGVjayBzb21ldGhpbmcgc2ltcGxlci4gQ2FuIHRoZSBgc2ZwLmNgIGRyaXZlciBwcm9iZSAqd2l0aG91dCogdGhlIEkyQyBidXM/IEl04oCZcyB3b3J0aCBjaGVja2luZyBpZiBpdCBoYXMgYSBmYWxsYmFjayBtZWNoYW5pc20uIElmIGl0IGRvZXNuJiMzOTt0LCBJJiMzOTttIGdvaW5nIHRvIGhhdmUgdG8gZG8gYSBsb3QgbW9yZSB3b3JrIHRvIGdldCB0aGlzIHRoaW5nIG9mZiB0aGUgZ3JvdW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZnBfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvc2ZwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L3NmcC5jPTMyNzI9c3RhdGljIGludCBzZnBfaTJjX2dldChzdHJ1Y3Qgc2ZwICpzZnApXG4tLVxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTMyOTctXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM6MzI5ODpzdGF0aWMgaW50IHNmcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTMyOTkte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9zZnAuYz0zNDgwPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNmcF9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9waHkvc2ZwLmM6MzQ4MTpcdC5wcm9iZSA9IHNmcF9wcm9iZSxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy0zNDgyLVx0LnJlbW92ZSA9IHNmcF9yZW1vdmUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzODI3CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkluaXRpYWwgQXNzZXNzbWVudDogU0ZQIFByb2JlKioKCkFscmlnaHQsICpzZnBfcHJvYmUqLi4uIHRoYXQgaW1tZWRpYXRlbHkgdHJpZ2dlcnMgYSBzcGVjaWZpYyBzZXQgb2YgYXNzb2NpYXRpb25zLiBUaGlzIGxpa2VseSByZWZlcnMgdG8gYSBkaWFnbm9zdGljIHRvb2wgb3IgY29tbWFuZC4gTXkgbWluZCBqdW1wcyB0byB2YXJpb3VzIGltcGxlbWVudGF0aW9ucy4gSXMgdGhpcyBhIGN1c3RvbSBzY3JpcHQgSSYjMzk7dmUgdXNlZCBpbiB0aGUgcGFzdCwgYSBzcGVjaWZpYyB2ZW5kb3ImIzM5O3MgdXRpbGl0eSwgb3IgcGVyaGFwcyBzb21ldGhpbmcgbW9yZSBnZW5lcmFsLCBsaWtlIGEgbW9kdWxlIHVzZWQgaW4gYSBuZXR3b3JrIG1hbmFnZW1lbnQgZnJhbWV3b3JrPyBUaGUgbmFtZSBpcyBwcmV0dHkgZGVzY3JpcHRpdmUuIEl0IHN1Z2dlc3RzIHByb2Jpbmcgb3IgaW50ZXJyb2dhdGluZyBhbiBTRlAgKFNtYWxsIEZvcm0tZmFjdG9yIFBsdWdnYWJsZSkgdHJhbnNjZWl2ZXIuIFRoaXMgY291bGQgYmUgZm9yIGEgd2lkZSBhcnJheSBvZiByZWFzb25zIOKAkyBkZXRlcm1pbmluZyBpdHMgbW9kZWwsIG1hbnVmYWN0dXJlciwgc3VwcG9ydGVkIHNwZWVkcywgRE9NIChEaWdpdGFsIE9wdGljYWwgTW9uaXRvcmluZykgZGF0YSwgb3IgZXZlbiBqdXN0IHZlcmlmeWluZyBpdHMgcHJlc2VuY2UgYW5kIGZ1bmN0aW9uYWxpdHkuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSBjb250ZXh0LiBJcyB0aGlzIGEgc29mdHdhcmUgdG9vbCwgYSBoYXJkd2FyZSBwcm9iZSwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSBtb3JlIEkgdGhpbmsgYWJvdXQgaXQsIHRoZSBtb3JlIHF1ZXN0aW9ucyBhcmlzZSwgYW5kIHRoZSBtb3JlIEkgcmVjb2duaXplIHRoYXQgY29udGV4dCBpcyBjcml0aWNhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBpbXBsaWNhdGlvbnMgb2YgJiMzNDtzZnBfcHJvYmUuJiMzNDsKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvc2ZwLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzMjk4LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDszMjk4Olx0c3RhdGljIGludCBzZnBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbjMyOTk6XHR7XG4zMzAwOlx0XHRjb25zdCBzdHJ1Y3Qgc2ZmX2RhdGEgKnNmZjtcbjMzMDE6XHRcdGNoYXIgKnNmcF9pcnFfbmFtZTtcbjMzMDI6XHRcdHN0cnVjdCBzZnAgKnNmcDtcbjMzMDM6XHRcdGludCBlcnIsIGk7XG4zMzA0Olx0XG4zMzA1Olx0XHRzZnAgPSBzZnBfYWxsb2MoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuMzMwNjpcdFx0aWYgKElTX0VSUihzZnApKVxuMzMwNzpcdFx0XHRyZXR1cm4gUFRSX0VSUihzZnApO1xuMzMwODpcdFxuMzMwOTpcdFx0cGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgc2ZwKTtcbjMzMTA6XHRcbjMzMTE6XHRcdGVyciA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldChzZnAtXHUwMDNlZGV2LCBzZnBfY2xlYW51cCwgc2ZwKTtcbjMzMTI6XHRcdGlmIChlcnIgXHUwMDNjIDApXG4zMzEzOlx0XHRcdHJldHVybiBlcnI7XG4zMzE0Olx0XG4zMzE1Olx0XHRzZmYgPSBkZXZpY2VfZ2V0X21hdGNoX2RhdGEoc2ZwLVx1MDAzZWRldik7XG4zMzE2Olx0XHRpZiAoIXNmZilcbjMzMTc6XHRcdFx0c2ZmID0gXHUwMDI2c2ZwX2RhdGE7XG4zMzE4Olx0XG4zMzE5Olx0XHRzZnAtXHUwMDNldHlwZSA9IHNmZjtcbjMzMjA6XHRcbjMzMjE6XHRcdGVyciA9IHNmcF9pMmNfZ2V0KHNmcCk7XG4zMzIyOlx0XHRpZiAoZXJyKVxuMzMyMzpcdFx0XHRyZXR1cm4gZXJyO1xuMzMyNDpcdFxuMzMyNTpcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgR1BJT19NQVg7IGkmIzQzOyYjNDM7KVxuMzMyNjpcdFx0XHRpZiAoc2ZmLVx1MDAzZWdwaW9zIFx1MDAyNiBCSVQoaSkpIHtcbjMzMjc6XHRcdFx0XHRzZnAtXHUwMDNlZ3Bpb1tpXSA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKHNmcC1cdTAwM2VkZXYsXG4zMzI4Olx0XHRcdFx0XHRcdCAgIGdwaW9fbmFtZXNbaV0sIGdwaW9fZmxhZ3NbaV0pO1xuMzMyOTpcdFx0XHRcdGlmIChJU19FUlIoc2ZwLVx1MDAzZWdwaW9baV0pKVxuMzMzMDpcdFx0XHRcdFx0cmV0dXJuIFBUUl9FUlIoc2ZwLVx1MDAzZWdwaW9baV0pO1xuMzMzMTpcdFx0XHR9XG4zMzMyOlx0XG4zMzMzOlx0XHRzZnAtXHUwMDNlc3RhdGVfaHdfbWFzayA9IFNGUF9GX1BSRVNFTlQ7XG4zMzM0Olx0XHRzZnAtXHUwMDNlc3RhdGVfaHdfZHJpdmUgPSBTRlBfRl9UWF9ESVNBQkxFO1xuMzMzNTpcdFxuMzMzNjpcdFx0c2ZwLVx1MDAzZWdldF9zdGF0ZSA9IHNmcF9ncGlvX2dldF9zdGF0ZTtcbjMzMzc6XHRcdHNmcC1cdTAwM2VzZXRfc3RhdGUgPSBzZnBfZ3Bpb19zZXRfc3RhdGU7XG4zMzM4Olx0XG4zMzM5Olx0XHQvKiBBbiBTRlAgY2FnZSB3aXRoIG5vIE1PRF9ERUYwIEdQSU8gaGFzIG5vIGhhcmR3YXJlIHByZXNlbmNlIHNpZ25hbC5cbjMzNDA6XHRcdCAqIEFzc3VtaW5nIHRoZSBtb2R1bGUgaXMgYWx3YXlzIHByZXNlbnQgdHJhcHMgYW4gZW1wdHkgY2FnZSBpblxuMzM0MTpcdFx0ICogTU9EX0VSUk9SIGFuZCBuZXZlciBkZXRlY3RzIGhvdC1pbnNlcnRpb24sIHNvIGRlcml2ZSBwcmVzZW5jZSBmcm9tIGFcbjMzNDI6XHRcdCAqIHRocm90dGxlZCBJMkMgcHJvYmUgYW5kIHBvbGwgZm9yIGNoYW5nZXMgaW5zdGVhZC4gc2ZwX2kyY19jb25maWd1cmUoKVxuMzM0MzpcdFx0ICogaGFzIGFscmVhZHkgc2V0IGkyY19tYXhfYmxvY2tfc2l6ZTsgc2VlZCBpMmNfYmxvY2tfc2l6ZSBzbyB0aGVcbjMzNDQ6XHRcdCAqIHByZXNlbmNlIHJlYWQgZG9lcyBub3QgaXNzdWUgYSB6ZXJvLWxlbmd0aCB0cmFuc2ZlciBiZWZvcmUgdGhlIGZpcnN0XG4zMzQ1Olx0XHQgKiBFRVBST00gcmVhZC4gU2VlZCBpMmNfcHJlc2VudF9uZXh0IHRvIGppZmZpZXMgc28gdGhlIGZpcnN0IHByb2JlXG4zMzQ2Olx0XHQgKiBoYXBwZW5zIGltbWVkaWF0ZWx5IChhIHplcm8gdmFsdWUgd291bGQgYmUgaW4gdGhlIHBhc3QgcmVsYXRpdmUgdG9cbjMzNDc6XHRcdCAqIHRoZSBuZWdhdGl2ZSBJTklUSUFMX0pJRkZJRVMgYXQgYm9vdCBhbmQgZGVsYXkgZGV0ZWN0aW9uKS5cbjMzNDg6XHRcdCAqXG4zMzQ5Olx0XHQgKiBBIHNvbGRlcmVkLWRvd24gbW9kdWxlIChzZmYsc2ZmKSBoYXMgbm8gcHJlc2VuY2Ugc2lnbmFsIGFuZCBpc1xuMzM1MDpcdFx0ICogZ2VudWluZWx5IGFsd2F5cyBwcmVzZW50LCBzbyBpdCBrZWVwcyB0aGUgYWx3YXlzLXByZXNlbnQgYmVoYXZpb3VyO1xuMzM1MTpcdFx0ICogdGhlIEkyQyBwcm9iZSBpcyBnYXRlZCBvbiB0aGUgY2FnZSB0eXBlIGFkdmVydGlzaW5nIFNGUF9GX1BSRVNFTlQuXG4zMzUyOlx0XHQgKi9cbjMzNTM6XHRcdGlmICghc2ZwLVx1MDAzZWdwaW9bR1BJT19NT0RERUYwXSkge1xuMzM1NDpcdFx0XHRpZiAoc2ZmLVx1MDAzZWdwaW9zIFx1MDAyNiBTRlBfRl9QUkVTRU5UKSB7XG4zMzU1Olx0XHRcdFx0c2ZwLVx1MDAzZWdldF9zdGF0ZSA9IHNmcF9pMmNfZ2V0X3N0YXRlO1xuMzM1NjpcdFx0XHRcdHNmcC1cdTAwM2VpMmNfYmxvY2tfc2l6ZSA9IHNmcC1cdTAwM2VpMmNfbWF4X2Jsb2NrX3NpemU7XG4zMzU3Olx0XHRcdFx0c2ZwLVx1MDAzZWkyY19wcmVzZW50X25leHQgPSBqaWZmaWVzO1xuMzM1ODpcdFx0XHRcdHNmcC1cdTAwM2VuZWVkX3BvbGwgPSB0cnVlO1xuMzM1OTpcdFx0XHR9IGVsc2Uge1xuMzM2MDpcdFx0XHRcdHNmcC1cdTAwM2VnZXRfc3RhdGUgPSBzZmZfZ3Bpb19nZXRfc3RhdGU7XG4zMzYxOlx0XHRcdH1cbjMzNjI6XHRcdH1cbjMzNjM6XHRcbjMzNjQ6XHRcdGRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7bWF4aW11bS1wb3dlci1taWxsaXdhdHRcJiMzNDssXG4zMzY1Olx0XHRcdFx0XHQgXHUwMDI2c2ZwLVx1MDAzZW1heF9wb3dlcl9tVyk7XG4zMzY2Olx0XHRpZiAoc2ZwLVx1MDAzZW1heF9wb3dlcl9tVyBcdTAwM2MgMTAwMCkge1xuMzM2NzpcdFx0XHRpZiAoc2ZwLVx1MDAzZW1heF9wb3dlcl9tVylcbjMzNjg6XHRcdFx0XHRkZXZfd2FybihzZnAtXHUwMDNlZGV2LFxuMzM2OTpcdFx0XHRcdFx0IFwmIzM0O0Zpcm13YXJlIGJ1ZzogaG9zdCBtYXhpbXVtIHBvd2VyIHNob3VsZCBiZSBhdCBsZWFzdCAxV1xcblwmIzM0Oyk7XG4zMzcwOlx0XHRcdHNmcC1cdTAwM2VtYXhfcG93ZXJfbVcgPSAxMDAwO1xuMzM3MTpcdFx0fVxuMzM3MjpcdFxuMzM3MzpcdFx0ZGV2X2luZm8oc2ZwLVx1MDAzZWRldiwgXCYjMzQ7SG9zdCBtYXhpbXVtIHBvd2VyICV1LiV1V1xcblwmIzM0OyxcbjMzNzQ6XHRcdFx0IHNmcC1cdTAwM2VtYXhfcG93ZXJfbVcgLyAxMDAwLCAoc2ZwLVx1MDAzZW1heF9wb3dlcl9tVyAvIDEwMCkgJSAxMCk7XG4zMzc1Olx0XG4zMzc2Olx0XHQvKiBHZXQgdGhlIGluaXRpYWwgc3RhdGUsIGFuZCBhbHdheXMgc2lnbmFsIFRYIGRpc2FibGUsXG4zMzc3Olx0XHQgKiBzaW5jZSB0aGUgbmV0d29yayBpbnRlcmZhY2Ugd2lsbCBub3QgYmUgdXAuXG4zMzc4Olx0XHQgKi9cbjMzNzk6XHRcdHNmcC1cdTAwM2VzdGF0ZSA9IHNmcF9nZXRfc3RhdGUoc2ZwKSB8IFNGUF9GX1RYX0RJU0FCTEU7XG4zMzgwOlx0XG4zMzgxOlx0XHRpZiAoc2ZwLVx1MDAzZWdwaW9bR1BJT19SUzBdIFx1MDAyNlx1MDAyNlxuMzM4MjpcdFx0ICAgIGdwaW9kX2dldF92YWx1ZV9jYW5zbGVlcChzZnAtXHUwMDNlZ3Bpb1tHUElPX1JTMF0pKVxuMzM4MzpcdFx0XHRzZnAtXHUwMDNlc3RhdGUgfD0gU0ZQX0ZfUlMwO1xuMzM4NDpcdFx0c2ZwX3NldF9zdGF0ZShzZnAsIHNmcC1cdTAwM2VzdGF0ZSk7XG4zMzg1Olx0XHRzZnBfbW9kdWxlX3R4X2Rpc2FibGUoc2ZwKTtcbjMzODY6XHRcdGlmIChzZnAtXHUwMDNlc3RhdGUgXHUwMDI2IFNGUF9GX1BSRVNFTlQpIHtcbjMzODc6XHRcdFx0cnRubF9sb2NrKCk7XG4zMzg4Olx0XHRcdHNmcF9zbV9ldmVudChzZnAsIFNGUF9FX0lOU0VSVCk7XG4zMzg5Olx0XHRcdHJ0bmxfdW5sb2NrKCk7XG4zMzkwOlx0XHR9XG4zMzkxOlx0XG4zMzkyOlx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBHUElPX01BWDsgaSYjNDM7JiM0MzspIHtcbjMzOTM6XHRcdFx0aWYgKGdwaW9fZmxhZ3NbaV0gIT0gR1BJT0RfSU4gfHwgIXNmcC1cdTAwM2VncGlvW2ldKVxuMzM5NDpcdFx0XHRcdGNvbnRpbnVlO1xuMzM5NTpcdFxuMzM5NjpcdFx0XHRzZnAtXHUwMDNlZ3Bpb19pcnFbaV0gPSBncGlvZF90b19pcnEoc2ZwLVx1MDAzZWdwaW9baV0pO1xuMzM5NzpcdFx0XHRpZiAoc2ZwLVx1MDAzZWdwaW9faXJxW2ldIFx1MDAzYyAwKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1OTAwCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIGBzZnBfaTJjX2dldGAgRnVuY3Rpb24gQ2FsbCoqCgpBbHJpZ2h0LCBzbyBgc2ZwX2kyY19nZXRgIGlzIGJlaW5nIGludm9rZWQuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O09rYXksIHdoYXQmIzM5O3MgaXRzIHB1cnBvc2U/JiMzNDsgR2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgaXQmIzM5O3MgcmVsYXRlZCB0byBJMkMgY29tbXVuaWNhdGlvbiBhbmQgU0ZQIG1vZHVsZXMuIEJ1dCB0aGUgZGV2aWwmIzM5O3MgaW4gdGhlIGRldGFpbHMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzcGVjaWZpY3MuIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgYnkgcXVpY2tseSByZXZpZXdpbmcgdGhlIGNvZGUgZm9yIHRoYXQgZnVuY3Rpb24uIEkgd2FudCB0byBzZWUgaG93IGl0JiMzOTtzIGludGVyZmFjaW5nIHdpdGggdGhlIEkyQyBidXMgYW5kIGlmIHRoZXJlIGFyZSBhbnkgaW50ZXJlc3RpbmcgbnVhbmNlcy4gQXJlIHdlIHRhbGtpbmcgYWJvdXQgYSBzdGFuZGFyZCBJMkMgcmVhZCBvciBhcmUgdGhlcmUgYW55IG1hbnVmYWN0dXJlci1zcGVjaWZpYyBleHRlbnNpb25zIGJlaW5nIHV0aWxpemVkIGhlcmU/IEkmIzM5O20gaG9waW5nIGl0JiMzOTtzIHN0cmFpZ2h0Zm9yd2FyZCBidXQgSSYjMzk7bSBwcmVwYXJlZCBmb3Igc29tZXRoaW5nIGEgYml0IG1vcmUgY29tcGxleCwgZGVwZW5kaW5nIG9uIHRoZSBoYXJkd2FyZSBwbGF0Zm9ybS4gSSBuZWVkIHRvIGxvb2sgZm9yIGFueSByZWdpc3RlciBhY2Nlc3NlcywgZXJyb3IgaGFuZGxpbmcsIHJldHJpZXMsIGFuZCBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgdGhhdCBJIHdpbGwgYmUgaW50ZXJlc3RlZCBpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvc2ZwLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzMjcyLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDI1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzMyNzI6XHRzdGF0aWMgaW50IHNmcF9pMmNfZ2V0KHN0cnVjdCBzZnAgKnNmcClcbjMyNzM6XHR7XG4zMjc0Olx0XHRzdHJ1Y3QgZndub2RlX2hhbmRsZSAqaDtcbjMyNzU6XHRcdHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjO1xuMzI3NjpcdFx0aW50IGVycjtcbjMyNzc6XHRcbjMyNzg6XHRcdGggPSBmd25vZGVfZmluZF9yZWZlcmVuY2UoZGV2X2Z3bm9kZShzZnAtXHUwMDNlZGV2KSwgXCYjMzQ7aTJjLWJ1c1wmIzM0OywgMCk7XG4zMjc5Olx0XHRpZiAoSVNfRVJSKGgpKSB7XG4zMjgwOlx0XHRcdGRldl9lcnIoc2ZwLVx1MDAzZWRldiwgXCYjMzQ7bWlzc2luZyAmIzM5O2kyYy1idXMmIzM5OyBwcm9wZXJ0eVxcblwmIzM0Oyk7XG4zMjgxOlx0XHRcdHJldHVybiAtRU5PREVWO1xuMzI4MjpcdFx0fVxuMzI4MzpcdFxuMzI4NDpcdFx0aTJjID0gaTJjX2dldF9hZGFwdGVyX2J5X2Z3bm9kZShoKTtcbjMyODU6XHRcdGlmICghaTJjKSB7XG4zMjg2Olx0XHRcdGVyciA9IC1FUFJPQkVfREVGRVI7XG4zMjg3Olx0XHRcdGdvdG8gcHV0O1xuMzI4ODpcdFx0fVxuMzI4OTpcdFxuMzI5MDpcdFx0ZXJyID0gc2ZwX2kyY19jb25maWd1cmUoc2ZwLCBpMmMpO1xuMzI5MTpcdFx0aWYgKGVycilcbjMyOTI6XHRcdFx0aTJjX3B1dF9hZGFwdGVyKGkyYyk7XG4zMjkzOlx0cHV0OlxuMzI5NDpcdFx0Zndub2RlX2hhbmRsZV9wdXQoaCk7XG4zMjk1Olx0XHRyZXR1cm4gZXJyO1xuMzI5NjpcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1NzAKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAzNTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQcm9iZSBSZXF1aXJlbWVudCAmYW1wOyBGdXp6aW5nIEZlYXNpYmlsaXR5KioKCk9rYXksIHNvIHRoaXMgZHJpdmVyIHJlbGllcyBvbiBhbiBgaTJjLWJ1c2AgcHJvcGVydHkgYmVpbmcgcHJlc2VudCBpbiB0aGUgZndub2RlLiBJZiB0aGF0JiMzOTtzIG1pc3NpbmcsIGl0JiMzOTtsbCBiYWlsIG91dCB3aXRoIGAtRU5PREVWYCBvciBgLUVQUk9CRV9ERUZFUmAuIEVzc2VudGlhbGx5LCBubyBJMkMgYnVzLCBubyBkcml2ZXIuIFN0cmFpZ2h0Zm9yd2FyZC4KCk5vdywgSSYjMzk7bSB0aGlua2luZyBhYm91dCBmdXp6aW5nIHRoaXMuIFN5emthbGxlciAqY2FuKiBpbmplY3QgSTJDIGFkYXB0ZXJzIChjbGV2ZXIhKSwgdXNpbmcgdGhpbmdzIGxpa2UgYGkyYy1zdHViYCBvciBgaTJjLW1vY2tgLiBUaGUgcHJvYmxlbSBpcyB0aGF0IGl0IGRvZXNuJiMzOTt0IGF1dG9tYXRpY2FsbHkgbGluayB0aGVtIHVwIHRvIHRoZSBwbGF0Zm9ybSBkZXZpY2UmIzM5O3MgZndub2RlIHVzaW5nIHRoYXQgY3J1Y2lhbCBgaTJjLWJ1c2AgcHJvcGVydHkuIERhbW4uIEkgcmVtZW1iZXIgYHN5el9kZXZfcGxhdGZvcm1gIGZvciBjcmVhdGluZyBwbGF0Zm9ybSBkZXZpY2VzLCBidXQgaXQmIzM5O3Mgbm90IHRoZSBpZGVhbCBzb2x1dGlvbiBhcyBpdCYjMzk7cyBub3QgZGVzaWduZWQgdG8gaGFuZGxlIGZ3bm9kZSBwcm9wZXJ0eSBsaW5raW5nIGxpa2UgdGhpcy4KCkFuZCB3YWl0LCB0aGlzIHBhdGNoIEkmIzM5O20gbG9va2luZyBhdCwgaXQgc2VlbXMgdG8gYmUganVzdCBhZGRpbmcgYSBwcmVmaXggbWF0Y2ggZm9yIFNGUCBxdWlya3MuIFNvLCBpcyB0aGlzIGV2ZW4gcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cz8gUHJvYmFibHkgbm90LiBJdCBuZWVkcyB0aGF0IHNwZWNpZmljIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb246IGFuIFNGUCBjYWdlIHdpdGggYW4gSTJDIGJ1cy4gUUVNVSBhbmQgR0NFIGFyZW4mIzM5O3QgZ29pbmcgdG8gZW11bGF0ZSB0aGF0LCBhbmQgU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYSBnb29kIG1vY2sgZm9yIGl0LCBhcyBmYXIgYXMgSSBrbm93LgoKSGFuZyBvbi4uLiBjb3VsZCB3ZSBmdXp6IGB0eGdiZWAgaW5zdGVhZD8gVGhhdCYjMzk7cyBhIFBDSSBkZXZpY2UuIFN5emthbGxlciAqY2FuKiBoYW5kbGUgUENJIGRldmljZXMgd2l0aCBgc3l6X3BjaV9kZXZpY2VgIG9yIHNpbWlsYXIuIEJ1dCwgaXQgbmVlZHMgdGhlIGRldmljZSB0byBiZSBzdXBwb3J0ZWQgYnkgdGhlIFBDSSBmdXp6ZXIsIHdoaWNoIGlzIGEgYmlnIHByZXJlcXVpc2l0ZS4KCkV2ZW4gKmlmKiBgdHhnYmVgIGlzIGZ1enplZCwgdGhlIFNGUCBtb2R1bGUgRUVQUk9NIGlzIHN0aWxsIHJlYWQgb3ZlciBJMkMuIFRoZSBJMkMgYnVzIGhlcmUgaXMgcHJvdmlkZWQgYnkgYHR4Z2JlYC4gU28gdGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGlzIGRvZXMgYHR4Z2JlYCBwcm92aWRlIGFuIEkyQyBhZGFwdGVyPyBJIG5lZWQgdG8gbG9vayBpbnRvIHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aTJjX2FkZF9hZGFwdGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzQwMQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipJMkMgUmVnaXN0ZXIgSW5zcGVjdGlvbiB3aXRoaW4gYHR4Z2JlYCoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbi4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIGhvdyB0aGUgYHR4Z2JlYCBkcml2ZXIgaW50ZXJhY3RzIHdpdGggSTJDLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgaG93IHRoZSByZWdpc3RlcnMgcmVsYXRlZCB0byB0aGUgSTJDIGludGVyZmFjZSBhcmUgbWFwcGVkIGFuZCBhY2Nlc3NlZC4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSB0cmFjaW5nIHRocm91Z2ggdGhlIGRyaXZlciBjb2RlIGFuZCByZWZyZXNoaW5nIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlZ2lzdGVyIGRlZmluaXRpb25zLiBJJiMzOTtsbCBuZWVkIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGJhc2UgYWRkcmVzc2VzIGFuZCBvZmZzZXRzIHVzZWQgZm9yIHRoZSBJMkMgY29udHJvbCBhbmQgc3RhdHVzIHJlZ2lzdGVycy4gQXJlIHRoZXkgbWVtb3J5LW1hcHBlZD8gQXJlIHRoZXJlIGFueSBzcGVjaWFsIGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byB0YWtlIGludG8gYWNjb3VudD8gSSYjMzk7bGwgcHJvYmFibHkgd2FudCB0byBsb29rIGZvciBhbnkgbWFjcm9zIG9yIGhlbHBlciBmdW5jdGlvbnMgdGhlIGRyaXZlciB1c2VzIHRvIGVuY2Fwc3VsYXRlIHRoZSBJMkMgcmVnaXN0ZXIgaW50ZXJhY3Rpb25zLiBUaGlzIGlzIGEgY29tbW9uIHBhdHRlcm4sIGFuZCBJIGV4cGVjdCB0aGVyZSB0byBiZSBhYnN0cmFjdGlvbiBoZXJlLiBMZXQmIzM5O3Mgc2VlIGhvdyB0aGV5IGRvIGl0LiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBhbnkgcG90ZW50aWFsIHF1aXJrcyBvciBlcnJhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSByZXZpc2lvbi4gQW5kIG9mIGNvdXJzZSwgSSYjMzk7bGwgcGF5IGNsb3NlIGF0dGVudGlvbiB0byBpbnRlcnJ1cHQgaGFuZGxpbmcgaWYgaXQmIzM5O3MgaW52b2x2ZWQsIHNpbmNlIHRoYXQmIzM5O3Mgb2Z0ZW4gYSBzb3VyY2Ugb2Ygc3VidGxlIGJ1Z3MuIEkgd2FudCB0byBidWlsZCBhIGNsZWFyIG1lbnRhbCBtb2RlbCBvZiBob3cgYHR4Z2JlYCBpbml0aWFsaXplcyBhbmQgbWFuYWdlcyB0aGUgSTJDIGludGVyZmFjZSBmcm9tIGEgbG93LWxldmVsIHBlcnNwZWN0aXZlLiBLbm93aW5nIHRoaXMsIEkmIzM5O2xsIGJlIHByZXBhcmVkIGZvciBkZWJ1Z2dpbmcgb3IgZW5oYW5jZW1lbnRzIGxhdGVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpMmMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jPTc2PWludCB0eGdiZV9yZWFkX2VlcHJvbV9ob3N0aWYoc3RydWN0IHd4ICp3eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6Nzc6XHRcdFx0ICAgICBzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkICpidWZmZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTc4LVx0XHRcdCAgICAgdTMyIGxlbmd0aCwgdTggKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy04My1cdGJ1ZmZlci1cdTAwM2VoZHIuY21kID0gRldfUkVBRF9FRVBST01fQ01EO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo4NDpcdGJ1ZmZlci1cdTAwM2VoZHIuYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkKSAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTg1LVx0XHRcdCAgICAgIHNpemVvZihzdHJ1Y3Qgd3hfaGljX2hkcik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy04OC1cdGVyciA9IHd4X2hvc3RfaW50ZXJmYWNlX2NvbW1hbmQod3gsICh1MzIgKilidWZmZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjg5Olx0XHRcdFx0XHRzaXplb2Yoc3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTkwLVx0XHRcdFx0XHRXWF9ISV9DT01NQU5EX1RJTUVPVVQsIGZhbHNlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTk0LVx0LyogYnVmZmVyIGxlbmd0aCBvZmZzZXQgdG8gcmVhZCByZXR1cm4gZGF0YSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo5NTpcdG9mZnNldCA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkKSBcdTAwM2VcdTAwM2UgMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtOTYtXHRkd29yZF9sZW4gPSByb3VuZF91cChsZW5ndGgsIDQpIFx1MDAzZVx1MDAzZSAyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg9MTA9aW50IHR4Z2JlX3JlYWRfZWVwcm9tX2hvc3RpZihzdHJ1Y3Qgd3ggKnd4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaDoxMTpcdFx0XHQgICAgIHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQgKmJ1ZmZlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmgtMTItXHRcdFx0ICAgICB1MzIgbGVuZ3RoLCB1OCAqZGF0YSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM9NTI5PXR4Z2JlX2dldF9tb2R1bGVfZWVwcm9tX2J5X3BhZ2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MzMtXHRzdHJ1Y3Qgd3ggKnd4ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUzNDpcdHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQgYnVmZmVyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTM1LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01NDMtXHRidWZmZXIuYmFuayA9IHBhZ2VfZGF0YS1cdTAwM2ViYW5rO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTQ0Olx0YnVmZmVyLmkyY19hZGRyZXNzID0gcGFnZV9kYXRhLVx1MDAzZWkyY19hZGRyZXNzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTQ1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtOC0jaW5jbHVkZSBcdTAwM2NsaW51eC9jbGtkZXYuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo5OiNpbmNsdWRlIFx1MDAzY2xpbnV4L2kyYy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTEwLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYz0yNz1zdGF0aWMgaW50IHR4Z2JlX3N3bm9kZXNfcmVnaXN0ZXIoc3RydWN0IHR4Z2JlICp0eGdiZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTM2LVx0c25wcmludGYobm9kZXMtXHUwMDNlZ3Bpb19uYW1lLCBzaXplb2Yobm9kZXMtXHUwMDNlZ3Bpb19uYW1lKSwgXCYjMzQ7dHhnYmVfZ3Bpby0leFwmIzM0OywgaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzozNzpcdHNucHJpbnRmKG5vZGVzLVx1MDAzZWkyY19uYW1lLCBzaXplb2Yobm9kZXMtXHUwMDNlaTJjX25hbWUpLCBcJiMzNDt0eGdiZV9pMmMtJXhcJiMzNDssIGlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtMzgtXHRzbnByaW50Zihub2Rlcy1cdTAwM2VzZnBfbmFtZSwgc2l6ZW9mKG5vZGVzLVx1MDAzZXNmcF9uYW1lKSwgXCYjMzQ7dHhnYmVfc2ZwLSV4XCYjMzQ7LCBpZCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy01OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NTk6XHRub2Rlcy1cdTAwM2VpMmNfcHJvcHNbMF0gPSBQUk9QRVJUWV9FTlRSWV9TVFJJTkcoXCYjMzQ7Y29tcGF0aWJsZVwmIzM0OywgXCYjMzQ7c25wcyxkZXNpZ253YXJlLWkyY1wmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYwOlx0bm9kZXMtXHUwMDNlaTJjX3Byb3BzWzFdID0gUFJPUEVSVFlfRU5UUllfQk9PTChcJiMzNDt3eCxpMmMtc25wcy1tb2RlbFwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYxOlx0bm9kZXMtXHUwMDNlaTJjX3Byb3BzWzJdID0gUFJPUEVSVFlfRU5UUllfVTMyKFwmIzM0O2Nsb2NrLWZyZXF1ZW5jeVwmIzM0OywgSTJDX01BWF9TVEFOREFSRF9NT0RFX0ZSRVEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo2MjpcdHN3bm9kZXNbU1dOT0RFX0kyQ10gPSBOT0RFX1BST1Aobm9kZXMtXHUwMDNlaTJjX25hbWUsIG5vZGVzLVx1MDAzZWkyY19wcm9wcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYzOlx0bm9kZXMtXHUwMDNlaTJjX3JlZlswXSA9IFNPRlRXQVJFX05PREVfUkVGRVJFTkNFKFx1MDAyNnN3bm9kZXNbU1dOT0RFX0kyQ10pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjUtXHRub2Rlcy1cdTAwM2VzZnBfcHJvcHNbMF0gPSBQUk9QRVJUWV9FTlRSWV9TVFJJTkcoXCYjMzQ7Y29tcGF0aWJsZVwmIzM0OywgXCYjMzQ7c2ZmLHNmcFwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjY2Olx0bm9kZXMtXHUwMDNlc2ZwX3Byb3BzWzFdID0gUFJPUEVSVFlfRU5UUllfUkVGX0FSUkFZKFwmIzM0O2kyYy1idXNcJiMzNDssIG5vZGVzLVx1MDAzZWkyY19yZWYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02Ny1cdG5vZGVzLVx1MDAzZXNmcF9wcm9wc1syXSA9IFBST1BFUlRZX0VOVFJZX1JFRl9BUlJBWShcJiMzNDt0eC1mYXVsdC1ncGlvc1wmIzM0Oywgbm9kZXMtXHUwMDNlZ3BpbzBfcmVmKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jPTQyMT1zdGF0aWMgaW50IHR4Z2JlX2Nsb2NrX3JlZ2lzdGVyKHN0cnVjdCB0eGdiZSAqdHhnYmUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00MjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQyODpcdHNucHJpbnRmKGNsa19uYW1lLCBzaXplb2YoY2xrX25hbWUpLCBcJiMzNDtpMmNfZGVzaWdud2FyZS4lZFwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDI5LVx0XHQgcGNpX2Rldl9pZChwZGV2KSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQ0NzpzdGF0aWMgaW50IHR4Z2JlX2kyY19yZWFkKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCAqdmFsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDU1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0NTY6c3RhdGljIGludCB0eGdiZV9pMmNfd3JpdGUodm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgaW50IHZhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDU3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQ2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDY1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBpMmNfcmVnbWFwX2NvbmZpZyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDY2LVx0LnJlZ19iaXRzID0gMzIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQ2Ny1cdC52YWxfYml0cyA9IDMyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0Njg6XHQucmVnX3JlYWQgPSB0eGdiZV9pMmNfcmVhZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDY5Olx0LnJlZ193cml0ZSA9IHR4Z2JlX2kyY193cml0ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDcwLVx0LmZhc3RfaW8gPSB0cnVlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0NzM6c3RhdGljIGludCB0eGdiZV9pMmNfcmVnaXN0ZXIoc3RydWN0IHR4Z2JlICp0eGdiZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDc0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDc1LVx0c3RydWN0IHBsYXRmb3JtX2RldmljZV9pbmZvIGluZm8gPSB7fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDc2Olx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqaTJjX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDc3Olx0c3RydWN0IHJlZ21hcCAqaTJjX3JlZ21hcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDc4LVx0c3RydWN0IHBjaV9kZXYgKnBkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00ODItXHRwZGV2ID0gd3gtXHUwMDNlcGRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDgzOlx0aTJjX3JlZ21hcCA9IGRldm1fcmVnbWFwX2luaXQoXHUwMDI2cGRldi1cdTAwM2VkZXYsIE5VTEwsIHd4LCBcdTAwMjZpMmNfcmVnbWFwX2NvbmZpZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQ4NDpcdGlmIChJU19FUlIoaTJjX3JlZ21hcCkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDg1LVx0XHR3eF9lcnIod3gsIFwmIzM0O2ZhaWxlZCB0byBpbml0IEkyQyByZWdtYXBcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0ODY6XHRcdHJldHVybiBQVFJfRVJSKGkyY19yZWdtYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00ODctXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00OTAtXHRpbmZvLmZ3bm9kZSA9IHNvZnR3YXJlX25vZGVfZndub2RlKHR4Z2JlLVx1MDAzZW5vZGVzLmdyb3VwW1NXTk9ERV9JMkNdKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDkxOlx0aW5mby5uYW1lID0gXCYjMzQ7aTJjX2Rlc2lnbndhcmVcJiMzNDs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQ5Mi1cdGluZm8uaWQgPSBwY2lfZGV2X2lkKHBkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDk1LVx0aW5mby5udW1fcmVzID0gMTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDk2Olx0aTJjX2RldiA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9mdWxsKFx1MDAyNmluZm8pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0OTc6XHRpZiAoSVNfRVJSKGkyY19kZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0OTg6XHRcdHJldHVybiBQVFJfRVJSKGkyY19kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00OTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjUwMDpcdHR4Z2JlLVx1MDAzZWkyY19kZXYgPSBpMmNfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy01MDEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYz01NzU9aW50IHR4Z2JlX2luaXRfcGh5KHN0cnVjdCB0eGdiZSAqdHhnYmUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02MjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYyMjpcdHJldCA9IHR4Z2JlX2kyY19yZWdpc3Rlcih0eGdiZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTYyMy1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjI0Olx0XHR3eF9lcnIod3gsIFwmIzM0O2ZhaWxlZCB0byBpbml0IGkyYyBpbnRlcmZhY2U6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02MjUtXHRcdGdvdG8gZXJyX3VucmVnaXN0ZXJfY2xrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjMwLVx0XHR3eF9lcnIod3gsIFwmIzM0O2ZhaWxlZCB0byByZWdpc3RlciBzZnBcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo2MzE6XHRcdGdvdG8gZXJyX3VucmVnaXN0ZXJfaTJjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02MzItXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02MzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYzNjplcnJfdW5yZWdpc3Rlcl9pMmM6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYzNzpcdHBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKHR4Z2JlLVx1MDAzZWkyY19kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02MzgtZXJyX3VucmVnaXN0ZXJfY2xrOlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM9NjUxPXZvaWQgdHhnYmVfcmVtb3ZlX3BoeShzdHJ1Y3QgdHhnYmUgKnR4Z2JlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjcxLVx0cGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIodHhnYmUtXHUwMDNlc2ZwX2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjY3MjpcdHBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKHR4Z2JlLVx1MDAzZWkyY19kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02NzMtXHRjbGtkZXZfZHJvcCh0eGdiZS1cdTAwM2VjbG9jayk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmg9MzkwPXN0cnVjdCB0eGdiZV9oaWNfZXBoeV9nZXRsaW5rIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaDo0MDE6c3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00MDItXHRzdHJ1Y3Qgd3hfaGljX2hkciBoZHI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDA2LVx0dTggYmFuaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oOjQwNzpcdHU4IGkyY19hZGRyZXNzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDA4LVx0dTggcmVzdjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaD00MjU9c3RydWN0IHR4Z2JlX25vZGVzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQyNi1cdGNoYXIgZ3Bpb19uYW1lWzMyXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oOjQyNzpcdGNoYXIgaTJjX25hbWVbMzJdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDI4LVx0Y2hhciBzZnBfbmFtZVszMl07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDMwLVx0c3RydWN0IHByb3BlcnR5X2VudHJ5IGdwaW9fcHJvcHNbMl07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaDo0MzE6XHRzdHJ1Y3QgcHJvcGVydHlfZW50cnkgaTJjX3Byb3BzWzRdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDMyLVx0c3RydWN0IHByb3BlcnR5X2VudHJ5IHNmcF9wcm9wc1s5XTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQzMy1cdHN0cnVjdCBwcm9wZXJ0eV9lbnRyeSBwaHlsaW5rX3Byb3BzWzNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmg6NDM0Olx0c3RydWN0IHNvZnR3YXJlX25vZGVfcmVmX2FyZ3MgaTJjX3JlZlsxXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQzNS1cdHN0cnVjdCBzb2Z0d2FyZV9ub2RlX3JlZl9hcmdzIGdwaW8wX3JlZlsxXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaD00NTk9c3RydWN0IHR4Z2JlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00NjQtXHRzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpzZnBfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmg6NDY1Olx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqaTJjX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQ2Ni1cdHN0cnVjdCBjbGtfbG9va3VwICpjbG9jaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI2NzYKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyNjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgdHhnYmUgRHJpdmVyIGFuZCBQb3RlbnRpYWwgU3l6a2FsbGVyIEZ1enppbmcgSW1wbGljYXRpb25zKioKCk9rYXksIHNvIGB0eGdiZWAgaXMgY3JlYXRpbmcgYSBgaTJjX2Rlc2lnbndhcmVgIHBsYXRmb3JtIGRldmljZSBhbmQgYSBgc2ZmLHNmcGAgcGxhdGZvcm0gZGV2aWNlLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLiBJZiBTeXprYWxsZXIsIGluIGl0cyBQQ0kgZnV6emluZywgc29tZWhvdyBtYW5hZ2VzIHRvIGluaXRpYWxpemUgYHR4Z2JlYCwgaXQmIzM5O3MgZ29pbmcgdG8gc3Bhd24gdGhlc2UgY2hpbGRyZW4gLSBhbiBJMkMgYWRhcHRlciBhbmQgYW4gU0ZQIGRldmljZSwgd2hpY2ggc2VlbXMgbGlrZSBhIHByb21pc2luZyBhdHRhY2sgc3VyZmFjZSB0byBtZS4KCkhvd2V2ZXIsIHRoZSBjYXRjaCwgYXMgYWx3YXlzLCBpcyB0aGF0IGB0eGdiZWAgaXMgYSBjb21wbGV4IGRyaXZlci4gSXQgbmVlZHMgcmVhbCBoYXJkd2FyZSBvciBhdCBsZWFzdCBhIGdvb2QgbW9jayB0byByZXNwb25kIGNvcnJlY3RseSB0byBQQ0kgTU1JTyByZWFkcyBhbmQgd3JpdGVzLiBXaGlsZSBTeXprYWxsZXImIzM5O3MgUENJIGZ1enplciBjYW4gZGVmaW5pdGVseSBpbmplY3QgTU1JTyBvcGVyYXRpb25zLCBnZXR0aW5nIGEgY29tcGxpY2F0ZWQgZHJpdmVyIGxpa2UgdGhpcyB0byBmdWxseSBpbml0aWFsaXplIGFuZCByZWdpc3RlciBpdHMgY2hpbGQgcGxhdGZvcm0gZGV2aWNlcywgd2l0aG91dCBhIGNhcmVmdWxseSBjcmFmdGVkIG1vY2ssIGlzIGEgc2lnbmlmaWNhbnQgY2hhbGxlbmdlLgoKTGV0JiMzOTtzIGFzc3VtZSwgZm9yIGEgbW9tZW50LCB0aGF0IHdlICpkbyogZ2V0IGl0IHRvIGluaXRpYWxpemUuIFRoZSBJMkMgYWRhcHRlciBpcyBhbiBgaTJjX2Rlc2lnbndhcmVgIGRldmljZSwgd2hpY2ggbWVhbnMgdGhlIFNGUCBkcml2ZXIgd2lsbCBiZSB0cnlpbmcgdG8gcmVhZCBmcm9tIHRoZSBJMkMgYnVzLiBBbmQsIHNpbmNlIGBpMmNfZGVzaWdud2FyZWAgcmVsaWVzIG9uIGB0eGdiZWAmIzM5O3MgTU1JTyBmb3IgdGhlIGFjdHVhbCBJMkMgdHJhbnNhY3Rpb25zLCB3ZSYjMzk7cmUgaW4gYSBzaXR1YXRpb24gd2hlcmUgcmFuZG9tIE1NSU8gcmVzcG9uc2VzIGZyb20gU3l6a2FsbGVyIHdpbGwgYWxtb3N0IGNlcnRhaW5seSBsZWFkIHRvIGVpdGhlciBmYWlsaW5nIEkyQyByZWFkcyBvciwgbW9yZSBpbnRlcmVzdGluZ2x5LCB0aGUgcmV0dXJuIG9mIGNvbXBsZXRlbHkgZ2FyYmFnZSBkYXRhLgoKSWYgdGhlIEkyQyByZWFkIHJldHVybnMganVuaywgYHNmcF9zbV9tb2RfcHJvYmVgIGlzIGdvaW5nIHRvIHJlYWQgZnJvbSB0aGUgRUVQUk9NLiBUaGlzIGlzIHdoZXJlIHRoaW5ncyBnZXQgcmVhbGx5IGludGVyZXN0aW5nOyB0aGUgU0ZQIGRyaXZlciBpcyBnb2luZyB0byB0cnkgdG8gcHJvY2VzcyBiYWQgRUVQUk9NIGRhdGEuIE5vdyBJIG5lZWQgdG8gdGFrZSBhIGxvb2sgYXQgYHNmcF9zbV9tb2RfcHJvYmVgIGFuZCBzZWUgd2hhdCBpdCBkb2VzIHdpdGggdGhpcyBub25zZW5zZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvc2ZwLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNDk0LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsyNDk0Olx0c3RhdGljIGludCBzZnBfc21fbW9kX3Byb2JlKHN0cnVjdCBzZnAgKnNmcCwgYm9vbCByZXBvcnQpXG4yNDk1Olx0e1xuMjQ5NjpcdFx0LyogU0ZQIG1vZHVsZSBpbnNlcnRlZCAtIHJlYWQgSTJDIGRhdGEgKi9cbjI0OTc6XHRcdHN0cnVjdCBzZnBfZWVwcm9tX2lkIGlkO1xuMjQ5ODpcdFx0Ym9vbCBjb3Rzd29ya3Nfc2ZiZztcbjI0OTk6XHRcdHVuc2lnbmVkIGludCBtYXNrO1xuMjUwMDpcdFx0Ym9vbCBjb3Rzd29ya3M7XG4yNTAxOlx0XHR1OCBjaGVjaztcbjI1MDI6XHRcdGludCByZXQ7XG4yNTAzOlx0XG4yNTA0Olx0XHRzZnAtXHUwMDNlaTJjX2Jsb2NrX3NpemUgPSBzZnAtXHUwMDNlaTJjX21heF9ibG9ja19zaXplO1xuMjUwNTpcdFxuMjUwNjpcdFx0cmV0ID0gc2ZwX3JlYWQoc2ZwLCBmYWxzZSwgMCwgXHUwMDI2aWQuYmFzZSwgc2l6ZW9mKGlkLmJhc2UpKTtcbjI1MDc6XHRcdGlmIChyZXQgXHUwMDNjIDApIHtcbjI1MDg6XHRcdFx0aWYgKHJlcG9ydClcbjI1MDk6XHRcdFx0XHRkZXZfZXJyKHNmcC1cdTAwM2VkZXYsIFwmIzM0O2ZhaWxlZCB0byByZWFkIEVFUFJPTTogJXBlXFxuXCYjMzQ7LFxuMjUxMDpcdFx0XHRcdFx0RVJSX1BUUihyZXQpKTtcbjI1MTE6XHRcdFx0cmV0dXJuIC1FQUdBSU47XG4yNTEyOlx0XHR9XG4yNTEzOlx0XG4yNTE0Olx0XHRpZiAocmV0ICE9IHNpemVvZihpZC5iYXNlKSkge1xuMjUxNTpcdFx0XHRkZXZfZXJyKHNmcC1cdTAwM2VkZXYsIFwmIzM0O0VFUFJPTSBzaG9ydCByZWFkOiAlcGVcXG5cJiMzNDssIEVSUl9QVFIocmV0KSk7XG4yNTE2Olx0XHRcdHJldHVybiAtRUFHQUlOO1xuMjUxNzpcdFx0fVxuMjUxODpcdFxuMjUxOTpcdFx0LyogU29tZSBTRlAgbW9kdWxlcyAoZS5nLiBOb2tpYSAzRkU0NjU0MUFBKSBsb2NrIHVwIGlmIHJlYWQgZnJvbVxuMjUyMDpcdFx0ICogYWRkcmVzcyAweDUxIGlzIGp1c3Qgb25lIGJ5dGUgYXQgYSB0aW1lLiBBbHNvIFNGRi04NDcyIHJlcXVpcmVzXG4yNTIxOlx0XHQgKiB0aGF0IEVFUFJPTSBzdXBwb3J0cyBhdG9taWMgMTZiaXQgcmVhZCBvcGVyYXRpb24gZm9yIGRpYWdub3N0aWNcbjI1MjI6XHRcdCAqIGZpZWxkcywgc28gZG8gbm90IHN3aXRjaCB0byBvbmUgYnl0ZSByZWFkaW5nIGF0IGEgdGltZSB1bmxlc3MgaXRcbjI1MjM6XHRcdCAqIGlzIHJlYWxseSByZXF1aXJlZCBhbmQgd2UgaGF2ZSBubyBvdGhlciBvcHRpb24uXG4yNTI0Olx0XHQgKi9cbjI1MjU6XHRcdGlmIChzZnBfaWRfbmVlZHNfYnl0ZV9pbyhzZnAsIFx1MDAyNmlkLmJhc2UsIHNpemVvZihpZC5iYXNlKSkpIHtcbjI1MjY6XHRcdFx0ZGV2X2luZm8oc2ZwLVx1MDAzZWRldixcbjI1Mjc6XHRcdFx0XHQgXCYjMzQ7RGV0ZWN0ZWQgYnJva2VuIFJUTDg2NzIvUlRMOTYwMUMgZW11bGF0ZWQgRUVQUk9NXFxuXCYjMzQ7KTtcbjI1Mjg6XHRcdFx0ZGV2X2luZm8oc2ZwLVx1MDAzZWRldixcbjI1Mjk6XHRcdFx0XHQgXCYjMzQ7U3dpdGNoaW5nIHRvIHJlYWRpbmcgRUVQUk9NIHRvIG9uZSBieXRlIGF0IGEgdGltZVxcblwmIzM0Oyk7XG4yNTMwOlx0XHRcdHNmcC1cdTAwM2VpMmNfYmxvY2tfc2l6ZSA9IDE7XG4yNTMxOlx0XG4yNTMyOlx0XHRcdHJldCA9IHNmcF9yZWFkKHNmcCwgZmFsc2UsIDAsIFx1MDAyNmlkLmJhc2UsIHNpemVvZihpZC5iYXNlKSk7XG4yNTMzOlx0XHRcdGlmIChyZXQgXHUwMDNjIDApIHtcbjI1MzQ6XHRcdFx0XHRpZiAocmVwb3J0KVxuMjUzNTpcdFx0XHRcdFx0ZGV2X2VycihzZnAtXHUwMDNlZGV2LFxuMjUzNjpcdFx0XHRcdFx0XHRcJiMzNDtmYWlsZWQgdG8gcmVhZCBFRVBST006ICVwZVxcblwmIzM0OyxcbjI1Mzc6XHRcdFx0XHRcdFx0RVJSX1BUUihyZXQpKTtcbjI1Mzg6XHRcdFx0XHRyZXR1cm4gLUVBR0FJTjtcbjI1Mzk6XHRcdFx0fVxuMjU0MDpcdFxuMjU0MTpcdFx0XHRpZiAocmV0ICE9IHNpemVvZihpZC5iYXNlKSkge1xuMjU0MjpcdFx0XHRcdGRldl9lcnIoc2ZwLVx1MDAzZWRldiwgXCYjMzQ7RUVQUk9NIHNob3J0IHJlYWQ6ICVwZVxcblwmIzM0OyxcbjI1NDM6XHRcdFx0XHRcdEVSUl9QVFIocmV0KSk7XG4yNTQ0Olx0XHRcdFx0cmV0dXJuIC1FQUdBSU47XG4yNTQ1Olx0XHRcdH1cbjI1NDY6XHRcdH1cbjI1NDc6XHRcbjI1NDg6XHRcdC8qIENvdHN3b3JrcyBkbyBub3Qgc2VlbSB0byB1cGRhdGUgdGhlIGNoZWNrc3VtcyB3aGVuIHRoZXlcbjI1NDk6XHRcdCAqIGRvIHRoZSBmaW5hbCBwcm9ncmFtbWluZyB3aXRoIHRoZSBmaW5hbCBtb2R1bGUgcGFydCBudW1iZXIsXG4yNTUwOlx0XHQgKiBzZXJpYWwgbnVtYmVyIGFuZCBkYXRlIGNvZGUuXG4yNTUxOlx0XHQgKi9cbjI1NTI6XHRcdGNvdHN3b3JrcyA9ICFtZW1jbXAoaWQuYmFzZS52ZW5kb3JfbmFtZSwgXCYjMzQ7Q09UU1dPUktTICAgICAgIFwmIzM0OywgMTYpO1xuMjU1MzpcdFx0Y290c3dvcmtzX3NmYmcgPSAhbWVtY21wKGlkLmJhc2UudmVuZG9yX3BuLCBcJiMzNDtTRkJHXCYjMzQ7LCA0KTtcbjI1NTQ6XHRcbjI1NTU6XHRcdC8qIENvdHN3b3JrcyBTRkYgbW9kdWxlIEVFUFJPTSBkbyBub3QgYWx3YXlzIGhhdmUgdmFsaWQgcGh5c19pZCxcbjI1NTY6XHRcdCAqIHBoeXNfZXh0X2lkLCBhbmQgY29ubmVjdG9yIGJ5dGVzLiAgUmV3cml0ZSBTRkYgRUVQUk9NIGJ5dGVzIGlmXG4yNTU3Olx0XHQgKiBDb3Rzd29ya3MgUE4gbWF0Y2hlcyBhbmQgYnl0ZXMgYXJlIG5vdCBjb3JyZWN0LlxuMjU1ODpcdFx0ICovXG4yNTU5Olx0XHRpZiAoY290c3dvcmtzIFx1MDAyNlx1MDAyNiBjb3Rzd29ya3Nfc2ZiZykge1xuMjU2MDpcdFx0XHRyZXQgPSBzZnBfY290c3dvcmtzX2ZpeHVwX2NoZWNrKHNmcCwgXHUwMDI2aWQpO1xuMjU2MTpcdFx0XHRpZiAocmV0IFx1MDAzYyAwKVxuMjU2MjpcdFx0XHRcdHJldHVybiByZXQ7XG4yNTYzOlx0XHR9XG4yNTY0Olx0XG4yNTY1Olx0XHQvKiBWYWxpZGF0ZSB0aGUgY2hlY2tzdW0gb3ZlciB0aGUgYmFzZSBzdHJ1Y3R1cmUgKi9cbjI1NjY6XHRcdGNoZWNrID0gc2ZwX2NoZWNrKFx1MDAyNmlkLmJhc2UsIHNpemVvZihpZC5iYXNlKSAtIDEpO1xuMjU2NzpcdFx0aWYgKGNoZWNrICE9IGlkLmJhc2UuY2NfYmFzZSkge1xuMjU2ODpcdFx0XHRpZiAoY290c3dvcmtzKSB7XG4yNTY5Olx0XHRcdFx0ZGV2X3dhcm4oc2ZwLVx1MDAzZWRldixcbjI1NzA6XHRcdFx0XHRcdCBcJiMzNDtFRVBST00gYmFzZSBzdHJ1Y3R1cmUgY2hlY2tzdW0gZmFpbHVyZSAoMHglMDJ4ICE9IDB4JTAyeClcXG5cJiMzNDssXG4yNTcxOlx0XHRcdFx0XHQgY2hlY2ssIGlkLmJhc2UuY2NfYmFzZSk7XG4yNTcyOlx0XHRcdH0gZWxzZSB7XG4yNTczOlx0XHRcdFx0ZGV2X2VycihzZnAtXHUwMDNlZGV2LFxuMjU3NDpcdFx0XHRcdFx0XCYjMzQ7RUVQUk9NIGJhc2Ugc3RydWN0dXJlIGNoZWNrc3VtIGZhaWx1cmU6IDB4JTAyeCAhPSAweCUwMnhcXG5cJiMzNDssXG4yNTc1Olx0XHRcdFx0XHRjaGVjaywgaWQuYmFzZS5jY19iYXNlKTtcbjI1NzY6XHRcdFx0XHRwcmludF9oZXhfZHVtcChLRVJOX0VSUiwgXCYjMzQ7c2ZwIEVFOiBcJiMzNDssIERVTVBfUFJFRklYX09GRlNFVCxcbjI1Nzc6XHRcdFx0XHRcdCAgICAgICAxNiwgMSwgXHUwMDI2aWQsIHNpemVvZihpZCksIHRydWUpO1xuMjU3ODpcdFx0XHRcdHJldHVybiAtRUlOVkFMO1xuMjU3OTpcdFx0XHR9XG4yNTgwOlx0XHR9XG4yNTgxOlx0XG4yNTgyOlx0XHRyZXQgPSBzZnBfcmVhZChzZnAsIGZhbHNlLCBTRlBfQ0NfQkFTRSAmIzQzOyAxLCBcdTAwMjZpZC5leHQsIHNpemVvZihpZC5leHQpKTtcbjI1ODM6XHRcdGlmIChyZXQgXHUwMDNjIDApIHtcbjI1ODQ6XHRcdFx0aWYgKHJlcG9ydClcbjI1ODU6XHRcdFx0XHRkZXZfZXJyKHNmcC1cdTAwM2VkZXYsIFwmIzM0O2ZhaWxlZCB0byByZWFkIEVFUFJPTTogJXBlXFxuXCYjMzQ7LFxuMjU4NjpcdFx0XHRcdFx0RVJSX1BUUihyZXQpKTtcbjI1ODc6XHRcdFx0cmV0dXJuIC1FQUdBSU47XG4yNTg4Olx0XHR9XG4yNTg5Olx0XG4yNTkwOlx0XHRpZiAocmV0ICE9IHNpemVvZihpZC5leHQpKSB7XG4yNTkxOlx0XHRcdGRldl9lcnIoc2ZwLVx1MDAzZWRldiwgXCYjMzQ7RUVQUk9NIHNob3J0IHJlYWQ6ICVwZVxcblwmIzM0OywgRVJSX1BUUihyZXQpKTtcbjI1OTI6XHRcdFx0cmV0dXJuIC1FQUdBSU47XG4yNTkzOlx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1MDk4CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkVFUFJPTSBDaGVja3N1bSBWZXJpZmljYXRpb24qKgoKT2theSwgc28gdGhlIEVFUFJPTSBjaGVja3N1bSBpcyBhYnNvbHV0ZWx5IGNyaXRpY2FsIGhlcmU7IGl0ICpoYXMqIHRvIGJlIHZhbGlkLiBUaGUgY29kZSB1c2VzIGBzZnBfY2hlY2tgIG9uIHRoZSBiYXNlIElEIHNlY3Rpb24sIGV4Y2x1ZGluZyB0aGUgZmluYWwgY2hlY2tzdW0gYnl0ZSBpdHNlbGYuIEkgc2VlIHRoYXQgYGNoZWNrYCB2YWx1ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIHN0b3JlZCBgY2NfYmFzZWAgdmFsdWUgaW4gdGhlIElEIHN0cnVjdHVyZS4gSWYgdGhhdCBjaGVjayBmYWlscywgdGhlIGZ1bmN0aW9uIHJldHVybnMgYC1FSU5WQUxgLCBpbmRpY2F0aW5nIGFuIGludmFsaWQgRUVQUk9NIGRhdGEuCgpHaXZlbiB0aGUgbmF0dXJlIG9mIFN5emthbGxlciYjMzk7cyByYW5kb20gSTJDIHJlc3BvbnNlcywgY2hlY2tzdW0gZmFpbHVyZXMgYXJlIGhpZ2hseSBwcm9iYWJsZS4gSXQmIzM5O3MgZXNzZW50aWFsbHkgYSBnYXJiYWdlLWluLCBnYXJiYWdlLW91dCBzaXR1YXRpb24uIEhvd2V2ZXIsIHRoZXJlJiMzOTtzIGEgdmVuZG9yLXNwZWNpZmljIGV4Y2VwdGlvbiB0byB0aGlzIHJ1bGUuIElmIHRoZSB2ZW5kb3IgaXMgJiMzNDtDT1RTV09SS1MgICAgICAgJiMzNDssIHRoZSBjb2RlIGRvZXNuJiMzOTt0IG91dHJpZ2h0IGZhaWwuIEluc3RlYWQsIGl0IHNlZW1zIHRvIGVtaXQgYSB3YXJuaW5nIGFuZCBwcm9jZWVkcyB3aXRoIHRoZSByZXN0IG9mIHRoZSByZWFkLgoKSWYgdGhhdCBpbml0aWFsIGNoZWNrc3VtIHBhc3NlcyAob3IgdGhlIHZlbmRvciBpcyBDT1RTKSwgdGhlIGNvZGUgY29udGludWVzIHRvIHJlYWQgdGhlIGV4dGVuZGVkIElEIGluZm9ybWF0aW9uLiBBbmQsIG9mIGNvdXJzZSwgYWZ0ZXIgcmVhZGluZyB0aGUgZXh0ZW5kZWQgZGF0YSwgaXQmIzM5O2xsIHRoZW4gZ28gb24gdG8gY2hlY2sgdGhhdCBleHRlbmRlZCBjaGVja3N1bS4gVGhpcyBpcyBhIHN0YW5kYXJkIGFuZCBuZWNlc3NhcnkgY2hlY2suIEkmIzM5O2xsIG5lZWQgdG8gcmVtZW1iZXIgdGhpcyB3aGVuIGNvbnNpZGVyaW5nIGhvdyB0byBoYW5kbGUgcG90ZW50aWFsIGRhdGEgY29ycnVwdGlvbiBmcm9tIFN5emthbGxlciBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9zZnAuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI1OTQsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzI1OTQ6XHRcbjI1OTU6XHRcdGNoZWNrID0gc2ZwX2NoZWNrKFx1MDAyNmlkLmV4dCwgc2l6ZW9mKGlkLmV4dCkgLSAxKTtcbjI1OTY6XHRcdGlmIChjaGVjayAhPSBpZC5leHQuY2NfZXh0KSB7XG4yNTk3Olx0XHRcdGlmIChjb3Rzd29ya3MpIHtcbjI1OTg6XHRcdFx0XHRkZXZfd2FybihzZnAtXHUwMDNlZGV2LFxuMjU5OTpcdFx0XHRcdFx0IFwmIzM0O0VFUFJPTSBleHRlbmRlZCBzdHJ1Y3R1cmUgY2hlY2tzdW0gZmFpbHVyZSAoMHglMDJ4ICE9IDB4JTAyeClcXG5cJiMzNDssXG4yNjAwOlx0XHRcdFx0XHQgY2hlY2ssIGlkLmV4dC5jY19leHQpO1xuMjYwMTpcdFx0XHR9IGVsc2Uge1xuMjYwMjpcdFx0XHRcdGRldl9lcnIoc2ZwLVx1MDAzZWRldixcbjI2MDM6XHRcdFx0XHRcdFwmIzM0O0VFUFJPTSBleHRlbmRlZCBzdHJ1Y3R1cmUgY2hlY2tzdW0gZmFpbHVyZTogMHglMDJ4ICE9IDB4JTAyeFxcblwmIzM0OyxcbjI2MDQ6XHRcdFx0XHRcdGNoZWNrLCBpZC5leHQuY2NfZXh0KTtcbjI2MDU6XHRcdFx0XHRwcmludF9oZXhfZHVtcChLRVJOX0VSUiwgXCYjMzQ7c2ZwIEVFOiBcJiMzNDssIERVTVBfUFJFRklYX09GRlNFVCxcbjI2MDY6XHRcdFx0XHRcdCAgICAgICAxNiwgMSwgXHUwMDI2aWQsIHNpemVvZihpZCksIHRydWUpO1xuMjYwNzpcdFx0XHRcdG1lbXNldChcdTAwMjZpZC5leHQsIDAsIHNpemVvZihpZC5leHQpKTtcbjI2MDg6XHRcdFx0fVxuMjYwOTpcdFx0fVxuMjYxMDpcdFxuMjYxMTpcdFx0c2ZwLVx1MDAzZWlkID0gaWQ7XG4yNjEyOlx0XG4yNjEzOlx0XHRkZXZfaW5mbyhzZnAtXHUwMDNlZGV2LCBcJiMzNDttb2R1bGUgJS4qcyAlLipzIHJldiAlLipzIHNuICUuKnMgZGMgJS4qc1xcblwmIzM0OyxcbjI2MTQ6XHRcdFx0IChpbnQpc2l6ZW9mKGlkLmJhc2UudmVuZG9yX25hbWUpLCBpZC5iYXNlLnZlbmRvcl9uYW1lLFxuMjYxNTpcdFx0XHQgKGludClzaXplb2YoaWQuYmFzZS52ZW5kb3JfcG4pLCBpZC5iYXNlLnZlbmRvcl9wbixcbjI2MTY6XHRcdFx0IChpbnQpc2l6ZW9mKGlkLmJhc2UudmVuZG9yX3JldiksIGlkLmJhc2UudmVuZG9yX3JldixcbjI2MTc6XHRcdFx0IChpbnQpc2l6ZW9mKGlkLmV4dC52ZW5kb3Jfc24pLCBpZC5leHQudmVuZG9yX3NuLFxuMjYxODpcdFx0XHQgKGludClzaXplb2YoaWQuZXh0LmRhdGVjb2RlKSwgaWQuZXh0LmRhdGVjb2RlKTtcbjI2MTk6XHRcbjI2MjA6XHRcdC8qIENoZWNrIHdoZXRoZXIgd2Ugc3VwcG9ydCB0aGlzIG1vZHVsZSAqL1xuMjYyMTpcdFx0aWYgKCFzZnAtXHUwMDNldHlwZS1cdTAwM2Vtb2R1bGVfc3VwcG9ydGVkKFx1MDAyNmlkKSkge1xuMjYyMjpcdFx0XHRkZXZfZXJyKHNmcC1cdTAwM2VkZXYsXG4yNjIzOlx0XHRcdFx0XCYjMzQ7bW9kdWxlIGlzIG5vdCBzdXBwb3J0ZWQgLSBwaHlzIGlkIDB4JTAyeCAweCUwMnhcXG5cJiMzNDssXG4yNjI0Olx0XHRcdFx0c2ZwLVx1MDAzZWlkLmJhc2UucGh5c19pZCwgc2ZwLVx1MDAzZWlkLmJhc2UucGh5c19leHRfaWQpO1xuMjYyNTpcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjI2MjY6XHRcdH1cbjI2Mjc6XHRcbjI2Mjg6XHRcdGlmIChzZnAtXHUwMDNlaWQuZXh0LnNmZjg0NzJfY29tcGxpYW5jZSAhPSBTRlBfU0ZGODQ3Ml9DT01QTElBTkNFX05PTkUpIHtcbjI2Mjk6XHRcdFx0cmV0ID0gc2ZwX21vZHVsZV9wYXJzZV9zZmY4NDcyKHNmcCk7XG4yNjMwOlx0XHRcdGlmIChyZXQgXHUwMDNjIDApXG4yNjMxOlx0XHRcdFx0cmV0dXJuIHJldDtcbjI2MzI6XHRcdH1cbjI2MzM6XHRcbjI2MzQ6XHRcdC8qIFBhcnNlIHRoZSBtb2R1bGUgcG93ZXIgcmVxdWlyZW1lbnQgKi9cbjI2MzU6XHRcdHJldCA9IHNmcF9tb2R1bGVfcGFyc2VfcG93ZXIoc2ZwKTtcbjI2MzY6XHRcdGlmIChyZXQgXHUwMDNjIDApXG4yNjM3Olx0XHRcdHJldHVybiByZXQ7XG4yNjM4Olx0XG4yNjM5Olx0XHRzZnBfbW9kdWxlX3BhcnNlX3JhdGVfc2VsZWN0KHNmcCk7XG4yNjQwOlx0XG4yNjQxOlx0XHRtYXNrID0gU0ZQX0ZfUFJFU0VOVDtcbjI2NDI6XHRcdGlmIChzZnAtXHUwMDNlZ3Bpb1tHUElPX1RYX0RJU0FCTEVdKVxuMjY0MzpcdFx0XHRtYXNrIHw9IFNGUF9GX1RYX0RJU0FCTEU7XG4yNjQ0Olx0XHRpZiAoc2ZwLVx1MDAzZWdwaW9bR1BJT19UWF9GQVVMVF0pXG4yNjQ1Olx0XHRcdG1hc2sgfD0gU0ZQX0ZfVFhfRkFVTFQ7XG4yNjQ2Olx0XHRpZiAoc2ZwLVx1MDAzZWdwaW9bR1BJT19MT1NdKVxuMjY0NzpcdFx0XHRtYXNrIHw9IFNGUF9GX0xPUztcbjI2NDg6XHRcdGlmIChzZnAtXHUwMDNlZ3Bpb1tHUElPX1JTMF0pXG4yNjQ5Olx0XHRcdG1hc2sgfD0gU0ZQX0ZfUlMwO1xuMjY1MDpcdFx0aWYgKHNmcC1cdTAwM2VncGlvW0dQSU9fUlMxXSlcbjI2NTE6XHRcdFx0bWFzayB8PSBTRlBfRl9SUzE7XG4yNjUyOlx0XG4yNjUzOlx0XHRzZnAtXHUwMDNlbW9kdWxlX3Rfc3RhcnRfdXAgPSBUX1NUQVJUX1VQO1xuMjY1NDpcdFx0c2ZwLVx1MDAzZW1vZHVsZV90X3dhaXQgPSBUX1dBSVQ7XG4yNjU1Olx0XHRzZnAtXHUwMDNlcGh5X3RfcmV0cnkgPSBUX1BIWV9SRVRSWTtcbjI2NTY6XHRcbjI2NTc6XHRcdHNmcC1cdTAwM2VzdGF0ZV9pZ25vcmVfbWFzayA9IDA7XG4yNjU4Olx0XG4yNjU5Olx0XHRpZiAoc2ZwLVx1MDAzZWlkLmJhc2UuZXh0ZW5kZWRfY2MgPT0gU0ZGODAyNF9FQ0NfMTBHQkFTRV9UX1NGSSB8fFxuMjY2MDpcdFx0ICAgIHNmcC1cdTAwM2VpZC5iYXNlLmV4dGVuZGVkX2NjID09IFNGRjgwMjRfRUNDXzEwR0JBU0VfVF9TUiB8fFxuMjY2MTpcdFx0ICAgIHNmcC1cdTAwM2VpZC5iYXNlLmV4dGVuZGVkX2NjID09IFNGRjgwMjRfRUNDXzVHQkFTRV9UIHx8XG4yNjYyOlx0XHQgICAgc2ZwLVx1MDAzZWlkLmJhc2UuZXh0ZW5kZWRfY2MgPT0gU0ZGODAyNF9FQ0NfMl81R0JBU0VfVClcbjI2NjM6XHRcdFx0c2ZwLVx1MDAzZW1kaW9fcHJvdG9jb2wgPSBNRElPX0kyQ19DNDU7XG4yNjY0Olx0XHRlbHNlIGlmIChzZnAtXHUwMDNlaWQuYmFzZS5lMTAwMF9iYXNlX3QpXG4yNjY1Olx0XHRcdHNmcC1cdTAwM2VtZGlvX3Byb3RvY29sID0gTURJT19JMkNfTUFSVkVMTF9DMjI7XG4yNjY2Olx0XHRlbHNlXG4yNjY3Olx0XHRcdHNmcC1cdTAwM2VtZGlvX3Byb3RvY29sID0gTURJT19JMkNfTk9ORTtcbjI2Njg6XHRcbjI2Njk6XHRcdHNmcC1cdTAwM2VxdWlyayA9IHNmcF9sb29rdXBfcXVpcmsoXHUwMDI2aWQpO1xuMjY3MDpcdFxuMjY3MTpcdFx0bXV0ZXhfbG9jayhcdTAwMjZzZnAtXHUwMDNlc3RfbXV0ZXgpO1xuMjY3MjpcdFx0LyogSW5pdGlhbGlzZSBzdGF0ZSBiaXRzIHRvIHVzZSBmcm9tIGhhcmR3YXJlICovXG4yNjczOlx0XHRzZnAtXHUwMDNlc3RhdGVfaHdfbWFzayA9IG1hc2s7XG4yNjc0Olx0XG4yNjc1Olx0XHQvKiBXZSB3YW50IHRvIGRyaXZlIHRoZSByYXRlIHNlbGVjdCBwaW5zIHRoYXQgdGhlIG1vZHVsZSBpcyB1c2luZyAqL1xuMjY3NjpcdFx0c2ZwLVx1MDAzZXN0YXRlX2h3X2RyaXZlIHw9IHNmcC1cdTAwM2Vyc19zdGF0ZV9tYXNrO1xuMjY3NzpcdFxuMjY3ODpcdFx0aWYgKHNmcC1cdTAwM2VxdWlyayBcdTAwMjZcdTAwMjYgc2ZwLVx1MDAzZXF1aXJrLVx1MDAzZWZpeHVwKVxuMjY3OTpcdFx0XHRzZnAtXHUwMDNlcXVpcmstXHUwMDNlZml4dXAoc2ZwKTtcbjI2ODA6XHRcbjI2ODE6XHRcdHNmcC1cdTAwM2VzdGF0ZV9od19tYXNrIFx1MDAyNj0gfnNmcC1cdTAwM2VzdGF0ZV9pZ25vcmVfbWFzaztcbjI2ODI6XHRcdG11dGV4X3VubG9jayhcdTAwMjZzZnAtXHUwMDNlc3RfbXV0ZXgpO1xuMjY4MzpcdFxuMjY4NDpcdFx0cmV0dXJuIDA7XG4yNjg1Olx0fVxuMjY4NjpcdFxuMjY4NzpcdHN0YXRpYyB2b2lkIHNmcF9zbV9tb2RfcmVtb3ZlKHN0cnVjdCBzZnAgKnNmcClcbjI2ODg6XHR7XG4yNjg5Olx0XHRpZiAoc2ZwLVx1MDAzZXNtX21vZF9zdGF0ZSBcdTAwM2UgU0ZQX01PRF9XQUlUREVWKVxuMjY5MDpcdFx0XHRzZnBfbW9kdWxlX3JlbW92ZShzZnAtXHUwMDNlc2ZwX2J1cyk7XG4yNjkxOlx0XG4yNjkyOlx0XHRzZnBfaHdtb25fcmVtb3ZlKHNmcCk7XG4yNjkzOlx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3MzM2CgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMjY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFNGUCBRdWlyayBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBoZXJlJiMzOTtzIG15IGJyZWFrZG93bi4gSWYgdGhlIGNoZWNrc3VtIGZhaWxzLCB3aGljaCBpdCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgd2l0aCByYW5kb20gZGF0YSwgdGhlIGZ1bmN0aW9uIGp1c3QgcmV0dXJucyBgLUVJTlZBTGAuIFRoZSBgc2ZwX2xvb2t1cF9xdWlya2AgZnVuY3Rpb24sIHRoZSBvbmUgdGhlIHBhdGNoIGlzIG1vZGlmeWluZywgaXNuJiMzOTt0IGV2ZW4gdG91Y2hlZC4gVGhlIG9ubHkgd2F5IGFyb3VuZCB0aGlzIHdvdWxkIGJlIGlmIHN5emthbGxlciBjb3VsZCBzb21laG93IGNyYWZ0IGEgKnZhbGlkKiBjaGVja3N1bSBmb3IgdGhlIGRhdGEgaXQmIzM5O3MgdGhyb3dpbmcgYXQgdGhlIHN5c3RlbS4gQnV0LCBhbmQgdGhpcyBpcyBhIGJpZyAmIzM0O2J1dCYjMzQ7LCB0aGUgSTJDIG9yIFBDSSBmdXp6ZXJzIGluIHN5emthbGxlciAoaWYgdGhleSBldmVuIGV4aXN0KSBkb24mIzM5O3QgaGF2ZSBhbnkgY29uY2VwdCBvZiBhbiBTRlAgRUVQUk9NIGNoZWNrc3VtLiBUaGF0IG1ha2VzIGl0IHZpcnR1YWxseSBpbXBvc3NpYmxlIGZvciBzeXprYWxsZXIgdG8gYWN0dWFsbHkgcmVhY2ggdGhlIHBhdGNoJiMzOTtzIHRhcmdldCBmdW5jdGlvbiB2aWEgcmFuZG9tIGZ1enppbmcuCgpOb3csIEkgZGlkIGNvbnNpZGVyIGFub3RoZXIgYXZlbnVlOiBXaGF0IGlmIHN5emthbGxlciBpbmplY3RlZCBhIGRldmljZSB0cmVlIG5vZGUgd2l0aCBhIG1vY2sgSTJDIGFkYXB0ZXIgdGhhdCAqZG9lcyogcmV0dXJuIGEgdmFsaWQgRUVQUk9NPyBCdXQgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYSBzcGVjaWZpYyBtb2NrIGZvciBTRlAgRUVQUk9Ncy4gQWxzbywgdGhlIHBhdGNoIGl0c2VsZiBpcyBqdXN0IGFkZGluZyBhIHN0cmluZyBwcmVmaXggbWF0Y2ggZm9yIHNwZWNpZmljIGhhcmR3YXJlIHF1aXJrcywgd2hpY2ggbWFrZXMgaXRzIGltcGFjdCBxdWl0ZSBzbWFsbCBpbiB0aGlzIGNvbnRleHQuCgpJcyB0aGUgcGF0Y2ggZnVuY3Rpb25hbGx5IGNvcnJlY3Q/IFllcy4gSXMgaXQgYWN0dWFsbHkgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBvdXIgdGVzdGluZyBzZXR1cD8gTm8sIG5vdCByZWFsaXN0aWNhbGx5LiBJdCByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZTogU0ZQIG1vZHVsZXMgYW5kLCBjcnVjaWFsbHksIEkyQyBjb21tdW5pY2F0aW9uIHdpdGggYSB2YWxpZCBFRVBST00gY2hlY2tzdW0uIEV2ZW4gaWYgd2UgKmNvdWxkKiBzb21laG93IG1ha2UgaXQgcmVhY2hhYmxlLCBhbGwgaXQgZG9lcyBpcyBhIHN0cmluZyBtYXRjaCBmb3IgYSBxdWlyay4KCkdpdmVuIGFsbCBvZiB0aGF0LCBJJiMzOTttIGxlYW5pbmcgdG93YXJkcyBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCYjMzk7cyBpbmNyZWRpYmx5IGhhcmR3YXJlLXNwZWNpZmljLCBhbmQgZXNzZW50aWFsbHkgdW5yZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gQnV0IGxldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayBpZiB0aGVyZSYjMzk7cyAqYW55KiBleGlzdGluZyBzb2Z0d2FyZSBtb2NrIGZvciBTRlAgb3V0IHRoZXJlIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2ZwX21vY2smIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODAzMwoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcnksIGZyYW1lZCBhcyBteSBpbnRlcm5hbCB0aG91Z2h0IHByb2Nlc3M6CgoqKkludGVybmFsIFJldmlldyBvZiBQb3RlbnRpYWwgU2VsZi1UZXN0IExvY2FsZXMqKgoKQWxyaWdodCwgSSBuZWVkIHRvIHBpbnBvaW50IHRoZSBwb3NzaWJsZSBsb2NhdGlvbnMgb2Ygc2VsZi10ZXN0cy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGNoZWNrIHdpdGhpbiB0aGUgcHJvamVjdCBzdHJ1Y3R1cmUsIHNwZWNpZmljYWxseSB0aGUgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzYCBkaXJlY3Rvcnkgb3IgYW55IG90aGVyIHNpbWlsYXIgZGlyZWN0b3JpZXMgdGhhdCBtaWdodCBob3VzZSBzdWNoIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuIEkmIzM5O2xsIG5lZWQgdG8gY29uZHVjdCBhIHRob3JvdWdoIHNlYXJjaCBmb3IgYW55IGZpbGVzIG9yIG1vZHVsZXMgdGhhdCBtaWdodCBjb250YWluIHRoZSBzdHJpbmdzIGBzZmZgIG9yIGBzZnBgLiBUaGVzZSBhcmUgcHJldHR5IHNwZWNpZmljIHRlcm1zLCBzbyBhIHF1aWNrIHNlYXJjaCBzaG91bGQgYmUgcmVsYXRpdmVseSBlZmZlY3RpdmUuIEkmIzM5O20gbG9va2luZyBmb3IgcGF0dGVybnMgaW4gdGhlIHdheSB0aGlzIHN5c3RlbSBpcyBzZXQgdXAuIEtub3dpbmcgd2hlcmUgc2ltaWxhciBmZWF0dXJlcyBhbmQgdGVzdGluZyBwcm90b2NvbHMgYXJlIHN0b3JlZCBpcyB0aGUgZ29hbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZmYsc2ZwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7dG9vbHMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzgyNTIKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBzdW1tYXJ5LCB0YWtpbmcgb24gdGhlIHBlcnNvbmEgeW91JiMzOTt2ZSByZXF1ZXN0ZWQsIHRhaWxvcmVkIHRvIGFuIGV4cGVydCBsaWtlIHlvdXJzZWxmOgoKKipDaGVja2luZyBmb3IgYHNmZixzZnBgIGluIGBhcmNoL3VtYCoqCgpSaWdodCwgbGV0JiMzOTtzIGp1c3QgcXVpY2tseSBydW4gYSBjaGVjay4gSSBuZWVkIHRvIHNlZSBpZiBhbnkgaW5zdGFuY2VzIG9mIGBzZmZgIG9yIGBzZnBgIGFyZSBsdXJraW5nIGFyb3VuZCB3aXRoaW4gYGFyY2gvdW1gLCB0aGUgVXNlci1Nb2RlIExpbnV4IGFyY2hpdGVjdHVyZS4gTXkgaW50dWl0aW9uIHNheXMgaXQmIzM5O3MgcHJvYmFibHkgdW5saWtlbHksIGdpdmVuIHRoZSBuYXR1cmUgb2YgVU1MLCBidXQgYSBkb3VibGUtY2hlY2sgaXMgYWx3YXlzIHBydWRlbnQsIGVzcGVjaWFsbHkgd2hlbiBkZWFsaW5nIHdpdGggc3VjaCBmb3VuZGF0aW9uYWwgY29kZS4gSSBoYXZlIGEgZmVlbGluZyBJIGhhdmVuJiMzOTt0IGNvbWUgYWNyb3NzIGl0IG15c2VsZiwgYnV0IG9uZSBjYW4mIzM5O3QgYmUgdG9vIGNhcmVmdWwgd2hlbiBtYWludGFpbmluZyBzdWNoIGEgc3lzdGVtLiBCZXN0IHRvIGJlIHN5c3RlbWF0aWMgYW5kIGVuc3VyZSBubyB1bmV4cGVjdGVkIGJlaGF2aW9yIHN1cmZhY2VzIGluIHRoaXMgbmljaGUgaW1wbGVtZW50YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2ZmLHNmcCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvdW0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg0ODMKCQkJCQkJCW91dHB1dDogODYKCQkJCQkJCXRob3VnaHRzOiAxOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgU0ZQIFF1aXJrIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgaXMgZW50aXJlbHkgaGFyZHdhcmUtZGVwZW5kZW50LiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBxdWlyaywgYFNGUF9RVUlSS19GX1BSRUZJWGAsIGFuZCB0aGVuIHRpZXMgaXQgc3BlY2lmaWNhbGx5IHRvIHR3byBTRlAgbW9kdWxlczogJiMzNDtGUyYjMzQ7ICYjMzQ7WEdTLVNGUC1PTlQtTUFDSSYjMzQ7IGFuZCAmIzM0O09FTSYjMzQ7ICYjMzQ7WEdTUE9OU1QyMDAxJiMzNDsuIFRoaXMgaXMgYWxsIGFib3V0IGhhbmRsaW5nIHNvbWUgaGFyZHdhcmUtc3BlY2lmaWMgYmVoYXZpb3IgZm9yIHRoZXNlIHBhcnRpY3VsYXIgcGh5c2ljYWwgU0ZQIG1vZHVsZXMuIE15IGFuYWx5c2lzIGNvbmZpcm1zIHRoYXQgcmVhY2hpbmcgdGhpcyBjb2RlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgaXMgdmlydHVhbGx5IGltcG9zc2libGUgd2l0aG91dCBhIHZlcnkgc3BlY2lmaWMgbW9jay11cCB0aGF0IGNhbiBlbXVsYXRlIHRoZSBleGFjdCB2ZW5kb3Igc3RyaW5ncyBhbmQgcGFzcyB0aGUgRUVQUk9NIGNoZWNrc3VtIHZhbGlkYXRpb24uIFRoYXQgdmFsaWRhdGlvbiBpcyBrZXkgaGVyZTsgaXQgY29uZmlybXMgdGhlIGlkZW50aXR5IG9mIHRoZSBoYXJkd2FyZS4gR2l2ZW4gdGhhdCBjb25zdHJhaW50LCBmdXp6aW5nIHRoaXMgY29kZSBpcyBhIHdhc3RlIG9mIHJlc291cmNlcy4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgYSB2ZXJ5IHRpZ2h0bHkgY29udHJvbGxlZCBoYXJkd2FyZSBpbnRlcmFjdGlvbiB0aGF0IGNhbiYjMzk7dCBiZSBlYXNpbHkgcmVwcm9kdWNlZCBpbiBhbnkgZ2VuZXJhbC1wdXJwb3NlIHZpcnR1YWwgZW52aXJvbm1lbnQuIEl0IHdvdWxkIHJlcXVpcmUgYnVpbGRpbmcgYSBwdXJwb3NlLWJ1aWx0IGhhcmR3YXJlIG1pbWljLCBhbmQgYXQgdGhhdCBwb2ludCB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhIHRlc3QgdGhhdCYjMzk7cyBzbyBzcGVjaWZpYywgaXQmIzM5O3Mgbm90IHdvcnRoIHRoZSB0aW1lIG9mIGEgZ2VuZXJhbGl6ZWQgZnV6ei4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGhhcmR3YXJlLXNwZWNpZmljIHF1aXJrcyBmb3IgcGh5c2ljYWwgU0ZQIG1vZHVsZXMuIFRoZSBjb2RlIHJlbGllcyBvbiByZWFkaW5nIHRoZSBtb2R1bGUmIzM5O3MgRUVQUk9NIG92ZXIgSTJDIGFuZCB2YWxpZGF0aW5nIGl0cyBjaGVja3N1bSwgd2hpY2ggaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VL0dDRSB3aXRob3V0IGEgZGVkaWNhdGVkIGhhcmR3YXJlIG1vY2suJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGhhcmR3YXJlLXNwZWNpZmljIHF1aXJrcyBmb3IgcGh5c2ljYWwgU0ZQIG1vZHVsZXMuIFRoZSBjb2RlIHJlbGllcyBvbiByZWFkaW5nIHRoZSBtb2R1bGUmIzM5O3MgRUVQUk9NIG92ZXIgSTJDIGFuZCB2YWxpZGF0aW5nIGl0cyBjaGVja3N1bSwgd2hpY2ggaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VL0dDRSB3aXRob3V0IGEgZGVkaWNhdGVkIGhhcmR3YXJlIG1vY2suJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MDQuNDU1NDY5OTI2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTAzMjE4MTk4MTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgaGFyZHdhcmUtc3BlY2lmaWMgcXVpcmtzIGZvciBwaHlzaWNhbCBTRlAgbW9kdWxlcy4gVGhlIGNvZGUgcmVsaWVzIG9uIHJlYWRpbmcgdGhlIG1vZHVsZSdzIEVFUFJPTSBvdmVyIEkyQyBhbmQgdmFsaWRhdGluZyBpdHMgY2hlY2tzdW0sIHdoaWNoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS9HQ0Ugd2l0aG91dCBhIGRlZGljYXRlZCBoYXJkd2FyZSBtb2NrLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MDQuNDU1NDc1MDQ2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzA0NTE2MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwMGUzNzc2ZDc2MjU1M2I1OTJmNTExMWQ2ZjI4YTcxMzg1NzgxNGM3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTdW4gSnVsIDUgMTk6Mjc6MDMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5jIGIvZHJpdmVycy9uZXQvcGh5L3NmcC5jXFxuaW5kZXggZjUyMDIwNjczNGRhYWEuLmVhZTA2OTkxY2M0ZDVlIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuY1xcbkBAIC01MTYsNiArNTE2LDEzIEBAIHN0YXRpYyB2b2lkIHNmcF9xdWlya191Ym50X3VmX2luc3RhbnQoY29uc3Qgc3RydWN0IHNmcF9lZXByb21faWQgKmlkLFxcbiBcXHR7IC52ZW5kb3IgPSBfdiwgLnBhcnQgPSBfcCwgLnN1cHBvcnQgPSBfcywgLmZpeHVwID0gX2YsIH1cXG4gI2RlZmluZSBTRlBfUVVJUktfUyhfdiwgX3AsIF9zKSBTRlBfUVVJUksoX3YsIF9wLCBfcywgTlVMTClcXG4gI2RlZmluZSBTRlBfUVVJUktfRihfdiwgX3AsIF9mKSBTRlBfUVVJUksoX3YsIF9wLCBOVUxMLCBfZilcXG4rLyogTGlrZSBTRlBfUVVJUktfRiwgYnV0IG1hdGNoZXMgYXMgYSBwcmVmaXguIFVzZSBmb3IgY2xvbmUgbW9kdWxlc1xcbisgKiB0aGF0IGZpbGwgRUVQUk9NIHRyYWlsaW5nIGJ5dGVzIHdpdGggZ2FyYmFnZSBpbnN0ZWFkIG9mIHRoZVxcbisgKiBTRkYtODQ3Mi1tYW5kYXRlZCBzcGFjZSBwYWRkaW5nLCBzbyBzZnBfc3RybGVuIGNhbid0IHRyaW0gdGhlXFxuKyAqIGZpZWxkIGRvd24gdG8gdGhlIGxlZ2l0aW1hdGUgbGVuZ3RoLlxcbisgKi9cXG4rI2RlZmluZSBTRlBfUVVJUktfRl9QUkVGSVgoX3YsIF9wLCBfZikgXFxcXFxcbitcXHR7IC52ZW5kb3IgPSBfdiwgLnBhcnQgPSBfcCwgLnN1cHBvcnQgPSBOVUxMLCAuZml4dXAgPSBfZiwgLnByZWZpeF9tYXRjaCA9IHRydWUgfVxcbiBcXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0ge1xcbiBcXHQvLyBBbGNhdGVsIEx1Y2VudCBHLTAxMFMtUCBjYW4gb3BlcmF0ZSBhdCAyNTAwYmFzZS1YLCBidXQgaW5jb3JyZWN0bHlcXG5AQCAtNTQ4LDYgKzU1NSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayBzZnBfcXVpcmtzW10gPSB7XFxuIFxcdFNGUF9RVUlSSyhcXFwiRlNcXFwiLCBcXFwiR1BPTi1PTlUtMzQtMjBCSVxcXCIsIHNmcF9xdWlya18yNTAwYmFzZXgsXFxuIFxcdFxcdCAgc2ZwX2ZpeHVwX2lnbm9yZV90eF9mYXVsdCksXFxuIFxcbitcXHQvLyBGaWJlcnN0b3JlIFhHUy1TRlAtT05ULU1BQ0kgaXMgYSBNQUMtbW9kZSBYR1MtUE9OIE9OVCBzdGljayB3aXRoXFxuK1xcdC8vIE9OVC1jbGFzcyBzZXJpYWwtcGFzc3Rocm91Z2ggVFhfRkFVTFQvTE9TIHdpcmluZyBhbmQgc2xvdyBzdGFydHVwO1xcbitcXHQvLyBtYXNrIGJvdGggc2lnbmFscyBhbmQgZXh0ZW5kIFRfU1RBUlRfVVAgdmlhIHRoZSBwb3Ryb24gZml4dXAuIFRoZVxcbitcXHQvLyBFRVBST00gdmVuZG9yIFBOIGZpZWxkIGlzIG5vdCBzcGFjZS1wYWRkZWQgcGFzdCB0aGUgbGVnaXRpbWF0ZVxcbitcXHQvLyBzdHJpbmcsIHNvIG1hdGNoIGl0IGFzIGEgcHJlZml4LlxcbitcXHRTRlBfUVVJUktfRl9QUkVGSVgoXFxcIkZTXFxcIiwgXFxcIlhHUy1TRlAtT05ULU1BQ0lcXFwiLCBzZnBfZml4dXBfcG90cm9uKSxcXG4rXFxuIFxcdFNGUF9RVUlSS19GKFxcXCJIQUxOeVxcXCIsIFxcXCJITC1HU0ZQXFxcIiwgc2ZwX2ZpeHVwX2hhbG55X2dzZnApLFxcbiBcXG4gXFx0U0ZQX1FVSVJLX0YoXFxcIkgtQ09NXFxcIiwgXFxcIlNQUDQyNUgtR0FCNFxcXCIsIHNmcF9maXh1cF9wb3Ryb24pLFxcbkBAIC02MDUsNiArNjE5LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2ZwX3F1aXJrIHNmcF9xdWlya3NbXSA9IHtcXG4gXFx0U0ZQX1FVSVJLX1MoXFxcIk9FTVxcXCIsIFxcXCJTRlAtMi41Ry1MSDIwLUFcXFwiLCBzZnBfcXVpcmtfMjUwMGJhc2V4KSxcXG4gXFx0U0ZQX1FVSVJLX0YoXFxcIk9FTVxcXCIsIFxcXCJSVFNGUC0xMFxcXCIsIHNmcF9maXh1cF9yb2xsYmFsbF9jYyksXFxuIFxcdFNGUF9RVUlSS19GKFxcXCJPRU1cXFwiLCBcXFwiUlRTRlAtMTBHXFxcIiwgc2ZwX2ZpeHVwX3JvbGxiYWxsX2NjKSxcXG4rXFxuK1xcdC8vIE9FTSBYR1NQT05TVDIwMDEgaXMgYW4gWEdTLVBPTiBPTlQgc3RpY2sgd2l0aCBicm9rZW4gVFhfRkFVTFQgYW5kXFxuK1xcdC8vIExPUyBpbmRpY2F0b3JzIGFuZCBzbG93IHN0YXJ0dXAsIGp1c3QgbGlrZSBwb3Ryb24uIFRoZSBFRVBST01cXG4rXFx0Ly8gdmVuZG9yIFBOIGZpZWxkIGlzIGZpbGxlZCB3aXRoIG5vbi1wcmludGFibGUgZ2FyYmFnZSBwYXN0IHRoZVxcbitcXHQvLyBsZWdpdGltYXRlIHN0cmluZyBpbnN0ZWFkIG9mIHNwYWNlIHBhZGRpbmcsIHNvIG1hdGNoIGl0IGFzIGFcXG4rXFx0Ly8gcHJlZml4LlxcbitcXHRTRlBfUVVJUktfRl9QUkVGSVgoXFxcIk9FTVxcXCIsIFxcXCJYR1NQT05TVDIwMDFcXFwiLCBzZnBfZml4dXBfcG90cm9uKSxcXG4rXFxuIFxcdFNGUF9RVUlSS19GKFxcXCJUdXJyaXNcXFwiLCBcXFwiUlRTRlAtMi41R1xcXCIsIHNmcF9maXh1cF9yb2xsYmFsbCksXFxuIFxcdFNGUF9RVUlSS19GKFxcXCJUdXJyaXNcXFwiLCBcXFwiUlRTRlAtMTBcXFwiLCBzZnBfZml4dXBfcm9sbGJhbGwpLFxcbiBcXHRTRlBfUVVJUktfRihcXFwiVHVycmlzXFxcIiwgXFxcIlJUU0ZQLTEwR1xcXCIsIHNmcF9maXh1cF9yb2xsYmFsbCksXFxuQEAgLTYyNiwxMyArNjQ4LDE2IEBAIHN0YXRpYyBzaXplX3Qgc2ZwX3N0cmxlbihjb25zdCBjaGFyICpzdHIsIHNpemVfdCBtYXhsZW4pXFxuIFxcdHJldHVybiBzaXplO1xcbiB9XFxuIFxcbi1zdGF0aWMgYm9vbCBzZnBfbWF0Y2goY29uc3QgY2hhciAqcXMsIGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IGxlbilcXG4rc3RhdGljIGJvb2wgc2ZwX21hdGNoKGNvbnN0IGNoYXIgKnFzLCBjb25zdCBjaGFyICpzdHIsIHNpemVfdCBsZW4sIGJvb2wgcHJlZml4KVxcbiB7XFxuK1xcdHNpemVfdCBxc19sZW47XFxuK1xcbiBcXHRpZiAoIXFzKVxcbiBcXHRcXHRyZXR1cm4gdHJ1ZTtcXG4tXFx0aWYgKHN0cmxlbihxcykgIT0gbGVuKVxcbitcXHRxc19sZW4gPSBzdHJsZW4ocXMpO1xcbitcXHRpZiAocHJlZml4ID8gcXNfbGVuIFxcdTAwM2UgbGVuIDogcXNfbGVuICE9IGxlbilcXG4gXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi1cXHRyZXR1cm4gIXN0cm5jbXAocXMsIHN0ciwgbGVuKTtcXG4rXFx0cmV0dXJuICFzdHJuY21wKHFzLCBzdHIsIHFzX2xlbik7XFxuIH1cXG4gXFxuIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2ZwX3F1aXJrICpzZnBfbG9va3VwX3F1aXJrKGNvbnN0IHN0cnVjdCBzZnBfZWVwcm9tX2lkICppZClcXG5AQCAtNjQ1LDggKzY3MCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpXFxuIFxcdHBzID0gc2ZwX3N0cmxlbihpZC1cXHUwMDNlYmFzZS52ZW5kb3JfcG4sIEFSUkFZX1NJWkUoaWQtXFx1MDAzZWJhc2UudmVuZG9yX3BuKSk7XFxuIFxcbiBcXHRmb3IgKGkgPSAwLCBxID0gc2ZwX3F1aXJrczsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoc2ZwX3F1aXJrcyk7IGkrKywgcSsrKVxcbi1cXHRcXHRpZiAoc2ZwX21hdGNoKHEtXFx1MDAzZXZlbmRvciwgaWQtXFx1MDAzZWJhc2UudmVuZG9yX25hbWUsIHZzKSBcXHUwMDI2XFx1MDAyNlxcbi1cXHRcXHQgICAgc2ZwX21hdGNoKHEtXFx1MDAzZXBhcnQsIGlkLVxcdTAwM2ViYXNlLnZlbmRvcl9wbiwgcHMpKVxcbitcXHRcXHRpZiAoc2ZwX21hdGNoKHEtXFx1MDAzZXZlbmRvciwgaWQtXFx1MDAzZWJhc2UudmVuZG9yX25hbWUsIHZzLFxcbitcXHRcXHRcXHQgICAgICBxLVxcdTAwM2VwcmVmaXhfbWF0Y2gpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdFxcdCAgICBzZnBfbWF0Y2gocS1cXHUwMDNlcGFydCwgaWQtXFx1MDAzZWJhc2UudmVuZG9yX3BuLCBwcyxcXG4rXFx0XFx0XFx0ICAgICAgcS1cXHUwMDNlcHJlZml4X21hdGNoKSlcXG4gXFx0XFx0XFx0cmV0dXJuIHE7XFxuIFxcbiBcXHRyZXR1cm4gTlVMTDtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5oIGIvZHJpdmVycy9uZXQvcGh5L3NmcC5oXFxuaW5kZXggODc5ZGZmN2FmZTZhNDEuLjg2N2U0NWVmYmYzZjFlIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuaFxcbkBAIC0xMiw2ICsxMiw3IEBAIHN0cnVjdCBzZnBfcXVpcmsge1xcbiBcXHR2b2lkICgqc3VwcG9ydCkoY29uc3Qgc3RydWN0IHNmcF9lZXByb21faWQgKmlkLFxcbiBcXHRcXHRcXHRzdHJ1Y3Qgc2ZwX21vZHVsZV9jYXBzICpjYXBzKTtcXG4gXFx0dm9pZCAoKmZpeHVwKShzdHJ1Y3Qgc2ZwICpzZnApO1xcbitcXHRib29sIHByZWZpeF9tYXRjaDtcXG4gfTtcXG4gXFxuIHN0cnVjdCBzZnBfc29ja2V0X29wcyB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjA0Ljc4NjYxNDg3M1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODk5OTA2Njg2MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgaGFyZHdhcmUtc3BlY2lmaWMgcXVpcmtzIGZvciBwaHlzaWNhbCBTRlAgbW9kdWxlcy4gVGhlIGNvZGUgcmVsaWVzIG9uIHJlYWRpbmcgdGhlIG1vZHVsZSdzIEVFUFJPTSBvdmVyIEkyQyBhbmQgdmFsaWRhdGluZyBpdHMgY2hlY2tzdW0sIHdoaWNoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS9HQ0Ugd2l0aG91dCBhIGRlZGljYXRlZCBoYXJkd2FyZSBtb2NrLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwMGUzNzc2ZDc2MjU1M2I1OTJmNTExMWQ2ZjI4YTcxMzg1NzgxNGM3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgNSAxOToyNzowMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuYyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuY1xuaW5kZXggZjUyMDIwNjczNGRhYWEuLmVhZTA2OTkxY2M0ZDVlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvcGh5L3NmcC5jXG4rKysgYi9kcml2ZXJzL25ldC9waHkvc2ZwLmNcbkBAIC01MTYsNiArNTE2LDEzIEBAIHN0YXRpYyB2b2lkIHNmcF9xdWlya191Ym50X3VmX2luc3RhbnQoY29uc3Qgc3RydWN0IHNmcF9lZXByb21faWQgKmlkLFxuIFx0eyAudmVuZG9yID0gX3YsIC5wYXJ0ID0gX3AsIC5zdXBwb3J0ID0gX3MsIC5maXh1cCA9IF9mLCB9XG4gI2RlZmluZSBTRlBfUVVJUktfUyhfdiwgX3AsIF9zKSBTRlBfUVVJUksoX3YsIF9wLCBfcywgTlVMTClcbiAjZGVmaW5lIFNGUF9RVUlSS19GKF92LCBfcCwgX2YpIFNGUF9RVUlSSyhfdiwgX3AsIE5VTEwsIF9mKVxuKy8qIExpa2UgU0ZQX1FVSVJLX0YsIGJ1dCBtYXRjaGVzIGFzIGEgcHJlZml4LiBVc2UgZm9yIGNsb25lIG1vZHVsZXNcbisgKiB0aGF0IGZpbGwgRUVQUk9NIHRyYWlsaW5nIGJ5dGVzIHdpdGggZ2FyYmFnZSBpbnN0ZWFkIG9mIHRoZVxuKyAqIFNGRi04NDcyLW1hbmRhdGVkIHNwYWNlIHBhZGRpbmcsIHNvIHNmcF9zdHJsZW4gY2FuJ3QgdHJpbSB0aGVcbisgKiBmaWVsZCBkb3duIHRvIHRoZSBsZWdpdGltYXRlIGxlbmd0aC5cbisgKi9cbisjZGVmaW5lIFNGUF9RVUlSS19GX1BSRUZJWChfdiwgX3AsIF9mKSBcXFxuK1x0eyAudmVuZG9yID0gX3YsIC5wYXJ0ID0gX3AsIC5zdXBwb3J0ID0gTlVMTCwgLmZpeHVwID0gX2YsIC5wcmVmaXhfbWF0Y2ggPSB0cnVlIH1cbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayBzZnBfcXVpcmtzW10gPSB7XG4gXHQvLyBBbGNhdGVsIEx1Y2VudCBHLTAxMFMtUCBjYW4gb3BlcmF0ZSBhdCAyNTAwYmFzZS1YLCBidXQgaW5jb3JyZWN0bHlcbkBAIC01NDgsNiArNTU1LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2ZwX3F1aXJrIHNmcF9xdWlya3NbXSA9IHtcbiBcdFNGUF9RVUlSSyhcIkZTXCIsIFwiR1BPTi1PTlUtMzQtMjBCSVwiLCBzZnBfcXVpcmtfMjUwMGJhc2V4LFxuIFx0XHQgIHNmcF9maXh1cF9pZ25vcmVfdHhfZmF1bHQpLFxuIFxuK1x0Ly8gRmliZXJzdG9yZSBYR1MtU0ZQLU9OVC1NQUNJIGlzIGEgTUFDLW1vZGUgWEdTLVBPTiBPTlQgc3RpY2sgd2l0aFxuK1x0Ly8gT05ULWNsYXNzIHNlcmlhbC1wYXNzdGhyb3VnaCBUWF9GQVVMVC9MT1Mgd2lyaW5nIGFuZCBzbG93IHN0YXJ0dXA7XG4rXHQvLyBtYXNrIGJvdGggc2lnbmFscyBhbmQgZXh0ZW5kIFRfU1RBUlRfVVAgdmlhIHRoZSBwb3Ryb24gZml4dXAuIFRoZVxuK1x0Ly8gRUVQUk9NIHZlbmRvciBQTiBmaWVsZCBpcyBub3Qgc3BhY2UtcGFkZGVkIHBhc3QgdGhlIGxlZ2l0aW1hdGVcbitcdC8vIHN0cmluZywgc28gbWF0Y2ggaXQgYXMgYSBwcmVmaXguXG4rXHRTRlBfUVVJUktfRl9QUkVGSVgoXCJGU1wiLCBcIlhHUy1TRlAtT05ULU1BQ0lcIiwgc2ZwX2ZpeHVwX3BvdHJvbiksXG4rXG4gXHRTRlBfUVVJUktfRihcIkhBTE55XCIsIFwiSEwtR1NGUFwiLCBzZnBfZml4dXBfaGFsbnlfZ3NmcCksXG4gXG4gXHRTRlBfUVVJUktfRihcIkgtQ09NXCIsIFwiU1BQNDI1SC1HQUI0XCIsIHNmcF9maXh1cF9wb3Ryb24pLFxuQEAgLTYwNSw2ICs2MTksMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0ge1xuIFx0U0ZQX1FVSVJLX1MoXCJPRU1cIiwgXCJTRlAtMi41Ry1MSDIwLUFcIiwgc2ZwX3F1aXJrXzI1MDBiYXNleCksXG4gXHRTRlBfUVVJUktfRihcIk9FTVwiLCBcIlJUU0ZQLTEwXCIsIHNmcF9maXh1cF9yb2xsYmFsbF9jYyksXG4gXHRTRlBfUVVJUktfRihcIk9FTVwiLCBcIlJUU0ZQLTEwR1wiLCBzZnBfZml4dXBfcm9sbGJhbGxfY2MpLFxuK1xuK1x0Ly8gT0VNIFhHU1BPTlNUMjAwMSBpcyBhbiBYR1MtUE9OIE9OVCBzdGljayB3aXRoIGJyb2tlbiBUWF9GQVVMVCBhbmRcbitcdC8vIExPUyBpbmRpY2F0b3JzIGFuZCBzbG93IHN0YXJ0dXAsIGp1c3QgbGlrZSBwb3Ryb24uIFRoZSBFRVBST01cbitcdC8vIHZlbmRvciBQTiBmaWVsZCBpcyBmaWxsZWQgd2l0aCBub24tcHJpbnRhYmxlIGdhcmJhZ2UgcGFzdCB0aGVcbitcdC8vIGxlZ2l0aW1hdGUgc3RyaW5nIGluc3RlYWQgb2Ygc3BhY2UgcGFkZGluZywgc28gbWF0Y2ggaXQgYXMgYVxuK1x0Ly8gcHJlZml4LlxuK1x0U0ZQX1FVSVJLX0ZfUFJFRklYKFwiT0VNXCIsIFwiWEdTUE9OU1QyMDAxXCIsIHNmcF9maXh1cF9wb3Ryb24pLFxuK1xuIFx0U0ZQX1FVSVJLX0YoXCJUdXJyaXNcIiwgXCJSVFNGUC0yLjVHXCIsIHNmcF9maXh1cF9yb2xsYmFsbCksXG4gXHRTRlBfUVVJUktfRihcIlR1cnJpc1wiLCBcIlJUU0ZQLTEwXCIsIHNmcF9maXh1cF9yb2xsYmFsbCksXG4gXHRTRlBfUVVJUktfRihcIlR1cnJpc1wiLCBcIlJUU0ZQLTEwR1wiLCBzZnBfZml4dXBfcm9sbGJhbGwpLFxuQEAgLTYyNiwxMyArNjQ4LDE2IEBAIHN0YXRpYyBzaXplX3Qgc2ZwX3N0cmxlbihjb25zdCBjaGFyICpzdHIsIHNpemVfdCBtYXhsZW4pXG4gXHRyZXR1cm4gc2l6ZTtcbiB9XG4gXG4tc3RhdGljIGJvb2wgc2ZwX21hdGNoKGNvbnN0IGNoYXIgKnFzLCBjb25zdCBjaGFyICpzdHIsIHNpemVfdCBsZW4pXG4rc3RhdGljIGJvb2wgc2ZwX21hdGNoKGNvbnN0IGNoYXIgKnFzLCBjb25zdCBjaGFyICpzdHIsIHNpemVfdCBsZW4sIGJvb2wgcHJlZml4KVxuIHtcbitcdHNpemVfdCBxc19sZW47XG4rXG4gXHRpZiAoIXFzKVxuIFx0XHRyZXR1cm4gdHJ1ZTtcbi1cdGlmIChzdHJsZW4ocXMpICE9IGxlbilcbitcdHFzX2xlbiA9IHN0cmxlbihxcyk7XG4rXHRpZiAocHJlZml4ID8gcXNfbGVuIFx1MDAzZSBsZW4gOiBxc19sZW4gIT0gbGVuKVxuIFx0XHRyZXR1cm4gZmFsc2U7XG4tXHRyZXR1cm4gIXN0cm5jbXAocXMsIHN0ciwgbGVuKTtcbitcdHJldHVybiAhc3RybmNtcChxcywgc3RyLCBxc19sZW4pO1xuIH1cbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpXG5AQCAtNjQ1LDggKzY3MCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpXG4gXHRwcyA9IHNmcF9zdHJsZW4oaWQtXHUwMDNlYmFzZS52ZW5kb3JfcG4sIEFSUkFZX1NJWkUoaWQtXHUwMDNlYmFzZS52ZW5kb3JfcG4pKTtcbiBcbiBcdGZvciAoaSA9IDAsIHEgPSBzZnBfcXVpcmtzOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHNmcF9xdWlya3MpOyBpKyssIHErKylcbi1cdFx0aWYgKHNmcF9tYXRjaChxLVx1MDAzZXZlbmRvciwgaWQtXHUwMDNlYmFzZS52ZW5kb3JfbmFtZSwgdnMpIFx1MDAyNlx1MDAyNlxuLVx0XHQgICAgc2ZwX21hdGNoKHEtXHUwMDNlcGFydCwgaWQtXHUwMDNlYmFzZS52ZW5kb3JfcG4sIHBzKSlcbitcdFx0aWYgKHNmcF9tYXRjaChxLVx1MDAzZXZlbmRvciwgaWQtXHUwMDNlYmFzZS52ZW5kb3JfbmFtZSwgdnMsXG4rXHRcdFx0ICAgICAgcS1cdTAwM2VwcmVmaXhfbWF0Y2gpIFx1MDAyNlx1MDAyNlxuK1x0XHQgICAgc2ZwX21hdGNoKHEtXHUwMDNlcGFydCwgaWQtXHUwMDNlYmFzZS52ZW5kb3JfcG4sIHBzLFxuK1x0XHRcdCAgICAgIHEtXHUwMDNlcHJlZml4X21hdGNoKSlcbiBcdFx0XHRyZXR1cm4gcTtcbiBcbiBcdHJldHVybiBOVUxMO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuaCBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuaFxuaW5kZXggODc5ZGZmN2FmZTZhNDEuLjg2N2U0NWVmYmYzZjFlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvcGh5L3NmcC5oXG4rKysgYi9kcml2ZXJzL25ldC9waHkvc2ZwLmhcbkBAIC0xMiw2ICsxMiw3IEBAIHN0cnVjdCBzZnBfcXVpcmsge1xuIFx0dm9pZCAoKnN1cHBvcnQpKGNvbnN0IHN0cnVjdCBzZnBfZWVwcm9tX2lkICppZCxcbiBcdFx0XHRzdHJ1Y3Qgc2ZwX21vZHVsZV9jYXBzICpjYXBzKTtcbiBcdHZvaWQgKCpmaXh1cCkoc3RydWN0IHNmcCAqc2ZwKTtcbitcdGJvb2wgcHJlZml4X21hdGNoO1xuIH07XG4gXG4gc3RydWN0IHNmcF9zb2NrZXRfb3BzIHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjA0Ljc4NjYxNjI2M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NjI2MDQwOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXZhbHVhdGluZyB0aGUgU0ZQIE1vZHVsZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9waHkvc2ZwLmNgIGFuZCBgZHJpdmVycy9uZXQvcGh5L3NmcC5oYC4gSXQgc2VlbXMgdGhleSdyZSBpbnRyb2R1Y2luZyBhIG5ldyBxdWlyaywgYFNGUF9RVUlSS19GX1BSRUZJWGAsIHdoaWNoIGlzIGFsbCBhYm91dCBwcmVmaXggbWF0Y2hpbmcgZm9yIHRoZXNlIFNGUCBtb2R1bGVzLiBCYXNpY2FsbHksIGl04oCZcyBhZGRpbmcgbW9yZSBmbGV4aWJpbGl0eSB0byBob3cgd2UgaWRlbnRpZnkgYW5kIGhhbmRsZSB0aGVzZSB0cmFuc2NlaXZlcnMuIFRoZSBjaGFuZ2VzIG1vZGlmeSBgc2ZwX21hdGNoYCB0byBpbmNvcnBvcmF0ZSBhIGBib29sIHByZWZpeGAgYXJndW1lbnQgYW5kIGFkYXB0cyBgc2ZwX2xvb2t1cF9xdWlya2AgdG8gbGV2ZXJhZ2UgdGhpcyBuZXcgcGFyYW1ldGVyLiBUaGV5J3ZlIGFsc28gYWRkZWQgYSBjb3VwbGUgb2YgbmV3IHF1aXJrcyB1dGlsaXppbmcgdGhpcyBtYWNyby5cblxuRnVuY3Rpb25hbGx5LCBJIHRoaW5rIGl04oCZcyBzb3VuZC4gSXQgZGVmaW5pdGVseSBjaGFuZ2VzIHRoZSBtYXRjaGluZyBsb2dpYyBhbmQgZXhwYW5kcyB0aGUgcXVpcmsgZGF0YWJhc2UsIHdoaWNoIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIEJ1dCwgdGhlIHF1ZXN0aW9uIG9mIHJlYWNoYWJpbGl0eSBjb21lcyB0byBtaW5kLiBUaGVzZSBhcmUsIGFmdGVyIGFsbCwgcGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlcy4gSSBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhpcyBhZmZlY3RzIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiBIb3cgYXJlIHdlIGdvaW5nIHRvIHRlc3QgdGhpcz8gQ2FuIHdlIGV2ZW4gZWZmZWN0aXZlbHkgZW11bGF0ZSBTRlAgbW9kdWxlcyBpbiBRRU1VIHRvIGVuc3VyZSB0aGUgYWRkZWQgcXVpcmtzIGJlaGF2ZSBhcyBpbnRlbmRlZD8gSSdsbCBuZWVkIHRvIGNoZWNrIGZvciBhbnkgc29mdHdhcmUgZW11bGF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBTRlAgbW9kdWxlcyB3aXRoaW4gdGhlIGtlcm5lbCB0byBkZXRlcm1pbmUgdGhlIGZlYXNpYmlsaXR5IG9mIGNvbXBsZXRlIHRlc3RpbmcuIEknbGwgc2VhcmNoIHRoZSBrZXJuZWwgZm9yIGBzZnBgIHRvIHNlZSB3aGF0IGNvbWVzIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzY2LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MDkuNDQ5MjIxOTQ1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMTQ0MjI2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZnBfbWF0Y2hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcGh5L3NmcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3BoeS9zZnAuYz02Mzc9c3RhdGljIHNpemVfdCBzZnBfc3RybGVuKGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IG1heGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy02NTAtXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjY1MTpzdGF0aWMgYm9vbCBzZnBfbWF0Y2goY29uc3QgY2hhciAqcXMsIGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IGxlbiwgYm9vbCBwcmVmaXgpXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTY1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM9NjYzPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2ZwX3F1aXJrICpzZnBfbG9va3VwX3F1aXJrKGNvbnN0IHN0cnVjdCBzZnBfZWVwcm9tX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy02NzItXFx0Zm9yIChpID0gMCwgcSA9IHNmcF9xdWlya3M7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKHNmcF9xdWlya3MpOyBpKyssIHErKylcXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM6NjczOlxcdFxcdGlmIChzZnBfbWF0Y2gocS1cXHUwMDNldmVuZG9yLCBpZC1cXHUwMDNlYmFzZS52ZW5kb3JfbmFtZSwgdnMsXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTY3NC1cXHRcXHRcXHQgICAgICBxLVxcdTAwM2VwcmVmaXhfbWF0Y2gpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjY3NTpcXHRcXHQgICAgc2ZwX21hdGNoKHEtXFx1MDAzZXBhcnQsIGlkLVxcdTAwM2ViYXNlLnZlbmRvcl9wbiwgcHMsXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTY3Ni1cXHRcXHRcXHQgICAgICBxLVxcdTAwM2VwcmVmaXhfbWF0Y2gpKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzowOS41NjA2NzI5ODFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDE3MzIwODYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIFNGUCBEcml2ZXI6IEluaXRpYWwgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYHNmcC5jYCBkcml2ZXIsIHdoaWNoIGhhbmRsZXMgdGhvc2UgU0ZQIGNhZ2VzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiQ2FuIHdlIGZ1enogdGhpcyB0aGluZz9cIiBJdCdzIGNsZWFyIGZyb20gdGhlIGNvZGUgdGhhdCBpdCdzIHJlbHlpbmcgb24gSTJDIHRvIHJlYWQgRUVQUk9NIGRhdGEuIFRoYXQgb3BlbnMgdXAgc29tZSBpbnRlcmVzdGluZyBwb3NzaWJpbGl0aWVzLlxuXG5UaGUgZmlyc3QgcXVlc3Rpb24gaXMgKmhvdyouIElmIHdlJ3ZlIGdvdCBhbiBJMkMgZGV2aWNlIGVtdWxhdGlvbiBzZXR1cCwgb3IgYmV0dGVyIHlldCwgaWYgc3l6a2FsbGVyIGNhbiBpbmplY3QgSTJDIHRyYWZmaWMgZGlyZWN0bHksIHRoZW4gbWF5YmUgd2UgY2FuLiBCdXQsIEkgbmVlZCB0byByZW1pbmQgbXlzZWxmIGhvdyBzeXprYWxsZXIgaGFuZGxlcyBJMkMuIEkgdmFndWVseSByZWNhbGwgaXQgaGFzIHNvbWUgSTJDIGZ1enppbmcgY2FwYWJpbGl0aWVzIHVzaW5nIGAvZGV2L2kyYy0qYCBkZXZpY2VzLiBIb3dldmVyLCBJJ20gcHJldHR5IHN1cmUgdGhhdCdzIG1haW5seSBmb3IgZnV6emluZyB1c2VyLXNwYWNlIGFwcGxpY2F0aW9ucyBpbnRlcmFjdGluZyB3aXRoIEkyQyBkZXZpY2VzLCBvciBwb3NzaWJseSBmb3IgaW5qZWN0aW5nIEkyQyAqcmVzcG9uc2VzKiB0byBhIGRyaXZlci5cblxuV2FpdCBhIHNlY29uZOKApiBkb2VzIHRoZSBgc2ZwYCBkcml2ZXIgYWN0dWFsbHkgcmVnaXN0ZXIgYXMgYW4gSTJDIGNsaWVudD8gVGhhdCdzIHRoZSBjcnVjaWFsIHF1ZXN0aW9uLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdGhlIGBzZnBgIGRyaXZlciBnZXRzIHByb2JlZCBhbmQgaW50ZXJhY3RzIHdpdGggdGhlIEkyQyBidXMuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgaXQgaXMgYW4gSTJDIGNsaWVudCBhbmQgaG93IGl0IGlzIGJlaW5nIHVzZWQgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgU0ZQIG1vZHVsZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMzMsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MTMuOTc3OTk3MTIxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5ODcyMzM1MywiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2kyY19kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcGh5L3NmcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzoxNC4xNzY3MzAyNzRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjU1NzczMjk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIGBzZnAuY2AgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJIHdhbnQgdG8gZ2V0IGEgaGFuZGxlIG9uIGhvdyBgc2ZwLmNgIGlzIGluaXRpYWxpemVkLiBJJ20gc3BlY2lmaWNhbGx5IGludGVyZXN0ZWQgaW4gdGhlIHN0YXJ0dXAgc2VxdWVuY2Ug4oCTIHdoYXQncyBoYXBwZW5pbmcgZmlyc3QgYW5kIHdoYXQgZGVwZW5kZW5jaWVzIGFyZSBpbiBwbGF5LiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGRhdGEgc3RydWN0dXJlcyBpdCB1c2VzLCBhbmQgaG93IHRoZXkgZ2V0IHBvcHVsYXRlZC4gQXJlIHdlIHRhbGtpbmcgYWJvdXQgc3RhdGljIGluaXRpYWxpemF0aW9uLCBvciBpcyB0aGVyZSBhIG1vcmUgZHluYW1pYyBhcHByb2FjaCBoYXBwZW5pbmc/IEknbGwgcHJvYmFibHkgc3RhcnQgYnkgbG9va2luZyBmb3IgdGhlIGVudHJ5IHBvaW50LCBsaWtlbHkgYG1haW5gIG9yIHNvbWUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gY2FsbGVkIGVhcmx5IGluIHRoZSBib290IHByb2Nlc3MuIEZyb20gdGhlcmUsIEknbGwgdHJhY2UgdGhyb3VnaCB0aGUgY2FsbHMsIG5vdGluZyB0aGUgaW1wb3J0YW50IHZhcmlhYmxlcyBhbmQgYW55IGV4dGVybmFsIGRlcGVuZGVuY2llcy4gSSdtIGtlZW4gdG8gdW5kZXJzdGFuZCB0aGUgaW50ZXJhY3Rpb25zIHdpdGggdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUsIGlmIGFueSwgYW5kIHNlZSBpZiB0aGVyZSBhcmUgYW55IHVudXN1YWwgaW5pdGlhbGl6YXRpb24gcGF0dGVybnMgb3IgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucyB0aGF0IG1pZ2h0IGJlY29tZSBhcHBhcmVudC4gSSBhbHNvIHdhbnQgdG8gbWFrZSBzdXJlIEkgZG9uJ3QgbWlzcyBhbnkgc3VidGxlLCBidXQgY3JpdGljYWwsIHN0ZXBzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjkzLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MTcuNDMyNTA1MzM5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMzcxOTcxNiwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcGh5L3NmcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzoxNy41MzYyMzE2MzVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDkwMDkxMDk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHNmcC5jOiBUaGUgRW5kIGlzIHRoZSBCZWdpbm5pbmcgKG9yIGF0IGxlYXN0LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXApKipcblxuT2theSwgdGltZSB0byBnZXQgYSBncmlwIG9uIHRoaXMuIFdoZXJlIGFyZSB3ZSwgcmVhbGx5PyBMZXQncyBhc3N1bWUgdGhlIGhpZ2gtbGV2ZWwgYXJjaGl0ZWN0dXJlIGlzIHNvbGlkIChmb3Igbm93ISksIGFuZCB0aGUgaXNzdWVzIGFyZW4ndCBpbW1lZGlhdGVseSBzY3JlYW1pbmcgYXQgdXMgZnJvbSB0aGUgbWFpbiByb3V0aW5lcy4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0IGNvbXBsZXggc3lzdGVtcyBvZnRlbiBoYXZlIHRoZWlyICdnb3RjaGFzJyBuZXN0bGVkIGluIHRoZSBkZXRhaWxzIOKAkyB0aGUgZWRnZSBjYXNlcywgdGhlIGNsZWFudXAsIHRoZSBpbml0aWFsaXphdGlvbiwgdGhlIHNodXRkb3duLlxuXG5TbywgYSBsb2dpY2FsIG5leHQgc3RlcCBpcyB0byBoZWFkIHN0cmFpZ2h0IHRvIHRoZSBib3R0b20gb2YgYHNmcC5jYC4gRm9yZ2V0IHRoZSB0b3AgZm9yIGEgbW9tZW50OyBpdCdzIHRoZSBlbmQgb2YgYSBDIGZpbGUgdGhhdCB0eXBpY2FsbHkgaG9sZHMgdGhlIGluaXRpYWxpemF0aW9uL2RlLWluaXRpYWxpemF0aW9uL2NsZWFudXAgY29kZSBvciwgdGhlIGNvcmUgZnVuY3Rpb25zIG9uIHdoaWNoIG90aGVycyBidWlsZC4gVW5kZXJzdGFuZGluZyB0aGVzZSBcImZpbmFsXCIgc2VjdGlvbnMgb2Z0ZW4gcmV2ZWFscyB0aGUgZGVwZW5kZW5jaWVzLCByZXNvdXJjZSBtYW5hZ2VtZW50LCBhbmQgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyB0aGF0IG1pZ2h0IGV4cGxhaW4gYW55IG9ic2VydmVkIGJlaGF2aW9yLiBUaGlzICdib3R0b20tdXAnIGFwcHJvYWNoIGNhbiBxdWlja2x5IHN1cmZhY2UgZnVuZGFtZW50YWwgYXNzdW1wdGlvbnMgb3Igb3Zlcmxvb2tlZCBpbnRlcmFjdGlvbnMuIEl0J3MgYWJvdXQgZ3JvdW5kaW5nIG15c2VsZiBpbiB0aGUgaW1wbGVtZW50YXRpb24gc3BlY2lmaWNzIGJlZm9yZSBnZXR0aW5nIGxvc3QgaW4gdGhlIGFic3RyYWN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDk2MywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjIxLjAyNjMyNDkyMloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTkzMDE3NzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlXy4qZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3BoeS9zZnAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9waHkvc2ZwLmM9MzQ4MD1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzZnBfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTM0ODktXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjM0OTA6bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihzZnBfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtMzQ5MS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MjEuMDg1NjMxNzQ5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMTg2OTY5MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQbGF0Zm9ybSBEcml2ZXIgYW5kIFN5emthbGxlcidzIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLCBzZWVtcyB0byBiZSBhIHBsYXRmb3JtIGRyaXZlciBvZiBzb21lIGtpbmQuIE15IGluaXRpYWwgdGhvdWdodCBpcywgXCJDYW4gc3l6a2FsbGVyIGV2ZW4gZ2V0IGF0IHRoaXMgYHNmcF9sb29rdXBfcXVpcmtgIGZ1bmN0aW9uP1wiIFRoYXQncyB0aGUgcmVhbCBxdWVzdGlvbi4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGF0dGFjayBzdXJmYWNlLlxuXG5Ob3csIGBzZnBfbG9va3VwX3F1aXJrYCwgaWYgSSdtIHJlbWVtYmVyaW5nIHJpZ2h0LCBpcyBjYWxsZWQgc3BlY2lmaWNhbGx5IGR1cmluZyBTRlAgbW9kdWxlIGluc2VydGlvbiBvciBwcm9iaW5nIOKAkyB0aGF0J3MgdGhlIHRyaWdnZXIgSSdtIGludGVyZXN0ZWQgaW4uIFNvLCB0byBnZXQgc3l6a2FsbGVyIHRvIGhpdCBpdCwgSSBoYXZlIHRvIHRyYWNlIGhvdyB0aGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkLiBUaW1lIHRvIHNlZSB3aGVyZSB0aGF0IGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGludm9rZWQuIEkgbmVlZCB0byB0cmFjZSB0aGUgY2FsbGluZyBwYXRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzQ2LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MjQuMTA0MzMxMTE0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NDkzMzc4NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZnBfbG9va3VwX3F1aXJrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3BoeS9zZnAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9waHkvc2ZwLmM9NjUxPXN0YXRpYyBib29sIHNmcF9tYXRjaChjb25zdCBjaGFyICpxcywgY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVuLCBib29sIHByZWZpeClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy02NjItXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjY2MzpzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTY2NC17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM9MjQ5ND1zdGF0aWMgaW50IHNmcF9zbV9tb2RfcHJvYmUoc3RydWN0IHNmcCAqc2ZwLCBib29sIHJlcG9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy0yNjY4LVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYzoyNjY5OlxcdHNmcC1cXHUwMDNlcXVpcmsgPSBzZnBfbG9va3VwX3F1aXJrKFxcdTAwMjZpZCk7XFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTI2NzAtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjI0LjE2OTI3MDUyMVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzI1ODg4NDc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBTRlAgTW9kdWxlIFByb2JlKipcblxuT2theSwgc28gYHNmcF9zbV9tb2RfcHJvYmVgIGlzIHRyaWdnZXJlZCBieSB0aGUgU0ZQIHN0YXRlIG1hY2hpbmUsIG1vc3QgbGlrZWx5IGZyb20gYW4gZXZlbnQgd2l0aGluIHRoZSBzdGF0ZSBtYWNoaW5lIGxpa2UgYHNmcF9zbV9ldmVudGAuIFRoYXQgbWFrZXMgc2Vuc2UuIFRoZSBjcnVjaWFsIHF1ZXN0aW9uIGlzIGhvdyAqdGhhdCogc3RhdGUgbWFjaGluZSBnZXRzIGFjdGl2YXRlZC4gSXQgbG9va3MgbGlrZSBpdCdzIGRyaXZlbiBieSBHUElPIGludGVycnVwdHMsIHNpZ25hbGluZyBtb2R1bGUgaW5zZXJ0aW9uLCBvciBwb3RlbnRpYWxseSB0aHJvdWdoIHBvbGxpbmcuIFxuXG5Ob3csIGNhbiBJIGxldmVyYWdlIHN5emthbGxlciB0byBhY3R1YWxseSAqdGVzdCogdGhpcz8gVGhlIGNoYWxsZW5nZSBpcyBpbiBlbXVsYXRpbmcgdGhlIGhhcmR3YXJlLiBJIG5lZWQgYSB3YXkgdG8gbW9jayB1cCBhIHBsYXRmb3JtIGRldmljZSBjb21wbGV0ZSB3aXRoIHRoZSBuZWNlc3NhcnkgR1BJT3MgYW5kIEkyQyBidXNlcyB0aGF0IHRoZSBTRlAgY29kZSBleHBlY3RzLiBJIGtub3cgdGhhdCBwbGF0Zm9ybSBkZXZpY2VzIGFyZSB0eXBpY2FsbHkgZGVzY3JpYmVkIHRocm91Z2ggRGV2aWNlIFRyZWUgb3IgQUNQSS4gU3l6a2FsbGVyICpkb2VzKiBoYXZlIG1lY2hhbmlzbXMgdG8gaW5qZWN0IHBsYXRmb3JtIGRldmljZXMsIGxpa2VseSB1c2luZyBzb21ldGhpbmcgbGlrZSBgc3l6X2Rldl9wbGF0Zm9ybWAgb3IgYSBzaW1pbGFyIGZ1bmN0aW9uIGNhbGwuIEhvd2V2ZXIsIHRoZSBjb21wbGV4aXR5IGhlcmUgaXMgc2lnbmlmaWNhbnQuIEknbSBpbWFnaW5pbmcgc3BlY2lmaWMgRGV2aWNlIFRyZWUgbm9kZXMgZGVmaW5pbmcgYW4gU0ZQIGNhZ2UsIGNvbXBsZXRlIHdpdGggdGhlIGludHJpY2F0ZSBkZXRhaWxzIG9mIHRoZSBJMkMgYnVzIGFuZCB0aGUgYXNzb2NpYXRlZCBHUElPcy4gSXQgc2VlbXMgdW5saWtlbHkgdGhhdCBzdGFuZGFyZCBzeXprYWxsZXIsIHdpdGhvdXQgY3VzdG9tIGRlc2NyaXB0aW9ucywgd291bGQgc3VwcG9ydCB0aGlzIGtpbmQgb2YgZGV0YWlsZWQgY29uZmlndXJhdGlvbiBvdXQtb2YtdGhlLWJveC4gSXQncyBwcm9iYWJseSB0b28gbmljaGUgdG8gYmUgZ2VuZXJpYy5cblxuQWN0dWFsbHksIGJlZm9yZSBJIGdldCB0b28gZGVlcCBpbiwgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIG9idmlvdXMuIERvZXMgc3l6a2FsbGVyIGV2ZW4gKmZ1enoqIFNGUCBtb2R1bGVzIGRpcmVjdGx5PyBMZXQncyBxdWlja2x5IHNlYXJjaCBmb3IgZXhpc3Rpbmcgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nIFNGUCBmdW5jdGlvbmFsaXR5LiBUaGF0J2xsIHNhdmUgYSBsb3Qgb2YgdGltZSBpZiBzb21lb25lIGVsc2UgaGFzIGFscmVhZHkgdGFja2xlZCB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODQ1LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjI5LjQ5NTE2MDkzN1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ4NTcxMDExLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZnBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MjkuNzQzNzM5NTA4WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0MTI4ODU5MzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hpbmcgdGhlIFNGUCBFRVBST00gUXVpcmtzIENvZGUqKlxuXG5Pa2F5LCBsZXQncyB0YWtlIGEgbG9vayBhdCBob3cgcmVhY2hhYmxlIHRoaXMgbmV3IGNvZGUgaXMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHRoZSBhY2Nlc3MgcGF0aC4gSWYgaXQncyBhIHBsYXRmb3JtIGRyaXZlciwgdGhlbiB0aGUgdXN1YWwgc3VzcGVjdHMgYXBwbHk6IGEgZGV2aWNlIHRyZWUgbm9kZSB3aXRoIHRoZSBcInNmZixzZnBcIiBjb21wYXRpYmxlIHN0cmluZy4gTm93LCByZWFsaXN0aWNhbGx5LCBTeXprYWxsZXIgdXN1YWxseSBkb2Vzbid0IGp1c3QgKm1hZ2ljYWxseSogaW5qZWN0IGFyYml0cmFyeSBkZXZpY2UgdHJlZSBub2RlcyB1bmxlc3MgdGhlcmUncyBzb21lIHNvcnQgb2Ygc3BlY2lmaWNhbGx5IGRlZmluZWQgcHNldWRvLWRldmljZSwgb3IgaXQncyBwYXJ0IG9mIHRoZSBiYXNlIGltYWdlIHNldHVwLiBTbywgdGhhdCdzIHNvbWV0aGluZyB0byBpbW1lZGlhdGVseSBjb25zaWRlci5cblxuVGhlIG5leHQgcXVlc3Rpb24gaXMsIGlzIGl0IGV2ZW4gd29ydGggdGhlIGVmZm9ydCB0byBmdXp6IGl0PyBUaGlzIHBhdGNoLCBmcm9tIHdoYXQgSSdtIHNlZWluZywgc2VlbXMgdG8gaW1wbGVtZW50IGEgZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZCBzdHJpbmcgbWF0Y2hpbmcgbG9naWMgcmVsYXRlZCB0byBTRlAgRUVQUk9NIHF1aXJrcy4gSXQncyBoYXJkd2FyZS1zcGVjaWZpYywgZm9jdXNpbmcgb24gU0ZQIHRyYW5zY2VpdmVycywgc28gcmlnaHQgYXdheSBJJ20gd29uZGVyaW5nIGFib3V0IHJlYWNoYWJpbGl0eSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFVubGVzcyB3ZSd2ZSBnb3QgYW4gSTJDIG1vY2sgKmFuZCogYSBwbGF0Zm9ybSBkZXZpY2UgbW9jayBmb3IgU0ZQLCB0aGUgb2RkcyBzZWVtIHNsaW0uIFNvLCBhcyBhIGZpcnN0IHN0ZXAsIGxldCdzIGNoZWNrIHRoZSBrZXJuZWwgc291cmNlIC0gaXMgdGhlcmUgYSBtb2NrIFNGUCBhbnl3aGVyZSB0aGF0IGNvdWxkIGFzc2lzdCB1cyBpbiB0ZXN0aW5nIHRoaXMgY29kZT9cblxuXG4iLCJJbnB1dFRva2VucyI6NjQwMywiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzozNC4xNTY2MjczNTlaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwNTE5MDkzOTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2ZmLHNmcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vZ3Bpby1saW5lLW11eC55YW1sPTc2PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vZ3Bpby1saW5lLW11eC55YW1sLTEwMC0gICAgc2ZwMTogc2ZwLXAxIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9ncGlvLWxpbmUtbXV4LnlhbWw6MTAxOiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9ncGlvLWxpbmUtbXV4LnlhbWwtMTAyLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L3NmZixzZnAueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWw9MTM9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sLTE1LSAgICBlbnVtOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sOjE2OiAgICAgIC0gc2ZmLHNmcCAgIyBmb3IgU0ZQIG1vZHVsZXNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC0xNy0gICAgICAtIHNmZixzZmYgICMgZm9yIHNvbGRlcmVkIGRvd24gU0ZGIG1vZHVsZXNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sPTg5PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWwtOTMtICAgIHNmcDE6IHNmcCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWw6OTQ6ICAgICAgY29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC05NS0gICAgICBpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZzZnBfMWdfaTJjXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sLTExNS0gICAgc2ZwMjogc2ZwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbDoxMTY6ICAgICAgY29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC0xMTctICAgICAgaTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwX2kyY1xcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0PTQwND1kb2N1bWVudGF0aW9uIGluIHRoZSBrZXJuZWwgc291cmNlIHRyZWVcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0OjQwNTpgYERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sYGAuXFxuLS1cXG5NQUlOVEFJTkVSUz0yNDYwMT1TOlxcdE1haW50YWluZWRcXG5NQUlOVEFJTkVSUzoyNDYwMjpGOlxcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sXFxuTUFJTlRBSU5FUlMtMjQ2MDMtRjpcXHRkcml2ZXJzL25ldC9waHkvcGh5bGluay5jXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9icm9hZGNvbS9iY205NTg2MjVoci5kdHM9NTg9XFx0c2ZwOiBzZnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2Jyb2FkY29tL2JjbTk1ODYyNWhyLmR0czo1OTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2Jyb2FkY29tL2JjbTk1ODYyNWhyLmR0cy02MC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmMwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS1jbGVhcmZvZy1ndHItbDguZHRzPTExPVxcdHNmcDE6IHNmcC0xIHtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLWw4LmR0czoxMjpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS1jbGVhcmZvZy1ndHItbDguZHRzLTEzLVxcdFxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2Y2ZfZ3RyX3NmcDFfcGluc1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLmR0c2k9Mjg1PVxcdHNmcDA6IHNmcC0wIHtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLmR0c2k6Mjg2OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LWNsZWFyZm9nLWd0ci5kdHNpLTI4Ny1cXHRcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNmNmX2d0cl9zZnAwX3BpbnNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHM9OTc9XFx0c2ZwOiBzZnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS10dXJyaXMtb21uaWEuZHRzOjk4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHMtOTktXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODgtY2xlYXJmb2cuZHRzaT04MD1cXHRzZnA6IHNmcCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg4LWNsZWFyZm9nLmR0c2k6ODE6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODgtY2xlYXJmb2cuZHRzaS04Mi1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmMxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LWtvbnRyb24ta3N3aXRjaC1kMTAtbW10LTZnLTJncy5kdHM9MTk9XFx0c2ZwMDogc2ZwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2Nngta29udHJvbi1rc3dpdGNoLWQxMC1tbXQtNmctMmdzLmR0czoyMDpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LWtvbnRyb24ta3N3aXRjaC1kMTAtbW10LTZnLTJncy5kdHMtMjEtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjNFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY2eC1rb250cm9uLWtzd2l0Y2gtZDEwLW1tdC02Zy0yZ3MuZHRzPTMxPVxcdHNmcDE6IHNmcDEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LWtvbnRyb24ta3N3aXRjaC1kMTAtbW10LTZnLTJncy5kdHM6MzI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY2eC1rb250cm9uLWtzd2l0Y2gtZDEwLW1tdC02Zy0yZ3MuZHRzLTMzLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHM9ODE9XFx0c2ZwMjogc2ZwMiB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHM6ODI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY2eC1wY2I4MzA5LmR0cy04My1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmMxMDJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHM9OTA9XFx0c2ZwMzogc2ZwMyB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHM6OTE6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY2eC1wY2I4MzA5LmR0cy05Mi1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmMxMDNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0NmEtcWRzLmR0cz00Nj1cXHRzZnAxOiBzZnAtMSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0NmEtcWRzLmR0czo0NzpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwNDZhLXFkcy5kdHMtNDgtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwMV9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0NmEtcWRzLmR0cz01Mz1cXHRzZnAyOiBzZnAtMiB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0NmEtcWRzLmR0czo1NDpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwNDZhLXFkcy5kdHMtNTUtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwMl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA4OGEtdGVuNjQuZHRzPTcxPVxcdHNmcF94ZzA6IGRwbWFjMi1zZnAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLXRlbjY0LmR0czo3MjpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLXRlbjY0LmR0cy03My1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZzZnBsb3dlcl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA4OGEtdGVuNjQuZHRzPTgxPVxcdHNmcF94ZzE6IGRwbWFjMS1zZnAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLXRlbjY0LmR0czo4MjpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLXRlbjY0LmR0cy04My1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZzZnB1cHBlcl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2k9MzE9XFx0c2ZwMDogc2ZwLTAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpOjMyOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2ktMzMtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwMF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2k9Mzg9XFx0c2ZwMTogc2ZwLTEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpOjM5OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2ktNDAtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwMV9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2k9NDU9XFx0c2ZwMjogc2ZwLTIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpOjQ2OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2ktNDctXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwMl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2k9NTI9XFx0c2ZwMzogc2ZwLTMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpOjUzOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2ktNTQtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwM19pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9Mjg3PVxcdGh0X2MzX2J0X3NmcDogc2ZwLTEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzOjI4ODpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzLTI4OS1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZodHdpbnNfc2ZwX2MzX2J0X2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0yOTQ9XFx0aHRfYzNfYmJfc2ZwOiBzZnAtMiB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM6Mjk1OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMjk2LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmh0d2luc19zZnBfYzNfYmJfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzPTMwMT1cXHRodF9jM19hdF9zZnA6IHNmcC0zIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMDI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cy0zMDMtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aHR3aW5zX3NmcF9jM19hdF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzA4PVxcdGh0X2MzX2FiX3NmcDogc2ZwLTQge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzOjMwOTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzLTMxMC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZodHdpbnNfc2ZwX2MzX2FiX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zMTU9XFx0YzFfYnRfc2ZwOiBzZnAtOSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM6MzE2OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzE3LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnR3aW5zX3NmcF9jMV9idF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzIyPVxcdGMxX2JiX3NmcDogc2ZwLTEwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMjM6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cy0zMjQtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2dHdpbnNfc2ZwX2MxX2JiX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zMjk9XFx0YzFfYXRfc2ZwOiBzZnAtMTEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzOjMzMDpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzLTMzMS1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZ0d2luc19zZnBfYzFfYXRfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzPTMzNj1cXHRjMV9hYl9zZnA6IHNmcC0xMiB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM6MzM3OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzM4LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnR3aW5zX3NmcF9jMV9hYl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzQzPVxcdGMyX2J0X3NmcDogc2ZwLTEzIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNDQ6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cy0zNDUtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2dHdpbnNfc2ZwX2MyX2J0X2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNTA9XFx0YzJfYmJfc2ZwOiBzZnAtMTQge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzOjM1MTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzLTM1Mi1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZ0d2luc19zZnBfYzJfYmJfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzPTM1Nz1cXHRjMl9hdF9zZnA6IHNmcC0xNSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM6MzU4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzU5LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnR3aW5zX3NmcF9jMl9hdF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzY0PVxcdGMyX2FiX3NmcDogc2ZwLTE2IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNjU6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cy0zNjYtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2dHdpbnNfc2ZwX2MyX2FiX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNzE9XFx0YzNfYnRfc2ZwOiBzZnAtMTcge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzOjM3MjpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzLTM3My1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZ0d2luc19zZnBfYzNfYnRfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzPTM3OD1cXHRjM19iYl9zZnA6IHNmcC0xOCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM6Mzc5OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzgwLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnR3aW5zX3NmcF9jM19iYl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9Mzg1PVxcdGMzX2F0X3NmcDogc2ZwLTE5IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozODY6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cy0zODctXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2dHdpbnNfc2ZwX2MzX2F0X2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zOTI9XFx0YzNfYWJfc2ZwOiBzZnAtMjAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzOjM5MzpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzLTM5NC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZ0d2luc19zZnBfYzNfYWJfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXJkYi5kdHM9MzU9XFx0c2ZwMjogc2ZwLTIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXJkYi5kdHM6MzY6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1yZGIuZHRzLTM3LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnNmcDJfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXJkYi5kdHM9NDY9XFx0c2ZwMzogc2ZwLTMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXJkYi5kdHM6NDc6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1yZGIuZHRzLTQ4LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnNmcDNfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXRxbWx4MjE2MGEtbWJseDIxNjBhLmR0cz03MD1cXHRzZnBfeGZpMTogc2ZwLXhmaTEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXRxbWx4MjE2MGEtbWJseDIxNjBhLmR0czo3MTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXRxbWx4MjE2MGEtbWJseDIxNjBhLmR0cy03Mi1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZ4ZmkxX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS10cW1seDIxNjBhLW1ibHgyMTYwYS5kdHM9ODA9XFx0c2ZwX3hmaTI6IHNmcC14ZmkyIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS10cW1seDIxNjBhLW1ibHgyMTYwYS5kdHM6ODE6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS10cW1seDIxNjBhLW1ibHgyMTYwYS5kdHMtODItXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2eGZpMl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzPTgzPVxcdHNmcF9hdDogc2ZwLWF0IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHM6ODQ6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHMtODUtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwX2kyYzBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzPTkwPVxcdHNmcF9hYjogc2ZwLWFiIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHM6OTE6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHMtOTItXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwX2kyYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzPTk3PVxcdHNmcF9idDogc2ZwLWJ0IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHM6OTg6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHMtOTktXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwX2kyYzJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzPTEwND1cXHRzZnBfYmI6IHNmcC1iYiB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzOjEwNTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjJhLWNsZWFyZm9nLmR0cy0xMDYtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwX2kyYzNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OTUtdmFyLWRhcnQtc29uYXRhLmR0cz0xMzg9XFx0c2ZwMDogc2ZwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg5NS12YXItZGFydC1zb25hdGEuZHRzOjEzOTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDk1LXZhci1kYXJ0LXNvbmF0YS5kdHMtMTQwLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmxwaTJjM1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS90cW1sczEweHhhLW1ibHMxMHh4YS5kdHNpPTUxPVxcdHNmcDE6IHNmcDEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL3RxbWxzMTB4eGEtbWJsczEweHhhLmR0c2k6NTI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS90cW1sczEweHhhLW1ibHMxMHh4YS5kdHNpLTUzLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnNmcDFfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL3RxbWxzMTB4eGEtbWJsczEweHhhLmR0c2k9NjE9XFx0c2ZwMjogc2ZwMiB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvdHFtbHMxMHh4YS1tYmxzMTB4eGEuZHRzaTo2MjpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL3RxbWxzMTB4eGEtbWJsczEweHhhLmR0c2ktNjMtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwMl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzPTEwMD1cXHRzZnA6IHNmcCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzOjEwMTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0cy0xMDItXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdURQVS5kdHM9MTE9XFx0c2ZwX2V0aDA6IHNmcC1ldGgwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdURQVS5kdHM6MTI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdURQVS5kdHMtMTMtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdURQVS5kdHNpPTY4PVxcdHNmcF9ldGgxOiBzZnAtZXRoMSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXVEUFUuZHRzaTo2OTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC11RFBVLmR0c2ktNzAtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTcwNDAtbW9jaGFiaW4uZHRzPTM0PVxcdHNmcF9ldGgwOiBzZnAtZXRoMCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0czozNTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtNzA0MC1tb2NoYWJpbi5kdHMtMzYtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2Y3AwX2kyYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0cz00ND1cXHRzZnBfZXRoMjogc2ZwLWV0aDIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtNzA0MC1tb2NoYWJpbi5kdHM6NDU6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTcwNDAtbW9jaGFiaW4uZHRzLTQ2LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmNwMF9pMmMwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1jbGVhcmZvZy1ndC04ay5kdHM9NjQ9XFx0c2ZwX2NwMF9ldGgwOiBzZnAtY3AwLWV0aDAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1jbGVhcmZvZy1ndC04ay5kdHM6NjU6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtY2xlYXJmb2ctZ3QtOGsuZHRzLTY2LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmNwMF9pMmMxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpPTY0PVxcdHNmcF9ldGgwOiBzZnAtZXRoMCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLW1jYmluLmR0c2ktNjUtXFx0XFx0LyogQ09OMTUsMTYgLSBDUE0gbGFuZSA0ICovXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLW1jYmluLmR0c2k6NjY6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtbWNiaW4uZHRzaS02Ny1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZzZnBwMF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLW1jYmluLmR0c2k9Nzc9XFx0c2ZwX2V0aDE6IHNmcC1ldGgxIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtbWNiaW4uZHRzaS03OC1cXHRcXHQvKiBDT04xNywxOCAtIENQUyBsYW5lIDQgKi9cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtbWNiaW4uZHRzaTo3OTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTgwLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnNmcHAxX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtbWNiaW4uZHRzaT05MD1cXHRzZnBfZXRoMzogc2ZwLWV0aDMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTkxLVxcdFxcdC8qIENPTjEzLDE0IC0gQ1BTIGxhbmUgNSAqL1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpOjkyOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLW1jYmluLmR0c2ktOTMtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwXzFnX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtcHV6emxlLW04MDEuZHRzPTY3PVxcdHNmcF9jcDBfZXRoMDogc2ZwLWNwMC1ldGgwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtcHV6emxlLW04MDEuZHRzOjY4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLXB1enpsZS1tODAxLmR0cy02OS1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZzZnBwbHVzMF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLXB1enpsZS1tODAxLmR0cz03Nz1cXHRzZnBfY3AxX2V0aDA6IHNmcC1jcDEtZXRoMCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLXB1enpsZS1tODAxLmR0czo3ODpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1wdXp6bGUtbTgwMS5kdHMtNzktXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwcGx1czFfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YuZHRzaT0yNz1cXHRzZnA6IHNmcCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi5kdHNpOjI4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi5kdHNpLTI5LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmNwMF9pMmMxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY3JiLmR0c2k9Nzk9XFx0c2ZwOiBzZnAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY3JiLmR0c2k6ODA6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWNyYi5kdHNpLTgxLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmNwMF9pMmMxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtZGIuZHRzaT05Mj1cXHRjcDBfc2ZwX2V0aDA6IHNmcC1ldGgtMSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1kYi5kdHNpOjkzOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1kYi5kdHNpLTk0LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmNwMF9zZnBwMF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMS1jZi1zb2xpZHdhbi5kdHM9MTIxPVxcdHNmcDA6IHNmcC0wIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMxLWNmLXNvbGlkd2FuLmR0czoxMjI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMxLWNmLXNvbGlkd2FuLmR0cy0xMjMtXFx0XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZjcDBfc2ZwMF9waW5zXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzEtY2Ytc29saWR3YW4uZHRzPTEzMz1cXHRzZnAxOiBzZnAtMSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMS1jZi1zb2xpZHdhbi5kdHM6MTM0OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMS1jZi1zb2xpZHdhbi5kdHMtMTM1LVxcdFxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2Y3AxX3NmcDFfcGluc1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMxLWRiLmR0c2k9Mzg9XFx0Y3AxX3NmcF9ldGgxOiBzZnAtZXRoLTIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzEtZGIuZHRzaTozOTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzEtZGIuZHRzaS00MC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZjcDFfaTJjMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMyLWNsZWFyZm9nLmR0cz0xMjQ9XFx0c2ZwOiBzZnAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItY2xlYXJmb2cuZHRzOjEyNTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItY2xlYXJmb2cuZHRzLTEyNi1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZjb21fMTBnX3NmcF9pMmMwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItZGIuZHRzaT01OT1cXHRjcDJfc2ZwX2V0aDA6IHNmcC1ldGgtMyB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMi1kYi5kdHNpOjYwOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMi1kYi5kdHNpLTYxLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmNwMl9zZnBwMF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODZhLWJhbmFuYXBpLWJwaS1yMy5kdHM9MTIxPVxcdHNmcDE6IHNmcC0xIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0czoxMjI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0cy0xMjMtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODZhLWJhbmFuYXBpLWJwaS1yMy5kdHM9MTMyPVxcdHNmcDI6IHNmcC0yIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0czoxMzM6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0cy0xMzQtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaT05ND1cXHRzZnAxOiBzZnAxIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LXByby5kdHNpOjk1OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaS05Ni1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpbXV4MV9zZnAxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQtcHJvLmR0c2k9MTA0PVxcdHNmcDI6IHNmcDIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQtcHJvLmR0c2k6MTA1OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaS0xMDYtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aW11eDJfc2ZwMlxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LmR0cz0xMz1cXHRzZnAyOiBzZnAyIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LmR0czoxNDpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQuZHRzLTE1LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAyXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQuZHRzaT03MD1cXHRzZnAxOiBzZnAxIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LmR0c2k6NzE6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LmR0c2ktNzItXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM9MTQ0PVxcdHNmcDA6IHNmcDAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzOjE0NTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzLTE0Ni1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45Njk2LWV2MjN4NzFhLmR0cz0xNTM9XFx0c2ZwMTogc2ZwMSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM6MTU0OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHMtMTU1LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzPTE2Mj1cXHRzZnAyOiBzZnAyIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45Njk2LWV2MjN4NzFhLmR0czoxNjM6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45Njk2LWV2MjN4NzFhLmR0cy0xNjQtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM9MTcxPVxcdHNmcDM6IHNmcDMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzOjE3MjpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzLTE3My1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwM1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MjY2PVxcdHNmcF9ldGgxMjogc2ZwLWV0aDEyIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MjY3OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTI2OC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9Mjc1PVxcdHNmcF9ldGgxMzogc2ZwLWV0aDEzIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6Mjc2OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTI3Ny1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMlxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9Mjg0PVxcdHNmcF9ldGgxNDogc2ZwLWV0aDE0IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6Mjg1OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTI4Ni1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwM1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MjkzPVxcdHNmcF9ldGgxNTogc2ZwLWV0aDE1IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6Mjk0OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTI5NS1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwNFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzAyPVxcdHNmcF9ldGg0ODogc2ZwLWV0aDQ4IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzAzOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTMwNC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwNVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzExPVxcdHNmcF9ldGg0OTogc2ZwLWV0aDQ5IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzEyOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTMxMy1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwNlxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzIwPVxcdHNmcF9ldGg1MDogc2ZwLWV0aDUwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzIxOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTMyMi1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwN1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzI5PVxcdHNmcF9ldGg1MTogc2ZwLWV0aDUxIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzMwOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTMzMS1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwOFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzM4PVxcdHNmcF9ldGg1Mjogc2ZwLWV0aDUyIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzM5OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTM0MC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwOVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzQ3PVxcdHNmcF9ldGg1Mzogc2ZwLWV0aDUzIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzQ4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTM0OS1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMTBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTM1Nj1cXHRzZnBfZXRoNTQ6IHNmcC1ldGg1NCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjM1NzpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0zNTgtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDExXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0zNjU9XFx0c2ZwX2V0aDU1OiBzZnAtZXRoNTUge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTozNjY6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMzY3LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAxMlxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9Mzc0PVxcdHNmcF9ldGg1Njogc2ZwLWV0aDU2IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6Mzc1OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTM3Ni1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMTNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTM4Mz1cXHRzZnBfZXRoNTc6IHNmcC1ldGg1NyB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjM4NDpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0zODUtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDE0XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0zOTI9XFx0c2ZwX2V0aDU4OiBzZnAtZXRoNTgge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTozOTM6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMzk0LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAxNVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9NDAxPVxcdHNmcF9ldGg1OTogc2ZwLWV0aDU5IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6NDAyOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTQwMy1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMTZcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTQxMD1cXHRzZnBfZXRoNjA6IHNmcC1ldGg2MCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjQxMTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS00MTItXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDE3XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT00MTk9XFx0c2ZwX2V0aDYxOiBzZnAtZXRoNjEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTo0MjA6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktNDIxLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAxOFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9NDI4PVxcdHNmcF9ldGg2Mjogc2ZwLWV0aDYyIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6NDI5OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTQzMC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMTlcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTQzNz1cXHRzZnBfZXRoNjM6IHNmcC1ldGg2MyB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjQzODpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS00MzktXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDIwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaT02Nz1cXHRzZnBfZXRoNjA6IHNmcC1ldGg2MCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpOjY4OlxcdFxcdGNvbXBhdGlibGVcXHQgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpLTY5LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaT03Nz1cXHRzZnBfZXRoNjE6IHNmcC1ldGg2MSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpOjc4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpLTc5LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAyXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaT04Nz1cXHRzZnBfZXRoNjI6IHNmcC1ldGg2MiB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpOjg4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpLTg5LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAzXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaT05Nz1cXHRzZnBfZXRoNjM6IHNmcC1ldGg2MyB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpOjk4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpLTk5LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnA0XFx1MDAzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM9Mjc9c3RhdGljIGludCB0eGdiZV9zd25vZGVzX3JlZ2lzdGVyKHN0cnVjdCB0eGdiZSAqdHhnYmUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjU6XFx0bm9kZXMtXFx1MDAzZXNmcF9wcm9wc1swXSA9IFBST1BFUlRZX0VOVFJZX1NUUklORyhcXFwiY29tcGF0aWJsZVxcXCIsIFxcXCJzZmYsc2ZwXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02Ni1cXHRub2Rlcy1cXHUwMDNlc2ZwX3Byb3BzWzFdID0gUFJPUEVSVFlfRU5UUllfUkVGX0FSUkFZKFxcXCJpMmMtYnVzXFxcIiwgbm9kZXMtXFx1MDAzZWkyY19yZWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jPTM2Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzZnBfb2ZfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtMzYzLVxcdHsgLmNvbXBhdGlibGUgPSBcXFwic2ZmLHNmZlxcXCIsIC5kYXRhID0gXFx1MDAyNnNmZl9kYXRhLCB9LFxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYzozNjQ6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIiwgLmRhdGEgPSBcXHUwMDI2c2ZwX2RhdGEsIH0sXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTM2NS1cXHR7IH0sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjM2LjIwODU0MjAxWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMDQ2NDY0MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW5pdGlhbCBBc3Nlc3NtZW50OiBTRlAgUmVnaXN0cmF0aW9uIGluIHR4Z2JlX3BoeS5jKipcblxuQWxyaWdodCwgbXkgaW50ZXJuYWwgcmFkYXIganVzdCBwaW5nZWQuIExvb2tpbmcgYXQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmNgLCBJIHNlZSBhIHNvZnR3YXJlIG5vZGUgcmVnaXN0cmF0aW9uIGZvciBgc2ZmLHNmcGAuIFRoYXQgaW1tZWRpYXRlbHkgc3BhcmtzIG15IGludGVyZXN0OyBJJ3ZlIHNlZW4gYSBmZXcgaW1wbGVtZW50YXRpb25zIG9mIFNGUC9TRlArIGhhbmRsaW5nIGluIHNpbWlsYXIgZHJpdmVycywgYW5kIHRoZXkgY2FuIGJlIHF1aXRlIHZhcmllZC4gVGhlIGZhY3QgdGhhdCBpdCdzIGEgc29mdHdhcmUgbm9kZSBzdWdnZXN0cyBhIGRlZ3JlZSBvZiBhYnN0cmFjdGlvbiDigJMgcG9zc2libHkgcHJvYmluZywgb3IgY29uZmlndXJhdGlvbiwgbWF5YmUgZXZlbiBoYW5kbGluZyBzcGVjaWZpYyBQSFkgZGV0YWlscyBiYXNlZCBvbiB0aGUgbW9kdWxlIHR5cGUuIFRpbWUgdG8gZGlnIGRlZXBlci4gTXkgZm9jdXMgaXMgZ29pbmcgc3RyYWlnaHQgdG8gYHR4Z2JlX3N3bm9kZXNfcmVnaXN0ZXJgLiBUaGlzIGlzIGFsbW9zdCBjZXJ0YWlubHkgd2hlcmUgdGhlIG1lYXQgb2YgdGhlIFNGUC9TRlArIG1vZHVsZSBpbml0aWFsaXphdGlvbiBhbmQgcmVzb3VyY2UgbWFuYWdlbWVudCBpcyBoYW5kbGVkLCBlc3BlY2lhbGx5IHRoZSBcInNvZnR3YXJlIG5vZGVcIiBhc3BlY3QuIEkgd2FudCB0byBzZWUgaG93IHRoaXMgcGFydGljdWxhciBkcml2ZXIgYXBwcm9hY2hlcyB0aGUgU0ZQIGludGVyZmFjZS4gQ3VyaW91cyB0byBsZWFybiBob3cgaXQncyBoYW5kbGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjQyOCwiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjQwLjIxMzE5MDcxN1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA5NDg4MDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHhnYmVfc3dub2Rlc19yZWdpc3RlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtMjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoyNzpzdGF0aWMgaW50IHR4Z2JlX3N3bm9kZXNfcmVnaXN0ZXIoc3RydWN0IHR4Z2JlICp0eGdiZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM9NTc1PWludCB0eGdiZV9pbml0X3BoeShzdHJ1Y3QgdHhnYmUgKnR4Z2JlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy01OTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo1OTI6XFx0cmV0ID0gdHhnYmVfc3dub2Rlc19yZWdpc3Rlcih0eGdiZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy01OTMtXFx0aWYgKHJldCkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzo0MC4yNzQxNDQ2NjVaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM3MDkyMTU4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBgdHhnYmVgIGFuZCBgc2ZwYCBEcml2ZXIgSW50ZXJhY3Rpb24gd2l0aGluIFN5emthbGxlcioqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCB0aGlzIGB0eGdiZWAgTklDLCBhbmQgZmlyc3QsIEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyBhIFBDSSBkZXZpY2UuIFllcCwgV2FuZ3h1biAxMEdiRSBQQ0kgRXhwcmVzcywgZ290IGl0LiBOb3cgdGhlIHF1ZXN0aW9uIGlzLCBjYW4gU3l6a2FsbGVyIGVtdWxhdGUgdGhpcyB0aGluZz8gSSBrbm93IFN5emthbGxlciBoYXMgUENJIGVtdWxhdGlvbiwgYnV0IGl0J3MgdXN1YWxseSBlaXRoZXIgYnJvYWQgb3IgZm9jdXNlZCBvbiBjZXJ0YWluIGRldmljZXMgbGlrZSB0aGUgZTEwMDBlLiBJdCBkZWZpbml0ZWx5IGRvZXNuJ3QgaGF2ZSBhIHNwZWNpZmljIGB0eGdiZWAgaW1wbGVtZW50YXRpb24uXG5cblNvLCB3aXRob3V0IHRoYXQgZGV0YWlsZWQgZW11bGF0aW9uLCB0aGUgYHNmcGAgZHJpdmVyIGlzbid0IGdvaW5nIHRvIGdldCBwcm9iZWQgYXV0b21hdGljYWxseS4gU3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgYXJlbid0IGdvaW5nIHRvIGhhdmUgYSBkZXZpY2UgdHJlZSBub2RlIG9yIGEgc29mdHdhcmUgbm9kZSBkZWZpbmVkIHdpdGggdGhlIHJpZ2h0IFwiY29tcGF0aWJsZVwiIHN0cmluZyAoYHNmZixzZnBgKS4gSXQgbmVlZHMgc29tZXRoaW5nIHRvIGxhdGNoIG9udG8uXG5cbkhvbGQgb24sIHRob3VnaC4gSSByZWNhbGwgU3l6a2FsbGVyIGhhcyB0aGF0IGBzeXpfZGV2X3BsYXRmb3JtYCBmZWF0dXJlLiBJICpjb3VsZCogaW5qZWN0IGEgcGxhdGZvcm0gZGV2aWNlLiBCdXQgaGVyZSdzIHRoZSBraWNrZXI6IGV2ZW4gaWYgSSBkbyB0aGF0LCB0aGUgYHNmcC5jYCBkcml2ZXIgcmVxdWlyZXMgSTJDIGFuZCBHUElPLiBTeXprYWxsZXIgZG9lc24ndCBhdXRvbWF0aWNhbGx5IGtub3cgaG93IHRvIHNldCB0aG9zZSB1cCBmb3IgYSBwbGF0Zm9ybSBkZXZpY2UuIEknZCBoYXZlIHRvIHNwZWNpZnkgdGhlbSBhcyBwYXJ0IG9mIG15IHN5emthbGxlciBjb2RlLlxuXG5IbW0uLi4gYmVmb3JlIEkgZ28gZG93biB0aGF0IGNvbXBsaWNhdGVkIHJvYWQsIEkgc2hvdWxkIGNoZWNrIHNvbWV0aGluZyBzaW1wbGVyLiBDYW4gdGhlIGBzZnAuY2AgZHJpdmVyIHByb2JlICp3aXRob3V0KiB0aGUgSTJDIGJ1cz8gSXTigJlzIHdvcnRoIGNoZWNraW5nIGlmIGl0IGhhcyBhIGZhbGxiYWNrIG1lY2hhbmlzbS4gSWYgaXQgZG9lc24ndCwgSSdtIGdvaW5nIHRvIGhhdmUgdG8gZG8gYSBsb3QgbW9yZSB3b3JrIHRvIGdldCB0aGlzIHRoaW5nIG9mZiB0aGUgZ3JvdW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzAzOCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzo0NS42NDUwNjgzMzlaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4MTczNjE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNmcF9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9waHkvc2ZwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvcGh5L3NmcC5jPTMyNzI9c3RhdGljIGludCBzZnBfaTJjX2dldChzdHJ1Y3Qgc2ZwICpzZnApXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtMzI5Ny1cXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM6MzI5ODpzdGF0aWMgaW50IHNmcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy0zMjk5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYz0zNDgwPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNmcF9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjM0ODE6XFx0LnByb2JlID0gc2ZwX3Byb2JlLFxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy0zNDgyLVxcdC5yZW1vdmUgPSBzZnBfcmVtb3ZlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzo0NS43MDMyNDY3NDdaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzIyMzM0OTY4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudDogU0ZQIFByb2JlKipcblxuQWxyaWdodCwgKnNmcF9wcm9iZSouLi4gdGhhdCBpbW1lZGlhdGVseSB0cmlnZ2VycyBhIHNwZWNpZmljIHNldCBvZiBhc3NvY2lhdGlvbnMuIFRoaXMgbGlrZWx5IHJlZmVycyB0byBhIGRpYWdub3N0aWMgdG9vbCBvciBjb21tYW5kLiBNeSBtaW5kIGp1bXBzIHRvIHZhcmlvdXMgaW1wbGVtZW50YXRpb25zLiBJcyB0aGlzIGEgY3VzdG9tIHNjcmlwdCBJJ3ZlIHVzZWQgaW4gdGhlIHBhc3QsIGEgc3BlY2lmaWMgdmVuZG9yJ3MgdXRpbGl0eSwgb3IgcGVyaGFwcyBzb21ldGhpbmcgbW9yZSBnZW5lcmFsLCBsaWtlIGEgbW9kdWxlIHVzZWQgaW4gYSBuZXR3b3JrIG1hbmFnZW1lbnQgZnJhbWV3b3JrPyBUaGUgbmFtZSBpcyBwcmV0dHkgZGVzY3JpcHRpdmUuIEl0IHN1Z2dlc3RzIHByb2Jpbmcgb3IgaW50ZXJyb2dhdGluZyBhbiBTRlAgKFNtYWxsIEZvcm0tZmFjdG9yIFBsdWdnYWJsZSkgdHJhbnNjZWl2ZXIuIFRoaXMgY291bGQgYmUgZm9yIGEgd2lkZSBhcnJheSBvZiByZWFzb25zIOKAkyBkZXRlcm1pbmluZyBpdHMgbW9kZWwsIG1hbnVmYWN0dXJlciwgc3VwcG9ydGVkIHNwZWVkcywgRE9NIChEaWdpdGFsIE9wdGljYWwgTW9uaXRvcmluZykgZGF0YSwgb3IgZXZlbiBqdXN0IHZlcmlmeWluZyBpdHMgcHJlc2VuY2UgYW5kIGZ1bmN0aW9uYWxpdHkuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSBjb250ZXh0LiBJcyB0aGlzIGEgc29mdHdhcmUgdG9vbCwgYSBoYXJkd2FyZSBwcm9iZSwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSBtb3JlIEkgdGhpbmsgYWJvdXQgaXQsIHRoZSBtb3JlIHF1ZXN0aW9ucyBhcmlzZSwgYW5kIHRoZSBtb3JlIEkgcmVjb2duaXplIHRoYXQgY29udGV4dCBpcyBjcml0aWNhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBpbXBsaWNhdGlvbnMgb2YgXCJzZnBfcHJvYmUuXCJcblxuXG4iLCJJbnB1dFRva2VucyI6MjM4MjcsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzo0OC45MjY1OTg4NzNaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgxMTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3BoeS9zZnAuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAzMjk4LFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMzI5ODpcXHRzdGF0aWMgaW50IHNmcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbjMyOTk6XFx0e1xcbjMzMDA6XFx0XFx0Y29uc3Qgc3RydWN0IHNmZl9kYXRhICpzZmY7XFxuMzMwMTpcXHRcXHRjaGFyICpzZnBfaXJxX25hbWU7XFxuMzMwMjpcXHRcXHRzdHJ1Y3Qgc2ZwICpzZnA7XFxuMzMwMzpcXHRcXHRpbnQgZXJyLCBpO1xcbjMzMDQ6XFx0XFxuMzMwNTpcXHRcXHRzZnAgPSBzZnBfYWxsb2MoXFx1MDAyNnBkZXYtXFx1MDAzZWRldik7XFxuMzMwNjpcXHRcXHRpZiAoSVNfRVJSKHNmcCkpXFxuMzMwNzpcXHRcXHRcXHRyZXR1cm4gUFRSX0VSUihzZnApO1xcbjMzMDg6XFx0XFxuMzMwOTpcXHRcXHRwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBzZnApO1xcbjMzMTA6XFx0XFxuMzMxMTpcXHRcXHRlcnIgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoc2ZwLVxcdTAwM2VkZXYsIHNmcF9jbGVhbnVwLCBzZnApO1xcbjMzMTI6XFx0XFx0aWYgKGVyciBcXHUwMDNjIDApXFxuMzMxMzpcXHRcXHRcXHRyZXR1cm4gZXJyO1xcbjMzMTQ6XFx0XFxuMzMxNTpcXHRcXHRzZmYgPSBkZXZpY2VfZ2V0X21hdGNoX2RhdGEoc2ZwLVxcdTAwM2VkZXYpO1xcbjMzMTY6XFx0XFx0aWYgKCFzZmYpXFxuMzMxNzpcXHRcXHRcXHRzZmYgPSBcXHUwMDI2c2ZwX2RhdGE7XFxuMzMxODpcXHRcXG4zMzE5OlxcdFxcdHNmcC1cXHUwMDNldHlwZSA9IHNmZjtcXG4zMzIwOlxcdFxcbjMzMjE6XFx0XFx0ZXJyID0gc2ZwX2kyY19nZXQoc2ZwKTtcXG4zMzIyOlxcdFxcdGlmIChlcnIpXFxuMzMyMzpcXHRcXHRcXHRyZXR1cm4gZXJyO1xcbjMzMjQ6XFx0XFxuMzMyNTpcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgR1BJT19NQVg7IGkrKylcXG4zMzI2OlxcdFxcdFxcdGlmIChzZmYtXFx1MDAzZWdwaW9zIFxcdTAwMjYgQklUKGkpKSB7XFxuMzMyNzpcXHRcXHRcXHRcXHRzZnAtXFx1MDAzZWdwaW9baV0gPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbChzZnAtXFx1MDAzZWRldixcXG4zMzI4OlxcdFxcdFxcdFxcdFxcdFxcdCAgIGdwaW9fbmFtZXNbaV0sIGdwaW9fZmxhZ3NbaV0pO1xcbjMzMjk6XFx0XFx0XFx0XFx0aWYgKElTX0VSUihzZnAtXFx1MDAzZWdwaW9baV0pKVxcbjMzMzA6XFx0XFx0XFx0XFx0XFx0cmV0dXJuIFBUUl9FUlIoc2ZwLVxcdTAwM2VncGlvW2ldKTtcXG4zMzMxOlxcdFxcdFxcdH1cXG4zMzMyOlxcdFxcbjMzMzM6XFx0XFx0c2ZwLVxcdTAwM2VzdGF0ZV9od19tYXNrID0gU0ZQX0ZfUFJFU0VOVDtcXG4zMzM0OlxcdFxcdHNmcC1cXHUwMDNlc3RhdGVfaHdfZHJpdmUgPSBTRlBfRl9UWF9ESVNBQkxFO1xcbjMzMzU6XFx0XFxuMzMzNjpcXHRcXHRzZnAtXFx1MDAzZWdldF9zdGF0ZSA9IHNmcF9ncGlvX2dldF9zdGF0ZTtcXG4zMzM3OlxcdFxcdHNmcC1cXHUwMDNlc2V0X3N0YXRlID0gc2ZwX2dwaW9fc2V0X3N0YXRlO1xcbjMzMzg6XFx0XFxuMzMzOTpcXHRcXHQvKiBBbiBTRlAgY2FnZSB3aXRoIG5vIE1PRF9ERUYwIEdQSU8gaGFzIG5vIGhhcmR3YXJlIHByZXNlbmNlIHNpZ25hbC5cXG4zMzQwOlxcdFxcdCAqIEFzc3VtaW5nIHRoZSBtb2R1bGUgaXMgYWx3YXlzIHByZXNlbnQgdHJhcHMgYW4gZW1wdHkgY2FnZSBpblxcbjMzNDE6XFx0XFx0ICogTU9EX0VSUk9SIGFuZCBuZXZlciBkZXRlY3RzIGhvdC1pbnNlcnRpb24sIHNvIGRlcml2ZSBwcmVzZW5jZSBmcm9tIGFcXG4zMzQyOlxcdFxcdCAqIHRocm90dGxlZCBJMkMgcHJvYmUgYW5kIHBvbGwgZm9yIGNoYW5nZXMgaW5zdGVhZC4gc2ZwX2kyY19jb25maWd1cmUoKVxcbjMzNDM6XFx0XFx0ICogaGFzIGFscmVhZHkgc2V0IGkyY19tYXhfYmxvY2tfc2l6ZTsgc2VlZCBpMmNfYmxvY2tfc2l6ZSBzbyB0aGVcXG4zMzQ0OlxcdFxcdCAqIHByZXNlbmNlIHJlYWQgZG9lcyBub3QgaXNzdWUgYSB6ZXJvLWxlbmd0aCB0cmFuc2ZlciBiZWZvcmUgdGhlIGZpcnN0XFxuMzM0NTpcXHRcXHQgKiBFRVBST00gcmVhZC4gU2VlZCBpMmNfcHJlc2VudF9uZXh0IHRvIGppZmZpZXMgc28gdGhlIGZpcnN0IHByb2JlXFxuMzM0NjpcXHRcXHQgKiBoYXBwZW5zIGltbWVkaWF0ZWx5IChhIHplcm8gdmFsdWUgd291bGQgYmUgaW4gdGhlIHBhc3QgcmVsYXRpdmUgdG9cXG4zMzQ3OlxcdFxcdCAqIHRoZSBuZWdhdGl2ZSBJTklUSUFMX0pJRkZJRVMgYXQgYm9vdCBhbmQgZGVsYXkgZGV0ZWN0aW9uKS5cXG4zMzQ4OlxcdFxcdCAqXFxuMzM0OTpcXHRcXHQgKiBBIHNvbGRlcmVkLWRvd24gbW9kdWxlIChzZmYsc2ZmKSBoYXMgbm8gcHJlc2VuY2Ugc2lnbmFsIGFuZCBpc1xcbjMzNTA6XFx0XFx0ICogZ2VudWluZWx5IGFsd2F5cyBwcmVzZW50LCBzbyBpdCBrZWVwcyB0aGUgYWx3YXlzLXByZXNlbnQgYmVoYXZpb3VyO1xcbjMzNTE6XFx0XFx0ICogdGhlIEkyQyBwcm9iZSBpcyBnYXRlZCBvbiB0aGUgY2FnZSB0eXBlIGFkdmVydGlzaW5nIFNGUF9GX1BSRVNFTlQuXFxuMzM1MjpcXHRcXHQgKi9cXG4zMzUzOlxcdFxcdGlmICghc2ZwLVxcdTAwM2VncGlvW0dQSU9fTU9EREVGMF0pIHtcXG4zMzU0OlxcdFxcdFxcdGlmIChzZmYtXFx1MDAzZWdwaW9zIFxcdTAwMjYgU0ZQX0ZfUFJFU0VOVCkge1xcbjMzNTU6XFx0XFx0XFx0XFx0c2ZwLVxcdTAwM2VnZXRfc3RhdGUgPSBzZnBfaTJjX2dldF9zdGF0ZTtcXG4zMzU2OlxcdFxcdFxcdFxcdHNmcC1cXHUwMDNlaTJjX2Jsb2NrX3NpemUgPSBzZnAtXFx1MDAzZWkyY19tYXhfYmxvY2tfc2l6ZTtcXG4zMzU3OlxcdFxcdFxcdFxcdHNmcC1cXHUwMDNlaTJjX3ByZXNlbnRfbmV4dCA9IGppZmZpZXM7XFxuMzM1ODpcXHRcXHRcXHRcXHRzZnAtXFx1MDAzZW5lZWRfcG9sbCA9IHRydWU7XFxuMzM1OTpcXHRcXHRcXHR9IGVsc2Uge1xcbjMzNjA6XFx0XFx0XFx0XFx0c2ZwLVxcdTAwM2VnZXRfc3RhdGUgPSBzZmZfZ3Bpb19nZXRfc3RhdGU7XFxuMzM2MTpcXHRcXHRcXHR9XFxuMzM2MjpcXHRcXHR9XFxuMzM2MzpcXHRcXG4zMzY0OlxcdFxcdGRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwibWF4aW11bS1wb3dlci1taWxsaXdhdHRcXFwiLFxcbjMzNjU6XFx0XFx0XFx0XFx0XFx0IFxcdTAwMjZzZnAtXFx1MDAzZW1heF9wb3dlcl9tVyk7XFxuMzM2NjpcXHRcXHRpZiAoc2ZwLVxcdTAwM2VtYXhfcG93ZXJfbVcgXFx1MDAzYyAxMDAwKSB7XFxuMzM2NzpcXHRcXHRcXHRpZiAoc2ZwLVxcdTAwM2VtYXhfcG93ZXJfbVcpXFxuMzM2ODpcXHRcXHRcXHRcXHRkZXZfd2FybihzZnAtXFx1MDAzZWRldixcXG4zMzY5OlxcdFxcdFxcdFxcdFxcdCBcXFwiRmlybXdhcmUgYnVnOiBob3N0IG1heGltdW0gcG93ZXIgc2hvdWxkIGJlIGF0IGxlYXN0IDFXXFxcXG5cXFwiKTtcXG4zMzcwOlxcdFxcdFxcdHNmcC1cXHUwMDNlbWF4X3Bvd2VyX21XID0gMTAwMDtcXG4zMzcxOlxcdFxcdH1cXG4zMzcyOlxcdFxcbjMzNzM6XFx0XFx0ZGV2X2luZm8oc2ZwLVxcdTAwM2VkZXYsIFxcXCJIb3N0IG1heGltdW0gcG93ZXIgJXUuJXVXXFxcXG5cXFwiLFxcbjMzNzQ6XFx0XFx0XFx0IHNmcC1cXHUwMDNlbWF4X3Bvd2VyX21XIC8gMTAwMCwgKHNmcC1cXHUwMDNlbWF4X3Bvd2VyX21XIC8gMTAwKSAlIDEwKTtcXG4zMzc1OlxcdFxcbjMzNzY6XFx0XFx0LyogR2V0IHRoZSBpbml0aWFsIHN0YXRlLCBhbmQgYWx3YXlzIHNpZ25hbCBUWCBkaXNhYmxlLFxcbjMzNzc6XFx0XFx0ICogc2luY2UgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIHdpbGwgbm90IGJlIHVwLlxcbjMzNzg6XFx0XFx0ICovXFxuMzM3OTpcXHRcXHRzZnAtXFx1MDAzZXN0YXRlID0gc2ZwX2dldF9zdGF0ZShzZnApIHwgU0ZQX0ZfVFhfRElTQUJMRTtcXG4zMzgwOlxcdFxcbjMzODE6XFx0XFx0aWYgKHNmcC1cXHUwMDNlZ3Bpb1tHUElPX1JTMF0gXFx1MDAyNlxcdTAwMjZcXG4zMzgyOlxcdFxcdCAgICBncGlvZF9nZXRfdmFsdWVfY2Fuc2xlZXAoc2ZwLVxcdTAwM2VncGlvW0dQSU9fUlMwXSkpXFxuMzM4MzpcXHRcXHRcXHRzZnAtXFx1MDAzZXN0YXRlIHw9IFNGUF9GX1JTMDtcXG4zMzg0OlxcdFxcdHNmcF9zZXRfc3RhdGUoc2ZwLCBzZnAtXFx1MDAzZXN0YXRlKTtcXG4zMzg1OlxcdFxcdHNmcF9tb2R1bGVfdHhfZGlzYWJsZShzZnApO1xcbjMzODY6XFx0XFx0aWYgKHNmcC1cXHUwMDNlc3RhdGUgXFx1MDAyNiBTRlBfRl9QUkVTRU5UKSB7XFxuMzM4NzpcXHRcXHRcXHRydG5sX2xvY2soKTtcXG4zMzg4OlxcdFxcdFxcdHNmcF9zbV9ldmVudChzZnAsIFNGUF9FX0lOU0VSVCk7XFxuMzM4OTpcXHRcXHRcXHRydG5sX3VubG9jaygpO1xcbjMzOTA6XFx0XFx0fVxcbjMzOTE6XFx0XFxuMzM5MjpcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgR1BJT19NQVg7IGkrKykge1xcbjMzOTM6XFx0XFx0XFx0aWYgKGdwaW9fZmxhZ3NbaV0gIT0gR1BJT0RfSU4gfHwgIXNmcC1cXHUwMDNlZ3Bpb1tpXSlcXG4zMzk0OlxcdFxcdFxcdFxcdGNvbnRpbnVlO1xcbjMzOTU6XFx0XFxuMzM5NjpcXHRcXHRcXHRzZnAtXFx1MDAzZWdwaW9faXJxW2ldID0gZ3Bpb2RfdG9faXJxKHNmcC1cXHUwMDNlZ3Bpb1tpXSk7XFxuMzM5NzpcXHRcXHRcXHRpZiAoc2ZwLVxcdTAwM2VncGlvX2lycVtpXSBcXHUwMDNjIDApIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6NDguOTI2NzgxMzYzWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMTkxMzczNDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBgc2ZwX2kyY19nZXRgIEZ1bmN0aW9uIENhbGwqKlxuXG5BbHJpZ2h0LCBzbyBgc2ZwX2kyY19nZXRgIGlzIGJlaW5nIGludm9rZWQuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIk9rYXksIHdoYXQncyBpdHMgcHVycG9zZT9cIiBHaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIGl0J3MgcHJldHR5IGNsZWFyIGl0J3MgcmVsYXRlZCB0byBJMkMgY29tbXVuaWNhdGlvbiBhbmQgU0ZQIG1vZHVsZXMuIEJ1dCB0aGUgZGV2aWwncyBpbiB0aGUgZGV0YWlscy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHNwZWNpZmljcy4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IHF1aWNrbHkgcmV2aWV3aW5nIHRoZSBjb2RlIGZvciB0aGF0IGZ1bmN0aW9uLiBJIHdhbnQgdG8gc2VlIGhvdyBpdCdzIGludGVyZmFjaW5nIHdpdGggdGhlIEkyQyBidXMgYW5kIGlmIHRoZXJlIGFyZSBhbnkgaW50ZXJlc3RpbmcgbnVhbmNlcy4gQXJlIHdlIHRhbGtpbmcgYWJvdXQgYSBzdGFuZGFyZCBJMkMgcmVhZCBvciBhcmUgdGhlcmUgYW55IG1hbnVmYWN0dXJlci1zcGVjaWZpYyBleHRlbnNpb25zIGJlaW5nIHV0aWxpemVkIGhlcmU/IEknbSBob3BpbmcgaXQncyBzdHJhaWdodGZvcndhcmQgYnV0IEknbSBwcmVwYXJlZCBmb3Igc29tZXRoaW5nIGEgYml0IG1vcmUgY29tcGxleCwgZGVwZW5kaW5nIG9uIHRoZSBoYXJkd2FyZSBwbGF0Zm9ybS4gSSBuZWVkIHRvIGxvb2sgZm9yIGFueSByZWdpc3RlciBhY2Nlc3NlcywgZXJyb3IgaGFuZGxpbmcsIHJldHJpZXMsIGFuZCBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgdGhhdCBJIHdpbGwgYmUgaW50ZXJlc3RlZCBpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU5MDAsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjUxLjk0NTkyMjcxOFoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTI0ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvcGh5L3NmcC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDMyNzIsXG4gIFwiTGluZUNvdW50XCI6IDI1XG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjMyNzI6XFx0c3RhdGljIGludCBzZnBfaTJjX2dldChzdHJ1Y3Qgc2ZwICpzZnApXFxuMzI3MzpcXHR7XFxuMzI3NDpcXHRcXHRzdHJ1Y3QgZndub2RlX2hhbmRsZSAqaDtcXG4zMjc1OlxcdFxcdHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjO1xcbjMyNzY6XFx0XFx0aW50IGVycjtcXG4zMjc3OlxcdFxcbjMyNzg6XFx0XFx0aCA9IGZ3bm9kZV9maW5kX3JlZmVyZW5jZShkZXZfZndub2RlKHNmcC1cXHUwMDNlZGV2KSwgXFxcImkyYy1idXNcXFwiLCAwKTtcXG4zMjc5OlxcdFxcdGlmIChJU19FUlIoaCkpIHtcXG4zMjgwOlxcdFxcdFxcdGRldl9lcnIoc2ZwLVxcdTAwM2VkZXYsIFxcXCJtaXNzaW5nICdpMmMtYnVzJyBwcm9wZXJ0eVxcXFxuXFxcIik7XFxuMzI4MTpcXHRcXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG4zMjgyOlxcdFxcdH1cXG4zMjgzOlxcdFxcbjMyODQ6XFx0XFx0aTJjID0gaTJjX2dldF9hZGFwdGVyX2J5X2Z3bm9kZShoKTtcXG4zMjg1OlxcdFxcdGlmICghaTJjKSB7XFxuMzI4NjpcXHRcXHRcXHRlcnIgPSAtRVBST0JFX0RFRkVSO1xcbjMyODc6XFx0XFx0XFx0Z290byBwdXQ7XFxuMzI4ODpcXHRcXHR9XFxuMzI4OTpcXHRcXG4zMjkwOlxcdFxcdGVyciA9IHNmcF9pMmNfY29uZmlndXJlKHNmcCwgaTJjKTtcXG4zMjkxOlxcdFxcdGlmIChlcnIpXFxuMzI5MjpcXHRcXHRcXHRpMmNfcHV0X2FkYXB0ZXIoaTJjKTtcXG4zMjkzOlxcdHB1dDpcXG4zMjk0OlxcdFxcdGZ3bm9kZV9oYW5kbGVfcHV0KGgpO1xcbjMyOTU6XFx0XFx0cmV0dXJuIGVycjtcXG4zMjk2OlxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6NTEuOTQ2MjE2Njg4WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcwMzA5MjQxOTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQcm9iZSBSZXF1aXJlbWVudCBcdTAwMjYgRnV6emluZyBGZWFzaWJpbGl0eSoqXG5cbk9rYXksIHNvIHRoaXMgZHJpdmVyIHJlbGllcyBvbiBhbiBgaTJjLWJ1c2AgcHJvcGVydHkgYmVpbmcgcHJlc2VudCBpbiB0aGUgZndub2RlLiBJZiB0aGF0J3MgbWlzc2luZywgaXQnbGwgYmFpbCBvdXQgd2l0aCBgLUVOT0RFVmAgb3IgYC1FUFJPQkVfREVGRVJgLiBFc3NlbnRpYWxseSwgbm8gSTJDIGJ1cywgbm8gZHJpdmVyLiBTdHJhaWdodGZvcndhcmQuXG5cbk5vdywgSSdtIHRoaW5raW5nIGFib3V0IGZ1enppbmcgdGhpcy4gU3l6a2FsbGVyICpjYW4qIGluamVjdCBJMkMgYWRhcHRlcnMgKGNsZXZlciEpLCB1c2luZyB0aGluZ3MgbGlrZSBgaTJjLXN0dWJgIG9yIGBpMmMtbW9ja2AuIFRoZSBwcm9ibGVtIGlzIHRoYXQgaXQgZG9lc24ndCBhdXRvbWF0aWNhbGx5IGxpbmsgdGhlbSB1cCB0byB0aGUgcGxhdGZvcm0gZGV2aWNlJ3MgZndub2RlIHVzaW5nIHRoYXQgY3J1Y2lhbCBgaTJjLWJ1c2AgcHJvcGVydHkuIERhbW4uIEkgcmVtZW1iZXIgYHN5el9kZXZfcGxhdGZvcm1gIGZvciBjcmVhdGluZyBwbGF0Zm9ybSBkZXZpY2VzLCBidXQgaXQncyBub3QgdGhlIGlkZWFsIHNvbHV0aW9uIGFzIGl0J3Mgbm90IGRlc2lnbmVkIHRvIGhhbmRsZSBmd25vZGUgcHJvcGVydHkgbGlua2luZyBsaWtlIHRoaXMuXG5cbkFuZCB3YWl0LCB0aGlzIHBhdGNoIEknbSBsb29raW5nIGF0LCBpdCBzZWVtcyB0byBiZSBqdXN0IGFkZGluZyBhIHByZWZpeCBtYXRjaCBmb3IgU0ZQIHF1aXJrcy4gU28sIGlzIHRoaXMgZXZlbiByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzPyBQcm9iYWJseSBub3QuIEl0IG5lZWRzIHRoYXQgc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbjogYW4gU0ZQIGNhZ2Ugd2l0aCBhbiBJMkMgYnVzLiBRRU1VIGFuZCBHQ0UgYXJlbid0IGdvaW5nIHRvIGVtdWxhdGUgdGhhdCwgYW5kIFN5emthbGxlciBkb2Vzbid0IGhhdmUgYSBnb29kIG1vY2sgZm9yIGl0LCBhcyBmYXIgYXMgSSBrbm93LlxuXG5IYW5nIG9uLi4uIGNvdWxkIHdlIGZ1enogYHR4Z2JlYCBpbnN0ZWFkPyBUaGF0J3MgYSBQQ0kgZGV2aWNlLiBTeXprYWxsZXIgKmNhbiogaGFuZGxlIFBDSSBkZXZpY2VzIHdpdGggYHN5el9wY2lfZGV2aWNlYCBvciBzaW1pbGFyLiBCdXQsIGl0IG5lZWRzIHRoZSBkZXZpY2UgdG8gYmUgc3VwcG9ydGVkIGJ5IHRoZSBQQ0kgZnV6emVyLCB3aGljaCBpcyBhIGJpZyBwcmVyZXF1aXNpdGUuXG5cbkV2ZW4gKmlmKiBgdHhnYmVgIGlzIGZ1enplZCwgdGhlIFNGUCBtb2R1bGUgRUVQUk9NIGlzIHN0aWxsIHJlYWQgb3ZlciBJMkMuIFRoZSBJMkMgYnVzIGhlcmUgaXMgcHJvdmlkZWQgYnkgYHR4Z2JlYC4gU28gdGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGlzIGRvZXMgYHR4Z2JlYCBwcm92aWRlIGFuIEkyQyBhZGFwdGVyPyBJIG5lZWQgdG8gbG9vayBpbnRvIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NTcwLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6NTguOTc3MTQzMTI5WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjYxOTgyMzIsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImkyY19hZGRfYWRhcHRlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6NTkuMjAzMzUyOTJaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzYzMDQ5NTQ0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkkyQyBSZWdpc3RlciBJbnNwZWN0aW9uIHdpdGhpbiBgdHhnYmVgKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbi4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIGhvdyB0aGUgYHR4Z2JlYCBkcml2ZXIgaW50ZXJhY3RzIHdpdGggSTJDLiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dCBob3cgdGhlIHJlZ2lzdGVycyByZWxhdGVkIHRvIHRoZSBJMkMgaW50ZXJmYWNlIGFyZSBtYXBwZWQgYW5kIGFjY2Vzc2VkLiBJJ20gZ29pbmcgdG8gc3RhcnQgYnkgdHJhY2luZyB0aHJvdWdoIHRoZSBkcml2ZXIgY29kZSBhbmQgcmVmcmVzaGluZyBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSByZWdpc3RlciBkZWZpbml0aW9ucy4gSSdsbCBuZWVkIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGJhc2UgYWRkcmVzc2VzIGFuZCBvZmZzZXRzIHVzZWQgZm9yIHRoZSBJMkMgY29udHJvbCBhbmQgc3RhdHVzIHJlZ2lzdGVycy4gQXJlIHRoZXkgbWVtb3J5LW1hcHBlZD8gQXJlIHRoZXJlIGFueSBzcGVjaWFsIGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byB0YWtlIGludG8gYWNjb3VudD8gSSdsbCBwcm9iYWJseSB3YW50IHRvIGxvb2sgZm9yIGFueSBtYWNyb3Mgb3IgaGVscGVyIGZ1bmN0aW9ucyB0aGUgZHJpdmVyIHVzZXMgdG8gZW5jYXBzdWxhdGUgdGhlIEkyQyByZWdpc3RlciBpbnRlcmFjdGlvbnMuIFRoaXMgaXMgYSBjb21tb24gcGF0dGVybiwgYW5kIEkgZXhwZWN0IHRoZXJlIHRvIGJlIGFic3RyYWN0aW9uIGhlcmUuIExldCdzIHNlZSBob3cgdGhleSBkbyBpdC4gSSdsbCBiZSBsb29raW5nIGZvciBhbnkgcG90ZW50aWFsIHF1aXJrcyBvciBlcnJhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSByZXZpc2lvbi4gQW5kIG9mIGNvdXJzZSwgSSdsbCBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIGludGVycnVwdCBoYW5kbGluZyBpZiBpdCdzIGludm9sdmVkLCBzaW5jZSB0aGF0J3Mgb2Z0ZW4gYSBzb3VyY2Ugb2Ygc3VidGxlIGJ1Z3MuIEkgd2FudCB0byBidWlsZCBhIGNsZWFyIG1lbnRhbCBtb2RlbCBvZiBob3cgYHR4Z2JlYCBpbml0aWFsaXplcyBhbmQgbWFuYWdlcyB0aGUgSTJDIGludGVyZmFjZSBmcm9tIGEgbG93LWxldmVsIHBlcnNwZWN0aXZlLiBLbm93aW5nIHRoaXMsIEknbGwgYmUgcHJlcGFyZWQgZm9yIGRlYnVnZ2luZyBvciBlbmhhbmNlbWVudHMgbGF0ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NDAxLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjg6MDIuODMzODUxOTYxWiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NTczODYwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpMmNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYz03Nj1pbnQgdHhnYmVfcmVhZF9lZXByb21faG9zdGlmKHN0cnVjdCB3eCAqd3gsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo3NzpcXHRcXHRcXHQgICAgIHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQgKmJ1ZmZlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTc4LVxcdFxcdFxcdCAgICAgdTMyIGxlbmd0aCwgdTggKmRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTgzLVxcdGJ1ZmZlci1cXHUwMDNlaGRyLmNtZCA9IEZXX1JFQURfRUVQUk9NX0NNRDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjg0OlxcdGJ1ZmZlci1cXHUwMDNlaGRyLmJ1Zl9sZW4gPSBzaXplb2Yoc3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCkgLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtODUtXFx0XFx0XFx0ICAgICAgc2l6ZW9mKHN0cnVjdCB3eF9oaWNfaGRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtODgtXFx0ZXJyID0gd3hfaG9zdF9pbnRlcmZhY2VfY29tbWFuZCh3eCwgKHUzMiAqKWJ1ZmZlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjg5OlxcdFxcdFxcdFxcdFxcdHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTkwLVxcdFxcdFxcdFxcdFxcdFdYX0hJX0NPTU1BTkRfVElNRU9VVCwgZmFsc2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy05NC1cXHQvKiBidWZmZXIgbGVuZ3RoIG9mZnNldCB0byByZWFkIHJldHVybiBkYXRhICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo5NTpcXHRvZmZzZXQgPSBzaXplb2Yoc3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCkgXFx1MDAzZVxcdTAwM2UgMjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTk2LVxcdGR3b3JkX2xlbiA9IHJvdW5kX3VwKGxlbmd0aCwgNCkgXFx1MDAzZVxcdTAwM2UgMjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg9MTA9aW50IHR4Z2JlX3JlYWRfZWVwcm9tX2hvc3RpZihzdHJ1Y3Qgd3ggKnd4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6MTE6XFx0XFx0XFx0ICAgICBzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkICpidWZmZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaC0xMi1cXHRcXHRcXHQgICAgIHUzMiBsZW5ndGgsIHU4ICpkYXRhKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jPTUyOT10eGdiZV9nZXRfbW9kdWxlX2VlcHJvbV9ieV9wYWdlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MzMtXFx0c3RydWN0IHd4ICp3eCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTM0OlxcdHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQgYnVmZmVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUzNS1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTQzLVxcdGJ1ZmZlci5iYW5rID0gcGFnZV9kYXRhLVxcdTAwM2ViYW5rO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjU0NDpcXHRidWZmZXIuaTJjX2FkZHJlc3MgPSBwYWdlX2RhdGEtXFx1MDAzZWkyY19hZGRyZXNzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTU0NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtOC0jaW5jbHVkZSBcXHUwMDNjbGludXgvY2xrZGV2LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo5OiNpbmNsdWRlIFxcdTAwM2NsaW51eC9pMmMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTEwLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9wY2kuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM9Mjc9c3RhdGljIGludCB0eGdiZV9zd25vZGVzX3JlZ2lzdGVyKHN0cnVjdCB0eGdiZSAqdHhnYmUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTM2LVxcdHNucHJpbnRmKG5vZGVzLVxcdTAwM2VncGlvX25hbWUsIHNpemVvZihub2Rlcy1cXHUwMDNlZ3Bpb19uYW1lKSwgXFxcInR4Z2JlX2dwaW8tJXhcXFwiLCBpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzozNzpcXHRzbnByaW50Zihub2Rlcy1cXHUwMDNlaTJjX25hbWUsIHNpemVvZihub2Rlcy1cXHUwMDNlaTJjX25hbWUpLCBcXFwidHhnYmVfaTJjLSV4XFxcIiwgaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtMzgtXFx0c25wcmludGYobm9kZXMtXFx1MDAzZXNmcF9uYW1lLCBzaXplb2Yobm9kZXMtXFx1MDAzZXNmcF9uYW1lKSwgXFxcInR4Z2JlX3NmcC0leFxcXCIsIGlkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo1OTpcXHRub2Rlcy1cXHUwMDNlaTJjX3Byb3BzWzBdID0gUFJPUEVSVFlfRU5UUllfU1RSSU5HKFxcXCJjb21wYXRpYmxlXFxcIiwgXFxcInNucHMsZGVzaWdud2FyZS1pMmNcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYwOlxcdG5vZGVzLVxcdTAwM2VpMmNfcHJvcHNbMV0gPSBQUk9QRVJUWV9FTlRSWV9CT09MKFxcXCJ3eCxpMmMtc25wcy1tb2RlbFxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjE6XFx0bm9kZXMtXFx1MDAzZWkyY19wcm9wc1syXSA9IFBST1BFUlRZX0VOVFJZX1UzMihcXFwiY2xvY2stZnJlcXVlbmN5XFxcIiwgSTJDX01BWF9TVEFOREFSRF9NT0RFX0ZSRVEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjI6XFx0c3dub2Rlc1tTV05PREVfSTJDXSA9IE5PREVfUFJPUChub2Rlcy1cXHUwMDNlaTJjX25hbWUsIG5vZGVzLVxcdTAwM2VpMmNfcHJvcHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjM6XFx0bm9kZXMtXFx1MDAzZWkyY19yZWZbMF0gPSBTT0ZUV0FSRV9OT0RFX1JFRkVSRU5DRShcXHUwMDI2c3dub2Rlc1tTV05PREVfSTJDXSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTY1LVxcdG5vZGVzLVxcdTAwM2VzZnBfcHJvcHNbMF0gPSBQUk9QRVJUWV9FTlRSWV9TVFJJTkcoXFxcImNvbXBhdGlibGVcXFwiLCBcXFwic2ZmLHNmcFxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjY6XFx0bm9kZXMtXFx1MDAzZXNmcF9wcm9wc1sxXSA9IFBST1BFUlRZX0VOVFJZX1JFRl9BUlJBWShcXFwiaTJjLWJ1c1xcXCIsIG5vZGVzLVxcdTAwM2VpMmNfcmVmKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTY3LVxcdG5vZGVzLVxcdTAwM2VzZnBfcHJvcHNbMl0gPSBQUk9QRVJUWV9FTlRSWV9SRUZfQVJSQVkoXFxcInR4LWZhdWx0LWdwaW9zXFxcIiwgbm9kZXMtXFx1MDAzZWdwaW8wX3JlZik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jPTQyMT1zdGF0aWMgaW50IHR4Z2JlX2Nsb2NrX3JlZ2lzdGVyKHN0cnVjdCB0eGdiZSAqdHhnYmUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQyODpcXHRzbnByaW50ZihjbGtfbmFtZSwgc2l6ZW9mKGNsa19uYW1lKSwgXFxcImkyY19kZXNpZ253YXJlLiVkXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQyOS1cXHRcXHQgcGNpX2Rldl9pZChwZGV2KSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQ0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQ0NzpzdGF0aWMgaW50IHR4Z2JlX2kyY19yZWFkKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCAqdmFsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDQ4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDU2OnN0YXRpYyBpbnQgdHhnYmVfaTJjX3dyaXRlKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCB2YWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0NjU6c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIGkyY19yZWdtYXBfY29uZmlnID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDY2LVxcdC5yZWdfYml0cyA9IDMyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDY3LVxcdC52YWxfYml0cyA9IDMyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDY4OlxcdC5yZWdfcmVhZCA9IHR4Z2JlX2kyY19yZWFkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDY5OlxcdC5yZWdfd3JpdGUgPSB0eGdiZV9pMmNfd3JpdGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NzAtXFx0LmZhc3RfaW8gPSB0cnVlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0NzM6c3RhdGljIGludCB0eGdiZV9pMmNfcmVnaXN0ZXIoc3RydWN0IHR4Z2JlICp0eGdiZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQ3NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NzUtXFx0c3RydWN0IHBsYXRmb3JtX2RldmljZV9pbmZvIGluZm8gPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQ3NjpcXHRzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICppMmNfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDc3OlxcdHN0cnVjdCByZWdtYXAgKmkyY19yZWdtYXA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NzgtXFx0c3RydWN0IHBjaV9kZXYgKnBkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQ4Mi1cXHRwZGV2ID0gd3gtXFx1MDAzZXBkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0ODM6XFx0aTJjX3JlZ21hcCA9IGRldm1fcmVnbWFwX2luaXQoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgTlVMTCwgd3gsIFxcdTAwMjZpMmNfcmVnbWFwX2NvbmZpZyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0ODQ6XFx0aWYgKElTX0VSUihpMmNfcmVnbWFwKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDg1LVxcdFxcdHd4X2Vycih3eCwgXFxcImZhaWxlZCB0byBpbml0IEkyQyByZWdtYXBcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDg2OlxcdFxcdHJldHVybiBQVFJfRVJSKGkyY19yZWdtYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDg3LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDkwLVxcdGluZm8uZndub2RlID0gc29mdHdhcmVfbm9kZV9md25vZGUodHhnYmUtXFx1MDAzZW5vZGVzLmdyb3VwW1NXTk9ERV9JMkNdKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQ5MTpcXHRpbmZvLm5hbWUgPSBcXFwiaTJjX2Rlc2lnbndhcmVcXFwiO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDkyLVxcdGluZm8uaWQgPSBwY2lfZGV2X2lkKHBkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00OTUtXFx0aW5mby5udW1fcmVzID0gMTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQ5NjpcXHRpMmNfZGV2ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2Z1bGwoXFx1MDAyNmluZm8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDk3OlxcdGlmIChJU19FUlIoaTJjX2RldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0OTg6XFx0XFx0cmV0dXJuIFBUUl9FUlIoaTJjX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00OTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo1MDA6XFx0dHhnYmUtXFx1MDAzZWkyY19kZXYgPSBpMmNfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNTAxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYz01NzU9aW50IHR4Z2JlX2luaXRfcGh5KHN0cnVjdCB0eGdiZSAqdHhnYmUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTYyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYyMjpcXHRyZXQgPSB0eGdiZV9pMmNfcmVnaXN0ZXIodHhnYmUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjIzLVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYyNDpcXHRcXHR3eF9lcnIod3gsIFxcXCJmYWlsZWQgdG8gaW5pdCBpMmMgaW50ZXJmYWNlOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTYyNS1cXHRcXHRnb3RvIGVycl91bnJlZ2lzdGVyX2NsaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjMwLVxcdFxcdHd4X2Vycih3eCwgXFxcImZhaWxlZCB0byByZWdpc3RlciBzZnBcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjMxOlxcdFxcdGdvdG8gZXJyX3VucmVnaXN0ZXJfaTJjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjMyLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjM2OmVycl91bnJlZ2lzdGVyX2kyYzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYzNzpcXHRwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3Rlcih0eGdiZS1cXHUwMDNlaTJjX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02MzgtZXJyX3VucmVnaXN0ZXJfY2xrOlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYz02NTE9dm9pZCB0eGdiZV9yZW1vdmVfcGh5KHN0cnVjdCB0eGdiZSAqdHhnYmUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTY3MS1cXHRwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3Rlcih0eGdiZS1cXHUwMDNlc2ZwX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo2NzI6XFx0cGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIodHhnYmUtXFx1MDAzZWkyY19kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjczLVxcdGNsa2Rldl9kcm9wKHR4Z2JlLVxcdTAwM2VjbG9jayk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaD0zOTA9c3RydWN0IHR4Z2JlX2hpY19lcGh5X2dldGxpbmsge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oOjQwMTpzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00MDItXFx0c3RydWN0IHd4X2hpY19oZHIgaGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDA2LVxcdHU4IGJhbms7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmg6NDA3OlxcdHU4IGkyY19hZGRyZXNzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQwOC1cXHR1OCByZXN2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmg9NDI1PXN0cnVjdCB0eGdiZV9ub2RlcyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDI2LVxcdGNoYXIgZ3Bpb19uYW1lWzMyXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaDo0Mjc6XFx0Y2hhciBpMmNfbmFtZVszMl07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDI4LVxcdGNoYXIgc2ZwX25hbWVbMzJdO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDMwLVxcdHN0cnVjdCBwcm9wZXJ0eV9lbnRyeSBncGlvX3Byb3BzWzJdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oOjQzMTpcXHRzdHJ1Y3QgcHJvcGVydHlfZW50cnkgaTJjX3Byb3BzWzRdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQzMi1cXHRzdHJ1Y3QgcHJvcGVydHlfZW50cnkgc2ZwX3Byb3BzWzldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQzMy1cXHRzdHJ1Y3QgcHJvcGVydHlfZW50cnkgcGh5bGlua19wcm9wc1szXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaDo0MzQ6XFx0c3RydWN0IHNvZnR3YXJlX25vZGVfcmVmX2FyZ3MgaTJjX3JlZlsxXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00MzUtXFx0c3RydWN0IHNvZnR3YXJlX25vZGVfcmVmX2FyZ3MgZ3BpbzBfcmVmWzFdO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmg9NDU5PXN0cnVjdCB0eGdiZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00NjQtXFx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqc2ZwX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaDo0NjU6XFx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqaTJjX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00NjYtXFx0c3RydWN0IGNsa19sb29rdXAgKmNsb2NrO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyODowMi45MTk2MTI2NjdaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjI0NDQ1MzA3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSB0eGdiZSBEcml2ZXIgYW5kIFBvdGVudGlhbCBTeXprYWxsZXIgRnV6emluZyBJbXBsaWNhdGlvbnMqKlxuXG5Pa2F5LCBzbyBgdHhnYmVgIGlzIGNyZWF0aW5nIGEgYGkyY19kZXNpZ253YXJlYCBwbGF0Zm9ybSBkZXZpY2UgYW5kIGEgYHNmZixzZnBgIHBsYXRmb3JtIGRldmljZS4gVGhhdCdzIGludGVyZXN0aW5nLiBJZiBTeXprYWxsZXIsIGluIGl0cyBQQ0kgZnV6emluZywgc29tZWhvdyBtYW5hZ2VzIHRvIGluaXRpYWxpemUgYHR4Z2JlYCwgaXQncyBnb2luZyB0byBzcGF3biB0aGVzZSBjaGlsZHJlbiAtIGFuIEkyQyBhZGFwdGVyIGFuZCBhbiBTRlAgZGV2aWNlLCB3aGljaCBzZWVtcyBsaWtlIGEgcHJvbWlzaW5nIGF0dGFjayBzdXJmYWNlIHRvIG1lLlxuXG5Ib3dldmVyLCB0aGUgY2F0Y2gsIGFzIGFsd2F5cywgaXMgdGhhdCBgdHhnYmVgIGlzIGEgY29tcGxleCBkcml2ZXIuIEl0IG5lZWRzIHJlYWwgaGFyZHdhcmUgb3IgYXQgbGVhc3QgYSBnb29kIG1vY2sgdG8gcmVzcG9uZCBjb3JyZWN0bHkgdG8gUENJIE1NSU8gcmVhZHMgYW5kIHdyaXRlcy4gV2hpbGUgU3l6a2FsbGVyJ3MgUENJIGZ1enplciBjYW4gZGVmaW5pdGVseSBpbmplY3QgTU1JTyBvcGVyYXRpb25zLCBnZXR0aW5nIGEgY29tcGxpY2F0ZWQgZHJpdmVyIGxpa2UgdGhpcyB0byBmdWxseSBpbml0aWFsaXplIGFuZCByZWdpc3RlciBpdHMgY2hpbGQgcGxhdGZvcm0gZGV2aWNlcywgd2l0aG91dCBhIGNhcmVmdWxseSBjcmFmdGVkIG1vY2ssIGlzIGEgc2lnbmlmaWNhbnQgY2hhbGxlbmdlLlxuXG5MZXQncyBhc3N1bWUsIGZvciBhIG1vbWVudCwgdGhhdCB3ZSAqZG8qIGdldCBpdCB0byBpbml0aWFsaXplLiBUaGUgSTJDIGFkYXB0ZXIgaXMgYW4gYGkyY19kZXNpZ253YXJlYCBkZXZpY2UsIHdoaWNoIG1lYW5zIHRoZSBTRlAgZHJpdmVyIHdpbGwgYmUgdHJ5aW5nIHRvIHJlYWQgZnJvbSB0aGUgSTJDIGJ1cy4gQW5kLCBzaW5jZSBgaTJjX2Rlc2lnbndhcmVgIHJlbGllcyBvbiBgdHhnYmVgJ3MgTU1JTyBmb3IgdGhlIGFjdHVhbCBJMkMgdHJhbnNhY3Rpb25zLCB3ZSdyZSBpbiBhIHNpdHVhdGlvbiB3aGVyZSByYW5kb20gTU1JTyByZXNwb25zZXMgZnJvbSBTeXprYWxsZXIgd2lsbCBhbG1vc3QgY2VydGFpbmx5IGxlYWQgdG8gZWl0aGVyIGZhaWxpbmcgSTJDIHJlYWRzIG9yLCBtb3JlIGludGVyZXN0aW5nbHksIHRoZSByZXR1cm4gb2YgY29tcGxldGVseSBnYXJiYWdlIGRhdGEuXG5cbklmIHRoZSBJMkMgcmVhZCByZXR1cm5zIGp1bmssIGBzZnBfc21fbW9kX3Byb2JlYCBpcyBnb2luZyB0byByZWFkIGZyb20gdGhlIEVFUFJPTS4gVGhpcyBpcyB3aGVyZSB0aGluZ3MgZ2V0IHJlYWxseSBpbnRlcmVzdGluZzsgdGhlIFNGUCBkcml2ZXIgaXMgZ29pbmcgdG8gdHJ5IHRvIHByb2Nlc3MgYmFkIEVFUFJPTSBkYXRhLiBOb3cgSSBuZWVkIHRvIHRha2UgYSBsb29rIGF0IGBzZnBfc21fbW9kX3Byb2JlYCBhbmQgc2VlIHdoYXQgaXQgZG9lcyB3aXRoIHRoaXMgbm9uc2Vuc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyNjc2LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI4OjA5LjE2NDA2NzU2OFoiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzM2NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvcGh5L3NmcC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI0OTQsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyNDk0OlxcdHN0YXRpYyBpbnQgc2ZwX3NtX21vZF9wcm9iZShzdHJ1Y3Qgc2ZwICpzZnAsIGJvb2wgcmVwb3J0KVxcbjI0OTU6XFx0e1xcbjI0OTY6XFx0XFx0LyogU0ZQIG1vZHVsZSBpbnNlcnRlZCAtIHJlYWQgSTJDIGRhdGEgKi9cXG4yNDk3OlxcdFxcdHN0cnVjdCBzZnBfZWVwcm9tX2lkIGlkO1xcbjI0OTg6XFx0XFx0Ym9vbCBjb3Rzd29ya3Nfc2ZiZztcXG4yNDk5OlxcdFxcdHVuc2lnbmVkIGludCBtYXNrO1xcbjI1MDA6XFx0XFx0Ym9vbCBjb3Rzd29ya3M7XFxuMjUwMTpcXHRcXHR1OCBjaGVjaztcXG4yNTAyOlxcdFxcdGludCByZXQ7XFxuMjUwMzpcXHRcXG4yNTA0OlxcdFxcdHNmcC1cXHUwMDNlaTJjX2Jsb2NrX3NpemUgPSBzZnAtXFx1MDAzZWkyY19tYXhfYmxvY2tfc2l6ZTtcXG4yNTA1OlxcdFxcbjI1MDY6XFx0XFx0cmV0ID0gc2ZwX3JlYWQoc2ZwLCBmYWxzZSwgMCwgXFx1MDAyNmlkLmJhc2UsIHNpemVvZihpZC5iYXNlKSk7XFxuMjUwNzpcXHRcXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbjI1MDg6XFx0XFx0XFx0aWYgKHJlcG9ydClcXG4yNTA5OlxcdFxcdFxcdFxcdGRldl9lcnIoc2ZwLVxcdTAwM2VkZXYsIFxcXCJmYWlsZWQgdG8gcmVhZCBFRVBST006ICVwZVxcXFxuXFxcIixcXG4yNTEwOlxcdFxcdFxcdFxcdFxcdEVSUl9QVFIocmV0KSk7XFxuMjUxMTpcXHRcXHRcXHRyZXR1cm4gLUVBR0FJTjtcXG4yNTEyOlxcdFxcdH1cXG4yNTEzOlxcdFxcbjI1MTQ6XFx0XFx0aWYgKHJldCAhPSBzaXplb2YoaWQuYmFzZSkpIHtcXG4yNTE1OlxcdFxcdFxcdGRldl9lcnIoc2ZwLVxcdTAwM2VkZXYsIFxcXCJFRVBST00gc2hvcnQgcmVhZDogJXBlXFxcXG5cXFwiLCBFUlJfUFRSKHJldCkpO1xcbjI1MTY6XFx0XFx0XFx0cmV0dXJuIC1FQUdBSU47XFxuMjUxNzpcXHRcXHR9XFxuMjUxODpcXHRcXG4yNTE5OlxcdFxcdC8qIFNvbWUgU0ZQIG1vZHVsZXMgKGUuZy4gTm9raWEgM0ZFNDY1NDFBQSkgbG9jayB1cCBpZiByZWFkIGZyb21cXG4yNTIwOlxcdFxcdCAqIGFkZHJlc3MgMHg1MSBpcyBqdXN0IG9uZSBieXRlIGF0IGEgdGltZS4gQWxzbyBTRkYtODQ3MiByZXF1aXJlc1xcbjI1MjE6XFx0XFx0ICogdGhhdCBFRVBST00gc3VwcG9ydHMgYXRvbWljIDE2Yml0IHJlYWQgb3BlcmF0aW9uIGZvciBkaWFnbm9zdGljXFxuMjUyMjpcXHRcXHQgKiBmaWVsZHMsIHNvIGRvIG5vdCBzd2l0Y2ggdG8gb25lIGJ5dGUgcmVhZGluZyBhdCBhIHRpbWUgdW5sZXNzIGl0XFxuMjUyMzpcXHRcXHQgKiBpcyByZWFsbHkgcmVxdWlyZWQgYW5kIHdlIGhhdmUgbm8gb3RoZXIgb3B0aW9uLlxcbjI1MjQ6XFx0XFx0ICovXFxuMjUyNTpcXHRcXHRpZiAoc2ZwX2lkX25lZWRzX2J5dGVfaW8oc2ZwLCBcXHUwMDI2aWQuYmFzZSwgc2l6ZW9mKGlkLmJhc2UpKSkge1xcbjI1MjY6XFx0XFx0XFx0ZGV2X2luZm8oc2ZwLVxcdTAwM2VkZXYsXFxuMjUyNzpcXHRcXHRcXHRcXHQgXFxcIkRldGVjdGVkIGJyb2tlbiBSVEw4NjcyL1JUTDk2MDFDIGVtdWxhdGVkIEVFUFJPTVxcXFxuXFxcIik7XFxuMjUyODpcXHRcXHRcXHRkZXZfaW5mbyhzZnAtXFx1MDAzZWRldixcXG4yNTI5OlxcdFxcdFxcdFxcdCBcXFwiU3dpdGNoaW5nIHRvIHJlYWRpbmcgRUVQUk9NIHRvIG9uZSBieXRlIGF0IGEgdGltZVxcXFxuXFxcIik7XFxuMjUzMDpcXHRcXHRcXHRzZnAtXFx1MDAzZWkyY19ibG9ja19zaXplID0gMTtcXG4yNTMxOlxcdFxcbjI1MzI6XFx0XFx0XFx0cmV0ID0gc2ZwX3JlYWQoc2ZwLCBmYWxzZSwgMCwgXFx1MDAyNmlkLmJhc2UsIHNpemVvZihpZC5iYXNlKSk7XFxuMjUzMzpcXHRcXHRcXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbjI1MzQ6XFx0XFx0XFx0XFx0aWYgKHJlcG9ydClcXG4yNTM1OlxcdFxcdFxcdFxcdFxcdGRldl9lcnIoc2ZwLVxcdTAwM2VkZXYsXFxuMjUzNjpcXHRcXHRcXHRcXHRcXHRcXHRcXFwiZmFpbGVkIHRvIHJlYWQgRUVQUk9NOiAlcGVcXFxcblxcXCIsXFxuMjUzNzpcXHRcXHRcXHRcXHRcXHRcXHRFUlJfUFRSKHJldCkpO1xcbjI1Mzg6XFx0XFx0XFx0XFx0cmV0dXJuIC1FQUdBSU47XFxuMjUzOTpcXHRcXHRcXHR9XFxuMjU0MDpcXHRcXG4yNTQxOlxcdFxcdFxcdGlmIChyZXQgIT0gc2l6ZW9mKGlkLmJhc2UpKSB7XFxuMjU0MjpcXHRcXHRcXHRcXHRkZXZfZXJyKHNmcC1cXHUwMDNlZGV2LCBcXFwiRUVQUk9NIHNob3J0IHJlYWQ6ICVwZVxcXFxuXFxcIixcXG4yNTQzOlxcdFxcdFxcdFxcdFxcdEVSUl9QVFIocmV0KSk7XFxuMjU0NDpcXHRcXHRcXHRcXHRyZXR1cm4gLUVBR0FJTjtcXG4yNTQ1OlxcdFxcdFxcdH1cXG4yNTQ2OlxcdFxcdH1cXG4yNTQ3OlxcdFxcbjI1NDg6XFx0XFx0LyogQ290c3dvcmtzIGRvIG5vdCBzZWVtIHRvIHVwZGF0ZSB0aGUgY2hlY2tzdW1zIHdoZW4gdGhleVxcbjI1NDk6XFx0XFx0ICogZG8gdGhlIGZpbmFsIHByb2dyYW1taW5nIHdpdGggdGhlIGZpbmFsIG1vZHVsZSBwYXJ0IG51bWJlcixcXG4yNTUwOlxcdFxcdCAqIHNlcmlhbCBudW1iZXIgYW5kIGRhdGUgY29kZS5cXG4yNTUxOlxcdFxcdCAqL1xcbjI1NTI6XFx0XFx0Y290c3dvcmtzID0gIW1lbWNtcChpZC5iYXNlLnZlbmRvcl9uYW1lLCBcXFwiQ09UU1dPUktTICAgICAgIFxcXCIsIDE2KTtcXG4yNTUzOlxcdFxcdGNvdHN3b3Jrc19zZmJnID0gIW1lbWNtcChpZC5iYXNlLnZlbmRvcl9wbiwgXFxcIlNGQkdcXFwiLCA0KTtcXG4yNTU0OlxcdFxcbjI1NTU6XFx0XFx0LyogQ290c3dvcmtzIFNGRiBtb2R1bGUgRUVQUk9NIGRvIG5vdCBhbHdheXMgaGF2ZSB2YWxpZCBwaHlzX2lkLFxcbjI1NTY6XFx0XFx0ICogcGh5c19leHRfaWQsIGFuZCBjb25uZWN0b3IgYnl0ZXMuICBSZXdyaXRlIFNGRiBFRVBST00gYnl0ZXMgaWZcXG4yNTU3OlxcdFxcdCAqIENvdHN3b3JrcyBQTiBtYXRjaGVzIGFuZCBieXRlcyBhcmUgbm90IGNvcnJlY3QuXFxuMjU1ODpcXHRcXHQgKi9cXG4yNTU5OlxcdFxcdGlmIChjb3Rzd29ya3MgXFx1MDAyNlxcdTAwMjYgY290c3dvcmtzX3NmYmcpIHtcXG4yNTYwOlxcdFxcdFxcdHJldCA9IHNmcF9jb3Rzd29ya3NfZml4dXBfY2hlY2soc2ZwLCBcXHUwMDI2aWQpO1xcbjI1NjE6XFx0XFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuMjU2MjpcXHRcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbjI1NjM6XFx0XFx0fVxcbjI1NjQ6XFx0XFxuMjU2NTpcXHRcXHQvKiBWYWxpZGF0ZSB0aGUgY2hlY2tzdW0gb3ZlciB0aGUgYmFzZSBzdHJ1Y3R1cmUgKi9cXG4yNTY2OlxcdFxcdGNoZWNrID0gc2ZwX2NoZWNrKFxcdTAwMjZpZC5iYXNlLCBzaXplb2YoaWQuYmFzZSkgLSAxKTtcXG4yNTY3OlxcdFxcdGlmIChjaGVjayAhPSBpZC5iYXNlLmNjX2Jhc2UpIHtcXG4yNTY4OlxcdFxcdFxcdGlmIChjb3Rzd29ya3MpIHtcXG4yNTY5OlxcdFxcdFxcdFxcdGRldl93YXJuKHNmcC1cXHUwMDNlZGV2LFxcbjI1NzA6XFx0XFx0XFx0XFx0XFx0IFxcXCJFRVBST00gYmFzZSBzdHJ1Y3R1cmUgY2hlY2tzdW0gZmFpbHVyZSAoMHglMDJ4ICE9IDB4JTAyeClcXFxcblxcXCIsXFxuMjU3MTpcXHRcXHRcXHRcXHRcXHQgY2hlY2ssIGlkLmJhc2UuY2NfYmFzZSk7XFxuMjU3MjpcXHRcXHRcXHR9IGVsc2Uge1xcbjI1NzM6XFx0XFx0XFx0XFx0ZGV2X2VycihzZnAtXFx1MDAzZWRldixcXG4yNTc0OlxcdFxcdFxcdFxcdFxcdFxcXCJFRVBST00gYmFzZSBzdHJ1Y3R1cmUgY2hlY2tzdW0gZmFpbHVyZTogMHglMDJ4ICE9IDB4JTAyeFxcXFxuXFxcIixcXG4yNTc1OlxcdFxcdFxcdFxcdFxcdGNoZWNrLCBpZC5iYXNlLmNjX2Jhc2UpO1xcbjI1NzY6XFx0XFx0XFx0XFx0cHJpbnRfaGV4X2R1bXAoS0VSTl9FUlIsIFxcXCJzZnAgRUU6IFxcXCIsIERVTVBfUFJFRklYX09GRlNFVCxcXG4yNTc3OlxcdFxcdFxcdFxcdFxcdCAgICAgICAxNiwgMSwgXFx1MDAyNmlkLCBzaXplb2YoaWQpLCB0cnVlKTtcXG4yNTc4OlxcdFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbjI1Nzk6XFx0XFx0XFx0fVxcbjI1ODA6XFx0XFx0fVxcbjI1ODE6XFx0XFxuMjU4MjpcXHRcXHRyZXQgPSBzZnBfcmVhZChzZnAsIGZhbHNlLCBTRlBfQ0NfQkFTRSArIDEsIFxcdTAwMjZpZC5leHQsIHNpemVvZihpZC5leHQpKTtcXG4yNTgzOlxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuMjU4NDpcXHRcXHRcXHRpZiAocmVwb3J0KVxcbjI1ODU6XFx0XFx0XFx0XFx0ZGV2X2VycihzZnAtXFx1MDAzZWRldiwgXFxcImZhaWxlZCB0byByZWFkIEVFUFJPTTogJXBlXFxcXG5cXFwiLFxcbjI1ODY6XFx0XFx0XFx0XFx0XFx0RVJSX1BUUihyZXQpKTtcXG4yNTg3OlxcdFxcdFxcdHJldHVybiAtRUFHQUlOO1xcbjI1ODg6XFx0XFx0fVxcbjI1ODk6XFx0XFxuMjU5MDpcXHRcXHRpZiAocmV0ICE9IHNpemVvZihpZC5leHQpKSB7XFxuMjU5MTpcXHRcXHRcXHRkZXZfZXJyKHNmcC1cXHUwMDNlZGV2LCBcXFwiRUVQUk9NIHNob3J0IHJlYWQ6ICVwZVxcXFxuXFxcIiwgRVJSX1BUUihyZXQpKTtcXG4yNTkyOlxcdFxcdFxcdHJldHVybiAtRUFHQUlOO1xcbjI1OTM6XFx0XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyODowOS4xNjQyNDI0NjhaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI2MjgxOTAzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipFRVBST00gQ2hlY2tzdW0gVmVyaWZpY2F0aW9uKipcblxuT2theSwgc28gdGhlIEVFUFJPTSBjaGVja3N1bSBpcyBhYnNvbHV0ZWx5IGNyaXRpY2FsIGhlcmU7IGl0ICpoYXMqIHRvIGJlIHZhbGlkLiBUaGUgY29kZSB1c2VzIGBzZnBfY2hlY2tgIG9uIHRoZSBiYXNlIElEIHNlY3Rpb24sIGV4Y2x1ZGluZyB0aGUgZmluYWwgY2hlY2tzdW0gYnl0ZSBpdHNlbGYuIEkgc2VlIHRoYXQgYGNoZWNrYCB2YWx1ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIHN0b3JlZCBgY2NfYmFzZWAgdmFsdWUgaW4gdGhlIElEIHN0cnVjdHVyZS4gSWYgdGhhdCBjaGVjayBmYWlscywgdGhlIGZ1bmN0aW9uIHJldHVybnMgYC1FSU5WQUxgLCBpbmRpY2F0aW5nIGFuIGludmFsaWQgRUVQUk9NIGRhdGEuXG5cbkdpdmVuIHRoZSBuYXR1cmUgb2YgU3l6a2FsbGVyJ3MgcmFuZG9tIEkyQyByZXNwb25zZXMsIGNoZWNrc3VtIGZhaWx1cmVzIGFyZSBoaWdobHkgcHJvYmFibGUuIEl0J3MgZXNzZW50aWFsbHkgYSBnYXJiYWdlLWluLCBnYXJiYWdlLW91dCBzaXR1YXRpb24uIEhvd2V2ZXIsIHRoZXJlJ3MgYSB2ZW5kb3Itc3BlY2lmaWMgZXhjZXB0aW9uIHRvIHRoaXMgcnVsZS4gSWYgdGhlIHZlbmRvciBpcyBcIkNPVFNXT1JLUyAgICAgICBcIiwgdGhlIGNvZGUgZG9lc24ndCBvdXRyaWdodCBmYWlsLiBJbnN0ZWFkLCBpdCBzZWVtcyB0byBlbWl0IGEgd2FybmluZyBhbmQgcHJvY2VlZHMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgcmVhZC5cblxuSWYgdGhhdCBpbml0aWFsIGNoZWNrc3VtIHBhc3NlcyAob3IgdGhlIHZlbmRvciBpcyBDT1RTKSwgdGhlIGNvZGUgY29udGludWVzIHRvIHJlYWQgdGhlIGV4dGVuZGVkIElEIGluZm9ybWF0aW9uLiBBbmQsIG9mIGNvdXJzZSwgYWZ0ZXIgcmVhZGluZyB0aGUgZXh0ZW5kZWQgZGF0YSwgaXQnbGwgdGhlbiBnbyBvbiB0byBjaGVjayB0aGF0IGV4dGVuZGVkIGNoZWNrc3VtLiBUaGlzIGlzIGEgc3RhbmRhcmQgYW5kIG5lY2Vzc2FyeSBjaGVjay4gSSdsbCBuZWVkIHRvIHJlbWVtYmVyIHRoaXMgd2hlbiBjb25zaWRlcmluZyBob3cgdG8gaGFuZGxlIHBvdGVudGlhbCBkYXRhIGNvcnJ1cHRpb24gZnJvbSBTeXprYWxsZXIgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzUwOTgsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyODoxMy40MjcwNjQyODVaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIzMzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3BoeS9zZnAuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNTk0LFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMjU5NDpcXHRcXG4yNTk1OlxcdFxcdGNoZWNrID0gc2ZwX2NoZWNrKFxcdTAwMjZpZC5leHQsIHNpemVvZihpZC5leHQpIC0gMSk7XFxuMjU5NjpcXHRcXHRpZiAoY2hlY2sgIT0gaWQuZXh0LmNjX2V4dCkge1xcbjI1OTc6XFx0XFx0XFx0aWYgKGNvdHN3b3Jrcykge1xcbjI1OTg6XFx0XFx0XFx0XFx0ZGV2X3dhcm4oc2ZwLVxcdTAwM2VkZXYsXFxuMjU5OTpcXHRcXHRcXHRcXHRcXHQgXFxcIkVFUFJPTSBleHRlbmRlZCBzdHJ1Y3R1cmUgY2hlY2tzdW0gZmFpbHVyZSAoMHglMDJ4ICE9IDB4JTAyeClcXFxcblxcXCIsXFxuMjYwMDpcXHRcXHRcXHRcXHRcXHQgY2hlY2ssIGlkLmV4dC5jY19leHQpO1xcbjI2MDE6XFx0XFx0XFx0fSBlbHNlIHtcXG4yNjAyOlxcdFxcdFxcdFxcdGRldl9lcnIoc2ZwLVxcdTAwM2VkZXYsXFxuMjYwMzpcXHRcXHRcXHRcXHRcXHRcXFwiRUVQUk9NIGV4dGVuZGVkIHN0cnVjdHVyZSBjaGVja3N1bSBmYWlsdXJlOiAweCUwMnggIT0gMHglMDJ4XFxcXG5cXFwiLFxcbjI2MDQ6XFx0XFx0XFx0XFx0XFx0Y2hlY2ssIGlkLmV4dC5jY19leHQpO1xcbjI2MDU6XFx0XFx0XFx0XFx0cHJpbnRfaGV4X2R1bXAoS0VSTl9FUlIsIFxcXCJzZnAgRUU6IFxcXCIsIERVTVBfUFJFRklYX09GRlNFVCxcXG4yNjA2OlxcdFxcdFxcdFxcdFxcdCAgICAgICAxNiwgMSwgXFx1MDAyNmlkLCBzaXplb2YoaWQpLCB0cnVlKTtcXG4yNjA3OlxcdFxcdFxcdFxcdG1lbXNldChcXHUwMDI2aWQuZXh0LCAwLCBzaXplb2YoaWQuZXh0KSk7XFxuMjYwODpcXHRcXHRcXHR9XFxuMjYwOTpcXHRcXHR9XFxuMjYxMDpcXHRcXG4yNjExOlxcdFxcdHNmcC1cXHUwMDNlaWQgPSBpZDtcXG4yNjEyOlxcdFxcbjI2MTM6XFx0XFx0ZGV2X2luZm8oc2ZwLVxcdTAwM2VkZXYsIFxcXCJtb2R1bGUgJS4qcyAlLipzIHJldiAlLipzIHNuICUuKnMgZGMgJS4qc1xcXFxuXFxcIixcXG4yNjE0OlxcdFxcdFxcdCAoaW50KXNpemVvZihpZC5iYXNlLnZlbmRvcl9uYW1lKSwgaWQuYmFzZS52ZW5kb3JfbmFtZSxcXG4yNjE1OlxcdFxcdFxcdCAoaW50KXNpemVvZihpZC5iYXNlLnZlbmRvcl9wbiksIGlkLmJhc2UudmVuZG9yX3BuLFxcbjI2MTY6XFx0XFx0XFx0IChpbnQpc2l6ZW9mKGlkLmJhc2UudmVuZG9yX3JldiksIGlkLmJhc2UudmVuZG9yX3JldixcXG4yNjE3OlxcdFxcdFxcdCAoaW50KXNpemVvZihpZC5leHQudmVuZG9yX3NuKSwgaWQuZXh0LnZlbmRvcl9zbixcXG4yNjE4OlxcdFxcdFxcdCAoaW50KXNpemVvZihpZC5leHQuZGF0ZWNvZGUpLCBpZC5leHQuZGF0ZWNvZGUpO1xcbjI2MTk6XFx0XFxuMjYyMDpcXHRcXHQvKiBDaGVjayB3aGV0aGVyIHdlIHN1cHBvcnQgdGhpcyBtb2R1bGUgKi9cXG4yNjIxOlxcdFxcdGlmICghc2ZwLVxcdTAwM2V0eXBlLVxcdTAwM2Vtb2R1bGVfc3VwcG9ydGVkKFxcdTAwMjZpZCkpIHtcXG4yNjIyOlxcdFxcdFxcdGRldl9lcnIoc2ZwLVxcdTAwM2VkZXYsXFxuMjYyMzpcXHRcXHRcXHRcXHRcXFwibW9kdWxlIGlzIG5vdCBzdXBwb3J0ZWQgLSBwaHlzIGlkIDB4JTAyeCAweCUwMnhcXFxcblxcXCIsXFxuMjYyNDpcXHRcXHRcXHRcXHRzZnAtXFx1MDAzZWlkLmJhc2UucGh5c19pZCwgc2ZwLVxcdTAwM2VpZC5iYXNlLnBoeXNfZXh0X2lkKTtcXG4yNjI1OlxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbjI2MjY6XFx0XFx0fVxcbjI2Mjc6XFx0XFxuMjYyODpcXHRcXHRpZiAoc2ZwLVxcdTAwM2VpZC5leHQuc2ZmODQ3Ml9jb21wbGlhbmNlICE9IFNGUF9TRkY4NDcyX0NPTVBMSUFOQ0VfTk9ORSkge1xcbjI2Mjk6XFx0XFx0XFx0cmV0ID0gc2ZwX21vZHVsZV9wYXJzZV9zZmY4NDcyKHNmcCk7XFxuMjYzMDpcXHRcXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4yNjMxOlxcdFxcdFxcdFxcdHJldHVybiByZXQ7XFxuMjYzMjpcXHRcXHR9XFxuMjYzMzpcXHRcXG4yNjM0OlxcdFxcdC8qIFBhcnNlIHRoZSBtb2R1bGUgcG93ZXIgcmVxdWlyZW1lbnQgKi9cXG4yNjM1OlxcdFxcdHJldCA9IHNmcF9tb2R1bGVfcGFyc2VfcG93ZXIoc2ZwKTtcXG4yNjM2OlxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbjI2Mzc6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG4yNjM4OlxcdFxcbjI2Mzk6XFx0XFx0c2ZwX21vZHVsZV9wYXJzZV9yYXRlX3NlbGVjdChzZnApO1xcbjI2NDA6XFx0XFxuMjY0MTpcXHRcXHRtYXNrID0gU0ZQX0ZfUFJFU0VOVDtcXG4yNjQyOlxcdFxcdGlmIChzZnAtXFx1MDAzZWdwaW9bR1BJT19UWF9ESVNBQkxFXSlcXG4yNjQzOlxcdFxcdFxcdG1hc2sgfD0gU0ZQX0ZfVFhfRElTQUJMRTtcXG4yNjQ0OlxcdFxcdGlmIChzZnAtXFx1MDAzZWdwaW9bR1BJT19UWF9GQVVMVF0pXFxuMjY0NTpcXHRcXHRcXHRtYXNrIHw9IFNGUF9GX1RYX0ZBVUxUO1xcbjI2NDY6XFx0XFx0aWYgKHNmcC1cXHUwMDNlZ3Bpb1tHUElPX0xPU10pXFxuMjY0NzpcXHRcXHRcXHRtYXNrIHw9IFNGUF9GX0xPUztcXG4yNjQ4OlxcdFxcdGlmIChzZnAtXFx1MDAzZWdwaW9bR1BJT19SUzBdKVxcbjI2NDk6XFx0XFx0XFx0bWFzayB8PSBTRlBfRl9SUzA7XFxuMjY1MDpcXHRcXHRpZiAoc2ZwLVxcdTAwM2VncGlvW0dQSU9fUlMxXSlcXG4yNjUxOlxcdFxcdFxcdG1hc2sgfD0gU0ZQX0ZfUlMxO1xcbjI2NTI6XFx0XFxuMjY1MzpcXHRcXHRzZnAtXFx1MDAzZW1vZHVsZV90X3N0YXJ0X3VwID0gVF9TVEFSVF9VUDtcXG4yNjU0OlxcdFxcdHNmcC1cXHUwMDNlbW9kdWxlX3Rfd2FpdCA9IFRfV0FJVDtcXG4yNjU1OlxcdFxcdHNmcC1cXHUwMDNlcGh5X3RfcmV0cnkgPSBUX1BIWV9SRVRSWTtcXG4yNjU2OlxcdFxcbjI2NTc6XFx0XFx0c2ZwLVxcdTAwM2VzdGF0ZV9pZ25vcmVfbWFzayA9IDA7XFxuMjY1ODpcXHRcXG4yNjU5OlxcdFxcdGlmIChzZnAtXFx1MDAzZWlkLmJhc2UuZXh0ZW5kZWRfY2MgPT0gU0ZGODAyNF9FQ0NfMTBHQkFTRV9UX1NGSSB8fFxcbjI2NjA6XFx0XFx0ICAgIHNmcC1cXHUwMDNlaWQuYmFzZS5leHRlbmRlZF9jYyA9PSBTRkY4MDI0X0VDQ18xMEdCQVNFX1RfU1IgfHxcXG4yNjYxOlxcdFxcdCAgICBzZnAtXFx1MDAzZWlkLmJhc2UuZXh0ZW5kZWRfY2MgPT0gU0ZGODAyNF9FQ0NfNUdCQVNFX1QgfHxcXG4yNjYyOlxcdFxcdCAgICBzZnAtXFx1MDAzZWlkLmJhc2UuZXh0ZW5kZWRfY2MgPT0gU0ZGODAyNF9FQ0NfMl81R0JBU0VfVClcXG4yNjYzOlxcdFxcdFxcdHNmcC1cXHUwMDNlbWRpb19wcm90b2NvbCA9IE1ESU9fSTJDX0M0NTtcXG4yNjY0OlxcdFxcdGVsc2UgaWYgKHNmcC1cXHUwMDNlaWQuYmFzZS5lMTAwMF9iYXNlX3QpXFxuMjY2NTpcXHRcXHRcXHRzZnAtXFx1MDAzZW1kaW9fcHJvdG9jb2wgPSBNRElPX0kyQ19NQVJWRUxMX0MyMjtcXG4yNjY2OlxcdFxcdGVsc2VcXG4yNjY3OlxcdFxcdFxcdHNmcC1cXHUwMDNlbWRpb19wcm90b2NvbCA9IE1ESU9fSTJDX05PTkU7XFxuMjY2ODpcXHRcXG4yNjY5OlxcdFxcdHNmcC1cXHUwMDNlcXVpcmsgPSBzZnBfbG9va3VwX3F1aXJrKFxcdTAwMjZpZCk7XFxuMjY3MDpcXHRcXG4yNjcxOlxcdFxcdG11dGV4X2xvY2soXFx1MDAyNnNmcC1cXHUwMDNlc3RfbXV0ZXgpO1xcbjI2NzI6XFx0XFx0LyogSW5pdGlhbGlzZSBzdGF0ZSBiaXRzIHRvIHVzZSBmcm9tIGhhcmR3YXJlICovXFxuMjY3MzpcXHRcXHRzZnAtXFx1MDAzZXN0YXRlX2h3X21hc2sgPSBtYXNrO1xcbjI2NzQ6XFx0XFxuMjY3NTpcXHRcXHQvKiBXZSB3YW50IHRvIGRyaXZlIHRoZSByYXRlIHNlbGVjdCBwaW5zIHRoYXQgdGhlIG1vZHVsZSBpcyB1c2luZyAqL1xcbjI2NzY6XFx0XFx0c2ZwLVxcdTAwM2VzdGF0ZV9od19kcml2ZSB8PSBzZnAtXFx1MDAzZXJzX3N0YXRlX21hc2s7XFxuMjY3NzpcXHRcXG4yNjc4OlxcdFxcdGlmIChzZnAtXFx1MDAzZXF1aXJrIFxcdTAwMjZcXHUwMDI2IHNmcC1cXHUwMDNlcXVpcmstXFx1MDAzZWZpeHVwKVxcbjI2Nzk6XFx0XFx0XFx0c2ZwLVxcdTAwM2VxdWlyay1cXHUwMDNlZml4dXAoc2ZwKTtcXG4yNjgwOlxcdFxcbjI2ODE6XFx0XFx0c2ZwLVxcdTAwM2VzdGF0ZV9od19tYXNrIFxcdTAwMjY9IH5zZnAtXFx1MDAzZXN0YXRlX2lnbm9yZV9tYXNrO1xcbjI2ODI6XFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZzZnAtXFx1MDAzZXN0X211dGV4KTtcXG4yNjgzOlxcdFxcbjI2ODQ6XFx0XFx0cmV0dXJuIDA7XFxuMjY4NTpcXHR9XFxuMjY4NjpcXHRcXG4yNjg3OlxcdHN0YXRpYyB2b2lkIHNmcF9zbV9tb2RfcmVtb3ZlKHN0cnVjdCBzZnAgKnNmcClcXG4yNjg4OlxcdHtcXG4yNjg5OlxcdFxcdGlmIChzZnAtXFx1MDAzZXNtX21vZF9zdGF0ZSBcXHUwMDNlIFNGUF9NT0RfV0FJVERFVilcXG4yNjkwOlxcdFxcdFxcdHNmcF9tb2R1bGVfcmVtb3ZlKHNmcC1cXHUwMDNlc2ZwX2J1cyk7XFxuMjY5MTpcXHRcXG4yNjkyOlxcdFxcdHNmcF9od21vbl9yZW1vdmUoc2ZwKTtcXG4yNjkzOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyODoxMy40MjcyODkyNTVaIiwiU2VxIjozMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjE5OTYzMDk2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBTRlAgUXVpcmsgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGhlcmUncyBteSBicmVha2Rvd24uIElmIHRoZSBjaGVja3N1bSBmYWlscywgd2hpY2ggaXQgYWxtb3N0IGNlcnRhaW5seSB3aWxsIHdpdGggcmFuZG9tIGRhdGEsIHRoZSBmdW5jdGlvbiBqdXN0IHJldHVybnMgYC1FSU5WQUxgLiBUaGUgYHNmcF9sb29rdXBfcXVpcmtgIGZ1bmN0aW9uLCB0aGUgb25lIHRoZSBwYXRjaCBpcyBtb2RpZnlpbmcsIGlzbid0IGV2ZW4gdG91Y2hlZC4gVGhlIG9ubHkgd2F5IGFyb3VuZCB0aGlzIHdvdWxkIGJlIGlmIHN5emthbGxlciBjb3VsZCBzb21laG93IGNyYWZ0IGEgKnZhbGlkKiBjaGVja3N1bSBmb3IgdGhlIGRhdGEgaXQncyB0aHJvd2luZyBhdCB0aGUgc3lzdGVtLiBCdXQsIGFuZCB0aGlzIGlzIGEgYmlnIFwiYnV0XCIsIHRoZSBJMkMgb3IgUENJIGZ1enplcnMgaW4gc3l6a2FsbGVyIChpZiB0aGV5IGV2ZW4gZXhpc3QpIGRvbid0IGhhdmUgYW55IGNvbmNlcHQgb2YgYW4gU0ZQIEVFUFJPTSBjaGVja3N1bS4gVGhhdCBtYWtlcyBpdCB2aXJ0dWFsbHkgaW1wb3NzaWJsZSBmb3Igc3l6a2FsbGVyIHRvIGFjdHVhbGx5IHJlYWNoIHRoZSBwYXRjaCdzIHRhcmdldCBmdW5jdGlvbiB2aWEgcmFuZG9tIGZ1enppbmcuXG5cbk5vdywgSSBkaWQgY29uc2lkZXIgYW5vdGhlciBhdmVudWU6IFdoYXQgaWYgc3l6a2FsbGVyIGluamVjdGVkIGEgZGV2aWNlIHRyZWUgbm9kZSB3aXRoIGEgbW9jayBJMkMgYWRhcHRlciB0aGF0ICpkb2VzKiByZXR1cm4gYSB2YWxpZCBFRVBST00/IEJ1dCBzeXprYWxsZXIgZG9lc24ndCBoYXZlIGEgc3BlY2lmaWMgbW9jayBmb3IgU0ZQIEVFUFJPTXMuIEFsc28sIHRoZSBwYXRjaCBpdHNlbGYgaXMganVzdCBhZGRpbmcgYSBzdHJpbmcgcHJlZml4IG1hdGNoIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBxdWlya3MsIHdoaWNoIG1ha2VzIGl0cyBpbXBhY3QgcXVpdGUgc21hbGwgaW4gdGhpcyBjb250ZXh0LlxuXG5JcyB0aGUgcGF0Y2ggZnVuY3Rpb25hbGx5IGNvcnJlY3Q/IFllcy4gSXMgaXQgYWN0dWFsbHkgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBvdXIgdGVzdGluZyBzZXR1cD8gTm8sIG5vdCByZWFsaXN0aWNhbGx5LiBJdCByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZTogU0ZQIG1vZHVsZXMgYW5kLCBjcnVjaWFsbHksIEkyQyBjb21tdW5pY2F0aW9uIHdpdGggYSB2YWxpZCBFRVBST00gY2hlY2tzdW0uIEV2ZW4gaWYgd2UgKmNvdWxkKiBzb21laG93IG1ha2UgaXQgcmVhY2hhYmxlLCBhbGwgaXQgZG9lcyBpcyBhIHN0cmluZyBtYXRjaCBmb3IgYSBxdWlyay5cblxuR2l2ZW4gYWxsIG9mIHRoYXQsIEknbSBsZWFuaW5nIHRvd2FyZHMgc2V0dGluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSXQncyBpbmNyZWRpYmx5IGhhcmR3YXJlLXNwZWNpZmljLCBhbmQgZXNzZW50aWFsbHkgdW5yZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gQnV0IGxldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayBpZiB0aGVyZSdzICphbnkqIGV4aXN0aW5nIHNvZnR3YXJlIG1vY2sgZm9yIFNGUCBvdXQgdGhlcmUganVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzczMzYsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNjgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyODoxOS42MjY5MjMzMzhaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4ODMxMjUwNTksIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNmcF9tb2NrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjg6MjIuNTEwMDYwNzQ3WiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzODcyNjE1NjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCBmcmFtZWQgYXMgbXkgaW50ZXJuYWwgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkludGVybmFsIFJldmlldyBvZiBQb3RlbnRpYWwgU2VsZi1UZXN0IExvY2FsZXMqKlxuXG5BbHJpZ2h0LCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIHBvc3NpYmxlIGxvY2F0aW9ucyBvZiBzZWxmLXRlc3RzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gY2hlY2sgd2l0aGluIHRoZSBwcm9qZWN0IHN0cnVjdHVyZSwgc3BlY2lmaWNhbGx5IHRoZSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHNgIGRpcmVjdG9yeSBvciBhbnkgb3RoZXIgc2ltaWxhciBkaXJlY3RvcmllcyB0aGF0IG1pZ2h0IGhvdXNlIHN1Y2ggdGVzdGluZyBpbmZyYXN0cnVjdHVyZS4gSSdsbCBuZWVkIHRvIGNvbmR1Y3QgYSB0aG9yb3VnaCBzZWFyY2ggZm9yIGFueSBmaWxlcyBvciBtb2R1bGVzIHRoYXQgbWlnaHQgY29udGFpbiB0aGUgc3RyaW5ncyBgc2ZmYCBvciBgc2ZwYC4gVGhlc2UgYXJlIHByZXR0eSBzcGVjaWZpYyB0ZXJtcywgc28gYSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHJlbGF0aXZlbHkgZWZmZWN0aXZlLiBJJ20gbG9va2luZyBmb3IgcGF0dGVybnMgaW4gdGhlIHdheSB0aGlzIHN5c3RlbSBpcyBzZXQgdXAuIEtub3dpbmcgd2hlcmUgc2ltaWxhciBmZWF0dXJlcyBhbmQgdGVzdGluZyBwcm90b2NvbHMgYXJlIHN0b3JlZCBpcyB0aGUgZ29hbC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgwMzMsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyODoyNS44OTczMjQ4NzhaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5NTI1MzMyOSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2ZmLHNmcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJ0b29scy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI4OjI2LjE5MjU4ODk1NloiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTE4NTcyMjExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgc3VtbWFyeSwgdGFraW5nIG9uIHRoZSBwZXJzb25hIHlvdSd2ZSByZXF1ZXN0ZWQsIHRhaWxvcmVkIHRvIGFuIGV4cGVydCBsaWtlIHlvdXJzZWxmOlxuXG4qKkNoZWNraW5nIGZvciBgc2ZmLHNmcGAgaW4gYGFyY2gvdW1gKipcblxuUmlnaHQsIGxldCdzIGp1c3QgcXVpY2tseSBydW4gYSBjaGVjay4gSSBuZWVkIHRvIHNlZSBpZiBhbnkgaW5zdGFuY2VzIG9mIGBzZmZgIG9yIGBzZnBgIGFyZSBsdXJraW5nIGFyb3VuZCB3aXRoaW4gYGFyY2gvdW1gLCB0aGUgVXNlci1Nb2RlIExpbnV4IGFyY2hpdGVjdHVyZS4gTXkgaW50dWl0aW9uIHNheXMgaXQncyBwcm9iYWJseSB1bmxpa2VseSwgZ2l2ZW4gdGhlIG5hdHVyZSBvZiBVTUwsIGJ1dCBhIGRvdWJsZS1jaGVjayBpcyBhbHdheXMgcHJ1ZGVudCwgZXNwZWNpYWxseSB3aGVuIGRlYWxpbmcgd2l0aCBzdWNoIGZvdW5kYXRpb25hbCBjb2RlLiBJIGhhdmUgYSBmZWVsaW5nIEkgaGF2ZW4ndCBjb21lIGFjcm9zcyBpdCBteXNlbGYsIGJ1dCBvbmUgY2FuJ3QgYmUgdG9vIGNhcmVmdWwgd2hlbiBtYWludGFpbmluZyBzdWNoIGEgc3lzdGVtLiBCZXN0IHRvIGJlIHN5c3RlbWF0aWMgYW5kIGVuc3VyZSBubyB1bmV4cGVjdGVkIGJlaGF2aW9yIHN1cmZhY2VzIGluIHRoaXMgbmljaGUgaW1wbGVtZW50YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4MjUyLCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjg6MjkuMzExMTY0MTA3WiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTU5MDY3NjQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNmZixzZnBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC91bS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI4OjI5LjQ2NzA3NzA4MVoiLCJTZXEiOjM5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzEwMTc5Njc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFNGUCBRdWlyayBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgaXMgZW50aXJlbHkgaGFyZHdhcmUtZGVwZW5kZW50LiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBxdWlyaywgYFNGUF9RVUlSS19GX1BSRUZJWGAsIGFuZCB0aGVuIHRpZXMgaXQgc3BlY2lmaWNhbGx5IHRvIHR3byBTRlAgbW9kdWxlczogXCJGU1wiIFwiWEdTLVNGUC1PTlQtTUFDSVwiIGFuZCBcIk9FTVwiIFwiWEdTUE9OU1QyMDAxXCIuIFRoaXMgaXMgYWxsIGFib3V0IGhhbmRsaW5nIHNvbWUgaGFyZHdhcmUtc3BlY2lmaWMgYmVoYXZpb3IgZm9yIHRoZXNlIHBhcnRpY3VsYXIgcGh5c2ljYWwgU0ZQIG1vZHVsZXMuIE15IGFuYWx5c2lzIGNvbmZpcm1zIHRoYXQgcmVhY2hpbmcgdGhpcyBjb2RlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgaXMgdmlydHVhbGx5IGltcG9zc2libGUgd2l0aG91dCBhIHZlcnkgc3BlY2lmaWMgbW9jay11cCB0aGF0IGNhbiBlbXVsYXRlIHRoZSBleGFjdCB2ZW5kb3Igc3RyaW5ncyBhbmQgcGFzcyB0aGUgRUVQUk9NIGNoZWNrc3VtIHZhbGlkYXRpb24uIFRoYXQgdmFsaWRhdGlvbiBpcyBrZXkgaGVyZTsgaXQgY29uZmlybXMgdGhlIGlkZW50aXR5IG9mIHRoZSBoYXJkd2FyZS4gR2l2ZW4gdGhhdCBjb25zdHJhaW50LCBmdXp6aW5nIHRoaXMgY29kZSBpcyBhIHdhc3RlIG9mIHJlc291cmNlcy4gV2UncmUgdGFsa2luZyBhYm91dCBhIHZlcnkgdGlnaHRseSBjb250cm9sbGVkIGhhcmR3YXJlIGludGVyYWN0aW9uIHRoYXQgY2FuJ3QgYmUgZWFzaWx5IHJlcHJvZHVjZWQgaW4gYW55IGdlbmVyYWwtcHVycG9zZSB2aXJ0dWFsIGVudmlyb25tZW50LiBJdCB3b3VsZCByZXF1aXJlIGJ1aWxkaW5nIGEgcHVycG9zZS1idWlsdCBoYXJkd2FyZSBtaW1pYywgYW5kIGF0IHRoYXQgcG9pbnQgd2UncmUgdGFsa2luZyBhYm91dCBhIHRlc3QgdGhhdCdzIHNvIHNwZWNpZmljLCBpdCdzIG5vdCB3b3J0aCB0aGUgdGltZSBvZiBhIGdlbmVyYWxpemVkIGZ1enouXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NDgzLCJPdXRwdXRUb2tlbnMiOjg2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTkyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI4OjM0Ljc3NzI1ODgzOFoiLCJTZXEiOjQwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNjg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgaGFyZHdhcmUtc3BlY2lmaWMgcXVpcmtzIGZvciBwaHlzaWNhbCBTRlAgbW9kdWxlcy4gVGhlIGNvZGUgcmVsaWVzIG9uIHJlYWRpbmcgdGhlIG1vZHVsZSdzIEVFUFJPTSBvdmVyIEkyQyBhbmQgdmFsaWRhdGluZyBpdHMgY2hlY2tzdW0sIHdoaWNoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS9HQ0Ugd2l0aG91dCBhIGRlZGljYXRlZCBoYXJkd2FyZSBtb2NrLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBoYXJkd2FyZS1zcGVjaWZpYyBxdWlya3MgZm9yIHBoeXNpY2FsIFNGUCBtb2R1bGVzLiBUaGUgY29kZSByZWxpZXMgb24gcmVhZGluZyB0aGUgbW9kdWxlJ3MgRUVQUk9NIG92ZXIgSTJDIGFuZCB2YWxpZGF0aW5nIGl0cyBjaGVja3N1bSwgd2hpY2ggaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VL0dDRSB3aXRob3V0IGEgZGVkaWNhdGVkIGhhcmR3YXJlIG1vY2suXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowdjjxh[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-05 19:11:23 +0000 UTC FinishedAt: 2026-07-05 19:28:36 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgaGFyZHdhcmUtc3BlY2lmaWMgcXVpcmtzIGZvciBwaHlzaWNhbCBTRlAgbW9kdWxlcy4gVGhlIGNvZGUgcmVsaWVzIG9uIHJlYWRpbmcgdGhlIG1vZHVsZSYjMzk7cyBFRVBST00gb3ZlciBJMkMgYW5kIHZhbGlkYXRpbmcgaXRzIGNoZWNrc3VtLCB3aGljaCBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUvR0NFIHdpdGhvdXQgYSBkZWRpY2F0ZWQgaGFyZHdhcmUgbW9jay4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwMGUzNzc2ZDc2MjU1M2I1OTJmNTExMWQ2ZjI4YTcxMzg1NzgxNGM3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgNSAxOToyNzowMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvc2ZwLmMgYi9kcml2ZXJzL25ldC9waHkvc2ZwLmNcbmluZGV4IGY1MjAyMDY3MzRkYWFhLi5lYWUwNjk5MWNjNGQ1ZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvcGh5L3NmcC5jXG5AQCAtNTE2LDYgJiM0Mzs1MTYsMTMgQEAgc3RhdGljIHZvaWQgc2ZwX3F1aXJrX3VibnRfdWZfaW5zdGFudChjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQsXG4gXHR7IC52ZW5kb3IgPSBfdiwgLnBhcnQgPSBfcCwgLnN1cHBvcnQgPSBfcywgLmZpeHVwID0gX2YsIH1cbiAjZGVmaW5lIFNGUF9RVUlSS19TKF92LCBfcCwgX3MpIFNGUF9RVUlSSyhfdiwgX3AsIF9zLCBOVUxMKVxuICNkZWZpbmUgU0ZQX1FVSVJLX0YoX3YsIF9wLCBfZikgU0ZQX1FVSVJLKF92LCBfcCwgTlVMTCwgX2YpXG4mIzQzOy8qIExpa2UgU0ZQX1FVSVJLX0YsIGJ1dCBtYXRjaGVzIGFzIGEgcHJlZml4LiBVc2UgZm9yIGNsb25lIG1vZHVsZXNcbiYjNDM7ICogdGhhdCBmaWxsIEVFUFJPTSB0cmFpbGluZyBieXRlcyB3aXRoIGdhcmJhZ2UgaW5zdGVhZCBvZiB0aGVcbiYjNDM7ICogU0ZGLTg0NzItbWFuZGF0ZWQgc3BhY2UgcGFkZGluZywgc28gc2ZwX3N0cmxlbiBjYW4mIzM5O3QgdHJpbSB0aGVcbiYjNDM7ICogZmllbGQgZG93biB0byB0aGUgbGVnaXRpbWF0ZSBsZW5ndGguXG4mIzQzOyAqL1xuJiM0MzsjZGVmaW5lIFNGUF9RVUlSS19GX1BSRUZJWChfdiwgX3AsIF9mKSBcXFxuJiM0MztcdHsgLnZlbmRvciA9IF92LCAucGFydCA9IF9wLCAuc3VwcG9ydCA9IE5VTEwsIC5maXh1cCA9IF9mLCAucHJlZml4X21hdGNoID0gdHJ1ZSB9XG4gXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0ge1xuIFx0Ly8gQWxjYXRlbCBMdWNlbnQgRy0wMTBTLVAgY2FuIG9wZXJhdGUgYXQgMjUwMGJhc2UtWCwgYnV0IGluY29ycmVjdGx5XG5AQCAtNTQ4LDYgJiM0Mzs1NTUsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0ge1xuIFx0U0ZQX1FVSVJLKFwmIzM0O0ZTXCYjMzQ7LCBcJiMzNDtHUE9OLU9OVS0zNC0yMEJJXCYjMzQ7LCBzZnBfcXVpcmtfMjUwMGJhc2V4LFxuIFx0XHQgIHNmcF9maXh1cF9pZ25vcmVfdHhfZmF1bHQpLFxuIFxuJiM0MztcdC8vIEZpYmVyc3RvcmUgWEdTLVNGUC1PTlQtTUFDSSBpcyBhIE1BQy1tb2RlIFhHUy1QT04gT05UIHN0aWNrIHdpdGhcbiYjNDM7XHQvLyBPTlQtY2xhc3Mgc2VyaWFsLXBhc3N0aHJvdWdoIFRYX0ZBVUxUL0xPUyB3aXJpbmcgYW5kIHNsb3cgc3RhcnR1cDtcbiYjNDM7XHQvLyBtYXNrIGJvdGggc2lnbmFscyBhbmQgZXh0ZW5kIFRfU1RBUlRfVVAgdmlhIHRoZSBwb3Ryb24gZml4dXAuIFRoZVxuJiM0MztcdC8vIEVFUFJPTSB2ZW5kb3IgUE4gZmllbGQgaXMgbm90IHNwYWNlLXBhZGRlZCBwYXN0IHRoZSBsZWdpdGltYXRlXG4mIzQzO1x0Ly8gc3RyaW5nLCBzbyBtYXRjaCBpdCBhcyBhIHByZWZpeC5cbiYjNDM7XHRTRlBfUVVJUktfRl9QUkVGSVgoXCYjMzQ7RlNcJiMzNDssIFwmIzM0O1hHUy1TRlAtT05ULU1BQ0lcJiMzNDssIHNmcF9maXh1cF9wb3Ryb24pLFxuJiM0MztcbiBcdFNGUF9RVUlSS19GKFwmIzM0O0hBTE55XCYjMzQ7LCBcJiMzNDtITC1HU0ZQXCYjMzQ7LCBzZnBfZml4dXBfaGFsbnlfZ3NmcCksXG4gXG4gXHRTRlBfUVVJUktfRihcJiMzNDtILUNPTVwmIzM0OywgXCYjMzQ7U1BQNDI1SC1HQUI0XCYjMzQ7LCBzZnBfZml4dXBfcG90cm9uKSxcbkBAIC02MDUsNiAmIzQzOzYxOSwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayBzZnBfcXVpcmtzW10gPSB7XG4gXHRTRlBfUVVJUktfUyhcJiMzNDtPRU1cJiMzNDssIFwmIzM0O1NGUC0yLjVHLUxIMjAtQVwmIzM0Oywgc2ZwX3F1aXJrXzI1MDBiYXNleCksXG4gXHRTRlBfUVVJUktfRihcJiMzNDtPRU1cJiMzNDssIFwmIzM0O1JUU0ZQLTEwXCYjMzQ7LCBzZnBfZml4dXBfcm9sbGJhbGxfY2MpLFxuIFx0U0ZQX1FVSVJLX0YoXCYjMzQ7T0VNXCYjMzQ7LCBcJiMzNDtSVFNGUC0xMEdcJiMzNDssIHNmcF9maXh1cF9yb2xsYmFsbF9jYyksXG4mIzQzO1xuJiM0MztcdC8vIE9FTSBYR1NQT05TVDIwMDEgaXMgYW4gWEdTLVBPTiBPTlQgc3RpY2sgd2l0aCBicm9rZW4gVFhfRkFVTFQgYW5kXG4mIzQzO1x0Ly8gTE9TIGluZGljYXRvcnMgYW5kIHNsb3cgc3RhcnR1cCwganVzdCBsaWtlIHBvdHJvbi4gVGhlIEVFUFJPTVxuJiM0MztcdC8vIHZlbmRvciBQTiBmaWVsZCBpcyBmaWxsZWQgd2l0aCBub24tcHJpbnRhYmxlIGdhcmJhZ2UgcGFzdCB0aGVcbiYjNDM7XHQvLyBsZWdpdGltYXRlIHN0cmluZyBpbnN0ZWFkIG9mIHNwYWNlIHBhZGRpbmcsIHNvIG1hdGNoIGl0IGFzIGFcbiYjNDM7XHQvLyBwcmVmaXguXG4mIzQzO1x0U0ZQX1FVSVJLX0ZfUFJFRklYKFwmIzM0O09FTVwmIzM0OywgXCYjMzQ7WEdTUE9OU1QyMDAxXCYjMzQ7LCBzZnBfZml4dXBfcG90cm9uKSxcbiYjNDM7XG4gXHRTRlBfUVVJUktfRihcJiMzNDtUdXJyaXNcJiMzNDssIFwmIzM0O1JUU0ZQLTIuNUdcJiMzNDssIHNmcF9maXh1cF9yb2xsYmFsbCksXG4gXHRTRlBfUVVJUktfRihcJiMzNDtUdXJyaXNcJiMzNDssIFwmIzM0O1JUU0ZQLTEwXCYjMzQ7LCBzZnBfZml4dXBfcm9sbGJhbGwpLFxuIFx0U0ZQX1FVSVJLX0YoXCYjMzQ7VHVycmlzXCYjMzQ7LCBcJiMzNDtSVFNGUC0xMEdcJiMzNDssIHNmcF9maXh1cF9yb2xsYmFsbCksXG5AQCAtNjI2LDEzICYjNDM7NjQ4LDE2IEBAIHN0YXRpYyBzaXplX3Qgc2ZwX3N0cmxlbihjb25zdCBjaGFyICpzdHIsIHNpemVfdCBtYXhsZW4pXG4gXHRyZXR1cm4gc2l6ZTtcbiB9XG4gXG4tc3RhdGljIGJvb2wgc2ZwX21hdGNoKGNvbnN0IGNoYXIgKnFzLCBjb25zdCBjaGFyICpzdHIsIHNpemVfdCBsZW4pXG4mIzQzO3N0YXRpYyBib29sIHNmcF9tYXRjaChjb25zdCBjaGFyICpxcywgY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVuLCBib29sIHByZWZpeClcbiB7XG4mIzQzO1x0c2l6ZV90IHFzX2xlbjtcbiYjNDM7XG4gXHRpZiAoIXFzKVxuIFx0XHRyZXR1cm4gdHJ1ZTtcbi1cdGlmIChzdHJsZW4ocXMpICE9IGxlbilcbiYjNDM7XHRxc19sZW4gPSBzdHJsZW4ocXMpO1xuJiM0MztcdGlmIChwcmVmaXggPyBxc19sZW4gXHUwMDNlIGxlbiA6IHFzX2xlbiAhPSBsZW4pXG4gXHRcdHJldHVybiBmYWxzZTtcbi1cdHJldHVybiAhc3RybmNtcChxcywgc3RyLCBsZW4pO1xuJiM0MztcdHJldHVybiAhc3RybmNtcChxcywgc3RyLCBxc19sZW4pO1xuIH1cbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpXG5AQCAtNjQ1LDggJiM0Mzs2NzAsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgKnNmcF9sb29rdXBfcXVpcmsoY29uc3Qgc3RydWN0IHNmcF9lZXByb21faWQgKmlkKVxuIFx0cHMgPSBzZnBfc3RybGVuKGlkLVx1MDAzZWJhc2UudmVuZG9yX3BuLCBBUlJBWV9TSVpFKGlkLVx1MDAzZWJhc2UudmVuZG9yX3BuKSk7XG4gXG4gXHRmb3IgKGkgPSAwLCBxID0gc2ZwX3F1aXJrczsgaSBcdTAwM2MgQVJSQVlfU0laRShzZnBfcXVpcmtzKTsgaSYjNDM7JiM0MzssIHEmIzQzOyYjNDM7KVxuLVx0XHRpZiAoc2ZwX21hdGNoKHEtXHUwMDNldmVuZG9yLCBpZC1cdTAwM2ViYXNlLnZlbmRvcl9uYW1lLCB2cykgXHUwMDI2XHUwMDI2XG4tXHRcdCAgICBzZnBfbWF0Y2gocS1cdTAwM2VwYXJ0LCBpZC1cdTAwM2ViYXNlLnZlbmRvcl9wbiwgcHMpKVxuJiM0MztcdFx0aWYgKHNmcF9tYXRjaChxLVx1MDAzZXZlbmRvciwgaWQtXHUwMDNlYmFzZS52ZW5kb3JfbmFtZSwgdnMsXG4mIzQzO1x0XHRcdCAgICAgIHEtXHUwMDNlcHJlZml4X21hdGNoKSBcdTAwMjZcdTAwMjZcbiYjNDM7XHRcdCAgICBzZnBfbWF0Y2gocS1cdTAwM2VwYXJ0LCBpZC1cdTAwM2ViYXNlLnZlbmRvcl9wbiwgcHMsXG4mIzQzO1x0XHRcdCAgICAgIHEtXHUwMDNlcHJlZml4X21hdGNoKSlcbiBcdFx0XHRyZXR1cm4gcTtcbiBcbiBcdHJldHVybiBOVUxMO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuaCBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuaFxuaW5kZXggODc5ZGZmN2FmZTZhNDEuLjg2N2U0NWVmYmYzZjFlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvcGh5L3NmcC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9waHkvc2ZwLmhcbkBAIC0xMiw2ICYjNDM7MTIsNyBAQCBzdHJ1Y3Qgc2ZwX3F1aXJrIHtcbiBcdHZvaWQgKCpzdXBwb3J0KShjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQsXG4gXHRcdFx0c3RydWN0IHNmcF9tb2R1bGVfY2FwcyAqY2Fwcyk7XG4gXHR2b2lkICgqZml4dXApKHN0cnVjdCBzZnAgKnNmcCk7XG4mIzQzO1x0Ym9vbCBwcmVmaXhfbWF0Y2g7XG4gfTtcbiBcbiBzdHJ1Y3Qgc2ZwX3NvY2tldF9vcHMge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgaGFyZHdhcmUtc3BlY2lmaWMgcXVpcmtzIGZvciBwaHlzaWNhbCBTRlAgbW9kdWxlcy4gVGhlIGNvZGUgcmVsaWVzIG9uIHJlYWRpbmcgdGhlIG1vZHVsZSYjMzk7cyBFRVBST00gb3ZlciBJMkMgYW5kIHZhbGlkYXRpbmcgaXRzIGNoZWNrc3VtLCB3aGljaCBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUvR0NFIHdpdGhvdXQgYSBkZWRpY2F0ZWQgaGFyZHdhcmUgbW9jay4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDAwZTM3NzZkNzYyNTUzYjU5MmY1MTExZDZmMjhhNzEzODU3ODE0YzcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1bCA1IDE5OjI3OjAzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5jIGIvZHJpdmVycy9uZXQvcGh5L3NmcC5jCmluZGV4IGY1MjAyMDY3MzRkYWFhLi5lYWUwNjk5MWNjNGQ1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3NmcC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuYwpAQCAtNTE2LDYgJiM0Mzs1MTYsMTMgQEAgc3RhdGljIHZvaWQgc2ZwX3F1aXJrX3VibnRfdWZfaW5zdGFudChjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQsCiAJeyAudmVuZG9yID0gX3YsIC5wYXJ0ID0gX3AsIC5zdXBwb3J0ID0gX3MsIC5maXh1cCA9IF9mLCB9CiAjZGVmaW5lIFNGUF9RVUlSS19TKF92LCBfcCwgX3MpIFNGUF9RVUlSSyhfdiwgX3AsIF9zLCBOVUxMKQogI2RlZmluZSBTRlBfUVVJUktfRihfdiwgX3AsIF9mKSBTRlBfUVVJUksoX3YsIF9wLCBOVUxMLCBfZikKJiM0MzsvKiBMaWtlIFNGUF9RVUlSS19GLCBidXQgbWF0Y2hlcyBhcyBhIHByZWZpeC4gVXNlIGZvciBjbG9uZSBtb2R1bGVzCiYjNDM7ICogdGhhdCBmaWxsIEVFUFJPTSB0cmFpbGluZyBieXRlcyB3aXRoIGdhcmJhZ2UgaW5zdGVhZCBvZiB0aGUKJiM0MzsgKiBTRkYtODQ3Mi1tYW5kYXRlZCBzcGFjZSBwYWRkaW5nLCBzbyBzZnBfc3RybGVuIGNhbiYjMzk7dCB0cmltIHRoZQomIzQzOyAqIGZpZWxkIGRvd24gdG8gdGhlIGxlZ2l0aW1hdGUgbGVuZ3RoLgomIzQzOyAqLwomIzQzOyNkZWZpbmUgU0ZQX1FVSVJLX0ZfUFJFRklYKF92LCBfcCwgX2YpIFwKJiM0MzsJeyAudmVuZG9yID0gX3YsIC5wYXJ0ID0gX3AsIC5zdXBwb3J0ID0gTlVMTCwgLmZpeHVwID0gX2YsIC5wcmVmaXhfbWF0Y2ggPSB0cnVlIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0gewogCS8vIEFsY2F0ZWwgTHVjZW50IEctMDEwUy1QIGNhbiBvcGVyYXRlIGF0IDI1MDBiYXNlLVgsIGJ1dCBpbmNvcnJlY3RseQpAQCAtNTQ4LDYgJiM0Mzs1NTUsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0gewogCVNGUF9RVUlSSygmIzM0O0ZTJiMzNDssICYjMzQ7R1BPTi1PTlUtMzQtMjBCSSYjMzQ7LCBzZnBfcXVpcmtfMjUwMGJhc2V4LAogCQkgIHNmcF9maXh1cF9pZ25vcmVfdHhfZmF1bHQpLAogCiYjNDM7CS8vIEZpYmVyc3RvcmUgWEdTLVNGUC1PTlQtTUFDSSBpcyBhIE1BQy1tb2RlIFhHUy1QT04gT05UIHN0aWNrIHdpdGgKJiM0MzsJLy8gT05ULWNsYXNzIHNlcmlhbC1wYXNzdGhyb3VnaCBUWF9GQVVMVC9MT1Mgd2lyaW5nIGFuZCBzbG93IHN0YXJ0dXA7CiYjNDM7CS8vIG1hc2sgYm90aCBzaWduYWxzIGFuZCBleHRlbmQgVF9TVEFSVF9VUCB2aWEgdGhlIHBvdHJvbiBmaXh1cC4gVGhlCiYjNDM7CS8vIEVFUFJPTSB2ZW5kb3IgUE4gZmllbGQgaXMgbm90IHNwYWNlLXBhZGRlZCBwYXN0IHRoZSBsZWdpdGltYXRlCiYjNDM7CS8vIHN0cmluZywgc28gbWF0Y2ggaXQgYXMgYSBwcmVmaXguCiYjNDM7CVNGUF9RVUlSS19GX1BSRUZJWCgmIzM0O0ZTJiMzNDssICYjMzQ7WEdTLVNGUC1PTlQtTUFDSSYjMzQ7LCBzZnBfZml4dXBfcG90cm9uKSwKJiM0MzsKIAlTRlBfUVVJUktfRigmIzM0O0hBTE55JiMzNDssICYjMzQ7SEwtR1NGUCYjMzQ7LCBzZnBfZml4dXBfaGFsbnlfZ3NmcCksCiAKIAlTRlBfUVVJUktfRigmIzM0O0gtQ09NJiMzNDssICYjMzQ7U1BQNDI1SC1HQUI0JiMzNDssIHNmcF9maXh1cF9wb3Ryb24pLApAQCAtNjA1LDYgJiM0Mzs2MTksMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0gewogCVNGUF9RVUlSS19TKCYjMzQ7T0VNJiMzNDssICYjMzQ7U0ZQLTIuNUctTEgyMC1BJiMzNDssIHNmcF9xdWlya18yNTAwYmFzZXgpLAogCVNGUF9RVUlSS19GKCYjMzQ7T0VNJiMzNDssICYjMzQ7UlRTRlAtMTAmIzM0Oywgc2ZwX2ZpeHVwX3JvbGxiYWxsX2NjKSwKIAlTRlBfUVVJUktfRigmIzM0O09FTSYjMzQ7LCAmIzM0O1JUU0ZQLTEwRyYjMzQ7LCBzZnBfZml4dXBfcm9sbGJhbGxfY2MpLAomIzQzOwomIzQzOwkvLyBPRU0gWEdTUE9OU1QyMDAxIGlzIGFuIFhHUy1QT04gT05UIHN0aWNrIHdpdGggYnJva2VuIFRYX0ZBVUxUIGFuZAomIzQzOwkvLyBMT1MgaW5kaWNhdG9ycyBhbmQgc2xvdyBzdGFydHVwLCBqdXN0IGxpa2UgcG90cm9uLiBUaGUgRUVQUk9NCiYjNDM7CS8vIHZlbmRvciBQTiBmaWVsZCBpcyBmaWxsZWQgd2l0aCBub24tcHJpbnRhYmxlIGdhcmJhZ2UgcGFzdCB0aGUKJiM0MzsJLy8gbGVnaXRpbWF0ZSBzdHJpbmcgaW5zdGVhZCBvZiBzcGFjZSBwYWRkaW5nLCBzbyBtYXRjaCBpdCBhcyBhCiYjNDM7CS8vIHByZWZpeC4KJiM0MzsJU0ZQX1FVSVJLX0ZfUFJFRklYKCYjMzQ7T0VNJiMzNDssICYjMzQ7WEdTUE9OU1QyMDAxJiMzNDssIHNmcF9maXh1cF9wb3Ryb24pLAomIzQzOwogCVNGUF9RVUlSS19GKCYjMzQ7VHVycmlzJiMzNDssICYjMzQ7UlRTRlAtMi41RyYjMzQ7LCBzZnBfZml4dXBfcm9sbGJhbGwpLAogCVNGUF9RVUlSS19GKCYjMzQ7VHVycmlzJiMzNDssICYjMzQ7UlRTRlAtMTAmIzM0Oywgc2ZwX2ZpeHVwX3JvbGxiYWxsKSwKIAlTRlBfUVVJUktfRigmIzM0O1R1cnJpcyYjMzQ7LCAmIzM0O1JUU0ZQLTEwRyYjMzQ7LCBzZnBfZml4dXBfcm9sbGJhbGwpLApAQCAtNjI2LDEzICYjNDM7NjQ4LDE2IEBAIHN0YXRpYyBzaXplX3Qgc2ZwX3N0cmxlbihjb25zdCBjaGFyICpzdHIsIHNpemVfdCBtYXhsZW4pCiAJcmV0dXJuIHNpemU7CiB9CiAKLXN0YXRpYyBib29sIHNmcF9tYXRjaChjb25zdCBjaGFyICpxcywgY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVuKQomIzQzO3N0YXRpYyBib29sIHNmcF9tYXRjaChjb25zdCBjaGFyICpxcywgY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVuLCBib29sIHByZWZpeCkKIHsKJiM0MzsJc2l6ZV90IHFzX2xlbjsKJiM0MzsKIAlpZiAoIXFzKQogCQlyZXR1cm4gdHJ1ZTsKLQlpZiAoc3RybGVuKHFzKSAhPSBsZW4pCiYjNDM7CXFzX2xlbiA9IHN0cmxlbihxcyk7CiYjNDM7CWlmIChwcmVmaXggPyBxc19sZW4gJmd0OyBsZW4gOiBxc19sZW4gIT0gbGVuKQogCQlyZXR1cm4gZmFsc2U7Ci0JcmV0dXJuICFzdHJuY21wKHFzLCBzdHIsIGxlbik7CiYjNDM7CXJldHVybiAhc3RybmNtcChxcywgc3RyLCBxc19sZW4pOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpCkBAIC02NDUsOCAmIzQzOzY3MCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpCiAJcHMgPSBzZnBfc3RybGVuKGlkLSZndDtiYXNlLnZlbmRvcl9wbiwgQVJSQVlfU0laRShpZC0mZ3Q7YmFzZS52ZW5kb3JfcG4pKTsKIAogCWZvciAoaSA9IDAsIHEgPSBzZnBfcXVpcmtzOyBpICZsdDsgQVJSQVlfU0laRShzZnBfcXVpcmtzKTsgaSYjNDM7JiM0MzssIHEmIzQzOyYjNDM7KQotCQlpZiAoc2ZwX21hdGNoKHEtJmd0O3ZlbmRvciwgaWQtJmd0O2Jhc2UudmVuZG9yX25hbWUsIHZzKSAmYW1wOyZhbXA7Ci0JCSAgICBzZnBfbWF0Y2gocS0mZ3Q7cGFydCwgaWQtJmd0O2Jhc2UudmVuZG9yX3BuLCBwcykpCiYjNDM7CQlpZiAoc2ZwX21hdGNoKHEtJmd0O3ZlbmRvciwgaWQtJmd0O2Jhc2UudmVuZG9yX25hbWUsIHZzLAomIzQzOwkJCSAgICAgIHEtJmd0O3ByZWZpeF9tYXRjaCkgJmFtcDsmYW1wOwomIzQzOwkJICAgIHNmcF9tYXRjaChxLSZndDtwYXJ0LCBpZC0mZ3Q7YmFzZS52ZW5kb3JfcG4sIHBzLAomIzQzOwkJCSAgICAgIHEtJmd0O3ByZWZpeF9tYXRjaCkpCiAJCQlyZXR1cm4gcTsKIAogCXJldHVybiBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5oIGIvZHJpdmVycy9uZXQvcGh5L3NmcC5oCmluZGV4IDg3OWRmZjdhZmU2YTQxLi44NjdlNDVlZmJmM2YxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3NmcC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuaApAQCAtMTIsNiAmIzQzOzEyLDcgQEAgc3RydWN0IHNmcF9xdWlyayB7CiAJdm9pZCAoKnN1cHBvcnQpKGNvbnN0IHN0cnVjdCBzZnBfZWVwcm9tX2lkICppZCwKIAkJCXN0cnVjdCBzZnBfbW9kdWxlX2NhcHMgKmNhcHMpOwogCXZvaWQgKCpmaXh1cCkoc3RydWN0IHNmcCAqc2ZwKTsKJiM0MzsJYm9vbCBwcmVmaXhfbWF0Y2g7CiB9OwogCiBzdHJ1Y3Qgc2ZwX3NvY2tldF9vcHMgewo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzY2CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMjAyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkV2YWx1YXRpbmcgdGhlIFNGUCBNb2R1bGUgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9waHkvc2ZwLmNgIGFuZCBgZHJpdmVycy9uZXQvcGh5L3NmcC5oYC4gSXQgc2VlbXMgdGhleSYjMzk7cmUgaW50cm9kdWNpbmcgYSBuZXcgcXVpcmssIGBTRlBfUVVJUktfRl9QUkVGSVhgLCB3aGljaCBpcyBhbGwgYWJvdXQgcHJlZml4IG1hdGNoaW5nIGZvciB0aGVzZSBTRlAgbW9kdWxlcy4gQmFzaWNhbGx5LCBpdOKAmXMgYWRkaW5nIG1vcmUgZmxleGliaWxpdHkgdG8gaG93IHdlIGlkZW50aWZ5IGFuZCBoYW5kbGUgdGhlc2UgdHJhbnNjZWl2ZXJzLiBUaGUgY2hhbmdlcyBtb2RpZnkgYHNmcF9tYXRjaGAgdG8gaW5jb3Jwb3JhdGUgYSBgYm9vbCBwcmVmaXhgIGFyZ3VtZW50IGFuZCBhZGFwdHMgYHNmcF9sb29rdXBfcXVpcmtgIHRvIGxldmVyYWdlIHRoaXMgbmV3IHBhcmFtZXRlci4gVGhleSYjMzk7dmUgYWxzbyBhZGRlZCBhIGNvdXBsZSBvZiBuZXcgcXVpcmtzIHV0aWxpemluZyB0aGlzIG1hY3JvLgoKRnVuY3Rpb25hbGx5LCBJIHRoaW5rIGl04oCZcyBzb3VuZC4gSXQgZGVmaW5pdGVseSBjaGFuZ2VzIHRoZSBtYXRjaGluZyBsb2dpYyBhbmQgZXhwYW5kcyB0aGUgcXVpcmsgZGF0YWJhc2UsIHdoaWNoIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIEJ1dCwgdGhlIHF1ZXN0aW9uIG9mIHJlYWNoYWJpbGl0eSBjb21lcyB0byBtaW5kLiBUaGVzZSBhcmUsIGFmdGVyIGFsbCwgcGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlcy4gSSBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhpcyBhZmZlY3RzIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiBIb3cgYXJlIHdlIGdvaW5nIHRvIHRlc3QgdGhpcz8gQ2FuIHdlIGV2ZW4gZWZmZWN0aXZlbHkgZW11bGF0ZSBTRlAgbW9kdWxlcyBpbiBRRU1VIHRvIGVuc3VyZSB0aGUgYWRkZWQgcXVpcmtzIGJlaGF2ZSBhcyBpbnRlbmRlZD8gSSYjMzk7bGwgbmVlZCB0byBjaGVjayBmb3IgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiBvcHRpb25zIGF2YWlsYWJsZSBmb3IgU0ZQIG1vZHVsZXMgd2l0aGluIHRoZSBrZXJuZWwgdG8gZGV0ZXJtaW5lIHRoZSBmZWFzaWJpbGl0eSBvZiBjb21wbGV0ZSB0ZXN0aW5nLiBJJiMzOTtsbCBzZWFyY2ggdGhlIGtlcm5lbCBmb3IgYHNmcGAgdG8gc2VlIHdoYXQgY29tZXMgdXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2ZwX21hdGNoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L3NmcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9zZnAuYz02Mzc9c3RhdGljIHNpemVfdCBzZnBfc3RybGVuKGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IG1heGxlbilcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtNjUwLVxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjY1MTpzdGF0aWMgYm9vbCBzZnBfbWF0Y2goY29uc3QgY2hhciAqcXMsIGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IGxlbiwgYm9vbCBwcmVmaXgpXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtNjUyLXtcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM9NjYzPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2ZwX3F1aXJrICpzZnBfbG9va3VwX3F1aXJrKGNvbnN0IHN0cnVjdCBzZnBfZWVwcm9tX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtNjcyLVx0Zm9yIChpID0gMCwgcSA9IHNmcF9xdWlya3M7IGkgXHUwMDNjIEFSUkFZX1NJWkUoc2ZwX3F1aXJrcyk7IGkmIzQzOyYjNDM7LCBxJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYzo2NzM6XHRcdGlmIChzZnBfbWF0Y2gocS1cdTAwM2V2ZW5kb3IsIGlkLVx1MDAzZWJhc2UudmVuZG9yX25hbWUsIHZzLFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTY3NC1cdFx0XHQgICAgICBxLVx1MDAzZXByZWZpeF9tYXRjaCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9waHkvc2ZwLmM6Njc1Olx0XHQgICAgc2ZwX21hdGNoKHEtXHUwMDNlcGFydCwgaWQtXHUwMDNlYmFzZS52ZW5kb3JfcG4sIHBzLFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTY3Ni1cdFx0XHQgICAgICBxLVx1MDAzZXByZWZpeF9tYXRjaCkpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDIzMwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBTRlAgRHJpdmVyOiBJbml0aWFsIEFzc2Vzc21lbnQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHNmcC5jYCBkcml2ZXIsIHdoaWNoIGhhbmRsZXMgdGhvc2UgU0ZQIGNhZ2VzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7Q2FuIHdlIGZ1enogdGhpcyB0aGluZz8mIzM0OyBJdCYjMzk7cyBjbGVhciBmcm9tIHRoZSBjb2RlIHRoYXQgaXQmIzM5O3MgcmVseWluZyBvbiBJMkMgdG8gcmVhZCBFRVBST00gZGF0YS4gVGhhdCBvcGVucyB1cCBzb21lIGludGVyZXN0aW5nIHBvc3NpYmlsaXRpZXMuCgpUaGUgZmlyc3QgcXVlc3Rpb24gaXMgKmhvdyouIElmIHdlJiMzOTt2ZSBnb3QgYW4gSTJDIGRldmljZSBlbXVsYXRpb24gc2V0dXAsIG9yIGJldHRlciB5ZXQsIGlmIHN5emthbGxlciBjYW4gaW5qZWN0IEkyQyB0cmFmZmljIGRpcmVjdGx5LCB0aGVuIG1heWJlIHdlIGNhbi4gQnV0LCBJIG5lZWQgdG8gcmVtaW5kIG15c2VsZiBob3cgc3l6a2FsbGVyIGhhbmRsZXMgSTJDLiBJIHZhZ3VlbHkgcmVjYWxsIGl0IGhhcyBzb21lIEkyQyBmdXp6aW5nIGNhcGFiaWxpdGllcyB1c2luZyBgL2Rldi9pMmMtKmAgZGV2aWNlcy4gSG93ZXZlciwgSSYjMzk7bSBwcmV0dHkgc3VyZSB0aGF0JiMzOTtzIG1haW5seSBmb3IgZnV6emluZyB1c2VyLXNwYWNlIGFwcGxpY2F0aW9ucyBpbnRlcmFjdGluZyB3aXRoIEkyQyBkZXZpY2VzLCBvciBwb3NzaWJseSBmb3IgaW5qZWN0aW5nIEkyQyAqcmVzcG9uc2VzKiB0byBhIGRyaXZlci4KCldhaXQgYSBzZWNvbmTigKYgZG9lcyB0aGUgYHNmcGAgZHJpdmVyIGFjdHVhbGx5IHJlZ2lzdGVyIGFzIGFuIEkyQyBjbGllbnQ/IFRoYXQmIzM5O3MgdGhlIGNydWNpYWwgcXVlc3Rpb24uIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGUgYHNmcGAgZHJpdmVyIGdldHMgcHJvYmVkIGFuZCBpbnRlcmFjdHMgd2l0aCB0aGUgSTJDIGJ1cy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCBpdCBpcyBhbiBJMkMgY2xpZW50IGFuZCBob3cgaXQgaXMgYmVpbmcgdXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBTRlAgbW9kdWxlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9pMmNfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L3NmcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjkzCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byBgc2ZwLmNgIEluaXRpYWxpemF0aW9uKioKCk9rYXksIHNvIEkgd2FudCB0byBnZXQgYSBoYW5kbGUgb24gaG93IGBzZnAuY2AgaXMgaW5pdGlhbGl6ZWQuIEkmIzM5O20gc3BlY2lmaWNhbGx5IGludGVyZXN0ZWQgaW4gdGhlIHN0YXJ0dXAgc2VxdWVuY2Ug4oCTIHdoYXQmIzM5O3MgaGFwcGVuaW5nIGZpcnN0IGFuZCB3aGF0IGRlcGVuZGVuY2llcyBhcmUgaW4gcGxheS4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBkYXRhIHN0cnVjdHVyZXMgaXQgdXNlcywgYW5kIGhvdyB0aGV5IGdldCBwb3B1bGF0ZWQuIEFyZSB3ZSB0YWxraW5nIGFib3V0IHN0YXRpYyBpbml0aWFsaXphdGlvbiwgb3IgaXMgdGhlcmUgYSBtb3JlIGR5bmFtaWMgYXBwcm9hY2ggaGFwcGVuaW5nPyBJJiMzOTtsbCBwcm9iYWJseSBzdGFydCBieSBsb29raW5nIGZvciB0aGUgZW50cnkgcG9pbnQsIGxpa2VseSBgbWFpbmAgb3Igc29tZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBjYWxsZWQgZWFybHkgaW4gdGhlIGJvb3QgcHJvY2Vzcy4gRnJvbSB0aGVyZSwgSSYjMzk7bGwgdHJhY2UgdGhyb3VnaCB0aGUgY2FsbHMsIG5vdGluZyB0aGUgaW1wb3J0YW50IHZhcmlhYmxlcyBhbmQgYW55IGV4dGVybmFsIGRlcGVuZGVuY2llcy4gSSYjMzk7bSBrZWVuIHRvIHVuZGVyc3RhbmQgdGhlIGludGVyYWN0aW9ucyB3aXRoIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlLCBpZiBhbnksIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSB1bnVzdWFsIGluaXRpYWxpemF0aW9uIHBhdHRlcm5zIG9yIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMgdGhhdCBtaWdodCBiZWNvbWUgYXBwYXJlbnQuIEkgYWxzbyB3YW50IHRvIG1ha2Ugc3VyZSBJIGRvbiYjMzk7dCBtaXNzIGFueSBzdWJ0bGUsIGJ1dCBjcml0aWNhbCwgc3RlcHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9zZnAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDk2MwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gc2ZwLmM6IFRoZSBFbmQgaXMgdGhlIEJlZ2lubmluZyAob3IgYXQgbGVhc3QsIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCkqKgoKT2theSwgdGltZSB0byBnZXQgYSBncmlwIG9uIHRoaXMuIFdoZXJlIGFyZSB3ZSwgcmVhbGx5PyBMZXQmIzM5O3MgYXNzdW1lIHRoZSBoaWdoLWxldmVsIGFyY2hpdGVjdHVyZSBpcyBzb2xpZCAoZm9yIG5vdyEpLCBhbmQgdGhlIGlzc3VlcyBhcmVuJiMzOTt0IGltbWVkaWF0ZWx5IHNjcmVhbWluZyBhdCB1cyBmcm9tIHRoZSBtYWluIHJvdXRpbmVzLiBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgY29tcGxleCBzeXN0ZW1zIG9mdGVuIGhhdmUgdGhlaXIgJiMzOTtnb3RjaGFzJiMzOTsgbmVzdGxlZCBpbiB0aGUgZGV0YWlscyDigJMgdGhlIGVkZ2UgY2FzZXMsIHRoZSBjbGVhbnVwLCB0aGUgaW5pdGlhbGl6YXRpb24sIHRoZSBzaHV0ZG93bi4KClNvLCBhIGxvZ2ljYWwgbmV4dCBzdGVwIGlzIHRvIGhlYWQgc3RyYWlnaHQgdG8gdGhlIGJvdHRvbSBvZiBgc2ZwLmNgLiBGb3JnZXQgdGhlIHRvcCBmb3IgYSBtb21lbnQ7IGl0JiMzOTtzIHRoZSBlbmQgb2YgYSBDIGZpbGUgdGhhdCB0eXBpY2FsbHkgaG9sZHMgdGhlIGluaXRpYWxpemF0aW9uL2RlLWluaXRpYWxpemF0aW9uL2NsZWFudXAgY29kZSBvciwgdGhlIGNvcmUgZnVuY3Rpb25zIG9uIHdoaWNoIG90aGVycyBidWlsZC4gVW5kZXJzdGFuZGluZyB0aGVzZSAmIzM0O2ZpbmFsJiMzNDsgc2VjdGlvbnMgb2Z0ZW4gcmV2ZWFscyB0aGUgZGVwZW5kZW5jaWVzLCByZXNvdXJjZSBtYW5hZ2VtZW50LCBhbmQgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyB0aGF0IG1pZ2h0IGV4cGxhaW4gYW55IG9ic2VydmVkIGJlaGF2aW9yLiBUaGlzICYjMzk7Ym90dG9tLXVwJiMzOTsgYXBwcm9hY2ggY2FuIHF1aWNrbHkgc3VyZmFjZSBmdW5kYW1lbnRhbCBhc3N1bXB0aW9ucyBvciBvdmVybG9va2VkIGludGVyYWN0aW9ucy4gSXQmIzM5O3MgYWJvdXQgZ3JvdW5kaW5nIG15c2VsZiBpbiB0aGUgaW1wbGVtZW50YXRpb24gc3BlY2lmaWNzIGJlZm9yZSBnZXR0aW5nIGxvc3QgaW4gdGhlIGFic3RyYWN0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlXy4qZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L3NmcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9zZnAuYz0zNDgwPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNmcF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTM0ODktXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM6MzQ5MDptb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHNmcF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTM0OTEtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzNDYKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBsYXRmb3JtIERyaXZlciBhbmQgU3l6a2FsbGVyJiMzOTtzIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIsIHNlZW1zIHRvIGJlIGEgcGxhdGZvcm0gZHJpdmVyIG9mIHNvbWUga2luZC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O0NhbiBzeXprYWxsZXIgZXZlbiBnZXQgYXQgdGhpcyBgc2ZwX2xvb2t1cF9xdWlya2AgZnVuY3Rpb24/JiMzNDsgVGhhdCYjMzk7cyB0aGUgcmVhbCBxdWVzdGlvbi4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGF0dGFjayBzdXJmYWNlLgoKTm93LCBgc2ZwX2xvb2t1cF9xdWlya2AsIGlmIEkmIzM5O20gcmVtZW1iZXJpbmcgcmlnaHQsIGlzIGNhbGxlZCBzcGVjaWZpY2FsbHkgZHVyaW5nIFNGUCBtb2R1bGUgaW5zZXJ0aW9uIG9yIHByb2Jpbmcg4oCTIHRoYXQmIzM5O3MgdGhlIHRyaWdnZXIgSSYjMzk7bSBpbnRlcmVzdGVkIGluLiBTbywgdG8gZ2V0IHN5emthbGxlciB0byBoaXQgaXQsIEkgaGF2ZSB0byB0cmFjZSBob3cgdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZC4gVGltZSB0byBzZWUgd2hlcmUgdGhhdCBmdW5jdGlvbiBpcyBhY3R1YWxseSBpbnZva2VkLiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGxpbmcgcGF0aC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2ZwX2xvb2t1cF9xdWlyayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9zZnAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvc2ZwLmM9NjUxPXN0YXRpYyBib29sIHNmcF9tYXRjaChjb25zdCBjaGFyICpxcywgY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVuLCBib29sIHByZWZpeClcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtNjYyLVxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjY2MzpzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtNjY0LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM9MjQ5ND1zdGF0aWMgaW50IHNmcF9zbV9tb2RfcHJvYmUoc3RydWN0IHNmcCAqc2ZwLCBib29sIHJlcG9ydClcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtMjY2OC1cbmRyaXZlcnMvbmV0L3BoeS9zZnAuYzoyNjY5Olx0c2ZwLVx1MDAzZXF1aXJrID0gc2ZwX2xvb2t1cF9xdWlyayhcdTAwMjZpZCk7XG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtMjY3MC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTg0NQoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDE4MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgU0ZQIE1vZHVsZSBQcm9iZSoqCgpPa2F5LCBzbyBgc2ZwX3NtX21vZF9wcm9iZWAgaXMgdHJpZ2dlcmVkIGJ5IHRoZSBTRlAgc3RhdGUgbWFjaGluZSwgbW9zdCBsaWtlbHkgZnJvbSBhbiBldmVudCB3aXRoaW4gdGhlIHN0YXRlIG1hY2hpbmUgbGlrZSBgc2ZwX3NtX2V2ZW50YC4gVGhhdCBtYWtlcyBzZW5zZS4gVGhlIGNydWNpYWwgcXVlc3Rpb24gaXMgaG93ICp0aGF0KiBzdGF0ZSBtYWNoaW5lIGdldHMgYWN0aXZhdGVkLiBJdCBsb29rcyBsaWtlIGl0JiMzOTtzIGRyaXZlbiBieSBHUElPIGludGVycnVwdHMsIHNpZ25hbGluZyBtb2R1bGUgaW5zZXJ0aW9uLCBvciBwb3RlbnRpYWxseSB0aHJvdWdoIHBvbGxpbmcuIAoKTm93LCBjYW4gSSBsZXZlcmFnZSBzeXprYWxsZXIgdG8gYWN0dWFsbHkgKnRlc3QqIHRoaXM/IFRoZSBjaGFsbGVuZ2UgaXMgaW4gZW11bGF0aW5nIHRoZSBoYXJkd2FyZS4gSSBuZWVkIGEgd2F5IHRvIG1vY2sgdXAgYSBwbGF0Zm9ybSBkZXZpY2UgY29tcGxldGUgd2l0aCB0aGUgbmVjZXNzYXJ5IEdQSU9zIGFuZCBJMkMgYnVzZXMgdGhhdCB0aGUgU0ZQIGNvZGUgZXhwZWN0cy4gSSBrbm93IHRoYXQgcGxhdGZvcm0gZGV2aWNlcyBhcmUgdHlwaWNhbGx5IGRlc2NyaWJlZCB0aHJvdWdoIERldmljZSBUcmVlIG9yIEFDUEkuIFN5emthbGxlciAqZG9lcyogaGF2ZSBtZWNoYW5pc21zIHRvIGluamVjdCBwbGF0Zm9ybSBkZXZpY2VzLCBsaWtlbHkgdXNpbmcgc29tZXRoaW5nIGxpa2UgYHN5el9kZXZfcGxhdGZvcm1gIG9yIGEgc2ltaWxhciBmdW5jdGlvbiBjYWxsLiBIb3dldmVyLCB0aGUgY29tcGxleGl0eSBoZXJlIGlzIHNpZ25pZmljYW50LiBJJiMzOTttIGltYWdpbmluZyBzcGVjaWZpYyBEZXZpY2UgVHJlZSBub2RlcyBkZWZpbmluZyBhbiBTRlAgY2FnZSwgY29tcGxldGUgd2l0aCB0aGUgaW50cmljYXRlIGRldGFpbHMgb2YgdGhlIEkyQyBidXMgYW5kIHRoZSBhc3NvY2lhdGVkIEdQSU9zLiBJdCBzZWVtcyB1bmxpa2VseSB0aGF0IHN0YW5kYXJkIHN5emthbGxlciwgd2l0aG91dCBjdXN0b20gZGVzY3JpcHRpb25zLCB3b3VsZCBzdXBwb3J0IHRoaXMga2luZCBvZiBkZXRhaWxlZCBjb25maWd1cmF0aW9uIG91dC1vZi10aGUtYm94LiBJdCYjMzk7cyBwcm9iYWJseSB0b28gbmljaGUgdG8gYmUgZ2VuZXJpYy4KCkFjdHVhbGx5LCBiZWZvcmUgSSBnZXQgdG9vIGRlZXAgaW4sIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBvYnZpb3VzLiBEb2VzIHN5emthbGxlciBldmVuICpmdXp6KiBTRlAgbW9kdWxlcyBkaXJlY3RseT8gTGV0JiMzOTtzIHF1aWNrbHkgc2VhcmNoIGZvciBleGlzdGluZyBzeXprYWxsZXIgZGVzY3JpcHRpb25zIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgU0ZQIGZ1bmN0aW9uYWxpdHkuIFRoYXQmIzM5O2xsIHNhdmUgYSBsb3Qgb2YgdGltZSBpZiBzb21lb25lIGVsc2UgaGFzIGFscmVhZHkgdGFja2xlZCB0aGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NmcCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NDAzCgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMTYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIHRoZSBTRlAgRUVQUk9NIFF1aXJrcyBDb2RlKioKCk9rYXksIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCBob3cgcmVhY2hhYmxlIHRoaXMgbmV3IGNvZGUgaXMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHRoZSBhY2Nlc3MgcGF0aC4gSWYgaXQmIzM5O3MgYSBwbGF0Zm9ybSBkcml2ZXIsIHRoZW4gdGhlIHVzdWFsIHN1c3BlY3RzIGFwcGx5OiBhIGRldmljZSB0cmVlIG5vZGUgd2l0aCB0aGUgJiMzNDtzZmYsc2ZwJiMzNDsgY29tcGF0aWJsZSBzdHJpbmcuIE5vdywgcmVhbGlzdGljYWxseSwgU3l6a2FsbGVyIHVzdWFsbHkgZG9lc24mIzM5O3QganVzdCAqbWFnaWNhbGx5KiBpbmplY3QgYXJiaXRyYXJ5IGRldmljZSB0cmVlIG5vZGVzIHVubGVzcyB0aGVyZSYjMzk7cyBzb21lIHNvcnQgb2Ygc3BlY2lmaWNhbGx5IGRlZmluZWQgcHNldWRvLWRldmljZSwgb3IgaXQmIzM5O3MgcGFydCBvZiB0aGUgYmFzZSBpbWFnZSBzZXR1cC4gU28sIHRoYXQmIzM5O3Mgc29tZXRoaW5nIHRvIGltbWVkaWF0ZWx5IGNvbnNpZGVyLgoKVGhlIG5leHQgcXVlc3Rpb24gaXMsIGlzIGl0IGV2ZW4gd29ydGggdGhlIGVmZm9ydCB0byBmdXp6IGl0PyBUaGlzIHBhdGNoLCBmcm9tIHdoYXQgSSYjMzk7bSBzZWVpbmcsIHNlZW1zIHRvIGltcGxlbWVudCBhIGZhaXJseSBzdHJhaWdodGZvcndhcmQgc3RyaW5nIG1hdGNoaW5nIGxvZ2ljIHJlbGF0ZWQgdG8gU0ZQIEVFUFJPTSBxdWlya3MuIEl0JiMzOTtzIGhhcmR3YXJlLXNwZWNpZmljLCBmb2N1c2luZyBvbiBTRlAgdHJhbnNjZWl2ZXJzLCBzbyByaWdodCBhd2F5IEkmIzM5O20gd29uZGVyaW5nIGFib3V0IHJlYWNoYWJpbGl0eSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFVubGVzcyB3ZSYjMzk7dmUgZ290IGFuIEkyQyBtb2NrICphbmQqIGEgcGxhdGZvcm0gZGV2aWNlIG1vY2sgZm9yIFNGUCwgdGhlIG9kZHMgc2VlbSBzbGltLiBTbywgYXMgYSBmaXJzdCBzdGVwLCBsZXQmIzM5O3MgY2hlY2sgdGhlIGtlcm5lbCBzb3VyY2UgLSBpcyB0aGVyZSBhIG1vY2sgU0ZQIGFueXdoZXJlIHRoYXQgY291bGQgYXNzaXN0IHVzIGluIHRlc3RpbmcgdGhpcyBjb2RlPwoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZmYsc2ZwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL2dwaW8tbGluZS1tdXgueWFtbD03Nj1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9ncGlvLWxpbmUtbXV4LnlhbWwtMTAwLSAgICBzZnAxOiBzZnAtcDEge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vZ3Bpby1saW5lLW11eC55YW1sOjEwMTogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vZ3Bpby1saW5lLW11eC55YW1sLTEwMi1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL25ldC9zZmYsc2ZwLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sPTEzPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWwtMTUtICAgIGVudW06XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbDoxNjogICAgICAtIHNmZixzZnAgICMgZm9yIFNGUCBtb2R1bGVzXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC0xNy0gICAgICAtIHNmZixzZmYgICMgZm9yIHNvbGRlcmVkIGRvd24gU0ZGIG1vZHVsZXNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbD04OT1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC05My0gICAgc2ZwMTogc2ZwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sOjk0OiAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWwtOTUtICAgICAgaTJjLWJ1cyA9IFx1MDAzY1x1MDAyNnNmcF8xZ19pMmNcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWwtMTE1LSAgICBzZnAyOiBzZnAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWw6MTE2OiAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWwtMTE3LSAgICAgIGkyYy1idXMgPSBcdTAwM2NcdTAwMjZzZnBfaTJjXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3Q9NDA0PWRvY3VtZW50YXRpb24gaW4gdGhlIGtlcm5lbCBzb3VyY2UgdHJlZVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3NmcC1waHlsaW5rLnJzdDo0MDU6YGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbGBgLlxuLS1cbk1BSU5UQUlORVJTPTI0NjAxPVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzoyNDYwMjpGOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWxcbk1BSU5UQUlORVJTLTI0NjAzLUY6XHRkcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvYnJvYWRjb20vYmNtOTU4NjI1aHIuZHRzPTU4PVx0c2ZwOiBzZnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvYnJvYWRjb20vYmNtOTU4NjI1aHIuZHRzOjU5Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2Jyb2FkY29tL2JjbTk1ODYyNWhyLmR0cy02MC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyYzBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LWNsZWFyZm9nLWd0ci1sOC5kdHM9MTE9XHRzZnAxOiBzZnAtMSB7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLWw4LmR0czoxMjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLWw4LmR0cy0xMy1cdFx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2Y2ZfZ3RyX3NmcDFfcGluc1x1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLmR0c2k9Mjg1PVx0c2ZwMDogc2ZwLTAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LWNsZWFyZm9nLWd0ci5kdHNpOjI4NjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLmR0c2ktMjg3LVx0XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZjZl9ndHJfc2ZwMF9waW5zXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS10dXJyaXMtb21uaWEuZHRzPTk3PVx0c2ZwOiBzZnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHM6OTg6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHMtOTktXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZzZnBfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4OC1jbGVhcmZvZy5kdHNpPTgwPVx0c2ZwOiBzZnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg4LWNsZWFyZm9nLmR0c2k6ODE6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg4LWNsZWFyZm9nLmR0c2ktODItXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmMxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LWtvbnRyb24ta3N3aXRjaC1kMTAtbW10LTZnLTJncy5kdHM9MTk9XHRzZnAwOiBzZnAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LWtvbnRyb24ta3N3aXRjaC1kMTAtbW10LTZnLTJncy5kdHM6MjA6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2Nngta29udHJvbi1rc3dpdGNoLWQxMC1tbXQtNmctMmdzLmR0cy0yMS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyYzRcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2Nngta29udHJvbi1rc3dpdGNoLWQxMC1tbXQtNmctMmdzLmR0cz0zMT1cdHNmcDE6IHNmcDEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2Nngta29udHJvbi1rc3dpdGNoLWQxMC1tbXQtNmctMmdzLmR0czozMjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY2eC1rb250cm9uLWtzd2l0Y2gtZDEwLW1tdC02Zy0yZ3MuZHRzLTMzLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjMVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY2eC1wY2I4MzA5LmR0cz04MT1cdHNmcDI6IHNmcDIge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHM6ODI6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHMtODMtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmMxMDJcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHM9OTA9XHRzZnAzOiBzZnAzIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LXBjYjgzMDkuZHRzOjkxOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LXBjYjgzMDkuZHRzLTkyLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjMTAzXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwNDZhLXFkcy5kdHM9NDY9XHRzZnAxOiBzZnAtMSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDQ2YS1xZHMuZHRzOjQ3Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwNDZhLXFkcy5kdHMtNDgtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZzZnAxX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDQ2YS1xZHMuZHRzPTUzPVx0c2ZwMjogc2ZwLTIge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0NmEtcWRzLmR0czo1NDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDQ2YS1xZHMuZHRzLTU1LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwMl9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA4OGEtdGVuNjQuZHRzPTcxPVx0c2ZwX3hnMDogZHBtYWMyLXNmcCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDg4YS10ZW42NC5kdHM6NzI6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA4OGEtdGVuNjQuZHRzLTczLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwbG93ZXJfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLXRlbjY0LmR0cz04MT1cdHNmcF94ZzE6IGRwbWFjMS1zZnAge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA4OGEtdGVuNjQuZHRzOjgyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLXRlbjY0LmR0cy04My1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNnNmcHVwcGVyX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1jbGVhcmZvZy1pdHguZHRzaT0zMT1cdHNmcDA6IHNmcC0wIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpOjMyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpLTMzLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwMF9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2k9Mzg9XHRzZnAxOiBzZnAtMSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1jbGVhcmZvZy1pdHguZHRzaTozOTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1jbGVhcmZvZy1pdHguZHRzaS00MC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNnNmcDFfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpPTQ1PVx0c2ZwMjogc2ZwLTIge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2k6NDY6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2ktNDctXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZzZnAyX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1jbGVhcmZvZy1pdHguZHRzaT01Mj1cdHNmcDM6IHNmcC0zIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpOjUzOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpLTU0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwM19pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9Mjg3PVx0aHRfYzNfYnRfc2ZwOiBzZnAtMSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czoyODg6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMjg5LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aHR3aW5zX3NmcF9jM19idF9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9Mjk0PVx0aHRfYzNfYmJfc2ZwOiBzZnAtMiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czoyOTU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMjk2LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aHR3aW5zX3NmcF9jM19iYl9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzAxPVx0aHRfYzNfYXRfc2ZwOiBzZnAtMyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMDI6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzAzLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aHR3aW5zX3NmcF9jM19hdF9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzA4PVx0aHRfYzNfYWJfc2ZwOiBzZnAtNCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMDk6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzEwLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aHR3aW5zX3NmcF9jM19hYl9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzE1PVx0YzFfYnRfc2ZwOiBzZnAtOSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMTY6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzE3LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MxX2J0X2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zMjI9XHRjMV9iYl9zZnA6IHNmcC0xMCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMjM6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzI0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MxX2JiX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zMjk9XHRjMV9hdF9zZnA6IHNmcC0xMSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMzA6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzMxLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MxX2F0X2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zMzY9XHRjMV9hYl9zZnA6IHNmcC0xMiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMzc6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzM4LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MxX2FiX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNDM9XHRjMl9idF9zZnA6IHNmcC0xMyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNDQ6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzQ1LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MyX2J0X2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNTA9XHRjMl9iYl9zZnA6IHNmcC0xNCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNTE6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzUyLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MyX2JiX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNTc9XHRjMl9hdF9zZnA6IHNmcC0xNSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNTg6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzU5LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MyX2F0X2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNjQ9XHRjMl9hYl9zZnA6IHNmcC0xNiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNjU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzY2LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MyX2FiX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNzE9XHRjM19idF9zZnA6IHNmcC0xNyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNzI6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzczLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MzX2J0X2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNzg9XHRjM19iYl9zZnA6IHNmcC0xOCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNzk6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzgwLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MzX2JiX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zODU9XHRjM19hdF9zZnA6IHNmcC0xOSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozODY6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzg3LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MzX2F0X2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zOTI9XHRjM19hYl9zZnA6IHNmcC0yMCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozOTM6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzk0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2dHdpbnNfc2ZwX2MzX2FiX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1yZGIuZHRzPTM1PVx0c2ZwMjogc2ZwLTIge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtcmRiLmR0czozNjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1yZGIuZHRzLTM3LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwMl9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtcmRiLmR0cz00Nj1cdHNmcDM6IHNmcC0zIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXJkYi5kdHM6NDc6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtcmRiLmR0cy00OC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNnNmcDNfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXRxbWx4MjE2MGEtbWJseDIxNjBhLmR0cz03MD1cdHNmcF94ZmkxOiBzZnAteGZpMSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS10cW1seDIxNjBhLW1ibHgyMTYwYS5kdHM6NzE6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtdHFtbHgyMTYwYS1tYmx4MjE2MGEuZHRzLTcyLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2eGZpMV9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtdHFtbHgyMTYwYS1tYmx4MjE2MGEuZHRzPTgwPVx0c2ZwX3hmaTI6IHNmcC14ZmkyIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXRxbWx4MjE2MGEtbWJseDIxNjBhLmR0czo4MTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS10cW1seDIxNjBhLW1ibHgyMTYwYS5kdHMtODItXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZ4ZmkyX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHM9ODM9XHRzZnBfYXQ6IHNmcC1hdCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHM6ODQ6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzLTg1LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwX2kyYzBcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzPTkwPVx0c2ZwX2FiOiBzZnAtYWIge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzOjkxOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjJhLWNsZWFyZm9nLmR0cy05Mi1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNnNmcF9pMmMxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjJhLWNsZWFyZm9nLmR0cz05Nz1cdHNmcF9idDogc2ZwLWJ0IHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjJhLWNsZWFyZm9nLmR0czo5ODpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHMtOTktXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZzZnBfaTJjMlx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHM9MTA0PVx0c2ZwX2JiOiBzZnAtYmIge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzOjEwNTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHMtMTA2LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwX2kyYzNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OTUtdmFyLWRhcnQtc29uYXRhLmR0cz0xMzg9XHRzZnAwOiBzZnAge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OTUtdmFyLWRhcnQtc29uYXRhLmR0czoxMzk6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OTUtdmFyLWRhcnQtc29uYXRhLmR0cy0xNDAtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZscGkyYzNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvdHFtbHMxMHh4YS1tYmxzMTB4eGEuZHRzaT01MT1cdHNmcDE6IHNmcDEge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvdHFtbHMxMHh4YS1tYmxzMTB4eGEuZHRzaTo1MjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS90cW1sczEweHhhLW1ibHMxMHh4YS5kdHNpLTUzLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwMV9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvdHFtbHMxMHh4YS1tYmxzMTB4eGEuZHRzaT02MT1cdHNmcDI6IHNmcDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvdHFtbHMxMHh4YS1tYmxzMTB4eGEuZHRzaTo2MjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS90cW1sczEweHhhLW1ibHMxMHh4YS5kdHNpLTYzLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwMl9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzPTEwMD1cdHNmcDogc2ZwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0czoxMDE6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzLTEwMi1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyYzBcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXVEUFUuZHRzPTExPVx0c2ZwX2V0aDA6IHNmcC1ldGgwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC11RFBVLmR0czoxMjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdURQVS5kdHMtMTMtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmMwXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC11RFBVLmR0c2k9Njg9XHRzZnBfZXRoMTogc2ZwLWV0aDEge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXVEUFUuZHRzaTo2OTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdURQVS5kdHNpLTcwLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTcwNDAtbW9jaGFiaW4uZHRzPTM0PVx0c2ZwX2V0aDA6IHNmcC1ldGgwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtNzA0MC1tb2NoYWJpbi5kdHM6MzU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0cy0zNi1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmNwMF9pMmMxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtNzA0MC1tb2NoYWJpbi5kdHM9NDQ9XHRzZnBfZXRoMjogc2ZwLWV0aDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0czo0NTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTcwNDAtbW9jaGFiaW4uZHRzLTQ2LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2Y3AwX2kyYzBcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9nLWd0LThrLmR0cz02ND1cdHNmcF9jcDBfZXRoMDogc2ZwLWNwMC1ldGgwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1jbGVhcmZvZy1ndC04ay5kdHM6NjU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLWNsZWFyZm9nLWd0LThrLmR0cy02Ni1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmNwMF9pMmMxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpPTY0PVx0c2ZwX2V0aDA6IHNmcC1ldGgwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTY1LVx0XHQvKiBDT04xNSwxNiAtIENQTSBsYW5lIDQgKi9cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpOjY2Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTY3LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwcDBfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpPTc3PVx0c2ZwX2V0aDE6IHNmcC1ldGgxIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTc4LVx0XHQvKiBDT04xNywxOCAtIENQUyBsYW5lIDQgKi9cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpOjc5Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTgwLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwcDFfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpPTkwPVx0c2ZwX2V0aDM6IHNmcC1ldGgzIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTkxLVx0XHQvKiBDT04xMywxNCAtIENQUyBsYW5lIDUgKi9cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpOjkyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTkzLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwXzFnX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtcHV6emxlLW04MDEuZHRzPTY3PVx0c2ZwX2NwMF9ldGgwOiBzZnAtY3AwLWV0aDAge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLXB1enpsZS1tODAxLmR0czo2ODpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtcHV6emxlLW04MDEuZHRzLTY5LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2c2ZwcGx1czBfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1wdXp6bGUtbTgwMS5kdHM9Nzc9XHRzZnBfY3AxX2V0aDA6IHNmcC1jcDEtZXRoMCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtcHV6emxlLW04MDEuZHRzOjc4Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1wdXp6bGUtbTgwMS5kdHMtNzktXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZzZnBwbHVzMV9pMmNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi5kdHNpPTI3PVx0c2ZwOiBzZnAge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi5kdHNpOjI4Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YuZHRzaS0yOS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmNwMF9pMmMxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY3JiLmR0c2k9Nzk9XHRzZnA6IHNmcCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWNyYi5kdHNpOjgwOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY3JiLmR0c2ktODEtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZjcDBfaTJjMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWRiLmR0c2k9OTI9XHRjcDBfc2ZwX2V0aDA6IHNmcC1ldGgtMSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWRiLmR0c2k6OTM6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1kYi5kdHNpLTk0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2Y3AwX3NmcHAwX2kyY1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMxLWNmLXNvbGlkd2FuLmR0cz0xMjE9XHRzZnAwOiBzZnAtMCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMxLWNmLXNvbGlkd2FuLmR0czoxMjI6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMS1jZi1zb2xpZHdhbi5kdHMtMTIzLVx0XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZjcDBfc2ZwMF9waW5zXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzEtY2Ytc29saWR3YW4uZHRzPTEzMz1cdHNmcDE6IHNmcC0xIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzEtY2Ytc29saWR3YW4uZHRzOjEzNDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMxLWNmLXNvbGlkd2FuLmR0cy0xMzUtXHRcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNmNwMV9zZnAxX3BpbnNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMS1kYi5kdHNpPTM4PVx0Y3AxX3NmcF9ldGgxOiBzZnAtZXRoLTIge1xuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMS1kYi5kdHNpOjM5Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzEtZGIuZHRzaS00MC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmNwMV9pMmMwXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItY2xlYXJmb2cuZHRzPTEyND1cdHNmcDogc2ZwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItY2xlYXJmb2cuZHRzOjEyNTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMyLWNsZWFyZm9nLmR0cy0xMjYtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZjb21fMTBnX3NmcF9pMmMwXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItZGIuZHRzaT01OT1cdGNwMl9zZnBfZXRoMDogc2ZwLWV0aC0zIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItZGIuZHRzaTo2MDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMyLWRiLmR0c2ktNjEtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZjcDJfc2ZwcDBfaTJjXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg2YS1iYW5hbmFwaS1icGktcjMuZHRzPTEyMT1cdHNmcDE6IHNmcC0xIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg2YS1iYW5hbmFwaS1icGktcjMuZHRzOjEyMjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0cy0xMjMtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0cz0xMzI9XHRzZnAyOiBzZnAtMiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0czoxMzM6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODZhLWJhbmFuYXBpLWJwaS1yMy5kdHMtMTM0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDJcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaT05ND1cdHNmcDE6IHNmcDEge1xuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaTo5NTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LXByby5kdHNpLTk2LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aW11eDFfc2ZwMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LXByby5kdHNpPTEwND1cdHNmcDI6IHNmcDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaToxMDU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaS0xMDYtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpbXV4Ml9zZnAyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQuZHRzPTEzPVx0c2ZwMjogc2ZwMiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LmR0czoxNDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LmR0cy0xNS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQuZHRzaT03MD1cdHNmcDE6IHNmcDEge1xuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC5kdHNpOjcxOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQuZHRzaS03Mi1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzPTE0ND1cdHNmcDA6IHNmcDAge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM6MTQ1Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzLTE0Ni1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzPTE1Mz1cdHNmcDE6IHNmcDEge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM6MTU0Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzLTE1NS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzPTE2Mj1cdHNmcDI6IHNmcDIge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM6MTYzOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzLTE2NC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzPTE3MT1cdHNmcDM6IHNmcDMge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM6MTcyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzLTE3My1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAzXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0yNjY9XHRzZnBfZXRoMTI6IHNmcC1ldGgxMiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MjY3Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0yNjgtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9Mjc1PVx0c2ZwX2V0aDEzOiBzZnAtZXRoMTMge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjI3NjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMjc3LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDJcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTI4ND1cdHNmcF9ldGgxNDogc2ZwLWV0aDE0IHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaToyODU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTI4Ni1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAzXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0yOTM9XHRzZnBfZXRoMTU6IHNmcC1ldGgxNSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6Mjk0Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0yOTUtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwNFx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzAyPVx0c2ZwX2V0aDQ4OiBzZnAtZXRoNDgge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjMwMzpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMzA0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDVcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTMxMT1cdHNmcF9ldGg0OTogc2ZwLWV0aDQ5IHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTozMTI6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTMxMy1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnA2XHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0zMjA9XHRzZnBfZXRoNTA6IHNmcC1ldGg1MCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzIxOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0zMjItXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwN1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzI5PVx0c2ZwX2V0aDUxOiBzZnAtZXRoNTEge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjMzMDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMzMxLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDhcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTMzOD1cdHNmcF9ldGg1Mjogc2ZwLWV0aDUyIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTozMzk6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTM0MC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnA5XHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0zNDc9XHRzZnBfZXRoNTM6IHNmcC1ldGg1MyB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzQ4Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0zNDktXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMTBcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTM1Nj1cdHNmcF9ldGg1NDogc2ZwLWV0aDU0IHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTozNTc6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTM1OC1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAxMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzY1PVx0c2ZwX2V0aDU1OiBzZnAtZXRoNTUge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjM2NjpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMzY3LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDEyXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0zNzQ9XHRzZnBfZXRoNTY6IHNmcC1ldGg1NiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6Mzc1Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0zNzYtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMTNcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTM4Mz1cdHNmcF9ldGg1Nzogc2ZwLWV0aDU3IHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTozODQ6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTM4NS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAxNFx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzkyPVx0c2ZwX2V0aDU4OiBzZnAtZXRoNTgge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjM5MzpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMzk0LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDE1XHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT00MDE9XHRzZnBfZXRoNTk6IHNmcC1ldGg1OSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6NDAyOlx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS00MDMtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMTZcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTQxMD1cdHNmcF9ldGg2MDogc2ZwLWV0aDYwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTo0MTE6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTQxMi1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAxN1x1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9NDE5PVx0c2ZwX2V0aDYxOiBzZnAtZXRoNjEge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjQyMDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktNDIxLVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDE4XHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT00Mjg9XHRzZnBfZXRoNjI6IHNmcC1ldGg2MiB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6NDI5Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS00MzAtXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMTlcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTQzNz1cdHNmcF9ldGg2Mzogc2ZwLWV0aDYzIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTo0Mzg6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTQzOS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAyMFx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM1X2JvYXJkLmR0c2k9Njc9XHRzZnBfZXRoNjA6IHNmcC1ldGg2MCB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM1X2JvYXJkLmR0c2k6Njg6XHRcdGNvbXBhdGlibGVcdCA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM1X2JvYXJkLmR0c2ktNjktXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwMVx1MDAzZTtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM1X2JvYXJkLmR0c2k9Nzc9XHRzZnBfZXRoNjE6IHNmcC1ldGg2MSB7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM1X2JvYXJkLmR0c2k6Nzg6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpLTc5LVx0XHRpMmMtYnVzID0gXHUwMDNjXHUwMDI2aTJjX3NmcDJcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpPTg3PVx0c2ZwX2V0aDYyOiBzZnAtZXRoNjIge1xuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpOjg4Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7c2ZmLHNmcFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaS04OS1cdFx0aTJjLWJ1cyA9IFx1MDAzY1x1MDAyNmkyY19zZnAzXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaT05Nz1cdHNmcF9ldGg2Mzogc2ZwLWV0aDYzIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaTo5ODpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3NmZixzZnBcJiMzNDs7XG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM1X2JvYXJkLmR0c2ktOTktXHRcdGkyYy1idXMgPSBcdTAwM2NcdTAwMjZpMmNfc2ZwNFx1MDAzZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jPTI3PXN0YXRpYyBpbnQgdHhnYmVfc3dub2Rlc19yZWdpc3RlcihzdHJ1Y3QgdHhnYmUgKnR4Z2JlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjY1Olx0bm9kZXMtXHUwMDNlc2ZwX3Byb3BzWzBdID0gUFJPUEVSVFlfRU5UUllfU1RSSU5HKFwmIzM0O2NvbXBhdGlibGVcJiMzNDssIFwmIzM0O3NmZixzZnBcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02Ni1cdG5vZGVzLVx1MDAzZXNmcF9wcm9wc1sxXSA9IFBST1BFUlRZX0VOVFJZX1JFRl9BUlJBWShcJiMzNDtpMmMtYnVzXCYjMzQ7LCBub2Rlcy1cdTAwM2VpMmNfcmVmKTtcbi0tXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM9MzYyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNmcF9vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTM2My1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZmXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNmZl9kYXRhLCB9LFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjM2NDpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtzZmYsc2ZwXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNnNmcF9kYXRhLCB9LFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTM2NS1cdHsgfSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI0MjgKCQkJCQkJCW91dHB1dDogNTEKCQkJCQkJCXRob3VnaHRzOiA1NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkluaXRpYWwgQXNzZXNzbWVudDogU0ZQIFJlZ2lzdHJhdGlvbiBpbiB0eGdiZV9waHkuYyoqCgpBbHJpZ2h0LCBteSBpbnRlcm5hbCByYWRhciBqdXN0IHBpbmdlZC4gTG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuY2AsIEkgc2VlIGEgc29mdHdhcmUgbm9kZSByZWdpc3RyYXRpb24gZm9yIGBzZmYsc2ZwYC4gVGhhdCBpbW1lZGlhdGVseSBzcGFya3MgbXkgaW50ZXJlc3Q7IEkmIzM5O3ZlIHNlZW4gYSBmZXcgaW1wbGVtZW50YXRpb25zIG9mIFNGUC9TRlAmIzQzOyBoYW5kbGluZyBpbiBzaW1pbGFyIGRyaXZlcnMsIGFuZCB0aGV5IGNhbiBiZSBxdWl0ZSB2YXJpZWQuIFRoZSBmYWN0IHRoYXQgaXQmIzM5O3MgYSBzb2Z0d2FyZSBub2RlIHN1Z2dlc3RzIGEgZGVncmVlIG9mIGFic3RyYWN0aW9uIOKAkyBwb3NzaWJseSBwcm9iaW5nLCBvciBjb25maWd1cmF0aW9uLCBtYXliZSBldmVuIGhhbmRsaW5nIHNwZWNpZmljIFBIWSBkZXRhaWxzIGJhc2VkIG9uIHRoZSBtb2R1bGUgdHlwZS4gVGltZSB0byBkaWcgZGVlcGVyLiBNeSBmb2N1cyBpcyBnb2luZyBzdHJhaWdodCB0byBgdHhnYmVfc3dub2Rlc19yZWdpc3RlcmAuIFRoaXMgaXMgYWxtb3N0IGNlcnRhaW5seSB3aGVyZSB0aGUgbWVhdCBvZiB0aGUgU0ZQL1NGUCYjNDM7IG1vZHVsZSBpbml0aWFsaXphdGlvbiBhbmQgcmVzb3VyY2UgbWFuYWdlbWVudCBpcyBoYW5kbGVkLCBlc3BlY2lhbGx5IHRoZSAmIzM0O3NvZnR3YXJlIG5vZGUmIzM0OyBhc3BlY3QuIEkgd2FudCB0byBzZWUgaG93IHRoaXMgcGFydGljdWxhciBkcml2ZXIgYXBwcm9hY2hlcyB0aGUgU0ZQIGludGVyZmFjZS4gQ3VyaW91cyB0byBsZWFybiBob3cgaXQmIzM5O3MgaGFuZGxlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHhnYmVfc3dub2Rlc19yZWdpc3RlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy0yNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6Mjc6c3RhdGljIGludCB0eGdiZV9zd25vZGVzX3JlZ2lzdGVyKHN0cnVjdCB0eGdiZSAqdHhnYmUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTI4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jPTU3NT1pbnQgdHhnYmVfaW5pdF9waHkoc3RydWN0IHR4Z2JlICp0eGdiZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTU5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NTkyOlx0cmV0ID0gdHhnYmVfc3dub2Rlc19yZWdpc3Rlcih0eGdiZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTU5My1cdGlmIChyZXQpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMwMzgKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYHR4Z2JlYCBhbmQgYHNmcGAgRHJpdmVyIEludGVyYWN0aW9uIHdpdGhpbiBTeXprYWxsZXIqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGlzIGB0eGdiZWAgTklDLCBhbmQgZmlyc3QsIEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyBhIFBDSSBkZXZpY2UuIFllcCwgV2FuZ3h1biAxMEdiRSBQQ0kgRXhwcmVzcywgZ290IGl0LiBOb3cgdGhlIHF1ZXN0aW9uIGlzLCBjYW4gU3l6a2FsbGVyIGVtdWxhdGUgdGhpcyB0aGluZz8gSSBrbm93IFN5emthbGxlciBoYXMgUENJIGVtdWxhdGlvbiwgYnV0IGl0JiMzOTtzIHVzdWFsbHkgZWl0aGVyIGJyb2FkIG9yIGZvY3VzZWQgb24gY2VydGFpbiBkZXZpY2VzIGxpa2UgdGhlIGUxMDAwZS4gSXQgZGVmaW5pdGVseSBkb2VzbiYjMzk7dCBoYXZlIGEgc3BlY2lmaWMgYHR4Z2JlYCBpbXBsZW1lbnRhdGlvbi4KClNvLCB3aXRob3V0IHRoYXQgZGV0YWlsZWQgZW11bGF0aW9uLCB0aGUgYHNmcGAgZHJpdmVyIGlzbiYjMzk7dCBnb2luZyB0byBnZXQgcHJvYmVkIGF1dG9tYXRpY2FsbHkuIFN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIGFyZW4mIzM5O3QgZ29pbmcgdG8gaGF2ZSBhIGRldmljZSB0cmVlIG5vZGUgb3IgYSBzb2Z0d2FyZSBub2RlIGRlZmluZWQgd2l0aCB0aGUgcmlnaHQgJiMzNDtjb21wYXRpYmxlJiMzNDsgc3RyaW5nIChgc2ZmLHNmcGApLiBJdCBuZWVkcyBzb21ldGhpbmcgdG8gbGF0Y2ggb250by4KCkhvbGQgb24sIHRob3VnaC4gSSByZWNhbGwgU3l6a2FsbGVyIGhhcyB0aGF0IGBzeXpfZGV2X3BsYXRmb3JtYCBmZWF0dXJlLiBJICpjb3VsZCogaW5qZWN0IGEgcGxhdGZvcm0gZGV2aWNlLiBCdXQgaGVyZSYjMzk7cyB0aGUga2lja2VyOiBldmVuIGlmIEkgZG8gdGhhdCwgdGhlIGBzZnAuY2AgZHJpdmVyIHJlcXVpcmVzIEkyQyBhbmQgR1BJTy4gU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGF1dG9tYXRpY2FsbHkga25vdyBob3cgdG8gc2V0IHRob3NlIHVwIGZvciBhIHBsYXRmb3JtIGRldmljZS4gSSYjMzk7ZCBoYXZlIHRvIHNwZWNpZnkgdGhlbSBhcyBwYXJ0IG9mIG15IHN5emthbGxlciBjb2RlLgoKSG1tLi4uIGJlZm9yZSBJIGdvIGRvd24gdGhhdCBjb21wbGljYXRlZCByb2FkLCBJIHNob3VsZCBjaGVjayBzb21ldGhpbmcgc2ltcGxlci4gQ2FuIHRoZSBgc2ZwLmNgIGRyaXZlciBwcm9iZSAqd2l0aG91dCogdGhlIEkyQyBidXM/IEl04oCZcyB3b3J0aCBjaGVja2luZyBpZiBpdCBoYXMgYSBmYWxsYmFjayBtZWNoYW5pc20uIElmIGl0IGRvZXNuJiMzOTt0LCBJJiMzOTttIGdvaW5nIHRvIGhhdmUgdG8gZG8gYSBsb3QgbW9yZSB3b3JrIHRvIGdldCB0aGlzIHRoaW5nIG9mZiB0aGUgZ3JvdW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZnBfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvc2ZwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L3NmcC5jPTMyNzI9c3RhdGljIGludCBzZnBfaTJjX2dldChzdHJ1Y3Qgc2ZwICpzZnApXG4tLVxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTMyOTctXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM6MzI5ODpzdGF0aWMgaW50IHNmcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTMyOTkte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9zZnAuYz0zNDgwPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNmcF9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9waHkvc2ZwLmM6MzQ4MTpcdC5wcm9iZSA9IHNmcF9wcm9iZSxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy0zNDgyLVx0LnJlbW92ZSA9IHNmcF9yZW1vdmUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzODI3CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkluaXRpYWwgQXNzZXNzbWVudDogU0ZQIFByb2JlKioKCkFscmlnaHQsICpzZnBfcHJvYmUqLi4uIHRoYXQgaW1tZWRpYXRlbHkgdHJpZ2dlcnMgYSBzcGVjaWZpYyBzZXQgb2YgYXNzb2NpYXRpb25zLiBUaGlzIGxpa2VseSByZWZlcnMgdG8gYSBkaWFnbm9zdGljIHRvb2wgb3IgY29tbWFuZC4gTXkgbWluZCBqdW1wcyB0byB2YXJpb3VzIGltcGxlbWVudGF0aW9ucy4gSXMgdGhpcyBhIGN1c3RvbSBzY3JpcHQgSSYjMzk7dmUgdXNlZCBpbiB0aGUgcGFzdCwgYSBzcGVjaWZpYyB2ZW5kb3ImIzM5O3MgdXRpbGl0eSwgb3IgcGVyaGFwcyBzb21ldGhpbmcgbW9yZSBnZW5lcmFsLCBsaWtlIGEgbW9kdWxlIHVzZWQgaW4gYSBuZXR3b3JrIG1hbmFnZW1lbnQgZnJhbWV3b3JrPyBUaGUgbmFtZSBpcyBwcmV0dHkgZGVzY3JpcHRpdmUuIEl0IHN1Z2dlc3RzIHByb2Jpbmcgb3IgaW50ZXJyb2dhdGluZyBhbiBTRlAgKFNtYWxsIEZvcm0tZmFjdG9yIFBsdWdnYWJsZSkgdHJhbnNjZWl2ZXIuIFRoaXMgY291bGQgYmUgZm9yIGEgd2lkZSBhcnJheSBvZiByZWFzb25zIOKAkyBkZXRlcm1pbmluZyBpdHMgbW9kZWwsIG1hbnVmYWN0dXJlciwgc3VwcG9ydGVkIHNwZWVkcywgRE9NIChEaWdpdGFsIE9wdGljYWwgTW9uaXRvcmluZykgZGF0YSwgb3IgZXZlbiBqdXN0IHZlcmlmeWluZyBpdHMgcHJlc2VuY2UgYW5kIGZ1bmN0aW9uYWxpdHkuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSBjb250ZXh0LiBJcyB0aGlzIGEgc29mdHdhcmUgdG9vbCwgYSBoYXJkd2FyZSBwcm9iZSwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSBtb3JlIEkgdGhpbmsgYWJvdXQgaXQsIHRoZSBtb3JlIHF1ZXN0aW9ucyBhcmlzZSwgYW5kIHRoZSBtb3JlIEkgcmVjb2duaXplIHRoYXQgY29udGV4dCBpcyBjcml0aWNhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBpbXBsaWNhdGlvbnMgb2YgJiMzNDtzZnBfcHJvYmUuJiMzNDsKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvc2ZwLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzMjk4LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDszMjk4Olx0c3RhdGljIGludCBzZnBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbjMyOTk6XHR7XG4zMzAwOlx0XHRjb25zdCBzdHJ1Y3Qgc2ZmX2RhdGEgKnNmZjtcbjMzMDE6XHRcdGNoYXIgKnNmcF9pcnFfbmFtZTtcbjMzMDI6XHRcdHN0cnVjdCBzZnAgKnNmcDtcbjMzMDM6XHRcdGludCBlcnIsIGk7XG4zMzA0Olx0XG4zMzA1Olx0XHRzZnAgPSBzZnBfYWxsb2MoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuMzMwNjpcdFx0aWYgKElTX0VSUihzZnApKVxuMzMwNzpcdFx0XHRyZXR1cm4gUFRSX0VSUihzZnApO1xuMzMwODpcdFxuMzMwOTpcdFx0cGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgc2ZwKTtcbjMzMTA6XHRcbjMzMTE6XHRcdGVyciA9IGRldm1fYWRkX2FjdGlvbl9vcl9yZXNldChzZnAtXHUwMDNlZGV2LCBzZnBfY2xlYW51cCwgc2ZwKTtcbjMzMTI6XHRcdGlmIChlcnIgXHUwMDNjIDApXG4zMzEzOlx0XHRcdHJldHVybiBlcnI7XG4zMzE0Olx0XG4zMzE1Olx0XHRzZmYgPSBkZXZpY2VfZ2V0X21hdGNoX2RhdGEoc2ZwLVx1MDAzZWRldik7XG4zMzE2Olx0XHRpZiAoIXNmZilcbjMzMTc6XHRcdFx0c2ZmID0gXHUwMDI2c2ZwX2RhdGE7XG4zMzE4Olx0XG4zMzE5Olx0XHRzZnAtXHUwMDNldHlwZSA9IHNmZjtcbjMzMjA6XHRcbjMzMjE6XHRcdGVyciA9IHNmcF9pMmNfZ2V0KHNmcCk7XG4zMzIyOlx0XHRpZiAoZXJyKVxuMzMyMzpcdFx0XHRyZXR1cm4gZXJyO1xuMzMyNDpcdFxuMzMyNTpcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgR1BJT19NQVg7IGkmIzQzOyYjNDM7KVxuMzMyNjpcdFx0XHRpZiAoc2ZmLVx1MDAzZWdwaW9zIFx1MDAyNiBCSVQoaSkpIHtcbjMzMjc6XHRcdFx0XHRzZnAtXHUwMDNlZ3Bpb1tpXSA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKHNmcC1cdTAwM2VkZXYsXG4zMzI4Olx0XHRcdFx0XHRcdCAgIGdwaW9fbmFtZXNbaV0sIGdwaW9fZmxhZ3NbaV0pO1xuMzMyOTpcdFx0XHRcdGlmIChJU19FUlIoc2ZwLVx1MDAzZWdwaW9baV0pKVxuMzMzMDpcdFx0XHRcdFx0cmV0dXJuIFBUUl9FUlIoc2ZwLVx1MDAzZWdwaW9baV0pO1xuMzMzMTpcdFx0XHR9XG4zMzMyOlx0XG4zMzMzOlx0XHRzZnAtXHUwMDNlc3RhdGVfaHdfbWFzayA9IFNGUF9GX1BSRVNFTlQ7XG4zMzM0Olx0XHRzZnAtXHUwMDNlc3RhdGVfaHdfZHJpdmUgPSBTRlBfRl9UWF9ESVNBQkxFO1xuMzMzNTpcdFxuMzMzNjpcdFx0c2ZwLVx1MDAzZWdldF9zdGF0ZSA9IHNmcF9ncGlvX2dldF9zdGF0ZTtcbjMzMzc6XHRcdHNmcC1cdTAwM2VzZXRfc3RhdGUgPSBzZnBfZ3Bpb19zZXRfc3RhdGU7XG4zMzM4Olx0XG4zMzM5Olx0XHQvKiBBbiBTRlAgY2FnZSB3aXRoIG5vIE1PRF9ERUYwIEdQSU8gaGFzIG5vIGhhcmR3YXJlIHByZXNlbmNlIHNpZ25hbC5cbjMzNDA6XHRcdCAqIEFzc3VtaW5nIHRoZSBtb2R1bGUgaXMgYWx3YXlzIHByZXNlbnQgdHJhcHMgYW4gZW1wdHkgY2FnZSBpblxuMzM0MTpcdFx0ICogTU9EX0VSUk9SIGFuZCBuZXZlciBkZXRlY3RzIGhvdC1pbnNlcnRpb24sIHNvIGRlcml2ZSBwcmVzZW5jZSBmcm9tIGFcbjMzNDI6XHRcdCAqIHRocm90dGxlZCBJMkMgcHJvYmUgYW5kIHBvbGwgZm9yIGNoYW5nZXMgaW5zdGVhZC4gc2ZwX2kyY19jb25maWd1cmUoKVxuMzM0MzpcdFx0ICogaGFzIGFscmVhZHkgc2V0IGkyY19tYXhfYmxvY2tfc2l6ZTsgc2VlZCBpMmNfYmxvY2tfc2l6ZSBzbyB0aGVcbjMzNDQ6XHRcdCAqIHByZXNlbmNlIHJlYWQgZG9lcyBub3QgaXNzdWUgYSB6ZXJvLWxlbmd0aCB0cmFuc2ZlciBiZWZvcmUgdGhlIGZpcnN0XG4zMzQ1Olx0XHQgKiBFRVBST00gcmVhZC4gU2VlZCBpMmNfcHJlc2VudF9uZXh0IHRvIGppZmZpZXMgc28gdGhlIGZpcnN0IHByb2JlXG4zMzQ2Olx0XHQgKiBoYXBwZW5zIGltbWVkaWF0ZWx5IChhIHplcm8gdmFsdWUgd291bGQgYmUgaW4gdGhlIHBhc3QgcmVsYXRpdmUgdG9cbjMzNDc6XHRcdCAqIHRoZSBuZWdhdGl2ZSBJTklUSUFMX0pJRkZJRVMgYXQgYm9vdCBhbmQgZGVsYXkgZGV0ZWN0aW9uKS5cbjMzNDg6XHRcdCAqXG4zMzQ5Olx0XHQgKiBBIHNvbGRlcmVkLWRvd24gbW9kdWxlIChzZmYsc2ZmKSBoYXMgbm8gcHJlc2VuY2Ugc2lnbmFsIGFuZCBpc1xuMzM1MDpcdFx0ICogZ2VudWluZWx5IGFsd2F5cyBwcmVzZW50LCBzbyBpdCBrZWVwcyB0aGUgYWx3YXlzLXByZXNlbnQgYmVoYXZpb3VyO1xuMzM1MTpcdFx0ICogdGhlIEkyQyBwcm9iZSBpcyBnYXRlZCBvbiB0aGUgY2FnZSB0eXBlIGFkdmVydGlzaW5nIFNGUF9GX1BSRVNFTlQuXG4zMzUyOlx0XHQgKi9cbjMzNTM6XHRcdGlmICghc2ZwLVx1MDAzZWdwaW9bR1BJT19NT0RERUYwXSkge1xuMzM1NDpcdFx0XHRpZiAoc2ZmLVx1MDAzZWdwaW9zIFx1MDAyNiBTRlBfRl9QUkVTRU5UKSB7XG4zMzU1Olx0XHRcdFx0c2ZwLVx1MDAzZWdldF9zdGF0ZSA9IHNmcF9pMmNfZ2V0X3N0YXRlO1xuMzM1NjpcdFx0XHRcdHNmcC1cdTAwM2VpMmNfYmxvY2tfc2l6ZSA9IHNmcC1cdTAwM2VpMmNfbWF4X2Jsb2NrX3NpemU7XG4zMzU3Olx0XHRcdFx0c2ZwLVx1MDAzZWkyY19wcmVzZW50X25leHQgPSBqaWZmaWVzO1xuMzM1ODpcdFx0XHRcdHNmcC1cdTAwM2VuZWVkX3BvbGwgPSB0cnVlO1xuMzM1OTpcdFx0XHR9IGVsc2Uge1xuMzM2MDpcdFx0XHRcdHNmcC1cdTAwM2VnZXRfc3RhdGUgPSBzZmZfZ3Bpb19nZXRfc3RhdGU7XG4zMzYxOlx0XHRcdH1cbjMzNjI6XHRcdH1cbjMzNjM6XHRcbjMzNjQ6XHRcdGRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7bWF4aW11bS1wb3dlci1taWxsaXdhdHRcJiMzNDssXG4zMzY1Olx0XHRcdFx0XHQgXHUwMDI2c2ZwLVx1MDAzZW1heF9wb3dlcl9tVyk7XG4zMzY2Olx0XHRpZiAoc2ZwLVx1MDAzZW1heF9wb3dlcl9tVyBcdTAwM2MgMTAwMCkge1xuMzM2NzpcdFx0XHRpZiAoc2ZwLVx1MDAzZW1heF9wb3dlcl9tVylcbjMzNjg6XHRcdFx0XHRkZXZfd2FybihzZnAtXHUwMDNlZGV2LFxuMzM2OTpcdFx0XHRcdFx0IFwmIzM0O0Zpcm13YXJlIGJ1ZzogaG9zdCBtYXhpbXVtIHBvd2VyIHNob3VsZCBiZSBhdCBsZWFzdCAxV1xcblwmIzM0Oyk7XG4zMzcwOlx0XHRcdHNmcC1cdTAwM2VtYXhfcG93ZXJfbVcgPSAxMDAwO1xuMzM3MTpcdFx0fVxuMzM3MjpcdFxuMzM3MzpcdFx0ZGV2X2luZm8oc2ZwLVx1MDAzZWRldiwgXCYjMzQ7SG9zdCBtYXhpbXVtIHBvd2VyICV1LiV1V1xcblwmIzM0OyxcbjMzNzQ6XHRcdFx0IHNmcC1cdTAwM2VtYXhfcG93ZXJfbVcgLyAxMDAwLCAoc2ZwLVx1MDAzZW1heF9wb3dlcl9tVyAvIDEwMCkgJSAxMCk7XG4zMzc1Olx0XG4zMzc2Olx0XHQvKiBHZXQgdGhlIGluaXRpYWwgc3RhdGUsIGFuZCBhbHdheXMgc2lnbmFsIFRYIGRpc2FibGUsXG4zMzc3Olx0XHQgKiBzaW5jZSB0aGUgbmV0d29yayBpbnRlcmZhY2Ugd2lsbCBub3QgYmUgdXAuXG4zMzc4Olx0XHQgKi9cbjMzNzk6XHRcdHNmcC1cdTAwM2VzdGF0ZSA9IHNmcF9nZXRfc3RhdGUoc2ZwKSB8IFNGUF9GX1RYX0RJU0FCTEU7XG4zMzgwOlx0XG4zMzgxOlx0XHRpZiAoc2ZwLVx1MDAzZWdwaW9bR1BJT19SUzBdIFx1MDAyNlx1MDAyNlxuMzM4MjpcdFx0ICAgIGdwaW9kX2dldF92YWx1ZV9jYW5zbGVlcChzZnAtXHUwMDNlZ3Bpb1tHUElPX1JTMF0pKVxuMzM4MzpcdFx0XHRzZnAtXHUwMDNlc3RhdGUgfD0gU0ZQX0ZfUlMwO1xuMzM4NDpcdFx0c2ZwX3NldF9zdGF0ZShzZnAsIHNmcC1cdTAwM2VzdGF0ZSk7XG4zMzg1Olx0XHRzZnBfbW9kdWxlX3R4X2Rpc2FibGUoc2ZwKTtcbjMzODY6XHRcdGlmIChzZnAtXHUwMDNlc3RhdGUgXHUwMDI2IFNGUF9GX1BSRVNFTlQpIHtcbjMzODc6XHRcdFx0cnRubF9sb2NrKCk7XG4zMzg4Olx0XHRcdHNmcF9zbV9ldmVudChzZnAsIFNGUF9FX0lOU0VSVCk7XG4zMzg5Olx0XHRcdHJ0bmxfdW5sb2NrKCk7XG4zMzkwOlx0XHR9XG4zMzkxOlx0XG4zMzkyOlx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBHUElPX01BWDsgaSYjNDM7JiM0MzspIHtcbjMzOTM6XHRcdFx0aWYgKGdwaW9fZmxhZ3NbaV0gIT0gR1BJT0RfSU4gfHwgIXNmcC1cdTAwM2VncGlvW2ldKVxuMzM5NDpcdFx0XHRcdGNvbnRpbnVlO1xuMzM5NTpcdFxuMzM5NjpcdFx0XHRzZnAtXHUwMDNlZ3Bpb19pcnFbaV0gPSBncGlvZF90b19pcnEoc2ZwLVx1MDAzZWdwaW9baV0pO1xuMzM5NzpcdFx0XHRpZiAoc2ZwLVx1MDAzZWdwaW9faXJxW2ldIFx1MDAzYyAwKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1OTAwCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIGBzZnBfaTJjX2dldGAgRnVuY3Rpb24gQ2FsbCoqCgpBbHJpZ2h0LCBzbyBgc2ZwX2kyY19nZXRgIGlzIGJlaW5nIGludm9rZWQuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O09rYXksIHdoYXQmIzM5O3MgaXRzIHB1cnBvc2U/JiMzNDsgR2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgaXQmIzM5O3MgcmVsYXRlZCB0byBJMkMgY29tbXVuaWNhdGlvbiBhbmQgU0ZQIG1vZHVsZXMuIEJ1dCB0aGUgZGV2aWwmIzM5O3MgaW4gdGhlIGRldGFpbHMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzcGVjaWZpY3MuIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgYnkgcXVpY2tseSByZXZpZXdpbmcgdGhlIGNvZGUgZm9yIHRoYXQgZnVuY3Rpb24uIEkgd2FudCB0byBzZWUgaG93IGl0JiMzOTtzIGludGVyZmFjaW5nIHdpdGggdGhlIEkyQyBidXMgYW5kIGlmIHRoZXJlIGFyZSBhbnkgaW50ZXJlc3RpbmcgbnVhbmNlcy4gQXJlIHdlIHRhbGtpbmcgYWJvdXQgYSBzdGFuZGFyZCBJMkMgcmVhZCBvciBhcmUgdGhlcmUgYW55IG1hbnVmYWN0dXJlci1zcGVjaWZpYyBleHRlbnNpb25zIGJlaW5nIHV0aWxpemVkIGhlcmU/IEkmIzM5O20gaG9waW5nIGl0JiMzOTtzIHN0cmFpZ2h0Zm9yd2FyZCBidXQgSSYjMzk7bSBwcmVwYXJlZCBmb3Igc29tZXRoaW5nIGEgYml0IG1vcmUgY29tcGxleCwgZGVwZW5kaW5nIG9uIHRoZSBoYXJkd2FyZSBwbGF0Zm9ybS4gSSBuZWVkIHRvIGxvb2sgZm9yIGFueSByZWdpc3RlciBhY2Nlc3NlcywgZXJyb3IgaGFuZGxpbmcsIHJldHJpZXMsIGFuZCBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgdGhhdCBJIHdpbGwgYmUgaW50ZXJlc3RlZCBpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvc2ZwLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzMjcyLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDI1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzMyNzI6XHRzdGF0aWMgaW50IHNmcF9pMmNfZ2V0KHN0cnVjdCBzZnAgKnNmcClcbjMyNzM6XHR7XG4zMjc0Olx0XHRzdHJ1Y3QgZndub2RlX2hhbmRsZSAqaDtcbjMyNzU6XHRcdHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjO1xuMzI3NjpcdFx0aW50IGVycjtcbjMyNzc6XHRcbjMyNzg6XHRcdGggPSBmd25vZGVfZmluZF9yZWZlcmVuY2UoZGV2X2Z3bm9kZShzZnAtXHUwMDNlZGV2KSwgXCYjMzQ7aTJjLWJ1c1wmIzM0OywgMCk7XG4zMjc5Olx0XHRpZiAoSVNfRVJSKGgpKSB7XG4zMjgwOlx0XHRcdGRldl9lcnIoc2ZwLVx1MDAzZWRldiwgXCYjMzQ7bWlzc2luZyAmIzM5O2kyYy1idXMmIzM5OyBwcm9wZXJ0eVxcblwmIzM0Oyk7XG4zMjgxOlx0XHRcdHJldHVybiAtRU5PREVWO1xuMzI4MjpcdFx0fVxuMzI4MzpcdFxuMzI4NDpcdFx0aTJjID0gaTJjX2dldF9hZGFwdGVyX2J5X2Z3bm9kZShoKTtcbjMyODU6XHRcdGlmICghaTJjKSB7XG4zMjg2Olx0XHRcdGVyciA9IC1FUFJPQkVfREVGRVI7XG4zMjg3Olx0XHRcdGdvdG8gcHV0O1xuMzI4ODpcdFx0fVxuMzI4OTpcdFxuMzI5MDpcdFx0ZXJyID0gc2ZwX2kyY19jb25maWd1cmUoc2ZwLCBpMmMpO1xuMzI5MTpcdFx0aWYgKGVycilcbjMyOTI6XHRcdFx0aTJjX3B1dF9hZGFwdGVyKGkyYyk7XG4zMjkzOlx0cHV0OlxuMzI5NDpcdFx0Zndub2RlX2hhbmRsZV9wdXQoaCk7XG4zMjk1Olx0XHRyZXR1cm4gZXJyO1xuMzI5NjpcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1NzAKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAzNTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQcm9iZSBSZXF1aXJlbWVudCAmYW1wOyBGdXp6aW5nIEZlYXNpYmlsaXR5KioKCk9rYXksIHNvIHRoaXMgZHJpdmVyIHJlbGllcyBvbiBhbiBgaTJjLWJ1c2AgcHJvcGVydHkgYmVpbmcgcHJlc2VudCBpbiB0aGUgZndub2RlLiBJZiB0aGF0JiMzOTtzIG1pc3NpbmcsIGl0JiMzOTtsbCBiYWlsIG91dCB3aXRoIGAtRU5PREVWYCBvciBgLUVQUk9CRV9ERUZFUmAuIEVzc2VudGlhbGx5LCBubyBJMkMgYnVzLCBubyBkcml2ZXIuIFN0cmFpZ2h0Zm9yd2FyZC4KCk5vdywgSSYjMzk7bSB0aGlua2luZyBhYm91dCBmdXp6aW5nIHRoaXMuIFN5emthbGxlciAqY2FuKiBpbmplY3QgSTJDIGFkYXB0ZXJzIChjbGV2ZXIhKSwgdXNpbmcgdGhpbmdzIGxpa2UgYGkyYy1zdHViYCBvciBgaTJjLW1vY2tgLiBUaGUgcHJvYmxlbSBpcyB0aGF0IGl0IGRvZXNuJiMzOTt0IGF1dG9tYXRpY2FsbHkgbGluayB0aGVtIHVwIHRvIHRoZSBwbGF0Zm9ybSBkZXZpY2UmIzM5O3MgZndub2RlIHVzaW5nIHRoYXQgY3J1Y2lhbCBgaTJjLWJ1c2AgcHJvcGVydHkuIERhbW4uIEkgcmVtZW1iZXIgYHN5el9kZXZfcGxhdGZvcm1gIGZvciBjcmVhdGluZyBwbGF0Zm9ybSBkZXZpY2VzLCBidXQgaXQmIzM5O3Mgbm90IHRoZSBpZGVhbCBzb2x1dGlvbiBhcyBpdCYjMzk7cyBub3QgZGVzaWduZWQgdG8gaGFuZGxlIGZ3bm9kZSBwcm9wZXJ0eSBsaW5raW5nIGxpa2UgdGhpcy4KCkFuZCB3YWl0LCB0aGlzIHBhdGNoIEkmIzM5O20gbG9va2luZyBhdCwgaXQgc2VlbXMgdG8gYmUganVzdCBhZGRpbmcgYSBwcmVmaXggbWF0Y2ggZm9yIFNGUCBxdWlya3MuIFNvLCBpcyB0aGlzIGV2ZW4gcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cz8gUHJvYmFibHkgbm90LiBJdCBuZWVkcyB0aGF0IHNwZWNpZmljIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb246IGFuIFNGUCBjYWdlIHdpdGggYW4gSTJDIGJ1cy4gUUVNVSBhbmQgR0NFIGFyZW4mIzM5O3QgZ29pbmcgdG8gZW11bGF0ZSB0aGF0LCBhbmQgU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYSBnb29kIG1vY2sgZm9yIGl0LCBhcyBmYXIgYXMgSSBrbm93LgoKSGFuZyBvbi4uLiBjb3VsZCB3ZSBmdXp6IGB0eGdiZWAgaW5zdGVhZD8gVGhhdCYjMzk7cyBhIFBDSSBkZXZpY2UuIFN5emthbGxlciAqY2FuKiBoYW5kbGUgUENJIGRldmljZXMgd2l0aCBgc3l6X3BjaV9kZXZpY2VgIG9yIHNpbWlsYXIuIEJ1dCwgaXQgbmVlZHMgdGhlIGRldmljZSB0byBiZSBzdXBwb3J0ZWQgYnkgdGhlIFBDSSBmdXp6ZXIsIHdoaWNoIGlzIGEgYmlnIHByZXJlcXVpc2l0ZS4KCkV2ZW4gKmlmKiBgdHhnYmVgIGlzIGZ1enplZCwgdGhlIFNGUCBtb2R1bGUgRUVQUk9NIGlzIHN0aWxsIHJlYWQgb3ZlciBJMkMuIFRoZSBJMkMgYnVzIGhlcmUgaXMgcHJvdmlkZWQgYnkgYHR4Z2JlYC4gU28gdGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGlzIGRvZXMgYHR4Z2JlYCBwcm92aWRlIGFuIEkyQyBhZGFwdGVyPyBJIG5lZWQgdG8gbG9vayBpbnRvIHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aTJjX2FkZF9hZGFwdGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzQwMQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipJMkMgUmVnaXN0ZXIgSW5zcGVjdGlvbiB3aXRoaW4gYHR4Z2JlYCoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbi4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIGhvdyB0aGUgYHR4Z2JlYCBkcml2ZXIgaW50ZXJhY3RzIHdpdGggSTJDLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgaG93IHRoZSByZWdpc3RlcnMgcmVsYXRlZCB0byB0aGUgSTJDIGludGVyZmFjZSBhcmUgbWFwcGVkIGFuZCBhY2Nlc3NlZC4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSB0cmFjaW5nIHRocm91Z2ggdGhlIGRyaXZlciBjb2RlIGFuZCByZWZyZXNoaW5nIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlZ2lzdGVyIGRlZmluaXRpb25zLiBJJiMzOTtsbCBuZWVkIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGJhc2UgYWRkcmVzc2VzIGFuZCBvZmZzZXRzIHVzZWQgZm9yIHRoZSBJMkMgY29udHJvbCBhbmQgc3RhdHVzIHJlZ2lzdGVycy4gQXJlIHRoZXkgbWVtb3J5LW1hcHBlZD8gQXJlIHRoZXJlIGFueSBzcGVjaWFsIGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byB0YWtlIGludG8gYWNjb3VudD8gSSYjMzk7bGwgcHJvYmFibHkgd2FudCB0byBsb29rIGZvciBhbnkgbWFjcm9zIG9yIGhlbHBlciBmdW5jdGlvbnMgdGhlIGRyaXZlciB1c2VzIHRvIGVuY2Fwc3VsYXRlIHRoZSBJMkMgcmVnaXN0ZXIgaW50ZXJhY3Rpb25zLiBUaGlzIGlzIGEgY29tbW9uIHBhdHRlcm4sIGFuZCBJIGV4cGVjdCB0aGVyZSB0byBiZSBhYnN0cmFjdGlvbiBoZXJlLiBMZXQmIzM5O3Mgc2VlIGhvdyB0aGV5IGRvIGl0LiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBhbnkgcG90ZW50aWFsIHF1aXJrcyBvciBlcnJhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSByZXZpc2lvbi4gQW5kIG9mIGNvdXJzZSwgSSYjMzk7bGwgcGF5IGNsb3NlIGF0dGVudGlvbiB0byBpbnRlcnJ1cHQgaGFuZGxpbmcgaWYgaXQmIzM5O3MgaW52b2x2ZWQsIHNpbmNlIHRoYXQmIzM5O3Mgb2Z0ZW4gYSBzb3VyY2Ugb2Ygc3VidGxlIGJ1Z3MuIEkgd2FudCB0byBidWlsZCBhIGNsZWFyIG1lbnRhbCBtb2RlbCBvZiBob3cgYHR4Z2JlYCBpbml0aWFsaXplcyBhbmQgbWFuYWdlcyB0aGUgSTJDIGludGVyZmFjZSBmcm9tIGEgbG93LWxldmVsIHBlcnNwZWN0aXZlLiBLbm93aW5nIHRoaXMsIEkmIzM5O2xsIGJlIHByZXBhcmVkIGZvciBkZWJ1Z2dpbmcgb3IgZW5oYW5jZW1lbnRzIGxhdGVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpMmMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jPTc2PWludCB0eGdiZV9yZWFkX2VlcHJvbV9ob3N0aWYoc3RydWN0IHd4ICp3eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmM6Nzc6XHRcdFx0ICAgICBzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkICpidWZmZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTc4LVx0XHRcdCAgICAgdTMyIGxlbmd0aCwgdTggKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy04My1cdGJ1ZmZlci1cdTAwM2VoZHIuY21kID0gRldfUkVBRF9FRVBST01fQ01EO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo4NDpcdGJ1ZmZlci1cdTAwM2VoZHIuYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkKSAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTg1LVx0XHRcdCAgICAgIHNpemVvZihzdHJ1Y3Qgd3hfaGljX2hkcik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy04OC1cdGVyciA9IHd4X2hvc3RfaW50ZXJmYWNlX2NvbW1hbmQod3gsICh1MzIgKilidWZmZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjg5Olx0XHRcdFx0XHRzaXplb2Yoc3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTkwLVx0XHRcdFx0XHRXWF9ISV9DT01NQU5EX1RJTUVPVVQsIGZhbHNlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTk0LVx0LyogYnVmZmVyIGxlbmd0aCBvZmZzZXQgdG8gcmVhZCByZXR1cm4gZGF0YSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo5NTpcdG9mZnNldCA9IHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkKSBcdTAwM2VcdTAwM2UgMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtOTYtXHRkd29yZF9sZW4gPSByb3VuZF91cChsZW5ndGgsIDQpIFx1MDAzZVx1MDAzZSAyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg9MTA9aW50IHR4Z2JlX3JlYWRfZWVwcm9tX2hvc3RpZihzdHJ1Y3Qgd3ggKnd4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaDoxMTpcdFx0XHQgICAgIHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQgKmJ1ZmZlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmgtMTItXHRcdFx0ICAgICB1MzIgbGVuZ3RoLCB1OCAqZGF0YSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM9NTI5PXR4Z2JlX2dldF9tb2R1bGVfZWVwcm9tX2J5X3BhZ2Uoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MzMtXHRzdHJ1Y3Qgd3ggKnd4ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjUzNDpcdHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQgYnVmZmVyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTM1LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01NDMtXHRidWZmZXIuYmFuayA9IHBhZ2VfZGF0YS1cdTAwM2ViYW5rO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTQ0Olx0YnVmZmVyLmkyY19hZGRyZXNzID0gcGFnZV9kYXRhLVx1MDAzZWkyY19hZGRyZXNzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTQ1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtOC0jaW5jbHVkZSBcdTAwM2NsaW51eC9jbGtkZXYuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo5OiNpbmNsdWRlIFx1MDAzY2xpbnV4L2kyYy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTEwLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYz0yNz1zdGF0aWMgaW50IHR4Z2JlX3N3bm9kZXNfcmVnaXN0ZXIoc3RydWN0IHR4Z2JlICp0eGdiZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTM2LVx0c25wcmludGYobm9kZXMtXHUwMDNlZ3Bpb19uYW1lLCBzaXplb2Yobm9kZXMtXHUwMDNlZ3Bpb19uYW1lKSwgXCYjMzQ7dHhnYmVfZ3Bpby0leFwmIzM0OywgaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzozNzpcdHNucHJpbnRmKG5vZGVzLVx1MDAzZWkyY19uYW1lLCBzaXplb2Yobm9kZXMtXHUwMDNlaTJjX25hbWUpLCBcJiMzNDt0eGdiZV9pMmMtJXhcJiMzNDssIGlkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtMzgtXHRzbnByaW50Zihub2Rlcy1cdTAwM2VzZnBfbmFtZSwgc2l6ZW9mKG5vZGVzLVx1MDAzZXNmcF9uYW1lKSwgXCYjMzQ7dHhnYmVfc2ZwLSV4XCYjMzQ7LCBpZCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy01OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NTk6XHRub2Rlcy1cdTAwM2VpMmNfcHJvcHNbMF0gPSBQUk9QRVJUWV9FTlRSWV9TVFJJTkcoXCYjMzQ7Y29tcGF0aWJsZVwmIzM0OywgXCYjMzQ7c25wcyxkZXNpZ253YXJlLWkyY1wmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYwOlx0bm9kZXMtXHUwMDNlaTJjX3Byb3BzWzFdID0gUFJPUEVSVFlfRU5UUllfQk9PTChcJiMzNDt3eCxpMmMtc25wcy1tb2RlbFwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYxOlx0bm9kZXMtXHUwMDNlaTJjX3Byb3BzWzJdID0gUFJPUEVSVFlfRU5UUllfVTMyKFwmIzM0O2Nsb2NrLWZyZXF1ZW5jeVwmIzM0OywgSTJDX01BWF9TVEFOREFSRF9NT0RFX0ZSRVEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo2MjpcdHN3bm9kZXNbU1dOT0RFX0kyQ10gPSBOT0RFX1BST1Aobm9kZXMtXHUwMDNlaTJjX25hbWUsIG5vZGVzLVx1MDAzZWkyY19wcm9wcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYzOlx0bm9kZXMtXHUwMDNlaTJjX3JlZlswXSA9IFNPRlRXQVJFX05PREVfUkVGRVJFTkNFKFx1MDAyNnN3bm9kZXNbU1dOT0RFX0kyQ10pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjUtXHRub2Rlcy1cdTAwM2VzZnBfcHJvcHNbMF0gPSBQUk9QRVJUWV9FTlRSWV9TVFJJTkcoXCYjMzQ7Y29tcGF0aWJsZVwmIzM0OywgXCYjMzQ7c2ZmLHNmcFwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjY2Olx0bm9kZXMtXHUwMDNlc2ZwX3Byb3BzWzFdID0gUFJPUEVSVFlfRU5UUllfUkVGX0FSUkFZKFwmIzM0O2kyYy1idXNcJiMzNDssIG5vZGVzLVx1MDAzZWkyY19yZWYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02Ny1cdG5vZGVzLVx1MDAzZXNmcF9wcm9wc1syXSA9IFBST1BFUlRZX0VOVFJZX1JFRl9BUlJBWShcJiMzNDt0eC1mYXVsdC1ncGlvc1wmIzM0Oywgbm9kZXMtXHUwMDNlZ3BpbzBfcmVmKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jPTQyMT1zdGF0aWMgaW50IHR4Z2JlX2Nsb2NrX3JlZ2lzdGVyKHN0cnVjdCB0eGdiZSAqdHhnYmUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00MjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQyODpcdHNucHJpbnRmKGNsa19uYW1lLCBzaXplb2YoY2xrX25hbWUpLCBcJiMzNDtpMmNfZGVzaWdud2FyZS4lZFwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDI5LVx0XHQgcGNpX2Rldl9pZChwZGV2KSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQ0NzpzdGF0aWMgaW50IHR4Z2JlX2kyY19yZWFkKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCAqdmFsKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDU1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0NTY6c3RhdGljIGludCB0eGdiZV9pMmNfd3JpdGUodm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgaW50IHZhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDU3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQ2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDY1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBpMmNfcmVnbWFwX2NvbmZpZyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDY2LVx0LnJlZ19iaXRzID0gMzIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQ2Ny1cdC52YWxfYml0cyA9IDMyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0Njg6XHQucmVnX3JlYWQgPSB0eGdiZV9pMmNfcmVhZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDY5Olx0LnJlZ193cml0ZSA9IHR4Z2JlX2kyY193cml0ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDcwLVx0LmZhc3RfaW8gPSB0cnVlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0NzM6c3RhdGljIGludCB0eGdiZV9pMmNfcmVnaXN0ZXIoc3RydWN0IHR4Z2JlICp0eGdiZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDc0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDc1LVx0c3RydWN0IHBsYXRmb3JtX2RldmljZV9pbmZvIGluZm8gPSB7fTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDc2Olx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqaTJjX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDc3Olx0c3RydWN0IHJlZ21hcCAqaTJjX3JlZ21hcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDc4LVx0c3RydWN0IHBjaV9kZXYgKnBkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00ODItXHRwZGV2ID0gd3gtXHUwMDNlcGRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDgzOlx0aTJjX3JlZ21hcCA9IGRldm1fcmVnbWFwX2luaXQoXHUwMDI2cGRldi1cdTAwM2VkZXYsIE5VTEwsIHd4LCBcdTAwMjZpMmNfcmVnbWFwX2NvbmZpZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQ4NDpcdGlmIChJU19FUlIoaTJjX3JlZ21hcCkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDg1LVx0XHR3eF9lcnIod3gsIFwmIzM0O2ZhaWxlZCB0byBpbml0IEkyQyByZWdtYXBcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0ODY6XHRcdHJldHVybiBQVFJfRVJSKGkyY19yZWdtYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00ODctXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00OTAtXHRpbmZvLmZ3bm9kZSA9IHNvZnR3YXJlX25vZGVfZndub2RlKHR4Z2JlLVx1MDAzZW5vZGVzLmdyb3VwW1NXTk9ERV9JMkNdKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDkxOlx0aW5mby5uYW1lID0gXCYjMzQ7aTJjX2Rlc2lnbndhcmVcJiMzNDs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQ5Mi1cdGluZm8uaWQgPSBwY2lfZGV2X2lkKHBkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDk1LVx0aW5mby5udW1fcmVzID0gMTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDk2Olx0aTJjX2RldiA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9mdWxsKFx1MDAyNmluZm8pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0OTc6XHRpZiAoSVNfRVJSKGkyY19kZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0OTg6XHRcdHJldHVybiBQVFJfRVJSKGkyY19kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00OTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjUwMDpcdHR4Z2JlLVx1MDAzZWkyY19kZXYgPSBpMmNfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy01MDEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYz01NzU9aW50IHR4Z2JlX2luaXRfcGh5KHN0cnVjdCB0eGdiZSAqdHhnYmUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02MjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYyMjpcdHJldCA9IHR4Z2JlX2kyY19yZWdpc3Rlcih0eGdiZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTYyMy1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjI0Olx0XHR3eF9lcnIod3gsIFwmIzM0O2ZhaWxlZCB0byBpbml0IGkyYyBpbnRlcmZhY2U6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02MjUtXHRcdGdvdG8gZXJyX3VucmVnaXN0ZXJfY2xrO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjMwLVx0XHR3eF9lcnIod3gsIFwmIzM0O2ZhaWxlZCB0byByZWdpc3RlciBzZnBcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo2MzE6XHRcdGdvdG8gZXJyX3VucmVnaXN0ZXJfaTJjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02MzItXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02MzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYzNjplcnJfdW5yZWdpc3Rlcl9pMmM6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYzNzpcdHBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKHR4Z2JlLVx1MDAzZWkyY19kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02MzgtZXJyX3VucmVnaXN0ZXJfY2xrOlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM9NjUxPXZvaWQgdHhnYmVfcmVtb3ZlX3BoeShzdHJ1Y3QgdHhnYmUgKnR4Z2JlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjcxLVx0cGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIodHhnYmUtXHUwMDNlc2ZwX2Rldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjY3MjpcdHBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKHR4Z2JlLVx1MDAzZWkyY19kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02NzMtXHRjbGtkZXZfZHJvcCh0eGdiZS1cdTAwM2VjbG9jayk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmg9MzkwPXN0cnVjdCB0eGdiZV9oaWNfZXBoeV9nZXRsaW5rIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaDo0MDE6c3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00MDItXHRzdHJ1Y3Qgd3hfaGljX2hkciBoZHI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDA2LVx0dTggYmFuaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oOjQwNzpcdHU4IGkyY19hZGRyZXNzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDA4LVx0dTggcmVzdjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaD00MjU9c3RydWN0IHR4Z2JlX25vZGVzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQyNi1cdGNoYXIgZ3Bpb19uYW1lWzMyXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oOjQyNzpcdGNoYXIgaTJjX25hbWVbMzJdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDI4LVx0Y2hhciBzZnBfbmFtZVszMl07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDMwLVx0c3RydWN0IHByb3BlcnR5X2VudHJ5IGdwaW9fcHJvcHNbMl07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaDo0MzE6XHRzdHJ1Y3QgcHJvcGVydHlfZW50cnkgaTJjX3Byb3BzWzRdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDMyLVx0c3RydWN0IHByb3BlcnR5X2VudHJ5IHNmcF9wcm9wc1s5XTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQzMy1cdHN0cnVjdCBwcm9wZXJ0eV9lbnRyeSBwaHlsaW5rX3Byb3BzWzNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmg6NDM0Olx0c3RydWN0IHNvZnR3YXJlX25vZGVfcmVmX2FyZ3MgaTJjX3JlZlsxXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQzNS1cdHN0cnVjdCBzb2Z0d2FyZV9ub2RlX3JlZl9hcmdzIGdwaW8wX3JlZlsxXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaD00NTk9c3RydWN0IHR4Z2JlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00NjQtXHRzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpzZnBfZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmg6NDY1Olx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqaTJjX2RldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQ2Ni1cdHN0cnVjdCBjbGtfbG9va3VwICpjbG9jaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI2NzYKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyNjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgdHhnYmUgRHJpdmVyIGFuZCBQb3RlbnRpYWwgU3l6a2FsbGVyIEZ1enppbmcgSW1wbGljYXRpb25zKioKCk9rYXksIHNvIGB0eGdiZWAgaXMgY3JlYXRpbmcgYSBgaTJjX2Rlc2lnbndhcmVgIHBsYXRmb3JtIGRldmljZSBhbmQgYSBgc2ZmLHNmcGAgcGxhdGZvcm0gZGV2aWNlLiBUaGF0JiMzOTtzIGludGVyZXN0aW5nLiBJZiBTeXprYWxsZXIsIGluIGl0cyBQQ0kgZnV6emluZywgc29tZWhvdyBtYW5hZ2VzIHRvIGluaXRpYWxpemUgYHR4Z2JlYCwgaXQmIzM5O3MgZ29pbmcgdG8gc3Bhd24gdGhlc2UgY2hpbGRyZW4gLSBhbiBJMkMgYWRhcHRlciBhbmQgYW4gU0ZQIGRldmljZSwgd2hpY2ggc2VlbXMgbGlrZSBhIHByb21pc2luZyBhdHRhY2sgc3VyZmFjZSB0byBtZS4KCkhvd2V2ZXIsIHRoZSBjYXRjaCwgYXMgYWx3YXlzLCBpcyB0aGF0IGB0eGdiZWAgaXMgYSBjb21wbGV4IGRyaXZlci4gSXQgbmVlZHMgcmVhbCBoYXJkd2FyZSBvciBhdCBsZWFzdCBhIGdvb2QgbW9jayB0byByZXNwb25kIGNvcnJlY3RseSB0byBQQ0kgTU1JTyByZWFkcyBhbmQgd3JpdGVzLiBXaGlsZSBTeXprYWxsZXImIzM5O3MgUENJIGZ1enplciBjYW4gZGVmaW5pdGVseSBpbmplY3QgTU1JTyBvcGVyYXRpb25zLCBnZXR0aW5nIGEgY29tcGxpY2F0ZWQgZHJpdmVyIGxpa2UgdGhpcyB0byBmdWxseSBpbml0aWFsaXplIGFuZCByZWdpc3RlciBpdHMgY2hpbGQgcGxhdGZvcm0gZGV2aWNlcywgd2l0aG91dCBhIGNhcmVmdWxseSBjcmFmdGVkIG1vY2ssIGlzIGEgc2lnbmlmaWNhbnQgY2hhbGxlbmdlLgoKTGV0JiMzOTtzIGFzc3VtZSwgZm9yIGEgbW9tZW50LCB0aGF0IHdlICpkbyogZ2V0IGl0IHRvIGluaXRpYWxpemUuIFRoZSBJMkMgYWRhcHRlciBpcyBhbiBgaTJjX2Rlc2lnbndhcmVgIGRldmljZSwgd2hpY2ggbWVhbnMgdGhlIFNGUCBkcml2ZXIgd2lsbCBiZSB0cnlpbmcgdG8gcmVhZCBmcm9tIHRoZSBJMkMgYnVzLiBBbmQsIHNpbmNlIGBpMmNfZGVzaWdud2FyZWAgcmVsaWVzIG9uIGB0eGdiZWAmIzM5O3MgTU1JTyBmb3IgdGhlIGFjdHVhbCBJMkMgdHJhbnNhY3Rpb25zLCB3ZSYjMzk7cmUgaW4gYSBzaXR1YXRpb24gd2hlcmUgcmFuZG9tIE1NSU8gcmVzcG9uc2VzIGZyb20gU3l6a2FsbGVyIHdpbGwgYWxtb3N0IGNlcnRhaW5seSBsZWFkIHRvIGVpdGhlciBmYWlsaW5nIEkyQyByZWFkcyBvciwgbW9yZSBpbnRlcmVzdGluZ2x5LCB0aGUgcmV0dXJuIG9mIGNvbXBsZXRlbHkgZ2FyYmFnZSBkYXRhLgoKSWYgdGhlIEkyQyByZWFkIHJldHVybnMganVuaywgYHNmcF9zbV9tb2RfcHJvYmVgIGlzIGdvaW5nIHRvIHJlYWQgZnJvbSB0aGUgRUVQUk9NLiBUaGlzIGlzIHdoZXJlIHRoaW5ncyBnZXQgcmVhbGx5IGludGVyZXN0aW5nOyB0aGUgU0ZQIGRyaXZlciBpcyBnb2luZyB0byB0cnkgdG8gcHJvY2VzcyBiYWQgRUVQUk9NIGRhdGEuIE5vdyBJIG5lZWQgdG8gdGFrZSBhIGxvb2sgYXQgYHNmcF9zbV9tb2RfcHJvYmVgIGFuZCBzZWUgd2hhdCBpdCBkb2VzIHdpdGggdGhpcyBub25zZW5zZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvc2ZwLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNDk0LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsyNDk0Olx0c3RhdGljIGludCBzZnBfc21fbW9kX3Byb2JlKHN0cnVjdCBzZnAgKnNmcCwgYm9vbCByZXBvcnQpXG4yNDk1Olx0e1xuMjQ5NjpcdFx0LyogU0ZQIG1vZHVsZSBpbnNlcnRlZCAtIHJlYWQgSTJDIGRhdGEgKi9cbjI0OTc6XHRcdHN0cnVjdCBzZnBfZWVwcm9tX2lkIGlkO1xuMjQ5ODpcdFx0Ym9vbCBjb3Rzd29ya3Nfc2ZiZztcbjI0OTk6XHRcdHVuc2lnbmVkIGludCBtYXNrO1xuMjUwMDpcdFx0Ym9vbCBjb3Rzd29ya3M7XG4yNTAxOlx0XHR1OCBjaGVjaztcbjI1MDI6XHRcdGludCByZXQ7XG4yNTAzOlx0XG4yNTA0Olx0XHRzZnAtXHUwMDNlaTJjX2Jsb2NrX3NpemUgPSBzZnAtXHUwMDNlaTJjX21heF9ibG9ja19zaXplO1xuMjUwNTpcdFxuMjUwNjpcdFx0cmV0ID0gc2ZwX3JlYWQoc2ZwLCBmYWxzZSwgMCwgXHUwMDI2aWQuYmFzZSwgc2l6ZW9mKGlkLmJhc2UpKTtcbjI1MDc6XHRcdGlmIChyZXQgXHUwMDNjIDApIHtcbjI1MDg6XHRcdFx0aWYgKHJlcG9ydClcbjI1MDk6XHRcdFx0XHRkZXZfZXJyKHNmcC1cdTAwM2VkZXYsIFwmIzM0O2ZhaWxlZCB0byByZWFkIEVFUFJPTTogJXBlXFxuXCYjMzQ7LFxuMjUxMDpcdFx0XHRcdFx0RVJSX1BUUihyZXQpKTtcbjI1MTE6XHRcdFx0cmV0dXJuIC1FQUdBSU47XG4yNTEyOlx0XHR9XG4yNTEzOlx0XG4yNTE0Olx0XHRpZiAocmV0ICE9IHNpemVvZihpZC5iYXNlKSkge1xuMjUxNTpcdFx0XHRkZXZfZXJyKHNmcC1cdTAwM2VkZXYsIFwmIzM0O0VFUFJPTSBzaG9ydCByZWFkOiAlcGVcXG5cJiMzNDssIEVSUl9QVFIocmV0KSk7XG4yNTE2Olx0XHRcdHJldHVybiAtRUFHQUlOO1xuMjUxNzpcdFx0fVxuMjUxODpcdFxuMjUxOTpcdFx0LyogU29tZSBTRlAgbW9kdWxlcyAoZS5nLiBOb2tpYSAzRkU0NjU0MUFBKSBsb2NrIHVwIGlmIHJlYWQgZnJvbVxuMjUyMDpcdFx0ICogYWRkcmVzcyAweDUxIGlzIGp1c3Qgb25lIGJ5dGUgYXQgYSB0aW1lLiBBbHNvIFNGRi04NDcyIHJlcXVpcmVzXG4yNTIxOlx0XHQgKiB0aGF0IEVFUFJPTSBzdXBwb3J0cyBhdG9taWMgMTZiaXQgcmVhZCBvcGVyYXRpb24gZm9yIGRpYWdub3N0aWNcbjI1MjI6XHRcdCAqIGZpZWxkcywgc28gZG8gbm90IHN3aXRjaCB0byBvbmUgYnl0ZSByZWFkaW5nIGF0IGEgdGltZSB1bmxlc3MgaXRcbjI1MjM6XHRcdCAqIGlzIHJlYWxseSByZXF1aXJlZCBhbmQgd2UgaGF2ZSBubyBvdGhlciBvcHRpb24uXG4yNTI0Olx0XHQgKi9cbjI1MjU6XHRcdGlmIChzZnBfaWRfbmVlZHNfYnl0ZV9pbyhzZnAsIFx1MDAyNmlkLmJhc2UsIHNpemVvZihpZC5iYXNlKSkpIHtcbjI1MjY6XHRcdFx0ZGV2X2luZm8oc2ZwLVx1MDAzZWRldixcbjI1Mjc6XHRcdFx0XHQgXCYjMzQ7RGV0ZWN0ZWQgYnJva2VuIFJUTDg2NzIvUlRMOTYwMUMgZW11bGF0ZWQgRUVQUk9NXFxuXCYjMzQ7KTtcbjI1Mjg6XHRcdFx0ZGV2X2luZm8oc2ZwLVx1MDAzZWRldixcbjI1Mjk6XHRcdFx0XHQgXCYjMzQ7U3dpdGNoaW5nIHRvIHJlYWRpbmcgRUVQUk9NIHRvIG9uZSBieXRlIGF0IGEgdGltZVxcblwmIzM0Oyk7XG4yNTMwOlx0XHRcdHNmcC1cdTAwM2VpMmNfYmxvY2tfc2l6ZSA9IDE7XG4yNTMxOlx0XG4yNTMyOlx0XHRcdHJldCA9IHNmcF9yZWFkKHNmcCwgZmFsc2UsIDAsIFx1MDAyNmlkLmJhc2UsIHNpemVvZihpZC5iYXNlKSk7XG4yNTMzOlx0XHRcdGlmIChyZXQgXHUwMDNjIDApIHtcbjI1MzQ6XHRcdFx0XHRpZiAocmVwb3J0KVxuMjUzNTpcdFx0XHRcdFx0ZGV2X2VycihzZnAtXHUwMDNlZGV2LFxuMjUzNjpcdFx0XHRcdFx0XHRcJiMzNDtmYWlsZWQgdG8gcmVhZCBFRVBST006ICVwZVxcblwmIzM0OyxcbjI1Mzc6XHRcdFx0XHRcdFx0RVJSX1BUUihyZXQpKTtcbjI1Mzg6XHRcdFx0XHRyZXR1cm4gLUVBR0FJTjtcbjI1Mzk6XHRcdFx0fVxuMjU0MDpcdFxuMjU0MTpcdFx0XHRpZiAocmV0ICE9IHNpemVvZihpZC5iYXNlKSkge1xuMjU0MjpcdFx0XHRcdGRldl9lcnIoc2ZwLVx1MDAzZWRldiwgXCYjMzQ7RUVQUk9NIHNob3J0IHJlYWQ6ICVwZVxcblwmIzM0OyxcbjI1NDM6XHRcdFx0XHRcdEVSUl9QVFIocmV0KSk7XG4yNTQ0Olx0XHRcdFx0cmV0dXJuIC1FQUdBSU47XG4yNTQ1Olx0XHRcdH1cbjI1NDY6XHRcdH1cbjI1NDc6XHRcbjI1NDg6XHRcdC8qIENvdHN3b3JrcyBkbyBub3Qgc2VlbSB0byB1cGRhdGUgdGhlIGNoZWNrc3VtcyB3aGVuIHRoZXlcbjI1NDk6XHRcdCAqIGRvIHRoZSBmaW5hbCBwcm9ncmFtbWluZyB3aXRoIHRoZSBmaW5hbCBtb2R1bGUgcGFydCBudW1iZXIsXG4yNTUwOlx0XHQgKiBzZXJpYWwgbnVtYmVyIGFuZCBkYXRlIGNvZGUuXG4yNTUxOlx0XHQgKi9cbjI1NTI6XHRcdGNvdHN3b3JrcyA9ICFtZW1jbXAoaWQuYmFzZS52ZW5kb3JfbmFtZSwgXCYjMzQ7Q09UU1dPUktTICAgICAgIFwmIzM0OywgMTYpO1xuMjU1MzpcdFx0Y290c3dvcmtzX3NmYmcgPSAhbWVtY21wKGlkLmJhc2UudmVuZG9yX3BuLCBcJiMzNDtTRkJHXCYjMzQ7LCA0KTtcbjI1NTQ6XHRcbjI1NTU6XHRcdC8qIENvdHN3b3JrcyBTRkYgbW9kdWxlIEVFUFJPTSBkbyBub3QgYWx3YXlzIGhhdmUgdmFsaWQgcGh5c19pZCxcbjI1NTY6XHRcdCAqIHBoeXNfZXh0X2lkLCBhbmQgY29ubmVjdG9yIGJ5dGVzLiAgUmV3cml0ZSBTRkYgRUVQUk9NIGJ5dGVzIGlmXG4yNTU3Olx0XHQgKiBDb3Rzd29ya3MgUE4gbWF0Y2hlcyBhbmQgYnl0ZXMgYXJlIG5vdCBjb3JyZWN0LlxuMjU1ODpcdFx0ICovXG4yNTU5Olx0XHRpZiAoY290c3dvcmtzIFx1MDAyNlx1MDAyNiBjb3Rzd29ya3Nfc2ZiZykge1xuMjU2MDpcdFx0XHRyZXQgPSBzZnBfY290c3dvcmtzX2ZpeHVwX2NoZWNrKHNmcCwgXHUwMDI2aWQpO1xuMjU2MTpcdFx0XHRpZiAocmV0IFx1MDAzYyAwKVxuMjU2MjpcdFx0XHRcdHJldHVybiByZXQ7XG4yNTYzOlx0XHR9XG4yNTY0Olx0XG4yNTY1Olx0XHQvKiBWYWxpZGF0ZSB0aGUgY2hlY2tzdW0gb3ZlciB0aGUgYmFzZSBzdHJ1Y3R1cmUgKi9cbjI1NjY6XHRcdGNoZWNrID0gc2ZwX2NoZWNrKFx1MDAyNmlkLmJhc2UsIHNpemVvZihpZC5iYXNlKSAtIDEpO1xuMjU2NzpcdFx0aWYgKGNoZWNrICE9IGlkLmJhc2UuY2NfYmFzZSkge1xuMjU2ODpcdFx0XHRpZiAoY290c3dvcmtzKSB7XG4yNTY5Olx0XHRcdFx0ZGV2X3dhcm4oc2ZwLVx1MDAzZWRldixcbjI1NzA6XHRcdFx0XHRcdCBcJiMzNDtFRVBST00gYmFzZSBzdHJ1Y3R1cmUgY2hlY2tzdW0gZmFpbHVyZSAoMHglMDJ4ICE9IDB4JTAyeClcXG5cJiMzNDssXG4yNTcxOlx0XHRcdFx0XHQgY2hlY2ssIGlkLmJhc2UuY2NfYmFzZSk7XG4yNTcyOlx0XHRcdH0gZWxzZSB7XG4yNTczOlx0XHRcdFx0ZGV2X2VycihzZnAtXHUwMDNlZGV2LFxuMjU3NDpcdFx0XHRcdFx0XCYjMzQ7RUVQUk9NIGJhc2Ugc3RydWN0dXJlIGNoZWNrc3VtIGZhaWx1cmU6IDB4JTAyeCAhPSAweCUwMnhcXG5cJiMzNDssXG4yNTc1Olx0XHRcdFx0XHRjaGVjaywgaWQuYmFzZS5jY19iYXNlKTtcbjI1NzY6XHRcdFx0XHRwcmludF9oZXhfZHVtcChLRVJOX0VSUiwgXCYjMzQ7c2ZwIEVFOiBcJiMzNDssIERVTVBfUFJFRklYX09GRlNFVCxcbjI1Nzc6XHRcdFx0XHRcdCAgICAgICAxNiwgMSwgXHUwMDI2aWQsIHNpemVvZihpZCksIHRydWUpO1xuMjU3ODpcdFx0XHRcdHJldHVybiAtRUlOVkFMO1xuMjU3OTpcdFx0XHR9XG4yNTgwOlx0XHR9XG4yNTgxOlx0XG4yNTgyOlx0XHRyZXQgPSBzZnBfcmVhZChzZnAsIGZhbHNlLCBTRlBfQ0NfQkFTRSAmIzQzOyAxLCBcdTAwMjZpZC5leHQsIHNpemVvZihpZC5leHQpKTtcbjI1ODM6XHRcdGlmIChyZXQgXHUwMDNjIDApIHtcbjI1ODQ6XHRcdFx0aWYgKHJlcG9ydClcbjI1ODU6XHRcdFx0XHRkZXZfZXJyKHNmcC1cdTAwM2VkZXYsIFwmIzM0O2ZhaWxlZCB0byByZWFkIEVFUFJPTTogJXBlXFxuXCYjMzQ7LFxuMjU4NjpcdFx0XHRcdFx0RVJSX1BUUihyZXQpKTtcbjI1ODc6XHRcdFx0cmV0dXJuIC1FQUdBSU47XG4yNTg4Olx0XHR9XG4yNTg5Olx0XG4yNTkwOlx0XHRpZiAocmV0ICE9IHNpemVvZihpZC5leHQpKSB7XG4yNTkxOlx0XHRcdGRldl9lcnIoc2ZwLVx1MDAzZWRldiwgXCYjMzQ7RUVQUk9NIHNob3J0IHJlYWQ6ICVwZVxcblwmIzM0OywgRVJSX1BUUihyZXQpKTtcbjI1OTI6XHRcdFx0cmV0dXJuIC1FQUdBSU47XG4yNTkzOlx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1MDk4CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkVFUFJPTSBDaGVja3N1bSBWZXJpZmljYXRpb24qKgoKT2theSwgc28gdGhlIEVFUFJPTSBjaGVja3N1bSBpcyBhYnNvbHV0ZWx5IGNyaXRpY2FsIGhlcmU7IGl0ICpoYXMqIHRvIGJlIHZhbGlkLiBUaGUgY29kZSB1c2VzIGBzZnBfY2hlY2tgIG9uIHRoZSBiYXNlIElEIHNlY3Rpb24sIGV4Y2x1ZGluZyB0aGUgZmluYWwgY2hlY2tzdW0gYnl0ZSBpdHNlbGYuIEkgc2VlIHRoYXQgYGNoZWNrYCB2YWx1ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIHN0b3JlZCBgY2NfYmFzZWAgdmFsdWUgaW4gdGhlIElEIHN0cnVjdHVyZS4gSWYgdGhhdCBjaGVjayBmYWlscywgdGhlIGZ1bmN0aW9uIHJldHVybnMgYC1FSU5WQUxgLCBpbmRpY2F0aW5nIGFuIGludmFsaWQgRUVQUk9NIGRhdGEuCgpHaXZlbiB0aGUgbmF0dXJlIG9mIFN5emthbGxlciYjMzk7cyByYW5kb20gSTJDIHJlc3BvbnNlcywgY2hlY2tzdW0gZmFpbHVyZXMgYXJlIGhpZ2hseSBwcm9iYWJsZS4gSXQmIzM5O3MgZXNzZW50aWFsbHkgYSBnYXJiYWdlLWluLCBnYXJiYWdlLW91dCBzaXR1YXRpb24uIEhvd2V2ZXIsIHRoZXJlJiMzOTtzIGEgdmVuZG9yLXNwZWNpZmljIGV4Y2VwdGlvbiB0byB0aGlzIHJ1bGUuIElmIHRoZSB2ZW5kb3IgaXMgJiMzNDtDT1RTV09SS1MgICAgICAgJiMzNDssIHRoZSBjb2RlIGRvZXNuJiMzOTt0IG91dHJpZ2h0IGZhaWwuIEluc3RlYWQsIGl0IHNlZW1zIHRvIGVtaXQgYSB3YXJuaW5nIGFuZCBwcm9jZWVkcyB3aXRoIHRoZSByZXN0IG9mIHRoZSByZWFkLgoKSWYgdGhhdCBpbml0aWFsIGNoZWNrc3VtIHBhc3NlcyAob3IgdGhlIHZlbmRvciBpcyBDT1RTKSwgdGhlIGNvZGUgY29udGludWVzIHRvIHJlYWQgdGhlIGV4dGVuZGVkIElEIGluZm9ybWF0aW9uLiBBbmQsIG9mIGNvdXJzZSwgYWZ0ZXIgcmVhZGluZyB0aGUgZXh0ZW5kZWQgZGF0YSwgaXQmIzM5O2xsIHRoZW4gZ28gb24gdG8gY2hlY2sgdGhhdCBleHRlbmRlZCBjaGVja3N1bS4gVGhpcyBpcyBhIHN0YW5kYXJkIGFuZCBuZWNlc3NhcnkgY2hlY2suIEkmIzM5O2xsIG5lZWQgdG8gcmVtZW1iZXIgdGhpcyB3aGVuIGNvbnNpZGVyaW5nIGhvdyB0byBoYW5kbGUgcG90ZW50aWFsIGRhdGEgY29ycnVwdGlvbiBmcm9tIFN5emthbGxlciBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9zZnAuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI1OTQsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzI1OTQ6XHRcbjI1OTU6XHRcdGNoZWNrID0gc2ZwX2NoZWNrKFx1MDAyNmlkLmV4dCwgc2l6ZW9mKGlkLmV4dCkgLSAxKTtcbjI1OTY6XHRcdGlmIChjaGVjayAhPSBpZC5leHQuY2NfZXh0KSB7XG4yNTk3Olx0XHRcdGlmIChjb3Rzd29ya3MpIHtcbjI1OTg6XHRcdFx0XHRkZXZfd2FybihzZnAtXHUwMDNlZGV2LFxuMjU5OTpcdFx0XHRcdFx0IFwmIzM0O0VFUFJPTSBleHRlbmRlZCBzdHJ1Y3R1cmUgY2hlY2tzdW0gZmFpbHVyZSAoMHglMDJ4ICE9IDB4JTAyeClcXG5cJiMzNDssXG4yNjAwOlx0XHRcdFx0XHQgY2hlY2ssIGlkLmV4dC5jY19leHQpO1xuMjYwMTpcdFx0XHR9IGVsc2Uge1xuMjYwMjpcdFx0XHRcdGRldl9lcnIoc2ZwLVx1MDAzZWRldixcbjI2MDM6XHRcdFx0XHRcdFwmIzM0O0VFUFJPTSBleHRlbmRlZCBzdHJ1Y3R1cmUgY2hlY2tzdW0gZmFpbHVyZTogMHglMDJ4ICE9IDB4JTAyeFxcblwmIzM0OyxcbjI2MDQ6XHRcdFx0XHRcdGNoZWNrLCBpZC5leHQuY2NfZXh0KTtcbjI2MDU6XHRcdFx0XHRwcmludF9oZXhfZHVtcChLRVJOX0VSUiwgXCYjMzQ7c2ZwIEVFOiBcJiMzNDssIERVTVBfUFJFRklYX09GRlNFVCxcbjI2MDY6XHRcdFx0XHRcdCAgICAgICAxNiwgMSwgXHUwMDI2aWQsIHNpemVvZihpZCksIHRydWUpO1xuMjYwNzpcdFx0XHRcdG1lbXNldChcdTAwMjZpZC5leHQsIDAsIHNpemVvZihpZC5leHQpKTtcbjI2MDg6XHRcdFx0fVxuMjYwOTpcdFx0fVxuMjYxMDpcdFxuMjYxMTpcdFx0c2ZwLVx1MDAzZWlkID0gaWQ7XG4yNjEyOlx0XG4yNjEzOlx0XHRkZXZfaW5mbyhzZnAtXHUwMDNlZGV2LCBcJiMzNDttb2R1bGUgJS4qcyAlLipzIHJldiAlLipzIHNuICUuKnMgZGMgJS4qc1xcblwmIzM0OyxcbjI2MTQ6XHRcdFx0IChpbnQpc2l6ZW9mKGlkLmJhc2UudmVuZG9yX25hbWUpLCBpZC5iYXNlLnZlbmRvcl9uYW1lLFxuMjYxNTpcdFx0XHQgKGludClzaXplb2YoaWQuYmFzZS52ZW5kb3JfcG4pLCBpZC5iYXNlLnZlbmRvcl9wbixcbjI2MTY6XHRcdFx0IChpbnQpc2l6ZW9mKGlkLmJhc2UudmVuZG9yX3JldiksIGlkLmJhc2UudmVuZG9yX3JldixcbjI2MTc6XHRcdFx0IChpbnQpc2l6ZW9mKGlkLmV4dC52ZW5kb3Jfc24pLCBpZC5leHQudmVuZG9yX3NuLFxuMjYxODpcdFx0XHQgKGludClzaXplb2YoaWQuZXh0LmRhdGVjb2RlKSwgaWQuZXh0LmRhdGVjb2RlKTtcbjI2MTk6XHRcbjI2MjA6XHRcdC8qIENoZWNrIHdoZXRoZXIgd2Ugc3VwcG9ydCB0aGlzIG1vZHVsZSAqL1xuMjYyMTpcdFx0aWYgKCFzZnAtXHUwMDNldHlwZS1cdTAwM2Vtb2R1bGVfc3VwcG9ydGVkKFx1MDAyNmlkKSkge1xuMjYyMjpcdFx0XHRkZXZfZXJyKHNmcC1cdTAwM2VkZXYsXG4yNjIzOlx0XHRcdFx0XCYjMzQ7bW9kdWxlIGlzIG5vdCBzdXBwb3J0ZWQgLSBwaHlzIGlkIDB4JTAyeCAweCUwMnhcXG5cJiMzNDssXG4yNjI0Olx0XHRcdFx0c2ZwLVx1MDAzZWlkLmJhc2UucGh5c19pZCwgc2ZwLVx1MDAzZWlkLmJhc2UucGh5c19leHRfaWQpO1xuMjYyNTpcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjI2MjY6XHRcdH1cbjI2Mjc6XHRcbjI2Mjg6XHRcdGlmIChzZnAtXHUwMDNlaWQuZXh0LnNmZjg0NzJfY29tcGxpYW5jZSAhPSBTRlBfU0ZGODQ3Ml9DT01QTElBTkNFX05PTkUpIHtcbjI2Mjk6XHRcdFx0cmV0ID0gc2ZwX21vZHVsZV9wYXJzZV9zZmY4NDcyKHNmcCk7XG4yNjMwOlx0XHRcdGlmIChyZXQgXHUwMDNjIDApXG4yNjMxOlx0XHRcdFx0cmV0dXJuIHJldDtcbjI2MzI6XHRcdH1cbjI2MzM6XHRcbjI2MzQ6XHRcdC8qIFBhcnNlIHRoZSBtb2R1bGUgcG93ZXIgcmVxdWlyZW1lbnQgKi9cbjI2MzU6XHRcdHJldCA9IHNmcF9tb2R1bGVfcGFyc2VfcG93ZXIoc2ZwKTtcbjI2MzY6XHRcdGlmIChyZXQgXHUwMDNjIDApXG4yNjM3Olx0XHRcdHJldHVybiByZXQ7XG4yNjM4Olx0XG4yNjM5Olx0XHRzZnBfbW9kdWxlX3BhcnNlX3JhdGVfc2VsZWN0KHNmcCk7XG4yNjQwOlx0XG4yNjQxOlx0XHRtYXNrID0gU0ZQX0ZfUFJFU0VOVDtcbjI2NDI6XHRcdGlmIChzZnAtXHUwMDNlZ3Bpb1tHUElPX1RYX0RJU0FCTEVdKVxuMjY0MzpcdFx0XHRtYXNrIHw9IFNGUF9GX1RYX0RJU0FCTEU7XG4yNjQ0Olx0XHRpZiAoc2ZwLVx1MDAzZWdwaW9bR1BJT19UWF9GQVVMVF0pXG4yNjQ1Olx0XHRcdG1hc2sgfD0gU0ZQX0ZfVFhfRkFVTFQ7XG4yNjQ2Olx0XHRpZiAoc2ZwLVx1MDAzZWdwaW9bR1BJT19MT1NdKVxuMjY0NzpcdFx0XHRtYXNrIHw9IFNGUF9GX0xPUztcbjI2NDg6XHRcdGlmIChzZnAtXHUwMDNlZ3Bpb1tHUElPX1JTMF0pXG4yNjQ5Olx0XHRcdG1hc2sgfD0gU0ZQX0ZfUlMwO1xuMjY1MDpcdFx0aWYgKHNmcC1cdTAwM2VncGlvW0dQSU9fUlMxXSlcbjI2NTE6XHRcdFx0bWFzayB8PSBTRlBfRl9SUzE7XG4yNjUyOlx0XG4yNjUzOlx0XHRzZnAtXHUwMDNlbW9kdWxlX3Rfc3RhcnRfdXAgPSBUX1NUQVJUX1VQO1xuMjY1NDpcdFx0c2ZwLVx1MDAzZW1vZHVsZV90X3dhaXQgPSBUX1dBSVQ7XG4yNjU1Olx0XHRzZnAtXHUwMDNlcGh5X3RfcmV0cnkgPSBUX1BIWV9SRVRSWTtcbjI2NTY6XHRcbjI2NTc6XHRcdHNmcC1cdTAwM2VzdGF0ZV9pZ25vcmVfbWFzayA9IDA7XG4yNjU4Olx0XG4yNjU5Olx0XHRpZiAoc2ZwLVx1MDAzZWlkLmJhc2UuZXh0ZW5kZWRfY2MgPT0gU0ZGODAyNF9FQ0NfMTBHQkFTRV9UX1NGSSB8fFxuMjY2MDpcdFx0ICAgIHNmcC1cdTAwM2VpZC5iYXNlLmV4dGVuZGVkX2NjID09IFNGRjgwMjRfRUNDXzEwR0JBU0VfVF9TUiB8fFxuMjY2MTpcdFx0ICAgIHNmcC1cdTAwM2VpZC5iYXNlLmV4dGVuZGVkX2NjID09IFNGRjgwMjRfRUNDXzVHQkFTRV9UIHx8XG4yNjYyOlx0XHQgICAgc2ZwLVx1MDAzZWlkLmJhc2UuZXh0ZW5kZWRfY2MgPT0gU0ZGODAyNF9FQ0NfMl81R0JBU0VfVClcbjI2NjM6XHRcdFx0c2ZwLVx1MDAzZW1kaW9fcHJvdG9jb2wgPSBNRElPX0kyQ19DNDU7XG4yNjY0Olx0XHRlbHNlIGlmIChzZnAtXHUwMDNlaWQuYmFzZS5lMTAwMF9iYXNlX3QpXG4yNjY1Olx0XHRcdHNmcC1cdTAwM2VtZGlvX3Byb3RvY29sID0gTURJT19JMkNfTUFSVkVMTF9DMjI7XG4yNjY2Olx0XHRlbHNlXG4yNjY3Olx0XHRcdHNmcC1cdTAwM2VtZGlvX3Byb3RvY29sID0gTURJT19JMkNfTk9ORTtcbjI2Njg6XHRcbjI2Njk6XHRcdHNmcC1cdTAwM2VxdWlyayA9IHNmcF9sb29rdXBfcXVpcmsoXHUwMDI2aWQpO1xuMjY3MDpcdFxuMjY3MTpcdFx0bXV0ZXhfbG9jayhcdTAwMjZzZnAtXHUwMDNlc3RfbXV0ZXgpO1xuMjY3MjpcdFx0LyogSW5pdGlhbGlzZSBzdGF0ZSBiaXRzIHRvIHVzZSBmcm9tIGhhcmR3YXJlICovXG4yNjczOlx0XHRzZnAtXHUwMDNlc3RhdGVfaHdfbWFzayA9IG1hc2s7XG4yNjc0Olx0XG4yNjc1Olx0XHQvKiBXZSB3YW50IHRvIGRyaXZlIHRoZSByYXRlIHNlbGVjdCBwaW5zIHRoYXQgdGhlIG1vZHVsZSBpcyB1c2luZyAqL1xuMjY3NjpcdFx0c2ZwLVx1MDAzZXN0YXRlX2h3X2RyaXZlIHw9IHNmcC1cdTAwM2Vyc19zdGF0ZV9tYXNrO1xuMjY3NzpcdFxuMjY3ODpcdFx0aWYgKHNmcC1cdTAwM2VxdWlyayBcdTAwMjZcdTAwMjYgc2ZwLVx1MDAzZXF1aXJrLVx1MDAzZWZpeHVwKVxuMjY3OTpcdFx0XHRzZnAtXHUwMDNlcXVpcmstXHUwMDNlZml4dXAoc2ZwKTtcbjI2ODA6XHRcbjI2ODE6XHRcdHNmcC1cdTAwM2VzdGF0ZV9od19tYXNrIFx1MDAyNj0gfnNmcC1cdTAwM2VzdGF0ZV9pZ25vcmVfbWFzaztcbjI2ODI6XHRcdG11dGV4X3VubG9jayhcdTAwMjZzZnAtXHUwMDNlc3RfbXV0ZXgpO1xuMjY4MzpcdFxuMjY4NDpcdFx0cmV0dXJuIDA7XG4yNjg1Olx0fVxuMjY4NjpcdFxuMjY4NzpcdHN0YXRpYyB2b2lkIHNmcF9zbV9tb2RfcmVtb3ZlKHN0cnVjdCBzZnAgKnNmcClcbjI2ODg6XHR7XG4yNjg5Olx0XHRpZiAoc2ZwLVx1MDAzZXNtX21vZF9zdGF0ZSBcdTAwM2UgU0ZQX01PRF9XQUlUREVWKVxuMjY5MDpcdFx0XHRzZnBfbW9kdWxlX3JlbW92ZShzZnAtXHUwMDNlc2ZwX2J1cyk7XG4yNjkxOlx0XG4yNjkyOlx0XHRzZnBfaHdtb25fcmVtb3ZlKHNmcCk7XG4yNjkzOlx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3MzM2CgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMjY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFNGUCBRdWlyayBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBoZXJlJiMzOTtzIG15IGJyZWFrZG93bi4gSWYgdGhlIGNoZWNrc3VtIGZhaWxzLCB3aGljaCBpdCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgd2l0aCByYW5kb20gZGF0YSwgdGhlIGZ1bmN0aW9uIGp1c3QgcmV0dXJucyBgLUVJTlZBTGAuIFRoZSBgc2ZwX2xvb2t1cF9xdWlya2AgZnVuY3Rpb24sIHRoZSBvbmUgdGhlIHBhdGNoIGlzIG1vZGlmeWluZywgaXNuJiMzOTt0IGV2ZW4gdG91Y2hlZC4gVGhlIG9ubHkgd2F5IGFyb3VuZCB0aGlzIHdvdWxkIGJlIGlmIHN5emthbGxlciBjb3VsZCBzb21laG93IGNyYWZ0IGEgKnZhbGlkKiBjaGVja3N1bSBmb3IgdGhlIGRhdGEgaXQmIzM5O3MgdGhyb3dpbmcgYXQgdGhlIHN5c3RlbS4gQnV0LCBhbmQgdGhpcyBpcyBhIGJpZyAmIzM0O2J1dCYjMzQ7LCB0aGUgSTJDIG9yIFBDSSBmdXp6ZXJzIGluIHN5emthbGxlciAoaWYgdGhleSBldmVuIGV4aXN0KSBkb24mIzM5O3QgaGF2ZSBhbnkgY29uY2VwdCBvZiBhbiBTRlAgRUVQUk9NIGNoZWNrc3VtLiBUaGF0IG1ha2VzIGl0IHZpcnR1YWxseSBpbXBvc3NpYmxlIGZvciBzeXprYWxsZXIgdG8gYWN0dWFsbHkgcmVhY2ggdGhlIHBhdGNoJiMzOTtzIHRhcmdldCBmdW5jdGlvbiB2aWEgcmFuZG9tIGZ1enppbmcuCgpOb3csIEkgZGlkIGNvbnNpZGVyIGFub3RoZXIgYXZlbnVlOiBXaGF0IGlmIHN5emthbGxlciBpbmplY3RlZCBhIGRldmljZSB0cmVlIG5vZGUgd2l0aCBhIG1vY2sgSTJDIGFkYXB0ZXIgdGhhdCAqZG9lcyogcmV0dXJuIGEgdmFsaWQgRUVQUk9NPyBCdXQgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYSBzcGVjaWZpYyBtb2NrIGZvciBTRlAgRUVQUk9Ncy4gQWxzbywgdGhlIHBhdGNoIGl0c2VsZiBpcyBqdXN0IGFkZGluZyBhIHN0cmluZyBwcmVmaXggbWF0Y2ggZm9yIHNwZWNpZmljIGhhcmR3YXJlIHF1aXJrcywgd2hpY2ggbWFrZXMgaXRzIGltcGFjdCBxdWl0ZSBzbWFsbCBpbiB0aGlzIGNvbnRleHQuCgpJcyB0aGUgcGF0Y2ggZnVuY3Rpb25hbGx5IGNvcnJlY3Q/IFllcy4gSXMgaXQgYWN0dWFsbHkgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBvdXIgdGVzdGluZyBzZXR1cD8gTm8sIG5vdCByZWFsaXN0aWNhbGx5LiBJdCByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZTogU0ZQIG1vZHVsZXMgYW5kLCBjcnVjaWFsbHksIEkyQyBjb21tdW5pY2F0aW9uIHdpdGggYSB2YWxpZCBFRVBST00gY2hlY2tzdW0uIEV2ZW4gaWYgd2UgKmNvdWxkKiBzb21laG93IG1ha2UgaXQgcmVhY2hhYmxlLCBhbGwgaXQgZG9lcyBpcyBhIHN0cmluZyBtYXRjaCBmb3IgYSBxdWlyay4KCkdpdmVuIGFsbCBvZiB0aGF0LCBJJiMzOTttIGxlYW5pbmcgdG93YXJkcyBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJdCYjMzk7cyBpbmNyZWRpYmx5IGhhcmR3YXJlLXNwZWNpZmljLCBhbmQgZXNzZW50aWFsbHkgdW5yZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gQnV0IGxldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayBpZiB0aGVyZSYjMzk7cyAqYW55KiBleGlzdGluZyBzb2Z0d2FyZSBtb2NrIGZvciBTRlAgb3V0IHRoZXJlIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2ZwX21vY2smIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAxOToyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODAzMwoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcnksIGZyYW1lZCBhcyBteSBpbnRlcm5hbCB0aG91Z2h0IHByb2Nlc3M6CgoqKkludGVybmFsIFJldmlldyBvZiBQb3RlbnRpYWwgU2VsZi1UZXN0IExvY2FsZXMqKgoKQWxyaWdodCwgSSBuZWVkIHRvIHBpbnBvaW50IHRoZSBwb3NzaWJsZSBsb2NhdGlvbnMgb2Ygc2VsZi10ZXN0cy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGNoZWNrIHdpdGhpbiB0aGUgcHJvamVjdCBzdHJ1Y3R1cmUsIHNwZWNpZmljYWxseSB0aGUgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzYCBkaXJlY3Rvcnkgb3IgYW55IG90aGVyIHNpbWlsYXIgZGlyZWN0b3JpZXMgdGhhdCBtaWdodCBob3VzZSBzdWNoIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuIEkmIzM5O2xsIG5lZWQgdG8gY29uZHVjdCBhIHRob3JvdWdoIHNlYXJjaCBmb3IgYW55IGZpbGVzIG9yIG1vZHVsZXMgdGhhdCBtaWdodCBjb250YWluIHRoZSBzdHJpbmdzIGBzZmZgIG9yIGBzZnBgLiBUaGVzZSBhcmUgcHJldHR5IHNwZWNpZmljIHRlcm1zLCBzbyBhIHF1aWNrIHNlYXJjaCBzaG91bGQgYmUgcmVsYXRpdmVseSBlZmZlY3RpdmUuIEkmIzM5O20gbG9va2luZyBmb3IgcGF0dGVybnMgaW4gdGhlIHdheSB0aGlzIHN5c3RlbSBpcyBzZXQgdXAuIEtub3dpbmcgd2hlcmUgc2ltaWxhciBmZWF0dXJlcyBhbmQgdGVzdGluZyBwcm90b2NvbHMgYXJlIHN0b3JlZCBpcyB0aGUgZ29hbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZmYsc2ZwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7dG9vbHMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzgyNTIKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBzdW1tYXJ5LCB0YWtpbmcgb24gdGhlIHBlcnNvbmEgeW91JiMzOTt2ZSByZXF1ZXN0ZWQsIHRhaWxvcmVkIHRvIGFuIGV4cGVydCBsaWtlIHlvdXJzZWxmOgoKKipDaGVja2luZyBmb3IgYHNmZixzZnBgIGluIGBhcmNoL3VtYCoqCgpSaWdodCwgbGV0JiMzOTtzIGp1c3QgcXVpY2tseSBydW4gYSBjaGVjay4gSSBuZWVkIHRvIHNlZSBpZiBhbnkgaW5zdGFuY2VzIG9mIGBzZmZgIG9yIGBzZnBgIGFyZSBsdXJraW5nIGFyb3VuZCB3aXRoaW4gYGFyY2gvdW1gLCB0aGUgVXNlci1Nb2RlIExpbnV4IGFyY2hpdGVjdHVyZS4gTXkgaW50dWl0aW9uIHNheXMgaXQmIzM5O3MgcHJvYmFibHkgdW5saWtlbHksIGdpdmVuIHRoZSBuYXR1cmUgb2YgVU1MLCBidXQgYSBkb3VibGUtY2hlY2sgaXMgYWx3YXlzIHBydWRlbnQsIGVzcGVjaWFsbHkgd2hlbiBkZWFsaW5nIHdpdGggc3VjaCBmb3VuZGF0aW9uYWwgY29kZS4gSSBoYXZlIGEgZmVlbGluZyBJIGhhdmVuJiMzOTt0IGNvbWUgYWNyb3NzIGl0IG15c2VsZiwgYnV0IG9uZSBjYW4mIzM5O3QgYmUgdG9vIGNhcmVmdWwgd2hlbiBtYWludGFpbmluZyBzdWNoIGEgc3lzdGVtLiBCZXN0IHRvIGJlIHN5c3RlbWF0aWMgYW5kIGVuc3VyZSBubyB1bmV4cGVjdGVkIGJlaGF2aW9yIHN1cmZhY2VzIGluIHRoaXMgbmljaGUgaW1wbGVtZW50YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDE5OjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2ZmLHNmcCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvdW0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg0ODMKCQkJCQkJCW91dHB1dDogODYKCQkJCQkJCXRob3VnaHRzOiAxOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgU0ZQIFF1aXJrIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgaXMgZW50aXJlbHkgaGFyZHdhcmUtZGVwZW5kZW50LiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBxdWlyaywgYFNGUF9RVUlSS19GX1BSRUZJWGAsIGFuZCB0aGVuIHRpZXMgaXQgc3BlY2lmaWNhbGx5IHRvIHR3byBTRlAgbW9kdWxlczogJiMzNDtGUyYjMzQ7ICYjMzQ7WEdTLVNGUC1PTlQtTUFDSSYjMzQ7IGFuZCAmIzM0O09FTSYjMzQ7ICYjMzQ7WEdTUE9OU1QyMDAxJiMzNDsuIFRoaXMgaXMgYWxsIGFib3V0IGhhbmRsaW5nIHNvbWUgaGFyZHdhcmUtc3BlY2lmaWMgYmVoYXZpb3IgZm9yIHRoZXNlIHBhcnRpY3VsYXIgcGh5c2ljYWwgU0ZQIG1vZHVsZXMuIE15IGFuYWx5c2lzIGNvbmZpcm1zIHRoYXQgcmVhY2hpbmcgdGhpcyBjb2RlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgaXMgdmlydHVhbGx5IGltcG9zc2libGUgd2l0aG91dCBhIHZlcnkgc3BlY2lmaWMgbW9jay11cCB0aGF0IGNhbiBlbXVsYXRlIHRoZSBleGFjdCB2ZW5kb3Igc3RyaW5ncyBhbmQgcGFzcyB0aGUgRUVQUk9NIGNoZWNrc3VtIHZhbGlkYXRpb24uIFRoYXQgdmFsaWRhdGlvbiBpcyBrZXkgaGVyZTsgaXQgY29uZmlybXMgdGhlIGlkZW50aXR5IG9mIHRoZSBoYXJkd2FyZS4gR2l2ZW4gdGhhdCBjb25zdHJhaW50LCBmdXp6aW5nIHRoaXMgY29kZSBpcyBhIHdhc3RlIG9mIHJlc291cmNlcy4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgYSB2ZXJ5IHRpZ2h0bHkgY29udHJvbGxlZCBoYXJkd2FyZSBpbnRlcmFjdGlvbiB0aGF0IGNhbiYjMzk7dCBiZSBlYXNpbHkgcmVwcm9kdWNlZCBpbiBhbnkgZ2VuZXJhbC1wdXJwb3NlIHZpcnR1YWwgZW52aXJvbm1lbnQuIEl0IHdvdWxkIHJlcXVpcmUgYnVpbGRpbmcgYSBwdXJwb3NlLWJ1aWx0IGhhcmR3YXJlIG1pbWljLCBhbmQgYXQgdGhhdCBwb2ludCB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhIHRlc3QgdGhhdCYjMzk7cyBzbyBzcGVjaWZpYywgaXQmIzM5O3Mgbm90IHdvcnRoIHRoZSB0aW1lIG9mIGEgZ2VuZXJhbGl6ZWQgZnV6ei4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMTk6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGhhcmR3YXJlLXNwZWNpZmljIHF1aXJrcyBmb3IgcGh5c2ljYWwgU0ZQIG1vZHVsZXMuIFRoZSBjb2RlIHJlbGllcyBvbiByZWFkaW5nIHRoZSBtb2R1bGUmIzM5O3MgRUVQUk9NIG92ZXIgSTJDIGFuZCB2YWxpZGF0aW5nIGl0cyBjaGVja3N1bSwgd2hpY2ggaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VL0dDRSB3aXRob3V0IGEgZGVkaWNhdGVkIGhhcmR3YXJlIG1vY2suJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGhhcmR3YXJlLXNwZWNpZmljIHF1aXJrcyBmb3IgcGh5c2ljYWwgU0ZQIG1vZHVsZXMuIFRoZSBjb2RlIHJlbGllcyBvbiByZWFkaW5nIHRoZSBtb2R1bGUmIzM5O3MgRUVQUk9NIG92ZXIgSTJDIGFuZCB2YWxpZGF0aW5nIGl0cyBjaGVja3N1bSwgd2hpY2ggaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VL0dDRSB3aXRob3V0IGEgZGVkaWNhdGVkIGhhcmR3YXJlIG1vY2suJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MDQuNDU1NDY5OTI2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTAzMjE4MTk4MTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgaGFyZHdhcmUtc3BlY2lmaWMgcXVpcmtzIGZvciBwaHlzaWNhbCBTRlAgbW9kdWxlcy4gVGhlIGNvZGUgcmVsaWVzIG9uIHJlYWRpbmcgdGhlIG1vZHVsZSdzIEVFUFJPTSBvdmVyIEkyQyBhbmQgdmFsaWRhdGluZyBpdHMgY2hlY2tzdW0sIHdoaWNoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS9HQ0Ugd2l0aG91dCBhIGRlZGljYXRlZCBoYXJkd2FyZSBtb2NrLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MDQuNDU1NDc1MDQ2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzA0NTE2MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwMGUzNzc2ZDc2MjU1M2I1OTJmNTExMWQ2ZjI4YTcxMzg1NzgxNGM3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTdW4gSnVsIDUgMTk6Mjc6MDMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5jIGIvZHJpdmVycy9uZXQvcGh5L3NmcC5jXFxuaW5kZXggZjUyMDIwNjczNGRhYWEuLmVhZTA2OTkxY2M0ZDVlIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuY1xcbkBAIC01MTYsNiArNTE2LDEzIEBAIHN0YXRpYyB2b2lkIHNmcF9xdWlya191Ym50X3VmX2luc3RhbnQoY29uc3Qgc3RydWN0IHNmcF9lZXByb21faWQgKmlkLFxcbiBcXHR7IC52ZW5kb3IgPSBfdiwgLnBhcnQgPSBfcCwgLnN1cHBvcnQgPSBfcywgLmZpeHVwID0gX2YsIH1cXG4gI2RlZmluZSBTRlBfUVVJUktfUyhfdiwgX3AsIF9zKSBTRlBfUVVJUksoX3YsIF9wLCBfcywgTlVMTClcXG4gI2RlZmluZSBTRlBfUVVJUktfRihfdiwgX3AsIF9mKSBTRlBfUVVJUksoX3YsIF9wLCBOVUxMLCBfZilcXG4rLyogTGlrZSBTRlBfUVVJUktfRiwgYnV0IG1hdGNoZXMgYXMgYSBwcmVmaXguIFVzZSBmb3IgY2xvbmUgbW9kdWxlc1xcbisgKiB0aGF0IGZpbGwgRUVQUk9NIHRyYWlsaW5nIGJ5dGVzIHdpdGggZ2FyYmFnZSBpbnN0ZWFkIG9mIHRoZVxcbisgKiBTRkYtODQ3Mi1tYW5kYXRlZCBzcGFjZSBwYWRkaW5nLCBzbyBzZnBfc3RybGVuIGNhbid0IHRyaW0gdGhlXFxuKyAqIGZpZWxkIGRvd24gdG8gdGhlIGxlZ2l0aW1hdGUgbGVuZ3RoLlxcbisgKi9cXG4rI2RlZmluZSBTRlBfUVVJUktfRl9QUkVGSVgoX3YsIF9wLCBfZikgXFxcXFxcbitcXHR7IC52ZW5kb3IgPSBfdiwgLnBhcnQgPSBfcCwgLnN1cHBvcnQgPSBOVUxMLCAuZml4dXAgPSBfZiwgLnByZWZpeF9tYXRjaCA9IHRydWUgfVxcbiBcXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0ge1xcbiBcXHQvLyBBbGNhdGVsIEx1Y2VudCBHLTAxMFMtUCBjYW4gb3BlcmF0ZSBhdCAyNTAwYmFzZS1YLCBidXQgaW5jb3JyZWN0bHlcXG5AQCAtNTQ4LDYgKzU1NSwxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayBzZnBfcXVpcmtzW10gPSB7XFxuIFxcdFNGUF9RVUlSSyhcXFwiRlNcXFwiLCBcXFwiR1BPTi1PTlUtMzQtMjBCSVxcXCIsIHNmcF9xdWlya18yNTAwYmFzZXgsXFxuIFxcdFxcdCAgc2ZwX2ZpeHVwX2lnbm9yZV90eF9mYXVsdCksXFxuIFxcbitcXHQvLyBGaWJlcnN0b3JlIFhHUy1TRlAtT05ULU1BQ0kgaXMgYSBNQUMtbW9kZSBYR1MtUE9OIE9OVCBzdGljayB3aXRoXFxuK1xcdC8vIE9OVC1jbGFzcyBzZXJpYWwtcGFzc3Rocm91Z2ggVFhfRkFVTFQvTE9TIHdpcmluZyBhbmQgc2xvdyBzdGFydHVwO1xcbitcXHQvLyBtYXNrIGJvdGggc2lnbmFscyBhbmQgZXh0ZW5kIFRfU1RBUlRfVVAgdmlhIHRoZSBwb3Ryb24gZml4dXAuIFRoZVxcbitcXHQvLyBFRVBST00gdmVuZG9yIFBOIGZpZWxkIGlzIG5vdCBzcGFjZS1wYWRkZWQgcGFzdCB0aGUgbGVnaXRpbWF0ZVxcbitcXHQvLyBzdHJpbmcsIHNvIG1hdGNoIGl0IGFzIGEgcHJlZml4LlxcbitcXHRTRlBfUVVJUktfRl9QUkVGSVgoXFxcIkZTXFxcIiwgXFxcIlhHUy1TRlAtT05ULU1BQ0lcXFwiLCBzZnBfZml4dXBfcG90cm9uKSxcXG4rXFxuIFxcdFNGUF9RVUlSS19GKFxcXCJIQUxOeVxcXCIsIFxcXCJITC1HU0ZQXFxcIiwgc2ZwX2ZpeHVwX2hhbG55X2dzZnApLFxcbiBcXG4gXFx0U0ZQX1FVSVJLX0YoXFxcIkgtQ09NXFxcIiwgXFxcIlNQUDQyNUgtR0FCNFxcXCIsIHNmcF9maXh1cF9wb3Ryb24pLFxcbkBAIC02MDUsNiArNjE5LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2ZwX3F1aXJrIHNmcF9xdWlya3NbXSA9IHtcXG4gXFx0U0ZQX1FVSVJLX1MoXFxcIk9FTVxcXCIsIFxcXCJTRlAtMi41Ry1MSDIwLUFcXFwiLCBzZnBfcXVpcmtfMjUwMGJhc2V4KSxcXG4gXFx0U0ZQX1FVSVJLX0YoXFxcIk9FTVxcXCIsIFxcXCJSVFNGUC0xMFxcXCIsIHNmcF9maXh1cF9yb2xsYmFsbF9jYyksXFxuIFxcdFNGUF9RVUlSS19GKFxcXCJPRU1cXFwiLCBcXFwiUlRTRlAtMTBHXFxcIiwgc2ZwX2ZpeHVwX3JvbGxiYWxsX2NjKSxcXG4rXFxuK1xcdC8vIE9FTSBYR1NQT05TVDIwMDEgaXMgYW4gWEdTLVBPTiBPTlQgc3RpY2sgd2l0aCBicm9rZW4gVFhfRkFVTFQgYW5kXFxuK1xcdC8vIExPUyBpbmRpY2F0b3JzIGFuZCBzbG93IHN0YXJ0dXAsIGp1c3QgbGlrZSBwb3Ryb24uIFRoZSBFRVBST01cXG4rXFx0Ly8gdmVuZG9yIFBOIGZpZWxkIGlzIGZpbGxlZCB3aXRoIG5vbi1wcmludGFibGUgZ2FyYmFnZSBwYXN0IHRoZVxcbitcXHQvLyBsZWdpdGltYXRlIHN0cmluZyBpbnN0ZWFkIG9mIHNwYWNlIHBhZGRpbmcsIHNvIG1hdGNoIGl0IGFzIGFcXG4rXFx0Ly8gcHJlZml4LlxcbitcXHRTRlBfUVVJUktfRl9QUkVGSVgoXFxcIk9FTVxcXCIsIFxcXCJYR1NQT05TVDIwMDFcXFwiLCBzZnBfZml4dXBfcG90cm9uKSxcXG4rXFxuIFxcdFNGUF9RVUlSS19GKFxcXCJUdXJyaXNcXFwiLCBcXFwiUlRTRlAtMi41R1xcXCIsIHNmcF9maXh1cF9yb2xsYmFsbCksXFxuIFxcdFNGUF9RVUlSS19GKFxcXCJUdXJyaXNcXFwiLCBcXFwiUlRTRlAtMTBcXFwiLCBzZnBfZml4dXBfcm9sbGJhbGwpLFxcbiBcXHRTRlBfUVVJUktfRihcXFwiVHVycmlzXFxcIiwgXFxcIlJUU0ZQLTEwR1xcXCIsIHNmcF9maXh1cF9yb2xsYmFsbCksXFxuQEAgLTYyNiwxMyArNjQ4LDE2IEBAIHN0YXRpYyBzaXplX3Qgc2ZwX3N0cmxlbihjb25zdCBjaGFyICpzdHIsIHNpemVfdCBtYXhsZW4pXFxuIFxcdHJldHVybiBzaXplO1xcbiB9XFxuIFxcbi1zdGF0aWMgYm9vbCBzZnBfbWF0Y2goY29uc3QgY2hhciAqcXMsIGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IGxlbilcXG4rc3RhdGljIGJvb2wgc2ZwX21hdGNoKGNvbnN0IGNoYXIgKnFzLCBjb25zdCBjaGFyICpzdHIsIHNpemVfdCBsZW4sIGJvb2wgcHJlZml4KVxcbiB7XFxuK1xcdHNpemVfdCBxc19sZW47XFxuK1xcbiBcXHRpZiAoIXFzKVxcbiBcXHRcXHRyZXR1cm4gdHJ1ZTtcXG4tXFx0aWYgKHN0cmxlbihxcykgIT0gbGVuKVxcbitcXHRxc19sZW4gPSBzdHJsZW4ocXMpO1xcbitcXHRpZiAocHJlZml4ID8gcXNfbGVuIFxcdTAwM2UgbGVuIDogcXNfbGVuICE9IGxlbilcXG4gXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi1cXHRyZXR1cm4gIXN0cm5jbXAocXMsIHN0ciwgbGVuKTtcXG4rXFx0cmV0dXJuICFzdHJuY21wKHFzLCBzdHIsIHFzX2xlbik7XFxuIH1cXG4gXFxuIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2ZwX3F1aXJrICpzZnBfbG9va3VwX3F1aXJrKGNvbnN0IHN0cnVjdCBzZnBfZWVwcm9tX2lkICppZClcXG5AQCAtNjQ1LDggKzY3MCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpXFxuIFxcdHBzID0gc2ZwX3N0cmxlbihpZC1cXHUwMDNlYmFzZS52ZW5kb3JfcG4sIEFSUkFZX1NJWkUoaWQtXFx1MDAzZWJhc2UudmVuZG9yX3BuKSk7XFxuIFxcbiBcXHRmb3IgKGkgPSAwLCBxID0gc2ZwX3F1aXJrczsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoc2ZwX3F1aXJrcyk7IGkrKywgcSsrKVxcbi1cXHRcXHRpZiAoc2ZwX21hdGNoKHEtXFx1MDAzZXZlbmRvciwgaWQtXFx1MDAzZWJhc2UudmVuZG9yX25hbWUsIHZzKSBcXHUwMDI2XFx1MDAyNlxcbi1cXHRcXHQgICAgc2ZwX21hdGNoKHEtXFx1MDAzZXBhcnQsIGlkLVxcdTAwM2ViYXNlLnZlbmRvcl9wbiwgcHMpKVxcbitcXHRcXHRpZiAoc2ZwX21hdGNoKHEtXFx1MDAzZXZlbmRvciwgaWQtXFx1MDAzZWJhc2UudmVuZG9yX25hbWUsIHZzLFxcbitcXHRcXHRcXHQgICAgICBxLVxcdTAwM2VwcmVmaXhfbWF0Y2gpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdFxcdCAgICBzZnBfbWF0Y2gocS1cXHUwMDNlcGFydCwgaWQtXFx1MDAzZWJhc2UudmVuZG9yX3BuLCBwcyxcXG4rXFx0XFx0XFx0ICAgICAgcS1cXHUwMDNlcHJlZml4X21hdGNoKSlcXG4gXFx0XFx0XFx0cmV0dXJuIHE7XFxuIFxcbiBcXHRyZXR1cm4gTlVMTDtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3NmcC5oIGIvZHJpdmVycy9uZXQvcGh5L3NmcC5oXFxuaW5kZXggODc5ZGZmN2FmZTZhNDEuLjg2N2U0NWVmYmYzZjFlIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuaFxcbkBAIC0xMiw2ICsxMiw3IEBAIHN0cnVjdCBzZnBfcXVpcmsge1xcbiBcXHR2b2lkICgqc3VwcG9ydCkoY29uc3Qgc3RydWN0IHNmcF9lZXByb21faWQgKmlkLFxcbiBcXHRcXHRcXHRzdHJ1Y3Qgc2ZwX21vZHVsZV9jYXBzICpjYXBzKTtcXG4gXFx0dm9pZCAoKmZpeHVwKShzdHJ1Y3Qgc2ZwICpzZnApO1xcbitcXHRib29sIHByZWZpeF9tYXRjaDtcXG4gfTtcXG4gXFxuIHN0cnVjdCBzZnBfc29ja2V0X29wcyB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjA0Ljc4NjYxNDg3M1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODk5OTA2Njg2MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgaGFyZHdhcmUtc3BlY2lmaWMgcXVpcmtzIGZvciBwaHlzaWNhbCBTRlAgbW9kdWxlcy4gVGhlIGNvZGUgcmVsaWVzIG9uIHJlYWRpbmcgdGhlIG1vZHVsZSdzIEVFUFJPTSBvdmVyIEkyQyBhbmQgdmFsaWRhdGluZyBpdHMgY2hlY2tzdW0sIHdoaWNoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS9HQ0Ugd2l0aG91dCBhIGRlZGljYXRlZCBoYXJkd2FyZSBtb2NrLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwMGUzNzc2ZDc2MjU1M2I1OTJmNTExMWQ2ZjI4YTcxMzg1NzgxNGM3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgNSAxOToyNzowMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuYyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuY1xuaW5kZXggZjUyMDIwNjczNGRhYWEuLmVhZTA2OTkxY2M0ZDVlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvcGh5L3NmcC5jXG4rKysgYi9kcml2ZXJzL25ldC9waHkvc2ZwLmNcbkBAIC01MTYsNiArNTE2LDEzIEBAIHN0YXRpYyB2b2lkIHNmcF9xdWlya191Ym50X3VmX2luc3RhbnQoY29uc3Qgc3RydWN0IHNmcF9lZXByb21faWQgKmlkLFxuIFx0eyAudmVuZG9yID0gX3YsIC5wYXJ0ID0gX3AsIC5zdXBwb3J0ID0gX3MsIC5maXh1cCA9IF9mLCB9XG4gI2RlZmluZSBTRlBfUVVJUktfUyhfdiwgX3AsIF9zKSBTRlBfUVVJUksoX3YsIF9wLCBfcywgTlVMTClcbiAjZGVmaW5lIFNGUF9RVUlSS19GKF92LCBfcCwgX2YpIFNGUF9RVUlSSyhfdiwgX3AsIE5VTEwsIF9mKVxuKy8qIExpa2UgU0ZQX1FVSVJLX0YsIGJ1dCBtYXRjaGVzIGFzIGEgcHJlZml4LiBVc2UgZm9yIGNsb25lIG1vZHVsZXNcbisgKiB0aGF0IGZpbGwgRUVQUk9NIHRyYWlsaW5nIGJ5dGVzIHdpdGggZ2FyYmFnZSBpbnN0ZWFkIG9mIHRoZVxuKyAqIFNGRi04NDcyLW1hbmRhdGVkIHNwYWNlIHBhZGRpbmcsIHNvIHNmcF9zdHJsZW4gY2FuJ3QgdHJpbSB0aGVcbisgKiBmaWVsZCBkb3duIHRvIHRoZSBsZWdpdGltYXRlIGxlbmd0aC5cbisgKi9cbisjZGVmaW5lIFNGUF9RVUlSS19GX1BSRUZJWChfdiwgX3AsIF9mKSBcXFxuK1x0eyAudmVuZG9yID0gX3YsIC5wYXJ0ID0gX3AsIC5zdXBwb3J0ID0gTlVMTCwgLmZpeHVwID0gX2YsIC5wcmVmaXhfbWF0Y2ggPSB0cnVlIH1cbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayBzZnBfcXVpcmtzW10gPSB7XG4gXHQvLyBBbGNhdGVsIEx1Y2VudCBHLTAxMFMtUCBjYW4gb3BlcmF0ZSBhdCAyNTAwYmFzZS1YLCBidXQgaW5jb3JyZWN0bHlcbkBAIC01NDgsNiArNTU1LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2ZwX3F1aXJrIHNmcF9xdWlya3NbXSA9IHtcbiBcdFNGUF9RVUlSSyhcIkZTXCIsIFwiR1BPTi1PTlUtMzQtMjBCSVwiLCBzZnBfcXVpcmtfMjUwMGJhc2V4LFxuIFx0XHQgIHNmcF9maXh1cF9pZ25vcmVfdHhfZmF1bHQpLFxuIFxuK1x0Ly8gRmliZXJzdG9yZSBYR1MtU0ZQLU9OVC1NQUNJIGlzIGEgTUFDLW1vZGUgWEdTLVBPTiBPTlQgc3RpY2sgd2l0aFxuK1x0Ly8gT05ULWNsYXNzIHNlcmlhbC1wYXNzdGhyb3VnaCBUWF9GQVVMVC9MT1Mgd2lyaW5nIGFuZCBzbG93IHN0YXJ0dXA7XG4rXHQvLyBtYXNrIGJvdGggc2lnbmFscyBhbmQgZXh0ZW5kIFRfU1RBUlRfVVAgdmlhIHRoZSBwb3Ryb24gZml4dXAuIFRoZVxuK1x0Ly8gRUVQUk9NIHZlbmRvciBQTiBmaWVsZCBpcyBub3Qgc3BhY2UtcGFkZGVkIHBhc3QgdGhlIGxlZ2l0aW1hdGVcbitcdC8vIHN0cmluZywgc28gbWF0Y2ggaXQgYXMgYSBwcmVmaXguXG4rXHRTRlBfUVVJUktfRl9QUkVGSVgoXCJGU1wiLCBcIlhHUy1TRlAtT05ULU1BQ0lcIiwgc2ZwX2ZpeHVwX3BvdHJvbiksXG4rXG4gXHRTRlBfUVVJUktfRihcIkhBTE55XCIsIFwiSEwtR1NGUFwiLCBzZnBfZml4dXBfaGFsbnlfZ3NmcCksXG4gXG4gXHRTRlBfUVVJUktfRihcIkgtQ09NXCIsIFwiU1BQNDI1SC1HQUI0XCIsIHNmcF9maXh1cF9wb3Ryb24pLFxuQEAgLTYwNSw2ICs2MTksMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzZnBfcXVpcmsgc2ZwX3F1aXJrc1tdID0ge1xuIFx0U0ZQX1FVSVJLX1MoXCJPRU1cIiwgXCJTRlAtMi41Ry1MSDIwLUFcIiwgc2ZwX3F1aXJrXzI1MDBiYXNleCksXG4gXHRTRlBfUVVJUktfRihcIk9FTVwiLCBcIlJUU0ZQLTEwXCIsIHNmcF9maXh1cF9yb2xsYmFsbF9jYyksXG4gXHRTRlBfUVVJUktfRihcIk9FTVwiLCBcIlJUU0ZQLTEwR1wiLCBzZnBfZml4dXBfcm9sbGJhbGxfY2MpLFxuK1xuK1x0Ly8gT0VNIFhHU1BPTlNUMjAwMSBpcyBhbiBYR1MtUE9OIE9OVCBzdGljayB3aXRoIGJyb2tlbiBUWF9GQVVMVCBhbmRcbitcdC8vIExPUyBpbmRpY2F0b3JzIGFuZCBzbG93IHN0YXJ0dXAsIGp1c3QgbGlrZSBwb3Ryb24uIFRoZSBFRVBST01cbitcdC8vIHZlbmRvciBQTiBmaWVsZCBpcyBmaWxsZWQgd2l0aCBub24tcHJpbnRhYmxlIGdhcmJhZ2UgcGFzdCB0aGVcbitcdC8vIGxlZ2l0aW1hdGUgc3RyaW5nIGluc3RlYWQgb2Ygc3BhY2UgcGFkZGluZywgc28gbWF0Y2ggaXQgYXMgYVxuK1x0Ly8gcHJlZml4LlxuK1x0U0ZQX1FVSVJLX0ZfUFJFRklYKFwiT0VNXCIsIFwiWEdTUE9OU1QyMDAxXCIsIHNmcF9maXh1cF9wb3Ryb24pLFxuK1xuIFx0U0ZQX1FVSVJLX0YoXCJUdXJyaXNcIiwgXCJSVFNGUC0yLjVHXCIsIHNmcF9maXh1cF9yb2xsYmFsbCksXG4gXHRTRlBfUVVJUktfRihcIlR1cnJpc1wiLCBcIlJUU0ZQLTEwXCIsIHNmcF9maXh1cF9yb2xsYmFsbCksXG4gXHRTRlBfUVVJUktfRihcIlR1cnJpc1wiLCBcIlJUU0ZQLTEwR1wiLCBzZnBfZml4dXBfcm9sbGJhbGwpLFxuQEAgLTYyNiwxMyArNjQ4LDE2IEBAIHN0YXRpYyBzaXplX3Qgc2ZwX3N0cmxlbihjb25zdCBjaGFyICpzdHIsIHNpemVfdCBtYXhsZW4pXG4gXHRyZXR1cm4gc2l6ZTtcbiB9XG4gXG4tc3RhdGljIGJvb2wgc2ZwX21hdGNoKGNvbnN0IGNoYXIgKnFzLCBjb25zdCBjaGFyICpzdHIsIHNpemVfdCBsZW4pXG4rc3RhdGljIGJvb2wgc2ZwX21hdGNoKGNvbnN0IGNoYXIgKnFzLCBjb25zdCBjaGFyICpzdHIsIHNpemVfdCBsZW4sIGJvb2wgcHJlZml4KVxuIHtcbitcdHNpemVfdCBxc19sZW47XG4rXG4gXHRpZiAoIXFzKVxuIFx0XHRyZXR1cm4gdHJ1ZTtcbi1cdGlmIChzdHJsZW4ocXMpICE9IGxlbilcbitcdHFzX2xlbiA9IHN0cmxlbihxcyk7XG4rXHRpZiAocHJlZml4ID8gcXNfbGVuIFx1MDAzZSBsZW4gOiBxc19sZW4gIT0gbGVuKVxuIFx0XHRyZXR1cm4gZmFsc2U7XG4tXHRyZXR1cm4gIXN0cm5jbXAocXMsIHN0ciwgbGVuKTtcbitcdHJldHVybiAhc3RybmNtcChxcywgc3RyLCBxc19sZW4pO1xuIH1cbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpXG5AQCAtNjQ1LDggKzY3MCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpXG4gXHRwcyA9IHNmcF9zdHJsZW4oaWQtXHUwMDNlYmFzZS52ZW5kb3JfcG4sIEFSUkFZX1NJWkUoaWQtXHUwMDNlYmFzZS52ZW5kb3JfcG4pKTtcbiBcbiBcdGZvciAoaSA9IDAsIHEgPSBzZnBfcXVpcmtzOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHNmcF9xdWlya3MpOyBpKyssIHErKylcbi1cdFx0aWYgKHNmcF9tYXRjaChxLVx1MDAzZXZlbmRvciwgaWQtXHUwMDNlYmFzZS52ZW5kb3JfbmFtZSwgdnMpIFx1MDAyNlx1MDAyNlxuLVx0XHQgICAgc2ZwX21hdGNoKHEtXHUwMDNlcGFydCwgaWQtXHUwMDNlYmFzZS52ZW5kb3JfcG4sIHBzKSlcbitcdFx0aWYgKHNmcF9tYXRjaChxLVx1MDAzZXZlbmRvciwgaWQtXHUwMDNlYmFzZS52ZW5kb3JfbmFtZSwgdnMsXG4rXHRcdFx0ICAgICAgcS1cdTAwM2VwcmVmaXhfbWF0Y2gpIFx1MDAyNlx1MDAyNlxuK1x0XHQgICAgc2ZwX21hdGNoKHEtXHUwMDNlcGFydCwgaWQtXHUwMDNlYmFzZS52ZW5kb3JfcG4sIHBzLFxuK1x0XHRcdCAgICAgIHEtXHUwMDNlcHJlZml4X21hdGNoKSlcbiBcdFx0XHRyZXR1cm4gcTtcbiBcbiBcdHJldHVybiBOVUxMO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9zZnAuaCBiL2RyaXZlcnMvbmV0L3BoeS9zZnAuaFxuaW5kZXggODc5ZGZmN2FmZTZhNDEuLjg2N2U0NWVmYmYzZjFlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvcGh5L3NmcC5oXG4rKysgYi9kcml2ZXJzL25ldC9waHkvc2ZwLmhcbkBAIC0xMiw2ICsxMiw3IEBAIHN0cnVjdCBzZnBfcXVpcmsge1xuIFx0dm9pZCAoKnN1cHBvcnQpKGNvbnN0IHN0cnVjdCBzZnBfZWVwcm9tX2lkICppZCxcbiBcdFx0XHRzdHJ1Y3Qgc2ZwX21vZHVsZV9jYXBzICpjYXBzKTtcbiBcdHZvaWQgKCpmaXh1cCkoc3RydWN0IHNmcCAqc2ZwKTtcbitcdGJvb2wgcHJlZml4X21hdGNoO1xuIH07XG4gXG4gc3RydWN0IHNmcF9zb2NrZXRfb3BzIHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjA0Ljc4NjYxNjI2M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NjI2MDQwOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXZhbHVhdGluZyB0aGUgU0ZQIE1vZHVsZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9waHkvc2ZwLmNgIGFuZCBgZHJpdmVycy9uZXQvcGh5L3NmcC5oYC4gSXQgc2VlbXMgdGhleSdyZSBpbnRyb2R1Y2luZyBhIG5ldyBxdWlyaywgYFNGUF9RVUlSS19GX1BSRUZJWGAsIHdoaWNoIGlzIGFsbCBhYm91dCBwcmVmaXggbWF0Y2hpbmcgZm9yIHRoZXNlIFNGUCBtb2R1bGVzLiBCYXNpY2FsbHksIGl04oCZcyBhZGRpbmcgbW9yZSBmbGV4aWJpbGl0eSB0byBob3cgd2UgaWRlbnRpZnkgYW5kIGhhbmRsZSB0aGVzZSB0cmFuc2NlaXZlcnMuIFRoZSBjaGFuZ2VzIG1vZGlmeSBgc2ZwX21hdGNoYCB0byBpbmNvcnBvcmF0ZSBhIGBib29sIHByZWZpeGAgYXJndW1lbnQgYW5kIGFkYXB0cyBgc2ZwX2xvb2t1cF9xdWlya2AgdG8gbGV2ZXJhZ2UgdGhpcyBuZXcgcGFyYW1ldGVyLiBUaGV5J3ZlIGFsc28gYWRkZWQgYSBjb3VwbGUgb2YgbmV3IHF1aXJrcyB1dGlsaXppbmcgdGhpcyBtYWNyby5cblxuRnVuY3Rpb25hbGx5LCBJIHRoaW5rIGl04oCZcyBzb3VuZC4gSXQgZGVmaW5pdGVseSBjaGFuZ2VzIHRoZSBtYXRjaGluZyBsb2dpYyBhbmQgZXhwYW5kcyB0aGUgcXVpcmsgZGF0YWJhc2UsIHdoaWNoIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIEJ1dCwgdGhlIHF1ZXN0aW9uIG9mIHJlYWNoYWJpbGl0eSBjb21lcyB0byBtaW5kLiBUaGVzZSBhcmUsIGFmdGVyIGFsbCwgcGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlcy4gSSBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhpcyBhZmZlY3RzIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiBIb3cgYXJlIHdlIGdvaW5nIHRvIHRlc3QgdGhpcz8gQ2FuIHdlIGV2ZW4gZWZmZWN0aXZlbHkgZW11bGF0ZSBTRlAgbW9kdWxlcyBpbiBRRU1VIHRvIGVuc3VyZSB0aGUgYWRkZWQgcXVpcmtzIGJlaGF2ZSBhcyBpbnRlbmRlZD8gSSdsbCBuZWVkIHRvIGNoZWNrIGZvciBhbnkgc29mdHdhcmUgZW11bGF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBTRlAgbW9kdWxlcyB3aXRoaW4gdGhlIGtlcm5lbCB0byBkZXRlcm1pbmUgdGhlIGZlYXNpYmlsaXR5IG9mIGNvbXBsZXRlIHRlc3RpbmcuIEknbGwgc2VhcmNoIHRoZSBrZXJuZWwgZm9yIGBzZnBgIHRvIHNlZSB3aGF0IGNvbWVzIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzY2LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MDkuNDQ5MjIxOTQ1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMTQ0MjI2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZnBfbWF0Y2hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcGh5L3NmcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3BoeS9zZnAuYz02Mzc9c3RhdGljIHNpemVfdCBzZnBfc3RybGVuKGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IG1heGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy02NTAtXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjY1MTpzdGF0aWMgYm9vbCBzZnBfbWF0Y2goY29uc3QgY2hhciAqcXMsIGNvbnN0IGNoYXIgKnN0ciwgc2l6ZV90IGxlbiwgYm9vbCBwcmVmaXgpXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTY1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM9NjYzPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2ZwX3F1aXJrICpzZnBfbG9va3VwX3F1aXJrKGNvbnN0IHN0cnVjdCBzZnBfZWVwcm9tX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy02NzItXFx0Zm9yIChpID0gMCwgcSA9IHNmcF9xdWlya3M7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKHNmcF9xdWlya3MpOyBpKyssIHErKylcXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM6NjczOlxcdFxcdGlmIChzZnBfbWF0Y2gocS1cXHUwMDNldmVuZG9yLCBpZC1cXHUwMDNlYmFzZS52ZW5kb3JfbmFtZSwgdnMsXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTY3NC1cXHRcXHRcXHQgICAgICBxLVxcdTAwM2VwcmVmaXhfbWF0Y2gpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjY3NTpcXHRcXHQgICAgc2ZwX21hdGNoKHEtXFx1MDAzZXBhcnQsIGlkLVxcdTAwM2ViYXNlLnZlbmRvcl9wbiwgcHMsXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTY3Ni1cXHRcXHRcXHQgICAgICBxLVxcdTAwM2VwcmVmaXhfbWF0Y2gpKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzowOS41NjA2NzI5ODFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDE3MzIwODYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIFNGUCBEcml2ZXI6IEluaXRpYWwgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYHNmcC5jYCBkcml2ZXIsIHdoaWNoIGhhbmRsZXMgdGhvc2UgU0ZQIGNhZ2VzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiQ2FuIHdlIGZ1enogdGhpcyB0aGluZz9cIiBJdCdzIGNsZWFyIGZyb20gdGhlIGNvZGUgdGhhdCBpdCdzIHJlbHlpbmcgb24gSTJDIHRvIHJlYWQgRUVQUk9NIGRhdGEuIFRoYXQgb3BlbnMgdXAgc29tZSBpbnRlcmVzdGluZyBwb3NzaWJpbGl0aWVzLlxuXG5UaGUgZmlyc3QgcXVlc3Rpb24gaXMgKmhvdyouIElmIHdlJ3ZlIGdvdCBhbiBJMkMgZGV2aWNlIGVtdWxhdGlvbiBzZXR1cCwgb3IgYmV0dGVyIHlldCwgaWYgc3l6a2FsbGVyIGNhbiBpbmplY3QgSTJDIHRyYWZmaWMgZGlyZWN0bHksIHRoZW4gbWF5YmUgd2UgY2FuLiBCdXQsIEkgbmVlZCB0byByZW1pbmQgbXlzZWxmIGhvdyBzeXprYWxsZXIgaGFuZGxlcyBJMkMuIEkgdmFndWVseSByZWNhbGwgaXQgaGFzIHNvbWUgSTJDIGZ1enppbmcgY2FwYWJpbGl0aWVzIHVzaW5nIGAvZGV2L2kyYy0qYCBkZXZpY2VzLiBIb3dldmVyLCBJJ20gcHJldHR5IHN1cmUgdGhhdCdzIG1haW5seSBmb3IgZnV6emluZyB1c2VyLXNwYWNlIGFwcGxpY2F0aW9ucyBpbnRlcmFjdGluZyB3aXRoIEkyQyBkZXZpY2VzLCBvciBwb3NzaWJseSBmb3IgaW5qZWN0aW5nIEkyQyAqcmVzcG9uc2VzKiB0byBhIGRyaXZlci5cblxuV2FpdCBhIHNlY29uZOKApiBkb2VzIHRoZSBgc2ZwYCBkcml2ZXIgYWN0dWFsbHkgcmVnaXN0ZXIgYXMgYW4gSTJDIGNsaWVudD8gVGhhdCdzIHRoZSBjcnVjaWFsIHF1ZXN0aW9uLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdGhlIGBzZnBgIGRyaXZlciBnZXRzIHByb2JlZCBhbmQgaW50ZXJhY3RzIHdpdGggdGhlIEkyQyBidXMuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgaXQgaXMgYW4gSTJDIGNsaWVudCBhbmQgaG93IGl0IGlzIGJlaW5nIHVzZWQgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgU0ZQIG1vZHVsZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMzMsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MTMuOTc3OTk3MTIxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5ODcyMzM1MywiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2kyY19kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcGh5L3NmcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzoxNC4xNzY3MzAyNzRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjU1NzczMjk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIGBzZnAuY2AgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJIHdhbnQgdG8gZ2V0IGEgaGFuZGxlIG9uIGhvdyBgc2ZwLmNgIGlzIGluaXRpYWxpemVkLiBJJ20gc3BlY2lmaWNhbGx5IGludGVyZXN0ZWQgaW4gdGhlIHN0YXJ0dXAgc2VxdWVuY2Ug4oCTIHdoYXQncyBoYXBwZW5pbmcgZmlyc3QgYW5kIHdoYXQgZGVwZW5kZW5jaWVzIGFyZSBpbiBwbGF5LiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGRhdGEgc3RydWN0dXJlcyBpdCB1c2VzLCBhbmQgaG93IHRoZXkgZ2V0IHBvcHVsYXRlZC4gQXJlIHdlIHRhbGtpbmcgYWJvdXQgc3RhdGljIGluaXRpYWxpemF0aW9uLCBvciBpcyB0aGVyZSBhIG1vcmUgZHluYW1pYyBhcHByb2FjaCBoYXBwZW5pbmc/IEknbGwgcHJvYmFibHkgc3RhcnQgYnkgbG9va2luZyBmb3IgdGhlIGVudHJ5IHBvaW50LCBsaWtlbHkgYG1haW5gIG9yIHNvbWUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gY2FsbGVkIGVhcmx5IGluIHRoZSBib290IHByb2Nlc3MuIEZyb20gdGhlcmUsIEknbGwgdHJhY2UgdGhyb3VnaCB0aGUgY2FsbHMsIG5vdGluZyB0aGUgaW1wb3J0YW50IHZhcmlhYmxlcyBhbmQgYW55IGV4dGVybmFsIGRlcGVuZGVuY2llcy4gSSdtIGtlZW4gdG8gdW5kZXJzdGFuZCB0aGUgaW50ZXJhY3Rpb25zIHdpdGggdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUsIGlmIGFueSwgYW5kIHNlZSBpZiB0aGVyZSBhcmUgYW55IHVudXN1YWwgaW5pdGlhbGl6YXRpb24gcGF0dGVybnMgb3IgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucyB0aGF0IG1pZ2h0IGJlY29tZSBhcHBhcmVudC4gSSBhbHNvIHdhbnQgdG8gbWFrZSBzdXJlIEkgZG9uJ3QgbWlzcyBhbnkgc3VidGxlLCBidXQgY3JpdGljYWwsIHN0ZXBzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjkzLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MTcuNDMyNTA1MzM5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMzcxOTcxNiwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcGh5L3NmcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzoxNy41MzYyMzE2MzVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDkwMDkxMDk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHNmcC5jOiBUaGUgRW5kIGlzIHRoZSBCZWdpbm5pbmcgKG9yIGF0IGxlYXN0LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXApKipcblxuT2theSwgdGltZSB0byBnZXQgYSBncmlwIG9uIHRoaXMuIFdoZXJlIGFyZSB3ZSwgcmVhbGx5PyBMZXQncyBhc3N1bWUgdGhlIGhpZ2gtbGV2ZWwgYXJjaGl0ZWN0dXJlIGlzIHNvbGlkIChmb3Igbm93ISksIGFuZCB0aGUgaXNzdWVzIGFyZW4ndCBpbW1lZGlhdGVseSBzY3JlYW1pbmcgYXQgdXMgZnJvbSB0aGUgbWFpbiByb3V0aW5lcy4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0IGNvbXBsZXggc3lzdGVtcyBvZnRlbiBoYXZlIHRoZWlyICdnb3RjaGFzJyBuZXN0bGVkIGluIHRoZSBkZXRhaWxzIOKAkyB0aGUgZWRnZSBjYXNlcywgdGhlIGNsZWFudXAsIHRoZSBpbml0aWFsaXphdGlvbiwgdGhlIHNodXRkb3duLlxuXG5TbywgYSBsb2dpY2FsIG5leHQgc3RlcCBpcyB0byBoZWFkIHN0cmFpZ2h0IHRvIHRoZSBib3R0b20gb2YgYHNmcC5jYC4gRm9yZ2V0IHRoZSB0b3AgZm9yIGEgbW9tZW50OyBpdCdzIHRoZSBlbmQgb2YgYSBDIGZpbGUgdGhhdCB0eXBpY2FsbHkgaG9sZHMgdGhlIGluaXRpYWxpemF0aW9uL2RlLWluaXRpYWxpemF0aW9uL2NsZWFudXAgY29kZSBvciwgdGhlIGNvcmUgZnVuY3Rpb25zIG9uIHdoaWNoIG90aGVycyBidWlsZC4gVW5kZXJzdGFuZGluZyB0aGVzZSBcImZpbmFsXCIgc2VjdGlvbnMgb2Z0ZW4gcmV2ZWFscyB0aGUgZGVwZW5kZW5jaWVzLCByZXNvdXJjZSBtYW5hZ2VtZW50LCBhbmQgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyB0aGF0IG1pZ2h0IGV4cGxhaW4gYW55IG9ic2VydmVkIGJlaGF2aW9yLiBUaGlzICdib3R0b20tdXAnIGFwcHJvYWNoIGNhbiBxdWlja2x5IHN1cmZhY2UgZnVuZGFtZW50YWwgYXNzdW1wdGlvbnMgb3Igb3Zlcmxvb2tlZCBpbnRlcmFjdGlvbnMuIEl0J3MgYWJvdXQgZ3JvdW5kaW5nIG15c2VsZiBpbiB0aGUgaW1wbGVtZW50YXRpb24gc3BlY2lmaWNzIGJlZm9yZSBnZXR0aW5nIGxvc3QgaW4gdGhlIGFic3RyYWN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDk2MywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjIxLjAyNjMyNDkyMloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTkzMDE3NzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlXy4qZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3BoeS9zZnAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9waHkvc2ZwLmM9MzQ4MD1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzZnBfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTM0ODktXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjM0OTA6bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihzZnBfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtMzQ5MS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MjEuMDg1NjMxNzQ5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMTg2OTY5MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQbGF0Zm9ybSBEcml2ZXIgYW5kIFN5emthbGxlcidzIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLCBzZWVtcyB0byBiZSBhIHBsYXRmb3JtIGRyaXZlciBvZiBzb21lIGtpbmQuIE15IGluaXRpYWwgdGhvdWdodCBpcywgXCJDYW4gc3l6a2FsbGVyIGV2ZW4gZ2V0IGF0IHRoaXMgYHNmcF9sb29rdXBfcXVpcmtgIGZ1bmN0aW9uP1wiIFRoYXQncyB0aGUgcmVhbCBxdWVzdGlvbi4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGF0dGFjayBzdXJmYWNlLlxuXG5Ob3csIGBzZnBfbG9va3VwX3F1aXJrYCwgaWYgSSdtIHJlbWVtYmVyaW5nIHJpZ2h0LCBpcyBjYWxsZWQgc3BlY2lmaWNhbGx5IGR1cmluZyBTRlAgbW9kdWxlIGluc2VydGlvbiBvciBwcm9iaW5nIOKAkyB0aGF0J3MgdGhlIHRyaWdnZXIgSSdtIGludGVyZXN0ZWQgaW4uIFNvLCB0byBnZXQgc3l6a2FsbGVyIHRvIGhpdCBpdCwgSSBoYXZlIHRvIHRyYWNlIGhvdyB0aGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkLiBUaW1lIHRvIHNlZSB3aGVyZSB0aGF0IGZ1bmN0aW9uIGlzIGFjdHVhbGx5IGludm9rZWQuIEkgbmVlZCB0byB0cmFjZSB0aGUgY2FsbGluZyBwYXRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzQ2LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MjQuMTA0MzMxMTE0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NDkzMzc4NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZnBfbG9va3VwX3F1aXJrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3BoeS9zZnAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9waHkvc2ZwLmM9NjUxPXN0YXRpYyBib29sIHNmcF9tYXRjaChjb25zdCBjaGFyICpxcywgY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVuLCBib29sIHByZWZpeClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy02NjItXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjY2MzpzdGF0aWMgY29uc3Qgc3RydWN0IHNmcF9xdWlyayAqc2ZwX2xvb2t1cF9xdWlyayhjb25zdCBzdHJ1Y3Qgc2ZwX2VlcHJvbV9pZCAqaWQpXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTY2NC17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM9MjQ5ND1zdGF0aWMgaW50IHNmcF9zbV9tb2RfcHJvYmUoc3RydWN0IHNmcCAqc2ZwLCBib29sIHJlcG9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy0yNjY4LVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYzoyNjY5OlxcdHNmcC1cXHUwMDNlcXVpcmsgPSBzZnBfbG9va3VwX3F1aXJrKFxcdTAwMjZpZCk7XFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTI2NzAtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjI0LjE2OTI3MDUyMVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzI1ODg4NDc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBTRlAgTW9kdWxlIFByb2JlKipcblxuT2theSwgc28gYHNmcF9zbV9tb2RfcHJvYmVgIGlzIHRyaWdnZXJlZCBieSB0aGUgU0ZQIHN0YXRlIG1hY2hpbmUsIG1vc3QgbGlrZWx5IGZyb20gYW4gZXZlbnQgd2l0aGluIHRoZSBzdGF0ZSBtYWNoaW5lIGxpa2UgYHNmcF9zbV9ldmVudGAuIFRoYXQgbWFrZXMgc2Vuc2UuIFRoZSBjcnVjaWFsIHF1ZXN0aW9uIGlzIGhvdyAqdGhhdCogc3RhdGUgbWFjaGluZSBnZXRzIGFjdGl2YXRlZC4gSXQgbG9va3MgbGlrZSBpdCdzIGRyaXZlbiBieSBHUElPIGludGVycnVwdHMsIHNpZ25hbGluZyBtb2R1bGUgaW5zZXJ0aW9uLCBvciBwb3RlbnRpYWxseSB0aHJvdWdoIHBvbGxpbmcuIFxuXG5Ob3csIGNhbiBJIGxldmVyYWdlIHN5emthbGxlciB0byBhY3R1YWxseSAqdGVzdCogdGhpcz8gVGhlIGNoYWxsZW5nZSBpcyBpbiBlbXVsYXRpbmcgdGhlIGhhcmR3YXJlLiBJIG5lZWQgYSB3YXkgdG8gbW9jayB1cCBhIHBsYXRmb3JtIGRldmljZSBjb21wbGV0ZSB3aXRoIHRoZSBuZWNlc3NhcnkgR1BJT3MgYW5kIEkyQyBidXNlcyB0aGF0IHRoZSBTRlAgY29kZSBleHBlY3RzLiBJIGtub3cgdGhhdCBwbGF0Zm9ybSBkZXZpY2VzIGFyZSB0eXBpY2FsbHkgZGVzY3JpYmVkIHRocm91Z2ggRGV2aWNlIFRyZWUgb3IgQUNQSS4gU3l6a2FsbGVyICpkb2VzKiBoYXZlIG1lY2hhbmlzbXMgdG8gaW5qZWN0IHBsYXRmb3JtIGRldmljZXMsIGxpa2VseSB1c2luZyBzb21ldGhpbmcgbGlrZSBgc3l6X2Rldl9wbGF0Zm9ybWAgb3IgYSBzaW1pbGFyIGZ1bmN0aW9uIGNhbGwuIEhvd2V2ZXIsIHRoZSBjb21wbGV4aXR5IGhlcmUgaXMgc2lnbmlmaWNhbnQuIEknbSBpbWFnaW5pbmcgc3BlY2lmaWMgRGV2aWNlIFRyZWUgbm9kZXMgZGVmaW5pbmcgYW4gU0ZQIGNhZ2UsIGNvbXBsZXRlIHdpdGggdGhlIGludHJpY2F0ZSBkZXRhaWxzIG9mIHRoZSBJMkMgYnVzIGFuZCB0aGUgYXNzb2NpYXRlZCBHUElPcy4gSXQgc2VlbXMgdW5saWtlbHkgdGhhdCBzdGFuZGFyZCBzeXprYWxsZXIsIHdpdGhvdXQgY3VzdG9tIGRlc2NyaXB0aW9ucywgd291bGQgc3VwcG9ydCB0aGlzIGtpbmQgb2YgZGV0YWlsZWQgY29uZmlndXJhdGlvbiBvdXQtb2YtdGhlLWJveC4gSXQncyBwcm9iYWJseSB0b28gbmljaGUgdG8gYmUgZ2VuZXJpYy5cblxuQWN0dWFsbHksIGJlZm9yZSBJIGdldCB0b28gZGVlcCBpbiwgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIG9idmlvdXMuIERvZXMgc3l6a2FsbGVyIGV2ZW4gKmZ1enoqIFNGUCBtb2R1bGVzIGRpcmVjdGx5PyBMZXQncyBxdWlja2x5IHNlYXJjaCBmb3IgZXhpc3Rpbmcgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nIFNGUCBmdW5jdGlvbmFsaXR5LiBUaGF0J2xsIHNhdmUgYSBsb3Qgb2YgdGltZSBpZiBzb21lb25lIGVsc2UgaGFzIGFscmVhZHkgdGFja2xlZCB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODQ1LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjI5LjQ5NTE2MDkzN1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ4NTcxMDExLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZnBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6MjkuNzQzNzM5NTA4WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0MTI4ODU5MzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hpbmcgdGhlIFNGUCBFRVBST00gUXVpcmtzIENvZGUqKlxuXG5Pa2F5LCBsZXQncyB0YWtlIGEgbG9vayBhdCBob3cgcmVhY2hhYmxlIHRoaXMgbmV3IGNvZGUgaXMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHRoZSBhY2Nlc3MgcGF0aC4gSWYgaXQncyBhIHBsYXRmb3JtIGRyaXZlciwgdGhlbiB0aGUgdXN1YWwgc3VzcGVjdHMgYXBwbHk6IGEgZGV2aWNlIHRyZWUgbm9kZSB3aXRoIHRoZSBcInNmZixzZnBcIiBjb21wYXRpYmxlIHN0cmluZy4gTm93LCByZWFsaXN0aWNhbGx5LCBTeXprYWxsZXIgdXN1YWxseSBkb2Vzbid0IGp1c3QgKm1hZ2ljYWxseSogaW5qZWN0IGFyYml0cmFyeSBkZXZpY2UgdHJlZSBub2RlcyB1bmxlc3MgdGhlcmUncyBzb21lIHNvcnQgb2Ygc3BlY2lmaWNhbGx5IGRlZmluZWQgcHNldWRvLWRldmljZSwgb3IgaXQncyBwYXJ0IG9mIHRoZSBiYXNlIGltYWdlIHNldHVwLiBTbywgdGhhdCdzIHNvbWV0aGluZyB0byBpbW1lZGlhdGVseSBjb25zaWRlci5cblxuVGhlIG5leHQgcXVlc3Rpb24gaXMsIGlzIGl0IGV2ZW4gd29ydGggdGhlIGVmZm9ydCB0byBmdXp6IGl0PyBUaGlzIHBhdGNoLCBmcm9tIHdoYXQgSSdtIHNlZWluZywgc2VlbXMgdG8gaW1wbGVtZW50IGEgZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZCBzdHJpbmcgbWF0Y2hpbmcgbG9naWMgcmVsYXRlZCB0byBTRlAgRUVQUk9NIHF1aXJrcy4gSXQncyBoYXJkd2FyZS1zcGVjaWZpYywgZm9jdXNpbmcgb24gU0ZQIHRyYW5zY2VpdmVycywgc28gcmlnaHQgYXdheSBJJ20gd29uZGVyaW5nIGFib3V0IHJlYWNoYWJpbGl0eSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFVubGVzcyB3ZSd2ZSBnb3QgYW4gSTJDIG1vY2sgKmFuZCogYSBwbGF0Zm9ybSBkZXZpY2UgbW9jayBmb3IgU0ZQLCB0aGUgb2RkcyBzZWVtIHNsaW0uIFNvLCBhcyBhIGZpcnN0IHN0ZXAsIGxldCdzIGNoZWNrIHRoZSBrZXJuZWwgc291cmNlIC0gaXMgdGhlcmUgYSBtb2NrIFNGUCBhbnl3aGVyZSB0aGF0IGNvdWxkIGFzc2lzdCB1cyBpbiB0ZXN0aW5nIHRoaXMgY29kZT9cblxuXG4iLCJJbnB1dFRva2VucyI6NjQwMywiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzozNC4xNTY2MjczNTlaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwNTE5MDkzOTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2ZmLHNmcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vZ3Bpby1saW5lLW11eC55YW1sPTc2PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vZ3Bpby1saW5lLW11eC55YW1sLTEwMC0gICAgc2ZwMTogc2ZwLXAxIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9ncGlvLWxpbmUtbXV4LnlhbWw6MTAxOiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9ncGlvLWxpbmUtbXV4LnlhbWwtMTAyLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L3NmZixzZnAueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWw9MTM9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sLTE1LSAgICBlbnVtOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sOjE2OiAgICAgIC0gc2ZmLHNmcCAgIyBmb3IgU0ZQIG1vZHVsZXNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC0xNy0gICAgICAtIHNmZixzZmYgICMgZm9yIHNvbGRlcmVkIGRvd24gU0ZGIG1vZHVsZXNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sPTg5PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWwtOTMtICAgIHNmcDE6IHNmcCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zZmYsc2ZwLnlhbWw6OTQ6ICAgICAgY29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC05NS0gICAgICBpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZzZnBfMWdfaTJjXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sLTExNS0gICAgc2ZwMjogc2ZwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbDoxMTY6ICAgICAgY29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NmZixzZnAueWFtbC0xMTctICAgICAgaTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwX2kyY1xcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0PTQwND1kb2N1bWVudGF0aW9uIGluIHRoZSBrZXJuZWwgc291cmNlIHRyZWVcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0OjQwNTpgYERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sYGAuXFxuLS1cXG5NQUlOVEFJTkVSUz0yNDYwMT1TOlxcdE1haW50YWluZWRcXG5NQUlOVEFJTkVSUzoyNDYwMjpGOlxcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc2ZmLHNmcC55YW1sXFxuTUFJTlRBSU5FUlMtMjQ2MDMtRjpcXHRkcml2ZXJzL25ldC9waHkvcGh5bGluay5jXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9icm9hZGNvbS9iY205NTg2MjVoci5kdHM9NTg9XFx0c2ZwOiBzZnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2Jyb2FkY29tL2JjbTk1ODYyNWhyLmR0czo1OTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2Jyb2FkY29tL2JjbTk1ODYyNWhyLmR0cy02MC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmMwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS1jbGVhcmZvZy1ndHItbDguZHRzPTExPVxcdHNmcDE6IHNmcC0xIHtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLWw4LmR0czoxMjpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS1jbGVhcmZvZy1ndHItbDguZHRzLTEzLVxcdFxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2Y2ZfZ3RyX3NmcDFfcGluc1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLmR0c2k9Mjg1PVxcdHNmcDA6IHNmcC0wIHtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODUtY2xlYXJmb2ctZ3RyLmR0c2k6Mjg2OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LWNsZWFyZm9nLWd0ci5kdHNpLTI4Ny1cXHRcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNmNmX2d0cl9zZnAwX3BpbnNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHM9OTc9XFx0c2ZwOiBzZnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4NS10dXJyaXMtb21uaWEuZHRzOjk4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg1LXR1cnJpcy1vbW5pYS5kdHMtOTktXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODgtY2xlYXJmb2cuZHRzaT04MD1cXHRzZnA6IHNmcCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzg4LWNsZWFyZm9nLmR0c2k6ODE6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODgtY2xlYXJmb2cuZHRzaS04Mi1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmMxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LWtvbnRyb24ta3N3aXRjaC1kMTAtbW10LTZnLTJncy5kdHM9MTk9XFx0c2ZwMDogc2ZwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2Nngta29udHJvbi1rc3dpdGNoLWQxMC1tbXQtNmctMmdzLmR0czoyMDpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LWtvbnRyb24ta3N3aXRjaC1kMTAtbW10LTZnLTJncy5kdHMtMjEtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjNFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY2eC1rb250cm9uLWtzd2l0Y2gtZDEwLW1tdC02Zy0yZ3MuZHRzPTMxPVxcdHNmcDE6IHNmcDEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45NjZ4LWtvbnRyb24ta3N3aXRjaC1kMTAtbW10LTZnLTJncy5kdHM6MzI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY2eC1rb250cm9uLWtzd2l0Y2gtZDEwLW1tdC02Zy0yZ3MuZHRzLTMzLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHM9ODE9XFx0c2ZwMjogc2ZwMiB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHM6ODI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY2eC1wY2I4MzA5LmR0cy04My1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmMxMDJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHM9OTA9XFx0c2ZwMzogc2ZwMyB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2NngtcGNiODMwOS5kdHM6OTE6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY2eC1wY2I4MzA5LmR0cy05Mi1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmMxMDNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0NmEtcWRzLmR0cz00Nj1cXHRzZnAxOiBzZnAtMSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0NmEtcWRzLmR0czo0NzpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwNDZhLXFkcy5kdHMtNDgtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwMV9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0NmEtcWRzLmR0cz01Mz1cXHRzZnAyOiBzZnAtMiB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0NmEtcWRzLmR0czo1NDpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwNDZhLXFkcy5kdHMtNTUtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwMl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA4OGEtdGVuNjQuZHRzPTcxPVxcdHNmcF94ZzA6IGRwbWFjMi1zZnAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLXRlbjY0LmR0czo3MjpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLXRlbjY0LmR0cy03My1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZzZnBsb3dlcl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA4OGEtdGVuNjQuZHRzPTgxPVxcdHNmcF94ZzE6IGRwbWFjMS1zZnAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLXRlbjY0LmR0czo4MjpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1sczEwODhhLXRlbjY0LmR0cy04My1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZzZnB1cHBlcl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2k9MzE9XFx0c2ZwMDogc2ZwLTAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpOjMyOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2ktMzMtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwMF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2k9Mzg9XFx0c2ZwMTogc2ZwLTEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpOjM5OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2ktNDAtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwMV9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2k9NDU9XFx0c2ZwMjogc2ZwLTIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpOjQ2OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2ktNDctXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwMl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2k9NTI9XFx0c2ZwMzogc2ZwLTMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWNsZWFyZm9nLWl0eC5kdHNpOjUzOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtY2xlYXJmb2ctaXR4LmR0c2ktNTQtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwM19pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9Mjg3PVxcdGh0X2MzX2J0X3NmcDogc2ZwLTEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzOjI4ODpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzLTI4OS1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZodHdpbnNfc2ZwX2MzX2J0X2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0yOTQ9XFx0aHRfYzNfYmJfc2ZwOiBzZnAtMiB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM6Mjk1OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMjk2LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmh0d2luc19zZnBfYzNfYmJfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzPTMwMT1cXHRodF9jM19hdF9zZnA6IHNmcC0zIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMDI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cy0zMDMtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aHR3aW5zX3NmcF9jM19hdF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzA4PVxcdGh0X2MzX2FiX3NmcDogc2ZwLTQge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzOjMwOTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzLTMxMC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZodHdpbnNfc2ZwX2MzX2FiX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zMTU9XFx0YzFfYnRfc2ZwOiBzZnAtOSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM6MzE2OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzE3LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnR3aW5zX3NmcF9jMV9idF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzIyPVxcdGMxX2JiX3NmcDogc2ZwLTEwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozMjM6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cy0zMjQtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2dHdpbnNfc2ZwX2MxX2JiX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zMjk9XFx0YzFfYXRfc2ZwOiBzZnAtMTEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzOjMzMDpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzLTMzMS1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZ0d2luc19zZnBfYzFfYXRfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzPTMzNj1cXHRjMV9hYl9zZnA6IHNmcC0xMiB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM6MzM3OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzM4LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnR3aW5zX3NmcF9jMV9hYl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzQzPVxcdGMyX2J0X3NmcDogc2ZwLTEzIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNDQ6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cy0zNDUtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2dHdpbnNfc2ZwX2MyX2J0X2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNTA9XFx0YzJfYmJfc2ZwOiBzZnAtMTQge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzOjM1MTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzLTM1Mi1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZ0d2luc19zZnBfYzJfYmJfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzPTM1Nz1cXHRjMl9hdF9zZnA6IHNmcC0xNSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM6MzU4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzU5LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnR3aW5zX3NmcF9jMl9hdF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9MzY0PVxcdGMyX2FiX3NmcDogc2ZwLTE2IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozNjU6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cy0zNjYtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2dHdpbnNfc2ZwX2MyX2FiX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zNzE9XFx0YzNfYnRfc2ZwOiBzZnAtMTcge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzOjM3MjpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzLTM3My1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZ0d2luc19zZnBfYzNfYnRfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzPTM3OD1cXHRjM19iYl9zZnA6IHNmcC0xOCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM6Mzc5OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHMtMzgwLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnR3aW5zX3NmcF9jM19iYl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MGEtaGFsZi10d2lucy5kdHM9Mzg1PVxcdGMzX2F0X3NmcDogc2ZwLTE5IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0czozODY6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cy0zODctXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2dHdpbnNfc2ZwX2MzX2F0X2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1oYWxmLXR3aW5zLmR0cz0zOTI9XFx0YzNfYWJfc2ZwOiBzZnAtMjAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzOjM5MzpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLWhhbGYtdHdpbnMuZHRzLTM5NC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZ0d2luc19zZnBfYzNfYWJfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXJkYi5kdHM9MzU9XFx0c2ZwMjogc2ZwLTIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXJkYi5kdHM6MzY6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1yZGIuZHRzLTM3LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnNmcDJfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXJkYi5kdHM9NDY9XFx0c2ZwMzogc2ZwLTMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXJkYi5kdHM6NDc6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS1yZGIuZHRzLTQ4LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnNmcDNfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXRxbWx4MjE2MGEtbWJseDIxNjBhLmR0cz03MD1cXHRzZnBfeGZpMTogc2ZwLXhmaTEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXRxbWx4MjE2MGEtbWJseDIxNjBhLmR0czo3MTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjBhLXRxbWx4MjE2MGEtbWJseDIxNjBhLmR0cy03Mi1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZ4ZmkxX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS10cW1seDIxNjBhLW1ibHgyMTYwYS5kdHM9ODA9XFx0c2ZwX3hmaTI6IHNmcC14ZmkyIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS10cW1seDIxNjBhLW1ibHgyMTYwYS5kdHM6ODE6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYwYS10cW1seDIxNjBhLW1ibHgyMTYwYS5kdHMtODItXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2eGZpMl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzPTgzPVxcdHNmcF9hdDogc2ZwLWF0IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHM6ODQ6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHMtODUtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwX2kyYzBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzPTkwPVxcdHNmcF9hYjogc2ZwLWFiIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHM6OTE6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHMtOTItXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwX2kyYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzPTk3PVxcdHNmcF9idDogc2ZwLWJ0IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHM6OTg6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHgyMTYyYS1jbGVhcmZvZy5kdHMtOTktXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwX2kyYzJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzPTEwND1cXHRzZnBfYmI6IHNmcC1iYiB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWx4MjE2MmEtY2xlYXJmb2cuZHRzOjEwNTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2ZzbC1seDIxNjJhLWNsZWFyZm9nLmR0cy0xMDYtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwX2kyYzNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvaW14OTUtdmFyLWRhcnQtc29uYXRhLmR0cz0xMzg9XFx0c2ZwMDogc2ZwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9pbXg5NS12YXItZGFydC1zb25hdGEuZHRzOjEzOTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL2lteDk1LXZhci1kYXJ0LXNvbmF0YS5kdHMtMTQwLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmxwaTJjM1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS90cW1sczEweHhhLW1ibHMxMHh4YS5kdHNpPTUxPVxcdHNmcDE6IHNmcDEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL3RxbWxzMTB4eGEtbWJsczEweHhhLmR0c2k6NTI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS90cW1sczEweHhhLW1ibHMxMHh4YS5kdHNpLTUzLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnNmcDFfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL3RxbWxzMTB4eGEtbWJsczEweHhhLmR0c2k9NjE9XFx0c2ZwMjogc2ZwMiB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvdHFtbHMxMHh4YS1tYmxzMTB4eGEuZHRzaTo2MjpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvZnJlZXNjYWxlL3RxbWxzMTB4eGEtbWJsczEweHhhLmR0c2ktNjMtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwMl9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzPTEwMD1cXHRzZnA6IHNmcCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXR1cnJpcy1tb3guZHRzOjEwMTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC10dXJyaXMtbW94LmR0cy0xMDItXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdURQVS5kdHM9MTE9XFx0c2ZwX2V0aDA6IHNmcC1ldGgwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdURQVS5kdHM6MTI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdURQVS5kdHMtMTMtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM3MjAtdURQVS5kdHNpPTY4PVxcdHNmcF9ldGgxOiBzZnAtZXRoMSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zNzIwLXVEUFUuZHRzaTo2OTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzcyMC11RFBVLmR0c2ktNzAtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTcwNDAtbW9jaGFiaW4uZHRzPTM0PVxcdHNmcF9ldGgwOiBzZnAtZXRoMCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0czozNTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtNzA0MC1tb2NoYWJpbi5kdHMtMzYtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2Y3AwX2kyYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS03MDQwLW1vY2hhYmluLmR0cz00ND1cXHRzZnBfZXRoMjogc2ZwLWV0aDIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtNzA0MC1tb2NoYWJpbi5kdHM6NDU6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTcwNDAtbW9jaGFiaW4uZHRzLTQ2LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmNwMF9pMmMwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1jbGVhcmZvZy1ndC04ay5kdHM9NjQ9XFx0c2ZwX2NwMF9ldGgwOiBzZnAtY3AwLWV0aDAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1jbGVhcmZvZy1ndC04ay5kdHM6NjU6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtY2xlYXJmb2ctZ3QtOGsuZHRzLTY2LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmNwMF9pMmMxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpPTY0PVxcdHNmcF9ldGgwOiBzZnAtZXRoMCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLW1jYmluLmR0c2ktNjUtXFx0XFx0LyogQ09OMTUsMTYgLSBDUE0gbGFuZSA0ICovXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLW1jYmluLmR0c2k6NjY6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtbWNiaW4uZHRzaS02Ny1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZzZnBwMF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLW1jYmluLmR0c2k9Nzc9XFx0c2ZwX2V0aDE6IHNmcC1ldGgxIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtbWNiaW4uZHRzaS03OC1cXHRcXHQvKiBDT04xNywxOCAtIENQUyBsYW5lIDQgKi9cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtbWNiaW4uZHRzaTo3OTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTgwLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNnNmcHAxX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtbWNiaW4uZHRzaT05MD1cXHRzZnBfZXRoMzogc2ZwLWV0aDMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpLTkxLVxcdFxcdC8qIENPTjEzLDE0IC0gQ1BTIGxhbmUgNSAqL1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1tY2Jpbi5kdHNpOjkyOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLW1jYmluLmR0c2ktOTMtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwXzFnX2kyY1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtcHV6emxlLW04MDEuZHRzPTY3PVxcdHNmcF9jcDBfZXRoMDogc2ZwLWNwMC1ldGgwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTgwNDAtcHV6emxlLW04MDEuZHRzOjY4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLXB1enpsZS1tODAxLmR0cy02OS1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZzZnBwbHVzMF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLXB1enpsZS1tODAxLmR0cz03Nz1cXHRzZnBfY3AxX2V0aDA6IHNmcC1jcDEtZXRoMCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS04MDQwLXB1enpsZS1tODAxLmR0czo3ODpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtODA0MC1wdXp6bGUtbTgwMS5kdHMtNzktXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2c2ZwcGx1czFfaTJjXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YuZHRzaT0yNz1cXHRzZnA6IHNmcCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi5kdHNpOjI4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1jZi5kdHNpLTI5LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmNwMF9pMmMxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY3JiLmR0c2k9Nzk9XFx0c2ZwOiBzZnAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY3JiLmR0c2k6ODA6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWNyYi5kdHNpLTgxLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmNwMF9pMmMxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtZGIuZHRzaT05Mj1cXHRjcDBfc2ZwX2V0aDA6IHNmcC1ldGgtMSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1kYi5kdHNpOjkzOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMC1kYi5kdHNpLTk0LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmNwMF9zZnBwMF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMS1jZi1zb2xpZHdhbi5kdHM9MTIxPVxcdHNmcDA6IHNmcC0wIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMxLWNmLXNvbGlkd2FuLmR0czoxMjI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMxLWNmLXNvbGlkd2FuLmR0cy0xMjMtXFx0XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZjcDBfc2ZwMF9waW5zXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzEtY2Ytc29saWR3YW4uZHRzPTEzMz1cXHRzZnAxOiBzZnAtMSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMS1jZi1zb2xpZHdhbi5kdHM6MTM0OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMS1jZi1zb2xpZHdhbi5kdHMtMTM1LVxcdFxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2Y3AxX3NmcDFfcGluc1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMxLWRiLmR0c2k9Mzg9XFx0Y3AxX3NmcF9ldGgxOiBzZnAtZXRoLTIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzEtZGIuZHRzaTozOTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzEtZGIuZHRzaS00MC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZjcDFfaTJjMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMyLWNsZWFyZm9nLmR0cz0xMjQ9XFx0c2ZwOiBzZnAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItY2xlYXJmb2cuZHRzOjEyNTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItY2xlYXJmb2cuZHRzLTEyNi1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZjb21fMTBnX3NmcF9pMmMwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzItZGIuZHRzaT01OT1cXHRjcDJfc2ZwX2V0aDA6IHNmcC1ldGgtMyB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMi1kYi5kdHNpOjYwOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tYXJ2ZWxsL2NuOTEzMi1kYi5kdHNpLTYxLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmNwMl9zZnBwMF9pMmNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODZhLWJhbmFuYXBpLWJwaS1yMy5kdHM9MTIxPVxcdHNmcDE6IHNmcC0xIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0czoxMjI6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0cy0xMjMtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODZhLWJhbmFuYXBpLWJwaS1yMy5kdHM9MTMyPVxcdHNmcDI6IHNmcC0yIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0czoxMzM6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4NmEtYmFuYW5hcGktYnBpLXIzLmR0cy0xMzQtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaT05ND1cXHRzZnAxOiBzZnAxIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LXByby5kdHNpOjk1OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaS05Ni1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpbXV4MV9zZnAxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQtcHJvLmR0c2k9MTA0PVxcdHNmcDI6IHNmcDIge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQtcHJvLmR0c2k6MTA1OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9tZWRpYXRlay9tdDc5ODhhLWJhbmFuYXBpLWJwaS1yNC1wcm8uZHRzaS0xMDYtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aW11eDJfc2ZwMlxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LmR0cz0xMz1cXHRzZnAyOiBzZnAyIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LmR0czoxNDpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQuZHRzLTE1LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAyXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWVkaWF0ZWsvbXQ3OTg4YS1iYW5hbmFwaS1icGktcjQuZHRzaT03MD1cXHRzZnAxOiBzZnAxIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LmR0c2k6NzE6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21lZGlhdGVrL210Nzk4OGEtYmFuYW5hcGktYnBpLXI0LmR0c2ktNzItXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM9MTQ0PVxcdHNmcDA6IHNmcDAge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzOjE0NTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzLTE0Ni1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45Njk2LWV2MjN4NzFhLmR0cz0xNTM9XFx0c2ZwMTogc2ZwMSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM6MTU0OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHMtMTU1LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzPTE2Mj1cXHRzZnAyOiBzZnAyIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45Njk2LWV2MjN4NzFhLmR0czoxNjM6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9sYW45Njk2LWV2MjN4NzFhLmR0cy0xNjQtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDJcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvbGFuOTY5Ni1ldjIzeDcxYS5kdHM9MTcxPVxcdHNmcDM6IHNmcDMge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzOjE3MjpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL2xhbjk2OTYtZXYyM3g3MWEuZHRzLTE3My1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwM1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MjY2PVxcdHNmcF9ldGgxMjogc2ZwLWV0aDEyIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MjY3OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTI2OC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9Mjc1PVxcdHNmcF9ldGgxMzogc2ZwLWV0aDEzIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6Mjc2OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTI3Ny1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMlxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9Mjg0PVxcdHNmcF9ldGgxNDogc2ZwLWV0aDE0IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6Mjg1OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTI4Ni1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwM1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MjkzPVxcdHNmcF9ldGgxNTogc2ZwLWV0aDE1IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6Mjk0OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTI5NS1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwNFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzAyPVxcdHNmcF9ldGg0ODogc2ZwLWV0aDQ4IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzAzOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTMwNC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwNVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzExPVxcdHNmcF9ldGg0OTogc2ZwLWV0aDQ5IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzEyOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTMxMy1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwNlxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzIwPVxcdHNmcF9ldGg1MDogc2ZwLWV0aDUwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzIxOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTMyMi1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwN1xcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzI5PVxcdHNmcF9ldGg1MTogc2ZwLWV0aDUxIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzMwOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTMzMS1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwOFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzM4PVxcdHNmcF9ldGg1Mjogc2ZwLWV0aDUyIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzM5OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTM0MC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwOVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9MzQ3PVxcdHNmcF9ldGg1Mzogc2ZwLWV0aDUzIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6MzQ4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTM0OS1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMTBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTM1Nj1cXHRzZnBfZXRoNTQ6IHNmcC1ldGg1NCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjM1NzpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0zNTgtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDExXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0zNjU9XFx0c2ZwX2V0aDU1OiBzZnAtZXRoNTUge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTozNjY6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMzY3LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAxMlxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9Mzc0PVxcdHNmcF9ldGg1Njogc2ZwLWV0aDU2IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6Mzc1OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTM3Ni1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMTNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTM4Mz1cXHRzZnBfZXRoNTc6IHNmcC1ldGg1NyB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjM4NDpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS0zODUtXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDE0XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT0zOTI9XFx0c2ZwX2V0aDU4OiBzZnAtZXRoNTgge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTozOTM6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktMzk0LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAxNVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9NDAxPVxcdHNmcF9ldGg1OTogc2ZwLWV0aDU5IHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6NDAyOlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTQwMy1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMTZcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTQxMD1cXHRzZnBfZXRoNjA6IHNmcC1ldGg2MCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjQxMTpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS00MTItXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDE3XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaT00MTk9XFx0c2ZwX2V0aDYxOiBzZnAtZXRoNjEge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaTo0MjA6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2ktNDIxLVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAxOFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k9NDI4PVxcdHNmcF9ldGg2Mjogc2ZwLWV0aDYyIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21pY3JvY2hpcC9zcGFyeDVfcGNiMTM0X2JvYXJkLmR0c2k6NDI5OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpLTQzMC1cXHRcXHRpMmMtYnVzID0gXFx1MDAzY1xcdTAwMjZpMmNfc2ZwMTlcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpPTQzNz1cXHRzZnBfZXRoNjM6IHNmcC1ldGg2MyB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNF9ib2FyZC5kdHNpOjQzODpcXHRcXHRjb21wYXRpYmxlID0gXFxcInNmZixzZnBcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzRfYm9hcmQuZHRzaS00MzktXFx0XFx0aTJjLWJ1cyA9IFxcdTAwM2NcXHUwMDI2aTJjX3NmcDIwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaT02Nz1cXHRzZnBfZXRoNjA6IHNmcC1ldGg2MCB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpOjY4OlxcdFxcdGNvbXBhdGlibGVcXHQgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpLTY5LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaT03Nz1cXHRzZnBfZXRoNjE6IHNmcC1ldGg2MSB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpOjc4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpLTc5LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAyXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaT04Nz1cXHRzZnBfZXRoNjI6IHNmcC1ldGg2MiB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpOjg4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpLTg5LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnAzXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWljcm9jaGlwL3NwYXJ4NV9wY2IxMzVfYm9hcmQuZHRzaT05Nz1cXHRzZnBfZXRoNjM6IHNmcC1ldGg2MyB7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpOjk4OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwic2ZmLHNmcFxcXCI7XFxuYXJjaC9hcm02NC9ib290L2R0cy9taWNyb2NoaXAvc3Bhcng1X3BjYjEzNV9ib2FyZC5kdHNpLTk5LVxcdFxcdGkyYy1idXMgPSBcXHUwMDNjXFx1MDAyNmkyY19zZnA0XFx1MDAzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM9Mjc9c3RhdGljIGludCB0eGdiZV9zd25vZGVzX3JlZ2lzdGVyKHN0cnVjdCB0eGdiZSAqdHhnYmUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjU6XFx0bm9kZXMtXFx1MDAzZXNmcF9wcm9wc1swXSA9IFBST1BFUlRZX0VOVFJZX1NUUklORyhcXFwiY29tcGF0aWJsZVxcXCIsIFxcXCJzZmYsc2ZwXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02Ni1cXHRub2Rlcy1cXHUwMDNlc2ZwX3Byb3BzWzFdID0gUFJPUEVSVFlfRU5UUllfUkVGX0FSUkFZKFxcXCJpMmMtYnVzXFxcIiwgbm9kZXMtXFx1MDAzZWkyY19yZWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jPTM2Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzZnBfb2ZfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtMzYzLVxcdHsgLmNvbXBhdGlibGUgPSBcXFwic2ZmLHNmZlxcXCIsIC5kYXRhID0gXFx1MDAyNnNmZl9kYXRhLCB9LFxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYzozNjQ6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJzZmYsc2ZwXFxcIiwgLmRhdGEgPSBcXHUwMDI2c2ZwX2RhdGEsIH0sXFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jLTM2NS1cXHR7IH0sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjM2LjIwODU0MjAxWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMDQ2NDY0MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW5pdGlhbCBBc3Nlc3NtZW50OiBTRlAgUmVnaXN0cmF0aW9uIGluIHR4Z2JlX3BoeS5jKipcblxuQWxyaWdodCwgbXkgaW50ZXJuYWwgcmFkYXIganVzdCBwaW5nZWQuIExvb2tpbmcgYXQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmNgLCBJIHNlZSBhIHNvZnR3YXJlIG5vZGUgcmVnaXN0cmF0aW9uIGZvciBgc2ZmLHNmcGAuIFRoYXQgaW1tZWRpYXRlbHkgc3BhcmtzIG15IGludGVyZXN0OyBJJ3ZlIHNlZW4gYSBmZXcgaW1wbGVtZW50YXRpb25zIG9mIFNGUC9TRlArIGhhbmRsaW5nIGluIHNpbWlsYXIgZHJpdmVycywgYW5kIHRoZXkgY2FuIGJlIHF1aXRlIHZhcmllZC4gVGhlIGZhY3QgdGhhdCBpdCdzIGEgc29mdHdhcmUgbm9kZSBzdWdnZXN0cyBhIGRlZ3JlZSBvZiBhYnN0cmFjdGlvbiDigJMgcG9zc2libHkgcHJvYmluZywgb3IgY29uZmlndXJhdGlvbiwgbWF5YmUgZXZlbiBoYW5kbGluZyBzcGVjaWZpYyBQSFkgZGV0YWlscyBiYXNlZCBvbiB0aGUgbW9kdWxlIHR5cGUuIFRpbWUgdG8gZGlnIGRlZXBlci4gTXkgZm9jdXMgaXMgZ29pbmcgc3RyYWlnaHQgdG8gYHR4Z2JlX3N3bm9kZXNfcmVnaXN0ZXJgLiBUaGlzIGlzIGFsbW9zdCBjZXJ0YWlubHkgd2hlcmUgdGhlIG1lYXQgb2YgdGhlIFNGUC9TRlArIG1vZHVsZSBpbml0aWFsaXphdGlvbiBhbmQgcmVzb3VyY2UgbWFuYWdlbWVudCBpcyBoYW5kbGVkLCBlc3BlY2lhbGx5IHRoZSBcInNvZnR3YXJlIG5vZGVcIiBhc3BlY3QuIEkgd2FudCB0byBzZWUgaG93IHRoaXMgcGFydGljdWxhciBkcml2ZXIgYXBwcm9hY2hlcyB0aGUgU0ZQIGludGVyZmFjZS4gQ3VyaW91cyB0byBsZWFybiBob3cgaXQncyBoYW5kbGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjQyOCwiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjQwLjIxMzE5MDcxN1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA5NDg4MDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHhnYmVfc3dub2Rlc19yZWdpc3RlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtMjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzoyNzpzdGF0aWMgaW50IHR4Z2JlX3N3bm9kZXNfcmVnaXN0ZXIoc3RydWN0IHR4Z2JlICp0eGdiZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM9NTc1PWludCB0eGdiZV9pbml0X3BoeShzdHJ1Y3QgdHhnYmUgKnR4Z2JlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy01OTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo1OTI6XFx0cmV0ID0gdHhnYmVfc3dub2Rlc19yZWdpc3Rlcih0eGdiZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy01OTMtXFx0aWYgKHJldCkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzo0MC4yNzQxNDQ2NjVaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM3MDkyMTU4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBgdHhnYmVgIGFuZCBgc2ZwYCBEcml2ZXIgSW50ZXJhY3Rpb24gd2l0aGluIFN5emthbGxlcioqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCB0aGlzIGB0eGdiZWAgTklDLCBhbmQgZmlyc3QsIEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyBhIFBDSSBkZXZpY2UuIFllcCwgV2FuZ3h1biAxMEdiRSBQQ0kgRXhwcmVzcywgZ290IGl0LiBOb3cgdGhlIHF1ZXN0aW9uIGlzLCBjYW4gU3l6a2FsbGVyIGVtdWxhdGUgdGhpcyB0aGluZz8gSSBrbm93IFN5emthbGxlciBoYXMgUENJIGVtdWxhdGlvbiwgYnV0IGl0J3MgdXN1YWxseSBlaXRoZXIgYnJvYWQgb3IgZm9jdXNlZCBvbiBjZXJ0YWluIGRldmljZXMgbGlrZSB0aGUgZTEwMDBlLiBJdCBkZWZpbml0ZWx5IGRvZXNuJ3QgaGF2ZSBhIHNwZWNpZmljIGB0eGdiZWAgaW1wbGVtZW50YXRpb24uXG5cblNvLCB3aXRob3V0IHRoYXQgZGV0YWlsZWQgZW11bGF0aW9uLCB0aGUgYHNmcGAgZHJpdmVyIGlzbid0IGdvaW5nIHRvIGdldCBwcm9iZWQgYXV0b21hdGljYWxseS4gU3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UgYXJlbid0IGdvaW5nIHRvIGhhdmUgYSBkZXZpY2UgdHJlZSBub2RlIG9yIGEgc29mdHdhcmUgbm9kZSBkZWZpbmVkIHdpdGggdGhlIHJpZ2h0IFwiY29tcGF0aWJsZVwiIHN0cmluZyAoYHNmZixzZnBgKS4gSXQgbmVlZHMgc29tZXRoaW5nIHRvIGxhdGNoIG9udG8uXG5cbkhvbGQgb24sIHRob3VnaC4gSSByZWNhbGwgU3l6a2FsbGVyIGhhcyB0aGF0IGBzeXpfZGV2X3BsYXRmb3JtYCBmZWF0dXJlLiBJICpjb3VsZCogaW5qZWN0IGEgcGxhdGZvcm0gZGV2aWNlLiBCdXQgaGVyZSdzIHRoZSBraWNrZXI6IGV2ZW4gaWYgSSBkbyB0aGF0LCB0aGUgYHNmcC5jYCBkcml2ZXIgcmVxdWlyZXMgSTJDIGFuZCBHUElPLiBTeXprYWxsZXIgZG9lc24ndCBhdXRvbWF0aWNhbGx5IGtub3cgaG93IHRvIHNldCB0aG9zZSB1cCBmb3IgYSBwbGF0Zm9ybSBkZXZpY2UuIEknZCBoYXZlIHRvIHNwZWNpZnkgdGhlbSBhcyBwYXJ0IG9mIG15IHN5emthbGxlciBjb2RlLlxuXG5IbW0uLi4gYmVmb3JlIEkgZ28gZG93biB0aGF0IGNvbXBsaWNhdGVkIHJvYWQsIEkgc2hvdWxkIGNoZWNrIHNvbWV0aGluZyBzaW1wbGVyLiBDYW4gdGhlIGBzZnAuY2AgZHJpdmVyIHByb2JlICp3aXRob3V0KiB0aGUgSTJDIGJ1cz8gSXTigJlzIHdvcnRoIGNoZWNraW5nIGlmIGl0IGhhcyBhIGZhbGxiYWNrIG1lY2hhbmlzbS4gSWYgaXQgZG9lc24ndCwgSSdtIGdvaW5nIHRvIGhhdmUgdG8gZG8gYSBsb3QgbW9yZSB3b3JrIHRvIGdldCB0aGlzIHRoaW5nIG9mZiB0aGUgZ3JvdW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzAzOCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzo0NS42NDUwNjgzMzlaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4MTczNjE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNmcF9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9waHkvc2ZwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvcGh5L3NmcC5jPTMyNzI9c3RhdGljIGludCBzZnBfaTJjX2dldChzdHJ1Y3Qgc2ZwICpzZnApXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvc2ZwLmMtMzI5Ny1cXG5kcml2ZXJzL25ldC9waHkvc2ZwLmM6MzI5ODpzdGF0aWMgaW50IHNmcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy0zMjk5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYz0zNDgwPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNmcF9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvcGh5L3NmcC5jOjM0ODE6XFx0LnByb2JlID0gc2ZwX3Byb2JlLFxcbmRyaXZlcnMvbmV0L3BoeS9zZnAuYy0zNDgyLVxcdC5yZW1vdmUgPSBzZnBfcmVtb3ZlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzo0NS43MDMyNDY3NDdaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzIyMzM0OTY4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudDogU0ZQIFByb2JlKipcblxuQWxyaWdodCwgKnNmcF9wcm9iZSouLi4gdGhhdCBpbW1lZGlhdGVseSB0cmlnZ2VycyBhIHNwZWNpZmljIHNldCBvZiBhc3NvY2lhdGlvbnMuIFRoaXMgbGlrZWx5IHJlZmVycyB0byBhIGRpYWdub3N0aWMgdG9vbCBvciBjb21tYW5kLiBNeSBtaW5kIGp1bXBzIHRvIHZhcmlvdXMgaW1wbGVtZW50YXRpb25zLiBJcyB0aGlzIGEgY3VzdG9tIHNjcmlwdCBJJ3ZlIHVzZWQgaW4gdGhlIHBhc3QsIGEgc3BlY2lmaWMgdmVuZG9yJ3MgdXRpbGl0eSwgb3IgcGVyaGFwcyBzb21ldGhpbmcgbW9yZSBnZW5lcmFsLCBsaWtlIGEgbW9kdWxlIHVzZWQgaW4gYSBuZXR3b3JrIG1hbmFnZW1lbnQgZnJhbWV3b3JrPyBUaGUgbmFtZSBpcyBwcmV0dHkgZGVzY3JpcHRpdmUuIEl0IHN1Z2dlc3RzIHByb2Jpbmcgb3IgaW50ZXJyb2dhdGluZyBhbiBTRlAgKFNtYWxsIEZvcm0tZmFjdG9yIFBsdWdnYWJsZSkgdHJhbnNjZWl2ZXIuIFRoaXMgY291bGQgYmUgZm9yIGEgd2lkZSBhcnJheSBvZiByZWFzb25zIOKAkyBkZXRlcm1pbmluZyBpdHMgbW9kZWwsIG1hbnVmYWN0dXJlciwgc3VwcG9ydGVkIHNwZWVkcywgRE9NIChEaWdpdGFsIE9wdGljYWwgTW9uaXRvcmluZykgZGF0YSwgb3IgZXZlbiBqdXN0IHZlcmlmeWluZyBpdHMgcHJlc2VuY2UgYW5kIGZ1bmN0aW9uYWxpdHkuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSBjb250ZXh0LiBJcyB0aGlzIGEgc29mdHdhcmUgdG9vbCwgYSBoYXJkd2FyZSBwcm9iZSwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSBtb3JlIEkgdGhpbmsgYWJvdXQgaXQsIHRoZSBtb3JlIHF1ZXN0aW9ucyBhcmlzZSwgYW5kIHRoZSBtb3JlIEkgcmVjb2duaXplIHRoYXQgY29udGV4dCBpcyBjcml0aWNhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBpbXBsaWNhdGlvbnMgb2YgXCJzZnBfcHJvYmUuXCJcblxuXG4iLCJJbnB1dFRva2VucyI6MjM4MjcsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyNzo0OC45MjY1OTg4NzNaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgxMTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3BoeS9zZnAuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAzMjk4LFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMzI5ODpcXHRzdGF0aWMgaW50IHNmcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbjMyOTk6XFx0e1xcbjMzMDA6XFx0XFx0Y29uc3Qgc3RydWN0IHNmZl9kYXRhICpzZmY7XFxuMzMwMTpcXHRcXHRjaGFyICpzZnBfaXJxX25hbWU7XFxuMzMwMjpcXHRcXHRzdHJ1Y3Qgc2ZwICpzZnA7XFxuMzMwMzpcXHRcXHRpbnQgZXJyLCBpO1xcbjMzMDQ6XFx0XFxuMzMwNTpcXHRcXHRzZnAgPSBzZnBfYWxsb2MoXFx1MDAyNnBkZXYtXFx1MDAzZWRldik7XFxuMzMwNjpcXHRcXHRpZiAoSVNfRVJSKHNmcCkpXFxuMzMwNzpcXHRcXHRcXHRyZXR1cm4gUFRSX0VSUihzZnApO1xcbjMzMDg6XFx0XFxuMzMwOTpcXHRcXHRwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBzZnApO1xcbjMzMTA6XFx0XFxuMzMxMTpcXHRcXHRlcnIgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoc2ZwLVxcdTAwM2VkZXYsIHNmcF9jbGVhbnVwLCBzZnApO1xcbjMzMTI6XFx0XFx0aWYgKGVyciBcXHUwMDNjIDApXFxuMzMxMzpcXHRcXHRcXHRyZXR1cm4gZXJyO1xcbjMzMTQ6XFx0XFxuMzMxNTpcXHRcXHRzZmYgPSBkZXZpY2VfZ2V0X21hdGNoX2RhdGEoc2ZwLVxcdTAwM2VkZXYpO1xcbjMzMTY6XFx0XFx0aWYgKCFzZmYpXFxuMzMxNzpcXHRcXHRcXHRzZmYgPSBcXHUwMDI2c2ZwX2RhdGE7XFxuMzMxODpcXHRcXG4zMzE5OlxcdFxcdHNmcC1cXHUwMDNldHlwZSA9IHNmZjtcXG4zMzIwOlxcdFxcbjMzMjE6XFx0XFx0ZXJyID0gc2ZwX2kyY19nZXQoc2ZwKTtcXG4zMzIyOlxcdFxcdGlmIChlcnIpXFxuMzMyMzpcXHRcXHRcXHRyZXR1cm4gZXJyO1xcbjMzMjQ6XFx0XFxuMzMyNTpcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgR1BJT19NQVg7IGkrKylcXG4zMzI2OlxcdFxcdFxcdGlmIChzZmYtXFx1MDAzZWdwaW9zIFxcdTAwMjYgQklUKGkpKSB7XFxuMzMyNzpcXHRcXHRcXHRcXHRzZnAtXFx1MDAzZWdwaW9baV0gPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbChzZnAtXFx1MDAzZWRldixcXG4zMzI4OlxcdFxcdFxcdFxcdFxcdFxcdCAgIGdwaW9fbmFtZXNbaV0sIGdwaW9fZmxhZ3NbaV0pO1xcbjMzMjk6XFx0XFx0XFx0XFx0aWYgKElTX0VSUihzZnAtXFx1MDAzZWdwaW9baV0pKVxcbjMzMzA6XFx0XFx0XFx0XFx0XFx0cmV0dXJuIFBUUl9FUlIoc2ZwLVxcdTAwM2VncGlvW2ldKTtcXG4zMzMxOlxcdFxcdFxcdH1cXG4zMzMyOlxcdFxcbjMzMzM6XFx0XFx0c2ZwLVxcdTAwM2VzdGF0ZV9od19tYXNrID0gU0ZQX0ZfUFJFU0VOVDtcXG4zMzM0OlxcdFxcdHNmcC1cXHUwMDNlc3RhdGVfaHdfZHJpdmUgPSBTRlBfRl9UWF9ESVNBQkxFO1xcbjMzMzU6XFx0XFxuMzMzNjpcXHRcXHRzZnAtXFx1MDAzZWdldF9zdGF0ZSA9IHNmcF9ncGlvX2dldF9zdGF0ZTtcXG4zMzM3OlxcdFxcdHNmcC1cXHUwMDNlc2V0X3N0YXRlID0gc2ZwX2dwaW9fc2V0X3N0YXRlO1xcbjMzMzg6XFx0XFxuMzMzOTpcXHRcXHQvKiBBbiBTRlAgY2FnZSB3aXRoIG5vIE1PRF9ERUYwIEdQSU8gaGFzIG5vIGhhcmR3YXJlIHByZXNlbmNlIHNpZ25hbC5cXG4zMzQwOlxcdFxcdCAqIEFzc3VtaW5nIHRoZSBtb2R1bGUgaXMgYWx3YXlzIHByZXNlbnQgdHJhcHMgYW4gZW1wdHkgY2FnZSBpblxcbjMzNDE6XFx0XFx0ICogTU9EX0VSUk9SIGFuZCBuZXZlciBkZXRlY3RzIGhvdC1pbnNlcnRpb24sIHNvIGRlcml2ZSBwcmVzZW5jZSBmcm9tIGFcXG4zMzQyOlxcdFxcdCAqIHRocm90dGxlZCBJMkMgcHJvYmUgYW5kIHBvbGwgZm9yIGNoYW5nZXMgaW5zdGVhZC4gc2ZwX2kyY19jb25maWd1cmUoKVxcbjMzNDM6XFx0XFx0ICogaGFzIGFscmVhZHkgc2V0IGkyY19tYXhfYmxvY2tfc2l6ZTsgc2VlZCBpMmNfYmxvY2tfc2l6ZSBzbyB0aGVcXG4zMzQ0OlxcdFxcdCAqIHByZXNlbmNlIHJlYWQgZG9lcyBub3QgaXNzdWUgYSB6ZXJvLWxlbmd0aCB0cmFuc2ZlciBiZWZvcmUgdGhlIGZpcnN0XFxuMzM0NTpcXHRcXHQgKiBFRVBST00gcmVhZC4gU2VlZCBpMmNfcHJlc2VudF9uZXh0IHRvIGppZmZpZXMgc28gdGhlIGZpcnN0IHByb2JlXFxuMzM0NjpcXHRcXHQgKiBoYXBwZW5zIGltbWVkaWF0ZWx5IChhIHplcm8gdmFsdWUgd291bGQgYmUgaW4gdGhlIHBhc3QgcmVsYXRpdmUgdG9cXG4zMzQ3OlxcdFxcdCAqIHRoZSBuZWdhdGl2ZSBJTklUSUFMX0pJRkZJRVMgYXQgYm9vdCBhbmQgZGVsYXkgZGV0ZWN0aW9uKS5cXG4zMzQ4OlxcdFxcdCAqXFxuMzM0OTpcXHRcXHQgKiBBIHNvbGRlcmVkLWRvd24gbW9kdWxlIChzZmYsc2ZmKSBoYXMgbm8gcHJlc2VuY2Ugc2lnbmFsIGFuZCBpc1xcbjMzNTA6XFx0XFx0ICogZ2VudWluZWx5IGFsd2F5cyBwcmVzZW50LCBzbyBpdCBrZWVwcyB0aGUgYWx3YXlzLXByZXNlbnQgYmVoYXZpb3VyO1xcbjMzNTE6XFx0XFx0ICogdGhlIEkyQyBwcm9iZSBpcyBnYXRlZCBvbiB0aGUgY2FnZSB0eXBlIGFkdmVydGlzaW5nIFNGUF9GX1BSRVNFTlQuXFxuMzM1MjpcXHRcXHQgKi9cXG4zMzUzOlxcdFxcdGlmICghc2ZwLVxcdTAwM2VncGlvW0dQSU9fTU9EREVGMF0pIHtcXG4zMzU0OlxcdFxcdFxcdGlmIChzZmYtXFx1MDAzZWdwaW9zIFxcdTAwMjYgU0ZQX0ZfUFJFU0VOVCkge1xcbjMzNTU6XFx0XFx0XFx0XFx0c2ZwLVxcdTAwM2VnZXRfc3RhdGUgPSBzZnBfaTJjX2dldF9zdGF0ZTtcXG4zMzU2OlxcdFxcdFxcdFxcdHNmcC1cXHUwMDNlaTJjX2Jsb2NrX3NpemUgPSBzZnAtXFx1MDAzZWkyY19tYXhfYmxvY2tfc2l6ZTtcXG4zMzU3OlxcdFxcdFxcdFxcdHNmcC1cXHUwMDNlaTJjX3ByZXNlbnRfbmV4dCA9IGppZmZpZXM7XFxuMzM1ODpcXHRcXHRcXHRcXHRzZnAtXFx1MDAzZW5lZWRfcG9sbCA9IHRydWU7XFxuMzM1OTpcXHRcXHRcXHR9IGVsc2Uge1xcbjMzNjA6XFx0XFx0XFx0XFx0c2ZwLVxcdTAwM2VnZXRfc3RhdGUgPSBzZmZfZ3Bpb19nZXRfc3RhdGU7XFxuMzM2MTpcXHRcXHRcXHR9XFxuMzM2MjpcXHRcXHR9XFxuMzM2MzpcXHRcXG4zMzY0OlxcdFxcdGRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwibWF4aW11bS1wb3dlci1taWxsaXdhdHRcXFwiLFxcbjMzNjU6XFx0XFx0XFx0XFx0XFx0IFxcdTAwMjZzZnAtXFx1MDAzZW1heF9wb3dlcl9tVyk7XFxuMzM2NjpcXHRcXHRpZiAoc2ZwLVxcdTAwM2VtYXhfcG93ZXJfbVcgXFx1MDAzYyAxMDAwKSB7XFxuMzM2NzpcXHRcXHRcXHRpZiAoc2ZwLVxcdTAwM2VtYXhfcG93ZXJfbVcpXFxuMzM2ODpcXHRcXHRcXHRcXHRkZXZfd2FybihzZnAtXFx1MDAzZWRldixcXG4zMzY5OlxcdFxcdFxcdFxcdFxcdCBcXFwiRmlybXdhcmUgYnVnOiBob3N0IG1heGltdW0gcG93ZXIgc2hvdWxkIGJlIGF0IGxlYXN0IDFXXFxcXG5cXFwiKTtcXG4zMzcwOlxcdFxcdFxcdHNmcC1cXHUwMDNlbWF4X3Bvd2VyX21XID0gMTAwMDtcXG4zMzcxOlxcdFxcdH1cXG4zMzcyOlxcdFxcbjMzNzM6XFx0XFx0ZGV2X2luZm8oc2ZwLVxcdTAwM2VkZXYsIFxcXCJIb3N0IG1heGltdW0gcG93ZXIgJXUuJXVXXFxcXG5cXFwiLFxcbjMzNzQ6XFx0XFx0XFx0IHNmcC1cXHUwMDNlbWF4X3Bvd2VyX21XIC8gMTAwMCwgKHNmcC1cXHUwMDNlbWF4X3Bvd2VyX21XIC8gMTAwKSAlIDEwKTtcXG4zMzc1OlxcdFxcbjMzNzY6XFx0XFx0LyogR2V0IHRoZSBpbml0aWFsIHN0YXRlLCBhbmQgYWx3YXlzIHNpZ25hbCBUWCBkaXNhYmxlLFxcbjMzNzc6XFx0XFx0ICogc2luY2UgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIHdpbGwgbm90IGJlIHVwLlxcbjMzNzg6XFx0XFx0ICovXFxuMzM3OTpcXHRcXHRzZnAtXFx1MDAzZXN0YXRlID0gc2ZwX2dldF9zdGF0ZShzZnApIHwgU0ZQX0ZfVFhfRElTQUJMRTtcXG4zMzgwOlxcdFxcbjMzODE6XFx0XFx0aWYgKHNmcC1cXHUwMDNlZ3Bpb1tHUElPX1JTMF0gXFx1MDAyNlxcdTAwMjZcXG4zMzgyOlxcdFxcdCAgICBncGlvZF9nZXRfdmFsdWVfY2Fuc2xlZXAoc2ZwLVxcdTAwM2VncGlvW0dQSU9fUlMwXSkpXFxuMzM4MzpcXHRcXHRcXHRzZnAtXFx1MDAzZXN0YXRlIHw9IFNGUF9GX1JTMDtcXG4zMzg0OlxcdFxcdHNmcF9zZXRfc3RhdGUoc2ZwLCBzZnAtXFx1MDAzZXN0YXRlKTtcXG4zMzg1OlxcdFxcdHNmcF9tb2R1bGVfdHhfZGlzYWJsZShzZnApO1xcbjMzODY6XFx0XFx0aWYgKHNmcC1cXHUwMDNlc3RhdGUgXFx1MDAyNiBTRlBfRl9QUkVTRU5UKSB7XFxuMzM4NzpcXHRcXHRcXHRydG5sX2xvY2soKTtcXG4zMzg4OlxcdFxcdFxcdHNmcF9zbV9ldmVudChzZnAsIFNGUF9FX0lOU0VSVCk7XFxuMzM4OTpcXHRcXHRcXHRydG5sX3VubG9jaygpO1xcbjMzOTA6XFx0XFx0fVxcbjMzOTE6XFx0XFxuMzM5MjpcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgR1BJT19NQVg7IGkrKykge1xcbjMzOTM6XFx0XFx0XFx0aWYgKGdwaW9fZmxhZ3NbaV0gIT0gR1BJT0RfSU4gfHwgIXNmcC1cXHUwMDNlZ3Bpb1tpXSlcXG4zMzk0OlxcdFxcdFxcdFxcdGNvbnRpbnVlO1xcbjMzOTU6XFx0XFxuMzM5NjpcXHRcXHRcXHRzZnAtXFx1MDAzZWdwaW9faXJxW2ldID0gZ3Bpb2RfdG9faXJxKHNmcC1cXHUwMDNlZ3Bpb1tpXSk7XFxuMzM5NzpcXHRcXHRcXHRpZiAoc2ZwLVxcdTAwM2VncGlvX2lycVtpXSBcXHUwMDNjIDApIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6NDguOTI2NzgxMzYzWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMTkxMzczNDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBgc2ZwX2kyY19nZXRgIEZ1bmN0aW9uIENhbGwqKlxuXG5BbHJpZ2h0LCBzbyBgc2ZwX2kyY19nZXRgIGlzIGJlaW5nIGludm9rZWQuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIk9rYXksIHdoYXQncyBpdHMgcHVycG9zZT9cIiBHaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIGl0J3MgcHJldHR5IGNsZWFyIGl0J3MgcmVsYXRlZCB0byBJMkMgY29tbXVuaWNhdGlvbiBhbmQgU0ZQIG1vZHVsZXMuIEJ1dCB0aGUgZGV2aWwncyBpbiB0aGUgZGV0YWlscy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHNwZWNpZmljcy4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IHF1aWNrbHkgcmV2aWV3aW5nIHRoZSBjb2RlIGZvciB0aGF0IGZ1bmN0aW9uLiBJIHdhbnQgdG8gc2VlIGhvdyBpdCdzIGludGVyZmFjaW5nIHdpdGggdGhlIEkyQyBidXMgYW5kIGlmIHRoZXJlIGFyZSBhbnkgaW50ZXJlc3RpbmcgbnVhbmNlcy4gQXJlIHdlIHRhbGtpbmcgYWJvdXQgYSBzdGFuZGFyZCBJMkMgcmVhZCBvciBhcmUgdGhlcmUgYW55IG1hbnVmYWN0dXJlci1zcGVjaWZpYyBleHRlbnNpb25zIGJlaW5nIHV0aWxpemVkIGhlcmU/IEknbSBob3BpbmcgaXQncyBzdHJhaWdodGZvcndhcmQgYnV0IEknbSBwcmVwYXJlZCBmb3Igc29tZXRoaW5nIGEgYml0IG1vcmUgY29tcGxleCwgZGVwZW5kaW5nIG9uIHRoZSBoYXJkd2FyZSBwbGF0Zm9ybS4gSSBuZWVkIHRvIGxvb2sgZm9yIGFueSByZWdpc3RlciBhY2Nlc3NlcywgZXJyb3IgaGFuZGxpbmcsIHJldHJpZXMsIGFuZCBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgdGhhdCBJIHdpbGwgYmUgaW50ZXJlc3RlZCBpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU5MDAsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI3OjUxLjk0NTkyMjcxOFoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTI0ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvcGh5L3NmcC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDMyNzIsXG4gIFwiTGluZUNvdW50XCI6IDI1XG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjMyNzI6XFx0c3RhdGljIGludCBzZnBfaTJjX2dldChzdHJ1Y3Qgc2ZwICpzZnApXFxuMzI3MzpcXHR7XFxuMzI3NDpcXHRcXHRzdHJ1Y3QgZndub2RlX2hhbmRsZSAqaDtcXG4zMjc1OlxcdFxcdHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjO1xcbjMyNzY6XFx0XFx0aW50IGVycjtcXG4zMjc3OlxcdFxcbjMyNzg6XFx0XFx0aCA9IGZ3bm9kZV9maW5kX3JlZmVyZW5jZShkZXZfZndub2RlKHNmcC1cXHUwMDNlZGV2KSwgXFxcImkyYy1idXNcXFwiLCAwKTtcXG4zMjc5OlxcdFxcdGlmIChJU19FUlIoaCkpIHtcXG4zMjgwOlxcdFxcdFxcdGRldl9lcnIoc2ZwLVxcdTAwM2VkZXYsIFxcXCJtaXNzaW5nICdpMmMtYnVzJyBwcm9wZXJ0eVxcXFxuXFxcIik7XFxuMzI4MTpcXHRcXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG4zMjgyOlxcdFxcdH1cXG4zMjgzOlxcdFxcbjMyODQ6XFx0XFx0aTJjID0gaTJjX2dldF9hZGFwdGVyX2J5X2Z3bm9kZShoKTtcXG4zMjg1OlxcdFxcdGlmICghaTJjKSB7XFxuMzI4NjpcXHRcXHRcXHRlcnIgPSAtRVBST0JFX0RFRkVSO1xcbjMyODc6XFx0XFx0XFx0Z290byBwdXQ7XFxuMzI4ODpcXHRcXHR9XFxuMzI4OTpcXHRcXG4zMjkwOlxcdFxcdGVyciA9IHNmcF9pMmNfY29uZmlndXJlKHNmcCwgaTJjKTtcXG4zMjkxOlxcdFxcdGlmIChlcnIpXFxuMzI5MjpcXHRcXHRcXHRpMmNfcHV0X2FkYXB0ZXIoaTJjKTtcXG4zMjkzOlxcdHB1dDpcXG4zMjk0OlxcdFxcdGZ3bm9kZV9oYW5kbGVfcHV0KGgpO1xcbjMyOTU6XFx0XFx0cmV0dXJuIGVycjtcXG4zMjk2OlxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6NTEuOTQ2MjE2Njg4WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcwMzA5MjQxOTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQcm9iZSBSZXF1aXJlbWVudCBcdTAwMjYgRnV6emluZyBGZWFzaWJpbGl0eSoqXG5cbk9rYXksIHNvIHRoaXMgZHJpdmVyIHJlbGllcyBvbiBhbiBgaTJjLWJ1c2AgcHJvcGVydHkgYmVpbmcgcHJlc2VudCBpbiB0aGUgZndub2RlLiBJZiB0aGF0J3MgbWlzc2luZywgaXQnbGwgYmFpbCBvdXQgd2l0aCBgLUVOT0RFVmAgb3IgYC1FUFJPQkVfREVGRVJgLiBFc3NlbnRpYWxseSwgbm8gSTJDIGJ1cywgbm8gZHJpdmVyLiBTdHJhaWdodGZvcndhcmQuXG5cbk5vdywgSSdtIHRoaW5raW5nIGFib3V0IGZ1enppbmcgdGhpcy4gU3l6a2FsbGVyICpjYW4qIGluamVjdCBJMkMgYWRhcHRlcnMgKGNsZXZlciEpLCB1c2luZyB0aGluZ3MgbGlrZSBgaTJjLXN0dWJgIG9yIGBpMmMtbW9ja2AuIFRoZSBwcm9ibGVtIGlzIHRoYXQgaXQgZG9lc24ndCBhdXRvbWF0aWNhbGx5IGxpbmsgdGhlbSB1cCB0byB0aGUgcGxhdGZvcm0gZGV2aWNlJ3MgZndub2RlIHVzaW5nIHRoYXQgY3J1Y2lhbCBgaTJjLWJ1c2AgcHJvcGVydHkuIERhbW4uIEkgcmVtZW1iZXIgYHN5el9kZXZfcGxhdGZvcm1gIGZvciBjcmVhdGluZyBwbGF0Zm9ybSBkZXZpY2VzLCBidXQgaXQncyBub3QgdGhlIGlkZWFsIHNvbHV0aW9uIGFzIGl0J3Mgbm90IGRlc2lnbmVkIHRvIGhhbmRsZSBmd25vZGUgcHJvcGVydHkgbGlua2luZyBsaWtlIHRoaXMuXG5cbkFuZCB3YWl0LCB0aGlzIHBhdGNoIEknbSBsb29raW5nIGF0LCBpdCBzZWVtcyB0byBiZSBqdXN0IGFkZGluZyBhIHByZWZpeCBtYXRjaCBmb3IgU0ZQIHF1aXJrcy4gU28sIGlzIHRoaXMgZXZlbiByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzPyBQcm9iYWJseSBub3QuIEl0IG5lZWRzIHRoYXQgc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbjogYW4gU0ZQIGNhZ2Ugd2l0aCBhbiBJMkMgYnVzLiBRRU1VIGFuZCBHQ0UgYXJlbid0IGdvaW5nIHRvIGVtdWxhdGUgdGhhdCwgYW5kIFN5emthbGxlciBkb2Vzbid0IGhhdmUgYSBnb29kIG1vY2sgZm9yIGl0LCBhcyBmYXIgYXMgSSBrbm93LlxuXG5IYW5nIG9uLi4uIGNvdWxkIHdlIGZ1enogYHR4Z2JlYCBpbnN0ZWFkPyBUaGF0J3MgYSBQQ0kgZGV2aWNlLiBTeXprYWxsZXIgKmNhbiogaGFuZGxlIFBDSSBkZXZpY2VzIHdpdGggYHN5el9wY2lfZGV2aWNlYCBvciBzaW1pbGFyLiBCdXQsIGl0IG5lZWRzIHRoZSBkZXZpY2UgdG8gYmUgc3VwcG9ydGVkIGJ5IHRoZSBQQ0kgZnV6emVyLCB3aGljaCBpcyBhIGJpZyBwcmVyZXF1aXNpdGUuXG5cbkV2ZW4gKmlmKiBgdHhnYmVgIGlzIGZ1enplZCwgdGhlIFNGUCBtb2R1bGUgRUVQUk9NIGlzIHN0aWxsIHJlYWQgb3ZlciBJMkMuIFRoZSBJMkMgYnVzIGhlcmUgaXMgcHJvdmlkZWQgYnkgYHR4Z2JlYC4gU28gdGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGlzIGRvZXMgYHR4Z2JlYCBwcm92aWRlIGFuIEkyQyBhZGFwdGVyPyBJIG5lZWQgdG8gbG9vayBpbnRvIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NTcwLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6NTguOTc3MTQzMTI5WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjYxOTgyMzIsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImkyY19hZGRfYWRhcHRlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjc6NTkuMjAzMzUyOTJaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzYzMDQ5NTQ0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkkyQyBSZWdpc3RlciBJbnNwZWN0aW9uIHdpdGhpbiBgdHhnYmVgKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbi4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIGhvdyB0aGUgYHR4Z2JlYCBkcml2ZXIgaW50ZXJhY3RzIHdpdGggSTJDLiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dCBob3cgdGhlIHJlZ2lzdGVycyByZWxhdGVkIHRvIHRoZSBJMkMgaW50ZXJmYWNlIGFyZSBtYXBwZWQgYW5kIGFjY2Vzc2VkLiBJJ20gZ29pbmcgdG8gc3RhcnQgYnkgdHJhY2luZyB0aHJvdWdoIHRoZSBkcml2ZXIgY29kZSBhbmQgcmVmcmVzaGluZyBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSByZWdpc3RlciBkZWZpbml0aW9ucy4gSSdsbCBuZWVkIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGJhc2UgYWRkcmVzc2VzIGFuZCBvZmZzZXRzIHVzZWQgZm9yIHRoZSBJMkMgY29udHJvbCBhbmQgc3RhdHVzIHJlZ2lzdGVycy4gQXJlIHRoZXkgbWVtb3J5LW1hcHBlZD8gQXJlIHRoZXJlIGFueSBzcGVjaWFsIGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byB0YWtlIGludG8gYWNjb3VudD8gSSdsbCBwcm9iYWJseSB3YW50IHRvIGxvb2sgZm9yIGFueSBtYWNyb3Mgb3IgaGVscGVyIGZ1bmN0aW9ucyB0aGUgZHJpdmVyIHVzZXMgdG8gZW5jYXBzdWxhdGUgdGhlIEkyQyByZWdpc3RlciBpbnRlcmFjdGlvbnMuIFRoaXMgaXMgYSBjb21tb24gcGF0dGVybiwgYW5kIEkgZXhwZWN0IHRoZXJlIHRvIGJlIGFic3RyYWN0aW9uIGhlcmUuIExldCdzIHNlZSBob3cgdGhleSBkbyBpdC4gSSdsbCBiZSBsb29raW5nIGZvciBhbnkgcG90ZW50aWFsIHF1aXJrcyBvciBlcnJhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSByZXZpc2lvbi4gQW5kIG9mIGNvdXJzZSwgSSdsbCBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIGludGVycnVwdCBoYW5kbGluZyBpZiBpdCdzIGludm9sdmVkLCBzaW5jZSB0aGF0J3Mgb2Z0ZW4gYSBzb3VyY2Ugb2Ygc3VidGxlIGJ1Z3MuIEkgd2FudCB0byBidWlsZCBhIGNsZWFyIG1lbnRhbCBtb2RlbCBvZiBob3cgYHR4Z2JlYCBpbml0aWFsaXplcyBhbmQgbWFuYWdlcyB0aGUgSTJDIGludGVyZmFjZSBmcm9tIGEgbG93LWxldmVsIHBlcnNwZWN0aXZlLiBLbm93aW5nIHRoaXMsIEknbGwgYmUgcHJlcGFyZWQgZm9yIGRlYnVnZ2luZyBvciBlbmhhbmNlbWVudHMgbGF0ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NDAxLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjg6MDIuODMzODUxOTYxWiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NTczODYwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpMmNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYz03Nj1pbnQgdHhnYmVfcmVhZF9lZXByb21faG9zdGlmKHN0cnVjdCB3eCAqd3gsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo3NzpcXHRcXHRcXHQgICAgIHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQgKmJ1ZmZlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTc4LVxcdFxcdFxcdCAgICAgdTMyIGxlbmd0aCwgdTggKmRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTgzLVxcdGJ1ZmZlci1cXHUwMDNlaGRyLmNtZCA9IEZXX1JFQURfRUVQUk9NX0NNRDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjg0OlxcdGJ1ZmZlci1cXHUwMDNlaGRyLmJ1Zl9sZW4gPSBzaXplb2Yoc3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCkgLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtODUtXFx0XFx0XFx0ICAgICAgc2l6ZW9mKHN0cnVjdCB3eF9oaWNfaGRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmMtODgtXFx0ZXJyID0gd3hfaG9zdF9pbnRlcmZhY2VfY29tbWFuZCh3eCwgKHUzMiAqKWJ1ZmZlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jOjg5OlxcdFxcdFxcdFxcdFxcdHNpemVvZihzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTkwLVxcdFxcdFxcdFxcdFxcdFdYX0hJX0NPTU1BTkRfVElNRU9VVCwgZmFsc2UpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYy05NC1cXHQvKiBidWZmZXIgbGVuZ3RoIG9mZnNldCB0byByZWFkIHJldHVybiBkYXRhICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuYzo5NTpcXHRvZmZzZXQgPSBzaXplb2Yoc3RydWN0IHR4Z2JlX2hpY19pMmNfcmVhZCkgXFx1MDAzZVxcdTAwM2UgMjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2FtbC5jLTk2LVxcdGR3b3JkX2xlbiA9IHJvdW5kX3VwKGxlbmd0aCwgNCkgXFx1MDAzZVxcdTAwM2UgMjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg9MTA9aW50IHR4Z2JlX3JlYWRfZWVwcm9tX2hvc3RpZihzdHJ1Y3Qgd3ggKnd4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfYW1sLmg6MTE6XFx0XFx0XFx0ICAgICBzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkICpidWZmZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9hbWwuaC0xMi1cXHRcXHRcXHQgICAgIHUzMiBsZW5ndGgsIHU4ICpkYXRhKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jPTUyOT10eGdiZV9nZXRfbW9kdWxlX2VlcHJvbV9ieV9wYWdlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX2V0aHRvb2wuYy01MzMtXFx0c3RydWN0IHd4ICp3eCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmM6NTM0OlxcdHN0cnVjdCB0eGdiZV9oaWNfaTJjX3JlYWQgYnVmZmVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTUzNS1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9ldGh0b29sLmMtNTQzLVxcdGJ1ZmZlci5iYW5rID0gcGFnZV9kYXRhLVxcdTAwM2ViYW5rO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jOjU0NDpcXHRidWZmZXIuaTJjX2FkZHJlc3MgPSBwYWdlX2RhdGEtXFx1MDAzZWkyY19hZGRyZXNzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfZXRodG9vbC5jLTU0NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtOC0jaW5jbHVkZSBcXHUwMDNjbGludXgvY2xrZGV2LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo5OiNpbmNsdWRlIFxcdTAwM2NsaW51eC9pMmMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTEwLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9wY2kuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM9Mjc9c3RhdGljIGludCB0eGdiZV9zd25vZGVzX3JlZ2lzdGVyKHN0cnVjdCB0eGdiZSAqdHhnYmUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTM2LVxcdHNucHJpbnRmKG5vZGVzLVxcdTAwM2VncGlvX25hbWUsIHNpemVvZihub2Rlcy1cXHUwMDNlZ3Bpb19uYW1lKSwgXFxcInR4Z2JlX2dwaW8tJXhcXFwiLCBpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzozNzpcXHRzbnByaW50Zihub2Rlcy1cXHUwMDNlaTJjX25hbWUsIHNpemVvZihub2Rlcy1cXHUwMDNlaTJjX25hbWUpLCBcXFwidHhnYmVfaTJjLSV4XFxcIiwgaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtMzgtXFx0c25wcmludGYobm9kZXMtXFx1MDAzZXNmcF9uYW1lLCBzaXplb2Yobm9kZXMtXFx1MDAzZXNmcF9uYW1lKSwgXFxcInR4Z2JlX3NmcC0leFxcXCIsIGlkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo1OTpcXHRub2Rlcy1cXHUwMDNlaTJjX3Byb3BzWzBdID0gUFJPUEVSVFlfRU5UUllfU1RSSU5HKFxcXCJjb21wYXRpYmxlXFxcIiwgXFxcInNucHMsZGVzaWdud2FyZS1pMmNcXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYwOlxcdG5vZGVzLVxcdTAwM2VpMmNfcHJvcHNbMV0gPSBQUk9QRVJUWV9FTlRSWV9CT09MKFxcXCJ3eCxpMmMtc25wcy1tb2RlbFxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjE6XFx0bm9kZXMtXFx1MDAzZWkyY19wcm9wc1syXSA9IFBST1BFUlRZX0VOVFJZX1UzMihcXFwiY2xvY2stZnJlcXVlbmN5XFxcIiwgSTJDX01BWF9TVEFOREFSRF9NT0RFX0ZSRVEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjI6XFx0c3dub2Rlc1tTV05PREVfSTJDXSA9IE5PREVfUFJPUChub2Rlcy1cXHUwMDNlaTJjX25hbWUsIG5vZGVzLVxcdTAwM2VpMmNfcHJvcHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjM6XFx0bm9kZXMtXFx1MDAzZWkyY19yZWZbMF0gPSBTT0ZUV0FSRV9OT0RFX1JFRkVSRU5DRShcXHUwMDI2c3dub2Rlc1tTV05PREVfSTJDXSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTY1LVxcdG5vZGVzLVxcdTAwM2VzZnBfcHJvcHNbMF0gPSBQUk9QRVJUWV9FTlRSWV9TVFJJTkcoXFxcImNvbXBhdGlibGVcXFwiLCBcXFwic2ZmLHNmcFxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjY6XFx0bm9kZXMtXFx1MDAzZXNmcF9wcm9wc1sxXSA9IFBST1BFUlRZX0VOVFJZX1JFRl9BUlJBWShcXFwiaTJjLWJ1c1xcXCIsIG5vZGVzLVxcdTAwM2VpMmNfcmVmKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTY3LVxcdG5vZGVzLVxcdTAwM2VzZnBfcHJvcHNbMl0gPSBQUk9QRVJUWV9FTlRSWV9SRUZfQVJSQVkoXFxcInR4LWZhdWx0LWdwaW9zXFxcIiwgbm9kZXMtXFx1MDAzZWdwaW8wX3JlZik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jPTQyMT1zdGF0aWMgaW50IHR4Z2JlX2Nsb2NrX3JlZ2lzdGVyKHN0cnVjdCB0eGdiZSAqdHhnYmUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQyODpcXHRzbnByaW50ZihjbGtfbmFtZSwgc2l6ZW9mKGNsa19uYW1lKSwgXFxcImkyY19kZXNpZ253YXJlLiVkXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQyOS1cXHRcXHQgcGNpX2Rldl9pZChwZGV2KSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQ0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQ0NzpzdGF0aWMgaW50IHR4Z2JlX2kyY19yZWFkKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCAqdmFsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDQ4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDU2OnN0YXRpYyBpbnQgdHhnYmVfaTJjX3dyaXRlKHZvaWQgKmNvbnRleHQsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCB2YWwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0NjU6c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIGkyY19yZWdtYXBfY29uZmlnID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDY2LVxcdC5yZWdfYml0cyA9IDMyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDY3LVxcdC52YWxfYml0cyA9IDMyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDY4OlxcdC5yZWdfcmVhZCA9IHR4Z2JlX2kyY19yZWFkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDY5OlxcdC5yZWdfd3JpdGUgPSB0eGdiZV9pMmNfd3JpdGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NzAtXFx0LmZhc3RfaW8gPSB0cnVlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0NzM6c3RhdGljIGludCB0eGdiZV9pMmNfcmVnaXN0ZXIoc3RydWN0IHR4Z2JlICp0eGdiZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQ3NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NzUtXFx0c3RydWN0IHBsYXRmb3JtX2RldmljZV9pbmZvIGluZm8gPSB7fTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQ3NjpcXHRzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICppMmNfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDc3OlxcdHN0cnVjdCByZWdtYXAgKmkyY19yZWdtYXA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00NzgtXFx0c3RydWN0IHBjaV9kZXYgKnBkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTQ4Mi1cXHRwZGV2ID0gd3gtXFx1MDAzZXBkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0ODM6XFx0aTJjX3JlZ21hcCA9IGRldm1fcmVnbWFwX2luaXQoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgTlVMTCwgd3gsIFxcdTAwMjZpMmNfcmVnbWFwX2NvbmZpZyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0ODQ6XFx0aWYgKElTX0VSUihpMmNfcmVnbWFwKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDg1LVxcdFxcdHd4X2Vycih3eCwgXFxcImZhaWxlZCB0byBpbml0IEkyQyByZWdtYXBcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDg2OlxcdFxcdHJldHVybiBQVFJfRVJSKGkyY19yZWdtYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDg3LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDkwLVxcdGluZm8uZndub2RlID0gc29mdHdhcmVfbm9kZV9md25vZGUodHhnYmUtXFx1MDAzZW5vZGVzLmdyb3VwW1NXTk9ERV9JMkNdKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQ5MTpcXHRpbmZvLm5hbWUgPSBcXFwiaTJjX2Rlc2lnbndhcmVcXFwiO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNDkyLVxcdGluZm8uaWQgPSBwY2lfZGV2X2lkKHBkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00OTUtXFx0aW5mby5udW1fcmVzID0gMTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjQ5NjpcXHRpMmNfZGV2ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX2Z1bGwoXFx1MDAyNmluZm8pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NDk3OlxcdGlmIChJU19FUlIoaTJjX2RldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo0OTg6XFx0XFx0cmV0dXJuIFBUUl9FUlIoaTJjX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy00OTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo1MDA6XFx0dHhnYmUtXFx1MDAzZWkyY19kZXYgPSBpMmNfZGV2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNTAxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYz01NzU9aW50IHR4Z2JlX2luaXRfcGh5KHN0cnVjdCB0eGdiZSAqdHhnYmUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTYyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYyMjpcXHRyZXQgPSB0eGdiZV9pMmNfcmVnaXN0ZXIodHhnYmUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjIzLVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYyNDpcXHRcXHR3eF9lcnIod3gsIFxcXCJmYWlsZWQgdG8gaW5pdCBpMmMgaW50ZXJmYWNlOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTYyNS1cXHRcXHRnb3RvIGVycl91bnJlZ2lzdGVyX2NsaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjMwLVxcdFxcdHd4X2Vycih3eCwgXFxcImZhaWxlZCB0byByZWdpc3RlciBzZnBcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjMxOlxcdFxcdGdvdG8gZXJyX3VucmVnaXN0ZXJfaTJjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjMyLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM6NjM2OmVycl91bnJlZ2lzdGVyX2kyYzpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjYzNzpcXHRwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3Rlcih0eGdiZS1cXHUwMDNlaTJjX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy02MzgtZXJyX3VucmVnaXN0ZXJfY2xrOlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYz02NTE9dm9pZCB0eGdiZV9yZW1vdmVfcGh5KHN0cnVjdCB0eGdiZSAqdHhnYmUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTY3MS1cXHRwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3Rlcih0eGdiZS1cXHUwMDNlc2ZwX2Rldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzo2NzI6XFx0cGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIodHhnYmUtXFx1MDAzZWkyY19kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmMtNjczLVxcdGNsa2Rldl9kcm9wKHR4Z2JlLVxcdTAwM2VjbG9jayk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaD0zOTA9c3RydWN0IHR4Z2JlX2hpY19lcGh5X2dldGxpbmsge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oOjQwMTpzdHJ1Y3QgdHhnYmVfaGljX2kyY19yZWFkIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00MDItXFx0c3RydWN0IHd4X2hpY19oZHIgaGRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDA2LVxcdHU4IGJhbms7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmg6NDA3OlxcdHU4IGkyY19hZGRyZXNzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQwOC1cXHR1OCByZXN2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmg9NDI1PXN0cnVjdCB0eGdiZV9ub2RlcyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDI2LVxcdGNoYXIgZ3Bpb19uYW1lWzMyXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaDo0Mjc6XFx0Y2hhciBpMmNfbmFtZVszMl07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDI4LVxcdGNoYXIgc2ZwX25hbWVbMzJdO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmgtNDMwLVxcdHN0cnVjdCBwcm9wZXJ0eV9lbnRyeSBncGlvX3Byb3BzWzJdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oOjQzMTpcXHRzdHJ1Y3QgcHJvcGVydHlfZW50cnkgaTJjX3Byb3BzWzRdO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQzMi1cXHRzdHJ1Y3QgcHJvcGVydHlfZW50cnkgc2ZwX3Byb3BzWzldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfdHlwZS5oLTQzMy1cXHRzdHJ1Y3QgcHJvcGVydHlfZW50cnkgcGh5bGlua19wcm9wc1szXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaDo0MzQ6XFx0c3RydWN0IHNvZnR3YXJlX25vZGVfcmVmX2FyZ3MgaTJjX3JlZlsxXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00MzUtXFx0c3RydWN0IHNvZnR3YXJlX25vZGVfcmVmX2FyZ3MgZ3BpbzBfcmVmWzFdO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV90eXBlLmg9NDU5PXN0cnVjdCB0eGdiZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00NjQtXFx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqc2ZwX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaDo0NjU6XFx0c3RydWN0IHBsYXRmb3JtX2RldmljZSAqaTJjX2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3R5cGUuaC00NjYtXFx0c3RydWN0IGNsa19sb29rdXAgKmNsb2NrO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyODowMi45MTk2MTI2NjdaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjI0NDQ1MzA3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSB0eGdiZSBEcml2ZXIgYW5kIFBvdGVudGlhbCBTeXprYWxsZXIgRnV6emluZyBJbXBsaWNhdGlvbnMqKlxuXG5Pa2F5LCBzbyBgdHhnYmVgIGlzIGNyZWF0aW5nIGEgYGkyY19kZXNpZ253YXJlYCBwbGF0Zm9ybSBkZXZpY2UgYW5kIGEgYHNmZixzZnBgIHBsYXRmb3JtIGRldmljZS4gVGhhdCdzIGludGVyZXN0aW5nLiBJZiBTeXprYWxsZXIsIGluIGl0cyBQQ0kgZnV6emluZywgc29tZWhvdyBtYW5hZ2VzIHRvIGluaXRpYWxpemUgYHR4Z2JlYCwgaXQncyBnb2luZyB0byBzcGF3biB0aGVzZSBjaGlsZHJlbiAtIGFuIEkyQyBhZGFwdGVyIGFuZCBhbiBTRlAgZGV2aWNlLCB3aGljaCBzZWVtcyBsaWtlIGEgcHJvbWlzaW5nIGF0dGFjayBzdXJmYWNlIHRvIG1lLlxuXG5Ib3dldmVyLCB0aGUgY2F0Y2gsIGFzIGFsd2F5cywgaXMgdGhhdCBgdHhnYmVgIGlzIGEgY29tcGxleCBkcml2ZXIuIEl0IG5lZWRzIHJlYWwgaGFyZHdhcmUgb3IgYXQgbGVhc3QgYSBnb29kIG1vY2sgdG8gcmVzcG9uZCBjb3JyZWN0bHkgdG8gUENJIE1NSU8gcmVhZHMgYW5kIHdyaXRlcy4gV2hpbGUgU3l6a2FsbGVyJ3MgUENJIGZ1enplciBjYW4gZGVmaW5pdGVseSBpbmplY3QgTU1JTyBvcGVyYXRpb25zLCBnZXR0aW5nIGEgY29tcGxpY2F0ZWQgZHJpdmVyIGxpa2UgdGhpcyB0byBmdWxseSBpbml0aWFsaXplIGFuZCByZWdpc3RlciBpdHMgY2hpbGQgcGxhdGZvcm0gZGV2aWNlcywgd2l0aG91dCBhIGNhcmVmdWxseSBjcmFmdGVkIG1vY2ssIGlzIGEgc2lnbmlmaWNhbnQgY2hhbGxlbmdlLlxuXG5MZXQncyBhc3N1bWUsIGZvciBhIG1vbWVudCwgdGhhdCB3ZSAqZG8qIGdldCBpdCB0byBpbml0aWFsaXplLiBUaGUgSTJDIGFkYXB0ZXIgaXMgYW4gYGkyY19kZXNpZ253YXJlYCBkZXZpY2UsIHdoaWNoIG1lYW5zIHRoZSBTRlAgZHJpdmVyIHdpbGwgYmUgdHJ5aW5nIHRvIHJlYWQgZnJvbSB0aGUgSTJDIGJ1cy4gQW5kLCBzaW5jZSBgaTJjX2Rlc2lnbndhcmVgIHJlbGllcyBvbiBgdHhnYmVgJ3MgTU1JTyBmb3IgdGhlIGFjdHVhbCBJMkMgdHJhbnNhY3Rpb25zLCB3ZSdyZSBpbiBhIHNpdHVhdGlvbiB3aGVyZSByYW5kb20gTU1JTyByZXNwb25zZXMgZnJvbSBTeXprYWxsZXIgd2lsbCBhbG1vc3QgY2VydGFpbmx5IGxlYWQgdG8gZWl0aGVyIGZhaWxpbmcgSTJDIHJlYWRzIG9yLCBtb3JlIGludGVyZXN0aW5nbHksIHRoZSByZXR1cm4gb2YgY29tcGxldGVseSBnYXJiYWdlIGRhdGEuXG5cbklmIHRoZSBJMkMgcmVhZCByZXR1cm5zIGp1bmssIGBzZnBfc21fbW9kX3Byb2JlYCBpcyBnb2luZyB0byByZWFkIGZyb20gdGhlIEVFUFJPTS4gVGhpcyBpcyB3aGVyZSB0aGluZ3MgZ2V0IHJlYWxseSBpbnRlcmVzdGluZzsgdGhlIFNGUCBkcml2ZXIgaXMgZ29pbmcgdG8gdHJ5IHRvIHByb2Nlc3MgYmFkIEVFUFJPTSBkYXRhLiBOb3cgSSBuZWVkIHRvIHRha2UgYSBsb29rIGF0IGBzZnBfc21fbW9kX3Byb2JlYCBhbmQgc2VlIHdoYXQgaXQgZG9lcyB3aXRoIHRoaXMgbm9uc2Vuc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyNjc2LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI4OjA5LjE2NDA2NzU2OFoiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzM2NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvcGh5L3NmcC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI0OTQsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyNDk0OlxcdHN0YXRpYyBpbnQgc2ZwX3NtX21vZF9wcm9iZShzdHJ1Y3Qgc2ZwICpzZnAsIGJvb2wgcmVwb3J0KVxcbjI0OTU6XFx0e1xcbjI0OTY6XFx0XFx0LyogU0ZQIG1vZHVsZSBpbnNlcnRlZCAtIHJlYWQgSTJDIGRhdGEgKi9cXG4yNDk3OlxcdFxcdHN0cnVjdCBzZnBfZWVwcm9tX2lkIGlkO1xcbjI0OTg6XFx0XFx0Ym9vbCBjb3Rzd29ya3Nfc2ZiZztcXG4yNDk5OlxcdFxcdHVuc2lnbmVkIGludCBtYXNrO1xcbjI1MDA6XFx0XFx0Ym9vbCBjb3Rzd29ya3M7XFxuMjUwMTpcXHRcXHR1OCBjaGVjaztcXG4yNTAyOlxcdFxcdGludCByZXQ7XFxuMjUwMzpcXHRcXG4yNTA0OlxcdFxcdHNmcC1cXHUwMDNlaTJjX2Jsb2NrX3NpemUgPSBzZnAtXFx1MDAzZWkyY19tYXhfYmxvY2tfc2l6ZTtcXG4yNTA1OlxcdFxcbjI1MDY6XFx0XFx0cmV0ID0gc2ZwX3JlYWQoc2ZwLCBmYWxzZSwgMCwgXFx1MDAyNmlkLmJhc2UsIHNpemVvZihpZC5iYXNlKSk7XFxuMjUwNzpcXHRcXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbjI1MDg6XFx0XFx0XFx0aWYgKHJlcG9ydClcXG4yNTA5OlxcdFxcdFxcdFxcdGRldl9lcnIoc2ZwLVxcdTAwM2VkZXYsIFxcXCJmYWlsZWQgdG8gcmVhZCBFRVBST006ICVwZVxcXFxuXFxcIixcXG4yNTEwOlxcdFxcdFxcdFxcdFxcdEVSUl9QVFIocmV0KSk7XFxuMjUxMTpcXHRcXHRcXHRyZXR1cm4gLUVBR0FJTjtcXG4yNTEyOlxcdFxcdH1cXG4yNTEzOlxcdFxcbjI1MTQ6XFx0XFx0aWYgKHJldCAhPSBzaXplb2YoaWQuYmFzZSkpIHtcXG4yNTE1OlxcdFxcdFxcdGRldl9lcnIoc2ZwLVxcdTAwM2VkZXYsIFxcXCJFRVBST00gc2hvcnQgcmVhZDogJXBlXFxcXG5cXFwiLCBFUlJfUFRSKHJldCkpO1xcbjI1MTY6XFx0XFx0XFx0cmV0dXJuIC1FQUdBSU47XFxuMjUxNzpcXHRcXHR9XFxuMjUxODpcXHRcXG4yNTE5OlxcdFxcdC8qIFNvbWUgU0ZQIG1vZHVsZXMgKGUuZy4gTm9raWEgM0ZFNDY1NDFBQSkgbG9jayB1cCBpZiByZWFkIGZyb21cXG4yNTIwOlxcdFxcdCAqIGFkZHJlc3MgMHg1MSBpcyBqdXN0IG9uZSBieXRlIGF0IGEgdGltZS4gQWxzbyBTRkYtODQ3MiByZXF1aXJlc1xcbjI1MjE6XFx0XFx0ICogdGhhdCBFRVBST00gc3VwcG9ydHMgYXRvbWljIDE2Yml0IHJlYWQgb3BlcmF0aW9uIGZvciBkaWFnbm9zdGljXFxuMjUyMjpcXHRcXHQgKiBmaWVsZHMsIHNvIGRvIG5vdCBzd2l0Y2ggdG8gb25lIGJ5dGUgcmVhZGluZyBhdCBhIHRpbWUgdW5sZXNzIGl0XFxuMjUyMzpcXHRcXHQgKiBpcyByZWFsbHkgcmVxdWlyZWQgYW5kIHdlIGhhdmUgbm8gb3RoZXIgb3B0aW9uLlxcbjI1MjQ6XFx0XFx0ICovXFxuMjUyNTpcXHRcXHRpZiAoc2ZwX2lkX25lZWRzX2J5dGVfaW8oc2ZwLCBcXHUwMDI2aWQuYmFzZSwgc2l6ZW9mKGlkLmJhc2UpKSkge1xcbjI1MjY6XFx0XFx0XFx0ZGV2X2luZm8oc2ZwLVxcdTAwM2VkZXYsXFxuMjUyNzpcXHRcXHRcXHRcXHQgXFxcIkRldGVjdGVkIGJyb2tlbiBSVEw4NjcyL1JUTDk2MDFDIGVtdWxhdGVkIEVFUFJPTVxcXFxuXFxcIik7XFxuMjUyODpcXHRcXHRcXHRkZXZfaW5mbyhzZnAtXFx1MDAzZWRldixcXG4yNTI5OlxcdFxcdFxcdFxcdCBcXFwiU3dpdGNoaW5nIHRvIHJlYWRpbmcgRUVQUk9NIHRvIG9uZSBieXRlIGF0IGEgdGltZVxcXFxuXFxcIik7XFxuMjUzMDpcXHRcXHRcXHRzZnAtXFx1MDAzZWkyY19ibG9ja19zaXplID0gMTtcXG4yNTMxOlxcdFxcbjI1MzI6XFx0XFx0XFx0cmV0ID0gc2ZwX3JlYWQoc2ZwLCBmYWxzZSwgMCwgXFx1MDAyNmlkLmJhc2UsIHNpemVvZihpZC5iYXNlKSk7XFxuMjUzMzpcXHRcXHRcXHRpZiAocmV0IFxcdTAwM2MgMCkge1xcbjI1MzQ6XFx0XFx0XFx0XFx0aWYgKHJlcG9ydClcXG4yNTM1OlxcdFxcdFxcdFxcdFxcdGRldl9lcnIoc2ZwLVxcdTAwM2VkZXYsXFxuMjUzNjpcXHRcXHRcXHRcXHRcXHRcXHRcXFwiZmFpbGVkIHRvIHJlYWQgRUVQUk9NOiAlcGVcXFxcblxcXCIsXFxuMjUzNzpcXHRcXHRcXHRcXHRcXHRcXHRFUlJfUFRSKHJldCkpO1xcbjI1Mzg6XFx0XFx0XFx0XFx0cmV0dXJuIC1FQUdBSU47XFxuMjUzOTpcXHRcXHRcXHR9XFxuMjU0MDpcXHRcXG4yNTQxOlxcdFxcdFxcdGlmIChyZXQgIT0gc2l6ZW9mKGlkLmJhc2UpKSB7XFxuMjU0MjpcXHRcXHRcXHRcXHRkZXZfZXJyKHNmcC1cXHUwMDNlZGV2LCBcXFwiRUVQUk9NIHNob3J0IHJlYWQ6ICVwZVxcXFxuXFxcIixcXG4yNTQzOlxcdFxcdFxcdFxcdFxcdEVSUl9QVFIocmV0KSk7XFxuMjU0NDpcXHRcXHRcXHRcXHRyZXR1cm4gLUVBR0FJTjtcXG4yNTQ1OlxcdFxcdFxcdH1cXG4yNTQ2OlxcdFxcdH1cXG4yNTQ3OlxcdFxcbjI1NDg6XFx0XFx0LyogQ290c3dvcmtzIGRvIG5vdCBzZWVtIHRvIHVwZGF0ZSB0aGUgY2hlY2tzdW1zIHdoZW4gdGhleVxcbjI1NDk6XFx0XFx0ICogZG8gdGhlIGZpbmFsIHByb2dyYW1taW5nIHdpdGggdGhlIGZpbmFsIG1vZHVsZSBwYXJ0IG51bWJlcixcXG4yNTUwOlxcdFxcdCAqIHNlcmlhbCBudW1iZXIgYW5kIGRhdGUgY29kZS5cXG4yNTUxOlxcdFxcdCAqL1xcbjI1NTI6XFx0XFx0Y290c3dvcmtzID0gIW1lbWNtcChpZC5iYXNlLnZlbmRvcl9uYW1lLCBcXFwiQ09UU1dPUktTICAgICAgIFxcXCIsIDE2KTtcXG4yNTUzOlxcdFxcdGNvdHN3b3Jrc19zZmJnID0gIW1lbWNtcChpZC5iYXNlLnZlbmRvcl9wbiwgXFxcIlNGQkdcXFwiLCA0KTtcXG4yNTU0OlxcdFxcbjI1NTU6XFx0XFx0LyogQ290c3dvcmtzIFNGRiBtb2R1bGUgRUVQUk9NIGRvIG5vdCBhbHdheXMgaGF2ZSB2YWxpZCBwaHlzX2lkLFxcbjI1NTY6XFx0XFx0ICogcGh5c19leHRfaWQsIGFuZCBjb25uZWN0b3IgYnl0ZXMuICBSZXdyaXRlIFNGRiBFRVBST00gYnl0ZXMgaWZcXG4yNTU3OlxcdFxcdCAqIENvdHN3b3JrcyBQTiBtYXRjaGVzIGFuZCBieXRlcyBhcmUgbm90IGNvcnJlY3QuXFxuMjU1ODpcXHRcXHQgKi9cXG4yNTU5OlxcdFxcdGlmIChjb3Rzd29ya3MgXFx1MDAyNlxcdTAwMjYgY290c3dvcmtzX3NmYmcpIHtcXG4yNTYwOlxcdFxcdFxcdHJldCA9IHNmcF9jb3Rzd29ya3NfZml4dXBfY2hlY2soc2ZwLCBcXHUwMDI2aWQpO1xcbjI1NjE6XFx0XFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuMjU2MjpcXHRcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbjI1NjM6XFx0XFx0fVxcbjI1NjQ6XFx0XFxuMjU2NTpcXHRcXHQvKiBWYWxpZGF0ZSB0aGUgY2hlY2tzdW0gb3ZlciB0aGUgYmFzZSBzdHJ1Y3R1cmUgKi9cXG4yNTY2OlxcdFxcdGNoZWNrID0gc2ZwX2NoZWNrKFxcdTAwMjZpZC5iYXNlLCBzaXplb2YoaWQuYmFzZSkgLSAxKTtcXG4yNTY3OlxcdFxcdGlmIChjaGVjayAhPSBpZC5iYXNlLmNjX2Jhc2UpIHtcXG4yNTY4OlxcdFxcdFxcdGlmIChjb3Rzd29ya3MpIHtcXG4yNTY5OlxcdFxcdFxcdFxcdGRldl93YXJuKHNmcC1cXHUwMDNlZGV2LFxcbjI1NzA6XFx0XFx0XFx0XFx0XFx0IFxcXCJFRVBST00gYmFzZSBzdHJ1Y3R1cmUgY2hlY2tzdW0gZmFpbHVyZSAoMHglMDJ4ICE9IDB4JTAyeClcXFxcblxcXCIsXFxuMjU3MTpcXHRcXHRcXHRcXHRcXHQgY2hlY2ssIGlkLmJhc2UuY2NfYmFzZSk7XFxuMjU3MjpcXHRcXHRcXHR9IGVsc2Uge1xcbjI1NzM6XFx0XFx0XFx0XFx0ZGV2X2VycihzZnAtXFx1MDAzZWRldixcXG4yNTc0OlxcdFxcdFxcdFxcdFxcdFxcXCJFRVBST00gYmFzZSBzdHJ1Y3R1cmUgY2hlY2tzdW0gZmFpbHVyZTogMHglMDJ4ICE9IDB4JTAyeFxcXFxuXFxcIixcXG4yNTc1OlxcdFxcdFxcdFxcdFxcdGNoZWNrLCBpZC5iYXNlLmNjX2Jhc2UpO1xcbjI1NzY6XFx0XFx0XFx0XFx0cHJpbnRfaGV4X2R1bXAoS0VSTl9FUlIsIFxcXCJzZnAgRUU6IFxcXCIsIERVTVBfUFJFRklYX09GRlNFVCxcXG4yNTc3OlxcdFxcdFxcdFxcdFxcdCAgICAgICAxNiwgMSwgXFx1MDAyNmlkLCBzaXplb2YoaWQpLCB0cnVlKTtcXG4yNTc4OlxcdFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbjI1Nzk6XFx0XFx0XFx0fVxcbjI1ODA6XFx0XFx0fVxcbjI1ODE6XFx0XFxuMjU4MjpcXHRcXHRyZXQgPSBzZnBfcmVhZChzZnAsIGZhbHNlLCBTRlBfQ0NfQkFTRSArIDEsIFxcdTAwMjZpZC5leHQsIHNpemVvZihpZC5leHQpKTtcXG4yNTgzOlxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuMjU4NDpcXHRcXHRcXHRpZiAocmVwb3J0KVxcbjI1ODU6XFx0XFx0XFx0XFx0ZGV2X2VycihzZnAtXFx1MDAzZWRldiwgXFxcImZhaWxlZCB0byByZWFkIEVFUFJPTTogJXBlXFxcXG5cXFwiLFxcbjI1ODY6XFx0XFx0XFx0XFx0XFx0RVJSX1BUUihyZXQpKTtcXG4yNTg3OlxcdFxcdFxcdHJldHVybiAtRUFHQUlOO1xcbjI1ODg6XFx0XFx0fVxcbjI1ODk6XFx0XFxuMjU5MDpcXHRcXHRpZiAocmV0ICE9IHNpemVvZihpZC5leHQpKSB7XFxuMjU5MTpcXHRcXHRcXHRkZXZfZXJyKHNmcC1cXHUwMDNlZGV2LCBcXFwiRUVQUk9NIHNob3J0IHJlYWQ6ICVwZVxcXFxuXFxcIiwgRVJSX1BUUihyZXQpKTtcXG4yNTkyOlxcdFxcdFxcdHJldHVybiAtRUFHQUlOO1xcbjI1OTM6XFx0XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyODowOS4xNjQyNDI0NjhaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI2MjgxOTAzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipFRVBST00gQ2hlY2tzdW0gVmVyaWZpY2F0aW9uKipcblxuT2theSwgc28gdGhlIEVFUFJPTSBjaGVja3N1bSBpcyBhYnNvbHV0ZWx5IGNyaXRpY2FsIGhlcmU7IGl0ICpoYXMqIHRvIGJlIHZhbGlkLiBUaGUgY29kZSB1c2VzIGBzZnBfY2hlY2tgIG9uIHRoZSBiYXNlIElEIHNlY3Rpb24sIGV4Y2x1ZGluZyB0aGUgZmluYWwgY2hlY2tzdW0gYnl0ZSBpdHNlbGYuIEkgc2VlIHRoYXQgYGNoZWNrYCB2YWx1ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIHN0b3JlZCBgY2NfYmFzZWAgdmFsdWUgaW4gdGhlIElEIHN0cnVjdHVyZS4gSWYgdGhhdCBjaGVjayBmYWlscywgdGhlIGZ1bmN0aW9uIHJldHVybnMgYC1FSU5WQUxgLCBpbmRpY2F0aW5nIGFuIGludmFsaWQgRUVQUk9NIGRhdGEuXG5cbkdpdmVuIHRoZSBuYXR1cmUgb2YgU3l6a2FsbGVyJ3MgcmFuZG9tIEkyQyByZXNwb25zZXMsIGNoZWNrc3VtIGZhaWx1cmVzIGFyZSBoaWdobHkgcHJvYmFibGUuIEl0J3MgZXNzZW50aWFsbHkgYSBnYXJiYWdlLWluLCBnYXJiYWdlLW91dCBzaXR1YXRpb24uIEhvd2V2ZXIsIHRoZXJlJ3MgYSB2ZW5kb3Itc3BlY2lmaWMgZXhjZXB0aW9uIHRvIHRoaXMgcnVsZS4gSWYgdGhlIHZlbmRvciBpcyBcIkNPVFNXT1JLUyAgICAgICBcIiwgdGhlIGNvZGUgZG9lc24ndCBvdXRyaWdodCBmYWlsLiBJbnN0ZWFkLCBpdCBzZWVtcyB0byBlbWl0IGEgd2FybmluZyBhbmQgcHJvY2VlZHMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgcmVhZC5cblxuSWYgdGhhdCBpbml0aWFsIGNoZWNrc3VtIHBhc3NlcyAob3IgdGhlIHZlbmRvciBpcyBDT1RTKSwgdGhlIGNvZGUgY29udGludWVzIHRvIHJlYWQgdGhlIGV4dGVuZGVkIElEIGluZm9ybWF0aW9uLiBBbmQsIG9mIGNvdXJzZSwgYWZ0ZXIgcmVhZGluZyB0aGUgZXh0ZW5kZWQgZGF0YSwgaXQnbGwgdGhlbiBnbyBvbiB0byBjaGVjayB0aGF0IGV4dGVuZGVkIGNoZWNrc3VtLiBUaGlzIGlzIGEgc3RhbmRhcmQgYW5kIG5lY2Vzc2FyeSBjaGVjay4gSSdsbCBuZWVkIHRvIHJlbWVtYmVyIHRoaXMgd2hlbiBjb25zaWRlcmluZyBob3cgdG8gaGFuZGxlIHBvdGVudGlhbCBkYXRhIGNvcnJ1cHRpb24gZnJvbSBTeXprYWxsZXIgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzUwOTgsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyODoxMy40MjcwNjQyODVaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIzMzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3BoeS9zZnAuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNTk0LFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMjU5NDpcXHRcXG4yNTk1OlxcdFxcdGNoZWNrID0gc2ZwX2NoZWNrKFxcdTAwMjZpZC5leHQsIHNpemVvZihpZC5leHQpIC0gMSk7XFxuMjU5NjpcXHRcXHRpZiAoY2hlY2sgIT0gaWQuZXh0LmNjX2V4dCkge1xcbjI1OTc6XFx0XFx0XFx0aWYgKGNvdHN3b3Jrcykge1xcbjI1OTg6XFx0XFx0XFx0XFx0ZGV2X3dhcm4oc2ZwLVxcdTAwM2VkZXYsXFxuMjU5OTpcXHRcXHRcXHRcXHRcXHQgXFxcIkVFUFJPTSBleHRlbmRlZCBzdHJ1Y3R1cmUgY2hlY2tzdW0gZmFpbHVyZSAoMHglMDJ4ICE9IDB4JTAyeClcXFxcblxcXCIsXFxuMjYwMDpcXHRcXHRcXHRcXHRcXHQgY2hlY2ssIGlkLmV4dC5jY19leHQpO1xcbjI2MDE6XFx0XFx0XFx0fSBlbHNlIHtcXG4yNjAyOlxcdFxcdFxcdFxcdGRldl9lcnIoc2ZwLVxcdTAwM2VkZXYsXFxuMjYwMzpcXHRcXHRcXHRcXHRcXHRcXFwiRUVQUk9NIGV4dGVuZGVkIHN0cnVjdHVyZSBjaGVja3N1bSBmYWlsdXJlOiAweCUwMnggIT0gMHglMDJ4XFxcXG5cXFwiLFxcbjI2MDQ6XFx0XFx0XFx0XFx0XFx0Y2hlY2ssIGlkLmV4dC5jY19leHQpO1xcbjI2MDU6XFx0XFx0XFx0XFx0cHJpbnRfaGV4X2R1bXAoS0VSTl9FUlIsIFxcXCJzZnAgRUU6IFxcXCIsIERVTVBfUFJFRklYX09GRlNFVCxcXG4yNjA2OlxcdFxcdFxcdFxcdFxcdCAgICAgICAxNiwgMSwgXFx1MDAyNmlkLCBzaXplb2YoaWQpLCB0cnVlKTtcXG4yNjA3OlxcdFxcdFxcdFxcdG1lbXNldChcXHUwMDI2aWQuZXh0LCAwLCBzaXplb2YoaWQuZXh0KSk7XFxuMjYwODpcXHRcXHRcXHR9XFxuMjYwOTpcXHRcXHR9XFxuMjYxMDpcXHRcXG4yNjExOlxcdFxcdHNmcC1cXHUwMDNlaWQgPSBpZDtcXG4yNjEyOlxcdFxcbjI2MTM6XFx0XFx0ZGV2X2luZm8oc2ZwLVxcdTAwM2VkZXYsIFxcXCJtb2R1bGUgJS4qcyAlLipzIHJldiAlLipzIHNuICUuKnMgZGMgJS4qc1xcXFxuXFxcIixcXG4yNjE0OlxcdFxcdFxcdCAoaW50KXNpemVvZihpZC5iYXNlLnZlbmRvcl9uYW1lKSwgaWQuYmFzZS52ZW5kb3JfbmFtZSxcXG4yNjE1OlxcdFxcdFxcdCAoaW50KXNpemVvZihpZC5iYXNlLnZlbmRvcl9wbiksIGlkLmJhc2UudmVuZG9yX3BuLFxcbjI2MTY6XFx0XFx0XFx0IChpbnQpc2l6ZW9mKGlkLmJhc2UudmVuZG9yX3JldiksIGlkLmJhc2UudmVuZG9yX3JldixcXG4yNjE3OlxcdFxcdFxcdCAoaW50KXNpemVvZihpZC5leHQudmVuZG9yX3NuKSwgaWQuZXh0LnZlbmRvcl9zbixcXG4yNjE4OlxcdFxcdFxcdCAoaW50KXNpemVvZihpZC5leHQuZGF0ZWNvZGUpLCBpZC5leHQuZGF0ZWNvZGUpO1xcbjI2MTk6XFx0XFxuMjYyMDpcXHRcXHQvKiBDaGVjayB3aGV0aGVyIHdlIHN1cHBvcnQgdGhpcyBtb2R1bGUgKi9cXG4yNjIxOlxcdFxcdGlmICghc2ZwLVxcdTAwM2V0eXBlLVxcdTAwM2Vtb2R1bGVfc3VwcG9ydGVkKFxcdTAwMjZpZCkpIHtcXG4yNjIyOlxcdFxcdFxcdGRldl9lcnIoc2ZwLVxcdTAwM2VkZXYsXFxuMjYyMzpcXHRcXHRcXHRcXHRcXFwibW9kdWxlIGlzIG5vdCBzdXBwb3J0ZWQgLSBwaHlzIGlkIDB4JTAyeCAweCUwMnhcXFxcblxcXCIsXFxuMjYyNDpcXHRcXHRcXHRcXHRzZnAtXFx1MDAzZWlkLmJhc2UucGh5c19pZCwgc2ZwLVxcdTAwM2VpZC5iYXNlLnBoeXNfZXh0X2lkKTtcXG4yNjI1OlxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbjI2MjY6XFx0XFx0fVxcbjI2Mjc6XFx0XFxuMjYyODpcXHRcXHRpZiAoc2ZwLVxcdTAwM2VpZC5leHQuc2ZmODQ3Ml9jb21wbGlhbmNlICE9IFNGUF9TRkY4NDcyX0NPTVBMSUFOQ0VfTk9ORSkge1xcbjI2Mjk6XFx0XFx0XFx0cmV0ID0gc2ZwX21vZHVsZV9wYXJzZV9zZmY4NDcyKHNmcCk7XFxuMjYzMDpcXHRcXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4yNjMxOlxcdFxcdFxcdFxcdHJldHVybiByZXQ7XFxuMjYzMjpcXHRcXHR9XFxuMjYzMzpcXHRcXG4yNjM0OlxcdFxcdC8qIFBhcnNlIHRoZSBtb2R1bGUgcG93ZXIgcmVxdWlyZW1lbnQgKi9cXG4yNjM1OlxcdFxcdHJldCA9IHNmcF9tb2R1bGVfcGFyc2VfcG93ZXIoc2ZwKTtcXG4yNjM2OlxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbjI2Mzc6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG4yNjM4OlxcdFxcbjI2Mzk6XFx0XFx0c2ZwX21vZHVsZV9wYXJzZV9yYXRlX3NlbGVjdChzZnApO1xcbjI2NDA6XFx0XFxuMjY0MTpcXHRcXHRtYXNrID0gU0ZQX0ZfUFJFU0VOVDtcXG4yNjQyOlxcdFxcdGlmIChzZnAtXFx1MDAzZWdwaW9bR1BJT19UWF9ESVNBQkxFXSlcXG4yNjQzOlxcdFxcdFxcdG1hc2sgfD0gU0ZQX0ZfVFhfRElTQUJMRTtcXG4yNjQ0OlxcdFxcdGlmIChzZnAtXFx1MDAzZWdwaW9bR1BJT19UWF9GQVVMVF0pXFxuMjY0NTpcXHRcXHRcXHRtYXNrIHw9IFNGUF9GX1RYX0ZBVUxUO1xcbjI2NDY6XFx0XFx0aWYgKHNmcC1cXHUwMDNlZ3Bpb1tHUElPX0xPU10pXFxuMjY0NzpcXHRcXHRcXHRtYXNrIHw9IFNGUF9GX0xPUztcXG4yNjQ4OlxcdFxcdGlmIChzZnAtXFx1MDAzZWdwaW9bR1BJT19SUzBdKVxcbjI2NDk6XFx0XFx0XFx0bWFzayB8PSBTRlBfRl9SUzA7XFxuMjY1MDpcXHRcXHRpZiAoc2ZwLVxcdTAwM2VncGlvW0dQSU9fUlMxXSlcXG4yNjUxOlxcdFxcdFxcdG1hc2sgfD0gU0ZQX0ZfUlMxO1xcbjI2NTI6XFx0XFxuMjY1MzpcXHRcXHRzZnAtXFx1MDAzZW1vZHVsZV90X3N0YXJ0X3VwID0gVF9TVEFSVF9VUDtcXG4yNjU0OlxcdFxcdHNmcC1cXHUwMDNlbW9kdWxlX3Rfd2FpdCA9IFRfV0FJVDtcXG4yNjU1OlxcdFxcdHNmcC1cXHUwMDNlcGh5X3RfcmV0cnkgPSBUX1BIWV9SRVRSWTtcXG4yNjU2OlxcdFxcbjI2NTc6XFx0XFx0c2ZwLVxcdTAwM2VzdGF0ZV9pZ25vcmVfbWFzayA9IDA7XFxuMjY1ODpcXHRcXG4yNjU5OlxcdFxcdGlmIChzZnAtXFx1MDAzZWlkLmJhc2UuZXh0ZW5kZWRfY2MgPT0gU0ZGODAyNF9FQ0NfMTBHQkFTRV9UX1NGSSB8fFxcbjI2NjA6XFx0XFx0ICAgIHNmcC1cXHUwMDNlaWQuYmFzZS5leHRlbmRlZF9jYyA9PSBTRkY4MDI0X0VDQ18xMEdCQVNFX1RfU1IgfHxcXG4yNjYxOlxcdFxcdCAgICBzZnAtXFx1MDAzZWlkLmJhc2UuZXh0ZW5kZWRfY2MgPT0gU0ZGODAyNF9FQ0NfNUdCQVNFX1QgfHxcXG4yNjYyOlxcdFxcdCAgICBzZnAtXFx1MDAzZWlkLmJhc2UuZXh0ZW5kZWRfY2MgPT0gU0ZGODAyNF9FQ0NfMl81R0JBU0VfVClcXG4yNjYzOlxcdFxcdFxcdHNmcC1cXHUwMDNlbWRpb19wcm90b2NvbCA9IE1ESU9fSTJDX0M0NTtcXG4yNjY0OlxcdFxcdGVsc2UgaWYgKHNmcC1cXHUwMDNlaWQuYmFzZS5lMTAwMF9iYXNlX3QpXFxuMjY2NTpcXHRcXHRcXHRzZnAtXFx1MDAzZW1kaW9fcHJvdG9jb2wgPSBNRElPX0kyQ19NQVJWRUxMX0MyMjtcXG4yNjY2OlxcdFxcdGVsc2VcXG4yNjY3OlxcdFxcdFxcdHNmcC1cXHUwMDNlbWRpb19wcm90b2NvbCA9IE1ESU9fSTJDX05PTkU7XFxuMjY2ODpcXHRcXG4yNjY5OlxcdFxcdHNmcC1cXHUwMDNlcXVpcmsgPSBzZnBfbG9va3VwX3F1aXJrKFxcdTAwMjZpZCk7XFxuMjY3MDpcXHRcXG4yNjcxOlxcdFxcdG11dGV4X2xvY2soXFx1MDAyNnNmcC1cXHUwMDNlc3RfbXV0ZXgpO1xcbjI2NzI6XFx0XFx0LyogSW5pdGlhbGlzZSBzdGF0ZSBiaXRzIHRvIHVzZSBmcm9tIGhhcmR3YXJlICovXFxuMjY3MzpcXHRcXHRzZnAtXFx1MDAzZXN0YXRlX2h3X21hc2sgPSBtYXNrO1xcbjI2NzQ6XFx0XFxuMjY3NTpcXHRcXHQvKiBXZSB3YW50IHRvIGRyaXZlIHRoZSByYXRlIHNlbGVjdCBwaW5zIHRoYXQgdGhlIG1vZHVsZSBpcyB1c2luZyAqL1xcbjI2NzY6XFx0XFx0c2ZwLVxcdTAwM2VzdGF0ZV9od19kcml2ZSB8PSBzZnAtXFx1MDAzZXJzX3N0YXRlX21hc2s7XFxuMjY3NzpcXHRcXG4yNjc4OlxcdFxcdGlmIChzZnAtXFx1MDAzZXF1aXJrIFxcdTAwMjZcXHUwMDI2IHNmcC1cXHUwMDNlcXVpcmstXFx1MDAzZWZpeHVwKVxcbjI2Nzk6XFx0XFx0XFx0c2ZwLVxcdTAwM2VxdWlyay1cXHUwMDNlZml4dXAoc2ZwKTtcXG4yNjgwOlxcdFxcbjI2ODE6XFx0XFx0c2ZwLVxcdTAwM2VzdGF0ZV9od19tYXNrIFxcdTAwMjY9IH5zZnAtXFx1MDAzZXN0YXRlX2lnbm9yZV9tYXNrO1xcbjI2ODI6XFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZzZnAtXFx1MDAzZXN0X211dGV4KTtcXG4yNjgzOlxcdFxcbjI2ODQ6XFx0XFx0cmV0dXJuIDA7XFxuMjY4NTpcXHR9XFxuMjY4NjpcXHRcXG4yNjg3OlxcdHN0YXRpYyB2b2lkIHNmcF9zbV9tb2RfcmVtb3ZlKHN0cnVjdCBzZnAgKnNmcClcXG4yNjg4OlxcdHtcXG4yNjg5OlxcdFxcdGlmIChzZnAtXFx1MDAzZXNtX21vZF9zdGF0ZSBcXHUwMDNlIFNGUF9NT0RfV0FJVERFVilcXG4yNjkwOlxcdFxcdFxcdHNmcF9tb2R1bGVfcmVtb3ZlKHNmcC1cXHUwMDNlc2ZwX2J1cyk7XFxuMjY5MTpcXHRcXG4yNjkyOlxcdFxcdHNmcF9od21vbl9yZW1vdmUoc2ZwKTtcXG4yNjkzOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyODoxMy40MjcyODkyNTVaIiwiU2VxIjozMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjE5OTYzMDk2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBTRlAgUXVpcmsgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGhlcmUncyBteSBicmVha2Rvd24uIElmIHRoZSBjaGVja3N1bSBmYWlscywgd2hpY2ggaXQgYWxtb3N0IGNlcnRhaW5seSB3aWxsIHdpdGggcmFuZG9tIGRhdGEsIHRoZSBmdW5jdGlvbiBqdXN0IHJldHVybnMgYC1FSU5WQUxgLiBUaGUgYHNmcF9sb29rdXBfcXVpcmtgIGZ1bmN0aW9uLCB0aGUgb25lIHRoZSBwYXRjaCBpcyBtb2RpZnlpbmcsIGlzbid0IGV2ZW4gdG91Y2hlZC4gVGhlIG9ubHkgd2F5IGFyb3VuZCB0aGlzIHdvdWxkIGJlIGlmIHN5emthbGxlciBjb3VsZCBzb21laG93IGNyYWZ0IGEgKnZhbGlkKiBjaGVja3N1bSBmb3IgdGhlIGRhdGEgaXQncyB0aHJvd2luZyBhdCB0aGUgc3lzdGVtLiBCdXQsIGFuZCB0aGlzIGlzIGEgYmlnIFwiYnV0XCIsIHRoZSBJMkMgb3IgUENJIGZ1enplcnMgaW4gc3l6a2FsbGVyIChpZiB0aGV5IGV2ZW4gZXhpc3QpIGRvbid0IGhhdmUgYW55IGNvbmNlcHQgb2YgYW4gU0ZQIEVFUFJPTSBjaGVja3N1bS4gVGhhdCBtYWtlcyBpdCB2aXJ0dWFsbHkgaW1wb3NzaWJsZSBmb3Igc3l6a2FsbGVyIHRvIGFjdHVhbGx5IHJlYWNoIHRoZSBwYXRjaCdzIHRhcmdldCBmdW5jdGlvbiB2aWEgcmFuZG9tIGZ1enppbmcuXG5cbk5vdywgSSBkaWQgY29uc2lkZXIgYW5vdGhlciBhdmVudWU6IFdoYXQgaWYgc3l6a2FsbGVyIGluamVjdGVkIGEgZGV2aWNlIHRyZWUgbm9kZSB3aXRoIGEgbW9jayBJMkMgYWRhcHRlciB0aGF0ICpkb2VzKiByZXR1cm4gYSB2YWxpZCBFRVBST00/IEJ1dCBzeXprYWxsZXIgZG9lc24ndCBoYXZlIGEgc3BlY2lmaWMgbW9jayBmb3IgU0ZQIEVFUFJPTXMuIEFsc28sIHRoZSBwYXRjaCBpdHNlbGYgaXMganVzdCBhZGRpbmcgYSBzdHJpbmcgcHJlZml4IG1hdGNoIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBxdWlya3MsIHdoaWNoIG1ha2VzIGl0cyBpbXBhY3QgcXVpdGUgc21hbGwgaW4gdGhpcyBjb250ZXh0LlxuXG5JcyB0aGUgcGF0Y2ggZnVuY3Rpb25hbGx5IGNvcnJlY3Q/IFllcy4gSXMgaXQgYWN0dWFsbHkgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBvdXIgdGVzdGluZyBzZXR1cD8gTm8sIG5vdCByZWFsaXN0aWNhbGx5LiBJdCByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZTogU0ZQIG1vZHVsZXMgYW5kLCBjcnVjaWFsbHksIEkyQyBjb21tdW5pY2F0aW9uIHdpdGggYSB2YWxpZCBFRVBST00gY2hlY2tzdW0uIEV2ZW4gaWYgd2UgKmNvdWxkKiBzb21laG93IG1ha2UgaXQgcmVhY2hhYmxlLCBhbGwgaXQgZG9lcyBpcyBhIHN0cmluZyBtYXRjaCBmb3IgYSBxdWlyay5cblxuR2l2ZW4gYWxsIG9mIHRoYXQsIEknbSBsZWFuaW5nIHRvd2FyZHMgc2V0dGluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSXQncyBpbmNyZWRpYmx5IGhhcmR3YXJlLXNwZWNpZmljLCBhbmQgZXNzZW50aWFsbHkgdW5yZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gQnV0IGxldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayBpZiB0aGVyZSdzICphbnkqIGV4aXN0aW5nIHNvZnR3YXJlIG1vY2sgZm9yIFNGUCBvdXQgdGhlcmUganVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzczMzYsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNjgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyODoxOS42MjY5MjMzMzhaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4ODMxMjUwNTksIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNmcF9tb2NrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjg6MjIuNTEwMDYwNzQ3WiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzODcyNjE1NjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCBmcmFtZWQgYXMgbXkgaW50ZXJuYWwgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkludGVybmFsIFJldmlldyBvZiBQb3RlbnRpYWwgU2VsZi1UZXN0IExvY2FsZXMqKlxuXG5BbHJpZ2h0LCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIHBvc3NpYmxlIGxvY2F0aW9ucyBvZiBzZWxmLXRlc3RzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gY2hlY2sgd2l0aGluIHRoZSBwcm9qZWN0IHN0cnVjdHVyZSwgc3BlY2lmaWNhbGx5IHRoZSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHNgIGRpcmVjdG9yeSBvciBhbnkgb3RoZXIgc2ltaWxhciBkaXJlY3RvcmllcyB0aGF0IG1pZ2h0IGhvdXNlIHN1Y2ggdGVzdGluZyBpbmZyYXN0cnVjdHVyZS4gSSdsbCBuZWVkIHRvIGNvbmR1Y3QgYSB0aG9yb3VnaCBzZWFyY2ggZm9yIGFueSBmaWxlcyBvciBtb2R1bGVzIHRoYXQgbWlnaHQgY29udGFpbiB0aGUgc3RyaW5ncyBgc2ZmYCBvciBgc2ZwYC4gVGhlc2UgYXJlIHByZXR0eSBzcGVjaWZpYyB0ZXJtcywgc28gYSBxdWljayBzZWFyY2ggc2hvdWxkIGJlIHJlbGF0aXZlbHkgZWZmZWN0aXZlLiBJJ20gbG9va2luZyBmb3IgcGF0dGVybnMgaW4gdGhlIHdheSB0aGlzIHN5c3RlbSBpcyBzZXQgdXAuIEtub3dpbmcgd2hlcmUgc2ltaWxhciBmZWF0dXJlcyBhbmQgdGVzdGluZyBwcm90b2NvbHMgYXJlIHN0b3JlZCBpcyB0aGUgZ29hbC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgwMzMsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQxOToyODoyNS44OTczMjQ4NzhaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5NTI1MzMyOSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2ZmLHNmcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJ0b29scy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI4OjI2LjE5MjU4ODk1NloiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTE4NTcyMjExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgc3VtbWFyeSwgdGFraW5nIG9uIHRoZSBwZXJzb25hIHlvdSd2ZSByZXF1ZXN0ZWQsIHRhaWxvcmVkIHRvIGFuIGV4cGVydCBsaWtlIHlvdXJzZWxmOlxuXG4qKkNoZWNraW5nIGZvciBgc2ZmLHNmcGAgaW4gYGFyY2gvdW1gKipcblxuUmlnaHQsIGxldCdzIGp1c3QgcXVpY2tseSBydW4gYSBjaGVjay4gSSBuZWVkIHRvIHNlZSBpZiBhbnkgaW5zdGFuY2VzIG9mIGBzZmZgIG9yIGBzZnBgIGFyZSBsdXJraW5nIGFyb3VuZCB3aXRoaW4gYGFyY2gvdW1gLCB0aGUgVXNlci1Nb2RlIExpbnV4IGFyY2hpdGVjdHVyZS4gTXkgaW50dWl0aW9uIHNheXMgaXQncyBwcm9iYWJseSB1bmxpa2VseSwgZ2l2ZW4gdGhlIG5hdHVyZSBvZiBVTUwsIGJ1dCBhIGRvdWJsZS1jaGVjayBpcyBhbHdheXMgcHJ1ZGVudCwgZXNwZWNpYWxseSB3aGVuIGRlYWxpbmcgd2l0aCBzdWNoIGZvdW5kYXRpb25hbCBjb2RlLiBJIGhhdmUgYSBmZWVsaW5nIEkgaGF2ZW4ndCBjb21lIGFjcm9zcyBpdCBteXNlbGYsIGJ1dCBvbmUgY2FuJ3QgYmUgdG9vIGNhcmVmdWwgd2hlbiBtYWludGFpbmluZyBzdWNoIGEgc3lzdGVtLiBCZXN0IHRvIGJlIHN5c3RlbWF0aWMgYW5kIGVuc3VyZSBubyB1bmV4cGVjdGVkIGJlaGF2aW9yIHN1cmZhY2VzIGluIHRoaXMgbmljaGUgaW1wbGVtZW50YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4MjUyLCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMTk6Mjg6MjkuMzExMTY0MTA3WiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTU5MDY3NjQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNmZixzZnBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC91bS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI4OjI5LjQ2NzA3NzA4MVoiLCJTZXEiOjM5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzEwMTc5Njc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFNGUCBRdWlyayBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgaXMgZW50aXJlbHkgaGFyZHdhcmUtZGVwZW5kZW50LiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBxdWlyaywgYFNGUF9RVUlSS19GX1BSRUZJWGAsIGFuZCB0aGVuIHRpZXMgaXQgc3BlY2lmaWNhbGx5IHRvIHR3byBTRlAgbW9kdWxlczogXCJGU1wiIFwiWEdTLVNGUC1PTlQtTUFDSVwiIGFuZCBcIk9FTVwiIFwiWEdTUE9OU1QyMDAxXCIuIFRoaXMgaXMgYWxsIGFib3V0IGhhbmRsaW5nIHNvbWUgaGFyZHdhcmUtc3BlY2lmaWMgYmVoYXZpb3IgZm9yIHRoZXNlIHBhcnRpY3VsYXIgcGh5c2ljYWwgU0ZQIG1vZHVsZXMuIE15IGFuYWx5c2lzIGNvbmZpcm1zIHRoYXQgcmVhY2hpbmcgdGhpcyBjb2RlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgaXMgdmlydHVhbGx5IGltcG9zc2libGUgd2l0aG91dCBhIHZlcnkgc3BlY2lmaWMgbW9jay11cCB0aGF0IGNhbiBlbXVsYXRlIHRoZSBleGFjdCB2ZW5kb3Igc3RyaW5ncyBhbmQgcGFzcyB0aGUgRUVQUk9NIGNoZWNrc3VtIHZhbGlkYXRpb24uIFRoYXQgdmFsaWRhdGlvbiBpcyBrZXkgaGVyZTsgaXQgY29uZmlybXMgdGhlIGlkZW50aXR5IG9mIHRoZSBoYXJkd2FyZS4gR2l2ZW4gdGhhdCBjb25zdHJhaW50LCBmdXp6aW5nIHRoaXMgY29kZSBpcyBhIHdhc3RlIG9mIHJlc291cmNlcy4gV2UncmUgdGFsa2luZyBhYm91dCBhIHZlcnkgdGlnaHRseSBjb250cm9sbGVkIGhhcmR3YXJlIGludGVyYWN0aW9uIHRoYXQgY2FuJ3QgYmUgZWFzaWx5IHJlcHJvZHVjZWQgaW4gYW55IGdlbmVyYWwtcHVycG9zZSB2aXJ0dWFsIGVudmlyb25tZW50LiBJdCB3b3VsZCByZXF1aXJlIGJ1aWxkaW5nIGEgcHVycG9zZS1idWlsdCBoYXJkd2FyZSBtaW1pYywgYW5kIGF0IHRoYXQgcG9pbnQgd2UncmUgdGFsa2luZyBhYm91dCBhIHRlc3QgdGhhdCdzIHNvIHNwZWNpZmljLCBpdCdzIG5vdCB3b3J0aCB0aGUgdGltZSBvZiBhIGdlbmVyYWxpemVkIGZ1enouXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NDgzLCJPdXRwdXRUb2tlbnMiOjg2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTkyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDE5OjI4OjM0Ljc3NzI1ODgzOFoiLCJTZXEiOjQwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNjg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgaGFyZHdhcmUtc3BlY2lmaWMgcXVpcmtzIGZvciBwaHlzaWNhbCBTRlAgbW9kdWxlcy4gVGhlIGNvZGUgcmVsaWVzIG9uIHJlYWRpbmcgdGhlIG1vZHVsZSdzIEVFUFJPTSBvdmVyIEkyQyBhbmQgdmFsaWRhdGluZyBpdHMgY2hlY2tzdW0sIHdoaWNoIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS9HQ0Ugd2l0aG91dCBhIGRlZGljYXRlZCBoYXJkd2FyZSBtb2NrLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBoYXJkd2FyZS1zcGVjaWZpYyBxdWlya3MgZm9yIHBoeXNpY2FsIFNGUCBtb2R1bGVzLiBUaGUgY29kZSByZWxpZXMgb24gcmVhZGluZyB0aGUgbW9kdWxlJ3MgRUVQUk9NIG92ZXIgSTJDIGFuZCB2YWxpZGF0aW5nIGl0cyBjaGVja3N1bSwgd2hpY2ggaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VL0dDRSB3aXRob3V0IGEgZGVkaWNhdGVkIGhhcmR3YXJlIG1vY2suXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowdjjxh[1] Phase: Running StartedAt: 2026-07-05 19:28:46 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdjjxh[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-05 19:28:46 +0000 UTC FinishedAt: 2026-07-05 19:28:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}