[education/kstars] kstars/ekos/guide: AI Guide: tolerate transient star loss in calibration, weight progress by duration
Jasem Mutlaq <[email protected]> Tue, 4 Aug 2026 18:55:51 +0000 (UTC)
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
R2l0IGNvbW1pdCBkNDE5MTNlMzkyYWVlNjRhNzVkZjEwMzEyNWNlYzBmZDk4YTA2ZGUwIGJ5IEph c2VtIE11dGxhcS4KQ29tbWl0dGVkIG9uIDA0LzA4LzIwMjYgYXQgMTg6NTUuClB1c2hlZCBieSBt dXRsYXFqYSBpbnRvIGJyYW5jaCAnbWFzdGVyJy4KCkFJIEd1aWRlOiB0b2xlcmF0ZSB0cmFuc2ll bnQgc3RhciBsb3NzIGluIGNhbGlicmF0aW9uLCB3ZWlnaHQgcHJvZ3Jlc3MgYnkgZHVyYXRpb24K ClR3byBpbmRlcGVuZGVudCBmaXhlcyBmb3VuZCB3aGlsZSBydW5uaW5nIHRoZSBBSSBHdWlkZSBB c3Npc3RhbnQgb24gYSByZWFsCnJpZyB3aXRoIHBvb3Igc2VlaW5nOgoKMS4gaW50ZXJuYWxndWlk ZXIuY3BwLy5oOiBjYWxpYnJhdGlvbiBwcmV2aW91c2x5IGFib3J0ZWQgdW5jb25kaXRpb25hbGx5 IG9uCiAgIHRoZSB2ZXJ5IGZpcnN0IGxvc3Qtc3RhciBmcmFtZSAoaW50ZXJuYWxndWlkZXIuY3Bw J3MgaXRlcmF0ZUNhbGlicmF0aW9uKCkpLAogICBkaXNjYXJkaW5nIGV2ZXJ5IHN0ZXAgYWxyZWFk eSBjb21wbGV0ZWQgLS0gV2VzdC9FYXN0L05vcnRoIGNvdWxkIGFsbCBiZQogICBkb25lIGFuZCBT b3V0aCB3b3VsZCBzdGlsbCB0aHJvdyBhbGwgb2YgaXQgYXdheSBvbiBvbmUgdHJhbnNpZW50IGJs aXAuCiAgIFRoaXMgaXMgdW5saWtlIGd1aWRpbmcvZGl0aGVyaW5nLCB3aGljaCBhbHJlYWR5IHRv bGVyYXRlCiAgIE1BWF9MT1NUX1NUQVJfVEhSRVNIT0xEIGNvbnNlY3V0aXZlIGxvc3QgZnJhbWVz IGJlZm9yZSBnaXZpbmcgdXAuIEFkZHMgYQogICBkZWRpY2F0ZWQgbV9jYWxpYnJhdGlvblN0YXJM b3N0Q291bnRlciAocmVzZXQgYXQgdGhlIHN0YXJ0IG9mIGVhY2ggZnJlc2gKICAgY2FsaWJyYXRp b24gYXR0ZW1wdCkgc28gYSBsb3N0LXN0YXIgZnJhbWUgbm93IGp1c3Qgd2FpdHMgZm9yIHRoZSBu ZXh0CiAgIGZyYW1lLCBvbmx5IGFib3J0aW5nIG9uY2UgdGhlIHNhbWUgdGhyZXNob2xkIGlzIGV4 Y2VlZGVkLiBNZWFuaW5nZnVsbHkKICAgcmVkdWNlcyBmdWxsIGNhbGlicmF0aW9uIHJlc3RhcnRz IChlYWNoIGFuIGV4cGVuc2l2ZSBzZXZlcmFsLW1pbnV0ZQogICBXZXN0L0Vhc3QvTm9ydGgvU291 dGggc2VxdWVuY2UpIG9uIG5pZ2h0cyB3aXRoIHJvdWdoIHNlZWluZy4KCjIuIGFpZ3VpZGVwcm90 b2NvbC5jcHAvLmg6IHRoZSBBSSBHdWlkZSBBc3Npc3RhbnQncyBwcm9ncmVzcyBiYXIgd2FzIGEg cmF3CiAgIHBoYXNlIGNvdW50IChtX1RvdGFsUGhhc2VzIC0gbV9QaGFzZXMuc2l6ZSgpKSwgd2hp Y2ggYmFkbHkgdW5kZXJzdGF0ZXMKICAgaG93IG11Y2ggaXMgYWN0dWFsbHkgbGVmdCBmb3IgSGFy bW9uaWMgRHJpdmU6IHRoZSAyNCBzaG9ydCBQSUQgQXV0by1UdW5lCiAgIHB1bHNlLXJlc3BvbnNl IHBoYXNlcyBhcmUgODYlIG9mIHRoZSBwaGFzZSBjb3VudCBidXQgb25seSBhIGZyYWN0aW9uIG9m CiAgIHRoZSByZWFsIGR1cmF0aW9uLCBzaW5jZSB0aGUgcmVtYWluaW5nIDQgcGhhc2VzIGluY2x1 ZGUgYSBzdGFuZGFsb25lCiAgIDE4MDBzIHN0YW5kYXJkLWd1aWRpbmcgcGhhc2UuIEEgcnVuIGNv dWxkIHNob3cgIjc4JSIgd2l0aCB0aGUgbG9uZ2VzdAogICBwaGFzZSBzdGlsbCBlbnRpcmVseSBh aGVhZC4gQWRkcyBlc3RpbWF0ZVBoYXNlU2Vjb25kcygpIChzZXR0bGUgKwogICByZXNwb25zZS1m cmFtZXMqZ3VpZGUtZXhwb3N1cmUgKyBvdmVyaGVhZCBmb3IgcHVsc2UtcmVzcG9uc2UgcGhhc2Vz LAogICBkdXJhdGlvbitzZXR0bGUgZm9yIGZyZWUtZHJpZnQvc3RhbmRhcmQtZ3VpZGluZyBwaGFz ZXMsIHBsdXMgYSBzbGV3CiAgIGVzdGltYXRlIHdoZW4gbW92aW5nIHRvIGEgbmV3IHNreSBwb3Np dGlvbikgYW5kIGVzdGltYXRlZEVsYXBzZWRTZWNvbmRzKCkKICAgKHN1bSBvZiBjb21wbGV0ZWQg cGhhc2VzJyBlc3RpbWF0ZXMpLCBhbmQgcmVwb3J0cyBwcm9ncmVzcyBhcyBlc3RpbWF0ZWQKICAg ZWxhcHNlZC90b3RhbCBzZWNvbmRzIGluc3RlYWQgb2YgcmF3IHBoYXNlIGNvdW50LgoKQ28tQXV0 aG9yZWQtQnk6IENsYXVkZSBTb25uZXQgNSA8bm9yZXBseUBhbnRocm9waWMuY29tPgoKTSAgKzcz ICAgLTYgICAga3N0YXJzL2Vrb3MvZ3VpZGUvYWlndWlkZXByb3RvY29sLmNwcApNICArMTMgICAt MCAgICBrc3RhcnMvZWtvcy9ndWlkZS9haWd1aWRlcHJvdG9jb2wuaApNICArMjIgICAtNiAgICBr c3RhcnMvZWtvcy9ndWlkZS9pbnRlcm5hbGd1aWRlL2ludGVybmFsZ3VpZGVyLmNwcApNICArNiAg ICAtMCAgICBrc3RhcnMvZWtvcy9ndWlkZS9pbnRlcm5hbGd1aWRlL2ludGVybmFsZ3VpZGVyLmgK Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvZWR1Y2F0aW9uL2tzdGFycy8tL2NvbW1pdC9kNDE5MTNl MzkyYWVlNjRhNzVkZjEwMzEyNWNlYzBmZDk4YTA2ZGUwCgpkaWZmIC0tZ2l0IGEva3N0YXJzL2Vr b3MvZ3VpZGUvYWlndWlkZXByb3RvY29sLmNwcCBiL2tzdGFycy9la29zL2d1aWRlL2FpZ3VpZGVw cm90b2NvbC5jcHAKaW5kZXggNGExYTIyNWE2My4uNTBjODllMzQyMiAxMDA2NDQKLS0tIGEva3N0 YXJzL2Vrb3MvZ3VpZGUvYWlndWlkZXByb3RvY29sLmNwcAorKysgYi9rc3RhcnMvZWtvcy9ndWlk ZS9haWd1aWRlcHJvdG9jb2wuY3BwCkBAIC0zMjYsMTAgKzMyNiw2MiBAQCB2b2lkIEFJR3VpZGVQ cm90b2NvbDo6c3RhcnQoY29uc3QgUVN0cmluZyAmbW91bnRUeXBlKQogICAgIGVtaXQgcHJvdG9j b2xMb2coUVN0cmluZygiTG9hZGVkICUxIHBoYXNlcyBmb3IgJTIiKS5hcmcobV9QaGFzZXMuc2l6 ZSgpKS5hcmcobW91bnRTdHIpKTsKIAogICAgIG1fVG90YWxQaGFzZXMgPSBtX1BoYXNlcy5zaXpl KCk7CisKKyAgICAvLyBQcm9ncmVzcyB1c2VkIHRvIGJlIHJlcG9ydGVkIGFzIGEgcmF3IHBoYXNl IGNvdW50IChtX1RvdGFsUGhhc2VzIC0gbV9QaGFzZXMuc2l6ZSgpKSwKKyAgICAvLyB3aGljaCBp cyBiYWRseSBtaXNsZWFkaW5nIGZvciBIYXJtb25pYyBEcml2ZTogdGhlIDI0IHNob3J0IFBJRCBB dXRvLVR1bmUgcHVsc2UtcmVzcG9uc2UKKyAgICAvLyBwaGFzZXMgKGVhY2ggfjEgbWludXRlKSBh cmUgODYlIG9mIHRoZSBwaGFzZSBDT1VOVCBidXQgb25seSBhIGZyYWN0aW9uIG9mIHRoZSBhY3R1 YWwKKyAgICAvLyBwcm90b2NvbCBkdXJhdGlvbiwgc2luY2UgdGhlIHJlbWFpbmluZyA0IHBoYXNl cyBpbmNsdWRlIGEgc3RhbmRhbG9uZSAxODAwcworICAgIC8vIHN0YW5kYXJkLWd1aWRpbmcgcGhh c2UuIFRoYXQgbWFkZSB0aGUgcHJvZ3Jlc3MgYmFyIHJlYWQgIjc4JSIgd2l0aCB0aGUgbG9uZ2Vz dCBwaGFzZQorICAgIC8vIHN0aWxsIGVudGlyZWx5IGFoZWFkLiBXZWlnaHQgYnkgZXN0aW1hdGVk IGR1cmF0aW9uIGluc3RlYWQgc28gdGhlIHBlcmNlbnRhZ2UgaXMKKyAgICAvLyBhY3R1YWxseSBy ZXByZXNlbnRhdGl2ZSBvZiB0aW1lIHJlbWFpbmluZywgbm90IHBoYXNlIGNvdW50LgorICAgIG1f UGhhc2VFc3RpbWF0ZWRTZWNvbmRzLmNsZWFyKCk7CisgICAgbV9QaGFzZUVzdGltYXRlZFNlY29u ZHMucmVzZXJ2ZShtX1BoYXNlcy5zaXplKCkpOworICAgIG1fVG90YWxFc3RpbWF0ZWRTZWNvbmRz ID0gMDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fUGhhc2VzLnNpemUoKTsgKytpKQorICAg IHsKKyAgICAgICAgY29uc3QgYm9vbCBuZXdQb3NpdGlvbiA9IChpID09IDApCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8fCBtX1BoYXNlc1tpXS50YXJnZXRBbHQgIT0gbV9QaGFz ZXNbaSAtIDFdLnRhcmdldEFsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwg bV9QaGFzZXNbaV0uYXpPZmZzZXQgIT0gbV9QaGFzZXNbaSAtIDFdLmF6T2Zmc2V0OworICAgICAg ICBjb25zdCBpbnQgZXN0ID0gZXN0aW1hdGVQaGFzZVNlY29uZHMobV9QaGFzZXNbaV0sIG5ld1Bv c2l0aW9uKTsKKyAgICAgICAgbV9QaGFzZUVzdGltYXRlZFNlY29uZHMuYXBwZW5kKGVzdCk7Cisg ICAgICAgIG1fVG90YWxFc3RpbWF0ZWRTZWNvbmRzICs9IGVzdDsKKyAgICB9CisKICAgICBtX1N0 YXRlID0gU1RBVEVfUFJFQ0hFQ0s7CiAgICAgbV9Qcm90b2NvbFRpbWVyLnN0YXJ0KDEwMDApOwog fQogCisvLyBSb3VnaCBwZXItcGhhc2UgZHVyYXRpb24gZXN0aW1hdGUgdXNlZCBvbmx5IHRvIHdl aWdodCB0aGUgcHJvZ3Jlc3MgYmFyIChzZWUgc3RhcnQoKSk7CisvLyBub3QgYSBzY2hlZHVsaW5n IG9yIHRpbWVvdXQgdmFsdWUsIHNvIGl0IGRvZXNuJ3QgbmVlZCB0byBiZSBleGFjdCwganVzdCBw cm9wb3J0aW9uYXRlLgoraW50IEFJR3VpZGVQcm90b2NvbDo6ZXN0aW1hdGVQaGFzZVNlY29uZHMo Y29uc3QgUHJvdG9jb2xQaGFzZSAmcGhhc2UsIGJvb2wgbmV3UG9zaXRpb24pIGNvbnN0Cit7Cisg ICAgY29uc3RleHByIGludCBTTEVXX0VTVElNQVRFX1NFQ09ORFMgPSAzMDsKKyAgICAvLyBTZXR0 bGUvZnJhbWUtYm91bmRhcnktd2FpdC9wdWxzZS1zZXR0bGUgb3ZlcmhlYWQgYXJvdW5kIHRoZSBh Y3R1YWwgcmVzcG9uc2UtZnJhbWUKKyAgICAvLyByZWNvcmRpbmc7IG5vdCBpdHNlbGYgdGltZWQg YW55d2hlcmUsIGVzdGltYXRlZCBmcm9tIG9ic2VydmVkIHJlYWwtcnVuIHB1bHNlLXJlc3BvbnNl CisgICAgLy8gZHVyYXRpb25zICh+NTUtNjBzIGF0IDEyIHJlc3BvbnNlIGZyYW1lcywgMTBzIHNl dHRsZSwgfjEtMnMgZ3VpZGUgZXhwb3N1cmUpLgorICAgIGNvbnN0ZXhwciBpbnQgUFVMU0VfRklY RURfT1ZFUkhFQURfU0VDT05EUyA9IDE1OworICAgIGNvbnN0IGRvdWJsZSBndWlkZUV4cG9zdXJl ID0gKG1fR3VpZGUgJiYgbV9HdWlkZS0+ZXhwb3N1cmUoKSA+IDAuMCkgPyBtX0d1aWRlLT5leHBv c3VyZSgpIDogMi4wOworCisgICAgaW50IHNlY29uZHMgPSBuZXdQb3NpdGlvbiA/IFNMRVdfRVNU SU1BVEVfU0VDT05EUyA6IDA7CisgICAgaWYgKHBoYXNlLnB1bHNlUmVzcG9uc2UpCisgICAgICAg IHNlY29uZHMgKz0gcGhhc2Uuc2V0dGxlU2Vjb25kcyArIHN0YXRpY19jYXN0PGludD4oc3RkOjps cm91bmQocGhhc2UucmVzcG9uc2VGcmFtZXMgKiBndWlkZUV4cG9zdXJlKSkKKyAgICAgICAgICAg ICAgICAgICArIFBVTFNFX0ZJWEVEX09WRVJIRUFEX1NFQ09ORFM7CisgICAgZWxzZQorICAgICAg ICBzZWNvbmRzICs9IHBoYXNlLmR1cmF0aW9uU2Vjb25kcyArIHBoYXNlLnNldHRsZVNlY29uZHM7 CisgICAgcmV0dXJuIHN0ZDo6bWF4KHNlY29uZHMsIDEpOworfQorCisvLyBTdW0gb2YgZXN0aW1h dGVQaGFzZVNlY29uZHMoKSBmb3IgZXZlcnkgcGhhc2UgYWxyZWFkeSBjb21wbGV0ZWQgKHJlbW92 ZWQgZnJvbSBtX1BoYXNlcykuCisvLyBVc2VkIGFzIHRoZSBwcm9ncmVzcy1iYXIgbnVtZXJhdG9y IGluc3RlYWQgb2YgYSByYXcgcGhhc2UgY291bnQ7IHNlZSBzdGFydCgpLgoraW50IEFJR3VpZGVQ cm90b2NvbDo6ZXN0aW1hdGVkRWxhcHNlZFNlY29uZHMoKSBjb25zdAoreworICAgIGNvbnN0IGlu dCBjb21wbGV0ZWQgPSBtX1RvdGFsUGhhc2VzIC0gbV9QaGFzZXMuc2l6ZSgpOworICAgIGludCBz dW0gPSAwOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29tcGxldGVkICYmIGkgPCBtX1BoYXNl RXN0aW1hdGVkU2Vjb25kcy5zaXplKCk7ICsraSkKKyAgICAgICAgc3VtICs9IG1fUGhhc2VFc3Rp bWF0ZWRTZWNvbmRzW2ldOworICAgIHJldHVybiBzdW07Cit9CisKIHZvaWQgQUlHdWlkZVByb3Rv Y29sOjpyZXF1ZXN0VHJhaW5pbmcoKQogewogICAgIGlmIChtX1N5c0lkRGF0YVsic2Vzc2lvbnMi XS50b0FycmF5KCkuaXNFbXB0eSgpKQpAQCAtNjQ0LDcgKzY5Niw3IEBAIHZvaWQgQUlHdWlkZVBy b3RvY29sOjpwcm9jZXNzUHJvdG9jb2woKQogICAgICAgICBjYXNlIFNUQVRFX1NFVFRMSU5HOgog ICAgICAgICAgICAgaWYgKG1fU2V0dGxpbmdUaW1lciA+IDApCiAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgICAgZW1pdCBwcm90b2NvbFByb2dyZXNzKG1fVG90YWxQaGFzZXMgLSBtX1BoYXNl cy5zaXplKCksIG1fVG90YWxQaGFzZXMsCisgICAgICAgICAgICAgICAgZW1pdCBwcm90b2NvbFBy b2dyZXNzKGVzdGltYXRlZEVsYXBzZWRTZWNvbmRzKCksIG1fVG90YWxFc3RpbWF0ZWRTZWNvbmRz LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRU3RyaW5nKCJTZXR0bGlu Zy4uLiAlMXMiKS5hcmcobV9TZXR0bGluZ1RpbWVyKSk7CiAgICAgICAgICAgICAgICAgbV9TZXR0 bGluZ1RpbWVyLS07CiAgICAgICAgICAgICB9CkBAIC03MTYsNyArNzY4LDcgQEAgdm9pZCBBSUd1 aWRlUHJvdG9jb2w6OnByb2Nlc3NQcm90b2NvbCgpCiAKICAgICAgICAgICAgIGlmIChtX0d1aWRl ICYmIG1fR3VpZGUtPnN0YXR1cygpICE9IEdVSURFX0dVSURJTkcgJiYgbV9HdWlkZS0+c3RhdHVz KCkgIT0gR1VJREVfQUJPUlRFRCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBlbWl0 IHByb3RvY29sUHJvZ3Jlc3MobV9Ub3RhbFBoYXNlcyAtIG1fUGhhc2VzLnNpemUoKSwgbV9Ub3Rh bFBoYXNlcywKKyAgICAgICAgICAgICAgICBlbWl0IHByb3RvY29sUHJvZ3Jlc3MoZXN0aW1hdGVk RWxhcHNlZFNlY29uZHMoKSwgbV9Ub3RhbEVzdGltYXRlZFNlY29uZHMsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJXYWl0aW5nIGZvciBHdWlkZXIgdG8gY2FsaWJyYXRl L3N0YXJ0Li4uIik7CiAgICAgICAgICAgICAgICAgbV9GcmFtZVRpbWVyLnN0YXJ0KCk7CiAgICAg ICAgICAgICAgICAgYnJlYWs7CkBAIC03NzMsNyArODI1LDcgQEAgdm9pZCBBSUd1aWRlUHJvdG9j b2w6OnByb2Nlc3NQcm90b2NvbCgpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCiAg ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZW1pdCBwcm90b2NvbFByb2dyZXNzKG1fVG90 YWxQaGFzZXMgLSBtX1BoYXNlcy5zaXplKCksIG1fVG90YWxQaGFzZXMsCisgICAgICAgICAgICAg ICAgZW1pdCBwcm90b2NvbFByb2dyZXNzKGVzdGltYXRlZEVsYXBzZWRTZWNvbmRzKCksIG1fVG90 YWxFc3RpbWF0ZWRTZWNvbmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRU3RyaW5nKCJDYXB0dXJpbmcgRGF0YS4uLiAlMXMgcmVtYWluaW5nIikuYXJnKG1fQ2FwdHVy ZVRpbWVyKSk7CiAgICAgICAgICAgICAgICAgbV9DYXB0dXJlVGltZXItLTsKICAgICAgICAgICAg ICAgICBtX1NlZ21lbnRTZWNvbmRzKys7CkBAIC04NDEsNyArODkzLDcgQEAgdm9pZCBBSUd1aWRl UHJvdG9jb2w6OnByb2Nlc3NQcm90b2NvbCgpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgICAgICB9CiAKLSAgICAgICAgICAgIGVtaXQgcHJvdG9jb2xQcm9ncmVzcyhtX1RvdGFsUGhh c2VzIC0gbV9QaGFzZXMuc2l6ZSgpLCBtX1RvdGFsUGhhc2VzLAorICAgICAgICAgICAgZW1pdCBw cm90b2NvbFByb2dyZXNzKGVzdGltYXRlZEVsYXBzZWRTZWNvbmRzKCksIG1fVG90YWxFc3RpbWF0 ZWRTZWNvbmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFTdHJpbmcoIlJl LWNlbnRlcmluZyBzdGFyLi4uIChSQSAlMVwiIERFQyAlMlwiKSIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLmFyZyhtX0xhc3RSQUVyckFyY3NlYywgMCwgJ2YnLCAxKS5hcmco bV9MYXN0REVDRXJyQXJjc2VjLCAwLCAnZicsIDEpKTsKICAgICAgICAgICAgIG1fUmVjZW50ZXJU aW1lci0tOwpAQCAtODY3LDYgKzkxOSwxOSBAQCB2b2lkIEFJR3VpZGVQcm90b2NvbDo6cHJvY2Vz c1Byb3RvY29sKCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAobV9HdWlkZS0+ c3RhdHVzKCkgPT0gR1VJREVfSURMRSB8fCBtX0d1aWRlLT5zdGF0dXMoKSA9PSBHVUlERV9BQk9S VEVEKQogICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZ3VpZGUoKSBp dHNlbGYgdGFrZXMgYSBmZXcgc2Vjb25kcyB0byB2aXNpYmx5IGxlYXZlIElETEUvQUJPUlRFRCAo c3RhcgorICAgICAgICAgICAgICAgICAgICAvLyBkZXRlY3Rpb24sIGZpcnN0IGNhcHR1cmUsIGV0 Yy4gYmVmb3JlIHRoZSBzdGF0ZSBtYWNoaW5lIHJlYWNoZXMKKyAgICAgICAgICAgICAgICAgICAg Ly8gQ0FMSUJSQVRJTkcpOyBjaGVja2luZyBldmVyeSB0aWNrIHdpdGggbm8gZ3JhY2UgcGVyaW9k IG1lYW50IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgLy8gYnJhbmNoIHJlLWNhbGxlZCBndWlk ZSgpIG9uIG5lYXJseSBldmVyeSB0aWNrIHJpZ2h0IGFmdGVyIHRoZSBjYWxsIHRoYXQKKyAgICAg ICAgICAgICAgICAgICAgLy8gd2FzIGFjdHVhbGx5IHdvcmtpbmcsIGJ1cm5pbmcgYWxsIDMgcmV0 cmllcyBhbmQgc2tpcHBpbmcgdGhlIHB1bHNlCisgICAgICAgICAgICAgICAgICAgIC8vIGJlZm9y ZSBjYWxpYnJhdGlvbiBoYWQgYSBjaGFuY2UgdG8gc2hvdyB1cCBhcyBhIHN0YXR1cyBjaGFuZ2Uu IENvbmZpcm1lZAorICAgICAgICAgICAgICAgICAgICAvLyBpbiBhIHJlYWwgcnVuOiBjYWxpYnJh dGlvbiBnZW51aW5lbHkgc3RhcnRlZCBhbmQgY29tcGxldGVkIGEgZmV3IHNlY29uZHMKKyAgICAg ICAgICAgICAgICAgICAgLy8gYWZ0ZXIgdGhlIHJldHJpZXMgaGFkIGFscmVhZHkgZ2l2ZW4gdXAg YW5kIG1vdmVkIG9uLgorICAgICAgICAgICAgICAgICAgICBpZiAobV9HdWlkZUNhbGxHcmFjZVRp Y2tzID4gMCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg bV9HdWlkZUNhbGxHcmFjZVRpY2tzLS07CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBpZiAobV9BYm9ydFJl dHJpZXMgPj0gMykKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgZW1pdCBwcm90b2NvbExvZygiUHVsc2UgUmVzcG9uc2U6IGd1aWRlIGNhbGlicmF0aW9uIGZh aWxlZCByZXBlYXRlZGx5IC0tIHNraXBwaW5nIHRoaXMgcHVsc2UuIik7CkBAIC04NzgsNiArOTQz LDcgQEAgdm9pZCBBSUd1aWRlUHJvdG9jb2w6OnByb2Nlc3NQcm90b2NvbCgpCiAgICAgICAgICAg ICAgICAgICAgIG1fQWJvcnRSZXRyaWVzKys7CiAgICAgICAgICAgICAgICAgICAgIGVtaXQgcHJv dG9jb2xMb2coIlB1bHNlIFJlc3BvbnNlOiBzdGFydGluZyBndWlkZSBjYWxpYnJhdGlvbi9sb2Nr IGJlZm9yZSBmaXJpbmcgdGVzdCBwdWxzZXMuLi4iKTsKICAgICAgICAgICAgICAgICAgICAgbV9H dWlkZS0+Z3VpZGUoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9HdWlkZUNhbGxHcmFjZVRpY2tz ID0gMTU7IC8vIGxldCBjYWxpYnJhdGlvbiBhY3R1YWxseSBzdGFydCBiZWZvcmUgcmUtY2hlY2tp bmcKICAgICAgICAgICAgICAgICAgICAgbV9QdWxzZVdhdGNoZG9nID0gMzAwOyAvLyB+NSBtaW51 dGVzIGF0IDFIeiBmb3IgY2FsaWJyYXRpb24gdG8gY29tcGxldGUKICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9QdWxzZVdhdGNoZG9nID4gMCkKQEAgLTg5Nyw2 ICs5NjMsNyBAQCB2b2lkIEFJR3VpZGVQcm90b2NvbDo6cHJvY2Vzc1Byb3RvY29sKCkKICAgICAg ICAgICAgIH0KIAogICAgICAgICAgICAgbV9BYm9ydFJldHJpZXMgPSAwOworICAgICAgICAgICAg bV9HdWlkZUNhbGxHcmFjZVRpY2tzID0gMDsKICAgICAgICAgICAgIFByb3RvY29sUGhhc2UgcGhh c2UgPSBtX1BoYXNlcy5maXJzdCgpOwogICAgICAgICAgICAgZW1pdCBwcm90b2NvbExvZyhRU3Ry aW5nKCJQdWxzZSBSZXNwb25zZTogJTEgJTIgJTNtcyDigJQgcHJlcGFyaW5nLi4uIikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLmFyZyhwaGFzZS5wdWxzZUF4aXMsIHBoYXNlLnB1bHNl RGlyZWN0aW9uKS5hcmcocGhhc2UucHVsc2VNYWduaXR1ZGVNcykpOwpAQCAtOTQ5LDcgKzEwMTYs NyBAQCB2b2lkIEFJR3VpZGVQcm90b2NvbDo6cHJvY2Vzc1Byb3RvY29sKCkKICAgICAgICAgICAg IGNvbnN0IGJvb2wgY29tcGxldGVkICAgPSAobV9QdWxzZUZyYW1lQ291bnQgPj0gcGhhc2UucmVz cG9uc2VGcmFtZXMpOwogICAgICAgICAgICAgY29uc3QgYm9vbCBpbnRlcnJ1cHRlZCA9ICghY29t cGxldGVkICYmIChndWlkZXJBYm9ydGVkIHx8IG1fUHVsc2VXYXRjaGRvZyA8PSAwKSk7CiAKLSAg ICAgICAgICAgIGVtaXQgcHJvdG9jb2xQcm9ncmVzcyhtX1RvdGFsUGhhc2VzIC0gbV9QaGFzZXMu c2l6ZSgpLCBtX1RvdGFsUGhhc2VzLAorICAgICAgICAgICAgZW1pdCBwcm90b2NvbFByb2dyZXNz KGVzdGltYXRlZEVsYXBzZWRTZWNvbmRzKCksIG1fVG90YWxFc3RpbWF0ZWRTZWNvbmRzLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFTdHJpbmcoIlJlY29yZGluZyBwdWxzZSBy ZXNwb25zZTogJTEvJTIgZnJhbWVzIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAuYXJnKG1fUHVsc2VGcmFtZUNvdW50KS5hcmcocGhhc2UucmVzcG9uc2VGcmFtZXMpKTsKIApA QCAtMTAyNCw3ICsxMDkxLDcgQEAgdm9pZCBBSUd1aWRlUHJvdG9jb2w6OnByb2Nlc3NQcm90b2Nv bCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChtX1B1bHNlU2V0dGxlVGltZXIgPiAwKQog ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGVtaXQgcHJvdG9jb2xQcm9ncmVzcyhtX1Rv dGFsUGhhc2VzIC0gbV9QaGFzZXMuc2l6ZSgpLCBtX1RvdGFsUGhhc2VzLAorICAgICAgICAgICAg ICAgIGVtaXQgcHJvdG9jb2xQcm9ncmVzcyhlc3RpbWF0ZWRFbGFwc2VkU2Vjb25kcygpLCBtX1Rv dGFsRXN0aW1hdGVkU2Vjb25kcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVN0cmluZygiUHVsc2Ugc2V0dGxpbmcuLi4gJTFzIikuYXJnKG1fUHVsc2VTZXR0bGVUaW1l cikpOwogICAgICAgICAgICAgICAgIG1fUHVsc2VTZXR0bGVUaW1lci0tOwogICAgICAgICAgICAg fQpkaWZmIC0tZ2l0IGEva3N0YXJzL2Vrb3MvZ3VpZGUvYWlndWlkZXByb3RvY29sLmggYi9rc3Rh cnMvZWtvcy9ndWlkZS9haWd1aWRlcHJvdG9jb2wuaAppbmRleCAxZmQ5ZjkxNmQxLi4wMWI2NDI3 OTFjIDEwMDY0NAotLS0gYS9rc3RhcnMvZWtvcy9ndWlkZS9haWd1aWRlcHJvdG9jb2wuaAorKysg Yi9rc3RhcnMvZWtvcy9ndWlkZS9haWd1aWRlcHJvdG9jb2wuaApAQCAtMTcsNiArMTcsNyBAQAog I2luY2x1ZGUgPFFFbGFwc2VkVGltZXI+CiAjaW5jbHVkZSA8UUxpc3Q+CiAjaW5jbHVkZSA8UVN0 cmluZz4KKyNpbmNsdWRlIDxRVmVjdG9yPgogCiBuYW1lc3BhY2UgRWtvcwogewpAQCAtMTYwLDYg KzE2MSwxNSBAQCBjbGFzcyBBSUd1aWRlUHJvdG9jb2wgOiBwdWJsaWMgUU9iamVjdAogICAgICAg ICAvLyBzaG9ydGVyIHRoYW4gaXQuCiAgICAgICAgIHZvaWQgZmx1c2hQaGFzZVNlZ21lbnQoY29u c3QgUHJvdG9jb2xQaGFzZSAmcGhhc2UsIGludCByZWNvcmRlZER1cmF0aW9uKTsKIAorICAgICAg ICAvLyBSb3VnaCBwZXItcGhhc2UgZHVyYXRpb24gZXN0aW1hdGUgKHNlY29uZHMpLCB1c2VkIG9u bHkgdG8gd2VpZ2h0IHRoZSBwcm9ncmVzcyBiYXIKKyAgICAgICAgLy8gYnkgZXhwZWN0ZWQgdGlt ZSByYXRoZXIgdGhhbiByYXcgcGhhc2UgY291bnQ7IHNlZSBzdGFydCgpJ3MgY29tbWVudCBmb3Ig d2h5IGEKKyAgICAgICAgLy8gY291bnQtYmFzZWQgcHJvZ3Jlc3MgYmFyIGlzIGJhZGx5IG1pc2xl YWRpbmcgZm9yIEhhcm1vbmljIERyaXZlIHNwZWNpZmljYWxseS4KKyAgICAgICAgaW50IGVzdGlt YXRlUGhhc2VTZWNvbmRzKGNvbnN0IFByb3RvY29sUGhhc2UgJnBoYXNlLCBib29sIG5ld1Bvc2l0 aW9uKSBjb25zdDsKKyAgICAgICAgLy8gU3VtIG9mIGVzdGltYXRlUGhhc2VTZWNvbmRzKCkgZm9y IGV2ZXJ5IHBoYXNlIGNvbXBsZXRlZCBzbyBmYXIuCisgICAgICAgIGludCBlc3RpbWF0ZWRFbGFw c2VkU2Vjb25kcygpIGNvbnN0OworICAgICAgICBRVmVjdG9yPGludD4gbV9QaGFzZUVzdGltYXRl ZFNlY29uZHM7CisgICAgICAgIGludCBtX1RvdGFsRXN0aW1hdGVkU2Vjb25kcyB7IDAgfTsKKwog ICAgICAgICBQcm90b2NvbFN0YXRlIG1fU3RhdGUgeyBTVEFURV9JRExFIH07CiAgICAgICAgIFFU aW1lciBtX1Byb3RvY29sVGltZXI7CiAgICAgICAgIGRvdWJsZSBtX1RhcmdldEF6IHsgMCB9OwpA QCAtMTY3LDYgKzE3Nyw5IEBAIGNsYXNzIEFJR3VpZGVQcm90b2NvbCA6IHB1YmxpYyBRT2JqZWN0 CiAgICAgICAgIGludCBtX1NldHRsaW5nVGltZXIgeyAwIH07CiAgICAgICAgIGludCBtX0NhcHR1 cmVUaW1lciB7IDAgfTsKICAgICAgICAgaW50IG1fQWJvcnRSZXRyaWVzIHsgMCB9OworICAgICAg ICAvLyBUaWNrcyB0byB3YWl0IGFmdGVyIGNhbGxpbmcgbV9HdWlkZS0+Z3VpZGUoKSBiZWZvcmUg dHJ1c3RpbmcgYSBzdGlsbC1JRExFL0FCT1JURUQKKyAgICAgICAgLy8gc3RhdHVzIGFzIGEgcmVh bCBmYWlsdXJlIHdvcnRoIHJldHJ5aW5nIC0tIHNlZSBTVEFURV9QVUxTRV9SRVNQT05TRV9JTklU LgorICAgICAgICBpbnQgbV9HdWlkZUNhbGxHcmFjZVRpY2tzIHsgMCB9OwogICAgICAgICBib29s IG1fRnJlZURyaWZ0T3ZlcmZsb3cgeyBmYWxzZSB9OwogICAgICAgICBib29sIG1fUGhhc2VBYm9y dGVkIHsgZmFsc2UgfTsKICAgICAgICAgaW50IG1fU2VnbWVudFNlY29uZHMgeyAwIH07ICAgICAg Ly8vPCBzZWNvbmRzIGNhcHR1cmVkIGluIHRoZSBjdXJyZW50IGRyaWZ0IHNlZ21lbnQKZGlmZiAt LWdpdCBhL2tzdGFycy9la29zL2d1aWRlL2ludGVybmFsZ3VpZGUvaW50ZXJuYWxndWlkZXIuY3Bw IGIva3N0YXJzL2Vrb3MvZ3VpZGUvaW50ZXJuYWxndWlkZS9pbnRlcm5hbGd1aWRlci5jcHAKaW5k ZXggOTZjZDQzZThiMy4uYmZjYTUwZWRiNCAxMDA2NDQKLS0tIGEva3N0YXJzL2Vrb3MvZ3VpZGUv aW50ZXJuYWxndWlkZS9pbnRlcm5hbGd1aWRlci5jcHAKKysrIGIva3N0YXJzL2Vrb3MvZ3VpZGUv aW50ZXJuYWxndWlkZS9pbnRlcm5hbGd1aWRlci5jcHAKQEAgLTcxMCw2ICs3MTAsNyBAQCBib29s IEludGVybmFsR3VpZGVyOjpjYWxpYnJhdGUoKQogICAgICAgICAgICAgbmV3IENhbGlicmF0aW9u UHJvY2VzcyhjYWxpYnJhdGlvblN0YXJ0WCwgY2FsaWJyYXRpb25TdGFydFksCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICFPcHRpb25zOjp0d29BeGlzRW5hYmxlZCgpKSk7CiAg ICAgICAgIHN0YXRlID0gR1VJREVfQ0FMSUJSQVRJTkc7CisgICAgICAgIG1fY2FsaWJyYXRpb25T dGFyTG9zdENvdW50ZXIgPSAwOwogICAgICAgICBRX0VNSVQgbmV3U3RhdHVzKEdVSURFX0NBTElC UkFUSU5HKTsKICAgICB9CiAKQEAgLTc3NiwxNCArNzc3LDI5IEBAIHZvaWQgSW50ZXJuYWxHdWlk ZXI6Oml0ZXJhdGVDYWxpYnJhdGlvbigpCiAKICAgICAgICAgaWYgKHBtYXRoLT5pc1N0YXJMb3N0 KCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIFFfRU1JVCBuZXdMb2coaTE4bigiTG9zdCB0cmFj ayBvZiB0aGUgZ3VpZGUgc3Rhci4gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJU cnkgaW5jcmVhc2luZyBiaW5uaW5nLCBzcXVhcmUgc2l6ZSBvciByZWR1Y2luZyBwdWxzZSBkdXJh dGlvbi4iKSk7Ci0gICAgICAgICAgICBRX0VNSVQgbmV3U3RhdHVzKEVrb3M6OkdVSURFX0NBTElC UkFUSU9OX0VSUk9SKTsKLSAgICAgICAgICAgIFFfRU1JVCBjYWxpYnJhdGlvblVwZGF0ZShHdWlk ZUludGVyZmFjZTo6Q0FMSUJSQVRJT05fTUVTU0FHRV9PTkxZLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGkxOG4oIkd1aWRlIFN0YXIgbG9zdC4iKSk7Ci0gICAgICAgICAg ICByZXNldCgpOworICAgICAgICAgICAgLy8gQSBzaW5nbGUgbG9zdC1zdGFyIGZyYW1lIHVzZWQg dG8gYWJvcnQgY2FsaWJyYXRpb24gdW5jb25kaXRpb25hbGx5LCBkaXNjYXJkaW5nCisgICAgICAg ICAgICAvLyBldmVyeSBzdGVwIGFscmVhZHkgY29tcGxldGVkIChXZXN0L0Vhc3QvTm9ydGggY291 bGQgYWxsIGJlIGRvbmUgYW5kIFNvdXRoCisgICAgICAgICAgICAvLyB3b3VsZCBzdGlsbCB0aHJv dyBhbGwgb2YgaXQgYXdheSBvbiBvbmUgYmFkIGZyYW1lKS4gVG9sZXJhdGUgdGhlIHNhbWUgbnVt YmVyCisgICAgICAgICAgICAvLyBvZiBjb25zZWN1dGl2ZSBtaXNzZXMgZ3VpZGluZy9kaXRoZXJp bmcgYWxyZWFkeSBkbyBiZWZvcmUgZ2l2aW5nIHVwLCBzaW5jZSBhCisgICAgICAgICAgICAvLyB0 cmFuc2llbnQgYmxpcCAoc2VlaW5nLCBhIHBhc3NpbmcgY2xvdWQpIGlzIGNvbW1vbiBhbmQgY2Fs aWJyYXRpb24gaXRzZWxmCisgICAgICAgICAgICAvLyB0YWtlcyBsb25nIGVub3VnaCB0aGF0IHJl c3RhcnRpbmcgaXQgZnJvbSBzY3JhdGNoIGVhY2ggdGltZSBpcyBleHBlbnNpdmUuCisgICAgICAg ICAgICBpZiAoKyttX2NhbGlicmF0aW9uU3Rhckxvc3RDb3VudGVyID4gTUFYX0xPU1RfU1RBUl9U SFJFU0hPTEQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcUNEZWJ1ZyhLU1RBUlNf RUtPU19HVUlERSkgPDwgIlRvbyBtYW55IGNvbnNlY3V0aXZlIGxvc3Qgc3RhcnMgZHVyaW5nIGNh bGlicmF0aW9uLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 PCBtX2NhbGlicmF0aW9uU3Rhckxvc3RDb3VudGVyIDw8ICJBYm9ydGluZy4iOworICAgICAgICAg ICAgICAgIFFfRU1JVCBuZXdMb2coaTE4bigiTG9zdCB0cmFjayBvZiB0aGUgZ3VpZGUgc3Rhci4g IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVHJ5IGluY3JlYXNpbmcgYmlu bmluZywgc3F1YXJlIHNpemUgb3IgcmVkdWNpbmcgcHVsc2UgZHVyYXRpb24uIikpOworICAgICAg ICAgICAgICAgIFFfRU1JVCBuZXdTdGF0dXMoRWtvczo6R1VJREVfQ0FMSUJSQVRJT05fRVJST1Ip OworICAgICAgICAgICAgICAgIFFfRU1JVCBjYWxpYnJhdGlvblVwZGF0ZShHdWlkZUludGVyZmFj ZTo6Q0FMSUJSQVRJT05fTUVTU0FHRV9PTkxZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpMThuKCJHdWlkZSBTdGFyIGxvc3QuIikpOworICAgICAgICAgICAgICAg IHJlc2V0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg ICAgICAgcUNEZWJ1ZyhLU1RBUlNfRUtPU19HVUlERSkgPDwgIkNhbGlicmF0aW9uIGxvc3Qgc3Rh ciwgdHJ5IiA8PCBtX2NhbGlicmF0aW9uU3Rhckxvc3RDb3VudGVyCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8PCAib2YiIDw8IHN0YXRpY19jYXN0PGludD4oTUFYX0xP U1RfU1RBUl9USFJFU0hPTEQpIDw8ICI7IHdhaXRpbmcgZm9yIG5leHQgZnJhbWUuIjsKICAgICAg ICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBtX2NhbGlicmF0aW9uU3Rhckxvc3RD b3VudGVyID0gMDsKICAgICB9CiAgICAgZG91YmxlIHN0YXJYLCBzdGFyWTsKICAgICBwbWF0aC0+ Z2V0U3RhclNjcmVlblBvc2l0aW9uKCZzdGFyWCwgJnN0YXJZKTsKZGlmZiAtLWdpdCBhL2tzdGFy cy9la29zL2d1aWRlL2ludGVybmFsZ3VpZGUvaW50ZXJuYWxndWlkZXIuaCBiL2tzdGFycy9la29z L2d1aWRlL2ludGVybmFsZ3VpZGUvaW50ZXJuYWxndWlkZXIuaAppbmRleCBkNTEyNDIyYTdiLi5l YWRkOTVkOTM2IDEwMDY0NAotLS0gYS9rc3RhcnMvZWtvcy9ndWlkZS9pbnRlcm5hbGd1aWRlL2lu dGVybmFsZ3VpZGVyLmgKKysrIGIva3N0YXJzL2Vrb3MvZ3VpZGUvaW50ZXJuYWxndWlkZS9pbnRl cm5hbGd1aWRlci5oCkBAIC0xOTYsNiArMTk2LDEyIEBAIGNsYXNzIEludGVybmFsR3VpZGVyIDog cHVibGljIEd1aWRlSW50ZXJmYWNlCiAgICAgICAgIGJvb2wgbV9pc1N1YkZyYW1lZCB7IGZhbHNl IH07CiAgICAgICAgIGJvb2wgbV9pc0ZpcnN0RnJhbWUgeyBmYWxzZSB9OwogICAgICAgICBpbnQg bV9zdGFyTG9zdENvdW50ZXIgeyAwIH07CisgICAgICAgIC8vIFNlcGFyYXRlIGZyb20gbV9zdGFy TG9zdENvdW50ZXIgKGd1aWRpbmcvZGl0aGVyaW5nJ3Mgb3duIGNvdW50ZXIsIHdpdGggaXRzIG93 bgorICAgICAgICAvLyByZXNldCBwb2ludHMpOiBjYWxpYnJhdGlvbiBwcmV2aW91c2x5IGFib3J0 ZWQgdW5jb25kaXRpb25hbGx5IG9uIHRoZSB2ZXJ5IGZpcnN0CisgICAgICAgIC8vIGxvc3Qtc3Rh ciBmcmFtZSwgZGlzY2FyZGluZyBhbGwgcHJvZ3Jlc3MgKFdlc3QvRWFzdC9Ob3J0aC9Tb3V0aCBz dGVwcyBhbHJlYWR5CisgICAgICAgIC8vIGNvbXBsZXRlZCkgZXZlbiBmb3IgYSBzaW5nbGUgdHJh bnNpZW50IGJsaXAuIFJlc2V0IGF0IHRoZSBzdGFydCBvZiBlYWNoIGZyZXNoCisgICAgICAgIC8v IGNhbGlicmF0aW9uIGF0dGVtcHQ7IHNlZSBpdGVyYXRlQ2FsaWJyYXRpb24oKS4KKyAgICAgICAg aW50IG1fY2FsaWJyYXRpb25TdGFyTG9zdENvdW50ZXIgeyAwIH07CiAKICAgICAgICAgLy8gV2hl biB0cnVlLCB0aGUgZ3VpZGUgY2FtZXJhIGlzIHN0cmVhbWluZyBjb250aW51b3VzbHkuCiAgICAg ICAgIC8vIEluIHRoaXMgbW9kZSBwcm9jZXNzR3VpZGluZygpIG11c3QgTk9UIGVtaXQgZnJhbWVD YXB0dXJlUmVxdWVzdGVkIGFmdGVyIHNlbmRpbmcgcHVsc2VzLAo=