Received: by 10.223.176.5 with SMTP id f5csp2543903wra; Sun, 28 Jan 2018 23:26:09 -0800 (PST) X-Google-Smtp-Source: AH8x2242W+I5zDXNAe/gvtRXo3CIi2crxlh3GSfd4gYFpfmOY2bMTUq87RWA9dA35GSFKddQ7KZP X-Received: by 2002:a17:902:6ec5:: with SMTP id l5-v6mr21437668pln.443.1517210769867; Sun, 28 Jan 2018 23:26:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517210769; cv=none; d=google.com; s=arc-20160816; b=Tl4t+w7ZkZUdk1MnKsRkDDNLLew/XQ3ycDgLuPgNEbvsZZvPS99hx2XzaHozDE0eHf DsT/+Vxj6FwEM9uhxtA/0yDECN01kFnSg1HInKQNX6eEZGBO57C8OBAgyJ2XYo1/+z6m PGTnxA9z2+GrloUisXpaoiQw02WT/dfaNS81Jg595CycsBR1d54W6wWT9dtnmqHTj8ps geuPrsMHlj/aAdQ+BV2NsCvT6HlEdtYfMPYz0vosSaPNnY7xsTWLJfMK+A1XCjnOXeq2 c0Fo7saluTHRMs8NthLFn231ssguRLrG09T0v5NaUO12/nDBMc8PyC/xlPdi2HS6ybwP aulw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from :arc-authentication-results; bh=/KuQOgdK+zo4Tz2p1gEDXxeF/bWl30Nd/dWyYYJNPmM=; b=rmV4EcIeg2gxJxSJiLf5biT0gMWbLd2Z4z00qZkOxmtVXN1ahvS+5jmwowHeXOJtUE QyN1AC+yM/yK+2NxJhVhd5gxyYilVpkeSZMjTBYzEUGhqOS/wONE2HRVBXHJmweHUth9 HS4ljH89usFZabRB9azE3hHrPmQqsL4KxHR1ercj4mgc00rAi8fDLTKUWZSxP4kJlApu xjCTXh3lg61rrgRYk+SH2Q1cchDIiisZLE3uQOEun5vZz+lchrjxhNBvqpUrayQVDqOs TmP7iwGA2Il2bCvPS0znJ2rVssmsWVtIolZRiu5cMJC9NK8bKJKCuKlxaijQLTBw9a0I Ftew== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m9si11155691pfh.319.2018.01.28.23.25.54; Sun, 28 Jan 2018 23:26:09 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751355AbeA2HZb (ORCPT + 99 others); Mon, 29 Jan 2018 02:25:31 -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-Greylist: delayed 319 seconds by postgrey-1.27 at vger.kernel.org; Mon, 29 Jan 2018 02:25:28 EST X-MailGates: (flag:3,DYNAMIC,RELAY,NOHOST:PASS)(compute_score:DELIVER,40 ,3) Received: from 192.168.8.21 by mg.richtek.com with MailGates ESMTP Server V3.0(22612:0:AUTH_RELAY) (envelope-from ); Mon, 29 Jan 2018 15:25:26 +0800 (CST) X-MailGates: (compute_score:DELIVER,40,3) Received: from 192.168.8.44 by mg.richtek.com with MailGates ESMTP Server V5.0(15875:0:AUTH_RELAY) (envelope-from ); Mon, 29 Jan 2018 15:19:07 +0800 (CST) Received: from ex1.rt.l (192.168.8.44) by ex1.rt.l (192.168.8.44) with Microsoft SMTP Server (TLS) id 15.0.1076.9; Mon, 29 Jan 2018 15:19:06 +0800 Received: from ex1.rt.l ([fe80::557d:30f0:a3f8:3efc]) by ex1.rt.l ([fe80::557d:30f0:a3f8:3efc%15]) with mapi id 15.00.1076.000; Mon, 29 Jan 2018 15:19:06 +0800 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-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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==