From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Cyrus-Session-Id: sloti22d1t05-2330415-1517210746-2-4073826967781295631 X-Sieve: CMU Sieve 3.0 X-Spam-known-sender: no X-Spam-score: 0.0 X-Spam-hits: BAYES_00 -1.9, HEADER_FROM_DIFFERENT_DOMAINS 0.001, ME_NOAUTH 0.01, RCVD_IN_DNSWL_HI -5, T_RP_MATCHES_RCVD -0.01, LANGUAGES en, BAYES_USED global, SA_VERSION 3.4.0 X-Spam-source: IP='209.132.180.67', Host='vger.kernel.org', Country='US', FromHeader='com', MailFrom='org', XOriginatingCountry='UNK' X-Spam-charsets: from='utf-8', cc='utf-8', plain='utf-8' X-Resolved-to: greg@kroah.com X-Delivered-to: greg@kroah.com X-Mail-from: linux-usb-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; cv=none; d=messagingengine.com; s=arctest; t=1517210745; b=n9UpM2ADgbXuBL47qqhcnzq2NdBUzBcIaf5pkux9DDOMvA8 cp6N9gCVGMV6jPIIK7LkiiUPyg+dEB+Oq9tFsuSxw25tkLI4GgmsxJa6Vc0hHndC MA8enwcjnW7QbTwY1K0/FQU1K6pg+qftb9UxMLh+8WKlOGyPyPthy3GrBiaj4SpH yT3PnhSjZ1gm7wEVLJgW39Y2ut7/b1k5YA7HmamMPZujNwbocvckV0K1rYCHHDj8 armebsVI/w4fvb8cQ5cjkyRZYouvkLfGFcyuT2POK6Thys7RYOUkX4SUetA9b2Xq WHy1Ve4EXmwa8e92y4THmFU6ot+pdv9U9hmry8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=from:to:cc:subject:date:message-id :references:in-reply-to:content-type:content-transfer-encoding :mime-version:sender:list-id; s=arctest; t=1517210745; bh=ne5sIu W/xzv2H4AWnYNQHHFfeposeaAZTcxrwT8zik8=; b=o2VaAN9ad26e0cLSqbZS7N S+JMDOuKax41cuNUysBvkYCpgzqC0SX0j7rFJgWV0PmX1noZYMwJv8ePddMJZiLm UrAM0+mqnNjwDqM9mdrsioFiAGVPy+W4wGg3zViG1Jk3jtYcdf5NQfitrNmIjhG7 OOQAQBcFNYXCRRQd3GCzZO7ayFDfjwibOMZiZILlz4bzi+kGsAb4y/RMCvNEGa94 iCSqBKmvoO2uzmJNRwE4OcT94ZJ+rr7s/g2gXxmKwDqXfz5dTNIaULqK/zK3C8RF UADAA6cCfsabr99npTrflHxY4eA7JXl5E1isYOTcTa5YIUE8IekGJUlHef9+VyxQ == ARC-Authentication-Results: i=1; mx2.messagingengine.com; arc=none (no signatures found); dkim=none (no signatures found); dmarc=none (p=none,has-list-id=yes,d=none) header.from=richtek.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=linux-usb-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=richtek.com header.result=pass header_is_org_domain=yes Authentication-Results: mx2.messagingengine.com; arc=none (no signatures found); dkim=none (no signatures found); dmarc=none (p=none,has-list-id=yes,d=none) header.from=richtek.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=linux-usb-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=richtek.com header.result=pass header_is_org_domain=yes Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751256AbeA2HZa (ORCPT ); Mon, 29 Jan 2018 02:25:30 -0500 Received: from mg.richtek.com ([220.130.44.152]:35630 "EHLO mg.richtek.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751042AbeA2HZ3 (ORCPT ); Mon, 29 Jan 2018 02:25:29 -0500 X-MailGates: (flag:3,DYNAMIC,RELAY,NOHOST:PASS)(compute_score:DELIVER,40 ,3) X-MailGates: (compute_score:DELIVER,40,3) From: =?utf-8?B?c2h1ZmFuX2xlZSjmnY7mm7jluIYp?= To: 'Guenter Roeck' CC: Heikki Krogerus , 'Jun Li' , ShuFanLee , =?utf-8?B?Y3lfaHVhbmco6buD5ZWf5Y6fKQ==?= , "linux-kernel@vger.kernel.org" , "linux-usb@vger.kernel.org" Subject: RE: [PATCH] USB TYPEC: RT1711H Type-C Chip Driver Thread-Topic: [PATCH] USB TYPEC: RT1711H Type-C Chip Driver Thread-Index: AQHTieCLFd+d5p/wz0qymBaVQ9+cLaN6DAKAgACwyuD//6aTAIAAiK7g//+In4CAAG9NgIAETJIQgACZXACACqxK8A== Date: Mon, 29 Jan 2018 07:19:06 +0000 Message-ID: References: <1515567552-7692-1-git-send-email-leechu729@gmail.com> <20180119082218.GA22976@kuha.fi.intel.com> <25ced79e8ea84908bf6110a613ed81a2@ex1.rt.l> <20180119092413.GB22976@kuha.fi.intel.com> <20180119160235.GA21066@roeck-us.net> <20180122185034.GA26058@roeck-us.net> In-Reply-To: <20180122185034.GA26058@roeck-us.net> Accept-Language: zh-TW, en-US Content-Language: zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [192.168.92.54] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-usb-owner@vger.kernel.org X-Mailing-List: linux-usb@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-Mailing-List: linux-kernel@vger.kernel.org List-ID: SGkgR3VlbnRlciwNCg0KICBXZSB0cnkgdG8gdXNlIHRoZSBUQ1BDSSBkcml2ZXIgb24gUlQxNzEx SCBhbmQgaGVyZSBhcmUgc29tZSBxdWVzdGlvbnMuDQoNCiAgUTEuIElzIGN1cnJlbnQgVENQQ0kg ZHJpdmVyIHdyaXR0ZW4gYWNjb3JkaW5nIHRvIFR5cGVDIFBvcnQgQ29udHJvbGxlciBJbnRlcmZh Y2UgU3BlY2lmaWNhdGlvbiBSZXZpc2lvbiAxLjAgJiBWZXJzaW9uIDEuMj8NCiAgUTIuIEJlY2F1 c2UgMHg4MH4weEZGIGFyZSB2ZW5kb3IgZGVmaW5lZCByZWdpc3RlcnMuIFNvbWUgb2YgdGhlbSBh cmUgbmVlZGVkIHRvIGJlIGluaXRpYWxpemVkIGluIHRjcGNpX2luaXQgZm9yIFJUMTcxMUggKG9y IG90aGVyIGNoaXBzIGFsc28pLg0KSW4gdGhlIGZ1dHVyZSBUQ1BDSSBkcml2ZXIsIHdpbGwgYW4g aW5pdGlhbCBpbnRlcmZhY2UgdGhhdCBpcyBjYWxsZWQgaW4gdGNwY2lfaW5pdCBiZSByZWxlYXNl ZCBmb3IgZGlmZmVyZW50IHZlbmRvcnMgdG8gaW1wbGVtZW50Lg0KT3IsIHdlIHNob3VsZCBkaXJl Y3RseSBjb3B5IHRjcGNpLmMgdG8gdGNwY2lfcnQxNzExaC5jIGFuZCBhZGQgdGhlIGRpZmZlcmVu dCBwYXJ0cz8NCiAgUTMuIElmIHRoZXJlIGFyZSBJUlFzIGRlZmluZWQgaW4gdmVuZG9yIGRlZmlu ZWQgcmVnaXN0ZXJzLCB3aWxsIGFuIGludGVyZmFjZSB0aGF0IGlzIGNhbGxlZCBpbiB0Y3BjaV9p cnEgYmUgcmVsZWFzZWQgZm9yIGRpZmZlcmVudCB2ZW5kb3JzIHRvIGltcGxlbWVudC4NClNvIHRo YXQgdGhleSBjYW4gaGFuZGxlIHRoZWlyIG93biBJUlFzIGZpcnN0Pw0KSWYgdGhlIHN1Z2dlc3Rp b24gb2YgUTIgaXMgdG8gY29weSB0Y3BjaS5jIHRvIHRjcGNpX3J0MTcxMWguYywgdGhlbiBRMyB3 aWxsIG5vdCBiZSBhIHByb2JsZW0uDQogIFE0LiBBY2NvcmRpbmcgdG8gVENQQ0kgU3BlY2lmaWNh dGlvbiBSZXZpc2lvbiAxLjAsIHdlIHNob3VsZCBzZXQgRFJQID0gMSBhbmQgcm9sZSB0byBScC9S cCBvciBSZC9SZCBhbmQgc2V0IExPT0s0Q09OTkVDVElPTiBjb21tYW5kIHRvIHN0YXJ0IHRvZ2ds ZS4NClNvIHdlIG1vZGlmeSB0aGUgdGNwY2lfc3RhcnRfZHJwX3RvZ2dsaW5nIGluIFRDUENJIGRy aXZlciBhcyBmb2xsb3dpbmcuIEhlcmUgd2Ugd3JpdGUgUmQvUmQgYW5kIERSUCA9IDAgc2ltdWx0 YW5lb3VzbHkgc28gdGhhdCBSZC9SZCB0YWtlcyBlZmZlY3QuDQpUaGVuIHdlIHdyaXRlIERSUCA9 IDEgYW5kIHNldCBMT09LNENPTk5FQ1RJT04gY29tbWFuZCB0byBzdGFydCB0b2dnbGluZy4NCg0K c3RhdGljIGludCB0Y3BjaV9zdGFydF9kcnBfdG9nZ2xpbmcoc3RydWN0IHRjcGNfZGV2ICp0Y3Bj LA0KICAgICBlbnVtIHR5cGVjX2NjX3N0YXR1cyBjYykNCiB7DQoraW50IHJldCA9IDA7DQogc3Ry dWN0IHRjcGNpICp0Y3BjaSA9IHRjcGNfdG9fdGNwY2kodGNwYyk7DQotdW5zaWduZWQgaW50IHJl ZyA9IFRDUENfUk9MRV9DVFJMX0RSUDsNCit1MzIgcmVnID0gKFRDUENfUk9MRV9DVFJMX0NDX1JE IDw8IFRDUENfUk9MRV9DVFJMX0NDMV9TSElGVCkgfA0KKyhUQ1BDX1JPTEVfQ1RSTF9DQ19SRCA8 PCBUQ1BDX1JPTEVfQ1RSTF9DQzJfU0hJRlQpOw0KDQogc3dpdGNoIChjYykgew0KIGRlZmF1bHQ6 DQpAQCAtMTI1LDggKzY3MiwxOSBAQCBzdGF0aWMgaW50IHRjcGNpX3N0YXJ0X2RycF90b2dnbGlu ZyhzdHJ1DQogVENQQ19ST0xFX0NUUkxfUlBfVkFMX1NISUZUKTsNCiBicmVhazsNCiB9DQotDQot cmV0dXJuIHJlZ21hcF93cml0ZSh0Y3BjaS0+cmVnbWFwLCBUQ1BDX1JPTEVfQ1RSTCwgcmVnKTsN CityZXQgPSByZWdtYXBfd3JpdGUodGNwY2ktPnJlZ21hcCwgVENQQ19ST0xFX0NUUkwsIHJlZyk7 DQoraWYgKHJldCA8IDApDQorcmV0dXJuIHJldDsNCittZGVsYXkoMSk7DQorcmVnIHw9IFRDUENf Uk9MRV9DVFJMX0RSUDsNCityZXQgPSByZWdtYXBfd3JpdGUodGNwY2ktPnJlZ21hcCwgVENQQ19S T0xFX0NUUkwsIHJlZyk7DQoraWYgKHJldCA8IDApDQorcmV0dXJuIHJldDsNCityZXQgPSByZWdt YXBfd3JpdGUodGNwY2ktPnJlZ21hcCwgVENQQ19DT01NQU5ELA0KK1RDUENfQ01EX0xPT0s0Q09O TkVDVElPTik7DQoraWYgKHJldCA8IDApDQorcmV0dXJuIHJldDsNCityZXR1cm4gMDsNCiB9DQoN CiAgUTUuIFRoZSB0Y3BjaV9zZXRfdmJ1cyBpbiBUQ1BDSSBkcml2ZXIgdXNlcyBjb21tYW5kIHRv IGNvbnRyb2wgU2luay9Tb3VyY2UgVkJVUy4NCklmIG91ciBjaGlwIGRvZXMgbm90IHN1cHBvcnQg cG93ZXIgcGF0aCwgaS5lLiBTaW5rICYgU291cmNlIGFyZSBjb250cm9sbGVkIGJ5IG90aGVyIGNo YXJnZXIgSUMuIE91ciBjaGlwIHdpbGwgZG8gbm90aGluZyB3aGlsZSBzZXR0aW5nIHRoZXNlIGNv bW1hbmRzLg0KSW4gdGhlIGZ1dHVyZSBUQ1BDSSBkcml2ZXIsIHdpbGwgYSBmcmFtZXdvcmsgYmUg YXBwbGllZCB0byBub3RpZnkgdGhlc2UgZXZlbnRzLiBpLmcuIHBvd2VyX3N1cHBseSBvciBub3Rp Zmllci4NCg0KQmVzdCBSZWdhcmRzLA0KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNClNo dS1GYW4gTGVlDQpSaWNodGVrIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24NClRFTDogKzg4Ni0zLTU1 MjY3ODkgIzIzNTkNCkZBWDogKzg4Ni0zLTU1MjY2MTINCioqKioqKioqKioqKioqKioqKioqKioq KioqKioqDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBHdWVudGVyIFJvZWNr IFttYWlsdG86Z3JvZWNrN0BnbWFpbC5jb21dIE9uIEJlaGFsZiBPZiBHdWVudGVyIFJvZWNrDQpT ZW50OiBUdWVzZGF5LCBKYW51YXJ5IDIzLCAyMDE4IDI6NTEgQU0NClRvOiBzaHVmYW5fbGVlKOad juabuOW4hikNCkNjOiBIZWlra2kgS3JvZ2VydXM7ICdKdW4gTGknOyBTaHVGYW5MZWU7IGN5X2h1 YW5nKOm7g+WVn+WOnyk7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LXVzYkB2 Z2VyLmtlcm5lbC5vcmcNClN1YmplY3Q6IFJlOiBbUEFUQ0hdIFVTQiBUWVBFQzogUlQxNzExSCBU eXBlLUMgQ2hpcCBEcml2ZXINCg0KT24gTW9uLCBKYW4gMjIsIDIwMTggYXQgMDI6MDE6MTNBTSAr MDAwMCwgc2h1ZmFuX2xlZSjmnY7mm7jluIYpIHdyb3RlOg0KPiBEZWFyIEhlaWtraSBhbmQgR3Vl bnRlciwNCj4NCj4gICBCZWNhdXNlIHRoZXJlIGFyZSBzdGlsbCBvdGhlciBjb250cm9scyBvZiBS VDE3MTFIIHRoYXQgYXJlIGRpZmZlcmVudCBmcm9tIHN0YW5kYXJkIFRDUENJLCBlLnguIGZsb3cg b2YgZHJwIHRvZ2dsaW5nLg0KPg0KPiAgIElzIHRoZSBzdWdnZXN0aW9uIHRvIGN1c3RvbWl6ZSB0 aGUgZGlmZmVyZW5jZSBiYXNlZCBvbiB0Y3BjaS5jIGZvciBSVDE3MTFIPw0KPg0KDQpJbiBnZW5l cmFsLCBJIHdvdWxkIHNheSB5ZXMuIEhvd2V2ZXIsIEkgd29uJ3QgaGF2ZSBpbWUgdG8gcmV2aWV3 IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRjcGNpIGFuZCB0aGUgUlQxNzExSC4gT24gYSBoaWdo IGxldmVsLCBpZiBSVDE3MTFIIGNsYWltcyB0byBzdXBvcnQgVENQQ0ksIGl0IHNob3VsZCB1c2Ug KG9yLCByYXRoZXIsIGV4dGVuZCkgdGhlIFRDUENJIGRyaXZlci4NCg0KTm90ZSB0aGF0IHRoZSBU Q1BDSSBkcml2ZXIgZG9lcyBub3QgY2xhaW0gdG8gYmUgY29tcGxldGU7IHRoZXJlIGlzIGEgcmVh c29uIHdoeSBpdCBpcyBzdGlsbCBpbiBzdGFnaW5nLiBIb3dldmVyLCBJIHdvdWxkIHByZWZlciBp ZiBuZXcgZGV2aWNlcyBjbGFpbWluZyB0byBzdXBwb3J0IFRDUENJIHdvdWxkIHVzZSBpdCBpbnN0 ZWFkIG9mIGdvaW5nIHRoZWlyIG93biB3YXkuIEkgZG9uJ3QgaGF2ZSBwcm9ibGVtcyBleHRlbmRp bmcgaXQgd2l0aCBjaGlwIHNwZWNpZmljIGRldGFpbHMgaWYgbmVlZGVkLiBTdWNoIGV4dGVuc2lv bnMgbWF5IGJlIGltcGxlbWVudGVkIGluIHRjcGNpLmMsIG9yIG1heWJlIGJldHRlciBpbiBhIGNo aXAgc3BlY2lmaWMgZmlsZS4NCg0KRXZlbiBpZiB5b3UgZG9uJ3QgdXNlIHRoZSBleGlzdGluZyBk cml2ZXIsIEkgZG9uJ3QgcmVhbGx5IHNlZSB3aHkgaXQgd291bGQgbWFrZSBzZW5zZSB0byByZWRl Y2xhcmUgYWxsIGl0cyBkZWZpbmVzLg0KDQpFaXRoZXIgY2FzZSwgeW91IG1pZ2h0IHdhbnQgdG8g cnVuIGNoZWNrcGF0Y2ggLS1zdHJpY3Qgb24geW91ciBkcml2ZXIuIE1vc3Qgb2YgdGhhdCBpdCBy ZXBvcnRzIGlzIHJlYWxseSB1bm5lY2Vzc2FyeS4NCkFsc28sIHNvbWUgb2YgdGhlIGNvZGUsIHN1 Y2ggYXMNCg0KKyNpZm5kZWYgQklUDQorI2RlZmluZSBCSVQoeCkgKDEgPDwgKHgpKQ0KKyNlbmRp Zg0KDQppcyBfcmVhbGx5XyBvZGQgYW5kLCBhdCBsZWFzdCBpbiB0aGlzIGNhc2UsIHNpbXBseSB3 cm9uZy4NCg0KR3VlbnRlcg0KDQo+IEJlc3QgUmVnYXJkcywNCj4gKioqKioqKioqKioqKioqKioq KioqKioqKioqKioNCj4gU2h1LUZhbiBMZWUNCj4gUmljaHRlayBUZWNobm9sb2d5IENvcnBvcmF0 aW9uDQo+IFRFTDogKzg4Ni0zLTU1MjY3ODkgIzIzNTkNCj4gRkFYOiArODg2LTMtNTUyNjYxMg0K PiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBHdWVudGVyIFJvZWNrIFttYWlsdG86Z3JvZWNrN0BnbWFpbC5jb21d IE9uIEJlaGFsZiBPZiBHdWVudGVyDQo+IFJvZWNrDQo+IFNlbnQ6IFNhdHVyZGF5LCBKYW51YXJ5 IDIwLCAyMDE4IDEyOjAzIEFNDQo+IFRvOiBIZWlra2kgS3JvZ2VydXMNCj4gQ2M6IHNodWZhbl9s ZWUo5p2O5pu45biGKTsgJ0p1biBMaSc7IFNodUZhbkxlZTsgY3lfaHVhbmco6buD5ZWf5Y6fKTsN Cj4gbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgbGludXgtdXNiQHZnZXIua2VybmVsLm9y Zw0KPiBTdWJqZWN0OiBSZTogW1BBVENIXSBVU0IgVFlQRUM6IFJUMTcxMUggVHlwZS1DIENoaXAg RHJpdmVyDQo+DQo+IE9uIEZyaSwgSmFuIDE5LCAyMDE4IGF0IDExOjI0OjEzQU0gKzAyMDAsIEhl aWtraSBLcm9nZXJ1cyB3cm90ZToNCj4gPiBIaSwNCj4gPg0KPiA+IE9uIEZyaSwgSmFuIDE5LCAy MDE4IGF0IDA5OjAxOjI0QU0gKzAwMDAsIHNodWZhbl9sZWUoPz8/Pz98KSB3cm90ZToNCj4gPiA+ IEhpIEhlaWtraSwNCj4gPiA+DQo+ID4gPiAgIEZvciBleGFtcGxlLCB0aGUgZmxvdyBvZiB0Y3Bj aV9pbml0IGlzIGEgbGl0dGxlIGJpdCBkaWZmZXJlbnQuDQo+ID4gPiAgIEluIHRjcGNpX2luaXQs IHRoZXJlIGFyZSBtb3JlIHBhcmFtZXRlcnMgbmVlZCB0byBiZSBzZXQgZm9yIFJUMTcxMUguDQo+ ID4NCj4gPiBEaWZmZXJlbnQgaW5pdCBwYXJhbWV0ZXJzIGlzIHJlYWxseSBub3QgYSByZWFzb24g Zm9yIGEgZm9yayBvZiB0aGUNCj4gPiBkcml2ZXIuIFRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBU Q1BDIHdpbGwgZGVwZW5kIG9uIHRoZSBwbGF0Zm9ybQ0KPiA+IGFuZCBUQ1BDIHZlbmRvciBtb3N0 IGNhc2VzLg0KPiA+DQo+IEFncmVlZC4gZHdjMyB1c2Igc3VwcG9ydCBpcyBhbiBleGNlbGxlbnQg ZXhhbXBsZSBvbiBob3cgdG8gaGFuZGxlIHRoaXMga2luZCBvZiB2YXJpYXRpb24uDQo+DQo+IEd1 ZW50ZXINCj4gKioqKioqKioqKioqKiBFbWFpbCBDb25maWRlbnRpYWxpdHkgTm90aWNlICoqKioq KioqKioqKioqKioqKioqDQo+DQo+IFRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaW4gdGhpcyBl LW1haWwgbWVzc2FnZSAoaW5jbHVkaW5nIGFueSBhdHRhY2htZW50cykgbWF5IGJlIGNvbmZpZGVu dGlhbCwgcHJvcHJpZXRhcnksIHByaXZpbGVnZWQsIG9yIG90aGVyd2lzZSBleGVtcHQgZnJvbSBk aXNjbG9zdXJlIHVuZGVyIGFwcGxpY2FibGUgbGF3cy4gSXQgaXMgaW50ZW5kZWQgdG8gYmUgY29u dmV5ZWQgb25seSB0byB0aGUgZGVzaWduYXRlZCByZWNpcGllbnQocykuIEFueSB1c2UsIGRpc3Nl bWluYXRpb24sIGRpc3RyaWJ1dGlvbiwgcHJpbnRpbmcsIHJldGFpbmluZyBvciBjb3B5aW5nIG9m IHRoaXMgZS1tYWlsIChpbmNsdWRpbmcgaXRzIGF0dGFjaG1lbnRzKSBieSB1bmludGVuZGVkIHJl Y2lwaWVudChzKSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkIGFuZCBtYXkgYmUgdW5sYXdmdWwuIElm IHlvdSBhcmUgbm90IGFuIGludGVuZGVkIHJlY2lwaWVudCBvZiB0aGlzIGUtbWFpbCwgb3IgYmVs aWV2ZSB0aGF0IHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgZS1tYWlsIGluIGVycm9yLCBwbGVhc2Ug bm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgKGJ5IHJlcGx5aW5nIHRvIHRoaXMgZS1tYWls KSwgZGVsZXRlIGFueSBhbmQgYWxsIGNvcGllcyBvZiB0aGlzIGUtbWFpbCAoaW5jbHVkaW5nIGFu eSBhdHRhY2htZW50cykgZnJvbSB5b3VyIHN5c3RlbSwgYW5kIGRvIG5vdCBkaXNjbG9zZSB0aGUg Y29udGVudCBvZiB0aGlzIGUtbWFpbCB0byBhbnkgb3RoZXIgcGVyc29uLiBUaGFuayB5b3UhDQoq KioqKioqKioqKioqIEVtYWlsIENvbmZpZGVudGlhbGl0eSBOb3RpY2UgKioqKioqKioqKioqKioq KioqKioNCg0KVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBpbiB0aGlzIGUtbWFpbCBtZXNzYWdl IChpbmNsdWRpbmcgYW55IGF0dGFjaG1lbnRzKSBtYXkgYmUgY29uZmlkZW50aWFsLCBwcm9wcmll dGFyeSwgcHJpdmlsZWdlZCwgb3Igb3RoZXJ3aXNlIGV4ZW1wdCBmcm9tIGRpc2Nsb3N1cmUgdW5k ZXIgYXBwbGljYWJsZSBsYXdzLiBJdCBpcyBpbnRlbmRlZCB0byBiZSBjb252ZXllZCBvbmx5IHRv IHRoZSBkZXNpZ25hdGVkIHJlY2lwaWVudChzKS4gQW55IHVzZSwgZGlzc2VtaW5hdGlvbiwgZGlz dHJpYnV0aW9uLCBwcmludGluZywgcmV0YWluaW5nIG9yIGNvcHlpbmcgb2YgdGhpcyBlLW1haWwg KGluY2x1ZGluZyBpdHMgYXR0YWNobWVudHMpIGJ5IHVuaW50ZW5kZWQgcmVjaXBpZW50KHMpIGlz IHN0cmljdGx5IHByb2hpYml0ZWQgYW5kIG1heSBiZSB1bmxhd2Z1bC4gSWYgeW91IGFyZSBub3Qg YW4gaW50ZW5kZWQgcmVjaXBpZW50IG9mIHRoaXMgZS1tYWlsLCBvciBiZWxpZXZlIHRoYXQgeW91 IGhhdmUgcmVjZWl2ZWQgdGhpcyBlLW1haWwgaW4gZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhlIHNl bmRlciBpbW1lZGlhdGVseSAoYnkgcmVwbHlpbmcgdG8gdGhpcyBlLW1haWwpLCBkZWxldGUgYW55 IGFuZCBhbGwgY29waWVzIG9mIHRoaXMgZS1tYWlsIChpbmNsdWRpbmcgYW55IGF0dGFjaG1lbnRz KSBmcm9tIHlvdXIgc3lzdGVtLCBhbmQgZG8gbm90IGRpc2Nsb3NlIHRoZSBjb250ZW50IG9mIHRo aXMgZS1tYWlsIHRvIGFueSBvdGhlciBwZXJzb24uIFRoYW5rIHlvdSENCg==