From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Artur Frenszek-Iwicki To: git-commits@fedoraproject.org Subject: [rpms/f2c] rawhide: Update to v20250303 Date: Thu, 27 Aug 2026 02:04:10 GMT Message-ID: <178779625055.1.10867043668771972083.rpms-f2c-3319d6a86eeb@fedoraproject.org> List-ID: X-Git-Repo: rpms/f2c X-Git-Branch: rawhide X-Git-Rev: 3319d6a86eebc3b9cd78528c463ddf09d8a79248 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZjJjCkJyYW5jaCA6 IHJhd2hpZGUKQ29tbWl0IDogMzMxOWQ2YTg2ZWViYzNiOWNkNzg1MjhjNDYzZGRmMDlkOGE3OTI0 OApBdXRob3IgOiBBcnR1ciBGcmVuc3play1Jd2lja2kgPGZlZG9yYUBzdmdhbWVzLnBsPgpEYXRl ICAgOiAyMDI2LTA4LTI2VDIyOjQwOjAwKzAyOjAwClN0YXRzICA6ICszNTc5Ly0zNSBpbiA1IGZp bGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9mMmMvYy8z MzE5ZDZhODZlZWJjM2I5Y2Q3ODUyOGM0NjNkZGYwOWQ4YTc5MjQ4P2JyYW5jaD1yYXdoaWRlCgpM b2c6ClVwZGF0ZSB0byB2MjAyNTAzMDMKCi0tLQpkaWZmIC0tZ2l0IGEvY2hhbmdlcyBiL2NoYW5n ZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFjZjk5MAotLS0gL2Rldi9u dWxsCisrKyBiL2NoYW5nZXMKQEAgLTAsMCArMSwzNTY3IEBACiszMSBBdWcuIDE5ODk6CisgICAx LiBBKG1pbihpLGopKSBub3cgaXMgdHJhbnNsYXRlZCBjb3JyZWN0bHkgKHdoZXJlIEEgaXMgYW4g YXJyYXkpLgorICAgMi4gNyBhbmQgOCBjaGFyYWN0ZXIgdmFyaWFibGUgbmFtZXMgYXJlIGFsbG93 ZWQgKGJ1dCBlbGljaXQgYQorICAgICAgY29tcGxhaW50IHVuZGVyIC1leHQpLgorICAgMy4gTE9H SUNBTCoxIGlzIHRyZWF0ZWQgYXMgTE9HSUNBTCwgd2l0aCBqdXN0IG9uZSBlcnJvciBtZXNzYWdl CisgICAgICBwZXIgTE9HSUNBTCoxIHN0YXRlbWVudCAocmF0aGVyIHRoYW4gb25lIHBlciB2YXJp YWJsZSBkZWNsYXJlZAorICAgICAgaW4gdGhhdCBzdGF0ZW1lbnQpLiAgW05vdGUgdGhhdCBMT0dJ Q0FMKjEgaXMgbm90IGluIEZvcnRyYW4gNzcuXQorICAgICAgTGlrZSBmNzcsIGYyYyBub3cgYWxs b3dzIHRoZSBmb3JtYXQgaW4gYSByZWFkIG9yIHdyaXRlIHN0YXRlbWVudAorICAgICAgdG8gYmUg YW4gaW50ZWdlciBhcnJheS4KKworNSBTZXB0LiAxOTg5OgorICAgRml4ZWQgYm90Y2ggaW4gYXJn dW1lbnQgcGFzc2luZyBvZiBzdWJzdHJpbmdzIG9mIGVxdWl2YWxlbmNlZAordmFyaWFibGVzLgor CisxNSBTZXB0LiAxOTg5OgorICAgV2FybiBhYm91dCBpbmNvcnJlY3QgY29kZSBnZW5lcmF0ZWQg d2hlbiBhIGNoYXJhY3Rlci12YWx1ZWQKK2Z1bmN0aW9uIGlzIG5vdCBkZWNsYXJlZCBleHRlcm5h bCBhbmQgaXMgcGFzc2VkIGFzIGEgcGFyYW1ldGVyCisoaW4gdmlvbGF0aW9uIG9mIHRoZSBGb3J0 cmFuIDc3IHN0YW5kYXJkKSBiZWZvcmUgaXQgaXMgaW52b2tlZC4KK0V4YW1wbGU6CisKKwlzdWJy b3V0aW5lIGZvbyhhLGIpCisJY2hhcmFjdGVyKjEwIGEsYgorCWNhbGwgZ29vKGEsYikKKwliID0g YSgzKQorCWVuZAorCisxOCBTZXB0LiAxOTg5OgorICAgQ29tcGxhaW4gYWJvdXQgb3ZlcmxhcHBp bmcgaW5pdGlhbGl6YXRpb25zLgorCisyMCBTZXB0LiAxOTg5OgorICAgV2FybiBhYm91dCBuYW1l cyBkZWNsYXJlZCBFWFRFUk5BTCBidXQgbmV2ZXIgcmVmZXJlbmNlZDsKK2luY2x1ZGUgc3VjaCBu YW1lcyBhcyBleHRlcm5zIGluIHRoZSBnZW5lcmF0ZWQgQyAoZXZlbgordGhvdWdoIG1vc3QgQyBj b21waWxlcnMgd2lsbCBkaXNjYXJkIHRoZW0pLgorCisyNCBTZXB0LiAxOTg5OgorICAgTmV3IG9w dGlvbiAtdzggdG8gc3VwcHJlc3MgY29tcGxhaW50IHdoZW4gQ09NTU9OIG9yIEVRVUlWQUxFTkNF Citmb3JjZXMgd29yZCBhbGlnbm1lbnQgb2YgYSBkb3VibGUuCisgICBVbmRlciAtQSAoZm9yIEFO U0kgQyksIGVuc3VyZSB0aGF0IGZsb2F0aW5nIGNvbnN0YW50cyAodGVybWluYXRlZAorYnkgJ2Yn KSBjb250YWluIGVpdGhlciBhIGRlY2ltYWwgcG9pbnQgb3IgYW4gZXhwb25lbnQgZmllbGQuCisg ICBSZXBhaXIgYnVncyBzb21ldGltZXMgZW5jb3VudGVyZWQgd2l0aCBDSEFSIGFuZCBJQ0hBUiBp bnRyaW5zaWMKK2Z1bmN0aW9ucy4KKyAgIFJlc3RvcmUgZjc3J3Mgb3B0aW1pemF0aW9ucyBmb3Ig Y29weWluZyBhbmQgY29tcGFyaW5nIGNoYXJhY3Rlcgorc3RyaW5ncyBvZiBsZW5ndGggMS4KKyAg IEFsd2F5cyBhc3N1bWUgZmxvYXRpbmctcG9pbnQgdmFsdWVkIHJvdXRpbmVzIGluIGxpYkY3NyBy ZXR1cm4KK2RvdWJsZXMsIGV2ZW4gdW5kZXIgLVIuCisgICBSZXBhaXIgb2NjYXNpb25hbCBvbWlz c2lvbiBvZiBhcmd1bWVudHMgaW4gcm91dGluZXMgaGF2aW5nIG11bHRpcGxlCitlbnRyeSBwb2lu dHMuCisgICBSZXBhaXIgYnVncyBpbiBjb21wdXRpbmcgb2Zmc2V0cyBvZiBjaGFyYWN0ZXIgc3Ry aW5ncyBpbnZvbHZlZAoraW4gRVFVSVZBTEVOQ0UuCisgICBEb24ndCBvbWl0IHN0cnVjdHVyZSBx dWFsaWZpY2F0aW9uIHdoZW4gQ09NTU9OIHZhcmlhYmxlcyBhcmUgdXNlZAorYXMgRk9STUFUcyBv ciBpbnRlcm5hbCBmaWxlcy4KKworMiBPY3QuIDE5ODk6CisgICBXYXJuIGFib3V0IHZhcmlhYmxl cyB0aGF0IGFwcGVhciBvbmx5IGluIGRhdGEgc3RtdHM7IGRvbid0IGVtaXQgdGhlbS4KKyAgIEZp eCBidWdzIGluIGNoYXJhY3RlciBEQVRBIGZvciBub25jaGFyYWN0ZXIgdmFyaWFibGVzCitpbnZv bHZlZCBpbiBFUVVJVkFMRU5DRS4KKyAgIFRyZWF0IG5vbmNoYXJhY3RlciB2YXJpYWJsZXMgaW5p dGlhbGl6ZWQgKGF0IGxlYXN0IHBhcnRseSkgd2l0aAorY2hhcmFjdGVyIGRhdGEgYXMgdGhvdWdo IHRoZXkgd2VyZSBlcXVpdmFsZW5jZWQgLS0gcHV0IG91dCBhIHN0cnVjdAorYW5kICNkZWZpbmUg dGhlIHZhcmlhYmxlcy4gIFRoaXMgZWxpbWluYXRlcyB0aGUgaGlkZW91cyBhbmQgbm9ucG9ydGFi bGUKK251bWVyaWMgdmFsdWVzIHRoYXQgd2VyZSB1c2VkIHRvIGluaXRpYWxpemUgc3VjaCB2YXJp YWJsZXMuCisgICBUcmVhdCBJTVBMSUNJVCBOT05FIGFzIElNUExJQ0lUIFVOREVGSU5FRChBLVop IC4KKyAgIFF1aXQgd2hlbiBnaXZlbiBpbnZhbGlkIG9wdGlvbnMuCisKKzggT2N0LiAxOTg5Ogor ICBNb2RpZmllZCBuYW1pbmcgc2NoZW1lIGZvciBnZW5lcmF0ZWQgaW50ZXJtZWRpYXRlIHZhcmlh YmxlczsKK21vcmUgYXJlIHJlY3ljbGVkLCBmZXdlciBkaXN0aW5jdCBvbmVzIHVzZWQuCisgIE5l dyBvcHRpb24gLVcgbm4gc3BlY2lmaWVzIG5uIGNoYXJhY3RlcnMvd29yZCBmb3IgSG9sbGVyaXRo CitkYXRhIGluaXRpYWxpemluZyBub24tY2hhcmFjdGVyIHZhcmlhYmxlcy4KKyAgQnVnIGZpeDog eChpOm1pbihpKzEwLGopKSB1c2VkIHRvIGVsaWNpdCAiQ2FuJ3QgaGFuZGxlIG9wY29kZSAzMSB5 ZXQiLgorICBJbnRlZ2VyIGV4cHJlc3Npb25zIG9mIHRoZSBmb3JtIChpK2NvbnN0MSkgLSAoaStj b25zdDIpLCB3aGVyZQoraSBpcyBhIHNjYWxhciBpbnRlZ2VyIHZhcmlhYmxlLCBhcmUgbm93IHNp bXBsaWZpZWQgdG8gKGNvbnN0MS1jb25zdDIpOwordGhpcyBsZWFkcyB0byBzaW1wbGVyIHRyYW5z bGF0aW9uIG9mIHNvbWUgc3Vic3RyaW5nIGV4cHJlc3Npb25zLgorICBJbml0aWFsaXplIHVuaW5p dGlhbGl6ZWQgcG9ydGlvbnMgb2YgY2hhcmFjdGVyIHN0cmluZyBhcnJheXMgdG8gMAorcmF0aGVy IHRoYW4gdG8gYmxhbmtzLgorCis5IE9jdC4gMTk4OToKKyAgTmV3IG9wdGlvbiAtYyB0byBpbnNl cnQgY29tbWVudHMgc2hvd2luZyBvcmlnaW5hbCBGb3J0cmFuIHNvdXJjZS4KKyAgTmV3IG9wdGlv biAtZyB0byBpbnNlcnQgbGluZSBudW1iZXJzIG9mIG9yaWdpbmFsIEZvcnRyYW4gc291cmNlLgor CisxMCBPY3QuIDE5ODk6CisgICEgcmVjb2duaXplZCBhcyBpbi1saW5lIGNvbW1lbnQgZGVsaW1p dGVyIChhIGxhIEZvcnRyYW4gODgpLgorCisyNCBPY3QuIDE5ODk6CisgIE5ldyBvcHRpb25zIHRv IGVhc2UgY29waW5nIHdpdGggc3lzdGVtcyB0aGF0IHdhbnQgdGhlIHN0cnVjdHMKK3RoYXQgcmVz dWx0IGZyb20gQ09NTU9OIGJsb2NrcyB0byBiZSBkZWZpbmVkIGp1c3Qgb25jZToKKyAgLUUgY2F1 c2VzIHVuaW5pdGlhbGl6ZWQgQ09NTU9OIGJsb2NrcyB0byBiZSBkZWNsYXJlZCBFeHRlcm47Citp ZiBFeHRlcm4gaXMgdW5kZWZpbmVkLCBmMmMuaCAjZGVmaW5lcyBpdCB0byBiZSBleHRlcm4uCisg IC1lYyBjYXVzZXMgYSBzZXBhcmF0ZSAuYyBmaWxlIHRvIGJlIGVtaXR0ZWQgZm9yIGVhY2gKK3Vu aW5pdGlhbGl6ZWQgQ09NTU9OIGJsb2NrOiBDT01NT04gL0FCQy8geWllbGRzIGFiY19jb20uYzsK K3RodXMgb25lIGNhbiBjb21waWxlICpfY29tLmMgaW50byBhIGxpYnJhcnkgdG8gZW5zdXJlCitw cmVjaXNlbHkgb25lIGRlZmluaXRpb24uCisgIC1lMWMgaXMgc2ltaWxhciB0byAtZWMsIGV4Y2Vw dCB0aGF0IGV2ZXJ5dGhpbmcgZ29lcyBpbnRvCitvbmUgZmlsZSwgYWxvbmcgd2l0aCBjb21tZW50 cyB0aGF0IGdpdmUgYSBzZWQgc2NyaXB0IGZvcgorc3BsaXR0aW5nIHRoZSBmaWxlIGludG8gdGhl IHBpZWNlcyB0aGF0IC1lYyB3b3VsZCBnaXZlLgorVGhpcyBpcyBmb3IgdXNlIHdpdGggbmV0bGli J3MgImV4ZWN1dGUgZjJjIiBzZXJ2aWNlIChmb3Igd2hpY2gKKy1lYyBpcyBjb2VyY2VkIGludG8g LWUxYywgYW5kIHRoZSBzZWQgc2NyaXB0IHdpbGwgcHV0IGV2ZXJ5dGhpbmcKK2J1dCB0aGUgQ09N TU9OIGRlZmluaXRpb25zIGludG8gZjJjX291dC5jICkuCisKKzI4IE9jdC4gMTk4OToKKyAgQ29u dmVydCAiaSA9IGkgb3AgLi4uIiBpbnRvICJpIG9wPSAuLi47IiBldmVuIHdoZW4gaSBpcyBhCitk dW1teSBhcmd1bWVudC4KKworMTMgTm92LiAxOTg5OgorICBOYW1lIGludGVnZXIgY29uc3RhbnRz IChwYXNzZWQgYXMgYXJndW1lbnRzKSBjX18uLi4gcmF0aGVyCit0aGFuIGNfLi4uIHNvCisJY29t bW9uIC9jL3N0dWZmCisJY2FsbCBmb28oMSkKKwkuLi4KK2lzIHRyYW5zbGF0ZWQgY29ycmVjdGx5 LgorCisxOSBOb3YuIDE5ODk6CisgIEZsb2F0aW5nLXBvaW50IGNvbnN0YW50cyBhcmUgbm93IGtl cHQgYXMgc3RyaW5ncyB1bmxlc3MgdGhleQorYXJlIGludm9sdmVkIGluIGNvbnN0YW50IGV4cHJl c3Npb25zIHRoYXQgZ2V0IHNpbXBsaWZpZWQuICBUaGUKK2Zsb2F0aW5nLXBvaW50IGNvbnN0YW50 cyBrZXB0IGFzIHN0cmluZ3MgY2FuIGhhdmUgYXJiaXRyYXJpbHkKK21hbnkgc2lnbmlmaWNhbnQg ZmlndXJlcyBhbmQgYSB2ZXJ5IGxhcmdlIGV4cG9uZW50IGZpZWxkIChhcworbGFyZ2UgYXMgbG9u ZyBpbnQgYWxsb3dzIG9uIHRoZSBtYWNoaW5lIG9uIHdoaWNoIGYyYyBydW5zKS4KK1RodXMsIGZv ciBleGFtcGxlLCB0aGUgYm9keSBvZgorCisJc3Vicm91dGluZSB6b3QoeCkKKwlkb3VibGUgcHJl Y2lzaW9uIHgoNiksIHBpCisJcGFyYW1ldGVyIChwaT0zLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0 MzM4MzI3OTUwMjg4NDE5NzIpCisJeCgxKSA9IHBpCisJeCgyKSA9IHBpKzEKKwl4KDMpID0gOTI4 NzM0OTgyMzc0OTI3Mi43NDI5ODc0OTIzNzQwOTc4NDkyNzM0RC0yOTgzNzQKKwl4KDQpID0gLjg5 CisJeCg1KSA9IDQuMDAwNQorCXgoNikgPSAxMEQ3CisJZW5kCisKK25vdyBnZXRzIHRyYW5zbGF0 ZWQgaW50bworCisgICAgeFsxXSA9IDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzMzgzMjc5NTAy ODg0MTk3MjsKKyAgICB4WzJdID0gNC4xNDE1OTI2NTM1ODk3OTMxOworICAgIHhbM10gPSA5LjI4 NzM0OTgyMzc0OTI3Mjc0Mjk4NzQ5MjM3NDA5Nzg0OTI3MzRlLTI5ODM1OTsKKyAgICB4WzRdID0g KGZsb2F0KS44OTsKKyAgICB4WzVdID0gKGZsb2F0KTQuMDAwNTsKKyAgICB4WzZdID0gMWU4Owor CityYXRoZXIgdGhhbiB0aGUgZm9ybWVyCisKKyAgICB4WzFdID0gMy4xNDE1OTI2NTM1ODk3OTMx OworICAgIHhbMl0gPSA0LjE0MTU5MjY1MzU4OTc5MzE7CisgICAgeFszXSA9IDAuOworICAgIHhb NF0gPSAoZmxvYXQpMC44OTAwMDAwMDAwMDAwMDAwMzsKKyAgICB4WzVdID0gKGZsb2F0KTQuMDAw NDk5OTk5OTk5OTk5NzsKKyAgICB4WzZdID0gMTAwMDAwMDAwLjsKKworICBSZWNvZ25pdGlvbiBv ZiBmNzcgbWFjaGluZS1jb25zdGFudCBpbnRyaW5zaWNzIGRlbGV0ZWQsIGkuZS4sCitlcGJhc2Us IGVwcHJlYywgZXBlbWluLCBlcGVtYXgsIGVwdGlueSwgZXBodWdlLCBlcG1yc3AuCisKKzIyIE5v di4gMTk4OToKKyAgV29ya2Fyb3VuZHMgZm9yIGdsaXRjaGVzIG9uIHNvbWUgU3VuIHN5c3RlbXMu Li4KKyAgbGliZjc3OiBsaWJGNzcvbWFrZWZpbGUgbW9kaWZpZWQgdG8gcG9pbnQgb3V0IHBvc3Np YmxlIG5lZWQKK3RvIGNvbXBpbGUgbGliRjc3L21haW4uYyB3aXRoIC1Eb25leGl0PW9uX2V4aXQg LgorICBsaWJpNzc6IGxpYkk3Ny93cmVmLmMgKGFuZCBsaWJJNzcvUkVBRE1FKSBtb2RpZmllZCBz byBub24tQU5TSQorc3lzdGVtcyBjYW4gY29tcGlsZSB3aXRoIFVTRV9TVFJMRU4gZGVmaW5lZCwg d2hpY2ggd2lsbCBjYXVzZQorCXNwcmludGYoYiA9IGJ1ZiwgIiUjLipmIiwgZCwgeCk7CisJbiA9 IHN0cmxlbihiKSArIGQxOworcmF0aGVyIHRoYW4KKwluID0gc3ByaW50ZihiID0gYnVmLCAiJSMu KmYiLCBkLCB4KSArIGQxOwordG8gYmUgY29tcGlsZWQuCisKKzI2IE5vdi4gMTk4OToKKyAgTG9u Z2VyIG5hbWVzIGFyZSBub3cgYWNjZXB0ZWQgKHVwIHRvIDUwIGNoYXJhY3RlcnMpOyBuYW1lcyBt YXkKK2NvbnRhaW4gdW5kZXJzY29yZXMgKGluIHdoaWNoIGNhc2UgdGhleSB3aWxsIGhhdmUgdHdv IHVuZGVyc2NvcmVzCithcHBlbmRlZCwgdG8gYXZvaWQgY2xhc2hlcyB3aXRoIGxpYnJhcnkgbmFt ZXMpLgorCisyOCBOb3YuIDE5ODk6CisgIGxpYmk3NyB1cGRhdGVkOgorCTEuIEFsbG93IDMgKG9y LCBvbiBDcmF5cywgNCkgZGlnaXQgZXhwb25lbnRzIHVuZGVyIGZvcm1hdCBFdy5kIC4KKwkyLiBU cnkgdG8gZ2V0IHRoaW5ncyByaWdodCBvbiBtYWNoaW5lcyB3aGVyZSBpbnRzIGhhdmUgMTYgYml0 cy4KKworMjkgTm92LiAxOTg5OgorICBTdXBwbGllZCBtaXNzaW5nIHNlbWljb2xvbiBpbiBwYXJh bWV0ZXJsZXNzIHN1YnJvdXRpbmVzIHRoYXQKK2hhdmUgbXVsdGlwbGUgZW50cnkgcG9pbnRzIChh bGwgb2YgdGhlbSBwYXJhbWV0ZXJsZXNzKS4KKworMzAgTm92LiAxOTg5OgorICBsaWJmNzcgYW5k IGxpYmk3NyByZXZpc2VkIHRvIHVzZSB0eXBlcyBmcm9tIGYyYy5oLgorICBmMmMgbm93IHR5cGVz IGZsb2F0aW5nLXBvaW50IHZhbHVlZCBDIGxpYnJhcnkgcm91dGluZXMgYXMgImRvdWJsZSIKK3Jh dGhlciB0aGFuICJkb3VibGVyZWFsIiAoZm9yIHVzZSB3aXRoIG5vbnN0YW5kYXJkIEMgY29tcGls ZXJzIGZvcgord2hpY2ggImRvdWJsZSIgaXMgSUVFRSBkb3VibGUgZXh0ZW5kZWQpLgorCisxIERl Yy4gMTk4OToKKyAgZjJjLmggdXBkYXRlZCB0byBlbGltaW5hdGUgI2RlZmluZXMgcmVuZGVyZWQg dW5uZWNlc3NhcnkgKGFuZCwKK2luZGVlZCwgZGFuZ2Vyb3VzKSBieSBjaGFuZ2Ugb2YgMjYgTm92 LiB0byBsb25nIG5hbWVzIHBvc3NpYmx5Citjb250YWluaW5nIHVuZGVyc2NvcmVzLgorICBsaWJp NzcgZnVydGhlciByZXZpc2VkOiB5ZXN0ZXJkYXkncyBjaGFuZ2Ugb21pdHRlZCB0d28gdHdlYWtz IHRvIGZtdC5oCisodHdlYWtzIHdoaWNoIG9ubHkgbWF0dGVyIGlmIGZsb2F0IGFuZCByZWFsIG9y IGRvdWJsZSBhbmQgZG91YmxlcmVhbCBhcmUKK2RpZmZlcmVudCB0eXBlcykuCisKKzIgRGVjLiAx OTg5OgorICBCZXR0ZXIgZXJyb3IgbWVzc2FnZSAodGhhbiAiYmFkIHRhZyIpIGZvciBOQU1FTElT VCwgd2hpY2ggbm8gbG9uZ2VyCitpbmhpYml0cyBDIG91dHB1dC4KKworNCBEZWMuIDE5ODk6Cisg IEFsbG93IGNhcGl0YWwgbGV0dGVycyBpbiBoZXggY29uc3RhbnRzIChmNzcgZXh0ZW5zaW9uOyBl LmcuLAoreCdhMDEyQkNkJywgWCdBMDEyQkNEJyBhbmQgeCdhMDEyYmNkJyBhcmUgYWxsIHRyZWF0 ZWQgYXMgdGhlIGludGVnZXIKKzE2Nzg0ODkwOSkuCisgIGxpYmk3NyBmdXJ0aGVyIHJldmlzZWQ6 IGxpby5jIGxpby5oIGxyZWFkLmMgd3JlZi5jIHdydGZtdC5jIHR3ZWFrZWQKK2FnYWluIHRvIGFs bG93IGZsb2F0IGFuZCByZWFsIG9yIGRvdWJsZSBhbmQgZG91YmxlcmVhbCB0byBiZSBkaWZmZXJl bnQuCisKKzYgRGVjLiAxOTg5OgorICBSZXZpc2VkIGYyYy5oIC0tIHJlcXVpcmVkIGZvciB0aGUg Zm9sbG93aW5nLi4uCisgIFNpbXBsZXIgbG9va2luZyB0cmFuc2xhdGlvbnMgZm9yIGFicywgbWlu LCBtYXgsIHVzaW5nICNkZWZpbmVzIGluCityZXZpc2VkIGYyYy5oIC4KKyAgbGliaTc3OiBtb3Jl IGNvcnJlY3Rpb25zIHRvIHR5cGVzOyBhZGRpdGlvbnMgZm9yIE5BTUVMSVNULgorICBDb3JyZWN0 ZWQgY2FzdHMgaW4gc29tZSBJL08gY2FsbHMuCisgIFRyYW5zbGF0aW9uIG9mIE5BTUVMSVNUOyBs aWJpNzcgbXVzdCBzdGlsbCBiZSByZXZpc2VkLiAgQ3VycmVudGx5CitsaWJpNzcgZ2l2ZXMgeW91 IGEgcnVuLXRpbWUgZXJyb3IgbWVzc2FnZSBpZiB5b3UgYXR0ZW1wdCBOQU1FTElTVCBJL08uCisK KzcgRGVjLiAxOTg5OgorICBGaXhlZCBidWcgdGhhdCBwcmV2ZW50ZWQgbG9jYWwgaW50ZWdlciB2 YXJpYWJsZXMgdGhhdCBhcHBlYXIgaW4gREFUQQorc3RtdHMgZnJvbSBiZWluZyBBU1NJR05lZCBz dGF0ZW1lbnQgbGFiZWxzLgorICBGaWxsZXJzIChmb3IgREFUQSBzdGF0ZW1lbnRzIGluaXRpYWxp emluZyBFUVVJVkFMRU5DRWQgdmFyaWFibGVzIGFuZAordmFyaWFibGVzIGluIENPTU1PTikgdHlw ZWQgaW50ZWdlciByYXRoZXIgdGhhbiBkb3VibGVyZWFsIChmb3Igc2xpZ2h0bHkKK21vcmUgcG9y dGFiaWxpdHksIGUuZy4gdG8gQ3JheXMpLgorICBsaWJpNzc6IG1pc3NpbmcgcmV0dXJuIHZhbHVl cyBzdXBwbGllZCBpbiBhIGZldyBwbGFjZXM7IHNvbWUgdGVzdHMKK3Jlb3JkZXJlZCBmb3IgYmV0 dGVyIHdvcmtpbmcgb24gdGhlIENyYXkuCisgIGxpYmY3NzogYmV0dGVyIGFjY3VyYWN5IGZvciBj b21wbGV4IGRpdmlkZSwgY29tcGxleCBzcXVhcmUgcm9vdCwKK3JlYWwgbW9kIGZ1bmN0aW9uIChj YXN0cyB0byBkb3VibGU7IGRvdWJsZSB0ZW1wb3JhcmllcykuCisKKzkgRGVjLiAxOTg5OgorICBG aXhlZCBidWcgdGhhdCBjYXVzZWQgbmVlZGxlc3MgKGFsYmVpdCBoYXJtbGVzcykgZW1wdHkgbGlu ZXMgdG8gYmUKK2luc2VydGVkIGluIHRoZSBDIG91dHB1dCB3aGVuIGEgY29tbWVudCBsaW5lIGNv bnRhaW5lZCB0cmFpbGluZyBibGFua3MuCisgIEZ1cnRoZXIgdHdlYWsgdG8gdHlwZSBvZiBmaWxs ZXJzOiBhbGxvdyBkb3VibGVyZWFsIGZpbGxlcnMgaWYgdGhlCitzdHJ1Y3QgaGFzIGRvdWJsZXJl YWwgZGF0YS4KKworMTEgRGVjLiAxOTg5OgorICBBbHRlcmF0aW9uIG9mIHJ1bGUgZm9yIHByb2R1 Y2luZyBleHRlcm5hbCAoQykgbmFtZXMgZnJvbSBuYW1lcyB0aGF0Citjb250YWluIHVuZGVyc2Nv cmVzLiAgTm93IHRoZSBleHRlcm5hbCBuYW1lIGlzIGFsd2F5cyBvYnRhaW5lZCBieQorYXBwZW5k aW5nIGEgcGFpciBvZiB1bmRlcnNjb3Jlcy4KKworMTIgRGVjLiAxOTg5OgorICBDIHByb2R1Y3Rp b24gaW5oaWJpdGVkIGFmdGVyIG1vc3QgZXJyb3JzLgorCisxNSBEZWMuIDE5ODk6CisgIEZpeGVk IGJ1ZyBpbiBoZWFkZXJzIGZvciBzdWJyb3V0aW5lcyBoYXZpbmcgdHdvIG9yIG1vcmUgY2hhcmFj dGVyCitzdHJpbmdzIGFyZ3VtZW50czogIHRoZSBsZW5ndGggYXJndW1lbnRzIHdlcmUgcmV2ZXJz ZWQuCisKKzE5IERlYy4gMTk4OToKKyAgZjJjLmggbGliZjc3IGxpYmk3NzogYWRqdXN0ZWQgc28g I3VuZGVmcyBpbiBmMmMuaCBzaG91bGQgbm90IGZvaWwKK2NvbXBpbGF0aW9uIG9mIGxpYkY3NyBh bmQgbGliSTc3LgorICBsaWJmNzc6IGdldGVudl8gYWRqdXN0ZWQgdG8gd29yayB3aXRoIHVuc29y dGVkIGVudmlyb25tZW50cy4KKyAgbGliaTc3OiB0aGUgaW9zdGF0PSBzcGVjaWZpZXIgc2hvdWxk IG5vdyB3b3JrIHJpZ2h0IHdpdGggaW50ZXJuYWwgSS9PLgorCisyMCBEZWMuIDE5ODk6CisgIGYy YyBidWdzIGZpeGVkOiBJbiB0aGUgYWJzZW5jZSBvZiBhbiBlcnI9IHNwZWNpZmllciwgdGhlIGlv c3RhdD0KK3NwZWNpZmllciB3YXMgZ2VuZXJhbGx5IHNldCB3cm9uZy4gIENoYXJhY3RlciBzdHJp bmdzIGNvbnRhaW5pbmcKK2V4cGxpY2l0IG51bGxzIChcMCkgd2VyZSB0cnVuY2F0ZWQgYXQgdGhl IGZpcnN0IG51bGwuCisgIFVubGFiZWxlZCBETyBsb29wcyByZWNvZ25pemVkOyBtdXN0IGJlIHRl cm1pbmF0ZWQgYnkgRU5ERE8uCisoRG9uJ3QgYXNrIGZvciBDWUNMRSwgRVhJVCwgbmFtZWQgRE8g bG9vcHMsIG9yIERPIFdISUxFLikKKworMjkgRGVjLiAxOTg5OgorICBOZXN0ZWQgdW5sYWJlbGVk IERPIGxvb3BzIG5vdyBoYW5kbGVkIHByb3Blcmx5OyBuZXcgd2FybmluZyBmb3IKK2V4dHJhbmVv dXMgdGV4dCBhdCBlbmQgb2YgRk9STUFULgorCiszMCBEZWMuIDE5ODk6CisgIEZpeGVkIGJ1ZyBp biB0cmFuc2xhdGluZyBkYmxlKHJlYWwoLi4uKSksIGRibGUoc25nbCguLi4pKSwgYW5kCitkYmxl KGZsb2F0KC4uLikpLCB3aGVyZSAuLi4gaXMgZWl0aGVyIG9mIHR5cGUgZG91YmxlIGNvbXBsZXgg b3IKK2lzIGFuIGV4cHJlc3Npb24gcmVxdWlyaW5nIGFzc2lnbm1lbnQgdG8gaW50ZXJtZWRpYXRl IHZhcmlhYmxlcyAoZS5nLiwKK2RibGUocmVhbChmb28oeCsxKSkpLCB3aGVyZSBmb28gaXMgYSBm dW5jdGlvbiBhbmQgeCBpcyBhIHZhcmlhYmxlKS4KK1JlZ2FyZCBub25ibGFuayBsYWJlbCBmaWVs ZHMgb24gY29udGludWF0aW9uIGxpbmVzIGFzIGFuIGVycm9yLgorCiszIEphbi4gMTk5MDoKKyAg TmV3IG9wdGlvbiAtQysrIHlpZWxkcyBvdXRwdXQgdGhhdCBzaG91bGQgYmUgdW5kZXJzdG9vZAor YnkgQysrIGNvbXBpbGVycy4KKworNiBKYW4uIDE5ODk6CisgIC1hIG5vdyBleGNsdWRlcyB2YXJp YWJsZXMgdGhhdCBhcHBlYXIgaW4gYSBuYW1lbGlzdCBmcm9tIHRob3NlCit0aGF0IGl0IG1ha2Vz IGF1dG9tYXRpYy4gIChBcyBiZWZvcmUsIGl0IGFsc28gZXhjbHVkZXMgdmFyaWFibGVzCit0aGF0 IGFwcGVhciBpbiBhIGNvbW1vbiwgZGF0YSwgZXF1aXZhbGVuY2UsIG9yIHNhdmUgc3RhdGVtZW50 LikKKyAgVGhlIHN5bnRhY3RpY2FsbHkgY29ycmVjdCBGb3J0cmFuCisJcmVhZCgqLGkpIHgKKwll bmQKK25vdyB5aWVsZHMgc3ludGFjdGljYWxseSBjb3JyZWN0IEMgKGV2ZW4gdGhvdWdoIGJvdGgg dGhlIEZvcnRyYW4KK2FuZCBDIGFyZSBidWdneSAtLSBubyBGT1JNQVQgaGFzIG5vdCBiZWVuIEFT U0lHTmVkIHRvIGkpLgorCis3IEphbi4gMTk5MDoKKyAgbGliaTc3OiByb3V0aW5lcyBzdXBwb3J0 aW5nIE5BTUVMSVNUIGFkZGVkLiAgU3Vycm91bmRpbmcgcXVvdGVzCittYWRlIG9wdGlvbmFsIHdo ZW4gbm8gYW1iaWd1aXR5IGFyaXNlcyBpbiBhIGxpc3Qgb3IgbmFtZWxpc3QgUkVBRAorb2YgYSBj aGFyYWN0ZXItc3RyaW5nIHZhbHVlLgorCis5IEphbi4gMTk5MDoKKyAgZjJjLnNyYyBtYWRlIGF2 YWlsYWJsZS4KKworMTYgSmFuLiAxOTkwOgorICBOZXcgb3B0aW9ucyAtUCB0byBwcm9kdWNlIEFO U0kgQyBvciBDKysgcHJvdG90eXBlcyBmb3IgcHJvY2VkdXJlcworZGVmaW5lZC4gIENoYW5nZSB0 byAtQSBhbmQgLUMrKzogZjJjIHRyaWVzIHRvIGluZmVyIHByb3RvdHlwZXMgZm9yCitpbnZva2Vk IHByb2NlZHVyZXMgdW5sZXNzIHRoZSBuZXcgLSFQIG9wdGlvbiBpcyBnaXZlbi4gIE5ldyB3YXJu aW5nCittZXNzYWdlcyBmb3IgaW5jb25zaXN0ZW50IGNhbGxpbmcgc2VxdWVuY2VzIGFtb25nIHBy b2NlZHVyZXMgd2l0aGluCithIHNpbmdsZSBmaWxlLiAgTW9zdCBvZiBmMmMvc3JjIGlzIGFmZmVj dGVkLgorICBmMmMuaDogdHlwZWRlZnMgZm9yIHByb2NlZHVyZSBhcmd1bWVudHMgYWRkZWQ7IG5l dGxpYidzIGYyYyBzZXJ2aWNlCit3aWxsIGluc2VydCBhcHByb3ByaWF0ZSB0eXBlZGVmcyBmb3Ig dXNlIHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgZjJjLmguCisKKzE3IEphbi4gMTk5MDoKKyAgZjJj L3NyYzogZGVmcy5oIGV4ZWMuYyBmb3JtYXQuYyBwcm9jLmMgcHV0cGNjLmMgdmVyc2lvbi5jIHhz dW0wLm91dAordXBkYXRlZC4gIENhc3RhcmdzIGFuZCBwcm90b2ZpbGUgbWFkZSBleHRlcm4gaW4g ZGVmcy5oOyBleGVjLmMKK21vZGlmaWVkIHNvIHN1cGVyZmx1b3VzIGVsc2UgY2xhdXNlcyBhcmUg ZGlhZ25vc2VkOyB1bnVzZWQgdmFyaWFibGVzCitvbWl0dGVkIGZyb20gZGVjbGFyYXRpb25zIGlu IGZvcm1hdC5jIHByb2MuYyBwdXRwY2MuYyAuCisKKzIxIEphbi4gMTk5MDoKKyAgTm8gQyBlbWl0 dGVkIGZvciBwcm9jZWR1cmVzIGRlY2xhcmVkIGV4dGVybmFsIGJ1dCBub3QgcmVmZXJlbmNlZC4K KyAgZjJjLmg6IG1vcmUgbmV3IHR5cGVzIGFkZGVkIGZvciB1c2Ugd2l0aCAtUC4KKyAgTmV3IGZl YXR1cmU6IGYyYyBhY2NlcHRzIGFzIGFyZ3VtZW50cyBmaWxlcyBlbmRpbmcgaW4gLnAgb3IgLlA7 CitzdWNoIGZpbGVzIGFyZSBhc3N1bWVkIHRvIGJlIHByb3RvdHlwZSBmaWxlcywgc3VjaCBhcyBw cm9kdWNlZCBieQordGhlIC1QIG9wdGlvbi4gIEFsbCBwcm90b3R5cGUgZmlsZXMgYXJlIHJlYWQg YmVmb3JlIGFueSBGb3J0cmFuIGZpbGVzCithbmQgYXBwbHkgZ2xvYmFsbHkgdG8gYWxsIEZvcnRy YW4gZmlsZXMuICBTdWl0YWJsZSBwcm90b3R5cGVzIGhlbHAgZjJjCit3YXJuIGFib3V0IGNhbGxp bmctc2VxdWVuY2UgZXJyb3JzIGFuZCBjYW4gdGVsbCBmMmMgaG93IHRvIHR5cGUKK3Byb2NlZHVy ZXMgZGVjbGFyZWQgZXh0ZXJuYWwgYnV0IG5vdCBleHBsaWNpdGx5IHR5cGVkOyB0aGUgbGF0dGVy IGlzCittYWlubHkgb2YgaW50ZXJlc3QgZm9yIHVzZXJzIG9mIHRoZSAtQSBhbmQgLUMrKyBvcHRp b25zLiAgKFByb3RvdHlwZQorYXJndW1lbnRzIGFyZSBub3QgYXZhaWxhYmxlIHRvIG5ldGxpYidz ICJleGVjdXRlIGYyYyIgc2VydmljZS4pCisgIE5ldyBvcHRpb24gLWl0IHRlbGxzIGYyYyB0byB0 cnkgdG8gaW5mZXIgdHlwZXMgb2YgdW50eXBlZCBleHRlcm5hbAorYXJndW1lbnRzIGZyb20gdGhl aXIgdXNlIGFzIHBhcmFtZXRlcnMgdG8gcHJvdG90eXBlZCBvciBwcmV2aW91c2x5CitkZWZpbmVk IHByb2NlZHVyZXMuCisgIGYyYy9zcmM6IG1hbnkgbWlub3IgY2xlYW51cHM7IG1vc3QgbW9kdWxl cyBjaGFuZ2VkLiAgSW5kaXZpZHVhbAorZmlsZXMgaW4gZjJjL3NyYyBhcmUgbm93IGluICJidW5k bGUiIGZvcm1hdC4gIFRoZSBmb3JtZXIgZjJjLjEgaXMKK25vdyBmMmMuMXQ7ICJmMmMuMXQgZnJv bSBmMmMiIGFuZCAiZjJjLjF0IGZyb20gZjJjL3NyYyIgYXJlIG5vdyB0aGUKK3NhbWUsIGFzIGFy ZSAiZjJjLjEgZnJvbSBmMmMiIGFuZCAiZjJjLjEgZnJvbSBmMmMvc3JjIi4gIFBlb3BsZSB3aG8K K2RvIG5vdCBvYnRhaW4gYSBuZXcgY29weSBvZiAiYWxsIGZyb20gZjJjL3NyYyIgc2hvdWxkIGF0 IGxlYXN0IGFkZAorCWZjbG9zZShzb3J0ZnApOworYWZ0ZXIgdGhlIGNhbGwgb24gZG9faW5pdF9k YXRhKG91dGZpbGUsIHNvcnRmcCkgaW4gZm9ybWF0X2RhdGEuYyAuCisKKzIyIEphbi4gMTk5MDoK KyAgQ2xlYW5lciBtYW4gcGFnZSB3b3JkaW5nICh0aGFua3MgdG8gRG91ZyBNY0lscm95KS4KKyAg LWl0IG5vdyBhbHNvIGFwcGxpZXMgdG8gYWxsIHVudHlwZWQgRVhURVJOQUwgcHJvY2VkdXJlcywg bm90IGp1c3QKK2FyZ3VtZW50cy4KKworMjMgSmFuLiAwMTozNDowMCBFU1QgMTk5MDoKKyAgQnVn IGZpeGVzOiB1bmRlciAtQSBhbmQgLUMrKywgaW5jb3JyZWN0IEMgd2FzIGdlbmVyYXRlZCBmb3IK K3N1YnJvdXRpbmVzIGhhdmluZyBtdWx0aXBsZSBlbnRyaWVzIGJ1dCBubyBhcmd1bWVudHMuCisg IFVuZGVyIC1BIC1QLCBzdWJyb3V0aW5lcyBvZiBubyBhcmd1bWVudHMgd2VyZSBnaXZlbiBwcm90 b3R5cGUKK2NhbGxpbmcgc2VxdWVuY2UgKCkgcmF0aGVyIHRoYW4gKHZvaWQpLgorICBDaGFyYWN0 ZXItdmFsdWVkIGZ1bmN0aW9ucyBlbGljaXRlZCBlcnJvbmVvdXMgd2FybmluZyBtZXNzYWdlcwor YWJvdXQgaW5jb25zaXN0ZW50IGNhbGxpbmcgc2VxdWVuY2VzIHdoZW4gcmVmZXJlbmNlZCBieSBh bm90aGVyCitwcm9jZWR1cmUgaW4gdGhlIHNhbWUgZmlsZS4KKyAgZjJjLjF0OiBvbWl0IGZpcnN0 IGFwcGVhcmFuY2Ugb2YgbGliRjc3LmEgaW4gRklMRVMgc2VjdGlvbjsKK2xvYWQgb3JkZXIgb2Yg bGlicmFyaWVzIGlzIC1sRjc3IC1sSTc3LCBub3QgdmljZSB2ZXJzYSAoYnVnCitpbnRyb2R1Y2Vk IGluIHllc3RlcmRheSdzIGVkaXRzKTsgZGVmaW5lIC5GIG1hY3JvIGZvciB0aG9zZSB3aG9zZQor LW1hbiBsYWNrcyBpdC4gIChGb3IgYSB3aGlsZSBhZnRlciB5ZXN0ZXJkYXkncyBmaXhlcyB3ZXJl IHBvc3RlZCwKK2YyYy4xdCB3YXMgb3V0IG9mIGRhdGUuICBTb3JyeSEpCisKKzIzIEphbi4gOTo1 MzoyNCBFU1QgMTk5MDoKKyAgQ2hhcmFjdGVyIHN1YnN0cmluZyBleHByZXNzaW9ucyBpbnZvbHZp bmcgZnVuY3Rpb24gY2FsbHMgaGF2aW5nCitjaGFyYWN0ZXIgYXJndW1lbnRzIChpbmNsdWRpbmcg dGhlIGludHJpbnNpYyBsZW4gZnVuY3Rpb24pIHlpZWxkZWQKK2luY29ycmVjdCBDLgorICBQcm9j ZWR1cmVzIGRlZmluZWQgYWZ0ZXIgaW52b2NhdGlvbiAoaW4gdGhlIHNhbWUgZmlsZSkgd2l0aAor Y29uZmxpY3RpbmcgYXJndW1lbnQgdHlwZXMgYWxzbyBnb3QgYW4gZXJyb25lb3VzIG1lc3NhZ2Ug YWJvdXQKK3RoZSB3cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzLgorCisyNCBKYW4uIDExOjQ0OjAw IEVTVCAxOTkwOgorICBCdWcgZml4ZXM6IC1wIG9taXR0ZWQgI3VuZGVmczsgQ09NTU9OIGJsb2Nr IG5hbWVzIGNvbnRhaW5pbmcKK3VuZGVyc2NvcmVzIGhhZCB0aGVpciBDIG5hbWVzIGluY29ycmVj dGx5IGNvbXB1dGVkOyBhIENPTU1PTiBibG9jaworaGF2aW5nIHRoZSBuYW1lIG9mIGEgcHJldmlv dXNseSBkZWZpbmVkIHByb2NlZHVyZSB3cmVha2VkIGhhdm9jOworaWYgYWxsIGFyZ3VtZW50cyB3 ZXJlIC5QIGZpbGVzLCBmMmMgdHJpZWQgcmVhZGluZyB0aGUgc2Vjb25kIGFzIGEKK0ZvcnRyYW4g ZmlsZS4KKyAgTmV3IGZlYXR1cmU6IC1QIGVtaXRzIGNvbW1lbnRzIHNob3dpbmcgQ09NTU9OIGJs b2NrIGxlbmd0aHMsIHNvIG9uZQorY2FuIGdldCB3YXJuaW5ncyBvZiBpbmNvbXBhdGlibGUgQ09N TU9OIGJsb2NrIGxlbmd0aHMgYnkgaGF2aW5nIGYyYworcmVhZCAuUCAob3IgLnApIGZpbGVzLiAg Tm93IGJ5IHJ1bm5pbmcgZjJjIHR3aWNlLCBmaXJzdCB3aXRoIC1QIC0hYworKG9yIC1QIWMpLCAg dGhlbiB3aXRoICouUCBhbW9uZyB0aGUgYXJndW1lbnRzLCB5b3UgY2FuIGJlIHdhcm5lZCBvZgor aW5jb25zaXN0ZW50IENPTU1PTiB1c2FnZSwgYW5kIENPTU1PTiBibG9ja3MgaGF2aW5nIGluY29u c2lzdGVudAorbGVuZ3RocyB3aWxsIGJlIGdpdmVuIHRoZSBtYXhpbXVtIGxlbmd0aC4gIChUaGUg bGF0dGVyIGFsd2F5cyBkaWQKK2hhcHBlbiB3aXRoaW4gZWFjaCBpbnB1dCBmaWxlOyBub3cgLVAg bGV0cyB5b3UgZXh0ZW5kIHRoaXMgYmVoYXZpb3IKK2Fjcm9zcyBmaWxlcy4pCisKKzI2IEphbi4g MTY6NDQ6MDAgRVNUIDE5OTA6CisgIE9wdGlvbiAtaXQgbWFkZSBsZXNzIGFnZ3Jlc3NpdmU6IHVu dHlwZWQgZXh0ZXJuYWwgcHJvY2VkdXJlcyB0aGF0CithcmUgaW52b2tlZCBhcmUgbm93IHR5cGVk IGJ5IHRoZSBydWxlcyBvZiBGb3J0cmFuLCByYXRoZXIgdGhhbiBieQorcHJldmlvdXMgdXNlIG9m IHByb2NlZHVyZXMgdG8gd2hpY2ggdGhleSBhcmUgcGFzc2VkIGFzIGFyZ3VtZW50cworYmVmb3Jl IGJlaW5nIGludm9rZWQuCisgIE9wdGlvbiAtUCBub3cgaW5jbHVkZXMgaW5mb3JtYXRpb24gYWJv dXQgcmVmZXJlbmNlcywgaS5lLiwgY2FsbGVkCitwcm9jZWR1cmVzLCBpbiB0aGUgcHJvdG90eXBl IGZpbGVzIChpbiB0aGUgZm9ybSBvZiBzcGVjaWFsIGNvbW1lbnRzKS4KK1RoaXMgYWxsb3dzIGl0 ZXJhdGl2ZSBpbnZvY2F0aW9ucyBvZiBmMmMgdG8gaW5mZXIgbW9yZSBhYm91dCB1bnR5cGVkCitl eHRlcm5hbCBuYW1lcywgcGFydGljdWxhcmx5IHdoZW4gbXVsdGlwbGUgRm9ydHJhbiBmaWxlcyBh cmUgaW52b2x2ZWQuCisgIEFzIHVzdWFsLCB0aGVyZSBhcmUgc29tZSBvYnNjdXJlIGJ1ZyBmaXhl czoKKzEuICBSZXBhaXIgb2YgZXJyb25lb3VzIHdhcm5pbmcgbWVzc2FnZXMgYWJvdXQgaW5jb25z aXN0ZW50IG51bWJlciBvZgorYXJndW1lbnRzIHRoYXQgYXJvc2Ugd2hlbiBhIGNoYXJhY3RlciBk dW1teSBwYXJhbWV0ZXIgd2FzIGRpc2NvdmVyZWQKK3RvIGJlIGEgZnVuY3Rpb24gb3Igd2hlbiBt dWx0aXBsZSBlbnRyeSBwb2ludHMgaW52b2x2ZWQgY2hhcmFjdGVyCit2YXJpYWJsZXMgYXBwZWFy aW5nIGluIGEgcHJldmlvdXMgZW50cnkgcG9pbnQuCisyLiAgUmVwYWlyIG9mIG1lbW9yeSBmYXVs dCBhZnRlciBlcnJvciBtc2cgYWJvdXQgImFkanVzdGFibGUgY2hhcmFjdGVyCitmdW5jdGlvbiIu CiszLiAgVW5kZXIgLVUsIGFsbG93IE1BSU5fIGFzIGEgc3Vicm91dGluZSBuYW1lIChpbiB0aGUg c2FtZSBmaWxlIGFzIGEKK21haW4gcHJvZ3JhbSkuCis0LiAgQ2hhbmdlIGZvciBjb25zaXN0ZW5j eTogYSBrbm93biBmdW5jdGlvbiBpbnZva2VkIGFzIGEgc3Vicm91dGluZSwKK3RoZW4gYXMgYSBm dW5jdGlvbiBlbGljaXRzIGEgd2FybmluZyByYXRoZXIgdGhhbiBhbiBlcnJvci4KKworMjYgSmFu LiAyMjozMjowMCBFU1QgMTk5MDoKKyAgRml4ZWQgdHdvIGJ1Z3MgdGhhdCByZXN1bHRlZCBpbiBp bmNvcnJlY3QgQyBmb3Igc3Vic3RyaW5ncywgd2l0aGluCit0aGUgYm9keSBvZiBhIGNoYXJhY3Rl ci12YWx1ZWQgZnVuY3Rpb24sIG9mIHRoZSBmdW5jdGlvbidzIG5hbWUsIHdoZW4KK3Rob3NlIHN1 YnN0cmluZ3Mgd2VyZSBhcmd1bWVudHMgdG8gYW5vdGhlciBmdW5jdGlvbiAoZXZlbiBpbXBsaWNp dGx5LAorYXMgaW4gY2hhcmFjdGVyLXN0cmluZyBhc3NpZ25tZW50KS4KKworMjggSmFuLiAxODoz MjowMCBFU1QgMTk5MDoKKyAgbGliZjc3LCBsaWJpNzc6IGNoZWNrc3VtIGZpbGVzIGFkZGVkOyAi bWFrZSBjaGVjayIgbG9va3MgZm9yCit0cmFuc21pc3Npb24gZXJyb3JzLiAgTkFNRUxJU1QgcmVh ZCBtb2RpZmllZCB0byBhbGxvdyAkIHJhdGhlciB0aGFuICYKK3RvIHByZWNlZGUgYSBuYW1lbGlz dCBuYW1lLCB0byBhbGxvdyAkIHJhdGhlciB0aGFuIC8gdG8gdGVybWluYXRlCitpbnB1dCB3aGVy ZSB0aGUgbmFtZSBvZiBhbm90aGVyIHZhcmlhYmxlIHdvdWxkIG90aGVyd2lzZSBiZSBleHBlY3Rl ZCwKK2FuZCB0byByZWdhcmQgYWxsIG5vbnByaW50aW5nIEFTQ0lJIGNoYXJhY3RlcnMgPD0gJyAn IGFzIHNwYWNlcy4KKworMjkgSmFuLiAwMjoxMTowMCBFU1QgMTk5MDoKKyAgImZjIGZyb20gZjJj IiBhZGRlZC4KKyAgLWl0IG9wdGlvbiBtYWRlIHRoZSBkZWZhdWx0OyAtIWl0IHR1cm5zIGl0IG9m Zi4gIFR5cGUgaW5mb3JtYXRpb24gaXMKK25vdyB1cGRhdGVkIGluIGEgcHJldmlvdXNseSBtaXNz ZWQgY2FzZS4KKyAgLVAgb3B0aW9uIHR3ZWFrZWQgYWdhaW47IG1lc3NhZ2UgYWJvdXQgd2hlbiBy ZXJ1bm5pbmcgZjJjIG1heSBjaGFuZ2UKK3Byb3RvdHlwZXMgb3IgZGVjbGFyYXRpb25zIG1hZGUg bW9yZSBhY2N1cmF0ZS4KKyAgTmV3IG9wdGlvbiAtUHMgaW1wbGllcyAtUCBhbmQgcmV0dXJucyBl eGl0IHN0YXR1cyA0IGlmIHJlcnVubmluZworZjJjIC1QIHdpdGggcHJvdG90eXBlIGlucHV0cyBt aWdodCBjaGFuZ2UgcHJvdG90eXBlcyBvciBkZWNsYXJhdGlvbnMuCitOb3cgeW91IGNhbiBleGVj dXRlIGEgY3J1ZGUgc2NyaXB0IGxpa2UKKworCWNhdCAqLmYgPnphcC5GCisJcm0gLWYgemFwLlAK Kwl3aGlsZSA6OyBkbworCQlmMmMgLVBzIC0hYyB6YXAuW0ZQXQorCQljYXNlICQ/IGluIDQpIDs7 ICopIGJyZWFrOzsgZXNhYworCQlkb25lCisKK3RvIGdldCBhIGZpbGUgemFwLlAgb2YgdGhlIGJl c3QgcHJvdG90eXBlcyBmMmMgY2FuIGRldGVybWluZSBmb3IgKi5mIC4KKworSmFuLiAyOSAwNzoz MDoyMSBFU1QgMTk5MDoKKyAgRm9yZ290IHRvIGNoZWNrIGZvciBlcnJvciBzdGF0dXMgd2hlbiBz ZXR0aW5nIHJldHVybiBjb2RlIDQgdW5kZXIgLVBzOworZXJyb3Igc3RhdHVzICgxLCAyLCAzLCBv ciwgZm9yIGNhdWdodCBzaWduYWwsIDEyNikgbm93IHRha2VzIHByZWNlZGVuY2UuCisKK0phbiAy OSAxNDoxNzowMCBFU1QgMTk5MDoKKyAgSW5jb3JyZWN0IGhhbmRsaW5nIG9mCisJb3BlbihuLCdm aWxlbmFtZScpCityZXBhaXJlZCAtLSBub3cgdHJlYXRlZCBhcworCW9wZW4obixmaWxlPSdmaWxl bmFtZScpCisoYW5kLCB1bmRlciAtZXh0LCBnaXZlbiBhbiBlcnJvciBtZXNzYWdlKS4KKyAgTmV3 IG9wdGlvbmFsIHNvdXJjZSBmaWxlIG1lbXNldC5jIGZvciBwZW9wbGUgd2hvc2Ugc3lzdGVtcyBk b24ndAorcHJvdmlkZSBtZW1zZXQsIG1lbWNtcCwgYW5kIG1lbWNweTsgI2luY2x1ZGUgPHN0cmlu Zy5oPiBpbiBtZW0uYworY2hhbmdlZCB0byAjaW5jbHVkZSAic3RyaW5nLmgiIHNvIEJTRCBwZW9w bGUgY2FuIGNyZWF0ZSBhIGxvY2FsCitzdHJpbmcuaCB0aGF0IHNpbXBseSBzYXlzICNpbmNsdWRl IDxzdHJpbmdzLmg+IC4KKworSmFuIDMwIDEwOjM0OjAwIEVTVCAxOTkwOgorICBGaXggZXJyb25l b3VzIHdhcm5pbmcgYXQgZW5kIG9mIGRlZmluaXRpb24gb2YgYSBwcm9jZWR1cmUgd2l0aAorY2hh cmFjdGVyIGFyZ3VtZW50cyB3aGVuIHRoZSBwcm9jZWR1cmUgaGFkIHByZXZpb3VzbHkgYmVlbiBj YWxsZWQgd2l0aAorYSBudW1lcmljIGFyZ3VtZW50IGluc3RlYWQgb2YgYSBjaGFyYWN0ZXIgYXJn dW1lbnQuICAoVGhlcmUgd2VyZSB0d28KK3dhcm5pbmdzLCB0aGUgc2Vjb25kIG9uZSBpbmNvcnJl Y3RseSBjb21wbGFpbmluZyBvZiBhIHdyb25nIG51bWJlciBvZgorYXJndW1lbnRzLikKKworSmFu IDMwIDE2OjI5OjQxIEVTVCAxOTkwOgorICBGaXggY2FzZSB3aGVyZSAtUCBhbmQgLVBzIGVycm9u ZW91c2x5IHJlcG9ydGVkIGFub3RoZXIgaXRlcmF0aW9uCituZWNlc3NhcnkuICAoT25seSBoYXJt IGlzIHRoZSBleHRyYSBpdGVyYXRpb24uKQorCitGZWIgMyAwMTo0MDowMCBFU1QgMTk5MDoKKyAg U3VwcGx5IHNlbWljb2xvbiBvY2Nhc2lvbmFsbHkgb21pdHRlZCB1bmRlciAtYyAuCisgIFRyeSB0 byBmb3JjZSBjb3JyZWN0IGFsaWdubWVudCB3aGVuIG51bWVyaWMgdmFyaWFibGVzIGFyZSBpbml0 aWFsaXplZAord2l0aCBjaGFyYWN0ZXIgZGF0YSAoYSBub24tc3RhbmRhcmQgYW5kIG5vbi1wb3J0 YWJsZSBwcmFjdGljZSkuICBZb3UKK211c3QgdXNlIHRoZSAtVyBvcHRpb24gaWYgeW91ciBjb2Rl IGhhcyBzdWNoIGRhdGEgc3RhdGVtZW50cyBhbmQgaXMKK21lYW50IHRvIHJ1biBvbiBhIG1hY2hp bmUgd2l0aCBvdGhlciB0aGFuIDQgY2hhcmFjdGVycy93b3JkOyBlLmcuLCBmb3IKK2NvZGUgbWVh bnQgdG8gcnVuIG9uIGEgQ3JheSwgeW91IHdvdWxkIHNwZWNpZnkgLVc4IC4KKyAgQWxsb3cgcGFy ZW50aGVzZXMgYXJvdW5kIGV4cHJlc3Npb25zIGluIG91dHB1dCBsaXN0cyAoaW4gd3JpdGUgYW5k CitwcmludCBzdGF0ZW1lbnRzKS4KKyAgUmVuYW1lIHNvdXJjZSBmaWxlcyBzbyB0aGVpciBuYW1l cyBhcmUgPD0gMTIgY2hhcmFjdGVycyBsb25nCisoc28gdGhlcmUncyByb29tIHRvIGFwcGVuZCAu WiBhbmQgc3RpbGwgaGF2ZSA8PSAxNCBjaGFyYWN0ZXJzKTsKK3JlbmFtZWQgZmlsZXM6ICBmb3Jt YXRkYXRhLmMgbmljZXByaW50Zi5jIG5pY2VwcmludGYuaCBzYWZzdHJuY3B5LmMgLgorICBmMmMg bWF0ZXJpYWwgbWFkZSBhdmFpbGFibGUgYnkgYW5vbnltb3VzIGZ0cCBmcm9tIHJlc2VhcmNoLmF0 dC5jb20KKyhsb29rIGluIGRpc3QvZjJjICkuCisKK0ZlYiAzIDAzOjQ5OjAwIEVTVCAxOTkwOgor ICBSZXBhaXIgbWVtb3J5IGZhdWx0IHRoYXQgYXJvc2UgZnJvbSB1c2UgKGluIGFuIGFzc2lnbm1l bnQgb3IKK2NhbGwpIG9mIGEgbm9uLWFyZ3VtZW50IHZhcmlhYmxlIGRlY2xhcmVkIENIQVJBQ1RF UiooKikuCisKK0ZlYiA5IDAxOjM1OjQzIEVTVCAxOTkwOgorICBGaXggZXJyb25lb3VzIGVycm9y IG1zZyBhYm91dCBiYWQgdHlwZXMgaW4KKwlzdWJyb3V0aW5lIGZvbyhhLGFkaW0pCisJZGltZW5z aW9uIGEoYWRpbSkKKwlpbnRlZ2VyIGFkaW0KKyAgRml4IGltcHJvcGVyIHBhc3Npbmcgb2YgY2hh cmFjdGVyIGFyZ3MgKGFuZCBwb3NzaWJsZSBtZW1vcnkgZmF1bHQpCitpbiB0aGUgZXhwcmVzc2lv biBwYXJ0IG9mIGEgY29tcHV0ZWQgZ290by4KKyAgRml4IGJvdGNoZWQgY2FsbGluZyBzZXF1ZW5j ZXMgaW4gYXJyYXkgcmVmZXJlbmNlcyBpbnZvbHZpbmcKK2Z1bmN0aW9ucyBoYXZpbmcgY2hhcmFj dGVyIGFyZ3MuCisgIEZpeCBtZW1vcnkgZmF1bHQgY2F1c2VkIGJ5IGludm9jYXRpb24gb2YgY2hh cmFjdGVyLXZhbHVlZCBmdW5jdGlvbnMKK29mIG5vIGFyZ3VtZW50cy4KKyAgRml4IGJvdGNoZWQg Y2FsbGluZyBzZXF1ZW5jZSBvZiBhIGNoYXJhY3RlcioxLXZhbHVlZCBmdW5jdGlvbgorYXNzaWdu ZWQgdG8gYSBjaGFyYWN0ZXIqMSB2YXJpYWJsZS4KKyAgRml4IGJ1ZyBpbiBlcnJvciBtc2cgZm9y IGluY29uc2lzdGVudCBudW1iZXIgb2YgYXJncyBpbiBwcm90b3R5cGVzLgorICBBbGxvdyBnZW5l cmF0aW9uIG9mIEMgb3V0cHV0IGRlc3BpdGUgaW5jb25zaXN0ZW5jaWVzIGluIHByb3RvdHlwZXMs CitidXQgZ2l2ZSBleGl0IGNvZGUgOC4KKyAgU2ltcGxpZnkgaW5jbHVkZSBsb2dpYyAoYnkgcmVt b3Zpbmcgc29tZSBib2d1cyBsb2dpYyk7IG5ldmVyCitwcmVwZW5kICIvdXNyL2luY2x1ZGUvIiB0 byBmaWxlIG5hbWVzLgorICBNaW5vciBjbGVhbnVwcyAodGhhdCBzaG91bGQgcHJvZHVjZSBubyB2 aXNpYmxlIGNoYW5nZSBpbiBmMmMncworYmVoYXZpb3IpIGluIGludHIuYyBwYXJzZS5oIG1haW4u YyBkZWZzLmggZm9ybWF0ZGF0YS5jIHAxb3V0cHV0LmMgLgorCitGZWIgMTAgMDA6MTk6MzggRVNU IDE5OTA6CisgIEluc2VydCAoaW50ZWdlcikgY2FzdHMgd2hlbiBmbG9hdGluZy1wb2ludCBleHBy ZXNzaW9ucyBhcmUgdXNlZAorYXMgc3Vic2NyaXB0cy4KKyAgTWFrZSBTQVZFIHN0bXQgKHdpdGgg bm8gdmFyaWFibGUgbGlzdCkgb3ZlcnJpZGUgLWEgLgorICBNaW5vciBjbGVhbnVwczogY2hhbmdl IGZpZWxkIHRvIEZpZWxkIGluIHN0cnVjdCBBZGRyYmxvY2sgKGZvciB0aGUKK2JlbmVmaXQgb2Yg YnVnZ3kgQyBjb21waWxlcnMpOyBvbWl0IHN5c3RlbSgiL2Jpbi9jcCAuLi4iKSBpbiBtaXNjLmMg LgorCitGZWIgMTMgMDA6Mzk6MDAgRVNUIDE5OTA6CisgIEVycm9yIG1zZyBmaXggaW4gZ3JhbS5k Y2w6IGNoYW5nZSAiY2Fubm90IG1ha2UgJXMgcGFyYW1ldGVyIgordG8gImNhbm5vdCBtYWtlIGlu dG8gcGFyYW1ldGVyIi4KKworRmViIDE0IDE0OjAyOjAwIEVTVCAxOTkwOgorICBWYXJpb3VzIGNs ZWFudXBzIChpbnZpc2libGUgb24gc3lzdGVtcyB3aXRoIDQtYnl0ZSBpbnRzKSwgdGhhbmtzCit0 byBEYXZlIFJlZ2FuOiB2YXh4LmMgZWxpbWluYXRlZDsgJWQgY2hhbmdlZCB0byAlbGQgdmFyaW91 cyBwbGFjZXM7CitleHRlcm5hbCBuYW1lcyBhZGp1c3RlZCBmb3IgdGhlIGJlbmVmaXQgb2Ygc3R1 cGlkIHN5c3RlbXMgKHRoYXQgaWdub3JlCitjYXNlIGFuZCByZWNvZ25pemUgb25seSA2IHNpZ25p ZmljYW50IGNoYXJhY3RlcnMgaW4gZXh0ZXJuYWwgbmFtZXMpOworYnVmZmVyIHNob3J0ZW5lZCBp biB4c3VtLmMgKGUuZy4gZm9yIE1TLURPUyk7IGZvcGVuIG1vZGVzIGRpc3Rpbmd1aXNoCit0ZXh0 IGFuZCBiaW5hcnkgZmlsZXM7IHNldmVyYWwgdW51c2VkIGZ1bmN0aW9ucyBlbGltaW5hdGVkOyBt aXNzaW5nCithcmcgc3VwcGxpZWQgdG8gYW4gdW5saWtlbHkgZmF0YWxzdHIgaW52b2NhdGlvbi4K KworVGh1IEZlYiAxNSAxOToxNTo1MyBFU1QgMTk5MDoKKyAgTW9yZSBjbGVhbnVwcyAoaW52aXNp YmxlIG9uIHN5c3RlbXMgd2l0aCA0IGJ5dGUgaW50cyk7IGNhc3RzIGluc2VydGVkCitzbyBtb3N0 IGNvbXBsYWludHMgZnJvbSBjeW50YXgoMSkgYW5kIGxpbnQoMSkgZ28gYXdheTsgYSBmZXcgKGlu dCkKK3ZlcnN1cyAobG9uZykgY2FzdHMgY29ycmVjdGVkLgorCitGcmkgRmViIDE2IDE5OjU1OjAw IEVTVCAxOTkwOgorICBSZWNvZ25pemUgYW5kIHRyYW5zbGF0ZSB1bm5hbWVkIEZvcnRyYW4gOHgg ZG8gd2hpbGUgc3RhdGVtZW50cy4KKyAgRml4IGJ1ZyB0aGF0IG9jY2FzaW9uYWxseSBjYXVzZWQg aW1wcm9wZXIgYnJlYWtpbmcgb2YgY2hhcmFjdGVyCitzdHJpbmdzLgorICBOZXcgZXJyb3IgbWVz c2FnZSBmb3IgYXR0ZW1wdHMgdG8gcHJvdmlkZSBEQVRBIGluIGEgdHlwZS1kZWNsYXJhdGlvbgor c3RhdGVtZW50LgorCitTYXQgRmViIDE3IDExOjQzOjAwIEVTVCAxOTkwOgorICBGaXggaW5maW5p dGUgbG9vcCBjbGYgLT4gRmF0YWwgLT4gZG9uZSAtPiBjbGYgYWZ0ZXIgSS9PIGVycm9yLgorICBD aGFuZ2UgImlmIChhZGRycC0+dmNsYXNzID0gQ0xQUk9DKSIgdG8gImlmIChhZGRycC0+dmNsYXNz ID09IENMUFJPQykiCitpbiBwMV9hZGRyIChpbiBwMW91dHB1dC5jKTsgdGhpcyB3YXMgcHJvYmFi bHkgaGFybWxlc3MuCisgIE1vdmUgYSBtaXNwbGFjZWQgfSBpbiBsZXguYyAod2hpY2ggc2xvd2Vk IGluaXRrZXkoKSkuCisgIFRoYW5rcyB0byBHYXJ5IFdvcmQgZm9yIHBvaW50aW5nIHRoZXNlIHRo aW5ncyBvdXQuCisKK1N1biBGZWIgMTggMTg6MDc6MDAgRVNUIDE5OTA6CisgIERldGVjdCBvdmVy bGFwcGluZyBpbml0aWFsaXphdGlvbnMgb2YgYXJyYXlzIGFuZCBzY2FsYXIgdmFyaWFibGVzCitp biBwcmV2aW91c2x5IG1pc3NlZCBjYXNlcy4KKyAgVHJlYXQgbG9naWNhbCoyIGFzIGxvZ2ljYWwg KGFmdGVyIGlzc3VpbmcgYSB3YXJuaW5nKS4KKyAgRG9uJ3QgcGFzcyBzdHJpbmcgbGl0ZXJhbHMg dG8gcDFfY29tbWVudCgpLgorICBDb3JyZWN0IGEgY2FzdCAoaW50cm9kdWNlZCAxNiBGZWIuKSBp biBncmFtLmV4cHI7IHRoaXMgbWF0dGVycyBlLmcuCitvbiBhIENyYXkuCisgIEF0dGVtcHQgdG8g aXNvbGF0ZSBVTklYLXNwZWNpZmljIHRoaW5ncyBpbiBzeXNkZXAuYyAoYSBuZXcgc291cmNlCitm aWxlKS4gIFVubGVzcyBzeXNkZXAuYyBpcyBjb21waWxlZCB3aXRoIFNZU1RFTV9TT1JUIGRlZmlu ZWQsIHRoZQoraW50ZXJtZWRpYXRlIGZpbGVzIGNyZWF0ZWQgZm9yIERBVEEgc3RhdGVtZW50cyBh cmUgbm93IHNvcnRlZCBpbi1jb3JlCit3aXRob3V0IGludm9raW5nIHN5c3RlbSgpLgorCitUdWUg RmViIDIwIDE2OjEwOjM1IEVTVCAxOTkwOgorICBNb3ZlIGRlZmluaXRpb24gb2YgYmlucmVhZCBh bmQgYmlud3JpdGUgZnJvbSBpbml0LmMgdG8gc3lzZGVwLmMgLgorICBSZWNvZ25pemUgRm9ydHJh biA4eCB0b2tlbnMgPCA8PSA9PSA+PSA+IDw+IGFzIHN5bm9ueW1zIGZvcgorLkxULiAuTEUuIC5F US4gLkdFLiAuR1QuIC5ORS4KKyAgTWlub3IgY2xlYW51cCBpbiBwdXRwY2MuYzogIGZ1bGx5IHJl bW92ZSBzaW1vZmZzZXQoKS4KKyAgTW9yZSBkaXNjdXNzaW9uIG9mIHN5c3RlbSBkZXBlbmRlbmNp ZXMgYWRkZWQgdG8gbGliSTc3L1JFQURNRS4KKworVHVlIEZlYiAyMCAyMTo0NDowNyBFU1QgMTk5 MDoKKyAgTWlub3IgY2xlYW51cHMgZm9yIHRoZSBiZW5lZml0IG9mIEVCQ0RJQyBtYWNoaW5lcyAt LSB0cnkgdG8gcmVtb3ZlCit0aGUgYXNzdW1wdGlvbiB0aGF0ICdhJyB0aHJvdWdoICd6JyBhcmUg Y29udGlndW91cy4gIChUaGFua3MgYWdhaW4gdG8KK0dhcnkgV29yZC4pICBBbHNvLCBjaGFuZ2Ug bG9nMiB0byBsb2dfMiAoc2hvdWxkbid0IGJlIG5lY2Vzc2FyeSkuCisKK1dlZCBGZWIgMjEgMDY6 MjQ6NTYgRVNUIDE5OTA6CisgIEZpeCBib3RjaCBpbiBpbml0LmMgaW50cm9kdWNlZCBpbiBwcmV2 aW91cyBjaGFuZ2U7IG9ubHkgbWF0dGVycwordG8gbm9uLUFTQ0lJIG1hY2hpbmVzLgorCitUaHUg RmViIDIyIDE3OjI5OjEyIEVTVCAxOTkwOgorICBBbGxvdyBzZXZlcmFsIGVudHJ5IHBvaW50cyB0 byBtZW50aW9uIHRoZSBzYW1lIGFycmF5LiAgUHJvdGVjdAorcGFyYW1ldGVyIGFkanVzdG1lbnRz IHdpdGggaWYncyAoZm9yIHRoZSBjYXNlIHRoYXQgYW4gYXJyYXkgaXMgbm90CithbiBhcmd1bWVu dCB0byBhbGwgZW50cnlwb2ludHMpLgorICBVbmRlciAtdSwgYWxsb3cKKwlzdWJyb3V0aW5lIGZv byh4LG4pCisJcmVhbCB4KG4pCisJaW50ZWdlciBuCisgIENvbXB1dGUgaW50ZXJtZWRpYXRlIHZh cmlhYmxlcyB1c2VkIHRvIGV2YWx1YXRlIGRpbWVuc2lvbiBleHByZXNzaW9ucworYXQgdGhlIHJp Z2h0IHRpbWUuICBFeGFtcGxlIHByZXZpb3VzbHkgbWlzdHJhbnNsYXRlZDoKKwlzdWJyb3V0aW5l IGZvbyh4LGssbSxuKQorCXJlYWwgeChtaW4oayxtLG4pKQorCS4uLgorCXdyaXRlKCosKikgeAor ICBEZXRlY3QgZHVwbGljYXRlIGFyZ3VtZW50cy4gIChUaGUgZXJyb3IgbXNnIHBvaW50cyB0byB0 aGUgZmlyc3QKK2V4ZWN1dGFibGUgc3RtdCAtLSBub3Qgd29uZGVyZnVsLCBidXQgbm90IHdvcnRo IGZpeGluZy4pCisgIE1pbm9yIGNsZWFudXAgb2YgbWluL21heCBjb21wdXRhdGlvbiAoc29tZXRp bWVzIHNsaWdodGx5IHNpbXBsZXIpLgorCitTdW4gRmViIDI1IDA5OjM5OjAxIEVTVCAxOTkwOgor ICBNaW5vciB0d2VhayB0byBtdWx0aXBsZSBlbnRyeSBwb2ludHM6IHByb3RlY3QgcGFyYW1ldGVy IGFkanVzdG1lbnRzCit3aXRoIGlmJ3Mgb25seSBmb3IgKGFycmF5KSBhcmdzIHRoYXQgZG8gbm90 IGFwcGVhciBpbiBhbGwgZW50cnkgcG9pbnRzLgorICBNaW5vciB0d2Vha3MgdG8gZm9ybWF0LmMg YW5kIGlvLmMgKGludmlzaWJsZSB1bmxlc3MgeW91ciBjb21waWxlcgorY29tcGxhaW5lZCBhdCB0 aGUgZHVwbGljYXRlICNkZWZpbmVzIG9mIElPU1VOSVQgYW5kIElPU0ZNVCBvciBhdAorY29tcGFy aXNvbnMgb2YgcDFnZXRzKC4uLikgd2l0aCBOVUxMKS4KKworU3VuIEZlYiAyNSAxODo0MDoxMCBF U1QgMTk5MDoKKyAgRml4IGJ1ZyBpbnRyb2R1Y2VkIEZlYi4gMjI6IGlmIGEgc3VicHJvZ3JhbSBj b250YWluZWQgREFUQSBhbmQgdGhlCitmaXJzdCBleGVjdXRhYmxlIHN0YXRlbWVudCB3YXMgbGFi ZWxlZCwgdGhlbiB0aGUgbGFiZWwgZ290IGxvc3QuCisoSnVzdCBjaGFuZ2UgSU5FWEVDIHRvIElO REFUQSBpbiBwMW91dHB1dC5jOyBpdCBvY2N1cnMganVzdCBvbmNlLikKKworTW9uIEZlYiAyNiAx Nzo0NToxMCBFU1QgMTk5MDoKKyAgRml4IGJ1ZyBpbiBoYW5kbGluZyBvZiAiIGFuZCAnIGluIGNv bW1lbnRzLgorCitXZWQgTWFyIDI4IDAxOjQzOjA2IEVTVCAxOTkwOgorbGliSTc3OgorIDEuIFJl cGFpciBuYXN0eSBJL08gYnVnOiBvcGVuaW5nIHR3byBmaWxlcyBhbmQgY2xvc2luZyB0aGUgZmly c3QKKyhhZnRlciBwb3NzaWJseSByZWFkaW5nIG9yIHdyaXRpbmcgaXQpLCB0aGVuIHdyaXRpbmcg dGhlIHNlY29uZCBjYXVzZWQKK3RoZSBsYXN0IGJ1ZmZlciBvZiB0aGUgc2Vjb25kIHRvIGJlIGxv c3QuCisgMi4gRm9ybWF0dGVkIHJlYWRzIG9mIGxvZ2ljYWwgdmFsdWVzIHRyZWF0ZWQgYWxsIGxl dHRlcnMgb3RoZXIgdGhhbgordCBvciBUIGFzIGYgKGZhbHNlKS4KKyBsaWJJNzcgZmlsZXMgY2hh bmdlZDogZXJyLmMgcmRmbXQuYyBWZXJzaW9uLmMKKyAoUmVxdWVzdCAibGliaTc3IGZyb20gZjJj IiAtLSB5b3UgY2FuJ3QgZ2V0IHRoZXNlIGZpbGVzIGluZGl2aWR1YWxseS4pCisKK2YyYyBpdHNl bGY6CisgIFJlcGFpciBuYXN0eSBidWcgaW4gdHJhbnNsYXRpb24gb2YKKwlFTFNFIElGIChjb25k aXRpb24gaW52b2x2aW5nIGNvbXBsaWNhdGVkIGFicywgbWluLCBvciBtYXgpCistLSBhdXhpbGlh cnkgc3RhdGVtZW50cyB3ZXJlIGVtaXR0ZWQgYXQgdGhlIHdyb25nIHBsYWNlLgorICBTdXBwbHkg c2VtaWNvbG9uIHByZXZpb3VzbHkgb21pdHRlZCBmcm9tIHRoZSB0cmFuc2xhdGlvbiBvZiBhIGxh YmVsCisob2YgYSBDT05USU5VRSkgaW1tZWRpYXRlbHkgcHJlY2VkaW5nIGFuIEVMU0UgSUYgb3Ig YW4gRUxTRS4gIFRoaXMKK2J1ZyBtYWRlIGYyYyBwcm9kdWNlIGludmFsaWQgQy4KKyAgQ29ycmVj dCBhIG1lbW9yeSBmYXVsdCB0aGF0IG9jY3VycmVkIChvbiBzb21lIG1hY2hpbmVzKSB3aGVuIHRo ZQorZXJyb3IgbWVzc2FnZSAiYWRqdXN0YWJsZSBkaW1lbnNpb24gb24gbm9uLWFyZ3VtZW50IiBz aG91bGQgYmUgZ2l2ZW4uCisgIE1pbm9yIHR3ZWFrcyB0byByZW1vdmUgc29tZSBoYXJtbGVzcyB3 YXJuaW5ncyBieSBvdmVybHkgY2hhdHR5IEMKK2NvbXBpbGVycy4KKyAgQXJndW1lbnQgYXJheXMg aGF2aW5nIGNvbnN0YW50IGRpbWVuc2lvbnMgYnV0IGEgdmFyaWFibGUgbG93ZXIgYm91bmQKKyhl LmcuLCB4KG4rMTpuKzMpKSBoYWQgYSAqIG9taXR0ZWQgZnJvbSBzY2FsYXIgYXJndW1lbnRzIGlu dm9sdmVkIGluCit0aGUgYXJyYXkgb2Zmc2V0IGNvbXB1dGF0aW9uLgorCitXZWQgTWFyIDI4IDE4 OjQ3OjU5IEVTVCAxOTkwOgorbGliZjc3OiBhZGQgZXhpdCgwKSB0byBlbmQgb2YgbWFpbiBbcmV0 dXJuKDApIGVuY291bnRlcnMgYSBDcmF5IGJ1Z10KKworU3VuIEFwciAgMSAxNjoyMDo1OCBFRFQg MTk5MDoKKyAgQXZvaWQgZGVyZWZlcmVuY2luZyBudWxsIHdoZW4gcHJvY2Vzc2luZyBlcXVpdmFs ZW5jZXMgYWZ0ZXIgYW4gZXJyb3IuCisKK0ZyaSBBcHIgIDYgMDg6Mjk6NDkgRURUIDE5OTA6Cisg IENhbGxzIGludm9sdmluZyBhbHRlcm5hdGUgcmV0dXJuIHNwZWNpZmllcnMgb21pdHRlZCBwcm9j ZXNzaW5nCituZWVkZWQgZm9yIHRoaW5ncyBsaWtlIG1pbiwgbWF4LCBhYnMsIGFuZCAvLyAoY29u Y2F0ZW5hdGlvbikuCisgIElOVEVHRVIqMiBQQVJBTUVURVJzIHdlcmUgdHJlYXRlZCBhcyBJTlRF R0VSKjQuCisgIENvbnZlcnQgc29tZSBPKG5eMikgcGFyc2luZyB0byBPKG4pLgorCitUdWUgQXBy IDEwIDIwOjA3OjAyIEVEVCAxOTkwOgorICBXaGVuIGluY29uc2lzdGVudCBjYWxsaW5nIHNlcXVl bmNlcyBpbnZvbHZlIGRpZmZlcmluZyBudW1iZXJzIG9mCithcmd1bWVudHMsIHJlcG9ydCB0aGUg Zmlyc3QgZGlmZmVyaW5nIGFyZ3VtZW50IHJhdGhlciB0aGFuIHRoZSBudW1iZXJzCitvZiBhcmd1 bWVudHMuCisgIEZpeCBidWcgdW5kZXIgLWE6IGZvcm1hdHRlZCBJL08gaW4gd2hpY2ggZWl0aGVy IHRoZSB1bml0IG9yIHRoZQorZm9ybWF0IHdhcyBhIGxvY2FsIGNoYXJhY3RlciB2YXJpYWJsZSBz b21ldGltZXMgcmVzdWx0ZWQgaW4gaW52YWxpZCBDCisoYSBzdGF0aWMgc3RydWN0IGluaXRpYWxp emVkIHdpdGggYW4gYXV0b21hdGljIGNvbXBvbmVudCkuCisgIEltcHJvdmUgZXJyb3IgbWVzc2Fn ZSBmb3IgaW52YWxpZCBmbGFnIGFmdGVyIGVsaWRlZCAtLgorICBDb21wbGFpbiB3aGVuIGxpdGVy YWwgdGFibGUgb3ZlcmZsb3dzLCByYXRoZXIgdGhhbiBpbmZpbml0ZWx5Citsb29waW5nLiAgKFRo ZSBjb21wbGFpbnQgbWVudGlvbnMgdGhlIG5ldyBhbmQgb3RoZXJ3aXNlIHVuZG9jdW1lbnRlZAor LU5MIG9wdGlvbiBmb3Igc3BlY2lmeWluZyBhIGxhcmdlciBsaXRlcmFsIHRhYmxlLikKKyAgTmV3 IG9wdGlvbiAtaCBmb3IgZm9yY2luZyBzdHJpbmdzIHRvIHdvcmQgKG9yLCB3aXRoIC1oZCwgZG91 YmxlLXdvcmQpCitib3VuZGFyaWVzIHdoZXJlIHBvc3NpYmxlLgorICBSZXBhaXIgYSBidWcgdGhh dCBjb3VsZCBjYXVzZSBpbXByb3BlciBzcGxpdHRpbmcgb2Ygc3RyaW5ncy4KKyAgRml4IGJ1ZyAo Y2FzdCBvZiBjIHRvIGRvdWJsZXJlYWwpIGluCisJc3Vicm91dGluZSBmb28oYyxyKQorCWRvdWJs ZSBjb21wbGV4IGMKKwlkb3VibGUgcHJlY2lzaW9uIHIKKwljID0gY21wbHgocixyZWFsKGMpKQor CWVuZAorICBOZXcgaW5jbHVkZSBmaWxlICJzeXNkZXAuaCIgaGFzIHNvbWUgdGhpbmdzIGZyb20g ZGVmcy5oIChhbmQKK2Vsc2V3aGVyZSkgdGhhdCBvbmUgbWF5IG5lZWQgdG8gbW9kaWZ5IG9uIHNv bWUgc3lzdGVtcy4KKyAgU29tZSBsYXJnZSBhcnJheXMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgc3Rh dGljYWxseSBhbGxvY2F0ZWQgYXJlIG5vdworZHluYW1pY2FsbHkgYWxsb2NhdGVkIHdoZW4gZjJj IHN0YXJ0cyBydW5uaW5nLgorICBmMmMvc3JjIGZpbGVzIGNoYW5nZWQ6CisJUkVBRE1FIGNkcy5j IGRlZnMuaCBmMmMuMSBmMmMuMXQgZm9ybWF0LmMgZm9ybWF0ZGF0YS5jIGluaXQuYworCWlvLmMg bGV4LmMgbWFpbi5jIG1ha2VmaWxlIG1lbS5jIG1pc2MuYyBuYW1lcy5jIG5pY2VwcmludGYuYwor CW91dHB1dC5jIHBhcnNlX2FyZ3MuYyBwcmVhZC5jIHB1dC5jIHB1dHBjYy5jIHN5c2RlcC5oCisJ dmVyc2lvbi5jIHhzdW0wLm91dAorCitXZWQgQXByIDExIDE4OjI3OjEyIEVEVCAxOTkwOgorICBG aXggYnVnIGluIGFyZ3VtZW50IGNvbnNpc3RlbmN5IGNoZWNraW5nIG9mIGNoYXJhY3RlciwgY29t cGxleCwgYW5kCitkb3VibGUgY29tcGxleCB2YWx1ZWQgZnVuY3Rpb25zLiAgSWYgdGhlIHNhbWUg c291cmNlIGZpbGUgY29udGFpbmVkIGEKK2RlZmluaXRpb24gb2Ygc3VjaCBhIGZ1bmN0aW9uIHdp dGggYXJndW1lbnRzIG5vdCBleHBsaWNpdGx5IHR5cGVkLAordGhlbiBzdWJzZXF1ZW50IHJlZmVy ZW5jZXMgdG8gdGhlIGZ1bmN0aW9uIG1pZ2h0IGdldCBlcnJvbmVvdXMKK3dhcm5pbmdzIG9mIGlu Y29uc2lzdGVudCBjYWxsaW5nIHNlcXVlbmNlcy4KKyAgVHdlYWtzIHRvIHN5c2RlcC5oIGZvciBw YXJ0aWFsbHkgQU5TSSBzeXN0ZW1zLgorICBOZXcgb3B0aW9ucyAta3IgYW5kIC1rcmQgY2F1c2Ug ZjJjIHRvIHVzZSB0ZW1wb3JhcnkgdmFyaWFibGVzIHRvCitlbmZvcmNlIEZvcnRyYW4gZXZhbHVh dGlvbi1vcmRlciBydWxlcyB3aXRoIHBlcm5pY2lvdXMsIG9sZC1zdHlsZSBDCitjb21waWxlcnMg dGhhdCBhcHBseSB0aGUgYXNzb2NpYXRpdmUgbGF3IHRvIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlv bnMuCisKK1NhdCBBcHIgMTQgMTU6NTA6MTUgRURUIDE5OTA6CisgIGxpYmk3NzogbGliSTc3IGFk anVzdGVkIHRvIGFsbG93IGxpc3QtZGlyZWN0ZWQgYW5kIG5hbWVsaXN0IEkvTworb2YgaW50ZXJu YWwgZmlsZXM7IGJ1ZyBpbiBuYW1lbGlzdCBJL08gb2YgbG9naWNhbCBhbmQgY2hhcmFjdGVyIGFy cmF5cworZml4ZWQ7IGxpc3QgaW5wdXQgb2YgY29tcGxleCBudW1iZXJzIGFkanVzdGVkIHRvIHBl cm1pdCBkIG9yIEQgdG8KK2Rlbm90ZSB0aGUgc3RhcnQgb2YgdGhlIGV4cG9uZW50IGZpZWxkIG9m IGEgY29tcG9uZW50LgorICBmMmMgaXRzZWxmOiBmaXggYnVnIGluIGhhbmRsaW5nIGNvbXBsaWNh dGVkIGxvd2VyLWJvdW5kCitleHByZXNzaW9ucyBmb3IgY2hhcmFjdGVyIHN1YnN0cmluZ3M7IGUu Zy4sIG1pbiBhbmQgbWF4IGRpZCBub3Qgd29yaworcmlnaHQsIG5vciBkaWQgZnVuY3Rpb24gaW52 b2NhdGlvbnMgaW52b2x2aW5nIGNoYXJhY3RlciBhcmd1bWVudHMuCisgIFN3aXRjaCB0byBvY3Rh bCBub3RhdGlvbiwgcmF0aGVyIHRoYW4gaGV4YWRlY2ltYWwsIGZvciBub25wcmludGluZworY2hh cmFjdGVycyBpbiBjaGFyYWN0ZXIgYW5kIHN0cmluZyBjb25zdGFudHMuCisgIEZpeCBidWcgKHdo ZW4gbmVpdGhlciAtQSBub3IgLUMrKyB3YXMgc3BlY2lmaWVkKSBpbiB0eXBpbmcgb2YKK2V4dGVy bmFsIGFyZ3VtZW50cyBvZiB0eXBlIGNvbXBsZXgsIGRvdWJsZSBjb21wbGV4LCBvciBjaGFyYWN0 ZXI6CisJc3Vicm91dGluZSBmb28oYykKKwlleHRlcm5hbCBjCisJY29tcGxleCBjCitub3cgcmVz dWx0cyBpbgorCS8qIENvbXBsZXggKi8gaW50ICgqYykgKCk7CisoYXMsIGluZGVlZCwgaXQgb25j ZSBkaWQpIHJhdGhlciB0aGFuCisJY29tcGxleCAoKmMpICgpOworCitTYXQgQXByIDE0IDIyOjUw OjM5IEVEVCAxOTkwOgorICBsaWJJNzcvbWFrZWZpbGU6IHVwZGF0ZWQgIm1ha2UgY2hlY2siIHRv IG9taXQgbGlvLmMKKyAgbGliW0ZJXTc3L21ha2VmaWxlOiB0cml2aWFsIGNoYW5nZTogZGVmaW5l IENDID0gY2MsIHJlZmVyZW5jZSAkKENDKS4KKyAgKFJlcXVlc3QsIGUuZy4sICJsaWJpNzcgZnJv bSBmMmMiIC0tIHlvdSBjYW4ndCBhc2sgZm9yIGluZGl2aWR1YWwKK2ZpbGVzIGZyb20gbGliW0ZJ XTc3LikKKworV2VkIEFwciAxOCAwMDo1NjozNyBFRFQgMTk5MDoKKyAgTW92ZSBkZWNsYXJhdGlv biBvZiBhdG9mKCkgZnJvbSBkZWZzLmggdG8gc3lzZGVwLmgsIHdoZXJlIGl0IGlzCitub3cgbm90 IGRlY2xhcmVkIGlmIHN0ZGxpYi5oIGlzIGluY2x1ZGVkLiAgKE5lWFQncyBzdGRsaWIuaCBoYXMg YQorI2RlZmluZSBhdG9mIHRoYXQgb3RoZXJ3aXNlIHdyZWFrcyBoYXZvYy4pCisgIFVuZGVyIC11 LCBwcm92aWRlIGEgbW9yZSBpbnRlbGxpZ2libGUgZXJyb3IgbWVzc2FnZSAodGhhbiAiYmFkIHRh ZyIpCitmb3IgYW4gYXR0ZW1wdCB0byBkZWZpbmUgYSBmdW5jdGlvbiB3aXRob3V0IHNwZWNpZnlp bmcgaXRzIHR5cGUuCisKK1dlZCBBcHIgMTggMTc6MjY6MjcgRURUIDE5OTA6CisgIFJlY29nbml6 ZSBcdiAodmVydGljYWwgdGFiKSBpbiBIb2xsZXJpdGggYXMgd2VsbCBhcyBxdW90ZWQgc3RyaW5n czsKK2FkZCByZWNvZ25pdGlvbiBvZiBcciAoY2FycmlhZ2UgcmV0dXJuKS4KKyAgTmV3IG9wdGlv biAtIWJzIHR1cm5zIG9mZiByZWNvZ25pdGlvbiBvZiBlc2NhcGVzIGluIGNoYXJhY3RlciBzdHJp bmdzCisoXDAsIFxcLCBcYiwgXGYsIFxuLCBcciwgXHQsIFx2KS4KKyAgTW92ZSB0byBzeXNkZXAu YyBpbml0aWFsaXphdGlvbiBvZiBzb21lIGFycmF5cyB3aG9zZSBpbml0aWFsaXphdGlvbgorYXNz dW1lZCBBU0NJSTsgI2RlZmluZSBUYWJsZV9zaXplIGluIHN5c2RlcC5oIHJhdGhlciB0aGFuIHVz aW5nCitoYXJkLWNvZGVkIDI1NiBpbiBhbGxvY2F0aW5nIGFycmF5cyBvZiBzaXplIDEgPDwgKGJp dHMvYnl0ZSkuCisKK1RodSBBcHIgMTkgMDg6MTM6MjEgRURUIDE5OTA6CisgIFdhcm4gd2hlbiBl c2NhcGVzIHdvdWxkIG1ha2UgSG9sbGVyaXRoIGV4dGVuZCBiZXlvbmQgc3RhdGVtZW50IGVuZC4K KyAgT21pdCBtYXgoKSBkZWZpbml0aW9uIGZyb20gbWlzYy5jIChzaG91bGQgYmUgaW52aXNpYmxl IGV4Y2VwdCBvbgorc3lzdGVtcyB0aGF0IGVycm9uZW91c2x5ICNkZWZpbmUgbWF4IGluIHN0ZGxp Yi5oKS4KKworTW9uIEFwciAyMyAyMjoyNDo1MSBFRFQgMTk5MDoKKyAgV2hlbiBwcm9kdWNpbmcg ZGVmYXVsdC1zdHlsZSBDIChubyAtQSBvciAtQysrKSwgY2FzdCBzd2l0Y2gKK2V4cHJlc3Npb25z IHRvIChpbnQpLgorICBNb3ZlICItbEY3NyAtbEk3NyAtbG0gLWxjIiB0byBsaW5rX21zZywgZGVm aW5lZCBpbiBzeXNkZXAuYyAuCisgIEFkZCAjZGVmaW5lIHNjcnViKHgpIHRvIHN5c2RlcC5oLCB3 aXRoIGludm9jYXRpb25zIGluIGZvcm1hdC5jIGFuZAorZm9ybWF0ZGF0YS5jLCBzbyB0aGF0IHBl b3BsZSB3aG8gaGF2ZSBzeXN0ZW1zIGxpa2UgVk1TIHRoYXQgd291bGQKK290aGVyd2lzZSBjcmVh dGUgbXVsdGlwbGUgdmVyc2lvbnMgb2YgaW50ZXJtZWRpYXRlIGZpbGVzIGNhbgorI2RlZmluZSBz Y3J1Yih4KSB1bmxpbmsoeCkKKworVHVlIEFwciAyNCAxODoyODozNiBFRFQgMTk5MDoKKyAgUGFz cyBzdHJpbmcgbGVuZ3RocyBvbmNlIHJhdGhlciB0aGFuIHR3aWNlIHRvIGEgZnVuY3Rpb24gb2Yg Y2hhcmFjdGVyCithcmd1bWVudHMgaW52b2x2ZWQgaW4gY29tcGFyaXNvbiBvZiBjaGFyYWN0ZXIg c3RyaW5ncyBvZiBsZW5ndGggMS4KKworRnJpIEFwciAyNyAxMzoxMTo1MiBFRFQgMTk5MDoKKyAg Rml4IGJ1ZyB0aGF0IG1hZGUgZjJjIGdhZyBvbiBjb25jYXRlbmF0aW9ucyBpbnZvbHZpbmcgY2hh ciguLi4pIG9uCitzb21lIHN5c3RlbXMuCisKK1NhdCBBcHIgMjggMjM6MjA6MTYgRURUIDE5OTA6 CisgIEZpeCBjb250cm9sLXN0YWNrIGJ1ZyBpbgorCWlmKC4uLikgdGhlbgorCWVsc2UgaWYgKGNv bXBsaWNhdGVkIGNvbmRpdGlvbikKKwllbHNlCisJZW5kaWYKKyh3aGVyZSB0aGUgY29tcGxpY2F0 ZWQgY29uZGl0aW9uIGNhdXNlcyBhc3NpZ25tZW50IHRvIGFuIGF1eGlsaWFyeQordmFyaWFibGUs IGUuZy4sIG1heChhKmIsYykpLgorCitNb24gQXByIDMwIDEzOjMwOjEwIEVEVCAxOTkwOgorICBD aGFuZ2UgZmlsbGVycyBmb3IgREFUQSB3aXRoIGhvbGVzIGZyb20gc3Vic3RydWN0dXJlcyB0byBh cnJheXMKKyhpbiBhbiBhdHRlbXB0IHRvIG1ha2UgdGhpbmdzIHdvcmsgcmlnaHQgd2l0aCBDIGNv bXBpbGVycyB0aGF0IGhhdmUKK2Z1bm55IHBhZGRpbmcgcnVsZXMgZm9yIHN1YnN0cnVjdHVyZXMs IGUuZy4sIFN1biBDIGNvbXBpbGVycykuCisgIE1pbm9yIGNsZWFudXAgb2YgZXhlYy5jIChzaG91 bGQgbm90IGFmZmVjdCBnZW5lcmF0ZWQgQykuCisKK01vbiBBcHIgMzAgMjM6MTM6NTEgRURUIDE5 OTA6CisgIEZpeCBidWcgaW4gaGFuZGxpbmcgcmV0dXJuIHZhbHVlcyBvZiBmdW5jdGlvbnMgaGF2 aW5nIG11bHRpcGxlCitlbnRyeSBwb2ludHMgb2YgZGlmZmVyaW5nIHJldHVybiB0eXBlcy4KKwor U2F0IE1heSAgNSAwMTo0NToxOCBFRFQgMTk5MDoKKyAgRml4IHR5cGUgaW5mZXJlbmNlIGJ1ZyBp bgorCXN1YnJvdXRpbmUgZm9vKHgpCisJY2FsbCBnb28oeCkKKwllbmQKKwlzdWJyb3V0aW5lIGdv byhpKQorCWkgPSAzCisJZW5kCitJbnN0ZWFkIG9mIHdhcm5pbmcgb2YgaW5jb25zaXN0ZW50IGNh bGxpbmcgc2VxdWVuY2VzIGZvciBnb28sCitmMmMgd2FzIHNpbXBseSBtYWtpbmcgaSBhIHJlYWwg dmFyaWFibGU7IG5vdyBpIGlzIGNvcnJlY3RseQordHlwZWQgYXMgYW4gaW50ZWdlciB2YXJpYWJs ZSwgYW5kIGYyYyBpc3N1ZXMgYW4gZXJyb3IgbWVzc2FnZS4KKyAgQWRqdXN0IGVycm9yIG1lc3Nh Z2VzIGlzc3VlZCBhdCBlbmQgb2YgZGVjbGFyYXRpb25zIHNvIHRoZXkKK2Rvbid0IGJsYW1lIHRo ZSBmaXJzdCBleGVjdXRhYmxlIHN0YXRlbWVudC4KKworU3VuIE1heSAgNiAwMToyOTowNyBFRFQg MTk5MDoKKyAgRml4IGJ1ZyBpbiAtUCBhbmQgLVBzOiB3YXJuIHdoZW4gdGhlIGRlZmluaXRpb24g b2YgYSBzdWJwcm9ncmFtIGFkZHMKK2luZm9ybWF0aW9uIHRoYXQgd291bGQgY2hhbmdlIHByb3Rv dHlwZXMgb3IgcHJldmlvdXMgZGVjbGFyYXRpb25zLgorCitUaHUgTWF5IDEwIDE4OjA5OjE1IEVE VCAxOTkwOgorICBGaXggZnVydGhlciBvYnNjdXJlIGJ1ZyB3aXRoIChkZWZhdWx0KSAtaXQ6IGlu Y29uc2lzdGVudCBjYWxsaW5nCitzZXF1ZW5jZXMgYW5kIEkvTyBzdGF0ZW1lbnRzIGNvdWxkIGlu dGVyYWN0IHRvIGNhdXNlIGEgbWVtb3J5IGZhdWx0LgorRXhhbXBsZToKKyAgICAgIFNVQlJPVVRJ TkUgRk9PCisgICAgICBDQUxMIEdPTygnIFNvbWV0aGluZycpICEgRm9yZ290IGludGVnZXIgZmly c3QgYXJnCisgICAgICBFTkQKKyAgICAgIFNVQlJPVVRJTkUgR09PKElVTklULE1TRykKKyAgICAg IENIQVJBQ1RFUiooKilNU0cKKyAgICAgIFdSSVRFKElVTklULCcoMVgsQSknKSBNU0cKKyAgICAg IEVORAorCitGcmkgTWF5IDExIDE2OjQ5OjExIEVEVCAxOTkwOgorICBVbmRlciAtIWMsIGRvIG5v dCBkZWxldGUgYW55IC5jIGZpbGVzICh3aGVuIHRoZXJlIGFyZSBlcnJvcnMpLgorICBBdm9pZCBk ZXJlZmVyZW5jaW5nIDAgd2hlbiBhIGZhdGFsIGVycm9yIG9jY3VycyB3aGlsZSByZWFkaW5nCitG b3J0cmFuIG9uIHN0ZGluLgorCitXZWQgTWF5IDE2IDE4OjI0OjQyIEVEVCAxOTkwOgorICBmMmMu cHMgbWFkZSBhdmFpbGFibGUuCisKK01vbiBKdW4gIDQgMTI6NTM6MDggRURUIDE5OTA6CisgIERp YWdub3NlIEkvTyB1bml0cyBvZiBpbnZhbGlkIHR5cGUuCisgIEFkZCBzcGVjaWZpYyBlcnJvciBt c2cgYWJvdXQgZHVtbXkgYXJndW1lbnRzIGluIGNvbW1vbi4KKworV2VkIEp1biAxMyAxMjo0Mzox NyBFRFQgMTk5MDoKKyAgVW5kZXIgLUEsIHN1cHBseSBhIG1pc3NpbmcgIlsxXSIgZm9yIENIQVJB Q1RFUioxIHZhcmlhYmxlcyB0aGF0IGFwcGVhcgorYm90aCBpbiBhIERBVEEgc3RhdGVtZW50IGFu ZCBpbiBlaXRoZXIgQ09NTU9OIG9yIEVRVUlWQUxFTkNFLgorCitNb24gSnVuIDE4IDE2OjU4OjMx IEVEVCAxOTkwOgorICBUcml2aWFsIHVwZGF0ZXMgdG8gZjJjLnBzIC4gICgiRm9ydHJhbiA4eCIg LS0+ICJGb3J0cmFuIDkwIjsgb21pdAorIihkcmFmdCkiIGZyb20gIihkcmFmdCkgQU5TSSBDIi4p CisKK1R1ZSBKdW4gMTkgMDc6MzY6MzIgRURUIDE5OTA6CisgIEZpeCBpbmNvcnJlY3QgY29kZSBn ZW5lcmF0ZWQgZm9yIEVMU0UgSUYoZXhwcmVzc2lvbiBpbnZvbHZpbmcKK2Z1bmN0aW9uIGNhbGwg cGFzc2luZyBub24tY29uc3RhbnQgc3Vic3RyaW5nKS4KKyAgVW5kZXIgLWgsIHByZXNlcnZlIHRo ZSBwcm9wZXJ0eSB0aGF0IHN0cmluZ3MgYXJlIG51bGwtdGVybWluYXRlZAord2hlcmUgcG9zc2li bGUuCisgIFJlbW92ZSBzcGFjZXMgYmV0d2VlbiAjIGFuZCBkZWZpbmUgaW4gbGV4LmMgb3V0cHV0 LmMgcGFyc2UuaCAuCisKK01vbiBKdW4gMjUgMDc6MjI6NTkgRURUIDE5OTA6CisgIE1pbm9yIHR3 ZWFrIHRvIG1ha2VmaWxlIHRvIHJlZHVjZSB1bm5lY2Vzc2FyeSByZWNvbXBpbGF0aW9ucy4KKwor VHVlIEp1biAyNiAxMTo0OTo1MyBFRFQgMTk5MDoKKyAgRml4IHVuaW50ZW5kZWQgdHJ1bmNhdGlv biBvZiBzb21lIGludGVnZXIgY29uc3RhbnRzIG9uIG1hY2hpbmVzCit3aGVyZSBjYXN0aW5nIGEg bG9uZyB0byAoaW50KSBtYXkgY2hhbmdlIHRoZSB2YWx1ZS4gIEUuZy4sIHdoZW4gZjJjCityYW4g b24gbWFjaGluZXMgd2l0aCAxNi1iaXQgaW50cywgImkgPSA5OTk5OSIgd2FzIGJlaW5nIHRyYW5z bGF0ZWQKK3RvICJpID0gLTMxMDczOyIuCisKK1dlZCBKdW4gMjcgMTE6MDU6MzIgRURUIDE5OTA6 CisgIEFycmFuZ2UgZm9yIENIQVJBQ1RFUi12YWx1ZWQgUEFSQU1FVEVScyB0byBob25vciB0aGVp ciBsZW5ndGgKK3NwZWNpZmljYXRpb25zLiAgQWxsb3cgQ0hBUihubikgaW4gZXhwcmVzc2lvbnMg ZGVmaW5pbmcgc3VjaCBQQVJBTUVURVJzLgorCitGcmkgSnVsIDIwIDA5OjE3OjMwIEVEVCAxOTkw OgorICBBdm9pZCBkZXJlZmVyZW5jaW5nIDAgd2hlbiBhIEZPUk1BVCBzdGF0ZW1lbnQgaGFzIG5v IGxhYmVsLgorCitUaHUgSnVsIDI2IDExOjA5OjM5IEVEVCAxOTkwOgorICBSZW1hcmtzIGFib3V0 IFZPSUQgYW5kIGJpbnJlYWQsYmlud3JpdGUgYWRkZWQgdG8gUkVBRE1FLgorICBUd2Vha3MgdG8g cGFyc2VfYXJnczogc2hvdWxkIGJlIGludmlzaWJsZSB1bmxlc3MgeW91ciBjb21waWxlcgorY29t cGxhaW5lZCBhdCAoc2hvcnQpKnN0b3JlLgorCitUaHUgQXVnICAyIDAyOjA3OjU4IEVEVCAxOTkw OgorICBmMmMucHM6IGNoYW5nZSB0aGUgZmlyc3QgbGluZSBvZiBwYWdlIDUgZnJvbQorCWluY2x1 ZGUgc3R1ZmYKK3RvCisJaW5jbHVkZSAnc3R1ZmYnCisKK1R1ZSBBdWcgMTQgMTM6MjE6MjQgRURU IDE5OTA6CisgIGxpYmk3NzogbGliSTc3IGFkanVzdGVkIHRvIHRyZWF0IHRhYnMgYXMgc3BhY2Vz IGluIGxpc3QgaW5wdXQuCisKK0ZyaSBBdWcgMTcgMDc6MjQ6NTMgRURUIDE5OTA6CisgIGxpYmk3 NzogbGliSTc3IGFkanVzdGVkIHNvIGEgYmxhbms9J1pFUk8nIGNsYXVzZSAodXBwZXIgY2FzZSBa KQoraW4gYW4gb3BlbiBvZiBhIGN1cnJlbnRseSBvcGVuIGZpbGUgd29ya3MgcmlnaHQuCisKK1R1 ZSBBdWcgMjggMDE6NTY6NDQgRURUIDE5OTA6CisgIEZpeCBidWcgaW4gd2FybmluZ3Mgb2YgaW5j b25zaXN0ZW50IGNhbGxpbmcgc2VxdWVuY2VzOiBpZiBhbgorYXJndW1lbnQgdG8gYSBzdWJwcm9n cmFtIHdhcyBuZXZlciByZWZlcmVuY2VkLCB0aGVuIGEgcHJldmlvdXMKK2ludm9jYXRpb24gb2Yg dGhlIHN1YnByb2dyYW0gKGluIHRoZSBzYW1lIHNvdXJjZSBmaWxlKSB0aGF0CitwYXNzZWQgc29t ZXRoaW5nIG9mIHRoZSB3cm9uZyB0eXBlIGZvciB0aGF0IGFyZ3VtZW50IGRpZCBub3QKK2VsaWNp dCBhIHdhcm5pbmcgbWVzc2FnZS4KKworVGh1IEF1ZyAzMCAwOTo0NjoxMiBFRFQgMTk5MDoKKyAg bGliaTc3OiBwcmV2ZW50IGVtYmVkZGVkIGJsYW5rcyBpbiBsaXN0IG91dHB1dCBvZiBjb21wbGV4 IHZhbHVlczsKK29taXQgZXhwb25lbnQgZmllbGQgaW4gbGlzdCBvdXRwdXQgb2YgdmFsdWVzIG9m IG1hZ25pdHVkZSBiZXR3ZWVuCisxMCBhbmQgMWU4OyBwcmV2ZW50IHdyaXRpbmcgc3RkaW4gYW5k IHJlYWRpbmcgc3Rkb3V0IG9yIHN0ZGVycjsKK2Rvbid0IGNsb3NlIHN0ZGluLCBzdGRvdXQsIG9y IHN0ZGVyciB3aGVuIHJlb3BlbmluZyB1bml0cyA1LCA2LCAwLgorCitUdWUgU2VwICA0IDEyOjMw OjU3IEVEVCAxOTkwOgorICBGaXggYnVnIGluIEMgZW1pdHRlZCB1bmRlciAtSTIgb3IgLWkyIGZv ciBJTlRFR0VSKjQgRlVOQ1RJT04uCisgIFdhcm4gb2YgbWlzc2luZyBmaW5hbCBFTkQgZXZlbiBp ZiB0aGVyZSBhcmUgcHJldmlvdXMgZXJyb3JzLgorCitGcmkgU2VwICA3IDEzOjU1OjM0IEVEVCAx OTkwOgorICBSZW1hcmsgYWJvdXQgIm1ha2UgeHN1bS5vdXQiIGFuZCAibWFrZSBmMmMiIGFkZGVk IHRvIFJFQURNRS4KKworVHVlIFNlcCAxOCAyMzo1MDowMSBFRFQgMTk5MDoKKyAgRml4IG51bGwg ZGVyZWZlcmVuY2UgKGFuZCwgb24gc29tZSBzeXN0ZW1zLCB3cml0aW5nIG9mIGJvZ3VzICpfY29t LmMKK2ZpbGVzKSB1bmRlciAtZWMgb3IgLWUxYyB3aGVuIGEgcHJvdG90eXBlIGZpbGUgKCoucCBv ciAqLlApIGRlc2NyaWJlcworQ09NTU9OIGJsb2NrcyB0aGF0IGRvIG5vdCBhcHBlYXIgaW4gdGhl IEZvcnRyYW4gc291cmNlLgorICBsaWJpNzc6CisgICAgQWRkIHNvbWUgI2lmZGVmIGxpbmVzICgj aWZkZWYgTVNET1MsICNpZm5kZWYgTVNET1MpIHRvIGF2b2lkCityZWZlcmVuY2VzIHRvIHN0YXQg YW5kIGZzdGF0IG9uIG5vbi1VTklYIHN5c3RlbXMuCisgICAgT24gVU5JWCBzeXN0ZW1zLCBhZGQg Y29tcG9uZW50IHVkZXYgdG8gdW5pdDsgZGVjaWRlIHRoYXQgb2xkCithbmQgbmV3IGZpbGVzIGFy ZSB0aGUgc2FtZSBpZmYgYm90aCB0aGUgdWlub2RlIGFuZCB1ZGV2IGNvbXBvbmVudHMKK29mIHVu aXQgYWdyZWUuCisgICAgV2hlbiBhbiBvcGVuIHN0bXQgc3BlY2lmaWVzIFNUQVRVUz0nT0xEJywg dXNlIHN0YXQgcmF0aGVyIHRoYW4KK2FjY2VzcyAob24gVU5JWCBzeXN0ZW1zKSB0byBjaGVjayB0 aGUgZXhpc3RlbmNlIG9mIHRoZSBmaWxlIChpbiBjYXNlCitkaXJlY3RvcmllcyBsZWFkaW5nIHRv IHRoZSBmaWxlIGhhdmUgZnVubnkgcGVybWlzc2lvbnMgYW5kIHRoaXMgaXMKK2Egc2V0dWlkIG9y IHNldGdpZCBwcm9ncmFtKS4KKworVGh1IFNlcCAyNyAxNjowNDowOSBFRFQgMTk5MDoKKyAgU3Vw cGx5IG1pc3NpbmcgZW50cnkgZm9yIEltcGxkb2Jsb2NrIGluIGJsa3NpemUgYXJyYXkgb2YgY3Bl eHByCisoaW4gZXhwci5jKS4gIE5vIGV4YW1wbGVzIGFyZSBrbm93biB3aGVyZSB0aGlzIG9taXNz aW9uIGNhdXNlZCB0cm91YmxlLgorCitUdWUgT2N0ICAyIDIyOjU4OjA5IEVEVCAxOTkwOgorICBs aWJmNzc6IHRlc3Qgc2lnbmFsKC4uLikgPT0gU0lHX0lHTiByYXRoZXIgdGhhbiAmIDAxIGluIG1h aW4oKS4KKyAgbGliaTc3OiBhZGp1c3QgcmV3aW5kLmMgc28gdHdvIHN1Y2Nlc3NpdmUgcmV3aW5k cyBhZnRlciBhIHdyaXRlCitkb24ndCBjbG9iYmVyIHRoZSBmaWxlLgorCitUaHUgT2N0IDExIDE4 OjAwOjE0IEVEVCAxOTkwOgorICBsaWJpNzc6IG1pbm9yIGNsZWFudXBzOiBhZGQgI2luY2x1ZGUg ImZjbnRsLmgiIHRvIGVuZGZpbGUuYywgZXJyLmMsCitvcGVuLmM7IGFkanVzdCBnX2NoYXIgaW4g dXRpbC5jIGZvciBzZWdtZW50ZWQgbWVtb3JpZXM7IGluIGZfaW5xdQorKGlucXVpcmUuYyksIGRl ZmluZSB4IGFwcHJvcHJpYXRlbHkgd2hlbiBNU0RPUyBpcyBkZWZpbmVkLgorCitNb24gT2N0IDE1 IDIwOjAyOjExIEVEVCAxOTkwOgorICBBZGQgI2lmZGVmIE1TRE9TIHBvaW50ZXIgYWRqdXN0bWVu dHMgdG8gbWVtLmM7IHRyZWF0IE5BTUU9IGFzIGEKK3N5bm9ueW0gZm9yIEZJTEU9IGluIE9QRU4g c3RhdGVtZW50cy4KKworV2VkIE9jdCAxNyAxNjo0MDozNyBFRFQgMTk5MDoKKyAgbGliZjc3LCBs aWJpNzc6IG1pbm9yIGNsZWFudXBzOiBfY2xlYW51cCgpIGFuZCBhYm9ydCgpIGludm9jYXRpb25z CityZXBsYWNlZCBieSBpbnZvY2F0aW9ucyBvZiBzaWdfZGllIGluIG1haW4uYzsgc29tZSBlcnJv ciBtZXNzYWdlcworcHJldmlvdXNseSBsb3N0IGluIGJ1ZmZlcnMgd2lsbCBub3cgYXBwZWFyLgor CitNb24gT2N0IDIyIDE2OjExOjI3IEVEVCAxOTkwOgorICBsaWJmNzc6IHNlcGFyYXRlIHNpZ19k aWUgZnJvbSBtYWluIChmb3IgZm9sa3Mgd2hvIGRvbid0IHdhbnQgdG8gdXNlCit0aGUgbWFpbiBp biBsaWJGNzcpLgorICBsaWJpNzc6IG1pbm9yIHR3ZWFrIHRvIGNvbW1lbnRzIGluIFJFQURNRS4K KworRnJpIE5vdiAgMiAxMzo0OTozNSBFU1QgMTk5MDoKKyAgVXNlIHR3byB1bmRlcnNjb3JlcyBy YXRoZXIgdGhhbiBvbmUgaW4gZ2VuZXJhdGVkIHRlbXBvcmFyeSB2YXJpYWJsZQorbmFtZXMgdG8g YXZvaWQgY29uZmxpY3Qgd2l0aCBDT01NT04gbmFtZXMuICBmMmMucHMgdXBkYXRlZCB0byByZWZs ZWN0Cit0aGlzIGNoYW5nZSBhbmQgdGhlIE5BTUU9IGV4dGVuc2lvbiBpbnRyb2R1Y2VkIDE1IE9j dC4KKyAgUmVwYWlyIGEgcmFyZSBtZW1vcnkgZmF1bHQgaW4gaW8uYyAuCisKK01vbiBOb3YgIDUg MTY6NDM6NTUgRVNUIDE5OTA6CisgIGxpYmk3NzogY2hhbmdlcyB0byBvcGVuLmMgKGFuZCBlcnIu Yyk6IGNvbXBsYWluIGlmIGFuIG9wZW4gc3RtdAorc3BlY2lmaWVzIG5ldz0gYW5kIHRoZSBmaWxl IGFscmVhZHkgZXhpc3RzIChhcyBzcGVjaWZpZWQgYnkgRm9ydHJhbnMgNzcKK2FuZCA5MCk7IGFs bG93IGZpbGU9IHRvIGJlIG9taXR0ZWQgaW4gb3BlbiBzdG10cyBhbmQgYWxsb3cKK3N0YXR1cz0n cmVwbGFjZScgKEZvcnRyYW4gOTAgZXh0ZW5zaW9ucykuCisKK0ZyaSBOb3YgMzAgMTA6MTA6MTQg RVNUIDE5OTA6CisgIEFkanVzdCBtYWxsb2MuYyBmb3IgdW51c3VhbCBzeXN0ZW1zIHdob3NlIHNi cmsoKSBjYW4gcmV0dXJuIHZhbHVlcworbm90IHByb3Blcmx5IGFsaWduZWQgZm9yIGRvdWJsZXMu CisgIEFycmFuZ2UgZm9yIHNsaWdodGx5IG1vcmUgaGVscGZ1bCBhbmQgbGVzcyByZXBldGl0aXZl IHdhcm5pbmdzIGZvcgorbm9uLWNoYXJhY3RlciB2YXJpYWJsZXMgaW5pdGlhbGl6ZWQgd2l0aCBj aGFyYWN0ZXIgZGF0YTsgdGhlc2Ugd2FybmluZ3MKK2FyZSAoc3RpbGwpIHN1cHByZXNzZWQgYnkg LXc2Ni4KKworRnJpIE5vdiAzMCAxNTo1Nzo1OSBFU1QgMTk5MDoKKyAgTWlub3IgdHdlYWsgdG8g UkVBRE1FIChhYm91dCBjaGFuZ2luZyBWT0lEIGluIGYyYy5oKS4KKworTW9uIERlYyAgMyAwNzoz NjoyMCBFU1QgMTk5MDoKKyAgRml4IHNwZWxsaW5nIG9mICJjaGFyYWN0ZXIiIGluIGYyYy4xdC4K KworVHVlIERlYyAgNCAwOTo0ODo1NiBFU1QgMTk5MDoKKyAgUmVtYXJrIGFib3V0IGxpbmtfbXNn IGFuZCBsaWJmMmMgYWRkZWQgdG8gZjJjL1JFQURNRS4KKworVGh1IERlYyAgNiAwODozMzoyNCBF U1QgMTk5MDoKKyAgVW5kZXIgLVUsIHJlbmRlciBsYWJlbCBubm4gYXMgTF9ubm4gcmF0aGVyIHRo YW4gTG5ubi4KKworRnJpIERlYyAgNyAxODowNTowMCBFU1QgMTk5MDoKKyAgQWRkIG1vcmUgbmFt ZXMgZnJvbSBmMmMuaCAoZS5nLiBpbnRlZ2VyLCByZWFsKSB0byB0aGUgY19rZXl3b3JkcworbGlz dCBvZiBuYW1lcyB0byB3aGljaCBhbiB1bmRlcnNjb3JlIGlzIGFwcGVuZGVkIHRvIGF2b2lkIGNv bmZ1c2lvbi4KKworTW9uIERlYyAxMCAxOToxMToxNSBFU1QgMTk5MDoKKyAgTWlub3IgdHdlYWtz IHRvIG1ha2VmaWxlICguL3hzdW0pIGFuZCBSRUFETUUgKGJpbnJlYWQvYmlud3JpdGUpLgorICBs aWJpNzc6IGEgZmV3IG1vZGlmaWNhdGlvbnMgZm9yIFBPU0lYIHN5c3RlbXM7IG1lYW50IHRvIGJl IGludmlzaWJsZQorZWxzZXdoZXJlLgorCitTdW4gRGVjIDE2IDIzOjAzOjE2IEVTVCAxOTkwOgor ICBGaXggbnVsbCBkZXJlZmVyZW5jZSBjYXVzZWQgYnkgdW51c3VhbCBlcnJvbmVvdXMgaW5wdXQs IGUuZy4KKwljYWxsIGZvbygnYWJjJykKKwllbmQKKwlzdWJyb3V0aW5lIGZvbyhtc2cpCisJZGF0 YSBuLzMvCisJY2hhcmFjdGVyKigqKSBtc2cKKwllbmQKKyhTdWJyb3V0aW5lIGZvbyBpcyBpbGxl Z2FsIGJlY2F1c2UgdGhlIGNoYXJhY3RlciBzdGF0ZW1lbnQgY29tZXMgYWZ0ZXIgYQorZGF0YSBz dGF0ZW1lbnQuKQorICBVc2UgZGVjaW1hbCByYXRoZXIgdGhhbiBoZXggY29uc3RhbnRzIGluIHhz dW0uYyAodG8gcHJldmVudAorZXJyb25lb3VzIHdhcm5pbmcgbWVzc2FnZXMgYWJvdXQgY29uc3Rh bnQgb3ZlcmZsb3cpLgorCitNb24gRGVjIDE3IDEyOjI2OjQwIEVTVCAxOTkwOgorICBGaXggcmFy ZSBleHRyYSB1bmRlcnNjb3JlIGluIGNoYXJhY3RlciBsZW5ndGggcGFyYW1ldGVycyBwYXNzZWQK K2ZvciBtdWx0aXBsZSBlbnRyeSBwb2ludHMuCisKK1dlZCBEZWMgMTkgMTc6MTk6MjYgRVNUIDE5 OTA6CisgIEFsbG93IGdlbmVyYXRpb24gb2YgQyBkZXNwaXRlIGVycm9yIG1lc3NhZ2VzIGFib3V0 IGJhZCBhbGlnbm1lbnQKK2ZvcmNlZCBieSBlcXVpdmFsZW5jZS4KKyAgQWxsb3cgdmFyaWFibGUt bGVuZ3RoIGNvbmNhdGVuYXRpb25zIGluIEkvTyBzdGF0ZW1lbnRzLCBzdWNoIGFzCisJb3Blbigz LCBmaWxlPWJsZXRjaCgxOm4pIC8vICcueHl6JykKKworRnJpIERlYyAyOCAxNzowODozMCBFU1Qg MTk5MDoKKyAgRml4IGJ1ZyB1bmRlciAtcCB3aXRoIGZvcm1hdHMgYW5kIGludGVybmFsIEkvTyAi dW5pdHMiIGluIENPTU1PTiwKK2FzIGluCisgICAgICBDT01NT04gL0ZJR0xFQS9GCisgICAgICBD SEFSQUNURVIqMjAgRgorICAgICAgRiA9ICcoQSknCisgICAgICBXUklURSAoKixGTVQ9RikgJ0hl bGxvLCB3b3JsZCEnCisgICAgICBFTkQKKworVHVlIEphbiAxNSAxMjowMDoyNCBFU1QgMTk5MToK KyAgRml4IGJ1ZyB3aGVuIHR3byBlcXVpdmFsZW5jZSBncm91cHMgYXJlIG1lcmdlZCwgdGhlIHNl Y29uZCB3aXRoCitub256ZXJvIG9mZnNldCwgYW5kIHRoZSByZXN1bHQgaXMgdGhlbiBtZXJnZWQg aW50byBhIGNvbW1vbiBibG9jay4KK0V4YW1wbGU6CisgICAgICBJTlRFR0VSIFcoMyksIFgoMyks IFkoMyksIFooMykKKyAgICAgIENPTU1PTiAvWk9ULyBaCisgICAgICBFUVVJVkFMRU5DRSAoVygx KSxYKDEpKSwgKFgoMiksWSgxKSksIChaKDMpLFgoMSkpCisqKioqKiBXIFdBUyBHSVZFTiBUSEUg V1JPTkcgT0ZGU0VUCisgIFJlY29nbml6ZSBGb3J0cmFuIDkwJ3Mgb3B0aW9uYWwgTk1MPSBpbiBO QU1FTElTVCBSRUFEcyBhbmQgV1JJVEVzLgorKEN1cnJlbnRseSBOTUw9IGFuZCBGTVQ9IGFyZSB0 cmVhdGVkIGFzIHN5bm9ueW1zIC0tIHRoZXJlJ3Mgbm8KK2Vycm9yIG1lc3NhZ2UgaWYsIGUuZy4s IE5NTD0gc3BlY2lmaWVzIGEgZm9ybWF0LikKKyAgbGliaTc3OiBtaW5vciBhZGp1c3RtZW50IHRv IGFsbG93IGludGVybmFsIFJFQURzIGZyb20gY2hhcmFjdGVyCitzdHJpbmcgY29uc3RhbnRzIGlu IHJlYWQtb25seSBtZW1vcnkuCisKK0ZyaSBKYW4gMTggMjI6NTY6MTUgRVNUIDE5OTE6CisgIEFk ZCBjb21tZW50IHRvIFJFQURNRSBhYm91dCBuZWVkaW5nIHRvIGNvbW1lbnQgb3V0IHRoZSB0eXBl ZGVmIG9mCitzaXplX3QgaW4gc3lzZGVwLmggb24gc29tZSBzeXN0ZW1zLCBlLmcuIFN1biA0LjEu CisgIEZpeCBtaXNzcGVsbGluZyBvZiAic3RhdGVtZW50IiBpbiBhbiBlcnJvciBtZXNzYWdlIGlu IGxleC5jCisKK1dlZCBKYW4gMjMgMDA6Mzg6NDggRVNUIDE5OTE6CisgIEFsbG93IGhleCwgb2N0 YWwsIGFuZCBiaW5hcnkgY29uc3RhbnRzIHRvIGhhdmUgdGhlIHF1YWxpZnlpbmcgbGV0dGVyCiso eiwgeCwgbywgb3IgYikgZWl0aGVyIGJlZm9yZSBvciBhZnRlciB0aGUgcXVvdGVkIHN0cmluZyBj b250YWluaW5nIHRoZQorZGlnaXRzLiAgRm9yIG5vdyB0aGlzIGNoYW5nZSB3aWxsIG5vdCBiZSBy ZWZsZWN0ZWQgaW4gZjJjLnBzIC4KKworVHVlIEphbiAyOSAxNjoyMzo0NSBFU1QgMTk5MToKKyAg QXJyYW5nZSBmb3IgY2hhcmFjdGVyLXZhbHVlZCBzdGF0ZW1lbnQgZnVuY3Rpb25zIHRvIGdpdmUg cmVzdWx0cyBvZgordGhlIHJpZ2h0IGxlbmd0aCAodGhhdCBvZiB0aGUgc3RhdGVtZW50IGZ1bmN0 aW9uJ3MgbmFtZSkuCisKK1dlZCBKYW4gMzAgMDc6MDU6MzIgRVNUIDE5OTE6CisgIE1vcmUgdHdl YWtzIGZvciBjaGFyYWN0ZXItdmFsdWVkIHN0YXRlbWVudCBmdW5jdGlvbnM6IGFuIGVycm9yCitj aGVjayBhbmQgYW4gYWRqdXN0bWVudCBzbyBhIHJpZ2h0LWhhbmQgc2lkZSBvZiBub25jb25zdGFu dCBsZW5ndGgKKyhlLmcuLCBhIHN1YnN0cmluZykgaXMgaGFuZGxlZCByaWdodC4KKworV2VkIEph biAzMCAwOTo0OTozNiBFU1QgMTk5MToKKyAgRml4IHAxX2hlYWQgdG8gYXZvaWQgcHJpbnRpbmcg KGNoYXIgKikwIHdpdGggJXMuCisKK1RodSBKYW4gMzEgMTM6NTM6NDQgRVNUIDE5OTE6CisgIEFk ZCBhIHRlc3QgYWZ0ZXIgdGhlIGNsZWFudXAgY2FsbCBnZW5lcmF0ZWQgZm9yIEkvTyBzdGF0ZW1l bnRzIHdpdGgKK0VSUj0gb3IgRU5EPSBjbGF1c2VzIHRvIGNhdGNoIHRoZSB1bmxpa2VseSBldmVu dCB0aGF0IHRoZSBjbGVhbnVwCityb3V0aW5lIGVuY291bnRlcnMgYW4gZXJyb3IuCisKK01vbiBG ZWIgIDQgMDg6MDA6NTggRVNUIDE5OTE6CisgIE1pbm9yIGNsZWFudXA6IG9taXQgdW5uZWVkZWQg anVtcHMgYW5kIGxhYmVscyBmcm9tIGNvZGUgZ2VuZXJhdGVkIGZvcgorc29tZSBOQU1FTElTVCBS RUFEcyBhbmQgV1JJVEVzIHdpdGggSU9TVEFUPSwgRVJSPSwgYW5kL29yIEVORD0uCisKK1R1ZSBG ZWIgIDUgMDE6Mzk6MzYgRVNUIDE5OTE6CisgIENoYW5nZSBNa3RlbXAgdG8gbWt0bXAgKGZvciB0 aGUgYmVuZWZpdCBvZiBzeXN0ZW1zIHNvIGJyYWluLWRhbWFnZWQKK3RoYXQgdGhleSBkbyBub3Qg ZGlzdGluZ3Vpc2ggY2FzZSBpbiBleHRlcm5hbCBuYW1lcyAtLSBhbmQgdGhhdCBmb3IKK3NvbWUg cmVhc29uIHdhbnQgdG8gbG9hZCBta3RlbXApLiAgVHJ5IHRvIGdldCB4c3VtMC5vdXQgcmlnaHQg dGhpcwordGltZSAoaXQgc29tZWhvdyBkaWRuJ3QgZ2V0IHVwZGF0ZWQgb24gNCBGZWIuIDE5OTEp LgorICBBZGQgbm90ZSB0byBsaWJpNzcvUkVBRE1FIGFib3V0IGFkanVzdGluZyB0aGUgaW50ZXJw cmV0YXRpb24gb2YKK1JFQ0w9IHNwZWNpZmllcnMgaW4gT1BFTnMgZm9yIGRpcmVjdCB1bmZvcm1h dHRlZCBJL08uCisKK1RodSBGZWIgIDcgMTc6MjQ6NDIgRVNUIDE5OTE6CisgIE5ldyBvcHRpb24g LXIgY2FzdHMgdmFsdWVzIG9mIFJFQUwgZnVuY3Rpb25zLCBpbmNsdWRpbmcgaW50cmluc2ljcywK K3RvIFJFQUwuICBUaGlzIG9ubHkgbWF0dGVycyBmb3IgdW5wb3J0YWJsZSBjb2RlIGxpa2UKKwly ZWFsIHIKKwlyID0gYXNpbigxLikKKwlpZiAociAuZXEuIGFzaW4oMS4pKSAuLi4KK1tUaGUgYmVo YXZpb3Igb2Ygc3VjaCBjb2RlIHZhcmllcyB3aXRoIHRoZSBGb3J0cmFuIGNvbXBpbGVyIHVzZWQg LS0KK2FuZCBzb21ldGltZXMgaXMgYWZmZWN0ZWQgYnkgY29tcGlsZXIgb3B0aW9ucy5dICBGb3Ig bm93LCB0aGUgbWFuIHBhZ2UKK2F0IHRoZSBlbmQgb2YgZjJjLnBzIGlzIHRoZSBvbmx5IHBhcnQg b2YgZjJjLnBzIHRoYXQgcmVmbGVjdHMgdGhpcyBuZXcKK29wdGlvbi4KKworRnJpIEZlYiAgOCAx ODoxMjo1MSBFU1QgMTk5MToKKyAgQ2FzdCBwb2ludGVyIGRpZmZlcmVuY2VzIHBhc3NlZCBhcyBh cmd1bWVudHMgdG8gdGhlIGFwcHJvcHJpYXRlIHR5cGUuCitUaGlzIG1hdHRlcnMsIGUuZy4sIHdp dGggTVNET1MgY29tcGlsZXJzIHRoYXQgeWllbGQgYSBsb25nIHBvaW50ZXIKK2RpZmZlcmVuY2Ug YnV0IGhhdmUgaW50ID09IHNob3J0LgorICBEaXNhbGxvdyBub25wb3NpdGl2ZSBkaW1lbnNpb25z LgorCitGcmkgRmViIDE1IDEyOjI0OjE1IEVTVCAxOTkxOgorICBDaGFuZ2UgJWQgdG8gJWxkIGlu IHNwcmludGYgY2FsbCBpbiBwdXRwb3dlciBpbiBwdXRwY2MuYy4KKyAgRnJlZSBtb3JlIG1lbW9y eSAoZS5nLiBhbGxvd2luZyB0cmFuc2xhdGlvbiBvZiBsYXJnZXIgRm9ydHJhbgorZmlsZXMgdW5k ZXIgTVMtRE9TKS4KKyAgUmVjb2duaXplIFJFQUQgKGNoYXJhY3RlciBleHByZXNzaW9uKSBhbmQg V1JJVEUgKGNoYXJhY3RlciBleHByZXNzaW9uKQorYXMgZm9ybWF0dGVkIEkvTyB3aXRoIHRoZSBm b3JtYXQgZ2l2ZW4gYnkgdGhlIGNoYXJhY3RlciBleHByZXNzaW9uLgorICBVcGRhdGUgeWVhciBp biBOb3RpY2UuCisKK1NhdCBGZWIgMTYgMDA6NDI6MzIgRVNUIDE5OTE6CisgIFJlY2FudCByZWNv Z25pemluZyBXUklURShjaGFyYWN0ZXIgZXhwcmVzc2lvbikgYXMgZm9ybWF0dGVkIG91dHB1dAor LS0gRm9ydHJhbiA3NyBpcyBub3Qgc3ltbWV0cmljIGluIGl0cyBzeW50YXggZm9yIFJFQUQgYW5k IFdSSVRFLgorCitNb24gTWFyICA0IDE1OjE5OjQyIEVTVCAxOTkxOgorICBGaXggYnVnIGluIHBh c3NpbmcgdGhlIHJlYWwgcGFydCBvZiBhIGNvbXBsZXggYXJndW1lbnQgdG8gYW4gaW50cmluc2lj CitmdW5jdGlvbi4gIE9taXQgdW5uZWVkZWQgcGFyZW50aGVzZXMgaW4gbmVzdGVkIGNhbGxzIHRv IGludHJpbnNpY3MuCitFeGFtcGxlOgorCXN1YnJvdXRpbmUgZm9vKHgsIHkpCisJY29tcGxleCB5 CisJeCA9IGV4cChzaW4ocmVhbCh5KSkpICsgZXhwKGltYWcoeSkpCisJZW5kCisKK0ZyaSBNYXIg IDggMTU6MDU6NDIgRVNUIDE5OTE6CisgIEZpeCBhIGNvbW1lbnQgaW4gZXhwci5jOyBvbWl0IHNh ZnN0cm5jcHkuYyAod2hpY2ggaGFkIGJ1Z3MgaW4KK2Nhc2VzIG5vdCB1c2VkIGJ5IGYyYykuCisK K1dlZCBNYXIgMTMgMDI6Mjc6MjMgRVNUIDE5OTE6CisgIEluaXRpYWxpemUgZmlyc3RtZW1ibG9j ay0+bmV4dCBpbiBtZW1faW5pdCBpbiBtZW0uYyAuICBbT24gbW9zdAorc3lzdGVtcyBpdCB3YXMg Zm9ydHVpdHVvdXNseSAwLCBidXQgd2l0aCBTeXN0ZW0gViwgLWxtYWxsb2MgY291bGQKK3RyaXAg b24gdGhpcyBtaXNzZWQgaW5pdGlhbGl6YXRpb24uXQorCitXZWQgTWFyIDEzIDExOjQ3OjQyIEVT VCAxOTkxOgorICBGaXggYSByZWZlcmVuY2UgdG8gZnJlZWQgbWVtb3J5LgorCitXZWQgTWFyIDI3 IDAwOjQyOjE5IEVTVCAxOTkxOgorICBGaXggYSBtZW1vcnkgZmF1bHQgY2F1c2VkIGJ5IHN1Y2gg aWxsZWdhbCBGb3J0cmFuIGFzCisgICAgICAgZnVuY3Rpb24gZm9vCisgICAgICAgeCA9IDMKKyAg ICAgICBsb2dpY2FsIGZvbwkhIGRlY2xhcmF0aW9uIGFtb25nIGV4ZWN1dGFibGVzCisgICAgICAg Zm9vPS5mYWxzZS4JISB1c2VkIHRvIHN1ZmZlciBtZW1vcnkgZmF1bHQKKyAgICAgICBlbmQKKwor RnJpIEFwciAgNSAwODozMDozMSBFU1QgMTk5MToKKyAgRml4IGxvc3Mgb2YgJSBpbiBzb21lIGZv cm1hdCBleHByZXNzaW9ucywgZS5nLgorCXdyaXRlKCosJygxaCUpJykKKyAgRml4IGJvdGNoIGlu dHJvZHVjZWQgMjcgTWFyY2ggMTk5MSB0aGF0IGNhdXNlZCBzdWJyb3V0aW5lcyB3aXRoCittdWx0 aXBsZSBlbnRyeSBwb2ludHMgdG8gaGF2ZSBleHRyYW5lb3VzIGRlY2xhcmF0aW9ucyBvZiByZXRf dmFsLgorCitGcmkgQXByICA1IDEyOjQ0OjAyIEVTVCAxOTkxCisgIFRyeSBhZ2FpbiB0byBvbWl0 IGV4dHJhbmVvdXMgcmV0X3ZhbCBkZWNsYXJhdGlvbnMgLS0gdGhpcyBtb3JuaW5nJ3MKK2ZpeCB3 YXMgc29tZXRpbWVzIHdyb25nLgorCitNb24gQXByICA4IDEzOjQ3OjA2IEVEVCAxOTkxOgorICBB cnJhbmdlIGZvciBzX3JuZ2UgdG8gaGF2ZSB0aGUgcmlnaHQgcHJvdG90eXBlIHVuZGVyIC1BIC1D IC4KKworV2VkIEFwciAxNyAxMzozNjowMyBFRFQgMTk5MToKKyAgTmV3IGZhdGFsIGVycm9yIG1l c3NhZ2UgZm9yIGFwcGFyZW50IGludm9jYXRpb24gb2YgYSByZWN1cnNpdmUKK3N0YXRlbWVudCBm dW5jdGlvbi4KKworVGh1IEFwciAyNSAxNToxMzozNyBFRFQgMTk5MToKKyAgRjJjIGFuZCBsaWJp NzcgYWRqdXN0ZWQgc28gTkFNRUxJU1Qgd29ya3Mgd2l0aCAtaTIuICAoSSBmb3Jnb3QKK2Fib3V0 IC1pMiB3aGVuIGFkZGluZyBOQU1FTElTVC4pICBUaGlzIHJlcXVpcmVkIGEgY2hhbmdlIHRvIGYy Yy5oCisodGhhdCBvbmx5IGFmZmVjdHMgTkFNRUxJU1QgSS9PIHVuZGVyIC1pMi4pICBNYW4tcGFn ZSBkZXNjcmlwdGlvbiBvZgorLWkyIGFkanVzdGVkIHRvIHJlZmxlY3QgdGhhdCAtaTIgc3RvcmVz IGFycmF5IGxlbmd0aHMgaW4gc2hvcnQgaW50cy4KKworRnJpIEFwciAyNiAwMjo1NDo0MSBFRFQg MTk5MToKKyAgTGliaTc3OiBmaXggc29tZSBidWdzIGluIE5BTUVMSVNUIHJlYWRpbmcgb2YgbXVs dGktZGltZW5zaW9uYWwgYXJyYXlzCisoZmlsZSByc25lLmMpLgorCitUaHUgTWF5ICA5IDAyOjEz OjUxIEVEVCAxOTkxOgorICBPbWl0IGEgdHJhaWxpbmcgc3BhY2UgaW4gZXhwci5jIChjb3VsZCBj YXVzZSBhIGZhbHNlIHhzdW0gdmFsdWUgaWYKK2EgbWFpbGVyIGRyb3BzIHRoZSB0cmFpbGluZyBi bGFuaykuCisKK1RodSBNYXkgMTYgMTM6MTQ6NTkgRURUIDE5OTE6CisgIExpYmk3NzogaW5jcmVh c2UgTEVGQkwgaW4gbGlvLmggdG8gb3ZlcmNvbWUgYSBOZVhUIGJ1Zy4KKyAgVHdlYWsgZm9yIGNv bXBpbGVycyB0aGF0IHJlY29nbml6ZSAibmVzdGVkIiBjb21tZW50czogaW5zaWRlIGNvbW1lbnRz LAordHVybiAvKiBpbnRvIC8rIChhcyB3ZWxsIGFzICovIGludG8gKy8pLgorCitTYXQgTWF5IDI1 IDExOjQ0OjI1IEVEVCAxOTkxOgorICBsaWJmNzc6IHNfcm5nZTogZGVjbGFyZSBsaW5lIGxvbmcg aW50IHJhdGhlciB0aGFuIGludC4KKworRnJpIE1heSAzMSAwNzo1MTo1MCBFRFQgMTk5MToKKyAg bGliZjc3OiBzeXN0ZW1fOiBvZmZpY2lhbGx5IHJldHVybiBzdGF0dXMuCisKK01vbiBKdW4gMTcg MTY6NTI6NTMgRURUIDE5OTE6CisgIE1pbm9yIHR3ZWFrczogb21pdCB1bm5lY2Vzc2FyeSBkZWNs YXJhdGlvbiBvZiBzdHJjbXAgKHRoYXQgY2F1c2VkCit0cm91YmxlIG9uIGEgc3lzdGVtIHdoZXJl IHN0cmNtcCB3YXMgYSBtYWNybykgZnJvbSBtaXNjLmM7IGFkZAorU0hFTEwgPSAvYmluL3NoIHRv IG1ha2VmaWxlcy4KKyAgRml4IGEgZGVyZWZlcmVuY2Ugb2YgbnVsbCB3aGVuIGEgQ0hBUkFDVEVS KigqKSBkZWNsYXJhdGlvbiBhcHBlYXJzCisoaWxsZWdhbGx5KSBhZnRlciBEQVRBLiAgQ29tcGxh aW4gb25seSBvbmNlIHBlciBzdWJyb3V0aW5lIGFib3V0CitkZWNsYXJhdGlvbnMgYXBwZWFyaW5n IGFmdGVyIERBVEEuCisKK01vbiBKdWwgIDEgMDA6Mjg6MTMgRURUIDE5OTE6CisgIEFkZCB0ZXN0 IGFuZCBlcnJvciBtZXNzYWdlIGZvciBpbGxlZ2FsIHVzZSBvZiBzdWJyb3V0aW5lIG5hbWVzLCBl LmcuCisgICAgICBTVUJST1VUSU5FIFpBUChBKQorICAgICAgWkFQID0gQQorICAgICAgRU5ECisK K01vbiBKdWwgIDggMjE6NDk6MjAgRURUIDE5OTE6CisgIElzc3VlIGEgd2FybmluZyBhYm91dCB0 aGluZ3MgbGlrZQorCWludGVnZXIgaQorCWkgPSAnYWJjJworKHdoaWNoIGlzIHRyZWF0ZWQgYXMg aSA9IGljaGFyKCdhJykpLiAgW0l0IG1pZ2h0IGJlIG5pY2UgdG8gdHJlYXQgJ2FiYycKK2FzIGFu IGludGVnZXIgaW5pdGlhbGl6ZWQgKGluIGEgREFUQSBzdGF0ZW1lbnQpIHdpdGggJ2FiYycsIGJ1 dAorb3RoZXIgbWF0dGVycyBoYXZlIGhpZ2hlciBwcmlvcml0eS5dCisgIFJlbmRlcgorCWkgPSBp Y2hhcignQScpCithcworCWkgPSAnQSc7CityYXRoZXIgdGhhbgorCWkgPSA2NTsKKyh3aGljaCBh c3N1bWVzIEFTQ0lJKS4KKworRnJpIEp1bCAxMiAwNzo0MTozMCBFRFQgMTk5MToKKyAgTm90ZSBh ZGRlZCB0byBSRUFETUUgYWJvdXQgZXJyb25lb3VzIGRlZmluaXRpb25zIG9mIF9fU1REQ19fIC4K KworU2F0IEp1bCAxMyAxMzozODo1NCBFRFQgMTk5MToKKyAgRml4IGJ1Z3MgaW4gZG91YmxlIHR5 cGUgY29udmVzaW9ucyBvZiBjb21wbGV4IHZhbHVlcywgZS5nLgorc25nbChyZWFsKC4uLikpIG9y IGRibGUocmVhbCguLi4pKSAod2hlcmUgLi4uIGlzIGNvbXBsZXgpLgorCitNb24gSnVsIDE1IDEz OjIxOjQyIEVEVCAxOTkxOgorICBGaXggYnVnIGludHJvZHVjZWQgOCBKdWx5IDE5OTEgdGhhdCBj YXVzZWQgZXJyb25lb3VzIHdhcm5pbmdzCisiaWNoYXIoW2ZpcnN0IGNoYXIuIG9mXSBjaGFyLiBz dHJpbmcpIGFzc3VtZWQgZm9yIGNvbnZlcnNpb24gdG8gbnVtZXJpYyIKK3doZW4gYSBzdWJyb3V0 aW5lIGhhZCBhbiBhcnJheSBvZiBjaGFyYWN0ZXIgc3RyaW5ncyBhcyBhbiBhcmd1bWVudC4KKwor V2VkIEF1ZyAyOCAwMToxMjoxNyBFRFQgMTk5MToKKyAgT21pdCBhbiB1bnVzZWQgZnVuY3Rpb24g aW4gZm9ybWF0LmMsIGFuIHVudXNlZCB2YXJpYWJsZSBpbiBwcm9jLmMgLgorICBVbmRlciAtcjgs IHByb21vdGUgY29tcGxleCB0byBkb3VibGUgY29tcGxleCAoYXMgdGhlIG1hbiBwYWdlIGNsYWlt cykuCisKK0ZyaSBBdWcgMzAgMTc6MTk6MTcgRURUIDE5OTE6CisgIGYyYy5wcyB1cGRhdGVkOiBz bGlnaHRseSBleHBhbmQgZGVzY3JpcHRpb24gb2YgaW50cmluc2ljcyBhbmQsb3IseG9yLAorbm90 OyBhZGQgbWVudGlvbiBvZiBpbnRyaW5zaWNzIGxzaGlmdCwgcnNoaWZ0OyBhZGQgbm90ZSBhYm91 dCBmMmMKK2FjY2VwdGluZyBGb3J0cmFuIDkwIGlubGluZSBjb21tZW50cyAoc3RhcnRpbmcgd2l0 aCAhKTsgdXBkYXRlIENvYmFsdAorQmx1ZSBhZGRyZXNzLgorCitUdWUgU2VwIDE3IDA3OjE3OjMz IEVEVCAxOTkxOgorICBsaWJJNzc6IGVyci5jIGFuZCBvcGVuLmMgbW9kaWZpZWQgdG8gdXNlIG1v ZGVzICJyYiIgYW5kICJ3YiIKK3doZW4gKGYpb3BlbmluZyB1bmZvcm1hdHRlZCBmaWxlczsgUkVB RE1FIHVwZGF0ZWQgdG8gcG9pbnQgb3V0Cit0aGF0IGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gY2hh bmdlIHRoZXNlIG1vZGVzIHRvICJyIiBhbmQgInciCitvbiBzb21lIG5vbi1BTlNJIHN5c3RlbXMu CisKK1R1ZSBPY3QgMTUgMTA6MjU6NDkgRURUIDE5OTE6CisgIE1pbm9yIHR3ZWFrcyB0aGF0IG1h a2Ugc29tZSBQQyBjb21waWxlcnMgaGFwcGllcjogaW5zZXJ0IHNvbWUKK2Nhc3RzLCBhZGQgYXJn cyB0byBzaWduYWwgZnVuY3Rpb25zLgorICBDaGFuZ2UgLWcgdG8gZW1pdCB1bmNvbW1lbnRlZCAj bGluZSBsaW5lcyAtLSBhbmQgdG8gZW1pdCBtb3JlIG9mIHRoZW07Cit1cGRhdGUgZmMsIGYyYy4x LCBmMmMuMXQsIGYyYy5wcyB0byByZWZsZWN0IHRoaXMuCisgIENoYW5nZSB1Y2hhciB0byBVY2hh ciBpbiB4c3VtLmMgLgorICBCcmluZyBncmFtLmMgdXAgdG8gZGF0ZS4KKworVGh1IE9jdCAxNyAw OToyMjowNSBFRFQgMTk5MToKKyAgbGliaTc3OiBSRUFETUUsIGZpby5oLCBzdWUuYywgdWlvLmMg Y2hhbmdlZCBzbyB0aGUgbGVuZ3RoIGZpZWxkCitpbiB1bmZvcm1hdHRlZCBzZXF1ZW50aWFsIHJl Y29yZHMgaGFzIHR5cGUgbG9uZyByYXRoZXIgdGhhbiBpbnQKKyh1bmxlc3MgVUlPTEVOX2ludCBp cyAjZGVmaW5lZCkuICBUaGlzIGlzIGZvciBzeXN0ZW1zIHdoZXJlIHNpemVvZihpbnQpCitjYW4g dmFyeSwgZGVwZW5kaW5nIG9uIHRoZSBjb21waWxlciBvciBjb21waWxlciBvcHRpb25zLgorCitU aHUgT2N0IDE3IDEzOjQyOjU5IEVEVCAxOTkxOgorICBsaWJpNzc6IGlucXVpcmUuYzogd2hlbiBN U0RPUyBpcyBkZWZpbmVkLCBkb24ndCBzdHJjbXAgdW5pdHNbaV0udWZubQord2hlbiBpdCBpcyBO VUxMLgorCitGcmkgT2N0IDE4IDE1OjE2OjAwIEVEVCAxOTkxOgorICBDb3JyZWN0IHhzdW0wLm91 dCBpbiAiYWxsIGZyb20gZjJjL3NyYyIgKHNvbWVob3cgYm90Y2hlZCBvbiAxNSBPY3QuKS4KKwor VHVlIE9jdCAyMiAxODoxMjo1NiBFRFQgMTk5MToKKyAgRml4IG1lbW9yeSBmYXVsdCB3aGVuIGEg Y2hhcmFjdGVyKigqKSBhcmd1bWVudCBpcyB1c2VkIChpbGxlZ2FsbHkpCithcyBhIGR1bW15IHZh cmlhYmxlIGluIHRoZSBkZWZpbml0aW9uIG9mIGEgc3RhdGVtZW50IGZ1bmN0aW9uLiAgKFRoZQor bWVtb3J5IGZhdWx0IG9jY3VycmVkIHdoZW4gdGhlIHN0YXRlbWVudCBmdW5jdGlvbiB3YXMgaW52 b2tlZC4pCisgIENvbXBsYWluIGFib3V0IGltcGxpY2l0IGNoYXJhY3RlciooKikuCisKK1RodSBO b3YgMTQgMDg6NTA6NDIgRVNUIDE5OTE6CisgIGxpYmk3NzogY2hhbmdlIHVpbnQgdG8gVWludCBp biBmbXQuaCwgcmRmbXQuYywgd3J0Zm10LmM7IHRoaXMgY2hhbmdlCitzaG91bGQgYmUgaW52aXNp YmxlIHVubGVzcyB5b3UncmUgcnVubmluZyBhIGJyYWluLWRhbWFnZWQgc3lzdGVtLgorCitNb24g Tm92IDI1IDE5OjA0OjQwIEVTVCAxOTkxOgorICBsaWJpNzc6IGNvcnJlY3QgYm90Y2hlcyBpbnRy b2R1Y2VkIDE3IE9jdC4gMTk5MSBhbmQgMTQgTm92LiAxOTkxCisoY2hhbmdlIHVpbnQgdG8gVWlu dCBpbiBsd3JpdGUuYzsgb3RoZXIgY2hhbmdlcyB0aGF0IG9ubHkgbWF0dGVyIGlmCitzaXplb2Yo aW50KSAhPSBzaXplb2YobG9uZykpLgorICBBZGQgYSBtb3JlIG1lYW5pbmdmdWwgZXJyb3IgbWVz c2FnZSB3aGVuIGJhaWxpbmcgb3V0IGR1ZSB0byBhbiBhdHRlbXB0Cit0byBpbnZva2UgYSBDT01N T04gdmFyaWFibGUgYXMgYSBmdW5jdGlvbi4KKworU3VuIERlYyAgMSAxOToyOToyNCBFU1QgMTk5 MToKKyAgbGliaTc3OiB1aW8uYzogYWRkIHRlc3QgZm9yIHJlYWQgZmFpbHVyZSAoc2VxLiB1bmZv cm1hdHRlZCByZWFkcyk7CithZGp1c3QgYW4gZXJyb3IgcmV0dXJuIGZyb20gRU9GIHRvIG9mZiBl bmQgb2YgcmVjb3JkLgorCitUdWUgRGVjIDEwIDE3OjQyOjI4IEVTVCAxOTkxOgorICBBZGQgdGVz dHMgdG8gcHJldmVudCBtZW1vcnkgZmF1bHRzIHdpdGggYmFkIHVzZXMgb2YgY2hhcmFjdGVyKigq KS4KKworVGh1IERlYyAxMiAxMToyNDo0MSBFU1QgMTk5MToKKyAgbGliaTc3OiBmaXggYnVnIHdp dGggaW50ZXJuYWwgbGlzdCBpbnB1dCB0aGF0IGNhdXNlZCB0aGUgbGFzdAorY2hhcmFjdGVyIG9m IGVhY2ggcmVjb3JkIHRvIGJlIGlnbm9yZWQ7IGFkanVzdCBlcnJvciBtZXNzYWdlIGluCitpbnRl cm5hbCBmb3JtYXR0ZWQgaW5wdXQgZnJvbSAiZW5kLW9mLWZpbGUiIHRvICJvZmYgZW5kIG9mIHJl Y29yZCIKK2lmIHRoZSBmb3JtYXQgc3BlY2lmaWVzIG1vcmUgY2hhcmFjdGVycyB0aGFuIHRoZSBy ZWNvcmQgY29udGFpbnMuCisKK1dlZCBEZWMgMTggMTc6NDg6MTEgRVNUIDE5OTE6CisgIEZpeCBi dWcgaW4gdHJhbnNsYXRpbmcgbm9uc2Vuc2ljYWwgaWNoYXIgaW52b2NhdGlvbnMgaW52b2x2aW5n Citjb25jYXRlbmF0aW9ucy4KKyAgRml4IGJ1ZyBpbiBwYXNzaW5nIGludHJpbnNpY3MgbGxlLCBs bHQsIGxnZSwgbGd0IGFzIGFyZ3VtZW50czsKK2hsX2xlIHdhcyBiZWluZyBwYXNzZWQgcmF0aGVy IHRoYW4gbF9sZSwgZXRjLgorICBsaWJmNzc6IGFkanVzdCBsZW5ndGggcGFyYW1ldGVycyBmcm9t IGxvbmcgdG8gZnRubGVuLCBmb3IKK2NvbXBpbGluZyB3aXRoIGYyY19pMiBkZWZpbmVkLgorCitT YXQgRGVjIDIxIDE1OjMwOjU3IEVTVCAxOTkxOgorICBBbGxvdyBETyBubm4gLi4uIHRvIGVuZCB3 aXRoIGFuIEVORCBETyBzdGF0ZW1lbnQgbGFiZWxsZWQgbm5uLgorCitUdWUgRGVjIDMxIDEzOjUz OjQ3IEVTVCAxOTkxOgorICBGaXggYnVnIGluIGhhbmRsaW5nIGRpbWVuc2lvbiBhKG4qKjMsMikg LS0gcG93X2lpIHdhcyBjYWxsZWQKK2luY29ycmVjdGx5LgorICBGaXggYnVnIGluIHRyYW5zbGF0 aW5nCisJc3Vicm91dGluZSB4KGFiYyxuKQorCWNoYXJhY3RlciBhYmMobikKKwl3cml0ZShhYmMs JyhpMTApJykgMTIzCisJZW5kCisob21pdHRlZCBkZWNsYXJhdGlvbiBhbmQgaW5pdGlhbGlhdGlv biBvZiBhYmNfZGltMSkuCisgIENvbXBsYWluIGFib3V0IGRpbWVuc2lvbiBleHByZXNzaW9ucyBv ZiBzdWNoIGludmFsaWQgdHlwZXMKK2FzIGNvbXBsZXggYW5kIGxvZ2ljYWwuCisKK0ZyaSBKYW4g MTcgMTE6NTQ6MjAgRVNUIDE5OTI6CisgIERpYWdub3NlIHNvbWUgaWxsZWdhbCB1c2VzIG9mIG1h aW4gcHJvZ3JhbSBuYW1lIChyYXRoZXIgdGhhbgorbWVtb3J5IGZhdWx0aW5nKS4KKyAgbGliaTc3 OiAgKDEpIEluIGxpc3QgYW5kIG5hbWVsaXN0IGlucHV0LCB0cmVhdCAiciogLCIgYW5kICJyKiwi CithbGlrZSAod2hlcmUgciBpcyBhIHBvc2l0aXZlIGludGVnZXIgY29uc3RhbnQpLCBhbmQgZml4 IGEgYnVnIGluCitoYW5kbGluZyBudWxsIHZhbHVlcyBmb2xsb3dpbmcgaXRlbXMgd2l0aCByZXBl YXQgY291bnRzIChlLmcuLAorMioxLCwzKS4gICgyKSBGb3IgbmFtZWxpc3QgcmVhZGluZyBvZiBh IG51bWVyaWMgYXJyYXksIGFsbG93IGEgbmV3CituYW1lLXZhbHVlIHN1YnNlcXVlbmNlIHRvIHRl cm1pbmF0ZSB0aGUgY3VycmVudCBvbmUgKGFzIHRob3VnaCB0aGUKK2N1cnJlbnQgb25lIGVuZGVk IHdpdGggdGhlIHJpZ2h0IG51bWJlciBvZiBudWxsIHZhbHVlcykuCisoMykgW2xpby5oLCBsd3Jp dGUuY106ICBvbWl0IGluc2lnbmlmaWNhbnQgemVyb3MgaW4gbGlzdCBhbmQgbmFtZWxpc3QKK291 dHB1dC4gIChDb21waWxlIHdpdGggLURPbGRfbGlzdF9vdXRwdXQgdG8gZ2V0IHRoZSBvbGQgYmVo YXZpb3IuKQorCitTYXQgSmFuIDE4IDE1OjU4OjAxIEVTVCAxOTkyOgorICBsaWJpNzc6ICBtYWtl IGxpc3Qgb3V0cHV0IGNvbnNpc3RlbnQgd2l0aCBGIGZvcm1hdCBieSBwcmludGluZyAuMQorcmF0 aGVyIHRoYW4gMC4xIChpbnRyb2R1Y2VkIHllc3RlcmRheSkuCisKK1dlZCBKYW4gMjIgMDg6MzI6 NDMgRVNUIDE5OTI6CisgIGxpYmk3NzogIGFkZCBjb21tZW50IHRvIFJFQURNRSBwb2ludGluZyBv dXQgcHJlY29ubmVjdGlvbiBvZgorRm9ydHJhbiB1bml0cyA1LCA2LCAwIHRvIHN0ZGluLCBzdGRv dXQsIHN0ZGVyciAocmVzcGVjdGl2ZWx5KS4KKworTW9uIEZlYiAgMyAxMTo1Nzo1MyBFU1QgMTk5 MjoKKyAgbGliaTc3OiAgZml4IG5hbWVsaXN0IHJlYWQgYnVnIHRoYXQgY2F1c2VkIHRoZSBjaGFy YWN0ZXIgZm9sbG93aW5nCithIGNvbW1hIHRvIGJlIGlnbm9yZWQuCisKK0ZyaSBGZWIgMjggMDE6 MDQ6MjYgRVNUIDE5OTI6CisgIGxpYmY3NzogIGZpeCBidWdneSB6X3NxcnQuYyAoZG91YmxlIHBy ZWNpc2lvbiBzcXVhcmUgcm9vdCksIHdoaWNoCittaXNiZWhhdmVkIGZvciBhcmd1bWVudHMgaW4g dGhlIHNvdXRod2VzdCBxdWFkcmFudC4KKworVGh1IE1hciAxOSAxNTowNToxOCBFU1QgMTk5MjoK KyAgRml4IGJ1ZyAoaW50cm9kdWNlZCAxNyBKYW4gMTk5MikgaW4gaGFuZGxpbmcgbXVsdGlwbGUg ZW50cnkgcG9pbnRzCitvZiBkaWZmZXJpbmcgdHlwZXMgKHdpdGggaW1wbGljaXRseSB0eXBlZCBl bnRyaWVzIGFwcGVhcmluZyBhZnRlcgordGhlIGZpcnN0IGV4ZWN1dGFibGUgc3RhdGVtZW50KS4K KyAgRml4IG1lbW9yeSBmYXVsdCBpbiB0aGUgZm9sbG93aW5nIGlsbGVnYWwgRm9ydHJhbjoKKyAg ICAgICAgZG91YmxlIHByZWNpc2lvbiBmb28oaSkKKyoJaWxsZWdhbDogYWJvdmUgc2hvdWxkIGJl ICJkb3VibGUgcHJlY2lzaW9uIGZ1bmN0aW9uIGZvbyhpKSIKKyAgICAgICAgZm9vID0gaSAqIDMu MgorICAgICAgICBlbnRyeSBtb28oaSkKKyAgICAgICAgZW5kCisgIE5vdGUgYWJvdXQgQU5TSV9M aWJyYXJpZXMgKHJlbGV2YW50LCBlLmcuLCB0byBJUklYIDQuMC4xIGFuZCBBSVgpCithZGRlZCB0 byBSRUFETUUuCisgIEFib3J0IHplcm8gZGl2aWRlcyBkdXJpbmcgY29uc3RhbnQgc2ltcGxpZmlj YXRpb24uCisKK1NhdCBNYXIgMjEgMDE6Mjc6MDkgRVNUIDE5OTI6CisgIFR3ZWFrIGNrYWxsb2Mg KG1pc2MuYykgZm9yIHN5c3RlbXMgd2hlcmUgbWFsbG9jKDApID0gMDsgdGhpcyBtYXR0ZXJzCitm b3Igc3Vicm91dGluZXMgd2l0aCBtdWx0aXBsZSBlbnRyeSBwb2ludHMgYnV0IG5vIGFyZ3VtZW50 cy4KKyAgQWRkICJzdHJ1Y3QgbWVtYmxvY2s7IiB0byBpbml0LmMgKGlycmVsZXZhbnQgdG8gbW9z dCBjb21waWxlcnMpLgorCitXZWQgTWFyIDI1IDEzOjMxOjA1IEVTVCAxOTkyOgorICBGaXggYnVn IHdpdGggSU1QTElDSVQgSU5URUdFUio0KC4uLik6IHVuZGVyIC1pMiBvciAtSTIsIHRoZSAqNCB3 YXMKK2lnbm9yZWQuCisKK1R1ZSBNYXkgIDUgMDk6NTM6NTUgRURUIDE5OTI6CisgIFR3ZWFrcyB0 byBSRUFETUU7IGUuZy4sIEFOU0lfTElicmFyaWVzIGNoYW5nZWQgdG8gQU5TSV9MaWJyYXJpZXMg LgorCitXZWQgTWF5ICA2IDIzOjQ5OjA3IEVEVCAxOTkyCisgIFVuZGVyIC1BIGFuZCAtQysrLCBo YXZlIHN1YnJvdXRpbmVzIHJldHVybiAwIChldmVuIGlmIHRoZXkgaGF2ZQorbm8gKiBhcmd1bWVu dHMpLgorICBBZGp1c3QgbGliaTc3IChyc25lLmMgYW5kIGxyZWFkLmMpIGZvciBzeXN0ZW1zIHdo ZXJlIHVuZ2V0YyBpcworYSBtYWNyby4gIFR3ZWFrIGxpYltGSV03Ny9tYWtlZmlsZSB0byB1c2Ug dW5pcXVlIGludGVybWVkaWF0ZSBmaWxlCituYW1lcyAoZm9yIHBhcmFsbGVsIG1ha2VzKS4KKwor VHVlIE1heSAxOSAwOTowMzowNSBFRFQgMTk5MjoKKyAgQWRqdXN0IGxpYkk3NyB0byBtYWtlIGVy cj0gd29yayB3aXRoIGludGVybmFsIGxpc3QgYW5kIGZvcm1hdHRlZCBJL08uCisKK1NhdCBNYXkg MjMgMTg6MTc6NDIgRURUIDE5OTI6CisgIFVuZGVyIC1BIGFuZCAtQysrLCBzdXBwbHkgInJldHVy biAwOyIgYWZ0ZXIgdGhlIGNvZGUgZ2VuZXJhdGVkIGZvcgorYSBTVE9QIHN0YXRlbWVudCAtLSB0 aGUgQyBjb21waWxlciBkb2Vzbid0IGtub3cgdGhhdCBzX3N0b3Agd29uJ3QKK3JldHVybi4KKyAg TmV3IChtdXR1YWxseSBleGNsdXNpdmUpIG9wdGlvbnM6CisJLWYJdHJlYXRzIGFsbCBpbnB1dCBs aW5lcyBhcyBmcmVlLWZvcm1hdCBsaW5lcywKKwkJaG9ub3JpbmcgdGV4dCB0aGF0IGFwcGVhcnMg YWZ0ZXIgY29sdW1uIDcyCisJCWFuZCBub3QgcGFkZGluZyBsaW5lcyBzaG9ydGVyIHRoYW4gNzIg Y2hhcmFjdGVycworCQl3aXRoIGJsYW5rcyAod2hpY2ggbWF0dGVycyBpZiBhIGNoYXJhY3RlciBz dHJpbmcKKwkJaXMgY29udGludWVkIGFjcm9zcyAyIG9yIG1vcmUgbGluZXMpLgorCS03Mgl0cmVh dHMgdGV4dCBhcHBlYXJpbmcgYWZ0ZXIgY29sdW1uIDcyIGFzIGFuIGVycm9yLgorCitTdW4gTWF5 IDI0IDA5OjQ1OjM3IEVEVCAxOTkyOgorICBUd2VhayBkZXNjcmlwdGlvbiBvZiAtZiBpbiBmMmMu MSBhbmQgZjJjLjF0OyB1cGRhdGUgZjJjLnBzIC4KKworRnJpIE1heSAyOSAwMToxNzoxNSBFRFQg MTk5MjoKKyAgQ29tcGxhaW4gYWJvdXQgZXh0ZXJuYWxzIHVzZWQgYXMgdmFyaWFibGVzLiAgRXhh bXBsZQorCXN1YnJvdXRpbmUgZm9vKGEsYikKKwlleHRlcm5hbCBiCisJYSA9IGEqYgkJISBpbGxl Z2FsIHVzZSBvZiBiOyBwZXJoYXBzIHNob3VsZCBiZSBiKCkKKwllbmQKKworTW9uIEp1biAxNSAx MToxNToyNyBFRFQgMTk5MjoKKyAgRml4IGJ1ZyBpbiBoYW5kbGluZyBuYW1lbGlzdHMgd2l0aCBu YW1lcyB0aGF0IGhhdmUgdW5kZXJzY29yZXMuCisKK1NhdCBKdW4gMjcgMTc6MzA6NTkgRURUIDE5 OTI6CisgIFVuZGVyIC1BIGFuZCAtQysrLCBlbmQgTWFpbiBwcm9ncmFtIGFsaWFzZXMgd2l0aCAi cmV0dXJuIDA7Ii4KKyAgVW5kZXIgLUEgYW5kIC1DKyssIHVzZSAuUCBmaWxlcyBhbmQgdXNhZ2Ug aW4gcHJldmlvdXMgc3VicHJvZ3JhbXMKK2luIHRoZSBjdXJyZW50IGZpbGUgdG8gZ2l2ZSBwcm90 b3R5cGVzIGZvciBmdW5jdGlvbnMgZGVjbGFyZWQgRVhURVJOQUwKK2J1dCBub3QgaW52b2tlZC4K KyAgRml4IG1lbW9yeSBmYXVsdCB1bmRlciAtZDEgLVAgLgorICBVbmRlciAtQSBhbmQgLUMrKywg Y2FzdCBhcmd1bWVudHMgdG8gdGhlIHJpZ2h0IHR5cGVzIGluIGNhbGxpbmcKK2EgZnVuY3Rpb24g dGhhdCBoYXMgYmVlbiBkZWZpbmVkIGluIHRoZSBjdXJyZW50IGZpbGUgb3IgaW4gYSAuUCBmaWxl LgorICBGaXggYnVnIGluIGhhbmRsaW5nIG11bHRpLWRpbWVuc2lvbmFsIGFycmF5cyB3aXRoIGFy cmF5IHJlZmVyZW5jZXMKK2luIHRoZWlyIGxlYWRpbmcgZGltZW5zaW9ucy4KKyAgRml4IGJ1ZyBp biB0aGUgaW50cmluc2ljIGNtcGx4IGZ1bmN0aW9uIHdoZW4gdGhlIGZpcnN0IGFyZ3VtZW50Citp bnZvbHZlcyBhbiBleHByZXNzaW9uIGZvciB3aGljaCBmMmMgZ2VuZXJhdGVzIHRlbXBvcmFyeSB2 YXJpYWJsZXMsCitlLmcuIGNtcGx4KGFicyhyZWFsKGEpKSwxLikgLgorCitTYXQgSnVsIDE4IDA3 OjM2OjU4IEVEVCAxOTkyOgorICBGaXggYnVnbGV0IHdpdGggLWUxYyAoaW52aXNpYmxlIG9uIG1v c3Qgc3lzdGVtcykgdGVtcG9yYXJ5IGZpbGUKK2YyY19mdW5jdGlvbnMgd2FzIHVubGlua2VkIGJl Zm9yZSBiZWluZyBjbG9zZWQuCisgIGxpYmY3NzogZml4IGJ1Z3MgaW4gZXZhbHVhdGluZyBtKipu IGZvciBpbnRlZ2VyIG4gPCAwIGFuZCBtIGFuCitpbnRlZ2VyIGRpZmZlcmVudCBmcm9tIDEgb3Ig YSByZWFsIG9yIGRvdWJsZSBwcmVjaXNpb24gMC4KK0NhdGNoIFNJR1RSQVAgKHRvIHByaW50ICJU cmFjZSB0cmFwIiBiZWZvcmUgYWJvcnRpbmcpLiAgUHJvZ3JhbXMKK3RoYXQgcHJldmlvdXNseSBl cnJvbmVvdXNseSBjb21wdXRlZCAxIGZvciAwKiotMSBtYXkgbm93IGZhdWx0LgorUmVsZXZhbnQg cm91dGluZXM6IG1haW4uYyBwb3dfZGkuYyBwb3dfaGguYyBwb3dfaWkuYyBwb3dfcmkuYyAuCisK K1NhdCBKdWwgMTggMDg6NDA6MTAgRURUIDE5OTI6CisgIGxpYmk3NzogYWxsb3cgbmFtZWxpc3Qg aW5wdXQgdG8gZW5kIHdpdGggJiAoZS5nLiAmZW5kKS4KKworVGh1IEp1bCAyMyAwMDoxNDo0MyBF RFQgMTk5MgorICBBcHBlbmQgdHdvIHVuZGVyc2NvcmVzIHJhdGhlciB0aGFuIG9uZSB0byBDIGtl eXdvcmRzIHVzZWQgYXMKK2xvY2FsIHZhcmlhYmxlcyB0byBhdm9pZCBjb25mbGljdHMgd2l0aCBz aW1pbGFybHkgbmFtZWQgQ09NTU9OIGJsb2Nrcy4KKworVGh1IEp1bCAyMyAxMToyMDo1NSBFRFQg MTk5MjoKKyAgbGliZjc3LCBsaWJpNzcgdXBkYXRlZCB0byBhc3N1bWUgQU5TSSBwcm90b3R5cGVz IHVubGVzcyBLUl9oZWFkZXJzCitpcyAjZGVmaW5lZC4KKyAgbGliaTc3IG5vdyByZWNvZ25pemVz IGEgWiBmb3JtYXQgaXRlbSBhcyBpbiBGb3J0cmFuIDkwOwordGhlIGltcGxlbWVudGF0aW9uIGFz c3VtZXMgOC1iaXQgYnl0ZXMgYW5kIGJvdGNoZXMgY2hhcmFjdGVyIHN0cmluZ3MKK29uIGxpdHRs ZS1lbmRpYW4gbWFjaGluZXMgKGJ5IHByaW50aW5nIHRoZWlyIGJ5dGVzIGZyb20gcmlnaHQgdG8K K2xlZnQpOiBleHBlY3QgdGhpcyBidWcgdG8gcGVyc2lzdDsgZml4aW5nIGl0IHdvdWxkIHJlcXVp cmUgYQorY2hhbmdlIHRvIHRoZSBJL08gY2FsbGluZyBzZXF1ZW5jZXMuCisKK1R1ZSBKdWwgMjgg MTU6MTg6MzMgRURUIDE5OTI6CisgIGxpYmk3NzogaW5zZXJ0IG1pc3NlZCAiI2lmZGVmIEtSX2hl YWRlcnMiIGxpbmVzIGFyb3VuZCBnZXRudW0KK2hlYWRlciBpbiByc25lLmMuICBWZXJzaW9uIG5v dCB1cGRhdGVkLgorCitOT1RFOiAiaW5kZXggZnJvbSBmMmMiIG5vdyBlbmRzIHdpdGggY3VycmVu dCB0aW1lc3RhbXBzIG9mIGZpbGVzIGluCisiYWxsIGZyb20gZjJjL3NyYyIsIHNvcnRlZCBieSB0 aW1lLiAgVG8gYnJpbmcgeW91ciBzb3VyY2UgdXAgdG8gZGF0ZSwKK29idGFpbiBzb3VyY2UgZmls ZXMgd2l0aCBhIHRpbWVzdGFtcCBsYXRlciB0aGFuIHRoZSB0aW1lIHNob3duIGluIHlvdXIKK3Zl cnNpb24uYy4KKworRnJpIEF1ZyAxNCAwODowNzowOSBFRFQgMTk5MjoKKyAgbGliaTc3OiB0d2Vh ayB3cnRfRSBpbiB3cmVmLmMgdG8gYXZvaWQgc2lnbmluZyBOYU5zLgorCitTdW4gQXVnIDIzIDE5 OjA1OjIyIEVEVCAxOTkyOgorICBmYzogc3VwcGx5IDogYWZ0ZXIgTyBpbiBnZXRvcHQgaW52b2Nh dGlvbiAoZm9yIC1PMSAtTzIgLU8zKS4KKworTW9uIEF1ZyAyNCAxODozNzo1OSBFRFQgMTk5MjoK KyAgUmVjYW50IGFib3ZlIHR3ZWFrIHRvIGZjOiBnZXRvcHQgaXMgZHVtYmVyIHRoYW4gSSB0aG91 Z2h0OworaXQncyBuZWNlc3NhcnkgdG8gc2F5IC1PIDEgKGV0Yy4pLgorICBsaWJGNzcvUkVBRE1F OiBhZGQgY29tbWVudHMgYWJvdXQgQUJPUlQsIEVSRiwgREVSRiwgRVJGQywgREVSRkMsCitHRVRB UkcsIEdFVEVOViwgSUFSR0MsIFNJR05BTCwgYW5kIFNZU1RFTS4KKworVHVlIE9jdCAyNyAwMTo1 Nzo0MiBFU1QgMTk5MjoKKyAgbGliZjc3LCBsaWJpNzc6CisgICAgMS4gIEZpeCBib3RjaGVkIGlu ZGlyZWN0aW9uIGluIHNpZ25hbF8uYy4KKyAgICAyLiAgU3VwcGx5IG1pc3NpbmcgbF9lb2YgPSAw IGFzc2lnbm1lbnQgdG8gc19yc25lKCkgaW4gcnNuZS5jIChzbworZW5kLW9mLWZpbGUgb24gb3Ro ZXIgZmlsZXMgd29uJ3QgY29uZnVzZSBuYW1lbGlzdCByZWFkcyBvZiBleHRlcm5hbAorZmlsZXMp LgorICAgIDMuICBQcmVwZW5kIGZfXyB0byBleHRlcm5hbCBuYW1lcyB0aGF0IGFyZSBvbmx5IG9m IGludGVybmFsCitpbnRlcmVzdCB0byBsaWJbRkldNzcuCisKK1RodSBPY3QgMjkgMTI6Mzc6MTgg RVNUIDE5OTI6CisgIGxpYmY3NzogRml4IGJvdGNoIGluIHNpZ25hbF8uYyB3aGVuIEtSX2hlYWRl cnMgaXMgI2RlZmluZWQ7CithZGQgQ0ZMQUdTIHRvIG1ha2VmaWxlLgorICBsaWJpNzc6IHRyaXZp YWwgY2hhbmdlIHRvIG1ha2VmaWxlIGZvciBjb25zaXN0ZW5jeSB3aXRoCitsaWJGNzcvbWFrZWZp bGUuCisKK1dlZCBGZWIgIDMgMDI6MDU6MTYgRVNUIDE5OTM6CisgIFJlY29nbml6ZSB0eXBlcyBJ TlRFR0VSKjEsIExPR0lDQUwqMSwgTE9HSUNBTCoyLCBJTlRFR0VSKjguCitJTlRFR0VSKjggaXMg bm90IHdlbGwgdGVzdGVkIGFuZCB3aWxsIG9ubHkgd29yayByZWFzb25hYmx5IG9uCitzeXN0ZW1z IHdoZXJlIGludCA9IDQgYnl0ZXMsIGxvbmcgPSA4IGJ5dGVzOyBvbiBzdWNoIHN5c3RlbXMsCit5 b3UnbGwgaGF2ZSB0byBtb2RpZnkgZjJjLmggYXBwcm9wcmlhdGVseSwgY2hhbmdpbmcgaW50ZWdl cgorZnJvbSBsb25nIHRvIGludCBhbmQgYWRkaW5nIHR5cGVkZWYgbG9uZyBsb25naW50LiAgWW91 J2xsIGFsc28KK2hhdmUgdG8gY29tcGlsZSBsaWJJNzcgd2l0aCBBbGxvd19UWVFVQUQgI2RlZmlu ZWQgYW5kIGFkanVzdAorbGliRjc3L21ha2VmaWxlIHRvIGNvbXBpbGUgcG93X3FxLmMuICBJbiB0 aGUgZjJjIHNvdXJjZSwgY2hhbmdlcworZm9yIElOVEVHRVIqOCBhcmUgZGVsaW1pdGVkIGJ5ICNp ZmRlZiBUWVFVQUQgLi4uICNlbmRpZi4gIFlvdQorY2FuIG9taXQgdGhlIElOVEVHRVIqOCBjaGFu Z2VzIGJ5IGNvbXBpbGluZyB3aXRoIE5PX1RZUVVBRAorI2RlZmluZWQuICBPdGhlcndpc2UsIHRo ZSBuZXcgY29tbWFuZC1saW5lIG9wdGlvbiAtIWk4CitkaXNhYmxlcyByZWNvZ25pdGlvbiBvZiBJ TlRFR0VSKjguCisgIGxpYmY3NzogYWRkIHBvd19xcS5jCisgIGxpYmk3NzogYWRkICNpZmRlZiBB bGxvd19UWVFVQUQgc3R1ZmYuICBDaGFuZ2VzIGZvciBJTlRFR0VSKjEsCitMT0dJQ0FMKjEsIGFu ZCBMT0dJQ0FMKjIgY2FtZSBsYXN0IDIzIEp1bHkgMTk5Mi4gIEZpeCBidWcgaW4KK2JhY2tzcGFj ZSAodGhhdCBvbmx5IGJpdCB3aGVuIHRoZSBsYXN0IGNoYXJhY3RlciBvZiB0aGUgc2Vjb25kCitv ciBzdWJzZXF1ZW50IGJ1ZmZlciByZWFkIHdhcyB0aGUgcHJldmlvdXMgbmV3bGluZSkuICBHdWFy ZAorYWdhaW5zdCBMX3RtcG5hbSBiZWluZyB0b28gc21hbGwgaW4gZW5kZmlsZS5jLiAgRm9yIE1T RE9TLAorY2xvc2UgYW5kIHJlb3BlbiBmaWxlcyB3aGVuIGNvcHlpbmcgdG8gdHJ1bmNhdGUuICBM ZW5ndGhlbgorTElOVFcgKGJ1ZmZlciBzaXplIGluIGx3cml0ZS5jKS4KKyAgQWRkIFwgdG8gdGhl IGVuZCBvZiAjZGVmaW5lIGxpbmVzIHRoYXQgZ2V0IGJyb2tlbi4KKyAgRml4IGJ1ZyBpbiBoYW5k bGluZyBOQU1FTElTVCBvZiBpdGVtcyBpbiBFUVVJVkFMRU5DRS4KKyAgVW5kZXIgLWggKG9yIC1o ZCksIGNvbnZlcnQgSG9sbGVyaXRoIHRvIGludGVnZXIgaW4gZ2VuZXJhbCBleHByZXNzaW9ucwor KGUuZy4sIGFzc2lnbm1lbnRzKSwgbm90IGp1c3Qgd2hlbiB0aGV5J3JlIHBhc3NlZCBhcyBhcmd1 bWVudHMsIGFuZAorYmxhbmstcGFkIHJhdGhlciB0aGFuIDAtcGFkIHRoZSBIb2xsZXJpdGggdG8g YSBtdWx0aXBsZSBvZgorc2l6ZW9mKGludGVnZXIpIG9yIHNpemVvZihkb3VibGVyZWFsKS4KKyAg QWRkIGNvbW1hbmQtbGluZSBvcHRpb24gLXMsIHdoaWNoIGluc3RydWN0cyBmMmMgcHJlc2VydmUg bXVsdGktCitkaW1lbnNpb25hbCBzdWJzY3JpcHRzIChieSBlbWl0dGluZyBhbmQgdXNpbmcgYXBw cm9wcmlhdGUgI2RlZmluZXMpLgorICBGaXggZ2xpdGNoICh3aXRoIGRlZmF1bHQgdHlwZSBpbmZl cmVuY2VzKSBpbiBleGFtcGxlcyBsaWtlCisJY2FsbCBmb28oJ2FiYycpCisJZW5kCisJc3Vicm91 dGluZSBmb28oZ29vKQorCWVuZAorVGhpcyBnYXZlIHR3byB3YXJuaW5nIG1lc3NhZ2VzOgorCVdh cm5pbmcgb24gbGluZSA0IG9mIHkuZjogaW5jb25zaXN0ZW50IGNhbGxpbmcgc2VxdWVuY2VzIGZv ciBmb286CisJICAgICAgICBoZXJlIDEsIHByZXZpb3VzbHkgMiBhcmdzIGFuZCBzdHJpbmcgbGVu Z3Rocy4KKwlXYXJuaW5nIG9uIGxpbmUgNCBvZiB5LmY6IGluY29uc2lzdGVudCBjYWxsaW5nIHNl cXVlbmNlcyBmb3IgZm9vOgorCSAgICAgICAgaGVyZSAyLCBwcmV2aW91c2x5IDEgYXJncyBhbmQg c3RyaW5nIGxlbmd0aHMuCitOb3cgdGhlIHNlY29uZCBXYXJuaW5nIGlzIHN1cHByZXNzZWQuCisg IENvbXBsYWluIGFib3V0IGFsbCBpbmNvbnNpc3RlbnQgYXJndW1lbnRzLCBub3QganVzdCB0aGUg Zmlyc3QuCisgIFN3aXRjaCB0byBhdXRvbWF0aWMgY3JlYXRpb24gb2YgImFsbCBmcm9tIGYyYy9z cmMiLiAgRm9yIGZvbGtzCitnZXR0aW5nIGYyYyBzb3VyY2UgdmlhIGZ0cCwgdGhpcyBtZWFucyBm MmMvc3JjL2FsbC5aIGlzIG5vdyBhbgorZW1wdHkgZmlsZSByYXRoZXIgdGhhbiBhIGJ1bmRsZS4K KyAgU2VwYXJhdGUgLVAgYW5kIC1BOiAtUCBubyBsb25nZXIgaW1wbGllcyAtQS4KKworVGh1IEZl YiAgNCAwMDozMjoyMCBFU1QgMTk5MzoKKyAgRml4IHNvbWUgZ2xpdGNoZXMgKGludHJvZHVjZWQg eWVzdGVyZGF5KSB3aXRoIC1oIC4KKworRnJpIEZlYiAgNSAwMTo0MDozOCBFU1QgMTk5MzoKKyAg Rml4IGJ1ZyBpbiB0eXBlcyBjb252ZXllZCBmb3IgbmFtZWxpc3RzIChpbnRyb2R1Y2VkIDMgRmVi LiAxOTkzKS4KKworRnJpIEZlYiAgNSAyMToyNjo0MyBFU1QgMTk5MzoKKyAgbGliaTc3OiB0d2Vh a3MgdG8gTkFNRUxJU1QgYW5kIG9wZW4gKGFmdGVyIGNvbW1lbnRzIGJ5IEhhcm9sZAorWW91bmdy ZW4pOgorIDEuIFJlYWRpbmcgYSA/IGluc3RlYWQgb2YgJm5hbWUgKHRoZSBzdGFydCBvZiBhIG5h bWVsaXN0KSBjYXVzZXMKKyAgICB0aGUgbmFtZWxpc3QgYmVpbmcgc291Z2h0IHRvIGJlIHdyaXR0 ZW4gdG8gc3Rkb3V0ICh1bml0IDYpOworICAgIHRvIG9taXQgdGhpcyBmZWF0dXJlLCBjb21waWxl IHJzbmUuYyB3aXRoIC1ETm9fTmFtZWxpc3RfUXVlc3Rpb25zLgorIDIuIFJlYWRpbmcgdGhlIHdy b25nIG5hbWVsaXN0IG5hbWUgbm93IGxlYWRzIHRvIGFuIGVycm9yIG1lc3NhZ2UKKyAgICBhbmQg YW4gYXR0ZW1wdCB0byBza2lwIGlucHV0IHVudGlsIHRoZSByaWdodCBuYW1lbGlzdCBuYW1lIGlz IGZvdW5kOworICAgIHRvIG9taXQgdGhpcyBmZWF0dXJlLCBjb21waWxlIHJzbmUuYyB3aXRoIC1E Tm9fQmFkX05hbWVsaXN0X1NraXAuCisgMy4gTmFtZWxpc3Qgd3JpdGVzIG5vdyBpbnNlcnQgbmV3 bGluZXMgYmVmb3JlIGVhY2ggdmFyaWFibGU7IHRvIG9taXQKKyAgICB0aGlzIGZlYXR1cmUsIGNv bXBpbGUgeHdzbmUuYyB3aXRoIC1ETm9fRXh0cmFfTmFtZWxpc3RfTmV3bGluZXMuCisgNC4gRm9y IE9QRU4gb2Ygc2VxdWVudGlhbCBmaWxlcywgQUNDRVNTPSdBUFBFTkQnIChvcgorICAgIGFjY2Vz cz0nYW55dGhpbmcgZWxzZSBzdGFydGluZyB3aXRoICJBIiBvciAiYSInKSBjYXVzZXMgdGhlIGZp bGUgdG8KKyAgICBiZSBwb3NpdGlvbmVkIGF0IGVuZC1vZi1maWxlLCBzbyBhIHdyaXRlIHdpbGwg YXBwZW5kIHRvIHRoZSBmaWxlLgorICAgIChUaGlzIGlzIG5vbnN0YW5kYXJkLCBidXQgZG9lcyBu b3QgcmVxdWlyZSBtb2RpZnlpbmcgZGF0YQorICAgIHN0cnVjdHVyZXMuKQorCitNb24gRmViICA4 IDE0OjQwOjM3IEVTVCAxOTkzOgorICBJbmNyZWFzZSBudW1iZXIgb2YgY29udGludWF0aW9uIGxp bmVzIGFsbG93ZWQgZnJvbSAxOSB0byA5OSwKK2FuZCBhbGxvdyBjaGFuZ2luZyB0aGlzIGxpbWl0 IHdpdGggLU5DIChlLmcuIC1OQzIwMCBmb3IgMjAwIGxpbmVzKS4KKyAgVHJlYXQgY29udHJvbC1a IChhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbGluZSkgYXMgZW5kLW9mLWZpbGU6IHNlZQordGhlIG5l dyBwZW51bHRpbWF0ZSBwYXJhZ3JhcGggb2YgUkVBRE1FLgorICBGaXggYSByYXJlbHkgc2VlbiBn bGl0Y2ggdGhhdCBjb3VsZCBtYWtlIGFuIGVycm9yIG1lc3NhZ2VzIHRvIHNheQorImxpbmUgMCIu CisKK1R1ZSBGZWIgIDkgMDI6MDU6NDAgRVNUIDE5OTMKKyAgbGliaTc3OiBjaGFuZ2Ugc29tZSAj aWZkZWYgTVNET1MgbGluZXMgdG8gI2lmZGVmIE5PTl9VTklYX1NURElPLAorYW5kLCBpbiBlcnIu YyB1bmRlciBOT05fVU5JWF9TVERJTywgYXZvaWQgY2xvc2UoY3JlYXQobmFtZSwwNjY2KSkKK3do ZW4gdGhlIHVuaXQgaGFzIGFub3RoZXIgZmlsZSBkZXNjcmlwdG9yIGZvciBuYW1lLgorCitUdWUg RmViICA5IDE3OjEyOjQ5IEVTVCAxOTkzCisgIGxpYmk3NzogbW9yZSB0d2Vha3MgZm9yIE5PTl9V TklYX1NURElPOiB1c2Ugc3RkaW8gcm91dGluZXMKK3JhdGhlciB0aGFuIG9wZW4sIGNsb3NlLCBj cmVhdCwgc2VlaywgZmRvcGVuIChleGNlcHQgZm9yIGZfX2lzZGV2KS4KKworRnJpIEZlYiAxMiAx NTo0OTozMyBFU1QgMTk5MworICBVcGRhdGUgc3JjL2dyYW0uYyAod2hpY2ggd2FzIGZvcmdvdHRl biBpbiB0aGUgcmVjZW50IHVwZGF0ZXMpLgorTW9zdCBmb2xrcyByZWdlbmVyYXRlIGl0IGFueXdh eSAod2l0eSB5YWNjIG9yIGJpc29uKS4KKworVGh1IE1hciAgNCAxNzowNzozOCBFU1QgMTk5Mwor ICBJbmNyZWFzZSBkZWZhdWx0IG1heCBsYWJlbHMgaW4gY29tcHV0ZWQgZ290b3MgYW5kIGFsdGVy bmF0ZSByZXR1cm5zCit0byAyNTcsIGFuZCBhbGxvdyAtTmwxMjM0IHRvIHNwZWNpZnkgdGhpcyBu dW1iZXIuCisgIFR3ZWFrIHB1dC5jIHRvIGNoZWNrIHAtPnRhZyA9PSBUQUREUiBpbiByZWFscGFy dCgpIGFuZCBpbWFncGFydCgpLgorICBBZGp1c3QgZmMgc2NyaXB0IHRvIGFsbG93IC5yIChSQVRG T1IpIGZpbGVzIGFuZCAtQyAoY2hlY2sgc3Vic2NyaXB0cykuCisgIEF2b2lkIGRlY2xhcmluZyBz dHJjaHIgaW4gbmljZXByaW50Zi5jIHVuZGVyIC1EQU5TSV9MaWJyYXJpZXMgLgorICBncmFtLmMg dXBkYXRlZCBhZ2Fpbi4KKyAgbGliaTc3OiBlcnIuYywgb3Blbi5jOiB0YWtlIGRlY2xhcmF0aW9u IG9mIGZkb3BlbiBmcm9tIHJhd2lvLmguCisKK1NhdCBNYXIgIDYgMDc6MDk6MTEgRVNUIDE5OTMK KyAgbGliaTc3OiB1aW8uYzogYWRqdXN0IG9mZi1lbmQtb2YtcmVjb3JkIHRlc3QgZm9yIHNlcXVl bnRpYWwKK3VuZm9ybWF0dGVkIHJlYWRzIHRvIHJlc3BvbmQgdG8gZXJyPSByYXRoZXIgdGhhbiBl bmQ9IC4KKworU2F0IE1hciAgNiAxNjoxMjo0NyBFU1QgMTk5MworICBUcmVhdCBzY2FsYXIgYXJn dW1lbnRzIG9mIHRoZSBmb3JtICh2KSBhbmQgdiswLCB3aGVyZSB2IGlzIGEgdmFyaWFibGUsCith cyBleHByZXNzaW9uczogYXNzaWduIHRvIGEgdGVtcG9yYXJ5IHZhcmlhYmxlLCBhbmQgcGFzcyB0 aGUgbGF0dGVyLgorICBncmFtLmMgdXBkYXRlZC4KKworTW9uIE1hciAgOCAwOTozNTozOCBFU1Qg MTk5MworICAiZjJjLmggZnJvbSBmMmMiIHVwZGF0ZWQgdG8gYWRkIHR5cGVzIGxvZ2ljYWwxIGFu ZCBpbnRlZ2VyMSBmb3IKK0xPR0lDQUwqMSBhbmQgSU5URUdFUioxLiAgKCJmMmMuaCBmcm9tIGYy YyIgaXMgc3VwcG9zZWQgdG8gYmUgdGhlCitzYW1lIGFzICJmMmMuaCBmcm9tIGYyYy9zcmMiLCB3 aGljaCB3YXMgdXBkYXRlZCAzIEZlYi4gMTk5My4pCisKK01vbiBNYXIgIDggMTc6NTc6NTUgRVNU IDE5OTMKKyAgRml4IHJhcmVseSBzZWVuIGJ1ZyB0aGF0IGNvdWxkIGNhdXNlIHN0cmFuZ2UgY2Fz dHMgaW4gZnVuY3Rpb24KK2ludm9jYXRpb25zIChyZXZlYWxlZCBieSBhbiBleGFtcGxlIHdpdGgg bXNkb3MvZjJjLmV4ZSkuCisgIG1zZG9zL2YyY3guZXhlLlogYW5kIG1zZG9zL2YyYy5leGUuWiB1 cGRhdGVkIChmdHAgYWNjZXNzIG9ubHkpLgorCitGcmkgTWFyIDEyIDEyOjM3OjAxIEVTVCAxOTkz CisgIEZpeCBidWcgd2l0aCAtcyBpbiBoYW5kbGluZyBzdWJzY3JpcHRzIGludm9sdmluZyBtaW4s IG1heCwgYW5kCitjb21wbGljYXRlZCBleHByZXNzaW9ucyByZXF1aXJpbmcgdGVtcG9yYXJpZXMu CisgIEZpeCBidWcgaW4gaGFuZGxpbmcgQ09NTU9OcyB0aGF0IG5lZWQgcGFkZGluZyBieSBhIGNo YXIgYXJyYXkuCisgIG1zZG9zL2YyY3guZXhlLlogYW5kIG1zZG9zL2YyYy5leGUuWiB1cGRhdGVk IChmdHAgYWNjZXNzIG9ubHkpLgorCitGcmkgTWFyIDEyIDE3OjE2OjE2IEVTVCAxOTkzCisgIGxp YmY3NywgbGliaTc3OiB1cGRhdGVkIGZvciBjb21waWxpbmcgdW5kZXIgQysrLgorCitNb24gTWFy IDE1IDE2OjIxOjM3IEVTVCAxOTkzCisgIGxpYmk3NzogbW9yZSBtaW5vciB0d2Vha3MgKGZvciAt REtSX2hlYWRlcnMpOyBWZXJzaW9uLmMgbm90IGNoYW5nZWQuCisKK1RodSBNYXIgMTggMTI6Mzc6 MzAgRVNUIDE5OTMKKyAgRmxhZyAtciAoZm9yIGRpc2NhcmRpbmcgY2FycmlhZ2UtcmV0dXJucyBv biBzeXN0ZW1zIHRoYXQgZW5kIGxpbmVzCit3aXRoIGNhcnJpYWdlLXJldHVybi9uZXdsaW5lIHBh aXJzLCBlLmcuIFBDcykgYWRkZWQgdG8geHN1bSwgYW5kCit4c3VtLmMgY29udmVydGVkIHRvIEFO U0kvSVNPIHN5bnRheCAod2l0aCBLJlIgc3ludGF4IGF2YWlsYWJsZSB3aXRoCistREtSX2hlYWRl cnMpLiAgW1doZW4gdGltZSBwZXJtaXRzLCB0aGUgZjJjIHNvdXJjZSB3aWxsIHVuZGVyZ28gYQor c2ltaWxhciBjb252ZXJzaW9uLl0KKyAgbGliaTc3OiB0d2Vha3MgdG8gI2luY2x1ZGVzIGluIGVu ZGZpbGUuYywgZXJyLmMsIG9wZW4uYywgcmF3aW8uaDsKK1ZlcnNpb24uYyBub3QgY2hhbmdlZC4K KyAgZjJjLnBzIHVwZGF0ZWQgKHRvIHBpY2sgdXAgcmV2aXNpb24gb2YgMiBGZWIuIDE5OTMgdG8g ZjJjLjEpLgorCitGcmkgTWFyIDE5IDA5OjE5OjI2IEVTVCAxOTkzCisgIGxpYmk3NzogYWRkIChj aGFyICopIGNhc3RzIHRvIG1hbGxvYyBhbmQgcmVhbGxvYyBpbnZvY2F0aW9ucworaW4gZXJyLmMs IG9wZW4uYzsgVmVyc2lvbi5jIG5vdCBjaGFuZ2VkLgorCitUdWUgTWFyIDMwIDA3OjE3OjE1IEVT VCAxOTkzCisgIEZpeCBidWcgaW50cm9kdWNlZCA2IE1hcmNoIDE5OTM6IHBvc3NpYmxlIG1lbW9y eSBjb3JydXB0aW9uIHdoZW4KK2xvb3BzIGluIGRhdGEgc3RhdGVtZW50cyBpbnZvbHZlIGNvbnN0 YW50IHN1YnNjcmlwdHMsIGFzIGluCisJIERBVEEgKEdVTklUKDEsSSksST0wLDE0KS8xNSotMS8K KworVHVlIE1hciAzMCAxNjoxNzo0MiBFU1QgMTk5MworICBGaXggYnVnIHdpdGggLXM6IChmbG9h dGluZy1wb2ludCBhcnJheSBpdGVtKSooY29tcGxleCBpdGVtKQorZ2VuZXJhdGVzIGFuIF9zdWJz Y3IoKSByZWZlcmVuY2UgZm9yIHRoZSBmbG9hdGluZy1wb2ludCBhcnJheSwKK2J1dCBhICNkZWZp bmUgZm9yIHRoZSBfc3Vic2NyKCkgd2FzIG9taXR0ZWQuCisKK1R1ZSBBcHIgIDYgMTI6MTE6MjIg RURUIDE5OTMKKyAgbGliaTc3OiBhZGp1c3QgZXJyb3IgcmV0dXJucyBmb3IgZm9ybWF0dGVkIGlu cHV0cyB0byBmbHVzaCB0aGUgY3VycmVudAoraW5wdXQgbGluZSB3aGVuIGVycj0gaXMgc3BlY2lm aWVkLiAgVG8gcmVzdG9yZSB0aGUgb2xkIGJlaGF2aW9yIChpbnB1dAorbGVmdCBtaWQtbGluZSks IGVpdGhlciBhZGp1c3QgdGhlICNkZWZpbml0aW9uIG9mIGVycmZsIGluIGZpby5oIG9yIG9taXQK K3RoZSBpbnZvY2F0aW9uIG9mIGZfX2RvZW5kIGluIGVycl9fZmwgKGluIGVyci5jKS4KKworVHVl IEFwciAgNiAxMzozMDowNCBFRFQgMTk5MworICBGaXggYnVnIHJldmVhbGVkIGluCisJc3Vicm91 dGluZSBmb28oaSkKKwljYWxsIGdvbyhpbnQoaSkpCisJZW5kCit3aGljaCBub3cgcGFzc2VzIGEg Y29weSBvZiBpLCByYXRoZXIgdGhhbiBpIGl0c2VsZi4KKworU2F0IEFwciAxNyAxMTo0MTowMiBF RFQgMTk5MworICBBZGp1c3QgYXBwZW5kaW5nIG9mIHVuZGVyc2NvcmVzIHRvIGNvbmZvcm0gd2l0 aCBmMmMucHMgKCJBIEZvcnRyYW4KK3RvIEMgQ29udmVydGVyIik6IG5hbWVzIHRoYXQgY29uZmxp Y3Qgd2l0aCBDIGtleXdvcmRzIG9yIGYyYyB0eXBlCituYW1lcyBub3cgaGF2ZSBqdXN0IG9uZSB1 bmRlcnNjb3JlIGFwcGVuZGVkIChyYXRoZXIgdGhhbiB0d28pOyBhZGQKKyJpbnRlZ2VyMSIsICJs b2dpY2FsMSIsICJsb25naW50IiB0byB0aGUga2V5d29yZCBsaXN0LgorICBBcHBlbmQgdW5kZXJz Y29yZXMgdG8gbmFtZXMgdGhhdCBhcHBlYXIgaW4gRVFVSVZBTEVOQ0UgYW5kIGFyZQorY29tcG9u ZW50IG5hbWVzIGluIGEgc3RydWN0dXJlIGRlY2xhcmVkIGluIGYyYy5oLCB0aHVzIGF2b2lkaW5n IGEKK3Byb2JsZW0gY2F1c2VkIGJ5IHRoZSAjZGVmaW5lcyBlbWl0dGVkIGZvciBlcXVpdmFsZW5j ZXMuICBFeGFtcGxlOgorCWNvbXBsZXggYQorCWVxdWl2YWxlbmNlIChpLGopCisJYSA9IDEJISBh Lmkgd2VudCBhd3J5IGJlY2F1c2Ugb2YgI2RlZmluZSBpCisJaiA9IDIKKwl3cml0ZSgqLCopIGEs IGkKKwllbmQKKyAgQWRqdXN0IGxpbmUtYnJlYWtpbmcgbG9naWMgdG8gYXZvaWQgc3BsaXR0aW5n IHZlcnkgbG9uZyBjb25zdGFudHMKKyhhbmQgbmFtZXMpLiAgRXhhbXBsZToKKwkhIFRoZSBuZXh0 IGxpbmUgc3RhcnRzIHdpdGggdGFiIGFuZCB0aHVzIGlzIGEgZnJlZS1mb3JtYXQgbGluZS4KKwlh PS4wMTIzNDU2ODkwMTIzNDU2ODkwMTIzNDU2ODkwMTIzNDU2ODkwMTIzNDU2ODkwMTIzNDU2ODkw MTIzNDU2ODkwMTIzNDU2ODkKKwllbmQKKyAgT21pdCBleHRyYW5lb3VzICJyZXR1cm4gMDsiIGZy b20gZW50cnkgc3R1YnMgZW1pdHRlZCBmb3IgbXVsdGlwbGUKK2VudHJ5IHBvaW50cyBvZiB0eXBl IGNoYXJhY3RlciwgY29tcGxleCwgb3IgZG91YmxlIGNvbXBsZXguCisKK1NhdCBBcHIgMTcgMTQ6 MzU6MDUgRURUIDE5OTMKKyAgRml4IGJ1ZyAoaW50cm9kdWNlZCA0IEZlYi4pIGluIHNlcGFyYXRp bmcgLVAgZnJvbSAtQSB0aGF0IGtlcHQgZjJjCitmcm9tIHJlLXJlYWRpbmcgYSAuUCBmaWxlIHdy aXR0ZW4gd2l0aG91dCAtQSBvciAtQysrIGRlc2NyaWJpbmcgYQorcm91dGluZSB3aXRoIGFuIGV4 dGVybmFsIGFyZ3VtZW50LiAgW1NlZSB0aGUganVzdC1hZGRlZCBub3RlIGFib3V0CitzZXBhcmF0 aW5nIC1QIGZyb20gLUEgaW4gdGhlIGNoYW5nZXMgYWJvdmUgZm9yIDMgRmViLiAxOTkzLl0KKyAg Rml4IGJ1ZyAodHlwZSBVTktOT1dOIGZvciBWIGluIHRoZSBleGFtcGxlIGJlbG93KSByZXZlYWxl ZCBieQorCXN1YnJvdXRpbmUgYSgpCisJZXh0ZXJuYWwgYworCWNhbGwgYihjKQorCWVuZAorCXN1 YnJvdXRpbmUgYih2KQorCWVuZAorCitTdW4gQXByIDE4IDE5OjU1OjI2IEVEVCAxOTkzCisgIEZp eCB3cm9uZyBjYWxsaW5nIHNlcXVlbmNlIGZvciBtZW0oKSBpbiB5ZXN0ZXJkYXkncyBhZGRpdGlv biB0bworZXF1aXYuYyAuCisKK1dlZCBBcHIgMjEgMTc6Mzk6NDYgRURUIDE5OTMKKyAgRml4IGJ1 ZyByZXZlYWxlZCBpbgorCisgICAgICBBU1NJR04gMTAgVE8gTDEKKyAgICAgIEdPIFRPIDIwCisg MTAgICBBU1NJR04gMzAgVE8gTDIKKyAgICAgIFNUT1AgMTAKKworIDIwICAgQVNTSUdOIDEwIFRP IEwyCSEgQnVnIGhlcmUgYmVjYXVzZSAxMCBoYWQgYmVlbiBhc3NpZ25lZAorCQkJISB0byBhbm90 aGVyIGxhYmVsLCB0aGVuIGRlZmluZWQuCisgICAgICBHTyBUTyBMMgorIDMwICAgRU5ECisKK0Zy aSBBcHIgMjMgMTg6Mzg6NTAgRURUIDE5OTMKKyAgRml4IGJ1ZyB3aXRoIC1oIHJldmVhbGVkIGlu CisJQ0hBUkFDVEVSKjkgRk9PCisJV1JJVEUoRk9PLCcoSTYpJykgMQorCVdSSVRFKEZPTywnKEk2 KScpIDIJISBzdHJ1Y3QgaWNpbGlzdCBpb19fXzMgYm90Y2hlZAorCUVORAorCitUdWUgQXByIDI3 IDE2OjA4OjI4IEVEVCAxOTkzCisgIFR3ZWFrIHRvIG1ha2VmaWxlOiByZW1vdmUgInNpemUgZjJj Ii4KKworVHVlIE1heSAgNCAyMzo0ODoyMCBFRFQgMTk5MworICBsaWJmNzc6IHR3ZWFrIHNpZ25h bF8gbGluZSBvZiBmMmNoLmFkZCAuCisKK1R1ZSBKdW4gIDEgMTM6NDc6MTMgRURUIDE5OTMKKyAg Rml4IGJ1ZyBpbnRyb2R1Y2VkIDMgRmViLiAxOTkzIGluIGhhbmRsaW5nIG11bHRpcGxlIGVudHJ5 Citwb2ludHMgd2l0aCBkaWZmZXJpbmcgcmV0dXJuIHR5cGVzIC0tIHRoZSBwb3N0Zml4IGFycmF5 IGluIHByb2MuYworbmVlZGVkIGEgbmV3IGVudHJ5IGZvciBpbnRlZ2VyKjggKHdoaWNoIHJlc3Vs dGVkIGluIHdyb25nCitNdWx0aXR5cGUgc3VmZml4ZXMgZm9yIG5vbi1pbnRlZ3JhbCB0eXBlcyku CisgIEZvciAoZGVmYXVsdCkgSyZSIEMsIGdlbmVyYXRlIFZPSUQgcmF0aGVyIHRoYW4gaW50IGZ1 bmN0aW9ucyBmb3IKK2Z1bmN0aW9ucyBvZiBGb3J0cmFuIHR5cGUgY2hhcmFjdGVyLCBjb21wbGV4 LCBhbmQgZG91YmxlIGNvbXBsZXguCisgIG1zZG9zL2YyY3guZXhlLlogYW5kIG1zZG9zL2YyYy5l eGUuWiB1cGRhdGVkIChmdHAgYWNjZXNzIG9ubHkpLgorCitUdWUgSnVuICAxIDIzOjExOjE1IEVE VCAxOTkzCisgIGYyYy5oOiBhZGQgTXVsdGl0eXBlIGNvbXBvbmVudCBnIGFuZCBjb21tZW50ZWQg dHlwZSBsb25naW50LgorICBwcm9jLmM6IG9taXQgInJldHVybiAwOyIgZnJvbSBzdHVicyBmb3Ig Y29tcGxleCBhbmQgZG91YmxlIGNvbXBsZXgKK2VudHJpZXMgKHdoZW4gZW50cmllcyBoYXZlIG11 bHRpcGxlIHR5cGVzKTsgYWRkIHRlc3QgdG8gYXZvaWQgbWVtb3J5CitmYXVsdCB3aXRoIGlsbGVn YWwgY29tYmluYXRpb25zIG9mIGVudHJ5IHR5cGVzLgorCitNb24gSnVuICA3IDEyOjAwOjQ3IEVE VCAxOTkzCisgIEZpeCBtZW1vcnkgZmF1bHQgaW4KKwljb21tb24gL2MvIG0KKwlpbnRlZ2VyIG0o MSkKKwlkYXRhIG0oMSkvMS8sIG0oMikvMi8JISBvbmUgdG9vIG1hbnkgaW5pdGlhbGl6ZXJzCisJ ZW5kCisgIG1zZG9zL2YyY3guZXhlLlogYW5kIG1zZG9zL2YyYy5leGUuWiB1cGRhdGVkIChmdHAg YWNjZXNzIG9ubHkpLgorCitGcmkgSnVuIDE4IDEzOjU1OjUxIEVEVCAxOTkzCisgIGxpYmk3Nzog Y2hhbmdlIHR5cGUgb2Ygc2lnbmFsXyBpbiBmMmNoLmFkZDsgY2hhbmdlIHR5cGUgb2YgaWwgaW4K K3VuaW9uIFVpbnQgZnJvbSBsb25nIHRvIGludGVnZXIgKGZvciBtYWNoaW5lcyBsaWtlIHRoZSBE RUMgQWxwaGEsCit3aGVyZSBpbnRlZ2VyIHNob3VsZCBiZSB0aGUgc2FtZSBhcyBpbnQpLiAgVmVy c2lvbi5jIG5vdCBjaGFuZ2VkLgorICBUd2VhayBncmFtLmRjbCBhbmQgZ3JhbS5oZWFkOiBhZGQg c2VtaWNvbG9ucyBhZnRlciBzb21lIHJ1bGVzIHRoYXQKK2xhY2tlZCB0aGVtLCBhbmQgcmVtb3Zl IGFuIGV4dHJhbmVvdXMgc2VtaWNvbG9uLiAgVGhlc2UgY2hhbmdlcyBhcmUKK2NvbXBsZXRlbHkg dHJhbnNwYXJlbnQgdG8gb3VyIGxvY2FsIHlhY2MgcHJvZ3JhbXMsIGJ1dCBhcHBhcmVudGx5Citt YXR0ZXIgb24gc29tZSBWTVMgc3lzdGVtcy4KKworV2VkIEp1biAyMyAwMTowMjo1NiBFRFQgMTk5 MworICBVcGRhdGUgImZjIiBzaGVsbCBzY3JpcHQsIGFuZCBicmluZyBmMmMuMSBhbmQgZjJjLjF0 IHVwIHRvIGRhdGU6Cit0aGV5J3JlIG1lYW50IHRvIGJlIGxpbmtlZCB3aXRoIChpLmUuLCB0aGUg c2FtZSBhcykgc3JjL2YyYy4xIGFuZAorc3JjL2YyYy4xdCAuICBbSW4gdGhlIGxhc3QgdXBkYXRl IG9mIGYyYy4xKiAoMiBGZWIuIDE5OTMpLCBvbmx5CitzcmMvZjJjLjEgYW5kIHNyYy9mMmMuMXQg Z290IGNoYW5nZWQgLS0gYSBtaXN0YWtlLl0KKworV2VkIEp1biAyMyAwOTowNDozMSBFRFQgMTk5 MworICBsaWJpNzc6IGZpeCBidWcgaW4gZm9ybWF0IHJldmVyc2lvbnMgZm9yIGludGVybmFsIHdy aXRlcy4KK0V4YW1wbGU6CisJY2hhcmFjdGVyKjYwIGxpbmVzKDIpCisJd3JpdGUobGluZXMsIign biA9JyxpMywyKCcgbW9yZSB0ZXh0JyxpMykpIikgMywgNCwgNSwgNgorCXdyaXRlKCosKikgJ2xp bmVzKDEpID0gJywgbGluZXMoMSkKKwl3cml0ZSgqLCopICdsaW5lcygyKSA9ICcsIGxpbmVzKDIp CisJZW5kCitnYXZlIGFuIGVycm9yIG1lc3NhZ2UgdGhhdCBiZWdhbiAiaWlvOiBvZmYgZW5kIG9m IHJlY29yZCIsIHJhdGhlcgordGhhbiBnaXZpbmcgdGhlIGNvcnJlY3Qgb3V0cHV0OgorCisgbGlu ZXMoMSkgPSBuID0gIDMgbW9yZSB0ZXh0ICA0IG1vcmUgdGV4dCAgNQorIGxpbmVzKDIpID0gIG1v cmUgdGV4dCAgNiBtb3JlIHRleHQKKworVGh1IEF1ZyAgNSAxMTozMToxNCBFRFQgMTk5MworICBs aWJpNzc6IGxyZWFkLmM6IGZpeCBidWcgaW4gaGFuZGxpbmcgcmVwZXRpdGlvbiBjb3VudHMgZm9y IGxvZ2ljYWwKK2RhdGEgKGR1cmluZyBsaXN0IG9yIG5hbWVsaXN0IGlucHV0KS4gIENoYW5nZSBz dHJ1Y3QgZl9fc3lsIHRvCitzdHJ1Y3Qgc3lsIChmb3IgYnVnZ3kgY29tcGlsZXJzKS4KKworU2F0 IEF1ZyAgNyAxNjowNTozMCBFRFQgMTk5MworICBsaWJpNzc6IGxyZWFkLmMgKGFnYWluKTogZml4 IGJ1ZyBpbiBuYW1lbGlzdCByZWFkaW5nIG9mIGluY29tcGxldGUKK2xvZ2ljYWwgYXJyYXlzLgor ICBGaXggbWlub3IgY2FsbGluZy1zZXF1ZW5jZSBlcnJvcnMgaW4gZm9ybWF0LmMsIG91dHB1dC5j LCBwdXRwY2MuYzoKK3Nob3VsZCBiZSBpbnZpc2libGUuCisKK01vbiBBdWcgIDkgMDk6MTI6Mzgg RURUIDE5OTMKKyAgRml4IGVycm9uZW91cyBjYXN0IHVuZGVyIC1BIGluIHRyYW5zbGF0aW5nCisJ Y2hhcmFjdGVyKigqKSBmdW5jdGlvbiBnZXRjKCkKKwlnZXRjKDI6Myk9JyAnCQkhd3JvbmcgY2Fz dCBpbiBmaXJzdCBhcmcgdG8gc19jb3B5CisJZW5kCisgIGxpYmk3NzogbHJlYWQuYzogZml4IGJ1 ZyBpbiBuYW1lbGlzdCByZWFkaW5nIG9mIGFuIGluY29tcGxldGUgYXJyYXkKK29mIG51bWVyaWMg ZGF0YSBmb2xsb3dlZCBieSBhbm90aGVyIG5hbWVsaXN0IGl0ZW0gd2hvc2UgbmFtZSBzdGFydHMK K3dpdGggJ2QnLCAnRCcsICdlJywgb3IgJ0UnLgorCitGcmkgQXVnIDIwIDEzOjIyOjEwIEVEVCAx OTkzCisgIEZpeCBidWcgaW4gZG8gd2hpbGUgcmV2ZWFsZWQgYnkKKwlzdWJyb3V0aW5lIHNrZGln IChsaW5lLCBpKQorCWNoYXJhY3RlciBsaW5lKigqKSwgY2gqMQorCWludGVnZXIgaQorCWxvZ2lj YWwgaXNkaWdpdAorCWlzZGlnaXQoY2gpID0gY2guZ2UuJzAnIC5hbmQuIGNoLmxlLic5JworCWRv IHdoaWxlIChpc2RpZ2l0KGxpbmUoaTppKSkpCSEgY2hfXzFbMF0gd2FzIHNldCBiZWZvcmUKKwkJ CQkJISAid2hpbGUoLi4uKSB7Li4ufSIKKwkJaSA9IGkgKyAxCisJCWVuZGRvCisJZW5kCisKK0Zy aSBBdWcgMjcgMDg6MjI6NTQgRURUIDE5OTMKKyAgQWRkICNpZmRlZnMgdG8gYXZvaWQgZGVjbGFy aW5nIGF0b2wgd2hlbiBpdCBpcyBhIG1hY3JvOyB2ZXJzaW9uLmMKK25vdCB1cGRhdGVkLgorCitX ZWQgU2VwICA4IDEyOjI0OjI2IEVEVCAxOTkzCisgIGxpYmk3Nzogb3Blbi5jOiBwcm90ZWN0ICNp bmNsdWRlICJzeXMvLi4uIiB3aXRoCisjaWZuZGVmIE5PTl9VTklYX1NURElPOyBWZXJzaW9uIGRh dGUgbm90IGNoYW5nZWQuCisKK1RodSBTZXAgIDkgMDg6NTE6MjEgRURUIDE5OTMKKyAgQWRqdXN0 ICJpbmNsdWRlIiB0byBpbnRlcnByZXQgZmlsZSBuYW1lcyByZWxhdGl2ZSB0byB0aGUgZGlyZWN0 b3J5CitvZiB0aGUgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSAiaW5jbHVkZSIuCisKK0ZyaSBTZXAg MjQgMDA6NTY6MTIgRURUIDE5OTMKKyAgRml4IG9mZnNldCBlcnJvciByZXN1bHRpbmcgZnJvbSBy ZXBlYXRpbmcgdGhlIHNhbWUgZXF1aXZhbGVuY2UKK3N0YXRlbWVudCB0d2ljZS4gIEV4YW1wbGU6 CisJcmVhbCBhKDIpLCBiKDIpCisJZXF1aXZhbGVuY2UgKGEoMiksIGIoMikpCisJZXF1aXZhbGVu Y2UgKGEoMiksIGIoMikpCisJZW5kCisgIEluY3JlYXNlIE1BWFRPS0VOTEVOICh0byByb3VnaGx5 IHRoZSBsYXJnZXN0IGFsbG93ZWQgYnkgQU5TSSBDKS4KKworTW9uIFNlcCAyNyAwODo1NTowOSBF RFQgMTk5MworICBsaWJpNzc6IGVuZGZpbGUuYzogcHJvdGVjdCAjaW5jbHVkZSAic3lzL3R5cGVz LmgiIHdpdGgKKyNpZm5kZWYgTk9OX1VOSVhfU1RESU87IFZlcnNpb24uYyBub3QgY2hhbmdlZC4K KworRnJpIE9jdCAxNSAxNTozNzoyNiBFRFQgMTk5MworICBGaXggcmFyZWx5IHNlZW4gcGFyc2lu ZyBidWcgaWxsdXN0cmF0ZWQgYnkKKwlzdWJyb3V0aW5lIGZvbyh4YWJjZGVmZ2hpaikKKwljaGFy YWN0ZXIqKCopIHhhYmNkZWZnaGlqCisgICAgICAgICAgICAgICBJRiAoeGFiY2RlZmdoaWouTkUu JyMjJykgR09UTyA0MAorIDQwCWVuZAoraW4gd2hpY2ggdGhlIHNwYWNpbmcgaW4gdGhlIElGIGxp bmUgaXMgY3J1Y2lhbC4KKworVGh1IE9jdCAyMSAxMzo1NToxMSBFRFQgMTk5MworICBHaXZlIG1v cmUgbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlICh0aGVuICJ1bmV4cGVjdGVkIGNoYXJhY3RlciBp bgorY2RzIikgd2hlbiBjb25zdGFudCBzaW1wbGlmaWNhdGlvbiBsZWFkcyB0byBJbmZpbml0eSBv ciBOYU4uCisKK1dlZCBOb3YgMTAgMTU6MDE6MDUgRVNUIDE5OTMKKyAgbGliaTc3OiBiYWNrc3Bh Y2UuYzogYWRqdXN0LCB1bmRlciAtRE1TRE9TLCB0byBjb3BlIHdpdGggTVNET1MKK3RleHQgZmls ZXMsIGFzIGhhbmRsZWQgYnkgc29tZSBwb3B1bGFyIFBDIEMgY29tcGlsZXJzLiAgQmV3YXJlOgor dGhlIChkZWZlY3RpdmUpIGxpYnJhcmllcyBhc3NvY2lhdGVkIHdpdGggdGhlc2UgY29tcGlsZXJz IGFzc3VtZSBsaW5lcworZW5kIHdpdGggXHJcbiAoY29udmVudGlvbmFsIE1TLURPUyB0ZXh0IGZp bGVzKSAtLSBhbmQgZnRlbGwgKGFuZAoraGVuY2UgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24g b2YgYmFja3NwYWNlKSBzY3Jld3MgdXAgaWYgbGluZXMgd2l0aAoranVzdCBcbi4KKworVGh1IE5v diAxOCAwOTozNzo0NyBFU1QgMTk5MworICBHaXZlIGEgYmV0dGVyIGVycm9yICh0aGFuICJjb250 cm9sIHN0YWNrIGVtcHR5IikgZm9yIGFuIGV4dHJhbmVvdXMKK0VORERPLiAgRXhhbXBsZToKKwll bmRkbworCWVuZAorICBVcGRhdGUgY29tbWVudHMgYWJvdXQgZnRwIGluICJyZWFkbWUgZnJvbSBm MmMiLgorCitTdW4gTm92IDI4IDE3OjI2OjUwIEVTVCAxOTkzCisgIENoYW5nZSBmb3JtYXQgb2Yg dGltZSBzdGFtcCBpbiB2ZXJzaW9uLmMgdG8geXl5eW1tZGQuCisgIFNvcnQgcGFyYW1ldGVyIGFk anVzdG1lbnRzIChvciBjb21wbGFpbiBvZiBpbXBvc3NpYmxlIGRlcGVuZGVuY2llcykKK3NvIHRo YXQgZHVtbXkgYXJndW1lbnRzIGFyZSByZWZlcmVuY2VkIG9ubHkgYWZ0ZXIgYmVpbmcgYWRqdXN0 ZWQuCitFeGFtcGxlOgorCXN1YnJvdXRpbmUgZm9vKGEsYikKKwlpbnRlZ2VyIGEoMikJCSEgYSBt dXN0IGJlIGFkanVzdGVkIGJlZm9yZSBiCisJZG91YmxlIHByZWNpc2lvbiBiKGEoMSksYSgyKSkK KwljYWxsIGdvbyhiKDMsNCkpCisJZW5kCisgIEFkanVzdCBzdHJ1Y3RzIGZvciBpbml0aWFsaXpl ZCBjb21tb24gYmxvY2tzIGFuZCBlcXVpdmFsZW5jZSBjbGFzc2VzCit0byBvbWl0IHRoZSB0cmFp bGluZyBzdHJ1Y3QgY29tcG9uZW50IGFkZGVkIHRvIGZvcmNlIGFsaWdubWVudCB3aGVuCitwYWRk aW5nIGFscmVhZHkgZm9yY2VzIHRoZSBkZXNpcmVkIGFsaWdubWVudC4gIEV4YW1wbGU6CisJUFJP R1JBTSBURVNUCisJQ09NTU9OIC9aLyBBLCBDQworCUNIQVJBQ1RFUio0IENDCisJREFUQSBjYyAv J2EnLworCUVORAorbm93IGdpdmVzCisJc3RydWN0IHsKKwkgICAgaW50ZWdlciBmaWxsXzFbMV07 CisJICAgIGNoYXIgZV8yWzRdOworCSAgICB9IHpfID0geyB7MH0sIHsnYScsICcgJywgJyAnLCAn ICd9IH07CityYXRoZXIgdGhhbgorc3RydWN0IHsKKyAgICBpbnRlZ2VyIGZpbGxfMVsxXTsKKyAg ICBjaGFyIGVfMls0XTsKKyAgICByZWFsIGVfMzsKKyAgICB9IHpfID0geyB7MH0sIHsnYScsICcg JywgJyAnLCAnICd9LCAoZmxvYXQpMC4gfTsKKworV2VkIERlYyAgOCAxNjoyNDo0MyBFU1QgMTk5 MworICBBZGp1c3QgbGV4LmMgdG8gcmVjb2duaXplICMgbm5uICJmaWxlbmFtZSIgbGluZXMgZW1p dHRlZCBieSBjcHA7Cit0aGlzIGFmZmVjdHMgdGhlIGZpbGUgbmFtZXMgYW5kIGxpbmUgbnVtYmVy cyBpbiBlcnJvciBtZXNzYWdlcyBhbmQKK3RoZSAjbGluZSBsaW5lcyBlbWl0dGVkIHVuZGVyIC1n LgorICBVbmRlciAtZywgYXJyYW5nZSBmb3IgYSBmaWxlIHRoYXQgc3RhcnRzIHdpdGggYW4gZXhl Y3V0YWJsZQorc3RhdGVtZW50IHRvIGhhdmUgdGhlIGZpcnN0ICNsaW5lIGxpbmUgaW5kaWNhdGUg bGluZSAxLCByYXRoZXIKK3RoYW4gdGhlIGxpbmUgbnVtYmVyIG9mIHRoZSBFTkQgc3RhdGVtZW50 IGVuZGluZyB0aGUgbWFpbiBwcm9ncmFtLgorICBBZGp1c3QgZmMgc2NyaXB0IHRvIHJ1biBmaWxl cyBlbmRpbmcgaW4gLkYgdGhyb3VnaCAvbGliL2NwcC4KKyAgRml4IGJ1ZyAoIkltcG9zc2libGUg dGFnIDIiKSBpbgorCWlmICh0IC5lcS4gKDAsMikpIHdyaXRlKCosKikgJ0J1ZyEnCisJZW5kCisg IGxpYmk3NzogaWlvLmM6IGFkanVzdCBpbnRlcm5hbCBmb3JtYXR0ZWQgcmVhZHMgdG8gdHJlYXQg c2hvcnQgcmVjb3JkcworYXMgdGhvdWdoIHBhZGRlZCB3aXRoIGJsYW5rcyAocmF0aGVyIHRoYW4g Y2F1c2luZyBhbiAib2ZmIGVuZCBvZiByZWNvcmQiCitlcnJvcikuCisKK1dlZCBEZWMgMTUgMTU6 MTk6MTUgRVNUIDE5OTMKKyAgZmM6IGFkanVzdGVkIGZvciAuRiBmaWxlcyB0byBwYXNzIC1EIGFu ZCAtSSBvcHRpb25zIHRvIGNwcC4KKworRnJpIERlYyAxNyAyMDowMzozOCBFU1QgMTk5MworICBG aXggYm90Y2ggaW50cm9kdWNlZCAyOCBOb3YuIDE5OTMgaW4gdmF4LmM7IGNoYW5nZSAidmVyc2lv biBvZiIKK3RvICJ2ZXJzaW9uIi4KKworVHVlIEphbiAgNCAxNTozOTo1MiBFU1QgMTk5NAorICBt c2Rvcy9mMmN4LmV4ZS5aIGFuZCBtc2Rvcy9mMmMuZXhlLlogdXBkYXRlZCAoZnRwIGFjY2VzcyBv bmx5KS4KKworV2VkIEphbiAxOSAwODo1NToxOSBFU1QgMTk5NAorICBBcnJhbmdlIHRvIGFjY2Vw dAorCWludGVnZXIJTngsIE55LCBOegorCXBhcmFtZXRlcgkoTnggPSAxMCwgTnkgPSAyMCkKKwlw YXJhbWV0ZXIJKE56ID0gbWF4KE54LCBOeSkpCisJaW50ZWdlcgljKE56KQorCWNhbGwgZm9vKGMp CisJZW5kCityYXRoZXIgdGhhbiBjb21wbGFpbmluZyAiRGVjbGFyYXRpb24gZXJyb3IgZm9yIGM6 IGFkanVzdGFibGUgZGltZW5zaW9uCitvbiBub24tYXJndW1lbnQiLiAgVGhlIG5lY2Vzc2FyeSBj aGFuZ2VzIGNhdXNlIHNvbWUgaGl0aGVydG8gdW5mb2xkZWQKK2NvbnN0YW50IGV4cHJlc3Npb25z IHRvIGJlIGZvbGRlZC4KKyAgQWNjZXB0IEJZVEUgYXMgYSBzeW5vbnltIGZvciBJTlRFR0VSKjEu CisKK1RodSBKYW4gMjcgMDg6NTc6NDAgRVNUIDE5OTQKKyAgRml4IGJvdGNoIGluIGNoYW5nZXMg b2YgMTkgSmFuLiAxOTk0IHRoYXQgYnJva2UgZW50cnkgcG9pbnRzIHdpdGgKK211bHRpLWRpbWVu c2lvbmFsIGFycmF5IGFyZ3VtZW50cyB0aGF0IGRpZCBub3QgYXBwZWFyIGluIHRoZSBzdWJwcm9n cmFtCithcmd1bWVudCBsaXN0IGFuZCB3aG9zZSBsZWFkaW5nIGRpbWVuc2lvbnMgZGVwZW5kIG9u IGFyZ3VtZW50cy4KKworTW9uIEZlYiAgNyAwOToyNDozMCBFU1QgMTk5NAorICBSZW1vdmUgYXJ0 aWZhY3QgaW4gImZjIiBzY3JpcHQgdGhhdCBjYXVzZWQgLU8gdG8gYmUgaWdub3JlZDoKKwk4N2M4 NworCTwJCSMgbGNjIGlnbm9yZXMgLU8uLi4KKwktLS0KKwk+CQlDRkxBR1M9IiRDRkxBR1MgJE8i CisKK1N1biBGZWIgMjAgMTc6MDQ6NTggRVNUIDE5OTQKKyAgRml4IGJ1Z3MgcmVhZGluZyAuUCBm aWxlcyBmb3Igcm91dGluZXMgd2l0aCBhcmd1bWVudHMgb2YgdHlwZQorSU5URUdFUioxLCBJTlRF R0VSKjgsIExPR0lDQUwqMi4KKyAgRml4IGdsaXRjaCBpbiByZXBvcnRpbmcgaW5jb25zaXN0ZW50 IGFyZ3VtZW50cyBmb3Igcm91dGluZXMgaW52b2x2aW5nCitjaGFyYWN0ZXIgYXJndW1lbnRzOiAg ImFyZyBuIiBoYWQgbiB0b28gbGFyZ2UgYnkgdGhlIG51bWJlciBvZgorY2hhcmFjdGVyIGFyZ3Vt ZW50cy4KKworVHVlIEZlYiAyMiAyMDo1MDowOCBFU1QgMTk5NAorICBUcml2aWFsIGNoYW5nZXMg dG8gZGF0YS5jIGZvcm1hdC5jIG1haW4uYyBuaWNlcHJpbnRmLmMgb3V0cHV0LmggYW5kCitzeXNk ZXAuaCAoY29uc2lzdGVuY3kgaW1wcm92ZW1lbnRzKS4KKyAgbGliSTc3OiBscmVhZC5jOiBjaGVj ayBmb3IgTlVMTCByZXR1cm4gZnJvbSByZWFsbG9jLgorCitGcmkgRmViIDI1IDIzOjU2OjA4IEVT VCAxOTk0CisgIG91dHB1dC5jLCBzeXNkZXAuaDogYXJyYW5nZSBmb3IgLURVU0VfRFRPQSB0byB1 c2UgZHRvYS5jIGFuZCBnX2ZtdC5jCitmb3IgY29ycmVjdGx5IHJvdW5kZWQgZGVjaW1hbCB2YWx1 ZXMgb24gSUVFRS1hcml0aG1ldGljIG1hY2hpbmVzCisocGx1cyBtYWNoaW5lcyB3aXRoIFZBWCBh bmQgSUJNLW1haW5mcmFtZSBhcml0aG1ldGljKS4gIFRoZXNlCityb3V0aW5lcyBhcmUgYXZhaWxh YmxlIGZyb20gbmV0bGliJ3MgZnAgZGlyZWN0b3J5LgorICBtc2Rvcy9mMmN4LmV4ZS5aIGFuZCBt c2Rvcy9mMmMuZXhlLlogdXBkYXRlZCAoZnRwIGFjY2VzcyBvbmx5KTsgdGhlCitmb3JtZXIgdXNl cyAtRFVTRV9EVE9BIHRvIGtlZXAgMTIgZnJvbSBwcmludGluZyBhcyAxMi4wMDAwMDAwMDAwMDAw MDEuCisgIHZheC5jOiBmaXggd3JvbmcgYXJndW1lbnRzIHRvIGJhZHRhZyBhbmQgZnJjaGFpbiBp bnRyb2R1Y2VkCisyOCBOb3YuIDE5OTMuCisgIFNvdXJjZSBmb3IgZjJjIGNvbnZlcnRlZCB0byBB TlNJL0lTTyBmb3JtYXQsIHdpdGggdGhlIEsmUiBmb3JtYXQKK2F2YWlsYWJsZSBieSBjb21waWxh dGlvbiB3aXRoIC1ES1JfaGVhZGVycyAuCisgIEFycmFuZ2UgZm9yIChkb3VibGUgcHJlY2lzaW9u IGV4cHJlc3Npb24pIHJlbG9wIChzaW5nbGUgcHJlY2lzaW9uCitjb25zdGFudCkgdG8gcmV0YWlu IHRoZSBzaW5nbGUtcHJlY2lzaW9uIG5hdHVyZSBvZiB0aGUgY29uc3RhbnQuCitFeGFtcGxlOgor CWRvdWJsZSBwcmVjaXNpb24gdAorCWlmICh0IC5lcS4gMC4zKSAuLi4KKworTW9uIEZlYiAyOCAx MTo0MDoyNCBFU1QgMTk5NAorICBSRUFETUUgdXBkYXRlZCB0byByZWZsZWN0IGEgbW9kaWZpY2F0 aW9uIGp1c3QgbWFkZSB0byBuZXRsaWIncworImR0b2EuYyBmcm9tIGZwIjoKKzk2YTk3LDEwNQor PiBBbHNvIGFkZCB0aGUgcnVsZQorPgorPiAJZHRvYS5vOiBkdG9hLmMKKz4gCQkkKENDKSAtYyAk KENGTEFHUykgLURNQUxMT0M9Y2thbGxvYyAtRElFRUUuLi4gZHRvYS5jCis+Cis+ICh3aXRob3V0 IHRoZSBpbml0aWFsIHRhYikgdG8gdGhlIG1ha2VmaWxlLCB3aGVyZSBJRUVFLi4uIGlzIG9uZSBv ZgorPiBJRUVFX01DNjhrLCBJRUVFXzgwODcsIFZBWCwgb3IgSUJNLCBkZXBlbmRpbmcgb24geW91 ciBtYWNoaW5lJ3MKKz4gYXJpdGhtZXRpYy4gIFNlZSB0aGUgY29tbWVudHMgbmVhciB0aGUgc3Rh cnQgb2YgZHRvYS5jLgorPgorCitTYXQgTWFyICA1IDA5OjQxOjUyIEVTVCAxOTk0CisgIENvbXBs YWluIGFib3V0IGZ1bmN0aW9ucyB3aXRoIHRoZSBuYW1lIG9mIGEgcHJldmlvdXNseSBkZWNsYXJl ZAorY29tbW9uIGJsb2NrICh3aGljaCBpcyBpbGxlZ2FsKS4KKyAgTmV3IG9wdGlvbiAtZCBzcGVj aWZpZXMgdGhlIGRpcmVjdG9yeSBmb3Igb3V0cHV0IC5jIGFuZCAuUCBmaWxlczsKK2YyYy4xIGFu ZCBmMmMuMXQgdXBkYXRlZC4gIFRoZSBmb3JtZXIgdW5kb2N1bWVudGVkIGRlYnVnIG9wdGlvbiAt ZG5ubgoraXMgbm93IC1Ebm5uLgorCitUaHUgTWFyIDEwIDEwOjIxOjQ0IEVTVCAxOTk0CisgIGxp YmY3NzogYWRkICN1bmRlZiBtaW4gYW5kICN1bmRlZiBtYXggbGluZXMgdG8gc19wYXVzLmMgc19z dG9wLmMKK2FuZCBzeXN0ZW1fLmM7IFZlcnNpb24uYyBub3QgY2hhbmdlZC4KKyAgbGliaTc3OiBh ZGQgLURQYWRfVURyZWFkIGxpbmVzIHRvIHVpby5jIGFuZCBleHBsYW5hdGlvbiB0byBSRUFETUU6 CisgICAgU29tZSBidWdneSBGb3J0cmFuIHByb2dyYW1zIHVzZSB1bmZvcm1hdHRlZCBkaXJlY3Qg SS9PIHRvIHdyaXRlCisgICAgYW4gaW5jb21wbGV0ZSByZWNvcmQgYW5kIGxhdGVyIHJlYWQgbW9y ZSBmcm9tIHRoYXQgcmVjb3JkIHRoYW4KKyAgICB0aGV5IGhhdmUgd3JpdHRlbi4gIEZvciByZWNv cmRzIG90aGVyIHRoYW4gdGhlIGxhc3QsIHRoZSB1bndyaXR0ZW4KKyAgICBwb3J0aW9uIG9mIHRo ZSByZWNvcmQgcmVhZHMgYXMgYmluYXJ5IHplcm9zLiAgVGhlIGxhc3QgcmVjb3JkIGlzCisgICAg YSBzcGVjaWFsIGNhc2U6IGF0dGVtcHRpbmcgdG8gcmVhZCBtb3JlIGZyb20gaXQgdGhhbiB3YXMg d3JpdHRlbgorICAgIGdpdmVzIGVuZC1vZi1maWxlIC0tIHdoaWNoIG1heSBoZWxwIG9uZSBmaW5k IGEgYnVnLiAgU29tZSBvdGhlcgorICAgIEZvcnRyYW4gSS9PIGxpYnJhcmllcyB0cmVhdCB0aGUg bGFzdCByZWNvcmQgbm8gZGlmZmVyZW50bHkgdGhhbgorICAgIG90aGVycyBhbmQgdGh1cyBnaXZl IG5vIGhlbHAgaW4gZmluZGluZyB0aGUgYnVnIG9mIHJlYWRpbmcgbW9yZQorICAgIHRoYW4gd2Fz IHdyaXR0ZW4uICBJZiB5b3Ugd2lzaCB0byBoYXZlIHRoaXMgYmVoYXZpb3IsIGNvbXBpbGUKKyAg ICB1aW8uYyB3aXRoIC1EUGFkX1VEcmVhZCAuCitWZXJzaW9uLmMgbm90IGNoYW5nZWQuCisKK1R1 ZSBNYXIgMjkgMTc6Mjc6NTQgRVNUIDE5OTQKKyAgQWRqdXN0IG1ha2VfcGFyYW0gc28gZGltZW5z aW9ucyBpbnZvbHZpbmcgbWluLCBtYXgsIGFuZCBvdGhlcgorY29tcGxpY2F0ZWQgY29uc3RhbnQg ZXhwcmVzc2lvbnMgZG8gbm90IHByb3Zva2UgZXJyb3IgbWVzc2FnZXMKK2Fib3V0IGFkanVzdGFi bGUgZGltZW5zaW9ucyBvbiBub24tYXJndW1lbnRzLgorICBGaXggYm90Y2ggaW50cm9kdWNlZCAx OSBKYW4gMTk5NDogImFkanVzdGFibGUgZGltZW5zaW9uIG9uIG5vbi0KK2FyZ3VtZW50IiBtZXNz YWdlcyBjb3VsZCBjYXVzZSBzb21lIHRoaW5ncyB0byBiZSBmcmVlZCB0d2ljZS4KKworVHVlIE1h eSAxMCAwNzo1NToxMiBFRFQgMTk5NAorICBUcml2aWFsIGNoYW5nZXMgdG8gZXhlYy5jLCBwMW91 dHB1dC5jLCBwYXJzZV9hcmdzLmMsIHByb2MuYywKK2FuZCBwdXRwY2MuYzogY2hhbmdlIGFyZ3Vt ZW50cyBmcm9tCisJdHlwZSBmb29bXQordG8KKwl0eXBlICpmb28KK2ZvciBjb25zaXN0ZW5jeSB3 aXRoIGRlZnMuaC4gIEZvciBtb3N0IGNvbXBpbGVycywgdGhpcyBtYWtlcyBubworZGlmZmVyZW5j ZS4KKworVGh1IEp1biAgMiAxMjoxODoxOCBFRFQgMTk5NAorICBGaXggYnVnIGluIGhhbmRsaW5n IEZPUk1BVCBzdGF0ZW1lbnRzIHRoYXQgaGF2ZSBhZGphY2VudCBjaGFyYWN0ZXIKKyhvciBIb2xs ZXJpdGgpIHN0cmluZ3M6IGFuIGV4dHJhbmVvdXMgXDAwMiBhcHBlYXJlZCBiZXR3ZWVuIHRoZQor c3RyaW5ncy4KKyAgbGliZjc3OiB1bmRlciAtRE5PX09ORVhJVCwgYXJyYW5nZSBmb3IgZl9leGl0 IHRvIGJlIGNhbGxlZCBqdXN0CitvbmNlOyBwcmV2aW91c2x5LCB1cG9uIGFibm9ybWFsIHRlcm1p bmF0aW9uIChpbmNsdWRpbmcgc3RvcCBzdGF0ZW1lbnRzKSwKK2l0IHdhcyBjYWxsZWQgdHdpY2Uu CisKK01vbiBKdW4gIDYgMTU6NTI6NTcgRURUIDE5OTQKKyAgbGliZjc3OiBBdm9pZCByZWZlcmVu Y2VzIHRvIFNJR0FCUlQgYW5kIFNJR0lPVCBpZiBuZWl0aGVyIGlzIGRlZmluZWQ7CitWZXJzaW9u LmMgbm90IGNoYW5nZWQuCisgIGxpYmk3NzogQWRkIGNhc3QgdG8gZGVmaW5pdGlvbiBvZiBlcnJm bCgpIGluIGZpby5oOyB0aGlzIG9ubHkgbWF0dGVycworb24gc3lzdGVtcyB3aXRoIHNpemVvZihp bnQpIDwgc2l6ZW9mKGxvbmcpLiAgVW5kZXIgLUROT05fVU5JWF9TVERJTywKK3VzZSBiaW5hcnkg bW9kZSBmb3IgZGlyZWN0IGZvcm1hdHRlZCBmaWxlcyAodG8gYXZvaWQgYW55IGNvbmZ1c2lvbgor Y29ubmVjdGVkIHdpdGggXG4gY2hhcmFjdGVycykuCisKK0ZyaSBKdW4gMTAgMTY6NDc6MzEgRURU IDE5OTQKKyAgRml4IGJ1ZyB1bmRlciAtQSBpbiBoYW5kbGluZyB1bnJlZmVyZW5jZWQgKGFuZCB1 bmRlY2xhcmVkKQorZXh0ZXJuYWwgYXJndW1lbnRzIGluIHN1YnJvdXRpbmVzIHdpdGggbXVsdGlw bGUgZW50cnkgcG9pbnRzLiAgRXhhbXBsZToKKwlzdWJyb3V0aW5lIG0oZmNuLGZ1dGlsKQorCWV4 dGVybmFsIGZjbixmdXRpbAorCWNhbGwgZmNuCisJZW50cnkgbWludGlvKGkxKSAhIChEX2ZwKTAg cmF0aGVyIHRoYW4gKFVfZnApMCBmb3IgZnV0aWwKKwllbmQKKworV2VkIEp1biAxNSAxMDozODox NCBFRFQgMTk5NAorICBBbGxvdyBjaGFyKGNvbnN0YW50IGV4cHJlc3Npb24pIGZ1bmN0aW9uIGlu IHBhcmFtZXRlciBkZWNsYXJhdGlvbnMuCisoVGhpcyB3YXMgcHJvYmFibHkgYnJva2VuIGluIHRo ZSBjaGFuZ2VzIG9mIDI5IE1hcmNoIDE5OTQuKQorCitGcmkgSnVsICAxIDIzOjU0OjAwIEVEVCAx OTk0CisgIE1pbm9yIGFkanVzdG1lbnRzIHRvIG1ha2VmaWxlIChydWxlIGZvciBmMmMuMSBjb21t ZW50ZWQgb3V0KSBhbmQKK3N5c2RlcC5oICgjdW5kZWYgS1JfaGVhZGVycyBpZiBfX1NURENfXyBp cyAjZGVmaW5lZCwgYW5kIGJhc2UgdGVzdAorZm9yIEFOU0lfTGlicmFyaWVzIGFuZCBBTlNJX1By b3RvdHlwZXMgb24gS1JfaGVhZGVycyByYXRoZXIgdGhhbgorX19TVERDX18pOyB2ZXJzaW9uLmMg dG91Y2hlZCBidXQgbm90IGNoYW5nZWQuCisgIGxpYmk3NzogYWRqdXN0IGZwLmggc28gbG9jYWwu aCBpcyBvbmx5IG5lZWRlZCB1bmRlciAtRFYxMDsKK1ZlcnNpb24uYyBub3QgY2hhbmdlZC4KKwor VHVlIEp1bCAgNSAwMzowNTo0NiBFRFQgMTk5NAorICBGaXggc2VnbWVudGF0aW9uIGZhdWx0IGlu CisJc3Vicm91dGluZSBmb28oYSxiLGspCisJZGF0YSBpLzEvCisJZG91YmxlIHByZWNpc2lvbiBh KGssMSkJISBzZXF1ZW5jZSBlcnJvcjogbXVzdCBwcmVjZWRlIGRhdGEKKwliID0gYShpLDEpCisJ ZW5kCisgIGxpYmk3NzogRml4IGJ1ZyAoaW50cm9kdWNlZCA2IEp1bmUgMTk5ND8pIGluIHJlb3Bl bmluZyBmaWxlcyB1bmRlcgorTk9OX1VOSVhfU1RESU8uCisgIEZpeCBzb21lIGVycm9yIG1lc3Nh Z2VzIGNhdXNlZCBieSBpbGxlZ2FsIEZvcnRyYW4uICBFeGFtcGxlczoKKyogMS4KKwl4KGkpID0g MCAgIU1pc3NpbmcgZGVjbGFyYXRpb24gZm9yIGFycmF5IHgKKwljYWxsIGYoeCkgIVNhaWQgSW1w b3NzaWJsZSBzdG9yYWdlIGNsYXNzIDggaW4gcm91dGluZSBta2FkZHIKKwllbmQJICAhTm93IHNh eXMgaW52YWxpZCB1c2Ugb2Ygc3RhdGVtZW50IGZ1bmN0aW9uIHgKKyogMi4KKwlmID0gZwkhTm8g ZGVjbGFyYXRpb24gZm9yIGc7IGJ5IGRlZmF1bHQgaXQncyBhIHJlYWwgdmFyaWFibGUKKwljYWxs IGcJIVNhaWQgaW52YWxpZCBjbGFzcyBjb2RlIDIgZm9yIGZ1bmN0aW9uIGcKKwllbmQJIU5vdyBz YXlzIGcgY2Fubm90IGJlIGNhbGxlZAorKiAzLgorCWludHJpbnNpYyBmb28JIUludmFsaWQgaW50 cmluc2ljIG5hbWUKKwlhID0gZm9vKGIpCSFTYWlkIGludHJjYWxsOiBiYWQgaW50cmdyb3VwIDAK KwllbmQJCSFOb3cganVzdCBjb21wbGFpbnMgYWJvdXQgbGluZSAxCisKK1R1ZSBKdWwgIDUgMTE6 MTQ6MjYgRURUIDE5OTQKKyAgRml4IGdsaXRjaCBpbiBoYW5kbGluZyBlcnJvbmVvdXMgc3RhdGVt ZW50IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KK0V4YW1wbGU6CisJYShqKGkpIC0gaSkgPSBhKGoo aSkgLSBpKSArIDEJISBiYWQgc3RhdGVtZW50IGZ1bmN0aW9uCisJY2FsbCBmb28oYSgzKSkJISBT YWlkIEltcG9zc2libGUgdHlwZSAwIGluIHJvdXRpbmUgbWt0bXBuCisJZW5kCQkhIE5vdyB3YXJu cyB0aGF0IGkgYW5kIGogYXJlIG5vdCB1c2VkCisKK1dlZCBKdWwgIDYgMTc6MzE6MjUgRURUIDE5 OTQKKyAgVHdlYWsgdGVzdCBmb3Igc3RhdGVtZW50IGZ1bmN0aW9ucyB0aGF0IChpbGxlZ2FsbHkp IGNhbGwgdGhlbXNlbHZlczsKK2YyYyB3aWxsIG5vdyBwcm9jZWVkIHRvIGNoZWNrIGZvciBvdGhl ciBlcnJvcnMsIHJhdGhlciB0aGFuIGJhaWxpbmcKK291dCBhdCB0aGUgZmlyc3QgcmVjdXJzaXZl IHN0YXRlbWVudCBmdW5jdGlvbiByZWZlcmVuY2UuCisgIFdhcm4gYWJvdXQgYnV0IHJldGFpbiBk aXZpc2lvbnMgYnkgMCAoaW5zdGVhZCBvZiBjYWxsaW5nIHRoZW0KKyJjb21waWxlciBlcnJvcnMi IGFuZCBxdWl0aW5nKS4gIE9uIElFRUUgbWFjaGluZXMsIHRoaXMgcGVybWl0cworCWRvdWJsZSBw cmVjaXNpb24gbmFuLCBuaW5mLCBwaW5mCisJbmFuID0gMC5kMC8wLmQwCisJcGluZiA9IDEuZDAv MC5kMAorCW5pbmYgPSAtMS5kMC8wLmQwCisJd3JpdGUoKiwqKSAnbmFuLCBwaW5mLCBuaW5mID0g JywgbmFuLCBwaW5mLCBuaW5mCisJZW5kCit0byBwcmludAorCW5hbiwgcGluZiwgbmluZiA9ICAg TmFOICBJbmZpbml0eSAtSW5maW5pdHkKKyAgbGliaTc3OiB3cmVmLmM6IHByb3RlY3Qgd2l0aCAj aWZkZWYgR09PRF9TUFJJTlRGX0VYUE9ORU5UIGFuCitvcHRpbWl6YXRpb24gdGhhdCByZXF1aXJl cyBleHBvbmVudHMgdG8gaGF2ZSAyIGRpZ2l0cyB3aGVuIDIgZGlnaXRzCitzdWZmaWNlLiAgbHdy aXRlLmMgd3NmZS5jIChsaXN0IGFuZCBmb3JtYXR0ZWQgZXh0ZXJuYWwgb3V0cHV0KToKK29taXQg JyAnIGNhcnJpYWdlLWNvbnRyb2wgd2hlbiBjb21waWxlZCB3aXRoIC1ET01JVF9CTEFOS19DQyAu CitPZmYtYnktb25lIGJ1ZyBmaXhlZCBpbiBjaGFyYWN0ZXIgY291bnQgZm9yIGxpc3Qgb3V0cHV0 IG9mIGNoYXJhY3Rlcgorc3RyaW5ncy4gIE9taXQgJy4nIGluIGxpc3QtZGlyZWN0ZWQgcHJpbnRp bmcgb2YgTmFuLCBJbmZpbml0eS4KKworTW9uIEp1bCAxMSAxMzowNTozMyBFRFQgMTk5NAorICBz cmMvZ3JhbS5jIHVwZGF0ZWQuCisKK1R1ZSBKdWwgMTIgMTA6MjQ6NDIgRURUIDE5OTQKKyAgbGli aTc3OiB3cnRmbXQuYzogdW5kZXIgRzExLjQsIHdyaXRlIDAuIGFzICIgIC4wMDAwICAgICIgcmF0 aGVyCit0aGFuICIgIC4wMDAwRSswMCIuCisKK1RodSBKdWwgMTQgMTc6NTU6NDYgRURUIDE5OTQK KyAgRml4IGdsaXRjaCBpbiBjaGFuZ2VzIG9mIDYgSnVseSAxOTk0IHRoYXQgY291bGQgY2F1c2Ug ZXJyb25lb3VzCisiZGl2aXNpb24gYnkgemVybyIgd2FybmluZ3MgKG9yIHdvcnNlKS4gIEV4YW1w bGU6CisJc3Vicm91dGluZSBmb28oYSxiKQorCXkgPSBiCisJYSA9IGEgLyB5CSEgZXJyb25lb3Vz IHdhcm5pbmcgb2YgZGl2aXNpb24gYnkgemVybworCWVuZAorCitNb24gQXVnICAxIDE2OjQ1OjE3 IEVEVCAxOTk0CisgIGxpYmk3NzogbHJlYWQuYyByc25lLmM6IGZvciBiZW5lZml0IG9mIHN5c3Rl bXMgd2l0aCBhIGJ1Z2d5IHN0ZGlvLmgsCitkZWNsYXJlIHVuZ2V0YyB3aGVuIG5laXRoZXIgS1Jf aGVhZGVycyBub3IgdW5nZXRjIGlzICNkZWZpbmVkLgorVmVyc2lvbi5jIG5vdCBjaGFuZ2VkLgor CitXZWQgQXVnICAzIDAxOjUzOjAwIEVEVCAxOTk0CisgIGxpYmk3NzogbHdyaXRlLmMgKGxpc3Qg b3V0cHV0KTogZG8gbm90IGluc2VydCBhIG5ld2xpbmUgd2hlbgorYXBwZW5kaW5nIGFuIG92ZXJz aXplIGl0ZW0gdG8gYW4gZW1wdHkgbGluZS4KKworTW9uIEF1ZyAgOCAwMDo1MTowMSBFRFQgMTk5 NAorICBGaXggYnVnIChpbnRyb2R1Y2VkIDMgRmViLiAxOTkzKSB0aGF0LCB1bmRlciAtaTIsIGtl cHQgTE9HSUNBTCoyCit2YXJpYWJsZXMgZnJvbSBhcHBlYXJpbmcgaW4gSU5RVUlSRSBzdGF0ZW1l bnRzLiAgVW5kZXIgLUkyLCBhbGxvdworTE9HSUNBTCo0IHZhcmlhYmxlcyB0byBhcHBlYXIgaW4g SU5RVUlSRS4gIEZpeCBpbnRyaW5zaWMgZnVuY3Rpb24KK0xFTiBzbyBpdCByZXR1cm5zIGEgc2hv cnQgdmFsdWUgdW5kZXIgLWkyLCBhIGxvbmcgdmFsdWUgb3RoZXJ3aXNlLgorICBleGVjLmM6IGZp eCBvYnNjdXJlIG1lbW9yeSBmYXVsdCBwb3NzaWJsZSB3aXRoIGJpemFycmUgKGFuZCBoaWdobHkK K2Vycm9uZW91cykgRE8tbG9vcCBzeW50YXguCisKK0ZyaSBBdWcgMTIgMTA6NDU6NTcgRURUIDE5 OTQKKyAgbGliaTc3OiBmaXggZ2xpdGNoIHRoYXQga2VwdCBFUlI9IChpbiBsaXN0LSBvciBmb3Jt YXQtZGlyZWN0ZWQgaW5wdXQpCitmcm9tIHdvcmtpbmcgYWZ0ZXIgYSBOQU1FTElTVCBSRUFELgor CitUaHUgQXVnIDI1IDEzOjU4OjI2IEVEVCAxOTk0CisgIFN1cHByZXNzIC1zIHdoZW4gLUMgaXMg c3BlY2lmaWVkLgorICBHaXZlIGZ1bGwgcGF0aG5hbWUgKG5ldGxpYkByZXNlYXJjaC5hdHQuY29t KSBmb3IgbmV0bGliIGluIHJlYWRtZSBhbmQKK3NyYy9SRUFETUUuCisKK1dlZCBTZXAgIDcgMjI6 MTM6MjAgRURUIDE5OTQKKyAgbGliaTc3OiB0eXBlc2l6ZS5jOiBhZGp1c3QgdG8gYWxsb3cgdHlw ZXMgTE9HSUNBTCoxLCBMT0dJQ0FMKjIsCitJTlRFR0VSKjEsIGFuZCAodW5kZXIgLURBbGxvd19U WVFVQUQpIElOVEVHRVIqOCBpbiBOQU1FTElTVHMuCisKK0ZyaSBTZXAgMTYgMTc6NTA6MTggRURU IDE5OTQKKyAgQ2hhbmdlIG5hbWUgYWRqdXN0bWVudCBmb3IgcmVzZXJ2ZWQgd29yZHM6IGluc3Rl YWQgb2YganVzdCBhcHBlbmRpbmcKKyJfIiAoYSBzaW5nbGUgdW5kZXJzY29yZSksIGFwcGVuZCAi X2FfIiB0byBsb2NhbCB2YXJpYWJsZSBuYW1lcyB0byBhdm9pZAordHJvdWJsZSB3aGVuIGEgY29t bW9uIGJsb2NrIGlzIG5hbWVkIGEgcmVzZXJ2ZWQgd29yZCBhbmQgdGhlIHNhbWUKK3Jlc2VydmVk IHdvcmQgaXMgYWxzbyBhIGxvY2FsIHZhcmlhYmxlIG5hbWUuICBFeGFtcGxlOgorCWNvbW1vbiAv Y29uc3QvIGEsYixjCisJcmVhbCBjb25zdCgzKQorCWVxdWl2YWxlbmNlIChjb25zdCgxKSxhKQor CWEgPSAxLjIzNAorCWVuZAorICBBcnJhbmdlIGZvciBpY2hhcigpIHRvIHRyZWF0IGNoYXJhY3Rl cnMgYXMgdW5zaWduZWQuCisgIGxpYmY3Nzogc19jbXAuYzogdHJlYXQgY2hhcmFjdGVycyBhcyB1 bnNpZ25lZCBpbiBjb21wYXJpc29ucy4KK1RoZXNlIGNoYW5nZXMgZm9yIHVuc2lnbmVkbmVzcyBv bmx5IG1hdHRlciBmb3Igc3RyaW5ncyB0aGF0IGNvbnRhaW4KK25vbi1BU0NJSSBjaGFyYWN0ZXJz LiAgTm93IGljaGFyKCkgc2hvdWxkIGFsd2F5cyBiZSA+PSAwLgorCitTYXQgU2VwIDE3IDExOjE5 OjMyIEVEVCAxOTk0CisgIGZjOiBzZXQgcmM9JD8gYmVmb3JlIGV4aXQgKHRvIGdldCBleGl0IGNv ZGUgcmlnaHQgaW4gdHJhcCBjb2RlKS4KKworTW9uIFNlcCAxOSAxNzo0OTo0MyBFRFQgMTk5NAor ICBsaWJmNzc6IHNfcGF1cy5jOiBmbHVzaCBzdGRlcnIgYWZ0ZXIgUEFVU0U7IGFkZCAjaWZkZWYg TVNET1Mgc3R1ZmYuCisgIGxpYmk3NzogUkVBRE1FOiBwb2ludCBvdXQgZ2VuZXJhbCBuZWVkIGZv ciAtRE1TRE9TIHVuZGVyIE1TLURPUy4KKworVHVlIFNlcCAyMCAxMTo0MjozMCBFRFQgMTk5NAor ICBGaXggYnVnIGluIGNvbXBhcmluZyBpZGVudGljYWxseSBuYW1lZCBjb21tb24gYmxvY2tzLCBp biB3aGljaAorYWxsIGNvbXBvbmVudHMgaGF2ZSB0aGUgc2FtZSBuYW1lcyBhbmQgdHlwZXMsIGJ1 dCBhdCBsZWFzdCBvbmUgaXMKK2RpbWVuc2lvbmVkICgxKSBhbmQgdGhlIG90aGVyIGlzIG5vdCBk aW1lbnNpb25lZC4gIEV4YW1wbGU6CisJc3Vicm91dGluZSBmb28KKwljb21tb24gL2FiLyBhCisJ YT0xLgkhISEgdHJhbnNsYXRlZCBjb3JyZWN0bHkgdG8gYWJfMS5hID0gKGZsb2F0KTEuOworCWVu ZAorCXN1YnJvdXRpbmUgZ29vCisJY29tbW9uIC9hYi8gYSgxKQorCWEoMSk9Mi4JISEhIHRyYW5z bGF0ZWQgZXJyb25lb3VzbHkgdG8gYWJfMS5hWzBdID0gKGZsb2F0KTIuCisJZW5kCisKK1R1ZSBT ZXAgMjcgMjM6NDc6MzQgRURUIDE5OTQKKyAgRml4IGJ1ZyBpbnRyb2R1Y2VkIDE2IFNlcHQuIDE5 OTQ6IGRvbid0IGFkZCBfYV8gdG8gQyBrZXl3b3JkcwordXNlZCBhcyBleHRlcm5hbCBuYW1lcy4g IEluIGZhY3QsIHJldHVybiB0byBlYXJsaWVyIGJlaGF2aW9yIG9mCithcHBlbmRpbmcgX18gdG8g QyBrZXl3b3JkcyB1bmxlc3MgdGhleSBhcmUgdXNlZCBhcyBleHRlcm5hbCBuYW1lcywKK2luIHdo aWNoIGNhc2UgdGhleSBnZXQganVzdCBvbmUgdW5kZXJzY29yZSBhcHBlbmRlZC4KKyAgQWRqdXN0 IGNvbnN0YW50IGhhbmRsaW5nIHNvIGludGVnZXIgYW5kIGxvZ2ljYWwgUEFSQU1FVEVScyByZXRh aW4KK3R5cGUgaW5mb3JtYXRpb24sIHBhcnRpY3VsYXJseSB1bmRlciAtSTIuICBFeGFtcGxlOgor CVNVQlJPVVRJTkUgRk9PCisJSU5URUdFUiBJCisJSU5URUdFUioxIEkxCisJSU5URUdFUioyIEky CisJSU5URUdFUio0IEk0CisJTE9HSUNBTCBMCisJTE9HSUNBTCoxIEwxCisJTE9HSUNBTCoyIEwy CisJTE9HSUNBTCo0IEw0CisJUEFSQU1FVEVSIChMPS5GQUxTRS4sIEwxPS5GQUxTRS4sIEwyPS5G QUxTRS4sIEw0PS5GQUxTRS4pCisJUEFSQU1FVEVSIChJPTAsSTE9MCxJMj0wLEk0PTApCisJQ0FM TCBEVU1NWShJLCBJMSwgSTIsIEk0LCBMLCBMMSwgTDIsIEw0KQorCUVORAorICBmMmMuMXQ6IENo YW5nZSBmXF4yYyB0byBmMmMgKG9taXQgaGFsZi1uYXJyb3cgc3BhY2UpIGluIGxpbmUgZm9sbG93 aW5nCisiLlNIIE5BTUUiIGZvciBiZW5lZml0IG9mIHN5c3RlbXMgdGhhdCBjYW5ub3QgY29wZSB3 aXRoIHRyb2ZmIGNvbW1hbmRzCitpbiB0aGlzIGNvbnRleHQuCisKK1dlZCBTZXAgMjggMTI6NDU6 MTkgRURUIDE5OTQKKyAgbGliZjc3OiBzX2NtcC5jIGZpeCBnbGl0Y2ggaW4gLURLUl9oZWFkZXJz IHZlcnNpb24gaW50cm9kdWNlZAorMTIgZGF5cyBhZ28uCisKK1RodSBPY3QgIDYgMDk6NDY6NTMg RURUIDE5OTQKKyAgbGliaTc3OiB1dGlsLmM6IG9taXQgZl9fbXZnYnQgKHdoaWNoIGlzIG5ldmVy IHVzZWQpLgorICBmMmMuaDogY2hhbmdlICJsb25nIiB0byAibG9uZyBpbnQiIHRvIGZhY2lsaXRh dGUgdGhlIGFkanVzdG1lbnRzCitieSBtZWFucyBvZiBzZWQgZGVzY3JpYmVkIGFib3ZlLiAgQ29t bWVudCBvdXQgdW51c2VkIHR5cGVkZWYgb2YgTG9uZy4KKworRnJpIE9jdCAyMSAxODowMjoyNCBF RFQgMTk5NAorICBsaWJmNzc6IGFkZCBzX2NhdG93LmMgYW5kIGFkanVzdCBSRUFETUUgdG8gcG9p bnQgb3V0IHRoYXQgY2hhbmdpbmcKKyJzX2NhdC5vIiB0byAic19jYXRvdy5vIiBpbiB0aGUgbWFr ZWZpbGUgd2lsbCBwZXJtaXQgdGhlIHRhcmdldCBvZiBhCitjb25jYXRlbmF0aW9uIHRvIGFwcGVh ciBvbiBpdHMgcmlnaHQtaGFuZCBzaWRlIChjb250cmFyeSB0byB0aGUKK0ZvcnRyYW4gNzcgU3Rh bmRhcmQgYW5kIGF0IHRoZSBjb3N0IG9mIHNvbWUgcnVuLXRpbWUgZWZmaWNpZW5jeSkuCisKK1dl ZCBOb3YgIDIgMDA6MDM6NTggRVNUIDE5OTQKKyAgQWRqdXN0IC1nIG91dHB1dCB0byBjb250YWlu IG9ubHkgb25lICNsaW5lIGxpbmUgcGVyIHN0YXRlbWVudCwKK2luc2VydGluZyBcIGJlZm9yZSB0 aGUgXG4gZW5kaW5nIGxpbmVzIGJyb2tlbiBiZWNhdXNlIG9mIHRoZWlyCitsZW5ndGggW3RoaXMg aW5zZXJ0aW9uIHdhcyByZWNhbnRlZCAxMCBEZWMuIDE5OTRdLiAgVGhpcyBjaGFuZ2UKK2FjY29t bW9kYXRlcyBhbiBpZGlvY3kgaW4gdGhlIEFOU0kvSVNPIEMgc3RhbmRhcmQsIHdoaWNoIGxlYXZl cwordW5kZWZpbmVkIHRoZSBiZWhhdmlvciBvZiAjbGluZSBsaW5lcyB0aGF0IG9jY3VyIHdpdGhp biB0aGUgYXJndW1lbnRzCit0byBhIG1hY3JvIGNhbGwuCisKK1dlZCBOb3YgIDIgMTQ6NDQ6Mjcg RVNUIDE5OTQKKyAgbGliaTc3OiB1bmRlciBjb21waWxhdGlvbiB3aXRoIC1EQUxXQVlTX0ZMVVNI LCBmbHVzaCBidWZmZXJzIGF0Cit0aGUgZW5kIG9mIGVhY2ggd3JpdGUgc3RhdGVtZW50LCBhbmQg dGVzdCAodmlhIHRoZSByZXR1cm4gZnJvbQorZmZsdXNoKSBmb3Igd3JpdGUgZmFpbHVyZXMsIHdo aWNoIGNhbiBiZSBjYXVnaHQgd2l0aCBhbiBFUlI9CitzcGVjaWZpZXIgaW4gdGhlIHdyaXRlIHN0 YXRlbWVudC4gIFRoaXMgZXh0cmEgZmx1c2hpbmcgc2xvd3MKK2V4ZWN1dGlvbiwgYnV0IGNhbiBh Ym9ydCBleGVjdXRpb24gb3IgYWx0ZXIgdGhlIGZsb3cgb2YgY29udHJvbAord2hlbiBhIGRpc2sg ZmlsbHMgdXAuCisgIGYyYy9zcmMvaW8uYzogQWRkIEVSUj0gdGVzdCB0byBlX3dzbGUgaW52b2Nh dGlvbiAoZW5kIG9mCitsaXN0LWRpcmVjdGVkIGV4dGVybmFsIG91dHB1dCkgdG8gY2F0Y2ggd3Jp dGUgZmFpbHVyZXMgd2hlbiBsaWJJNzcKK2lzIGNvbXBpbGVkIHdpdGggLURBTFdBWVNfRkxVU0gu CisKK1RodSBOb3YgIDMgMTA6NTk6MTMgRVNUIDE5OTQKKyAgRml4IGJ1ZyBpbiBoYW5kbGluZyBk aW1lbnNpb25zIGludm9sdmluZyBjZXJ0YWluIGludHJpbnNpYworZnVuY3Rpb25zIG9mIGNvbnN0 YW50IGV4cHJlc3Npb25zOiB0aGUgZXhwcmVzc2lvbnMsIHJhdGhlciB0aGFuCitwb2ludGVycyB0 byB0aGVtLCB3ZXJlIHBhc3NlZC4gIEV4YW1wbGU6CisgICAgICBzdWJyb3V0aW5lIHN1YnRlc3Qo bix4KQorICAgICAgcmVhbCB4KDIqKm4sbikgISBwb3dfaWkoMixuKSB3YXMgY2FsbGVkOyBub3cg aXQncyBwb3dfaWkoJmNfXzIsbikKKyAgICAgIHgoMiwyKT0zLgorICAgICAgZW5kCisKK1R1ZSBO b3YgIDggMjM6NTY6MzAgRVNUIDE5OTQKKyAgbWFsbG9jLmM6IHJlbW92ZSBhc3N1bXB0aW9uIHRo YXQgb25seSBtYWxsb2MgY2FsbHMgc2Jyay4gIFRoaXMKK2FwcGVhcnMgdG8gbWFrZSBtYWxsb2Mu YyB1c2VmdWwgb24gUlM2MDAwIHN5c3RlbXMuCisKK1N1biBOb3YgMTMgMTM6MDk6MzggRVNUIDE5 OTQKKyAgVHVybiBvZmYgY29uc3RhbnQgZm9sZGluZyBvZiBpbnRlZ2VycyB1c2VkIGluIGZsb2F0 aW5nLXBvaW50CitleHByZXNzaW9ucywgc28gdGhlIGFzc2lnbm1lbnQgaW4KKwlzdWJyb3V0aW5l IGZvbyh4KQorCWRvdWJsZSBwcmVjaXNpb24geAorCXggPSB4KjEwMDAwMDAqNTAwMDAwCisJZW5k CitpcyByZW5kZXJlZCBhcworCSp4ID0gKnggKiAxMDAwMDAwICogNTAwMDAwOworcmF0aGVyIHRo YW4gYXMKKwkqeCAqPSAxNzgzNzkzNjY0OworCitTYXQgRGVjIDEwIDE2OjMxOjQwIEVTVCAxOTk0 CisgIFN1cHBseSBhIGJldHRlciBlcnJvciBtZXNzYWdlICh0aGFuICJJbXBvc3NpYmxlIHR5cGUg MTQiKSBmb3IKKwlzdWJyb3V0aW5lIGZvbworCWZvbyA9IDMKKwllbmQKKyAgVW5kZXIgLWcsIGNv bnZleSBuYW1lIG9mIGluY2x1ZGVkIGZpbGVzIHRvICNsaW5lIGxpbmVzLgorICBSZWNhbnQgaW5z ZXJ0aW9uIG9mIFwgaW50cm9kdWNlZCAodW5kZXIgLWcpIDIgTm92LiAxOTk0LgorCitUaHUgRGVj IDE1IDE0OjMzOjU1IEVTVCAxOTk0CisgIE5ldyBjb21tYW5kLWxpbmUgb3B0aW9uIC1JZGlyIHNw ZWNpZmllcyBkaXJlY3RvcmllcyBpbiB3aGljaCB0bworbG9vayBmb3Igbm9uLWFic29sdXRlIGlu Y2x1ZGUgZmlsZXMgKGFmdGVyIGxvb2tpbmcgaW4gdGhlIGRpcmVjdG9yeQorb2YgdGhlIGN1cnJl bnQgaW5wdXQgZmlsZSkuICBUaGVyZSBjYW4gYmUgc2V2ZXJhbCAtSWRpciBvcHRpb25zLCBlYWNo CitzcGVjaWZ5aW5nIG9uZSBkaXJlY3RvcnkuICBBbGwgLUlkaXIgb3B0aW9ucyBhcmUgY29uc2lk ZXJlZCwgZnJvbQorbGVmdCB0byByaWdodCwgdW50aWwgYSBzdWl0YWJseSBuYW1lZCBmaWxlIGlz IGZvdW5kLiAgVGhlIC1JMiBhbmQgLUk0Citjb21tYW5kLWxpbmUgb3B0aW9ucyBoYXZlIHByZWNl ZGVuY2UsIHNvIGRpcmVjdG9yaWVzIG5hbWVkIDIgb3IgNAorbXVzdCBiZSBzcGVsbGVkIGJ5IHNv bWUgY2lyY3VtbG9jYXRpb24sIHN1Y2ggYXMgLUkuLzIgLgorICBmMmMucHMgdXBkYXRlZCB0byBt ZW50aW9uIHRoZSBuZXcgLUlkaXIgb3B0aW9uLCBjb3JyZWN0IGEgdHlwbywKK2FuZCBicmluZyB0 aGUgbWFuIHBhZ2UgYXQgdGhlIGVuZCB1cCB0byBkYXRlLgorICBsZXguYzogZml4IGJ1ZyBpbiBy ZWFkaW5nIGxpbmUgbnVtYmVycyBpbiAjbGluZSBsaW5lcy4KKyAgZmMgdXBkYXRlZCB0byBwYXNz IC1JZGlyIG9wdGlvbnMgdG8gZjJjLgorCitUaHUgRGVjIDI5IDA5OjQ4OjAzIEVTVCAxOTk0Cisg IEZpeCBidWcgKGUuZy4sIGFkZHJlc3NpbmcgZmF1bHQpIGluIGRpYWdub3NpbmcgaW5jb25zaXN0 ZW5jeSBpbgordGhlIHR5cGUgb2YgZnVuY3Rpb24gZXRhIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBs ZToKKwlmdW5jdGlvbiBmb28oYzEsYzIpCisJZG91YmxlIGNvbXBsZXggZm9vLGMxLGMyCisJZG91 YmxlIHByZWNpc2lvbiBldGEKKwlmb28gPSBldGEoYzEsYzIpCisJZW5kCisJZnVuY3Rpb24gZXRh KGMxLGMyKQorCWRvdWJsZSBjb21wbGV4IGV0YSxjMSxjMgorCWV0YSA9IGMxKmMyCisJZW5kCisK K01vbiBKYW4gIDIgMTM6Mjc6MjYgRVNUIDE5OTUKKyAgUmV0YWluIGNhc3RzIGZvciBTTkdMIChv ciBGTE9BVCkgdGhhdCB3ZXJlIGVycm9uZW91c2x5IG9wdGltaXplZAorYXdheS4gIEV4YW1wbGU6 CisJc3Vicm91dGluZSBmb28oYSxiKQorCWRvdWJsZSBwcmVjaXNpb24gYSxiCisJYSA9IGZsb2F0 KGIpCSEgbm93IHJlbmRlcmVkIGFzICphID0gKHJlYWwpICgqYik7CisJZW5kCisgIFVzZSBmbG9h dCAocmF0aGVyIHRoYW4gZG91YmxlKSB0ZW1wb3JhcmllcyBpbiBjZXJ0YWluIGV4cHJlc3Npb25z CitvZiB0eXBlIGNvbXBsZXguICBFeGFtcGxlOiB0aGUgdGVtcG9yYXJ5IGZvciBzbmdsKGIpIGlu CisJY29tcGxleCBhCisJZG91YmxlIHByZWNpc2lvbiBiCisJYSA9IHNuZ2woYikgLSAoMy4sNC4p CitpcyBub3cgb2YgdHlwZSBmbG9hdC4KKworRnJpIEphbiAgNiAwMDowMDoyNyBFU1QgMTk5NQor ICBBZGp1c3QgaW50cmluc2ljIGZ1bmN0aW9uIGNtcGx4IHRvIGFjdCBhcyBkY21wbHggKHJldHVy bmluZworZG91YmxlIGNvbXBsZXggcmF0aGVyIHRoYW4gY29tcGxleCkgaWYgZWl0aGVyIG9mIGl0 cyBhcmdzIGlzIG9mCit0eXBlIGRvdWJsZSBwcmVjaXNpb24uICBUaGUgZG91YmxlIHRlbXBvcmFy aWVzIHVzZWQgcHJpb3IgdG8gMiBKYW4uCisxOTk1IHByZXZpb3VzbHkgZ2F2ZSBpdCB0aGlzIHNh bWUgYmVoYXZpb3IuCisKK1RodSBKYW4gMTIgMTI6MzE6MzUgRVNUIDE5OTUKKyAgQWRqdXN0IC1r cmQgdG8gdXNlIGRvdWJsZSB0ZW1wb3JhcmllcyBpbiBzb21lIGNhbGN1bGF0aW9ucyBvZgordHlw ZSBjb21wbGV4LgorICBsaWJmNzc6IHBvd19bZGhpcXJ6XVtoaXFdLmM6IGFkanVzdCB4KippIHRv IHdvcmsgb24gbWFjaGluZXMKK3RoYXQgc2lnbi1leHRlbmQgcmlnaHQgc2hpZnRzIHdoZW4gaSBp cyB0aGUgbW9zdCBuZWdhdGl2ZSBpbnRlZ2VyLgorCitXZWQgSmFuIDI1IDAwOjE0OjQyIEVTVCAx OTk1CisgIEZpeCBtZW1vcnkgZmF1bHQgaW4gaGFuZGxpbmcgb3ZlcmxhcHBpbmcgaW5pdGlhbGl6 YXRpb25zIGluCisJYmxvY2sgZGF0YQorCWNvbW1vbiAvem90LyBkCisJZG91YmxlIHByZWNpc2lv biBkKDMpCisJY2hhcmFjdGVyKjYgdig0KQorCXJlYWwgcigyKQorCWVxdWl2YWxlbmNlIChkKDMp LHIoMSkpLCAoZCgxKSx2KDEpKQorCWRhdGEgdi8nYWJjZGVmJywgJ2doaWprbCcsICdtbm9wcXIn LCAnc3R1dnd4Jy8KKwlkYXRhIHIvNC4sNS4vCisJZW5kCisgIG5hbWVzLmM6IGFkZCAiZmFyIiwg Imh1Z2UiLCAibmVhciIgdG8gY19rZXl3b3JkcyAoY2F1c2luZyB0aGVtCit0byBoYXZlIF9fIGFw cGVuZGVkIHdoZW4gdXNlZCBhcyBsb2NhbCB2YXJpYWJsZXMpLgorICBsaWJmNzc6IGFkZCBzX2Nv cHlvdy5jLCBhbiBhbHRlcm5hdGl2ZSB0byBzX2NvcHkuYyBmb3IgaGFuZGxpbmcKKyhpbGxlZ2Fs KSBjaGFyYWN0ZXIgYXNzaWdubWVudHMgd2hlcmUgdGhlIHJpZ2h0LSBhbmQgbGVmdC1oYW5kCitz aWRlcyBvdmVybGFwLCBhcyBpbiBhKDI6NCkgPSBhKDEaOjMpLgorCitUaHUgSmFuIDI2IDE0OjIx OjE5IEVTVCAxOTk1CisgIGxpYmY3Nzogcm9sbCBzX2NhdG93LmMgYW5kIHNfY29weW93LmMgaW50 byBzX2NhdC5jIGFuZCBzX2NvcHkuYywKK3Jlc3BlY3RpdmVseSwgYWxsb3dpbmcgdGhlIGxlZnQt aGFuZCBzaWRlIG9mIGEgY2hhcmFjdGVyIGFzc2lnbm1lbnQKK3RvIGFwcGVhciBvbiBpdHMgcmln aHQtaGFuZCBzaWRlIHVubGVzcyBzX2NhdC5jIGFuZCBzX2NvcHkuYyBhcmUKK2NvbXBpbGVkIHdp dGggLUROT19PVkVSV1JJVEUgKHdoaWNoIGlzIGEgYml0IG1vcmUgZWZmaWNpZW50KS4KK0ZvcnRy YW4gNzcgZm9yYmlkcyB0aGUgbGVmdC1oYW5kIHNpZGUgZnJvbSBwYXJ0aWNpcGF0aW5nIGluIHRo ZQorcmlnaHQtaGFuZCBzaWRlIChvZiBhIGNoYXJhY3RlciBhc3NpZ25tZW50KSwgYnV0IEZvcnRy YW4gOTAgYWxsb3dzIGl0LgorICBsaWJpNzc6IHdyZWYuYzogZml4IGdsaXRjaCBpbiBwcmludGlu ZyB0aGUgZXhwb25lbnQgb2YgMCB3aGVuCitHT09EX1NQUklOVEZfRVhQT05FTlQgaXMgbm90ICNk ZWZpbmVkLgorCitGcmkgSmFuIDI3IDEyOjI1OjQxIEVTVCAxOTk1CisgIFVuZGVyIC1DKysgLWVj IChvciAtQysrIC1lMWMpLCBzdXJyb3VuZCBzdHJ1Y3QgZGVjbGFyYXRpb25zIHdpdGgKKwkjaWZk ZWYgX19jcGx1c3BsdXMKKwlleHRlcm4gIkMiIHsKKwkjZW5kaWYKK2FuZAorCSNpZmRlZiBfX2Nw bHVzcGx1cworCX0KKwkjZW5kaWYKKyhUaGlzIGlzbid0IG5lZWRlZCB3aXRoIGNmcm9udCwgYnV0 IGFwcGFyZW50bHkgaXMgbmVjZXNzYXJ5IHdpdGgKK3NvbWUgb3RoZXIgQysrIGNvbXBpbGVycy4p CisgIGxpYmY3NzogbWlub3IgdHdlYWsgdG8gc19jb3B5LmM6IGNvcHkgZm9yd2FyZCB3aGVuZXZl ciBwb3NzaWJsZQorKGZvciBiZXR0ZXIgY2FjaGUgYmVoYXZpb3IpLgorCitXZWQgRmViICAxIDEw OjI2OjEyIEVTVCAxOTk1CisgIENvbXBsYWluIGFib3V0IHBhcmFtZXRlciBzdGF0ZW1lbnRzIHRo YXQgYXNzaWduIHZhbHVlcyB0byBkdW1teQorYXJndW1lbnRzLCBhcyBpbgorCXN1YnJvdXRpbmUg Zm9vKHgpCisJcGFyYW1ldGVyKHggPSAzLjQpCisJZW5kCisKK1NhdCBGZWIgIDQgMjA6MjI6MDIg RVNUIDE5OTUKKyAgZmM6IG9taXQgImxpYj0vbGliL251bS9saWIubG8iLgorCitXZWQgRmViICA4 IDA4OjQxOjE0IEVTVCAxOTk1CisgIE1pbm9yIGNoYW5nZXMgdG8gZXhlYy5jLCBwdXRwY2MuYyB0 byBhdm9pZCAiYmFkIHRhZyIgb3IgImVycm9yCitpbiBmcmV4cHIiIHdpdGggY2VydGFpbiBpbnZh bGlkIEZvcnRyYW4uCisKK1NhdCBGZWIgMTEgMDg6NTc6MzkgRVNUIDE5OTUKKyAgQ29tcGxhaW4g YWJvdXQgaW50ZWdlciBvdmVyZmxvd3MsIGJvdGggaW4gc2ltcGxpZnlpbmcgaW50ZWdlcgorZXhw cmVzc2lvbnMsIGFuZCBpbiBjb252ZXJ0aW5nIGludGVnZXJzIGZyb20gZGVjaW1hbCB0byBiaW5h cnkuCisgIEZpeCBhIG1lbW9yeSBmYXVsdCBpbiBwdXRjeDEoKSBhc3NvY2lhdGVkIHdpdGggaW52 YWxpZCBpbnB1dC4KKworVGh1IEZlYiAyMyAxMToyMDo1OSBFU1QgMTk5NQorICBPbWl0IE1BWFRP S0VOTEVOOyByZWFsbG9jIHRva2VuIGlmIG5lY2Vzc2FyeSAodG8gaGFuZGxlIHZlcnkgbG9uZwor c3RyaW5ncykuCisKK0ZyaSBGZWIgMjQgMTE6MDI6MDAgRVNUIDE5OTUKKyAgbGliaTc3OiBpaW8u Yzogel9nZXRjOiBpbnNlcnQgKHVuc2lnbmVkIGNoYXIgKikgdG8gYWxsb3cgaW50ZXJuYWwKK3Jl YWRpbmcgb2YgY2hhcmFjdGVycyB3aXRoIGhpZ2gtYml0IHNldCAob24gbWFjaGluZXMgdGhhdCBz aWduLWV4dGVuZAorY2hhcmFjdGVycykuCisKK1R1ZSBNYXIgMTQgMTg6MjI6NDIgRVNUIDE5OTUK KyAgRml4IGdsaXRjaCAoaW4gaW8uYykgaW4gaGFuZGxpbmcgMC1sZW5ndGggc3RyaW5ncyBpbiBm b3JtYXQKK3N0YXRlbWVudHMsIGFzIGluCisJd3JpdGUoKiwxMCkKKyAxMAlmb3JtYXQoJyBhYics JycsJ2NkJykKKyAgbGliaTc3OiBscmVhZC5jIGFuZCByc2ZlLmM6IGFkanVzdCBzX3JzbGUgYW5k IHNfcnNmZSB0byBjaGVjayBmb3IKK2VuZC1vZi1maWxlICh0byBwcmV2ZW50IGluZmluaXRlIGxv b3BzIHdpdGggZW1wdHkgcmVhZCBzdGF0ZW1lbnRzKS4KKworV2VkIE1hciAyMiAxMDowMTo0NiBF U1QgMTk5NQorICBmMmMucHM6IGFkanVzdCBkaXNjdXNzaW9uIG9mIC1QIG9uIHAuIDcgdG8gcmVm bGVjdCBhIGNoYW5nZSBtYWRlCiszIEZlYi4gMTk5MzogLVAgbm8gbG9uZ2VyIGltcGxpZXMgLUEu CisKK0ZyaSBBcHIgMjEgMTg6MzU6MDAgRURUIDE5OTUKKyAgZmMgc2NyaXB0OiByZW1vdmUgYWJz b2x1dGUgcGF0aHMgKHNpbmNlIFBBVEggc3BlY2lmaWVzIG9ubHkgc3RhbmRhcmQKK3BsYWNlcyku ICBPbiBtb3N0IHN5c3RlbXMsIGl0J3Mgc3RpbGwgbmVjZXNzYXJ5IHRvIGFkanVzdCB0aGUgUEFU SAorYXNzaWdubWVudCBhdCB0aGUgc3RhcnQgb2YgZmMgdG8gZml0IHRoZSBsb2NhbCBjb252ZW50 aW9ucy4KKworRnJpIE1heSAyNiAxMDowMzoxNyBFRFQgMTk5NQorICBmYyBzY3JpcHQ6IGFkZCBy ZWNvZ25pdGlvbiBvZiAtUCBhbmQgLlAgZmlsZXMuCisgIGxpYmk3NzogaWlvLmM6IHpfd25ldzog Zml4IGJ1ZyBpbiBoYW5kbGluZyBUIGZvcm1hdCBpdGVtcyBpbiBpbnRlcm5hbAord3JpdGVzIHdo b3NlIGxhc3QgaXRlbSBpcyB3cml0dGVuIHRvIGFuIGVhcmxpZXIgcG9zaXRpb24gdGhhbiBzb21l CitwcmV2aW91cyBpdGVtLgorCitXZWQgTWF5IDMxIDExOjM5OjQ4IEVEVCAxOTk1CisgIGxpYmY3 NzogYWRkZWQgc3Vicm91dGluZSBleGl0KHJjKSAod2l0aCBpbnRlZ2VyIHJldHVybiBjb2RlIHJj KSwKK3doaWNoIHdvcmtzIGxpa2UgYSBzdG9wIHN0YXRlbWVudCBidXQgc3VwcGxpZXMgcmMgYXMg dGhlIHByb2dyYW0ncworcmV0dXJuIGNvZGUuCisKK0ZyaSBKdW4gIDIgMTE6NTY6NTAgRURUIDE5 OTUKKyAgRml4IG1lbW9yeSBmYXVsdCBpbgorCXBhcmFtZXRlciAoeD0yLikKKwlkYXRhIHggLzIu LworCWVuZAorVGhpcyBub3cgZWxpY2l0cyB0d28gZXJyb3IgbWVzc2FnZXM7IHRoZSBzZWNvbmQg KCJ0b28gbWFueQoraW5pdGlhbGl6ZXJzIiksIHRob3VnaCBub3QgZGVzaXJhYmxlLCBzZWVtcyBo YXJkIHRvIGVsaW1pbmF0ZQord2l0aG91dCBjb25zaWRlcmFibGUgaGFzc2xlLgorCitNb24gSnVs IDE3IDIzOjI0OjIwIEVEVCAxOTk1CisgIEZpeCBib3RjaCBpbiBzaW1wbGlmeWluZyBjb25zdGFu dHMgaW4gY2VydGFpbiBjb21wbGV4CitleHByZXNzaW9ucy4gIEV4YW1wbGU6CisJc3Vicm91dGlu ZSBmb28ocyx6KQorCWRvdWJsZSBjb21wbGV4IHoKKwlkb3VibGUgcHJlY2lzaW9uIHMsIE0sIFAK KwlwYXJhbWV0ZXIgKCBNID0gMTAwLmQwLCBQID0gMi5kMCApCisJeiA9IE0gKiBNICAvIHMgICog ZGNtcGx4ICgxLmQwLCBQL00pCisqKiogVGhlIGltYWdpbmFyeSBwYXJ0IG9mIHogd2FzIG1pc2Nv bXB1dGVkICoqKgorCWVuZAorICBVbmRlciAtZXh0LCBjb21wbGFpbiBhYm91dCBub25pbnRlZ3Jh bCBkaW1lbnNpb25zLgorCitGcmkgSnVsIDIxIDExOjE4OjM2IEVEVCAxOTk1CisgIEZpeCBnbGl0 Y2ggb24gbGluZSAxNTkgb2YgaW5pdC5jOiBjaGFuZ2UKKwkiKHNob3J0bG9naWNhbCAqKTApIiwK K3RvCisJIihzaG9ydGxvZ2ljYWwgKikwIiwKK1RoaXMgYWZmZWN0cyBtdWx0aXBsZSBlbnRyeSBw b2ludHMgd2hlbiBzb21lIGJ1dCBub3QgYWxsIGhhdmUKK2FyZ3VtZW50cyBvZiB0eXBlIGxvZ2lj YWwqMi4KKyAgbGliaTc3OiBhZGp1c3QgbHdyaXRlLmMsIHdyZWYuYywgd3J0Zm10LmMgc28gY29t cGlsaW5nIHdpdGgKKy1EV0FOVF9MRUFEXzAgY2F1c2VzIGZvcm1hdHRlZCB3cml0ZXMgb2YgZmxv YXRpbmctcG9pbnQgbnVtYmVycyBvZgorbWFnbml0dWRlIDwgMSB0byBoYXZlIGFuIGV4cGxpY2l0 IDAgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50IChpZiB0aGUKK2ZpZWxkLXdpZHRoIHBlcm1pdHMg aXQpLiAgTm90ZSB0aGF0IHRoZSBGb3J0cmFuIDc3IFN0YW5kYXJkIGxlYXZlcyBpdAordXAgdG8g dGhlIGltcGxlbWVudGF0aW9uIHdoZXRoZXIgdG8gc3VwcGx5IHRoZXNlIHN1cGVyZmx1b3VzIHpl cm9zLgorCitUdWUgQXVnICAxIDA5OjI1OjU2IEVEVCAxOTk1CisgIFBlcm1pdCByZWFsIChvciBk b3VibGUgcHJlY2lzaW9uKSBwYXJhbWV0ZXJzIGluIGRpbWVuc2lvbiBleHByZXNzaW9ucy4KKwor TW9uIEF1ZyAgNyAwODowNDowMCBFRFQgMTk5NQorICBBcHBlbmQgIl9lcXYiIHJhdGhlciB0aGFu IGp1c3QgIl8iIHRvIG5hbWVzIHRoYXQgdGhhdCBhcHBlYXIgaW4KK0VRVUlWQUxFTkNFIHN0YXRl bWVudHMgYXMgd2VsbCBhcyBzdHJ1Y3RzIGluIGYyYy5oICh0byBhdm9pZCBhCitjb25mbGljdCB3 aGVuIHRoZXNlIG5hbWVzIGFsc28gbmFtZSBjb21tb24gYmxvY2tzKS4KKworVHVlIEF1ZyAgOCAx Mjo0OTowMiBFRFQgMTk5NQorICBNb2RpZnkgeWVzdGVyZGF5J3MgY2hhbmdlOiBtZXJnZSBzdF9m aWVsZHMgd2l0aCBjX2tleXdvcmRzLCB0bworY29wZSB3aXRoIGVxdWl2YWxlbmNlcyBpbnRyb2R1 Y2VkIHRvIHBlcm1pdCBpbml0aWFsaXppbmcgbnVtZXJpYwordmFyaWFibGVzIHdpdGggY2hhcmFj dGVyIGRhdGEuICBEQVRBIHN0YXRlbWVudHMgY2F1c2luZyB0aGVzZQorZXF1aXZhbGVuY2VzIGNh biBhcHBlYXIgYWZ0ZXIgZXhlY3V0YWJsZSBzdGF0ZW1lbnRzLCBzbyB0aGUgb25seQorc2FmZSBj b3Vyc2UgaXMgdG8gcmVuYW1lIGFsbCBsb2NhbCB2YXJpYWJsZSB3aXRoIG5hbWVzIGluIHRoZQor Zm9ybWVyIHN0X2ZpZWxkcyBsaXN0LiAgVGhpcyBoYXMgdGhlIHVuZm9ydHVuYXRlIHNpZGUgZWZm ZWN0IHRoYXQKK3RoZSBjb21tb24gbG9jYWwgdmFyaWFibGUgImkiIHdpbGwgaGVuY2Vmb3J0aCBi ZSByZW5hbWVkICJpX18iLgorCitXZWQgQXVnIDMwIDAwOjE5OjMyIEVEVCAxOTk1CisgIGxpYmY3 NzogYWRkIEY3N19hbG9jLCBub3cgdXNlZCBpbiBzX2NhdCBhbmQgc3lzdGVtXyAodG8gYWxsb2Nh dGUKK21lbW9yeSBhbmQgY2hlY2sgZm9yIGZhaWx1cmUgaW4gc28gZG9pbmcpLgorICBsaWJpNzc6 IGltcHJvdmUgTVNET1MgbG9naWMgaW4gYmFja3NwYWNlLmMuCisKK1dlZCBTZXAgIDYgMDk6MDY6 MTkgRURUIDE5OTUKKyAgbGliZjc3OiBGaXggcmV0dXJuIHR5cGUgb2Ygc3lzdGVtXyAoaW50ZWdl cikgdW5kZXIgLURLUl9oZWFkZXJzLgorICBsaWJpNzc6IE1vdmUgc29tZSBmX2luaXQgY2FsbHMg YXJvdW5kIGZvciBwZW9wbGUgd2hvIGRvIG5vdCB1c2UKK2xpYkY3NydzIG1haW4oKTsgbm93IG9w ZW4gYW5kIG5hbWVsaXN0IHJlYWQgc3RhdGVtZW50cyB0aGF0IGFyZSB0aGUKK2ZpcnN0IEkvTyBz dGF0ZW1lbnRzIGV4ZWN1dGVkIHNob3VsZCB3b3JrIHJpZ2h0IGluIHRoYXQgY29udGV4dC4KK0Fk anVzdCBuYW1lbGlzdCBpbnB1dCB0byB0cmVhdCBhIHN1YnNjcmlwdGVkIG5hbWUgd2hvc2Ugc3Vi c2NyaXB0cyBkbworbm90IGludm9sdmUgY29sb25zIHNpbWlsYXJseSB0byB0aGUgbmFtZSB3aXRo b3V0IGEgc3Vic2NyaXB0OiAgYWNjZXB0CitzZXZlcmFsIHZhbHVlcywgc3RvcmVkIGluIHN1Y2Nl c3NpdmUgZWxlbWVudHMgc3RhcnRpbmcgYXQgdGhlCitpbmRpY2F0ZWQgc3Vic2NyaXB0LiAgQWRq dXN0IG5hbWVsaXN0IG91dHB1dCB0byBxdW90ZSBjaGFyYWN0ZXIKK3N0cmluZ3MgKGF2b2lkaW5n IGNvbmZ1c2lvbiB3aXRoIGFycmF5cyBvZiBjaGFyYWN0ZXIgc3RyaW5ncykuCisKK1RodSBTZXAg IDcgMDA6MzY6MDQgRURUIDE5OTUKKyAgRml4IGdsaXRjaCBpbiBpbnRlZ2VyKjggZXhwb25lbnRp YXRpb24gZnVuY3Rpb246IGl0J3MgcG93X3FxLCBub3QKK3Bvd19xaS4KKyAgbGliaTc3OiBmaXgg c29tZSBidWdzIHdpdGggLURBbGxvd19UWVFVQUQgKGZvciBpbnRlZ2VyKjgpOyB3aGVuCitsb29r aW5nIGZvciB0aGUgJm5hbWUgdGhhdCBzdGFydHMgTkFNRUxJU1QgaW5wdXQsIHRyZWF0IGxpbmVz IHdob3NlCitmaXJzdCBub25ibGFuayBjaGFyYWN0ZXIgaXMgc29tZXRoaW5nIG90aGVyIHRoYW4g JiwgJCwgb3IgPyBhcworY29tbWVudCBsaW5lcyAoaS5lLiwgaWdub3JlIHRoZW0pLCB1bmxlc3Mg cnNuZS5jIGlzIGNvbXBpbGVkIHdpdGgKKy1ETm9fTmFtZWxpc3RfQ29tbWVudHMuCisKK1RodSBT ZXAgIDcgMDk6MDU6NDAgRURUIDE5OTUKKyAgbGliaTc3OiByZGZtdC5jOiAgb25lIG1vcmUgdHdl YWsgZm9yIC1EQWxsb3dfVFlRVUFELgorCitUdWUgU2VwIDE5IDAwOjAzOjAyIEVEVCAxOTk1Cisg IEFkanVzdCBoYW5kbGluZyBvZiBmbG9hdGluZy1wb2ludCBzdWJzY3JpcHQgYm91bmRzIChhIHF1 ZXN0aW9uYWJsZQorZjJjIGV4dGVuc2lvbikgc28gc3Vic2NyaXB0cyBpbiB0aGUgZ2VuZXJhdGVk IEMgYXJlIG9mIGludGVncmFsIHR5cGUuCisgIE1vdmUgI2RlZmluZSBvZiByb3VuZHVwIHRvIHBy b2MuYyAod2hlcmUgaXRzIHVzZSBpcyBjb21tZW50ZWQgb3V0KTsKK3ZlcnNpb24uYyBsZWZ0IGF0 IDE5OTUwOTE4LgorCitXZWQgU2VwIDIwIDE3OjI0OjE5IEVEVCAxOTk1CisgIEZpeCBidWcgaW4g aGFuZGxpbmcgaWNoYXIoKSB1bmRlciAtaC4KKworVGh1IE9jdCAgNSAwNzo1Mjo1NiBFRFQgMTk5 NQorICBsaWJpNzc6IHdydGZtdC5jOiBmaXggYnVnIHdpdGggdCBlZGl0aW5nIChmX19jdXJzb3Ig d2FzIG5vdCBhbHdheXMKK3plcm9lZCBpbiBtdl9jdXIpLgorCitUdWUgT2N0IDEwIDEwOjQ3OjU0 IEVEVCAxOTk1CisgIFVuZGVyIC1leHQsIHdhcm4gYWJvdXQgWCoqLVkgYW5kIFgqKitZLiAgRm9s bG93aW5nIHRoZSBvcmlnaW5hbCBmNzcsCitmMmMgdHJlYXRzIHRoZXNlIGFzIFgqKigtWSkgYW5k IFgqKigrWSksIHJlc3BlY3RpdmVseS4gIChUaGV5IGFyZSBub3QKK2FsbG93ZWQgYnkgdGhlIG9m ZmljaWFsIEZvcnRyYW4gNzcgU3RhbmRhcmQuKSAgU29tZSBGb3J0cmFuIGNvbXBpbGVycworZ2l2 ZSBhIGJpemFycmUgaW50ZXJwcmV0YXRpb24gdG8gbGFyZ2VyIGNvbnRleHRzLCBtYWtpbmcgbXVs dGlwbGljYXRpb24KK25vbmNvbW11dGF0aXZlOiB0aGV5IHRyZWF0IFgqKi1ZKlogYXMgWCoqKC1Z KlopIHJhdGhlciB0aGFuIFgqKigtWSkqWiwKK3doaWNoLCBmb2xsb3dpbmcgdGhlIHJ1bGVzIG9m IEZvcnRyYW4gNzcsIGlzIHRoZSBzYW1lIGFzIChYKiooLVkpKSpaLgorCitXZWQgT2N0IDExIDEz OjI3OjA1IEVEVCAxOTk1CisgIGxpYmk3NzogbW92ZSBkZWZzIG9mIGZfX2hpd2F0ZXIsIGZfX3N2 aWMsIGZfX2ljcHRyIGZyb20gd3J0Zm10LmMKK3RvIGVyci5jLiAgVGhpcyBzaG91bGQgd29yayBh cm91bmQgYSBwcm9ibGVtIHdpdGggYnVnZ3kgbG9hZGVycyBhbmQKK3NvbWV0aW1lcyBsZWFkcyB0 byBzbWFsbGVyIGV4ZWN1dGFibGUgcHJvZ3JhbXMuCisKK1NhdCBPY3QgMjEgMjM6NTQ6MjIgRURU IDE5OTUKKyAgVW5kZXIgLWgsIGZpeCBidWcgaW4gdGhlIHRyZWF0bWVudCBvZiBpY2hhcignMCcp IGluIGFyaXRobWV0aWMKK2V4cHJlc3Npb25zLgorICBEZW1vdGUgdG8gLWRuZWcgKGEgbmV3IGNv bW1hbmQtbGluZSBvcHRpb24gbm90IG1lbnRpb25lZCBpbiB0aGUKK21hbiBwYWdlKSBpbWl0YXRp b24gb2YgdGhlIG9yaWdpbmFsIGY3NydzIHRyZWF0bWVudCBvZiB1bmFyeSBtaW51cworYXBwbGll ZCB0byBhIFJFQUwgb3BlcmFuZCAoeWllbGRpbmcgYSBET1VCTEUgUFJFQ0lTSU9OIHJlc3VsdCku CitQcmV2aW91c2x5IHRoaXMgaW1pdGF0aW9uICh3aGljaCB3YXMgcHJlc2VudCBmb3IgZGVidWdn aW5nKSBvY2N1cnJlZAordW5kZXIgKHRoZSBkZWZhdWx0KSAtIVIuICBJdCBpcyBzdGlsbCBzdXBw cmVzc2VkIGJ5IC1SLgorCitUdWUgTm92ICA3IDIzOjUyOjU3IEVTVCAxOTk1CisgIEFkanVzdCBh c3NpZ25lZCBHT1RPcyB0byBob25vciBTQVZFIGRlY2xhcmF0aW9ucy4KKyAgQWRkIGNvbW1lbnRz IGFib3V0IHJhbmxpYiB0byBsaWJbRkldNzcvUkVBRE1FIGFuZCBtYWtlZmlsZS4KKworVHVlIERl YyAxOSAyMjo1NDowNiBFU1QgMTk5NQorICBsaWJmNzc6IHNfY2F0LmM6IGZpeCBidWcgd2hlbiAy bmQgb3IgbGF0ZXIgYXJnIG92ZXJsYXBzIGxocy4KKworVHVlIEphbiAgMiAxNzo1NDowMCBFU1Qg MTk5NgorICBsaWJpNzc6IHJkZm10LmM6IG1vdmUgI2luY2x1ZGUgImN0eXBlLmgiIHVwIGJlZm9y ZSAic3RkbGliLmgiOyBubworY2hhbmdlIHRvIFZlcnNpb24uYy4KKworU3VuIEZlYiAyNSAyMjoy MDoyMCBFU1QgMTk5NgorICBBZGp1c3QgZXhwci5jIHRvIHBlcm1pdCByYWlzaW5nIHRoZSBpbnRl Z2VyIGNvbnN0YW50cyAxIGFuZCAtMSB0bworbmVnYXRpdmUgY29uc3RhbnQgaW50ZWdyYWwgcG93 ZXJzLgorICBBdm9pZCBmYXVsdGluZyB3aGVuIC1UIGFuZCAtZCBhcmUgbm90IGZvbGxvd2VkIGJ5 IGEgZGlyZWN0b3J5IG5hbWUKKyhpbW1lZGlhdGVseSwgd2l0aG91dCBpbnRlcnZlbmluZyBzcGFj ZXMpLgorCitXZWQgRmViIDI4IDEyOjQ5OjAxIEVTVCAxOTk2CisgIEZpeCBhIGdsaXRjaCBpbiBo YW5kbGluZyBjb21wbGV4IHBhcmFtZXRlcnMgYXNzaWduZWQgYSAid3JvbmciIHR5cGUuCitFeGFt cGxlOgorCWNvbXBsZXggZCwgegorCXBhcmFtZXRlcih6ID0gKDBkMCwwZDApKQorCWRhdGEgZC96 LwkhIGVsaWNpdGVkICJub24tY29uc3RhbnQgaW5pdGlhbGl6ZXIiCisJY2FsbCBmb28oZCkKKwll bmQKKworVGh1IEZlYiAyOSAwMDo1MzoxMiBFU1QgMTk5NgorICBGaXggYnVnIGluIGhhbmRsaW5n IGNoYXJhY3RlciBwYXJhbWV0ZXJzIGFzc2lnbmVkIGEgY2hhcigpIHZhbHVlLgorRXhhbXBsZToK KwljaGFyYWN0ZXIqMiBiLGMKKwljaGFyYWN0ZXIqMSBlc2MKKwlwYXJhbWV0ZXIoZXNjID0gY2hh cigyNykpCisJaW50ZWdlciBpCisJZGF0YSAoYihpOmkpLGk9MSwyKS9lc2MsJ2EnLworCWRhdGEg KGMoaTppKSxpPTEsMikvZXNjLCdiJy8JISBtZW1vcnkgZmF1bHQKKwljYWxsIGZvbyhiLGMpCisJ ZW5kCisKK0ZyaSBNYXIgIDEgMjM6NDQ6NTEgRVNUIDE5OTYKKyAgRml4IGdsaXRjaCBpbiBldmFs dWF0aW5nIC5FUS4gYW5kIC5ORS4gd2hlbiBib3RoIG9wZXJhbmRzIGFyZQorbG9naWNhbCBjb25z dGFudHMgKC5UUlVFLiBvciAuRkFMU0UuKS4KKworRnJpIE1hciAxNSAxNzoyOTo1NCBFU1QgMTk5 NgorICBsaWJpNzc6IGxyZWFkLmMsIHJzZmUuYzogaG9ub3IgRU5EPSBpbiBSRUFEIHN0bXRzIHdp dGggZW1wdHkgaW9saXN0LgorCitUdWUgTWFyIDE5IDIzOjA4OjMyIEVTVCAxOTk2CisgIGxleC5j OiBhcnJhbmdlIGZvciBhICJzdGF0ZW1lbnQiIGNvbnNpc3Rpbmcgb2YgYSBzaW5nbGUgc2hvcnQg Ym9ndXMKK2tleXdvcmQgdG8gZWxpY2l0IGFuIGVycm9yIG1lc3NhZ2Ugc2hvd2luZyB0aGUgd2hv bGUga2V5d29yZC4gIFRoZQorZXJyb3IgbWVzc2FnZSBmb3JtZXJseSBvbWl0dGVkIHRoZSBsYXN0 IGxldHRlciBvZiB0aGUgYmFkIGtleXdvcmQuCisgIGxpYmY3Nzogc19jYXQuYzogc3VwcGx5IG1p c3NpbmcgYnJlYWsgYWZ0ZXIgb3ZlcmxhcCBkZXRlY3Rpb24uCisKK01vbiBNYXkgMTMgMjM6MzU6 MjYgRURUIDE5OTYKKyAgUmVjb2duaXplIEZvcnRyYW4gOTAncyAvPSBhcyBhIHN5bm9ueW0gZm9y IC5ORS4uICAoPD4gcmVtYWlucyBhCitzeW5vbnltIGZvciAuTkUuLikKKyAgRW1pdCBhbiBlbXB0 eSBpbnQgZnVuY3Rpb24gb2Ygbm8gYXJndW1lbnRzIHRvIHN1cHBseSBhbiBleHRlcm5hbAorbmFt ZSB0byBuYW1lZCBibG9jayBkYXRhIHN1YnByb2dyYW1zIChzbyB0aGV5IGNhbiBiZSBjYWxsZWQg c29tZXdoZXJlCit0byBmb3JjZSB0aGVtIHRvIGJlIGxvYWRlZCBmcm9tIGEgbGlicmFyeSkuCisg IEZpeCBidWcgKG1lbW9yeSBmYXVsdCkgaW4gaGFuZGxpbmcgdGhlIGZvbGxvd2luZyBpbGxlZ2Fs IEZvcnRyYW46CisJcGFyYW1ldGVyKGk9MSkKKwllcXVpdmFsZW5jZShpLGopCisJZW5kCisgIFRy ZWF0IGNkYWJzLCBjZGNvcywgY2RleHAsIGNkbG9nLCBjZHNpbiwgYW5kIGNkc3FydCBhcyBzeW5v bnltcyBmb3IKK3RoZSBkb3VibGUgY29tcGxleCBpbnRyaW5zaWNzIHphYnMsIHpjb3MsIHpleHAs IHpsb2csIHpzaW4sIGFuZCB6c3FydCwKK3Jlc3BlY3RpdmVseSwgdW5sZXNzIC1jZCBpcyBzcGVj aWZpZWQuCisgIFJlY29nbml6ZSB0aGUgRm9ydHJhbiA5MCBiaXQtbWFuaXB1bGF0aW9uIGludHJp bnNpY3MgYnRlc3QsIGlhbmQsCitpYmNsciwgaWJpdHMsIGlic2V0LCBpZW9yLCBpb3IsIGlzaGZ0 LCBhbmQgaXNoZnRjLCB1bmxlc3MgLWk5MCBpcworc3BlY2lmaWVkLiAgTm90ZSB0aGF0IGlhbmQs IGllb3IsIGFuZCBpb3IgYXJlIHRodXMgbm93IHN5bm9ueW1zIGZvcgorImFuZCIsICJ4b3IiLCBh bmQgIm9yIiwgcmVzcGVjdGl2ZWx5LgorICBBZGQgdGhyZWUgbWFjcm9zIChiaXRfdGVzdCwgYml0 X2NsZWFyLCBiaXRfc2V0KSB0byBmMmMuaCBmb3IgdXNlCit3aXRoIGJ0ZXN0LCBpYmNsciwgYW5k IGlic2V0LCByZXNwZWN0aXZlbHkuICBBZGQgbmV3IGZ1bmN0aW9ucworW2xxXWJpdF9iaXRzLCBb bHFdYml0X3NoaWZ0LCBhbmQgW2xxXV9iaXRfY3NoaWZ0IHRvIGxpYkY3NyBmb3IKK3VzZSB3aXRo IGliaXRzLCBpc2hmdCwgYW5kIGlzaGZ0YywgcmVzcGVjdGl2ZWx5LgorICBBZGQgaW50ZWdlciBm dW5jdGlvbiBmdGVsbCh1bml0KSAocmV0dXJuaW5nIC0xIG9uIGVycm9yKSBhbmQKK3N1YnJvdXRp bmUgZnNlZWsodW5pdCwgb2Zmc2V0LCB3aGVuY2UsICopIHRvIGxpYkk3NyAod2l0aCBicmFuY2gg dG8KK2xhYmVsICogb24gZXJyb3IpLgorCitUdWUgTWF5IDE0IDIzOjIxOjEyIEVEVCAxOTk2Cisg IEZpeCBnbGl0Y2ggKHBvc3NpYmxlIG1lbW9yeSBmYXVsdCwgb3Igd29yc2UpIGluIGhhbmRsaW5n IG11bHRpcGxlCitlbnRyeSBwb2ludHMgd2l0aCBuYW1lcyBvdmVyIDI4IGNoYXJhY3RlcnMgbG9u Zy4KKworTW9uIEp1biAxMCAwMToyMDoxNiBFRFQgMTk5NgorICBVcGRhdGUgbmV0bGliIEUtbWFp bCBhbmQgZnRwIGFkZHJlc3NlcyBpbiBmMmMvcmVhZG1lIGFuZAorZjJjL3NyYy9yZWFkbWUgKHdo aWNoIGFyZSBkaWZmZXJlbnQgZmlsZXMpIC0tIHRvIHJlZmxlY3QgdGhlIHVwY29taW5nCiticmVh a3VwIG9mIEFUJlQuCisgIGxpYmY3NzogdHJpdmlhbCB0d2Vha3MgdG8gRjc3X2Fsb2MuYyBhbmQg c3lzdGVtXy5jOyBWZXJzaW9uLmMgbm90CitjaGFuZ2VkLgorICBsaWJpNzc6IEFkanVzdCByc2xp LmMgYW5kIGxyZWFkLmMgc28gaW50ZXJuYWwgbGlzdCBpbnB1dCB3aXRoIHRvbworZmV3IGl0ZW1z IGluIHRoZSBpbnB1dCBzdHJpbmcgd2lsbCBob25vciBlbmQ9IC4KKworTW9uIEp1biAxMCAyMjo1 OTo1NyBFRFQgMTk5NgorICBBZGQgQml0c19wZXJfQnl0ZSB0byBzeXNkZXAuaCBhbmQgYWRqdXN0 IGRlZmluaXRpb24gb2YgVGFibGVfc2l6ZQordG8gZGVwZW5kIG9uIEJpdHNfcGVyX0J5dGUgKGZv cmNpbmcgVGFibGVfc2l6ZSB0byBiZSBhIHBvd2VyIG9mIDIpOyBpbgorbGV4LmMsIGNoYW5nZSAi Y29tc3RhcnRbYyAmIDB4ZmZmXSIgdG8gImNvbXN0YXJ0W2MgJiAoVGFibGVfc2l6ZS0xKV0iCit0 byBhdm9pZCBhbiBvdXQtb2YtcmFuZ2Ugc3Vic2NyaXB0IG9uIGVuZC1vZi1maWxlLgorCitXZWQg SnVuIDEyIDAwOjI0OjI4IEVEVCAxOTk2CisgIEZpeCBidWcgaW4gb3V0cHV0LmMgKGRlcmVmZXJl bmNpbmcgYSBmcmVlZCBwb2ludGVyKSByZXZlYWxlZCBpbgorCXByaW50ICoJCSFucCBpbiBvdXRf Y2FsbCBpbiBvdXRwdXQuYyBjbG9iYmVyZWQgYnkgZnJlZQorCWVuZAkJIWR1cmluZyBvdXRfZXhw ci4KKworV2VkIEp1biAxOSAwODoxMjo0NyBFRFQgMTk5NgorICBmMmMuaDogYWRkIHR5cGVzIHVp bnRlZ2VyLCB1bG9uZ2ludCAoZm9yIGxpYkY3Nyk7IGFkZCBxYml0X2NsZWFyCithbmQgcWJpdF9z ZXQgbWFjcm9zIChpbiBhIGNvbW1lbnRlZC1vdXQgc2VjdGlvbikgZm9yIGludGVnZXIqOC4KKyAg Rm9yIGludGVnZXIqOCwgdXNlIHFiaXRfY2xlYXIgYW5kIHFiaXRfc2V0IGZvciBpYmNsciBhbmQg aWJzZXQuCisgIGxpYmY3NzogYWRkIGNhc3RzIHRvIHVuc2lnbmVkIGluIFtscV1iaXRzaGZ0LmMu CisKK1RodSBKdW4gMjAgMTM6MzA6NDMgRURUIDE5OTYKKyAgQ29tcGxhaW4gYXQgY2hhcmFjdGVy KigqKSBpbiBjb21tb24gKHJhdGhlciB0aGFuIGZhdWx0aW5nKS4KKyAgRml4IGJ1ZyBpbiByZWNv Z25pemluZyBoZXggY29uc3RhbnRzIHRoYXQgc3RhcnQgd2l0aCAiMTYjIiAoZS5nLiwKKzE2IzEy MzRhYmNkLCB3aGljaCBpcyBhIHN5bm9ueW0gZm9yIHonMTIzNGFiY2QnKS4KKyAgRml4IGJ1Z3Mg aW4gY29uc3RhbnQgZm9sZGluZyBvZiBleHByZXNzaW9ucyBpbnZvbHZpbmcgYnRlc3QsIGliY2xy LAorYW5kIGlic2V0LgorICBGaXggYnVnIGluIGNvbnN0YW50IGZvbGRpbmcgb2YgcnNoaWZ0KDE2 IzgwMDAwMDAwLCAtMzEpIChvbiBhIDMyLWJpdAorbWFjaGluZTsgbW9yZSBnZW5lcmFsbHksIHRo ZSBidWcgd2FzIGluIGNvbnN0YW50IGZvbGRpbmcgb2YKK3JzaGlmdChpYnNldCgwLE5CSVRTLTEp LCAxLU5CSVRTKSB3aGVuIGYyYyBydW5zIG9uIGEgbWFjaGluZSB3aXRoCitsb25nIGludHMgaGF2 aW5nIE5CSVRTIGJpdHMuCisKK01vbiBKdW4gMjQgMDc6NTg6NTMgRURUIDE5OTYKKyAgQWRqdXN0 IHN0cnVjdCBMaXRlcmFsIGFuZCBuZXdsYWJlbCgpIGZ1bmN0aW9uIHRvIGFjY29tbW9kYXRlIGh1 Z2UKK3NvdXJjZSBmaWxlcyAod2l0aCBtb3JlIHRoYW4gMzI3NjcgbmV3bGFiZWwoKSBpbnZvY2F0 aW9ucykuCisgIE9taXQgLmMgZmlsZSB3aGVuIHRoZSAuZiBmaWxlIGhhcyBhIG1pc3NpbmcgZmlu YWwgZW5kIHN0YXRlbWVudC4KKworV2VkIEp1biAyNiAxNDowMDowMiBFRFQgMTk5NgorICBsaWJp Nzc6IEFkZCBkaXNjdXNzaW9uIG9mIE1YVU5JVCAoaGlnaGVzdCBhbGxvd2VkIEZvcnRyYW4gdW5p dCBudW1iZXIpCit0byBsaWJJNzcvUkVBRE1FLgorCitGcmkgSnVuIDI4IDE0OjE2OjExIEVEVCAx OTk2CisgIEZpeCBnbGl0Y2ggd2l0aCAtb25ldHJpcDogdGhlIHRlbXBvcmFyeSB2YXJpYWJsZSB1 c2VkIGZvciBub25jb25zdGFudAoraW5pdGlhbCBsb29wIHZhcmlhYmxlIHZhbHVlcyB3YXMgcmVj eWNsZWQgdG9vIHNvb24uICBFeGFtcGxlOgorCWRvIGkgPSBqKzEsIGsKKwkJY2FsbCBmb28oaSsx KQkhIHRlbXAgZm9yIGorMSB3YXMgcmV1c2VkIGhlcmUKKwkJZW5kZG8KKwllbmQKKworVHVlIEp1 bCAgMiAxNjoxMToyNyBFRFQgMTk5NgorICBmb3JtYXRkYXRhLmM6IGFkZCBhIDAgdG8gdGhlIGVu ZCBvZiB0aGUgYmFzZXR5cGUgYXJyYXkgKGZvciBUWUJMQU5LKQorKGFuIG9taXNzaW9uIHRoYXQg d2FzIGhhcm1sZXNzIG9uIG1vc3QgbWFjaGluZXMpLgorICBleHByLmM6IGZpeCBhIGRlcmVmZXJl bmNlIG9mIE5VTEwgdGhhdCB3YXMgb25seSBwb3NzaWJsZSB3aXRoIGJ1Z2d5CitpbnB1dCwgc3Vj aCBhcworCXN1YnJvdXRpbmUgJHN1YihzKQkhIHRoZSAnJCcgaXMgZXJyb25lb3VzCisJY2hhcmFj dGVyIHMqKCopCisJcygxOikgPSAnICcKKwllbmQKKworU2F0IEp1bCAgNiAwMDo0NDo1NiBFRFQg MTk5NgorICBGaXggZ2xpdGNoIGluIHRoZSBpbnRyaW5zaWMgInJlYWwiIGZ1bmN0aW9uIHdoZW4g YXBwbGllZCB0byBhCitjb21wbGV4IChvciBkb3VibGUgY29tcGxleCkgdmFyaWFibGUgYW5kIHBh c3NlZCBhcyBhbiBhcmd1bWVudCB0bworc29tZSBpbnRyaW5zaWMgZnVuY3Rpb25zLiAgRXhhbXBs ZToKKwljb21wbGV4IGEKKwliID0gc3FydChhKQorCWVuZAorICBGaXggZ2xpdGNoIChvbmx5IHZp c2libGUgaWYgeW91IGRvIG5vdCB1c2UgZjJjJ3MgbWFsbG9jIGFuZCB0aGUKK21hbGxvYyB5b3Ug ZG8gdXNlIGlzIGRlZmVjdGl2ZSBpbiB0aGUgc2Vuc2UgdGhhdCBtYWxsb2MoMCkgcmV0dXJucyAw KQoraW4gaGFuZGxpbmcgaW5jbHVkZSBmaWxlcyB0aGF0IGVuZCB3aXRoIGFub3RoZXIgaW5jbHVk ZSAocGVyaGFwcworZm9sbG93ZWQgYnkgY29tbWVudHMpLgorICBGaXggZ2xpdGNoIHdpdGggY2hh cmFjdGVyKigqKSBhcmd1bWVudHMgbmFtZWQgImgiIGFuZCAiaSIgd2hlbgordGhlIGJvZHkgb2Yg dGhlIHN1YnJvdXRpbmUgaW52b2tlcyB0aGUgaW50cmluc2ljIExFTiBmdW5jdGlvbi4KKyAgQXJy YW5nZSB0aGF0IGFmdGVyIGEgcHJldmlvdXMgImYyYyAtUCBmb28uZiIgaGFzIHByb2R1Y2VkIGZv by5QLAorcnVubmluZyAiZjJjIGZvby5QIGZvby5mIiB3aWxsIHByb2R1Y2UgdmFsaWQgQyB3aGVu IGZvby5mIGNvbnRhaW5zCisJY2FsbCBzdWIoJzEyMzQnKQorCWVuZAorCXN1YnJvdXRpbmUgc3Vi KG1zZykKKwllbmQKK1NwZWNpZmljYWxseSwgdGhlIGxlbmd0aCBhcmd1bWVudCBpbiAiY2FsbCBz dWIiIGlzIG5vdyBzdXBwcmVzc2VkLgorV2l0aCBvciB3aXRob3V0IGZvby5QLCBpdCBpcyBhbHNv IG5vdyBzdXBwcmVzc2VkIHdoZW4gdGhlIG9yZGVyIG9mCitzdWJwcm9ncmFtcyBpbiBmaWxlIGZv by5mIGlzIHJldmVyc2VkOgorCXN1YnJvdXRpbmUgc3ViKG1zZykKKwllbmQKKwljYWxsIHN1Yign MTIzNCcpCisJZW5kCisgIEFkanVzdCBjb3B5cmlnaHQgbm90aWNlcyB0byByZWZsZWN0IEFUJlQg YnJlYWt1cC4KKworV2VkIEp1bCAxMCAwOToyNTo0OSBFRFQgMTk5NgorICBGaXggYnVnIChwb3Nz aWJsZSBtZW1vcnkgZmF1bHQpIGluIGhhbmRsaW5nIGVycm9uZW91c2x5IHBsYWNlZAorYW5kIGlu Y29uc2lzdGVudCBkZWNsYXJhdGlvbnMuICBFeGFtcGxlIHRoYXQgZmF1bHRlZDoKKwljaGFyYWN0 ZXIqMSB3KDgpCisJY2FsbCBmb28odykKKwllbmQKKwlzdWJyb3V0aW5lIGZvbyhtKQorCWRhdGEg aCAvMC41LworCWludGVnZXIgbSgyKQkhIHNob3VsZCBiZSBiZWZvcmUgZGF0YQorCWVuZAorICBG aXggYnVnIChwb3NzaWJsZSBmYXVsdCkgaW4gaGFuZGxpbmcgaWxsZWdhbCAiaWYiIGNvbnN0cnVj dGlvbnMuCitFeGFtcGxlICh0aGF0IGZhdWx0ZWQpOgorCXN1YnJvdXRpbmUgZm9vKGksaikKKwlp ZiAoaSkgdGhlbgkJISBidWc6IGkgaXMgaW50ZWdlciwgbm90IGxvZ2ljYWwKKwllbHNlIGlmIChq KSB0aGVuCSEgYnVnOiBqIGlzIGludGVnZXIsIG5vdCBsb2dpY2FsCisJZW5kaWYKKwllbmQKKyAg Rml4IGdsaXRjaCB3aXRoIGNoYXJhY3RlciooKikgYXJndW1lbnQgbmFtZWQgInJldF9sZW4iIHRv IGEKK2NoYXJhY3RlciooKikgZnVuY3Rpb24uCisKK1dlZCBKdWwgMTAgMjM6MDQ6MTYgRURUIDE5 OTYKKyAgRml4IG1vcmUgZ2xpdGNoZXMgaW4gdGhlIGludHJpbnNpYyAicmVhbCIgZnVuY3Rpb24g d2hlbiBhcHBsaWVkIHRvIGEKK2NvbXBsZXggKG9yIGRvdWJsZSBjb21wbGV4KSB2YXJpYWJsZSBh bmQgcGFzc2VkIGFzIGFuIGFyZ3VtZW50IHRvCitzb21lIGludHJpbnNpYyBmdW5jdGlvbnMuICBF eGFtcGxlOgorCWNvbXBsZXggYSwgYgorCXIgPSBzcXJ0KHJlYWwoY29uamcoYSkpKSArIHNxcnQo cmVhbChhKmIpKQorCWVuZAorCitUaHUgSnVsIDExIDE3OjI3OjE2IEVEVCAxOTk2CisgIEZpeCBh IG1lbW9yeSBmYXVsdCBhc3NvY2lhdGVkIHdpdGggY29tcGxpY2F0ZWQsIGlsbGVnYWwgaW5wdXQu CitFeGFtcGxlOgorCXN1YnJvdXRpbmUgZ29vCisJY2hhcmFjdGVyIGEKKwljYWxsIGZvbyhhKQkh IGluY29uc2lzdGVudCB3aXRoIHN1YnNlcXVlbnQgZGVmIGFuZCBjYWxsCisJZW5kCisJc3Vicm91 dGluZSBmb28oYSkKKwllbmQKKwljYWxsIGZvbyhhKQorCWVuZAorCitXZWQgSnVsIDE3IDE5OjE4 OjI4IEVEVCAxOTk2CisgIEZpeCB5ZXQgYW5vdGhlciBjYXNlIG9mIGludHJpbnNpYyAicmVhbCIg YXBwbGllZCB0byBhIGNvbXBsZXgKK2FyZ3VtZW50LiAgRXhhbXBsZToKKwljb21wbGV4IGEoMykK Kwl4ID0gc3FydChyZWFsKGEoMikpKQkhIGdhdmUgZXJyb3IgbWVzc2FnZSBhYm91dCBiYWQgdGFn CisJZW5kCisKK01vbiBBdWcgMjYgMTE6Mjg6NTcgRURUIDE5OTYKKyAgVHdlYWsgc3lzZGVwLmMg Zm9yIG5vbi1Vbml4IHN5c3RlbXMgaW4gd2hpY2ggcHJvY2VzcyBJRCdzIGNhbiBiZQorb3ZlciA1 IGRpZ2l0cyBsb25nLgorCitUdWUgQXVnIDI3IDA4OjMxOjMyIEVEVCAxOTk2CisgIEFkanVzdCB0 aGUgaXNoZnQgaW50cmluc2ljIHRvIHVzZSB1bnNpZ25lZCByaWdodCBzaGlmdHMuICAoUHJldmlv dXNseSwKK2EgbmVnYXRpdmUgY29uc3RhbnQgc2Vjb25kIG9wZXJhbmQgcmVzdWx0ZWQgaW4gYSBw b3NzaWJseSBzaWduZWQgc2hpZnQuKQorCitUaHUgU2VwIDEyIDE0OjA0OjA3IEVEVCAxOTk2Cisg IGVxdWl2LmM6IGZpeCBnbGl0Y2ggd2l0aCAtREtSX2hlYWRlcnMuCisgIGxpYmk3NzogZm10bGli LmM6IGZpeCBidWcgaW4gcHJpbnRpbmcgdGhlIG1vc3QgbmVnYXRpdmUgaW50ZWdlci4KKworRnJp IFNlcCAxMyAwODo1NDo0MCBFRFQgMTk5NgorICBEaWFnbm9zZSBzb21lIGlsbGVnYWwgYXBwZWFy YW5jZXMgb2Ygc3Vic3RyaW5nIG5vdGF0aW9uLgorCitUdWUgU2VwIDE3IDE3OjQ4OjA5IEVEVCAx OTk2CisgIEZpeCBmYXVsdCBpbiBoYW5kbGluZyBzb21lIGNvbXBsZXggcGFyYW1ldGVycy4gIEV4 YW1wbGU6CisJc3Vicm91dGluZSBmb28oYSkKKwlkb3VibGUgY29tcGxleCBhLCBiCisJcGFyYW1l dGVyKGIgPSAoMCwxKSkKKwlhID0gYgkhIGYyYyBmYXVsdGVkIGhlcmUKKwllbmQKKworVGh1IFNl cCAyNiAwNzo0NzoxMCBFRFQgMTk5NgorICBsaWJpNzc6ICBmbXQuaDogIGZvciBmb3JtYXR0ZWQg d3JpdGVzIG9mIG5lZ2F0aXZlIGludGVnZXIqMSB2YWx1ZXMsCittYWtlIGljIHNpZ25lZCBvbiBB TlNJIHN5c3RlbXMuICBJZiBmb3JtYXR0ZWQgd3JpdGVzIG9mIGludGVnZXIqMQordmFsdWVzIHRy b3VibGUgeW91IHdoZW4gdXNpbmcgYSBLJlIgQyBjb21waWxlciwgc3dpdGNoIHRvIGFuIEFOU0kK K2NvbXBpbGVyIG9yIHVzZSBhIGNvbXBpbGVyIGZsYWcgdGhhdCBtYWtlcyBjaGFyYWN0ZXJzIHNp Z25lZC4KKworVHVlIE9jdCAgMSAxNDo0MTozNiBFRFQgMTk5NgorICBHaXZlIGEgYmV0dGVyIGVy cm9yIG1lc3NhZ2Ugd2hlbiBkdW1teSBhcmd1bWVudHMgYXBwZWFyIGluIGRhdGEKK3N0YXRlbWVu dHMuCisKK1RodSBPY3QgMTcgMTM6Mzc6MjIgRURUIDE5OTYKKyAgRml4IGJ1ZyBpbiB0eXBlY2hl Y2tpbmcgYXJndW1lbnRzIHRvIGNoYXJhY3RlciBhbmQgY29tcGxleCAob3IKK2RvdWJsZSBjb21w bGV4KSBmdW5jdGlvbnM7IHRoZSBidWcgY291bGQgY2F1c2UgbGVuZ3RoIGFyZ3VtZW50cworZm9y IGNoYXJhY3RlciBhcmd1bWVudHMgdG8gYmUgb21pdHRlZCBvbiBpbnZvY2F0aW9ucyBhcHBlYXJp bmcKK3RleHR1YWxseSBhZnRlciB0aGUgZmlyc3QgaW52b2NhdGlvbi4gIEZvciBleGFtcGxlLCBp bgorCXN1YnJvdXRpbmUgZm9vCisJY2hhcmFjdGVyIGMKKwljb21wbGV4IHpvdAorCWNhbGwgZ29v KHpvdChjKSwgem90KGMpKQorCWVuZAordGhlIGxlbmd0aCB3YXMgb21pdHRlZCBmcm9tIHRoZSBz ZWNvbmQgaW52b2NhdGlvbiBvZiB6b3QsIGFuZAordGhlcmUgd2FzIGFuIGVycm9uZW91cyBlcnJv ciBtZXNzYWdlIGFib3V0IGluY29uc2lzdGVudCBjYWxsaW5nCitzZXF1ZW5jZXMuCisKK1dlZCBE ZWMgIDQgMTM6NTk6MTQgRVNUIDE5OTYKKyAgRml4IGJ1ZyByZXZlYWxlZCBieQorCXN1YnJvdXRp bmUgdGVzdChjZHVtLHJkdW0pCisJY29tcGxleCBjZHVtCisJcmR1bT1jb3MocmVhbChjZHVtKSkJ ISAiVW5leHBlY3RlZCB0YWcgMyBpbiBvcGNvbnZfZnVkZ2UiCisJZW5kCisgIEZpeCBnbGl0Y2gg aW4gcGFyc2luZyAiRE8gMTAgRDAgPSAxLCAxMCIuCisgIEZpeCBnbGl0Y2ggaW4gcGFyc2luZwor CXJlYWwqOCB4CisJcmVhbCo4IHgJISBlcnJvbmVvdXMgImluY29tcGF0aWJsZSB0eXBlIiBtZXNz YWdlCisJY2FsbCBmb28oeCkKKwllbmQKKworTW9uIERlYyAgOSAyMzoxNTowMiBFU1QgMTk5Ngor ICBGaXggZ2xpdGNoIGluIHBhcmFtZXRlciBhZGp1c3RtZW50cyBmb3IgYXJyYXlzIHdob3NlIGxv d2VyCitib3VuZCBkZXBlbmRzIG9uIGEgc2NhbGFyIGFyZ3VtZW50LiAgRXhhbXBsZToKKwlzdWJy b3V0aW5lIGJ1ZyhwLHosbSxuKQorCWludGVnZXIgeigqKSxtLG4KKwlkb3VibGUgcHJlY2lzaW9u IHAoeihtKTp6KG0pICsgbikJISBwX29mZnNldCBib3RjaGVkCisJY2FsbCBmb28ocCgwKSwgcChu KSkKKwllbmQKKyAgbGliaTc3OiBjb21wbGFpbiBhYm91dCBub24tcG9zaXRpdmUgcmVjPSBpbiBk aXJlY3QgcmVhZCBhbmQgd3JpdGUKK3N0YXRlbWVudHMuCisgIGxpYmY3NzogdHJpdmlhbCBhZGp1 c3RtZW50czsgVmVyc2lvbi5jIG5vdCBjaGFuZ2VkLgorCitXZWQgRmViIDEyIDAwOjE4OjAzIEVT VCAxOTk3CisgIG91dHB1dC5jOiBmaXggKHNlbGRvbSBwcm9ibGVtYXRpYykgZ2xpdGNoIGluIG91 dF9jYWxsOiBwdXQgcGFyZW5zCithcm91bmQgdGhlIC4uLiBpbiBhIHRlc3Qgb2YgdGhlIGZvcm0g ImlmIChxLT50YWcgPT0gVEFERFIgJiYgLi4uKSIuCisgIHZheC5jOiBmaXggYnVnIHJldmVhbGVk IGluIHRoZSAicHNpX29mZnNldCA9IiBhc3NpZ25tZW50IGluIHRoZQorZm9sbG93aW5nIGV4YW1w bGU6CisJc3Vicm91dGluZSBmb28ocHNpLG0pCisJaW50ZWdlciB6KDEwMCksbQorCWNvbW1vbiAv YS8gegorCWRvdWJsZSBwcmVjaXNpb24gcHNpKHoobSk6eihtKSArIDEwKQorCWNhbGwgZm9vKG0r MSwgcHNpKDApLHBzaSgxMCkpCisJZW5kCisKK01vbiBGZWIgMjQgMjM6NDQ6NTQgRVNUIDE5OTcK KyAgRm9yIGNvbnNpc3RlbmN5IHdpdGggZjJjJ3MgY3VycmVudCB0cmVhdG1lbnQgb2YgYWRqYWNl bnQgY2hhcmFjdGVyCitzdHJpbmdzIGluIEZPUk1BVCBzdGF0ZW1lbnRzLCByZWNvZ25pemUgYSBI b2xsZXJpdGggc3RyaW5nIGZvbGxvd2luZworYSBzdHJpbmcgKGFuZCBtZXJnZSBhZGphY2VudCBz dHJpbmdzIGluIEZPUk1BVCBzdGF0ZW1lbnRzKS4KKworV2VkIEZlYiAyNiAxMzo0MToxMSBFU1Qg MTk5NworICBOZXcgbGliZjJjLnppcCwgYSBjb21iaW5hdGlvbiBvZiB0aGUgbGliZjc3IGFuZCBs aWJpNzcgYnVuZGxlcyAoYW5kCithdmFpbGFibGUgb25seSBieSBmdHApLgorICBsaWJmNzc6IGFk anVzdCBmdW5jdGlvbnMgd2l0aCBhIGNvbXBsZXggb3V0cHV0IGFyZ3VtZW50IHRvIHBlcm1pdAor YWxpYXNpbmcgaXQgd2l0aCBpbnB1dCBhcmd1bWVudHMuICAoRm9yIG5vdywgYXQgbGVhc3QsIHRo aXMgaXMganVzdAorZm9yIHBvc3NpYmxlIGJlbmVmaXQgb2YgZzc3LikKKyAgbGliaTc3OiB0d2Vh ayB0byBmdGVsbF8uYyBmb3Igc3lzdGVtcyB3aXRoIHN0cmFuZ2UgZGVmaW5pdGlvbnMgb2YKK1NF RUtfU0VULCBldGMuCisKK1R1ZSBBcHIgIDggMjA6NTc6MDggRURUIDE5OTcKKyAgbGliZjc3OiBb Y3pdX2Rpdi5jOiB0d2Vha3MgaW52aXNpYmxlIG9uIG1vc3Qgc3lzdGVtcyAodGhhdCBtYXkKK2lt cHJvdmUgdGhpbmdzIHNsaWdodGx5IHdpdGggb3B0aW1pemVkIGNvbXBpbGF0aW9uIG9uIHN5c3Rl bXMgdGhhdCB1c2UKK2dyYXR1aXRvdXMgZXh0cmEgcHJlY2lzaW9uKS4KKyAgbGliaTc3OiBmbXQu YzogYWRqdXN0IHRvIGNvbXBsYWluIGF0IG1pc3NpbmcgbnVtYmVycyBpbiBmb3JtYXRzCisoYnV0 IHN0aWxsIHRyZWF0IG1pc3NpbmcgIi5ubm4iIGFzICIuMCIpLgorCitGcmkgQXByIDExIDE0OjA1 OjU3IEVEVCAxOTk3CisgIGxpYmk3NzogZXJyLmM6IGF0dGVtcHQgdG8gbWFrZSBzdGRlcnIgbGlu ZSBidWZmZXJlZCByYXRoZXIgdGhhbgorZnVsbHkgYnVmZmVyZWQuICAoQnVmZmVyaW5nIGlzIG5l ZWRlZCBmb3IgZm9ybWF0IGl0ZW1zIFQgYW5kIFRSLikKKworVGh1IEFwciAxNyAyMjo0Mjo0MyBF RFQgMTk5NworIGxpYmY3NzogYWRkIEY3N19hbG9jLm8gdG8gbWFrZWZpbGUgKGFuZCBtYWtlZmls ZS51IGluIGxpYmYyYy56aXApLgorCitGcmkgQXByIDI1IDE5OjMyOjA5IEVEVCAxOTk3CisgbGli Zjc3OiBhZGQgW2RlXXRpbWVfLmMgKHdoaWNoIG1heSBnaXZlIHRyb3VibGUgb24gc29tZSBzeXN0 ZW1zKS4KKworVHVlIE1heSAyNyAwOToxODo1MiBFRFQgMTk5NworIGxpYmk3NzogZnRlbGxfLmM6 IGZpeCB0eXBvIHRoYXQgY2F1c2VkIHRoZSB0aGlyZCBhcmd1bWVudCB0byBiZQordHJlYXRlZCBh cyAyIG9uIHNvbWUgc3lzdGVtcy4KKworTW9uIEp1biAgOSAwMDowNDozNyBFRFQgMTk5NworIGxp Ymk3NyAoYW5kIGxpYmYyYy56aXApOiBhZGp1c3QgaW5jbHVkZSBvcmRlciBpbiBlcnIuYyBscmVh ZC5jIHdyZWYuYworcmRmbXQuYyB0byBpbmNsdWRlIGZtdC5oIChldGMuKSBhZnRlciBzeXN0ZW0g aW5jbHVkZXMuICBWZXJzaW9uLmMgbm90CitjaGFuZ2VkLgorCitNb24gSnVsIDIxIDE2OjA0OjU0 IEVEVCAxOTk3CisgIHByb2MuYzogZml4IGdsaXRjaCBpbiBsb2dpYyBmb3IgIm5vbnBvc2l0aXZl IGRpbWVuc2lvbiIgbWVzc2FnZS4KKyAgbGliaTc3OiBpbnF1aXJlLmM6IGFsd2F5cyBpbmNsdWRl IHN0cmluZy5oIChmb3IgcG9zc2libGUgdXNlIHdpdGgKKy1ETk9OX1VOSVhfU1RESU8pOyBWZXJz aW9uLmMgbm90IGNoYW5nZWQuCisKK1RodSBKdWwgMjQgMTc6MTE6MjMgRURUIDE5OTcKKyAgVHdl YWsgIk5vdGljZSIgdG8gcmVmbGVjdCB0aGUgQVQmVCBicmVha3VwIC0tIHdlIG1pc3NlZCBpdCB3 aGVuCit1cGRhdGluZyB0aGUgY29weXJpZ2h0IG5vdGljZXMgaW4gdGhlIHNvdXJjZSBmaWxlcyBs YXN0IHN1bW1lci4KKyAgQWRqdXN0IHNyYy9tYWtlZmlsZSBzbyBtYWxsb2MubyBpcyBub3QgdXNl ZCBieSBkZWZhdWx0LCBidXQgY2FuCitiZSBzcGVjaWZpZWQgd2l0aCAibWFrZSBNQUxMT0M9bWFs bG9jLm8iLgorICBBZGQgY29tbWVudHMgdG8gc3JjL1JFQURNRSBhYm91dCB0aGUgIkNSQVkiIFQz RS4KKworVHVlIEF1ZyAgNSAxNDo1MzoyNSBFRFQgMTk5NworICBBZGQgZGVmaW5pdGlvbiBvZiBj YWxsb2MgdG8gbWFsbG9jLmM7IHRoaXMgbWFrZXMgZjJjJ3MgbWFsbG9jCit3b3JrIG9uIHNvbWUg c3lzdGVtcyB3aGVyZSB0cm91YmxlIGhpdGhlcnRvIGFyb3NlIGJlY2F1c2UgcmVmZXJlbmNlcwor dG8gY2FsbG9jIGJyb3VnaHQgaW4gdGhlIHN5c3RlbSdzIG1hbGxvYy4gIChPbiBzZW5zaWJsZSBz eXN0ZW1zLAorY2FsbG9jIGlzIGRlZmluZWQgc2VwYXJhdGVseSBmcm9tIG1hbGxvYy4gIFRvIGF2 b2lkIGNvbmZ1c2lvbiBvbgorb3RoZXIgc3lzdGVtcywgZjJjL21hbGxvYy5jIG5vdyBkZWZpbmVz IGNhbGxvYy4pCisgIGxpYmk3NzogbHJlYWQuYzogYWRqdXN0IHRvIGFjY29yZCB3aXRoIGEgY2hh bmdlIHRvIHRoZSBGb3J0cmFuIDhYCitkcmFmdCAoaW4gMTk5MCBvciAxOTkxKSB0aGF0IHJlc2Np bmRlZCBwZXJtaXNzaW9uIHRvIGVsaWRlIHF1b3RlIG1hcmtzCitpbiBuYW1lbGlzdCBpbnB1dCBv ZiBjaGFyYWN0ZXIgZGF0YTsgdG8gZ2V0IHRoZSBvbGQgYmVoYXZpb3IsIGNvbXBpbGUKK3dpdGgg RjhYX05NTF9FTElERV9RVU9URVMgI2RlZmluZWQuICB3cnRmbXQubzogd3J0X0c6IHR3ZWFrIHRv IHByaW50Cit0aGUgcmlnaHQgbnVtYmVyIG9mIDAncyBmb3IgemVybyB1bmRlciBHIGZvcm1hdC4K KworU2F0IEF1ZyAxNiAwNTo0NTozMiBFRFQgMTk5NworICBsaWJpNzc6IGlpby5jOiBmaXggYnVn IGluIGludGVybmFsIHdyaXRlcyB0byBhbiBhcnJheSBvZiBjaGFyYWN0ZXIKK3N0cmluZ3MgdGhh dCBzb21ldGltZXMgY2F1c2VkIG9uZSBtb3JlIGFycmF5IGVsZW1lbnQgdGhhbiByZXF1aXJlZCBi eQordGhlIGZvcm1hdCB0byBiZSBibGFuay1maWxsZWQuICBFeGFtcGxlOiBmb3JtYXQoMXgpLgor CitXZWQgU2VwIDE3IDAwOjM5OjI5IEVEVCAxOTk3CisgIGxpYmk3NzogZm10LltjaF0gcmRmbXQu YyB3cnRmbXQuYzogdHdlYWsgc3RydWN0IHN5bCBmb3IgbWFjaGluZXMKK3dpdGggNjQtYml0IHBv aW50ZXJzIGFuZCAzMi1iaXQgaW50cyB0aGF0IGRpZCBub3QgNjQtYml0IGFsaWduCitzdHJ1Y3Qg c3lsIChlLmcuLCBMaW51eCBvbiB0aGUgREVDIEFscGhhKS4gIFRoaXMgY2hhbmdlIHNob3VsZCBi ZQoraW52aXNpYmxlIG9uIG90aGVyIG1hY2hpbmVzLgorCitTdW4gU2VwIDIxIDIyOjA1OjE5IEVE VCAxOTk3CisgIGxpYmY3NzogW2RlXXRpbWVfLmMgKFVuaXggc3lzdGVtcyBvbmx5KTogY2hhbmdl IHJldHVybiB0eXBlIHRvIGRvdWJsZS4KKworVGh1IERlYyAgNCAyMjoxMDowOSBFU1QgMTk5Nwor ICBGaXggYnVnIHdpdGggaGFuZGxpbmcgbGFyZ2UgYmxvY2tzIG9mIGNvbW1lbnRzIChvdmVyIDRr KTsgcGFydHMgb2YgdGhlCitzZWNvbmQgYW5kIHN1YnNlcXVlbnQgYmxvY2tzIHdlcmUgbGlrZWx5 IHRvIGJlIGxvc3QgKG5vdCBjb3BpZWQgaW50bworY29tbWVudHMgaW4gdGhlIHJlc3VsdGluZyBD KS4gIEFsbG93IGNvbW1lbnQgbGluZXMgdG8gYmUgbG9uZ2VyIGJlZm9yZQorYnJlYWtpbmcgdGhl bS4KKworTW9uIEphbiAxOSAxNzoxOToyNyBFU1QgMTk5OAorICBtYWtlZmlsZTogY2hhbmdlIHRo ZSBydWxlIGZvciBtYWtpbmcgZ3JhbS5jIHRvIG9uZSBmb3IgbWFraW5nIGdyYW0xLmM7CitoZW5j ZWZvcnRoLCBhc2tpbmcgbmV0bGliIHRvICJzZW5kIGFsbCBmcm9tIGYyYy9zcmMiIHdpbGwgYnJp bmcgeW91IGEKK3dvcmtpbmcgZ3JhbS5jLiAgTm93YWRheXMgdGhlcmUgYXJlIHNpbXBseSB0b28g bWFueSBicm9rZW4gdmVyc2lvbnMgb2YKK3lhY2MgZmxvYXRpbmcgYXJvdW5kLgorICBsaWJpNzc6 IGJhY2tzcGFjZS5jOiBmb3IgYi0+dWZtdD09MCwgY2hhbmdlIHNpemVvZihpbnQpIHRvCitzaXpl b2YodWlvbGVuKS4gIE9uIG1hY2hpbmVzIHdoZXJlIHRoaXMgd291bGQgbWFrZSBhIGRpZmZlcmVu Y2UsIGl0IGlzCitiZXN0IGZvciBwb3J0YWJpbGl0eSB0byBjb21waWxlIGxpYkk3NyB3aXRoIC1E VUlPTEVOX2ludCwgd2hpY2ggd2lsbAorcmVuZGVyIHRoZSBjaGFuZ2UgaW52aXNpYmxlLgorCitU dWUgRmViIDI0IDA4OjM1OjMzIEVTVCAxOTk4CisgIG1ha2VmaWxlOiByZW1vdmUgZ3JhbS5jIGZy b20gdGhlICJtYWtlIGNsZWFuIiBydWxlLgorCitXZWQgRmViIDI1IDA4OjI5OjM5IEVTVCAxOTk4 CisgIG1ha2VmaWxlOiBjaGFuZ2UgQ0ZMQUdTIGFzc2lnbm1lbnQgdG8gLU87IGFkZCAidmVyeWNs ZWFuIiBydWxlLgorCitXZWQgTWFyICA0IDEzOjEzOjIxIEVTVCAxOTk4CisgIGxpYmk3Nzogb3Bl bi5jOiBmaXggZ2xpdGNoIGluIGNvbXBhcmluZyBmaWxlIG5hbWVzIHVuZGVyCistRE5PTl9VTklY X1NURElPLgorCitNb24gTWFyICA5IDIzOjU2OjU2IEVTVCAxOTk4CisgIHB1dHBjYy5jOiBvbWl0 IGFuIHVubmVjZXNzYXJ5IHRlbXBvcmFyeSB2YXJpYWJsZSBpbiBjb21wdXRpbmcKKyhleHByKSoq My4KKyAgbGliZjc3LCBsaWJpNzc6IG1pbm9yIHR3ZWFrcyB0byBtYWtlIHNvbWUgQysrIGNvbXBp bGVycyBoYXBweTsKK1ZlcnNpb24uYyBub3QgY2hhbmdlZC4KKworV2VkIE1hciAxOCAxODowODo0 NyBFU1QgMTk5OAorICBsaWJmNzc6IG1pbm9yIHR3ZWFrcyB0byBbZWRddGltZV8uYzsgVmVyc2lv bi5jIG5vdCBjaGFuZ2VkLgorICBsaWJpNzc6IGVuZGZpbGUuYywgb3Blbi5jOiBhY3F1aXJlIHRl bXBvcmFyeSBmaWxlcyBmcm9tIHRtcGZpbGUoKSwKK3VubGVzcyBjb21waWxlZCB3aXRoIC1ETk9O X0FOU0lfU1RESU8sIHdoaWNoIHVzZXMgbWt0ZW1wKCkuCitOZXcgYnVmZmVyaW5nIHNjaGVtZSBp bmRlcGVuZGVudCBvZiBOT05fVU5JWF9TVERJTyBmb3IgaGFuZGxpbmcgVAorZm9ybWF0IGl0ZW1z LiAgTm93IC1ETk9OX1VOSVhfU1RESU8gaXMgbm8gbG9uZ2VyIGJlIG5lY2Vzc2FyeSBmb3IKK0xp bnV4LCBhbmQgbGliZjJjIG5vIGxvbmdlciBjYXVzZXMgc3RkZXJyIHRvIGJlIGJ1ZmZlcmVkIC0t IHRoZSBmb3JtZXIKK3NldGJ1ZiBvciBzZXR2YnVmIGNhbGwgZm9yIHN0ZGVyciB3YXMgdG8gbWFr ZSBUIGZvcm1hdCBpdGVtcyB3b3JrLgorb3Blbi5jOiB1c2UgdGhlIFBvc2l4IGFjY2VzcygpIGZ1 bmN0aW9uIHRvIGNoZWNrIGV4aXN0ZW5jZSBvcgorbm9uZXhpc3RlbmNlIG9mIGZpbGVzLCBleGNl cHQgdW5kZXIgLUROT05fUE9TSVhfU1RESU8sIHdoZXJlIHRyaWFsCitmb3BlbiBjYWxscyBhcmUg dXNlZC4gIEluIG9wZW4uYywgZml4IGJvdGNoIGluIGNoYW5nZXMgb2YgMTk5ODAzMDQuCisgIGxp YmYyYy56aXA6IHRoZSBQQyBtYWtlZmlsZXMgYXJlIG5vdyBzZXQgZm9yIE5UL1c5NSwgd2l0aCBj b21tZW50cworYWJvdXQgY2hhbmdlcyBmb3IgRE9TLgorCitGcmkgQXByICAzIDE3OjIyOjEyIEVT VCAxOTk4CisgIEFkanVzdCBmaXggb2YgMTk5NjA5MTMgdG8gYWdhaW4gcGVybWl0IHN1YnN0cmlu ZyBub3RhdGlvbiBvbgorY2hhcmFjdGVyIHZhcmlhYmxlcyBpbiBkYXRhIHN0YXRlbWVudHMuCisK K1N1biBBcHIgIDUgMTk6MjY6NTAgRURUIDE5OTgKKyAgbGliaTc3OiB3c2ZlLmM6IG1ha2UgJCBm b3JtYXQgaXRlbSB3b3JrOiB0aGlzIHdhcyBsb3N0IGluIHRoZSBjaGFuZ2VzCitvZiAxNyBNYXJj aCAxOTk4LgorCitTYXQgTWF5IDE2IDE5OjA4OjUxIEVEVCAxOTk4CisgIEFkanVzdCBvdXRwdXQg b2YgZnRubGVuIGNvbnN0YW50czogcmF0aGVyIHRoYW4gYXBwZW5kaW5nIEwsCitwcmVwZW5kIChm dG5sZW4pLiAgVGhpcyBzaG91bGQgbWFrZSB0aGUgcmVzdWx0aW5nIEMgbW9yZSBwb3J0YWJsZSwK K2UuZy4sIHRvIHN5c3RlbXMgKHN1Y2ggYXMgREVDIEFscGhhIFVuaXggc3lzdGVtcykgb24gd2hp Y2ggbG9uZworbWF5IGJlIGxvbmdlciB0aGFuIGZ0bmxlbi4KKyAgQWRqdXN0IC1yIHNvIGl0IGFs c28gY2FzdHMgUkVBTCBleHByZXNzaW9ucyBwYXNzZWQgdG8gaW50cmluc2ljCitmdW5jdGlvbnMg dG8gUkVBTC4KKworV2VkIE1heSAyNyAxNjowMjozNSBFRFQgMTk5OAorICBsaWJmMmMuemlwOiB0 d2VhayBkZXNjcmlwdGlvbiBvZiBjb21waWxpbmcgbGliZjJjIGZvciBJTlRFR0VSKjgKK3RvIGFj Y29yZCB3aXRoIG1ha2VmaWxlLnUgcmF0aGVyIHRoYW4gbGliRjc3L21ha2VmaWxlLgorCitUaHUg TWF5IDI4IDIyOjQ1OjU5IEVEVCAxOTk4CisgIGxpYmk3NzogYmFja3NwYWNlLmMgZGZlLmMgZHVl LmMgaWlvLmMgbHJlYWQuYyByc2ZlLmMgc3VlLmMgd3NmZS5jOgorc2V0IGZfX2N1cnVuaXQgc29v bmVyIHNvIHZhcmlvdXMgZXJyb3IgbWVzc2FnZXMgd2lsbCBjb3JyZWN0bHkKK2lkZW50aWZ5IHRo ZSBJL08gdW5pdCBpbnZvbHZlZC4KKyAgbGliZjJjLnppcDogYWJvdmUsIHBsdXMgdHdlYWtzIHRv IFBDIG1ha2VmaWxlczogZm9yIHNvbWUgcHVycG9zZXMsCitpdCdzIHN0aWxsIGJlc3QgdG8gY29t cGlsZSB3aXRoIC1ETVNET1MgKGV2ZW4gZm9yIHVzZSB3aXRoIE5UKS4KKworVGh1IEp1biAxOCAw MToyMjo1MiBFRFQgMTk5OAorICBsaWJpNzc6IGxyZWFkLmM6IG1vZGlmaWVkIHNvIGZsb2F0aW5n LXBvaW50IG51bWJlcnMgKGNvbnRhaW5pbmcKK2VpdGhlciBhIGRlY2ltYWwgcG9pbnQgb3IgYW4g ZXhwb25lbnQgZmllbGQpIGFyZSB0cmVhdGVkIGFzIGVycm9ycword2hlbiB0aGV5IGFwcGVhciBh cyBsaXN0IGlucHV0IGZvciBpbnRlZ2VyIGRhdGEuICBDb21waWxlIGxyZWFkLmMgd2l0aAorLURB TExPV19GTE9BVF9JTl9JTlRFR0VSX0xJU1RfSU5QVVQgdG8gcmVzdG9yZSB0aGUgb2xkIGJlaGF2 aW9yLgorCitNb24gQXVnIDMxIDEwOjM4OjU0IEVEVCAxOTk4CisgIGZvcm1hdGRhdGEuYzogaWYg cG9zc2libGUsIGFuZCBhc3N1bWluZyBkb3VibGVzIG11c3QgYmUgYWxpZ25lZCBvbgorZG91Ymxl IGJvdW5kYXJpZXMsIHVzZSBleGlzdGluZyBob2xlcyBpbiBEQVRBIGZvciBjb21tb24gYmxvY2tz IHRvCitmb3JjZSBhbGlnbm1lbnQgb2YgdGhlIGJsb2NrLiAgRm9yIGV4YW1wbGUsCisJYmxvY2sg ZGF0YQorCWNvbW1vbiAvYWJjLyBhLCBiCisJZG91YmxlIHByZWNpc2lvbiBhCisJaW50ZWdlciBi KDIpCisJZGF0YSBiKDIpLzEvCisJZW5kCit1c2VkIHRvIGdlbmVyYXRlCisJc3RydWN0IHsKKwkg ICAgaW50ZWdlciBmaWxsXzFbM107CisJICAgIGludGVnZXIgZV8yOworCSAgICBkb3VibGVyZWFs IGVfMzsKKwkgICAgfSBhYmNfID0geyB7MH0sIDEsIDAuIH07CithbmQgbm93IGdlbmVyYXRlcwor CXN0cnVjdCB7CisJICAgIGRvdWJsZXJlYWwgZmlsbF8xWzFdOworCSAgICBpbnRlZ2VyIGZpbGxf MlsxXTsKKwkgICAgaW50ZWdlciBlXzM7CisJICAgIH0gYWJjXyA9IHsgezB9LCB7MH0sIDEgfTsK K0luIHRoZSBvbGQgZ2VuZXJhdGVkIEMsIGVfMyB3YXMgYWRkZWQgdG8gZm9yY2UgYWxpZ25tZW50 OyBpbiB0aGUgbmV3IEMsCitmaWxsXzEgZG9lcyB0aGlzIGpvYi4KKworTW9uIFNlcCAgNyAxOTo0 ODo1MSBFRFQgMTk5OAorICBsaWJpNzc6IG1vdmUgZV93ZGZlIGZyb20gc2ZlLmMgdG8gZGZlLmMs IHdoZXJlIGl0IHdhcyBvcmlnaW5hbGx5LgorV2h5IGRpZCBpdCBldmVyIG1vdmUgdG8gc2ZlLmM/ CisKK1R1ZSBTZXAgIDggMTA6MjI6NTAgRURUIDE5OTgKKyAgVHJlYXQgZHJlYWwgYXMgYSBzeW5v bnltIGZvciBkYmxlIHVubGVzcyAtY2QgaXMgc3BlY2lmaWVkIG9uIHRoZQorY29tbWFuZCBsaW5l LgorCitTdW4gU2VwIDEzIDIyOjIzOjQxIEVEVCAxOTk4CisgIGZvcm1hdC5jOiBmaXggYnVnIGlu IHdyaXRpbmcgcHJvdG90eXBlcyB1bmRlciBmMmMgLUEgLi4uICouUDoKK3VuZGVyIHNvbWUgY2ly Y3Vtc3RhbmNlcyBpbnZvbHZpbmcgZXh0ZXJuYWwgZnVuY3Rpb25zIHdpdGggbm8ga25vd24KK3R5 cGUsIGEgbnVsbCBwb2ludGVyIHdhcyBwYXNzZWQgdG8gcHJpbnRmLgorCitUdWUgT2N0IDIwIDIz OjI1OjU0IEVEVCAxOTk4CisgIENvbW1lbnRzIGFkZGVkIHRvIGxpYmYyYy9SRUFETUUgYW5kIGxp YkY3Ny9SRUFETUUsIHBvaW50aW5nIG91dAordGhlIG5lZWQgdG8gbW9kaWZ5IHNpZ25hbDEuaCBv biBzb21lIHN5c3RlbXMuCisKK1dlZCBGZWIgMTAgMjI6NTk6NTIgRVNUIDE5OTkKKyAgZGVmcy5o IGxleC5jOiBwZXJtaXQgbG9uZyBuYW1lcyAodXAgdG8gYXQgbGVhc3Qgcm91Z2hseQorTUFYX1NI QVJQTElORV9MRU4gPSAxMDAwIGNoYXJhY3RlcnMgbG9uZykgaW4gI2xpbmUgbGluZXMgKHdoaWNo IG9ubHkKK21hdHRlcnMgdW5kZXIgLWcpLgorICBmYzogYWRkIC1VIG9wdGlvbjsgcmVjb2duaXpl IC5zbyBmaWxlcy4KKworU2F0IEZlYiAxMyAxMDoxODoyNyBFU1QgMTk5OQorIGxpYmYyYzogZW5k ZmlsZS5jLCBscmVhZC5jLCBzaWduYWwxLmgwOiBtaW5vciB0d2Vha3MgdG8gbWFrZSBzb21lCiso QysrKSBjb21waWxlcnMgaGFwcGllcjsgZjc3X2Fsb2MuYzogbWFrZSBleGl0XygpIHZpc2libGUg dG8gQysrCitjb21waWxlcnMuICBWZXJzaW9uIHN0cmluZ3Mgbm90IGNoYW5nZWQuCisKK1RodSBN YXIgMTEgMjM6MTQ6MDIgRVNUIDE5OTkKKyAgTW9kaWZ5IGYyYyAoZXhlYy5jLCBleHByLmMpIHRv IGRpYWdub3NlIGluY29ycmVjdCBtaXhpbmcgb2YgdHlwZXMKK3doZW4gKGYyYyBleHRlbmRlZCkg aW50cmluc2ljIGZ1bmN0aW9ucyBhcmUgaW52b2x2ZWQsIGFzIGluCisobm90KDE3KSAuYW5kLiA0 KS4gIENhdGNoaW5nIHRoaXMgaW4gdGhlIGZpcnN0IGV4ZWN1dGFibGUgc3RhdGVtZW50CitpcyBh IGJpdCB0cmlja3ksIGFzIHNvbWUgY2hlY2tpbmcgbXVzdCBiZSBwb3N0cG9uZWQgdW50aWwgYWxs IHN0YXRlbWVudAorZnVuY3Rpb24gZGVjbGFyYXRpb25zIGhhdmUgYmVlbiBwYXJzZWQuICBUaHVz IHRoZXJlIGlzIGEgY2hhbmNlIG9mCit0b2RheSdzIGNoYW5nZXMgaW50cm9kdWNpbmcgYnVncyB1 bmRlciAobGV0IHVzIGhvcGUpIHVudXN1YWwgY29uZGl0aW9ucy4KKworU3VuIE1hciAyOCAxMzox Nzo0NCBFU1QgMTk5OQorICBsZXguYzogdHdlYWsgdG8gZ2V0IHRoZSBmaWxlIG5hbWUgcmlnaHQg aW4gZXJyb3IgbWVzc2FnZXMgY2F1c2VkCitieSBzdGF0ZW1lbnRzIGp1c3QgYWZ0ZXIgYSAjIG5u biAiZmlsZW5hbWUiIGxpbmUgZW1pdHRlZCBieSB0aGUgQworcHJlcHJvY2Vzc29yLiAgKFRoZSB0 cm91YmxlIGlzIHRoYXQgdGhlIGxpbmUgZm9sbG93aW5nIHRoZSAjIG5ubiBsaW5lCittdXN0IGJl IHJlYWQgdG8gc2VlIGlmIGl0IGlzIGEgY29udGludWF0aW9uIG9mIHRoZSBzdHVmZiB0aGF0IHBy ZWNlZGVkCit0aGUgIyBubm4gbGluZS4pICBXaGVuICMgbm5uICJmaWxlbmFtZSIgbGluZXMgYXBw ZWFyIGFtb25nIHRoZSBsaW5lcworZm9yIGEgRm9ydHJhbiBzdGF0ZW1lbnQsIHRoZSBmaWxlbmFt ZSByZXBvcnRlZCBpbiBhbiBlcnJvciBtZXNzYWdlIGZvcgordGhlIHN0YXRlbWVudCBzaG91bGQg bm93IGJlIHRoZSBmaWxlIHRoYXQgd2FzIGN1cnJlbnQgd2hlbiB0aGUgZmlyc3QKK2xpbmUgb2Yg dGhlIHN0YXRlbWVudCB3YXMgcmVhZC4KKworU3VuIE1heSAgMiAyMjozODoyNSBFRFQgMTk5OQor ICBsaWJmNzcsIGxpYmk3NywgbGliZjJjLnppcDogbWFrZSBnZXRlbnZfKCkgbW9yZSBwb3J0YWJs ZSAoY2FsbAorZ2V0ZW52KCkgcmF0aGVyIHRoYW4ga25vd2luZyBhYm91dCBjaGFyICoqZW52aXJv bik7IGFkanVzdCBzb21lCitjb21wbGV4IGludHJpbnNpY3MgdG8gd29yayB3aXRoIG92ZXJsYXBw aW5nIGFyZ3VtZW50cyAoY2F1c2VkIGJ5CitpbmFwcHJvcHJpYXRlIHVzZSBvZiBlcXVpdmFsZW5j ZSk7IG9wZW4uYzogZ2V0ICJleHRlcm5hbCIgdmVyc3VzCisiaW50ZXJuYWwiIHJpZ2h0IGluIHRo ZSBlcnJvciBtZXNzYWdlIGlmIGEgZmlsZSBjYW5ub3QgYmUgb3BlbmVkOworZXJyLmM6IGNhc3Qg YSBwb2ludGVyIGRpZmZlcmVuY2UgdG8gKGludCkgZm9yICVkOyByZGZtdC5jOiBvbWl0CitmaXhl ZC1sZW5ndGggYnVmZmVyIHRoYXQgY291bGQgYmUgb3ZlcndyaXR0ZW4gYnkgZm9ybWF0cyBJbm4g b3IgTG5uCit3aXRoIG5uID4gODMuCisKK01vbiBNYXkgIDMgMTM6MTQ6MDcgRURUIDE5OTkKKyAg IkludmlzaWJsZSIgY2hhbmdlcyB0byBvbWl0IGEgZmV3IGNvbXBpbGVyIHdhcm5pbmdzIGluIGYy YyBhbmQKK2xpYmYyYzsgdHdvIG5ldyBjYXN0cyBpbiBsaWJmMmMvb3Blbi5jIHRoYXQgbWF0dGVy IHdpdGggNjQtYml0IGxvbmdzLAorYW5kIG9uZSBtb3JlIHR3ZWFrIChsaWJmMmMvY19sb2cuYykg Zm9yIHBhdGhvbG9naWNhbCBlcXVpdmFsZW5jZXMuCisgIE1pbm9yIHVwZGF0ZSB0byAiZmMiIHNj cmlwdDogbmV3IC1MIGZsYWcgYW5kIGNvbW1lbnQgY29ycmVjdGlvbi4KKworRnJpIEp1biAxOCAw MjozMzowOCBFRFQgMTk5OQorICBsaWJmMmMuemlwOiByZW5hbWUgYmFja3NwYWNlLmMgYmFja3Nw YWMuYywgYW5kIGZpeCBhIGdsaXRjaCBpbiBpdAorLS0gYi0+dWZkIG1heSBjaGFuZ2UgaW4gdF9y dW5jKCkuICAoRm9yIG5vdywgaXQncyBzdGlsbCBiYWNrc3BhY2UuYworaW4gdGhlIGxpYmk3NyBi dW5kbGUuKQorCitTdW4gSnVuIDI3IDIyOjA1OjQ3IEVEVCAxOTk5CisgIGxpYmYyYy56aXAsIGxp Ymk3NzogcnNuZS5jOiBmaXggYnVnIGluIG5hbWVsaXN0IGlucHV0OiBhIG1pc3BsYWNlZAoraW5j cmVtZW50IGNvdWxkIGNhdXNlIHdyb25nIGFycmF5IGVsZW1lbnRzIHRvIGJlIGFzc2lnbmVkOyBl LmcuLAorIiZpbnB1dCBrKDUpPTEwKjEgJmVuZCIgYXNzaWduZWQgayg1KSBhbmQgaygxNSAuLiAy MykuCisKK1R1ZSBTZXAgIDcgMTQ6MTA6MjQgRURUIDE5OTkKKyAgZjJjLmgsIGxpYmYyYy9mMmMu aDAsIGxpYmYyYy9SRUFETUU6IG1pbm9yIHR3ZWFrcyBzbyBhIHNpbXBsZQorc2VkIGNvbW1hbmQg Y29udmVydHMgZjJjLmggPT0gbGliZjJjL2YyYy5oMCB0byBhIGZvcm0gc3VpdGFibGUgZm9yCitt YWNoaW5lcyB3aXRoIDgtYnl0ZSBsb25ncyBhbmQgZG91YmxlcywgNC1ieXRlIGludCdzIGFuZCBm bG9hdHMsCit3aGlsZSB3b3JraW5nIHdpdGggYSBmb3J0aGNvbWluZyAoaWxsLWFkdmlzZWQpIHVw ZGF0ZSB0byB0aGUgQworc3RhbmRhcmQgdGhhdCBvdXRsYXdzIHBsYWluICJ1bnNpZ25lZCIuCisg IGYyYy5oLCBsaWJmMmMvZjJjLmgwOiBjaGFuZ2UgImlmIDAiIHRvICIjaWZkZWYgSU5URUdFUl9T VEFSXzgiLgorICBsaWJmNzcsIGxpYmYyYy56aXA6IFtjel1fZGl2LmMgYW5kIFJFQURNRTogYXJy YW5nZSBmb3IgY29tcGlsYXRpb24KK3VuZGVyIC1ESUVFRV9DT01QTEVYX0RJVklERSB0byBtYWtl IHRoZXNlIHJvdXRpbmVzIGF2b2lkIGNhbGxpbmcgc2lnX2RpZQord2hlbiB0aGUgZGVub21pbmF0 b3Igb2YgYSBjb21wbGV4IG9yIGRvdWJsZSBjb21wbGV4IGRpdmlzaW9uIHZhbmlzaGVzOworaW5z dGVhZCwgdGhleSByZXR1cm4gcGFpcnMgb2YgTmFOcyBvciBJbmZpbml0aWVzLCBkZXBlbmRpbmcg d2hldGhlciB0aGUKK251bWVyYXRvciBhbHNvIHZhbmlzaGVzIG9yIG5vdC4KKworVHVlIE9jdCAg NSAyMzo1MDoxNCBFRFQgMTk5OQorICBmb3JtYXRkYXRhLmMsIGlvLmMsIG91dHB1dC5jLCBzeXNk ZXAuYzogYWRqdXN0IHRvIG1ha2UgZm9ybWF0CitzdHJpbmdzIGxlZ2FsIHdoZW4gdGhleSBjb250 YWluIDgtYml0IGNoYXJhY3RlcnMgd2l0aCB0aGUgaGlnaCBiaXQgb24uCisoRm9yIG1hbnkgQyBj b21waWxlcnMsIHRoaXMgaXMgbm90IG5lY2Vzc2FyeSwgYnV0IGl0IHRoZSBBTlNJL0lTTyBDCitz dGFuZGFyZCBkb2VzIG5vdCByZXF1aXJlIHRoaXMgdG8gd29yay4pCisgIGxpYmYyYy56aXA6IHR3 ZWFrIFJFQURNRSBhbmQgY29ycmVjdCB4c3VtMC5vdXQuCisKK01vbiBPY3QgMjUgMTc6MzA6NTQg RURUIDE5OTkKKyAgaW8uYzogZml4IGdsaXRjaCBpbnRyb2R1Y2VkIGluIHRoZSBwcmV2aW91cyBj aGFuZ2UgKDE5OTkxMDA1KSB0aGF0CitjYXVzZWQgZm9ybWF0KCcgJScpIHRvIHByaW50ICIlJSIg cmF0aGVyIHRoYW4gIiUiLgorCitNb24gTm92IDE1IDEyOjEwOjM1IEVTVCAxOTk5CisgIGxpYmYy Yy56aXA6IGZpeCBidWcgd2l0aCB0aGUgc2VxdWVuY2UgYmFja3NwYWNlKG4pOyBlbmRmaWxlKG4p OworcmV3aW5kKG4pOyByZWFkKG4pLiAgU3VwcGx5IG1pc3NpbmcgKGxvbmcpIGNhc3RzIGluIGEg Y291cGxlIG9mIHBsYWNlcword2hlcmUgdGhleSBtYXR0ZXIgd2hlbiBzaXplKGZ0bmludCkgPT0g c2l6ZW9mKGludCkgPCBzaXplb2YobG9uZykuCisKK1R1ZSBKYW4gMTggMTk6MjI6MjQgRVNUIDIw MDAKKyAgQXJyYW5nZSBmb3IgcGFyYW1ldGVyIHN0YXRlbWVudHMgaW52b2x2aW5nIG1pbiguLi4p IGFuZCBtYXgoLi4uKQorZnVuY3Rpb25zIG9mIHRocmVlIG9yIG1vcmUgYXJndW1lbnRzIHRvIHdv cmsuCisgIFdhcm4gYWJvdXQgdGV4dCBhZnRlciAiZW5kIiAocmF0aGVyIHRoYW4gcmVwb3J0aW5n IGEgc3ludGF4IGVycm9yCit3aXRoIGEgc3VycHJpc2luZyBsaW5lIG51bWJlcikuCisgIEFjY2Vw dCBwcmVwcm9jZXNzb3IgbGluZSBudW1iZXJzIG9mIHRoZSBmb3JtICIjIDEyMzQiIChwb3NzaWJs eQord2l0aCB0cmFpbGluZyBibGFua3MpLgorICBBY2NlcHQgYSBjb21tYSBhZnRlciB3cml0ZSgu Li4pIGFuZCBiZWZvcmUgYSBsaXN0IG9mIHRoaW5ncyB0byB3cml0ZS4KKworRnJpIEphbiAyMSAx NzoyNjoyNyBFU1QgMjAwMAorICBNaW5vciB1cGRhdGVzIHRvIG1ha2UgY29tcGlsaW5nIFdpbjMy IGNvbnNvbGUgYmluYXJpZXMgZWFzaWVyLiAgQQorc2lkZSBlZmZlY3QgaXMgdGhhdCB0aGUgTVNE T1MgcmVzdHJpY3Rpb24gb2Ygb25seSBvbmUgRm9ydHJhbiBmaWxlCitwZXIgaW52b2NhdGlvbiBp cyBsaWZ0ZWQgKGFuZCAiZjJjICouZiIpIHdvcmtzLgorCitUdWUgRmViICAxIDE4OjM4OjMyIEVT VCAyMDAwCisgIGYyYy9zcmMvdG9rZGVmcy5oIGFkZGVkICh0byBoZWxwIHBlb3BsZSBvbiBub24t VW5peCBzeXN0ZW1zIC0tIHRoZQorbWFrZWZpbGUgaGFzIGFsd2F5cyBoYWQgYSBydWxlIGZvciBn ZW5lcmF0aW5nIHRva2RlZnMuaCkuCisKK0ZyaSBNYXIgMTAgMTg6NDg6MTcgRVNUIDIwMDAKKyAg bGliZjc3LCBsaWJmMmMuemlwOiB6X2xvZy5jOiB0aGUgcmVhbCBwYXJ0IG9mIHRoZSBkb3VibGUg Y29tcGxleCBsb2cKK29mIG51bWJlcnMgbmVhciwgZS5nLiwgKCstMSxlcHMpIHdpdGggfGVwc3wg c21hbGwgaXMgbm93IG1vcmUgYWNjdXJhdGUuCitGb3IgZXhhbXBsZSBpZiB6ID0gKDEsMWQtNyks IHRoZW4gIndyaXRlKCosKikgeiIgbm93IHdyaXRlcworIig1LkUtMTUsMS5FLTA3IiByYXRoZXIg dGhhbiB0aGUgcHJldmlvdXMgIig0Ljg4NDk4MTMxRS0xNSwxLkUtMDcpIi4KKworVGh1IEFwciAy MCAxMzowMjo1NCBFRFQgMjAwMAorICBsaWJmNzcsIGxpYmk3NywgbGliZjJjLnppcDogc19jYXQu YywgcnNuZS5jLCB4d3NuZS5jOiBmaXggdHlwZQorZXJyb3JzIHRoYXQgb25seSBtYXR0ZXIgaWYg c2l6ZW9mKGZ0bmludCkgIT0gc2l6ZW9mKGZ0bmxlbikuCisKK1R1ZSBNYXkgMzAgMjM6MzY6MTgg RURUIDIwMDAKKyAgZXhwci5jOiBhZGp1c3Qgc3ViY2hlY2soKSB0byB1c2UgYSB0ZW1wb3Jhcnkg dmFyaWFibGUgb2YgdHlwZSBUWUxPTkcKK3JhdGhlciB0aGFuIFRZU0hPUlQgdW5kZXIgLUMgLUky LgorCitXZWQgTWF5IDMxIDA4OjQ4OjAzIEVEVCAyMDAwCisgIFNpbXBsaWZ5IHllc3RlcmRheSdz IGFkanVzdG1lbnQ7IHRvZGF5J3MgY2hhbmdlIHNob3VsZCBiZSBpbnZpc2libGUuCisKK1R1ZSBK dWwgIDQgMjI6NTI6MjEgRURUIDIwMDAKKyAgbWlzYy5jLCBmdW5jdGlvbiAiYWRkcmVzc2FibGUi OiBmaXggZmF1bHQgd2l0aCAiZjJjIC1JMiBmb28uZiIgd2hlbgorZm9vLmYgY29uc2lzdHMgb2Yg dGhlIDQgbGluZXMKKwlzdWJyb3V0aW5lIGZvbyhjKQorCWNoYXJhY3RlciooKikgYworCWkgPSBt aW4obGVuKGMpLDIzKQorCWVuZAorICBTdW5kcnkgZmlsZXM6IHR3ZWFrcyBmb3IgcG9ydGFiaWxp dHksIGUuZy4sIGZvciBjb21waWxhdGlvbiBieSBvdmVybHkKK2Zhc3RpZGlvdXMgQysrIGNvbXBp bGVyczsgImZhbHNlIiBhbmQgInRydWUiIG5vdyB0cmVhdGVkIGFzIEMga2V5d29yZHMKKyhzbyB0 aGV5IGdldCB0d28gdW5kZXJzY29yZXMgYXBwZW5kZWQpLgorICBsaWJmNzcsIGxpYmk3NywgbGli ZjJjLnppcDogImludmlzaWJsZSIgYWRqdXN0bWVudHMgdG8gcGVybWl0Citjb21waWxhdGlvbiBi eSBDKysgY29tcGlsZXJzOyB2ZXJzaW9uIG51bWJlcnMgbm90IGNoYW5nZWQuCisKK1RodSBKdWwg IDYgMjM6NDY6MDcgRURUIDIwMDAKKyAgVmFyaW91cyBmaWxlczogdHdlYWtzIHRvIGJhbmlzaCBt b3JlIGNvbXBpbGVyIHdhcm5pbmdzLgorICBsaWI/NzcsIGxpYmYyYy56aXAvbWFrZWZpbGUudTog YWRkICJ8fCB0cnVlIiB0byByYW5saWIgaW52b2NhdGlvbnMuCisgIFRoYW5rcyB0byBOZWxzb24g SC4gRi4gQmVlYmUgZm9yIG1lc3NhZ2VzIGxlYWRpbmcgdG8gdGhlc2UgY2hhbmdlcworKGFuZCB0 byBtYW55IG9mIHRoZSBvbmVzIHR3byBkYXlzIGFnbykuCisgIHhzdW0uYzogdHdlYWsgaW5jbHVk ZSBvcmRlci4KKworRnJpIEp1bCAgNyAxODowMToyNSBFRFQgMjAwMAorICBmYzogYWNjZXB0IC1t IHh4eCBvciAtbXh4eCwgcGFzcyB0aGVtIHRvIHRoZSBjb21waWxlciBhcyAtbXh4eAorKHN1Z2dl c3Rpb24gb2YgTmVsc29uIEJlZWJlKS4gIE5vdGUgdGhhdCBmYyBzaW1wbHkgYXBwZW5kcyB0byBD RkxBR1MsCitzbyBzeXN0ZW0tc3BlY2lmaWMgc3R1ZmYgY2FuIGJlIHN1cHBsaWVkIGluIHRoZSBl bnZpcm9ubWVudCB2YXJpYWJsZQorQ0ZMQUdTLiAgV2l0aCBzb21lIHNoZWxscywgaW52b2NhdGlv bnMgb2YgdGhlIGZvcm0KKwlDRkxBR1M9J3N5c3RlbS1zcGVjaWZpYyBzdHVmZicgZmMgLi4uCith cmUgb25lIHdheSB0byBkbyB0aGlzLgorCitUaHUgQXVnIDE3IDIxOjM4OjM2IEVEVCAyMDAwCisg IEZpeCBvYnNjdXJlIGdsaXRjaDogaW4gIkVycm9yIG9uIGxpbmUgbm5uIG9mIC4uLjogQmFkICMg bGluZTouLi4iLAorZ2V0IG5ubiByaWdodC4KKworU2F0IFNlcCAzMCAwMDoyODozMCBFRFQgMjAw MAorICBsaWJmNzcsIGxpYmYyYy56aXA6IGR0aW1lXy5jLCBldGltZV8uYzogdXNlIGZsb2F0aW5n LXBvaW50IGRpdmlkZTsKK2R0aW1lXy5kLCBlcmZfLmMsIGVyZmNfLmMsIGV0aW1lLmM6IGZvciB1 c2Ugd2l0aCAiZjJjIC1SIiwgY29tcGlsZSB3aXRoCistRFJFQUw9ZmxvYXQuCisKK1R1ZSBEZWMg IDUgMjI6NTU6NTYgRVNUIDIwMDAKKyAgbHJlYWQuYzogdW5kZXIgbmFtZWxpc3QgaW5wdXQsIHdo ZW4gcmVhZGluZyBhIGxvZ2ljYWwgYXJyYXksIHRyZWF0CitUc3R1ZmY9IGFuZCBGc3R1ZmY9IGFz IG5ldyBhc3NpZ25tZW50cyByYXRoZXIgdGhhbiBhcyBsb2dpY2FsIGNvbnN0YW50cy4KKworRnJp IEZlYiAyMyAwMDo0Mzo1NiBFU1QgMjAwMQorICBsaWJmMmM6IGVuZGZpbGUuYzogYWRqdXN0IHRv IHVzZSB0cnVuY2F0ZSgpIHVubGVzcyBjb21waWxlZCB3aXRoCistRE5PX1RSVU5DQVRFIChvciB3 aXRoIC1ETVNET1MpLiAgQWRkIGxpYmYyYy9ta2ZpbGUucGxhbjkuCisKK1NhdCBGZWIgMjQgMjE6 MTQ6MjQgRVNUIDIwMDEKKyAgUHJldmVudCBtYWxsb2MoMCkgd2hlbiBhIHN1YnJvdXRpbmUgb2Yg bm8gYXJndW1lbnRzIGhhcyBhbiBlbnRyeQord2l0aCBubyBhcmd1bWVudHMsIGFzIGluCisJc3Vi cm91dGluZSBmb28KKwllbnRyeSBnb28KKwllbmQKKyAgRml4IGEgZmF1bHQgdGhhdCB3YXMgcG9z c2libGUgd2hlbiBNQUlOIChpbGxlZ2FsbHkpIGhhZCBlbnRyeSBwb2ludHMuCisgIEZpeCBhIGJ1 ZmZlciBvdmVyZmxvdyBjb25uZWN0ZWQgd2l0aCB0aGUgZXJyb3IgbWVzc2FnZSBmb3IgbmFtZXMg bW9yZQordGhhbiBNQVhOQU1FTEVOIChpLmUuLCA1MCkgYnl0ZXMgbG9uZy4KKyAgRml4IGEgYnVn IGluIGNvbW1hbmQtbGluZSBhcmd1bWVudCBwYXNzaW5nIHRoYXQgY2F1c2VkIHRoZSBpbnZvY2F0 aW9uCisiZjJjIC0hY3pvcmsgZm9vLmYiIHRvIGNvbXBsYWluIGFib3V0IHR3byBpbnZhbGlkIGZs YWdzICgnLW9yaycgYW5kCisnLW9vLmYnKSBpbnN0ZWFkIG9mIGp1c3Qgb25lICgnLW9yaycpLgor ICBmYzogYWRkIC1zIG9wdGlvbiAoc3RyaXAgZXhlY3V0YWJsZSk7IHBvcnRhYmlsaXR5IHR3ZWFr cy4KKyAgQWRqdXN0bWVudHMgdG8gaGFuZGluZyBvZiBpbnRlZ2VyKjggdG8gcGVybWl0IHByb2Nl c3NpbmcgOC1ieXRlIGhleCwKK2JpbmFyeSwgb2N0YWwsIGFuZCBkZWNpbWFsIGNvbnN0YW50cy4g IFRoZSBhZGp1c3RtZW50cyBhcmUgb25seQorYXZhaWxhYmxlIHdoZW4gdHlwZSBsb25nIGxvbmcg KGZvciA+PSA2NCBiaXQgaW50ZWdlcnMpIGlzIGF2YWlsYWJsZSB0bworZjJjOyB0aGV5IGFyZSBh c3N1bWVkIGF2YWlsYWJsZSB1bmxlc3MgZjJjIGlzIGNvbXBpbGVkIHdpdGggZWl0aGVyCistRE5P X1RZUVVBRCBvciAtRE5PX0xPTkdMT05HLiAgQXMgaGFzIGxvbmcgYmVlbiB0aGUgY2FzZSwgY29t cGlsYXRpb24KK29mIGYyYyBpdHNlbGYgd2l0aCAtRE5PX1RZUVVBRCBlbGltaW5hdGVzIHJlY29n bml0aW9uIG9mIGludGVnZXIqOAorYWx0b2dldGhlci4gIENvbXBpbGF0aW9uIHdpdGgganVzdCAt RE5PX0xPTkdMT05HIHBlcm1pdHMgdGhlIHByZXZpb3VzCitoYW5kbGluZyBvZiBpbnRlZ2VyKjgs IHdoaWNoIGNvdWxkIG9ubHkgaGFuZGxlIDMyLWJpdCBjb25zdGFudHMKK2Fzc29jaWF0ZWQgd2l0 aCBpbnRlZ2VyKjggdmFyaWFibGVzLgorICBOZXcgY29tbWFuZC1saW5lIGFyZ3VtZW50IC1pOGNv bnN0IChhdmFpbGFibGUgb25seSB3aGVuIGYyYyBpdHNlbGYKK2lzIGNvbXBpbGVkIHdpdGggbmVp dGhlciAtRE5PX1RZUVVBRCBub3IgLUROT19MT05HTE9ORykgc3VwcHJlc3NlcwordGhlIG5ldyBh dXRvbWF0aWMgcHJvbW90aW9uIG9mIGludGVnZXIgY29uc3RhbnRzIHRvbyBsb25nIHRvIGV4cHJl c3MKK2FzIDMyLWJpdCB2YWx1ZXMgdG8gdHlwZSBpbnRlZ2VyKjguICBUaGVyZSBhcmUgY29ycmVz cG9uZGluZyB1cGRhdGVzCit0byBmMmMuMSBhbmQgZjJjLjF0LgorCitXZWQgRmViIDI4IDAwOjUw OjA0IEVTVCAyMDAxCisgIEFkanVzdCBtaXNjLmMgZm9yIChvbGRlcikgc3lzdGVtcyB0aGF0IHJl Y29nbml6ZSBsb25nIGxvbmcgYnV0IGRvIG5vdAoraGF2ZSBMTE9OR19NQVggb3IgTE9OR0xPTkdf TUFYIGluIGxpbWl0cy5oLgorICBtYWluLmM6IGZpbHRlciBvdXQgYmFkIGZpbGVzIGJlZm9yZSBk b2ZvcmsgbG9vcCB0byBhdm9pZCB0cm91YmxlCitpbiBXaW4zMiAiZjJjLmV4ZSIgYmluYXJpZXMu CisKK1RodSBNYXIgIDEgMTY6MjU6MTkgRVNUIDIwMDEKKyAgQ29zbWV0aWMgY2hhbmdlIGZvciBj b25zaXN0ZW5jeSB3aXRoIHNvbWUgb3RoZXIgbmV0bGliIGRpcmVjdG9yaWVzOgorY2hhbmdlIE5P X0xPTkdMT05HIHRvIE5PX0xPTkdfTE9ORy4gIChUaGlzIGluY2x1ZGVzIGFkanVzdGluZyB0aGUg YWJvdmUKK2VudHJ5IGZvciBGZWIgMjMgMjAwMS4pICBObyBjaGFuZ2UgKG90aGVyIHRoYW4gdGlt ZXN0YW1wKSB0byB2ZXJzaW9uLmMuCisgIGxpYmYyYzogIGVuZGZpbGUuYzogIHN3aXRjaCB0byBm dHJ1bmNhdGUgKGFic2VudCAtRE5PX1RSVU5DQVRFKSwKK3RodXMgcGVybWl0dGluZyB0cnVuY2F0 aW9uIG9mIHNjcmF0Y2ggZmlsZXMgb24gdHJ1ZSBVbml4IHN5c3RlbXMsCit3aGVyZSBzY3JhdGNo IGZpbGVzIGhhdmUgbm8gbmFtZS4gIEFkZCBhbiBmZmx1c2goKSAoc3VycHJpc2luZ2x5KQorbmVl ZGVkIG9uIHNvbWUgTGludXggc3lzdGVtcy4KKworVHVlIE1hciAyMCAyMjowMzoyMyBFU1QgMjAw MQorICBleHByLmM6ICBjb21wbGFpbiAoImltcG9zc2libGUgY29udmVyc2lvbiIpIGFib3V0IGF0 dGVtcHRzIHRvIGFzc2lnbgorY2hhcmFjdGVyIGV4cHJlc3Npb25zIC4uLiB0byBpbnRlZ2VyIHZh cmlhYmxlcywgcmF0aGVyIHRoYW4gaW1wbGljaXRseQorYXNzaWduaW5nIGljaGFyKC4uLikuCisK K1NhdCBKdW4gMjMgMjM6MDg6MjIgRURUIDIwMDEKKyAgTmV3IGNvbW1hbmQtbGluZSBvcHRpb24g LXRyYXB1diBhZGRzIGNhbGxzIG9uIF91bmluaXRfZjJjKCkgdG8gcHJvbG9ncwordG8gZHluYW1p Y2FsbHkgaW5pdGlhbGl6ZSBsb2NhbCB2YXJpYWJsZXMsIGV4Y2VwdCB0aG9zZSBhcHBlYXJpbmcg aW4KK1NBVkUgb3IgREFUQSBzdGF0ZW1lbnRzLCB3aXRoIHZhbHVlcyB0aGF0IG1heSBoZWxwIGZp bmQgcmVmZXJlbmNlcyB0bwordW5pbml0aWFsaXplZCB2YXJpYWJsZXMuICBGb3IgZXhhbXBsZSwg d2l0aCBJRUVFIGFyaXRobWV0aWMsIGZsb2F0aW5nLQorcG9pbnQgdmFyaWFibGVzIGFyZSBpbml0 aWFsaXplZCB0byBzaWduYWxpbmcgTmFOcy4KKyAgZXhwci5jOiBuZXcgd2FybmluZyBmb3Igb3V0 LW9mLWJvdW5kcyBjb25zdGFudCBzdWJzdHJpbmcgZXhwcmVzc2lvbnMuCitVbmRlciAtQywgc3Vj aCBleHByZXNzaW9ucyBub3cgaW5oaWJpdCBDIG91dHB1dC4KKyAgbGliZjJjL21rZmlsZS5wbGFu OTogZml4IGdsaXRjaCB3aXRoIHJ1bGUgZm9yICJjaGVjayIgKG9yIHhzdW0ub3V0KS4KKyAgbGli ZjJjLnppcDogYWRkIHVuaW5pdC5jIChmb3IgX3VuaW5pdF9mMmMoKSkgaW4gc3VwcG9ydCBvZiAt dHJhcHV2LgorICBmYywgZjJjLjEsIGYyYy4xdDogYWRqdXN0IGZvciAtdHJhcHV2LgorCitUaHUg SnVsICA1IDIyOjAwOjUxIEVEVCAyMDAxCisgIGxpYmYyYy56aXA6IG1vZGlmeSB1bmluaXQuYyBm b3IgX19tYzY4a19fIHVuZGVyIExpbnV4LgorCitXZWQgQXVnIDIyIDA4OjAxOjM3IEVEVCAyMDAx CisgIGNkcy5jLCBleHByLmM6IGluIGNvbnN0YW50cywgcHJlc2VydmUgdGhlIHNpZ24gb2YgMC4K KyAgZXhwci5jOiBmaXggc29tZSBnbGl0Y2hlcyBpbiBmb2xkaW5nIGNvbnN0YW50cyB0byBpbnRl Z2VyKjgKKyh3aGVuIE5PX0xPTkdfTE9ORyBpcyBub3QgI2RlZmluZWQpLgorICBpbnRyLmM6IGZv bGQgY29uc3RhbnQgbWluKC4uLikgYW5kIG1heCguLi4pIGV4cHJlc3Npb25zLgorCitGcmkgTm92 IDE2IDAyOjAwOjAzIEVTVCAyMDAxCisgIGxpYmYyYy56aXA6ICB0d2VhayB0byBwZXJtaXQgaGFu ZGxpbmcgZmlsZXMgb3ZlciAyR0IgbG9uZyB3aGVyZQorcG9zc2libGUsIHdpdGggc3VpdGFibGUg LUQgb3B0aW9ucywgcHJvdmlkZWQgZm9yIHNvbWUgc3lzdGVtcyBpbgorbmV3IGhlYWRlciBmaWxl IHN5c2RlcDEuaCAoY29waWVkIGZyb20gc3lzZGVwMS5oMCBieSBkZWZhdWx0KS4KK0FkZCBhbiBm c2VlayB0byBlbmRmaWxlLmMgdG8gZml4IGEgZ2xpdGNoIG9uIHNvbWUgc3lzdGVtcy4KKworV2Vk IE5vdiAyOCAxNzo1ODoxMiBFU1QgMjAwMQorICBsaWJmMmMuemlwOiAgb24gSUVFRSBzeXN0ZW1z LCBwcmludCAtMCBhcyAtMCB3aGVuIHRoZSByZWxldmFudAorbGliZjJjL21ha2VmaWxlLiogaXMg c3VpdGFibHkgYWRqdXN0ZWQ6ICBzZWUgY29tbWVudHMgYWJvdXQKKy1EU0lHTkVEX1pFUk9TIGlu IGxpYmYyYy9tYWtlZmlsZS4qLgorCitGcmkgSmFuIDE4IDE2OjE3OjQ0IEVTVCAyMDAyCisgIGxp YmYyYy56aXA6ICAgZml4IGJ1Z3MgKHJlcG9ydGVkIGJ5IEhvbGdlciBIZWxta2UpIGluIHFiaXRf Yml0cygpOgord3JvbmcgcmV0dXJuIHR5cGUsIG1pc3NpbmcgfiBvbiB5IGluIHJldHVybiB2YWx1 ZS4gIFRoaXMgYWZmZWN0cwordGhlIGludHJpbnNpYyBpYml0cyBmdW5jdGlvbiBmb3IgZmlyc3Qg YXJndW1lbnQgb2YgdHlwZSBpbnRlZ2VyKjguCisKK1RodSBGZWIgIDcgMTc6MTQ6NDMgRVNUIDIw MDIKKyAgRml4IGJ1ZyBoYW5kbGluZyBsZWFkaW5nIGFycmF5IGRpbWVuc2lvbnMgaW4gY29tbW9u OiAgaW52YWxpZCBDCityZXN1bHRlZC4gIEV4YW1wbGUgKGFmdGVyIG9uZSBwcm92aWRlZCBieSBE bWl0cnkgRy4gQmFrc2hleWV2KToKKworCXN1YnJvdXRpbmUgZm9vKGEpCisJY29tbW9uL2MvbQor CWludGVnZXIgbSwgbgorCWVxdWl2YWxlbmNlKG0sbikKKwlpbnRlZ2VyIGEobiwyKQorCWEoMSwy KSA9IDMKKwllbmQKKworICBGaXggYSBidWcsIGFwcGFyZW50bHkgaW50cm9kdWNlZCBzb21ldGlt ZSBhZnRlciAxOTk4MDkxMywgaW4KK2hhbmRsaW5nIGNlcnRhaW4gc3Vic3RyaW5nIGV4cHJlc3Np b25zIHRoYXQgaW52b2x2ZSB0ZW1wb3JhcnkKK2Fzc2lnbm1lbnRzIGFuZCB0aGUgZmlyc3QgaW52 b2NhdGlvbiBvZiBhbiBpbXBsaWNpdGx5IHR5cGVkIGZ1bmN0aW9uLgorV2hlbiB0aGUgZXhwcmVz c2lvbnMgYXBwZWFyZWQgaW4gImVsc2UgaWYgKC4uLikiICBhbmQgImRvIHdoaWxlKC4uLikiLAor dGhlIHRlbXBvcmFyeSBhc3NpZ25tZW50cyBhcHBlYXJlZCB0b28gc29vbi4gIEV4YW1wbGVzIGFy ZSBoYXJkIHRvCitmaW5kLCBidXQgaGVyZSBpcyBvbmUgKGFmdGVyIGFuIGV4YW1wbGUgcHJvdmlk ZWQgYnkgTmF0IEJhY2htYW4pOgorCisJc3Vicm91dGluZSBmb28obikKKwljaGFyYWN0ZXIqOCBz CisJZG8gd2hpbGUgKG1vbyhzKG4rMTpuKzIpKSAuZ2UuIDIpCisJCW4gPSBuICsgMQorCQllbmRk bworCWVuZAorCitJdCBpcyBoYXJkIGZvciBmMmMgdG8gZ2V0IHRoaXMgc29ydCBvZiBleGFtcGxl IGNvcnJlY3Qgd2hlbiB0aGUKKyJ1bnR5cGVkIiBmdW5jdGlvbiBpcyBhIGdlbmVyaWMgaW50cmlu c2ljLiAgV2hlbiBpbmNvcnJlY3QgY29kZSB3b3VsZAorb3RoZXJ3aXNlIHJlc3VsdCwgZjJjIG5v dyBpc3N1ZXMgYW4gZXJyb3IgbWVzc2FnZSBhbmQgZGVjbGluZXMgdG8KK3Byb2R1Y2UgQy4gIEZv ciBleGFtcGxlLAorCisJc3Vicm91dGluZSBmb28obikKKwljaGFyYWN0ZXIqOCBzCisJZG91Ymxl IHByZWNpc2lvbiBnb28KKwlkbyB3aGlsZSAoc2luKGdvbyhzKG4rMTpuKzIpKSkgLmdlLiAyKQor CQluID0gbiArIDEKKwkJZW5kZG8KKwllbmQKKworZ2l2ZXMgdGhlIG5ldyBlcnJvciBtZXNzYWdl LCBidXQgYm90aAorCisJc3Vicm91dGluZSBmb28obikKKwljaGFyYWN0ZXIqOCBzCisJZG91Ymxl IHByZWNpc2lvbiBnb28KKwlkbyB3aGlsZSAoZHNpbihnb28ocyhuKzE6bisyKSkpIC5nZS4gMikK KwkJbiA9IG4gKyAxCisJCWVuZGRvCisJZW5kCithbmQKKwlzdWJyb3V0aW5lIGZvbyhuKQorCWNo YXJhY3Rlcio4IHMKKwlkb3VibGUgcHJlY2lzaW9uIGdvbworCWRvIHdoaWxlIChzaW4oZ29vKG1p bihuLCAobi0zKSoqMikpKSAuZ2UuIDIpCisJCW4gPSBuICsgMQorCQllbmRkbworCWVuZAorCitn aXZlIGNvcnJlY3QgQy4KKworRnJpIEZlYiAgOCAwODo0Mzo0MCBFU1QgMjAwMgorICBNYWtlIGEg Y2xlYW5lciBmaXggb2YgdGhlIGJ1ZyBmaXhlZCB5ZXN0ZXJkYXkgaW4gaGFuZGxpbmcgY2VydGFp bgorImRvIHdoaWxlKC4uLikiIGFuZCAiZWxzZSBpZiAoLi4uKSIgY29uc3RydWN0cyBpbnZvbHZp bmcgYXV4aWxpYXJ5Cithc3NpZ25tZW50cy4gIChZZXN0ZXJkYXkncyBjaGFuZ2VzIHRvIGV4cHIu YyBhcmUgcmVjYW50ZWQ7IGV4cHIuYworaXMgbm93IHJlc3RvcmVkIHRvIHRoYXQgb2YgMjAwMTA4 MjAuKSAgTm93CisKKwlzdWJyb3V0aW5lIGZvbyhuKQorCWNoYXJhY3Rlcio4IHMKKwlkb3VibGUg cHJlY2lzaW9uIGdvbworCWRvIHdoaWxlIChzaW4oZ29vKHMobisxOm4rMikpKSAuZ2UuIDAuMikK KwkJbiA9IG4gKyAxCisJCWVuZGRvCisJZW5kCisKK2lzIGNvcnJlY3RseSB0cmFuc2xhdGVkLgor CitUaHUgTWFyIDE0IDEyOjUzOjA4IEVTVCAyMDAyCisgIGxleC5jOiAgYWRqdXN0IHRvIGF2b2lk IGFuIGVycm9yIG1lc3NhZ2UgdW5kZXIgLTcyIHdoZW4gc291cmNlIGZpbGVzCithcmUgaW4gQ1JM RiBmb3JtICgidGV4dCBtb2RlIiBvbiBNaWNyb3NvZnQgc3lzdGVtcyksIGEgc291cmNlIGxpbmUg aXMKK2V4YWN0bHkgNzIgY2hhcmFjdGVycyBsb25nLCBhbmQgZjJjIGlzIHJ1biBvbiBhIHN5c3Rl bSAoc3VjaCBhcyBhIFVuaXgKK29yIExpbnV4IHN5c3RlbSkgdGhhdCBkb2VzIG5vdCBkaXN0aW5n dWlzaCB0ZXh0IGFuZCBiaW5hcnkgbW9kZXMuCitFeGFtcGxlIChpbiBDUkxGIGZvcm0pOgorICAg ICAgd3JpdGUoKiwqKSJIZWxsbyB3b3JsZCwgd2l0aCBhIHNvdXJjZSBsaW5lIHRoYXQgaXMgNzIg Y2hhcnMgbG9uZy4iCisgICAgICBlbmQKKyAgbGliZjJjL3pfbG9nLmM6ICBhZGQgY29kZSB0byBj b3BlIHdpdGggYnVnZ3kgY29tcGlsZXJzIChlLmcuLCBzb21lCit2ZXJzaW9ucyBvZiBnY2MgdW5k ZXIgLU8yIG9yIC1PMykgdGhhdCBkbyBmbG9hdGluZy1wb2ludCBjb21wYXJpc29ucworYWdhaW5z dCB2YWx1ZXMgY29tcHV0ZWQgaW50byBleHRlbmRlZC1wcmVjaXNpb24gcmVnaXN0ZXJzIG9uIHNv bWUKK3N5c3RlbXMgKHN1Y2ggYXMgSW50ZWwgSUEzMiBzeXN0ZW1zKS4gIENvbXBpbGUgd2l0aAor LUROT19ET1VCTEVfRVhURU5ERUQgdG8gb21pdCB0aGUga2x1ZGdlIHRoYXQgY2lyY3VtdmVudHMg dGhpcyBidWcuCisKK1RodSBNYXkgIDIgMTk6MDk6MDEgRURUIDIwMDIKKyAgc3JjL21pc2MuYywg c3JjL3N5c2RlcC5oLCBzcmMvZ3JhbS5jOiB0d2Vha3MgZm9yIEtSX2hlYWRlcnMgKGEgcmFyZQor Y29uY2VybiB0b2RheSk7IHZlcnNpb24uYyB0b3VjaGVkIGJ1dCBsZWZ0IHVuY2hhbmdlZC4KKyAg bGliZjJjOiBmaXggZ2xpdGNoIGluIG1ha2VmaWxlLnZjOyBLUl9oZWFkZXIgdHdlYWtzIGluIHNf c3RvcC5jCithbmQgdW5pbml0LmMgKHdoaWNoIGFsc28gaGFkIGEgbWlzcGxhY2VkICNlbmRpZiku CisKK1dlZCBKdW4gIDUgMTY6MTM6MzQgRURUIDIwMDIKKyAgbGliZjJjOiB1bmluaXQuYzogZm9y IExpbnV4IG9uIGFuIEFSTSBwcm9jZXNzb3IsIGFkZCBzb21lCisjaWZuZGVmIF9GUFUuLi4gdGVz dHM7IGY3N3ZlcnMuYyBub3QgY2hhbmdlZC4KKworVHVlIEp1biAyNSAxNToxMzozMiBFRFQgMjAw MgorICBOZXcgY29tbWFuZC1saW5lIG9wdGlvbiAtSyByZXF1ZXN0cyBvbGQtc3R5bGUgKCJLJlIi KSBDLiAgVGhlCitkZWZhdWx0IGlzIGNoYW5nZWQgdG8gLUEgKEFOU0kvSVNPIHN0eWxlKS4KKyAg VW5kZXIgLUssIGNhc3Qgc3RyaW5nLWxlbmd0aCBhcmd1bWVudHMgdG8gKGZ0bmxlbikuICBUaGlz IHNob3VsZAorbWF0dGVyIG9ubHkgaW4gdGhlIHVudXN1YWwgY2FzZSB0aGF0ICJyZWFkbWUiIGlu c3RydWN0cyBvYnRhaW5pbmcKK2YyYy5oIGJ5CisJc2VkICdzL2xvbmcgaW50IC9sb25nIGxvbmcg LycgZjJjLmgwID5mMmMuaAorICBJbmNyZWFzZSBkZWZhdWx0cyBmb3Igc29tZSB0YWJsZSBzaXpl czogIG1ha2UgLU5uODAyIC1OcTMwMCAtTng0MDAKK3RoZSBkZWZhdWx0LgorCitGcmkgU2VwICA2 IDE4OjM5OjI0IEVEVCAyMDAyCisgIGxpYmYyYy56aXA6IHJzbmUuYzogZml4IGJ1ZyB3aXRoIG11 bHRpcGxlIHJlcGVhdCBjb3VudHMgaW4gcmVhZGluZworbmFtZWxpc3RzLCBlLmcuLCAmbmwgYSgy KSA9IDMqMS4wLCAyKjIuMCwgMyozLjAgLworKEJ1ZyBmb3VuZCBieSBKaW0gTWNEb25hbGQsIHJl cG9ydGVkIGJ5IFRvb24gTW9lbmUuKQorCitGcmkgT2N0ICA0IDEwOjIzOjUxIEVEVCAyMDAyCisg IGxpYmYyYy56aXA6IHVuaW5pdC5jOiBvbiBJUklYIHN5c3RlbXMsIG9taXQgcmVmZXJlbmNlcyB0 byBzaGVsbAordmFyaWFibGVzIChhIGRyZWcpLiAgVGhpcyBvbmx5IG1hdHRlcnMgd2l0aCBmMmMg LXRyYXB1diAuCisKK1RodSBEZWMgMTIgMjI6MTY6MDAgRVNUIDIwMDIKKyAgcHJvYy5jOiB0d2Vh ayB0byBvbWl0ICIqIDEiIGZyb20gImFfb2Zmc2V0ID0gMSArIGFfZGltMSAqIDE7Ii4KKyAgbGli ZjJjLnppcDogdW5pbml0LmM6IGFkanVzdCB0byB3b3JrIHdpdGggSFAtVVggQi4xMS4xMSBhcyB3 ZWxsIGFzCitIUC1VWCBCLjEwLjIwOyBmNzd2ZXJzLmMgbm90IGNoYW5nZWQuCisKK1R1ZSBGZWIg MTEgMDg6MTk6NTQgRVNUIDIwMDMKKyAgRml4IGEgZmF1bHQgd2l0aCBmMmMgLXMgb24gdGhlIGZv bGxvd2luZyBleGFtcGxlIG9mIGludmFsaWQgRm9ydHJhbgorKHJlcG9ydGVkIGJ5IE5pY2tvbGF5 IEEuIEtob2tobG92KTsgImZ1bmN0aW9uIiBzaG91bGQgYXBwZWFyIGJlZm9yZQorImNhdCIgb24g dGhlIGZpcnN0IGxpbmU6CisJY2hhcmFjdGVyKigqKSBjYXQoYSwgYikKKwljaGFyYWN0ZXIqKCop IGEsIGIKKwljYXQgPSBhIC8vIGIKKwllbmQKKyAgSXNzdWUgd2FybmluZ3MgYWJvdXQgaW5hcHBy b3ByaWF0ZSB1c2VzIG9mIGFycmF5cyBhLCBiLCBjIGFuZCBwYXNzCithIHRlbXBvcmFyeSBmb3Ig ZCBpbgorCXJlYWwgYSgyKSwgYigyKSwgYygyKSwgZAorCWNhbGwgZm9vKChhKSwgMSpiLCArYywg K2QpCisJZW5kCisoY29ycmVjdGluZyBidWdzIHJlcG9ydGVkIGJ5IEFybmF1ZCBEZXNpdHRlciku CisKK1RodSBNYXIgIDYgMjI6NDg6MDggRVNUIDIwMDMKKyAgb3V0cHV0LmM6IGZpeCBhIGJ1ZyBs ZWFkaW5nIHRvICJVbmV4cGVjdGVkIHRhZyA0IGluIG9wY29udl9mdWRnZSIKK3doZW4gZjJjIC1z IHByb2Nlc3NlcyB0aGUgcmVhbCBwYXJ0IG9mIGEgY29tcGxleCBhcnJheSByZWZlcmVuY2UuCitF eGFtcGxlIChzaW1wbGlmaWVkIGZyb20gbmV0bGliL2xpbnBhY2svemNoZGMuZik6CisKKwlzdWJy b3V0aW5lIGZvbyhhLHdvcmssbixrKQorCWludGVnZXIgaywgbgorCWNvbXBsZXgqMTYgYShuLG4p LCB3b3JrKG4pCisJd29yayhrKSA9IGRjbXBseChkc3FydChkcmVhbChhKGssaykpKSwwLjBkMCkK KwllbmQKKworKFRoYW5rcyB0byBOaWNrb2xheSBBLiBLaG9raGxvdiBmb3IgdGhlIGJ1ZyByZXBv cnQuKQorCitUaHUgTWFyIDIwIDEzOjUwOjEyIEVTVCAyMDAzCisgIGZvcm1hdC5jOiAgY29kZSBh cm91bmQgYSBidWcgKHJlcG9ydGVkIGJ5IE5lbHNvbiBILiBGLiBCZWViZSkgaW4KK3NvbWUgdmVy c2lvbnMgb2YgRnJlZUJTRC4gIENvbXBpbGluZyB3aXRoIF9fRnJlZUJTRF9fIGJ1dCBub3QKK05P X0ZTQ0FORl9MTF9CVUcgI2RlZmluZWQgb3Igd2l0aCBGU0NBTkZfTExfQlVHICNkZWZpbmVkIGNh dXNlcworc3BlY2lhbCBsb2dpYyB0byByZXBsYWNlICBmc2NhbmYoaW5maWxlLCAiJWxseCIsIHJl c3VsdCkgIHdpdGgKK2N1c3RvbSBsb2dpYy4gIEhlcmUncyBhbiBleGFtcGxlIChmcm9tIEJlZWJl KSB3aGVyZSB0aGUgYnVnIGJpdDoKKwlpbnRlZ2VyKjggbSwgbgorCW0gPSA5MjIzMzcyMDM2ODU0 Nzc1ODA3CisJZW5kCisKK0ZyaSBNYXIgMjEgMTM6MTQ6MDUgRVNUIDIwMDMKKyAgbGliZjJjLnpp cDogZXJyLmM6IGJlZm9yZSB3cml0aW5nIHRvIGEgZmlsZSBhZnRlciByZWFkaW5nIGZyb20gaXQs CitkbyBhbiBmX3NlZWsoZmlsZSwgMCwgU0VFS19DVVIpIHRvIG1ha2Ugd3JpdGluZyBsZWdhbCBp biBBTlNJIEMuCisKK0ZyaSBKdW4gIDYgMTQ6NTY6NDQgRURUIDIwMDMKK2xpYmYyYy56aXA6ICBh ZGQgY29tbWVudHMgYWJvdXQgbGliZjJjLnNvIChhbmQgYSBydWxlIHRoYXQgd29ya3MgdW5kZXIK K0xpbnV4LCBhZnRlciBhbiBhZGp1c3RtZW50IHRvIHRoZSBDRkxBR1MgPSBsaW5lKSB0byBsaWJm MmMvbWFrZWZpbGUudS4KKworU2F0IE9jdCAyNSAwNzo1Nzo1MyBNRFQgMjAwMworUkVBRE1FLCBt YWluLmMsIHN5c2RlcC5jOiAgYWRqdXN0IGNvbW1lbnRzIGFib3V0IGxpYmYyYyBhbmQgZXhwYW5k IHRoZQorY29tbWVudHMgdGhlcmVvbiBpbiB0aGUgQyB0aGF0IGYyYyB3cml0ZXMgKHNpbmNlIHRv byBmZXcgcGVvcGxlIHJlYWQKK3RoZSBSRUFETUUgZmlsZXMpLiAgQ2hhbmdlIG1ha2VmaWxlIHRv IG1ha2VmaWxlLnUgKHdpdGggdGhlCitleHBlY3RhdGlvbiB0aGF0IHBlb3BsZSB3aWxsICJjcCBt YWtlZmlsZS51IG1ha2VmaWxlIiBhbmQgZWRpdAorbWFrZWZpbGUgaWYgbmVjZXNzYXJ5KSBhbmQg YWRkIG1ha2VmaWxlLnZjIChmb3IgTWljcm9zb2Z0IFZpc3VhbCBDKyspLgorCitUaHUgT2N0ICA3 IDIzOjI1OjI4IE1EVCAyMDA0CituYW1lcy5jOiBmb3IgY29udmVuaWVuY2Ugb2YgTVNWQysrIHVz ZXJzLCBtYXAgImNkZWNsIiB0byAiY2RlY2xfXyIuCisKK0ZyaSBNYXIgIDQgMTg6NDA6NDggTVNU IDIwMDUKK3N5c2RlcC5jLCBtYWtlZmlsZS51LCBuZXcgZmlsZSBzeXNkZXB0ZXN0LmM6ICBjaGFu Z2VzIGluIHJlc3BvbnNlIHRvIGEKK21lc3NhZ2UgZm9yd2FyZGVkIGJ5IEVyaWMgR3Jvc3NlIGZy b20gVGhpZXJyeSBDYXJyZXogPGtvb25AZ2VudG9vLm9yZz4KKyh3aG8gaXMgYXBwYXJlbnRseSB1 bmF3YXJlIG9mIGYyYydzIC1UIG9wdGlvbikgYWJvdXQgYW4gdW5saWtlbHkKK3NlY3VyaXR5IGlz c3VlOiAgdGhhdCBhIGxvY2FsIGF0dGFja2VyIGNvdWxkIHBsYW50IHN5bWJvbGljIGxpbmtzIGlu CisvdG1wIGNvcnJlc3BvbmRpbmcgdG8gdGVtcG9yYXJ5IGZpbGUgbmFtZXMgdGhhdCBmMmMgZ2Vu ZXJhdGVzIGFuZCB0aHVzCitjYXVzZSBvdmVyd3JpdGluZyBvZiBhcmJpdHJhcnkgZmlsZXMuICBU b2RheSdzIGNoYW5nZSBpcyB0aGF0IGlmCituZWl0aGVyIC1UIG5vciB0aGUgdW51c3VhbCBkZWJ1 Z2dpbmcgZmxhZyAtRG4gaXMgc3BlY2lmaWVkIGFuZCB0aGUKK3N5c3RlbSBpcyBub3QgYW4gTVMt V2luZG93cyBzeXN0ZW0gKHdoaWNoIGNhbm5vdCBoYXZlIHN5bWJvbGljIGxpbmtzLAorYXMgZmFy IGFzIEkga25vdyksIHRoZW4gZjJjJ3MgdGVtcG9yYXJ5IGZpbGVzIHdpbGwgYmUgd3JpdHRlbiBp biBhCit0ZW1wb3JhcnkgZGlyZWN0b3J5IHRoYXQgaXMgcmVhZGFibGUgYW5kIHdyaXRhYmxlIG9u bHkgYnkgdGhlIHVzZXIgYW5kCit0aGF0IGlzIHJlbW92ZWQgYXQgdGhlIGVuZCBvZiBmMmMncyBl eGVjdXRpb24uICBUbyBkaXNhYmxlIHRvZGF5J3MKK2NoYW5nZSwgY29tcGlsZSBzeXNkZXAuYyB3 aXRoIC1ETk9fVEVNUERJUiAoaS5lLiwgd2l0aCBOT19URU1QRElSCisjZGVmaW5lZCkuCisKK1N1 biBNYXIgMjcgMjA6MDY6NDkgTVNUIDIwMDUKK3N5c2RlcC5jOiBpbiBzZXRfdG1wX25hbWVzKCks IGZpeCBib3RjaGVkIHBsYWNlbWVudCBvZgorImlmIChkZWJ1Z2ZsYWcgPT0gMSkgcmV0dXJuOyI6 ICBtb3ZlIGl0IGJlbG93IGRlY2xhcmF0aW9ucy4KKworU3VuIE1heSAgMSAyMTo0NTo0NiBNRFQg MjAwNQorc3lzZGVwLmM6ICBmaXggYSBwb3NzaWJsZSBmYXVsdCB1bmRlciAtRE1TRE9TIGFuZCBp bXByb3BlciBoYW5kbGluZworb2YgYSB0bXBuYW0gZmFpbHVyZSB1bmRlciB0aGUgdW51c3VhbCBj b21iaW5hdGlvbiBvZiBib3RoIC1ETk9fTUtEVEVNUAorYW5kIC1ETk9fTUtTVEVNUCAod2l0aG91 dCAtRE5PX1RFTVBESVIpLgorCitUdWUgT2N0ICA0IDIzOjM4OjU0IE1EVCAyMDA1CitsaWJmMmMu emlwOiAgdW5pbml0LmM6ICBvbiBJQTMyIExpbnV4IHN5c3RlbXMsIGxlYXZlIHRoZSByb3VuZGlu ZworcHJlY2lzaW9uIGFsb25lIHJhdGhlciB0aGFuIGZvcmNpbmcgaXQgdG8gNTMgYml0czsgY29t cGlsZSB3aXRoCistRFVOSU5JVF9GMkNfUFJFQ0lTSU9OXzUzIHRvIGdldCB0aGUgZm9ybWVyIGJl aGF2aW9yLiAgVGhpcyBvbmx5CithZmZlY3RzIEZvcnRyYW4gZmlsZXMgdHJhbnNsYXRlZCBieSBm MmMgLXRyYXB1diAuCisKK1N1biBNYXkgIDcgMDA6Mzg6NTkgTURUIDIwMDYKKyAgbWFpbi5jLCB2 ZXJzaW9uLmM6ICBhZGQgb3B0aW9ucyAtPyAob3IgLS1oZWxwKSB0aGF0IHByaW50IG91dAorcG9p bnRlcnMgdG8gdXNhZ2UgZG9jdW1lbnRhdGlvbiBhbmQgLXYgKG9yIC0tdmVyc2lvbikgdGhhdCBw cmludAordGhlIGN1cnJlbnQgdmVyc2lvbi4KKyAgZmMgc2NyaXB0OiAgZml4IGJvdGNoIHdpdGgg LU9bMTIzXTsgcmVjb2duaXplIC0tdmVyc2lvbiAob3IgLXYpCithbmQgLS1oZWxwIChvciAtPyku CisgIEFkZCBmMmMucGRmID09IFBERiB2ZXJzaW9uIG9mIGYyYy5wcy4KKworU3VuIE9jdCAgOCAw Mjo0NTowNCBNRFQgMjAwNgorICBwdXRwY2MuYzogZml4IGdsaXRjaCBpbiBzdWJzY3JpcHRpbmcg Y29tcGxleCB2YXJpYWJsZXM6ICBzdWJzY3JpcHRzCitvZiB0eXBlIGludGVnZXIqOCB3ZXJlIGNv bnZlcnRlZCB0byBpbnRlZ2VyKjQsIHdoaWNoIGNhdXNlcyB0cm91YmxlCit3aGVuIDMyLWJpdCBh ZGRyZXNzaW5nIGRvZXMgbm90IHN1ZmZpY2UuCisKK1R1ZSBTZXAgMTEgMjM6NTQ6MDUgTURUIDIw MDcKKyAgeHN1bS5jOiAgaW5zZXJ0IGV4cGxpY2l0ICJpbnQiIGJlZm9yZSBtYWluLgorCitNb24g RGVjICAzIDIwOjUzOjI0IE1TVCAyMDA3CisgIGxpYmYyYy9tYWluLmM6IGluc2VydCBleHBsaWNp dCAiaW50IiBiZWZvcmUgbWFpbi4KKworU2F0IEFwciAgNSAyMTozOTo1NyBNRFQgMjAwOAorICBs aWJmMmMuemlwOiB0d2Vha3MgZm9yIHBvbGl0aWNhbCBDKysgYW5kIGNvbnN0IGNvcnJlY3RuZXNz LCBhbmQKK3RvIGZpeCBjdHlwZSB0cm91YmxlIGluIHNvbWUgcmVjZW50IExpbnV4IHZlcnNpb25z LiAgTm8gYmVoYXZpb3IKK3Nob3VsZCBjaGFuZ2UuCisKK1N1biBBcHIgIDYgMjI6Mzg6NTYgTURU IDIwMDgKKyAgbGliZjJjLnppcDogYWRqdXN0IGFsdGVybmF0ZSBtYWtlZmlsZXMgdG8gcmVmbGVj dCB5ZXN0ZXJkYXkncyBjaGFuZ2UuCisKK1dlZCBOb3YgMjYgMjM6MjM6MjcgTVNUIDIwMDgKKyAg bGliZjJjLnppcDogYWRkIGJyaWVmIGRpc2N1c3Npb24gb2YgTWFjT1NYIHRvIGNvbW1lbnRzIGlu IG1ha2VmaWxlLnUuCisKK0ZyaSBKYW4gIDIgMjM6MTM6MjUgTVNUIDIwMDkKKyAgbGliZjJjLnpp cDogYWRkICAtRE5PX0lTQVRUWSB0byBDRkxBR1MgYXNzaWdubWVudCBpbiBtYWtlZmlsZS52Yy4K KworU2F0IEFwciAxMSAxODowNjowMCBNRFQgMjAwOQorICBzcmMvc3lzZGVwLmMgc3JjL3N5c2Rl cHRlc3QuYzogdHdlYWsgZm9yIE1hY09TWCAoaW5jbHVkZSA8dW5pc3RkLmg+KS4KKworV2VkIEp1 bCAgNyAxMDo1MToxMiBNRFQgMjAxMAorICBzcmMvZGF0YS5jLCBzcmMvZm9ybWF0LmMsIHNyYy9w MW91dHB1dC5jOiAgImludmlzaWJsZSIgdHdlYWtzIHRvCitzaWxlbmNlIHdhcm5pbmdzIHNlZW4g aW4gY29tcGlsYXRpb24gdW5kZXIgVWJ1bnR1OyB2ZXJzaW9uLmMgbm90IGNoYW5nZWQuCisKK0Zy aSBBdWcgMjcgMDk6MTQ6MTcgTURUIDIwMTAKKyAgZm9ybWF0LmM6IG1ha2Ugc2l6ZW9mKGJ1Zikg ZGVwZW5kIG9uIE1BWE5BTUVMRU4gdG8gZml4IGEgYnVnIHdpdGggbG9uZworbmFtZXMuICBVcGRh dGUgbXN3aW4vZjJjLmV4ZS5neiBhY2NvcmRpbmdseS4KKworRnJpIFNlcCAgMyAxNjowMzoyNCBN RFQgMjAxMAorICBmYzogIGhhdmUgIi1tIC4uLiIgbW9kaWZ5IENDIHJhdGhlciB0aGFuIENGTEFH UyAodG8gYWZmZWN0IGxpbmtpbmcpLgorCitNb24gQXVnICAxIDEzOjQ2OjQwIE1EVCAyMDExCisg IFJFQURNRSwgUkVBRE1FIGluIGxpYmYyYy56aXA6IHVwZGF0ZSBzb21lIG5ldGxpYiBwb2ludGVy cy4KKworVGh1IFNlcCAyNiAxNjo0MjozNSBNRFQgMjAxMworICBhcml0aGNoay5jIGFuZCBzeXNk ZXAxLmgwIHVwZGF0ZWQuICBUaGUgZm9ybWVyIGhhcyBhIG5ldworIiNpZmRlZiBOT19TU1pJWkVf VCIgc2VjdGlvbiBmb3IgdXNlIGVsc2V3aGVyZS4gIFRoZSBsYXR0ZXIgaGFzIGEKK2NoYW5nZSBz dXBwbGllZCBieSBHcmVnb3IgUmljaGFyZHMgZm9yIHVzZSB3aXRoIHNvbWUgbGliYyB2YXJpYW50 cy4KKworRnJpIEp1bCAxMSAxNjoyOTowMyBNRFQgMjAxNAorICBjb21wdHJ5LmJhdCBpbiBsaWJm MmMuemlwIHVwZGF0ZWQuCisKK05PVEU6ICB0aGUgb2xkIGxpYmY3NyBhbmQgbGliaTc3IGJ1bmRs ZXMgYXJlIG5vIGxvbmdlciBiZWluZyB1cGRhdGVkLgorVXNlIGxpYmYyYy56aXAgaW5zdGVhZC4K KworMjAxNjAxMDIKKyAgbWFsbG9jLmM6ICB1c2UgbWVtbW92ZSByYXRoZXIgdGhhbiBtZW1jcHkg aW4gcmVhbGxvYygpLgorCisyMDE4MTAyNgorICBGaXggYW4gYWxsb2NhdGlvbiBnbGl0Y2ggaW4g cHJvYy5jOgorMTE0OWMxMTQ5Cis8IAkgICAgc2l6ZSA9IHNpemVvZihpbnQpICsgKDMgKyAyICog bmQpICogc2l6ZW9mIChleHBwdHIpOworLS0tCis+IAkgICAgc2l6ZSA9IHNpemVvZihzdHJ1Y3Qg RGltYmxvY2spICsgMipzaXplb2YoZXhwcHRyKSoobmQtMSk7CitUaGFua3MgdG8gT2xlIFN0cmVp Y2hlciBmb3IgcG9pbnRpbmcgb3V0IHRoZSBuZWVkIGZvciB0aGlzIGNoYW5nZS4KKworMjAxOTAz MTEKKyAgbWFpbi5jOiAgdXBkYXRlIFVSTCdzIGluICJmMmMgLT8iIGFuZCAiZjJjIC0taGVscCIg b3V0cHV0LgorCisyMDE5MTEyOQorICBwcmVhZC5jOiBmaXggYSBnbGl0Y2ggbm90IGtub3duIHRv IGhhdmUgY2F1c2VkIGFueSB0cm91YmxlOgorMzU1YzM1NQorPCAJCWlmIChjIDwgJzAnICYmIGMg PiAnOScpCistLS0KKz4gCQlpZiAoYyA8ICcwJyB8fCBjID4gJzknKQorCisyMDIwMDQyNQorICBz eXNkZXB0ZXN0LmM6IGFkZCAjaW5jbHVkZSA8c3RkbGliLmg+CisKKzIwMjAwOTE2CisgIGRhdGEu YyBleGVjLmMgZm9ybWF0LmMgZm9ybWF0ZGF0YS5jIGZ0eXBlcy5oIG1lbS5jIG91dHB1dC5jCitw MW91dHB1dC5jIHByb2MuYyBzeXNkZXAuYzogIGludHJvZHVjZSB0eXBlIEFkZHIsIGFuIHVuc2ln bmVkCitpbnRlZ2VyIHR5cGUgdGhhdCBjYW4gaG9sZCBhbiBhZGRyZXNzLiAgVGhlIGNoYW5nZXMg YWxsb3cgY29tcGlsYXRpb24KK29mIHRoZSBmMmMgc291cmNlIG9uIHBsYXRmb3JtcyB0aGF0IGFj dHVhbGx5IHVzZSBtb3JlIHRoYW4gMzIgYml0cworZm9yIGFkZHJlc3Nlcy4gIChNYW55IDY0LWJp dCBwbGF0Zm9ybXMga2VlcCBhZGRyZXNzZXMgPD0gMzIgYml0cworbG9uZyB3aGVuIHBvc3NpYmxl LiAgT25lIHRoYXQgZG9lcyBub3QgYW5kIGZvciB3aGljaCB0b2RheSdzIGNoYW5nZXMKK2FyZSBy ZWxldmFudCBpcyBNaWNyb3NvZnQgV2luZG93cyB3aXRoIE1pY3Jvc29mdCdzIGNsIGNvbXBpbGVy LikKKworMjAyMTA5MjgKKyAgUkVBRE1FOiBhZGQgYSBwYXJhZ3JhcGggYWJvdXQgdGhlIHNpemUg b2YgaW50ZWdlcnMgYW5kIGEgc2ltcGxlCitjaGFuZ2UgdG8gZjJjLmggdGhhdCBpcyBhcHByb3By aWF0ZSB3aGVuIHNpemVvZihpbnQpID09IDQgYW5kCitzaXplb2YobG9uZykgPT0gOC4KKyAgeHN1 bS5jOiB0cml2aWFsIGNoYW5nZSB0byBiYW5pc2ggYSBwZWRhbnRpYyBjb21waWxlciB3YXJuaW5n LgorCisyMDIzMDQyOAorICBwcm9jLmM6ICBmaXggYW5vdGhlciBhbGxvY2F0aW9uIGdsaXRjaCBp biBwcm9jLmM6CisxNzAxYzE3MDEKKzwJICAgIGNrYWxsb2MoIHNpemVvZihpbnQpICsgKDMrMipu ZCkqc2l6ZW9mKGV4cHB0cikgKTsKKy0tLQorPgkgICAgY2thbGxvYyggc2l6ZW9mKHN0cnVjdCBE aW1ibG9jaykgKyAyKnNpemVvZihleHBwdHIpKihuZC0xKSApOworVGhpcyBpcyBzaW1pbGFyIHRv IHRoZSBjaGFuZ2Ugb2YgMjAxODEwMjYgYW5kIHRoZSBuZWVkIGZvciBpdCB3YXMKK3JldmVhbGVk IGluIEUtbWFpbCBmcm9tIE9sZSBTdHJlaWNoZXIuCisKKzIwMjQwMTIzCisgIE5ldyBjb21tYW5k LWxpbmUgb3B0aW9ucyAtSTggYW5kIC1jZjoKKworICAtSTgJQXNzdW1lIDgtYnl0ZSBpbnRlZ2Vy IGFuZCBsb2dpY2FsLCA0LWJ5dGUgUkVBTCwgOC1ieXRlCisJZG91YmxlIHByZWNpc2lvbiBhbmQg Y29tcGxleCwgYW5kIDE2LWJ5dGUgZG91YmxlIGNvbXBsZXgKKwl2YXJpYWJsZXMuICBBcHByb3By aWF0ZSBjaGFuZ2VzIHRvIGYyYy5oIG1heSBiZSBuZWVkZWQuCisKKyAgLWNmCURvIG5vdCByZXBv cnQgdGhlIGN1cnJlbnQgLmYgZmlsZSBleGNlcHQgaW4gZXJyb3IgbWVzc2FnZXMuCisKKzIwMjQw MTMwCisgIEZpeCBhIGdsaXRjaCAobWlzc2VkIGNhc2UpIHdpdGggdGhlIG5ldyAiLWNmIiBjb21t YW5kLWxpbmUgb3B0aW9uLgorICBNaW5vciB1cGRhdGVzIHRvIG1ha2VmaWxlLnUgYW5kIGFkZGl0 aW9uIG9mIGZpby5oMCBpbiBsaWJmMmMuemlwLgorCiswMjQwMzEyCisgIFR3ZWFrcyBmb3IgcGVk YW50cyB3aG8gY29tcGlsZSB3aXRoIC1XZXJyb3I9c3RyaWN0LWFsaWFzaW5nLgorCisyMDI0MDMx MworICBBZGp1c3RlZCB1cGRhdGVzIHRvIDIwMjQwMzEyOiAgbWlzc2VkIHVwZGF0aW5nIHNvbWUg ZmlsZXM7IHZlcnNpb24uYworc3RpbGwgc2F5cyAyMDI0MDMxMi4KKworMjAyNDA1MDQKKyAgVHdl YWsgc3lzZGVwLmMgdG8gd29yayB3aXRoIG5ld2VyIHZlcnNpb25zIG9mIG1pbmd3LgorCisyMDI1 MDMwMworICBUd2VhayBta2ZpbGUucGxhbjkgdG8gZ2VuZXJhdGUgc3lzZGVwLmhkIGFuZCBhZGQg bWtmaWxlLnBsYW45IHRvCitzcmMudGd6IGFuZCB0aGUgbWFrZWZpbGUgdmFyaWFudHMuICBUaGFu a3MgdG8gRmVybmFuIEJvbGFuZG8KKzxmZXJuYW5ib2xhbmRvQGdtYWlsLmNvbT4gZm9yIGhlbHBm dWwgRS1tYWlsLgorICBtYWtlZmlsZS52YyBuZWVkcyB0b2tkZWZzLmggZnJvbSBtYWtlZmlsZS51 IG9yIG1rZmlsZS5wbGFuOS4KCmRpZmYgLS1naXQgYS9mMmMtMjAxMTA4MDEucGF0Y2ggYi9mMmMt MjAxMTA4MDEucGF0Y2gKaW5kZXggM2M0ZmQwYi4uYWY2YWI4OCAxMDA2NDQKLS0tIGEvZjJjLTIw MTEwODAxLnBhdGNoCisrKyBiL2YyYy0yMDExMDgwMS5wYXRjaApAQCAtMzgsOSArMzgsOSBAQAog ICMjIGFycmFuZ2UgZm9yICREWUxEX0xJQlJBUllfUEFUSCB0byBpbmNsdWRlIHRoZSBkaXJlY3Rv cnkgY29udGFpbmluZyBsaWJmMmMuc28uCiAKIC1saWJmMmMuc286ICQoT0ZJTEVTKQotLQkkKEND KSAtc2hhcmVkIC1vIGxpYmYyYy5zbyAkKE9GSUxFUykKKy0JJChDQykgJChMREZMQUdTKSAtc2hh cmVkIC1vIGxpYmYyYy5zbyAkKE9GSUxFUykKICskKFNIQVJFRCk6ICQoT0ZJTEVTKQotKwkkKEND KSAtc2hhcmVkIC1XbCwtc29uYW1lLGxpYmYyYy5zby4wIC1vICRAICQoT0ZJTEVTKSAtbG0gLWxj CisrCSQoQ0MpICQoTERGTEFHUykgLXNoYXJlZCAtV2wsLXNvbmFtZSxsaWJmMmMuc28uMCAtbyAk QCAkKE9GSUxFUykgLWxtIC1sYwogCiAgIyMjIElmIHlvdXIgc3lzdGVtIGxhY2tzIHJhbmxpYiwg eW91IGRvbid0IG5lZWQgaXQ7IHNlZSBSRUFETUUuCiAKQEAgLTUzLDE2ICs1MywzIEBACiAKICBi YWNrc3BhYy5vOglmaW8uaAogIGNsb3NlLm86CWZpby5oCi0tLS0gYS9zcmMvZjJjLmgJMTk5OS0w OS0wNyAxOTo0NjoyNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3NyYy9mMmMuaAkyMDExLTEyLTE0 IDAwOjUzOjE5LjUwMzYwMjAxMSArMDEwMAotQEAgLTcsOCArNyw4IEBACi0gI2lmbmRlZiBGMkNf SU5DTFVERQotICNkZWZpbmUgRjJDX0lOQ0xVREUKLQotLXR5cGVkZWYgbG9uZyBpbnQgaW50ZWdl cjsKLS10eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IHVpbnRlZ2VyOwotK3R5cGVkZWYgaW50IGlu dGVnZXI7Ci0rdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludGVnZXI7Ci0gdHlwZWRlZiBjaGFyICph ZGRyZXNzOwotIHR5cGVkZWYgc2hvcnQgaW50IHNob3J0aW50OwotIHR5cGVkZWYgZmxvYXQgcmVh bDsKCmRpZmYgLS1naXQgYS9mMmMuc3BlYyBiL2YyYy5zcGVjCmluZGV4IDNiNGEzNmQuLmIwMTRh ZWEgMTAwNjQ0Ci0tLSBhL2YyYy5zcGVjCisrKyBiL2YyYy5zcGVjCkBAIC0yLDggKzIsOCBAQAog CiBOYW1lOiAgICAgICAgICAgZjJjCiBTdW1tYXJ5OiAgICAgICAgQSBGb3J0cmFuIDc3IHRvIEMv QysrIGNvbnZlcnNpb24gcHJvZ3JhbQotVmVyc2lvbjogICAgICAgIDIwMjEwOTI4Ci1SZWxlYXNl OiAgICAgICAgMTQlez9kaXN0fQorVmVyc2lvbjogICAgICAgIDIwMjUwMzAzCitSZWxlYXNlOiAg ICAgICAgMSV7P2Rpc3R9CiBMaWNlbnNlOiAgICAgICAgTUlUCiAKIFVSTDogICAgICAgICAgICBo dHRwOi8vd3d3Lm5ldGxpYi5vcmcvZjJjLwpAQCAtMTIsMTAgKzEyLDEwIEBAIFNvdXJjZTE6ICAg ICAgICBodHRwOi8vd3d3Lm5ldGxpYi5vcmcvZjJjL2xpYmYyYy56aXAKIFNvdXJjZTI6ICAgICAg ICBodHRwOi8vd3d3Lm5ldGxpYi5vcmcvZjJjL2YyYy5wZGYKIFNvdXJjZTM6ICAgICAgICBodHRw Oi8vd3d3Lm5ldGxpYi5vcmcvZjJjL2YyYy5wcwogU291cmNlNDogICAgICAgIGh0dHA6Ly93d3cu bmV0bGliLm9yZy9mMmMvZmMKK1NvdXJjZTU6ICAgICAgICBodHRwOi8vd3d3Lm5ldGxpYi5vcmcv ZjJjL2NoYW5nZXMKIAogIyBQYXRjaCBtYWtlZmlsZSB0byBidWlsZCBhIHNoYXJlZCBsaWJyYXJ5 CiBQYXRjaDA6ICAgICAgICAgZjJjLTIwMTEwODAxLnBhdGNoCi1QYXRjaDE6ICAgICAgICAgbGli ZjJjLTIwMTEwODAxLWZvcm1hdC1zZWN1cml0eS5wYXRjaAogUGF0Y2gyOiAgICAgICAgIHVzZS1n bGliYy10by1jaGVjay1mcHUucGF0Y2gKIAogQnVpbGRSZXF1aXJlczogIGdjYwpAQCAtNDksNyAr NDksNyBAQCB1bnppcCAtcXEgJXtTT1VSQ0UxfSAtZCBsaWJmMmMKIHNlZCAtaSAicy9AU09WRVJA LyV7c292ZXJ9LyIgbGliZjJjL21ha2VmaWxlLnUKIAogIyBDb3B5IGluIG90aGVyIHNvdXJjZSBm aWxlcy4KLWNwICV7U09VUkNFMn0gJXtTT1VSQ0UzfSAle1NPVVJDRTR9IC4KK2xuICV7U09VUkNF Mn0gJXtTT1VSQ0UzfSAle1NPVVJDRTR9ICV7U09VUkNFNX0gLi8KIAogCiAlYnVpbGQKQEAgLTcz LDcgKzczLDcgQEAgaW5zdGFsbCAtRHBtIDA3NTUgZmMgJXtidWlsZHJvb3R9JXtfYmluZGlyfS9m NzcKIAogCiAlZmlsZXMKLSVkb2MgZjJjLnBzIGYyYy5wZGYgc3JjL2NoYW5nZXMgc3JjL1JFQURN RQorJWRvYyBmMmMucHMgZjJjLnBkZiBjaGFuZ2VzIHNyYy9SRUFETUUKICVsaWNlbnNlIHNyYy9O b3RpY2UKICV7X2JpbmRpcn0vZjJjCiAle19iaW5kaXJ9L2Y3NwpAQCAtODgsNiArODgsOSBAQCBp bnN0YWxsIC1EcG0gMDc1NSBmYyAle2J1aWxkcm9vdH0le19iaW5kaXJ9L2Y3NwogCiAKICVjaGFu Z2Vsb2cKKyogV2VkIEF1ZyAyNiAyMDI2IEFydHVyIEZyZW5zemVrLUl3aWNraSA8ZmVkb3JhQHN2 Z2FtZXMucGw+IC0gMjAyNTAzMDMtMQorLSBVcGRhdGUgdG8gdjIwMjUwMzAzCisKICogV2VkIEp1 bCAxNSAyMDI2IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVj dC5vcmc+IC0gMjAyMTA5MjgtMTQKIC0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0 Lm9yZy93aWtpL0ZlZG9yYV80NV9NYXNzX1JlYnVpbGQKIAoKZGlmZiAtLWdpdCBhL2xpYmYyYy0y MDExMDgwMS1mb3JtYXQtc2VjdXJpdHkucGF0Y2ggYi9saWJmMmMtMjAxMTA4MDEtZm9ybWF0LXNl Y3VyaXR5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjUwMWI5Li4wMDAw MDAwCi0tLSBhL2xpYmYyYy0yMDExMDgwMS1mb3JtYXQtc2VjdXJpdHkucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxMyArMCwwIEBACi1kaWZmIC0tZ2l0IGEvbGliZjJjL2FyaXRoY2hrLmMgYi9s aWJmMmMvYXJpdGhjaGsuYwotaW5kZXggOGUxNTcyMi4uYTFhMDNhYyAxMDA2NDQKLS0tLSBhL2xp YmYyYy9hcml0aGNoay5jCi0rKysgYi9saWJmMmMvYXJpdGhjaGsuYwotQEAgLTExMCw3ICsxMTAs NyBAQCBpY2hlY2sodm9pZCkKLSAJcmV0dXJuIDA7Ci0gCX0KLSAKLS1jaGFyICplbXB0eWZtdCA9 ICIiOwkvKiBhdm9pZCBwb3NzaWJsZSB3YXJuaW5nIG1lc3NhZ2Ugd2l0aCBwcmludGYoIiIpICov Ci0rY29uc3QgY2hhciBlbXB0eWZtdFtdID0gIiI7CS8qIGF2b2lkIHBvc3NpYmxlIHdhcm5pbmcg bWVzc2FnZSB3aXRoIHByaW50ZigiIikgKi8KLSAKLSAgc3RhdGljIEFraW5kICoKLSBjY2hlY2so dm9pZCkKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCBhNGU3OTA0Li42NjAz MjNkIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEsMiArMSwyIEBACi1T SEE1MTIgKGxpYmYyYy56aXApID0gMTQxYThlZDZhMzljNWMxNTg1YmMyMWM4ZTRkN2FkNzZjZDgx NjlhZWU5NTQ4MzFkMzg1NGRhMTY3NmU0N2IzN2U2NDU1OWNiZWJiY2ViYTdhMzRlZmE3ZjBiMDQ1 YzhjYmZjNzhhOWQ4MTkyODNhZTNhYzFjZjUzZTBkNjBjN2EKLVNIQTUxMiAoc3JjLnRneikgPSA1 YmVmY2VhOWI1ZDhmNmExMDlmZmJkNDcyNzA2YmE1NWE2NDlkNzVlZDMzYmM3YmRlODdhYzZjN2Rh MzY1MDJiM2M1ZTZjYWViMGQ1M2Q5MjBkMDQxYWUyZjhlMmFiMWZmYzBlNjk4YzExZjFlZjdmNmRl NTk5NTA0NzQxYmM3MgorU0hBNTEyIChsaWJmMmMuemlwKSA9IDU5NmJkMDAxN2UwYzRiNjExOTEy MDBhMGJjNzg4Nzc3NTg1MDQ5ZWI5MzljNTI4NjI1MzQ5NDA0Y2M4ZDliYmQwOTU3ZWZlY2Q3OTA3 N2M0ODdmZGZmNWZjN2U0MzUxODk1NzRiMmM0OTVjYWZhYTYwMDZkZDI1ODViMTM5NjBhCitTSEE1 MTIgKHNyYy50Z3opID0gMTg0MzA0ZjNiZGMxOGUyZDlhNWNlYjZhOGFiYjUxMDg3NDkwYjMzZmQx YjAwZTk5YjkyY2I3ZWE3OTJkM2MwYTU2NTg3ZDdkYjc0MjllMzA4OTYwNTk3ODJmNDgzOGQ0YmMx NzY1ZDYxNWQ5NTNkMjY4Njk0YzdhM2E1Yjk5MGUK