Name: series-workflow7wqxv Phase: Failed StartedAt: 2026-08-03 19:50:03 +0000 UTC FinishedAt: 2026-08-03 19:52:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7wqxv[0] Phase: Succeeded StartedAt: 2026-08-03 19:50:03 +0000 UTC FinishedAt: 2026-08-03 19:52:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7wqxv[0].run-triage Phase: Succeeded StartedAt: 2026-08-03 19:50:03 +0000 UTC FinishedAt: 2026-08-03 19:52:23 +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+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjUxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyBuZnRhYmxlcy9jb25udHJhY2sgZXhwZWN0YXRpb25zLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgS2NvbmZpZywgb3IgTWFrZWZpbGUuIFRoZXJlZm9yZSwgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwga2VybmVsIGNoYW5nZXMgdG8gZnV6ei4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6NTE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0YzYwMWVkNGIwYmEyMDAxNmUwNTBiYWI3MzYxYmEyYjcwNDg1YTUyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMyAxOTo1MTo0NyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3QgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3Rcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5kOTgyNGNhM2NkYWY5XG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3RcbkBAIC0wLDAgJiM0MzsxLDI2MSBAQFxuJiM0MzsjIS9iaW4vYmFzaFxuJiM0MztcbiYjNDM7IyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX3NvY2F0KVxuJiM0MztcbiYjNDM7LiAkTkZUX1RFU1RfTElCUkFSWV9GSUxFXG4mIzQzO1xuJiM0MztzZXQgLXhcbiYjNDM7XG4mIzQzO3JjPTFcbiYjNDM7XG4mIzQzO2NsZWFudXAoKVxuJiM0Mzt7XG4mIzQzO1x0Zm9yIGkgaW4gJFIgJEMgJFM7ZG9cbiYjNDM7XHRcdGtpbGwgJChpcCBuZXRucyBwaWQgJGkpIDJcdTAwM2UvZGV2L251bGxcbiYjNDM7XHRcdGlwIG5ldG5zIGRlbCAkaVxuJiM0MztcdGRvbmVcbiYjNDM7XG4mIzQzO1x0ZXhpdCAkcmNcbiYjNDM7fVxuJiM0Mzt0cmFwIGNsZWFudXAgRVhJVFxuJiM0MztcbiYjNDM7ZHVtcF9leHBlY3RfdGFibGUoKSB7XG4mIzQzO1x0aXAgbmV0bnMgZXhlYyBcJiMzNDskUlwmIzM0OyBjb25udHJhY2sgLS1mYW1pbHkgaXB2NiAtTCBleHBlY3RcbiYjNDM7XHRpcCBuZXRucyBleGVjIFwmIzM0OyRSXCYjMzQ7IGNvbm50cmFjayAtLWZhbWlseSBpcHY0IC1MIGV4cGVjdFxuJiM0Mzt9XG4mIzQzO1xuJiM0Mzthc3NlcnRfZmFpbG91dCgpXG4mIzQzO3tcbiYjNDM7XHRpcCBuZXRucyBleGVjICRSICRORlQgbGlzdCBydWxlc2V0XG4mIzQzO1x0aXAgbmV0bnMgZXhlYyAkUiBjb25udHJhY2sgLUxcbiYjNDM7XHRkdW1wX2V4cGVjdF90YWJsZVxuJiM0Mzt9XG4mIzQzO1xuJiM0Mztkb19jb25uZWN0KCkge1xuJiM0MztcdGxvY2FsIG5zPVwmIzM0OyQxXCYjMzQ7XG4mIzQzO1x0bG9jYWwgYWRkcj1cJiMzNDskMlwmIzM0O1xuJiM0MztcdGxvY2FsIHBvcnQ9XCYjMzQ7JDNcJiMzNDtcbiYjNDM7XG4mIzQzO1x0aXAgbmV0bnMgZXhlYyBcJiMzNDskbnNcJiMzNDsgc29jYXQgLXUgU1RESU4gVENQLUNPTk5FQ1Q6JGFkZHI6JHBvcnQsY29ubmVjdC10aW1lb3V0PTEgXHUwMDNjIC9kZXYvbnVsbFxuJiM0Mzt9XG4mIzQzO1xuJiM0Mztjb25uZWN0X2ZhaWwoKSB7XG4mIzQzO1x0bG9jYWwgbnM9XCYjMzQ7JDFcJiMzNDtcbiYjNDM7XHRsb2NhbCBhZGRyPVwmIzM0OyQyXCYjMzQ7XG4mIzQzO1x0bG9jYWwgcG9ydD1cJiMzNDskM1wmIzM0O1xuJiM0MztcdGxvY2FsIG1zZz1cJiMzNDskNFwmIzM0O1xuJiM0MztcbiYjNDM7XHRkb19jb25uZWN0IFwmIzM0OyRuc1wmIzM0OyBcJiMzNDskYWRkclwmIzM0OyBcJiMzNDskcG9ydFwmIzM0O1xuJiM0MztcdGFzc2VydF9mYWlsIFwmIzM0O2Nvbm5lY3QgZnJvbSAkbnMgdG8gJGFkZHI6JHBvcnQgJG1zZ1wmIzM0O1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mztjb25uZWN0X29rKCkge1xuJiM0MztcdGxvY2FsIG5zPVwmIzM0OyQxXCYjMzQ7XG4mIzQzO1x0bG9jYWwgYWRkcj1cJiMzNDskMlwmIzM0O1xuJiM0MztcdGxvY2FsIHBvcnQ9XCYjMzQ7JDNcJiMzNDtcbiYjNDM7XHRsb2NhbCBtc2c9XCYjMzQ7JDRcJiMzNDtcbiYjNDM7XG4mIzQzO1x0ZG9fY29ubmVjdCBcJiMzNDskbnNcJiMzNDsgXCYjMzQ7JGFkZHJcJiMzNDsgXCYjMzQ7JHBvcnRcJiMzNDtcbiYjNDM7XHRhc3NlcnRfcGFzcyBcJiMzNDtjb25uZWN0IGZyb20gJG5zIHRvICRhZGRyOiRwb3J0ICRtc2dcJiMzNDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7dGVzdF9leHBlY3QoKSB7XG4mIzQzO1x0bG9jYWwgaXBfY3I9XCYjMzQ7JDFcJiMzNDtcbiYjNDM7XHRsb2NhbCBpcF9zcj1cJiMzNDskMlwmIzM0O1xuJiM0MztcdGxvY2FsIG1zZz1cJiMzNDskM1wmIzM0O1xuJiM0MztcbiYjNDM7XHRlY2hvIGNoZWNrIHBvcnQgaXMgY2xvc2VkIGZyb20gb3V0c2lkZS5cbiYjNDM7XHRjb25uZWN0X2ZhaWwgXCYjMzQ7JFNcJiMzNDsgXCYjMzQ7JGlwX2NyXCYjMzQ7IDEyMzRcbiYjNDM7XG4mIzQzO1x0ZWNobyBcJiMzNDtUZXN0OiBleHBlY3RhdGlvbiB2aWEgcnVsZXNldCRtc2dcJiMzNDtcbiYjNDM7XG4mIzQzO1x0ZWNobyBjb250cm9sIHBvcnQgc2hvdWxkIGJlIG9wZW4uXG4mIzQzO1x0Y29ubmVjdF9vayBcJiMzNDskQ1wmIzM0OyBcJiMzNDskaXBfc3JcJiMzNDsgMjIyMiBcJiMzNDskbXNnXCYjMzQ7XG4mIzQzO1xuJiM0MztcdGR1bXBfZXhwZWN0X3RhYmxlXG4mIzQzO1xuJiM0MztcdGVjaG8gZXhwZWN0ZWQgcG9ydC4gU2hvdWxkIG5vdyBwYXNzLlxuJiM0MztcdGNvbm5lY3Rfb2sgXCYjMzQ7JFNcJiMzNDsgXCYjMzQ7JGlwX2NyXCYjMzQ7IDEyMzQgXCYjMzQ7JG1zZ1wmIzM0O1xuJiM0MztcbiYjNDM7XHRlY2hvIG9uZSBleHBlY3RhdGlvbiBtYXgsIGV4cGVjdCBmYWlsLlxuJiM0MztcdGNvbm5lY3RfZmFpbCBcJiMzNDskU1wmIzM0OyBcJiMzNDskaXBfY3JcJiMzNDsgMTIzNCBcJiMzNDskbXNnXCYjMzQ7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3Rlc3RfdGltZW91dCgpIHtcbiYjNDM7XHRlY2hvIFwmIzM0O1Rlc3Q6IGV4cGVjdGF0aW9uIGF1dG8tdGltZW91dFwmIzM0O1xuJiM0MztcdCMgY29udHJvbCBwb3J0IC0gdGhpcyBzaG91bGQgYmUgb3Blbi5cbiYjNDM7XHRjb25uZWN0X29rIFwmIzM0OyRDXCYjMzQ7IFwmIzM0OyRpcDRfc3JcJiMzNDsgMjIyMlxuJiM0MztcdGNvbm5lY3Rfb2sgXCYjMzQ7JENcJiMzNDsgXCYjMzQ7WyRpcDZfc3JdXCYjMzQ7IDIyMjJcbiYjNDM7XG4mIzQzO1x0ZHVtcF9leHBlY3RfdGFibGVcbiYjNDM7XG4mIzQzO1x0IyB0aW1lb3V0LiBXZSAmIzM5O2J1bmRsZSYjMzk7IGlwdjQgYW5kIGlwdjYgdGVzdCBoZXJlLlxuJiM0MztcdHNsZWVwIDZcbiYjNDM7XG4mIzQzO1x0ZHVtcF9leHBlY3RfdGFibGVcbiYjNDM7XG4mIzQzO1x0ZWNobyBcJiMzNDtleHBlY3QgZmFpbHVyZXNcJiMzNDtcbiYjNDM7XHRjb25uZWN0X2ZhaWwgXCYjMzQ7JFNcJiMzNDsgXCYjMzQ7JGlwNF9jclwmIzM0OyAxMjM0XG4mIzQzO1x0Y29ubmVjdF9mYWlsIFwmIzM0OyRTXCYjMzQ7IFwmIzM0O1skaXA2X2NyXVwmIzM0OyAxMjM0XG4mIzQzO31cbiYjNDM7XG4mIzQzO3JuZD0kKG1rdGVtcCAtdSBYWFhYWFhYWClcbiYjNDM7Uj1cJiMzNDtucy1yb3V0ZXItJHJuZFwmIzM0O1xuJiM0MztDPVwmIzM0O25zLWNsaWVudC0kcm5kXCYjMzQ7XG4mIzQzO1M9XCYjMzQ7bnMtc2VydmVyLSRybmRcJiMzNDtcbiYjNDM7XG4mIzQzO2lwNl9zcj1kZWFkOmQ4OmZmOjIyOjoxXG4mIzQzO2lwNl9jcj1kZWFkOmQ4OmZmOjIxOjoyXG4mIzQzO2lwNl9ycz1kZWFkOmQ4OmZmOjIyOjpmZmZlXG4mIzQzO2lwNl9yYz1kZWFkOmQ4OmZmOjIxOjpmZmZlXG4mIzQzO1xuJiM0MztpcDRfc3I9MTAuMS4yMi4xXG4mIzQzO2lwNF9jcj0xMC4xLjIxLjJcbiYjNDM7aXA0X3JzPTEwLjEuMjIuOTlcbiYjNDM7aXA0X3JjPTEwLjEuMjEuOTlcbiYjNDM7XG4mIzQzO3NldCAtZVxuJiM0MztpcCBuZXRucyBhZGQgJFJcbiYjNDM7aXAgbmV0bnMgYWRkICRTXG4mIzQzO2lwIG5ldG5zIGFkZCAkQ1xuJiM0MztpcCAtbmV0ICRTIGxpbmsgc2V0IGxvIHVwXG4mIzQzO2lwIC1uZXQgJFIgbGluayBzZXQgbG8gdXBcbiYjNDM7aXAgLW5ldCAkQyBsaW5rIHNldCBsbyB1cFxuJiM0MztpcCBuZXRucyBleGVjICRSIHN5c2N0bCAtd3EgbmV0LmlwdjQuaXBfZm9yd2FyZD0xXG4mIzQzO2lwIG5ldG5zIGV4ZWMgJFIgc3lzY3RsIC13cSBuZXQuaXB2Ni5jb25mLmFsbC5mb3J3YXJkaW5nPTFcbiYjNDM7XG4mIzQzO2lwIGxpbmsgYWRkIHNfciBuZXRucyAkUyB0eXBlIHZldGggcGVlciBuYW1lIHJfcyBuZXRucyAkUlxuJiM0MztpcCBsaW5rIGFkZCBjX3IgbmV0bnMgJEMgdHlwZSB2ZXRoIHBlZXIgbmFtZSByX2MgbmV0bnMgJFJcbiYjNDM7aXAgLW5ldCAkUyBsaW5rIHNldCBzX3IgdXBcbiYjNDM7aXAgLW5ldCAkUiBsaW5rIHNldCByX3MgdXBcbiYjNDM7aXAgLW5ldCAkUiBsaW5rIHNldCByX2MgdXBcbiYjNDM7aXAgLW5ldCAkQyBsaW5rIHNldCBjX3IgdXBcbiYjNDM7XG4mIzQzO2lwIC1uZXQgJFMgYWRkciBhZGQgJHtpcDZfc3J9LzY0IGRldiBzX3Igbm9kYWRcbiYjNDM7aXAgLW5ldCAkQyBhZGRyIGFkZCAke2lwNl9jcn0vNjQgZGV2IGNfciBub2RhZFxuJiM0MztpcCAtbmV0ICRSIGFkZHIgYWRkICR7aXA2X3JzfS82NCBkZXYgcl9zIG5vZGFkXG4mIzQzO2lwIC1uZXQgJFIgYWRkciBhZGQgJHtpcDZfcmN9LzY0IGRldiByX2Mgbm9kYWRcbiYjNDM7aXAgLW5ldCAkQyByb3V0ZSBhZGQgJHtpcDZfcnN9LzY0IHZpYSAke2lwNl9yY30gZGV2IGNfclxuJiM0MztpcCAtbmV0ICRTIHJvdXRlIGFkZCAke2lwNl9yY30vNjQgdmlhICR7aXA2X3JzfSBkZXYgc19yXG4mIzQzO2Fzc2VydF9wYXNzIFwmIzM0O3RvcG8gaW5pdGlhbGl6YXRpb25cJiMzNDtcbiYjNDM7XG4mIzQzO2lwIC1uZXQgJFMgYWRkciBhZGQgJHtpcDRfc3J9LzI0IGRldiBzX3JcbiYjNDM7aXAgLW5ldCAkQyBhZGRyIGFkZCAke2lwNF9jcn0vMjQgZGV2IGNfclxuJiM0MztpcCAtbmV0ICRSIGFkZHIgYWRkICR7aXA0X3JzfS8yNCBkZXYgcl9zXG4mIzQzO2lwIC1uZXQgJFIgYWRkciBhZGQgJHtpcDRfcmN9LzI0IGRldiByX2NcbiYjNDM7XG4mIzQzO2lwIC1uZXQgJEMgcm91dGUgYWRkIDEwLjEuMjIuMC8yNCB2aWEgJHtpcDRfcmN9IGRldiBjX3JcbiYjNDM7aXAgLW5ldCAkUyByb3V0ZSBhZGQgMTAuMS4yMS4wLzI0IHZpYSAke2lwNF9yc30gZGV2IHNfclxuJiM0MztcbiYjNDM7aXAgbmV0bnMgZXhlYyBcJiMzNDskQ1wmIzM0OyBwaW5nIC1xIC1jIDEgXCYjMzQ7JGlwNF9zclwmIzM0O1xuJiM0MztpcCBuZXRucyBleGVjIFwmIzM0OyRDXCYjMzQ7IHBpbmcgLXEgLWMgMSBcJiMzNDskaXA2X3NyXCYjMzQ7XG4mIzQzO1xuJiM0Mzt0aW1lb3V0IDIwIGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JFNcJiMzNDsgc29jYXQgVENQNi1MSVNURU46MjIyMixpcHY2b25seT0xLGZvcmsscmV1c2VhZGRyIFBJUEUgXHUwMDI2XG4mIzQzO3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyBcJiMzNDskU1wmIzM0OyBzb2NhdCBUQ1A0LUxJU1RFTjoyMjIyLGZvcmsscmV1c2VhZGRyIFBJUEUgXHUwMDI2XG4mIzQzO3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyBcJiMzNDskQ1wmIzM0OyBzb2NhdCBUQ1A2LUxJU1RFTjoxMjM0LGlwdjZvbmx5PTEsZm9yayxyZXVzZWFkZHIgUElQRSBcdTAwMjZcbiYjNDM7dGltZW91dCAyMCBpcCBuZXRucyBleGVjIFwmIzM0OyRDXCYjMzQ7IHNvY2F0IFRDUDQtTElTVEVOOjEyMzQsZm9yayxyZXVzZWFkZHIgUElQRSBcdTAwMjZcbiYjNDM7d2FpdF9sb2NhbF9wb3J0X2xpc3RlbiAkUyAyMjIyIHRjcFxuJiM0Mzt3YWl0X2xvY2FsX3BvcnRfbGlzdGVuICRDIDEyMzQgdGNwXG4mIzQzO1xuJiM0MztpcCBuZXRucyBleGVjICRSICRORlQgLWYgLSBcdTAwM2NcdTAwM2MtRU9GXG4mIzQzO2ZsdXNoIHJ1bGVzZXRcbiYjNDM7dGFibGUgaW5ldCB0IHtcbiYjNDM7XHRjdCBleHBlY3RhdGlvbiBjdGV4cGVjdDQge1xuJiM0MztcdFx0cHJvdG9jb2wgdGNwXG4mIzQzO1x0XHRkcG9ydCAxMjM0XG4mIzQzO1x0XHR0aW1lb3V0IDVzXG4mIzQzO1x0XHRzaXplIDFcbiYjNDM7XHRcdGwzcHJvdG8gaXBcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdGN0IGV4cGVjdGF0aW9uIGN0ZXhwZWN0NiB7XG4mIzQzO1x0XHRwcm90b2NvbCB0Y3BcbiYjNDM7XHRcdGRwb3J0IDEyMzRcbiYjNDM7XHRcdHRpbWVvdXQgNXNcbiYjNDM7XHRcdHNpemUgMVxuJiM0MztcdFx0bDNwcm90byBpcDZcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdGNoYWluIGMge1xuJiM0MztcdFx0dHlwZSBmaWx0ZXIgaG9vayBmb3J3YXJkIHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGRyb3A7XG4mIzQzO1x0XHRjdCBzdGF0ZSBlc3RhYmxpc2hlZCBhY2NlcHRcbiYjNDM7XHRcdG1ldGEgbDRwcm90byB0Y3AgY3Qgc3RhdGUgcmVsYXRlZCBjb3VudGVyIGFjY2VwdFxuJiM0MztcdFx0bWV0YSBpaWZuYW1lIHJfYyBjdCBzdGF0ZSBuZXcganVtcCB7XG4mIzQzO1x0XHRcdHRjcCBkcG9ydCAyMjIyIGNvdW50ZXIgY3QgZXhwZWN0YXRpb24gc2V0IG1ldGEgbmZwcm90byBtYXAgeyBpcHY0IDogY3RleHBlY3Q0LCBpcHY2IDogY3RleHBlY3Q2IH0gY291bnRlciBhY2NlcHRcbiYjNDM7XHRcdFx0Y291bnRlciBhY2NlcHRcbiYjNDM7XHRcdH1cbiYjNDM7XHRcdG1ldGEgbDRwcm90byB0Y3AgY291bnRlciByZWplY3Qgd2l0aCB0Y3AgcmVzZXRcbiYjNDM7XHRcdG1ldGEgbDRwcm90byB7IGljbXAsIGljbXB2NiB9IGFjY2VwdFxuJiM0MztcdH1cbiYjNDM7fVxuJiM0MztFT0ZcbiYjNDM7XG4mIzQzO2lwIG5ldG5zIGV4ZWMgXCYjMzQ7JENcJiMzNDsgcGluZyAtcSAtYyAxIFwmIzM0OyRpcDRfc3JcJiMzNDtcbiYjNDM7aXAgbmV0bnMgZXhlYyBcJiMzNDskQ1wmIzM0OyBwaW5nIC1xIC1jIDEgXCYjMzQ7JGlwNl9zclwmIzM0O1xuJiM0MztcbiYjNDM7c2V0ICYjNDM7ZVxuJiM0MztlY2hvIGNoZWNrIHBvcnQgaXMgY2xvc2VkIGZyb20gb3V0c2lkZS5cbiYjNDM7Y29ubmVjdF9mYWlsIFwmIzM0OyRTXCYjMzQ7IFwmIzM0OyRpcDRfY3JcJiMzNDsgMTIzNFxuJiM0Mztjb25uZWN0X2ZhaWwgXCYjMzQ7JFNcJiMzNDsgXCYjMzQ7WyRpcDZfY3JdXCYjMzQ7IDEyMzRcbiYjNDM7XG4mIzQzO3Rlc3RfZXhwZWN0IFwmIzM0OyRpcDRfY3JcJiMzNDsgXCYjMzQ7JGlwNF9zclwmIzM0O1x0XCYjMzQ7XCYjMzQ7XG4mIzQzO3Rlc3RfZXhwZWN0IFwmIzM0O1skaXA2X2NyXVwmIzM0OyBcJiMzNDtbJGlwNl9zcl1cJiMzNDsgXCYjMzQ7XCYjMzQ7XG4mIzQzO1xuJiM0MztpcCBuZXRucyBleGVjICRSIGNvbm50cmFjayAtRlxuJiM0Mzt0ZXN0X3RpbWVvdXRcbiYjNDM7XG4mIzQzO3NldCAtZVxuJiM0MztpcCBuZXRucyBleGVjICRSICRORlQgLWYgLSBcdTAwM2NcdTAwM2MtRU9GXG4mIzQzO2ZsdXNoIHJ1bGVzZXRcbiYjNDM7dGFibGUgaW5ldCB0IHtcbiYjNDM7XHRjdCBleHBlY3RhdGlvbiBjdGV4cGVjdDQge1xuJiM0MztcdFx0cHJvdG9jb2wgdGNwXG4mIzQzO1x0XHRkcG9ydCAxMjM0XG4mIzQzO1x0XHR0aW1lb3V0IDVzXG4mIzQzO1x0XHRzaXplIDFcbiYjNDM7XHRcdGwzcHJvdG8gaXBcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdGN0IGV4cGVjdGF0aW9uIGN0ZXhwZWN0NiB7XG4mIzQzO1x0XHRwcm90b2NvbCB0Y3BcbiYjNDM7XHRcdGRwb3J0IDEyMzRcbiYjNDM7XHRcdHRpbWVvdXQgNXNcbiYjNDM7XHRcdHNpemUgMVxuJiM0MztcdFx0bDNwcm90byBpcDZcbiYjNDM7XHR9XG4mIzQzO1x0Y2hhaW4gYyB7XG4mIzQzO1x0XHR0eXBlIGZpbHRlciBob29rIGZvcndhcmQgcHJpb3JpdHkgZmlsdGVyOyBwb2xpY3kgZHJvcDtcbiYjNDM7XHRcdGN0IHN0YXRlIGVzdGFibGlzaGVkIGFjY2VwdFxuJiM0MztcdFx0bWV0YSBsNHByb3RvIHRjcCBjdCBzdGF0ZSByZWxhdGVkIGNvdW50ZXIgYWNjZXB0XG4mIzQzO1x0XHRtZXRhIGlpZm5hbWUgcl9jIGN0IHN0YXRlIG5ldyBhY2NlcHRcbiYjNDM7XHRcdG1ldGEgbDRwcm90byB0Y3AgY291bnRlciByZWplY3Qgd2l0aCB0Y3AgcmVzZXRcbiYjNDM7XHRcdG1ldGEgbDRwcm90byB7IGljbXAsIGljbXB2NiB9IGFjY2VwdFxuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0Y2hhaW4gbWFzcSB7XG4mIzQzO1x0XHR0eXBlIG5hdCBob29rIHBvc3Ryb3V0aW5nIHByaW9yaXR5IHNyY25hdDsgcG9saWN5IGFjY2VwdDtcbiYjNDM7XHRcdG1ldGEgb2lmbmFtZSBcJiMzNDtyX3NcJiMzNDsgY291bnRlciBtYXNxdWVyYWRlXG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRjaGFpbiBlIHtcbiYjNDM7XHRcdHR5cGUgZmlsdGVyIGhvb2sgcG9zdHJvdXRpbmcgcHJpb3JpdHkgNTAwMDAgOyBwb2xpY3kgYWNjZXB0O1xuJiM0MztcdFx0bWV0YSBpaWZuYW1lIHJfYyBjdCBzdGF0ZSBuZXcganVtcCB7XG4mIzQzO1x0XHRcdHRjcCBkcG9ydCAyMjIyIGNvdW50ZXIgY3QgZXhwZWN0YXRpb24gc2V0IG1ldGEgbmZwcm90byBtYXAgeyBpcHY0IDogY3RleHBlY3Q0LCBpcHY2IDogY3RleHBlY3Q2IH0gY291bnRlciBhY2NlcHRcbiYjNDM7XHRcdFx0Y291bnRlciBhY2NlcHRcbiYjNDM7XHRcdH1cbiYjNDM7XHR9XG4mIzQzO31cbiYjNDM7RU9GXG4mIzQzO1xuJiM0MztpcCBuZXRucyBleGVjICRSIGNvbm50cmFjayAtRlxuJiM0MztlY2hvIFwmIzM0O1Rlc3Q6IGNvbm50cmFjayBleHBlY3RhdGlvbiB3aXRoIG1hc3F1ZXJhZGVcJiMzNDtcbiYjNDM7c2V0ICYjNDM7ZVxuJiM0MztcbiYjNDM7IyBTa2lwIGhlcmUsIHRoaXMgaXMgYSBrZXJuZWwgYnVnIC8gbWlzc2luZyBmZWF0dXJlIHdlIGNhbiYjMzk7dFxuJiM0MzsjIHRlc3QgZm9yLlxuJiM0MztyYz03N1xuJiM0Mzt0ZXN0X2V4cGVjdCBcJiMzNDskaXA0X3JzXCYjMzQ7IFwmIzM0OyRpcDRfc3JcJiMzNDsgXCYjMzQ7IHdpdGggbWFzcXVlcmFkZVwmIzM0O1xuJiM0Mzt0ZXN0X2V4cGVjdCBcJiMzNDtbJGlwNl9yc11cJiMzNDsgXCYjMzQ7WyRpcDZfc3JdXCYjMzQ7IFwmIzM0OyB3aXRoIG1hc3F1ZXJhZGVcJiMzNDtcbiYjNDM7XG4mIzQzO2lwIG5ldG5zIGV4ZWMgXCYjMzQ7JFJcJiMzNDsgY29ubnRyYWNrIC1MXG4mIzQzO3JjPTBcbmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9kdW1wcy9jdF9leHBlY3Qubm9kdW1wIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvZHVtcHMvY3RfZXhwZWN0Lm5vZHVtcFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMWRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOTo1MTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgc2hlbGwgc2NyaXB0IGZvciB0ZXN0aW5nIG5mdGFibGVzL2Nvbm50cmFjayBleHBlY3RhdGlvbnMuIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlLCBLY29uZmlnLCBvciBNYWtlZmlsZS4gVGhlcmVmb3JlLCB0aGVyZSBhcmUgbm8gZnVuY3Rpb25hbCBrZXJuZWwgY2hhbmdlcyB0byBmdXp6LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDRjNjAxZWQ0YjBiYTIwMDE2ZTA1MGJhYjczNjFiYTJiNzA0ODVhNTIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAzIDE5OjUxOjQ3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvY3RfZXhwZWN0IGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvY3RfZXhwZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAuLmQ5ODI0Y2EzY2RhZjkKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3QKQEAgLTAsMCAmIzQzOzEsMjYxIEBACiYjNDM7IyEvYmluL2Jhc2gKJiM0MzsKJiM0MzsjIE5GVF9URVNUX1JFUVVJUkVTKE5GVF9URVNUX0hBVkVfc29jYXQpCiYjNDM7CiYjNDM7LiAkTkZUX1RFU1RfTElCUkFSWV9GSUxFCiYjNDM7CiYjNDM7c2V0IC14CiYjNDM7CiYjNDM7cmM9MQomIzQzOwomIzQzO2NsZWFudXAoKQomIzQzO3sKJiM0MzsJZm9yIGkgaW4gJFIgJEMgJFM7ZG8KJiM0MzsJCWtpbGwgJChpcCBuZXRucyBwaWQgJGkpIDImZ3Q7L2Rldi9udWxsCiYjNDM7CQlpcCBuZXRucyBkZWwgJGkKJiM0MzsJZG9uZQomIzQzOwomIzQzOwlleGl0ICRyYwomIzQzO30KJiM0Mzt0cmFwIGNsZWFudXAgRVhJVAomIzQzOwomIzQzO2R1bXBfZXhwZWN0X3RhYmxlKCkgewomIzQzOwlpcCBuZXRucyBleGVjICYjMzQ7JFImIzM0OyBjb25udHJhY2sgLS1mYW1pbHkgaXB2NiAtTCBleHBlY3QKJiM0MzsJaXAgbmV0bnMgZXhlYyAmIzM0OyRSJiMzNDsgY29ubnRyYWNrIC0tZmFtaWx5IGlwdjQgLUwgZXhwZWN0CiYjNDM7fQomIzQzOwomIzQzO2Fzc2VydF9mYWlsb3V0KCkKJiM0Mzt7CiYjNDM7CWlwIG5ldG5zIGV4ZWMgJFIgJE5GVCBsaXN0IHJ1bGVzZXQKJiM0MzsJaXAgbmV0bnMgZXhlYyAkUiBjb25udHJhY2sgLUwKJiM0MzsJZHVtcF9leHBlY3RfdGFibGUKJiM0Mzt9CiYjNDM7CiYjNDM7ZG9fY29ubmVjdCgpIHsKJiM0MzsJbG9jYWwgbnM9JiMzNDskMSYjMzQ7CiYjNDM7CWxvY2FsIGFkZHI9JiMzNDskMiYjMzQ7CiYjNDM7CWxvY2FsIHBvcnQ9JiMzNDskMyYjMzQ7CiYjNDM7CiYjNDM7CWlwIG5ldG5zIGV4ZWMgJiMzNDskbnMmIzM0OyBzb2NhdCAtdSBTVERJTiBUQ1AtQ09OTkVDVDokYWRkcjokcG9ydCxjb25uZWN0LXRpbWVvdXQ9MSAmbHQ7IC9kZXYvbnVsbAomIzQzO30KJiM0MzsKJiM0Mztjb25uZWN0X2ZhaWwoKSB7CiYjNDM7CWxvY2FsIG5zPSYjMzQ7JDEmIzM0OwomIzQzOwlsb2NhbCBhZGRyPSYjMzQ7JDImIzM0OwomIzQzOwlsb2NhbCBwb3J0PSYjMzQ7JDMmIzM0OwomIzQzOwlsb2NhbCBtc2c9JiMzNDskNCYjMzQ7CiYjNDM7CiYjNDM7CWRvX2Nvbm5lY3QgJiMzNDskbnMmIzM0OyAmIzM0OyRhZGRyJiMzNDsgJiMzNDskcG9ydCYjMzQ7CiYjNDM7CWFzc2VydF9mYWlsICYjMzQ7Y29ubmVjdCBmcm9tICRucyB0byAkYWRkcjokcG9ydCAkbXNnJiMzNDsKJiM0Mzt9CiYjNDM7CiYjNDM7Y29ubmVjdF9vaygpIHsKJiM0MzsJbG9jYWwgbnM9JiMzNDskMSYjMzQ7CiYjNDM7CWxvY2FsIGFkZHI9JiMzNDskMiYjMzQ7CiYjNDM7CWxvY2FsIHBvcnQ9JiMzNDskMyYjMzQ7CiYjNDM7CWxvY2FsIG1zZz0mIzM0OyQ0JiMzNDsKJiM0MzsKJiM0MzsJZG9fY29ubmVjdCAmIzM0OyRucyYjMzQ7ICYjMzQ7JGFkZHImIzM0OyAmIzM0OyRwb3J0JiMzNDsKJiM0MzsJYXNzZXJ0X3Bhc3MgJiMzNDtjb25uZWN0IGZyb20gJG5zIHRvICRhZGRyOiRwb3J0ICRtc2cmIzM0OwomIzQzO30KJiM0MzsKJiM0Mzt0ZXN0X2V4cGVjdCgpIHsKJiM0MzsJbG9jYWwgaXBfY3I9JiMzNDskMSYjMzQ7CiYjNDM7CWxvY2FsIGlwX3NyPSYjMzQ7JDImIzM0OwomIzQzOwlsb2NhbCBtc2c9JiMzNDskMyYjMzQ7CiYjNDM7CiYjNDM7CWVjaG8gY2hlY2sgcG9ydCBpcyBjbG9zZWQgZnJvbSBvdXRzaWRlLgomIzQzOwljb25uZWN0X2ZhaWwgJiMzNDskUyYjMzQ7ICYjMzQ7JGlwX2NyJiMzNDsgMTIzNAomIzQzOwomIzQzOwllY2hvICYjMzQ7VGVzdDogZXhwZWN0YXRpb24gdmlhIHJ1bGVzZXQkbXNnJiMzNDsKJiM0MzsKJiM0MzsJZWNobyBjb250cm9sIHBvcnQgc2hvdWxkIGJlIG9wZW4uCiYjNDM7CWNvbm5lY3Rfb2sgJiMzNDskQyYjMzQ7ICYjMzQ7JGlwX3NyJiMzNDsgMjIyMiAmIzM0OyRtc2cmIzM0OwomIzQzOwomIzQzOwlkdW1wX2V4cGVjdF90YWJsZQomIzQzOwomIzQzOwllY2hvIGV4cGVjdGVkIHBvcnQuIFNob3VsZCBub3cgcGFzcy4KJiM0MzsJY29ubmVjdF9vayAmIzM0OyRTJiMzNDsgJiMzNDskaXBfY3ImIzM0OyAxMjM0ICYjMzQ7JG1zZyYjMzQ7CiYjNDM7CiYjNDM7CWVjaG8gb25lIGV4cGVjdGF0aW9uIG1heCwgZXhwZWN0IGZhaWwuCiYjNDM7CWNvbm5lY3RfZmFpbCAmIzM0OyRTJiMzNDsgJiMzNDskaXBfY3ImIzM0OyAxMjM0ICYjMzQ7JG1zZyYjMzQ7CiYjNDM7fQomIzQzOwomIzQzO3Rlc3RfdGltZW91dCgpIHsKJiM0MzsJZWNobyAmIzM0O1Rlc3Q6IGV4cGVjdGF0aW9uIGF1dG8tdGltZW91dCYjMzQ7CiYjNDM7CSMgY29udHJvbCBwb3J0IC0gdGhpcyBzaG91bGQgYmUgb3Blbi4KJiM0MzsJY29ubmVjdF9vayAmIzM0OyRDJiMzNDsgJiMzNDskaXA0X3NyJiMzNDsgMjIyMgomIzQzOwljb25uZWN0X29rICYjMzQ7JEMmIzM0OyAmIzM0O1skaXA2X3NyXSYjMzQ7IDIyMjIKJiM0MzsKJiM0MzsJZHVtcF9leHBlY3RfdGFibGUKJiM0MzsKJiM0MzsJIyB0aW1lb3V0LiBXZSAmIzM5O2J1bmRsZSYjMzk7IGlwdjQgYW5kIGlwdjYgdGVzdCBoZXJlLgomIzQzOwlzbGVlcCA2CiYjNDM7CiYjNDM7CWR1bXBfZXhwZWN0X3RhYmxlCiYjNDM7CiYjNDM7CWVjaG8gJiMzNDtleHBlY3QgZmFpbHVyZXMmIzM0OwomIzQzOwljb25uZWN0X2ZhaWwgJiMzNDskUyYjMzQ7ICYjMzQ7JGlwNF9jciYjMzQ7IDEyMzQKJiM0MzsJY29ubmVjdF9mYWlsICYjMzQ7JFMmIzM0OyAmIzM0O1skaXA2X2NyXSYjMzQ7IDEyMzQKJiM0Mzt9CiYjNDM7CiYjNDM7cm5kPSQobWt0ZW1wIC11IFhYWFhYWFhYKQomIzQzO1I9JiMzNDtucy1yb3V0ZXItJHJuZCYjMzQ7CiYjNDM7Qz0mIzM0O25zLWNsaWVudC0kcm5kJiMzNDsKJiM0MztTPSYjMzQ7bnMtc2VydmVyLSRybmQmIzM0OwomIzQzOwomIzQzO2lwNl9zcj1kZWFkOmQ4OmZmOjIyOjoxCiYjNDM7aXA2X2NyPWRlYWQ6ZDg6ZmY6MjE6OjIKJiM0MztpcDZfcnM9ZGVhZDpkODpmZjoyMjo6ZmZmZQomIzQzO2lwNl9yYz1kZWFkOmQ4OmZmOjIxOjpmZmZlCiYjNDM7CiYjNDM7aXA0X3NyPTEwLjEuMjIuMQomIzQzO2lwNF9jcj0xMC4xLjIxLjIKJiM0MztpcDRfcnM9MTAuMS4yMi45OQomIzQzO2lwNF9yYz0xMC4xLjIxLjk5CiYjNDM7CiYjNDM7c2V0IC1lCiYjNDM7aXAgbmV0bnMgYWRkICRSCiYjNDM7aXAgbmV0bnMgYWRkICRTCiYjNDM7aXAgbmV0bnMgYWRkICRDCiYjNDM7aXAgLW5ldCAkUyBsaW5rIHNldCBsbyB1cAomIzQzO2lwIC1uZXQgJFIgbGluayBzZXQgbG8gdXAKJiM0MztpcCAtbmV0ICRDIGxpbmsgc2V0IGxvIHVwCiYjNDM7aXAgbmV0bnMgZXhlYyAkUiBzeXNjdGwgLXdxIG5ldC5pcHY0LmlwX2ZvcndhcmQ9MQomIzQzO2lwIG5ldG5zIGV4ZWMgJFIgc3lzY3RsIC13cSBuZXQuaXB2Ni5jb25mLmFsbC5mb3J3YXJkaW5nPTEKJiM0MzsKJiM0MztpcCBsaW5rIGFkZCBzX3IgbmV0bnMgJFMgdHlwZSB2ZXRoIHBlZXIgbmFtZSByX3MgbmV0bnMgJFIKJiM0MztpcCBsaW5rIGFkZCBjX3IgbmV0bnMgJEMgdHlwZSB2ZXRoIHBlZXIgbmFtZSByX2MgbmV0bnMgJFIKJiM0MztpcCAtbmV0ICRTIGxpbmsgc2V0IHNfciB1cAomIzQzO2lwIC1uZXQgJFIgbGluayBzZXQgcl9zIHVwCiYjNDM7aXAgLW5ldCAkUiBsaW5rIHNldCByX2MgdXAKJiM0MztpcCAtbmV0ICRDIGxpbmsgc2V0IGNfciB1cAomIzQzOwomIzQzO2lwIC1uZXQgJFMgYWRkciBhZGQgJHtpcDZfc3J9LzY0IGRldiBzX3Igbm9kYWQKJiM0MztpcCAtbmV0ICRDIGFkZHIgYWRkICR7aXA2X2NyfS82NCBkZXYgY19yIG5vZGFkCiYjNDM7aXAgLW5ldCAkUiBhZGRyIGFkZCAke2lwNl9yc30vNjQgZGV2IHJfcyBub2RhZAomIzQzO2lwIC1uZXQgJFIgYWRkciBhZGQgJHtpcDZfcmN9LzY0IGRldiByX2Mgbm9kYWQKJiM0MztpcCAtbmV0ICRDIHJvdXRlIGFkZCAke2lwNl9yc30vNjQgdmlhICR7aXA2X3JjfSBkZXYgY19yCiYjNDM7aXAgLW5ldCAkUyByb3V0ZSBhZGQgJHtpcDZfcmN9LzY0IHZpYSAke2lwNl9yc30gZGV2IHNfcgomIzQzO2Fzc2VydF9wYXNzICYjMzQ7dG9wbyBpbml0aWFsaXphdGlvbiYjMzQ7CiYjNDM7CiYjNDM7aXAgLW5ldCAkUyBhZGRyIGFkZCAke2lwNF9zcn0vMjQgZGV2IHNfcgomIzQzO2lwIC1uZXQgJEMgYWRkciBhZGQgJHtpcDRfY3J9LzI0IGRldiBjX3IKJiM0MztpcCAtbmV0ICRSIGFkZHIgYWRkICR7aXA0X3JzfS8yNCBkZXYgcl9zCiYjNDM7aXAgLW5ldCAkUiBhZGRyIGFkZCAke2lwNF9yY30vMjQgZGV2IHJfYwomIzQzOwomIzQzO2lwIC1uZXQgJEMgcm91dGUgYWRkIDEwLjEuMjIuMC8yNCB2aWEgJHtpcDRfcmN9IGRldiBjX3IKJiM0MztpcCAtbmV0ICRTIHJvdXRlIGFkZCAxMC4xLjIxLjAvMjQgdmlhICR7aXA0X3JzfSBkZXYgc19yCiYjNDM7CiYjNDM7aXAgbmV0bnMgZXhlYyAmIzM0OyRDJiMzNDsgcGluZyAtcSAtYyAxICYjMzQ7JGlwNF9zciYjMzQ7CiYjNDM7aXAgbmV0bnMgZXhlYyAmIzM0OyRDJiMzNDsgcGluZyAtcSAtYyAxICYjMzQ7JGlwNl9zciYjMzQ7CiYjNDM7CiYjNDM7dGltZW91dCAyMCBpcCBuZXRucyBleGVjICYjMzQ7JFMmIzM0OyBzb2NhdCBUQ1A2LUxJU1RFTjoyMjIyLGlwdjZvbmx5PTEsZm9yayxyZXVzZWFkZHIgUElQRSAmYW1wOwomIzQzO3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyAmIzM0OyRTJiMzNDsgc29jYXQgVENQNC1MSVNURU46MjIyMixmb3JrLHJldXNlYWRkciBQSVBFICZhbXA7CiYjNDM7dGltZW91dCAyMCBpcCBuZXRucyBleGVjICYjMzQ7JEMmIzM0OyBzb2NhdCBUQ1A2LUxJU1RFTjoxMjM0LGlwdjZvbmx5PTEsZm9yayxyZXVzZWFkZHIgUElQRSAmYW1wOwomIzQzO3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyAmIzM0OyRDJiMzNDsgc29jYXQgVENQNC1MSVNURU46MTIzNCxmb3JrLHJldXNlYWRkciBQSVBFICZhbXA7CiYjNDM7d2FpdF9sb2NhbF9wb3J0X2xpc3RlbiAkUyAyMjIyIHRjcAomIzQzO3dhaXRfbG9jYWxfcG9ydF9saXN0ZW4gJEMgMTIzNCB0Y3AKJiM0MzsKJiM0MztpcCBuZXRucyBleGVjICRSICRORlQgLWYgLSAmbHQ7Jmx0Oy1FT0YKJiM0MztmbHVzaCBydWxlc2V0CiYjNDM7dGFibGUgaW5ldCB0IHsKJiM0MzsJY3QgZXhwZWN0YXRpb24gY3RleHBlY3Q0IHsKJiM0MzsJCXByb3RvY29sIHRjcAomIzQzOwkJZHBvcnQgMTIzNAomIzQzOwkJdGltZW91dCA1cwomIzQzOwkJc2l6ZSAxCiYjNDM7CQlsM3Byb3RvIGlwCiYjNDM7CX0KJiM0MzsKJiM0MzsJY3QgZXhwZWN0YXRpb24gY3RleHBlY3Q2IHsKJiM0MzsJCXByb3RvY29sIHRjcAomIzQzOwkJZHBvcnQgMTIzNAomIzQzOwkJdGltZW91dCA1cwomIzQzOwkJc2l6ZSAxCiYjNDM7CQlsM3Byb3RvIGlwNgomIzQzOwl9CiYjNDM7CiYjNDM7CWNoYWluIGMgewomIzQzOwkJdHlwZSBmaWx0ZXIgaG9vayBmb3J3YXJkIHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGRyb3A7CiYjNDM7CQljdCBzdGF0ZSBlc3RhYmxpc2hlZCBhY2NlcHQKJiM0MzsJCW1ldGEgbDRwcm90byB0Y3AgY3Qgc3RhdGUgcmVsYXRlZCBjb3VudGVyIGFjY2VwdAomIzQzOwkJbWV0YSBpaWZuYW1lIHJfYyBjdCBzdGF0ZSBuZXcganVtcCB7CiYjNDM7CQkJdGNwIGRwb3J0IDIyMjIgY291bnRlciBjdCBleHBlY3RhdGlvbiBzZXQgbWV0YSBuZnByb3RvIG1hcCB7IGlwdjQgOiBjdGV4cGVjdDQsIGlwdjYgOiBjdGV4cGVjdDYgfSBjb3VudGVyIGFjY2VwdAomIzQzOwkJCWNvdW50ZXIgYWNjZXB0CiYjNDM7CQl9CiYjNDM7CQltZXRhIGw0cHJvdG8gdGNwIGNvdW50ZXIgcmVqZWN0IHdpdGggdGNwIHJlc2V0CiYjNDM7CQltZXRhIGw0cHJvdG8geyBpY21wLCBpY21wdjYgfSBhY2NlcHQKJiM0MzsJfQomIzQzO30KJiM0MztFT0YKJiM0MzsKJiM0MztpcCBuZXRucyBleGVjICYjMzQ7JEMmIzM0OyBwaW5nIC1xIC1jIDEgJiMzNDskaXA0X3NyJiMzNDsKJiM0MztpcCBuZXRucyBleGVjICYjMzQ7JEMmIzM0OyBwaW5nIC1xIC1jIDEgJiMzNDskaXA2X3NyJiMzNDsKJiM0MzsKJiM0MztzZXQgJiM0MztlCiYjNDM7ZWNobyBjaGVjayBwb3J0IGlzIGNsb3NlZCBmcm9tIG91dHNpZGUuCiYjNDM7Y29ubmVjdF9mYWlsICYjMzQ7JFMmIzM0OyAmIzM0OyRpcDRfY3ImIzM0OyAxMjM0CiYjNDM7Y29ubmVjdF9mYWlsICYjMzQ7JFMmIzM0OyAmIzM0O1skaXA2X2NyXSYjMzQ7IDEyMzQKJiM0MzsKJiM0Mzt0ZXN0X2V4cGVjdCAmIzM0OyRpcDRfY3ImIzM0OyAmIzM0OyRpcDRfc3ImIzM0OwkmIzM0OyYjMzQ7CiYjNDM7dGVzdF9leHBlY3QgJiMzNDtbJGlwNl9jcl0mIzM0OyAmIzM0O1skaXA2X3NyXSYjMzQ7ICYjMzQ7JiMzNDsKJiM0MzsKJiM0MztpcCBuZXRucyBleGVjICRSIGNvbm50cmFjayAtRgomIzQzO3Rlc3RfdGltZW91dAomIzQzOwomIzQzO3NldCAtZQomIzQzO2lwIG5ldG5zIGV4ZWMgJFIgJE5GVCAtZiAtICZsdDsmbHQ7LUVPRgomIzQzO2ZsdXNoIHJ1bGVzZXQKJiM0Mzt0YWJsZSBpbmV0IHQgewomIzQzOwljdCBleHBlY3RhdGlvbiBjdGV4cGVjdDQgewomIzQzOwkJcHJvdG9jb2wgdGNwCiYjNDM7CQlkcG9ydCAxMjM0CiYjNDM7CQl0aW1lb3V0IDVzCiYjNDM7CQlzaXplIDEKJiM0MzsJCWwzcHJvdG8gaXAKJiM0MzsJfQomIzQzOwomIzQzOwljdCBleHBlY3RhdGlvbiBjdGV4cGVjdDYgewomIzQzOwkJcHJvdG9jb2wgdGNwCiYjNDM7CQlkcG9ydCAxMjM0CiYjNDM7CQl0aW1lb3V0IDVzCiYjNDM7CQlzaXplIDEKJiM0MzsJCWwzcHJvdG8gaXA2CiYjNDM7CX0KJiM0MzsJY2hhaW4gYyB7CiYjNDM7CQl0eXBlIGZpbHRlciBob29rIGZvcndhcmQgcHJpb3JpdHkgZmlsdGVyOyBwb2xpY3kgZHJvcDsKJiM0MzsJCWN0IHN0YXRlIGVzdGFibGlzaGVkIGFjY2VwdAomIzQzOwkJbWV0YSBsNHByb3RvIHRjcCBjdCBzdGF0ZSByZWxhdGVkIGNvdW50ZXIgYWNjZXB0CiYjNDM7CQltZXRhIGlpZm5hbWUgcl9jIGN0IHN0YXRlIG5ldyBhY2NlcHQKJiM0MzsJCW1ldGEgbDRwcm90byB0Y3AgY291bnRlciByZWplY3Qgd2l0aCB0Y3AgcmVzZXQKJiM0MzsJCW1ldGEgbDRwcm90byB7IGljbXAsIGljbXB2NiB9IGFjY2VwdAomIzQzOwl9CiYjNDM7CiYjNDM7CWNoYWluIG1hc3EgewomIzQzOwkJdHlwZSBuYXQgaG9vayBwb3N0cm91dGluZyBwcmlvcml0eSBzcmNuYXQ7IHBvbGljeSBhY2NlcHQ7CiYjNDM7CQltZXRhIG9pZm5hbWUgJiMzNDtyX3MmIzM0OyBjb3VudGVyIG1hc3F1ZXJhZGUKJiM0MzsJfQomIzQzOwomIzQzOwljaGFpbiBlIHsKJiM0MzsJCXR5cGUgZmlsdGVyIGhvb2sgcG9zdHJvdXRpbmcgcHJpb3JpdHkgNTAwMDAgOyBwb2xpY3kgYWNjZXB0OwomIzQzOwkJbWV0YSBpaWZuYW1lIHJfYyBjdCBzdGF0ZSBuZXcganVtcCB7CiYjNDM7CQkJdGNwIGRwb3J0IDIyMjIgY291bnRlciBjdCBleHBlY3RhdGlvbiBzZXQgbWV0YSBuZnByb3RvIG1hcCB7IGlwdjQgOiBjdGV4cGVjdDQsIGlwdjYgOiBjdGV4cGVjdDYgfSBjb3VudGVyIGFjY2VwdAomIzQzOwkJCWNvdW50ZXIgYWNjZXB0CiYjNDM7CQl9CiYjNDM7CX0KJiM0Mzt9CiYjNDM7RU9GCiYjNDM7CiYjNDM7aXAgbmV0bnMgZXhlYyAkUiBjb25udHJhY2sgLUYKJiM0MztlY2hvICYjMzQ7VGVzdDogY29ubnRyYWNrIGV4cGVjdGF0aW9uIHdpdGggbWFzcXVlcmFkZSYjMzQ7CiYjNDM7c2V0ICYjNDM7ZQomIzQzOwomIzQzOyMgU2tpcCBoZXJlLCB0aGlzIGlzIGEga2VybmVsIGJ1ZyAvIG1pc3NpbmcgZmVhdHVyZSB3ZSBjYW4mIzM5O3QKJiM0MzsjIHRlc3QgZm9yLgomIzQzO3JjPTc3CiYjNDM7dGVzdF9leHBlY3QgJiMzNDskaXA0X3JzJiMzNDsgJiMzNDskaXA0X3NyJiMzNDsgJiMzNDsgd2l0aCBtYXNxdWVyYWRlJiMzNDsKJiM0Mzt0ZXN0X2V4cGVjdCAmIzM0O1skaXA2X3JzXSYjMzQ7ICYjMzQ7WyRpcDZfc3JdJiMzNDsgJiMzNDsgd2l0aCBtYXNxdWVyYWRlJiMzNDsKJiM0MzsKJiM0MztpcCBuZXRucyBleGVjICYjMzQ7JFImIzM0OyBjb25udHJhY2sgLUwKJiM0MztyYz0wCmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9kdW1wcy9jdF9leHBlY3Qubm9kdW1wIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvZHVtcHMvY3RfZXhwZWN0Lm5vZHVtcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDFkCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3MTcKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjb3VwbGUgb2YgbmV3IHRlc3QgZmlsZXMsIGBjdF9leHBlY3RgIGFuZCBgY3RfZXhwZWN0Lm5vZHVtcGAsIGJvdGggbG9jYXRlZCB1bmRlciBgdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvYC4gSXQgbG9va3MgbGlrZSB0aGVzZSBhcmUgc2hlbGwgc2NyaXB0cywgbGlrZWx5IHVzZWQgdG8gdGVzdCBuZnRhYmxlcyBvciBjb25udHJhY2sgYmVoYXZpb3IuIEludGVyZXN0aW5nLCBzZWVtcyBmb2N1c2VkIG9uIGNvbm50cmFjayBleHBlY3RhdGlvbnMuIFRoZXJlIGFyZSBubyBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwmIzM5O3Mgc291cmNlIGNvZGUgaXRzZWxmLCB3aGljaCBpcyBhIGdvb2QgdGhpbmcgdG8gbm90ZS4gVGhlIHNjb3BlIGlzIHZlcnkgc3BlY2lmaWMgdG8gdGhvc2UgdGVzdCBkaXJlY3Rvcmllcy4KCk5vdyB0aGUgcXVlc3Rpb24gaXMsIHdoZXJlIGV4YWN0bHkgaXMgYHRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoL2AgbG9jYXRlZD8gSXMgdGhpcyBwYXJ0IG9mIHRoZSBhY3R1YWwga2VybmVsIHRyZWUsIG9yIGlzIGl0IGEgdXNlcnNwYWNlIHRlc3RpbmcgZnJhbWV3b3JrIGFzc29jaWF0ZWQgd2l0aCBhIHRvb2wgbGlrZSBuZnRhYmxlcz8gSXQmIzM5O3MgaW1wb3J0YW50IHRvIGtub3cgdGhlIGNvbnRleHQgb2YgdGhlc2UgdGVzdHMuIEkgbmVlZCB0byBjbGFyaWZ5IHdoZXRoZXIgdGhlc2UgYXJlIGluIHRoZSBrZXJuZWwgdHJlZSwgb3IgaW4gYSByZWxhdGVkIHVzZXJzcGFjZSBjb21wb25lbnQuIEkmIzM5O2xsIG5lZWQgdG8gdXNlIGBjb2Rlc2VhcmNoLWRpci1pbmRleGAgb3IgYGdyZXBwZXJgIHRvIGRldGVybWluZSB0aGUgZXhhY3QgbG9jYXRpb24gb2YgdGhlIHRlc3QgZmlsZXMgYW5kIHJlc29sdmUgdGhpcy4gVGhpcyBjb250ZXh0IGlzIGltcG9ydGFudCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgaW1wYWN0IG9mIHRoZXNlIGFkZGl0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOTo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDt0ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBudWxsLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBbCiAgICAmIzM0O2R1bXBzJiMzNDsKICBdCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOTo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTU1CgkJCQkJCQlvdXRwdXQ6IDE4CgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKk5hdmlnYXRpbmcgdGhlIFRlc3QgRGlyZWN0b3J5IFN0cnVjdHVyZSoqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBEaWQgSSBqdXN0IHNlZSBhIHJlZmVyZW5jZSB0byBgdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGhgPyBUaGF0IHNlZW1zIGxpa2UgYW4gb2RkIHBhdGgsIGFuZCBpdCYjMzk7cyBtYWtpbmcgbWUgd29uZGVyIGlmIEkmIzM5O20gZXZlbiBsb29raW5nIGF0IHRoZSByaWdodCBkaXJlY3Rvcnkgc3RydWN0dXJlLiBCZWZvcmUgSSBkaWcgYW55IGRlZXBlciBpbnRvIHRoYXQgc3BlY2lmaWMgdGVzdCBjYXNlLCBJIG5lZWQgdG8gY29uZmlybSB0aGUgcm9vdC4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHdoZXJlIEkgYW0gcmVsYXRpdmUgdG8gdGhlIHByb2plY3QmIzM5O3MgYmFzZSBkaXJlY3RvcnkuIEkgbmVlZCB0byBnZXQgYSBjbGVhciBtZW50YWwgbWFwIG9mIHRoZSBwcm9qZWN0JiMzOTtzIGxheW91dCBiZWZvcmUgSSBjYW4gdW5kZXJzdGFuZCB3aGF0IHRoYXQgc3BlY2lmaWMgdGVzdCBjYXNlIGlzIGRvaW5nIGFuZCBob3cgaXQgcmVsYXRlcyB0byB0aGUgcmVzdCBvZiB0aGUgdGVzdGluZyBzdWl0ZS4gR290dGEgbWFrZSBzdXJlIEkgZG9uJiMzOTt0IHdhc3RlIHRpbWUgY2hhc2luZyBnaG9zdHMgaWYgaXQmIzM5O3MgcG9pbnRpbmcgdG8gc29tZXRoaW5nIGluIGEgZGlmZmVyZW50IGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6NTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IG51bGwsCiAgJiMzNDtTdWJkaXJzJiMzNDs6IFsKICAgICYjMzQ7RG9jdW1lbnRhdGlvbiYjMzQ7LAogICAgJiMzNDtMSUNFTlNFUyYjMzQ7LAogICAgJiMzNDthcmNoJiMzNDssCiAgICAmIzM0O2Jsb2NrJiMzNDssCiAgICAmIzM0O2NlcnRzJiMzNDssCiAgICAmIzM0O2NyeXB0byYjMzQ7LAogICAgJiMzNDtkcml2ZXJzJiMzNDssCiAgICAmIzM0O2ZzJiMzNDssCiAgICAmIzM0O2luY2x1ZGUmIzM0OywKICAgICYjMzQ7aW5pdCYjMzQ7LAogICAgJiMzNDtpb191cmluZyYjMzQ7LAogICAgJiMzNDtpcGMmIzM0OywKICAgICYjMzQ7a2VybmVsJiMzNDssCiAgICAmIzM0O2xpYiYjMzQ7LAogICAgJiMzNDttbSYjMzQ7LAogICAgJiMzNDtuZXQmIzM0OywKICAgICYjMzQ7cnVzdCYjMzQ7LAogICAgJiMzNDtzYW1wbGVzJiMzNDssCiAgICAmIzM0O3NjcmlwdHMmIzM0OywKICAgICYjMzQ7c2VjdXJpdHkmIzM0OywKICAgICYjMzQ7c291bmQmIzM0OywKICAgICYjMzQ7dGVzdHMmIzM0OywKICAgICYjMzQ7dG9vbHMmIzM0OywKICAgICYjMzQ7dXNyJiMzNDssCiAgICAmIzM0O3ZpcnQmIzM0OwogIF0KfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0ODMKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3M6CgoqKkluaXRpYWwgQXNzZXNzbWVudDogTmF2aWdhdGluZyBQcm9qZWN0IFN0cnVjdHVyZSoqCgpPa2F5LCBzbyBJIHNlZSBgdGVzdHNgIGlzIHNpdHRpbmcgcmlnaHQgdGhlcmUgaW4gdGhlIHJvb3QuIEltbWVkaWF0ZWx5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcHJvamVjdCBsYXlvdXQsIGFuZCB3aGV0aGVyIHRoZSB0ZXN0aW5nIHN0cmF0ZWd5IGFkaGVyZXMgdG8gc3RhbmRhcmQgcHJhY3RpY2VzIG9yIGlmIGl0JiMzOTtzIGRldmlhdGluZy4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSBnZXR0aW5nIGEgcXVpY2sgb3ZlcnZpZXcgb2Ygd2hhdCYjMzk7cyBhY3R1YWxseSAqaW4qIHRoYXQgZGlyZWN0b3J5LiBMZXQgbWUgZGl2ZSBpbiBhbmQgc2VlIHdoYXQmIzM5O3Mgd2hhdC4gVGhlIHN0cnVjdHVyZSBoZXJlIHdpbGwgdGVsbCBtZSBhIGxvdCBhYm91dCB0aGUgZGV2ZWxvcG1lbnQgYXBwcm9hY2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7dGVzdHMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogbnVsbCwKICAmIzM0O1N1YmRpcnMmIzM0OzogWwogICAgJiMzNDtzaGVsbCYjMzQ7CiAgXQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6NTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTY1MgoJCQkJCQkJb3V0cHV0OiAyMQoJCQkJCQkJdGhvdWdodHM6IDEzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipOYXZpZ2F0aW5nIHRoZSBMYWJ5cmludGggb2YgS2VybmVsIFRlc3RpbmcqKgoKT2theSwgaG9sZCBvbiBhIHNlY29uZC4gVGhpcyAmIzM0O25mdGFibGVzIHJlcG9zaXRvcnkmIzM0OyB0aG91Z2h0IHBvcHBlZCBpbnRvIG15IGhlYWQg4oCTIGlzIHRoaXMgYSBtaXNkaXJlY3Rpb24/IFRoZSBwcm9tcHQgKmRpZCogc3BlY2lmaWNhbGx5IHN0YXRlIEkmIzM5O20gYSBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4gQnV0LCB0aGVzZSB0aGluZ3MgaGFwcGVuLiBTb21ldGltZXMgcGF0Y2hlcyBmcm9tIGV4dGVybmFsIHByb2plY3RzLCBsaWtlIG5mdGFibGVzLCBmaW5kIHRoZWlyIHdheSBpbnRvIHRoZSBjb252ZXJzYXRpb24gaWYgYSB1c2VyIGdvb2ZlZCwgb3IgbWF5YmUgdGhlIGtlcm5lbCBoYXMgc3RhcnRlZCB0byB1c2Ugc2ltaWxhciBkaXJlY3RvcmllcyBvciBuYW1pbmcgc2NoZW1lcz8KCkhtbSwgbm8sIHdhaXQuIEkga25vdyB0aGF0IHRoZSBrZXJuZWwgdXNlcyBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYCwgbm90IHNpbXBseSBgdGVzdHMvYC4gVGhhdOKAmXMgbXkgbWVudGFsIHJlZmVyZW5jZSBwb2ludCwgYWx3YXlzLiBMZXQgbWUgaW52ZXN0aWdhdGUgZnVydGhlci4gSSBiZXR0ZXIgdmVyaWZ5IHdoZXJlIHRoaXMgYHRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoL2N0X2V4cGVjdGAgZmlsZSBtaWdodCBhY3R1YWxseSByZXNpZGUgd2l0aGluIHRoZSBrZXJuZWwgdHJlZS4gSSYjMzk7bGwgdXNlIHRoZSBgY29kZXNlYXJjaC1kaXItaW5kZXhgIGNvbW1hbmQgdG8gcHJvYmUgZm9yIGEgZGlyZWN0b3J5IG5hbWVkIGB0ZXN0c2AuIEFoLCBpdCByZXR1cm5lZCBgc2hlbGxgIGFzIGEgcmVzdWx0LiBPa2F5LCB0aGF0IGZlZWxzIG1vcmUgZmFtaWxpYXIsIGFuZCBub3cgSSYjMzk7bGwgZGl2ZSBpbnRvIHRoZSBjb250ZW50cyBvZiBgdGVzdHMvc2hlbGxgLiBUaGlzIHNob3VsZCByZXZlYWwgbW9yZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOTo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDt0ZXN0cy9zaGVsbCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBudWxsLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBbCiAgICAmIzM0O3Rlc3RjYXNlcyYjMzQ7CiAgXQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjUyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNTUKCQkJCQkJCW91dHB1dDogNzQKCQkJCQkJCXRob3VnaHRzOiAzOTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGlzIFBhdGNoKioKCk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgbGV0IG1lIGNvbmZpcm0gSSYjMzk7bSBsb29raW5nIGF0IHRoZSByaWdodCByZXBvc2l0b3J5LiAqQ2hlY2tzIHJvb3QgZGlyZWN0b3J5KiBZZXAsIGxvb2tzIGxpa2UgdGhlIHN0YW5kYXJkIGtlcm5lbCB0cmVlLiBBbmQgdGhhdCBgY29kZXNlYXJjaC1kaXItaW5kZXhgIGNvbmZpcm1zIHRoZSBzdGFuZGFyZCBsYXlvdXQuIE5vdywgaG9sZCBvbiwgc2VlaW5nIGEgYHRlc3RzYCBkaXJlY3RvcnkgcmlnaHQgYXQgdGhlIHJvb3QgaXMgYSBsaXR0bGUgdW51c3VhbC4gSXQmIzM5O3Mgbm90ICpuZWNlc3NhcmlseSogd3JvbmcgZm9yICp0aGlzKiB0cmVlLCBidXQgaXQgYWx3YXlzIG1ha2VzIG1lIHBhdXNlLiBSZWdhcmRsZXNzLCBsZXQmIzM5O3MgZm9jdXMgb24gdGhlIHBhdGNoIGl0c2VsZi4KClJpZ2h0LCB0aGUgcGF0Y2guIEl0IG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyAoYGN0X2V4cGVjdGApLiBOb3RoaW5nIGVsc2UuIEl0JiMzOTtzICpqdXN0KiBhIHRlc3Qgc2NyaXB0LiBObyBDIGNvZGUsIG5vIEtjb25maWcgbW9kaWZpY2F0aW9ucywgbm90aGluZyB0aGF0IHdvdWxkIGFjdHVhbGx5IGdldCBidWlsdCBpbnRvIHRoZSBrZXJuZWwuIFNvLCBmdW5jdGlvbmFsbHksIHRoZSBrZXJuZWwgY29kZSBpcyB1bmNoYW5nZWQuIFRoZXJlJiMzOTtzIG5vdGhpbmcgaGVyZSB0byBmdXp6LiBJJiMzOTttIGNvbmZpZGVudCBpbiBzYXlpbmcgYFdvcnRoRnV6emluZ2AgaXMgYGZhbHNlYCBoZXJlLgoKTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBkZXRhaWxzIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4gKkNoZWNrcyBwYXRjaCBjb250ZW50KiBPa2F5LCB0aGUgcGF0Y2ggYWRkcyBhIGJhc2ggc2NyaXB0IChgY3RfZXhwZWN0YCkgdGhhdCB1c2VzIGBpcCBuZXRuc2AsIGBzb2NhdGAsIGBuZnRgLCBhbmQgYGNvbm50cmFja2AuIFRoZXJlJiMzOTtzIGFsc28gYW4gZW1wdHkgYC5ub2R1bXBgIGZpbGUuIEJ1dCBpdCYjMzk7cyBhbGwgaW4gdGhlIGB0ZXN0c2AgZGlyZWN0b3J5LiBOb3RoaW5nIGluIHRoZSBjb3JlIGxvZ2ljLiBObyBrZXJuZWwgQyBjb2RlLCBubyBtb2RpZmljYXRpb25zIHRvIGtlcm5lbCBsb2dpYy4gVGhpcyBjb25maXJtcyBpdCDigJMgYFdvcnRoRnV6emluZ2AgaXMgKmRlZmluaXRlbHkqIGBmYWxzZWAuIFRoZSBwYXRjaCBpcyBwdXJlbHkgZm9yIHRlc3QgaW5mcmFzdHJ1Y3R1cmUuCgpUaGVyZWZvcmUsIHNpbmNlIHRoaXMgcGF0Y2ggaXMgbm90IG1vZGlmeWluZyBhbnkgZnVuY3Rpb25hbCBrZXJuZWwgY29kZSwgbXkgcmVhc29uaW5nIGlzIHRoYXQgdGhlIHBhdGNoIG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyBuZnRhYmxlcy9jb25udHJhY2sgZXhwZWN0YXRpb25zLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgS2NvbmZpZywgb3IgTWFrZWZpbGUuIFRoZXJlZm9yZSwgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwga2VybmVsIGNoYW5nZXMgdG8gZnV6ei4KCkkmIzM5O20gcmVhZHkgdG8gcHJvY2VlZCB3aXRoIGNhbGxpbmcgYHNldC1yZXN1bHRzYCB3aXRoIGBXb3J0aEZ1enppbmc6IGZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYSBzaGVsbCBzY3JpcHQgZm9yIHRlc3RpbmcgbmZ0YWJsZXMvY29ubnRyYWNrIGV4cGVjdGF0aW9ucy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUsIEtjb25maWcsIG9yIE1ha2VmaWxlLiBUaGVyZWZvcmUsIHRoZXJlIGFyZSBubyBmdW5jdGlvbmFsIGtlcm5lbCBjaGFuZ2VzIHRvIGZ1enouJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYSBzaGVsbCBzY3JpcHQgZm9yIHRlc3RpbmcgbmZ0YWJsZXMvY29ubnRyYWNrIGV4cGVjdGF0aW9ucy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUsIEtjb25maWcsIG9yIE1ha2VmaWxlLiBUaGVyZWZvcmUsIHRoZXJlIGFyZSBubyBmdW5jdGlvbmFsIGtlcm5lbCBjaGFuZ2VzIHRvIGZ1enouJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6NTE6NDguMzgxMDA3NDA4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ1Mzc2NDY4MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyBuZnRhYmxlcy9jb25udHJhY2sgZXhwZWN0YXRpb25zLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgS2NvbmZpZywgb3IgTWFrZWZpbGUuIFRoZXJlZm9yZSwgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwga2VybmVsIGNoYW5nZXMgdG8gZnV6ei5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjUxOjQ4LjM4MTAxMzU3OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjgxOTkwOTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNGM2MDFlZDRiMGJhMjAwMTZlMDUwYmFiNzM2MWJhMmI3MDQ4NWE1MlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzIDE5OjUxOjQ3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoL2N0X2V4cGVjdCBiL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoL2N0X2V4cGVjdFxcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZDk4MjRjYTNjZGFmOVxcbi0tLSAvZGV2L251bGxcXG4rKysgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3RcXG5AQCAtMCwwICsxLDI2MSBAQFxcbisjIS9iaW4vYmFzaFxcbitcXG4rIyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX3NvY2F0KVxcbitcXG4rLiAkTkZUX1RFU1RfTElCUkFSWV9GSUxFXFxuK1xcbitzZXQgLXhcXG4rXFxuK3JjPTFcXG4rXFxuK2NsZWFudXAoKVxcbit7XFxuK1xcdGZvciBpIGluICRSICRDICRTO2RvXFxuK1xcdFxcdGtpbGwgJChpcCBuZXRucyBwaWQgJGkpIDJcXHUwMDNlL2Rldi9udWxsXFxuK1xcdFxcdGlwIG5ldG5zIGRlbCAkaVxcbitcXHRkb25lXFxuK1xcbitcXHRleGl0ICRyY1xcbit9XFxuK3RyYXAgY2xlYW51cCBFWElUXFxuK1xcbitkdW1wX2V4cGVjdF90YWJsZSgpIHtcXG4rXFx0aXAgbmV0bnMgZXhlYyBcXFwiJFJcXFwiIGNvbm50cmFjayAtLWZhbWlseSBpcHY2IC1MIGV4cGVjdFxcbitcXHRpcCBuZXRucyBleGVjIFxcXCIkUlxcXCIgY29ubnRyYWNrIC0tZmFtaWx5IGlwdjQgLUwgZXhwZWN0XFxuK31cXG4rXFxuK2Fzc2VydF9mYWlsb3V0KClcXG4re1xcbitcXHRpcCBuZXRucyBleGVjICRSICRORlQgbGlzdCBydWxlc2V0XFxuK1xcdGlwIG5ldG5zIGV4ZWMgJFIgY29ubnRyYWNrIC1MXFxuK1xcdGR1bXBfZXhwZWN0X3RhYmxlXFxuK31cXG4rXFxuK2RvX2Nvbm5lY3QoKSB7XFxuK1xcdGxvY2FsIG5zPVxcXCIkMVxcXCJcXG4rXFx0bG9jYWwgYWRkcj1cXFwiJDJcXFwiXFxuK1xcdGxvY2FsIHBvcnQ9XFxcIiQzXFxcIlxcbitcXG4rXFx0aXAgbmV0bnMgZXhlYyBcXFwiJG5zXFxcIiBzb2NhdCAtdSBTVERJTiBUQ1AtQ09OTkVDVDokYWRkcjokcG9ydCxjb25uZWN0LXRpbWVvdXQ9MSBcXHUwMDNjIC9kZXYvbnVsbFxcbit9XFxuK1xcbitjb25uZWN0X2ZhaWwoKSB7XFxuK1xcdGxvY2FsIG5zPVxcXCIkMVxcXCJcXG4rXFx0bG9jYWwgYWRkcj1cXFwiJDJcXFwiXFxuK1xcdGxvY2FsIHBvcnQ9XFxcIiQzXFxcIlxcbitcXHRsb2NhbCBtc2c9XFxcIiQ0XFxcIlxcbitcXG4rXFx0ZG9fY29ubmVjdCBcXFwiJG5zXFxcIiBcXFwiJGFkZHJcXFwiIFxcXCIkcG9ydFxcXCJcXG4rXFx0YXNzZXJ0X2ZhaWwgXFxcImNvbm5lY3QgZnJvbSAkbnMgdG8gJGFkZHI6JHBvcnQgJG1zZ1xcXCJcXG4rfVxcbitcXG4rY29ubmVjdF9vaygpIHtcXG4rXFx0bG9jYWwgbnM9XFxcIiQxXFxcIlxcbitcXHRsb2NhbCBhZGRyPVxcXCIkMlxcXCJcXG4rXFx0bG9jYWwgcG9ydD1cXFwiJDNcXFwiXFxuK1xcdGxvY2FsIG1zZz1cXFwiJDRcXFwiXFxuK1xcbitcXHRkb19jb25uZWN0IFxcXCIkbnNcXFwiIFxcXCIkYWRkclxcXCIgXFxcIiRwb3J0XFxcIlxcbitcXHRhc3NlcnRfcGFzcyBcXFwiY29ubmVjdCBmcm9tICRucyB0byAkYWRkcjokcG9ydCAkbXNnXFxcIlxcbit9XFxuK1xcbit0ZXN0X2V4cGVjdCgpIHtcXG4rXFx0bG9jYWwgaXBfY3I9XFxcIiQxXFxcIlxcbitcXHRsb2NhbCBpcF9zcj1cXFwiJDJcXFwiXFxuK1xcdGxvY2FsIG1zZz1cXFwiJDNcXFwiXFxuK1xcbitcXHRlY2hvIGNoZWNrIHBvcnQgaXMgY2xvc2VkIGZyb20gb3V0c2lkZS5cXG4rXFx0Y29ubmVjdF9mYWlsIFxcXCIkU1xcXCIgXFxcIiRpcF9jclxcXCIgMTIzNFxcbitcXG4rXFx0ZWNobyBcXFwiVGVzdDogZXhwZWN0YXRpb24gdmlhIHJ1bGVzZXQkbXNnXFxcIlxcbitcXG4rXFx0ZWNobyBjb250cm9sIHBvcnQgc2hvdWxkIGJlIG9wZW4uXFxuK1xcdGNvbm5lY3Rfb2sgXFxcIiRDXFxcIiBcXFwiJGlwX3NyXFxcIiAyMjIyIFxcXCIkbXNnXFxcIlxcbitcXG4rXFx0ZHVtcF9leHBlY3RfdGFibGVcXG4rXFxuK1xcdGVjaG8gZXhwZWN0ZWQgcG9ydC4gU2hvdWxkIG5vdyBwYXNzLlxcbitcXHRjb25uZWN0X29rIFxcXCIkU1xcXCIgXFxcIiRpcF9jclxcXCIgMTIzNCBcXFwiJG1zZ1xcXCJcXG4rXFxuK1xcdGVjaG8gb25lIGV4cGVjdGF0aW9uIG1heCwgZXhwZWN0IGZhaWwuXFxuK1xcdGNvbm5lY3RfZmFpbCBcXFwiJFNcXFwiIFxcXCIkaXBfY3JcXFwiIDEyMzQgXFxcIiRtc2dcXFwiXFxuK31cXG4rXFxuK3Rlc3RfdGltZW91dCgpIHtcXG4rXFx0ZWNobyBcXFwiVGVzdDogZXhwZWN0YXRpb24gYXV0by10aW1lb3V0XFxcIlxcbitcXHQjIGNvbnRyb2wgcG9ydCAtIHRoaXMgc2hvdWxkIGJlIG9wZW4uXFxuK1xcdGNvbm5lY3Rfb2sgXFxcIiRDXFxcIiBcXFwiJGlwNF9zclxcXCIgMjIyMlxcbitcXHRjb25uZWN0X29rIFxcXCIkQ1xcXCIgXFxcIlskaXA2X3NyXVxcXCIgMjIyMlxcbitcXG4rXFx0ZHVtcF9leHBlY3RfdGFibGVcXG4rXFxuK1xcdCMgdGltZW91dC4gV2UgJ2J1bmRsZScgaXB2NCBhbmQgaXB2NiB0ZXN0IGhlcmUuXFxuK1xcdHNsZWVwIDZcXG4rXFxuK1xcdGR1bXBfZXhwZWN0X3RhYmxlXFxuK1xcbitcXHRlY2hvIFxcXCJleHBlY3QgZmFpbHVyZXNcXFwiXFxuK1xcdGNvbm5lY3RfZmFpbCBcXFwiJFNcXFwiIFxcXCIkaXA0X2NyXFxcIiAxMjM0XFxuK1xcdGNvbm5lY3RfZmFpbCBcXFwiJFNcXFwiIFxcXCJbJGlwNl9jcl1cXFwiIDEyMzRcXG4rfVxcbitcXG4rcm5kPSQobWt0ZW1wIC11IFhYWFhYWFhYKVxcbitSPVxcXCJucy1yb3V0ZXItJHJuZFxcXCJcXG4rQz1cXFwibnMtY2xpZW50LSRybmRcXFwiXFxuK1M9XFxcIm5zLXNlcnZlci0kcm5kXFxcIlxcbitcXG4raXA2X3NyPWRlYWQ6ZDg6ZmY6MjI6OjFcXG4raXA2X2NyPWRlYWQ6ZDg6ZmY6MjE6OjJcXG4raXA2X3JzPWRlYWQ6ZDg6ZmY6MjI6OmZmZmVcXG4raXA2X3JjPWRlYWQ6ZDg6ZmY6MjE6OmZmZmVcXG4rXFxuK2lwNF9zcj0xMC4xLjIyLjFcXG4raXA0X2NyPTEwLjEuMjEuMlxcbitpcDRfcnM9MTAuMS4yMi45OVxcbitpcDRfcmM9MTAuMS4yMS45OVxcbitcXG4rc2V0IC1lXFxuK2lwIG5ldG5zIGFkZCAkUlxcbitpcCBuZXRucyBhZGQgJFNcXG4raXAgbmV0bnMgYWRkICRDXFxuK2lwIC1uZXQgJFMgbGluayBzZXQgbG8gdXBcXG4raXAgLW5ldCAkUiBsaW5rIHNldCBsbyB1cFxcbitpcCAtbmV0ICRDIGxpbmsgc2V0IGxvIHVwXFxuK2lwIG5ldG5zIGV4ZWMgJFIgc3lzY3RsIC13cSBuZXQuaXB2NC5pcF9mb3J3YXJkPTFcXG4raXAgbmV0bnMgZXhlYyAkUiBzeXNjdGwgLXdxIG5ldC5pcHY2LmNvbmYuYWxsLmZvcndhcmRpbmc9MVxcbitcXG4raXAgbGluayBhZGQgc19yIG5ldG5zICRTIHR5cGUgdmV0aCBwZWVyIG5hbWUgcl9zIG5ldG5zICRSXFxuK2lwIGxpbmsgYWRkIGNfciBuZXRucyAkQyB0eXBlIHZldGggcGVlciBuYW1lIHJfYyBuZXRucyAkUlxcbitpcCAtbmV0ICRTIGxpbmsgc2V0IHNfciB1cFxcbitpcCAtbmV0ICRSIGxpbmsgc2V0IHJfcyB1cFxcbitpcCAtbmV0ICRSIGxpbmsgc2V0IHJfYyB1cFxcbitpcCAtbmV0ICRDIGxpbmsgc2V0IGNfciB1cFxcbitcXG4raXAgLW5ldCAkUyBhZGRyIGFkZCAke2lwNl9zcn0vNjQgZGV2IHNfciBub2RhZFxcbitpcCAtbmV0ICRDIGFkZHIgYWRkICR7aXA2X2NyfS82NCBkZXYgY19yIG5vZGFkXFxuK2lwIC1uZXQgJFIgYWRkciBhZGQgJHtpcDZfcnN9LzY0IGRldiByX3Mgbm9kYWRcXG4raXAgLW5ldCAkUiBhZGRyIGFkZCAke2lwNl9yY30vNjQgZGV2IHJfYyBub2RhZFxcbitpcCAtbmV0ICRDIHJvdXRlIGFkZCAke2lwNl9yc30vNjQgdmlhICR7aXA2X3JjfSBkZXYgY19yXFxuK2lwIC1uZXQgJFMgcm91dGUgYWRkICR7aXA2X3JjfS82NCB2aWEgJHtpcDZfcnN9IGRldiBzX3JcXG4rYXNzZXJ0X3Bhc3MgXFxcInRvcG8gaW5pdGlhbGl6YXRpb25cXFwiXFxuK1xcbitpcCAtbmV0ICRTIGFkZHIgYWRkICR7aXA0X3NyfS8yNCBkZXYgc19yXFxuK2lwIC1uZXQgJEMgYWRkciBhZGQgJHtpcDRfY3J9LzI0IGRldiBjX3JcXG4raXAgLW5ldCAkUiBhZGRyIGFkZCAke2lwNF9yc30vMjQgZGV2IHJfc1xcbitpcCAtbmV0ICRSIGFkZHIgYWRkICR7aXA0X3JjfS8yNCBkZXYgcl9jXFxuK1xcbitpcCAtbmV0ICRDIHJvdXRlIGFkZCAxMC4xLjIyLjAvMjQgdmlhICR7aXA0X3JjfSBkZXYgY19yXFxuK2lwIC1uZXQgJFMgcm91dGUgYWRkIDEwLjEuMjEuMC8yNCB2aWEgJHtpcDRfcnN9IGRldiBzX3JcXG4rXFxuK2lwIG5ldG5zIGV4ZWMgXFxcIiRDXFxcIiBwaW5nIC1xIC1jIDEgXFxcIiRpcDRfc3JcXFwiXFxuK2lwIG5ldG5zIGV4ZWMgXFxcIiRDXFxcIiBwaW5nIC1xIC1jIDEgXFxcIiRpcDZfc3JcXFwiXFxuK1xcbit0aW1lb3V0IDIwIGlwIG5ldG5zIGV4ZWMgXFxcIiRTXFxcIiBzb2NhdCBUQ1A2LUxJU1RFTjoyMjIyLGlwdjZvbmx5PTEsZm9yayxyZXVzZWFkZHIgUElQRSBcXHUwMDI2XFxuK3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyBcXFwiJFNcXFwiIHNvY2F0IFRDUDQtTElTVEVOOjIyMjIsZm9yayxyZXVzZWFkZHIgUElQRSBcXHUwMDI2XFxuK3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyBcXFwiJENcXFwiIHNvY2F0IFRDUDYtTElTVEVOOjEyMzQsaXB2Nm9ubHk9MSxmb3JrLHJldXNlYWRkciBQSVBFIFxcdTAwMjZcXG4rdGltZW91dCAyMCBpcCBuZXRucyBleGVjIFxcXCIkQ1xcXCIgc29jYXQgVENQNC1MSVNURU46MTIzNCxmb3JrLHJldXNlYWRkciBQSVBFIFxcdTAwMjZcXG4rd2FpdF9sb2NhbF9wb3J0X2xpc3RlbiAkUyAyMjIyIHRjcFxcbit3YWl0X2xvY2FsX3BvcnRfbGlzdGVuICRDIDEyMzQgdGNwXFxuK1xcbitpcCBuZXRucyBleGVjICRSICRORlQgLWYgLSBcXHUwMDNjXFx1MDAzYy1FT0ZcXG4rZmx1c2ggcnVsZXNldFxcbit0YWJsZSBpbmV0IHQge1xcbitcXHRjdCBleHBlY3RhdGlvbiBjdGV4cGVjdDQge1xcbitcXHRcXHRwcm90b2NvbCB0Y3BcXG4rXFx0XFx0ZHBvcnQgMTIzNFxcbitcXHRcXHR0aW1lb3V0IDVzXFxuK1xcdFxcdHNpemUgMVxcbitcXHRcXHRsM3Byb3RvIGlwXFxuK1xcdH1cXG4rXFxuK1xcdGN0IGV4cGVjdGF0aW9uIGN0ZXhwZWN0NiB7XFxuK1xcdFxcdHByb3RvY29sIHRjcFxcbitcXHRcXHRkcG9ydCAxMjM0XFxuK1xcdFxcdHRpbWVvdXQgNXNcXG4rXFx0XFx0c2l6ZSAxXFxuK1xcdFxcdGwzcHJvdG8gaXA2XFxuK1xcdH1cXG4rXFxuK1xcdGNoYWluIGMge1xcbitcXHRcXHR0eXBlIGZpbHRlciBob29rIGZvcndhcmQgcHJpb3JpdHkgZmlsdGVyOyBwb2xpY3kgZHJvcDtcXG4rXFx0XFx0Y3Qgc3RhdGUgZXN0YWJsaXNoZWQgYWNjZXB0XFxuK1xcdFxcdG1ldGEgbDRwcm90byB0Y3AgY3Qgc3RhdGUgcmVsYXRlZCBjb3VudGVyIGFjY2VwdFxcbitcXHRcXHRtZXRhIGlpZm5hbWUgcl9jIGN0IHN0YXRlIG5ldyBqdW1wIHtcXG4rXFx0XFx0XFx0dGNwIGRwb3J0IDIyMjIgY291bnRlciBjdCBleHBlY3RhdGlvbiBzZXQgbWV0YSBuZnByb3RvIG1hcCB7IGlwdjQgOiBjdGV4cGVjdDQsIGlwdjYgOiBjdGV4cGVjdDYgfSBjb3VudGVyIGFjY2VwdFxcbitcXHRcXHRcXHRjb3VudGVyIGFjY2VwdFxcbitcXHRcXHR9XFxuK1xcdFxcdG1ldGEgbDRwcm90byB0Y3AgY291bnRlciByZWplY3Qgd2l0aCB0Y3AgcmVzZXRcXG4rXFx0XFx0bWV0YSBsNHByb3RvIHsgaWNtcCwgaWNtcHY2IH0gYWNjZXB0XFxuK1xcdH1cXG4rfVxcbitFT0ZcXG4rXFxuK2lwIG5ldG5zIGV4ZWMgXFxcIiRDXFxcIiBwaW5nIC1xIC1jIDEgXFxcIiRpcDRfc3JcXFwiXFxuK2lwIG5ldG5zIGV4ZWMgXFxcIiRDXFxcIiBwaW5nIC1xIC1jIDEgXFxcIiRpcDZfc3JcXFwiXFxuK1xcbitzZXQgK2VcXG4rZWNobyBjaGVjayBwb3J0IGlzIGNsb3NlZCBmcm9tIG91dHNpZGUuXFxuK2Nvbm5lY3RfZmFpbCBcXFwiJFNcXFwiIFxcXCIkaXA0X2NyXFxcIiAxMjM0XFxuK2Nvbm5lY3RfZmFpbCBcXFwiJFNcXFwiIFxcXCJbJGlwNl9jcl1cXFwiIDEyMzRcXG4rXFxuK3Rlc3RfZXhwZWN0IFxcXCIkaXA0X2NyXFxcIiBcXFwiJGlwNF9zclxcXCJcXHRcXFwiXFxcIlxcbit0ZXN0X2V4cGVjdCBcXFwiWyRpcDZfY3JdXFxcIiBcXFwiWyRpcDZfc3JdXFxcIiBcXFwiXFxcIlxcbitcXG4raXAgbmV0bnMgZXhlYyAkUiBjb25udHJhY2sgLUZcXG4rdGVzdF90aW1lb3V0XFxuK1xcbitzZXQgLWVcXG4raXAgbmV0bnMgZXhlYyAkUiAkTkZUIC1mIC0gXFx1MDAzY1xcdTAwM2MtRU9GXFxuK2ZsdXNoIHJ1bGVzZXRcXG4rdGFibGUgaW5ldCB0IHtcXG4rXFx0Y3QgZXhwZWN0YXRpb24gY3RleHBlY3Q0IHtcXG4rXFx0XFx0cHJvdG9jb2wgdGNwXFxuK1xcdFxcdGRwb3J0IDEyMzRcXG4rXFx0XFx0dGltZW91dCA1c1xcbitcXHRcXHRzaXplIDFcXG4rXFx0XFx0bDNwcm90byBpcFxcbitcXHR9XFxuK1xcbitcXHRjdCBleHBlY3RhdGlvbiBjdGV4cGVjdDYge1xcbitcXHRcXHRwcm90b2NvbCB0Y3BcXG4rXFx0XFx0ZHBvcnQgMTIzNFxcbitcXHRcXHR0aW1lb3V0IDVzXFxuK1xcdFxcdHNpemUgMVxcbitcXHRcXHRsM3Byb3RvIGlwNlxcbitcXHR9XFxuK1xcdGNoYWluIGMge1xcbitcXHRcXHR0eXBlIGZpbHRlciBob29rIGZvcndhcmQgcHJpb3JpdHkgZmlsdGVyOyBwb2xpY3kgZHJvcDtcXG4rXFx0XFx0Y3Qgc3RhdGUgZXN0YWJsaXNoZWQgYWNjZXB0XFxuK1xcdFxcdG1ldGEgbDRwcm90byB0Y3AgY3Qgc3RhdGUgcmVsYXRlZCBjb3VudGVyIGFjY2VwdFxcbitcXHRcXHRtZXRhIGlpZm5hbWUgcl9jIGN0IHN0YXRlIG5ldyBhY2NlcHRcXG4rXFx0XFx0bWV0YSBsNHByb3RvIHRjcCBjb3VudGVyIHJlamVjdCB3aXRoIHRjcCByZXNldFxcbitcXHRcXHRtZXRhIGw0cHJvdG8geyBpY21wLCBpY21wdjYgfSBhY2NlcHRcXG4rXFx0fVxcbitcXG4rXFx0Y2hhaW4gbWFzcSB7XFxuK1xcdFxcdHR5cGUgbmF0IGhvb2sgcG9zdHJvdXRpbmcgcHJpb3JpdHkgc3JjbmF0OyBwb2xpY3kgYWNjZXB0O1xcbitcXHRcXHRtZXRhIG9pZm5hbWUgXFxcInJfc1xcXCIgY291bnRlciBtYXNxdWVyYWRlXFxuK1xcdH1cXG4rXFxuK1xcdGNoYWluIGUge1xcbitcXHRcXHR0eXBlIGZpbHRlciBob29rIHBvc3Ryb3V0aW5nIHByaW9yaXR5IDUwMDAwIDsgcG9saWN5IGFjY2VwdDtcXG4rXFx0XFx0bWV0YSBpaWZuYW1lIHJfYyBjdCBzdGF0ZSBuZXcganVtcCB7XFxuK1xcdFxcdFxcdHRjcCBkcG9ydCAyMjIyIGNvdW50ZXIgY3QgZXhwZWN0YXRpb24gc2V0IG1ldGEgbmZwcm90byBtYXAgeyBpcHY0IDogY3RleHBlY3Q0LCBpcHY2IDogY3RleHBlY3Q2IH0gY291bnRlciBhY2NlcHRcXG4rXFx0XFx0XFx0Y291bnRlciBhY2NlcHRcXG4rXFx0XFx0fVxcbitcXHR9XFxuK31cXG4rRU9GXFxuK1xcbitpcCBuZXRucyBleGVjICRSIGNvbm50cmFjayAtRlxcbitlY2hvIFxcXCJUZXN0OiBjb25udHJhY2sgZXhwZWN0YXRpb24gd2l0aCBtYXNxdWVyYWRlXFxcIlxcbitzZXQgK2VcXG4rXFxuKyMgU2tpcCBoZXJlLCB0aGlzIGlzIGEga2VybmVsIGJ1ZyAvIG1pc3NpbmcgZmVhdHVyZSB3ZSBjYW4ndFxcbisjIHRlc3QgZm9yLlxcbityYz03N1xcbit0ZXN0X2V4cGVjdCBcXFwiJGlwNF9yc1xcXCIgXFxcIiRpcDRfc3JcXFwiIFxcXCIgd2l0aCBtYXNxdWVyYWRlXFxcIlxcbit0ZXN0X2V4cGVjdCBcXFwiWyRpcDZfcnNdXFxcIiBcXFwiWyRpcDZfc3JdXFxcIiBcXFwiIHdpdGggbWFzcXVlcmFkZVxcXCJcXG4rXFxuK2lwIG5ldG5zIGV4ZWMgXFxcIiRSXFxcIiBjb25udHJhY2sgLUxcXG4rcmM9MFxcbmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9kdW1wcy9jdF9leHBlY3Qubm9kdW1wIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvZHVtcHMvY3RfZXhwZWN0Lm5vZHVtcFxcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOTo1MTo0OC42NjM2NTI3ODNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyNDI1NDk5MDE1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgc2hlbGwgc2NyaXB0IGZvciB0ZXN0aW5nIG5mdGFibGVzL2Nvbm50cmFjayBleHBlY3RhdGlvbnMuIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlLCBLY29uZmlnLCBvciBNYWtlZmlsZS4gVGhlcmVmb3JlLCB0aGVyZSBhcmUgbm8gZnVuY3Rpb25hbCBrZXJuZWwgY2hhbmdlcyB0byBmdXp6LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNGM2MDFlZDRiMGJhMjAwMTZlMDUwYmFiNzM2MWJhMmI3MDQ4NWE1MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMgMTk6NTE6NDcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3QgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3Rcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5kOTgyNGNhM2NkYWY5XG4tLS0gL2Rldi9udWxsXG4rKysgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3RcbkBAIC0wLDAgKzEsMjYxIEBAXG4rIyEvYmluL2Jhc2hcbitcbisjIE5GVF9URVNUX1JFUVVJUkVTKE5GVF9URVNUX0hBVkVfc29jYXQpXG4rXG4rLiAkTkZUX1RFU1RfTElCUkFSWV9GSUxFXG4rXG4rc2V0IC14XG4rXG4rcmM9MVxuK1xuK2NsZWFudXAoKVxuK3tcbitcdGZvciBpIGluICRSICRDICRTO2RvXG4rXHRcdGtpbGwgJChpcCBuZXRucyBwaWQgJGkpIDJcdTAwM2UvZGV2L251bGxcbitcdFx0aXAgbmV0bnMgZGVsICRpXG4rXHRkb25lXG4rXG4rXHRleGl0ICRyY1xuK31cbit0cmFwIGNsZWFudXAgRVhJVFxuK1xuK2R1bXBfZXhwZWN0X3RhYmxlKCkge1xuK1x0aXAgbmV0bnMgZXhlYyBcIiRSXCIgY29ubnRyYWNrIC0tZmFtaWx5IGlwdjYgLUwgZXhwZWN0XG4rXHRpcCBuZXRucyBleGVjIFwiJFJcIiBjb25udHJhY2sgLS1mYW1pbHkgaXB2NCAtTCBleHBlY3Rcbit9XG4rXG4rYXNzZXJ0X2ZhaWxvdXQoKVxuK3tcbitcdGlwIG5ldG5zIGV4ZWMgJFIgJE5GVCBsaXN0IHJ1bGVzZXRcbitcdGlwIG5ldG5zIGV4ZWMgJFIgY29ubnRyYWNrIC1MXG4rXHRkdW1wX2V4cGVjdF90YWJsZVxuK31cbitcbitkb19jb25uZWN0KCkge1xuK1x0bG9jYWwgbnM9XCIkMVwiXG4rXHRsb2NhbCBhZGRyPVwiJDJcIlxuK1x0bG9jYWwgcG9ydD1cIiQzXCJcbitcbitcdGlwIG5ldG5zIGV4ZWMgXCIkbnNcIiBzb2NhdCAtdSBTVERJTiBUQ1AtQ09OTkVDVDokYWRkcjokcG9ydCxjb25uZWN0LXRpbWVvdXQ9MSBcdTAwM2MgL2Rldi9udWxsXG4rfVxuK1xuK2Nvbm5lY3RfZmFpbCgpIHtcbitcdGxvY2FsIG5zPVwiJDFcIlxuK1x0bG9jYWwgYWRkcj1cIiQyXCJcbitcdGxvY2FsIHBvcnQ9XCIkM1wiXG4rXHRsb2NhbCBtc2c9XCIkNFwiXG4rXG4rXHRkb19jb25uZWN0IFwiJG5zXCIgXCIkYWRkclwiIFwiJHBvcnRcIlxuK1x0YXNzZXJ0X2ZhaWwgXCJjb25uZWN0IGZyb20gJG5zIHRvICRhZGRyOiRwb3J0ICRtc2dcIlxuK31cbitcbitjb25uZWN0X29rKCkge1xuK1x0bG9jYWwgbnM9XCIkMVwiXG4rXHRsb2NhbCBhZGRyPVwiJDJcIlxuK1x0bG9jYWwgcG9ydD1cIiQzXCJcbitcdGxvY2FsIG1zZz1cIiQ0XCJcbitcbitcdGRvX2Nvbm5lY3QgXCIkbnNcIiBcIiRhZGRyXCIgXCIkcG9ydFwiXG4rXHRhc3NlcnRfcGFzcyBcImNvbm5lY3QgZnJvbSAkbnMgdG8gJGFkZHI6JHBvcnQgJG1zZ1wiXG4rfVxuK1xuK3Rlc3RfZXhwZWN0KCkge1xuK1x0bG9jYWwgaXBfY3I9XCIkMVwiXG4rXHRsb2NhbCBpcF9zcj1cIiQyXCJcbitcdGxvY2FsIG1zZz1cIiQzXCJcbitcbitcdGVjaG8gY2hlY2sgcG9ydCBpcyBjbG9zZWQgZnJvbSBvdXRzaWRlLlxuK1x0Y29ubmVjdF9mYWlsIFwiJFNcIiBcIiRpcF9jclwiIDEyMzRcbitcbitcdGVjaG8gXCJUZXN0OiBleHBlY3RhdGlvbiB2aWEgcnVsZXNldCRtc2dcIlxuK1xuK1x0ZWNobyBjb250cm9sIHBvcnQgc2hvdWxkIGJlIG9wZW4uXG4rXHRjb25uZWN0X29rIFwiJENcIiBcIiRpcF9zclwiIDIyMjIgXCIkbXNnXCJcbitcbitcdGR1bXBfZXhwZWN0X3RhYmxlXG4rXG4rXHRlY2hvIGV4cGVjdGVkIHBvcnQuIFNob3VsZCBub3cgcGFzcy5cbitcdGNvbm5lY3Rfb2sgXCIkU1wiIFwiJGlwX2NyXCIgMTIzNCBcIiRtc2dcIlxuK1xuK1x0ZWNobyBvbmUgZXhwZWN0YXRpb24gbWF4LCBleHBlY3QgZmFpbC5cbitcdGNvbm5lY3RfZmFpbCBcIiRTXCIgXCIkaXBfY3JcIiAxMjM0IFwiJG1zZ1wiXG4rfVxuK1xuK3Rlc3RfdGltZW91dCgpIHtcbitcdGVjaG8gXCJUZXN0OiBleHBlY3RhdGlvbiBhdXRvLXRpbWVvdXRcIlxuK1x0IyBjb250cm9sIHBvcnQgLSB0aGlzIHNob3VsZCBiZSBvcGVuLlxuK1x0Y29ubmVjdF9vayBcIiRDXCIgXCIkaXA0X3NyXCIgMjIyMlxuK1x0Y29ubmVjdF9vayBcIiRDXCIgXCJbJGlwNl9zcl1cIiAyMjIyXG4rXG4rXHRkdW1wX2V4cGVjdF90YWJsZVxuK1xuK1x0IyB0aW1lb3V0LiBXZSAnYnVuZGxlJyBpcHY0IGFuZCBpcHY2IHRlc3QgaGVyZS5cbitcdHNsZWVwIDZcbitcbitcdGR1bXBfZXhwZWN0X3RhYmxlXG4rXG4rXHRlY2hvIFwiZXhwZWN0IGZhaWx1cmVzXCJcbitcdGNvbm5lY3RfZmFpbCBcIiRTXCIgXCIkaXA0X2NyXCIgMTIzNFxuK1x0Y29ubmVjdF9mYWlsIFwiJFNcIiBcIlskaXA2X2NyXVwiIDEyMzRcbit9XG4rXG4rcm5kPSQobWt0ZW1wIC11IFhYWFhYWFhYKVxuK1I9XCJucy1yb3V0ZXItJHJuZFwiXG4rQz1cIm5zLWNsaWVudC0kcm5kXCJcbitTPVwibnMtc2VydmVyLSRybmRcIlxuK1xuK2lwNl9zcj1kZWFkOmQ4OmZmOjIyOjoxXG4raXA2X2NyPWRlYWQ6ZDg6ZmY6MjE6OjJcbitpcDZfcnM9ZGVhZDpkODpmZjoyMjo6ZmZmZVxuK2lwNl9yYz1kZWFkOmQ4OmZmOjIxOjpmZmZlXG4rXG4raXA0X3NyPTEwLjEuMjIuMVxuK2lwNF9jcj0xMC4xLjIxLjJcbitpcDRfcnM9MTAuMS4yMi45OVxuK2lwNF9yYz0xMC4xLjIxLjk5XG4rXG4rc2V0IC1lXG4raXAgbmV0bnMgYWRkICRSXG4raXAgbmV0bnMgYWRkICRTXG4raXAgbmV0bnMgYWRkICRDXG4raXAgLW5ldCAkUyBsaW5rIHNldCBsbyB1cFxuK2lwIC1uZXQgJFIgbGluayBzZXQgbG8gdXBcbitpcCAtbmV0ICRDIGxpbmsgc2V0IGxvIHVwXG4raXAgbmV0bnMgZXhlYyAkUiBzeXNjdGwgLXdxIG5ldC5pcHY0LmlwX2ZvcndhcmQ9MVxuK2lwIG5ldG5zIGV4ZWMgJFIgc3lzY3RsIC13cSBuZXQuaXB2Ni5jb25mLmFsbC5mb3J3YXJkaW5nPTFcbitcbitpcCBsaW5rIGFkZCBzX3IgbmV0bnMgJFMgdHlwZSB2ZXRoIHBlZXIgbmFtZSByX3MgbmV0bnMgJFJcbitpcCBsaW5rIGFkZCBjX3IgbmV0bnMgJEMgdHlwZSB2ZXRoIHBlZXIgbmFtZSByX2MgbmV0bnMgJFJcbitpcCAtbmV0ICRTIGxpbmsgc2V0IHNfciB1cFxuK2lwIC1uZXQgJFIgbGluayBzZXQgcl9zIHVwXG4raXAgLW5ldCAkUiBsaW5rIHNldCByX2MgdXBcbitpcCAtbmV0ICRDIGxpbmsgc2V0IGNfciB1cFxuK1xuK2lwIC1uZXQgJFMgYWRkciBhZGQgJHtpcDZfc3J9LzY0IGRldiBzX3Igbm9kYWRcbitpcCAtbmV0ICRDIGFkZHIgYWRkICR7aXA2X2NyfS82NCBkZXYgY19yIG5vZGFkXG4raXAgLW5ldCAkUiBhZGRyIGFkZCAke2lwNl9yc30vNjQgZGV2IHJfcyBub2RhZFxuK2lwIC1uZXQgJFIgYWRkciBhZGQgJHtpcDZfcmN9LzY0IGRldiByX2Mgbm9kYWRcbitpcCAtbmV0ICRDIHJvdXRlIGFkZCAke2lwNl9yc30vNjQgdmlhICR7aXA2X3JjfSBkZXYgY19yXG4raXAgLW5ldCAkUyByb3V0ZSBhZGQgJHtpcDZfcmN9LzY0IHZpYSAke2lwNl9yc30gZGV2IHNfclxuK2Fzc2VydF9wYXNzIFwidG9wbyBpbml0aWFsaXphdGlvblwiXG4rXG4raXAgLW5ldCAkUyBhZGRyIGFkZCAke2lwNF9zcn0vMjQgZGV2IHNfclxuK2lwIC1uZXQgJEMgYWRkciBhZGQgJHtpcDRfY3J9LzI0IGRldiBjX3JcbitpcCAtbmV0ICRSIGFkZHIgYWRkICR7aXA0X3JzfS8yNCBkZXYgcl9zXG4raXAgLW5ldCAkUiBhZGRyIGFkZCAke2lwNF9yY30vMjQgZGV2IHJfY1xuK1xuK2lwIC1uZXQgJEMgcm91dGUgYWRkIDEwLjEuMjIuMC8yNCB2aWEgJHtpcDRfcmN9IGRldiBjX3JcbitpcCAtbmV0ICRTIHJvdXRlIGFkZCAxMC4xLjIxLjAvMjQgdmlhICR7aXA0X3JzfSBkZXYgc19yXG4rXG4raXAgbmV0bnMgZXhlYyBcIiRDXCIgcGluZyAtcSAtYyAxIFwiJGlwNF9zclwiXG4raXAgbmV0bnMgZXhlYyBcIiRDXCIgcGluZyAtcSAtYyAxIFwiJGlwNl9zclwiXG4rXG4rdGltZW91dCAyMCBpcCBuZXRucyBleGVjIFwiJFNcIiBzb2NhdCBUQ1A2LUxJU1RFTjoyMjIyLGlwdjZvbmx5PTEsZm9yayxyZXVzZWFkZHIgUElQRSBcdTAwMjZcbit0aW1lb3V0IDIwIGlwIG5ldG5zIGV4ZWMgXCIkU1wiIHNvY2F0IFRDUDQtTElTVEVOOjIyMjIsZm9yayxyZXVzZWFkZHIgUElQRSBcdTAwMjZcbit0aW1lb3V0IDIwIGlwIG5ldG5zIGV4ZWMgXCIkQ1wiIHNvY2F0IFRDUDYtTElTVEVOOjEyMzQsaXB2Nm9ubHk9MSxmb3JrLHJldXNlYWRkciBQSVBFIFx1MDAyNlxuK3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyBcIiRDXCIgc29jYXQgVENQNC1MSVNURU46MTIzNCxmb3JrLHJldXNlYWRkciBQSVBFIFx1MDAyNlxuK3dhaXRfbG9jYWxfcG9ydF9saXN0ZW4gJFMgMjIyMiB0Y3Bcbit3YWl0X2xvY2FsX3BvcnRfbGlzdGVuICRDIDEyMzQgdGNwXG4rXG4raXAgbmV0bnMgZXhlYyAkUiAkTkZUIC1mIC0gXHUwMDNjXHUwMDNjLUVPRlxuK2ZsdXNoIHJ1bGVzZXRcbit0YWJsZSBpbmV0IHQge1xuK1x0Y3QgZXhwZWN0YXRpb24gY3RleHBlY3Q0IHtcbitcdFx0cHJvdG9jb2wgdGNwXG4rXHRcdGRwb3J0IDEyMzRcbitcdFx0dGltZW91dCA1c1xuK1x0XHRzaXplIDFcbitcdFx0bDNwcm90byBpcFxuK1x0fVxuK1xuK1x0Y3QgZXhwZWN0YXRpb24gY3RleHBlY3Q2IHtcbitcdFx0cHJvdG9jb2wgdGNwXG4rXHRcdGRwb3J0IDEyMzRcbitcdFx0dGltZW91dCA1c1xuK1x0XHRzaXplIDFcbitcdFx0bDNwcm90byBpcDZcbitcdH1cbitcbitcdGNoYWluIGMge1xuK1x0XHR0eXBlIGZpbHRlciBob29rIGZvcndhcmQgcHJpb3JpdHkgZmlsdGVyOyBwb2xpY3kgZHJvcDtcbitcdFx0Y3Qgc3RhdGUgZXN0YWJsaXNoZWQgYWNjZXB0XG4rXHRcdG1ldGEgbDRwcm90byB0Y3AgY3Qgc3RhdGUgcmVsYXRlZCBjb3VudGVyIGFjY2VwdFxuK1x0XHRtZXRhIGlpZm5hbWUgcl9jIGN0IHN0YXRlIG5ldyBqdW1wIHtcbitcdFx0XHR0Y3AgZHBvcnQgMjIyMiBjb3VudGVyIGN0IGV4cGVjdGF0aW9uIHNldCBtZXRhIG5mcHJvdG8gbWFwIHsgaXB2NCA6IGN0ZXhwZWN0NCwgaXB2NiA6IGN0ZXhwZWN0NiB9IGNvdW50ZXIgYWNjZXB0XG4rXHRcdFx0Y291bnRlciBhY2NlcHRcbitcdFx0fVxuK1x0XHRtZXRhIGw0cHJvdG8gdGNwIGNvdW50ZXIgcmVqZWN0IHdpdGggdGNwIHJlc2V0XG4rXHRcdG1ldGEgbDRwcm90byB7IGljbXAsIGljbXB2NiB9IGFjY2VwdFxuK1x0fVxuK31cbitFT0ZcbitcbitpcCBuZXRucyBleGVjIFwiJENcIiBwaW5nIC1xIC1jIDEgXCIkaXA0X3NyXCJcbitpcCBuZXRucyBleGVjIFwiJENcIiBwaW5nIC1xIC1jIDEgXCIkaXA2X3NyXCJcbitcbitzZXQgK2VcbitlY2hvIGNoZWNrIHBvcnQgaXMgY2xvc2VkIGZyb20gb3V0c2lkZS5cbitjb25uZWN0X2ZhaWwgXCIkU1wiIFwiJGlwNF9jclwiIDEyMzRcbitjb25uZWN0X2ZhaWwgXCIkU1wiIFwiWyRpcDZfY3JdXCIgMTIzNFxuK1xuK3Rlc3RfZXhwZWN0IFwiJGlwNF9jclwiIFwiJGlwNF9zclwiXHRcIlwiXG4rdGVzdF9leHBlY3QgXCJbJGlwNl9jcl1cIiBcIlskaXA2X3NyXVwiIFwiXCJcbitcbitpcCBuZXRucyBleGVjICRSIGNvbm50cmFjayAtRlxuK3Rlc3RfdGltZW91dFxuK1xuK3NldCAtZVxuK2lwIG5ldG5zIGV4ZWMgJFIgJE5GVCAtZiAtIFx1MDAzY1x1MDAzYy1FT0ZcbitmbHVzaCBydWxlc2V0XG4rdGFibGUgaW5ldCB0IHtcbitcdGN0IGV4cGVjdGF0aW9uIGN0ZXhwZWN0NCB7XG4rXHRcdHByb3RvY29sIHRjcFxuK1x0XHRkcG9ydCAxMjM0XG4rXHRcdHRpbWVvdXQgNXNcbitcdFx0c2l6ZSAxXG4rXHRcdGwzcHJvdG8gaXBcbitcdH1cbitcbitcdGN0IGV4cGVjdGF0aW9uIGN0ZXhwZWN0NiB7XG4rXHRcdHByb3RvY29sIHRjcFxuK1x0XHRkcG9ydCAxMjM0XG4rXHRcdHRpbWVvdXQgNXNcbitcdFx0c2l6ZSAxXG4rXHRcdGwzcHJvdG8gaXA2XG4rXHR9XG4rXHRjaGFpbiBjIHtcbitcdFx0dHlwZSBmaWx0ZXIgaG9vayBmb3J3YXJkIHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGRyb3A7XG4rXHRcdGN0IHN0YXRlIGVzdGFibGlzaGVkIGFjY2VwdFxuK1x0XHRtZXRhIGw0cHJvdG8gdGNwIGN0IHN0YXRlIHJlbGF0ZWQgY291bnRlciBhY2NlcHRcbitcdFx0bWV0YSBpaWZuYW1lIHJfYyBjdCBzdGF0ZSBuZXcgYWNjZXB0XG4rXHRcdG1ldGEgbDRwcm90byB0Y3AgY291bnRlciByZWplY3Qgd2l0aCB0Y3AgcmVzZXRcbitcdFx0bWV0YSBsNHByb3RvIHsgaWNtcCwgaWNtcHY2IH0gYWNjZXB0XG4rXHR9XG4rXG4rXHRjaGFpbiBtYXNxIHtcbitcdFx0dHlwZSBuYXQgaG9vayBwb3N0cm91dGluZyBwcmlvcml0eSBzcmNuYXQ7IHBvbGljeSBhY2NlcHQ7XG4rXHRcdG1ldGEgb2lmbmFtZSBcInJfc1wiIGNvdW50ZXIgbWFzcXVlcmFkZVxuK1x0fVxuK1xuK1x0Y2hhaW4gZSB7XG4rXHRcdHR5cGUgZmlsdGVyIGhvb2sgcG9zdHJvdXRpbmcgcHJpb3JpdHkgNTAwMDAgOyBwb2xpY3kgYWNjZXB0O1xuK1x0XHRtZXRhIGlpZm5hbWUgcl9jIGN0IHN0YXRlIG5ldyBqdW1wIHtcbitcdFx0XHR0Y3AgZHBvcnQgMjIyMiBjb3VudGVyIGN0IGV4cGVjdGF0aW9uIHNldCBtZXRhIG5mcHJvdG8gbWFwIHsgaXB2NCA6IGN0ZXhwZWN0NCwgaXB2NiA6IGN0ZXhwZWN0NiB9IGNvdW50ZXIgYWNjZXB0XG4rXHRcdFx0Y291bnRlciBhY2NlcHRcbitcdFx0fVxuK1x0fVxuK31cbitFT0ZcbitcbitpcCBuZXRucyBleGVjICRSIGNvbm50cmFjayAtRlxuK2VjaG8gXCJUZXN0OiBjb25udHJhY2sgZXhwZWN0YXRpb24gd2l0aCBtYXNxdWVyYWRlXCJcbitzZXQgK2VcbitcbisjIFNraXAgaGVyZSwgdGhpcyBpcyBhIGtlcm5lbCBidWcgLyBtaXNzaW5nIGZlYXR1cmUgd2UgY2FuJ3RcbisjIHRlc3QgZm9yLlxuK3JjPTc3XG4rdGVzdF9leHBlY3QgXCIkaXA0X3JzXCIgXCIkaXA0X3NyXCIgXCIgd2l0aCBtYXNxdWVyYWRlXCJcbit0ZXN0X2V4cGVjdCBcIlskaXA2X3JzXVwiIFwiWyRpcDZfc3JdXCIgXCIgd2l0aCBtYXNxdWVyYWRlXCJcbitcbitpcCBuZXRucyBleGVjIFwiJFJcIiBjb25udHJhY2sgLUxcbityYz0wXG5kaWZmIC0tZ2l0IGEvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvZHVtcHMvY3RfZXhwZWN0Lm5vZHVtcCBiL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoL2R1bXBzL2N0X2V4cGVjdC5ub2R1bXBcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDFkXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOTo1MTo0OC42NjM2NTQzNTNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjMwMjgxMjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjb3VwbGUgb2YgbmV3IHRlc3QgZmlsZXMsIGBjdF9leHBlY3RgIGFuZCBgY3RfZXhwZWN0Lm5vZHVtcGAsIGJvdGggbG9jYXRlZCB1bmRlciBgdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvYC4gSXQgbG9va3MgbGlrZSB0aGVzZSBhcmUgc2hlbGwgc2NyaXB0cywgbGlrZWx5IHVzZWQgdG8gdGVzdCBuZnRhYmxlcyBvciBjb25udHJhY2sgYmVoYXZpb3IuIEludGVyZXN0aW5nLCBzZWVtcyBmb2N1c2VkIG9uIGNvbm50cmFjayBleHBlY3RhdGlvbnMuIFRoZXJlIGFyZSBubyBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwncyBzb3VyY2UgY29kZSBpdHNlbGYsIHdoaWNoIGlzIGEgZ29vZCB0aGluZyB0byBub3RlLiBUaGUgc2NvcGUgaXMgdmVyeSBzcGVjaWZpYyB0byB0aG9zZSB0ZXN0IGRpcmVjdG9yaWVzLlxuXG5Ob3cgdGhlIHF1ZXN0aW9uIGlzLCB3aGVyZSBleGFjdGx5IGlzIGB0ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9gIGxvY2F0ZWQ/IElzIHRoaXMgcGFydCBvZiB0aGUgYWN0dWFsIGtlcm5lbCB0cmVlLCBvciBpcyBpdCBhIHVzZXJzcGFjZSB0ZXN0aW5nIGZyYW1ld29yayBhc3NvY2lhdGVkIHdpdGggYSB0b29sIGxpa2UgbmZ0YWJsZXM/IEl0J3MgaW1wb3J0YW50IHRvIGtub3cgdGhlIGNvbnRleHQgb2YgdGhlc2UgdGVzdHMuIEkgbmVlZCB0byBjbGFyaWZ5IHdoZXRoZXIgdGhlc2UgYXJlIGluIHRoZSBrZXJuZWwgdHJlZSwgb3IgaW4gYSByZWxhdGVkIHVzZXJzcGFjZSBjb21wb25lbnQuIEknbGwgbmVlZCB0byB1c2UgYGNvZGVzZWFyY2gtZGlyLWluZGV4YCBvciBgZ3JlcHBlcmAgdG8gZGV0ZXJtaW5lIHRoZSBleGFjdCBsb2NhdGlvbiBvZiB0aGUgdGVzdCBmaWxlcyBhbmQgcmVzb2x2ZSB0aGlzLiBUaGlzIGNvbnRleHQgaXMgaW1wb3J0YW50IGZvciB1bmRlcnN0YW5kaW5nIHRoZSBpbXBhY3Qgb2YgdGhlc2UgYWRkaXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzE3LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTU3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6NTE6NTMuODkzOTM4Nzc3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTQxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcInRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IG51bGwsXG4gIFwiU3ViZGlyc1wiOiBbXG4gICAgXCJkdW1wc1wiXG4gIF1cbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjUxOjUzLjg5Mzk4NTgzN1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NzI3MjYyNDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipOYXZpZ2F0aW5nIHRoZSBUZXN0IERpcmVjdG9yeSBTdHJ1Y3R1cmUqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBEaWQgSSBqdXN0IHNlZSBhIHJlZmVyZW5jZSB0byBgdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGhgPyBUaGF0IHNlZW1zIGxpa2UgYW4gb2RkIHBhdGgsIGFuZCBpdCdzIG1ha2luZyBtZSB3b25kZXIgaWYgSSdtIGV2ZW4gbG9va2luZyBhdCB0aGUgcmlnaHQgZGlyZWN0b3J5IHN0cnVjdHVyZS4gQmVmb3JlIEkgZGlnIGFueSBkZWVwZXIgaW50byB0aGF0IHNwZWNpZmljIHRlc3QgY2FzZSwgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIHJvb3QuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB3aGVyZSBJIGFtIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0J3MgYmFzZSBkaXJlY3RvcnkuIEkgbmVlZCB0byBnZXQgYSBjbGVhciBtZW50YWwgbWFwIG9mIHRoZSBwcm9qZWN0J3MgbGF5b3V0IGJlZm9yZSBJIGNhbiB1bmRlcnN0YW5kIHdoYXQgdGhhdCBzcGVjaWZpYyB0ZXN0IGNhc2UgaXMgZG9pbmcgYW5kIGhvdyBpdCByZWxhdGVzIHRvIHRoZSByZXN0IG9mIHRoZSB0ZXN0aW5nIHN1aXRlLiBHb3R0YSBtYWtlIHN1cmUgSSBkb24ndCB3YXN0ZSB0aW1lIGNoYXNpbmcgZ2hvc3RzIGlmIGl0J3MgcG9pbnRpbmcgdG8gc29tZXRoaW5nIGluIGEgZGlmZmVyZW50IGNvbnRleHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxNTUsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6NTE6NTcuMzY2NzE1MzY3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTYyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBudWxsLFxuICBcIlN1YmRpcnNcIjogW1xuICAgIFwiRG9jdW1lbnRhdGlvblwiLFxuICAgIFwiTElDRU5TRVNcIixcbiAgICBcImFyY2hcIixcbiAgICBcImJsb2NrXCIsXG4gICAgXCJjZXJ0c1wiLFxuICAgIFwiY3J5cHRvXCIsXG4gICAgXCJkcml2ZXJzXCIsXG4gICAgXCJmc1wiLFxuICAgIFwiaW5jbHVkZVwiLFxuICAgIFwiaW5pdFwiLFxuICAgIFwiaW9fdXJpbmdcIixcbiAgICBcImlwY1wiLFxuICAgIFwia2VybmVsXCIsXG4gICAgXCJsaWJcIixcbiAgICBcIm1tXCIsXG4gICAgXCJuZXRcIixcbiAgICBcInJ1c3RcIixcbiAgICBcInNhbXBsZXNcIixcbiAgICBcInNjcmlwdHNcIixcbiAgICBcInNlY3VyaXR5XCIsXG4gICAgXCJzb3VuZFwiLFxuICAgIFwidGVzdHNcIixcbiAgICBcInRvb2xzXCIsXG4gICAgXCJ1c3JcIixcbiAgICBcInZpcnRcIlxuICBdXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOTo1MTo1Ny4zNjY3ODYyNjdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjkwNTQwMTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudDogTmF2aWdhdGluZyBQcm9qZWN0IFN0cnVjdHVyZSoqXG5cbk9rYXksIHNvIEkgc2VlIGB0ZXN0c2AgaXMgc2l0dGluZyByaWdodCB0aGVyZSBpbiB0aGUgcm9vdC4gSW1tZWRpYXRlbHksIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBwcm9qZWN0IGxheW91dCwgYW5kIHdoZXRoZXIgdGhlIHRlc3Rpbmcgc3RyYXRlZ3kgYWRoZXJlcyB0byBzdGFuZGFyZCBwcmFjdGljZXMgb3IgaWYgaXQncyBkZXZpYXRpbmcuIEknbSBnb2luZyB0byBzdGFydCBieSBnZXR0aW5nIGEgcXVpY2sgb3ZlcnZpZXcgb2Ygd2hhdCdzIGFjdHVhbGx5ICppbiogdGhhdCBkaXJlY3RvcnkuIExldCBtZSBkaXZlIGluIGFuZCBzZWUgd2hhdCdzIHdoYXQuIFRoZSBzdHJ1Y3R1cmUgaGVyZSB3aWxsIHRlbGwgbWUgYSBsb3QgYWJvdXQgdGhlIGRldmVsb3BtZW50IGFwcHJvYWNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDgzLCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjUyOjAwLjY1NzMyOTkxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzA0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcInRlc3RzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IG51bGwsXG4gIFwiU3ViZGlyc1wiOiBbXG4gICAgXCJzaGVsbFwiXG4gIF1cbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjUyOjAwLjY1NzM5ODE0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDcwNjI4MjA4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipOYXZpZ2F0aW5nIHRoZSBMYWJ5cmludGggb2YgS2VybmVsIFRlc3RpbmcqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGlzIFwibmZ0YWJsZXMgcmVwb3NpdG9yeVwiIHRob3VnaHQgcG9wcGVkIGludG8gbXkgaGVhZCDigJMgaXMgdGhpcyBhIG1pc2RpcmVjdGlvbj8gVGhlIHByb21wdCAqZGlkKiBzcGVjaWZpY2FsbHkgc3RhdGUgSSdtIGEgTGludXgga2VybmVsIG1haW50YWluZXIuIEJ1dCwgdGhlc2UgdGhpbmdzIGhhcHBlbi4gU29tZXRpbWVzIHBhdGNoZXMgZnJvbSBleHRlcm5hbCBwcm9qZWN0cywgbGlrZSBuZnRhYmxlcywgZmluZCB0aGVpciB3YXkgaW50byB0aGUgY29udmVyc2F0aW9uIGlmIGEgdXNlciBnb29mZWQsIG9yIG1heWJlIHRoZSBrZXJuZWwgaGFzIHN0YXJ0ZWQgdG8gdXNlIHNpbWlsYXIgZGlyZWN0b3JpZXMgb3IgbmFtaW5nIHNjaGVtZXM/XG5cbkhtbSwgbm8sIHdhaXQuIEkga25vdyB0aGF0IHRoZSBrZXJuZWwgdXNlcyBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYCwgbm90IHNpbXBseSBgdGVzdHMvYC4gVGhhdOKAmXMgbXkgbWVudGFsIHJlZmVyZW5jZSBwb2ludCwgYWx3YXlzLiBMZXQgbWUgaW52ZXN0aWdhdGUgZnVydGhlci4gSSBiZXR0ZXIgdmVyaWZ5IHdoZXJlIHRoaXMgYHRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoL2N0X2V4cGVjdGAgZmlsZSBtaWdodCBhY3R1YWxseSByZXNpZGUgd2l0aGluIHRoZSBrZXJuZWwgdHJlZS4gSSdsbCB1c2UgdGhlIGBjb2Rlc2VhcmNoLWRpci1pbmRleGAgY29tbWFuZCB0byBwcm9iZSBmb3IgYSBkaXJlY3RvcnkgbmFtZWQgYHRlc3RzYC4gQWgsIGl0IHJldHVybmVkIGBzaGVsbGAgYXMgYSByZXN1bHQuIE9rYXksIHRoYXQgZmVlbHMgbW9yZSBmYW1pbGlhciwgYW5kIG5vdyBJJ2xsIGRpdmUgaW50byB0aGUgY29udGVudHMgb2YgYHRlc3RzL3NoZWxsYC4gVGhpcyBzaG91bGQgcmV2ZWFsIG1vcmUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTY1MiwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6NTI6MDUuMzYzNjgyNzk1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTMxMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJ0ZXN0cy9zaGVsbFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBudWxsLFxuICBcIlN1YmRpcnNcIjogW1xuICAgIFwidGVzdGNhc2VzXCJcbiAgXVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6NTI6MDUuMzYzNzM3NjY1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc1NTQ4NzM3NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGlzIFBhdGNoKipcblxuT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBsZXQgbWUgY29uZmlybSBJJ20gbG9va2luZyBhdCB0aGUgcmlnaHQgcmVwb3NpdG9yeS4gKkNoZWNrcyByb290IGRpcmVjdG9yeSogWWVwLCBsb29rcyBsaWtlIHRoZSBzdGFuZGFyZCBrZXJuZWwgdHJlZS4gQW5kIHRoYXQgYGNvZGVzZWFyY2gtZGlyLWluZGV4YCBjb25maXJtcyB0aGUgc3RhbmRhcmQgbGF5b3V0LiBOb3csIGhvbGQgb24sIHNlZWluZyBhIGB0ZXN0c2AgZGlyZWN0b3J5IHJpZ2h0IGF0IHRoZSByb290IGlzIGEgbGl0dGxlIHVudXN1YWwuIEl0J3Mgbm90ICpuZWNlc3NhcmlseSogd3JvbmcgZm9yICp0aGlzKiB0cmVlLCBidXQgaXQgYWx3YXlzIG1ha2VzIG1lIHBhdXNlLiBSZWdhcmRsZXNzLCBsZXQncyBmb2N1cyBvbiB0aGUgcGF0Y2ggaXRzZWxmLlxuXG5SaWdodCwgdGhlIHBhdGNoLiBJdCBvbmx5IGFkZHMgYSBzaGVsbCBzY3JpcHQgZm9yIHRlc3RpbmcgKGBjdF9leHBlY3RgKS4gTm90aGluZyBlbHNlLiBJdCdzICpqdXN0KiBhIHRlc3Qgc2NyaXB0LiBObyBDIGNvZGUsIG5vIEtjb25maWcgbW9kaWZpY2F0aW9ucywgbm90aGluZyB0aGF0IHdvdWxkIGFjdHVhbGx5IGdldCBidWlsdCBpbnRvIHRoZSBrZXJuZWwuIFNvLCBmdW5jdGlvbmFsbHksIHRoZSBrZXJuZWwgY29kZSBpcyB1bmNoYW5nZWQuIFRoZXJlJ3Mgbm90aGluZyBoZXJlIHRvIGZ1enouIEknbSBjb25maWRlbnQgaW4gc2F5aW5nIGBXb3J0aEZ1enppbmdgIGlzIGBmYWxzZWAgaGVyZS5cblxuTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBkZXRhaWxzIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4gKkNoZWNrcyBwYXRjaCBjb250ZW50KiBPa2F5LCB0aGUgcGF0Y2ggYWRkcyBhIGJhc2ggc2NyaXB0IChgY3RfZXhwZWN0YCkgdGhhdCB1c2VzIGBpcCBuZXRuc2AsIGBzb2NhdGAsIGBuZnRgLCBhbmQgYGNvbm50cmFja2AuIFRoZXJlJ3MgYWxzbyBhbiBlbXB0eSBgLm5vZHVtcGAgZmlsZS4gQnV0IGl0J3MgYWxsIGluIHRoZSBgdGVzdHNgIGRpcmVjdG9yeS4gTm90aGluZyBpbiB0aGUgY29yZSBsb2dpYy4gTm8ga2VybmVsIEMgY29kZSwgbm8gbW9kaWZpY2F0aW9ucyB0byBrZXJuZWwgbG9naWMuIFRoaXMgY29uZmlybXMgaXQg4oCTIGBXb3J0aEZ1enppbmdgIGlzICpkZWZpbml0ZWx5KiBgZmFsc2VgLiBUaGUgcGF0Y2ggaXMgcHVyZWx5IGZvciB0ZXN0IGluZnJhc3RydWN0dXJlLlxuXG5UaGVyZWZvcmUsIHNpbmNlIHRoaXMgcGF0Y2ggaXMgbm90IG1vZGlmeWluZyBhbnkgZnVuY3Rpb25hbCBrZXJuZWwgY29kZSwgbXkgcmVhc29uaW5nIGlzIHRoYXQgdGhlIHBhdGNoIG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyBuZnRhYmxlcy9jb25udHJhY2sgZXhwZWN0YXRpb25zLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgS2NvbmZpZywgb3IgTWFrZWZpbGUuIFRoZXJlZm9yZSwgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwga2VybmVsIGNoYW5nZXMgdG8gZnV6ei5cblxuSSdtIHJlYWR5IHRvIHByb2NlZWQgd2l0aCBjYWxsaW5nIGBzZXQtcmVzdWx0c2Agd2l0aCBgV29ydGhGdXp6aW5nOiBmYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYwNTUsIk91dHB1dFRva2VucyI6NzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTMsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjUyOjEyLjkxODYxMzY3NFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3ODgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyBuZnRhYmxlcy9jb25udHJhY2sgZXhwZWN0YXRpb25zLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgS2NvbmZpZywgb3IgTWFrZWZpbGUuIFRoZXJlZm9yZSwgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwga2VybmVsIGNoYW5nZXMgdG8gZnV6ei5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyBuZnRhYmxlcy9jb25udHJhY2sgZXhwZWN0YXRpb25zLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgS2NvbmZpZywgb3IgTWFrZWZpbGUuIFRoZXJlZm9yZSwgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwga2VybmVsIGNoYW5nZXMgdG8gZnV6ei5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflow7wqxv[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-03 19:50:03 +0000 UTC FinishedAt: 2026-08-03 19:52:14 +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+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjUxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyBuZnRhYmxlcy9jb25udHJhY2sgZXhwZWN0YXRpb25zLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgS2NvbmZpZywgb3IgTWFrZWZpbGUuIFRoZXJlZm9yZSwgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwga2VybmVsIGNoYW5nZXMgdG8gZnV6ei4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6NTE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0YzYwMWVkNGIwYmEyMDAxNmUwNTBiYWI3MzYxYmEyYjcwNDg1YTUyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMyAxOTo1MTo0NyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3QgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3Rcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5kOTgyNGNhM2NkYWY5XG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3RcbkBAIC0wLDAgJiM0MzsxLDI2MSBAQFxuJiM0MzsjIS9iaW4vYmFzaFxuJiM0MztcbiYjNDM7IyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX3NvY2F0KVxuJiM0MztcbiYjNDM7LiAkTkZUX1RFU1RfTElCUkFSWV9GSUxFXG4mIzQzO1xuJiM0MztzZXQgLXhcbiYjNDM7XG4mIzQzO3JjPTFcbiYjNDM7XG4mIzQzO2NsZWFudXAoKVxuJiM0Mzt7XG4mIzQzO1x0Zm9yIGkgaW4gJFIgJEMgJFM7ZG9cbiYjNDM7XHRcdGtpbGwgJChpcCBuZXRucyBwaWQgJGkpIDJcdTAwM2UvZGV2L251bGxcbiYjNDM7XHRcdGlwIG5ldG5zIGRlbCAkaVxuJiM0MztcdGRvbmVcbiYjNDM7XG4mIzQzO1x0ZXhpdCAkcmNcbiYjNDM7fVxuJiM0Mzt0cmFwIGNsZWFudXAgRVhJVFxuJiM0MztcbiYjNDM7ZHVtcF9leHBlY3RfdGFibGUoKSB7XG4mIzQzO1x0aXAgbmV0bnMgZXhlYyBcJiMzNDskUlwmIzM0OyBjb25udHJhY2sgLS1mYW1pbHkgaXB2NiAtTCBleHBlY3RcbiYjNDM7XHRpcCBuZXRucyBleGVjIFwmIzM0OyRSXCYjMzQ7IGNvbm50cmFjayAtLWZhbWlseSBpcHY0IC1MIGV4cGVjdFxuJiM0Mzt9XG4mIzQzO1xuJiM0Mzthc3NlcnRfZmFpbG91dCgpXG4mIzQzO3tcbiYjNDM7XHRpcCBuZXRucyBleGVjICRSICRORlQgbGlzdCBydWxlc2V0XG4mIzQzO1x0aXAgbmV0bnMgZXhlYyAkUiBjb25udHJhY2sgLUxcbiYjNDM7XHRkdW1wX2V4cGVjdF90YWJsZVxuJiM0Mzt9XG4mIzQzO1xuJiM0Mztkb19jb25uZWN0KCkge1xuJiM0MztcdGxvY2FsIG5zPVwmIzM0OyQxXCYjMzQ7XG4mIzQzO1x0bG9jYWwgYWRkcj1cJiMzNDskMlwmIzM0O1xuJiM0MztcdGxvY2FsIHBvcnQ9XCYjMzQ7JDNcJiMzNDtcbiYjNDM7XG4mIzQzO1x0aXAgbmV0bnMgZXhlYyBcJiMzNDskbnNcJiMzNDsgc29jYXQgLXUgU1RESU4gVENQLUNPTk5FQ1Q6JGFkZHI6JHBvcnQsY29ubmVjdC10aW1lb3V0PTEgXHUwMDNjIC9kZXYvbnVsbFxuJiM0Mzt9XG4mIzQzO1xuJiM0Mztjb25uZWN0X2ZhaWwoKSB7XG4mIzQzO1x0bG9jYWwgbnM9XCYjMzQ7JDFcJiMzNDtcbiYjNDM7XHRsb2NhbCBhZGRyPVwmIzM0OyQyXCYjMzQ7XG4mIzQzO1x0bG9jYWwgcG9ydD1cJiMzNDskM1wmIzM0O1xuJiM0MztcdGxvY2FsIG1zZz1cJiMzNDskNFwmIzM0O1xuJiM0MztcbiYjNDM7XHRkb19jb25uZWN0IFwmIzM0OyRuc1wmIzM0OyBcJiMzNDskYWRkclwmIzM0OyBcJiMzNDskcG9ydFwmIzM0O1xuJiM0MztcdGFzc2VydF9mYWlsIFwmIzM0O2Nvbm5lY3QgZnJvbSAkbnMgdG8gJGFkZHI6JHBvcnQgJG1zZ1wmIzM0O1xuJiM0Mzt9XG4mIzQzO1xuJiM0Mztjb25uZWN0X29rKCkge1xuJiM0MztcdGxvY2FsIG5zPVwmIzM0OyQxXCYjMzQ7XG4mIzQzO1x0bG9jYWwgYWRkcj1cJiMzNDskMlwmIzM0O1xuJiM0MztcdGxvY2FsIHBvcnQ9XCYjMzQ7JDNcJiMzNDtcbiYjNDM7XHRsb2NhbCBtc2c9XCYjMzQ7JDRcJiMzNDtcbiYjNDM7XG4mIzQzO1x0ZG9fY29ubmVjdCBcJiMzNDskbnNcJiMzNDsgXCYjMzQ7JGFkZHJcJiMzNDsgXCYjMzQ7JHBvcnRcJiMzNDtcbiYjNDM7XHRhc3NlcnRfcGFzcyBcJiMzNDtjb25uZWN0IGZyb20gJG5zIHRvICRhZGRyOiRwb3J0ICRtc2dcJiMzNDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7dGVzdF9leHBlY3QoKSB7XG4mIzQzO1x0bG9jYWwgaXBfY3I9XCYjMzQ7JDFcJiMzNDtcbiYjNDM7XHRsb2NhbCBpcF9zcj1cJiMzNDskMlwmIzM0O1xuJiM0MztcdGxvY2FsIG1zZz1cJiMzNDskM1wmIzM0O1xuJiM0MztcbiYjNDM7XHRlY2hvIGNoZWNrIHBvcnQgaXMgY2xvc2VkIGZyb20gb3V0c2lkZS5cbiYjNDM7XHRjb25uZWN0X2ZhaWwgXCYjMzQ7JFNcJiMzNDsgXCYjMzQ7JGlwX2NyXCYjMzQ7IDEyMzRcbiYjNDM7XG4mIzQzO1x0ZWNobyBcJiMzNDtUZXN0OiBleHBlY3RhdGlvbiB2aWEgcnVsZXNldCRtc2dcJiMzNDtcbiYjNDM7XG4mIzQzO1x0ZWNobyBjb250cm9sIHBvcnQgc2hvdWxkIGJlIG9wZW4uXG4mIzQzO1x0Y29ubmVjdF9vayBcJiMzNDskQ1wmIzM0OyBcJiMzNDskaXBfc3JcJiMzNDsgMjIyMiBcJiMzNDskbXNnXCYjMzQ7XG4mIzQzO1xuJiM0MztcdGR1bXBfZXhwZWN0X3RhYmxlXG4mIzQzO1xuJiM0MztcdGVjaG8gZXhwZWN0ZWQgcG9ydC4gU2hvdWxkIG5vdyBwYXNzLlxuJiM0MztcdGNvbm5lY3Rfb2sgXCYjMzQ7JFNcJiMzNDsgXCYjMzQ7JGlwX2NyXCYjMzQ7IDEyMzQgXCYjMzQ7JG1zZ1wmIzM0O1xuJiM0MztcbiYjNDM7XHRlY2hvIG9uZSBleHBlY3RhdGlvbiBtYXgsIGV4cGVjdCBmYWlsLlxuJiM0MztcdGNvbm5lY3RfZmFpbCBcJiMzNDskU1wmIzM0OyBcJiMzNDskaXBfY3JcJiMzNDsgMTIzNCBcJiMzNDskbXNnXCYjMzQ7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3Rlc3RfdGltZW91dCgpIHtcbiYjNDM7XHRlY2hvIFwmIzM0O1Rlc3Q6IGV4cGVjdGF0aW9uIGF1dG8tdGltZW91dFwmIzM0O1xuJiM0MztcdCMgY29udHJvbCBwb3J0IC0gdGhpcyBzaG91bGQgYmUgb3Blbi5cbiYjNDM7XHRjb25uZWN0X29rIFwmIzM0OyRDXCYjMzQ7IFwmIzM0OyRpcDRfc3JcJiMzNDsgMjIyMlxuJiM0MztcdGNvbm5lY3Rfb2sgXCYjMzQ7JENcJiMzNDsgXCYjMzQ7WyRpcDZfc3JdXCYjMzQ7IDIyMjJcbiYjNDM7XG4mIzQzO1x0ZHVtcF9leHBlY3RfdGFibGVcbiYjNDM7XG4mIzQzO1x0IyB0aW1lb3V0LiBXZSAmIzM5O2J1bmRsZSYjMzk7IGlwdjQgYW5kIGlwdjYgdGVzdCBoZXJlLlxuJiM0MztcdHNsZWVwIDZcbiYjNDM7XG4mIzQzO1x0ZHVtcF9leHBlY3RfdGFibGVcbiYjNDM7XG4mIzQzO1x0ZWNobyBcJiMzNDtleHBlY3QgZmFpbHVyZXNcJiMzNDtcbiYjNDM7XHRjb25uZWN0X2ZhaWwgXCYjMzQ7JFNcJiMzNDsgXCYjMzQ7JGlwNF9jclwmIzM0OyAxMjM0XG4mIzQzO1x0Y29ubmVjdF9mYWlsIFwmIzM0OyRTXCYjMzQ7IFwmIzM0O1skaXA2X2NyXVwmIzM0OyAxMjM0XG4mIzQzO31cbiYjNDM7XG4mIzQzO3JuZD0kKG1rdGVtcCAtdSBYWFhYWFhYWClcbiYjNDM7Uj1cJiMzNDtucy1yb3V0ZXItJHJuZFwmIzM0O1xuJiM0MztDPVwmIzM0O25zLWNsaWVudC0kcm5kXCYjMzQ7XG4mIzQzO1M9XCYjMzQ7bnMtc2VydmVyLSRybmRcJiMzNDtcbiYjNDM7XG4mIzQzO2lwNl9zcj1kZWFkOmQ4OmZmOjIyOjoxXG4mIzQzO2lwNl9jcj1kZWFkOmQ4OmZmOjIxOjoyXG4mIzQzO2lwNl9ycz1kZWFkOmQ4OmZmOjIyOjpmZmZlXG4mIzQzO2lwNl9yYz1kZWFkOmQ4OmZmOjIxOjpmZmZlXG4mIzQzO1xuJiM0MztpcDRfc3I9MTAuMS4yMi4xXG4mIzQzO2lwNF9jcj0xMC4xLjIxLjJcbiYjNDM7aXA0X3JzPTEwLjEuMjIuOTlcbiYjNDM7aXA0X3JjPTEwLjEuMjEuOTlcbiYjNDM7XG4mIzQzO3NldCAtZVxuJiM0MztpcCBuZXRucyBhZGQgJFJcbiYjNDM7aXAgbmV0bnMgYWRkICRTXG4mIzQzO2lwIG5ldG5zIGFkZCAkQ1xuJiM0MztpcCAtbmV0ICRTIGxpbmsgc2V0IGxvIHVwXG4mIzQzO2lwIC1uZXQgJFIgbGluayBzZXQgbG8gdXBcbiYjNDM7aXAgLW5ldCAkQyBsaW5rIHNldCBsbyB1cFxuJiM0MztpcCBuZXRucyBleGVjICRSIHN5c2N0bCAtd3EgbmV0LmlwdjQuaXBfZm9yd2FyZD0xXG4mIzQzO2lwIG5ldG5zIGV4ZWMgJFIgc3lzY3RsIC13cSBuZXQuaXB2Ni5jb25mLmFsbC5mb3J3YXJkaW5nPTFcbiYjNDM7XG4mIzQzO2lwIGxpbmsgYWRkIHNfciBuZXRucyAkUyB0eXBlIHZldGggcGVlciBuYW1lIHJfcyBuZXRucyAkUlxuJiM0MztpcCBsaW5rIGFkZCBjX3IgbmV0bnMgJEMgdHlwZSB2ZXRoIHBlZXIgbmFtZSByX2MgbmV0bnMgJFJcbiYjNDM7aXAgLW5ldCAkUyBsaW5rIHNldCBzX3IgdXBcbiYjNDM7aXAgLW5ldCAkUiBsaW5rIHNldCByX3MgdXBcbiYjNDM7aXAgLW5ldCAkUiBsaW5rIHNldCByX2MgdXBcbiYjNDM7aXAgLW5ldCAkQyBsaW5rIHNldCBjX3IgdXBcbiYjNDM7XG4mIzQzO2lwIC1uZXQgJFMgYWRkciBhZGQgJHtpcDZfc3J9LzY0IGRldiBzX3Igbm9kYWRcbiYjNDM7aXAgLW5ldCAkQyBhZGRyIGFkZCAke2lwNl9jcn0vNjQgZGV2IGNfciBub2RhZFxuJiM0MztpcCAtbmV0ICRSIGFkZHIgYWRkICR7aXA2X3JzfS82NCBkZXYgcl9zIG5vZGFkXG4mIzQzO2lwIC1uZXQgJFIgYWRkciBhZGQgJHtpcDZfcmN9LzY0IGRldiByX2Mgbm9kYWRcbiYjNDM7aXAgLW5ldCAkQyByb3V0ZSBhZGQgJHtpcDZfcnN9LzY0IHZpYSAke2lwNl9yY30gZGV2IGNfclxuJiM0MztpcCAtbmV0ICRTIHJvdXRlIGFkZCAke2lwNl9yY30vNjQgdmlhICR7aXA2X3JzfSBkZXYgc19yXG4mIzQzO2Fzc2VydF9wYXNzIFwmIzM0O3RvcG8gaW5pdGlhbGl6YXRpb25cJiMzNDtcbiYjNDM7XG4mIzQzO2lwIC1uZXQgJFMgYWRkciBhZGQgJHtpcDRfc3J9LzI0IGRldiBzX3JcbiYjNDM7aXAgLW5ldCAkQyBhZGRyIGFkZCAke2lwNF9jcn0vMjQgZGV2IGNfclxuJiM0MztpcCAtbmV0ICRSIGFkZHIgYWRkICR7aXA0X3JzfS8yNCBkZXYgcl9zXG4mIzQzO2lwIC1uZXQgJFIgYWRkciBhZGQgJHtpcDRfcmN9LzI0IGRldiByX2NcbiYjNDM7XG4mIzQzO2lwIC1uZXQgJEMgcm91dGUgYWRkIDEwLjEuMjIuMC8yNCB2aWEgJHtpcDRfcmN9IGRldiBjX3JcbiYjNDM7aXAgLW5ldCAkUyByb3V0ZSBhZGQgMTAuMS4yMS4wLzI0IHZpYSAke2lwNF9yc30gZGV2IHNfclxuJiM0MztcbiYjNDM7aXAgbmV0bnMgZXhlYyBcJiMzNDskQ1wmIzM0OyBwaW5nIC1xIC1jIDEgXCYjMzQ7JGlwNF9zclwmIzM0O1xuJiM0MztpcCBuZXRucyBleGVjIFwmIzM0OyRDXCYjMzQ7IHBpbmcgLXEgLWMgMSBcJiMzNDskaXA2X3NyXCYjMzQ7XG4mIzQzO1xuJiM0Mzt0aW1lb3V0IDIwIGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JFNcJiMzNDsgc29jYXQgVENQNi1MSVNURU46MjIyMixpcHY2b25seT0xLGZvcmsscmV1c2VhZGRyIFBJUEUgXHUwMDI2XG4mIzQzO3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyBcJiMzNDskU1wmIzM0OyBzb2NhdCBUQ1A0LUxJU1RFTjoyMjIyLGZvcmsscmV1c2VhZGRyIFBJUEUgXHUwMDI2XG4mIzQzO3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyBcJiMzNDskQ1wmIzM0OyBzb2NhdCBUQ1A2LUxJU1RFTjoxMjM0LGlwdjZvbmx5PTEsZm9yayxyZXVzZWFkZHIgUElQRSBcdTAwMjZcbiYjNDM7dGltZW91dCAyMCBpcCBuZXRucyBleGVjIFwmIzM0OyRDXCYjMzQ7IHNvY2F0IFRDUDQtTElTVEVOOjEyMzQsZm9yayxyZXVzZWFkZHIgUElQRSBcdTAwMjZcbiYjNDM7d2FpdF9sb2NhbF9wb3J0X2xpc3RlbiAkUyAyMjIyIHRjcFxuJiM0Mzt3YWl0X2xvY2FsX3BvcnRfbGlzdGVuICRDIDEyMzQgdGNwXG4mIzQzO1xuJiM0MztpcCBuZXRucyBleGVjICRSICRORlQgLWYgLSBcdTAwM2NcdTAwM2MtRU9GXG4mIzQzO2ZsdXNoIHJ1bGVzZXRcbiYjNDM7dGFibGUgaW5ldCB0IHtcbiYjNDM7XHRjdCBleHBlY3RhdGlvbiBjdGV4cGVjdDQge1xuJiM0MztcdFx0cHJvdG9jb2wgdGNwXG4mIzQzO1x0XHRkcG9ydCAxMjM0XG4mIzQzO1x0XHR0aW1lb3V0IDVzXG4mIzQzO1x0XHRzaXplIDFcbiYjNDM7XHRcdGwzcHJvdG8gaXBcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdGN0IGV4cGVjdGF0aW9uIGN0ZXhwZWN0NiB7XG4mIzQzO1x0XHRwcm90b2NvbCB0Y3BcbiYjNDM7XHRcdGRwb3J0IDEyMzRcbiYjNDM7XHRcdHRpbWVvdXQgNXNcbiYjNDM7XHRcdHNpemUgMVxuJiM0MztcdFx0bDNwcm90byBpcDZcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdGNoYWluIGMge1xuJiM0MztcdFx0dHlwZSBmaWx0ZXIgaG9vayBmb3J3YXJkIHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGRyb3A7XG4mIzQzO1x0XHRjdCBzdGF0ZSBlc3RhYmxpc2hlZCBhY2NlcHRcbiYjNDM7XHRcdG1ldGEgbDRwcm90byB0Y3AgY3Qgc3RhdGUgcmVsYXRlZCBjb3VudGVyIGFjY2VwdFxuJiM0MztcdFx0bWV0YSBpaWZuYW1lIHJfYyBjdCBzdGF0ZSBuZXcganVtcCB7XG4mIzQzO1x0XHRcdHRjcCBkcG9ydCAyMjIyIGNvdW50ZXIgY3QgZXhwZWN0YXRpb24gc2V0IG1ldGEgbmZwcm90byBtYXAgeyBpcHY0IDogY3RleHBlY3Q0LCBpcHY2IDogY3RleHBlY3Q2IH0gY291bnRlciBhY2NlcHRcbiYjNDM7XHRcdFx0Y291bnRlciBhY2NlcHRcbiYjNDM7XHRcdH1cbiYjNDM7XHRcdG1ldGEgbDRwcm90byB0Y3AgY291bnRlciByZWplY3Qgd2l0aCB0Y3AgcmVzZXRcbiYjNDM7XHRcdG1ldGEgbDRwcm90byB7IGljbXAsIGljbXB2NiB9IGFjY2VwdFxuJiM0MztcdH1cbiYjNDM7fVxuJiM0MztFT0ZcbiYjNDM7XG4mIzQzO2lwIG5ldG5zIGV4ZWMgXCYjMzQ7JENcJiMzNDsgcGluZyAtcSAtYyAxIFwmIzM0OyRpcDRfc3JcJiMzNDtcbiYjNDM7aXAgbmV0bnMgZXhlYyBcJiMzNDskQ1wmIzM0OyBwaW5nIC1xIC1jIDEgXCYjMzQ7JGlwNl9zclwmIzM0O1xuJiM0MztcbiYjNDM7c2V0ICYjNDM7ZVxuJiM0MztlY2hvIGNoZWNrIHBvcnQgaXMgY2xvc2VkIGZyb20gb3V0c2lkZS5cbiYjNDM7Y29ubmVjdF9mYWlsIFwmIzM0OyRTXCYjMzQ7IFwmIzM0OyRpcDRfY3JcJiMzNDsgMTIzNFxuJiM0Mztjb25uZWN0X2ZhaWwgXCYjMzQ7JFNcJiMzNDsgXCYjMzQ7WyRpcDZfY3JdXCYjMzQ7IDEyMzRcbiYjNDM7XG4mIzQzO3Rlc3RfZXhwZWN0IFwmIzM0OyRpcDRfY3JcJiMzNDsgXCYjMzQ7JGlwNF9zclwmIzM0O1x0XCYjMzQ7XCYjMzQ7XG4mIzQzO3Rlc3RfZXhwZWN0IFwmIzM0O1skaXA2X2NyXVwmIzM0OyBcJiMzNDtbJGlwNl9zcl1cJiMzNDsgXCYjMzQ7XCYjMzQ7XG4mIzQzO1xuJiM0MztpcCBuZXRucyBleGVjICRSIGNvbm50cmFjayAtRlxuJiM0Mzt0ZXN0X3RpbWVvdXRcbiYjNDM7XG4mIzQzO3NldCAtZVxuJiM0MztpcCBuZXRucyBleGVjICRSICRORlQgLWYgLSBcdTAwM2NcdTAwM2MtRU9GXG4mIzQzO2ZsdXNoIHJ1bGVzZXRcbiYjNDM7dGFibGUgaW5ldCB0IHtcbiYjNDM7XHRjdCBleHBlY3RhdGlvbiBjdGV4cGVjdDQge1xuJiM0MztcdFx0cHJvdG9jb2wgdGNwXG4mIzQzO1x0XHRkcG9ydCAxMjM0XG4mIzQzO1x0XHR0aW1lb3V0IDVzXG4mIzQzO1x0XHRzaXplIDFcbiYjNDM7XHRcdGwzcHJvdG8gaXBcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdGN0IGV4cGVjdGF0aW9uIGN0ZXhwZWN0NiB7XG4mIzQzO1x0XHRwcm90b2NvbCB0Y3BcbiYjNDM7XHRcdGRwb3J0IDEyMzRcbiYjNDM7XHRcdHRpbWVvdXQgNXNcbiYjNDM7XHRcdHNpemUgMVxuJiM0MztcdFx0bDNwcm90byBpcDZcbiYjNDM7XHR9XG4mIzQzO1x0Y2hhaW4gYyB7XG4mIzQzO1x0XHR0eXBlIGZpbHRlciBob29rIGZvcndhcmQgcHJpb3JpdHkgZmlsdGVyOyBwb2xpY3kgZHJvcDtcbiYjNDM7XHRcdGN0IHN0YXRlIGVzdGFibGlzaGVkIGFjY2VwdFxuJiM0MztcdFx0bWV0YSBsNHByb3RvIHRjcCBjdCBzdGF0ZSByZWxhdGVkIGNvdW50ZXIgYWNjZXB0XG4mIzQzO1x0XHRtZXRhIGlpZm5hbWUgcl9jIGN0IHN0YXRlIG5ldyBhY2NlcHRcbiYjNDM7XHRcdG1ldGEgbDRwcm90byB0Y3AgY291bnRlciByZWplY3Qgd2l0aCB0Y3AgcmVzZXRcbiYjNDM7XHRcdG1ldGEgbDRwcm90byB7IGljbXAsIGljbXB2NiB9IGFjY2VwdFxuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0Y2hhaW4gbWFzcSB7XG4mIzQzO1x0XHR0eXBlIG5hdCBob29rIHBvc3Ryb3V0aW5nIHByaW9yaXR5IHNyY25hdDsgcG9saWN5IGFjY2VwdDtcbiYjNDM7XHRcdG1ldGEgb2lmbmFtZSBcJiMzNDtyX3NcJiMzNDsgY291bnRlciBtYXNxdWVyYWRlXG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRjaGFpbiBlIHtcbiYjNDM7XHRcdHR5cGUgZmlsdGVyIGhvb2sgcG9zdHJvdXRpbmcgcHJpb3JpdHkgNTAwMDAgOyBwb2xpY3kgYWNjZXB0O1xuJiM0MztcdFx0bWV0YSBpaWZuYW1lIHJfYyBjdCBzdGF0ZSBuZXcganVtcCB7XG4mIzQzO1x0XHRcdHRjcCBkcG9ydCAyMjIyIGNvdW50ZXIgY3QgZXhwZWN0YXRpb24gc2V0IG1ldGEgbmZwcm90byBtYXAgeyBpcHY0IDogY3RleHBlY3Q0LCBpcHY2IDogY3RleHBlY3Q2IH0gY291bnRlciBhY2NlcHRcbiYjNDM7XHRcdFx0Y291bnRlciBhY2NlcHRcbiYjNDM7XHRcdH1cbiYjNDM7XHR9XG4mIzQzO31cbiYjNDM7RU9GXG4mIzQzO1xuJiM0MztpcCBuZXRucyBleGVjICRSIGNvbm50cmFjayAtRlxuJiM0MztlY2hvIFwmIzM0O1Rlc3Q6IGNvbm50cmFjayBleHBlY3RhdGlvbiB3aXRoIG1hc3F1ZXJhZGVcJiMzNDtcbiYjNDM7c2V0ICYjNDM7ZVxuJiM0MztcbiYjNDM7IyBTa2lwIGhlcmUsIHRoaXMgaXMgYSBrZXJuZWwgYnVnIC8gbWlzc2luZyBmZWF0dXJlIHdlIGNhbiYjMzk7dFxuJiM0MzsjIHRlc3QgZm9yLlxuJiM0MztyYz03N1xuJiM0Mzt0ZXN0X2V4cGVjdCBcJiMzNDskaXA0X3JzXCYjMzQ7IFwmIzM0OyRpcDRfc3JcJiMzNDsgXCYjMzQ7IHdpdGggbWFzcXVlcmFkZVwmIzM0O1xuJiM0Mzt0ZXN0X2V4cGVjdCBcJiMzNDtbJGlwNl9yc11cJiMzNDsgXCYjMzQ7WyRpcDZfc3JdXCYjMzQ7IFwmIzM0OyB3aXRoIG1hc3F1ZXJhZGVcJiMzNDtcbiYjNDM7XG4mIzQzO2lwIG5ldG5zIGV4ZWMgXCYjMzQ7JFJcJiMzNDsgY29ubnRyYWNrIC1MXG4mIzQzO3JjPTBcbmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9kdW1wcy9jdF9leHBlY3Qubm9kdW1wIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvZHVtcHMvY3RfZXhwZWN0Lm5vZHVtcFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMWRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOTo1MTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgc2hlbGwgc2NyaXB0IGZvciB0ZXN0aW5nIG5mdGFibGVzL2Nvbm50cmFjayBleHBlY3RhdGlvbnMuIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlLCBLY29uZmlnLCBvciBNYWtlZmlsZS4gVGhlcmVmb3JlLCB0aGVyZSBhcmUgbm8gZnVuY3Rpb25hbCBrZXJuZWwgY2hhbmdlcyB0byBmdXp6LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDRjNjAxZWQ0YjBiYTIwMDE2ZTA1MGJhYjczNjFiYTJiNzA0ODVhNTIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAzIDE5OjUxOjQ3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvY3RfZXhwZWN0IGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvY3RfZXhwZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAuLmQ5ODI0Y2EzY2RhZjkKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3QKQEAgLTAsMCAmIzQzOzEsMjYxIEBACiYjNDM7IyEvYmluL2Jhc2gKJiM0MzsKJiM0MzsjIE5GVF9URVNUX1JFUVVJUkVTKE5GVF9URVNUX0hBVkVfc29jYXQpCiYjNDM7CiYjNDM7LiAkTkZUX1RFU1RfTElCUkFSWV9GSUxFCiYjNDM7CiYjNDM7c2V0IC14CiYjNDM7CiYjNDM7cmM9MQomIzQzOwomIzQzO2NsZWFudXAoKQomIzQzO3sKJiM0MzsJZm9yIGkgaW4gJFIgJEMgJFM7ZG8KJiM0MzsJCWtpbGwgJChpcCBuZXRucyBwaWQgJGkpIDImZ3Q7L2Rldi9udWxsCiYjNDM7CQlpcCBuZXRucyBkZWwgJGkKJiM0MzsJZG9uZQomIzQzOwomIzQzOwlleGl0ICRyYwomIzQzO30KJiM0Mzt0cmFwIGNsZWFudXAgRVhJVAomIzQzOwomIzQzO2R1bXBfZXhwZWN0X3RhYmxlKCkgewomIzQzOwlpcCBuZXRucyBleGVjICYjMzQ7JFImIzM0OyBjb25udHJhY2sgLS1mYW1pbHkgaXB2NiAtTCBleHBlY3QKJiM0MzsJaXAgbmV0bnMgZXhlYyAmIzM0OyRSJiMzNDsgY29ubnRyYWNrIC0tZmFtaWx5IGlwdjQgLUwgZXhwZWN0CiYjNDM7fQomIzQzOwomIzQzO2Fzc2VydF9mYWlsb3V0KCkKJiM0Mzt7CiYjNDM7CWlwIG5ldG5zIGV4ZWMgJFIgJE5GVCBsaXN0IHJ1bGVzZXQKJiM0MzsJaXAgbmV0bnMgZXhlYyAkUiBjb25udHJhY2sgLUwKJiM0MzsJZHVtcF9leHBlY3RfdGFibGUKJiM0Mzt9CiYjNDM7CiYjNDM7ZG9fY29ubmVjdCgpIHsKJiM0MzsJbG9jYWwgbnM9JiMzNDskMSYjMzQ7CiYjNDM7CWxvY2FsIGFkZHI9JiMzNDskMiYjMzQ7CiYjNDM7CWxvY2FsIHBvcnQ9JiMzNDskMyYjMzQ7CiYjNDM7CiYjNDM7CWlwIG5ldG5zIGV4ZWMgJiMzNDskbnMmIzM0OyBzb2NhdCAtdSBTVERJTiBUQ1AtQ09OTkVDVDokYWRkcjokcG9ydCxjb25uZWN0LXRpbWVvdXQ9MSAmbHQ7IC9kZXYvbnVsbAomIzQzO30KJiM0MzsKJiM0Mztjb25uZWN0X2ZhaWwoKSB7CiYjNDM7CWxvY2FsIG5zPSYjMzQ7JDEmIzM0OwomIzQzOwlsb2NhbCBhZGRyPSYjMzQ7JDImIzM0OwomIzQzOwlsb2NhbCBwb3J0PSYjMzQ7JDMmIzM0OwomIzQzOwlsb2NhbCBtc2c9JiMzNDskNCYjMzQ7CiYjNDM7CiYjNDM7CWRvX2Nvbm5lY3QgJiMzNDskbnMmIzM0OyAmIzM0OyRhZGRyJiMzNDsgJiMzNDskcG9ydCYjMzQ7CiYjNDM7CWFzc2VydF9mYWlsICYjMzQ7Y29ubmVjdCBmcm9tICRucyB0byAkYWRkcjokcG9ydCAkbXNnJiMzNDsKJiM0Mzt9CiYjNDM7CiYjNDM7Y29ubmVjdF9vaygpIHsKJiM0MzsJbG9jYWwgbnM9JiMzNDskMSYjMzQ7CiYjNDM7CWxvY2FsIGFkZHI9JiMzNDskMiYjMzQ7CiYjNDM7CWxvY2FsIHBvcnQ9JiMzNDskMyYjMzQ7CiYjNDM7CWxvY2FsIG1zZz0mIzM0OyQ0JiMzNDsKJiM0MzsKJiM0MzsJZG9fY29ubmVjdCAmIzM0OyRucyYjMzQ7ICYjMzQ7JGFkZHImIzM0OyAmIzM0OyRwb3J0JiMzNDsKJiM0MzsJYXNzZXJ0X3Bhc3MgJiMzNDtjb25uZWN0IGZyb20gJG5zIHRvICRhZGRyOiRwb3J0ICRtc2cmIzM0OwomIzQzO30KJiM0MzsKJiM0Mzt0ZXN0X2V4cGVjdCgpIHsKJiM0MzsJbG9jYWwgaXBfY3I9JiMzNDskMSYjMzQ7CiYjNDM7CWxvY2FsIGlwX3NyPSYjMzQ7JDImIzM0OwomIzQzOwlsb2NhbCBtc2c9JiMzNDskMyYjMzQ7CiYjNDM7CiYjNDM7CWVjaG8gY2hlY2sgcG9ydCBpcyBjbG9zZWQgZnJvbSBvdXRzaWRlLgomIzQzOwljb25uZWN0X2ZhaWwgJiMzNDskUyYjMzQ7ICYjMzQ7JGlwX2NyJiMzNDsgMTIzNAomIzQzOwomIzQzOwllY2hvICYjMzQ7VGVzdDogZXhwZWN0YXRpb24gdmlhIHJ1bGVzZXQkbXNnJiMzNDsKJiM0MzsKJiM0MzsJZWNobyBjb250cm9sIHBvcnQgc2hvdWxkIGJlIG9wZW4uCiYjNDM7CWNvbm5lY3Rfb2sgJiMzNDskQyYjMzQ7ICYjMzQ7JGlwX3NyJiMzNDsgMjIyMiAmIzM0OyRtc2cmIzM0OwomIzQzOwomIzQzOwlkdW1wX2V4cGVjdF90YWJsZQomIzQzOwomIzQzOwllY2hvIGV4cGVjdGVkIHBvcnQuIFNob3VsZCBub3cgcGFzcy4KJiM0MzsJY29ubmVjdF9vayAmIzM0OyRTJiMzNDsgJiMzNDskaXBfY3ImIzM0OyAxMjM0ICYjMzQ7JG1zZyYjMzQ7CiYjNDM7CiYjNDM7CWVjaG8gb25lIGV4cGVjdGF0aW9uIG1heCwgZXhwZWN0IGZhaWwuCiYjNDM7CWNvbm5lY3RfZmFpbCAmIzM0OyRTJiMzNDsgJiMzNDskaXBfY3ImIzM0OyAxMjM0ICYjMzQ7JG1zZyYjMzQ7CiYjNDM7fQomIzQzOwomIzQzO3Rlc3RfdGltZW91dCgpIHsKJiM0MzsJZWNobyAmIzM0O1Rlc3Q6IGV4cGVjdGF0aW9uIGF1dG8tdGltZW91dCYjMzQ7CiYjNDM7CSMgY29udHJvbCBwb3J0IC0gdGhpcyBzaG91bGQgYmUgb3Blbi4KJiM0MzsJY29ubmVjdF9vayAmIzM0OyRDJiMzNDsgJiMzNDskaXA0X3NyJiMzNDsgMjIyMgomIzQzOwljb25uZWN0X29rICYjMzQ7JEMmIzM0OyAmIzM0O1skaXA2X3NyXSYjMzQ7IDIyMjIKJiM0MzsKJiM0MzsJZHVtcF9leHBlY3RfdGFibGUKJiM0MzsKJiM0MzsJIyB0aW1lb3V0LiBXZSAmIzM5O2J1bmRsZSYjMzk7IGlwdjQgYW5kIGlwdjYgdGVzdCBoZXJlLgomIzQzOwlzbGVlcCA2CiYjNDM7CiYjNDM7CWR1bXBfZXhwZWN0X3RhYmxlCiYjNDM7CiYjNDM7CWVjaG8gJiMzNDtleHBlY3QgZmFpbHVyZXMmIzM0OwomIzQzOwljb25uZWN0X2ZhaWwgJiMzNDskUyYjMzQ7ICYjMzQ7JGlwNF9jciYjMzQ7IDEyMzQKJiM0MzsJY29ubmVjdF9mYWlsICYjMzQ7JFMmIzM0OyAmIzM0O1skaXA2X2NyXSYjMzQ7IDEyMzQKJiM0Mzt9CiYjNDM7CiYjNDM7cm5kPSQobWt0ZW1wIC11IFhYWFhYWFhYKQomIzQzO1I9JiMzNDtucy1yb3V0ZXItJHJuZCYjMzQ7CiYjNDM7Qz0mIzM0O25zLWNsaWVudC0kcm5kJiMzNDsKJiM0MztTPSYjMzQ7bnMtc2VydmVyLSRybmQmIzM0OwomIzQzOwomIzQzO2lwNl9zcj1kZWFkOmQ4OmZmOjIyOjoxCiYjNDM7aXA2X2NyPWRlYWQ6ZDg6ZmY6MjE6OjIKJiM0MztpcDZfcnM9ZGVhZDpkODpmZjoyMjo6ZmZmZQomIzQzO2lwNl9yYz1kZWFkOmQ4OmZmOjIxOjpmZmZlCiYjNDM7CiYjNDM7aXA0X3NyPTEwLjEuMjIuMQomIzQzO2lwNF9jcj0xMC4xLjIxLjIKJiM0MztpcDRfcnM9MTAuMS4yMi45OQomIzQzO2lwNF9yYz0xMC4xLjIxLjk5CiYjNDM7CiYjNDM7c2V0IC1lCiYjNDM7aXAgbmV0bnMgYWRkICRSCiYjNDM7aXAgbmV0bnMgYWRkICRTCiYjNDM7aXAgbmV0bnMgYWRkICRDCiYjNDM7aXAgLW5ldCAkUyBsaW5rIHNldCBsbyB1cAomIzQzO2lwIC1uZXQgJFIgbGluayBzZXQgbG8gdXAKJiM0MztpcCAtbmV0ICRDIGxpbmsgc2V0IGxvIHVwCiYjNDM7aXAgbmV0bnMgZXhlYyAkUiBzeXNjdGwgLXdxIG5ldC5pcHY0LmlwX2ZvcndhcmQ9MQomIzQzO2lwIG5ldG5zIGV4ZWMgJFIgc3lzY3RsIC13cSBuZXQuaXB2Ni5jb25mLmFsbC5mb3J3YXJkaW5nPTEKJiM0MzsKJiM0MztpcCBsaW5rIGFkZCBzX3IgbmV0bnMgJFMgdHlwZSB2ZXRoIHBlZXIgbmFtZSByX3MgbmV0bnMgJFIKJiM0MztpcCBsaW5rIGFkZCBjX3IgbmV0bnMgJEMgdHlwZSB2ZXRoIHBlZXIgbmFtZSByX2MgbmV0bnMgJFIKJiM0MztpcCAtbmV0ICRTIGxpbmsgc2V0IHNfciB1cAomIzQzO2lwIC1uZXQgJFIgbGluayBzZXQgcl9zIHVwCiYjNDM7aXAgLW5ldCAkUiBsaW5rIHNldCByX2MgdXAKJiM0MztpcCAtbmV0ICRDIGxpbmsgc2V0IGNfciB1cAomIzQzOwomIzQzO2lwIC1uZXQgJFMgYWRkciBhZGQgJHtpcDZfc3J9LzY0IGRldiBzX3Igbm9kYWQKJiM0MztpcCAtbmV0ICRDIGFkZHIgYWRkICR7aXA2X2NyfS82NCBkZXYgY19yIG5vZGFkCiYjNDM7aXAgLW5ldCAkUiBhZGRyIGFkZCAke2lwNl9yc30vNjQgZGV2IHJfcyBub2RhZAomIzQzO2lwIC1uZXQgJFIgYWRkciBhZGQgJHtpcDZfcmN9LzY0IGRldiByX2Mgbm9kYWQKJiM0MztpcCAtbmV0ICRDIHJvdXRlIGFkZCAke2lwNl9yc30vNjQgdmlhICR7aXA2X3JjfSBkZXYgY19yCiYjNDM7aXAgLW5ldCAkUyByb3V0ZSBhZGQgJHtpcDZfcmN9LzY0IHZpYSAke2lwNl9yc30gZGV2IHNfcgomIzQzO2Fzc2VydF9wYXNzICYjMzQ7dG9wbyBpbml0aWFsaXphdGlvbiYjMzQ7CiYjNDM7CiYjNDM7aXAgLW5ldCAkUyBhZGRyIGFkZCAke2lwNF9zcn0vMjQgZGV2IHNfcgomIzQzO2lwIC1uZXQgJEMgYWRkciBhZGQgJHtpcDRfY3J9LzI0IGRldiBjX3IKJiM0MztpcCAtbmV0ICRSIGFkZHIgYWRkICR7aXA0X3JzfS8yNCBkZXYgcl9zCiYjNDM7aXAgLW5ldCAkUiBhZGRyIGFkZCAke2lwNF9yY30vMjQgZGV2IHJfYwomIzQzOwomIzQzO2lwIC1uZXQgJEMgcm91dGUgYWRkIDEwLjEuMjIuMC8yNCB2aWEgJHtpcDRfcmN9IGRldiBjX3IKJiM0MztpcCAtbmV0ICRTIHJvdXRlIGFkZCAxMC4xLjIxLjAvMjQgdmlhICR7aXA0X3JzfSBkZXYgc19yCiYjNDM7CiYjNDM7aXAgbmV0bnMgZXhlYyAmIzM0OyRDJiMzNDsgcGluZyAtcSAtYyAxICYjMzQ7JGlwNF9zciYjMzQ7CiYjNDM7aXAgbmV0bnMgZXhlYyAmIzM0OyRDJiMzNDsgcGluZyAtcSAtYyAxICYjMzQ7JGlwNl9zciYjMzQ7CiYjNDM7CiYjNDM7dGltZW91dCAyMCBpcCBuZXRucyBleGVjICYjMzQ7JFMmIzM0OyBzb2NhdCBUQ1A2LUxJU1RFTjoyMjIyLGlwdjZvbmx5PTEsZm9yayxyZXVzZWFkZHIgUElQRSAmYW1wOwomIzQzO3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyAmIzM0OyRTJiMzNDsgc29jYXQgVENQNC1MSVNURU46MjIyMixmb3JrLHJldXNlYWRkciBQSVBFICZhbXA7CiYjNDM7dGltZW91dCAyMCBpcCBuZXRucyBleGVjICYjMzQ7JEMmIzM0OyBzb2NhdCBUQ1A2LUxJU1RFTjoxMjM0LGlwdjZvbmx5PTEsZm9yayxyZXVzZWFkZHIgUElQRSAmYW1wOwomIzQzO3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyAmIzM0OyRDJiMzNDsgc29jYXQgVENQNC1MSVNURU46MTIzNCxmb3JrLHJldXNlYWRkciBQSVBFICZhbXA7CiYjNDM7d2FpdF9sb2NhbF9wb3J0X2xpc3RlbiAkUyAyMjIyIHRjcAomIzQzO3dhaXRfbG9jYWxfcG9ydF9saXN0ZW4gJEMgMTIzNCB0Y3AKJiM0MzsKJiM0MztpcCBuZXRucyBleGVjICRSICRORlQgLWYgLSAmbHQ7Jmx0Oy1FT0YKJiM0MztmbHVzaCBydWxlc2V0CiYjNDM7dGFibGUgaW5ldCB0IHsKJiM0MzsJY3QgZXhwZWN0YXRpb24gY3RleHBlY3Q0IHsKJiM0MzsJCXByb3RvY29sIHRjcAomIzQzOwkJZHBvcnQgMTIzNAomIzQzOwkJdGltZW91dCA1cwomIzQzOwkJc2l6ZSAxCiYjNDM7CQlsM3Byb3RvIGlwCiYjNDM7CX0KJiM0MzsKJiM0MzsJY3QgZXhwZWN0YXRpb24gY3RleHBlY3Q2IHsKJiM0MzsJCXByb3RvY29sIHRjcAomIzQzOwkJZHBvcnQgMTIzNAomIzQzOwkJdGltZW91dCA1cwomIzQzOwkJc2l6ZSAxCiYjNDM7CQlsM3Byb3RvIGlwNgomIzQzOwl9CiYjNDM7CiYjNDM7CWNoYWluIGMgewomIzQzOwkJdHlwZSBmaWx0ZXIgaG9vayBmb3J3YXJkIHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGRyb3A7CiYjNDM7CQljdCBzdGF0ZSBlc3RhYmxpc2hlZCBhY2NlcHQKJiM0MzsJCW1ldGEgbDRwcm90byB0Y3AgY3Qgc3RhdGUgcmVsYXRlZCBjb3VudGVyIGFjY2VwdAomIzQzOwkJbWV0YSBpaWZuYW1lIHJfYyBjdCBzdGF0ZSBuZXcganVtcCB7CiYjNDM7CQkJdGNwIGRwb3J0IDIyMjIgY291bnRlciBjdCBleHBlY3RhdGlvbiBzZXQgbWV0YSBuZnByb3RvIG1hcCB7IGlwdjQgOiBjdGV4cGVjdDQsIGlwdjYgOiBjdGV4cGVjdDYgfSBjb3VudGVyIGFjY2VwdAomIzQzOwkJCWNvdW50ZXIgYWNjZXB0CiYjNDM7CQl9CiYjNDM7CQltZXRhIGw0cHJvdG8gdGNwIGNvdW50ZXIgcmVqZWN0IHdpdGggdGNwIHJlc2V0CiYjNDM7CQltZXRhIGw0cHJvdG8geyBpY21wLCBpY21wdjYgfSBhY2NlcHQKJiM0MzsJfQomIzQzO30KJiM0MztFT0YKJiM0MzsKJiM0MztpcCBuZXRucyBleGVjICYjMzQ7JEMmIzM0OyBwaW5nIC1xIC1jIDEgJiMzNDskaXA0X3NyJiMzNDsKJiM0MztpcCBuZXRucyBleGVjICYjMzQ7JEMmIzM0OyBwaW5nIC1xIC1jIDEgJiMzNDskaXA2X3NyJiMzNDsKJiM0MzsKJiM0MztzZXQgJiM0MztlCiYjNDM7ZWNobyBjaGVjayBwb3J0IGlzIGNsb3NlZCBmcm9tIG91dHNpZGUuCiYjNDM7Y29ubmVjdF9mYWlsICYjMzQ7JFMmIzM0OyAmIzM0OyRpcDRfY3ImIzM0OyAxMjM0CiYjNDM7Y29ubmVjdF9mYWlsICYjMzQ7JFMmIzM0OyAmIzM0O1skaXA2X2NyXSYjMzQ7IDEyMzQKJiM0MzsKJiM0Mzt0ZXN0X2V4cGVjdCAmIzM0OyRpcDRfY3ImIzM0OyAmIzM0OyRpcDRfc3ImIzM0OwkmIzM0OyYjMzQ7CiYjNDM7dGVzdF9leHBlY3QgJiMzNDtbJGlwNl9jcl0mIzM0OyAmIzM0O1skaXA2X3NyXSYjMzQ7ICYjMzQ7JiMzNDsKJiM0MzsKJiM0MztpcCBuZXRucyBleGVjICRSIGNvbm50cmFjayAtRgomIzQzO3Rlc3RfdGltZW91dAomIzQzOwomIzQzO3NldCAtZQomIzQzO2lwIG5ldG5zIGV4ZWMgJFIgJE5GVCAtZiAtICZsdDsmbHQ7LUVPRgomIzQzO2ZsdXNoIHJ1bGVzZXQKJiM0Mzt0YWJsZSBpbmV0IHQgewomIzQzOwljdCBleHBlY3RhdGlvbiBjdGV4cGVjdDQgewomIzQzOwkJcHJvdG9jb2wgdGNwCiYjNDM7CQlkcG9ydCAxMjM0CiYjNDM7CQl0aW1lb3V0IDVzCiYjNDM7CQlzaXplIDEKJiM0MzsJCWwzcHJvdG8gaXAKJiM0MzsJfQomIzQzOwomIzQzOwljdCBleHBlY3RhdGlvbiBjdGV4cGVjdDYgewomIzQzOwkJcHJvdG9jb2wgdGNwCiYjNDM7CQlkcG9ydCAxMjM0CiYjNDM7CQl0aW1lb3V0IDVzCiYjNDM7CQlzaXplIDEKJiM0MzsJCWwzcHJvdG8gaXA2CiYjNDM7CX0KJiM0MzsJY2hhaW4gYyB7CiYjNDM7CQl0eXBlIGZpbHRlciBob29rIGZvcndhcmQgcHJpb3JpdHkgZmlsdGVyOyBwb2xpY3kgZHJvcDsKJiM0MzsJCWN0IHN0YXRlIGVzdGFibGlzaGVkIGFjY2VwdAomIzQzOwkJbWV0YSBsNHByb3RvIHRjcCBjdCBzdGF0ZSByZWxhdGVkIGNvdW50ZXIgYWNjZXB0CiYjNDM7CQltZXRhIGlpZm5hbWUgcl9jIGN0IHN0YXRlIG5ldyBhY2NlcHQKJiM0MzsJCW1ldGEgbDRwcm90byB0Y3AgY291bnRlciByZWplY3Qgd2l0aCB0Y3AgcmVzZXQKJiM0MzsJCW1ldGEgbDRwcm90byB7IGljbXAsIGljbXB2NiB9IGFjY2VwdAomIzQzOwl9CiYjNDM7CiYjNDM7CWNoYWluIG1hc3EgewomIzQzOwkJdHlwZSBuYXQgaG9vayBwb3N0cm91dGluZyBwcmlvcml0eSBzcmNuYXQ7IHBvbGljeSBhY2NlcHQ7CiYjNDM7CQltZXRhIG9pZm5hbWUgJiMzNDtyX3MmIzM0OyBjb3VudGVyIG1hc3F1ZXJhZGUKJiM0MzsJfQomIzQzOwomIzQzOwljaGFpbiBlIHsKJiM0MzsJCXR5cGUgZmlsdGVyIGhvb2sgcG9zdHJvdXRpbmcgcHJpb3JpdHkgNTAwMDAgOyBwb2xpY3kgYWNjZXB0OwomIzQzOwkJbWV0YSBpaWZuYW1lIHJfYyBjdCBzdGF0ZSBuZXcganVtcCB7CiYjNDM7CQkJdGNwIGRwb3J0IDIyMjIgY291bnRlciBjdCBleHBlY3RhdGlvbiBzZXQgbWV0YSBuZnByb3RvIG1hcCB7IGlwdjQgOiBjdGV4cGVjdDQsIGlwdjYgOiBjdGV4cGVjdDYgfSBjb3VudGVyIGFjY2VwdAomIzQzOwkJCWNvdW50ZXIgYWNjZXB0CiYjNDM7CQl9CiYjNDM7CX0KJiM0Mzt9CiYjNDM7RU9GCiYjNDM7CiYjNDM7aXAgbmV0bnMgZXhlYyAkUiBjb25udHJhY2sgLUYKJiM0MztlY2hvICYjMzQ7VGVzdDogY29ubnRyYWNrIGV4cGVjdGF0aW9uIHdpdGggbWFzcXVlcmFkZSYjMzQ7CiYjNDM7c2V0ICYjNDM7ZQomIzQzOwomIzQzOyMgU2tpcCBoZXJlLCB0aGlzIGlzIGEga2VybmVsIGJ1ZyAvIG1pc3NpbmcgZmVhdHVyZSB3ZSBjYW4mIzM5O3QKJiM0MzsjIHRlc3QgZm9yLgomIzQzO3JjPTc3CiYjNDM7dGVzdF9leHBlY3QgJiMzNDskaXA0X3JzJiMzNDsgJiMzNDskaXA0X3NyJiMzNDsgJiMzNDsgd2l0aCBtYXNxdWVyYWRlJiMzNDsKJiM0Mzt0ZXN0X2V4cGVjdCAmIzM0O1skaXA2X3JzXSYjMzQ7ICYjMzQ7WyRpcDZfc3JdJiMzNDsgJiMzNDsgd2l0aCBtYXNxdWVyYWRlJiMzNDsKJiM0MzsKJiM0MztpcCBuZXRucyBleGVjICYjMzQ7JFImIzM0OyBjb25udHJhY2sgLUwKJiM0MztyYz0wCmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9kdW1wcy9jdF9leHBlY3Qubm9kdW1wIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvZHVtcHMvY3RfZXhwZWN0Lm5vZHVtcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDFkCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3MTcKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjb3VwbGUgb2YgbmV3IHRlc3QgZmlsZXMsIGBjdF9leHBlY3RgIGFuZCBgY3RfZXhwZWN0Lm5vZHVtcGAsIGJvdGggbG9jYXRlZCB1bmRlciBgdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvYC4gSXQgbG9va3MgbGlrZSB0aGVzZSBhcmUgc2hlbGwgc2NyaXB0cywgbGlrZWx5IHVzZWQgdG8gdGVzdCBuZnRhYmxlcyBvciBjb25udHJhY2sgYmVoYXZpb3IuIEludGVyZXN0aW5nLCBzZWVtcyBmb2N1c2VkIG9uIGNvbm50cmFjayBleHBlY3RhdGlvbnMuIFRoZXJlIGFyZSBubyBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwmIzM5O3Mgc291cmNlIGNvZGUgaXRzZWxmLCB3aGljaCBpcyBhIGdvb2QgdGhpbmcgdG8gbm90ZS4gVGhlIHNjb3BlIGlzIHZlcnkgc3BlY2lmaWMgdG8gdGhvc2UgdGVzdCBkaXJlY3Rvcmllcy4KCk5vdyB0aGUgcXVlc3Rpb24gaXMsIHdoZXJlIGV4YWN0bHkgaXMgYHRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoL2AgbG9jYXRlZD8gSXMgdGhpcyBwYXJ0IG9mIHRoZSBhY3R1YWwga2VybmVsIHRyZWUsIG9yIGlzIGl0IGEgdXNlcnNwYWNlIHRlc3RpbmcgZnJhbWV3b3JrIGFzc29jaWF0ZWQgd2l0aCBhIHRvb2wgbGlrZSBuZnRhYmxlcz8gSXQmIzM5O3MgaW1wb3J0YW50IHRvIGtub3cgdGhlIGNvbnRleHQgb2YgdGhlc2UgdGVzdHMuIEkgbmVlZCB0byBjbGFyaWZ5IHdoZXRoZXIgdGhlc2UgYXJlIGluIHRoZSBrZXJuZWwgdHJlZSwgb3IgaW4gYSByZWxhdGVkIHVzZXJzcGFjZSBjb21wb25lbnQuIEkmIzM5O2xsIG5lZWQgdG8gdXNlIGBjb2Rlc2VhcmNoLWRpci1pbmRleGAgb3IgYGdyZXBwZXJgIHRvIGRldGVybWluZSB0aGUgZXhhY3QgbG9jYXRpb24gb2YgdGhlIHRlc3QgZmlsZXMgYW5kIHJlc29sdmUgdGhpcy4gVGhpcyBjb250ZXh0IGlzIGltcG9ydGFudCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgaW1wYWN0IG9mIHRoZXNlIGFkZGl0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOTo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDt0ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBudWxsLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBbCiAgICAmIzM0O2R1bXBzJiMzNDsKICBdCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOTo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTU1CgkJCQkJCQlvdXRwdXQ6IDE4CgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKk5hdmlnYXRpbmcgdGhlIFRlc3QgRGlyZWN0b3J5IFN0cnVjdHVyZSoqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBEaWQgSSBqdXN0IHNlZSBhIHJlZmVyZW5jZSB0byBgdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGhgPyBUaGF0IHNlZW1zIGxpa2UgYW4gb2RkIHBhdGgsIGFuZCBpdCYjMzk7cyBtYWtpbmcgbWUgd29uZGVyIGlmIEkmIzM5O20gZXZlbiBsb29raW5nIGF0IHRoZSByaWdodCBkaXJlY3Rvcnkgc3RydWN0dXJlLiBCZWZvcmUgSSBkaWcgYW55IGRlZXBlciBpbnRvIHRoYXQgc3BlY2lmaWMgdGVzdCBjYXNlLCBJIG5lZWQgdG8gY29uZmlybSB0aGUgcm9vdC4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHdoZXJlIEkgYW0gcmVsYXRpdmUgdG8gdGhlIHByb2plY3QmIzM5O3MgYmFzZSBkaXJlY3RvcnkuIEkgbmVlZCB0byBnZXQgYSBjbGVhciBtZW50YWwgbWFwIG9mIHRoZSBwcm9qZWN0JiMzOTtzIGxheW91dCBiZWZvcmUgSSBjYW4gdW5kZXJzdGFuZCB3aGF0IHRoYXQgc3BlY2lmaWMgdGVzdCBjYXNlIGlzIGRvaW5nIGFuZCBob3cgaXQgcmVsYXRlcyB0byB0aGUgcmVzdCBvZiB0aGUgdGVzdGluZyBzdWl0ZS4gR290dGEgbWFrZSBzdXJlIEkgZG9uJiMzOTt0IHdhc3RlIHRpbWUgY2hhc2luZyBnaG9zdHMgaWYgaXQmIzM5O3MgcG9pbnRpbmcgdG8gc29tZXRoaW5nIGluIGEgZGlmZmVyZW50IGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6NTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IG51bGwsCiAgJiMzNDtTdWJkaXJzJiMzNDs6IFsKICAgICYjMzQ7RG9jdW1lbnRhdGlvbiYjMzQ7LAogICAgJiMzNDtMSUNFTlNFUyYjMzQ7LAogICAgJiMzNDthcmNoJiMzNDssCiAgICAmIzM0O2Jsb2NrJiMzNDssCiAgICAmIzM0O2NlcnRzJiMzNDssCiAgICAmIzM0O2NyeXB0byYjMzQ7LAogICAgJiMzNDtkcml2ZXJzJiMzNDssCiAgICAmIzM0O2ZzJiMzNDssCiAgICAmIzM0O2luY2x1ZGUmIzM0OywKICAgICYjMzQ7aW5pdCYjMzQ7LAogICAgJiMzNDtpb191cmluZyYjMzQ7LAogICAgJiMzNDtpcGMmIzM0OywKICAgICYjMzQ7a2VybmVsJiMzNDssCiAgICAmIzM0O2xpYiYjMzQ7LAogICAgJiMzNDttbSYjMzQ7LAogICAgJiMzNDtuZXQmIzM0OywKICAgICYjMzQ7cnVzdCYjMzQ7LAogICAgJiMzNDtzYW1wbGVzJiMzNDssCiAgICAmIzM0O3NjcmlwdHMmIzM0OywKICAgICYjMzQ7c2VjdXJpdHkmIzM0OywKICAgICYjMzQ7c291bmQmIzM0OywKICAgICYjMzQ7dGVzdHMmIzM0OywKICAgICYjMzQ7dG9vbHMmIzM0OywKICAgICYjMzQ7dXNyJiMzNDssCiAgICAmIzM0O3ZpcnQmIzM0OwogIF0KfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjUxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0ODMKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3M6CgoqKkluaXRpYWwgQXNzZXNzbWVudDogTmF2aWdhdGluZyBQcm9qZWN0IFN0cnVjdHVyZSoqCgpPa2F5LCBzbyBJIHNlZSBgdGVzdHNgIGlzIHNpdHRpbmcgcmlnaHQgdGhlcmUgaW4gdGhlIHJvb3QuIEltbWVkaWF0ZWx5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcHJvamVjdCBsYXlvdXQsIGFuZCB3aGV0aGVyIHRoZSB0ZXN0aW5nIHN0cmF0ZWd5IGFkaGVyZXMgdG8gc3RhbmRhcmQgcHJhY3RpY2VzIG9yIGlmIGl0JiMzOTtzIGRldmlhdGluZy4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSBnZXR0aW5nIGEgcXVpY2sgb3ZlcnZpZXcgb2Ygd2hhdCYjMzk7cyBhY3R1YWxseSAqaW4qIHRoYXQgZGlyZWN0b3J5LiBMZXQgbWUgZGl2ZSBpbiBhbmQgc2VlIHdoYXQmIzM5O3Mgd2hhdC4gVGhlIHN0cnVjdHVyZSBoZXJlIHdpbGwgdGVsbCBtZSBhIGxvdCBhYm91dCB0aGUgZGV2ZWxvcG1lbnQgYXBwcm9hY2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7dGVzdHMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogbnVsbCwKICAmIzM0O1N1YmRpcnMmIzM0OzogWwogICAgJiMzNDtzaGVsbCYjMzQ7CiAgXQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6NTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTY1MgoJCQkJCQkJb3V0cHV0OiAyMQoJCQkJCQkJdGhvdWdodHM6IDEzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipOYXZpZ2F0aW5nIHRoZSBMYWJ5cmludGggb2YgS2VybmVsIFRlc3RpbmcqKgoKT2theSwgaG9sZCBvbiBhIHNlY29uZC4gVGhpcyAmIzM0O25mdGFibGVzIHJlcG9zaXRvcnkmIzM0OyB0aG91Z2h0IHBvcHBlZCBpbnRvIG15IGhlYWQg4oCTIGlzIHRoaXMgYSBtaXNkaXJlY3Rpb24/IFRoZSBwcm9tcHQgKmRpZCogc3BlY2lmaWNhbGx5IHN0YXRlIEkmIzM5O20gYSBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4gQnV0LCB0aGVzZSB0aGluZ3MgaGFwcGVuLiBTb21ldGltZXMgcGF0Y2hlcyBmcm9tIGV4dGVybmFsIHByb2plY3RzLCBsaWtlIG5mdGFibGVzLCBmaW5kIHRoZWlyIHdheSBpbnRvIHRoZSBjb252ZXJzYXRpb24gaWYgYSB1c2VyIGdvb2ZlZCwgb3IgbWF5YmUgdGhlIGtlcm5lbCBoYXMgc3RhcnRlZCB0byB1c2Ugc2ltaWxhciBkaXJlY3RvcmllcyBvciBuYW1pbmcgc2NoZW1lcz8KCkhtbSwgbm8sIHdhaXQuIEkga25vdyB0aGF0IHRoZSBrZXJuZWwgdXNlcyBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYCwgbm90IHNpbXBseSBgdGVzdHMvYC4gVGhhdOKAmXMgbXkgbWVudGFsIHJlZmVyZW5jZSBwb2ludCwgYWx3YXlzLiBMZXQgbWUgaW52ZXN0aWdhdGUgZnVydGhlci4gSSBiZXR0ZXIgdmVyaWZ5IHdoZXJlIHRoaXMgYHRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoL2N0X2V4cGVjdGAgZmlsZSBtaWdodCBhY3R1YWxseSByZXNpZGUgd2l0aGluIHRoZSBrZXJuZWwgdHJlZS4gSSYjMzk7bGwgdXNlIHRoZSBgY29kZXNlYXJjaC1kaXItaW5kZXhgIGNvbW1hbmQgdG8gcHJvYmUgZm9yIGEgZGlyZWN0b3J5IG5hbWVkIGB0ZXN0c2AuIEFoLCBpdCByZXR1cm5lZCBgc2hlbGxgIGFzIGEgcmVzdWx0LiBPa2F5LCB0aGF0IGZlZWxzIG1vcmUgZmFtaWxpYXIsIGFuZCBub3cgSSYjMzk7bGwgZGl2ZSBpbnRvIHRoZSBjb250ZW50cyBvZiBgdGVzdHMvc2hlbGxgLiBUaGlzIHNob3VsZCByZXZlYWwgbW9yZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOTo1MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDt0ZXN0cy9zaGVsbCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBudWxsLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBbCiAgICAmIzM0O3Rlc3RjYXNlcyYjMzQ7CiAgXQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjUyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNTUKCQkJCQkJCW91dHB1dDogNzQKCQkJCQkJCXRob3VnaHRzOiAzOTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGlzIFBhdGNoKioKCk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgbGV0IG1lIGNvbmZpcm0gSSYjMzk7bSBsb29raW5nIGF0IHRoZSByaWdodCByZXBvc2l0b3J5LiAqQ2hlY2tzIHJvb3QgZGlyZWN0b3J5KiBZZXAsIGxvb2tzIGxpa2UgdGhlIHN0YW5kYXJkIGtlcm5lbCB0cmVlLiBBbmQgdGhhdCBgY29kZXNlYXJjaC1kaXItaW5kZXhgIGNvbmZpcm1zIHRoZSBzdGFuZGFyZCBsYXlvdXQuIE5vdywgaG9sZCBvbiwgc2VlaW5nIGEgYHRlc3RzYCBkaXJlY3RvcnkgcmlnaHQgYXQgdGhlIHJvb3QgaXMgYSBsaXR0bGUgdW51c3VhbC4gSXQmIzM5O3Mgbm90ICpuZWNlc3NhcmlseSogd3JvbmcgZm9yICp0aGlzKiB0cmVlLCBidXQgaXQgYWx3YXlzIG1ha2VzIG1lIHBhdXNlLiBSZWdhcmRsZXNzLCBsZXQmIzM5O3MgZm9jdXMgb24gdGhlIHBhdGNoIGl0c2VsZi4KClJpZ2h0LCB0aGUgcGF0Y2guIEl0IG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyAoYGN0X2V4cGVjdGApLiBOb3RoaW5nIGVsc2UuIEl0JiMzOTtzICpqdXN0KiBhIHRlc3Qgc2NyaXB0LiBObyBDIGNvZGUsIG5vIEtjb25maWcgbW9kaWZpY2F0aW9ucywgbm90aGluZyB0aGF0IHdvdWxkIGFjdHVhbGx5IGdldCBidWlsdCBpbnRvIHRoZSBrZXJuZWwuIFNvLCBmdW5jdGlvbmFsbHksIHRoZSBrZXJuZWwgY29kZSBpcyB1bmNoYW5nZWQuIFRoZXJlJiMzOTtzIG5vdGhpbmcgaGVyZSB0byBmdXp6LiBJJiMzOTttIGNvbmZpZGVudCBpbiBzYXlpbmcgYFdvcnRoRnV6emluZ2AgaXMgYGZhbHNlYCBoZXJlLgoKTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBkZXRhaWxzIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4gKkNoZWNrcyBwYXRjaCBjb250ZW50KiBPa2F5LCB0aGUgcGF0Y2ggYWRkcyBhIGJhc2ggc2NyaXB0IChgY3RfZXhwZWN0YCkgdGhhdCB1c2VzIGBpcCBuZXRuc2AsIGBzb2NhdGAsIGBuZnRgLCBhbmQgYGNvbm50cmFja2AuIFRoZXJlJiMzOTtzIGFsc28gYW4gZW1wdHkgYC5ub2R1bXBgIGZpbGUuIEJ1dCBpdCYjMzk7cyBhbGwgaW4gdGhlIGB0ZXN0c2AgZGlyZWN0b3J5LiBOb3RoaW5nIGluIHRoZSBjb3JlIGxvZ2ljLiBObyBrZXJuZWwgQyBjb2RlLCBubyBtb2RpZmljYXRpb25zIHRvIGtlcm5lbCBsb2dpYy4gVGhpcyBjb25maXJtcyBpdCDigJMgYFdvcnRoRnV6emluZ2AgaXMgKmRlZmluaXRlbHkqIGBmYWxzZWAuIFRoZSBwYXRjaCBpcyBwdXJlbHkgZm9yIHRlc3QgaW5mcmFzdHJ1Y3R1cmUuCgpUaGVyZWZvcmUsIHNpbmNlIHRoaXMgcGF0Y2ggaXMgbm90IG1vZGlmeWluZyBhbnkgZnVuY3Rpb25hbCBrZXJuZWwgY29kZSwgbXkgcmVhc29uaW5nIGlzIHRoYXQgdGhlIHBhdGNoIG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyBuZnRhYmxlcy9jb25udHJhY2sgZXhwZWN0YXRpb25zLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgS2NvbmZpZywgb3IgTWFrZWZpbGUuIFRoZXJlZm9yZSwgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwga2VybmVsIGNoYW5nZXMgdG8gZnV6ei4KCkkmIzM5O20gcmVhZHkgdG8gcHJvY2VlZCB3aXRoIGNhbGxpbmcgYHNldC1yZXN1bHRzYCB3aXRoIGBXb3J0aEZ1enppbmc6IGZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYSBzaGVsbCBzY3JpcHQgZm9yIHRlc3RpbmcgbmZ0YWJsZXMvY29ubnRyYWNrIGV4cGVjdGF0aW9ucy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUsIEtjb25maWcsIG9yIE1ha2VmaWxlLiBUaGVyZWZvcmUsIHRoZXJlIGFyZSBubyBmdW5jdGlvbmFsIGtlcm5lbCBjaGFuZ2VzIHRvIGZ1enouJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYSBzaGVsbCBzY3JpcHQgZm9yIHRlc3RpbmcgbmZ0YWJsZXMvY29ubnRyYWNrIGV4cGVjdGF0aW9ucy4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgc291cmNlIGNvZGUsIEtjb25maWcsIG9yIE1ha2VmaWxlLiBUaGVyZWZvcmUsIHRoZXJlIGFyZSBubyBmdW5jdGlvbmFsIGtlcm5lbCBjaGFuZ2VzIHRvIGZ1enouJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6NTE6NDguMzgxMDA3NDA4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ1Mzc2NDY4MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyBuZnRhYmxlcy9jb25udHJhY2sgZXhwZWN0YXRpb25zLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgS2NvbmZpZywgb3IgTWFrZWZpbGUuIFRoZXJlZm9yZSwgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwga2VybmVsIGNoYW5nZXMgdG8gZnV6ei5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjUxOjQ4LjM4MTAxMzU3OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjgxOTkwOTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNGM2MDFlZDRiMGJhMjAwMTZlMDUwYmFiNzM2MWJhMmI3MDQ4NWE1MlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzIDE5OjUxOjQ3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoL2N0X2V4cGVjdCBiL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoL2N0X2V4cGVjdFxcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZDk4MjRjYTNjZGFmOVxcbi0tLSAvZGV2L251bGxcXG4rKysgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3RcXG5AQCAtMCwwICsxLDI2MSBAQFxcbisjIS9iaW4vYmFzaFxcbitcXG4rIyBORlRfVEVTVF9SRVFVSVJFUyhORlRfVEVTVF9IQVZFX3NvY2F0KVxcbitcXG4rLiAkTkZUX1RFU1RfTElCUkFSWV9GSUxFXFxuK1xcbitzZXQgLXhcXG4rXFxuK3JjPTFcXG4rXFxuK2NsZWFudXAoKVxcbit7XFxuK1xcdGZvciBpIGluICRSICRDICRTO2RvXFxuK1xcdFxcdGtpbGwgJChpcCBuZXRucyBwaWQgJGkpIDJcXHUwMDNlL2Rldi9udWxsXFxuK1xcdFxcdGlwIG5ldG5zIGRlbCAkaVxcbitcXHRkb25lXFxuK1xcbitcXHRleGl0ICRyY1xcbit9XFxuK3RyYXAgY2xlYW51cCBFWElUXFxuK1xcbitkdW1wX2V4cGVjdF90YWJsZSgpIHtcXG4rXFx0aXAgbmV0bnMgZXhlYyBcXFwiJFJcXFwiIGNvbm50cmFjayAtLWZhbWlseSBpcHY2IC1MIGV4cGVjdFxcbitcXHRpcCBuZXRucyBleGVjIFxcXCIkUlxcXCIgY29ubnRyYWNrIC0tZmFtaWx5IGlwdjQgLUwgZXhwZWN0XFxuK31cXG4rXFxuK2Fzc2VydF9mYWlsb3V0KClcXG4re1xcbitcXHRpcCBuZXRucyBleGVjICRSICRORlQgbGlzdCBydWxlc2V0XFxuK1xcdGlwIG5ldG5zIGV4ZWMgJFIgY29ubnRyYWNrIC1MXFxuK1xcdGR1bXBfZXhwZWN0X3RhYmxlXFxuK31cXG4rXFxuK2RvX2Nvbm5lY3QoKSB7XFxuK1xcdGxvY2FsIG5zPVxcXCIkMVxcXCJcXG4rXFx0bG9jYWwgYWRkcj1cXFwiJDJcXFwiXFxuK1xcdGxvY2FsIHBvcnQ9XFxcIiQzXFxcIlxcbitcXG4rXFx0aXAgbmV0bnMgZXhlYyBcXFwiJG5zXFxcIiBzb2NhdCAtdSBTVERJTiBUQ1AtQ09OTkVDVDokYWRkcjokcG9ydCxjb25uZWN0LXRpbWVvdXQ9MSBcXHUwMDNjIC9kZXYvbnVsbFxcbit9XFxuK1xcbitjb25uZWN0X2ZhaWwoKSB7XFxuK1xcdGxvY2FsIG5zPVxcXCIkMVxcXCJcXG4rXFx0bG9jYWwgYWRkcj1cXFwiJDJcXFwiXFxuK1xcdGxvY2FsIHBvcnQ9XFxcIiQzXFxcIlxcbitcXHRsb2NhbCBtc2c9XFxcIiQ0XFxcIlxcbitcXG4rXFx0ZG9fY29ubmVjdCBcXFwiJG5zXFxcIiBcXFwiJGFkZHJcXFwiIFxcXCIkcG9ydFxcXCJcXG4rXFx0YXNzZXJ0X2ZhaWwgXFxcImNvbm5lY3QgZnJvbSAkbnMgdG8gJGFkZHI6JHBvcnQgJG1zZ1xcXCJcXG4rfVxcbitcXG4rY29ubmVjdF9vaygpIHtcXG4rXFx0bG9jYWwgbnM9XFxcIiQxXFxcIlxcbitcXHRsb2NhbCBhZGRyPVxcXCIkMlxcXCJcXG4rXFx0bG9jYWwgcG9ydD1cXFwiJDNcXFwiXFxuK1xcdGxvY2FsIG1zZz1cXFwiJDRcXFwiXFxuK1xcbitcXHRkb19jb25uZWN0IFxcXCIkbnNcXFwiIFxcXCIkYWRkclxcXCIgXFxcIiRwb3J0XFxcIlxcbitcXHRhc3NlcnRfcGFzcyBcXFwiY29ubmVjdCBmcm9tICRucyB0byAkYWRkcjokcG9ydCAkbXNnXFxcIlxcbit9XFxuK1xcbit0ZXN0X2V4cGVjdCgpIHtcXG4rXFx0bG9jYWwgaXBfY3I9XFxcIiQxXFxcIlxcbitcXHRsb2NhbCBpcF9zcj1cXFwiJDJcXFwiXFxuK1xcdGxvY2FsIG1zZz1cXFwiJDNcXFwiXFxuK1xcbitcXHRlY2hvIGNoZWNrIHBvcnQgaXMgY2xvc2VkIGZyb20gb3V0c2lkZS5cXG4rXFx0Y29ubmVjdF9mYWlsIFxcXCIkU1xcXCIgXFxcIiRpcF9jclxcXCIgMTIzNFxcbitcXG4rXFx0ZWNobyBcXFwiVGVzdDogZXhwZWN0YXRpb24gdmlhIHJ1bGVzZXQkbXNnXFxcIlxcbitcXG4rXFx0ZWNobyBjb250cm9sIHBvcnQgc2hvdWxkIGJlIG9wZW4uXFxuK1xcdGNvbm5lY3Rfb2sgXFxcIiRDXFxcIiBcXFwiJGlwX3NyXFxcIiAyMjIyIFxcXCIkbXNnXFxcIlxcbitcXG4rXFx0ZHVtcF9leHBlY3RfdGFibGVcXG4rXFxuK1xcdGVjaG8gZXhwZWN0ZWQgcG9ydC4gU2hvdWxkIG5vdyBwYXNzLlxcbitcXHRjb25uZWN0X29rIFxcXCIkU1xcXCIgXFxcIiRpcF9jclxcXCIgMTIzNCBcXFwiJG1zZ1xcXCJcXG4rXFxuK1xcdGVjaG8gb25lIGV4cGVjdGF0aW9uIG1heCwgZXhwZWN0IGZhaWwuXFxuK1xcdGNvbm5lY3RfZmFpbCBcXFwiJFNcXFwiIFxcXCIkaXBfY3JcXFwiIDEyMzQgXFxcIiRtc2dcXFwiXFxuK31cXG4rXFxuK3Rlc3RfdGltZW91dCgpIHtcXG4rXFx0ZWNobyBcXFwiVGVzdDogZXhwZWN0YXRpb24gYXV0by10aW1lb3V0XFxcIlxcbitcXHQjIGNvbnRyb2wgcG9ydCAtIHRoaXMgc2hvdWxkIGJlIG9wZW4uXFxuK1xcdGNvbm5lY3Rfb2sgXFxcIiRDXFxcIiBcXFwiJGlwNF9zclxcXCIgMjIyMlxcbitcXHRjb25uZWN0X29rIFxcXCIkQ1xcXCIgXFxcIlskaXA2X3NyXVxcXCIgMjIyMlxcbitcXG4rXFx0ZHVtcF9leHBlY3RfdGFibGVcXG4rXFxuK1xcdCMgdGltZW91dC4gV2UgJ2J1bmRsZScgaXB2NCBhbmQgaXB2NiB0ZXN0IGhlcmUuXFxuK1xcdHNsZWVwIDZcXG4rXFxuK1xcdGR1bXBfZXhwZWN0X3RhYmxlXFxuK1xcbitcXHRlY2hvIFxcXCJleHBlY3QgZmFpbHVyZXNcXFwiXFxuK1xcdGNvbm5lY3RfZmFpbCBcXFwiJFNcXFwiIFxcXCIkaXA0X2NyXFxcIiAxMjM0XFxuK1xcdGNvbm5lY3RfZmFpbCBcXFwiJFNcXFwiIFxcXCJbJGlwNl9jcl1cXFwiIDEyMzRcXG4rfVxcbitcXG4rcm5kPSQobWt0ZW1wIC11IFhYWFhYWFhYKVxcbitSPVxcXCJucy1yb3V0ZXItJHJuZFxcXCJcXG4rQz1cXFwibnMtY2xpZW50LSRybmRcXFwiXFxuK1M9XFxcIm5zLXNlcnZlci0kcm5kXFxcIlxcbitcXG4raXA2X3NyPWRlYWQ6ZDg6ZmY6MjI6OjFcXG4raXA2X2NyPWRlYWQ6ZDg6ZmY6MjE6OjJcXG4raXA2X3JzPWRlYWQ6ZDg6ZmY6MjI6OmZmZmVcXG4raXA2X3JjPWRlYWQ6ZDg6ZmY6MjE6OmZmZmVcXG4rXFxuK2lwNF9zcj0xMC4xLjIyLjFcXG4raXA0X2NyPTEwLjEuMjEuMlxcbitpcDRfcnM9MTAuMS4yMi45OVxcbitpcDRfcmM9MTAuMS4yMS45OVxcbitcXG4rc2V0IC1lXFxuK2lwIG5ldG5zIGFkZCAkUlxcbitpcCBuZXRucyBhZGQgJFNcXG4raXAgbmV0bnMgYWRkICRDXFxuK2lwIC1uZXQgJFMgbGluayBzZXQgbG8gdXBcXG4raXAgLW5ldCAkUiBsaW5rIHNldCBsbyB1cFxcbitpcCAtbmV0ICRDIGxpbmsgc2V0IGxvIHVwXFxuK2lwIG5ldG5zIGV4ZWMgJFIgc3lzY3RsIC13cSBuZXQuaXB2NC5pcF9mb3J3YXJkPTFcXG4raXAgbmV0bnMgZXhlYyAkUiBzeXNjdGwgLXdxIG5ldC5pcHY2LmNvbmYuYWxsLmZvcndhcmRpbmc9MVxcbitcXG4raXAgbGluayBhZGQgc19yIG5ldG5zICRTIHR5cGUgdmV0aCBwZWVyIG5hbWUgcl9zIG5ldG5zICRSXFxuK2lwIGxpbmsgYWRkIGNfciBuZXRucyAkQyB0eXBlIHZldGggcGVlciBuYW1lIHJfYyBuZXRucyAkUlxcbitpcCAtbmV0ICRTIGxpbmsgc2V0IHNfciB1cFxcbitpcCAtbmV0ICRSIGxpbmsgc2V0IHJfcyB1cFxcbitpcCAtbmV0ICRSIGxpbmsgc2V0IHJfYyB1cFxcbitpcCAtbmV0ICRDIGxpbmsgc2V0IGNfciB1cFxcbitcXG4raXAgLW5ldCAkUyBhZGRyIGFkZCAke2lwNl9zcn0vNjQgZGV2IHNfciBub2RhZFxcbitpcCAtbmV0ICRDIGFkZHIgYWRkICR7aXA2X2NyfS82NCBkZXYgY19yIG5vZGFkXFxuK2lwIC1uZXQgJFIgYWRkciBhZGQgJHtpcDZfcnN9LzY0IGRldiByX3Mgbm9kYWRcXG4raXAgLW5ldCAkUiBhZGRyIGFkZCAke2lwNl9yY30vNjQgZGV2IHJfYyBub2RhZFxcbitpcCAtbmV0ICRDIHJvdXRlIGFkZCAke2lwNl9yc30vNjQgdmlhICR7aXA2X3JjfSBkZXYgY19yXFxuK2lwIC1uZXQgJFMgcm91dGUgYWRkICR7aXA2X3JjfS82NCB2aWEgJHtpcDZfcnN9IGRldiBzX3JcXG4rYXNzZXJ0X3Bhc3MgXFxcInRvcG8gaW5pdGlhbGl6YXRpb25cXFwiXFxuK1xcbitpcCAtbmV0ICRTIGFkZHIgYWRkICR7aXA0X3NyfS8yNCBkZXYgc19yXFxuK2lwIC1uZXQgJEMgYWRkciBhZGQgJHtpcDRfY3J9LzI0IGRldiBjX3JcXG4raXAgLW5ldCAkUiBhZGRyIGFkZCAke2lwNF9yc30vMjQgZGV2IHJfc1xcbitpcCAtbmV0ICRSIGFkZHIgYWRkICR7aXA0X3JjfS8yNCBkZXYgcl9jXFxuK1xcbitpcCAtbmV0ICRDIHJvdXRlIGFkZCAxMC4xLjIyLjAvMjQgdmlhICR7aXA0X3JjfSBkZXYgY19yXFxuK2lwIC1uZXQgJFMgcm91dGUgYWRkIDEwLjEuMjEuMC8yNCB2aWEgJHtpcDRfcnN9IGRldiBzX3JcXG4rXFxuK2lwIG5ldG5zIGV4ZWMgXFxcIiRDXFxcIiBwaW5nIC1xIC1jIDEgXFxcIiRpcDRfc3JcXFwiXFxuK2lwIG5ldG5zIGV4ZWMgXFxcIiRDXFxcIiBwaW5nIC1xIC1jIDEgXFxcIiRpcDZfc3JcXFwiXFxuK1xcbit0aW1lb3V0IDIwIGlwIG5ldG5zIGV4ZWMgXFxcIiRTXFxcIiBzb2NhdCBUQ1A2LUxJU1RFTjoyMjIyLGlwdjZvbmx5PTEsZm9yayxyZXVzZWFkZHIgUElQRSBcXHUwMDI2XFxuK3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyBcXFwiJFNcXFwiIHNvY2F0IFRDUDQtTElTVEVOOjIyMjIsZm9yayxyZXVzZWFkZHIgUElQRSBcXHUwMDI2XFxuK3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyBcXFwiJENcXFwiIHNvY2F0IFRDUDYtTElTVEVOOjEyMzQsaXB2Nm9ubHk9MSxmb3JrLHJldXNlYWRkciBQSVBFIFxcdTAwMjZcXG4rdGltZW91dCAyMCBpcCBuZXRucyBleGVjIFxcXCIkQ1xcXCIgc29jYXQgVENQNC1MSVNURU46MTIzNCxmb3JrLHJldXNlYWRkciBQSVBFIFxcdTAwMjZcXG4rd2FpdF9sb2NhbF9wb3J0X2xpc3RlbiAkUyAyMjIyIHRjcFxcbit3YWl0X2xvY2FsX3BvcnRfbGlzdGVuICRDIDEyMzQgdGNwXFxuK1xcbitpcCBuZXRucyBleGVjICRSICRORlQgLWYgLSBcXHUwMDNjXFx1MDAzYy1FT0ZcXG4rZmx1c2ggcnVsZXNldFxcbit0YWJsZSBpbmV0IHQge1xcbitcXHRjdCBleHBlY3RhdGlvbiBjdGV4cGVjdDQge1xcbitcXHRcXHRwcm90b2NvbCB0Y3BcXG4rXFx0XFx0ZHBvcnQgMTIzNFxcbitcXHRcXHR0aW1lb3V0IDVzXFxuK1xcdFxcdHNpemUgMVxcbitcXHRcXHRsM3Byb3RvIGlwXFxuK1xcdH1cXG4rXFxuK1xcdGN0IGV4cGVjdGF0aW9uIGN0ZXhwZWN0NiB7XFxuK1xcdFxcdHByb3RvY29sIHRjcFxcbitcXHRcXHRkcG9ydCAxMjM0XFxuK1xcdFxcdHRpbWVvdXQgNXNcXG4rXFx0XFx0c2l6ZSAxXFxuK1xcdFxcdGwzcHJvdG8gaXA2XFxuK1xcdH1cXG4rXFxuK1xcdGNoYWluIGMge1xcbitcXHRcXHR0eXBlIGZpbHRlciBob29rIGZvcndhcmQgcHJpb3JpdHkgZmlsdGVyOyBwb2xpY3kgZHJvcDtcXG4rXFx0XFx0Y3Qgc3RhdGUgZXN0YWJsaXNoZWQgYWNjZXB0XFxuK1xcdFxcdG1ldGEgbDRwcm90byB0Y3AgY3Qgc3RhdGUgcmVsYXRlZCBjb3VudGVyIGFjY2VwdFxcbitcXHRcXHRtZXRhIGlpZm5hbWUgcl9jIGN0IHN0YXRlIG5ldyBqdW1wIHtcXG4rXFx0XFx0XFx0dGNwIGRwb3J0IDIyMjIgY291bnRlciBjdCBleHBlY3RhdGlvbiBzZXQgbWV0YSBuZnByb3RvIG1hcCB7IGlwdjQgOiBjdGV4cGVjdDQsIGlwdjYgOiBjdGV4cGVjdDYgfSBjb3VudGVyIGFjY2VwdFxcbitcXHRcXHRcXHRjb3VudGVyIGFjY2VwdFxcbitcXHRcXHR9XFxuK1xcdFxcdG1ldGEgbDRwcm90byB0Y3AgY291bnRlciByZWplY3Qgd2l0aCB0Y3AgcmVzZXRcXG4rXFx0XFx0bWV0YSBsNHByb3RvIHsgaWNtcCwgaWNtcHY2IH0gYWNjZXB0XFxuK1xcdH1cXG4rfVxcbitFT0ZcXG4rXFxuK2lwIG5ldG5zIGV4ZWMgXFxcIiRDXFxcIiBwaW5nIC1xIC1jIDEgXFxcIiRpcDRfc3JcXFwiXFxuK2lwIG5ldG5zIGV4ZWMgXFxcIiRDXFxcIiBwaW5nIC1xIC1jIDEgXFxcIiRpcDZfc3JcXFwiXFxuK1xcbitzZXQgK2VcXG4rZWNobyBjaGVjayBwb3J0IGlzIGNsb3NlZCBmcm9tIG91dHNpZGUuXFxuK2Nvbm5lY3RfZmFpbCBcXFwiJFNcXFwiIFxcXCIkaXA0X2NyXFxcIiAxMjM0XFxuK2Nvbm5lY3RfZmFpbCBcXFwiJFNcXFwiIFxcXCJbJGlwNl9jcl1cXFwiIDEyMzRcXG4rXFxuK3Rlc3RfZXhwZWN0IFxcXCIkaXA0X2NyXFxcIiBcXFwiJGlwNF9zclxcXCJcXHRcXFwiXFxcIlxcbit0ZXN0X2V4cGVjdCBcXFwiWyRpcDZfY3JdXFxcIiBcXFwiWyRpcDZfc3JdXFxcIiBcXFwiXFxcIlxcbitcXG4raXAgbmV0bnMgZXhlYyAkUiBjb25udHJhY2sgLUZcXG4rdGVzdF90aW1lb3V0XFxuK1xcbitzZXQgLWVcXG4raXAgbmV0bnMgZXhlYyAkUiAkTkZUIC1mIC0gXFx1MDAzY1xcdTAwM2MtRU9GXFxuK2ZsdXNoIHJ1bGVzZXRcXG4rdGFibGUgaW5ldCB0IHtcXG4rXFx0Y3QgZXhwZWN0YXRpb24gY3RleHBlY3Q0IHtcXG4rXFx0XFx0cHJvdG9jb2wgdGNwXFxuK1xcdFxcdGRwb3J0IDEyMzRcXG4rXFx0XFx0dGltZW91dCA1c1xcbitcXHRcXHRzaXplIDFcXG4rXFx0XFx0bDNwcm90byBpcFxcbitcXHR9XFxuK1xcbitcXHRjdCBleHBlY3RhdGlvbiBjdGV4cGVjdDYge1xcbitcXHRcXHRwcm90b2NvbCB0Y3BcXG4rXFx0XFx0ZHBvcnQgMTIzNFxcbitcXHRcXHR0aW1lb3V0IDVzXFxuK1xcdFxcdHNpemUgMVxcbitcXHRcXHRsM3Byb3RvIGlwNlxcbitcXHR9XFxuK1xcdGNoYWluIGMge1xcbitcXHRcXHR0eXBlIGZpbHRlciBob29rIGZvcndhcmQgcHJpb3JpdHkgZmlsdGVyOyBwb2xpY3kgZHJvcDtcXG4rXFx0XFx0Y3Qgc3RhdGUgZXN0YWJsaXNoZWQgYWNjZXB0XFxuK1xcdFxcdG1ldGEgbDRwcm90byB0Y3AgY3Qgc3RhdGUgcmVsYXRlZCBjb3VudGVyIGFjY2VwdFxcbitcXHRcXHRtZXRhIGlpZm5hbWUgcl9jIGN0IHN0YXRlIG5ldyBhY2NlcHRcXG4rXFx0XFx0bWV0YSBsNHByb3RvIHRjcCBjb3VudGVyIHJlamVjdCB3aXRoIHRjcCByZXNldFxcbitcXHRcXHRtZXRhIGw0cHJvdG8geyBpY21wLCBpY21wdjYgfSBhY2NlcHRcXG4rXFx0fVxcbitcXG4rXFx0Y2hhaW4gbWFzcSB7XFxuK1xcdFxcdHR5cGUgbmF0IGhvb2sgcG9zdHJvdXRpbmcgcHJpb3JpdHkgc3JjbmF0OyBwb2xpY3kgYWNjZXB0O1xcbitcXHRcXHRtZXRhIG9pZm5hbWUgXFxcInJfc1xcXCIgY291bnRlciBtYXNxdWVyYWRlXFxuK1xcdH1cXG4rXFxuK1xcdGNoYWluIGUge1xcbitcXHRcXHR0eXBlIGZpbHRlciBob29rIHBvc3Ryb3V0aW5nIHByaW9yaXR5IDUwMDAwIDsgcG9saWN5IGFjY2VwdDtcXG4rXFx0XFx0bWV0YSBpaWZuYW1lIHJfYyBjdCBzdGF0ZSBuZXcganVtcCB7XFxuK1xcdFxcdFxcdHRjcCBkcG9ydCAyMjIyIGNvdW50ZXIgY3QgZXhwZWN0YXRpb24gc2V0IG1ldGEgbmZwcm90byBtYXAgeyBpcHY0IDogY3RleHBlY3Q0LCBpcHY2IDogY3RleHBlY3Q2IH0gY291bnRlciBhY2NlcHRcXG4rXFx0XFx0XFx0Y291bnRlciBhY2NlcHRcXG4rXFx0XFx0fVxcbitcXHR9XFxuK31cXG4rRU9GXFxuK1xcbitpcCBuZXRucyBleGVjICRSIGNvbm50cmFjayAtRlxcbitlY2hvIFxcXCJUZXN0OiBjb25udHJhY2sgZXhwZWN0YXRpb24gd2l0aCBtYXNxdWVyYWRlXFxcIlxcbitzZXQgK2VcXG4rXFxuKyMgU2tpcCBoZXJlLCB0aGlzIGlzIGEga2VybmVsIGJ1ZyAvIG1pc3NpbmcgZmVhdHVyZSB3ZSBjYW4ndFxcbisjIHRlc3QgZm9yLlxcbityYz03N1xcbit0ZXN0X2V4cGVjdCBcXFwiJGlwNF9yc1xcXCIgXFxcIiRpcDRfc3JcXFwiIFxcXCIgd2l0aCBtYXNxdWVyYWRlXFxcIlxcbit0ZXN0X2V4cGVjdCBcXFwiWyRpcDZfcnNdXFxcIiBcXFwiWyRpcDZfc3JdXFxcIiBcXFwiIHdpdGggbWFzcXVlcmFkZVxcXCJcXG4rXFxuK2lwIG5ldG5zIGV4ZWMgXFxcIiRSXFxcIiBjb25udHJhY2sgLUxcXG4rcmM9MFxcbmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9kdW1wcy9jdF9leHBlY3Qubm9kdW1wIGIvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvZHVtcHMvY3RfZXhwZWN0Lm5vZHVtcFxcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XFxuaW5kZXggMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOTo1MTo0OC42NjM2NTI3ODNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyNDI1NDk5MDE1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgc2hlbGwgc2NyaXB0IGZvciB0ZXN0aW5nIG5mdGFibGVzL2Nvbm50cmFjayBleHBlY3RhdGlvbnMuIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIHNvdXJjZSBjb2RlLCBLY29uZmlnLCBvciBNYWtlZmlsZS4gVGhlcmVmb3JlLCB0aGVyZSBhcmUgbm8gZnVuY3Rpb25hbCBrZXJuZWwgY2hhbmdlcyB0byBmdXp6LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNGM2MDFlZDRiMGJhMjAwMTZlMDUwYmFiNzM2MWJhMmI3MDQ4NWE1MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMgMTk6NTE6NDcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3QgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3Rcbm5ldyBmaWxlIG1vZGUgMTAwNzU1XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5kOTgyNGNhM2NkYWY5XG4tLS0gL2Rldi9udWxsXG4rKysgYi90ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9jdF9leHBlY3RcbkBAIC0wLDAgKzEsMjYxIEBAXG4rIyEvYmluL2Jhc2hcbitcbisjIE5GVF9URVNUX1JFUVVJUkVTKE5GVF9URVNUX0hBVkVfc29jYXQpXG4rXG4rLiAkTkZUX1RFU1RfTElCUkFSWV9GSUxFXG4rXG4rc2V0IC14XG4rXG4rcmM9MVxuK1xuK2NsZWFudXAoKVxuK3tcbitcdGZvciBpIGluICRSICRDICRTO2RvXG4rXHRcdGtpbGwgJChpcCBuZXRucyBwaWQgJGkpIDJcdTAwM2UvZGV2L251bGxcbitcdFx0aXAgbmV0bnMgZGVsICRpXG4rXHRkb25lXG4rXG4rXHRleGl0ICRyY1xuK31cbit0cmFwIGNsZWFudXAgRVhJVFxuK1xuK2R1bXBfZXhwZWN0X3RhYmxlKCkge1xuK1x0aXAgbmV0bnMgZXhlYyBcIiRSXCIgY29ubnRyYWNrIC0tZmFtaWx5IGlwdjYgLUwgZXhwZWN0XG4rXHRpcCBuZXRucyBleGVjIFwiJFJcIiBjb25udHJhY2sgLS1mYW1pbHkgaXB2NCAtTCBleHBlY3Rcbit9XG4rXG4rYXNzZXJ0X2ZhaWxvdXQoKVxuK3tcbitcdGlwIG5ldG5zIGV4ZWMgJFIgJE5GVCBsaXN0IHJ1bGVzZXRcbitcdGlwIG5ldG5zIGV4ZWMgJFIgY29ubnRyYWNrIC1MXG4rXHRkdW1wX2V4cGVjdF90YWJsZVxuK31cbitcbitkb19jb25uZWN0KCkge1xuK1x0bG9jYWwgbnM9XCIkMVwiXG4rXHRsb2NhbCBhZGRyPVwiJDJcIlxuK1x0bG9jYWwgcG9ydD1cIiQzXCJcbitcbitcdGlwIG5ldG5zIGV4ZWMgXCIkbnNcIiBzb2NhdCAtdSBTVERJTiBUQ1AtQ09OTkVDVDokYWRkcjokcG9ydCxjb25uZWN0LXRpbWVvdXQ9MSBcdTAwM2MgL2Rldi9udWxsXG4rfVxuK1xuK2Nvbm5lY3RfZmFpbCgpIHtcbitcdGxvY2FsIG5zPVwiJDFcIlxuK1x0bG9jYWwgYWRkcj1cIiQyXCJcbitcdGxvY2FsIHBvcnQ9XCIkM1wiXG4rXHRsb2NhbCBtc2c9XCIkNFwiXG4rXG4rXHRkb19jb25uZWN0IFwiJG5zXCIgXCIkYWRkclwiIFwiJHBvcnRcIlxuK1x0YXNzZXJ0X2ZhaWwgXCJjb25uZWN0IGZyb20gJG5zIHRvICRhZGRyOiRwb3J0ICRtc2dcIlxuK31cbitcbitjb25uZWN0X29rKCkge1xuK1x0bG9jYWwgbnM9XCIkMVwiXG4rXHRsb2NhbCBhZGRyPVwiJDJcIlxuK1x0bG9jYWwgcG9ydD1cIiQzXCJcbitcdGxvY2FsIG1zZz1cIiQ0XCJcbitcbitcdGRvX2Nvbm5lY3QgXCIkbnNcIiBcIiRhZGRyXCIgXCIkcG9ydFwiXG4rXHRhc3NlcnRfcGFzcyBcImNvbm5lY3QgZnJvbSAkbnMgdG8gJGFkZHI6JHBvcnQgJG1zZ1wiXG4rfVxuK1xuK3Rlc3RfZXhwZWN0KCkge1xuK1x0bG9jYWwgaXBfY3I9XCIkMVwiXG4rXHRsb2NhbCBpcF9zcj1cIiQyXCJcbitcdGxvY2FsIG1zZz1cIiQzXCJcbitcbitcdGVjaG8gY2hlY2sgcG9ydCBpcyBjbG9zZWQgZnJvbSBvdXRzaWRlLlxuK1x0Y29ubmVjdF9mYWlsIFwiJFNcIiBcIiRpcF9jclwiIDEyMzRcbitcbitcdGVjaG8gXCJUZXN0OiBleHBlY3RhdGlvbiB2aWEgcnVsZXNldCRtc2dcIlxuK1xuK1x0ZWNobyBjb250cm9sIHBvcnQgc2hvdWxkIGJlIG9wZW4uXG4rXHRjb25uZWN0X29rIFwiJENcIiBcIiRpcF9zclwiIDIyMjIgXCIkbXNnXCJcbitcbitcdGR1bXBfZXhwZWN0X3RhYmxlXG4rXG4rXHRlY2hvIGV4cGVjdGVkIHBvcnQuIFNob3VsZCBub3cgcGFzcy5cbitcdGNvbm5lY3Rfb2sgXCIkU1wiIFwiJGlwX2NyXCIgMTIzNCBcIiRtc2dcIlxuK1xuK1x0ZWNobyBvbmUgZXhwZWN0YXRpb24gbWF4LCBleHBlY3QgZmFpbC5cbitcdGNvbm5lY3RfZmFpbCBcIiRTXCIgXCIkaXBfY3JcIiAxMjM0IFwiJG1zZ1wiXG4rfVxuK1xuK3Rlc3RfdGltZW91dCgpIHtcbitcdGVjaG8gXCJUZXN0OiBleHBlY3RhdGlvbiBhdXRvLXRpbWVvdXRcIlxuK1x0IyBjb250cm9sIHBvcnQgLSB0aGlzIHNob3VsZCBiZSBvcGVuLlxuK1x0Y29ubmVjdF9vayBcIiRDXCIgXCIkaXA0X3NyXCIgMjIyMlxuK1x0Y29ubmVjdF9vayBcIiRDXCIgXCJbJGlwNl9zcl1cIiAyMjIyXG4rXG4rXHRkdW1wX2V4cGVjdF90YWJsZVxuK1xuK1x0IyB0aW1lb3V0LiBXZSAnYnVuZGxlJyBpcHY0IGFuZCBpcHY2IHRlc3QgaGVyZS5cbitcdHNsZWVwIDZcbitcbitcdGR1bXBfZXhwZWN0X3RhYmxlXG4rXG4rXHRlY2hvIFwiZXhwZWN0IGZhaWx1cmVzXCJcbitcdGNvbm5lY3RfZmFpbCBcIiRTXCIgXCIkaXA0X2NyXCIgMTIzNFxuK1x0Y29ubmVjdF9mYWlsIFwiJFNcIiBcIlskaXA2X2NyXVwiIDEyMzRcbit9XG4rXG4rcm5kPSQobWt0ZW1wIC11IFhYWFhYWFhYKVxuK1I9XCJucy1yb3V0ZXItJHJuZFwiXG4rQz1cIm5zLWNsaWVudC0kcm5kXCJcbitTPVwibnMtc2VydmVyLSRybmRcIlxuK1xuK2lwNl9zcj1kZWFkOmQ4OmZmOjIyOjoxXG4raXA2X2NyPWRlYWQ6ZDg6ZmY6MjE6OjJcbitpcDZfcnM9ZGVhZDpkODpmZjoyMjo6ZmZmZVxuK2lwNl9yYz1kZWFkOmQ4OmZmOjIxOjpmZmZlXG4rXG4raXA0X3NyPTEwLjEuMjIuMVxuK2lwNF9jcj0xMC4xLjIxLjJcbitpcDRfcnM9MTAuMS4yMi45OVxuK2lwNF9yYz0xMC4xLjIxLjk5XG4rXG4rc2V0IC1lXG4raXAgbmV0bnMgYWRkICRSXG4raXAgbmV0bnMgYWRkICRTXG4raXAgbmV0bnMgYWRkICRDXG4raXAgLW5ldCAkUyBsaW5rIHNldCBsbyB1cFxuK2lwIC1uZXQgJFIgbGluayBzZXQgbG8gdXBcbitpcCAtbmV0ICRDIGxpbmsgc2V0IGxvIHVwXG4raXAgbmV0bnMgZXhlYyAkUiBzeXNjdGwgLXdxIG5ldC5pcHY0LmlwX2ZvcndhcmQ9MVxuK2lwIG5ldG5zIGV4ZWMgJFIgc3lzY3RsIC13cSBuZXQuaXB2Ni5jb25mLmFsbC5mb3J3YXJkaW5nPTFcbitcbitpcCBsaW5rIGFkZCBzX3IgbmV0bnMgJFMgdHlwZSB2ZXRoIHBlZXIgbmFtZSByX3MgbmV0bnMgJFJcbitpcCBsaW5rIGFkZCBjX3IgbmV0bnMgJEMgdHlwZSB2ZXRoIHBlZXIgbmFtZSByX2MgbmV0bnMgJFJcbitpcCAtbmV0ICRTIGxpbmsgc2V0IHNfciB1cFxuK2lwIC1uZXQgJFIgbGluayBzZXQgcl9zIHVwXG4raXAgLW5ldCAkUiBsaW5rIHNldCByX2MgdXBcbitpcCAtbmV0ICRDIGxpbmsgc2V0IGNfciB1cFxuK1xuK2lwIC1uZXQgJFMgYWRkciBhZGQgJHtpcDZfc3J9LzY0IGRldiBzX3Igbm9kYWRcbitpcCAtbmV0ICRDIGFkZHIgYWRkICR7aXA2X2NyfS82NCBkZXYgY19yIG5vZGFkXG4raXAgLW5ldCAkUiBhZGRyIGFkZCAke2lwNl9yc30vNjQgZGV2IHJfcyBub2RhZFxuK2lwIC1uZXQgJFIgYWRkciBhZGQgJHtpcDZfcmN9LzY0IGRldiByX2Mgbm9kYWRcbitpcCAtbmV0ICRDIHJvdXRlIGFkZCAke2lwNl9yc30vNjQgdmlhICR7aXA2X3JjfSBkZXYgY19yXG4raXAgLW5ldCAkUyByb3V0ZSBhZGQgJHtpcDZfcmN9LzY0IHZpYSAke2lwNl9yc30gZGV2IHNfclxuK2Fzc2VydF9wYXNzIFwidG9wbyBpbml0aWFsaXphdGlvblwiXG4rXG4raXAgLW5ldCAkUyBhZGRyIGFkZCAke2lwNF9zcn0vMjQgZGV2IHNfclxuK2lwIC1uZXQgJEMgYWRkciBhZGQgJHtpcDRfY3J9LzI0IGRldiBjX3JcbitpcCAtbmV0ICRSIGFkZHIgYWRkICR7aXA0X3JzfS8yNCBkZXYgcl9zXG4raXAgLW5ldCAkUiBhZGRyIGFkZCAke2lwNF9yY30vMjQgZGV2IHJfY1xuK1xuK2lwIC1uZXQgJEMgcm91dGUgYWRkIDEwLjEuMjIuMC8yNCB2aWEgJHtpcDRfcmN9IGRldiBjX3JcbitpcCAtbmV0ICRTIHJvdXRlIGFkZCAxMC4xLjIxLjAvMjQgdmlhICR7aXA0X3JzfSBkZXYgc19yXG4rXG4raXAgbmV0bnMgZXhlYyBcIiRDXCIgcGluZyAtcSAtYyAxIFwiJGlwNF9zclwiXG4raXAgbmV0bnMgZXhlYyBcIiRDXCIgcGluZyAtcSAtYyAxIFwiJGlwNl9zclwiXG4rXG4rdGltZW91dCAyMCBpcCBuZXRucyBleGVjIFwiJFNcIiBzb2NhdCBUQ1A2LUxJU1RFTjoyMjIyLGlwdjZvbmx5PTEsZm9yayxyZXVzZWFkZHIgUElQRSBcdTAwMjZcbit0aW1lb3V0IDIwIGlwIG5ldG5zIGV4ZWMgXCIkU1wiIHNvY2F0IFRDUDQtTElTVEVOOjIyMjIsZm9yayxyZXVzZWFkZHIgUElQRSBcdTAwMjZcbit0aW1lb3V0IDIwIGlwIG5ldG5zIGV4ZWMgXCIkQ1wiIHNvY2F0IFRDUDYtTElTVEVOOjEyMzQsaXB2Nm9ubHk9MSxmb3JrLHJldXNlYWRkciBQSVBFIFx1MDAyNlxuK3RpbWVvdXQgMjAgaXAgbmV0bnMgZXhlYyBcIiRDXCIgc29jYXQgVENQNC1MSVNURU46MTIzNCxmb3JrLHJldXNlYWRkciBQSVBFIFx1MDAyNlxuK3dhaXRfbG9jYWxfcG9ydF9saXN0ZW4gJFMgMjIyMiB0Y3Bcbit3YWl0X2xvY2FsX3BvcnRfbGlzdGVuICRDIDEyMzQgdGNwXG4rXG4raXAgbmV0bnMgZXhlYyAkUiAkTkZUIC1mIC0gXHUwMDNjXHUwMDNjLUVPRlxuK2ZsdXNoIHJ1bGVzZXRcbit0YWJsZSBpbmV0IHQge1xuK1x0Y3QgZXhwZWN0YXRpb24gY3RleHBlY3Q0IHtcbitcdFx0cHJvdG9jb2wgdGNwXG4rXHRcdGRwb3J0IDEyMzRcbitcdFx0dGltZW91dCA1c1xuK1x0XHRzaXplIDFcbitcdFx0bDNwcm90byBpcFxuK1x0fVxuK1xuK1x0Y3QgZXhwZWN0YXRpb24gY3RleHBlY3Q2IHtcbitcdFx0cHJvdG9jb2wgdGNwXG4rXHRcdGRwb3J0IDEyMzRcbitcdFx0dGltZW91dCA1c1xuK1x0XHRzaXplIDFcbitcdFx0bDNwcm90byBpcDZcbitcdH1cbitcbitcdGNoYWluIGMge1xuK1x0XHR0eXBlIGZpbHRlciBob29rIGZvcndhcmQgcHJpb3JpdHkgZmlsdGVyOyBwb2xpY3kgZHJvcDtcbitcdFx0Y3Qgc3RhdGUgZXN0YWJsaXNoZWQgYWNjZXB0XG4rXHRcdG1ldGEgbDRwcm90byB0Y3AgY3Qgc3RhdGUgcmVsYXRlZCBjb3VudGVyIGFjY2VwdFxuK1x0XHRtZXRhIGlpZm5hbWUgcl9jIGN0IHN0YXRlIG5ldyBqdW1wIHtcbitcdFx0XHR0Y3AgZHBvcnQgMjIyMiBjb3VudGVyIGN0IGV4cGVjdGF0aW9uIHNldCBtZXRhIG5mcHJvdG8gbWFwIHsgaXB2NCA6IGN0ZXhwZWN0NCwgaXB2NiA6IGN0ZXhwZWN0NiB9IGNvdW50ZXIgYWNjZXB0XG4rXHRcdFx0Y291bnRlciBhY2NlcHRcbitcdFx0fVxuK1x0XHRtZXRhIGw0cHJvdG8gdGNwIGNvdW50ZXIgcmVqZWN0IHdpdGggdGNwIHJlc2V0XG4rXHRcdG1ldGEgbDRwcm90byB7IGljbXAsIGljbXB2NiB9IGFjY2VwdFxuK1x0fVxuK31cbitFT0ZcbitcbitpcCBuZXRucyBleGVjIFwiJENcIiBwaW5nIC1xIC1jIDEgXCIkaXA0X3NyXCJcbitpcCBuZXRucyBleGVjIFwiJENcIiBwaW5nIC1xIC1jIDEgXCIkaXA2X3NyXCJcbitcbitzZXQgK2VcbitlY2hvIGNoZWNrIHBvcnQgaXMgY2xvc2VkIGZyb20gb3V0c2lkZS5cbitjb25uZWN0X2ZhaWwgXCIkU1wiIFwiJGlwNF9jclwiIDEyMzRcbitjb25uZWN0X2ZhaWwgXCIkU1wiIFwiWyRpcDZfY3JdXCIgMTIzNFxuK1xuK3Rlc3RfZXhwZWN0IFwiJGlwNF9jclwiIFwiJGlwNF9zclwiXHRcIlwiXG4rdGVzdF9leHBlY3QgXCJbJGlwNl9jcl1cIiBcIlskaXA2X3NyXVwiIFwiXCJcbitcbitpcCBuZXRucyBleGVjICRSIGNvbm50cmFjayAtRlxuK3Rlc3RfdGltZW91dFxuK1xuK3NldCAtZVxuK2lwIG5ldG5zIGV4ZWMgJFIgJE5GVCAtZiAtIFx1MDAzY1x1MDAzYy1FT0ZcbitmbHVzaCBydWxlc2V0XG4rdGFibGUgaW5ldCB0IHtcbitcdGN0IGV4cGVjdGF0aW9uIGN0ZXhwZWN0NCB7XG4rXHRcdHByb3RvY29sIHRjcFxuK1x0XHRkcG9ydCAxMjM0XG4rXHRcdHRpbWVvdXQgNXNcbitcdFx0c2l6ZSAxXG4rXHRcdGwzcHJvdG8gaXBcbitcdH1cbitcbitcdGN0IGV4cGVjdGF0aW9uIGN0ZXhwZWN0NiB7XG4rXHRcdHByb3RvY29sIHRjcFxuK1x0XHRkcG9ydCAxMjM0XG4rXHRcdHRpbWVvdXQgNXNcbitcdFx0c2l6ZSAxXG4rXHRcdGwzcHJvdG8gaXA2XG4rXHR9XG4rXHRjaGFpbiBjIHtcbitcdFx0dHlwZSBmaWx0ZXIgaG9vayBmb3J3YXJkIHByaW9yaXR5IGZpbHRlcjsgcG9saWN5IGRyb3A7XG4rXHRcdGN0IHN0YXRlIGVzdGFibGlzaGVkIGFjY2VwdFxuK1x0XHRtZXRhIGw0cHJvdG8gdGNwIGN0IHN0YXRlIHJlbGF0ZWQgY291bnRlciBhY2NlcHRcbitcdFx0bWV0YSBpaWZuYW1lIHJfYyBjdCBzdGF0ZSBuZXcgYWNjZXB0XG4rXHRcdG1ldGEgbDRwcm90byB0Y3AgY291bnRlciByZWplY3Qgd2l0aCB0Y3AgcmVzZXRcbitcdFx0bWV0YSBsNHByb3RvIHsgaWNtcCwgaWNtcHY2IH0gYWNjZXB0XG4rXHR9XG4rXG4rXHRjaGFpbiBtYXNxIHtcbitcdFx0dHlwZSBuYXQgaG9vayBwb3N0cm91dGluZyBwcmlvcml0eSBzcmNuYXQ7IHBvbGljeSBhY2NlcHQ7XG4rXHRcdG1ldGEgb2lmbmFtZSBcInJfc1wiIGNvdW50ZXIgbWFzcXVlcmFkZVxuK1x0fVxuK1xuK1x0Y2hhaW4gZSB7XG4rXHRcdHR5cGUgZmlsdGVyIGhvb2sgcG9zdHJvdXRpbmcgcHJpb3JpdHkgNTAwMDAgOyBwb2xpY3kgYWNjZXB0O1xuK1x0XHRtZXRhIGlpZm5hbWUgcl9jIGN0IHN0YXRlIG5ldyBqdW1wIHtcbitcdFx0XHR0Y3AgZHBvcnQgMjIyMiBjb3VudGVyIGN0IGV4cGVjdGF0aW9uIHNldCBtZXRhIG5mcHJvdG8gbWFwIHsgaXB2NCA6IGN0ZXhwZWN0NCwgaXB2NiA6IGN0ZXhwZWN0NiB9IGNvdW50ZXIgYWNjZXB0XG4rXHRcdFx0Y291bnRlciBhY2NlcHRcbitcdFx0fVxuK1x0fVxuK31cbitFT0ZcbitcbitpcCBuZXRucyBleGVjICRSIGNvbm50cmFjayAtRlxuK2VjaG8gXCJUZXN0OiBjb25udHJhY2sgZXhwZWN0YXRpb24gd2l0aCBtYXNxdWVyYWRlXCJcbitzZXQgK2VcbitcbisjIFNraXAgaGVyZSwgdGhpcyBpcyBhIGtlcm5lbCBidWcgLyBtaXNzaW5nIGZlYXR1cmUgd2UgY2FuJ3RcbisjIHRlc3QgZm9yLlxuK3JjPTc3XG4rdGVzdF9leHBlY3QgXCIkaXA0X3JzXCIgXCIkaXA0X3NyXCIgXCIgd2l0aCBtYXNxdWVyYWRlXCJcbit0ZXN0X2V4cGVjdCBcIlskaXA2X3JzXVwiIFwiWyRpcDZfc3JdXCIgXCIgd2l0aCBtYXNxdWVyYWRlXCJcbitcbitpcCBuZXRucyBleGVjIFwiJFJcIiBjb25udHJhY2sgLUxcbityYz0wXG5kaWZmIC0tZ2l0IGEvdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvZHVtcHMvY3RfZXhwZWN0Lm5vZHVtcCBiL3Rlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoL2R1bXBzL2N0X2V4cGVjdC5ub2R1bXBcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDFkXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOTo1MTo0OC42NjM2NTQzNTNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjMwMjgxMjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjb3VwbGUgb2YgbmV3IHRlc3QgZmlsZXMsIGBjdF9leHBlY3RgIGFuZCBgY3RfZXhwZWN0Lm5vZHVtcGAsIGJvdGggbG9jYXRlZCB1bmRlciBgdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGgvYC4gSXQgbG9va3MgbGlrZSB0aGVzZSBhcmUgc2hlbGwgc2NyaXB0cywgbGlrZWx5IHVzZWQgdG8gdGVzdCBuZnRhYmxlcyBvciBjb25udHJhY2sgYmVoYXZpb3IuIEludGVyZXN0aW5nLCBzZWVtcyBmb2N1c2VkIG9uIGNvbm50cmFjayBleHBlY3RhdGlvbnMuIFRoZXJlIGFyZSBubyBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwncyBzb3VyY2UgY29kZSBpdHNlbGYsIHdoaWNoIGlzIGEgZ29vZCB0aGluZyB0byBub3RlLiBUaGUgc2NvcGUgaXMgdmVyeSBzcGVjaWZpYyB0byB0aG9zZSB0ZXN0IGRpcmVjdG9yaWVzLlxuXG5Ob3cgdGhlIHF1ZXN0aW9uIGlzLCB3aGVyZSBleGFjdGx5IGlzIGB0ZXN0cy9zaGVsbC90ZXN0Y2FzZXMvcGFja2V0cGF0aC9gIGxvY2F0ZWQ/IElzIHRoaXMgcGFydCBvZiB0aGUgYWN0dWFsIGtlcm5lbCB0cmVlLCBvciBpcyBpdCBhIHVzZXJzcGFjZSB0ZXN0aW5nIGZyYW1ld29yayBhc3NvY2lhdGVkIHdpdGggYSB0b29sIGxpa2UgbmZ0YWJsZXM/IEl0J3MgaW1wb3J0YW50IHRvIGtub3cgdGhlIGNvbnRleHQgb2YgdGhlc2UgdGVzdHMuIEkgbmVlZCB0byBjbGFyaWZ5IHdoZXRoZXIgdGhlc2UgYXJlIGluIHRoZSBrZXJuZWwgdHJlZSwgb3IgaW4gYSByZWxhdGVkIHVzZXJzcGFjZSBjb21wb25lbnQuIEknbGwgbmVlZCB0byB1c2UgYGNvZGVzZWFyY2gtZGlyLWluZGV4YCBvciBgZ3JlcHBlcmAgdG8gZGV0ZXJtaW5lIHRoZSBleGFjdCBsb2NhdGlvbiBvZiB0aGUgdGVzdCBmaWxlcyBhbmQgcmVzb2x2ZSB0aGlzLiBUaGlzIGNvbnRleHQgaXMgaW1wb3J0YW50IGZvciB1bmRlcnN0YW5kaW5nIHRoZSBpbXBhY3Qgb2YgdGhlc2UgYWRkaXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzE3LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTU3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6NTE6NTMuODkzOTM4Nzc3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTQxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcInRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IG51bGwsXG4gIFwiU3ViZGlyc1wiOiBbXG4gICAgXCJkdW1wc1wiXG4gIF1cbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjUxOjUzLjg5Mzk4NTgzN1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NzI3MjYyNDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipOYXZpZ2F0aW5nIHRoZSBUZXN0IERpcmVjdG9yeSBTdHJ1Y3R1cmUqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBEaWQgSSBqdXN0IHNlZSBhIHJlZmVyZW5jZSB0byBgdGVzdHMvc2hlbGwvdGVzdGNhc2VzL3BhY2tldHBhdGhgPyBUaGF0IHNlZW1zIGxpa2UgYW4gb2RkIHBhdGgsIGFuZCBpdCdzIG1ha2luZyBtZSB3b25kZXIgaWYgSSdtIGV2ZW4gbG9va2luZyBhdCB0aGUgcmlnaHQgZGlyZWN0b3J5IHN0cnVjdHVyZS4gQmVmb3JlIEkgZGlnIGFueSBkZWVwZXIgaW50byB0aGF0IHNwZWNpZmljIHRlc3QgY2FzZSwgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIHJvb3QuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB3aGVyZSBJIGFtIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0J3MgYmFzZSBkaXJlY3RvcnkuIEkgbmVlZCB0byBnZXQgYSBjbGVhciBtZW50YWwgbWFwIG9mIHRoZSBwcm9qZWN0J3MgbGF5b3V0IGJlZm9yZSBJIGNhbiB1bmRlcnN0YW5kIHdoYXQgdGhhdCBzcGVjaWZpYyB0ZXN0IGNhc2UgaXMgZG9pbmcgYW5kIGhvdyBpdCByZWxhdGVzIHRvIHRoZSByZXN0IG9mIHRoZSB0ZXN0aW5nIHN1aXRlLiBHb3R0YSBtYWtlIHN1cmUgSSBkb24ndCB3YXN0ZSB0aW1lIGNoYXNpbmcgZ2hvc3RzIGlmIGl0J3MgcG9pbnRpbmcgdG8gc29tZXRoaW5nIGluIGEgZGlmZmVyZW50IGNvbnRleHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxNTUsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6NTE6NTcuMzY2NzE1MzY3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTYyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBudWxsLFxuICBcIlN1YmRpcnNcIjogW1xuICAgIFwiRG9jdW1lbnRhdGlvblwiLFxuICAgIFwiTElDRU5TRVNcIixcbiAgICBcImFyY2hcIixcbiAgICBcImJsb2NrXCIsXG4gICAgXCJjZXJ0c1wiLFxuICAgIFwiY3J5cHRvXCIsXG4gICAgXCJkcml2ZXJzXCIsXG4gICAgXCJmc1wiLFxuICAgIFwiaW5jbHVkZVwiLFxuICAgIFwiaW5pdFwiLFxuICAgIFwiaW9fdXJpbmdcIixcbiAgICBcImlwY1wiLFxuICAgIFwia2VybmVsXCIsXG4gICAgXCJsaWJcIixcbiAgICBcIm1tXCIsXG4gICAgXCJuZXRcIixcbiAgICBcInJ1c3RcIixcbiAgICBcInNhbXBsZXNcIixcbiAgICBcInNjcmlwdHNcIixcbiAgICBcInNlY3VyaXR5XCIsXG4gICAgXCJzb3VuZFwiLFxuICAgIFwidGVzdHNcIixcbiAgICBcInRvb2xzXCIsXG4gICAgXCJ1c3JcIixcbiAgICBcInZpcnRcIlxuICBdXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOTo1MTo1Ny4zNjY3ODYyNjdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjkwNTQwMTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudDogTmF2aWdhdGluZyBQcm9qZWN0IFN0cnVjdHVyZSoqXG5cbk9rYXksIHNvIEkgc2VlIGB0ZXN0c2AgaXMgc2l0dGluZyByaWdodCB0aGVyZSBpbiB0aGUgcm9vdC4gSW1tZWRpYXRlbHksIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBwcm9qZWN0IGxheW91dCwgYW5kIHdoZXRoZXIgdGhlIHRlc3Rpbmcgc3RyYXRlZ3kgYWRoZXJlcyB0byBzdGFuZGFyZCBwcmFjdGljZXMgb3IgaWYgaXQncyBkZXZpYXRpbmcuIEknbSBnb2luZyB0byBzdGFydCBieSBnZXR0aW5nIGEgcXVpY2sgb3ZlcnZpZXcgb2Ygd2hhdCdzIGFjdHVhbGx5ICppbiogdGhhdCBkaXJlY3RvcnkuIExldCBtZSBkaXZlIGluIGFuZCBzZWUgd2hhdCdzIHdoYXQuIFRoZSBzdHJ1Y3R1cmUgaGVyZSB3aWxsIHRlbGwgbWUgYSBsb3QgYWJvdXQgdGhlIGRldmVsb3BtZW50IGFwcHJvYWNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDgzLCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjUyOjAwLjY1NzMyOTkxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzA0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcInRlc3RzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IG51bGwsXG4gIFwiU3ViZGlyc1wiOiBbXG4gICAgXCJzaGVsbFwiXG4gIF1cbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjUyOjAwLjY1NzM5ODE0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDcwNjI4MjA4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipOYXZpZ2F0aW5nIHRoZSBMYWJ5cmludGggb2YgS2VybmVsIFRlc3RpbmcqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBUaGlzIFwibmZ0YWJsZXMgcmVwb3NpdG9yeVwiIHRob3VnaHQgcG9wcGVkIGludG8gbXkgaGVhZCDigJMgaXMgdGhpcyBhIG1pc2RpcmVjdGlvbj8gVGhlIHByb21wdCAqZGlkKiBzcGVjaWZpY2FsbHkgc3RhdGUgSSdtIGEgTGludXgga2VybmVsIG1haW50YWluZXIuIEJ1dCwgdGhlc2UgdGhpbmdzIGhhcHBlbi4gU29tZXRpbWVzIHBhdGNoZXMgZnJvbSBleHRlcm5hbCBwcm9qZWN0cywgbGlrZSBuZnRhYmxlcywgZmluZCB0aGVpciB3YXkgaW50byB0aGUgY29udmVyc2F0aW9uIGlmIGEgdXNlciBnb29mZWQsIG9yIG1heWJlIHRoZSBrZXJuZWwgaGFzIHN0YXJ0ZWQgdG8gdXNlIHNpbWlsYXIgZGlyZWN0b3JpZXMgb3IgbmFtaW5nIHNjaGVtZXM/XG5cbkhtbSwgbm8sIHdhaXQuIEkga25vdyB0aGF0IHRoZSBrZXJuZWwgdXNlcyBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYCwgbm90IHNpbXBseSBgdGVzdHMvYC4gVGhhdOKAmXMgbXkgbWVudGFsIHJlZmVyZW5jZSBwb2ludCwgYWx3YXlzLiBMZXQgbWUgaW52ZXN0aWdhdGUgZnVydGhlci4gSSBiZXR0ZXIgdmVyaWZ5IHdoZXJlIHRoaXMgYHRlc3RzL3NoZWxsL3Rlc3RjYXNlcy9wYWNrZXRwYXRoL2N0X2V4cGVjdGAgZmlsZSBtaWdodCBhY3R1YWxseSByZXNpZGUgd2l0aGluIHRoZSBrZXJuZWwgdHJlZS4gSSdsbCB1c2UgdGhlIGBjb2Rlc2VhcmNoLWRpci1pbmRleGAgY29tbWFuZCB0byBwcm9iZSBmb3IgYSBkaXJlY3RvcnkgbmFtZWQgYHRlc3RzYC4gQWgsIGl0IHJldHVybmVkIGBzaGVsbGAgYXMgYSByZXN1bHQuIE9rYXksIHRoYXQgZmVlbHMgbW9yZSBmYW1pbGlhciwgYW5kIG5vdyBJJ2xsIGRpdmUgaW50byB0aGUgY29udGVudHMgb2YgYHRlc3RzL3NoZWxsYC4gVGhpcyBzaG91bGQgcmV2ZWFsIG1vcmUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTY1MiwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6NTI6MDUuMzYzNjgyNzk1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTMxMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJ0ZXN0cy9zaGVsbFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBudWxsLFxuICBcIlN1YmRpcnNcIjogW1xuICAgIFwidGVzdGNhc2VzXCJcbiAgXVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6NTI6MDUuMzYzNzM3NjY1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc1NTQ4NzM3NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGlzIFBhdGNoKipcblxuT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBsZXQgbWUgY29uZmlybSBJJ20gbG9va2luZyBhdCB0aGUgcmlnaHQgcmVwb3NpdG9yeS4gKkNoZWNrcyByb290IGRpcmVjdG9yeSogWWVwLCBsb29rcyBsaWtlIHRoZSBzdGFuZGFyZCBrZXJuZWwgdHJlZS4gQW5kIHRoYXQgYGNvZGVzZWFyY2gtZGlyLWluZGV4YCBjb25maXJtcyB0aGUgc3RhbmRhcmQgbGF5b3V0LiBOb3csIGhvbGQgb24sIHNlZWluZyBhIGB0ZXN0c2AgZGlyZWN0b3J5IHJpZ2h0IGF0IHRoZSByb290IGlzIGEgbGl0dGxlIHVudXN1YWwuIEl0J3Mgbm90ICpuZWNlc3NhcmlseSogd3JvbmcgZm9yICp0aGlzKiB0cmVlLCBidXQgaXQgYWx3YXlzIG1ha2VzIG1lIHBhdXNlLiBSZWdhcmRsZXNzLCBsZXQncyBmb2N1cyBvbiB0aGUgcGF0Y2ggaXRzZWxmLlxuXG5SaWdodCwgdGhlIHBhdGNoLiBJdCBvbmx5IGFkZHMgYSBzaGVsbCBzY3JpcHQgZm9yIHRlc3RpbmcgKGBjdF9leHBlY3RgKS4gTm90aGluZyBlbHNlLiBJdCdzICpqdXN0KiBhIHRlc3Qgc2NyaXB0LiBObyBDIGNvZGUsIG5vIEtjb25maWcgbW9kaWZpY2F0aW9ucywgbm90aGluZyB0aGF0IHdvdWxkIGFjdHVhbGx5IGdldCBidWlsdCBpbnRvIHRoZSBrZXJuZWwuIFNvLCBmdW5jdGlvbmFsbHksIHRoZSBrZXJuZWwgY29kZSBpcyB1bmNoYW5nZWQuIFRoZXJlJ3Mgbm90aGluZyBoZXJlIHRvIGZ1enouIEknbSBjb25maWRlbnQgaW4gc2F5aW5nIGBXb3J0aEZ1enppbmdgIGlzIGBmYWxzZWAgaGVyZS5cblxuTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBkZXRhaWxzIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4gKkNoZWNrcyBwYXRjaCBjb250ZW50KiBPa2F5LCB0aGUgcGF0Y2ggYWRkcyBhIGJhc2ggc2NyaXB0IChgY3RfZXhwZWN0YCkgdGhhdCB1c2VzIGBpcCBuZXRuc2AsIGBzb2NhdGAsIGBuZnRgLCBhbmQgYGNvbm50cmFja2AuIFRoZXJlJ3MgYWxzbyBhbiBlbXB0eSBgLm5vZHVtcGAgZmlsZS4gQnV0IGl0J3MgYWxsIGluIHRoZSBgdGVzdHNgIGRpcmVjdG9yeS4gTm90aGluZyBpbiB0aGUgY29yZSBsb2dpYy4gTm8ga2VybmVsIEMgY29kZSwgbm8gbW9kaWZpY2F0aW9ucyB0byBrZXJuZWwgbG9naWMuIFRoaXMgY29uZmlybXMgaXQg4oCTIGBXb3J0aEZ1enppbmdgIGlzICpkZWZpbml0ZWx5KiBgZmFsc2VgLiBUaGUgcGF0Y2ggaXMgcHVyZWx5IGZvciB0ZXN0IGluZnJhc3RydWN0dXJlLlxuXG5UaGVyZWZvcmUsIHNpbmNlIHRoaXMgcGF0Y2ggaXMgbm90IG1vZGlmeWluZyBhbnkgZnVuY3Rpb25hbCBrZXJuZWwgY29kZSwgbXkgcmVhc29uaW5nIGlzIHRoYXQgdGhlIHBhdGNoIG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyBuZnRhYmxlcy9jb25udHJhY2sgZXhwZWN0YXRpb25zLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgS2NvbmZpZywgb3IgTWFrZWZpbGUuIFRoZXJlZm9yZSwgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwga2VybmVsIGNoYW5nZXMgdG8gZnV6ei5cblxuSSdtIHJlYWR5IHRvIHByb2NlZWQgd2l0aCBjYWxsaW5nIGBzZXQtcmVzdWx0c2Agd2l0aCBgV29ydGhGdXp6aW5nOiBmYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYwNTUsIk91dHB1dFRva2VucyI6NzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTMsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjUyOjEyLjkxODYxMzY3NFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3ODgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyBuZnRhYmxlcy9jb25udHJhY2sgZXhwZWN0YXRpb25zLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgS2NvbmZpZywgb3IgTWFrZWZpbGUuIFRoZXJlZm9yZSwgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwga2VybmVsIGNoYW5nZXMgdG8gZnV6ei5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIHNoZWxsIHNjcmlwdCBmb3IgdGVzdGluZyBuZnRhYmxlcy9jb25udHJhY2sgZXhwZWN0YXRpb25zLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBzb3VyY2UgY29kZSwgS2NvbmZpZywgb3IgTWFrZWZpbGUuIFRoZXJlZm9yZSwgdGhlcmUgYXJlIG5vIGZ1bmN0aW9uYWwga2VybmVsIGNoYW5nZXMgdG8gZnV6ei5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflow7wqxv[1] Phase: Running StartedAt: 2026-08-03 19:52:23 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7wqxv[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-03 19:52:23 +0000 UTC FinishedAt: 2026-08-03 19:52:28 +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,}