From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-f180.google.com ([209.85.210.180]:35882 "EHLO mail-pf1-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726537AbeLSDbz (ORCPT ); Tue, 18 Dec 2018 22:31:55 -0500 Subject: Re: [PATCH v5] cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader. To: Macpaul Lin Cc: Oliver Neukum , Andrey Arapov , Johan Hovold , Greg Kroah-Hartman , Mediatek WSD Upstream , linux-usb@vger.kernel.org, stable@vger.kernel.org References: <1544671676-23912-1-git-send-email-macpaul.lin@mediatek.com> <1545134386-5528-1-git-send-email-macpaul.lin@mediatek.com> <20181218123840.GP20658@localhost> <1545140229.18594.3.camel@suse.com> <1545143195.10193.6.camel@mtkswgap22> <1545146389.10193.12.camel@mtkswgap22> <5b0e5bf4-0411-0c58-ccae-fe66c937a36b@gmail.com> <1545155303.16619.11.camel@mtkswgap22> <1545186137.1821.5.camel@mtkswgap22> <1545189395.3262.2.camel@mtkswgap22> From: Lars Melin Message-ID: <3465233a-1afd-8112-ebd6-78cceb426c9d@gmail.com> Date: Wed, 19 Dec 2018 10:31:49 +0700 MIME-Version: 1.0 In-Reply-To: <1545189395.3262.2.camel@mtkswgap22> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: On 12/19/2018 10:16, Macpaul Lin wrote: . > Here comes the verbose lsusb -v dump. > > Bus 001 Device 003: ID 0e8d:0003 MediaTek Inc. MT6227 phone > [432/3160] > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 1.10 > bDeviceClass 2 Communications > bDeviceSubClass 0 > bDeviceProtocol 0 > bMaxPacketSize0 64 > idVendor 0x0e8d MediaTek Inc. > idProduct 0x0003 MT6227 phone > bcdDevice 1.00 > iManufacturer 0 > iProduct 0 > iSerial 0 > bNumConfigurations 1 > Configuration Descriptor: > bLength 9 > bDescriptorType 2 > wTotalLength 67 > bNumInterfaces 2 > bConfigurationValue 1 > iConfiguration 0 > bmAttributes 0x80 > (Bus Powered) > MaxPower 0mA > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 0 > bAlternateSetting 0 > bNumEndpoints 1 > bInterfaceClass 2 Communications > bInterfaceSubClass 2 Abstract (modem) > bInterfaceProtocol 1 AT-commands (v.25ter) > iInterface 1 (error) > CDC Header: > bcdCDC 1.10 > CDC ACM: > bmCapabilities 0x0f > connection notifications > sends break > line coding and serial state > get/set/clear comm features > CDC Union: > bMasterInterface 0 > bSlaveInterface 1 > CDC Call Management: > bmCapabilities 0x03 > call management > use DataInterface > bDataInterface 1 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x84 EP 4 IN > bmAttributes 3 > Transfer Type Interrupt > Synch Type None > Usage Type Data > wMaxPacketSize 0x0040 1x 64 bytes > bInterval 1 > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 1 > bAlternateSetting 0 > bNumEndpoints 2 > bInterfaceClass 10 CDC Data > bInterfaceSubClass 0 Unused > bInterfaceProtocol 0 > iInterface 2 (error) > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x81 EP 1 IN > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x01 EP 1 OUT > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Device Status: 0x7410 > (Bus Powered) > Regards, > Macpaul Lin > Hi Macpaul, your verbose usb listing show me that Mediatek has made two different 0e8d:003 devices, see my verbose lsusb listing below. (Notice also the reverse order for cmd and data interfaces in it compared to yours). USB id's are intended to identify a device and its needs so there should never be more than one unique device per id. Fairphone FP-1, MT6227 (no CDC union !!!) MI_00 USB Single Port Bus 001 Device 004: ID 0e8d:0003 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 2 Communications bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x0e8d idProduct 0x0003 bcdDevice 0.01 iManufacturer 3 MediaTek Inc iProduct 4 SEATTLE iSerial 5 534574001004 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 67 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 1 6218B COM Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Interface Descriptor: bLength 28 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 2 6218B COM Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 1 Device Status: 0x0000 (Bus Powered) /Lars From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v5] cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader. From: Lars Melin Message-Id: <3465233a-1afd-8112-ebd6-78cceb426c9d@gmail.com> Date: Wed, 19 Dec 2018 10:31:49 +0700 To: Macpaul Lin Cc: Oliver Neukum , Andrey Arapov , Johan Hovold , Greg Kroah-Hartman , Mediatek WSD Upstream , linux-usb@vger.kernel.org, stable@vger.kernel.org List-ID: T24gMTIvMTkvMjAxOCAxMDoxNiwgTWFjcGF1bCBMaW4gd3JvdGU6CgouCj4gSGVyZSBjb21lcyB0 aGUgdmVyYm9zZSBsc3VzYiAtdiBkdW1wLgo+IAo+IEJ1cyAwMDEgRGV2aWNlIDAwMzogSUQgMGU4 ZDowMDAzIE1lZGlhVGVrIEluYy4gTVQ2MjI3IHBob25lCj4gWzQzMi8zMTYwXQo+IERldmljZSBE ZXNjcmlwdG9yOgo+ICAgIGJMZW5ndGggICAgICAgICAgICAgICAgMTgKPiAgICBiRGVzY3JpcHRv clR5cGUgICAgICAgICAxCj4gICAgYmNkVVNCICAgICAgICAgICAgICAgMS4xMAo+ICAgIGJEZXZp Y2VDbGFzcyAgICAgICAgICAgIDIgQ29tbXVuaWNhdGlvbnMKPiAgICBiRGV2aWNlU3ViQ2xhc3Mg ICAgICAgICAwCj4gICAgYkRldmljZVByb3RvY29sICAgICAgICAgMAo+ICAgIGJNYXhQYWNrZXRT aXplMCAgICAgICAgNjQKPiAgICBpZFZlbmRvciAgICAgICAgICAgMHgwZThkIE1lZGlhVGVrIElu Yy4KPiAgICBpZFByb2R1Y3QgICAgICAgICAgMHgwMDAzIE1UNjIyNyBwaG9uZQo+ICAgIGJjZERl dmljZSAgICAgICAgICAgIDEuMDAKPiAgICBpTWFudWZhY3R1cmVyICAgICAgICAgICAwCj4gICAg aVByb2R1Y3QgICAgICAgICAgICAgICAgMAo+ICAgIGlTZXJpYWwgICAgICAgICAgICAgICAgIDAK PiAgICBiTnVtQ29uZmlndXJhdGlvbnMgICAgICAxCj4gICAgQ29uZmlndXJhdGlvbiBEZXNjcmlw dG9yOgo+ICAgICAgYkxlbmd0aCAgICAgICAgICAgICAgICAgOQo+ICAgICAgYkRlc2NyaXB0b3JU eXBlICAgICAgICAgMgo+ICAgICAgd1RvdGFsTGVuZ3RoICAgICAgICAgICA2Nwo+ICAgICAgYk51 bUludGVyZmFjZXMgICAgICAgICAgMgo+ICAgICAgYkNvbmZpZ3VyYXRpb25WYWx1ZSAgICAgMQo+ ICAgICAgaUNvbmZpZ3VyYXRpb24gICAgICAgICAgMAo+ICAgICAgYm1BdHRyaWJ1dGVzICAgICAg ICAgMHg4MAo+ICAgICAgICAoQnVzIFBvd2VyZWQpCj4gICAgICBNYXhQb3dlciAgICAgICAgICAg ICAgICAwbUEKPiAgICAgIEludGVyZmFjZSBEZXNjcmlwdG9yOgo+ICAgICAgICBiTGVuZ3RoICAg ICAgICAgICAgICAgICA5Cj4gICAgICAgIGJEZXNjcmlwdG9yVHlwZSAgICAgICAgIDQKPiAgICAg ICAgYkludGVyZmFjZU51bWJlciAgICAgICAgMAo+ICAgICAgICBiQWx0ZXJuYXRlU2V0dGluZyAg ICAgICAwCj4gICAgICAgIGJOdW1FbmRwb2ludHMgICAgICAgICAgIDEKPiAgICAgICAgYkludGVy ZmFjZUNsYXNzICAgICAgICAgMiBDb21tdW5pY2F0aW9ucwo+ICAgICAgICBiSW50ZXJmYWNlU3Vi Q2xhc3MgICAgICAyIEFic3RyYWN0IChtb2RlbSkKPiAgICAgICAgYkludGVyZmFjZVByb3RvY29s ICAgICAgMSBBVC1jb21tYW5kcyAodi4yNXRlcikKPiAgICAgICAgaUludGVyZmFjZSAgICAgICAg ICAgICAgMSAoZXJyb3IpCj4gICAgICAgIENEQyBIZWFkZXI6Cj4gICAgICAgICAgYmNkQ0RDICAg ICAgICAgICAgICAgMS4xMAo+ICAgICAgICBDREMgQUNNOgo+ICAgICAgICAgIGJtQ2FwYWJpbGl0 aWVzICAgICAgIDB4MGYKPiAgICAgICAgICAgIGNvbm5lY3Rpb24gbm90aWZpY2F0aW9ucwo+ICAg ICAgICAgICAgc2VuZHMgYnJlYWsKPiAgICAgICAgICAgIGxpbmUgY29kaW5nIGFuZCBzZXJpYWwg c3RhdGUKPiAgICAgICAgICAgIGdldC9zZXQvY2xlYXIgY29tbSBmZWF0dXJlcwo+ICAgICAgICBD REMgVW5pb246Cj4gICAgICAgICAgYk1hc3RlckludGVyZmFjZSAgICAgICAgMAo+ICAgICAgICAg IGJTbGF2ZUludGVyZmFjZSAgICAgICAgIDEKPiAgICAgICAgQ0RDIENhbGwgTWFuYWdlbWVudDoK PiAgICAgICAgICBibUNhcGFiaWxpdGllcyAgICAgICAweDAzCj4gICAgICAgICAgICBjYWxsIG1h bmFnZW1lbnQKPiAgICAgICAgICAgIHVzZSBEYXRhSW50ZXJmYWNlCj4gICAgICAgICAgYkRhdGFJ bnRlcmZhY2UgICAgICAgICAgMQo+ICAgICAgICBFbmRwb2ludCBEZXNjcmlwdG9yOgo+ICAgICAg ICAgIGJMZW5ndGggICAgICAgICAgICAgICAgIDcKPiAgICAgICAgICBiRGVzY3JpcHRvclR5cGUg ICAgICAgICA1Cj4gICAgICAgICAgYkVuZHBvaW50QWRkcmVzcyAgICAgMHg4NCAgRVAgNCBJTgo+ ICAgICAgICAgIGJtQXR0cmlidXRlcyAgICAgICAgICAgIDMKPiAgICAgICAgICAgIFRyYW5zZmVy IFR5cGUgICAgICAgICAgICBJbnRlcnJ1cHQKPiAgICAgICAgICAgIFN5bmNoIFR5cGUgICAgICAg ICAgICAgICBOb25lCj4gICAgICAgICAgICBVc2FnZSBUeXBlICAgICAgICAgICAgICAgRGF0YQo+ ICAgICAgICAgIHdNYXhQYWNrZXRTaXplICAgICAweDAwNDAgIDF4IDY0IGJ5dGVzCj4gICAgICAg ICAgYkludGVydmFsICAgICAgICAgICAgICAgMQo+ICAgICAgSW50ZXJmYWNlIERlc2NyaXB0b3I6 Cj4gICAgICAgIGJMZW5ndGggICAgICAgICAgICAgICAgIDkKPiAgICAgICAgYkRlc2NyaXB0b3JU eXBlICAgICAgICAgNAo+ICAgICAgICBiSW50ZXJmYWNlTnVtYmVyICAgICAgICAxCj4gICAgICAg IGJBbHRlcm5hdGVTZXR0aW5nICAgICAgIDAKPiAgICAgICAgYk51bUVuZHBvaW50cyAgICAgICAg ICAgMgo+ICAgICAgICBiSW50ZXJmYWNlQ2xhc3MgICAgICAgIDEwIENEQyBEYXRhCj4gICAgICAg IGJJbnRlcmZhY2VTdWJDbGFzcyAgICAgIDAgVW51c2VkCj4gICAgICAgIGJJbnRlcmZhY2VQcm90 b2NvbCAgICAgIDAKPiAgICAgICAgaUludGVyZmFjZSAgICAgICAgICAgICAgMiAoZXJyb3IpCj4g ICAgICAgIEVuZHBvaW50IERlc2NyaXB0b3I6Cj4gICAgICAgICAgYkxlbmd0aCAgICAgICAgICAg ICAgICAgNwo+ICAgICAgICAgIGJEZXNjcmlwdG9yVHlwZSAgICAgICAgIDUKPiAgICAgICAgICBi RW5kcG9pbnRBZGRyZXNzICAgICAweDgxICBFUCAxIElOCj4gICAgICAgICAgYm1BdHRyaWJ1dGVz ICAgICAgICAgICAgMgo+ICAgICAgICAgICAgVHJhbnNmZXIgVHlwZSAgICAgICAgICAgIEJ1bGsK PiAgICAgICAgICAgIFN5bmNoIFR5cGUgICAgICAgICAgICAgICBOb25lCj4gICAgICAgICAgICBV c2FnZSBUeXBlICAgICAgICAgICAgICAgRGF0YQo+ICAgICAgICAgIHdNYXhQYWNrZXRTaXplICAg ICAweDAyMDAgIDF4IDUxMiBieXRlcwo+ICAgICAgICAgIGJJbnRlcnZhbCAgICAgICAgICAgICAg IDAKPiAgICAgICAgRW5kcG9pbnQgRGVzY3JpcHRvcjoKPiAgICAgICAgICBiTGVuZ3RoICAgICAg ICAgICAgICAgICA3Cj4gICAgICAgICAgYkRlc2NyaXB0b3JUeXBlICAgICAgICAgNQo+ICAgICAg ICAgIGJFbmRwb2ludEFkZHJlc3MgICAgIDB4MDEgIEVQIDEgT1VUCj4gICAgICAgICAgYm1BdHRy aWJ1dGVzICAgICAgICAgICAgMgo+ICAgICAgICAgICAgVHJhbnNmZXIgVHlwZSAgICAgICAgICAg IEJ1bGsKPiAgICAgICAgICAgIFN5bmNoIFR5cGUgICAgICAgICAgICAgICBOb25lCj4gICAgICAg ICAgICBVc2FnZSBUeXBlICAgICAgICAgICAgICAgRGF0YQo+ICAgICAgICAgIHdNYXhQYWNrZXRT aXplICAgICAweDAyMDAgIDF4IDUxMiBieXRlcwo+ICAgICAgICAgIGJJbnRlcnZhbCAgICAgICAg ICAgICAgIDAKPiBEZXZpY2UgU3RhdHVzOiAgICAgMHg3NDEwCj4gICAgKEJ1cyBQb3dlcmVkKQoK PiBSZWdhcmRzLAo+IE1hY3BhdWwgTGluCj4gCgpIaSBNYWNwYXVsLAp5b3VyIHZlcmJvc2UgdXNi IGxpc3Rpbmcgc2hvdyBtZSB0aGF0IE1lZGlhdGVrIGhhcyBtYWRlIHR3byBkaWZmZXJlbnQgCjBl OGQ6MDAzIGRldmljZXMsIHNlZSBteSB2ZXJib3NlIGxzdXNiIGxpc3RpbmcgYmVsb3cuCihOb3Rp Y2UgYWxzbyB0aGUgcmV2ZXJzZSBvcmRlciBmb3IgY21kIGFuZCBkYXRhIGludGVyZmFjZXMgaW4g aXQgCmNvbXBhcmVkIHRvIHlvdXJzKS4KVVNCIGlkJ3MgYXJlIGludGVuZGVkIHRvIGlkZW50aWZ5 IGEgZGV2aWNlIGFuZCBpdHMgbmVlZHMgc28gdGhlcmUgc2hvdWxkCm5ldmVyIGJlIG1vcmUgdGhh biBvbmUgdW5pcXVlIGRldmljZSBwZXIgaWQuCgoKRmFpcnBob25lIEZQLTEsIE1UNjIyNyAgKG5v IENEQyB1bmlvbiAhISEpCgoKTUlfMDAgVVNCIFNpbmdsZSBQb3J0CgoKQnVzIDAwMSBEZXZpY2Ug MDA0OiBJRCAwZThkOjAwMDMKRGV2aWNlIERlc2NyaXB0b3I6CiAgIGJMZW5ndGggICAgICAgICAg ICAgICAgMTgKICAgYkRlc2NyaXB0b3JUeXBlICAgICAgICAgMQogICBiY2RVU0IgICAgICAgICAg ICAgICAxLjEwCiAgIGJEZXZpY2VDbGFzcyAgICAgICAgICAgIDIgQ29tbXVuaWNhdGlvbnMKICAg YkRldmljZVN1YkNsYXNzICAgICAgICAgMAogICBiRGV2aWNlUHJvdG9jb2wgICAgICAgICAwCiAg IGJNYXhQYWNrZXRTaXplMCAgICAgICAgIDgKICAgaWRWZW5kb3IgICAgICAgICAgIDB4MGU4ZAog ICBpZFByb2R1Y3QgICAgICAgICAgMHgwMDAzCiAgIGJjZERldmljZSAgICAgICAgICAgIDAuMDEK ICAgaU1hbnVmYWN0dXJlciAgICAgICAgICAgMyBNZWRpYVRlayBJbmMKICAgaVByb2R1Y3QgICAg ICAgICAgICAgICAgNCBTRUFUVExFCiAgIGlTZXJpYWwgICAgICAgICAgICAgICAgIDUgNTM0NTc0 MDAxMDA0CiAgIGJOdW1Db25maWd1cmF0aW9ucyAgICAgIDEKICAgQ29uZmlndXJhdGlvbiBEZXNj cmlwdG9yOgogICAgIGJMZW5ndGggICAgICAgICAgICAgICAgIDkKICAgICBiRGVzY3JpcHRvclR5 cGUgICAgICAgICAyCiAgICAgd1RvdGFsTGVuZ3RoICAgICAgICAgICA2NwogICAgIGJOdW1JbnRl cmZhY2VzICAgICAgICAgIDIKICAgICBiQ29uZmlndXJhdGlvblZhbHVlICAgICAxCiAgICAgaUNv bmZpZ3VyYXRpb24gICAgICAgICAgMAogICAgIGJtQXR0cmlidXRlcyAgICAgICAgIDB4ODAKICAg ICAgIChCdXMgUG93ZXJlZCkKICAgICBNYXhQb3dlciAgICAgICAgICAgICAgNTAwbUEKCiAgICAg SW50ZXJmYWNlIERlc2NyaXB0b3I6CiAgICAgICBiTGVuZ3RoICAgICAgICAgICAgICAgICA5CiAg ICAgICBiRGVzY3JpcHRvclR5cGUgICAgICAgICA0CiAgICAgICBiSW50ZXJmYWNlTnVtYmVyICAg ICAgICAwCiAgICAgICBiQWx0ZXJuYXRlU2V0dGluZyAgICAgICAwCiAgICAgICBiTnVtRW5kcG9p bnRzICAgICAgICAgICAyCiAgICAgICBiSW50ZXJmYWNlQ2xhc3MgICAgICAgIDEwIERhdGEKICAg ICAgIGJJbnRlcmZhY2VTdWJDbGFzcyAgICAgIDAgVW51c2VkCiAgICAgICBiSW50ZXJmYWNlUHJv dG9jb2wgICAgICAwCiAgICAgICBpSW50ZXJmYWNlICAgICAgICAgICAgICAxIDYyMThCIENPTQog ICAgICAgRW5kcG9pbnQgRGVzY3JpcHRvcjoKICAgICAgICAgYkxlbmd0aCAgICAgICAgICAgICAg ICAgNwogICAgICAgICBiRGVzY3JpcHRvclR5cGUgICAgICAgICA1CiAgICAgICAgIGJFbmRwb2lu dEFkZHJlc3MgICAgIDB4ODEgIEVQIDEgSU4KICAgICAgICAgYm1BdHRyaWJ1dGVzICAgICAgICAg ICAgMgogICAgICAgICAgIFRyYW5zZmVyIFR5cGUgICAgICAgICAgICBCdWxrCiAgICAgICAgICAg U3luY2ggVHlwZSAgICAgICAgICAgICAgIE5vbmUKICAgICAgICAgICBVc2FnZSBUeXBlICAgICAg ICAgICAgICAgRGF0YQogICAgICAgICB3TWF4UGFja2V0U2l6ZSAgICAgMHgwMDQwICAxeCA2NCBi eXRlcwogICAgICAgICBiSW50ZXJ2YWwgICAgICAgICAgICAgICAwCiAgICAgICBFbmRwb2ludCBE ZXNjcmlwdG9yOgogICAgICAgICBiTGVuZ3RoICAgICAgICAgICAgICAgICA3CiAgICAgICAgIGJE ZXNjcmlwdG9yVHlwZSAgICAgICAgIDUKICAgICAgICAgYkVuZHBvaW50QWRkcmVzcyAgICAgMHgw MSAgRVAgMSBPVVQKICAgICAgICAgYm1BdHRyaWJ1dGVzICAgICAgICAgICAgMgogICAgICAgICAg IFRyYW5zZmVyIFR5cGUgICAgICAgICAgICBCdWxrCiAgICAgICAgICAgU3luY2ggVHlwZSAgICAg ICAgICAgICAgIE5vbmUKICAgICAgICAgICBVc2FnZSBUeXBlICAgICAgICAgICAgICAgRGF0YQog ICAgICAgICB3TWF4UGFja2V0U2l6ZSAgICAgMHgwMDQwICAxeCA2NCBieXRlcwogICAgICAgICBi SW50ZXJ2YWwgICAgICAgICAgICAgICAwCgogICAgIEludGVyZmFjZSBEZXNjcmlwdG9yOgogICAg ICAgYkxlbmd0aCAgICAgICAgICAgICAgICAyOAogICAgICAgYkRlc2NyaXB0b3JUeXBlICAgICAg ICAgNAogICAgICAgYkludGVyZmFjZU51bWJlciAgICAgICAgMQogICAgICAgYkFsdGVybmF0ZVNl dHRpbmcgICAgICAgMAogICAgICAgYk51bUVuZHBvaW50cyAgICAgICAgICAgMQogICAgICAgYklu dGVyZmFjZUNsYXNzICAgICAgICAgMiBDb21tdW5pY2F0aW9ucwogICAgICAgYkludGVyZmFjZVN1 YkNsYXNzICAgICAgMiBBYnN0cmFjdCAobW9kZW0pCiAgICAgICBiSW50ZXJmYWNlUHJvdG9jb2wg ICAgICAxIEFULWNvbW1hbmRzICh2LjI1dGVyKQogICAgICAgaUludGVyZmFjZSAgICAgICAgICAg ICAgMiA2MjE4QiBDT00KICAgICAgIEVuZHBvaW50IERlc2NyaXB0b3I6CiAgICAgICAgIGJMZW5n dGggICAgICAgICAgICAgICAgIDcKICAgICAgICAgYkRlc2NyaXB0b3JUeXBlICAgICAgICAgNQog ICAgICAgICBiRW5kcG9pbnRBZGRyZXNzICAgICAweDgzICBFUCAzIElOCiAgICAgICAgIGJtQXR0 cmlidXRlcyAgICAgICAgICAgIDMKICAgICAgICAgICBUcmFuc2ZlciBUeXBlICAgICAgICAgICAg SW50ZXJydXB0CiAgICAgICAgICAgU3luY2ggVHlwZSAgICAgICAgICAgICAgIE5vbmUKICAgICAg ICAgICBVc2FnZSBUeXBlICAgICAgICAgICAgICAgRGF0YQogICAgICAgICB3TWF4UGFja2V0U2l6 ZSAgICAgMHgwMDA4ICAxeCA4IGJ5dGVzCiAgICAgICAgIGJJbnRlcnZhbCAgICAgICAgICAgICAg IDEKRGV2aWNlIFN0YXR1czogICAgIDB4MDAwMAogICAoQnVzIFBvd2VyZWQpCgoKL0xhcnMK