From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.93; helo=mga11.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id AADCF2034AB3F for ; Tue, 31 Oct 2017 19:42:10 -0700 (PDT) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 31 Oct 2017 19:46:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,326,1505804400"; d="scan'208,217";a="330359507" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga004.fm.intel.com with ESMTP; 31 Oct 2017 19:46:01 -0700 Received: from fmsmsx153.amr.corp.intel.com (10.18.125.6) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 31 Oct 2017 19:46:01 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX153.amr.corp.intel.com (10.18.125.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 31 Oct 2017 19:46:00 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.218]) with mapi id 14.03.0319.002; Wed, 1 Nov 2017 10:45:53 +0800 From: "Wang, Jian J" To: Fan Jeff , "edk2-devel@lists.01.org" CC: "Kinney, Michael D" , "Yao, Jiewen" , "Dong, Eric" , "Zeng, Star" Thread-Topic: [edk2] [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support Thread-Index: AQHTUlQxZoE+4gRCf0Oo+PeG+3Z2yqL+zzSbgAACtFA= Date: Wed, 1 Nov 2017 02:45:52 +0000 Message-ID: References: <20171031142412.21680-1-jian.j.wang@intel.com>, <20171031142412.21680-4-jian.j.wang@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZDhiMjEzZWItZDIwMy00YzcyLWFhNzUtOTEyMjE3ZTZhMjhjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJxdzFTaXdDeUJTbG8zZzlrbFE4TklhcU9XbVNQVk95YVwvUG12VVM2bGVucDJGZHRKWmMzMWk4VngzY1wvSUFUOUYifQ== x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: Re: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support 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:42:11 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgSmVmZiwNCg0KVGhhbmtzIGZvciB0aGUgZmVlZGJhY2suDQoNCkZyb206IEZhbiBKZWZmIFtt YWlsdG86dmFuamVmZl85MTlAaG90bWFpbC5jb21dDQpTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVy IDAxLCAyMDE3IDEwOjM3IEFNDQpUbzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5j b20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNv bT47IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnpl bmdAaW50ZWwuY29tPg0KU3ViamVjdDogtPC4tDogW2VkazJdIFtQQVRDSCAzLzNdIFVlZmlDcHVQ a2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkIHN0YWNrIHN3aXRjaCBzdXBwb3J0DQoNCg0K MS4gICAgICBTaG91bGQgYWRkIEVGSUFQSSBmb3IgdGhlIGZvbGxvd2luZyBmdW5jdGlvbi4NCitW T0lEDQorQXNtV3JpdGVUciAoDQorICBVSU5UMTYgU2VsZWN0b3INCisgICk7DQoNCg0KMi4gICAg ICBTaG91bGQgbm90IGFkZCBFRklBUEkgZm9yIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24uDQorVk9J RA0KK0VGSUFQSQ0KK0FyY2hTZXR1cEV4Y3BldGlvblN0YWNrICgNCisgIElOIElBMzJfSURUX0dB VEVfREVTQ1JJUFRPUiAgICAgICAgICAgKklkdFRhYmxlDQorICApDQoNCreivP7IyzogSmlhbiBK IFdhbmc8bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4NCreiy83KsbzkOiAyMDE3xOoxMNTC MzHI1SAyMjoyNg0KytW8/sjLOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmc+DQqzrcvNOiBNaWNoYWVsIEtpbm5leTxtYWlsdG86bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+OyBKaWV3ZW4gWWFvPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNv bT47IEVyaWMgRG9uZzxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNvbT47IFN0YXIgWmVuZzxtYWls dG86c3Rhci56ZW5nQGludGVsLmNvbT4NCtb3zOI6IFtlZGsyXSBbUEFUQ0ggMy8zXSBVZWZpQ3B1 UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2ggc3VwcG9ydA0KDQpJ ZiBTdGFjayBHdWFyZCBpcyBlbmFibGVkIGFuZCB0aGVyZSdzIHJlYWxseSBhIHN0YWNrIG92ZXJm bG93IGhhcHBlbmVkIGR1cmluZw0KYm9vdCwgYSBQYWdlIEZhdWx0IGV4Y2VwdGlvbiB3aWxsIGJl IHRyaWdnZXJlZC4gQmVjYXVzZSB0aGUgc3RhY2sgaXMgb3V0IG9mDQp1c2FnZSwgdGhlIGV4Y2Vw dGlvbiBoYW5kbGVyLCB3aGljaCBzaGFyZXMgdGhlIHN0YWNrIHdpdGggbm9ybWFsIFVFRkkgZHJp dmVyLA0KY2Fubm90IGJlIGV4ZWN1dGVkIGFuZCBjYW5ub3QgZHVtcCB0aGUgcHJvY2Vzc29yIGlu Zm9ybWF0aW9uLg0KDQpXaXRob3V0IHRob3NlIGluZm9ybWF0aW9uLCBpdCdzIHZlcnkgZGlmZmlj dWx0IGZvciB0aGUgQklPUyBkZXZlbG9wZXJzIGxvY2F0ZQ0KdGhlIHJvb3QgY2F1c2Ugb2Ygc3Rh Y2sgb3ZlcmZsb3cuIEFuZCB3aXRob3V0IGEgd29ya2FibGUgc3RhY2ssIHRoZSBkZXZlbG9wZXIN CmNhbm5vdCBldmVudCB1c2Ugc2luZ2xlIHN0ZXAgdG8gZGVidWcgdGhlIFVFRkkgZHJpdmVyIHdp dGggSlRBRyBkZWJ1Z2dlci4NCg0KSW4gb3JkZXIgdG8gbWFrZSBzdXJlIHRoZSBleGNlcHRpb24g aGFuZGxlciB0byBleGVjdXRlIG5vcm1hbGx5IGFmdGVyIHN0YWNrDQpvdmVyZmxvdy4gV2UgbmVl ZCBzZXBhcmF0ZSBzdGFja3MgZm9yIGV4Y2VwdGlvbiBoYW5kbGVycyBpbiBjYXNlIG9mIHVudXNh YmxlDQpzdGFjay4NCg0KSUEgcHJvY2Vzc29yIGFsbG93cyB0byBzd2l0Y2ggdG8gYSBuZXcgc3Rh Y2sgZHVyaW5nIGhhbmRsaW5nIGludGVycnVwdCBhbmQNCmV4Y2VwdGlvbi4gQnV0IFg2NCBhbmQg SUEzMiBwcm92aWRlcyBkaWZmZXJlbnQgd2F5cyB0byBtYWtlIGl0LiBYNjQgcHJvdmlkZXMNCmlu dGVycnVwdCBzdGFjayB0YWJsZSAoSVNUKSB0byBhbGxvdyBtYXhpbXVtIDcgZGlmZmVyZW50IGV4 Y2VwdGlvbnMgdG8gaGF2ZQ0KbmV3IHN0YWNrIGZvciBpdHMgaGFuZGxlci4gSUEzMiBkb2Vzbid0 IGhhdmUgSVNUIG1lY2hhbmlzbSBhbmQgY2FuIG9ubHkgdXNlDQp0YXNrIGdhdGUgdG8gZG8gaXQg c2luY2UgdGFzayBzd2l0Y2ggYWxsb3dzIHRvIGxvYWQgYSBuZXcgc3RhY2sgdGhyb3VnaCBpdHMN CnRhc2stc3RhdGUgc2VnbWVudCAoVFNTKS4NCg0KTm90ZTogU3RhY2sgc3dpdGNoIG5lZWRzIHRv IGFsbG9jYXRlIG1lbW9yeSBwYWdlcyB0byBiZSBuZXcgc3RhY2tzLiBTbyB0aGlzDQogICAgICBm dW5jdGlvbmFsaXR5IHdvcmtzIG9ubHkgaW4gdGhlIGJvb3QgcGhhc2VzIGNhcGFibGUgb2YgbWVt b3J5DQogICAgICBhbGxvY2F0aW9uIChiZXNpZGVzIHRoZSBwYWdpbmcsIGZvciB0aGUgc2FrZSBv ZiBTdGFjayBHdWFyZCkuIEluDQogICAgICBvdGhlciB3b3Jkcywgb25seSBEWEUgcGhhc2UgY2Fu IHN1cHBvcnRzIFN0YWNrIEd1YXJkIHdpdGggc3RhY2sgc3dpdGNoLg0KDQpDYzogU3RhciBaZW5n IDxzdGFyLnplbmdAaW50ZWwuY29tPG1haWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPj4NCkNjOiBF cmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb208bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+ Pg0KQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFv QGludGVsLmNvbT4+DQpDYzogTWljaGFlbCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+DQpTdWdnZXN0ZWQtYnk6IEF5 ZWxsZXQgV29sbWFuIDxheWVsbGV0LndvbG1hbkBpbnRlbC5jb208bWFpbHRvOmF5ZWxsZXQud29s bWFuQGludGVsLmNvbT4+DQpDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlv biBBZ3JlZW1lbnQgMS4xDQpTaWduZWQtb2ZmLWJ5OiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdA aW50ZWwuY29tPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+Pg0KLS0tDQogLi4uL0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmggICAgfCAgMjIgKysNCiAuLi4v RHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAgICAgICAgICB8ICAgNSArDQog Li4uL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYyAgfCAgMTkg Kw0KIC4uLi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMgICAgICAgICAgICAgICAgICAgIHwg MTM1ICsrKysrKysNCiAuLi4vSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oICAgICAgICAgICAgICAg ICAgICAgICB8IDEzNiArKysrKysrDQogLi4uL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFz bSAgICAgICAgICAgICAgICAgfCAzOTggKysrKysrKysrKysrKysrKysrKysrDQogLi4uL1BlaUNw dUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KIC4uLi9T ZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiAgICAgICAgICAgICAgIHwgICAzICsNCiAu Li4vU21tQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAgICAgICAgICB8ICAgMSAr DQogLi4uL1g2NC9BcmNoRXhjZXB0aW9uSGFuZGxlci5jICAgICAgICAgICAgICAgICAgICAgfCAx MDggKysrKysrDQogLi4uL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hJbnRlcnJ1cHRE ZWZzLmggfCAgNDAgKysrDQogLi4uL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLlMgICAgICAgICAg ICAgICAgICAgICAgfCAgMTIgKw0KIC4uLi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20gICAg ICAgICAgICAgICAgICAgIHwgIDEyICsNCiAuLi4vWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFz bSAgICAgICAgICAgICAgICAgICB8ICAxMiArDQogMTQgZmlsZXMgY2hhbmdlZCwgOTA0IGluc2Vy dGlvbnMoKykNCiBjcmVhdGUgbW9kZSAxMDA2NDQgVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS5uYXNtDQoNCmRpZmYgLS1n aXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRp b25Db21tb24uaCBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0Nw dUV4Y2VwdGlvbkNvbW1vbi5oDQppbmRleCA3NDBhNTg4MjhiLi5mZDRhMjZhNDU4IDEwMDY0NA0K LS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0 aW9uQ29tbW9uLmgNCisrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVy TGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oDQpAQCAtMjUsNiArMjUsNyBAQA0KICNpbmNsdWRlIDxM aWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCiAjaW5jbHVkZSA8TGlicmFyeS9TeW5jaHJvbml6YXRp b25MaWIuaD4NCiAjaW5jbHVkZSA8TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliLmg+DQor I2luY2x1ZGUgPExpYnJhcnkvTWVtb3J5QWxsb2NhdGlvbkxpYi5oPg0KDQogI2RlZmluZSAgQ1BV X0VYQ0VQVElPTl9OVU0gICAgICAgICAgMzINCiAjZGVmaW5lICBDUFVfSU5URVJSVVBUX05VTSAg ICAgICAgIDI1Ng0KQEAgLTI4OCw1ICsyODksMjYgQEAgQ29tbW9uRXhjZXB0aW9uSGFuZGxlcldv cmtlciAoDQogICBJTiBFWENFUFRJT05fSEFORExFUl9EQVRBICAgICAgKkV4Y2VwdGlvbkhhbmRs ZXJEYXRhDQogICApOw0KDQorLyoqDQorICBMb2FkIGdpdmVuIHNlbGVjdG9yIGludG8gVFIgcmVn aXN0ZXINCisNCisgIEBwYXJhbSBTZWxlY3RvciAgICAgICAgIFRhc2sgc2VnbWVudCBzZWxlY3Rv cg0KKyoqLw0KK1ZPSUQNCitBc21Xcml0ZVRyICgNCisgIFVJTlQxNiBTZWxlY3Rvcg0KKyAgKTsN CisNCisvKioNCisgIFNldHVwIHNlcGFyYXRlIHN0YWNrIGZvciBzcGVjaWZpYyBleGNlcHRpb25z Lg0KKw0KKyAgQHBhcmFtW2luXSBJZHRUYWJsZSAgICAgICAgSURUIHRhYmxlIGJhc2UuDQorKiov DQorVk9JRA0KK0VGSUFQSQ0KK0FyY2hTZXR1cEV4Y3BldGlvblN0YWNrICgNCisgIElOIElBMzJf SURUX0dBVEVfREVTQ1JJUFRPUiAgICAgICAgICAgKklkdFRhYmxlDQorICApOw0KKw0KICNlbmRp Zg0KDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KaW5kZXgg ZjRhOGQwMWM4MC4uYjA5OWVmNGRhZCAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mDQorKysg Yi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVDcHVFeGNlcHRp b25IYW5kbGVyTGliLmluZg0KQEAgLTMwLDYgKzMwLDcgQEANCiBbU291cmNlcy5JYTMyXQ0KICAg SWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNt Lm5hc20NCisgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0KICAgSWEzMi9FeGNlcHRp b25IYW5kbGVyQXNtLlMNCiAgIElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KICAgSWEzMi9B cmNoSW50ZXJydXB0RGVmcy5oDQpAQCAtNDcsNiArNDgsOSBAQA0KICAgUGVpRHhlU21tQ3B1RXhj ZXB0aW9uLmMNCiAgIER4ZUV4Y2VwdGlvbi5jDQoNCitbUGNkXQ0KKyAgZ0VmaU1kZU1vZHVsZVBr Z1Rva2VuU3BhY2VHdWlkLlBjZENwdVN0YWNrR3VhcmQNCisNCiBbUGFja2FnZXNdDQogICBNZGVQ a2cvTWRlUGtnLmRlYw0KICAgTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCkBAIC02MSwz ICs2NSw0IEBADQogICBQZUNvZmZHZXRFbnRyeVBvaW50TGliDQogICBNZW1vcnlBbGxvY2F0aW9u TGliDQogICBEZWJ1Z0xpYg0KKyAgSG9iTGliDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMgYi9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYw0KaW5kZXggMzFmZWJl Yzk3Ni4uZTlkY2QwMGUwMiAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNl cHRpb25IYW5kbGVyTGliL0R4ZUV4Y2VwdGlvbi5jDQorKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkv Q3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYw0KQEAgLTE2LDYgKzE2LDcgQEAN CiAjaW5jbHVkZSAiQ3B1RXhjZXB0aW9uQ29tbW9uLmgiDQogI2luY2x1ZGUgPExpYnJhcnkvRGVi dWdMaWIuaD4NCiAjaW5jbHVkZSA8TGlicmFyeS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+DQorI2lu Y2x1ZGUgPExpYnJhcnkvSG9iTGliLmg+DQoNCiBDT05TVCBVSU5UTiAgICBtRG9GYXJSZXR1cm5G bGFnICA9IDA7DQoNCkBAIC0xNTUsNiArMTU2LDI0IEBAIEluaXRpYWxpemVDcHVJbnRlcnJ1cHRI YW5kbGVycyAoDQoNCiAgIFVwZGF0ZUlkdFRhYmxlIChJZHRUYWJsZSwgJlRlbXBsYXRlTWFwLCAm bUV4Y2VwdGlvbkhhbmRsZXJEYXRhKTsNCg0KKyAgaWYgKFBjZEdldEJvb2wgKFBjZENwdVN0YWNr R3VhcmQpKSB7DQorICAgIC8vDQorICAgIC8vIFN0YWNrIEd1YXJkIHdvcmtzIHdpdGggdGhlIHN1 cHBvcnQgb2YgcGFnZSB0YWJsZSBlc3RhYmxpc2hlZCBhbmQNCisgICAgLy8gbWVtb3J5IG1hbmFn ZW1lbnQuIFNvIHdlIGhhdmUgdG8gZXhjbHVkZSB0aG9zZSBib290IG1vZGVzIHdpdGhvdXQNCisg ICAgLy8gdGhlbS4NCisgICAgLy8NCisgICAgc3dpdGNoIChHZXRCb290TW9kZUhvYigpKSB7DQor ICAgIGNhc2UgQk9PVF9PTl9GTEFTSF9VUERBVEU6DQorICAgIGNhc2UgQk9PVF9JTl9SRUNPVkVS WV9NT0RFOg0KKyAgICBjYXNlIEJPT1RfT05fUzNfUkVTVU1FOg0KKyAgICAgIGJyZWFrOw0KKw0K KyAgICBkZWZhdWx0Og0KKyAgICAgIEFyY2hTZXR1cEV4Y3BldGlvblN0YWNrIChJZHRUYWJsZSk7 DQorICAgICAgYnJlYWs7DQorICAgIH0NCisgIH0NCisNCiAgIC8vDQogICAvLyBMb2FkIEludGVy cnVwdCBEZXNjcmlwdG9yIFRhYmxlDQogICAvLw0KZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYyBi L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEV4Y2Vw dGlvbkhhbmRsZXIuYw0KaW5kZXggZjJjMzllYjE5My4uM2Q0MWRmNzVhNSAxMDA2NDQNCi0tLSBh L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEV4Y2Vw dGlvbkhhbmRsZXIuYw0KKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQpAQCAtMTQsNiArMTQsMTkgQEANCg0K ICNpbmNsdWRlICJDcHVFeGNlcHRpb25Db21tb24uaCINCg0KKy8vDQorLy8gTGlzdCBvZiBleGNl cHRpb25zIG5lZWRpbmcgc2VwYXJhdGUgc3RhY2sNCisvLw0KK1NUQVRJQyBJQTMyX0VYQ0VQVElP Tl9UU19FTlRSWSBtRXhjZXB0aW9uc1dpdGhTdGFja1tdID0gew0KKyAgezYsICBFeGNlcHRpb25U YXNrU3d0aWNoRW50cnk2fSwgIC8vI1VEOiBJbnZhbGlkIE9wY29kZSBFeGNlcHRpb24NCisgIHs4 LCAgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5OH0sICAvLyNERjogRG91YmxlIEZhdWx0IEV4Y2Vw dGlvbg0KKyAgezEyLCBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxMn0sIC8vI1NTOiBTdGFjayBG YXVsdCBFeGNlcHRpb24NCisgIHsxMywgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTN9LCAvLyNH UDogR2VuZXJhbCBQcm90ZWN0aW9uIEV4Y2VwdGlvbg0KKyAgezE0LCBFeGNlcHRpb25UYXNrU3d0 aWNoRW50cnkxNH0sIC8vI1BGOiBQYWdlLUZhdWx0IEV4Y2VwdGlvbg0KKyAgezE3LCBFeGNlcHRp b25UYXNrU3d0aWNoRW50cnkxN30sIC8vI0FDOiBBbGlnbm1lbnQgQ2hlY2sgRXhjZXB0aW9uDQor ICB7MTgsIEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTE4fSAgLy8jTUM6IE1hY2hpbmUtQ2hlY2sg RXhjZXB0aW9uDQorfTsNCisNCiAvKioNCiAgIFJldHVybiBhZGRyZXNzIG1hcCBvZiBleGNlcHRp b24gaGFuZGxlciB0ZW1wbGF0ZSBzbyB0aGF0IEMgY29kZSBjYW4gZ2VuZXJhdGUNCiAgIGV4Y2Vw dGlvbiB0YWJsZXMuDQpAQCAtMTA3LDYgKzEyMCwxMjggQEAgQXJjaFJlc3RvcmVFeGNlcHRpb25D b250ZXh0ICgNCiAgIFN5c3RlbUNvbnRleHQuU3lzdGVtQ29udGV4dElhMzItPkV4Y2VwdGlvbkRh dGEgPSBSZXNlcnZlZFZlY3RvcnNbRXhjZXB0aW9uVHlwZV0uRXhjZXB0aW9uRGF0YTsNCiB9DQoN CisvKioNCisgIFNldHVwIHNlcGFyYXRlIHN0YWNrIGZvciBzcGVjaWZpYyBleGNlcHRpb25zLg0K Kw0KKyAgIEBwYXJhbVtpbl0gSWR0VGFibGUgICAgICAgIElEVCB0YWJsZSBiYXNlLg0KKyoqLw0K K1ZPSUQNCitFRklBUEkNCitBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoDQorICBJTiBJQTMyX0lE VF9HQVRFX0RFU0NSSVBUT1IgICAgICAgICAgICpJZHRUYWJsZQ0KKyAgKQ0KK3sNCisgIFZPSUQg ICAgICAgICAgICAgICAgICAgICAgKk5ld0dkdDsNCisgIElBMzJfREVTQ1JJUFRPUiAgICAgICAg ICAgR2R0RGVzYzsNCisgIFVJTlROICAgICAgICAgICAgICAgICAgICAgT2xkR2R0U2l6ZTsNCisg IFRTU19FTlRSSUVTICAgICAgICAgICAgICAgKlRzc0VudHJ5Ow0KKyAgSUEzMl9UU1NfREVTQ1JJ UFRPUiAgICAgICAqVHNzRGVzYzsNCisgIElBMzJfVEFTS19TVEFURV9TRUdNRU5UICAgKlRzczsN CisgIFVJTlROICAgICAgICAgICAgICAgICAgICAgU3RhY2tCYXNlOw0KKyAgVUlOVE4gICAgICAg ICAgICAgICAgICAgICBTdGFja1RvcDsNCisgIFVJTlROICAgICAgICAgICAgICAgICAgICAgU3Rh Y2tTaXplOw0KKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBJbmRleDsNCisgIFVJTlROICAg ICAgICAgICAgICAgICAgICAgVmVjdG9yOw0KKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBU c3NCYXNlOw0KKw0KKyAgLy8NCisgIC8vIEFsbG9jYXRlIFJ1bnRpbWUgRGF0YSBmb3IgdGhlIEdE VA0KKyAgLy8NCisgIEFzbVJlYWRHZHRyKCZHZHREZXNjKTsNCisgIE9sZEdkdFNpemUgPSBHZHRE ZXNjLkxpbWl0ICsgMTsNCisgIE5ld0dkdCA9IEFsbG9jYXRlUnVudGltZVplcm9Qb29sKE9sZEdk dFNpemUgKyBzaXplb2YoVFNTX0VOVFJJRVMpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArIElBMzJfR0RUX0FMSUdOTUVOVCk7DQorICBpZiAoTmV3R2R0ID09IE5VTEwpIHsN CisgICAgcmV0dXJuOw0KKyAgfQ0KKyAgTmV3R2R0ID0gQUxJR05fUE9JTlRFUiAoTmV3R2R0LCBJ QTMyX0dEVF9BTElHTk1FTlQpOw0KKw0KKyAgLy8NCisgIC8vIEluaXRpYWxpemUgbmV3IEdEVCBl bnRyaWVzDQorICAvLw0KKyAgQ29weU1lbShOZXdHZHQsIChWT0lEICopR2R0RGVzYy5CYXNlLCBP bGRHZHRTaXplKTsNCisgIEdkdERlc2MuQmFzZSA9IChVSU5UTikoVk9JRCopTmV3R2R0Ow0KKyAg R2R0RGVzYy5MaW1pdCA9IChVSU5UMTYpKE9sZEdkdFNpemUgKyBUU1NfT0ZGU0VUIC0gMSk7DQor DQorICAvLw0KKyAgLy8gUmVzZXJ2ZSBzdGF0Y2sgbWVtb3J5IGZvciBnaXZlbiBleGNlcHRpb25z DQorICAvLw0KKyAgU3RhY2tTaXplID0gQVJSQVlfU0laRSAobUV4Y2VwdGlvbnNXaXRoU3RhY2sp ICogRVhDRVBUSU9OX1NUQUNLX1NJWkU7DQorICBTdGFja1NpemUgPSBFRklfUEFHRVNfVE9fU0la RSAoRUZJX1NJWkVfVE9fUEFHRVMgKFN0YWNrU2l6ZSkpOw0KKyAgU3RhY2tCYXNlID0gKFVJTlQ2 NCkoVUlOVE4pQWxsb2NhdGVQYWdlcyAoRUZJX1NJWkVfVE9fUEFHRVMgKFN0YWNrU2l6ZSkpOw0K KyAgaWYgKFN0YWNrQmFzZSA9PSAwKSB7DQorICAgIEZyZWVQb29sIChOZXdHZHQpOw0KKyAgICBy ZXR1cm47DQorICB9DQorDQorICAvLw0KKyAgLy8gRml4dXAgVFNTIGRlc2NyaXB0b3JzIGFuZCBz ZWdtZW50cw0KKyAgLy8NCisgIFRzc0VudHJ5ID0gKFZPSUQgKikoR2R0RGVzYy5CYXNlICsgT2xk R2R0U2l6ZSk7DQorDQorICBUc3NCYXNlID0gKFVJTlROKShWT0lEICopJlRzc0VudHJ5LT5Uc3M7 DQorICBUc3NFbnRyeS0+VHNzU2VnLkxpbWl0MTVfMCAgICAgICAgICAgID0gc2l6ZW9mKElBMzJf VEFTS19TVEFURV9TRUdNRU5UKSAtIDE7DQorICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UxNV8wICAg ICAgICAgICAgID0gKFVJTlQxNilUc3NCYXNlOw0KKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlMjNf MTYgICAgICAgICAgICA9IChVSU5UOCkoVHNzQmFzZSA+PiAxNik7DQorICBUc3NFbnRyeS0+VHNz U2VnLlR5cGUgICAgICAgICAgICAgICAgID0gSUEzMl9HRFRfVFlQRV9UU1M7DQorICBUc3NFbnRy eS0+VHNzU2VnLkxpbWl0MTlfMTZfYW5kX2ZsYWdzID0gMDsNCisgIFRzc0VudHJ5LT5Uc3NTZWcu QmFzZTMxXzI0ICAgICAgICAgICAgPSAoVUlOVDgpKFRzc0Jhc2UgPj4gMjQpOw0KKw0KKyAgU3Rh Y2tUb3AgID0gU3RhY2tCYXNlICsgU3RhY2tTaXplIC0gQ1BVX1NUQUNLX0FMSUdOTUVOVDsNCisg IFN0YWNrVG9wICA9IChVSU5UTilBTElHTl9QT0lOVEVSIChTdGFja1RvcCwgQ1BVX1NUQUNLX0FM SUdOTUVOVCk7DQorICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBBUlJBWV9TSVpFIChtRXhjZXB0 aW9uc1dpdGhTdGFjayk7ICsrSW5kZXgpIHsNCisgICAgLy8NCisgICAgLy8gRml4dXAgVFNTIGRl c2NyaXB0b3INCisgICAgLy8NCisgICAgVHNzQmFzZSA9IChVSU5UTikoVk9JRCAqKSZUc3NFbnRy eS0+RXhjZXB0aW9uVHNzW0luZGV4XTsNCisgICAgVHNzRGVzYyA9ICZUc3NFbnRyeS0+RXhjZXB0 aW9uVHNzU2VnW0luZGV4XTsNCisNCisgICAgVHNzRGVzYy0+TGltaXQxNV8wICAgICAgICAgICAg PSBzaXplb2YoSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQpIC0gMTsNCisgICAgVHNzRGVzYy0+QmFz ZTE1XzAgICAgICAgICAgICAgPSAoVUlOVDE2KVRzc0Jhc2U7DQorICAgIFRzc0Rlc2MtPkJhc2Uy M18xNiAgICAgICAgICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDE2KTsNCisgICAgVHNzRGVzYy0+ VHlwZSAgICAgICAgICAgICAgICAgPSBJQTMyX0dEVF9UWVBFX1RTUzsNCisgICAgVHNzRGVzYy0+ TGltaXQxOV8xNl9hbmRfZmxhZ3MgPSAwOw0KKyAgICBUc3NEZXNjLT5CYXNlMzFfMjQgICAgICAg ICAgICA9IChVSU5UOCkoVHNzQmFzZSA+PiAyNCk7DQorDQorICAgIC8vDQorICAgIC8vIEZpeHVw IFRTUw0KKyAgICAvLw0KKyAgICBUc3MgPSAmVHNzRW50cnktPkV4Y2VwdGlvblRzc1tJbmRleF07 DQorICAgIFRzcy0+Q1IzICAgID0gQXNtUmVhZENyMygpOw0KKyAgICBUc3MtPkVJUCAgICA9IChV SU5UMzIpbUV4Y2VwdGlvbnNXaXRoU3RhY2tbSW5kZXhdLkVudHJ5UG9pbnQ7DQorICAgIFRzcy0+ RUZMQUdTID0gMHgyOw0KKyAgICBUc3MtPkVTUCAgICA9IFN0YWNrVG9wOw0KKyAgICBUc3MtPkVT ICAgICA9IEFzbVJlYWRFcygpOw0KKyAgICBUc3MtPkNTICAgICA9IEFzbVJlYWRDcygpOw0KKyAg ICBUc3MtPlNTICAgICA9IEFzbVJlYWRTcygpOw0KKyAgICBUc3MtPkRTICAgICA9IEFzbVJlYWRE cygpOw0KKyAgICBUc3MtPkZTICAgICA9IEFzbVJlYWRGcygpOw0KKyAgICBUc3MtPkdTICAgICA9 IEFzbVJlYWRHcygpOw0KKyAgICBTdGFja1RvcCAgIC09IEVYQ0VQVElPTl9TVEFDS19TSVpFOw0K Kw0KKyAgICAvLw0KKyAgICAvLyBDaGFuZ2Ugc3BlY2lmaWVkIGV4Y2VwdGlvbnMgaW4gSURUIHRv IHVzZSBUU1MNCisgICAgLy8NCisgICAgVmVjdG9yID0gbUV4Y2VwdGlvbnNXaXRoU3RhY2tbSW5k ZXhdLlZlY3RvcjsNCisNCisgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLk9mZnNldExvdyAgPSAw Ow0KKyAgICBJZHRUYWJsZVtWZWN0b3JdLkJpdHMuU2VsZWN0b3IgICA9IE9sZEdkdFNpemUgKyBF WENFUFRJT05fVFNTX1NFTChJbmRleCk7DQorICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5SZXNl cnZlZF8wID0gMDsNCisgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLkdhdGVUeXBlICAgPSBJQTMy X0lEVF9HQVRFX1RZUEVfVEFTSzsNCisgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLk9mZnNldEhp Z2ggPSAwOw0KKyAgfQ0KKw0KKyAgLy8NCisgIC8vIFB1Ymxpc2ggdGhlIGNoYW5nZXMNCisgIC8v DQorICBBc21Xcml0ZUdkdHIoJkdkdERlc2MpOw0KKw0KKyAgLy8NCisgIC8vIExvYWQgdGFzayBy ZWdpc3Rlcg0KKyAgLy8NCisgIEFzbVdyaXRlVHIgKChVSU5UMTYpKE9sZEdkdFNpemUgKyBUU1Nf U0VMKSk7DQorfQ0KKw0KIC8qKg0KICAgRGlzcGxheSBwcm9jZXNzb3IgY29udGV4dC4NCg0KZGlm ZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIv QXJjaEludGVycnVwdERlZnMuaCBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL0lhMzIvQXJjaEludGVycnVwdERlZnMuaA0KaW5kZXggYThkMzU1NmE4MC4uNzdjYzZm OTkxOSAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVy TGliL0lhMzIvQXJjaEludGVycnVwdERlZnMuaA0KKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQpAQCAtNDEsNCAr NDEsMTQwIEBAIHR5cGVkZWYgc3RydWN0IHsNCiAgIFVJTlQ4ICAgICAgIEhvb2tBZnRlclN0dWJI ZWFkZXJDb2RlW0hPT0tBRlRFUl9TVFVCX1NJWkVdOw0KIH0gUkVTRVJWRURfVkVDVE9SU19EQVRB Ow0KDQorI3ByYWdtYSBwYWNrICgxKQ0KKw0KKyNkZWZpbmUgRVhDRVBUSU9OX0xJU1RfTUFYICAg ICAgICAgIDcNCisjZGVmaW5lIEVYQ0VQVElPTl9TVEFDS19TSVpFICAgICAgICBFRklfUEFHRV9T SVpFDQorI2RlZmluZSBJQTMyX0dEVF9UWVBFX1RTUyAgICAgICAgICAgMHg4OQ0KKyNkZWZpbmUg SUEzMl9HRFRfQUxJR05NRU5UICAgICAgICAgIDgNCisNCisvLw0KKy8vIElBMzIgVFNTIERlZmlu aXRpb24NCisvLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgIFVJTlQxNiAgICBQcmV2aW91c1Rhc2tM aW5rOyAvLyAwMA0KKyAgVUlOVDE2ICAgIFJlc2VydmVkXzI7DQorICBVSU5UMzIgICAgRVNQMDsg ICAgICAgICAgICAgLy8gMDQNCisgIFVJTlQxNiAgICBTUzA7ICAgICAgICAgICAgICAvLyAwOA0K KyAgVUlOVDE2ICAgIFJlc2VydmVkXzEwOw0KKyAgVUlOVDMyICAgIEVTUDE7ICAgICAgICAgICAg IC8vIDBDDQorICBVSU5UMTYgICAgU1MxOyAgICAgICAgICAgICAgLy8gMTANCisgIFVJTlQxNiAg ICBSZXNlcnZlZF8xODsNCisgIFVJTlQzMiAgICBFU1AyOyAgICAgICAgICAgICAvLyAxNA0KKyAg VUlOVDE2ICAgIFNTMjsgICAgICAgICAgICAgIC8vIDE4DQorICBVSU5UMTYgICAgUmVzZXJ2ZWRf MjY7DQorICBVSU5UMzIgICAgQ1IzOyAgICAgICAgICAgICAgLy8gMUMNCisgIFVJTlQzMiAgICBF SVA7ICAgICAgICAgICAgICAvLyAyMA0KKyAgVUlOVDMyICAgIEVGTEFHUzsgICAgICAgICAgIC8v IDI0DQorICBVSU5UMzIgICAgRUFYOyAgICAgICAgICAgICAgLy8gMjgNCisgIFVJTlQzMiAgICBF Q1g7ICAgICAgICAgICAgICAvLyAyQw0KKyAgVUlOVDMyICAgIEVEWDsgICAgICAgICAgICAgIC8v IDMwDQorICBVSU5UMzIgICAgRUJYOyAgICAgICAgICAgICAgLy8gMzQNCisgIFVJTlQzMiAgICBF U1A7ICAgICAgICAgICAgICAvLyAzOA0KKyAgVUlOVDMyICAgIEVCUDsNCisgIFVJTlQzMiAgICBF U0k7DQorICBVSU5UMzIgICAgRURJOw0KKyAgVUlOVDE2ICAgIEVTOw0KKyAgVUlOVDE2ICAgIFJl c2VydmVkXzc0Ow0KKyAgVUlOVDE2ICAgIENTOw0KKyAgVUlOVDE2ICAgIFJlc2VydmVkXzc4Ow0K KyAgVUlOVDE2ICAgIFNTOw0KKyAgVUlOVDE2ICAgIFJlc2VydmVkXzgyOw0KKyAgVUlOVDE2ICAg IERTOw0KKyAgVUlOVDE2ICAgIFJlc2VydmVkXzg2Ow0KKyAgVUlOVDE2ICAgIEZTOw0KKyAgVUlO VDE2ICAgIFJlc2VydmVkXzkwOw0KKyAgVUlOVDE2ICAgIEdTOw0KKyAgVUlOVDE2ICAgIFJlc2Vy dmVkXzk0Ow0KKyAgVUlOVDE2ICAgIExEVFNlZ21lbnRTZWxlY3RvcjsNCisgIFVJTlQxNiAgICBS ZXNlcnZlZF85ODsNCisgIFVJTlQxNiAgICBUOw0KKyAgVUlOVDE2ICAgIElPTWFwQmFzZUFkZHJl c3M7DQorfSBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVDsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQor ICBVSU5UMTYgICAgTGltaXQxNV8wOw0KKyAgVUlOVDE2ICAgIEJhc2UxNV8wOw0KKyAgVUlOVDgg ICAgIEJhc2UyM18xNjsNCisgIFVJTlQ4ICAgICBUeXBlOw0KKyAgVUlOVDggICAgIExpbWl0MTlf MTZfYW5kX2ZsYWdzOw0KKyAgVUlOVDggICAgIEJhc2UzMV8yNDsNCit9IElBMzJfVFNTX0RFU0NS SVBUT1I7DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgSUEzMl9UU1NfREVTQ1JJUFRPUiAgICAg ICAgICAgVHNzU2VnOw0KKyAgSUEzMl9UU1NfREVTQ1JJUFRPUiAgICAgICAgICAgRXhjZXB0aW9u VHNzU2VnW0VYQ0VQVElPTl9MSVNUX01BWF07DQorICBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCAg ICAgICBUc3M7DQorICBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCAgICAgICBFeGNlcHRpb25Uc3Nb RVhDRVBUSU9OX0xJU1RfTUFYXTsNCit9IFRTU19FTlRSSUVTOw0KKw0KKyNwcmFnbWEgcGFjayAo KQ0KKw0KKyNkZWZpbmUgVFNTX1NFTCAgICAgICAgICAgICAgIE9GRlNFVF9PRiAoVFNTX0VOVFJJ RVMsIFRzc1NlZykNCisjZGVmaW5lIEVYQ0VQVElPTl9UU1NfU0VMKG4pICBPRkZTRVRfT0YgKFRT U19FTlRSSUVTLCBFeGNlcHRpb25Uc3NTZWdbbl0pDQorI2RlZmluZSBUU1NfT0ZGU0VUICAgICAg ICAgICAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywgVHNzKQ0KKw0KK3R5cGVkZWYgVk9JRCAoKkVY Q0VQVElPTl9FTlRSWSkgKFZPSUQpOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgIFVJTlROICAg ICAgICAgICAgIFZlY3RvcjsNCisgIEVYQ0VQVElPTl9FTlRSWSAgIEVudHJ5UG9pbnQ7DQorfSBJ QTMyX0VYQ0VQVElPTl9UU19FTlRSWTsNCisNCisvKioNCisgRXhjZXB0aW9uIGhhbmRsaW5nIGVu dHJ5IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI1VELg0KKyAqKi8NCitWT0lEDQor RXhjZXB0aW9uVGFza1N3dGljaEVudHJ5NiAoDQorICBWT0lEDQorICApOw0KKw0KKy8qKg0KKyBF eGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAj REYuDQorICoqLw0KK1ZPSUQNCitFeGNlcHRpb25UYXNrU3d0aWNoRW50cnk4ICgNCisgIFZPSUQN CisgICk7DQorDQorLyoqDQorIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sg Z2F0ZSBmb3IgZXhjZXB0aW9uICNTUy4NCisgKiovDQorVk9JRA0KK0V4Y2VwdGlvblRhc2tTd3Rp Y2hFbnRyeTEyICgNCisgIFZPSUQNCisgICk7DQorDQorLyoqDQorIEV4Y2VwdGlvbiBoYW5kbGlu ZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNHUC4NCisgKiovDQorVk9J RA0KK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTEzICgNCisgIFZPSUQNCisgICk7DQorDQorLyoq DQorIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0 aW9uICNQRi4NCisgKiovDQorVk9JRA0KK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTE0ICgNCisg IFZPSUQNCisgICk7DQorDQorLyoqDQorIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdo IHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNBQy4NCisgKiovDQorVk9JRA0KK0V4Y2VwdGlvblRh c2tTd3RpY2hFbnRyeTE3ICgNCisgIFZPSUQNCisgICk7DQorDQorLyoqDQorIEV4Y2VwdGlvbiBo YW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNNQy4NCisgKiov DQorVk9JRA0KK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTE4ICgNCisgIFZPSUQNCisgICk7DQor DQogI2VuZGlmDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS5uYXNtIGIvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS5uYXNt DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uZGJmYmNmY2Y1MQ0KLS0t IC9kZXYvbnVsbA0KKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS5uYXNtDQpAQCAtMCwwICsxLDM5OCBAQA0KKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gOw0KKzsgQ29weXJpZ2h0IChjKSAyMDE3LCBJbnRlbCBDb3Jw b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQorOyBUaGlzIHByb2dyYW0gYW5kIHRo ZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorOyBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxh YmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UNCis7 IHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0 aGUgbGljZW5zZSBtYXkgYmUgZm91bmQgYXQNCis7IGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNl bnNlcy9ic2QtbGljZW5zZS5waHAuDQorOw0KKzsgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQg VU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyIgQkFTSVMsDQorOyBXSVRIT1VUIFdB UlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBP UiBJTVBMSUVELg0KKzsNCis7IE1vZHVsZSBOYW1lOg0KKzsNCis7ICAgRXhjZXB0aW9uVHNzRW50 cnlBc20uQXNtDQorOw0KKzsgQWJzdHJhY3Q6DQorOw0KKzsgICBJQTMyIENQVSBFeGNlcHRpb24g SGFuZGxlciB3aXRoIFNlcGFyYXRlIFN0YWNrDQorOw0KKzsgTm90ZXM6DQorOw0KKzstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCisNCis7DQorOyBJQTMyIFRTUyBNZW1vcnkgTGF5b3V0IERlc2NyaXB0 aW9uDQorOw0KK3N0cnVjIElBMzJfVFNTDQorICAgICAgICAgICAgICAgICAgICByZXN3IDENCisg ICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KKyAgLkVTUDA6ICAgIHJlc2QgMQ0KKyAgLlNTMDog ICAgIHJlc3cgMQ0KKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQorICAuRVNQMTogICAgcmVz ZCAxDQorICAuU1MxOiAgICAgcmVzdyAxDQorICAgICAgICAgICAgICAgICAgICByZXN3IDENCisg IC5FU1AyOiAgICByZXNkIDENCisgIC5TUzI6ICAgICByZXN3IDENCisgICAgICAgICAgICAgICAg ICAgIHJlc3cgMQ0KKyAgLl9DUjM6ICAgIHJlc2QgMQ0KKyAgLkVJUDogICAgIHJlc2QgMQ0KKyAg LkVGTEFHUzogIHJlc2QgMQ0KKyAgLl9FQVg6ICAgIHJlc2QgMQ0KKyAgLl9FQ1g6ICAgIHJlc2Qg MQ0KKyAgLl9FRFg6ICAgIHJlc2QgMQ0KKyAgLl9FQlg6ICAgIHJlc2QgMQ0KKyAgLl9FU1A6ICAg IHJlc2QgMQ0KKyAgLl9FQlA6ICAgIHJlc2QgMQ0KKyAgLl9FU0k6ICAgIHJlc2QgMQ0KKyAgLl9F REk6ICAgIHJlc2QgMQ0KKyAgLl9FUzogICAgIHJlc3cgMQ0KKyAgICAgICAgICAgICAgICAgICAg cmVzdyAxDQorICAuX0NTOiAgICAgcmVzdyAxDQorICAgICAgICAgICAgICAgICAgICByZXN3IDEN CisgIC5fU1M6ICAgICByZXN3IDENCisgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KKyAgLl9E UzogICAgIHJlc3cgMQ0KKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQorICAuX0ZTOiAgICAg cmVzdyAxDQorICAgICAgICAgICAgICAgICAgICByZXN3IDENCisgIC5fR1M6ICAgICByZXN3IDEN CisgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KKyAgLkxEVDogICAgIHJlc3cgMQ0KKyAgICAg ICAgICAgICAgICAgICAgcmVzdyAxDQorICAgICAgICAgICAgICAgICAgICByZXN3IDENCisgICAg ICAgICAgICAgICAgICAgIHJlc3cgMQ0KK2VuZHN0cnVjDQorDQorOw0KKzsgQ29tbW9uRXhjZXB0 aW9uSGFuZGxlcigpDQorOw0KK2V4dGVybiBBU01fUEZYKENvbW1vbkV4Y2VwdGlvbkhhbmRsZXIp DQorDQorU0VDVElPTiAuZGF0YQ0KKw0KK1NFQ1RJT04gLnRleHQNCisNCitBTElHTiAgIDgNCisN Cis7DQorOyBleGNlcHRpb24gaGFuZGxlciBzdHViIHRhYmxlDQorOw0KKyVtYWNybyBEZWZFeGNl cHRpb25UYXNrU3d0aWNoRW50cnkgMQ0KKyUlRG9JcmV0Og0KKyAgICBpcmV0ZA0KKw0KK2dsb2Jh bCBBU01fUEZYKEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSUxKQ0KK0FTTV9QRlgoRXhjZXB0aW9u VGFza1N3dGljaEVudHJ5JTEpOg0KKyAgICBkYiAgICAgIDB4NmEgICAgICAgIDsgcHVzaCAgI1Zl Y3Rvck51bQ0KKyAgICBkYiAgICAgICUxICAgICAgICAgIDsgVmVjdG9yTnVtDQorICAgIG1vdiAg ICAgZWF4LCBBU01fUEZYKENvbW1vblRhc2tTd3RpY2hFbnRyeVBvaW50KQ0KKyAgICBjYWxsICAg IGVheA0KKyAgICBtb3YgICAgIGVzcCwgZWF4ICAgIDsgUmVzdG9yZSBzdGFjayB0b3ANCisgICAg am1wICAgICAlJURvSXJldA0KKyVlbmRtYWNybw0KKw0KK2dsb2JhbCBBU01fUEZYKENvbW1vblRh c2tTd3RpY2hFbnRyeVBvaW50KQ0KK0FTTV9QRlgoQ29tbW9uVGFza1N3dGljaEVudHJ5UG9pbnQp Og0KKyAgICA7DQorICAgIDsgU3RhY2s6DQorICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsg PC0tIEVCUCAtIDgNCisgICAgOyArICAgICAgIFRTUyBCYXNlICAgICAgKw0KKyAgICA7ICstLS0t LS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBFQlAgLSA0DQorICAgIDsgKyAgICAgIENQVUlELkVEWCAg ICAgICsNCisgICAgOyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LS0gRUJQDQorICAgIDsgKyAg ICAgICAgIEVJUCAgICAgICAgICsNCisgICAgOyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LS0g RUJQICsgNA0KKyAgICA7ICsgICAgVmVjdG9yIE51bWJlciAgICArDQorICAgIDsgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLSsgPC0tIEVCUCArIDgNCisgICAgOyArICAgIEVycm9yIENvZGUgICAgICAg Kw0KKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQorICAgIDsNCis7DQorOyBHZXQgVFNT IG9mIGludGVycnVwdGVkIHRhc2sNCis7DQorICAgIG1vdiAgICAgZWJwLCBlc3AgICAgICAgICAg ICAgICAgICAgIDsgU3RhY2sgZnJhbWUNCisNCis7IFVzZSBDUFVJRCB0byBkZXRlcm1pbmUgaWYg RlhTQVZFL0ZYUkVTVE9SIGFuZCBERSBhcmUgc3VwcG9ydGVkDQorICAgIG1vdiAgICAgZWF4LCAx DQorICAgIGNwdWlkDQorICAgIHB1c2ggICAgZWR4DQorDQorOyBHZXQgVFNTIGJhc2Ugb2YgaW50 ZXJydXB0ZWQgdGFzayB0aHJvdWdoIFByZXZpb3VzVGFza0xpbmsgZmllbGQgaW4NCis7IGN1cnJl bnQgVFNTIGJhc2UNCisgICAgc3ViICAgICBlc3AsIDgNCisgICAgc2dkdCAgICBbZXNwICsgMl0N CisgICAgbW92ICAgICBlYXgsIFtlc3AgKyA0XSAgICAgICAgICAgICAgOyBHRFQgYmFzZQ0KKyAg ICBhZGQgICAgIGVzcCwgOA0KKw0KKyAgICB4b3IgICAgIGVieCwgZWJ4DQorICAgIHN0ciAgICAg YnggICAgICAgICAgICAgICAgICAgICAgICAgIDsgQ3VycmVudCBUUg0KKw0KKyAgICBtb3YgICAg IGVjeCwgW2VheCArIGVieCArIDJdDQorICAgIHNobCAgICAgZWN4LCA4DQorICAgIG1vdiAgICAg Y2wsIFtlYXggKyBlYnggKyA3XQ0KKyAgICByb3IgICAgIGVjeCwgOCAgICAgICAgICAgICAgICAg ICAgICA7IGVjeCA9IEN1cnJlbnQgVFNTIGJhc2UNCisgICAgcHVzaCAgICBlY3ggICAgICAgICAg ICAgICAgICAgICAgICAgOyBrZWVwIGl0IGluIHN0YWNrIGZvciBsYXRlciB1c2UNCisNCisgICAg bW92enggICBlYngsIHdvcmQgW2VjeF0gICAgICAgICAgICAgOyBQcmV2aW91cyBUYXNrIExpbmsN CisgICAgbW92ICAgICBlY3gsIFtlYXggKyBlYnggKyAyXQ0KKyAgICBzaGwgICAgIGVjeCwgOA0K KyAgICBtb3YgICAgIGNsLCBbZWF4ICsgZWJ4ICsgN10NCisgICAgcm9yICAgICBlY3gsIDggICAg ICAgICAgICAgICAgICAgICAgOyBlY3ggPSBQcmV2aW91cyBUU1MgYmFzZQ0KKw0KKzsNCis7IEFs aWduIHN0YWNrIHRvIG1ha2Ugc3VyZSB0aGF0IEVGSV9GWF9TQVZFX1NUQVRFX0lBMzIgb2YgRUZJ X1NZU1RFTV9DT05URVhUX0lBMzINCis7IGlzIDE2LWJ5dGUgYWxpZ25lZA0KKzsNCisgICAgYW5k ICAgICBlc3AsIDB4ZmZmZmZmZjANCisgICAgc3ViICAgICBlc3AsIDEyDQorDQorOzsgVUlOVDMy ICBFZGksIEVzaSwgRWJwLCBFc3AsIEVieCwgRWR4LCBFY3gsIEVheDsNCisgICAgcHVzaCAgICBk d29yZCBbZWN4ICsgSUEzMl9UU1MuX0VBWF0NCisgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEz Ml9UU1MuX0VDWF0NCisgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VEWF0NCisg ICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VCWF0NCisgICAgcHVzaCAgICBkd29y ZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0NCisgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9U U1MuX0VCUF0NCisgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTSV0NCisgICAg cHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VESV0NCisNCis7OyBVSU5UMzIgIEdzLCBG cywgRXMsIERzLCBDcywgU3M7DQorICAgIG1vdnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RT Uy5fU1NdDQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJ QTMyX1RTUy5fQ1NdDQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdnp4ICAgZWF4LCB3b3JkIFtl Y3ggKyBJQTMyX1RTUy5fRFNdDQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdnp4ICAgZWF4LCB3 b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNdDQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdnp4ICAg ZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRlNdDQorICAgIHB1c2ggICAgZWF4DQorICAgIG1v dnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fR1NdDQorICAgIHB1c2ggICAgZWF4DQor DQorOzsgVUlOVDMyICBFaXA7DQorICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVJ UF0NCisNCis7OyBVSU5UMzIgIEdkdHJbMl0sIElkdHJbMl07DQorICAgIHN1YiAgICAgZXNwLCA4 DQorICAgIHNpZHQgICAgW2VzcF0NCisgICAgbW92ICAgICBlYXgsIFtlc3AgKyAyXQ0KKyAgICB4 Y2hnICAgIGVheCwgW2VzcF0NCisgICAgYW5kICAgICBlYXgsIDB4RkZGRg0KKyAgICBtb3YgICAg IFtlc3ArNF0sIGVheA0KKw0KKyAgICBzdWIgICAgIGVzcCwgOA0KKyAgICBzZ2R0ICAgIFtlc3Bd DQorICAgIG1vdiAgICAgZWF4LCBbZXNwICsgMl0NCisgICAgeGNoZyAgICBlYXgsIFtlc3BdDQor ICAgIGFuZCAgICAgZWF4LCAweEZGRkYNCisgICAgbW92ICAgICBbZXNwKzRdLCBlYXgNCisNCis7 OyBVSU5UMzIgIExkdHIsIFRyOw0KKyAgICBtb3YgICAgIGVheCwgZWJ4ICAgIDsgZWJ4IHN0aWxs IGtlZXBzIHNlbGVjdG9yIG9mIGludGVycnVwdGVkIHRhc2sNCisgICAgcHVzaCAgICBlYXgNCisg ICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLkxEVF0NCisgICAgcHVzaCAgICBl YXgNCisNCis7OyBVSU5UMzIgIEVGbGFnczsNCisgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEz Ml9UU1MuRUZMQUdTXQ0KKw0KKzs7IFVJTlQzMiAgQ3IwLCBDcjEsIENyMiwgQ3IzLCBDcjQ7DQor ICAgIG1vdiAgICAgZWF4LCBjcjQNCisgICAgcHVzaCAgICBlYXggICAgICAgICAgICAgOyBwdXNo IGNyNCBmaXJzdGx5DQorDQorICAgIG1vdiAgICAgZWR4LCBbZWJwIC0gNF0gIDsgY3B1aWQuZWR4 DQorICAgIHRlc3QgICAgZWR4LCBCSVQyNCAgICAgIDsgVGVzdCBmb3IgRlhTQVZFL0ZYUkVTVE9S IHN1cHBvcnQNCisgICAganogICAgICAuMQ0KKyAgICBvciAgICAgIGVheCwgQklUOSAgICAgICA7 IFNldCBDUjQuT1NGWFNSDQorLjE6DQorICAgIHRlc3QgICAgZWR4LCBCSVQyICAgICAgIDsgVGVz dCBmb3IgRGVidWdnaW5nIEV4dGVuc2lvbnMgc3VwcG9ydA0KKyAgICBqeiAgICAgIC4yDQorICAg IG9yICAgICAgZWF4LCBCSVQzICAgICAgIDsgU2V0IENSNC5ERQ0KKy4yOg0KKyAgICBtb3YgICAg IGNyNCwgZWF4DQorDQorICAgIG1vdiAgICAgZWF4LCBjcjMNCisgICAgcHVzaCAgICBlYXgNCisg ICAgbW92ICAgICBlYXgsIGNyMg0KKyAgICBwdXNoICAgIGVheA0KKyAgICB4b3IgICAgIGVheCwg ZWF4DQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdiAgICAgZWF4LCBjcjANCisgICAgcHVzaCAg ICBlYXgNCisNCis7OyBVSU5UMzIgIERyMCwgRHIxLCBEcjIsIERyMywgRHI2LCBEcjc7DQorICAg IG1vdiAgICAgZWF4LCBkcjcNCisgICAgcHVzaCAgICBlYXgNCisgICAgbW92ICAgICBlYXgsIGRy Ng0KKyAgICBwdXNoICAgIGVheA0KKyAgICBtb3YgICAgIGVheCwgZHIzDQorICAgIHB1c2ggICAg ZWF4DQorICAgIG1vdiAgICAgZWF4LCBkcjINCisgICAgcHVzaCAgICBlYXgNCisgICAgbW92ICAg ICBlYXgsIGRyMQ0KKyAgICBwdXNoICAgIGVheA0KKyAgICBtb3YgICAgIGVheCwgZHIwDQorICAg IHB1c2ggICAgZWF4DQorDQorOzsgRlhfU0FWRV9TVEFURV9JQTMyIEZ4U2F2ZVN0YXRlOw0KKzs7 IENsZWFyIFRTIGJpdCBpbiBDUjAgdG8gYXZvaWQgRGV2aWNlIE5vdCBBdmFpbGFibGUgRXhjZXB0 aW9uICgjTk0pDQorOzsgd2hlbiBleGVjdXRpbmcgZnhzYXZlL2Z4cnN0b3IgaW5zdHJ1Y3Rpb24N CisgICAgdGVzdCAgICBlZHgsIEJJVDI0ICA7IFRlc3QgZm9yIEZYU0FWRS9GWFJFU1RPUiBzdXBw b3J0Lg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDsgZWR4IHN0aWxsIGNvbnRhaW5zIHJlc3Vs dCBmcm9tIENQVUlEIGFib3ZlDQorICAgIGp6ICAgICAgLjMNCisgICAgY2x0cw0KKyAgICBzdWIg ICAgIGVzcCwgNTEyDQorICAgIG1vdiAgICAgZWRpLCBlc3ANCisgICAgZGIgICAgICAweGYsIDB4 YWUsIDB4NyA7ZnhzYXZlIFtlZGldDQorLjM6DQorDQorOzsgVUlOVDMyICBFeGNlcHRpb25EYXRh Ow0KKyAgICBwdXNoICAgIGR3b3JkIFtlYnAgKyA4XQ0KKw0KKzs7IFVFRkkgY2FsbGluZyBjb252 ZW50aW9uIGZvciBJQTMyIHJlcXVpcmVzIHRoYXQgRGlyZWN0aW9uIGZsYWcgaW4gRUZMQUdzIGlz IGNsZWFyDQorICAgIGNsZA0KKw0KKzs7IGNhbGwgaW50byBleGNlcHRpb24gaGFuZGxlcg0KKyAg ICBtb3YgICAgIGVzaSwgZWN4ICAgICAgICAgICAgOyBLZWVwIFRTUyBiYXNlIHRvIGF2b2lkIG92 ZXJ3cml0ZQ0KKyAgICBtb3YgICAgIGVheCwgQVNNX1BGWChDb21tb25FeGNlcHRpb25IYW5kbGVy KQ0KKw0KKzs7IFByZXBhcmUgcGFyYW1ldGVyIGFuZCBjYWxsDQorICAgIG1vdiAgICAgZWR4LCBl c3ANCisgICAgcHVzaCAgICBlZHggICAgICAgICAgICAgICAgIDsgRUZJX1NZU1RFTV9DT05URVhU DQorICAgIHB1c2ggICAgZHdvcmQgW2VicCArIDRdICAgICA7IEVGSV9FWENFUFRJT05fVFlQRSAo dmVjdG9yIG51bWJlcikNCisNCisgICAgOw0KKyAgICA7IENhbGwgRXh0ZXJuYWwgRXhjZXB0aW9u IEhhbmRsZXINCisgICAgOw0KKyAgICBjYWxsICAgIGVheA0KKyAgICBhZGQgICAgIGVzcCwgOCAg ICAgICAgICAgICAgOyBSZXN0b3JlIHN0YWNrIGJlZm9yZSBjYWxsaW5nDQorICAgIG1vdiAgICAg ZWN4LCBlc2kgICAgICAgICAgICA7IFJlc3RvcmUgVFNTIGJhc2UNCisNCis7OyBVSU5UMzIgIEV4 Y2VwdGlvbkRhdGE7DQorICAgIGFkZCAgICAgZXNwLCA0DQorDQorOzsgRlhfU0FWRV9TVEFURV9J QTMyIEZ4U2F2ZVN0YXRlOw0KKyAgICBtb3YgICAgIGVkeCwgW2VicCAtIDRdICA7IGNwdWlkLmVk eA0KKyAgICB0ZXN0ICAgIGVkeCwgQklUMjQgICAgICA7IFRlc3QgZm9yIEZYU0FWRS9GWFJFU1RP UiBzdXBwb3J0DQorICAgIGp6ICAgICAgLjQNCisgICAgbW92ICAgICBlc2ksIGVzcA0KKyAgICBk YiAgICAgIDB4ZiwgMHhhZSwgMHhlICA7IGZ4cnN0b3IgW2VzaV0NCisuNDoNCisgICAgYWRkICAg ICBlc3AsIDUxMg0KKw0KKzs7IFVJTlQzMiAgRHIwLCBEcjEsIERyMiwgRHIzLCBEcjYsIERyNzsN Cis7OyBTa2lwIHJlc3RvcmF0aW9uIG9mIERSeCByZWdpc3RlcnMgdG8gc3VwcG9ydCBkZWJ1Z2dl cnMNCis7OyB0aGF0IHNldCBicmVha3BvaW50cyBpbiBpbnRlcnJ1cHQvZXhjZXB0aW9uIGNvbnRl eHQNCisgICAgYWRkICAgICBlc3AsIDQgKiA2DQorDQorOzsgVUlOVDMyICBDcjAsIENyMSwgQ3Iy LCBDcjMsIENyNDsNCisgICAgcG9wICAgICBlYXgNCisgICAgbW92ICAgICBjcjAsIGVheA0KKyAg ICBhZGQgICAgIGVzcCwgNCAgICA7IG5vdCBmb3IgQ3IxDQorICAgIHBvcCAgICAgZWF4DQorICAg IG1vdiAgICAgY3IyLCBlYXgNCisgICAgcG9wICAgICBlYXgNCisgICAgbW92ICAgICBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuX0NSM10sIGVheA0KKyAgICBwb3AgICAgIGVheA0KKyAgICBtb3YgICAg IGNyNCwgZWF4DQorDQorOzsgVUlOVDMyICBFRmxhZ3M7DQorICAgIHBvcCAgICAgZHdvcmQgW2Vj eCArIElBMzJfVFNTLkVGTEFHU10NCisgICAgbW92ICAgICBlYngsIGR3b3JkIFtlY3ggKyBJQTMy X1RTUy5FRkxBR1NdDQorICAgIGJ0ciAgICAgZWJ4LCA5ICAgICAgOyBEbyAnY2xpJw0KKyAgICBt b3YgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdLCBlYngNCisNCis7OyBVSU5UMzIg IExkdHIsIFRyOw0KKzs7IFVJTlQzMiAgR2R0clsyXSwgSWR0clsyXTsNCis7OyBCZXN0IG5vdCBs ZXQgYW55b25lIG1lc3Mgd2l0aCB0aGVzZSBwYXJ0aWN1bGFyIHJlZ2lzdGVycy4uLg0KKyAgICBh ZGQgICAgIGVzcCwgMjQNCisNCis7OyBVSU5UMzIgIEVpcDsNCisgICAgcG9wICAgICBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuRUlQXQ0KKw0KKzs7IFVJTlQzMiAgR3MsIEZzLCBFcywgRHMsIENzLCBT czsNCis7OyBOT1RFIC0gbW9kaWZpZWQgc2VnbWVudCByZWdpc3RlcnMgY291bGQgaGFuZyB0aGUg ZGVidWdnZXIuLi4gIFdlDQorOzsgICAgICAgIGNvdWxkIGF0dGVtcHQgdG8gaW5zdWxhdGUgb3Vy c2VsdmVzIGFnYWluc3QgdGhpcyBwb3NzaWJpbGl0eSwNCis7OyAgICAgICAgYnV0IHRoYXQgcG9z ZXMgcmlza3MgYXMgd2VsbC4NCis7Ow0KKyAgICBwb3AgICAgIGVheA0KK28xNiBtb3YgICAgIFtl Y3ggKyBJQTMyX1RTUy5fR1NdLCBheA0KKyAgICBwb3AgICAgIGVheA0KK28xNiBtb3YgICAgIFtl Y3ggKyBJQTMyX1RTUy5fRlNdLCBheA0KKyAgICBwb3AgICAgIGVheA0KK28xNiBtb3YgICAgIFtl Y3ggKyBJQTMyX1RTUy5fRVNdLCBheA0KKyAgICBwb3AgICAgIGVheA0KK28xNiBtb3YgICAgIFtl Y3ggKyBJQTMyX1RTUy5fRFNdLCBheA0KKyAgICBwb3AgICAgIGVheA0KK28xNiBtb3YgICAgIFtl Y3ggKyBJQTMyX1RTUy5fQ1NdLCBheA0KKyAgICBwb3AgICAgIGVheA0KK28xNiBtb3YgICAgIFtl Y3ggKyBJQTMyX1RTUy5fU1NdLCBheA0KKw0KKzs7IFVJTlQzMiAgRWRpLCBFc2ksIEVicCwgRXNw LCBFYngsIEVkeCwgRWN4LCBFYXg7DQorICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNT Ll9FREldDQorICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU0ldDQorICAgIGFk ZCAgICAgZXNwLCA0ICAgOyBub3QgZm9yIGVicA0KKyAgICBhZGQgICAgIGVzcCwgNCAgIDsgbm90 IGZvciBlc3ANCisgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VCWF0NCisgICAg cG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VEWF0NCisgICAgcG9wICAgICBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuX0VDWF0NCisgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1Mu X0VBWF0NCisNCis7IFNldCBzaW5nbGUgc3RlcCBEQiMgdG8gYWxsb3cgZGVidWdnZXIgdG8gYWJs ZSB0byBnbyBiYWNrIHRvIHRoZSBFSVANCis7IHdoZXJlIHRoZSBleGNlcHRpb24gaXMgdHJpZ2dl cmVkLg0KKw0KKzs7IENyZWF0ZSByZXR1cm4gY29udGV4dCBmb3IgaXJldGQgaW4gc3R1YiBmdW5j dGlvbg0KKyAgICBtb3YgICAgZWF4LCBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0gICAgICA7 IEdldCBvbGQgc3RhY2sgcG9pbnRlcg0KKyAgICBtb3YgICAgZWJ4LCBkd29yZCBbZWN4ICsgSUEz Ml9UU1MuRUlQXQ0KKyAgICBtb3YgICAgW2VheCAtIDB4Y10sIGVieCAgICAgICAgICAgICAgICAg ICAgICA7IGNyZWF0ZSBFSVAgaW4gb2xkIHN0YWNrDQorICAgIG1vdnp4ICBlYngsIHdvcmQgW2Vj eCArIElBMzJfVFNTLl9DU10NCisgICAgbW92ICAgIFtlYXggLSAweDhdLCBlYnggICAgICAgICAg ICAgICAgICAgICAgOyBjcmVhdGUgQ1MgaW4gb2xkIHN0YWNrDQorICAgIG1vdiAgICBlYngsIGR3 b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdDQorICAgIGJ0cyAgICBlYngsIDgNCisgICAgbW92 ICAgIFtlYXggLSAweDRdLCBlYnggICAgICAgICAgICAgICAgICAgICAgOyBjcmVhdGUgZWZsYWdz IGluIG9sZCBzdGFjaw0KKyAgICBtb3YgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10s IGVieCAgICA7IHVwZGF0ZSBlZmxhZ3MgaW4gb2xkIFRTUw0KKyAgICBtb3YgICAgZWF4LCBkd29y ZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0gICAgICA7IEdldCBvbGQgc3RhY2sgcG9pbnRlcg0KKyAg ICBzdWIgICAgZWF4LCAweGMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IG1pbnVzIDEy IGJ5dGUNCisgICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNQXSwgZWF4ICAgICAg OyBTZXQgbmV3IHN0YWNrIHBvaW50ZXINCisNCis7OyBSZXBsYWNlIHRoZSBFSVAgb2YgaW50ZXJy dXB0ZWQgdGFzayB3aXRoIHN0dWIgZnVuY3Rpb24NCisgICAgbW92ICAgIGVheCwgQVNNX1BGWChT aW5nbGVTdGVwU3R1YkZ1bmN0aW9uKQ0KKyAgICBtb3YgICAgZHdvcmQgW2VjeCArIElBMzJfVFNT LkVJUF0sIGVheA0KKw0KKyAgICBtb3YgICAgIGVjeCwgW2VicCAtIDhdICAgICAgICAgICAgICAg ICAgICAgICA7IEdldCBjdXJyZW50IFRTUyBiYXNlDQorICAgIG1vdiAgICAgZWF4LCBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuX0VTUF0gICAgIDsgUmV0dXJuIGN1cnJlbnQgc3RhY2sgdG9wDQorICAg IG1vdiAgICAgZXNwLCBlYnANCisNCisgICAgcmV0DQorDQorZ2xvYmFsIEFTTV9QRlgoU2luZ2xl U3RlcFN0dWJGdW5jdGlvbikNCitBU01fUEZYKFNpbmdsZVN0ZXBTdHViRnVuY3Rpb24pOg0KKzsN Cis7IHdlIG5lZWQgY2xlYW4gVFMgYml0IGluIENSMCB0byBleGVjdXRlDQorOyB4ODcgRlBVL01N WC9TU0UvU1NFMi9TU0UzL1NTU0UzL1NTRTQgaW5zdHJ1Y3Rpb25zLg0KKzsNCisgICAgY2x0cw0K KyAgICBpcmV0ZA0KKw0KKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCis7IFZPSUQNCis7IEFzbVdy aXRlVHIgKA0KKzsgICBVSU5UMTYgU2VsZWN0b3INCis7ICAgKTsNCis7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQorZ2xvYmFsIEFTTV9QRlgoQXNtV3JpdGVUcikNCitBU01fUEZYKEFzbVdyaXRlVHIp Og0KKyAgICBtb3YgICAgIGVheCwgW2VzcCs0XQ0KKyAgICBsdHIgICAgIGF4DQorICAgIHJldA0K Kw0KK0RlZkV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSA2DQorRGVmRXhjZXB0aW9uVGFza1N3dGlj aEVudHJ5IDgNCitEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkgMTINCitEZWZFeGNlcHRpb25U YXNrU3d0aWNoRW50cnkgMTMNCitEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkgMTQNCitEZWZF eGNlcHRpb25UYXNrU3d0aWNoRW50cnkgMTcNCitEZWZFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkg MTgNCisNCmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiBiL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mDQppbmRl eCA3NTQ0MzI4OGE5Li40YzBkNDM1MTM2IDEwMDY0NA0KLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5 L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYNCisr KyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1BlaUNwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIuaW5mDQpAQCAtMzAsNiArMzAsNyBAQA0KIFtTb3VyY2VzLklhMzJdDQog ICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQogICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJB c20ubmFzbQ0KKyAgSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS5uYXNtDQogICBJYTMyL0V4Y2Vw dGlvbkhhbmRsZXJBc20uUw0KICAgSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQogICBJYTMy L0FyY2hJbnRlcnJ1cHREZWZzLmgNCmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiBiL1Vl ZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlv bkhhbmRsZXJMaWIuaW5mDQppbmRleCBkNzBhOTljMTAwLi5hZGI0MTViYTVhIDEwMDY0NA0KLS0t IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi5pbmYNCisrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mDQpAQCAtMzAsNiAr MzAsNyBAQA0KIFtTb3VyY2VzLklhMzJdDQogICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNt DQogICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbQ0KKyAgSWEzMi9FeGNlcHRpb25Uc3NF bnRyeUFzbS5uYXNtDQogICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KICAgSWEzMi9BcmNo RXhjZXB0aW9uSGFuZGxlci5jDQogICBJYTMyL0FyY2hJbnRlcnJ1cHREZWZzLmgNCkBAIC01Nywz ICs1OCw1IEBADQogICBQcmludExpYg0KICAgTG9jYWxBcGljTGliDQogICBQZUNvZmZHZXRFbnRy eVBvaW50TGliDQorICBNZW1vcnlBbGxvY2F0aW9uTGliDQorDQpkaWZmIC0tZ2l0IGEvVWVmaUNw dVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21tQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi5pbmYgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1D cHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KaW5kZXggNjM0ZmZjYjIxZC4uNTZiODc1YjdjOCAx MDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1Nt bUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mDQorKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KQEAgLTMw LDYgKzMwLDcgQEANCiBbU291cmNlcy5JYTMyXQ0KICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNt LmFzbQ0KICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20NCisgIElhMzIvRXhjZXB0aW9u VHNzRW50cnlBc20ubmFzbQ0KICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCiAgIElhMzIv QXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KICAgSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQpkaWZm IC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0Fy Y2hFeGNlcHRpb25IYW5kbGVyLmMgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KaW5kZXggNjVmMGNmZjY4MC4uMjRm MmE4NDg2YSAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL1g2NC9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQorKysgYi9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KQEAg LTE0LDYgKzE0LDE5IEBADQoNCiAjaW5jbHVkZSAiQ3B1RXhjZXB0aW9uQ29tbW9uLmgiDQoNCisv Lw0KKy8vIExpc3Qgb2YgZXhjZXB0aW9ucyBuZWVkaW5nIHNlcGFyYXRlIHN0YWNrDQorLy8NCitT VEFUSUMgVUlOVE4gIG1FeGNlcHRpb25zV2l0aFN0YWNrW10gPSB7DQorICA2LCAgLy8jVUQ6IElu dmFsaWQgT3Bjb2RlIEV4Y2VwdGlvbg0KKyAgOCwgIC8vI0RGOiBEb3VibGUgRmF1bHQgRXhjZXB0 aW9uDQorICAxMiwgLy8jU1M6IFN0YWNrIEZhdWx0IEV4Y2VwdGlvbg0KKyAgMTMsIC8vI0dQOiBH ZW5lcmFsIFByb3RlY3Rpb24gRXhjZXB0aW9uDQorICAxNCwgLy8jUEY6IFBhZ2UtRmF1bHQgRXhj ZXB0aW9uDQorICAxNywgLy8jQUM6IEFsaWdubWVudCBDaGVjayBFeGNlcHRpb24NCisgIDE4ICAv LyNNQzogTWFjaGluZS1DaGVjayBFeGNlcHRpb24NCisgIH07DQorDQogLyoqDQogICBSZXR1cm4g YWRkcmVzcyBtYXAgb2YgZXhjZXB0aW9uIGhhbmRsZXIgdGVtcGxhdGUgc28gdGhhdCBDIGNvZGUg Y2FuIGdlbmVyYXRlDQogICBleGNlcHRpb24gdGFibGVzLg0KQEAgLTExMiw2ICsxMjUsMTAxIEBA IEFyY2hSZXN0b3JlRXhjZXB0aW9uQ29udGV4dCAoDQogICBTeXN0ZW1Db250ZXh0LlN5c3RlbUNv bnRleHRYNjQtPkV4Y2VwdGlvbkRhdGEgPSBSZXNlcnZlZFZlY3RvcnNbRXhjZXB0aW9uVHlwZV0u RXhjZXB0aW9uRGF0YTsNCiB9DQoNCisvKioNCisgIFNldHVwIHNlcGFyYXRlIHN0YWNrIGZvciBz cGVjaWZpYyBleGNlcHRpb25zLg0KKw0KKyAgQHBhcmFtW2luXSBJZHRUYWJsZSAgICAgICAgSURU IHRhYmxlIGJhc2UuDQorKiovDQorVk9JRA0KK0VGSUFQSQ0KK0FyY2hTZXR1cEV4Y3BldGlvblN0 YWNrICgNCisgIElOIElBMzJfSURUX0dBVEVfREVTQ1JJUFRPUiAgICAgICAgICAgKklkdFRhYmxl DQorICApDQorew0KKyAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAqTmV3R2R0Ow0KKyAgSUEz Ml9ERVNDUklQVE9SICAgICAgICAgICBHZHREZXNjOw0KKyAgVUlOVE4gICAgICAgICAgICAgICAg ICAgICBPbGRHZHRTaXplOw0KKyAgVFNTX0VOVFJJRVMgICAgICAgICAgICAgICAqVHNzRW50cnk7 DQorICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFN0YWNrQmFzZTsNCisgIFVJTlROICAgICAg ICAgICAgICAgICAgICAgU3RhY2tUb3A7DQorICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFN0 YWNrU2l6ZTsNCisgIFVJTlROICAgICAgICAgICAgICAgICAgICAgVHNzQmFzZTsNCisgIFVJTlRO ICAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQorDQorICAvLw0KKyAgLy8gQWxsb2NhdGUgUnVu dGltZSBEYXRhIGZvciB0aGUgR0RUDQorICAvLw0KKyAgQXNtUmVhZEdkdHIoJkdkdERlc2MpOw0K KyAgT2xkR2R0U2l6ZSA9IEdkdERlc2MuTGltaXQgKyAxOw0KKyAgTmV3R2R0ID0gQWxsb2NhdGVS dW50aW1lWmVyb1Bvb2woT2xkR2R0U2l6ZSArIHNpemVvZihUU1NfRU5UUklFUykNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsgSUEzMl9HRFRfQUxJR05NRU5UKTsNCisgIGlmIChO ZXdHZHQgPT0gTlVMTCkgew0KKyAgICByZXR1cm47DQorICB9DQorICBOZXdHZHQgPSBBTElHTl9Q T0lOVEVSIChOZXdHZHQsIElBMzJfR0RUX0FMSUdOTUVOVCk7DQorDQorICAvLw0KKyAgLy8gSW5p dGlhbGl6ZSBuZXcgR0RUIGVudHJpZXMNCisgIC8vDQorICBDb3B5TWVtKE5ld0dkdCwgKFZPSUQg KilHZHREZXNjLkJhc2UsIE9sZEdkdFNpemUpOw0KKyAgR2R0RGVzYy5CYXNlID0gKFVJTlROKShW T0lEKilOZXdHZHQ7DQorICBHZHREZXNjLkxpbWl0ID0gKFVJTlQxNikoT2xkR2R0U2l6ZSArIFRT U19PRkZTRVQgLSAxKTsNCisNCisgIC8vDQorICAvLyBSZXNlcnZlIHN0YXRjayBtZW1vcnkgZm9y IHN1cHBvcnRlZCBleGNlcHRpb25zDQorICAvLw0KKyAgU3RhY2tTaXplID0gQVJSQVlfU0laRSAo bUV4Y2VwdGlvbnNXaXRoU3RhY2spICogRVhDRVBUSU9OX1NUQUNLX1NJWkU7DQorICBTdGFja1Np emUgPSBFRklfUEFHRVNfVE9fU0laRSAoRUZJX1NJWkVfVE9fUEFHRVMgKFN0YWNrU2l6ZSkpOw0K KyAgU3RhY2tCYXNlID0gKFVJTlQ2NClBbGxvY2F0ZVBhZ2VzIChFRklfU0laRV9UT19QQUdFUyAo U3RhY2tTaXplKSk7DQorICBpZiAoU3RhY2tCYXNlID09IDApIHsNCisgICAgRnJlZVBvb2wgKE5l d0dkdCk7DQorICAgIHJldHVybjsNCisgIH0NCisNCisgIC8vDQorICAvLyBGaXh1cCBUU1MgZGVz Y3JpcHRvcnMNCisgIC8vDQorICBUc3NFbnRyeSA9IChWT0lEICopKEdkdERlc2MuQmFzZSArIE9s ZEdkdFNpemUpOw0KKyAgVHNzQmFzZSA9IChVSU5UTikoVk9JRCAqKSZUc3NFbnRyeS0+VHNzOw0K Kw0KKyAgVHNzRW50cnktPlRzc1NlZy5MaW1pdDE1XzAgICAgICAgICAgICA9IHNpemVvZihJQTMy X1RBU0tfU1RBVEVfU0VHTUVOVCkgLSAxOw0KKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlMTVfMCAg ICAgICAgICAgICA9IChVSU5UMTYpVHNzQmFzZTsNCisgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTIz XzE2ICAgICAgICAgICAgPSAoVUlOVDgpKFRzc0Jhc2UgPj4gMTYpOw0KKyAgVHNzRW50cnktPlRz c1NlZy5UeXBlICAgICAgICAgICAgICAgICA9IElBMzJfR0RUX1RZUEVfVFNTOw0KKyAgVHNzRW50 cnktPlRzc1NlZy5MaW1pdDE5XzE2X2FuZF9mbGFncyA9IDA7DQorICBUc3NFbnRyeS0+VHNzU2Vn LkJhc2UzMV8yNCAgICAgICAgICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDI0KTsNCisgIFRzc0Vu dHJ5LT5Uc3NTZWcuQmFzZTYzXzMyICAgICAgICAgICAgPSAoVUlOVDMyKShUc3NCYXNlID4+IDMy KTsNCisgIFRzc0VudHJ5LT5Uc3NTZWcuUmVzZXJ2ZWQgICAgICAgICAgICAgPSAwOw0KKw0KKyAg Ly8NCisgIC8vIEVuYWJsZSBJbnRlcnJ1cHQgU3RhY2sgVGFibGUgKElTVCkgZm9yIGVhY2ggcmVx dWlyZWQgZXhjZXB0aW9uDQorICAvLw0KKyAgU3RhY2tUb3AgID0gU3RhY2tCYXNlICsgU3RhY2tT aXplIC0gQ1BVX1NUQUNLX0FMSUdOTUVOVDsNCisgIFN0YWNrVG9wICA9IChVSU5UTilBTElHTl9Q T0lOVEVSIChTdGFja1RvcCwgQ1BVX1NUQUNLX0FMSUdOTUVOVCk7DQorICBmb3IgKEluZGV4ID0g MDsgSW5kZXggPCBBUlJBWV9TSVpFIChtRXhjZXB0aW9uc1dpdGhTdGFjayk7ICsrSW5kZXgpIHsN CisgICAgLy8NCisgICAgLy8gRml4dXAgVFNTDQorICAgIC8vDQorICAgIFRzc0VudHJ5LT5Uc3Mu SVNUW0luZGV4XSA9IFN0YWNrVG9wOw0KKyAgICBTdGFja1RvcCAtPSBFWENFUFRJT05fU1RBQ0tf U0laRTsNCisNCisgICAgLy8NCisgICAgLy8gU2V0IHRoZSBJU1QgZmllbGQgdG8gMSB0byBlbmFi bGUgY29ycmVzcG9uZGluZyBJU1QNCisgICAgLy8NCisgICAgSWR0VGFibGVbbUV4Y2VwdGlvbnNX aXRoU3RhY2tbSW5kZXhdXS5CaXRzLlJlc2VydmVkXzAgPSAoVUlOVDgpKEluZGV4ICsgMSk7DQor ICB9DQorDQorICAvLw0KKyAgLy8gUHVibGlzaCB0aGUgY2hhbmdlcw0KKyAgLy8NCisgIEFzbVdy aXRlR2R0cigmR2R0RGVzYyk7DQorDQorICAvLw0KKyAgLy8gTG9hZCB0YXNrIHJlZ2lzdGVyDQor ICAvLw0KKyAgQXNtV3JpdGVUciAoKFVJTlQxNikoT2xkR2R0U2l6ZSArIFRTU19TRUwpKTsNCit9 DQorDQogLyoqDQogICBEaXNwbGF5IENQVSBpbmZvcm1hdGlvbi4NCg0KZGlmZiAtLWdpdCBhL1Vl ZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoSW50ZXJydXB0 RGVmcy5oIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0Fy Y2hJbnRlcnJ1cHREZWZzLmgNCmluZGV4IDkwNjQ4MDEzNGEuLjVhOTEzYmFlN2IgMTAwNjQ0DQot LS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaElu dGVycnVwdERlZnMuaA0KKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvWDY0L0FyY2hJbnRlcnJ1cHREZWZzLmgNCkBAIC00Myw0ICs0Myw0NCBAQCB0eXBlZGVm IHN0cnVjdCB7DQogICBVSU5UOCAgICAgICBIb29rQWZ0ZXJTdHViSGVhZGVyQ29kZVtIT09LQUZU RVJfU1RVQl9TSVpFXTsNCiB9IFJFU0VSVkVEX1ZFQ1RPUlNfREFUQTsNCg0KKyNwcmFnbWEgcGFj ayAoMSkNCisNCisjZGVmaW5lIEVYQ0VQVElPTl9MSVNUX01BWCAgICAgICAgNw0KKyNkZWZpbmUg RVhDRVBUSU9OX1NUQUNLX1NJWkUgICAgICBFRklfUEFHRV9TSVpFDQorI2RlZmluZSBJQTMyX0dE VF9UWVBFX1RTUyAgICAgICAgIDB4ODkNCisjZGVmaW5lIElBMzJfR0RUX0FMSUdOTUVOVCAgICAg ICAgOA0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgIFVJTlQzMiAgICBSZXNlcnZlZF8wOw0KKyAg VUlOVDY0ICAgIFJTUDA7DQorICBVSU5UNjQgICAgUlNQMTsNCisgIFVJTlQ2NCAgICBSU1AyOw0K KyAgVUlOVDY0ICAgIFJlc2VydmVkXzI4Ow0KKyAgVUlOVDY0ICAgIElTVFs3XTsNCisgIFVJTlQ2 NCAgICBSZXNlcnZlZF85MjsNCisgIFVJTlQxNiAgICBSZXNlcnZlZF8xMDA7DQorICBVSU5UMTYg ICAgSU9NYXBCYXNlQWRkcmVzczsNCit9IElBMzJfVEFTS19TVEFURV9TRUdNRU5UOw0KKw0KK3R5 cGVkZWYgc3RydWN0IHsNCisgIFVJTlQxNiAgICBMaW1pdDE1XzA7DQorICBVSU5UMTYgICAgQmFz ZTE1XzA7DQorICBVSU5UOCAgICAgQmFzZTIzXzE2Ow0KKyAgVUlOVDggICAgIFR5cGU7DQorICBV SU5UOCAgICAgTGltaXQxOV8xNl9hbmRfZmxhZ3M7DQorICBVSU5UOCAgICAgQmFzZTMxXzI0Ow0K KyAgVUlOVDMyICAgIEJhc2U2M18zMjsNCisgIFVJTlQzMiAgICBSZXNlcnZlZDsNCit9IElBMzJf VFNTX0RFU0NSSVBUT1I7DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgSUEzMl9UU1NfREVTQ1JJ UFRPUiAgICAgICAgICAgVHNzU2VnOw0KKyAgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQgICAgICAg VHNzOw0KK30gVFNTX0VOVFJJRVM7DQorDQorI3ByYWdtYSBwYWNrICgpDQorDQorI2RlZmluZSBU U1NfU0VMICAgICAgICAgICBPRkZTRVRfT0YgKFRTU19FTlRSSUVTLCBUc3NTZWcpDQorI2RlZmlu ZSBUU1NfT0ZGU0VUICAgICAgICBPRkZTRVRfT0YgKFRTU19FTlRSSUVTLCBUc3MpDQorDQogI2Vu ZGlmDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uUyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNl cHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCmluZGV4IGVkZDM2M2Nk YWEuLmJkYWYxMzJjZjUgMTAwNjQ0DQotLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQorKysgYi9VZWZpQ3B1UGtn L0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5T DQpAQCAtNDI5LDYgKzQyOSwxOCBAQCBBU01fUEZYKEFzbVZlY3Rvck51bUZpeHVwKToNCiAgICAg cG9wcSAgICAgICVyYnANCiAgICAgcmV0DQoNCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIyBW T0lEDQorIyBBc21Xcml0ZVRyICgNCisjICAgVUlOVDE2IFNlbGVjdG9yDQorIyAgICk7DQorIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KK0FTTV9HTE9CQUwgQVNNX1BGWChBc21Xcml0ZVRyKQ0KK0FT TV9QRlgoQXNtV3JpdGVUcik6DQorICAgIG1vdmwgICAgJWVjeCwgJWVheA0KKyAgICBsdHJ3ICAg ICVheA0KKyAgICByZXQNCisNCiAjRU5EDQoNCg0KZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbSBi L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25I YW5kbGVyQXNtLmFzbQ0KaW5kZXggNzI2YzY0YTE0MC4uYWVjNTZlZjRiZiAxMDA2NDQNCi0tLSBh L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25I YW5kbGVyQXNtLmFzbQ0KKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQpAQCAtMzg2LDQgKzM4NiwxNiBAQCBB c21WZWN0b3JOdW1GaXh1cCAgIFBST0MNCiAgICAgcmV0DQogQXNtVmVjdG9yTnVtRml4dXAgICBF TkRQDQoNCis7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorOyBWT0lEDQorOyBBc21Xcml0ZVRyICgN Cis7ICAgVUlOVDE2IFNlbGVjdG9yDQorOyAgICk7DQorOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K K0FzbVdyaXRlVHIgUFJPQyBQVUJMSUMNCisgICAgbW92ICAgICBlYXgsIGVjeA0KKyAgICBsdHIg ICAgIGF4DQorICAgIHJldA0KK0FzbVdyaXRlVHIgRU5EUA0KKw0KIEVORA0KZGlmZiAtLWdpdCBh L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25I YW5kbGVyQXNtLm5hc20gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtDQppbmRleCBiYTg5OTNkODRiLi4xZTJhYzQx MWIwIDEwMDY0NA0KLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbQ0KKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5 L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbQ0KQEAg LTM4NSwzICszODUsMTUgQEAgQVNNX1BGWChBc21WZWN0b3JOdW1GaXh1cCk6DQogICAgIG1vdiAg ICAgW3JjeCArIChAVmVjdG9yTnVtIC0gSG9va0FmdGVyU3R1YkhlYWRlckJlZ2luKV0sIGFsDQog ICAgIHJldA0KDQorOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKzsgVk9JRA0KKzsgQXNtV3JpdGVU ciAoDQorOyAgIFVJTlQxNiBTZWxlY3Rvcg0KKzsgICApOw0KKzstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCitnbG9iYWwgQVNNX1BGWChBc21Xcml0ZVRyKQ0KK0FTTV9QRlgoQXNtV3JpdGVUcik6DQor ICAgIG1vdiAgICAgZWF4LCBlY3gNCisgICAgbHRyICAgICBheA0KKyAgICByZXQNCisNCi0tDQoy LjE0LjEud2luZG93cy4xDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQplZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KZWRrMi1kZXZlbEBsaXN0cy4wMS5v cmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KaHR0cHM6Ly9saXN0cy4wMS5vcmcv bWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQoNCg==