From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.8.82; helo=nam03-dm3-obe.outbound.protection.outlook.com; envelope-from=vanjeff_919@hotmail.com; receiver=edk2-devel@lists.01.org Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-oln040092008082.outbound.protection.outlook.com [40.92.8.82]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id F134E2034AB3F for ; Tue, 31 Oct 2017 19:29:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=f/ZpnMDOGlyRSBgIRnCJY9k3aW0QzO1QjwIgUa6ov00=; b=T1gOQCz5pMrqvkU8/K72EYpHesOm6nvCEaoag0dTsTCMjexJz241dmI4gnelJjnh/V14WUQ813kA3MsrxsCbyXtskKvuMSov1Qh0Lk2F9q1F2RdwGpmqjZqudRcBcslr/tsSCEgyTnDAuq7HvXYdOAC9zN3w7eTfp5GGPTjDdZ79P0XwA8cGJBTU2JEX2hc6IGjLw5h/PvSUEPkJ4zzbUo3bcEX3iHF6SLXetmkOTKe27e1l/eiUFvyp+IBAwQYfaAOuPxjZOXAKXr11k7DEMY9T05exl7jXtaIhqT7RfMhhzEk//vxWXuAFt/GewyoOYvP3qvSd49ExLGpEX/AwPA== Received: from CO1NAM03FT023.eop-NAM03.prod.protection.outlook.com (10.152.80.51) by CO1NAM03HT105.eop-NAM03.prod.protection.outlook.com (10.152.81.118) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.197.9; Wed, 1 Nov 2017 02:33:09 +0000 Received: from CY1PR19MB0283.namprd19.prod.outlook.com (10.152.80.54) by CO1NAM03FT023.mail.protection.outlook.com (10.152.80.157) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.197.9 via Frontend Transport; Wed, 1 Nov 2017 02:33:09 +0000 Received: from CY1PR19MB0283.namprd19.prod.outlook.com ([10.163.54.13]) by CY1PR19MB0283.namprd19.prod.outlook.com ([10.163.54.13]) with mapi id 15.20.0178.014; Wed, 1 Nov 2017 02:33:09 +0000 From: Fan Jeff To: "Yao, Jiewen" , "Wang, Jian J" , "edk2-devel@lists.01.org" CC: "Kinney, Michael D" , "Dong, Eric" , "Zeng, Star" Thread-Topic: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support Thread-Index: AQHTUrSw3pJrU3cRZEmMYx4YdaVISaL+y3RD Date: Wed, 1 Nov 2017 02:33:08 +0000 Message-ID: References: <20171031142412.21680-1-jian.j.wang@intel.com> <20171031142412.21680-4-jian.j.wang@intel.com>, <74D8A39837DF1E4DA445A8C0B3885C503AA0AED6@shsmsx102.ccr.corp.intel.com> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AA0AED6@shsmsx102.ccr.corp.intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:0E187A24E5E619223A6870220C876B8EE2AB9D5FDC0461DFEEEF623DE658CA3C; UpperCasedChecksum:33D8F1740ECC1261CD2796DCAD5930D9BCA4BC893EB197C8E561D3D245C6092D; SizeAsReceived:7479; Count:47 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [VB/WYPSvaAZGbfZZseq4ujaecpjzkQ8+] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; CO1NAM03HT105; 6:Z4P7u8bfs79iLSrVKza5E1oUs3xrWPraHSELXDadsw6yB3T5uzNhIzFWwH80JwZnkMFtq7sxz2Yx9VNWkIyUu32BycrGwxafP5dvmfh0sBvtUxpp2mh7bYctTseZ5XtoTL45LxQqhNhS69bOpNe5B/aqqURwG1zk0mPIhVxtT7ds96dryP1dR6tExahSqlt1Gzehy243ZAlONNFER1jMGfJbDkNrdQCk3kSaAuwAfH6uGVPtFv0V+YJThFkL9vtzuTiQfmsmEWgV/zMA+xTu8fYnD/4CW0jXx/ohB0POeJMf06oYpC06rmlUGD//r1x/i8Sfgc/v1rDRXy1v9y7Mta6b7j6ltmuwPrw2CcO02x8=; 5:522lsd6z10Qjyc4PA6yKiulywKUUnIPbwy3k516cnvQDW23EH5NbZUglVCz2JD2FOHPcrB2AzBwFUM72jJLpiQGDfNXFzvE2RM5NATk2RpTw7vmSzdEahJDBVzw0TFVpT9UkUXMkH3wrzhqt8Def4I32AcOz1pYSiaIdweC6R8M=; 24:9OZXutgzDZ3KvXz2qvjS0NHX6+wh7inBtvIxoWinDVPd17oQHKNWxakQ+VEm488aZjrX6fZWjxXytxsQ5ZYxpMGrIP+96YPWA6ihob51EyE=; 7:bxqdIBjiWWEy8oHaNXMv6vYDd2EvvaOECWz+fhsJ3iFwAuT+nvymIdFRw4dMu2WDXjM3vyZD35HKVI+pbkfATCca3zFCEbTJPb34byzXl6+5kW70XDO0uynIQU0AnKd2Vjb1eA86ShCSWN44A6nn3hEcnkaDN2rKdLMdQYnhpa2EBeg06DGchmvlTTDBspNr/GxxXIPmTPsA6WAc5VHNLNyeVzj1ZWMNbgK5K0p6FypGrx6K66JS8GhAELE7z7Ho x-incomingheadercount: 47 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: 83ca6aef-4e68-49c3-dcaa-08d520d0e3d0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1601125374)(1603101448)(1701031045); SRVR:CO1NAM03HT105; x-ms-traffictypediagnostic: CO1NAM03HT105: authentication-results: outbound.protection.outlook.com; spf=skipped (originating message); dkim=none (message not signed) header.d=none; dmarc=none action=none header.from=hotmail.com; x-exchange-antispam-report-test: UriScan:(788757137089)(162533806227266)(21748063052155)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(444000031); SRVR:CO1NAM03HT105; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CO1NAM03HT105; x-forefront-prvs: 0478C23FE0 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:CO1NAM03HT105; H:CY1PR19MB0283.namprd19.prod.outlook.com; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83ca6aef-4e68-49c3-dcaa-08d520d0e3d0 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2017 02:33:08.8789 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1NAM03HT105 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: =?UTF-8?B?562U5aSNOiBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2ggc3VwcG9ydA==?= X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Nov 2017 02:29:23 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 UGVyIGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5LCBU UiBzaG91bGQgYmUgc2V0dXAgKFN1Y2ggYXMgaW4gRHhlSXBsUGVpbSkgZXZlbiB0aG91Z2ggTlVM TCBDcHUgRXhjZXB0aW9uIEhhbmRsZXIgaW5zdGFuY2UgaXMgY2hvc2VuLg0KDQpGb3IgbG9uZyB0 ZXJtLCBJIGFncmVlIHdlIG5lZWQgdG8gbW92ZSBBc21Xcml0ZVRyLCBJQTMyX1RBU0tfU1RBVEVf U0VHTUVOVCwgSUEzMl9UU1NfREVTQ1JJUFRPUiB0byBNZGVQa2coU3VjaCBhcyBCYXNlTGliKQ0K Rm9yIHRoaXMgcGF0Y2gsIEkgaGF2ZSBubyBzdHJvbmcgb3Bpbmlvbi4NCg0KDQq3orz+yMs6IFlh bywgSmlld2VuPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4NCreiy83KsbzkOiAyMDE3xOox MdTCMcjVIDk6NTYNCsrVvP7IyzogV2FuZywgSmlhbiBKPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRl bC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmc+DQqzrcvNOiBLaW5uZXksIE1pY2hhZWwgRDxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+OyBEb25nLCBFcmljPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29tPjsgWmVuZywg U3RhcjxtYWlsdG86c3Rhci56ZW5nQGludGVsLmNvbT4NCtb3zOI6IFJlOiBbZWRrMl0gW1BBVENI IDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBBZGQgc3RhY2sgc3dpdGNo IHN1cHBvcnQNCg0KSGkgSmlhbg0KVGhhbmtzIGZvciB0aGUgcGF0Y2guDQoNCkNhbiB3ZSBtb3Zl IGFsbCBJQTMyIGRlZmluZWQgZGF0YSBzdHJ1Y3R1cmUgb3IgZnVuY3Rpb24gdG8gTWRlUGtnPw0K U3VjaCBhczogQXNtV3JpdGVUciwgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQsIElBMzJfVFNTX0RF U0NSSVBUT1INCg0KSSBhbSBhbHNvIGN1cmlvdXMgd2h5IHdlIHVzZSBkaWZmZXJlbnQgcG9saWN5 IGZvciBvdGhlciBib290IG1vZGUuDQpDYW4gd2UgdXNlIGNvbnNpc3RlbnQgcG9saWN5Pw0KPiAr ICBpZiAoUGNkR2V0Qm9vbCAoUGNkQ3B1U3RhY2tHdWFyZCkpIHsNCj4gKyAgICAvLw0KPiArICAg IC8vIFN0YWNrIEd1YXJkIHdvcmtzIHdpdGggdGhlIHN1cHBvcnQgb2YgcGFnZSB0YWJsZSBlc3Rh Ymxpc2hlZCBhbmQNCj4gKyAgICAvLyBtZW1vcnkgbWFuYWdlbWVudC4gU28gd2UgaGF2ZSB0byBl eGNsdWRlIHRob3NlIGJvb3QgbW9kZXMNCj4gd2l0aG91dA0KPiArICAgIC8vIHRoZW0uDQo+ICsg ICAgLy8NCj4gKyAgICBzd2l0Y2ggKEdldEJvb3RNb2RlSG9iKCkpIHsNCj4gKyAgICBjYXNlIEJP T1RfT05fRkxBU0hfVVBEQVRFOg0KPiArICAgIGNhc2UgQk9PVF9JTl9SRUNPVkVSWV9NT0RFOg0K PiArICAgIGNhc2UgQk9PVF9PTl9TM19SRVNVTUU6DQo+ICsgICAgICBicmVhazsNCj4gKw0KPiAr ICAgIGRlZmF1bHQ6DQo+ICsgICAgICBBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoSWR0VGFibGUp Ow0KPiArICAgICAgYnJlYWs7DQo+ICsgICAgfQ0KPiArICB9DQoNCg0KVGhhbmsgeW91DQpZYW8g Smlld2VuDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBXYW5nLCBK aWFuIEoNCj4gU2VudDogVHVlc2RheSwgT2N0b2JlciAzMSwgMjAxNyAxMDoyNCBQTQ0KPiBUbzog ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gQ2M6IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRl bC5jb20+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgWWFvLA0KPiBKaWV3ZW4g PGppZXdlbi55YW9AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2gNCj4gc3VwcG9ydA0KPg0KPiBJZiBT dGFjayBHdWFyZCBpcyBlbmFibGVkIGFuZCB0aGVyZSdzIHJlYWxseSBhIHN0YWNrIG92ZXJmbG93 IGhhcHBlbmVkIGR1cmluZw0KPiBib290LCBhIFBhZ2UgRmF1bHQgZXhjZXB0aW9uIHdpbGwgYmUg dHJpZ2dlcmVkLiBCZWNhdXNlIHRoZSBzdGFjayBpcyBvdXQgb2YNCj4gdXNhZ2UsIHRoZSBleGNl cHRpb24gaGFuZGxlciwgd2hpY2ggc2hhcmVzIHRoZSBzdGFjayB3aXRoIG5vcm1hbCBVRUZJIGRy aXZlciwNCj4gY2Fubm90IGJlIGV4ZWN1dGVkIGFuZCBjYW5ub3QgZHVtcCB0aGUgcHJvY2Vzc29y IGluZm9ybWF0aW9uLg0KPg0KPiBXaXRob3V0IHRob3NlIGluZm9ybWF0aW9uLCBpdCdzIHZlcnkg ZGlmZmljdWx0IGZvciB0aGUgQklPUyBkZXZlbG9wZXJzIGxvY2F0ZQ0KPiB0aGUgcm9vdCBjYXVz ZSBvZiBzdGFjayBvdmVyZmxvdy4gQW5kIHdpdGhvdXQgYSB3b3JrYWJsZSBzdGFjaywgdGhlIGRl dmVsb3Blcg0KPiBjYW5ub3QgZXZlbnQgdXNlIHNpbmdsZSBzdGVwIHRvIGRlYnVnIHRoZSBVRUZJ IGRyaXZlciB3aXRoIEpUQUcgZGVidWdnZXIuDQo+DQo+IEluIG9yZGVyIHRvIG1ha2Ugc3VyZSB0 aGUgZXhjZXB0aW9uIGhhbmRsZXIgdG8gZXhlY3V0ZSBub3JtYWxseSBhZnRlciBzdGFjaw0KPiBv dmVyZmxvdy4gV2UgbmVlZCBzZXBhcmF0ZSBzdGFja3MgZm9yIGV4Y2VwdGlvbiBoYW5kbGVycyBp biBjYXNlIG9mIHVudXNhYmxlDQo+IHN0YWNrLg0KPg0KPiBJQSBwcm9jZXNzb3IgYWxsb3dzIHRv IHN3aXRjaCB0byBhIG5ldyBzdGFjayBkdXJpbmcgaGFuZGxpbmcgaW50ZXJydXB0IGFuZA0KPiBl eGNlcHRpb24uIEJ1dCBYNjQgYW5kIElBMzIgcHJvdmlkZXMgZGlmZmVyZW50IHdheXMgdG8gbWFr ZSBpdC4gWDY0IHByb3ZpZGVzDQo+IGludGVycnVwdCBzdGFjayB0YWJsZSAoSVNUKSB0byBhbGxv dyBtYXhpbXVtIDcgZGlmZmVyZW50IGV4Y2VwdGlvbnMgdG8gaGF2ZQ0KPiBuZXcgc3RhY2sgZm9y IGl0cyBoYW5kbGVyLiBJQTMyIGRvZXNuJ3QgaGF2ZSBJU1QgbWVjaGFuaXNtIGFuZCBjYW4gb25s eSB1c2UNCj4gdGFzayBnYXRlIHRvIGRvIGl0IHNpbmNlIHRhc2sgc3dpdGNoIGFsbG93cyB0byBs b2FkIGEgbmV3IHN0YWNrIHRocm91Z2ggaXRzDQo+IHRhc2stc3RhdGUgc2VnbWVudCAoVFNTKS4N Cj4NCj4gTm90ZTogU3RhY2sgc3dpdGNoIG5lZWRzIHRvIGFsbG9jYXRlIG1lbW9yeSBwYWdlcyB0 byBiZSBuZXcgc3RhY2tzLiBTbyB0aGlzDQo+ICAgICAgIGZ1bmN0aW9uYWxpdHkgd29ya3Mgb25s eSBpbiB0aGUgYm9vdCBwaGFzZXMgY2FwYWJsZSBvZiBtZW1vcnkNCj4gICAgICAgYWxsb2NhdGlv biAoYmVzaWRlcyB0aGUgcGFnaW5nLCBmb3IgdGhlIHNha2Ugb2YgU3RhY2sgR3VhcmQpLiBJbg0K PiAgICAgICBvdGhlciB3b3Jkcywgb25seSBEWEUgcGhhc2UgY2FuIHN1cHBvcnRzIFN0YWNrIEd1 YXJkIHdpdGggc3RhY2sgc3dpdGNoLg0KPg0KPiBDYzogU3RhciBaZW5nIDxzdGFyLnplbmdAaW50 ZWwuY29tPg0KPiBDYzogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiBDYzogSmll d2VuIFlhbyA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+IENjOiBNaWNoYWVsIEtpbm5leSA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IFN1Z2dlc3RlZC1ieTogQXllbGxldCBXb2xtYW4g PGF5ZWxsZXQud29sbWFuQGludGVsLmNvbT4NCj4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29y ZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiBTaWduZWQtb2ZmLWJ5OiBKaWFuIEogV2Fu ZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiAtLS0NCj4gIC4uLi9DcHVFeGNlcHRpb25IYW5k bGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oICAgIHwgIDIyICsrDQo+ICAuLi4vRHhlQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAgICAgICAgICB8ICAgNSArDQo+ICAuLi4vTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUV4Y2VwdGlvbi5jICB8ICAxOSArDQo+ICAu Li4vSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jICAgICAgICAgICAgICAgICAgICB8IDEzNSAr KysrKysrDQo+ICAuLi4vSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oICAgICAgICAgICAgICAgICAg ICAgICB8IDEzNiArKysrKysrDQo+ICAuLi4vSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS5uYXNt ICAgICAgICAgICAgICAgICB8IDM5OA0KPiArKysrKysrKysrKysrKysrKysrKysNCj4gIC4uLi9Q ZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4g IC4uLi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiAgICAgICAgICAgICAgIHwgICAz ICsNCj4gIC4uLi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiAgICAgICAgICAgICAgICAg IHwgICAxICsNCj4gIC4uLi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYyAgICAgICAgICAgICAg ICAgICAgIHwgMTA4ICsrKysrKw0KPiAgLi4uL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0Fy Y2hJbnRlcnJ1cHREZWZzLmggfCAgNDAgKysrDQo+ICAuLi4vWDY0L0V4Y2VwdGlvbkhhbmRsZXJB c20uUyAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArDQo+ICAuLi4vWDY0L0V4Y2VwdGlvbkhh bmRsZXJBc20uYXNtICAgICAgICAgICAgICAgICAgICB8ICAxMiArDQo+ICAuLi4vWDY0L0V4Y2Vw dGlvbkhhbmRsZXJBc20ubmFzbSAgICAgICAgICAgICAgICAgICB8ICAxMiArDQo+ICAxNCBmaWxl cyBjaGFuZ2VkLCA5MDQgaW5zZXJ0aW9ucygrKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+IFVl ZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0aW9uVHNz RW50cnlBc20ubmFzbQ0KPg0KPiBkaWZmIC0tZ2l0DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmgNCj4gYi9VZWZpQ3B1UGtn L0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaA0KPiBp bmRleCA3NDBhNTg4MjhiLi5mZDRhMjZhNDU4IDEwMDY0NA0KPiAtLS0gYS9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaA0KPiArKysg Yi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25D b21tb24uaA0KPiBAQCAtMjUsNiArMjUsNyBAQA0KPiAgI2luY2x1ZGUgPExpYnJhcnkvQmFzZU1l bW9yeUxpYi5oPg0KPiAgI2luY2x1ZGUgPExpYnJhcnkvU3luY2hyb25pemF0aW9uTGliLmg+DQo+ ICAjaW5jbHVkZSA8TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliLmg+DQo+ICsjaW5jbHVk ZSA8TGlicmFyeS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+DQo+DQo+ICAjZGVmaW5lICBDUFVfRVhD RVBUSU9OX05VTSAgICAgICAgICAzMg0KPiAgI2RlZmluZSAgQ1BVX0lOVEVSUlVQVF9OVU0gICAg ICAgICAyNTYNCj4gQEAgLTI4OCw1ICsyODksMjYgQEAgQ29tbW9uRXhjZXB0aW9uSGFuZGxlcldv cmtlciAoDQo+ICAgIElOIEVYQ0VQVElPTl9IQU5ETEVSX0RBVEEgICAgICAqRXhjZXB0aW9uSGFu ZGxlckRhdGENCj4gICAgKTsNCj4NCj4gKy8qKg0KPiArICBMb2FkIGdpdmVuIHNlbGVjdG9yIGlu dG8gVFIgcmVnaXN0ZXINCj4gKw0KPiArICBAcGFyYW0gU2VsZWN0b3IgICAgICAgICBUYXNrIHNl Z21lbnQgc2VsZWN0b3INCj4gKyoqLw0KPiArVk9JRA0KPiArQXNtV3JpdGVUciAoDQo+ICsgIFVJ TlQxNiBTZWxlY3Rvcg0KPiArICApOw0KPiArDQo+ICsvKioNCj4gKyAgU2V0dXAgc2VwYXJhdGUg c3RhY2sgZm9yIHNwZWNpZmljIGV4Y2VwdGlvbnMuDQo+ICsNCj4gKyAgQHBhcmFtW2luXSBJZHRU YWJsZSAgICAgICAgSURUIHRhYmxlIGJhc2UuDQo+ICsqKi8NCj4gK1ZPSUQNCj4gK0VGSUFQSQ0K PiArQXJjaFNldHVwRXhjcGV0aW9uU3RhY2sgKA0KPiArICBJTiBJQTMyX0lEVF9HQVRFX0RFU0NS SVBUT1IgICAgICAgICAgICpJZHRUYWJsZQ0KPiArICApOw0KPiArDQo+ICAjZW5kaWYNCj4NCj4g ZGlmZiAtLWdpdA0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGli L0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mDQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYNCj4gaW5k ZXggZjRhOGQwMWM4MC4uYjA5OWVmNGRhZCAxMDA2NDQNCj4gLS0tDQo+IGEvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5p bmYNCj4gKysrDQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIv RHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYNCj4gQEAgLTMwLDYgKzMwLDcgQEANCj4gIFtT b3VyY2VzLklhMzJdDQo+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20NCj4gICAgSWEz Mi9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20NCj4gKyAgSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFz bS5uYXNtDQo+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ICAgIElhMzIvQXJjaEV4 Y2VwdGlvbkhhbmRsZXIuYw0KPiAgICBJYTMyL0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gQEAgLTQ3 LDYgKzQ4LDkgQEANCj4gICAgUGVpRHhlU21tQ3B1RXhjZXB0aW9uLmMNCj4gICAgRHhlRXhjZXB0 aW9uLmMNCj4NCj4gK1tQY2RdDQo+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5Q Y2RDcHVTdGFja0d1YXJkDQo+ICsNCj4gIFtQYWNrYWdlc10NCj4gICAgTWRlUGtnL01kZVBrZy5k ZWMNCj4gICAgTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gQEAgLTYxLDMgKzY1LDQg QEANCj4gICAgUGVDb2ZmR2V0RW50cnlQb2ludExpYg0KPiAgICBNZW1vcnlBbGxvY2F0aW9uTGli DQo+ICAgIERlYnVnTGliDQo+ICsgIEhvYkxpYg0KPiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMNCj4gYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYw0KPiBpbmRl eCAzMWZlYmVjOTc2Li5lOWRjZDAwZTAyIDEwMDY0NA0KPiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYw0KPiArKysgYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYw0KPiBAQCAt MTYsNiArMTYsNyBAQA0KPiAgI2luY2x1ZGUgIkNwdUV4Y2VwdGlvbkNvbW1vbi5oIg0KPiAgI2lu Y2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCj4gICNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFs bG9jYXRpb25MaWIuaD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L0hvYkxpYi5oPg0KPg0KPiAgQ09O U1QgVUlOVE4gICAgbURvRmFyUmV0dXJuRmxhZyAgPSAwOw0KPg0KPiBAQCAtMTU1LDYgKzE1Niwy NCBAQCBJbml0aWFsaXplQ3B1SW50ZXJydXB0SGFuZGxlcnMgKA0KPg0KPiAgICBVcGRhdGVJZHRU YWJsZSAoSWR0VGFibGUsICZUZW1wbGF0ZU1hcCwgJm1FeGNlcHRpb25IYW5kbGVyRGF0YSk7DQo+ DQo+ICsgIGlmIChQY2RHZXRCb29sIChQY2RDcHVTdGFja0d1YXJkKSkgew0KPiArICAgIC8vDQo+ ICsgICAgLy8gU3RhY2sgR3VhcmQgd29ya3Mgd2l0aCB0aGUgc3VwcG9ydCBvZiBwYWdlIHRhYmxl IGVzdGFibGlzaGVkIGFuZA0KPiArICAgIC8vIG1lbW9yeSBtYW5hZ2VtZW50LiBTbyB3ZSBoYXZl IHRvIGV4Y2x1ZGUgdGhvc2UgYm9vdCBtb2Rlcw0KPiB3aXRob3V0DQo+ICsgICAgLy8gdGhlbS4N Cj4gKyAgICAvLw0KPiArICAgIHN3aXRjaCAoR2V0Qm9vdE1vZGVIb2IoKSkgew0KPiArICAgIGNh c2UgQk9PVF9PTl9GTEFTSF9VUERBVEU6DQo+ICsgICAgY2FzZSBCT09UX0lOX1JFQ09WRVJZX01P REU6DQo+ICsgICAgY2FzZSBCT09UX09OX1MzX1JFU1VNRToNCj4gKyAgICAgIGJyZWFrOw0KPiAr DQo+ICsgICAgZGVmYXVsdDoNCj4gKyAgICAgIEFyY2hTZXR1cEV4Y3BldGlvblN0YWNrIChJZHRU YWJsZSk7DQo+ICsgICAgICBicmVhazsNCj4gKyAgICB9DQo+ICsgIH0NCj4gKw0KPiAgICAvLw0K PiAgICAvLyBMb2FkIEludGVycnVwdCBEZXNjcmlwdG9yIFRhYmxlDQo+ICAgIC8vDQo+IGRpZmYg LS1naXQNCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMy L0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gaW5kZXggZjJjMzll YjE5My4uM2Q0MWRmNzVhNSAxMDA2NDQNCj4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ICsrKw0KPiBi L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEV4Y2Vw dGlvbkhhbmRsZXIuYw0KPiBAQCAtMTQsNiArMTQsMTkgQEANCj4NCj4gICNpbmNsdWRlICJDcHVF eGNlcHRpb25Db21tb24uaCINCj4NCj4gKy8vDQo+ICsvLyBMaXN0IG9mIGV4Y2VwdGlvbnMgbmVl ZGluZyBzZXBhcmF0ZSBzdGFjaw0KPiArLy8NCj4gK1NUQVRJQyBJQTMyX0VYQ0VQVElPTl9UU19F TlRSWSBtRXhjZXB0aW9uc1dpdGhTdGFja1tdID0gew0KPiArICB7NiwgIEV4Y2VwdGlvblRhc2tT d3RpY2hFbnRyeTZ9LCAgLy8jVUQ6IEludmFsaWQgT3Bjb2RlIEV4Y2VwdGlvbg0KPiArICB7OCwg IEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTh9LCAgLy8jREY6IERvdWJsZSBGYXVsdCBFeGNlcHRp b24NCj4gKyAgezEyLCBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxMn0sIC8vI1NTOiBTdGFjayBG YXVsdCBFeGNlcHRpb24NCj4gKyAgezEzLCBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxM30sIC8v I0dQOiBHZW5lcmFsIFByb3RlY3Rpb24gRXhjZXB0aW9uDQo+ICsgIHsxNCwgRXhjZXB0aW9uVGFz a1N3dGljaEVudHJ5MTR9LCAvLyNQRjogUGFnZS1GYXVsdCBFeGNlcHRpb24NCj4gKyAgezE3LCBF eGNlcHRpb25UYXNrU3d0aWNoRW50cnkxN30sIC8vI0FDOiBBbGlnbm1lbnQgQ2hlY2sgRXhjZXB0 aW9uDQo+ICsgIHsxOCwgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTh9ICAvLyNNQzogTWFjaGlu ZS1DaGVjayBFeGNlcHRpb24NCj4gK307DQo+ICsNCj4gIC8qKg0KPiAgICBSZXR1cm4gYWRkcmVz cyBtYXAgb2YgZXhjZXB0aW9uIGhhbmRsZXIgdGVtcGxhdGUgc28gdGhhdCBDIGNvZGUgY2FuDQo+ IGdlbmVyYXRlDQo+ICAgIGV4Y2VwdGlvbiB0YWJsZXMuDQo+IEBAIC0xMDcsNiArMTIwLDEyOCBA QCBBcmNoUmVzdG9yZUV4Y2VwdGlvbkNvbnRleHQgKA0KPiAgICBTeXN0ZW1Db250ZXh0LlN5c3Rl bUNvbnRleHRJYTMyLT5FeGNlcHRpb25EYXRhID0NCj4gUmVzZXJ2ZWRWZWN0b3JzW0V4Y2VwdGlv blR5cGVdLkV4Y2VwdGlvbkRhdGE7DQo+ICB9DQo+DQo+ICsvKioNCj4gKyAgU2V0dXAgc2VwYXJh dGUgc3RhY2sgZm9yIHNwZWNpZmljIGV4Y2VwdGlvbnMuDQo+ICsNCj4gKyAgIEBwYXJhbVtpbl0g SWR0VGFibGUgICAgICAgIElEVCB0YWJsZSBiYXNlLg0KPiArKiovDQo+ICtWT0lEDQo+ICtFRklB UEkNCj4gK0FyY2hTZXR1cEV4Y3BldGlvblN0YWNrICgNCj4gKyAgSU4gSUEzMl9JRFRfR0FURV9E RVNDUklQVE9SICAgICAgICAgICAqSWR0VGFibGUNCj4gKyAgKQ0KPiArew0KPiArICBWT0lEICAg ICAgICAgICAgICAgICAgICAgICpOZXdHZHQ7DQo+ICsgIElBMzJfREVTQ1JJUFRPUiAgICAgICAg ICAgR2R0RGVzYzsNCj4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBPbGRHZHRTaXplOw0K PiArICBUU1NfRU5UUklFUyAgICAgICAgICAgICAgICpUc3NFbnRyeTsNCj4gKyAgSUEzMl9UU1Nf REVTQ1JJUFRPUiAgICAgICAqVHNzRGVzYzsNCj4gKyAgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQg ICAqVHNzOw0KPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFN0YWNrQmFzZTsNCj4gKyAg VUlOVE4gICAgICAgICAgICAgICAgICAgICBTdGFja1RvcDsNCj4gKyAgVUlOVE4gICAgICAgICAg ICAgICAgICAgICBTdGFja1NpemU7DQo+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgSW5k ZXg7DQo+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgVmVjdG9yOw0KPiArICBVSU5UTiAg ICAgICAgICAgICAgICAgICAgIFRzc0Jhc2U7DQo+ICsNCj4gKyAgLy8NCj4gKyAgLy8gQWxsb2Nh dGUgUnVudGltZSBEYXRhIGZvciB0aGUgR0RUDQo+ICsgIC8vDQo+ICsgIEFzbVJlYWRHZHRyKCZH ZHREZXNjKTsNCj4gKyAgT2xkR2R0U2l6ZSA9IEdkdERlc2MuTGltaXQgKyAxOw0KPiArICBOZXdH ZHQgPSBBbGxvY2F0ZVJ1bnRpbWVaZXJvUG9vbChPbGRHZHRTaXplICsgc2l6ZW9mKFRTU19FTlRS SUVTKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIElBMzJfR0RUX0FM SUdOTUVOVCk7DQo+ICsgIGlmIChOZXdHZHQgPT0gTlVMTCkgew0KPiArICAgIHJldHVybjsNCj4g KyAgfQ0KPiArICBOZXdHZHQgPSBBTElHTl9QT0lOVEVSIChOZXdHZHQsIElBMzJfR0RUX0FMSUdO TUVOVCk7DQo+ICsNCj4gKyAgLy8NCj4gKyAgLy8gSW5pdGlhbGl6ZSBuZXcgR0RUIGVudHJpZXMN Cj4gKyAgLy8NCj4gKyAgQ29weU1lbShOZXdHZHQsIChWT0lEICopR2R0RGVzYy5CYXNlLCBPbGRH ZHRTaXplKTsNCj4gKyAgR2R0RGVzYy5CYXNlID0gKFVJTlROKShWT0lEKilOZXdHZHQ7DQo+ICsg IEdkdERlc2MuTGltaXQgPSAoVUlOVDE2KShPbGRHZHRTaXplICsgVFNTX09GRlNFVCAtIDEpOw0K PiArDQo+ICsgIC8vDQo+ICsgIC8vIFJlc2VydmUgc3RhdGNrIG1lbW9yeSBmb3IgZ2l2ZW4gZXhj ZXB0aW9ucw0KPiArICAvLw0KPiArICBTdGFja1NpemUgPSBBUlJBWV9TSVpFIChtRXhjZXB0aW9u c1dpdGhTdGFjaykgKiBFWENFUFRJT05fU1RBQ0tfU0laRTsNCj4gKyAgU3RhY2tTaXplID0gRUZJ X1BBR0VTX1RPX1NJWkUgKEVGSV9TSVpFX1RPX1BBR0VTIChTdGFja1NpemUpKTsNCj4gKyAgU3Rh Y2tCYXNlID0gKFVJTlQ2NCkoVUlOVE4pQWxsb2NhdGVQYWdlcyAoRUZJX1NJWkVfVE9fUEFHRVMN Cj4gKFN0YWNrU2l6ZSkpOw0KPiArICBpZiAoU3RhY2tCYXNlID09IDApIHsNCj4gKyAgICBGcmVl UG9vbCAoTmV3R2R0KTsNCj4gKyAgICByZXR1cm47DQo+ICsgIH0NCj4gKw0KPiArICAvLw0KPiAr ICAvLyBGaXh1cCBUU1MgZGVzY3JpcHRvcnMgYW5kIHNlZ21lbnRzDQo+ICsgIC8vDQo+ICsgIFRz c0VudHJ5ID0gKFZPSUQgKikoR2R0RGVzYy5CYXNlICsgT2xkR2R0U2l6ZSk7DQo+ICsNCj4gKyAg VHNzQmFzZSA9IChVSU5UTikoVk9JRCAqKSZUc3NFbnRyeS0+VHNzOw0KPiArICBUc3NFbnRyeS0+ VHNzU2VnLkxpbWl0MTVfMCAgICAgICAgICAgID0NCj4gc2l6ZW9mKElBMzJfVEFTS19TVEFURV9T RUdNRU5UKSAtIDE7DQo+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTE1XzAgICAgICAgICAgICAg PSAoVUlOVDE2KVRzc0Jhc2U7DQo+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTIzXzE2ICAgICAg ICAgICAgPSAoVUlOVDgpKFRzc0Jhc2UgPj4gMTYpOw0KPiArICBUc3NFbnRyeS0+VHNzU2VnLlR5 cGUgICAgICAgICAgICAgICAgID0gSUEzMl9HRFRfVFlQRV9UU1M7DQo+ICsgIFRzc0VudHJ5LT5U c3NTZWcuTGltaXQxOV8xNl9hbmRfZmxhZ3MgPSAwOw0KPiArICBUc3NFbnRyeS0+VHNzU2VnLkJh c2UzMV8yNCAgICAgICAgICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDI0KTsNCj4gKw0KPiArICBT dGFja1RvcCAgPSBTdGFja0Jhc2UgKyBTdGFja1NpemUgLSBDUFVfU1RBQ0tfQUxJR05NRU5UOw0K PiArICBTdGFja1RvcCAgPSAoVUlOVE4pQUxJR05fUE9JTlRFUiAoU3RhY2tUb3AsIENQVV9TVEFD S19BTElHTk1FTlQpOw0KPiArICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBBUlJBWV9TSVpFICht RXhjZXB0aW9uc1dpdGhTdGFjayk7ICsrSW5kZXgpIHsNCj4gKyAgICAvLw0KPiArICAgIC8vIEZp eHVwIFRTUyBkZXNjcmlwdG9yDQo+ICsgICAgLy8NCj4gKyAgICBUc3NCYXNlID0gKFVJTlROKShW T0lEICopJlRzc0VudHJ5LT5FeGNlcHRpb25Uc3NbSW5kZXhdOw0KPiArICAgIFRzc0Rlc2MgPSAm VHNzRW50cnktPkV4Y2VwdGlvblRzc1NlZ1tJbmRleF07DQo+ICsNCj4gKyAgICBUc3NEZXNjLT5M aW1pdDE1XzAgICAgICAgICAgICA9IHNpemVvZihJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCkgLSAx Ow0KPiArICAgIFRzc0Rlc2MtPkJhc2UxNV8wICAgICAgICAgICAgID0gKFVJTlQxNilUc3NCYXNl Ow0KPiArICAgIFRzc0Rlc2MtPkJhc2UyM18xNiAgICAgICAgICAgID0gKFVJTlQ4KShUc3NCYXNl ID4+IDE2KTsNCj4gKyAgICBUc3NEZXNjLT5UeXBlICAgICAgICAgICAgICAgICA9IElBMzJfR0RU X1RZUEVfVFNTOw0KPiArICAgIFRzc0Rlc2MtPkxpbWl0MTlfMTZfYW5kX2ZsYWdzID0gMDsNCj4g KyAgICBUc3NEZXNjLT5CYXNlMzFfMjQgICAgICAgICAgICA9IChVSU5UOCkoVHNzQmFzZSA+PiAy NCk7DQo+ICsNCj4gKyAgICAvLw0KPiArICAgIC8vIEZpeHVwIFRTUw0KPiArICAgIC8vDQo+ICsg ICAgVHNzID0gJlRzc0VudHJ5LT5FeGNlcHRpb25Uc3NbSW5kZXhdOw0KPiArICAgIFRzcy0+Q1Iz ICAgID0gQXNtUmVhZENyMygpOw0KPiArICAgIFRzcy0+RUlQICAgID0gKFVJTlQzMiltRXhjZXB0 aW9uc1dpdGhTdGFja1tJbmRleF0uRW50cnlQb2ludDsNCj4gKyAgICBUc3MtPkVGTEFHUyA9IDB4 MjsNCj4gKyAgICBUc3MtPkVTUCAgICA9IFN0YWNrVG9wOw0KPiArICAgIFRzcy0+RVMgICAgID0g QXNtUmVhZEVzKCk7DQo+ICsgICAgVHNzLT5DUyAgICAgPSBBc21SZWFkQ3MoKTsNCj4gKyAgICBU c3MtPlNTICAgICA9IEFzbVJlYWRTcygpOw0KPiArICAgIFRzcy0+RFMgICAgID0gQXNtUmVhZERz KCk7DQo+ICsgICAgVHNzLT5GUyAgICAgPSBBc21SZWFkRnMoKTsNCj4gKyAgICBUc3MtPkdTICAg ICA9IEFzbVJlYWRHcygpOw0KPiArICAgIFN0YWNrVG9wICAgLT0gRVhDRVBUSU9OX1NUQUNLX1NJ WkU7DQo+ICsNCj4gKyAgICAvLw0KPiArICAgIC8vIENoYW5nZSBzcGVjaWZpZWQgZXhjZXB0aW9u cyBpbiBJRFQgdG8gdXNlIFRTUw0KPiArICAgIC8vDQo+ICsgICAgVmVjdG9yID0gbUV4Y2VwdGlv bnNXaXRoU3RhY2tbSW5kZXhdLlZlY3RvcjsNCj4gKw0KPiArICAgIElkdFRhYmxlW1ZlY3Rvcl0u Qml0cy5PZmZzZXRMb3cgID0gMDsNCj4gKyAgICBJZHRUYWJsZVtWZWN0b3JdLkJpdHMuU2VsZWN0 b3IgICA9IE9sZEdkdFNpemUgKw0KPiBFWENFUFRJT05fVFNTX1NFTChJbmRleCk7DQo+ICsgICAg SWR0VGFibGVbVmVjdG9yXS5CaXRzLlJlc2VydmVkXzAgPSAwOw0KPiArICAgIElkdFRhYmxlW1Zl Y3Rvcl0uQml0cy5HYXRlVHlwZSAgID0gSUEzMl9JRFRfR0FURV9UWVBFX1RBU0s7DQo+ICsgICAg SWR0VGFibGVbVmVjdG9yXS5CaXRzLk9mZnNldEhpZ2ggPSAwOw0KPiArICB9DQo+ICsNCj4gKyAg Ly8NCj4gKyAgLy8gUHVibGlzaCB0aGUgY2hhbmdlcw0KPiArICAvLw0KPiArICBBc21Xcml0ZUdk dHIoJkdkdERlc2MpOw0KPiArDQo+ICsgIC8vDQo+ICsgIC8vIExvYWQgdGFzayByZWdpc3Rlcg0K PiArICAvLw0KPiArICBBc21Xcml0ZVRyICgoVUlOVDE2KShPbGRHZHRTaXplICsgVFNTX1NFTCkp Ow0KPiArfQ0KPiArDQo+ICAvKioNCj4gICAgRGlzcGxheSBwcm9jZXNzb3IgY29udGV4dC4NCj4N Cj4gZGlmZiAtLWdpdA0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVy TGliL0lhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiBpbmRleCBhOGQz NTU2YTgwLi43N2NjNmY5OTE5IDEwMDY0NA0KPiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gKysrIGIvVWVm aUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoSW50ZXJydXB0 RGVmcy5oDQo+IEBAIC00MSw0ICs0MSwxNDAgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAgICBVSU5U OCAgICAgICBIb29rQWZ0ZXJTdHViSGVhZGVyQ29kZVtIT09LQUZURVJfU1RVQl9TSVpFXTsNCj4g IH0gUkVTRVJWRURfVkVDVE9SU19EQVRBOw0KPg0KPiArI3ByYWdtYSBwYWNrICgxKQ0KPiArDQo+ ICsjZGVmaW5lIEVYQ0VQVElPTl9MSVNUX01BWCAgICAgICAgICA3DQo+ICsjZGVmaW5lIEVYQ0VQ VElPTl9TVEFDS19TSVpFICAgICAgICBFRklfUEFHRV9TSVpFDQo+ICsjZGVmaW5lIElBMzJfR0RU X1RZUEVfVFNTICAgICAgICAgICAweDg5DQo+ICsjZGVmaW5lIElBMzJfR0RUX0FMSUdOTUVOVCAg ICAgICAgICA4DQo+ICsNCj4gKy8vDQo+ICsvLyBJQTMyIFRTUyBEZWZpbml0aW9uDQo+ICsvLw0K PiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiArICBVSU5UMTYgICAgUHJldmlvdXNUYXNrTGluazsgLy8g MDANCj4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzI7DQo+ICsgIFVJTlQzMiAgICBFU1AwOyAgICAg ICAgICAgICAvLyAwNA0KPiArICBVSU5UMTYgICAgU1MwOyAgICAgICAgICAgICAgLy8gMDgNCj4g KyAgVUlOVDE2ICAgIFJlc2VydmVkXzEwOw0KPiArICBVSU5UMzIgICAgRVNQMTsgICAgICAgICAg ICAgLy8gMEMNCj4gKyAgVUlOVDE2ICAgIFNTMTsgICAgICAgICAgICAgIC8vIDEwDQo+ICsgIFVJ TlQxNiAgICBSZXNlcnZlZF8xODsNCj4gKyAgVUlOVDMyICAgIEVTUDI7ICAgICAgICAgICAgIC8v IDE0DQo+ICsgIFVJTlQxNiAgICBTUzI7ICAgICAgICAgICAgICAvLyAxOA0KPiArICBVSU5UMTYg ICAgUmVzZXJ2ZWRfMjY7DQo+ICsgIFVJTlQzMiAgICBDUjM7ICAgICAgICAgICAgICAvLyAxQw0K PiArICBVSU5UMzIgICAgRUlQOyAgICAgICAgICAgICAgLy8gMjANCj4gKyAgVUlOVDMyICAgIEVG TEFHUzsgICAgICAgICAgIC8vIDI0DQo+ICsgIFVJTlQzMiAgICBFQVg7ICAgICAgICAgICAgICAv LyAyOA0KPiArICBVSU5UMzIgICAgRUNYOyAgICAgICAgICAgICAgLy8gMkMNCj4gKyAgVUlOVDMy ICAgIEVEWDsgICAgICAgICAgICAgIC8vIDMwDQo+ICsgIFVJTlQzMiAgICBFQlg7ICAgICAgICAg ICAgICAvLyAzNA0KPiArICBVSU5UMzIgICAgRVNQOyAgICAgICAgICAgICAgLy8gMzgNCj4gKyAg VUlOVDMyICAgIEVCUDsNCj4gKyAgVUlOVDMyICAgIEVTSTsNCj4gKyAgVUlOVDMyICAgIEVESTsN Cj4gKyAgVUlOVDE2ICAgIEVTOw0KPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfNzQ7DQo+ICsgIFVJ TlQxNiAgICBDUzsNCj4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzc4Ow0KPiArICBVSU5UMTYgICAg U1M7DQo+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF84MjsNCj4gKyAgVUlOVDE2ICAgIERTOw0KPiAr ICBVSU5UMTYgICAgUmVzZXJ2ZWRfODY7DQo+ICsgIFVJTlQxNiAgICBGUzsNCj4gKyAgVUlOVDE2 ICAgIFJlc2VydmVkXzkwOw0KPiArICBVSU5UMTYgICAgR1M7DQo+ICsgIFVJTlQxNiAgICBSZXNl cnZlZF85NDsNCj4gKyAgVUlOVDE2ICAgIExEVFNlZ21lbnRTZWxlY3RvcjsNCj4gKyAgVUlOVDE2 ICAgIFJlc2VydmVkXzk4Ow0KPiArICBVSU5UMTYgICAgVDsNCj4gKyAgVUlOVDE2ICAgIElPTWFw QmFzZUFkZHJlc3M7DQo+ICt9IElBMzJfVEFTS19TVEFURV9TRUdNRU5UOw0KPiArDQo+ICt0eXBl ZGVmIHN0cnVjdCB7DQo+ICsgIFVJTlQxNiAgICBMaW1pdDE1XzA7DQo+ICsgIFVJTlQxNiAgICBC YXNlMTVfMDsNCj4gKyAgVUlOVDggICAgIEJhc2UyM18xNjsNCj4gKyAgVUlOVDggICAgIFR5cGU7 DQo+ICsgIFVJTlQ4ICAgICBMaW1pdDE5XzE2X2FuZF9mbGFnczsNCj4gKyAgVUlOVDggICAgIEJh c2UzMV8yNDsNCj4gK30gSUEzMl9UU1NfREVTQ1JJUFRPUjsNCj4gKw0KPiArdHlwZWRlZiBzdHJ1 Y3Qgew0KPiArICBJQTMyX1RTU19ERVNDUklQVE9SICAgICAgICAgICBUc3NTZWc7DQo+ICsgIElB MzJfVFNTX0RFU0NSSVBUT1IgICAgICAgICAgIEV4Y2VwdGlvblRzc1NlZ1tFWENFUFRJT05fTElT VF9NQVhdOw0KPiArICBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCAgICAgICBUc3M7DQo+ICsgIElB MzJfVEFTS19TVEFURV9TRUdNRU5UICAgICAgIEV4Y2VwdGlvblRzc1tFWENFUFRJT05fTElTVF9N QVhdOw0KPiArfSBUU1NfRU5UUklFUzsNCj4gKw0KPiArI3ByYWdtYSBwYWNrICgpDQo+ICsNCj4g KyNkZWZpbmUgVFNTX1NFTCAgICAgICAgICAgICAgIE9GRlNFVF9PRiAoVFNTX0VOVFJJRVMsIFRz c1NlZykNCj4gKyNkZWZpbmUgRVhDRVBUSU9OX1RTU19TRUwobikgIE9GRlNFVF9PRiAoVFNTX0VO VFJJRVMsDQo+IEV4Y2VwdGlvblRzc1NlZ1tuXSkNCj4gKyNkZWZpbmUgVFNTX09GRlNFVCAgICAg ICAgICAgIE9GRlNFVF9PRiAoVFNTX0VOVFJJRVMsIFRzcykNCj4gKw0KPiArdHlwZWRlZiBWT0lE ICgqRVhDRVBUSU9OX0VOVFJZKSAoVk9JRCk7DQo+ICsNCj4gK3R5cGVkZWYgc3RydWN0IHsNCj4g KyAgVUlOVE4gICAgICAgICAgICAgVmVjdG9yOw0KPiArICBFWENFUFRJT05fRU5UUlkgICBFbnRy eVBvaW50Ow0KPiArfSBJQTMyX0VYQ0VQVElPTl9UU19FTlRSWTsNCj4gKw0KPiArLyoqDQo+ICsg RXhjZXB0aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24g I1VELg0KPiArICoqLw0KPiArVk9JRA0KPiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5NiAoDQo+ ICsgIFZPSUQNCj4gKyAgKTsNCj4gKw0KPiArLyoqDQo+ICsgRXhjZXB0aW9uIGhhbmRsaW5nIGVu dHJ5IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI0RGLg0KPiArICoqLw0KPiArVk9J RA0KPiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5OCAoDQo+ICsgIFZPSUQNCj4gKyAgKTsNCj4g Kw0KPiArLyoqDQo+ICsgRXhjZXB0aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRl IGZvciBleGNlcHRpb24gI1NTLg0KPiArICoqLw0KPiArVk9JRA0KPiArRXhjZXB0aW9uVGFza1N3 dGljaEVudHJ5MTIgKA0KPiArICBWT0lEDQo+ICsgICk7DQo+ICsNCj4gKy8qKg0KPiArIEV4Y2Vw dGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNHUC4N Cj4gKyAqKi8NCj4gK1ZPSUQNCj4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTEzICgNCj4gKyAg Vk9JRA0KPiArICApOw0KPiArDQo+ICsvKioNCj4gKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkg dGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjUEYuDQo+ICsgKiovDQo+ICtWT0lEDQo+ ICtFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxNCAoDQo+ICsgIFZPSUQNCj4gKyAgKTsNCj4gKw0K PiArLyoqDQo+ICsgRXhjZXB0aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRlIGZv ciBleGNlcHRpb24gI0FDLg0KPiArICoqLw0KPiArVk9JRA0KPiArRXhjZXB0aW9uVGFza1N3dGlj aEVudHJ5MTcgKA0KPiArICBWT0lEDQo+ICsgICk7DQo+ICsNCj4gKy8qKg0KPiArIEV4Y2VwdGlv biBoYW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNNQy4NCj4g KyAqKi8NCj4gK1ZPSUQNCj4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTE4ICgNCj4gKyAgVk9J RA0KPiArICApOw0KPiArDQo+ICAjZW5kaWYNCj4gZGlmZiAtLWdpdA0KPiBhL1VlZmlDcHVQa2cv TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20u bmFzDQo+IG0NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9J YTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hcw0KPiBtDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+IGluZGV4IDAwMDAwMDAwMDAuLmRiZmJjZmNmNTENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysN Cj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0V4Y2Vw dGlvblRzc0VudHJ5QXNtLm5hcw0KPiBtDQo+IEBAIC0wLDAgKzEsMzk4IEBADQo+ICs7LS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tIDsNCj4gKzsgQ29weXJpZ2h0IChjKSAyMDE3LCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICs7IFRoaXMgcHJvZ3JhbSBhbmQgdGhl IGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gKzsgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWls YWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRA0KPiBMaWNlbnNl DQo+ICs7IHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4 dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUgZm91bmQNCj4gYXQNCj4gKzsgaHR0cDovL29wZW5zb3Vy Y2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4NCj4gKzsNCj4gKzsgVEhFIFBST0dSQU0g SVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyIgQkFTSVMs DQo+ICs7IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQs IEVJVEhFUiBFWFBSRVNTDQo+IE9SIElNUExJRUQuDQo+ICs7DQo+ICs7IE1vZHVsZSBOYW1lOg0K PiArOw0KPiArOyAgIEV4Y2VwdGlvblRzc0VudHJ5QXNtLkFzbQ0KPiArOw0KPiArOyBBYnN0cmFj dDoNCj4gKzsNCj4gKzsgICBJQTMyIENQVSBFeGNlcHRpb24gSGFuZGxlciB3aXRoIFNlcGFyYXRl IFN0YWNrDQo+ICs7DQo+ICs7IE5vdGVzOg0KPiArOw0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiArDQo+ICs7DQo+ICs7IElBMzIgVFNTIE1lbW9yeSBMYXlvdXQgRGVzY3JpcHRpb24NCj4g KzsNCj4gK3N0cnVjIElBMzJfVFNTDQo+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiAr ICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gKyAgLkVTUDA6ICAgIHJlc2QgMQ0KPiArICAu U1MwOiAgICAgcmVzdyAxDQo+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiArICAuRVNQ MTogICAgcmVzZCAxDQo+ICsgIC5TUzE6ICAgICByZXN3IDENCj4gKyAgICAgICAgICAgICAgICAg ICAgcmVzdyAxDQo+ICsgIC5FU1AyOiAgICByZXNkIDENCj4gKyAgLlNTMjogICAgIHJlc3cgMQ0K PiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gKyAgLl9DUjM6ICAgIHJlc2QgMQ0KPiAr ICAuRUlQOiAgICAgcmVzZCAxDQo+ICsgIC5FRkxBR1M6ICByZXNkIDENCj4gKyAgLl9FQVg6ICAg IHJlc2QgMQ0KPiArICAuX0VDWDogICAgcmVzZCAxDQo+ICsgIC5fRURYOiAgICByZXNkIDENCj4g KyAgLl9FQlg6ICAgIHJlc2QgMQ0KPiArICAuX0VTUDogICAgcmVzZCAxDQo+ICsgIC5fRUJQOiAg ICByZXNkIDENCj4gKyAgLl9FU0k6ICAgIHJlc2QgMQ0KPiArICAuX0VESTogICAgcmVzZCAxDQo+ ICsgIC5fRVM6ICAgICByZXN3IDENCj4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ICsg IC5fQ1M6ICAgICByZXN3IDENCj4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ICsgIC5f U1M6ICAgICByZXN3IDENCj4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ICsgIC5fRFM6 ICAgICByZXN3IDENCj4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ICsgIC5fRlM6ICAg ICByZXN3IDENCj4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ICsgIC5fR1M6ICAgICBy ZXN3IDENCj4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ICsgIC5MRFQ6ICAgICByZXN3 IDENCj4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ICsgICAgICAgICAgICAgICAgICAg IHJlc3cgMQ0KPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gK2VuZHN0cnVjDQo+ICsN Cj4gKzsNCj4gKzsgQ29tbW9uRXhjZXB0aW9uSGFuZGxlcigpDQo+ICs7DQo+ICtleHRlcm4gQVNN X1BGWChDb21tb25FeGNlcHRpb25IYW5kbGVyKQ0KPiArDQo+ICtTRUNUSU9OIC5kYXRhDQo+ICsN Cj4gK1NFQ1RJT04gLnRleHQNCj4gKw0KPiArQUxJR04gICA4DQo+ICsNCj4gKzsNCj4gKzsgZXhj ZXB0aW9uIGhhbmRsZXIgc3R1YiB0YWJsZQ0KPiArOw0KPiArJW1hY3JvIERlZkV4Y2VwdGlvblRh c2tTd3RpY2hFbnRyeSAxDQo+ICslJURvSXJldDoNCj4gKyAgICBpcmV0ZA0KPiArDQo+ICtnbG9i YWwgQVNNX1BGWChFeGNlcHRpb25UYXNrU3d0aWNoRW50cnklMSkNCj4gK0FTTV9QRlgoRXhjZXB0 aW9uVGFza1N3dGljaEVudHJ5JTEpOg0KPiArICAgIGRiICAgICAgMHg2YSAgICAgICAgOyBwdXNo ICAjVmVjdG9yTnVtDQo+ICsgICAgZGIgICAgICAlMSAgICAgICAgICA7IFZlY3Rvck51bQ0KPiAr ICAgIG1vdiAgICAgZWF4LCBBU01fUEZYKENvbW1vblRhc2tTd3RpY2hFbnRyeVBvaW50KQ0KPiAr ICAgIGNhbGwgICAgZWF4DQo+ICsgICAgbW92ICAgICBlc3AsIGVheCAgICA7IFJlc3RvcmUgc3Rh Y2sgdG9wDQo+ICsgICAgam1wICAgICAlJURvSXJldA0KPiArJWVuZG1hY3JvDQo+ICsNCj4gK2ds b2JhbCBBU01fUEZYKENvbW1vblRhc2tTd3RpY2hFbnRyeVBvaW50KQ0KPiArQVNNX1BGWChDb21t b25UYXNrU3d0aWNoRW50cnlQb2ludCk6DQo+ICsgICAgOw0KPiArICAgIDsgU3RhY2s6DQo+ICsg ICAgOyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LS0gRUJQIC0gOA0KPiArICAgIDsgKyAgICAg ICBUU1MgQmFzZSAgICAgICsNCj4gKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBF QlAgLSA0DQo+ICsgICAgOyArICAgICAgQ1BVSUQuRURYICAgICAgKw0KPiArICAgIDsgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVCUA0KPiArICAgIDsgKyAgICAgICAgIEVJUCAgICAgICAg ICsNCj4gKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBFQlAgKyA0DQo+ICsgICAg OyArICAgIFZlY3RvciBOdW1iZXIgICAgKw0KPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0t LSsgPC0tIEVCUCArIDgNCj4gKyAgICA7ICsgICAgRXJyb3IgQ29kZSAgICAgICArDQo+ICsgICAg OyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArICAgIDsNCj4gKzsNCj4gKzsgR2V0IFRTUyBv ZiBpbnRlcnJ1cHRlZCB0YXNrDQo+ICs7DQo+ICsgICAgbW92ICAgICBlYnAsIGVzcCAgICAgICAg ICAgICAgICAgICAgOyBTdGFjayBmcmFtZQ0KPiArDQo+ICs7IFVzZSBDUFVJRCB0byBkZXRlcm1p bmUgaWYgRlhTQVZFL0ZYUkVTVE9SIGFuZCBERSBhcmUgc3VwcG9ydGVkDQo+ICsgICAgbW92ICAg ICBlYXgsIDENCj4gKyAgICBjcHVpZA0KPiArICAgIHB1c2ggICAgZWR4DQo+ICsNCj4gKzsgR2V0 IFRTUyBiYXNlIG9mIGludGVycnVwdGVkIHRhc2sgdGhyb3VnaCBQcmV2aW91c1Rhc2tMaW5rIGZp ZWxkIGluDQo+ICs7IGN1cnJlbnQgVFNTIGJhc2UNCj4gKyAgICBzdWIgICAgIGVzcCwgOA0KPiAr ICAgIHNnZHQgICAgW2VzcCArIDJdDQo+ICsgICAgbW92ICAgICBlYXgsIFtlc3AgKyA0XSAgICAg ICAgICAgICAgOyBHRFQgYmFzZQ0KPiArICAgIGFkZCAgICAgZXNwLCA4DQo+ICsNCj4gKyAgICB4 b3IgICAgIGVieCwgZWJ4DQo+ICsgICAgc3RyICAgICBieCAgICAgICAgICAgICAgICAgICAgICAg ICAgOyBDdXJyZW50IFRSDQo+ICsNCj4gKyAgICBtb3YgICAgIGVjeCwgW2VheCArIGVieCArIDJd DQo+ICsgICAgc2hsICAgICBlY3gsIDgNCj4gKyAgICBtb3YgICAgIGNsLCBbZWF4ICsgZWJ4ICsg N10NCj4gKyAgICByb3IgICAgIGVjeCwgOCAgICAgICAgICAgICAgICAgICAgICA7IGVjeCA9IEN1 cnJlbnQgVFNTIGJhc2UNCj4gKyAgICBwdXNoICAgIGVjeCAgICAgICAgICAgICAgICAgICAgICAg ICA7IGtlZXAgaXQgaW4gc3RhY2sgZm9yIGxhdGVyIHVzZQ0KPiArDQo+ICsgICAgbW92enggICBl YngsIHdvcmQgW2VjeF0gICAgICAgICAgICAgOyBQcmV2aW91cyBUYXNrIExpbmsNCj4gKyAgICBt b3YgICAgIGVjeCwgW2VheCArIGVieCArIDJdDQo+ICsgICAgc2hsICAgICBlY3gsIDgNCj4gKyAg ICBtb3YgICAgIGNsLCBbZWF4ICsgZWJ4ICsgN10NCj4gKyAgICByb3IgICAgIGVjeCwgOCAgICAg ICAgICAgICAgICAgICAgICA7IGVjeCA9IFByZXZpb3VzIFRTUyBiYXNlDQo+ICsNCj4gKzsNCj4g KzsgQWxpZ24gc3RhY2sgdG8gbWFrZSBzdXJlIHRoYXQgRUZJX0ZYX1NBVkVfU1RBVEVfSUEzMiBv Zg0KPiBFRklfU1lTVEVNX0NPTlRFWFRfSUEzMg0KPiArOyBpcyAxNi1ieXRlIGFsaWduZWQNCj4g KzsNCj4gKyAgICBhbmQgICAgIGVzcCwgMHhmZmZmZmZmMA0KPiArICAgIHN1YiAgICAgZXNwLCAx Mg0KPiArDQo+ICs7OyBVSU5UMzIgIEVkaSwgRXNpLCBFYnAsIEVzcCwgRWJ4LCBFZHgsIEVjeCwg RWF4Ow0KPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQVhdDQo+ICsgICAg cHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VDWF0NCj4gKyAgICBwdXNoICAgIGR3b3Jk IFtlY3ggKyBJQTMyX1RTUy5fRURYXQ0KPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJf VFNTLl9FQlhdDQo+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0NCj4g KyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRUJQXQ0KPiArICAgIHB1c2ggICAg ZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU0ldDQo+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsg SUEzMl9UU1MuX0VESV0NCj4gKw0KPiArOzsgVUlOVDMyICBHcywgRnMsIEVzLCBEcywgQ3MsIFNz Ow0KPiArICAgIG1vdnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fU1NdDQo+ICsgICAg cHVzaCAgICBlYXgNCj4gKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX0NT XQ0KPiArICAgIHB1c2ggICAgZWF4DQo+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElB MzJfVFNTLl9EU10NCj4gKyAgICBwdXNoICAgIGVheA0KPiArICAgIG1vdnp4ICAgZWF4LCB3b3Jk IFtlY3ggKyBJQTMyX1RTUy5fRVNdDQo+ICsgICAgcHVzaCAgICBlYXgNCj4gKyAgICBtb3Z6eCAg IGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX0ZTXQ0KPiArICAgIHB1c2ggICAgZWF4DQo+ICsg ICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLl9HU10NCj4gKyAgICBwdXNoICAg IGVheA0KPiArDQo+ICs7OyBVSU5UMzIgIEVpcDsNCj4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3gg KyBJQTMyX1RTUy5FSVBdDQo+ICsNCj4gKzs7IFVJTlQzMiAgR2R0clsyXSwgSWR0clsyXTsNCj4g KyAgICBzdWIgICAgIGVzcCwgOA0KPiArICAgIHNpZHQgICAgW2VzcF0NCj4gKyAgICBtb3YgICAg IGVheCwgW2VzcCArIDJdDQo+ICsgICAgeGNoZyAgICBlYXgsIFtlc3BdDQo+ICsgICAgYW5kICAg ICBlYXgsIDB4RkZGRg0KPiArICAgIG1vdiAgICAgW2VzcCs0XSwgZWF4DQo+ICsNCj4gKyAgICBz dWIgICAgIGVzcCwgOA0KPiArICAgIHNnZHQgICAgW2VzcF0NCj4gKyAgICBtb3YgICAgIGVheCwg W2VzcCArIDJdDQo+ICsgICAgeGNoZyAgICBlYXgsIFtlc3BdDQo+ICsgICAgYW5kICAgICBlYXgs IDB4RkZGRg0KPiArICAgIG1vdiAgICAgW2VzcCs0XSwgZWF4DQo+ICsNCj4gKzs7IFVJTlQzMiAg TGR0ciwgVHI7DQo+ICsgICAgbW92ICAgICBlYXgsIGVieCAgICA7IGVieCBzdGlsbCBrZWVwcyBz ZWxlY3RvciBvZiBpbnRlcnJ1cHRlZCB0YXNrDQo+ICsgICAgcHVzaCAgICBlYXgNCj4gKyAgICBt b3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuTERUXQ0KPiArICAgIHB1c2ggICAgZWF4 DQo+ICsNCj4gKzs7IFVJTlQzMiAgRUZsYWdzOw0KPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCAr IElBMzJfVFNTLkVGTEFHU10NCj4gKw0KPiArOzsgVUlOVDMyICBDcjAsIENyMSwgQ3IyLCBDcjMs IENyNDsNCj4gKyAgICBtb3YgICAgIGVheCwgY3I0DQo+ICsgICAgcHVzaCAgICBlYXggICAgICAg ICAgICAgOyBwdXNoIGNyNCBmaXJzdGx5DQo+ICsNCj4gKyAgICBtb3YgICAgIGVkeCwgW2VicCAt IDRdICA7IGNwdWlkLmVkeA0KPiArICAgIHRlc3QgICAgZWR4LCBCSVQyNCAgICAgIDsgVGVzdCBm b3IgRlhTQVZFL0ZYUkVTVE9SIHN1cHBvcnQNCj4gKyAgICBqeiAgICAgIC4xDQo+ICsgICAgb3Ig ICAgICBlYXgsIEJJVDkgICAgICAgOyBTZXQgQ1I0Lk9TRlhTUg0KPiArLjE6DQo+ICsgICAgdGVz dCAgICBlZHgsIEJJVDIgICAgICAgOyBUZXN0IGZvciBEZWJ1Z2dpbmcgRXh0ZW5zaW9ucyBzdXBw b3J0DQo+ICsgICAganogICAgICAuMg0KPiArICAgIG9yICAgICAgZWF4LCBCSVQzICAgICAgIDsg U2V0IENSNC5ERQ0KPiArLjI6DQo+ICsgICAgbW92ICAgICBjcjQsIGVheA0KPiArDQo+ICsgICAg bW92ICAgICBlYXgsIGNyMw0KPiArICAgIHB1c2ggICAgZWF4DQo+ICsgICAgbW92ICAgICBlYXgs IGNyMg0KPiArICAgIHB1c2ggICAgZWF4DQo+ICsgICAgeG9yICAgICBlYXgsIGVheA0KPiArICAg IHB1c2ggICAgZWF4DQo+ICsgICAgbW92ICAgICBlYXgsIGNyMA0KPiArICAgIHB1c2ggICAgZWF4 DQo+ICsNCj4gKzs7IFVJTlQzMiAgRHIwLCBEcjEsIERyMiwgRHIzLCBEcjYsIERyNzsNCj4gKyAg ICBtb3YgICAgIGVheCwgZHI3DQo+ICsgICAgcHVzaCAgICBlYXgNCj4gKyAgICBtb3YgICAgIGVh eCwgZHI2DQo+ICsgICAgcHVzaCAgICBlYXgNCj4gKyAgICBtb3YgICAgIGVheCwgZHIzDQo+ICsg ICAgcHVzaCAgICBlYXgNCj4gKyAgICBtb3YgICAgIGVheCwgZHIyDQo+ICsgICAgcHVzaCAgICBl YXgNCj4gKyAgICBtb3YgICAgIGVheCwgZHIxDQo+ICsgICAgcHVzaCAgICBlYXgNCj4gKyAgICBt b3YgICAgIGVheCwgZHIwDQo+ICsgICAgcHVzaCAgICBlYXgNCj4gKw0KPiArOzsgRlhfU0FWRV9T VEFURV9JQTMyIEZ4U2F2ZVN0YXRlOw0KPiArOzsgQ2xlYXIgVFMgYml0IGluIENSMCB0byBhdm9p ZCBEZXZpY2UgTm90IEF2YWlsYWJsZSBFeGNlcHRpb24gKCNOTSkNCj4gKzs7IHdoZW4gZXhlY3V0 aW5nIGZ4c2F2ZS9meHJzdG9yIGluc3RydWN0aW9uDQo+ICsgICAgdGVzdCAgICBlZHgsIEJJVDI0 ICA7IFRlc3QgZm9yIEZYU0FWRS9GWFJFU1RPUiBzdXBwb3J0Lg0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgOyBlZHggc3RpbGwgY29udGFpbnMgcmVzdWx0IGZyb20gQ1BVSUQgYWJvdmUNCj4g KyAgICBqeiAgICAgIC4zDQo+ICsgICAgY2x0cw0KPiArICAgIHN1YiAgICAgZXNwLCA1MTINCj4g KyAgICBtb3YgICAgIGVkaSwgZXNwDQo+ICsgICAgZGIgICAgICAweGYsIDB4YWUsIDB4NyA7Znhz YXZlIFtlZGldDQo+ICsuMzoNCj4gKw0KPiArOzsgVUlOVDMyICBFeGNlcHRpb25EYXRhOw0KPiAr ICAgIHB1c2ggICAgZHdvcmQgW2VicCArIDhdDQo+ICsNCj4gKzs7IFVFRkkgY2FsbGluZyBjb252 ZW50aW9uIGZvciBJQTMyIHJlcXVpcmVzIHRoYXQgRGlyZWN0aW9uIGZsYWcgaW4gRUZMQUdzIGlz IGNsZWFyDQo+ICsgICAgY2xkDQo+ICsNCj4gKzs7IGNhbGwgaW50byBleGNlcHRpb24gaGFuZGxl cg0KPiArICAgIG1vdiAgICAgZXNpLCBlY3ggICAgICAgICAgICA7IEtlZXAgVFNTIGJhc2UgdG8g YXZvaWQgb3ZlcndyaXRlDQo+ICsgICAgbW92ICAgICBlYXgsIEFTTV9QRlgoQ29tbW9uRXhjZXB0 aW9uSGFuZGxlcikNCj4gKw0KPiArOzsgUHJlcGFyZSBwYXJhbWV0ZXIgYW5kIGNhbGwNCj4gKyAg ICBtb3YgICAgIGVkeCwgZXNwDQo+ICsgICAgcHVzaCAgICBlZHggICAgICAgICAgICAgICAgIDsg RUZJX1NZU1RFTV9DT05URVhUDQo+ICsgICAgcHVzaCAgICBkd29yZCBbZWJwICsgNF0gICAgIDsg RUZJX0VYQ0VQVElPTl9UWVBFICh2ZWN0b3IgbnVtYmVyKQ0KPiArDQo+ICsgICAgOw0KPiArICAg IDsgQ2FsbCBFeHRlcm5hbCBFeGNlcHRpb24gSGFuZGxlcg0KPiArICAgIDsNCj4gKyAgICBjYWxs ICAgIGVheA0KPiArICAgIGFkZCAgICAgZXNwLCA4ICAgICAgICAgICAgICA7IFJlc3RvcmUgc3Rh Y2sgYmVmb3JlIGNhbGxpbmcNCj4gKyAgICBtb3YgICAgIGVjeCwgZXNpICAgICAgICAgICAgOyBS ZXN0b3JlIFRTUyBiYXNlDQo+ICsNCj4gKzs7IFVJTlQzMiAgRXhjZXB0aW9uRGF0YTsNCj4gKyAg ICBhZGQgICAgIGVzcCwgNA0KPiArDQo+ICs7OyBGWF9TQVZFX1NUQVRFX0lBMzIgRnhTYXZlU3Rh dGU7DQo+ICsgICAgbW92ICAgICBlZHgsIFtlYnAgLSA0XSAgOyBjcHVpZC5lZHgNCj4gKyAgICB0 ZXN0ICAgIGVkeCwgQklUMjQgICAgICA7IFRlc3QgZm9yIEZYU0FWRS9GWFJFU1RPUiBzdXBwb3J0 DQo+ICsgICAganogICAgICAuNA0KPiArICAgIG1vdiAgICAgZXNpLCBlc3ANCj4gKyAgICBkYiAg ICAgIDB4ZiwgMHhhZSwgMHhlICA7IGZ4cnN0b3IgW2VzaV0NCj4gKy40Og0KPiArICAgIGFkZCAg ICAgZXNwLCA1MTINCj4gKw0KPiArOzsgVUlOVDMyICBEcjAsIERyMSwgRHIyLCBEcjMsIERyNiwg RHI3Ow0KPiArOzsgU2tpcCByZXN0b3JhdGlvbiBvZiBEUnggcmVnaXN0ZXJzIHRvIHN1cHBvcnQg ZGVidWdnZXJzDQo+ICs7OyB0aGF0IHNldCBicmVha3BvaW50cyBpbiBpbnRlcnJ1cHQvZXhjZXB0 aW9uIGNvbnRleHQNCj4gKyAgICBhZGQgICAgIGVzcCwgNCAqIDYNCj4gKw0KPiArOzsgVUlOVDMy ICBDcjAsIENyMSwgQ3IyLCBDcjMsIENyNDsNCj4gKyAgICBwb3AgICAgIGVheA0KPiArICAgIG1v diAgICAgY3IwLCBlYXgNCj4gKyAgICBhZGQgICAgIGVzcCwgNCAgICA7IG5vdCBmb3IgQ3IxDQo+ ICsgICAgcG9wICAgICBlYXgNCj4gKyAgICBtb3YgICAgIGNyMiwgZWF4DQo+ICsgICAgcG9wICAg ICBlYXgNCj4gKyAgICBtb3YgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fQ1IzXSwgZWF4DQo+ ICsgICAgcG9wICAgICBlYXgNCj4gKyAgICBtb3YgICAgIGNyNCwgZWF4DQo+ICsNCj4gKzs7IFVJ TlQzMiAgRUZsYWdzOw0KPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFH U10NCj4gKyAgICBtb3YgICAgIGVieCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10NCj4g KyAgICBidHIgICAgIGVieCwgOSAgICAgIDsgRG8gJ2NsaScNCj4gKyAgICBtb3YgICAgIGR3b3Jk IFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdLCBlYngNCj4gKw0KPiArOzsgVUlOVDMyICBMZHRyLCBU cjsNCj4gKzs7IFVJTlQzMiAgR2R0clsyXSwgSWR0clsyXTsNCj4gKzs7IEJlc3Qgbm90IGxldCBh bnlvbmUgbWVzcyB3aXRoIHRoZXNlIHBhcnRpY3VsYXIgcmVnaXN0ZXJzLi4uDQo+ICsgICAgYWRk ICAgICBlc3AsIDI0DQo+ICsNCj4gKzs7IFVJTlQzMiAgRWlwOw0KPiArICAgIHBvcCAgICAgZHdv cmQgW2VjeCArIElBMzJfVFNTLkVJUF0NCj4gKw0KPiArOzsgVUlOVDMyICBHcywgRnMsIEVzLCBE cywgQ3MsIFNzOw0KPiArOzsgTk9URSAtIG1vZGlmaWVkIHNlZ21lbnQgcmVnaXN0ZXJzIGNvdWxk IGhhbmcgdGhlIGRlYnVnZ2VyLi4uICBXZQ0KPiArOzsgICAgICAgIGNvdWxkIGF0dGVtcHQgdG8g aW5zdWxhdGUgb3Vyc2VsdmVzIGFnYWluc3QgdGhpcyBwb3NzaWJpbGl0eSwNCj4gKzs7ICAgICAg ICBidXQgdGhhdCBwb3NlcyByaXNrcyBhcyB3ZWxsLg0KPiArOzsNCj4gKyAgICBwb3AgICAgIGVh eA0KPiArbzE2IG1vdiAgICAgW2VjeCArIElBMzJfVFNTLl9HU10sIGF4DQo+ICsgICAgcG9wICAg ICBlYXgNCj4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fRlNdLCBheA0KPiArICAgIHBv cCAgICAgZWF4DQo+ICtvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1MuX0VTXSwgYXgNCj4gKyAg ICBwb3AgICAgIGVheA0KPiArbzE2IG1vdiAgICAgW2VjeCArIElBMzJfVFNTLl9EU10sIGF4DQo+ ICsgICAgcG9wICAgICBlYXgNCj4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fQ1NdLCBh eA0KPiArICAgIHBvcCAgICAgZWF4DQo+ICtvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1MuX1NT XSwgYXgNCj4gKw0KPiArOzsgVUlOVDMyICBFZGksIEVzaSwgRWJwLCBFc3AsIEVieCwgRWR4LCBF Y3gsIEVheDsNCj4gKyAgICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURJXQ0KPiAr ICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU0ldDQo+ICsgICAgYWRkICAgICBl c3AsIDQgICA7IG5vdCBmb3IgZWJwDQo+ICsgICAgYWRkICAgICBlc3AsIDQgICA7IG5vdCBmb3Ig ZXNwDQo+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VCWF0NCj4gKyAgICBw b3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURYXQ0KPiArICAgIHBvcCAgICAgZHdvcmQg W2VjeCArIElBMzJfVFNTLl9FQ1hdDQo+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9U U1MuX0VBWF0NCj4gKw0KPiArOyBTZXQgc2luZ2xlIHN0ZXAgREIjIHRvIGFsbG93IGRlYnVnZ2Vy IHRvIGFibGUgdG8gZ28gYmFjayB0byB0aGUgRUlQDQo+ICs7IHdoZXJlIHRoZSBleGNlcHRpb24g aXMgdHJpZ2dlcmVkLg0KPiArDQo+ICs7OyBDcmVhdGUgcmV0dXJuIGNvbnRleHQgZm9yIGlyZXRk IGluIHN0dWIgZnVuY3Rpb24NCj4gKyAgICBtb3YgICAgZWF4LCBkd29yZCBbZWN4ICsgSUEzMl9U U1MuX0VTUF0gICAgICA7IEdldCBvbGQgc3RhY2sgcG9pbnRlcg0KPiArICAgIG1vdiAgICBlYngs IGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBdDQo+ICsgICAgbW92ICAgIFtlYXggLSAweGNdLCBl YnggICAgICAgICAgICAgICAgICAgICAgOyBjcmVhdGUgRUlQIGluIG9sZCBzdGFjaw0KPiArICAg IG1vdnp4ICBlYngsIHdvcmQgW2VjeCArIElBMzJfVFNTLl9DU10NCj4gKyAgICBtb3YgICAgW2Vh eCAtIDB4OF0sIGVieCAgICAgICAgICAgICAgICAgICAgICA7IGNyZWF0ZSBDUyBpbiBvbGQgc3Rh Y2sNCj4gKyAgICBtb3YgICAgZWJ4LCBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUZMQUdTXQ0KPiAr ICAgIGJ0cyAgICBlYngsIDgNCj4gKyAgICBtb3YgICAgW2VheCAtIDB4NF0sIGVieCAgICAgICAg ICAgICAgICAgICAgICA7IGNyZWF0ZSBlZmxhZ3MgaW4gb2xkIHN0YWNrDQo+ICsgICAgbW92ICAg IGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdLCBlYnggICAgOyB1cGRhdGUgZWZsYWdzIGlu IG9sZCBUU1MNCj4gKyAgICBtb3YgICAgZWF4LCBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0g ICAgICA7IEdldCBvbGQgc3RhY2sgcG9pbnRlcg0KPiArICAgIHN1YiAgICBlYXgsIDB4YyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDsgbWludXMgMTIgYnl0ZQ0KPiArICAgIG1vdiAgICBk d29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0sIGVheCAgICAgIDsgU2V0IG5ldyBzdGFjayBwb2lu dGVyDQo+ICsNCj4gKzs7IFJlcGxhY2UgdGhlIEVJUCBvZiBpbnRlcnJ1cHRlZCB0YXNrIHdpdGgg c3R1YiBmdW5jdGlvbg0KPiArICAgIG1vdiAgICBlYXgsIEFTTV9QRlgoU2luZ2xlU3RlcFN0dWJG dW5jdGlvbikNCj4gKyAgICBtb3YgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVJUF0sIGVheA0K PiArDQo+ICsgICAgbW92ICAgICBlY3gsIFtlYnAgLSA4XSAgICAgICAgICAgICAgICAgICAgICAg OyBHZXQgY3VycmVudCBUU1MgYmFzZQ0KPiArICAgIG1vdiAgICAgZWF4LCBkd29yZCBbZWN4ICsg SUEzMl9UU1MuX0VTUF0gICAgIDsgUmV0dXJuIGN1cnJlbnQgc3RhY2sgdG9wDQo+ICsgICAgbW92 ICAgICBlc3AsIGVicA0KPiArDQo+ICsgICAgcmV0DQo+ICsNCj4gK2dsb2JhbCBBU01fUEZYKFNp bmdsZVN0ZXBTdHViRnVuY3Rpb24pDQo+ICtBU01fUEZYKFNpbmdsZVN0ZXBTdHViRnVuY3Rpb24p Og0KPiArOw0KPiArOyB3ZSBuZWVkIGNsZWFuIFRTIGJpdCBpbiBDUjAgdG8gZXhlY3V0ZQ0KPiAr OyB4ODcgRlBVL01NWC9TU0UvU1NFMi9TU0UzL1NTU0UzL1NTRTQgaW5zdHJ1Y3Rpb25zLg0KPiAr Ow0KPiArICAgIGNsdHMNCj4gKyAgICBpcmV0ZA0KPiArDQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+ICs7IFZPSUQNCj4gKzsgQXNtV3JpdGVUciAoDQo+ICs7ICAgVUlOVDE2IFNlbGVjdG9y DQo+ICs7ICAgKTsNCj4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK2dsb2JhbCBBU01fUEZY KEFzbVdyaXRlVHIpDQo+ICtBU01fUEZYKEFzbVdyaXRlVHIpOg0KPiArICAgIG1vdiAgICAgZWF4 LCBbZXNwKzRdDQo+ICsgICAgbHRyICAgICBheA0KPiArICAgIHJldA0KPiArDQo+ICtEZWZFeGNl cHRpb25UYXNrU3d0aWNoRW50cnkgNg0KPiArRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDgN Cj4gK0RlZkV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSAxMg0KPiArRGVmRXhjZXB0aW9uVGFza1N3 dGljaEVudHJ5IDEzDQo+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkgMTQNCj4gK0RlZkV4 Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSAxNw0KPiArRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5 IDE4DQo+ICsNCj4gZGlmZiAtLWdpdA0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mDQo+IGIvVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi5pbmYNCj4gaW5kZXggNzU0NDMyODhhOS4uNGMwZDQzNTEzNiAxMDA2NDQNCj4gLS0tDQo+IGEv VWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi5pbmYNCj4gKysrDQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYNCj4gQEAgLTMwLDYgKzMw LDcgQEANCj4gIFtTb3VyY2VzLklhMzJdDQo+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5h c20NCj4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20NCj4gKyAgSWEzMi9FeGNlcHRp b25Uc3NFbnRyeUFzbS5uYXNtDQo+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ICAg IElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiAgICBJYTMyL0FyY2hJbnRlcnJ1cHREZWZz LmgNCj4gZGlmZiAtLWdpdA0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaQ0KPiBuZg0KPiBiL1VlZmlDcHVQ a2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIuaQ0KPiBuZg0KPiBpbmRleCBkNzBhOTljMTAwLi5hZGI0MTViYTVhIDEwMDY0NA0KPiAt LS0NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlD cHVFeGNlcHRpb25IYW5kbGVyTGliLmkNCj4gbmYNCj4gKysrDQo+IGIvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5p DQo+IG5mDQo+IEBAIC0zMCw2ICszMCw3IEBADQo+ICBbU291cmNlcy5JYTMyXQ0KPiAgICBJYTMy L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQo+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5u YXNtDQo+ICsgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0KPiAgICBJYTMyL0V4Y2Vw dGlvbkhhbmRsZXJBc20uUw0KPiAgICBJYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gICAg SWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+IEBAIC01NywzICs1OCw1IEBADQo+ICAgIFByaW50 TGliDQo+ICAgIExvY2FsQXBpY0xpYg0KPiAgICBQZUNvZmZHZXRFbnRyeVBvaW50TGliDQo+ICsg IE1lbW9yeUFsbG9jYXRpb25MaWINCj4gKw0KPiBkaWZmIC0tZ2l0DQo+IGEvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21tQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5p bmYNCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1DcHVF eGNlcHRpb25IYW5kbGVyTGliLmluZg0KPiBpbmRleCA2MzRmZmNiMjFkLi41NmI4NzViN2M4IDEw MDY0NA0KPiAtLS0NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KPiArKysNCj4gYi9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLmlu Zg0KPiBAQCAtMzAsNiArMzAsNyBAQA0KPiAgW1NvdXJjZXMuSWEzMl0NCj4gICAgSWEzMi9FeGNl cHRpb25IYW5kbGVyQXNtLmFzbQ0KPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbQ0K PiArICBJYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20NCj4gICAgSWEzMi9FeGNlcHRpb25I YW5kbGVyQXNtLlMNCj4gICAgSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ICAgIElhMzIv QXJjaEludGVycnVwdERlZnMuaA0KPiBkaWZmIC0tZ2l0DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5 L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gYi9V ZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlv bkhhbmRsZXIuYw0KPiBpbmRleCA2NWYwY2ZmNjgwLi4yNGYyYTg0ODZhIDEwMDY0NA0KPiAtLS0g YS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2Vw dGlvbkhhbmRsZXIuYw0KPiArKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiBAQCAtMTQsNiArMTQsMTkgQEAN Cj4NCj4gICNpbmNsdWRlICJDcHVFeGNlcHRpb25Db21tb24uaCINCj4NCj4gKy8vDQo+ICsvLyBM aXN0IG9mIGV4Y2VwdGlvbnMgbmVlZGluZyBzZXBhcmF0ZSBzdGFjaw0KPiArLy8NCj4gK1NUQVRJ QyBVSU5UTiAgbUV4Y2VwdGlvbnNXaXRoU3RhY2tbXSA9IHsNCj4gKyAgNiwgIC8vI1VEOiBJbnZh bGlkIE9wY29kZSBFeGNlcHRpb24NCj4gKyAgOCwgIC8vI0RGOiBEb3VibGUgRmF1bHQgRXhjZXB0 aW9uDQo+ICsgIDEyLCAvLyNTUzogU3RhY2sgRmF1bHQgRXhjZXB0aW9uDQo+ICsgIDEzLCAvLyNH UDogR2VuZXJhbCBQcm90ZWN0aW9uIEV4Y2VwdGlvbg0KPiArICAxNCwgLy8jUEY6IFBhZ2UtRmF1 bHQgRXhjZXB0aW9uDQo+ICsgIDE3LCAvLyNBQzogQWxpZ25tZW50IENoZWNrIEV4Y2VwdGlvbg0K PiArICAxOCAgLy8jTUM6IE1hY2hpbmUtQ2hlY2sgRXhjZXB0aW9uDQo+ICsgIH07DQo+ICsNCj4g IC8qKg0KPiAgICBSZXR1cm4gYWRkcmVzcyBtYXAgb2YgZXhjZXB0aW9uIGhhbmRsZXIgdGVtcGxh dGUgc28gdGhhdCBDIGNvZGUgY2FuDQo+IGdlbmVyYXRlDQo+ICAgIGV4Y2VwdGlvbiB0YWJsZXMu DQo+IEBAIC0xMTIsNiArMTI1LDEwMSBAQCBBcmNoUmVzdG9yZUV4Y2VwdGlvbkNvbnRleHQgKA0K PiAgICBTeXN0ZW1Db250ZXh0LlN5c3RlbUNvbnRleHRYNjQtPkV4Y2VwdGlvbkRhdGEgPQ0KPiBS ZXNlcnZlZFZlY3RvcnNbRXhjZXB0aW9uVHlwZV0uRXhjZXB0aW9uRGF0YTsNCj4gIH0NCj4NCj4g Ky8qKg0KPiArICBTZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3Igc3BlY2lmaWMgZXhjZXB0aW9ucy4N Cj4gKw0KPiArICBAcGFyYW1baW5dIElkdFRhYmxlICAgICAgICBJRFQgdGFibGUgYmFzZS4NCj4g KyoqLw0KPiArVk9JRA0KPiArRUZJQVBJDQo+ICtBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoDQo+ ICsgIElOIElBMzJfSURUX0dBVEVfREVTQ1JJUFRPUiAgICAgICAgICAgKklkdFRhYmxlDQo+ICsg ICkNCj4gK3sNCj4gKyAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAqTmV3R2R0Ow0KPiArICBJ QTMyX0RFU0NSSVBUT1IgICAgICAgICAgIEdkdERlc2M7DQo+ICsgIFVJTlROICAgICAgICAgICAg ICAgICAgICAgT2xkR2R0U2l6ZTsNCj4gKyAgVFNTX0VOVFJJRVMgICAgICAgICAgICAgICAqVHNz RW50cnk7DQo+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgU3RhY2tCYXNlOw0KPiArICBV SU5UTiAgICAgICAgICAgICAgICAgICAgIFN0YWNrVG9wOw0KPiArICBVSU5UTiAgICAgICAgICAg ICAgICAgICAgIFN0YWNrU2l6ZTsNCj4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBUc3NC YXNlOw0KPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiArDQo+ICsgIC8v DQo+ICsgIC8vIEFsbG9jYXRlIFJ1bnRpbWUgRGF0YSBmb3IgdGhlIEdEVA0KPiArICAvLw0KPiAr ICBBc21SZWFkR2R0cigmR2R0RGVzYyk7DQo+ICsgIE9sZEdkdFNpemUgPSBHZHREZXNjLkxpbWl0 ICsgMTsNCj4gKyAgTmV3R2R0ID0gQWxsb2NhdGVSdW50aW1lWmVyb1Bvb2woT2xkR2R0U2l6ZSAr IHNpemVvZihUU1NfRU5UUklFUykNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KyBJQTMyX0dEVF9BTElHTk1FTlQpOw0KPiArICBpZiAoTmV3R2R0ID09IE5VTEwpIHsNCj4gKyAg ICByZXR1cm47DQo+ICsgIH0NCj4gKyAgTmV3R2R0ID0gQUxJR05fUE9JTlRFUiAoTmV3R2R0LCBJ QTMyX0dEVF9BTElHTk1FTlQpOw0KPiArDQo+ICsgIC8vDQo+ICsgIC8vIEluaXRpYWxpemUgbmV3 IEdEVCBlbnRyaWVzDQo+ICsgIC8vDQo+ICsgIENvcHlNZW0oTmV3R2R0LCAoVk9JRCAqKUdkdERl c2MuQmFzZSwgT2xkR2R0U2l6ZSk7DQo+ICsgIEdkdERlc2MuQmFzZSA9IChVSU5UTikoVk9JRCop TmV3R2R0Ow0KPiArICBHZHREZXNjLkxpbWl0ID0gKFVJTlQxNikoT2xkR2R0U2l6ZSArIFRTU19P RkZTRVQgLSAxKTsNCj4gKw0KPiArICAvLw0KPiArICAvLyBSZXNlcnZlIHN0YXRjayBtZW1vcnkg Zm9yIHN1cHBvcnRlZCBleGNlcHRpb25zDQo+ICsgIC8vDQo+ICsgIFN0YWNrU2l6ZSA9IEFSUkFZ X1NJWkUgKG1FeGNlcHRpb25zV2l0aFN0YWNrKSAqIEVYQ0VQVElPTl9TVEFDS19TSVpFOw0KPiAr ICBTdGFja1NpemUgPSBFRklfUEFHRVNfVE9fU0laRSAoRUZJX1NJWkVfVE9fUEFHRVMgKFN0YWNr U2l6ZSkpOw0KPiArICBTdGFja0Jhc2UgPSAoVUlOVDY0KUFsbG9jYXRlUGFnZXMgKEVGSV9TSVpF X1RPX1BBR0VTIChTdGFja1NpemUpKTsNCj4gKyAgaWYgKFN0YWNrQmFzZSA9PSAwKSB7DQo+ICsg ICAgRnJlZVBvb2wgKE5ld0dkdCk7DQo+ICsgICAgcmV0dXJuOw0KPiArICB9DQo+ICsNCj4gKyAg Ly8NCj4gKyAgLy8gRml4dXAgVFNTIGRlc2NyaXB0b3JzDQo+ICsgIC8vDQo+ICsgIFRzc0VudHJ5 ID0gKFZPSUQgKikoR2R0RGVzYy5CYXNlICsgT2xkR2R0U2l6ZSk7DQo+ICsgIFRzc0Jhc2UgPSAo VUlOVE4pKFZPSUQgKikmVHNzRW50cnktPlRzczsNCj4gKw0KPiArICBUc3NFbnRyeS0+VHNzU2Vn LkxpbWl0MTVfMCAgICAgICAgICAgID0NCj4gc2l6ZW9mKElBMzJfVEFTS19TVEFURV9TRUdNRU5U KSAtIDE7DQo+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTE1XzAgICAgICAgICAgICAgPSAoVUlO VDE2KVRzc0Jhc2U7DQo+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTIzXzE2ICAgICAgICAgICAg PSAoVUlOVDgpKFRzc0Jhc2UgPj4gMTYpOw0KPiArICBUc3NFbnRyeS0+VHNzU2VnLlR5cGUgICAg ICAgICAgICAgICAgID0gSUEzMl9HRFRfVFlQRV9UU1M7DQo+ICsgIFRzc0VudHJ5LT5Uc3NTZWcu TGltaXQxOV8xNl9hbmRfZmxhZ3MgPSAwOw0KPiArICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UzMV8y NCAgICAgICAgICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDI0KTsNCj4gKyAgVHNzRW50cnktPlRz c1NlZy5CYXNlNjNfMzIgICAgICAgICAgICA9IChVSU5UMzIpKFRzc0Jhc2UgPj4gMzIpOw0KPiAr ICBUc3NFbnRyeS0+VHNzU2VnLlJlc2VydmVkICAgICAgICAgICAgID0gMDsNCj4gKw0KPiArICAv Lw0KPiArICAvLyBFbmFibGUgSW50ZXJydXB0IFN0YWNrIFRhYmxlIChJU1QpIGZvciBlYWNoIHJl cXVpcmVkIGV4Y2VwdGlvbg0KPiArICAvLw0KPiArICBTdGFja1RvcCAgPSBTdGFja0Jhc2UgKyBT dGFja1NpemUgLSBDUFVfU1RBQ0tfQUxJR05NRU5UOw0KPiArICBTdGFja1RvcCAgPSAoVUlOVE4p QUxJR05fUE9JTlRFUiAoU3RhY2tUb3AsIENQVV9TVEFDS19BTElHTk1FTlQpOw0KPiArICBmb3Ig KEluZGV4ID0gMDsgSW5kZXggPCBBUlJBWV9TSVpFIChtRXhjZXB0aW9uc1dpdGhTdGFjayk7ICsr SW5kZXgpIHsNCj4gKyAgICAvLw0KPiArICAgIC8vIEZpeHVwIFRTUw0KPiArICAgIC8vDQo+ICsg ICAgVHNzRW50cnktPlRzcy5JU1RbSW5kZXhdID0gU3RhY2tUb3A7DQo+ICsgICAgU3RhY2tUb3Ag LT0gRVhDRVBUSU9OX1NUQUNLX1NJWkU7DQo+ICsNCj4gKyAgICAvLw0KPiArICAgIC8vIFNldCB0 aGUgSVNUIGZpZWxkIHRvIDEgdG8gZW5hYmxlIGNvcnJlc3BvbmRpbmcgSVNUDQo+ICsgICAgLy8N Cj4gKyAgICBJZHRUYWJsZVttRXhjZXB0aW9uc1dpdGhTdGFja1tJbmRleF1dLkJpdHMuUmVzZXJ2 ZWRfMCA9IChVSU5UOCkoSW5kZXggKw0KPiAxKTsNCj4gKyAgfQ0KPiArDQo+ICsgIC8vDQo+ICsg IC8vIFB1Ymxpc2ggdGhlIGNoYW5nZXMNCj4gKyAgLy8NCj4gKyAgQXNtV3JpdGVHZHRyKCZHZHRE ZXNjKTsNCj4gKw0KPiArICAvLw0KPiArICAvLyBMb2FkIHRhc2sgcmVnaXN0ZXINCj4gKyAgLy8N Cj4gKyAgQXNtV3JpdGVUciAoKFVJTlQxNikoT2xkR2R0U2l6ZSArIFRTU19TRUwpKTsNCj4gK30N Cj4gKw0KPiAgLyoqDQo+ICAgIERpc3BsYXkgQ1BVIGluZm9ybWF0aW9uLg0KPg0KPiBkaWZmIC0t Z2l0DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0Fy Y2hJbnRlcnJ1cHREZWZzLmgNCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaA0KPiBpbmRleCA5MDY0ODAxMzRhLi41YTkx M2JhZTdiIDEwMDY0NA0KPiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaA0KPiArKysgYi9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaA0KPiBAQCAt NDMsNCArNDMsNDQgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAgICBVSU5UOCAgICAgICBIb29rQWZ0 ZXJTdHViSGVhZGVyQ29kZVtIT09LQUZURVJfU1RVQl9TSVpFXTsNCj4gIH0gUkVTRVJWRURfVkVD VE9SU19EQVRBOw0KPg0KPiArI3ByYWdtYSBwYWNrICgxKQ0KPiArDQo+ICsjZGVmaW5lIEVYQ0VQ VElPTl9MSVNUX01BWCAgICAgICAgNw0KPiArI2RlZmluZSBFWENFUFRJT05fU1RBQ0tfU0laRSAg ICAgIEVGSV9QQUdFX1NJWkUNCj4gKyNkZWZpbmUgSUEzMl9HRFRfVFlQRV9UU1MgICAgICAgICAw eDg5DQo+ICsjZGVmaW5lIElBMzJfR0RUX0FMSUdOTUVOVCAgICAgICAgOA0KPiArDQo+ICt0eXBl ZGVmIHN0cnVjdCB7DQo+ICsgIFVJTlQzMiAgICBSZXNlcnZlZF8wOw0KPiArICBVSU5UNjQgICAg UlNQMDsNCj4gKyAgVUlOVDY0ICAgIFJTUDE7DQo+ICsgIFVJTlQ2NCAgICBSU1AyOw0KPiArICBV SU5UNjQgICAgUmVzZXJ2ZWRfMjg7DQo+ICsgIFVJTlQ2NCAgICBJU1RbN107DQo+ICsgIFVJTlQ2 NCAgICBSZXNlcnZlZF85MjsNCj4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzEwMDsNCj4gKyAgVUlO VDE2ICAgIElPTWFwQmFzZUFkZHJlc3M7DQo+ICt9IElBMzJfVEFTS19TVEFURV9TRUdNRU5UOw0K PiArDQo+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ICsgIFVJTlQxNiAgICBMaW1pdDE1XzA7DQo+ICsg IFVJTlQxNiAgICBCYXNlMTVfMDsNCj4gKyAgVUlOVDggICAgIEJhc2UyM18xNjsNCj4gKyAgVUlO VDggICAgIFR5cGU7DQo+ICsgIFVJTlQ4ICAgICBMaW1pdDE5XzE2X2FuZF9mbGFnczsNCj4gKyAg VUlOVDggICAgIEJhc2UzMV8yNDsNCj4gKyAgVUlOVDMyICAgIEJhc2U2M18zMjsNCj4gKyAgVUlO VDMyICAgIFJlc2VydmVkOw0KPiArfSBJQTMyX1RTU19ERVNDUklQVE9SOw0KPiArDQo+ICt0eXBl ZGVmIHN0cnVjdCB7DQo+ICsgIElBMzJfVFNTX0RFU0NSSVBUT1IgICAgICAgICAgIFRzc1NlZzsN Cj4gKyAgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQgICAgICAgVHNzOw0KPiArfSBUU1NfRU5UUklF UzsNCj4gKw0KPiArI3ByYWdtYSBwYWNrICgpDQo+ICsNCj4gKyNkZWZpbmUgVFNTX1NFTCAgICAg ICAgICAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywgVHNzU2VnKQ0KPiArI2RlZmluZSBUU1NfT0ZG U0VUICAgICAgICBPRkZTRVRfT0YgKFRTU19FTlRSSUVTLCBUc3MpDQo+ICsNCj4gICNlbmRpZg0K PiBkaWZmIC0tZ2l0DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gaW5kZXggZWRk MzYzY2RhYS4uYmRhZjEzMmNmNSAxMDA2NDQNCj4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiArKysNCj4g Yi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9u SGFuZGxlckFzbS5TDQo+IEBAIC00MjksNiArNDI5LDE4IEBAIEFTTV9QRlgoQXNtVmVjdG9yTnVt Rml4dXApOg0KPiAgICAgIHBvcHEgICAgICAlcmJwDQo+ICAgICAgcmV0DQo+DQo+ICsjLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ICsjIFZPSUQNCj4gKyMgQXNtV3JpdGVUciAoDQo+ICsjICAgVUlO VDE2IFNlbGVjdG9yDQo+ICsjICAgKTsNCj4gKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gK0FT TV9HTE9CQUwgQVNNX1BGWChBc21Xcml0ZVRyKQ0KPiArQVNNX1BGWChBc21Xcml0ZVRyKToNCj4g KyAgICBtb3ZsICAgICVlY3gsICVlYXgNCj4gKyAgICBsdHJ3ICAgICVheA0KPiArICAgIHJldA0K PiArDQo+ICAjRU5EDQo+DQo+DQo+IGRpZmYgLS1naXQNCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkv Q3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20NCj4gYi9V ZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFu ZGxlckFzbS5hc20NCj4gaW5kZXggNzI2YzY0YTE0MC4uYWVjNTZlZjRiZiAxMDA2NDQNCj4gLS0t DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2Vw dGlvbkhhbmRsZXJBc20uYXNtDQo+ICsrKw0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNl cHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KPiBAQCAtMzg2LDQg KzM4NiwxNiBAQCBBc21WZWN0b3JOdW1GaXh1cCAgIFBST0MNCj4gICAgICByZXQNCj4gIEFzbVZl Y3Rvck51bUZpeHVwICAgRU5EUA0KPg0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyBW T0lEDQo+ICs7IEFzbVdyaXRlVHIgKA0KPiArOyAgIFVJTlQxNiBTZWxlY3Rvcg0KPiArOyAgICk7 DQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtBc21Xcml0ZVRyIFBST0MgUFVCTElDDQo+ ICsgICAgbW92ICAgICBlYXgsIGVjeA0KPiArICAgIGx0ciAgICAgYXgNCj4gKyAgICByZXQNCj4g K0FzbVdyaXRlVHIgRU5EUA0KPiArDQo+ICBFTkQNCj4gZGlmZiAtLWdpdA0KPiBhL1VlZmlDcHVQ a2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNt Lm5hc20NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQv RXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtDQo+IGluZGV4IGJhODk5M2Q4NGIuLjFlMmFjNDExYjAg MTAwNjQ0DQo+IC0tLQ0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVy TGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20NCj4gKysrDQo+IGIvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFz bQ0KPiBAQCAtMzg1LDMgKzM4NSwxNSBAQCBBU01fUEZYKEFzbVZlY3Rvck51bUZpeHVwKToNCj4g ICAgICBtb3YgICAgIFtyY3ggKyAoQFZlY3Rvck51bSAtIEhvb2tBZnRlclN0dWJIZWFkZXJCZWdp bildLCBhbA0KPiAgICAgIHJldA0KPg0KPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOyBW T0lEDQo+ICs7IEFzbVdyaXRlVHIgKA0KPiArOyAgIFVJTlQxNiBTZWxlY3Rvcg0KPiArOyAgICk7 DQo+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICtnbG9iYWwgQVNNX1BGWChBc21Xcml0ZVRy KQ0KPiArQVNNX1BGWChBc21Xcml0ZVRyKToNCj4gKyAgICBtb3YgICAgIGVheCwgZWN4DQo+ICsg ICAgbHRyICAgICBheA0KPiArICAgIHJldA0KPiArDQo+IC0tDQo+IDIuMTQuMS53aW5kb3dzLjEN Cg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCmVkazIt ZGV2ZWwgbWFpbGluZyBsaXN0DQplZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KaHR0cHM6Ly9saXN0 cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQoNCg==