From owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org Sun Jan 12 22:55:22 2014 Return-Path: X-Original-To: sc22wg5-dom8 Delivered-To: sc22wg5-dom8@www.open-std.org Received: by www.open-std.org (Postfix, from userid 521) id D8F72356908; Sun, 12 Jan 2014 22:55:21 +0100 (CET) Delivered-To: sc22wg5@open-std.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by www.open-std.org (Postfix) with ESMTP id 9CACB356667 for ; Sun, 12 Jan 2014 22:55:16 +0100 (CET) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP; 12 Jan 2014 13:55:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.95,648,1384329600"; d="txt'?scan'208,217";a="465537687" Received: from orsmsx108.amr.corp.intel.com ([10.22.240.6]) by orsmga002.jf.intel.com with ESMTP; 12 Jan 2014 13:55:12 -0800 Received: from orsmsx151.amr.corp.intel.com (10.22.226.38) by ORSMSX108.amr.corp.intel.com (10.22.240.6) with Microsoft SMTP Server (TLS) id 14.3.123.3; Sun, 12 Jan 2014 13:55:12 -0800 Received: from orsmsx103.amr.corp.intel.com ([169.254.2.203]) by ORSMSX151.amr.corp.intel.com ([169.254.7.181]) with mapi id 14.03.0123.003; Sun, 12 Jan 2014 13:55:11 -0800 From: "Whitlock, Stan" To: WG5 CC: "Whitlock, Stan" Subject: WG5/J3 - 14-006A latest Fortran interps includes F2008 Corrigendum 3 updates Thread-Topic: WG5/J3 - 14-006A latest Fortran interps includes F2008 Corrigendum 3 updates Thread-Index: Ac8P4JMozgT+8WEhRwe0xearnQLyzA== Date: Sun, 12 Jan 2014 21:55:11 +0000 Message-ID: <4AA982B1265F43408480F737BE12F4D35F8981A2@ORSMSX103.amr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.22.254.138] Content-Type: multipart/mixed; boundary="_004_4AA982B1265F43408480F737BE12F4D35F8981A2ORSMSX103amrcor_" MIME-Version: 1.0 Sender: owner-sc22wg5@open-std.org Precedence: bulk --_004_4AA982B1265F43408480F737BE12F4D35F8981A2ORSMSX103amrcor_ Content-Type: multipart/alternative; boundary="_000_4AA982B1265F43408480F737BE12F4D35F8981A2ORSMSX103amrcor_" --_000_4AA982B1265F43408480F737BE12F4D35F8981A2ORSMSX103amrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Attached please find the latest J3 document 14-006A that contains the lates= t interpretations including updates for F2008 Corrigendum: J3/14-006 To: J3 From: Stan Whitlock Subject: Outstanding Fortran Interpretations Date: 2014 January 12 Outstanding Fortran Interpretations, January 12, 2014 Stan Whitlock for /interp > 05-015 =3D=3D closed F95 interps > 016 =3D 10-006T1-5r1 =3D=3D F03 Corrigenda 1-5 interps > 017 =3D N1823 - F03 combined corrigenda 1-5 > 021 =3D N1907 =3D=3D F08 Corrigendum 1 > 022 =3D N1902 =3D=3D F08 Corrigendum 1 interps > 023 =3D N1957 =3D=3D F08 Corrigendum 2 > 024 =3D N1959 =3D=3D F08 Corrigendum 2 interps + =3D N2002 =3D=3D F08 Corrigendum 3 + =3D N2002y=3D=3D F08 Corrigendum 3 interps > WG5 LB #6 N1987/88/90: 17 interps, 15 passed, 1 subsumed > WG5 LB #7 N1991/92/94: 8 interps passed + J3 interp answers from m202: 5 passed by J3 meeting + WG5 LB N1995/98/99 on F08 Corrigendum 3 =3D 10 J3 consideration in progress Please let me know if you find any errors. Dan - please put this on the J3 web in the meeting 203 folder. Thanks /Stan --_000_4AA982B1265F43408480F737BE12F4D35F8981A2ORSMSX103amrcor_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Attached please find the latest J3 document 14-006A = that contains the latest interpretations including updates for F2008 Corrig= endum:

 

    &= nbsp;           &nbs= p;            &= nbsp;           &nbs= p;             = J3/14-006

To: J3

From: Stan Whitlock<= /o:p>

Subject: Outstanding Fort= ran Interpretations

Date: 2014 January 12

 

    &= nbsp; Outstanding Fortran Interpretations, January 12, 2014

 

    &= nbsp;           &nbs= p; Stan Whitlock for /interp

 

> 05-015 =3D=3D closed= F95 interps

> 016 =3D 10-006T1-5r1= =3D=3D F03 Corrigenda 1-5 interps

> 017 =3D N1823 - F03 = combined corrigenda 1-5

> 021 =3D N1907 =3D=3D= F08 Corrigendum 1

> 022 =3D N1902 =3D=3D= F08 Corrigendum 1 interps

> 023 =3D N1957 =3D=3D= F08 Corrigendum 2

> 024 =3D N1959 =3D=3D= F08 Corrigendum 2 interps

+   &n= bsp; =3D N2002 =3D=3D F08 Corrigendum 3

+   &n= bsp; =3D N2002y=3D=3D F08 Corrigendum 3 interps

 

> WG5 LB #6 N1987/88/9= 0: 17 interps, 15 passed, 1 subsumed

> WG5 LB #7 N1991/92/9= 4: 8 interps passed

+ J3 interp answers f= rom m202: 5 passed by J3 meeting

+ WG5 LB N1995/98/99 = on F08 Corrigendum 3

=3D 10 J3 consideration i= n progress

 

Please let me know if you find any errors.

 

Dan – please put this on the J3 web in the meeting 203 fold= er.

 

Thanks       &nbs= p;            &= nbsp;           &nbs= p;            &= nbsp;           &nbs= p;    /Stan

--_000_4AA982B1265F43408480F737BE12F4D35F8981A2ORSMSX103amrcor_-- --_004_4AA982B1265F43408480F737BE12F4D35F8981A2ORSMSX103amrcor_ Content-Type: text/plain; name="14-006A Stan - Outstanding Fortran Interps, Jan 12, 2014 for m203.txt" Content-Description: 14-006A Stan - Outstanding Fortran Interps, Jan 12, 2014 for m203.txt Content-Disposition: attachment; filename="14-006A Stan - Outstanding Fortran Interps, Jan 12, 2014 for m203.txt"; size=184042; creation-date="Sun, 12 Jan 2014 20:29:47 GMT"; modification-date="Sun, 12 Jan 2014 21:38:17 GMT" Content-Transfer-Encoding: base64 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEoz LzE0LTAwNg0KVG86IEozDQpGcm9tOiBTdGFuIFdoaXRsb2NrDQpTdWJqZWN0OiBPdXRzdGFuZGlu ZyBGb3J0cmFuIEludGVycHJldGF0aW9ucw0KRGF0ZTogMjAxNCBKYW51YXJ5IDEyDQoNCiAgICAg IE91dHN0YW5kaW5nIEZvcnRyYW4gSW50ZXJwcmV0YXRpb25zLCBKYW51YXJ5IDEyLCAyMDE0DQoN CiAgICAgICAgICAgICAgICAgIFN0YW4gV2hpdGxvY2sgZm9yIC9pbnRlcnANCg0KPiAwNS0wMTUg PT0gY2xvc2VkIEY5NSBpbnRlcnBzDQo+IDAxNiA9IDEwLTAwNlQxLTVyMSA9PSBGMDMgQ29ycmln ZW5kYSAxLTUgaW50ZXJwcw0KPiAwMTcgPSBOMTgyMyAtIEYwMyBjb21iaW5lZCBjb3JyaWdlbmRh IDEtNQ0KPiAwMjEgPSBOMTkwNyA9PSBGMDggQ29ycmlnZW5kdW0gMQ0KPiAwMjIgPSBOMTkwMiA9 PSBGMDggQ29ycmlnZW5kdW0gMSBpbnRlcnBzDQo+IDAyMyA9IE4xOTU3ID09IEYwOCBDb3JyaWdl bmR1bSAyDQo+IDAyNCA9IE4xOTU5ID09IEYwOCBDb3JyaWdlbmR1bSAyIGludGVycHMNCisgICAg ID0gTjIwMDIgPT0gRjA4IENvcnJpZ2VuZHVtIDMNCisgICAgID0gTjIwMDJ5PT0gRjA4IENvcnJp Z2VuZHVtIDMgaW50ZXJwcw0KDQo+IFdHNSBMQiAjNiBOMTk4Ny84OC85MDogMTcgaW50ZXJwcywg MTUgcGFzc2VkLCAxIHN1YnN1bWVkDQo+IFdHNSBMQiAjNyBOMTk5MS85Mi85NDogOCBpbnRlcnBz IHBhc3NlZA0KKyBKMyBpbnRlcnAgYW5zd2VycyBmcm9tIG0yMDI6IDUgcGFzc2VkIGJ5IEozIG1l ZXRpbmcNCisgV0c1IExCIE4xOTk1Lzk4Lzk5IG9uIEYwOCBDb3JyaWdlbmR1bSAzDQo9IDEwIEoz IGNvbnNpZGVyYXRpb24gaW4gcHJvZ3Jlc3MNCg0KW2tlZXAgdGhpcyB0ZXh0IGRvY3VtZW50IHRv IDcwIGNoYXJhY3RlcnMgcGVyIGxpbmVdLi4uLi4uLi4uLi4uLi4uLi4uLg0KDQpUYWJsZSBvZiBD b250ZW50cw0KDQpQYXJ0IDAgY29udGFpbnMgdGhlIHN1bW1hcnkgc3RhdHVzIG9mIGFsbCBvZiB0 aGUgRm9ydHJhbg0KICAgICAgIGludGVycHJldGF0aW9ucw0KDQpQYXJ0IDEgY29udGFpbnMgdGhl IGludGVycHJldGF0aW9uIHByb2Nlc3NpbmcgcnVsZXMgZnJvbSAwMC0xNDINCg0KUGFydCAyIGNv bnRhaW5zIGFjdGl2ZSBGOTAvRjk1IGludGVycHJldGF0aW9uczoNCg0KICAgICAgIC0gb25seSBG OTAvMDE0NQ0KICAgICAgIC0gdGhlIEY5NSBpbnRlcnBzIG51bWJlcmVkIEY5NS8xLTMyIGFuZCA2 Ni0xMDQgYXJlIGFsbCBjbG9zZWQNCg0KUGFydCAzIGNvbnRhaW5zIGFjdGl2ZSBGMDMgaW50ZXJw cmV0YXRpb25zOiBGMDMvMDAwMS0wMTQxDQoNClBhcnQgNCBjb250YWlucyBhY3RpdmUgRjA4IGlu dGVycHJldGF0aW9uczogRjA4LzAwMDEuLi4NCg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUGFydCAwOiBTdW1t YXJ5IFN0YXR1cyBvZiB0aGVzZSBGb3J0cmFuIEludGVycHJldGF0aW9ucw0KPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KDQoNCk5vdGUgTjoNCiAgICAgZCA9PSBkb25lIHtpZiBTID0gQyogfCBUKiwgdGhlbiBkb25l IGlzIGFzc3VtZWR9DQogICAgICogPT0gYWN0aXZlDQoNClN0YXR1cyBTOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERlZmVjdCBUeXBlIFQ6DQogICAgICAgUCA9PSBKMyBjb25zaWRlcmF0 aW9uIGluIHByb2dyZXNzICAgICAgICAgICBDID09IENsYXJpZmljYXRpb24NCiAgICAgICBNICAg IFBhc3NlZCBieSBKMyBtZWV0aW5nICAgICAgICAgICAgICAgICAgIEUgICAgRXJyYXR1bQ0KICAg ICAgIEIgICAgUGFzc2VkIGJ5IEozIGxldHRlciBiYWxsb3QgICAgICAgICAgICAgSSAgICBJbnRl cnByZXRhdGlvbg0KICAgICAgIFcgICAgUGFzc2VkIGJ5IFdHNSBiYWxsb3QNCiAgICAgICBYICAg IEV4Y2x1ZGVkIGZvciB0aGUgcmVhc29ucyBnaXZlbg0KICAgICAgIEMxICAgSW4gRjIwMDggQ29y cmlnZW5kdW0gMQ0KICAgICAgIEMyICAgSW4gRjIwMDggQ29ycmlnZW5kdW0gMg0KICAgICAgIEMz ICAgSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQpOICBTIFQgbnVtYmVyICAgICB0aXRsZQ0KLSAg LSAtIC0tLS0tLSAgICAgLS0tLS0NCg0KDQoqICBQIEUgRjkwLzAxNDUgICBFeHByZXNzaW9ucyBp biA8dHlwZS1zcGVjPiBvZiBhIEZVTkNUSU9OIHN0YXRlbWVudA0KLS0tLS0tDQpkIEMyIEkgRjAz LzAwMTcgICBEdW1teSBwcm9jZWR1cmUgcG9pbnRlcnMgYW5kIFBSRVNFTlQNCmQgQzIgQyBGMDMv MDAxOCAgIE11bHRpcGxlIGlkZW50aWNhbCBzcGVjaWZpYyBwcm9jZWR1cmVzIGluDQogICAgICAg ICAgICAgICAgICAgdHlwZS1ib3VuZCBnZW5lcmljIGludGVyZmFjZXMNCmQgQzIgRSBGMDMvMDAx OSAgIE11bHRpcGxlIGlkZW50aWNhbCBzcGVjaWZpYyBwcm9jZWR1cmVzIGluDQogICAgICAgICAg ICAgICAgICAgZ2VuZXJpYyBpbnRlcmZhY2UgYmxvY2tzDQpkIEMyIEUgRjAzLzAwMjEgICBXaGF0 IGtpbmQgb2YgdG9rZW4gaXMgYSBzdG9wIGNvZGU/DQpkIEMzIEUgRjAzLzAwMzAgICBJRUVFIGRp dmlkZSBieSB6ZXJvDQoqICBQIEUgRjAzLzAwNDIgICBJRUVFIGZ1bm55IHZhbHVlcyBhbmQgU3Rh bmRhcmQgcmVhbCBnZW5lcmljDQogICAgICAgICAgICAgICAgICAgIGludHJpbnNpYyBwcm9jZWR1 cmVzDQpkIEMyIEMgRjAzLzAwNDYgICBVbmxpbWl0ZWQgcG9seW1vcnBoaWMgcG9pbnRlcnMgaW4N CiAgICAgICAgICAgICAgICAgICBjb21tb24gYmxvY2tzDQpkIEMzIEkgRjAzLzAwNDcgICBQb2x5 bW9ycGhpYyBhcmd1bWVudHMgdG8gaW50cmluc2ljDQogICAgICAgICAgICAgICAgICAgcHJvY2Vk dXJlcw0KZCBDMSBFIEYwMy8wMDQ4ICAgQ29udHJvbCBlZGl0IGRlc2NyaXB0b3JzIGluIFVERFRJ Tw0KKiAgUCBJIEYwMy8wMDUxICAgUmVwZWF0IHNwZWNpZmllcnMgYW5kIFVERFRJTw0KZCBDMyBF IEYwMy8wMDUzICAgVGhlIEJJTkQgYXR0cmlidXRlIGZvciBDX1BUUiBhbmQgQ19GVU5QVFINCiog IFAgRSBGMDMvMDA1OSAgIFN0cnVjdHVyZSBjb21wb25lbnRzIGluIG5hbWVsaXN0IGlucHV0DQpk IEMzIEUgRjAzLzAwNjQgICBSZWN1cnNpdmUgZGVjbGFyYXRpb24gb2YgcHJvY2VkdXJlIGludGVy ZmFjZXMNCmQgQzIgSSBGMDMvMDA2NSAgIFJlbGF0aW9uYWwgZXF1aXZhbGVuY2UNCiogIFAgSSBG MDMvMDA4NCAgIElFRUVfU0VUX1JPVU5ESU5HX01PREUgaW4gYSBzdWJyb3V0aW5lDQpkIEMxIEUg RjAzLzAwODUgICBGaW5hbGl6aW5nIHRhcmdldHMgb2YgcG9pbnRlciBvciBhbGxvY2F0YWJsZQ0K ZCBDMSBJIEYwMy8wMDkxICAgQXJyYXkgY29tcG9uZW50cyBjYW5ub3QgZGVwZW5kIG9uIGxlbmd0 aCB0eXBlDQogICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycw0KZCBDMiBFIEYwMy8wMDk2ICAg Q2FuIGEgcmVhZCBzdGF0ZW1lbnQgY2hhbmdlIHRoZSB1bml0IHZhbHVlPw0KZCBDMyBFIEYwMy8w MTAwICAgRXJyb3IgaW4gZmllbGQgd2lkdGggZm9yIHNwZWNpYWwgY2FzZXMgb2Ygc2lnbmVkDQog ICAgICAgICAgICAgICAgICAgSU5GSU5JVFkgb3V0cHV0DQpkIEMyIEUgRjAzLzAxMDMgICBSZXN0 cmljdGlvbnMgb24gZHVtbXkgYXJndW1lbnRzIG5vdCBwcmVzZW50IGZvcg0KICAgICAgICAgICAg ICAgICAgIHBvbHltb3JwaGljIHR5cGUgb3IgcGFyYW1ldGVyaXplZCBkZXJpdmVkIHR5cGUNCmQg QzEgSSBGMDMvMDEwNSAgIFNJWkU9IHNwZWNpZmllciBhbmQgVUREVElPDQpkIEMxIEkgRjAzLzAx MTAgICBSZXN0b3JpbmcgZHJvcHBlZCByZXN0cmljdGlvbiBvbiBFTlRSWQ0KZCBDMiBJIEYwMy8w MTE2ICAgaW5kaXN0aW5ndWlzaGFibGUgc3BlY2lmaWNzIGZvciBhIGdlbmVyaWMNCiAgICAgICAg ICAgICAgICAgICBpbnRlcmZhY2Ugd2l0aCB1c2UgYXNzb2NpYXRpb24NCmQgQzIgRSBGMDMvMDEx OCAgIEFyZSBsb3dlciBib3VuZHMgb2YgYXNzdW1lZC1zaGFwZSBhcnJheXMgYXNzdW1lZD8NCmQg QzIgRSBGMDMvMDEyMCAgIFdoZW4gYXJlIHBhcmFtZXRlcml6ZWQgc2VxdWVuY2UgdHlwZXMgdGhl IHNhbWUNCiAgICAgICAgICAgICAgICAgICB0eXBlPw0KKiAgUCBDIEYwMy8wMTIxICAgUHJlY2lz ZSBGUCBzZW1hbnRpY3Mgb2YgdGhlIFJFQUwgaW50cmluc2ljDQpkIEMxIEkgRjAzLzAxMjMgICBJ bXBsaWNpdCB0eXBpbmcgaW4gZGVyaXZlZCB0eXBlcw0KZCBDMSBFIEYwMy8wMTI0ICAgZGVmaW5p dGlvbiBpcyBwb29ybHkgZGVmaW5lZA0KZCBDMSBJIEYwMy8wMTI4ICAgU3Vib2JqZWN0cyBpbiBu YW1lbGlzdCBvdXRwdXQNCmQgQzMgRSBGMDMvMDEzOSAgIEZ1bmN0aW9ucyByZXR1cm5pbmcgcHJv Y2VkdXJlIHBvaW50ZXJzDQotLS0tLS0NCmQgQzEgRSBGMDgvMDAwMSAgIEdlbmVyaWMgcmVzb2x1 dGlvbiB3aXRoIHBvaW50ZXIgZHVtbXkgYXJndW1lbnRzDQpkIEMxIEUgRjA4LzAwMDIgICBBcmUg YXNzdW1lZC0gb3IgZGVmZXJyZWQtc2hhcGUgb2JqZWN0cyBhbGxvd2VkIGluDQogICAgICAgICAg ICAgICAgICAgbmFtZWxpc3Q/DQpkIEMxIEUgRjA4LzAwMDMgICBJcyBhIGRpc2Fzc29jaWF0ZWQg cG9pbnRlciBhbGxvd2VkIGFzIGFuIGFjdHVhbA0KICAgICAgICAgICAgICAgICAgIERJTSBhcmd1 bWVudD8NCmQgQzIgRSBGMDgvMDAwNCAgIElzIFRBUkdFVCBhcmd1bWVudCBvZiBBU1NPQ0lBVEVE IGEgcG9pbnRlciBvcg0KICAgICAgICAgICAgICAgICAgIG5vbnBvaW50ZXIgZHVtbXk/DQpkIEMx IEUgRjA4LzAwMDUqICBvcHRpb25hbCBhcmd1bWVudHMgYW5kIEFTU09DSUFURUQgLSBzdWJzdW1l ZCBieQ0KICAgICAgICAgICAgICAgICAgIEYwOC8wMDA0DQpkIEMxIEkgRjA4LzAwMDYgICBnZW5l cmljIHJlc29sdXRpb24gd2l0aCBiYW5uZWQgYXJndW1lbnQNCiAgICAgICAgICAgICAgICAgICBj b21iaW5hdGlvbnMNCmQgQzEgSSBGMDgvMDAwNyAgIENhbiB6ZXJvIGhhdmUgbW9yZSB0aGFuIG9u ZSBiaXQgc2VxdWVuY2UNCiAgICAgICAgICAgICAgICAgICByZXByZXNlbnRhdGlvbj8NCmQgQzIg SSBGMDgvMDAwOCAgIElFRUUgZXhjZXB0aW9ucyBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucw0KZCBD MSBJIEYwOC8wMDA5ICAgSXMgQUJTIGV2ZXIgcmVxdWlyZWQgdG8gYmUgdGhlIG9wdGlvbmFsIElF Qw0KICAgICAgICAgICAgICAgICAgIDYwNTU5IGFicz8NCmQgQzEgRSBGMDgvMDAxMCAgIGRlYWxs b2NhdGluZyBvYmplY3RzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aA0KICAgICAgICAgICAgICAg ICAgIG90aGVyIG9iamVjdHMNCmQgQzEgRSBGMDgvMDAxMSAgIEhvdyBtYW55IHRpbWVzIGFyZSBj b25zdHJ1Y3RlZCB2YWx1ZXMgZmluYWxpemVkPw0KZCBDMSBFIEYwOC8wMDEyKiAgQXJlIGNvbnN0 YW50cyBmaW5hbGl6ZWQ/IC0gc3Vic3VtZWQgYnkgRjA4LzAwMTENCmQgQzEgRSBGMDgvMDAxMyAg IEhvdyBkb2VzIGZpbmFsaXphdGlvbiBpbnRlcmFjdCB3aXRoIGFsbG9jYXRhYmxlDQogICAgICAg ICAgICAgICAgICAgYXNzaWdubWVudD8NCmQgQzEgRSBGMDgvMDAxNCAgIEZpbmFsaXppbmcgYXNz aWdubWVudCB0byB2ZWN0b3Itc3Vic2NyaXB0ZWQNCiAgICAgICAgICAgICAgICAgICBvYmplY3QN CmQgQzEgRSBGMDgvMDAxNSAgIElNUExJQ0lUDQpkIEMxIEUgRjA4LzAwMTYgICBDYW4gYSB2ZWN0 b3Itc3Vic2NyaXB0ZWQgYXJndW1lbnQgYmVjb21lIHVuZGVmaW5lZD8NCmQgQzEgRSBGMDgvMDAx NyAgIEVsZW1lbnRhbCBzdWJyb3V0aW5lIHJlc3RyaWN0aW9ucw0KZCBDMSBFIEYwOC8wMDE4ICAg SW1wdXJlIGVsZW1lbnRhbCByZXN0cmljdGlvbnMNCmQgQzEgRSBGMDgvMDAxOSAgIFRyYW5zZm9y bWF0aW9uYWwgQmVzc2VsIGZ1bmN0aW9ucw0KZCBDMSBFIEYwOC8wMDIwICAgRklORExPQyBhbmQg bG9naWNhbCBhcmd1bWVudHMNCmQgQzEgRSBGMDgvMDAyMSAgIFNUT1JBR0VfU0laRSBhbmQgdW5s aW1pdGVkIHBvbHltb3JwaGljDQpkIEMxIEUgRjA4LzAwMjIgICBETyBDT05DVVJSRU5UIGFuZCBm aWxlIGkvbw0KZCBDMSBFIEYwOC8wMDIzICAgRE8gQ09OQ1VSUkVOVCBhbmQgUE9JTlRFUg0KZCBD MSBFIEYwOC8wMDI0ICAgRHVtbXkgYXJndW1lbnRzIG9mIGltcHVyZSBlbGVtZW50YWwgcHJvY2Vk dXJlcw0KZCBDMSBFIEYwOC8wMDI1ICAgRE8gQ09OQ1VSUkVOVCBhbmQgQUxMT0NBVEFCTEUNCmQg QzEgRSBGMDgvMDAyNiAgIERPIENPTkNVUlJFTlQgYW5kIG91dHB1dCBpbnRlcmxlYXZpbmcNCmQg QzEgRSBGMDgvMDAyNyAgIEFUT01JQ19SRUYgZXhhbXBsZQ0KZCBDMSBFIEYwOC8wMDI4ICAgRG9l cyBhIHByb2NlZHVyZSByZWZlcmVuY2UgY2F1c2UgbG9vcCB0ZXJtaW5hdGlvbj8NCiogIFAgRSBG MDgvMDAyOSAgIEcwIGVkaXQgZGVzY3JpcHRvciBhbmQgZmxvYXRpbmctcG9pbnQgb3V0cHV0DQpk IEMxIEUgRjA4LzAwMzAgICBVbmxpbWl0ZWQgZm9ybWF0IHJlcGVhdCBlZmZlY3RzDQpkIEMyIEUg RjA4LzAwMzEgICBQVVJFIElOVEVOVChPVVQpIGZpbmFsaXphdGlvbg0KZCBDMiBFIEYwOC8wMDMy ICAgUFVSRSBGVU5DVElPTiByZXN1bHQgZmluYWxpemF0aW9uDQpkIEMxIEUgRjA4LzAwMzMgICBQ VVJFIHBvbHltb3JwaGljIGZpbmFsaXphdGlvbg0KZCBDMSBFIEYwOC8wMDM0ICAgRUxFTUVOVEFM IElOVEVOVChPVVQpIGZpbmFsaXphdGlvbg0KZCBDMSBJIEYwOC8wMDM1ICAgTWF4aW11bSB2YWx1 ZSBmb3IgU0hJRlQgYXJndW1lbnQgdG8gU0hJRlRMDQogICAgICAgICAgICAgICAgICAgYW5kIFNI SUZUUg0KZCBDMSBFIEYwOC8wMDM2ICAgTk9STTIgZXhhbXBsZSBpbiBBbm5leCBDDQpkIEMxIEUg RjA4LzAwMzcgICBQUk9DRURVUkUgUE9JTlRFUiB2cyBQUk9URUNURUQNCmQgQzIgQyBGMDgvMDAz OCAgIEFyZSBwb2ludGxlc3MgcmVzdHJpY3Rpb25zIG9uIERJTSBhcmd1bWVudHMNCiAgICAgICAg ICAgICAgICAgICBpbnRlbmRlZD8NCmQgQzEgRSBGMDgvMDAzOSAgIE1hbnktb25lIHZlY3RvciBz dWJzY3JpcHQgdXNhZ2UNCmQgQzIgRSBGMDgvMDA0MCAgIE1PVkVfQUxMT0MgZm9yIGNvYXJyYXlz DQoqICBQIEUgRjA4LzAwNDEgICBTZWdtZW50IG9yZGVyaW5nIHJ1bGVzDQpkIEMyIEUgRjA4LzAw NDIgICBTT1VSQ0U9IHF1ZXN0aW9ucw0KZCBDMiBFIEYwOC8wMDQzICAgRXhlY3V0aW5nIGEgdHlw ZS1ib3VuZCBwcm9jZWR1cmUgb24gYSBjb2luZGV4ZWQNCiAgICAgICAgICAgICAgICAgICBvYmpl Y3QNCmQgQzEgSSBGMDgvMDA0NCAgIFJlc29sdmluZyB0aGUgdHlwZSBvZiBhIGNvYXJyYXkgb3Ig Y29pbmRleGVkIG9iamVjdA0KKiAgUCBFIEYwOC8wMDQ1ICAgY29uc3RyYWludHMgb24gZW50aXRp ZXMgb2YgdHlwZSBMT0NLX1RZUEUNCmQgQzEgRSBGMDgvMDA0NiAgIFZBTFVFIGF0dHJpYnV0ZSBy ZXN0cmljdGlvbnMNCmQgQzEgSSBGMDgvMDA0NyAgIHB1YmxpYyBnZW5lcmljIHdpdGggc2FtZSBu YW1lIGFzIHByaXZhdGUgdHlwZQ0KZCBDMiBFIEYwOC8wMDQ4ICAgU2VxdWVuY2UgYXNzb2NpYXRp b24gZm9yIGNvYXJyYXlzDQpkIEMxIEUgRjA4LzAwNDkgICBFTEVNRU5UQUwgZnVuY3Rpb25zIHdp dGggbm9uY29uc3RhbnQgdHlwZSBwYXJhbWV0ZXJzDQpkIEMxIEUgRjA4LzAwNTAgICBPcmRlcmlu ZyByZXF1aXJlbWVudHMgb24gZGVmaW5pdGlvbiBvZiBzcGVjaWZpY2F0aW9uDQogICAgICAgICAg ICAgICAgICAgZnVuY3Rpb25zDQpkIEMxIEUgRjA4LzAwNTEgICBQdXJlIHByb2NlZHVyZSBhcmd1 bWVudHMgd2l0aCBWQUxVRQ0KZCBDMSBFIEYwOC8wMDUyICAgUHJpdmF0ZSB0eXBlLWJvdW5kIHBy b2NlZHVyZXMNCmQgQzEgRSBGMDgvMDA1MyAgIFJlc3RyaWN0aW9ucyBvbiBnZW5lcmljIGRlY2xh cmF0aW9ucywgZ2VuZXJpYw0KICAgICAgICAgICAgICAgICAgIHJlc29sdXRpb24NCmQgQzIgRSBG MDgvMDA1NCAgIFJlcXVpcmVtZW50cyBmb3IgbmVlZGluZyBhbiBleHBsaWNpdCBpbnRlcmZhY2UN CmQgQzIgRSBGMDgvMDA1NSAgIEcgZWRpdGluZyBmb3IgcmVhbHMNCmQgQzIgRSBGMDgvMDA1NiAg IE5vbi1wb2x5bW9ycGhpYyBBTExPQ0FURSB3aXRoIHBvbHltb3JwaGljIFNPVVJDRT0NCmQgQzIg RSBGMDgvMDA1NyAgIEludGVyb3BlcmFiaWxpdHkgd2l0aCBlbXB0eSB0eXBlcw0KZCBDMiBFIEYw OC8wMDU4ICAgRU5UUlkgcG9pbnQgUkVTVUxUIHZhcmlhYmxlDQpkIEMyIEUgRjA4LzAwNTkgICBB dXRvLXRhcmdldHRpbmcgcmVxdWlyZW1lbnRzDQpkIEMyIEUgRjA4LzAwNjAgICBQcm9jZWR1cmUg cG9pbnRlciBhc3NpZ25tZW50IHdpdGggYW4gRVhURVJOQUwgdGFyZ2V0DQpkIEMyIEUgRjA4LzAw NjEgICBEZXNjcmlwdGlvbiBvZiB0aGUgQ09OVElHVU9VUyBhdHRyaWJ1dGUgbWlzd29yZGVkPw0K ZCBDMiBDIEYwOC8wMDYyICAgTWl4aW5nIGRlZmF1bHQgaW5pdGlhbGl6YXRpb24gd2l0aCBEQVRB DQogICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24NCmQgQzIgSSBGMDgvMDA2MyAgIEcg ZWRpdGluZyB0byBhIG5hcnJvdyBvdXRwdXQgZmllbGQNCmQgQzIgRSBGMDgvMDA2NCAgIFNUQVRV UyBvZiBHRVRfRU5WSVJPTk1FTlRfVkFSSUFCTEUNCmQgQzIgRSBGMDgvMDA2NSAgIFNob3VsZCBj ZXJ0YWluIHByb2NlZHVyZXMgaW4gaW50cmluc2ljIG1vZHVsZXMgYmUNCiAgICAgICAgICAgICAg ICAgICBwdXJlPw0KZCBDMiBFIEYwOC8wMDY2ICAgQXJlIGNlcnRhaW4gZXhwcmVzc2lvbnMgd2l0 aCBwb2ludGVyIGluaXRpYWxpemF0aW9uDQogICAgICAgICAgICAgICAgICAgY29uc3RhbnQ/DQpk IEMyIEUgRjA4LzAwNjcgICBQYXNzaW5nIGFycmF5cyBvZiBleHRlbmRlZCB0eXBlIG9iamVjdHMN CmQgQzIgRSBGMDgvMDA2OCAgIFBvaW50ZXIgYXNzb2NpYXRpb24gYW5kIGV4dGVuZGVkIHR5cGUg YXJyYXlzDQpkIEMyIEUgRjA4LzAwNjkgICBXaGljaCBwYXJ0IG9mIGFuIGVmZmVjdGl2ZSBhcmd1 bWVudCBiZWNvbWVzDQogICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkPw0KZCBDMiBFIEYwOC8w MDcwICAgRmluYWxpemF0aW9uIG9mIElOVEVOVChPVVQpIGFyZ3VtZW50cw0KZCBDMyBFIEYwOC8w MDcxICAgVmVjdG9yIHN1YnNjcmlwdCB0YXJnZXQNCmQgQzIgRSBGMDgvMDA3MiAgIEZpbmFsIHN1 YnJvdXRpbmVzIHdpdGggY29yYW5rDQpkIEMyIEUgRjA4LzAwNzMgICBQb2x5bW9ycGhpYyBhdXRv LXRhcmdldHRpbmcNCmQgQzIgRSBGMDgvMDA3NCAgIEltcGxpY2l0IHR5cGUgaW4gQkxPQ0sgY29u c3RydWN0DQpkIEMzIEUgRjA4LzAwNzUgICBQb2ludGVyIGZ1bmN0aW9uIHJlZmVyZW5jZSBhcyB2 YXJpYWJsZSBpbiBhc3NpZ25tZW50DQpkIEMzIEUgRjA4LzAwNzYqICBQb2ludGVyIGZ1bmN0aW9u IHJlZmVyZW5jZSBpbiBSRUFEDQogICAgICAgICAgICAgICAgICAgU3Vic3VtZWQgYnkgRjA3LzAw NzUgPT0gVw0KZCBDMiBFIEYwOC8wMDc3ICAgRnVuY3Rpb24gcmVmZXJlbmNlcyBhcyB2YXJpYWJs ZXMgaW4gREFUQSBzdGF0ZW1lbnRzDQpkIEMyIEUgRjA4LzAwNzggICBBcmUgdGhlIElFRUUgdmFs dWVzICswIGFuZCAtMCBkaXN0aW5ndWlzaGVkDQpkIEMyIEUgRjA4LzAwNzkgICBOQU1FTElTVCBh bmQgdHlwZSBzcGVjaWZpY2F0aW9uDQpkIEMyIEUgRjA4LzAwODAgICBBcnJheSBjb25zdHJ1Y3Rv cnMgd2l0aCBwb2x5bW9ycGhpYyB2YWx1ZXMNCmQgQzIgRSBGMDgvMDA4MSAgIERlYWxsb2NhdGlv biBlcnJvciBoYW5kbGluZw0KZCBDMiBFIEYwOC8wMDgyICAgR2VuZXJpYyBpZGVudGlmaWVyIGFu ZCBkdHYgYXJndW1lbnRzDQpkIEMzIEUgRjA4LzAwODMgICBUeXBlIHBhcmFtZXRlciBkZWZhdWx0 IGV4cHJlc3Npb25zIGFsbG93IGNpcmN1bGFyDQogICAgICAgICAgICAgICAgICAgZGVwZW5kZW5j ZQ0KZCBDMyBFIEYwOC8wMDg0ICAgUG9pbnRlciBhcmd1bWVudHMgdG8gUFVSRSBmdW5jdGlvbnMN CmQgQzMgRSBGMDgvMDA4NSAgIFByb2JsZW1zIHdpdGggUEFSQU1FVEVScw0KZCBDMyBFIEYwOC8w MDg2ICAgSW1wbGllZC1zaGFwZSBhbmQgc2VwYXJhdGUgUEFSQU1FVEVSIHN0YXRlbWVudA0KZCBD MyBFIEYwOC8wMDg3ICAgTWl4ZWQta2luZCBjaGFyYWN0ZXIgYXNzaWdubWVudA0KZCBDMyBFIEYw OC8wMDg4ICAgQ2FuIEFMTE9DQVRFIHdpdGggU09VUkNFPSBoYXZlIHNpZGUtZWZmZWN0cyBpbiBh DQogICAgICAgICAgICAgICAgICAgUFVSRSBwcm9jPw0KKiAgUCBFIEYwOC8wMDg5ICAgVmFyaWFi bGUtZGVub3RpbmcgZnVuY3Rpb25zIGNoYW5nZSBleGlzdGluZw0KICAgICAgICAgICAgICAgICAg IHNlbWFudGljcw0KZCBDMyBFIEYwOC8wMDkwICAgV2hhdCByZXN0cmljdGlvbnMgYXBwbHkgdG8g aW5pdGlhbGl6YXRpb24gYW5kDQogICAgICAgICAgICAgICAgICAgUEFSQU1FVEVSPw0KZCBDMyBF IEYwOC8wMDkxICAgRGVyaXZlZCB0eXBlIHdpdGggbm8gY29tcG9uZW50cw0KZCBDMyBFIEYwOC8w MDkyICAgRGVyaXZlZCB0eXBlIHBhcmFtZXRlciByZXF1aXJlbWVudHMNCmQgQzMgRSBGMDgvMDA5 MyAgIFByb2Nlc3MgZXhpdCBzdGF0dXMgYW5kIGVycm9yIHRlcm1pbmF0aW9uDQpkIEMzIEUgRjA4 LzAwOTQgICBQcm9jZWR1cmUgc3RhdGVtZW50IGFuZCBkb3VibGUgY29sb24NCmQgQzMgRSBGMDgv MDA5NSAgIElzIFBSRVNFTlQgYWxsb3dlZCBpbiBzcGVjaWZpY2F0aW9uIGFuZCBjb25zdGFudA0K ICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9ucw0KZCBDMyBFIEYwOC8wMDk2ICAgSXMgVkFM VUUgcGVybWl0dGVkIGZvciBhbiBhcnJheSBpbiBhIEJJTkQoQykNCiAgICAgICAgICAgICAgICAg ICAgcHJvY2VkdXJlPw0KZCBDMyBFIEYwOC8wMDk3ICAgSXMgdGhlIG9wdGlvbmFsIGNvbW1hIGFs bG93ZWQgaW4NCiAgICAgICAgICAgICAgICAgICAgVFlQRShDSEFSQUNURVIqLi4uKT8NCmQgQzMg RSBGMDgvMDA5OCAgIEhvdyBtYW55IEFDUVVJUkVEX0xPQ0s9IHNwZWNpZmllcnMgYXJlIGFsbG93 ZWQgaW4gYQ0KICAgICAgICAgICAgICAgICAgICBMT0NLIHN0bXQ/DQoqICBNIEkgRjA4LzAwOTkg ICBWT0xBVElMRSBpbiBzcGVjaWZpY2F0aW9uIGV4cHJlc3Npb25zDQoqICBNIEUgRjA4LzAxMDAg ICBJTVBPUlQgc3RhdGVtZW50IGFuZCBwcmlvciBleHBsaWNpdCBkZWNsYXJhdGlvbg0KKiAgTSBF IEYwOC8wMTAxICAgTkFNRUxJU1QgYW5kIG11bHRpcGxlIG9jY3VycmVuY2VzIG9mIGEgdmFyaWFi bGUNCiogIE0gRSBGMDgvMDEwMiAgIE1FUkdFIGFuZCBwb2x5bW9ycGhpc20NCiogIE0gRSBGMDgv MDEwMyAgIFBvaW50ZXJzIHRvIGludGVybmFsIHByb2NlZHVyZXMgd2l0aCBkaWZmZXJlbnQgaG9z dA0KICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZXMNCg0KPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUGFydCAx OiBJbnRlcnByZXRhdGlvbiBQcm9jZXNzaW5nIFJ1bGVzDQo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCjAuIEFs bCBpbnRlcnByZXRhdGlvbnMgYXJlIGxpc3RlZCBpbiBKMyBzdGFuZGluZyBkb2N1bWVudCAwMDYu DQoNCjEuIEludGVycHJldGF0aW9ucyBhcmUgcHJvY2Vzc2VkIGJ5IHRoZSBKMy9pbnRlcnAgZ3Jv dXAgYW5kIGdpdmVuIGENCiAgIG51bWJlci4gIFRoZSBpbnRlcnByZXRhdGlvbiBpcyBtYXJrZWQg IkozIGNvbnNpZGVyYXRpb24gaW4NCiAgIHByb2dyZXNzIi4gIEFuIGFuc3dlciBpcyBmb3JtdWxh dGVkIGFuZCBwcmVzZW50ZWQgdG8gSjMgaW4gYQ0KICAgbWVldGluZyBwYXBlci4NCg0KMi4gSjMg dm90ZXMgb24gdGhlIGFuc3dlciBhdCBhIEozIG1lZXRpbmc7IGEgc2ltcGxlIG1ham9yaXR5IHZv dGUNCiAgIG1hcmtzIHRoZSBhbnN3ZXIgYXMgInBhc3NlZCBieSBKMyBtZWV0aW5nIi4NCg0KMy4g QmV0d2VlbiBKMyBtZWV0aW5ncyB0aGUgY2hhaXIgb2YgL2ludGVycCBzZW5kcyBhIEozIGxldHRl ciBiYWxsb3QNCiAgIHRvIEozIHRvIGFwcHJvdmUgaW50ZXJwIGFuc3dlcnMgdGhhdCBoYXZlIGJl ZW4gInBhc3NlZCBieSBKMw0KICAgbWVldGluZyIuICBUaGUgbGV0dGVyIGJhbGxvdCBydW5zIGZv ciAzMCBkYXlzLiAgTm90IHZvdGluZyBvbg0KICAgdGhyZWUgb2YgZm91ciBjb25zZWN1dGl2ZSBK MyBsZXR0ZXIgYmFsbG90cyBpcyBncm91bmRzIHRvDQogICB0ZXJtaW5hdGUgSjMgbWVtYmVyc2hp cC4gIEFuIGludGVycCBhbnN3ZXIgcGFzc2VzIGJ5IGEgMi8zcmRzDQogICB2b3RlOyBhIG5vIHZv dGUgbXVzdCBiZSBhY2NvbXBhbmllZCBieSBhbiBleHBsYW5hdGlvbiBvZiB0aGUNCiAgIGNoYW5n ZXMgbmVjZXNzYXJ5IHRvIGNoYW5nZSB0aGUgbWVtYmVyJ3Mgdm90ZSB0byB5ZXMuDQoNCiAgIEoz L2ludGVycCByZXNlcnZlcyB0aGUgcmlnaHQgdG8gcmVjYWxsIGFuIGludGVycCBhbnN3ZXIgZm9y IG1vcmUNCiAgIHN0dWR5IGV2ZW4gaWYgdGhlIGFuc3dlciBwYXNzZXMuDQoNCjQuIFRoZSBjaGFp ciBvZiBKMy9pbnRlcnAgZ2F0aGVycyBhbGwgaW50ZXJwIGFuc3dlcnMgdGhhdCBhcmUgbWFya2Vk DQogICAicGFzc2VkIGJ5IEozIGxldHRlciBiYWxsb3QiIGFuZCBmb3J3YXJkcyB0aGVtIHRvIHRo ZSBXRzUNCiAgIGNvbnZlbm9yLiAgVGhlIFdHNSBjb252ZW5vciBob2xkcyBhIGJhbGxvdCBvZiBp bmRpdmlkdWFsIG1lbWJlcnM7DQogICBhIG5vIHZvdGUgbXVzdCBiZSBhY2NvbXBhbmllZCBieSBh biBleHBsYW5hdGlvbiBvZiB0aGUgY2hhbmdlcw0KICAgbmVjZXNzYXJ5IHRvIGNoYW5nZSB0aGUg bWVtYmVyJ3Mgdm90ZSB0byB5ZXMuICBUaGUgYW5zd2VycyB0aGF0DQogICBwYXNzIHRoaXMgYmFs bG90IGJlY29tZSAiV0c1IGFwcHJvdmVkIi4NCg0KICAgSjMvaW50ZXJwIHJlc2VydmVzIHRoZSBy aWdodCB0byByZWNhbGwgYW4gaW50ZXJwIGFuc3dlciBmb3IgbW9yZQ0KICAgc3R1ZHkgZXZlbiBp ZiB0aGUgYW5zd2VyIHBhc3Nlcy4NCg0KNS4gIldHNSBhcHByb3ZlZCIgYW5zd2VycyBhcmUgcHJv Y2Vzc2VkIGludG8gYSBjb3JyaWdlbmR1bSBkb2N1bWVudA0KICAgYnkgdGFraW5nIHRoZSBlZGl0 cyBmcm9tIHRoZSBpbnRlcnAgYW5zd2VycyBhbmQgcHV0dGluZyB0aGVtIGluDQogICB0aGUgZm9y bWF0IHJlcXVpcmVkIGJ5IElTTy4gIEEgV0c1IHZvdGUgaXMgbWFkZSBvbiBmb3J3YXJkaW5nIHRo ZQ0KICAgY29ycmlnZW5kdW0gdG8gU0MyMi4gIEludGVycHMgc28gZm9yd2FyZGVkIGFyZSBtYXJr ZWQNCiAgICJDb3JyaWdlbmR1bSIuDQoNCjYuIEozL2ludGVycCBjcmVhdGVzIGEgZWRpdCBmb3Ig dGhlIG5leHQgRm9ydHJhbiBTdGFuZGFyZCBpZiBvbmUgaXMNCiAgIG5lZWRlZCBmb3IgYWxsIGlu dGVycHMgbWFya2VkICJDb3JyaWdlbmR1bSIuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KUGFydCAyOiBBY3RpdmUgRjkwL0Y5NSBpbnRlcnByZXRhdGlvbnMNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEY5MC8wMTQ1DQpUSVRMRTogRXhwcmVzc2lv bnMgaW4gPHR5cGUtc3BlYz4gb2YgYSBGVU5DVElPTiBzdGF0ZW1lbnQNCktFWVdPUkRTOiBleHBy ZXNzaW9uIC0gc3BlY2lmaWNhdGlvbiwgZXhwcmVzc2lvbiAtIGluaXRpYWxpemF0aW9uLA0KICAg ICAgICAgIEZVTkNUSU9OIHN0YXRlbWVudCwgaG9zdCBhc3NvY2lhdGlvbiwgdXNlIGFzc29jaWF0 aW9uDQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBKMyBjb25zaWRlcmF0aW9uIGluIHBy b2dyZXNzDQoNClFVRVNUSU9OOg0KDQpUaGUgc3ludGF4IHJ1bGUgUjEyMTcgc2hvd3MgdGhhdCB0 aGUgdHlwZSBhbmQgdHlwZSBwYXJhbWV0ZXJzIG9mIGENCmZ1bmN0aW9uIGNhbiBiZSBzcGVjaWZp ZWQgaW4gdGhlIEZVTkNUSU9OIHN0YXRlbWVudCAoMTIuNS4yLjIpLg0KDQooYSkgSWYgYSA8dHlw ZS1zcGVjPiBhcHBlYXJzIGluIGEgRlVOQ1RJT04gc3RhdGVtZW50LCBjYW4gdGhlDQppbml0aWFs aXphdGlvbiBhbmQgc3BlY2lmaWNhdGlvbiBleHByZXNzaW9ucyBvZiB0aGF0IDx0eXBlLXNwZWM+ DQppbnZvbHZlIG5hbWVzIG9mIGVudGl0aWVzIHRoYXQgYXJlIGRlY2xhcmVkIHdpdGhpbiB0aGUg ZnVuY3Rpb24gb3INCmFyZSBhY2Nlc3NpYmxlIHRoZXJlIGJ5IGhvc3Qgb3IgdXNlIGFzc29jaWF0 aW9uPw0KDQooYikgU2VjdGlvbiA1LjEgc3RhdGVzOg0KDQogICAgICAiVGhlIDxzcGVjaWZpY2F0 aW9uLWV4cHI+ICg3LjEuNi4yKSBvZiBhIDx0eXBlLXBhcmFtLXZhbHVlPg0KICAgICAgICg1LjEu MS41KSBvciBhbiA8YXJyYXktc3BlYz4gKDUuMS4yLjQpIG1heSBiZSBhIG5vbmNvbnN0YW50DQog ICAgICAgZXhwcmVzc2lvbiBwcm92aWRlZCB0aGUgc3BlY2lmaWNhdGlvbiBleHByZXNzaW9uIGlz IGluIGFuDQogICAgICAgaW50ZXJmYWNlIGJvZHkgKDEyLjMuMi4xKSBvciBpbiB0aGUgc3BlY2lm aWNhdGlvbiBwYXJ0IG9mIGENCiAgICAgICBzdWJwcm9ncmFtLiINCg0KQXMgYSBGVU5DVElPTiBz dGF0ZW1lbnQgaXMgbm90IHBhcnQgb2YgdGhlIHNwZWNpZmljYXRpb24gcGFydCBvZiBhDQpzdWJw cm9ncmFtLCB0aGlzIHRleHQgaW4gdGhlIHN0YW5kYXJkIGFwcGVhcnMgdG8gZGlzdGluZ3Vpc2gg YmV0d2Vlbg0KRlVOQ1RJT04gc3RhdGVtZW50cyB0aGF0IGFyZSBpbiBpbnRlcmZhY2UgYmxvY2tz IGFuZCBvbmVzIHRoYXQgYXJlDQpub3QuIFRoaXMgdGV4dCBzZWVtcyB0byBwcm9oaWJpdCBzdWNo IGV4YW1wbGVzIGFzOg0KDQogICAgICAgICBJTlRFR0VSIEkNCiAgICAgICAgICAuLi4NCiAgICAg ICAgIENPTlRBSU5TDQogICAgICAgICAgIENIQVJBQ1RFUiooSSsxKSBGVU5DVElPTiBGKCkNCiAg ICAgICAgICAgICAgLi4uDQogICAgICAgICAgICAgIENPTU1PTiAvLyBJDQogICAgICAgICAgICAg IC4uLg0KDQp3aGVyZSBpdCBjYW4gYmUgY29uZnVzaW5nIGFzIHRvIHdoaWNoIEkgaXMgYmVpbmcg cmVmZXJlbmNlZCBpbiB0aGUNCkZVTkNUSU9OIHN0YXRlbWVudC4gIFdoaWxlIGhvc3QgYXNzb2Np YXRpb24gZG9lcyBub3QgYXBwbHkgdG8NCmludGVyZmFjZSBib2RpZXMsIGZvciBjb25zaXN0ZW5j eSBzaG91bGQgdGhlIHRleHQgcXVvdGVkIGZyb20gU2VjdGlvbg0KNS4xIGhhdmUgYmVlbiAiLi4u IGlzIGluIHRoZSBzcGVjaWZpY2F0aW9uIHBhcnQgb2YgYW4gaW50ZXJmYWNlIGJvZHkNCigxMi4z LjIuMSkgb3IgaW4gdGhlIHNwZWNpZmljYXRpb24gcGFydCBvZiBhIHN1YnByb2dyYW0uIj8NCg0K KGMpIFNlY3Rpb24gNy4xLjYuMSBzdGF0ZXM6DQoNCiAgICAgICJJZiBhbiBpbml0aWFsaXphdGlv biBleHByZXNzaW9uIGluY2x1ZGVzIGEgcmVmZXJlbmNlIHRvIGFuDQogICAgICAgaW5xdWlyeSBm dW5jdGlvbiBmb3IgYSB0eXBlIHBhcmFtZXRlciBvciBhbiBhcnJheSBib3VuZCBvZiBhbg0KICAg ICAgIG9iamVjdCBzcGVjaWZpZWQgaW4gdGhlIHNhbWUgPHNwZWNpZmljYXRpb24tcGFydD4sIHRo ZSB0eXBlDQogICAgICAgcGFyYW1ldGVyIG9yIGFycmF5IGJvdW5kIG11c3QgYmUgc3BlY2lmaWVk IGluIGEgcHJpb3INCiAgICAgICBzcGVjaWZpY2F0aW9uIG9mIHRoZSA8c3BlY2lmaWNhdGlvbi1w YXJ0Pi4iDQoNCldhcyB0aGlzIHRleHQgaW50ZW5kZWQgdG8gYXBwbHkgdG8gRlVOQ1RJT04gc3Rh dGVtZW50cyBldmVuIHRob3VnaA0KdGhleSBhcmUgbm90IHBhcnQgb2YgYW55IDxzcGVjaWZpY2F0 aW9uLXBhcnQ+LCB0aHVzIGRpc2FsbG93aW5nDQpmcmFnbWVudHMgc3VjaCBhczoNCg0KICAgICAg SU5URUdFUiAoS0lORD1LSU5EKFgpKSBGVU5DVElPTiBGKCkNCiAgICAgICAgSU5URUdFUihLSU5E PUtJTkQoMCkpIFgNCiAgICAgICAgLi4uDQoNClNpbWlsYXIgdGV4dCBhcHBlYXJzIGluIFNlY3Rp b24gNy4xLjYuMi4NCg0KQU5TV0VSOg0KDQooYSkgQSBzcGVjaWZpY2F0aW9uIGV4cHJlc3Npb24g aW4gdGhlIDx0eXBlLXNwZWM+IG9mIGEgRlVOQ1RJT04NCnN0YXRlbWVudCBtYXkgaW52b2x2ZSBu YW1lcyBvZiBlbnRpdGllcyB0aGF0IGFyZSBkZWNsYXJlZCB3aXRoaW4gdGhlDQpmdW5jdGlvbiBv ciBhcmUgYWNjZXNzaWJsZSB0aGVyZSBieSBob3N0IG9yIHVzZSBhc3NvY2lhdGlvbiwgYnV0IGFu DQppbml0aWFsaXphdGlvbiBleHByZXNzaW9uIGluIHN1Y2ggYSA8dHlwZS1zcGVjPiBtYXkgb25s eSBpbnZvbHZlDQpuYW1lcyB0aGF0IGFyZSBhY2Nlc3NpYmxlIGJ5IGhvc3Qgb3IgdXNlIGFzc29j aWF0aW9uLg0KDQooYikgTm8uICBJdCB3YXMgbm90IHRoZSBpbnRlbnQgb2YgdGhlIHN0YW5kYXJk IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4NCnRoZSB0d28gdHlwZXMgb2YgRlVOQ1RJT04gc3RhdGVt ZW50cyBjaXRlZC4gIEFzIGVsYWJvcmF0ZWQgaW4gdGhlDQpkaXNjdXNzaW9uIG9mIHBhcnQgKGEp LCB0aGUgc3RhbmRhcmQgaW50ZW5kZWQgdG8gYWxsb3cgdGhlDQo8dHlwZS1zcGVjPiBleHByZXNz aW9uIG9mIGEgRlVOQ1RJT04gc3RhdGVtZW50IHRvIGJlIGEgbm9uY29uc3RhbnQNCmV4cHJlc3Np b24uICBUaGUgc2VudGVuY2UgY2l0ZWQgaXMgY29ycmVjdGVkIHdpdGggYSBzdXBwbGllZCBlZGl0 Lg0KDQooYykgWWVzLCB0aGUgdGV4dCBjaXRlZCBmcm9tIDcuMS42LjEgd2FzIGludGVuZGVkIHRv IGFwcGx5IHRvDQpGVU5DVElPTiBzdGF0ZW1lbnRzLiAgVGhlIHNlbnRlbmNlIHF1b3RlZCBhbmQg dGhlIGNvcnJlc3BvbmRpbmcNCnNlbnRlbmNlIGluIDcuMS42LjIgYXJlIGNvcnJlY3RlZCB3aXRo IHN1cHBsaWVkIGVkaXRzLiAgVGhlIGNvZGUNCmZyYWdtZW50IGlzIG5vdCBzdGFuZGFyZCBjb25m b3JtaW5nLg0KDQpEaXNjdXNzaW9uOg0KDQooYSkgQW4gaW5pdGlhbGl6YXRpb24gZXhwcmVzc2lv biBpcyBhIGNvbnN0YW50IGV4cHJlc3Npb24gd2l0aCBhbg0KYWRkaXRpb25hbCBydWxlIHJlbGF0 aW5nIHRvIGV4cG9uZW50aWF0aW9uICg3LjEuNi4xKS4gIFNpbmNlIGl0IGlzIGENCmNvbnN0YW50 IGV4cHJlc3Npb24sIHRoZSBvbmx5IG5hbWVzIGl0IGNhbiBjb250YWluIGFyZSB0aGUgbmFtZXMg b2YNCm5hbWVkIGNvbnN0YW50cywgc3RydWN0dXJlIGNvbnN0cnVjdG9ycywgaW50cmluc2ljIHBy b2NlZHVyZXMsIGFuZA0KdmFyaWFibGVzIHdob3NlIHR5cGUgcGFyYW1ldGVycyBvciBib3VuZHMg YXJlIGlucXVpcmVkIGFib3V0Lg0KDQogICAgKiBOYW1lZCBjb25zdGFudA0KDQogICAgICBTZWN0 aW9uIDUuMS4yLjEgc3RhdGVzOg0KDQogICAgICAgIkEgbmFtZWQgY29uc3RhbnQgbXVzdCBub3Qg YmUgcmVmZXJlbmNlZCBpbiBhbnkgLi4uIGNvbnRleHQNCiAgICAgICAgdW5sZXNzIGl0IGhhcyBi ZWVuIGRlZmluZWQgaW4gYSBwcmlvciBQQVJBTUVURVIgc3RhdGVtZW50IG9yDQogICAgICAgIHR5 cGUgZGVjbGFyYXRpb24gc3RhdGVtZW50IHVzaW5nIHRoZSBQQVJBTUVURVIgYXR0cmlidXRlLCBv cg0KICAgICAgICBtYWRlIGFjY2Vzc2libGUgYnkgdXNlIGFzc29jaWF0aW9uIG9yIGhvc3QgYXNz b2NpYXRpb24uIg0KDQogICAgICBTaW5jZSB0aGUgRlVOQ1RJT04gc3RhdGVtZW50IGlzIHRoZSBm aXJzdCBzdGF0ZW1lbnQgb2YgdGhlDQogICAgICBzY29waW5nIHVuaXQsIHRoZXJlIGNhbiBiZSBu byBwcmlvciBQQVJBTUVURVIgc3RhdGVtZW50IG9yIHR5cGUNCiAgICAgIGRlY2xhcmF0aW9uIHN0 YXRlbWVudCB1c2luZyB0aGUgUEFSQU1FVEVSIGF0dHJpYnV0ZSwgc28gdGhlDQogICAgICBmaXJz dCBjbGF1c2UgZG9lcyBub3QgYXBwbHkuIEEgbmFtZWQgY29uc3RhbnQgY2FuIGFwcGVhciBpbiBh DQogICAgICA8dHlwZS1zcGVjPiBvZiBhIGZ1bmN0aW9uIHN0YXRlbWVudCBpZiBpdCBpcyBhY2Nl c3NpYmxlIHdpdGhpbg0KICAgICAgdGhlIGZ1bmN0aW9uIGJ5IGhvc3Qgb3IgdXNlIGFzc29jaWF0 aW9uLg0KDQogICAgKiBTdHJ1Y3R1cmUgY29uc3RydWN0b3INCg0KICAgICAgUnVsZSBSNTAyIHNo b3dzIHRoYXQgdGhlIG9ubHkgb3Bwb3J0dW5pdGllcyBmb3IgZXhwcmVzc2lvbnMgdG8NCiAgICAg IGFwcGVhciBpbiA8dHlwZS1zcGVjPnMgYXJlIGluIGEgPGtpbmQtc2VsZWN0b3I+IG9yIGluIGEN CiAgICAgIDxjaGFyLXNlbGVjdG9yPi4gIEhvd2V2ZXIsIGEgc3RydWN0dXJlIGNvbnN0cnVjdG9y IGNhbiBub3QNCiAgICAgIGFwcGVhciBpbiBhIDxraW5kLXNlbGVjdG9yPiBiZWNhdXNlIHJ1bGUg UjUwNSBzaG93cyB0aGF0IGENCiAgICAgIDxraW5kLXNlbGVjdG9yPiBtdXN0IGJlIGFuIGludGVn ZXIgZXhwcmVzc2lvbi4gIFNpbWlsYXJseSwgUjUwNg0KICAgICAgc2hvd3MgdGhhdCBhbnkgaW5p dGlhbGl6YXRpb24gZXhwcmVzc2lvbiBpbiBhIDxjaGFyLXNlbGVjdG9yPg0KICAgICAgbXVzdCBi ZSB0eXBlIGludGVnZXIuICBUaGVyZWZvcmUsIGEgc3RydWN0dXJlIGNvbnN0cnVjdG9yIGNhbg0K ICAgICAgbm90IGFwcGVhciBpbiBhbiBpbml0aWFsaXphdGlvbiBleHByZXNzaW9uIGluIHRoZSA8 dHlwZS1zcGVjPg0KICAgICAgb2YgYSBGVU5DVElPTiBzdGF0ZW1lbnQuDQoNCiAgICAqIEludHJp bnNpYyBwcm9jZWR1cmUNCg0KICAgICAgVGhlIGludHJpbnNpYyBwcm9jZWR1cmUgbmFtZXMgb3Ig Y2xhc3NlcyBvZiBpbnRyaW5zaWMNCiAgICAgIHByb2NlZHVyZXMgdGhhdCBtYXkgYXBwZWFyIGlu IGFuIGluaXRpYWxpemF0aW9uIGV4cHJlc3Npb24gYXJlDQogICAgICBnaXZlbiBpbiA3LjEuNi4x Lg0KDQogICAgKiBWYXJpYWJsZXMgd2hvc2UgdHlwZSBwYXJhbWV0ZXJzIG9yIGJvdW5kcyBhcmUg aW5xdWlyZWQgYWJvdXQNCg0KICAgICAgVGhlIHRleHQgZnJvbSBzZWN0aW9uIDcuMS42LjEgYXMg Y2l0ZWQgaW4gcXVlc3Rpb24gKGMpIHdhcw0KICAgICAgaW50ZW5kZWQgdG8gYXBwbHkgdG8gaW5p dGlhbGl6YXRpb24gZXhwcmVzc2lvbnMgaW4gdGhlDQogICAgICA8dHlwZS1zcGVjPiBvZiBhIEZV TkNUSU9OIHN0YXRlbWVudC4gIFdpdGggdGhlIGNvcnJlY3Rpb24NCiAgICAgIHN1cHBsaWVkLCB0 aGlzIG1lYW5zIHRoYXQgaWYgYSB2YXJpYWJsZSBhcHBlYXJzIGFzIHRoZSBhcmd1bWVudA0KICAg ICAgdG8gYW4gaW5xdWlyeSBpbnRyaW5zaWMgaW4gdGhlIDx0eXBlLXNwZWM+IG9mIGEgRlVOQ1RJ T04NCiAgICAgIHN0YXRlbWVudCwgdGhlIGZ1bmN0aW9uIG11c3QgYmUgYSBtb2R1bGUgcHJvY2Vk dXJlIG9yIGFuDQogICAgICBpbnRlcm5hbCBwcm9jZWR1cmUsIGFuZCB0aGUgdmFyaWFibGUgbXVz dCBleGlzdCBpbiAoYmUNCiAgICAgIGFjY2Vzc2libGUgZnJvbSkgdGhlIGhvc3Qgc2NvcGluZyB1 bml0Lg0KDQpSdWxlIFI1MDIgZGVmaW5lcyA8dHlwZS1zcGVjPi4gIFRoZSBvbmx5IG9wcG9ydHVu aXR5IGZvciBhDQo8dHlwZS1zcGVjPiB0byBjb250YWluIGEgPHNwZWNpZmljYXRpb24tZXhwcj4g aXMgd2hlbiB0aGUgZGF0YSB0eXBlDQppcyBjaGFyYWN0ZXIgKDx0eXBlLXBhcmFtLXZhbHVlPiBt YXkgYmUgYSA8c3BlY2lmaWNhdGlvbi1leHByPikuDQpTZWN0aW9uIDcuMS42LjIgc3RhdGVzIHRo YXQgYSBzcGVjaWZpY2F0aW9uIGV4cHJlc3Npb24gaXMgYQ0KcmVzdHJpY3RlZCBleHByZXNzaW9u IHRoYXQgaXMgc2NhbGFyLCBvZiB0eXBlIGludGVnZXIsIGFuZCBlYWNoDQpvcGVyYXRpb24gbXVz dCBiZSBpbnRyaW5zaWMuICBJbiBhZGRpdGlvbiwgcnVsZSAoMikgb2YgNy4xLjYuMiBzdGF0ZXMN CnRoYXQgYSBwcmltYXJ5IG9mIGEgc3BlY2lmaWNhdGlvbiBleHByZXNzaW9uIGNhbiBiZSBhIGR1 bW15IGFyZ3VtZW50DQp0aGF0IGhhcyBuZWl0aGVyIHRoZSBPUFRJT05BTCBub3IgSU5URU5UKE9V VCkgYXR0cmlidXRlLiAgVGhlDQpmb2xsb3dpbmcgY29kZSBmcmFnbWVudCBkZW1vbnN0cmF0ZXMg YSB1c2Ugb2Ygc3VjaCBhIGR1bW15IGFyZ3VtZW50Og0KDQogICAgICAgICAgICAgIENIQVJBQ1RF UiooTisxKSBGVU5DVElPTiBTKE4pDQogICAgICAgICAgICAgIElOVEVHRVIsIElOVEVOVChJTikg OjogTg0KDQpSdWxlICgyKSBhbHNvIHN0YXRlcyB0aGF0IHRoZSBwcmltYXJ5IGNhbiBiZSBhIHN1 Ym9iamVjdCBvZiBzdWNoIGENCmR1bW15IGFyZ3VtZW50LiAgU2VjdGlvbiA2LjEuMiBpbmRpY2F0 ZXMgdGhhdCBhIHN0cnVjdHVyZSBjb21wb25lbnQNCm11c3Qgbm90IGJlIHJlZmVyZW5jZWQgb3Ig ZGVmaW5lZCBiZWZvcmUgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZQ0KcGFyZW50IG9iamVjdC4gIFNp bWlsYXIgcnVsZXMgYXJlIG5lZWRlZCB0byBwcmV2ZW50IGEgc3Vic3RyaW5nIGZyb20NCmJlaW5n IHJlZmVyZW5jZWQgYWhlYWQgb2YgdGhlIGRlY2xhcmF0aW9uIG9mIGl0cyBwYXJlbnQsIGFuZCBh biBhcnJheQ0KZWxlbWVudCBvciBhcnJheSBzZWN0aW9uIGZyb20gYmVpbmcgcmVmZXJlbmNlZCBh aGVhZCBvZiB0aGUNCmRlY2xhcmF0aW9uIG9mIHRoZSBhcnJheS4gIEVkaXRzIGFyZSBwcm92aWRl ZCB0byBzdXBwbHkgdGhlc2UgcnVsZXMuDQpTaW5jZSBhIHN1Ym9iamVjdCBjYW4gbm90IGJlIHJl ZmVyZW5jZWQgYmVmb3JlIGl0cyBwYXJlbnQgb2JqZWN0IGlzDQpkZWNsYXJlZCBhbmQgdGhlIEZV TkNUSU9OIHN0YXRlbWVudCBpcyB0aGUgZmlyc3Qgc3RhdGVtZW50IG9mIHRoZQ0Kc3VicHJvZ3Jh bSwgdGhlIHBhcmVudCdzIGRlY2xhcmF0aW9uIGNvdWxkIG5vdCBoYXZlIG9jY3VycmVkLiAgVGh1 cyBhDQpzdWJvYmplY3QgbXVzdCBub3QgYmUgcmVmZXJlbmNlZCBpbiB0aGUgPHR5cGUtc3BlYz4g b24gYSBGVU5DVElPTg0Kc3RhdGVtZW50IGZvciBvYmplY3RzIGRlY2xhcmVkIHdpdGhpbiB0aGUg ZnVuY3Rpb24uDQoNClJ1bGUgKDMpIHN0YXRlcyB0aGF0IGEgcHJpbWFyeSBjYW4gYmUgYSB2YXJp YWJsZSB0aGF0IGlzIGluIGEgY29tbW9uDQpibG9jay4gIFRoZSBmb2xsb3dpbmcgY29kZSBmcmFn bWVudCBkZW1vbnN0cmF0ZXMgYSB1c2Ugb2Ygc3VjaCBhDQpjb21tb24gYmxvY2sgbWVtYmVyOg0K DQogICAgICAgICAgICAgIENIQVJBQ1RFUiooTisxKSBGVU5DVElPTiBTKCkNCiAgICAgICAgICAg ICAgLi4uDQogICAgICAgICAgICAgIENPTU1PTiBODQoNCkFzIGluIHJ1bGUgKDIpLCBydWxlICgz KSBhbGxvd3MgYSBzdWJvYmplY3Qgb2Ygc3VjaCBhIHZhcmlhYmxlIGJ1dA0KZm9yIHRoZSBzYW1l IHJlYXNvbnMgYXMgYWJvdmUsIHN1Y2ggYSBzdWJvYmplY3QgZGVzaWduYXRvciBjYW4gbm90DQph cHBlYXIgaW4gdGhlIDx0eXBlLXNwZWM+IGV4cHJlc3Npb24gb2YgYSBGVU5DVElPTiBzdGF0ZW1l bnQuDQoNClJ1bGUgKDQpIHN0YXRlcyB0aGF0IGEgcHJpbWFyeSBtYXkgYmUgYSB2YXJpYWJsZSB0 aGF0IGlzIGFjY2Vzc2libGUNCmJ5IHVzZSBhc3NvY2lhdGlvbiBvciBob3N0IGFzc29jaWF0aW9u LiAgVGhlIGZvbGxvd2luZyBjb2RlIGZyYWdtZW50cw0KZGVtb25zdHJhdGUgdXNlcyBvZiBzdWNo IHZhcmlhYmxlczoNCg0KICAgICAgICAgICAgICBQUk9HUkFNIE1BSU4NCiAgICAgICAgICAgICAg SU5URUdFUiA6OiBOID0gMjENCiAgICAgICAgICAgICAgLi4uDQogICAgICAgICAgICAgIENPTlRB SU5TDQogICAgICAgICAgICAgICAgQ0hBUkFDVEVSKExFTiA9IDIqTikgRlVOQ1RJT04gU1MoSykg ICAgISBOIGlzIGhvc3QNCiAgICAgICAgICAgICAgICAuLi4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAhICBhc3NvY2lhdGVkLg0KICAgICAgICAgICAgICAgIEVORCBGVU5DVElP Tg0KICAgICAgICAgICAgICBFTkQgUFJPR1JBTQ0KDQogICAgYW5kDQoNCiAgICAgICAgICAgICAg TU9EVUxFIE1PRA0KICAgICAgICAgICAgICBJTlRFR0VSIEsNCiAgICAgICAgICAgICAgREFUQSBL IC8yMC8NCiAgICAgICAgICAgICAgRU5EIE1PRFVMRQ0KDQogICAgICAgICAgICAgIENIQVJBQ1RF UiooSyoyKSBGVU5DVElPTiBDSEVDSyhTVFIpICAgICAgISBLIGlzIHVzZQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEgIGFzc29jaWF0ZWQu DQogICAgICAgICAgICAgIFVTRSBNT0QNCiAgICAgICAgICAgICAgLi4uDQogICAgICAgICAgICAg IEVORCBGVU5DVElPTg0KDQpSdWxlICg0KSBhbHNvIHN0YXRlcyB0aGF0IHRoZSBwcmltYXJ5IGNh biBiZSBhIHN1Ym9iamVjdCBvZiBzdWNoIGENCnVzZSBvciBob3N0IGFzc29jaWF0ZWQgdmFyaWFi bGUuDQoNCkEgc3RydWN0dXJlIGNvbnN0cnVjdG9yIGNhbiBub3QgYXBwZWFyIGluIGEgRlVOQ1RJ T04gPHR5cGUtc3BlYz4NCnNwZWNpZmljYXRpb24gZXhwcmVzc2lvbiBiZWNhdXNlIHRoZSBleHBy ZXNzaW9uIG11c3QgYmUgb2YgdHlwZQ0KaW50ZWdlciBhbmQgYW55IG9wZXJhdGlvbnMgKHdoaWNo IG1pZ2h0IHlpZWxkIGFuIGludGVnZXIgdmFsdWUgZnJvbQ0Kb25lIG9yIG1vcmUgc3RydWN0dXJl IGNvbnN0cnVjdG9ycykgbXVzdCBiZSBpbnRyaW5zaWMuDQoNCk90aGVyIHJ1bGVzIG9mIDcuMS42 LjIgc3RhdGUgd2hpY2ggaW50cmluc2ljIHByb2NlZHVyZSBuYW1lcyBvcg0KY2xhc3NlcyBvZiBp bnRyaW5zaWMgcHJvY2VkdXJlcyBtYXkgYXBwZWFyIGluIGEgc3BlY2lmaWNhdGlvbg0KZXhwcmVz c2lvbi4NCg0KU2VjdGlvbiA3LjEuNi4yIGFsc28gc3RhdGVzOg0KDQogICAgICAgIEEgdmFyaWFi bGUgaW4gYSBzcGVjaWZpY2F0aW9uIGV4cHJlc3Npb24gbXVzdCBoYXZlIGl0cyB0eXBlDQogICAg ICAgIGFuZCB0eXBlIHBhcmFtZXRlcnMsIGlmIGFueSwgc3BlY2lmaWVkIGJ5IGEgcHJldmlvdXMN CiAgICAgICAgZGVjbGFyYXRpb24gaW4gdGhlIHNhbWUgc2NvcGluZyB1bml0LCBvciBieSB0aGUg aW1wbGljaXQgdHlwZQ0KICAgICAgICBydWxlcyBjdXJyZW50bHkgaW4gZWZmZWN0IGZvciB0aGUg c2NvcGluZyB1bml0LCBvciBieSBob3N0IG9yDQogICAgICAgIHVzZSBhc3NvY2lhdGlvbi4NCg0K VGhlIGRpc2N1c3Npb24gYWJvdmUgcmVnYXJkaW5nIHNwZWNpZmljYXRpb24gZXhwcmVzc2lvbnMg aGFzIGFscmVhZHkNCnJ1bGVkIG91dCAicHJldmlvdXMgZGVjbGFyYXRpb25zIiBzbyB0aGUgZmly c3QgY2xhdXNlIG9mIHRoZSBjaXRlZA0Kc2VudGVuY2UgZG9lcyBub3QgYXBwbHkuICBUaGUgb3Ro ZXIgY2xhdXNlcyBhcHBseSBlcXVhbGx5IHRvIGENCkZVTkNUSU9OIHN0YXRlbWVudCA8dHlwZS1z cGVjPiBhbmQgdG8gdHlwZSBkZWNsYXJhdGlvbiBzdGF0ZW1lbnRzDQppbnNpZGUgdGhlIGZ1bmN0 aW9uLg0KDQooYikgV2hlbiB0aGUgZGlzY3Vzc2lvbiBmb3IgcGFydCAoYSkgaXMgYXBwbGllZCB0 byB0aGUgY29kZSBmcmFnbWVudA0KcHJvdmlkZWQsIGl0IG1lYW5zIHRoYXQgdGhlICdJJyByZWZl cmVuY2VkIGluIHRoZSA8dHlwZS1zcGVjPiBvZiB0aGUNCkZVTkNUSU9OIHN0YXRlbWVudCBpcyB0 aGUgY29tbW9uIGJsb2NrIG1lbWJlci4NCg0KRURJVFM6DQoxLiBTZWN0aW9uIDUuMSwgaW4gdGhl IGZpcnN0IHNlbnRlbmNlIG9mIHRoZSBwYXJhZ3JhcGggdGhhdCBzdGFydHMNCiAgICJUaGUgPHNw ZWNpZmljYXRpb24tZXhwcj4gKDcuMS42LjIpIiBbNDA6MzktNDFdLA0KDQogICAgY2hhbmdlICJp biBhbiBpbnRlcmZhY2UgYm9keSAoMTIuMy4yLjEpIG9yIGluIHRoZSBzcGVjaWZpY2F0aW9uDQog ICAgICAgICAgICBwYXJ0IG9mIGEgc3VicHJvZ3JhbSINCg0KICAgICAgIHRvICAiY29udGFpbmVk IGluIGFuIGludGVyZmFjZSBib2R5ICgxMi4zLjIuMSksIGlzIGNvbnRhaW5lZA0KICAgICAgICAg ICAgaW4gdGhlIHNwZWNpZmljYXRpb24gcGFydCBvZiBhIHN1YnByb2dyYW0sIG9yIGlzIGluIHRo ZQ0KICAgICAgICAgICAgPHR5cGUtc3BlYz4gb2YgYSBGVU5DVElPTiBzdGF0ZW1lbnQgKDEyLjUu Mi4yKSINCg0KMi4gU2VjdGlvbiA2LjEuMSwgYWRkIHRvIHRoZSBlbmQgb2YgdGhlIHBhcmFncmFw aCBiZWZvcmUgdGhlIGV4YW1wbGVzDQpbNjI6MjldDQoNCiAgICAiQSBzdWJzdHJpbmcgbXVzdCBu b3QgYmUgcmVmZXJlbmNlZCBvciBkZWZpbmVkIGJlZm9yZSB0aGUNCiAgICAgZGVjbGFyYXRpb24g b2YgdGhlIHR5cGUgYW5kIHR5cGUgcGFyYW1ldGVycyBvZiB0aGUgcGFyZW50IHN0cmluZywNCiAg ICAgdW5sZXNzIHRoZSB0eXBlIGFuZCB0eXBlIHBhcmFtZXRlcnMgYXJlIGRldGVybWluZWQgYnkg dGhlDQogICAgIGltcGxpY2l0IHR5cGluZyBydWxlcyBvZiB0aGUgc2NvcGUuIg0KDQozLiBTZWN0 aW9uIDYuMi4yLCBhZGQgYWZ0ZXIgdGhlIHNlbnRlbmNlICJBbiBhcnJheSBzZWN0aW9uIGlzIGFu DQphcnJheS4iIFs2NDoxNl0NCiAgICAgICAgICAgIkFuIGFycmF5IGVsZW1lbnQgb3IgYXJyYXkg c2VjdGlvbiBtdXN0IG5vdCBiZSByZWZlcmVuY2VkDQogICAgICAgICAgICBvciBkZWZpbmVkIGJl Zm9yZSB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIGFycmF5IGJvdW5kcy4iDQoNCjQuIFNlY3Rpb24g Ny4xLjYuMSwgaW4gdGhlIHBhcmFncmFwaCBhZnRlciB0aGUgY29uc3RyYWludHMgWzc4OjIxLTIy XQ0KDQogICAgY2hhbmdlICJvYmplY3Qgc3BlY2lmaWVkIGluIHRoZSBzYW1lIDxzcGVjaWZpY2F0 aW9uLXBhcnQ+LCB0aGUNCiAgICAgICAgICAgICB0eXBlIHBhcmFtZXRlciBvciBhcnJheSBib3Vu ZCBtdXN0IGJlIHNwZWNpZmllZCBpbg0KICAgICAgICAgICAgIGEgcHJpb3Igc3BlY2lmaWNhdGlv biBvZiB0aGUgPHNwZWNpZmljYXRpb24tcGFydD4uIg0KDQogICAgdG8gICAgICJvYmplY3QgZGVj bGFyZWQgaW4gdGhlIHNhbWUgc2NvcGluZyB1bml0LCB0aGUgdHlwZQ0KICAgICAgICAgICAgcGFy YW1ldGVyIG9yIGFycmF5IGJvdW5kIG11c3QgYmUgc3BlY2lmaWVkIGluIGENCiAgICAgICAgICAg IHNwZWNpZmljYXRpb24gcHJpb3IgdG8gdGhlIGluaXRpYWxpemF0aW9uIGV4cHJlc3Npb24uIg0K DQo1LiBTZWN0aW9uIDcuMS42LjIsIGluIHRoZSAybmQgcGFyYWdyYXBoIGFmdGVyIHRoZSBjb25z dHJhaW50DQpbNzk6MjgtMjldDQoNCiAgICBjaGFuZ2UgImVudGl0eSBzcGVjaWZpZWQgaW4gdGhl IHNhbWUgPHNwZWNpZmljYXRpb24tcGFydD4sIHRoZQ0KICAgICAgICAgICAgIHR5cGUgcGFyYW1l dGVyIG9yIGFycmF5IGJvdW5kIG11c3QgYmUgc3BlY2lmaWVkIGluDQogICAgICAgICAgICAgYSBw cmlvciBzcGVjaWZpY2F0aW9uIG9mIHRoZSA8c3BlY2lmaWNhdGlvbi1wYXJ0Pi4iDQoNCiAgICB0 byAgICAgImVudGl0eSBkZWNsYXJlZCBpbiB0aGUgc2FtZSBzY29waW5nIHVuaXQsIHRoZSB0eXBl DQogICAgICAgICAgICBwYXJhbWV0ZXIgb3IgYXJyYXkgYm91bmQgbXVzdCBiZSBzcGVjaWZpZWQg aW4gYQ0KICAgICAgICAgICAgc3BlY2lmaWNhdGlvbiBwcmlvciB0byB0aGUgc3BlY2lmaWNhdGlv biBleHByZXNzaW9uLiINCg0KU1VCTUlUVEVEIEJZOiBKYW5pY2UgQy4gU2hlcGhlcmQNCg0KSElT VE9SWTogOTMtMTkzICAgbTEyNiAgRjkwLzAxNDUgc3VibWl0dGVkDQogICAgICAgICA5NC0wMjNy MSBtMTI4ICByZXNwb25zZSwgYXBwcm92ZWQgdWMNCiAgICAgICAgIDk0LTExNnIxIG0xMjkgIFgz SjMgYmFsbG90IGZhaWxlZCAyMi0xDQogICAgICAgICA5NC0zMzYgICBtMTMxICByZXZpc2VkIHJl c3BvbnNlLCBhcHByb3ZlZCB1LmMNCiAgICAgICAgIDk1LTAzNHIxIG0xMzIgIFgzSjMgYmFsbG90 IGZhaWxlZCAxNS01DQogICAgICAgICA5NS0yODEgICBtMTM1ICByZXZpc2VkIHJlc3BvbnNlLCBy ZXdvcmRlZCBlZGl0IDMsIFdHNQ0KICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVkIChO MTE2MSkNCiAgICAgICAgIDk2LSAgICAgIG0xMzYgIFgzSjMgYmFsbG90IGZhaWxlZCAxNS0xLCBX RzUgYXBwcm92YWwgcmVtb3ZlZC4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpQ YXJ0IDM6IEFjdGl2ZSBGb3J0cmFuIDIwMDMgSW50ZXJwcmV0YXRpb24gUmVxdWVzdHMNCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwMy8wMDMwDQpUSVRMRTogIElF RUUgZGl2aWRlIGJ5IHplcm8NCktFWVdPUkRTOiBJRUVFLTc1NCwgZGl2aWRlLWJ5LXplcm8NCkRF RkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KUVVF U1RJT046DQoNCklzIGluZmluaXR5IC8gMC4wIGEgZGl2aWRlIGJ5IHplcm8gZXhjZXB0aW9uPw0K SXMgTmFOIC8gMC4wIGEgZGl2aWRlIGJ5IHplcm8gZXhjZXB0aW9uPw0KDQpGb3J0cmFuIDIwMDMg ZGVmaW5lcyAoaW4gMTQuMikgaW5maW5pdHkgLyB6ZXJvIGFuZCBOYU4gLyB6ZXJvDQpjYXNlcyBh cyBJRUVFX0RJVklERV9CWV9aRVJPLiAgSUVFRS03NTQgZGVmaW5lcyAoaW4gNi4xIGFuZCA2LjIp DQp0aG9zZSB0d28gYXMgdW5leGNlcHRpb25hbC4NCg0KQU5TV0VSOg0KDQpPbiBhbiBJRUVFLWNv bmZvcm1hbnQgcHJvY2Vzc29yLCB0aGVzZSBjYXNlcyBkbyBub3QgcmFpc2UgZXhjZXB0aW9ucw0K KHNlZSBjbGF1c2VzIDYuMSBhbmQgNi4yIG9mIElFQyA2MDU1OToxOTg5KS4NCg0KVGhlIGRlZmlu aXRpb25zIGluIDE0LjIgd2VyZSBpbnRlbmRlZCB0byBkZXNjcmliZSBJRUMgNjA1NTk6MTk4OQ0K ZXhjZXB0aW9ucyB3aXRoIHN1ZmZpY2llbnQgbGF0aXR1ZGUgdG8gYWxsb3cgdXNlIG9uIG1hY2hp bmVzIHRoYXQgZG8NCm5vdCBjb25mb3JtIHRvIElFQyA2MDU1OToxOTg5LiAgSG93ZXZlciwgdGhl IGRlZmluaXRpb24gb2YNCklFRUVfRElWSURFX0JZX1pFUk8gaXMgbm90IGNvbnNpc3RlbnQgd2l0 aCBJRUMgNjA1NTk6MTk4OS4NCg0KRnVydGhlcm1vcmUsIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBJ RUVFX09WRVJGTE9XIGZsYWcgaXMgYWxzbyBub3QNCmNvbnNpc3RlbnQgd2l0aCBJRUMgNjA1NTk6 MTk4OSwgYmVjYXVzZSB0aGlzIGV4Y2VwdGlvbiBpcyBub3QgcmFpc2VkDQpmb3Igb3BlcmF0aW9u cyBvbiBpbmZpbml0ZSBvcGVyYW5kcy4NCg0KQWRkaXRpb25hbGx5LCBpZiB0aGUgZGF0YSB0eXBl IGlzIG5vdCBhbiBJRUVFIGRhdGEgdHlwZSwgYnV0IHRoZQ0KZXhjZXB0aW9uIGlzIHN1cHBvcnRl ZCwgdGhlIGNpcmN1bXN0YW5jZXMgdW5kZXIgd2hpY2ggdGhlIGV4Y2VwdGlvbiBpcw0KcmFpc2Vk IGFyZSBwcm9jZXNzb3IgZGVwZW5kZW50Lg0KDQpFZGl0cyBhcmUgcHJvdmlkZWQuDQoNCkVESVRT IHRvIDEwLTAwN3IxOg0KDQpbNDAzOjctOV0gQ2xhdXNlIDE0LjMsIGZpcnN0IHBhcmFncmFwaCwg Zmlyc3QgYnVsbGV0IChJRUVFX09WRVJGTE9XKSwNCiAgUmVwbGFjZSB3aXRoDQogICJJRUVFX09W RVJGTE9XIG9jY3VycyBpbiBhbiBpbnRyaW5zaWMgcmVhbCBhZGRpdGlvbiwgc3VidHJhY3Rpb24s DQogICBtdWx0aXBsaWNhdGlvbiwgZGl2aXNpb24sIG9yIGNvbnZlcnNpb24gYnkgdGhlIGludHJp bnNpYyBmdW5jdGlvbg0KICAgUkVBTCwgYXMgc3BlY2lmaWVkIGJ5IElFQyA2MDU1OToxOTg5IGlm IElFRUVfU1VQUE9SVF9EQVRBVFlQRSBpcw0KICAgdHJ1ZSBmb3IgdGhlIG9wZXJhbmRzIG9mIHRo ZSBvcGVyYXRpb24gb3IgY29udmVyc2lvbiwgYW5kIGFzDQogICBkZXRlcm1pbmVkIGJ5IHRoZSBw cm9jZXNzb3Igb3RoZXJ3aXNlLiAgSXQgb2NjdXJzIGluIGFuIGludHJpbnNpYw0KICAgcmVhbCBl eHBvbmVudGlhdGlvbiBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBwcm9jZXNzb3IuICBJdCBvY2N1cnMg aW4gYQ0KICAgY29tcGxleCBvcGVyYXRpb24sIG9yIGNvbnZlcnNpb24gYnkgdGhlIGludHJpbnNp YyBmdW5jdGlvbiBDTVBMWCwNCiAgIGlmIGl0IGlzIGNhdXNlZCBieSB0aGUgY2FsY3VsYXRpb24g b2YgdGhlIHJlYWwgb3IgaW1hZ2luYXJ5IHBhcnQgb2YNCiAgIHRoZSByZXN1bHQuIg0KDQpbNDAz OjEwLTExXSBDbGF1c2UgMTQuMywgZmlyc3QgcGFyYWdyYXBoLCBzZWNvbmQgYnVsbGV0DQogIChJ RUVFX0RJVklERV9CWV9aRVJPKSwNCiAgUmVwbGFjZSB3aXRoDQogICJJRUVFX0RJVklERV9CWV9a RVJPIG9jY3VycyBpbiBhIHJlYWwgZGl2aXNpb24gYXMgc3BlY2lmaWVkIGJ5IElFQw0KICAgNjA1 NTk6MTk4OSBpZiBJRUVFX1NVUFBPUlRfREFUQVRZUEUgaXMgdHJ1ZSBmb3IgdGhlIG9wZXJhbmRz IG9mIHRoZQ0KICAgZGl2aXNpb24sIGFuZCBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBwcm9jZXNzb3Ig b3RoZXJ3aXNlLiAgSXQgaXMNCiAgIHByb2Nlc3Nvci1kZXBlbmRlbnQgd2hldGhlciBpdCBvY2N1 cnMgaW4gYSByZWFsIGV4cG9uZW50aWF0aW9uIHdpdGgNCiAgIGEgbmVnYXRpdmUgZXhwb25lbnQu ICBJdCBvY2N1cnMgaW4gYSBjb21wbGV4IGRpdmlzaW9uIGlmIGl0IGlzDQogICBjYXVzZWQgYnkg dGhlIGNhbGN1bGF0aW9uIG9mIHRoZSByZWFsIG9yIGltYWdpbmFyeSBwYXJ0IG9mIHRoZQ0KICAg cmVzdWx0LiINCg0KWzQ2MjoyNCtdIENsYXVzZSBBLjIsIGFmdGVyIHRoZSBmaWZ0aCBidWxsZXQg ZnJvbSB0aGUgZW5kIG9mIHRoZSBjbGF1c2UNCiAgInRoZSBleHRlbnQgdG8gd2hpY2ggYSBwcm9j ZXNzb3Igc3VwcG9ydHMgSUVFRSBhcml0aG1ldGljICgxNCkiLA0KICBJbnNlcnQgbmV3IGJ1bGxl dCBwb2ludHMNCiAgIi0gdGhlIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggSUVFRV9PVkVSRkxPVyBp cyByYWlzZWQgaW4gYQ0KICAgICBjYWxjdWxhdGlvbiBpbnZvbHZpbmcgbm9uLUlFQyA2MDU1OTox OTg5IGZsb2F0aW5nLXBvaW50IGRhdGE7DQogICAtIHRoZSBjb25kaXRpb25zIHVuZGVyIHdoaWNo IElFRUVfT1ZFUkZMT1cgYW5kIElFRUVfRElWSURFX0JZX1pFUk8NCiAgICAgYXJlIHJhaXNlZCBp biBhIGZsb2F0aW5nLXBvaW50IGV4cG9uZW50aWF0aW9uIG9wZXJhdGlvbjsNCiAgIC0gdGhlIGNv bmRpdGlvbnMgdW5kZXIgd2hpY2ggSUVFRV9ESVZJREVfQllfWkVSTyBpcyByYWlzZWQgaW4gYQ0K ICAgICBjYWxjdWxhdGlvbiBpbnZvbHZpbmcgbm9uLUlFQyA2MDU1OToxOTg5IGZsb2F0aW5nLXBv aW50IGRhdGE7Ig0KDQpTVUJNSVRURUQgQlk6IEZyZWQgVHlkZW1hbg0KDQpISVNUT1JZOiAwNS0x MDkgICAgbTE3MSAgRjAzLzAwMzAgc3VibWl0dGVkDQogICAgICAgICAwNS0xMDlyMSAgbTE3MSAg UmV2aXNlZCB0byBpbmNsdWRlIElFRUVfT1ZFUkZMT1csDQogICAgICAgICAgICAgICAgICAgICAg ICAgUGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDA1LTE3MCAgICBtMTcyICBQYXNzZWQg SjMgbGV0dGVyIGJhbGxvdCAjMTENCiAgICAgICAgIE4xNjIyICAgICBtMTcyICBGYWlsZWQgV0c1 IGJhbGxvdCBOMTYyOQ0KICAgICAgICAgMTAtMjM4cjEgIG0xOTMgIFJldmlzZWQgYW5zd2VyIC0g UGFzc2VkIEozIG1lZXRpbmcNCiAgICAgICAgIDExLTEyOSAgICBtMTk0ICBQYXNzZWQgYXMgYW1l bmRlZCBieSBKMyBsZXR0ZXIgYmFsbG90DQogICAgICAgICAgICAgICAgICAgICAgICAgICMyMiAx MC0yNTQNCiAgICAgICAgIDExLTAwNkFyMSBtMTk2ICBBZGp1c3QgZWRpdHMgdG8gcmVmZXJlbmNl IDEwLTAwN3IxDQogICAgICAgICBOMTg3OCAgICAgbTE5NiAgRmFpbGVkIFdHNSBiYWxsb3QgMSBO MTg3Ng0KICAgICAgICAgMTMtMjQ2ICAgIG0yMDAgIFJldmlzZWQgLSBwYXNzZWQgYnkgSjMgbWVl dGluZw0KICAgICAgICAgMTMtMjYyICAgIG0yMDEgIFBhc3NlZCBKMyBsZXR0ZXIgYmFsbG90ICMy OCAxMy0yNTVyMQ0KICAgICAgICAgTjE5OTAgICAgIG0yMDIgIFBhc3NlZCBieSBXRzUgYmFsbG90 IDYgTjE5ODcvODgvOTANCiAgICAgICAgIE4yMDAyICAgICBtMjAzICBJbiBGMjAwOCBDb3JyaWdl bmR1bSAzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBGMDMvMDA0Mg0KVElUTEU6ICBJRUVF IGZ1bm55IHZhbHVlcyBhbmQgU3RhbmRhcmQgcmVhbCBnZW5lcmljIGludHJpbnNpYw0KICAgICAg ICBwcm9jZWR1cmVzDQpLRVlXT1JEUzogSUVFRS03NTQsIHJlYWwgbWF0aCBsaWJyYXJ5DQpERUZF Q1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBKMyBjb25zaWRlcmF0aW9uIGluIHByb2dyZXNzDQoN ClFVRVNUSU9OOg0KDQpJcyBhbiBpbmZpbml0ZSByZXN1bHQgZnJvbSBhbiBpbmZpbml0ZSBhcmd1 bWVudCB0byBhIHJlYWwgbWF0aA0KZnVuY3Rpb24gZXhjZXB0aW9uYWwgKHJhaXNlcyBhbiBleGNl cHRpb24pPw0KDQpJcyBhIE5hTiByZXN1bHQgZnJvbSBhIE5hTiBhcmd1bWVudCB0byBhIHJlYWwg bWF0aCBmdW5jdGlvbg0KZXhjZXB0aW9uYWwgKHJhaXNlcyBhbiBleGNlcHRpb24pPw0KDQpXaGF0 IGFyZSB0aGUgcmVzdWx0cyAodmFsdWUgYW5kIGV4Y2VwdGlvbnMpIGZvciB0aGUgZm9sbG93aW5n DQooc2VjdGlvbiAxMy43LiopIHJlYWwgbWF0aCBsaWJyYXJ5IGZ1bmN0aW9ucyBbc3VnZ2VzdGVk IHJlc3VsdHMNCmZvciBtb3N0IGFyZSBpbmNsdWRlZDsgbm8gZXhjZXB0aW9uIGhhcHBlbnMgdW5s ZXNzIHNwZWNpZmllZF06DQoNCiBBQlMoLTAuMCkgcmV0dXJucyArMC4wDQogQUJTKCsvLWluZmlu aXR5KSByZXR1cm5zICtpbmZpbml0eQ0KIEFCUyhOYU4pIHJldHVybnMgYSBOYU4NCg0KIEFDT1Mo eCksIHdoZXJlIHx4fD4xLCByZXR1cm5zIGEgTmFOIGFuZCByYWlzZXMgaW52YWxpZA0KIEFDT1Mo TmFOKSByZXR1cm5zIGEgTmFODQoNCiBBSU5UKC0wLjApIHJldHVybnMgLTAuMA0KIEFJTlQoTmFO KSByZXR1cm5zIGEgTmFODQogQUlOVCgraW5maW5pdHkpIHJldHVybnMgK2luZmluaXR5DQogQUlO VCgtaW5maW5pdHkpIHJldHVybnMgLWluZmluaXR5DQoNCiBBTklOVCgtMC4wKSByZXR1cm5zIC0w LjANCiBBTklOVChOYU4pIHJldHVybnMgYSBOYU4NCiBBTklOVCgraW5maW5pdHkpIHJldHVybnMg K2luZmluaXR5DQogQU5JTlQoLWluZmluaXR5KSByZXR1cm5zIC1pbmZpbml0eQ0KDQogQVNJTih4 KSwgd2hlcmUgfHh8PjEsIHJldHVybnMgYSBOYU4gYW5kIHJhaXNlcyBpbnZhbGlkDQogQVNJTihO YU4pIHJldHVybnMgYSBOYU4NCg0KIEFUQU4oLTAuMCkgcmV0dXJucyAtMC4wDQogQVRBTigraW5m aW5pdHkpIHJldHVybnMgK3BpLzINCiBBVEFOKC1pbmZpbml0eSkgcmV0dXJucyAtcGkvMg0KIEFU QU4oTmFOKSByZXR1cm5zIGEgTmFODQogQVRBTjIoTmFOLHgpIHJldHVybnMgYSBOYU4NCiBBVEFO Mih5LE5hTikgcmV0dXJucyBhIE5hTg0KIEFUQU4yKCsvLTAuMCwgLTAuMCkgcmV0dXJucyArLy1w aSAoYW5kIG5vdCByYWlzZSBpbnZhbGlkKQ0KIEFUQU4yKCsvLTAuMCwgKzAuMCkgcmV0dXJucyAr Ly0wLjAgKGFuZCBub3QgcmFpc2UgaW52YWxpZCkNCiBBVEFOMigrLy0wLjAsIHgpIHJldHVybnMg Ky8tcGkgZm9yIHggPCAwLjANCiBBVEFOMigrLy0wLjAsIHgpIHJldHVybnMgKy8tMC4wIGZvciB4 ID4gMC4wDQogQVRBTjIoeSwgKy8tMC4wKSByZXR1cm5zIC1waS8yIGZvciB5IDwgMC4wDQogICAg ICAoYW5kIG5vdCByYWlzZSBkaXZpZGUgYnkgemVybykNCiBBVEFOMih5LCArLy0wLjApIHJldHVy bnMgK3BpLzIgZm9yIHkgPiAwLjANCiAgICAgIChhbmQgbm90IHJhaXNlIGRpdmlkZSBieSB6ZXJv KQ0KIEFUQU4yKCsvLXksIC1pbmZpbml0eSkgcmV0dXJucyArLy1waSBmb3IgZmluaXRlIHkgPiAw LjANCiBBVEFOMigrLy15LCAraW5maW5pdHkpIHJldHVybnMgKy8tMC4wIGZvciBmaW5pdGUgeSA8 IDAuMA0KIEFUQU4yKCsvLWluZmluaXR5LCB4KSByZXR1cm5zICsvLXBpLzIgZm9yIGZpbml0ZSB4 DQogQVRBTjIoKy8taW5maW5pdHksIC1pbmZpbml0eSkgcmV0dXJucyArLy0zcGkvNA0KICAgICAg KGFuZCBub3QgcmFpc2UgaW52YWxpZCkNCiBBVEFOMigrLy1pbmZpbml0eSwgK2luZmluaXR5KSBy ZXR1cm5zICsvLXBpLzQNCiAgICAgIChhbmQgbm90IHJhaXNlIGludmFsaWQpDQoNCiBDRUlMSU5H KCsvLWluZmluaXR5KSByZXR1cm5zICsvLWluZmluaXR5DQogQ0VJTElORygtMC4wKSByZXR1cm5z IC0wLjANCiBDRUlMSU5HKE5hTikgcmV0dXJucyBhIE5hTg0KDQogQ09TKCsvLTAuMCkgcmV0dXJu cyAxDQogQ09TKE5hTikgcmV0dXJucyBhIE5hTg0KIENPUygrLy1pbmZpbml0eSkgcmV0dXJucyBh IE5hTiBhbmQgcmFpc2VzIGludmFsaWQNCg0KIENPU0goKy8tMC4wKSByZXR1cm5zIDENCiBDT1NI KE5hTikgcmV0dXJucyBhIE5hTg0KIENPU0goKy8taW5maW5pdHkpIHJldHVybnMgYSAraW5maW5p dHkgRElNKE5hTix5KSByZXR1cm5zIGEgTmFODQoNCiBESU0oeCxOYU4pIHJldHVybnMgYSBOYU4N CiBESU0oKy8tMC4wLCArLy0wLjApIHJldHVybnMgYSArMC4wDQogRElNKCtpbmZpbml0eSwgLWlu ZmluaXR5KSByZXR1cm5zIGEgTmFOIGFuZCByYWlzZXMgaW52YWxpZA0KIERJTSgraW5maW5pdHks ICtpbmZpbml0eSkgcmV0dXJucyArMC4wDQogRElNKC1pbmZpbml0eSwgLWluZmluaXR5KSByZXR1 cm5zICswLjANCiBESU0oLWluZmluaXR5LCAraW5maW5pdHkpIHJldHVybnMgKzAuMA0KDQogRFBS T0QoTmFOLHkpIHJldHVybnMgYSBOYU4NCiBEUFJPRCh4LE5hTikgcmV0dXJucyBhIE5hTg0KIERQ Uk9EKCsvLTAuMCwgKy8taW5maW5pdHkpIHJldHVybnMgYSBOYU4gYW5kIHJhaXNlcyBpbnZhbGlk DQogRFBST0QoKy8taW5maW5pdHksICsvLTAuMCkgcmV0dXJucyBhIE5hTiBhbmQgcmFpc2VzIGlu dmFsaWQNCiBEUFJPRCgrLy1pbmZpbml0eSwgKy8taW5maW5pdHkpIHJldHVybnMgYW4gaW5maW5p dHkgd2l0aCBpdHMgc2lnbg0KIGJlaW5nIHRoZSBYT1Igb2YgdGhlIGFyZ3VtZW50cywgYW5kIHJh aXNlcyBubyBleGNlcHRpb25zLg0KIERQUk9EKCsvLTAuMCwgKy8tMC4wKSByZXR1cm5zIGEgemVy byB3aXRoIGl0cyBzaWduDQogYmVpbmcgdGhlIFhPUiBvZiB0aGUgYXJndW1lbnRzLCBhbmQgcmFp c2VzIG5vIGV4Y2VwdGlvbnMuDQoNCiBFWFAoTmFOKSByZXR1cm5zIGEgTmFODQogRVhQKCsvLTAu MCkgcmV0dXJucyAxDQogRVhQKC1pbmZpbml0eSkgcmV0dXJucyArMC4wDQogRVhQKCtpbmZpbml0 eSkgcmV0dXJucyAraW5maW5pdHkNCg0KIEVYUE9ORU5UKCsvLTAuMCkgcmV0dXJucyAwIFtzaG91 bGQgYmUgLUhVR0UoMCldIGFuZCByYWlzZXMgaW52YWxpZA0KIEVYUE9ORU5UKE5hTikgcmV0dXJu cyBIVUdFKDApIGFuZCByYWlzZXMgaW52YWxpZA0KIEVYUE9ORU5UKCsvLUlORikgcmV0dXJucyBI VUdFKDApIGFuZCByYWlzZXMgaW52YWxpZA0KIEVYUE9ORU5UKGRlbm9ybWFsKSByZXR1cm5zIHRo ZSB2YWx1ZSBhcyBpZiB0aGUgbnVtYmVyIHdlcmUNCiAgICAgICAgIG5vcm1hbGl6ZWQgYW5kIHRo ZSBleHBvbmVudCByYW5nZSB3ZXJlIHVuYm91bmRlZA0KIElmIC9lLyBpcyBub3QgcmVwcmVzZW50 YWJsZSBhcyBhIGRlZmF1bHQgaW50ZWdlciwgaW52YWxpZCBpcyByYWlzZWQNCiAgIGFuZCBzaWdu KC9lLykqSFVHRSgwKSBzaG91bGQgYmUgcmV0dXJuZWQuDQoNCiBGTE9PUihOYU4pIHJldHVybnMg YSBOYU4NCiBGTE9PUigtMC4wKSByZXR1cm5zIC0wLjANCiBGTE9PUigrLy1pbmZpbml0eSkgcmV0 dXJucyArLy0gaW5maW5pdHkNCg0KIEZSQUNUSU9OKC0wLjApIHJldHVybnMgLTAuMA0KIEZSQUNU SU9OKE5hTikgcmV0dXJucyBhIE5hTg0KIEZSQUNUSU9OKGRlbm9ybWFsKSByZXR1cm5zIHRoZSB2 YWx1ZSBhcyBpZiB0aGUgbnVtYmVyIHdlcmUNCiAgICAgICAgIG5vcm1hbGl6ZWQgYW5kIHRoZSBl eHBvbmVudCByYW5nZSB3ZXJlIHVuYm91bmRlZA0KIEZSQUNUSU9OKCsvLWluZmluaXR5KSByZXR1 cm5zICsvLSBpbmZpbml0eQ0KDQogSU5UKE5hTikgcmV0dXJucyBhbiB1bnNwZWNpZmllZCB2YWx1 ZSBhbmQgcmFpc2VzIGludmFsaWQNCiBJTlQoKy8taW5maW5pdHkpIHJldHVybnMgYW4gdW5zcGVj aWZpZWQgdmFsdWUgYW5kIHJhaXNlcw0KICAgIGludmFsaWQNCiBJTlQoKy8tbGFyZ2UpLCB3aGVy ZSBsYXJnZSBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYXMgYW4gaW50ZWdlciwNCiAgICByZXR1cm5z IGFuIHVuc3BlY2lmaWVkIHZhbHVlIGFuZCByYWlzZXMgaW52YWxpZA0KDQogTE9HKCsvLTAuMCkg cmV0dXJucyAtaW5maW5pdHkgYW5kIHJhaXNlcyBkaXZpZGUtYnktemVybw0KIExPRyhOYU4pIHJl dHVybnMgYSBOYU4NCiBMT0coMS4wKSByZXR1cm5zICswLjANCiBMT0coeCksIGZvciB4IDwgMCwg cmV0dXJucyBhIE5hTiBhbmQgcmFpc2VzIGludmFsaWQNCiBMT0IoK2luZmluaXR5KSByZXR1cm5z ICtpbmZpbml0eQ0KDQogTE9HMTAoKy8tMC4wKSByZXR1cm5zIC1pbmZpbml0eSBhbmQgcmFpc2Vz IGRpdmlkZS1ieS16ZXJvDQogTE9HMTAoTmFOKSByZXR1cm5zIGEgTmFODQogTE9HMTAoMS4wKSBy ZXR1cm5zICswLjANCiBMT0cxMCh4KSwgZm9yIHggPCAwLCByZXR1cm5zIGEgTmFOIGFuZCByYWlz ZXMgaW52YWxpZA0KIExPRzEwKCtpbmZpbml0eSkgcmV0dXJucyAraW5maW5pdHkNCg0KIE1BWChO YU4sTmFOKSByZXR1cm5zIGEgTmFODQogTUFYKE5hTix5KSByZXR1cm5zIHkgW3NvbWUgc2F5IGl0 IHNob3VsZCBiZSBOYU5dDQogTUFYKHgsTmFOKSByZXR1cm5zIHggW3NvbWUgc2F5IGl0IHNob3Vs ZCBiZSBOYU5dDQogTUFYKC0wLjAsKzAuMCkgcmV0dXJucyArMC4wDQogTUFYKC0wLjAsLTAuMCkg cmV0dXJucyAtMC4wDQogTUFYKCtpbmZpbml0eSx5KSByZXR1cm5zICtpbmZpbml0eQ0KIE1BWCgt aW5maW5pdHkseSkgcmV0dXJucyB5DQoNCiBNSU4oTmFOLE5hTikgcmV0dXJucyBhIE5hTg0KIE1J TihOYU4seSkgcmV0dXJucyB5IFtzb21lIHNheSBpdCBzaG91bGQgYmUgTmFOXQ0KIE1JTih4LE5h TikgcmV0dXJucyB4IFtzb21lIHNheSBpdCBzaG91bGQgYmUgTmFOXQ0KIE1JTigtMC4wLCswLjAp IHJldHVybnMgLTAuMA0KIE1JTigtMC4wLC0wLjApIHJldHVybnMgLTAuMA0KIE1JTigtaW5maW5p dHkseSkgcmV0dXJucyAtaW5maW5pdHkNCiBNSU4oK2luZmluaXR5LHkpIHJldHVybnMgeQ0KDQog TU9EKE5hTix5KSByZXR1cm5zIGEgTmFODQogTU9EKHgsTmFOKSByZXR1cm5zIGEgTmFODQogTU9E KCsvLWluZmluaXR5LHkpIHJldHVybnMgYSBOYU4gYW5kIHJhaXNlcyBpbnZhbGlkDQogTU9EKCsv LWluZmluaXR5LCsvLWluZmluaXR5KSByZXR1cm5zIGEgTmFOIGFuZCByYWlzZXMgaW52YWxpZA0K IE1PRCh4LCsvLTAuMCkgcmV0dXJucyBhIE5hTiBhbmQgcmFpc2VzIGludmFsaWQNCiBNT0QoKy8t MC4wLCsvLTAuMCkgcmV0dXJucyBhIE5hTiBhbmQgcmFpc2VzIGludmFsaWQNCg0KIE1PRFVMTyhO YU4seSkgcmV0dXJucyBhIE5hTg0KIE1PRFVMTyh4LE5hTikgcmV0dXJucyBhIE5hTg0KIE1PRFVM TygrLy1pbmZpbml0eSx5KSByZXR1cm5zIGEgTmFOIGFuZCByYWlzZXMgaW52YWxpZA0KIE1PRFVM TygrLy1pbmZpbml0eSwrLy1pbmZpbml0eSkgcmV0dXJucyBhIE5hTiBhbmQgcmFpc2VzIGludmFs aWQNCiBNT0RVTE8oeCwrLy0wLjApIHJldHVybnMgYSBOYU4gYW5kIHJhaXNlcyBpbnZhbGlkDQog TU9EVUxPKCsvLTAuMCwrLy0wLjApIHJldHVybnMgYSBOYU4gYW5kIHJhaXNlcyBpbnZhbGlkDQoN CiBORUFSRVNUKE5hTix5KSByZXR1cm5zIGEgTmFODQogTkVBUkVTVCh4LE5hTikgcmV0dXJucyBh IE5hTg0KIE5FQVJFU1QoeCwrLy0wLjApIHJldHVybnMgYSBOYU4gYW5kIHJhaXNlcyBpbnZhbGlk ICBbd2h5Pz8/XQ0KIE5FQVJFU1QoK2luZmluaXR5LCtudW0pIHJldHVybnMgK2luZmluaXR5ID8/ Pw0KIE5FQVJFU1QoK2luZmluaXR5LC1udW0pIHJldHVybnMgK21heGltdW0gZmluaXRlIG51bWJl cg0KIE5FQVJFU1QoLWluZmluaXR5LCtudW0pIHJldHVybnMgLW1heGltdW0gZmluaXRlIG51bWJl cg0KIE5FQVJFU1QoLWluZmluaXR5LC1udW0pIHJldHVybnMgLWluZmluaXR5ID8/Pw0KDQogTklO VChOYU4pIHJldHVybnMgYW4gdW5zcGVjaWZpZWQgdmFsdWUgYW5kIHJhaXNlcyBpbnZhbGlkDQog TklOVCgrLy1pbmZpbml0eSkgcmV0dXJucyBhbiB1bnNwZWNpZmllZCB2YWx1ZSBhbmQgcmFpc2Vz DQogICAgIGludmFsaWQNCiBOSU5UKCsvLWxhcmdlKSwgd2hlcmUgbGFyZ2UgY2Fubm90IGJlIHJl cHJlc2VudGVkIGFzIGFuDQogICAgIGludGVnZXIsIHJldHVybnMgYW4gdW5zcGVjaWZpZWQgdmFs dWUgYW5kIHJhaXNlcyBpbnZhbGlkDQoNCiBSUlNQQUNJTkcoTmFOKSByZXR1cm5zIGEgTmFODQog UlJTUEFDSU5HKCsvLWluZmluaXR5KSByZXR1cm5zICsvLWluZmluaXR5DQogICAgICAgICAgW2Rp ZmZlcnMgZnJvbSBjdXJyZW50IEYyMDAzXQ0KIFJSU1BBQ0lORygrLy0wLjApIHJldHVybnMgKzAu MA0KIFJSU1BBQ0lORygrLy1kZW5vcm1hbCkgcmV0dXJucyA/Pz8NCg0KIFNDQUxFKE5hTix5KSBy ZXR1cm5zIGEgTmFODQogU0NBTEUoKy8taW5maW5pdHkseSkgcmV0dXJucyArLy1pbmZpbml0eQ0K IFNDQUxFKC0wLjAseSkgcmV0dXJucyAtMC4wDQoNCiBTRVRfRVhQT05FTlQoTmFOLHkpIHJldHVy bnMgYSBOYU4NCiBTRVRfRVhQT05FTlQoKy8taW5maW5pdHkseSkgcmV0dXJucyArLy1pbmZpbml0 eQ0KIFNFVF9FWFBPTkVOVCgtMC4wLHkpIHJldHVybnMgLTAuMA0KIFNFVF9FWFBPTkVOVChkZW5v cm1hbCx5KSByZXR1cm5zID8/Pw0KDQogU0lHTihOYU4seSksIHdoZXJlIDAgPCB5LCByZXR1cm5z IHRoZSBzYW1lIE5hTiwNCiAgICAgIGJ1dCB3aXRoIHRoZSBzaWduIGJpdCBjbGVhcmVkLg0KIFNJ R04oTmFOLHkpLCB3aGVyZSB5IDwgMCwgcmV0dXJucyB0aGUgc2FtZSBOYU4sDQogICAgICBidXQg d2l0aCB0aGUgc2lnbiBiaXQgc2V0Lg0KDQogU0lOKE5hTikgcmV0dXJucyBhIE5hTg0KIFNJTigr Ly1pbmZpbml0eSkgcmV0dXJucyBhIE5hTiBhbmQgcmFpc2VzIGludmFsaWQNCiBTSU4oLTAuMCkg cmV0dXJucyAtMC4wDQoNCiBTSU5IKE5hTikgcmV0dXJucyBhIE5hTg0KIFNJTkgoKy8taW5maW5p dHkpIHJldHVybnMgKy8tIGluZmluaXR5DQogU0lOSCgtMC4wKSByZXR1cm5zIC0wLjANCg0KIFNQ QUNJTkcoTmFOKSByZXR1cm5zIGEgTmFODQogU1BBQ0lORygrLy1pbmZpbml0eSkgcmV0dXJucyAr aW5maW5pdHkNCiBTUEFDSU5HKC0wLjApIHJldHVybnMgVElOWSgrMC4wKQ0KIFNQQUNJTkcoZGVu b3JtYWwpIHJldHVybnMgVElOWSgrMC4wKSA/Pz8NCg0KIFNRUlQoTmFOKSByZXR1cm5zIGEgTmFO DQogU1FSVCgraW5maW5pdHkpIHJldHVybnMgK2luZmluaXR5DQogU1FSVCgtMC4wKSByZXR1cm5z IC0wLjANCiBTUVJUKHgpLCB3aGVyZSB4IDwgMC4wLCByZXR1cm5zIGEgTmFOIGFuZCByYWlzZXMg aW52YWxpZA0KDQogVEFOKE5hTikgcmV0dXJucyBhIE5hTg0KIFRBTigrLy1pbmZpbml0eSkgcmV0 dXJucyBhIE5hTiBhbmQgcmFpc2VzIGludmFsaWQNCiBUQU4oLTAuMCkgcmV0dXJucyAtMC4wDQoN CiBUQU5IKE5hTikgcmV0dXJucyBhIE5hTg0KIFRBTkgoKy8taW5maW5pdHkpIHJldHVybnMgKy8t MS4wDQogVEFOSCgtMC4wKSByZXR1cm5zIC0wLjANCg0KDQoxMy43IFszMDA6MTMtMTVdIGluY29y cmVjdGx5IHJlcXVpcmVzIGFuIGluZmluaXRlIHJlc3VsdCBvciBhDQpOYU4gcmVzdWx0IHRvIGFs d2F5cyBzaWduYWwgc29tZSBJRUVFIGV4Y2VwdGlvbi4NCg0KQ29uc2lkZXIgY2hhbmdpbmcgWzMw MDoxM10gImluZmluaXRlIHJlc3VsdCIgdG8gImluZmluaXRlIHJlc3VsdA0KKGZyb20gZmluaXRl IGFyZ3VtZW50cykiLiAgUmVhc29uOiBJRUVFLTc1NCBtYXRoZW1hdGljYWwNCm9wZXJhdGlvbnMg b24gaW5maW5pdHkgdGhhdCBwcm9kdWNlIGFuIGluZmluaXR5IGFyZQ0KdW5leGNlcHRpb25hbC4N Cg0KQ29uc2lkZXIgY2hhbmdpbmcgWzMwMDoxNF0gIk5hTiByZXN1bHQiIHRvICJOYU4gcmVzdWx0 IChmcm9tDQpub24tTmFOIGFyZ3VtZW50cykiLiAgUmVhc29uOiBJRUVFLTc1NCBtYXRoZW1hdGlj YWwgb3BlcmF0aW9ucw0Kb24gcXVpZXQgTmFOIG9wZXJhbmRzIHRoYXQgcHJvZHVjZSBhIHF1aWV0 IE5hTiByZXN1bHQgYXJlDQp1bmV4Y2VwdGlvbmFsLg0KDQpDb25zaWRlciBhZGRpbmcgdG8gMTMu NyBbMzAwOjE1K10gc29tZXRoaW5nIGFsb25nIHRoZSBsaW5lcyBvZjoNCiJVbmxlc3Mgc3BlY2lm aWVkIG90aGVyd2lzZSwgYSBtYXRoIGZ1bmN0aW9uIHdpdGggTmFODQphcmd1bWVudChzKSBzaGFs bCByZXR1cm4gYSBOYU4sIHdoaWNoIHNob3VsZCBiZSBvbmUgb2YgdGhlIE5hTg0KYXJndW1lbnRz LiIgIFRoaXMgYWxsb3dzIG5vdCBoYXZpbmcgdG8gc3BlY2lmeSB0aGUgcmVzdWx0cyBmb3INCmVh Y2ggc3BlY2lmaWMgbWF0aCBmdW5jdGlvbi4NCg0KQ29uc2lkZXIgYWRkaW5nIHRoZSBhYm92ZSBz dWdnZXN0ZWQgY2FzZXMgdG8gZWFjaCBvZiB0aGUgMTMuNy4qDQpmdW5jdGlvbnMsIHBlcmhhcHMs IHdpdGggYSBib2xkIGZhY2UgSUVFRSBzdWItaGVhZGluZy4NCg0KQU5TV0VSOg0KDQpUaGUgcGVu dWx0aW1hdGUgc2VudGVuY2VzIG9mIDEzLjcgd2FzIGludGVuZGVkIGZvciB0aGUgY2FzZQ0Kd2hl cmUgYWxsIGFyZ3VtZW50cyBvbiBlbnRyeSBoYXZlIG5vcm1hbCBvciBkZW5vcm1hbCB2YWx1ZXMN CmFuZCBlZGl0cyBhcmUgc3VwcGxpZWQgdG8gY29ycmVjdCB0aGlzLg0KDQpUbyBzcGVjaWZ5IHRo ZSByZXN1bHRzIG9mIGFsbCB0aGUgaW50cmluc2ljcyBmb3Igbm9uLW5vcm1hbA0KdmFsdWVzIGlz IGJleW9uZCB0aGUgc2NvcGUgb2YgYW4gaW50ZXJwcmV0YXRpb24uIFBlcmhhcHMgdGhpcw0Kc2hv dWxkIGJlIGNvbnNpZGVyZWQgZm9yIGFuIGV4dGVuc2lvbiB0aGF0IGlzIGFkb3B0ZWQgZm9yIHRo ZQ0KbmV4dCByZXZpc2lvbiBvZiB0aGUgc3RhbmRhcmQuIE1lYW53aGlsZSwgZ3VpZGFuY2UgaXMg cHJvdmlkZWQNCmJ5IHRoZSBzZWNvbmQgYW5kIHRoaXJkIHBhcmFncmFwaHMgb2YgMTQuOCwgd2hp Y2ggc3RhdGUNCg0KIlRoZSBpbnF1aXJ5IGZ1bmN0aW9uIElFRUVfU1VQUE9SVF9OQU4gaXMgcHJv dmlkZWQgdG8gaW5xdWlyZQ0Kd2hldGhlciB0aGUgcHJvY2Vzc29yIHN1cHBvcnRzIElFRUUgTmFO cy4gV2hlcmUgdGhlc2UgYXJlIHN1cHBvcnRlZCwNCnRoZWlyIGJlaGF2aW9yIGZvciB1bmFyeSBh bmQgYmluYXJ5IG9wZXJhdGlvbnMsIGluY2x1ZGluZw0KdGhvc2UgZGVmaW5lZCBieSBpbnRyaW5z aWMgZnVuY3Rpb25zIGFuZCBieSBmdW5jdGlvbnMgaW4gaW50cmluc2ljDQptb2R1bGVzLCBzaGFs bCBiZSBjb25zaXN0ZW50IHdpdGggdGhlIHNwZWNpZmljYXRpb25zIGluIHRoZSBJRUVFDQpJbnRl cm5hdGlvbmFsIFN0YW5kYXJkLg0KDQpUaGUgaW5xdWlyeSBmdW5jdGlvbiBJRUVFX1NVUFBPUlRf SU5GIGlzIHByb3ZpZGVkIHRvIGlucXVpcmUgd2hldGhlcg0KdGhlIHByb2Nlc3NvciBzdXBwb3J0 cyBJRUVFIGluZmluaXRpZXMuIFdoZXJlIHRoZXNlIGFyZSBzdXBwb3J0ZWQsDQp0aGVpciBiZWhh dmlvciBmb3IgdW5hcnkgYW5kIGJpbmFyeSBvcGVyYXRpb25zLCBpbmNsdWRpbmcNCnRob3NlIGRl ZmluZWQgYnkgaW50cmluc2ljIGZ1bmN0aW9ucyBhbmQgYnkgZnVuY3Rpb25zIGluIGludHJpbnNp Yw0KbW9kdWxlcywgc2hhbGwgYmUgY29uc2lzdGVudCB3aXRoIHRoZSBzcGVjaWZpY2F0aW9ucyBp biB0aGUgSUVFRQ0KSW50ZXJuYXRpb25hbCBTdGFuZGFyZC4gIg0KDQoNCkVESVRTOg0KDQpQYWdl IGFuZCBsaW5lIG51bWJlcnMgcmVmZXIgdG8gMDQtMDA3Lg0KDQpbMzAwOjEzJjE0XSBTdWJjbGF1 c2UgMTMuNy4gSW4gdGhlIHBlbnVsdGltYXRlIHNlbnRlbmNlLCByZXBsYWNlDQoiSWYiIGJ5ICJJ ZiB0aGUgdmFsdWVzIG9mIGFsbCBpbnB1dCBhcmd1bWVudHMgYXJlIG5vcm1hbCBvcg0KZGVub3Jt YWwgYW5kIiBhbmQgcmVwbGFjZSAiaWYiIGJ5ICJpZiB0aGUgdmFsdWVzIG9mIGFsbCBpbnB1dA0K YXJndW1lbnRzIGFyZSBub3JtYWwgb3IgZGVub3JtYWwgYW5kIg0KDQpTVUJNSVRURUQgQlk6IEZy ZWQgVHlkZW1hbg0KDQpISVNUT1JZOiAwNS0xMjFyMSAgbTE3MSAgRjAzLzAwNDIgc3VibWl0dGVk DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBGMDMvMDA0Nw0KVElUTEU6IFBvbHltb3JwaGlj IGFyZ3VtZW50cyB0byBpbnRyaW5zaWMgcHJvY2VkdXJlcw0KS0VZV09SRFM6IHBvbHltb3JwaGlz bSwgaW50cmluc2ljIHByb2NlZHVyZXMNCkRFRkVDVCBUWVBFOiBJbnRlcnByZXRhdGlvbg0KU1RB VFVTOiBObyBlZGl0cyBpbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNClFVRVNUSU9OOg0KDQpUaGUg ZGVzY3JpcHRpb25zIG9mIHRoZSBpbnRyaW5zaWMgcHJvY2VkdXJlcyBvZnRlbiB1c2UgdGhlIHRl cm0gInR5cGUiDQp3aXRob3V0IHF1YWxpZmljYXRpb24uICBJdCBpcyB1bmNsZWFyIHdoZXRoZXIg dGhleSBtZWFuICJkZWNsYXJlZA0KdHlwZSIgb3IgImR5bmFtaWMgdHlwZSIuICBJZiB0aGV5IG1l YW4gImR5bmFtaWMgdHlwZSIsIHRoZW4gdGhpcyB3b3VsZA0KYXBwZWFyIHRvIGFsbG93IHVubGlt aXRlZCBwb2x5bW9ycGhpYyBhcmd1bWVudHMgdG8gaW50cmluc2ljDQpwcm9jZWR1cmVzIGxpa2Ug QUJTIGFuZCBTSU4uICBSZXNvbHV0aW9uIG9mIGdlbmVyaWMgaW50cmluc2ljDQpwcm9jZWR1cmVz IGluIHRoaXMgY2FzZSB3b3VsZCBjcmVhdGUgYW4gdW5kdWUgKGFuZCBsaWtlbHkgdW5pbnRlbmRl ZCkNCmJ1cmRlbiBvbiB0aGUgcHJvY2Vzc29yLCBhbmQgdGhlIGRlY2xhcmVkIHR5cGUgb2YgdGhl IHJlc3VsdCBvZiBzdWNoIGENCmZ1bmN0aW9uIGNhbGwgd291bGQgYmUgdW5jbGVhciBhcyB3ZWxs Lg0KDQpRdWVzdGlvbiAxOg0KQXJlIHRoZSBhcmd1bWVudHMgb2YgdGhlIGludHJpbnNpYyBmdW5j dGlvbnMgQUxMT0NBVEVELCBBU1NPQ0lBVEVELA0KTEJPVU5ELCBTSEFQRSwgU0laRSwgYW5kIFVC T1VORCBwZXJtaXR0ZWQgdG8gYmUgcG9seW1vcnBoaWM/DQoNClF1ZXN0aW9uIDI6DQooYSkgSXMg dGhlIEFSUkFZIGFyZ3VtZW50IG9mIHRoZSBpbnRyaW5zaWMgZnVuY3Rpb24gQ1NISUZUIHBlcm1p dHRlZA0KICAgIHRvIGJlIHBvbHltb3JwaGljPw0KSWYgc286DQooYikgSWYgdGhlIGFyZ3VtZW50 IGlzIHBvbHltb3JwaGljLCBpcyB0aGUgcmVzdWx0IHBvbHltb3JwaGljPyAgV2hhdA0KICAgIGFy ZSB0aGUgZGVjbGFyZWQgYW5kIGR5bmFtaWMgdHlwZXMgb2YgdGhlIHJlc3VsdD8NCg0KUXVlc3Rp b24gMzoNCihhKSBBcmUgdGhlIEFSUkFZIGFuZCBCT1VOREFSWSBhcmd1bWVudHMgb2YgdGhlIGlu dHJpbnNpYyBmdW5jdGlvbg0KICAgIEVPU0hJRlQgcGVybWl0dGVkIHRvIGJlIHBvbHltb3JwaGlj Pw0KSWYgc286DQooYikgSWYgb25lIG9mIHRoZXNlIGFyZ3VtZW50cyBpcyBwb2x5bW9ycGhpYywg dGhlbiBtdXN0IHRoZSBvdGhlciBiZQ0KICAgIHBvbHltb3JwaGljPw0KKGMpIERvIHRoZSByZXF1 aXJlbWVudHMgb24gdGhlaXIgdHlwZXMgcmVmZXIgdG8gdGhlaXIgZGVjbGFyZWQgdHlwZXMNCiAg ICBvciBkeW5hbWljIHR5cGVzPw0KKGQpIElmIGVpdGhlciBhcmd1bWVudCBpcyBwb2x5bW9ycGhp YywgaXMgdGhlIHJlc3VsdCBwb2x5bW9ycGhpYz8gV2hhdA0KICAgIGFyZSB0aGUgZGVjbGFyZWQg YW5kIGR5bmFtaWMgdHlwZXMgb2YgdGhlIHJlc3VsdD8NCg0KUXVlc3Rpb24gNDoNCihhKSBBcmUg dGhlIEEgYW5kIE1PTEQgYXJndW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgZnVuY3Rpb24NCiAgICBF WFRFTkRTX1RZUEVfT0YgcGVybWl0dGVkIHRvIGJlIHBvbHltb3JwaGljPw0KSWYgc286DQooYikg SWYgb25lIG9mIHRoZXNlIGFyZ3VtZW50cyBpcyBwb2x5bW9ycGhpYywgbXVzdCB0aGUgb3RoZXIg YmUNCiAgICBwb2x5bW9ycGhpYz8NCihjKSBEbyB0aGUgcmVxdWlyZW1lbnRzIG9uIHRoZWlyIHR5 cGVzIHJlZmVyIHRvIHRoZWlyIGRlY2xhcmVkIHR5cGVzDQogICAgb3IgZHluYW1pYyB0eXBlcz8N Cg0KUXVlc3Rpb24gNTogVGhpcyBxdWVzdGlvbiBpcyBkZWZlcnJlZCB0byBpbnRlcnAgRjA4LzAx MDIuDQooYSkgQXJlIHRoZSBUU09VUkNFIGFuZCBGU09VUkNFIGFyZ3VtZW50cyBvZiB0aGUgaW50 cmluc2ljIGZ1bmN0aW9uDQogICAgTUVSR0UgcGVybWl0dGVkIHRvIGJlIHBvbHltb3JwaGljPw0K SWYgc286DQooYikgSWYgb25lIG9mIHRoZXNlIGFyZ3VtZW50cyBpcyBwb2x5bW9ycGhpYywgbXVz dCB0aGUgb3RoZXIgYmUNCiAgICBwb2x5bW9ycGhpYz8NCihjKSBEbyB0aGUgcmVxdWlyZW1lbnRz IG9uIHRoZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzIHJlZmVyIHRvIHRoZWlyDQogICAgZGVjbGFy ZWQgdHlwZXMgb3IgZHluYW1pYyB0eXBlcz8NCihkKSBJZiBlaXRoZXIgYXJndW1lbnQgaXMgcG9s eW1vcnBoaWMsIGlzIHRoZSByZXN1bHQgcG9seW1vcnBoaWM/DQogICAgV2hhdCBhcmUgdGhlIGRl Y2xhcmVkIGFuZCBkeW5hbWljIHR5cGVzIG9mIHRoZSByZXN1bHQ/DQoNClF1ZXN0aW9uIDY6DQpB cmUgdGhlIEZST00gYW5kIFRPIGFyZ3VtZW50cyBvZiB0aGUgaW50cmluc2ljIGZ1bmN0aW9uIE1P VkVfQUxMT0MNCnBlcm1pdHRlZCB0byBiZSBwb2x5bW9ycGhpYz8NCg0KUXVlc3Rpb24gNzoNCihh KSBBcmUgdGhlIEFSUkFZIGFuZCBWRUNUT1IgYXJndW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgZnVu Y3Rpb24gUEFDSw0KICAgIHBlcm1pdHRlZCB0byBiZSBwb2x5bW9ycGhpYz8NCklmIHNvOg0KKGIp IElmIG9uZSBvZiB0aGVzZSBhcmd1bWVudHMgaXMgcG9seW1vcnBoaWMsIG11c3QgdGhlIG90aGVy IGJlDQogICAgcG9seW1vcnBoaWM/DQooYykgRG8gdGhlIHJlcXVpcmVtZW50cyBvbiB0aGUgdHlw ZXMgb2YgdGhlIGFyZ3VtZW50cyByZWZlciB0byB0aGVpcg0KICAgIGRlY2xhcmVkIHR5cGVzIG9y IGR5bmFtaWMgdHlwZXM/DQooZCkgSWYgZWl0aGVyIGFyZ3VtZW50IGlzIHBvbHltb3JwaGljLCBp cyB0aGUgcmVzdWx0IHBvbHltb3JwaGljPw0KICAgIFdoYXQgYXJlIHRoZSBkZWNsYXJlZCBhbmQg ZHluYW1pYyB0eXBlcyBvZiB0aGUgcmVzdWx0Pw0KDQpRdWVzdGlvbiA4Og0KKGEpIEFyZSB0aGUg U09VUkNFIGFuZCBQQUQgYXJndW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMgZnVuY3Rpb24gUkVTSEFQ RQ0KICAgIHBlcm1pdHRlZCB0byBiZSBwb2x5bW9ycGhpYz8NCklmIHNvOg0KKGIpIElmIG9uZSBv ZiB0aGVzZSBhcmd1bWVudHMgaXMgcG9seW1vcnBoaWMsIG11c3QgdGhlIG90aGVyIGJlDQogICAg cG9seW1vcnBoaWM/DQooYykgRG8gdGhlIHJlcXVpcmVtZW50cyBvbiB0aGUgdHlwZXMgb2YgdGhl IGFyZ3VtZW50cyByZWZlciB0byB0aGVpcg0KICAgIGRlY2xhcmVkIHR5cGVzIG9yIGR5bmFtaWMg dHlwZXM/DQooZCkgSWYgZWl0aGVyIGFyZ3VtZW50IGlzIHBvbHltb3JwaGljLCBpcyB0aGUgcmVz dWx0IHBvbHltb3JwaGljPw0KICAgIFdoYXQgYXJlIHRoZSBkZWNsYXJlZCBhbmQgZHluYW1pYyB0 eXBlcyBvZiB0aGUgcmVzdWx0Pw0KDQpRdWVzdGlvbiA5Og0KKGEpIEFyZSB0aGUgQSBhbmQgQiBh cmd1bWVudHMgb2YgdGhlIGludHJpbnNpYyBmdW5jdGlvbiBTQU1FX1RZUEVfQVMNCiAgICBwZXJt aXR0ZWQgdG8gYmUgcG9seW1vcnBoaWM/DQpJZiBzbzoNCihiKSBJZiBvbmUgb2YgdGhlc2UgYXJn dW1lbnRzIGlzIHBvbHltb3JwaGljLCBtdXN0IHRoZSBvdGhlciBiZQ0KICAgIHBvbHltb3JwaGlj Pw0KKGMpIERvIHRoZSByZXF1aXJlbWVudHMgb24gdGhlaXIgdHlwZXMgcmVmZXIgdG8gdGhlaXIg ZGVjbGFyZWQgdHlwZXMNCiAgICBvciBkeW5hbWljIHR5cGVzPw0KDQpRdWVzdGlvbiAxMDoNCihh KSBJcyB0aGUgU09VUkNFIGFyZ3VtZW50IG9mIHRoZSBpbnRyaW5zaWMgZnVuY3Rpb24gU1BSRUFE IHBlcm1pdHRlZA0KICAgIHRvIGJlIHBvbHltb3JwaGljPw0KSWYgc286DQooYikgSWYgdGhlIGFy Z3VtZW50IGlzIHBvbHltb3JwaGljLCBpcyB0aGUgcmVzdWx0IHBvbHltb3JwaGljPyAgV2hhdA0K ICAgIGFyZSB0aGUgZGVjbGFyZWQgYW5kIGR5bmFtaWMgdHlwZXMgb2YgdGhlIHJlc3VsdD8NCg0K UXVlc3Rpb24gMTE6DQooYSkgSXMgdGhlIFNPVVJDRSBhcmd1bWVudCBvZiB0aGUgaW50cmluc2lj IGZ1bmN0aW9uIFRSQU5TRkVSDQogICAgcGVybWl0dGVkIHRvIGJlIHBvbHltb3JwaGljPw0KKGIp IElzIHRoZSBNT0xEIGFyZ3VtZW50IG9mIHRoZSBpbnRyaW5zaWMgZnVuY3Rpb24gVFJBTlNGRVIg cGVybWl0dGVkDQogICAgdG8gYmUgcG9seW1vcnBoaWM/DQpJZiB0aGUgYW5zd2VyIHRvIChiKSBp cyB5ZXM6DQooYykgSWYgdGhlIE1PTEQgYXJndW1lbnQgaXMgcG9seW1vcnBoaWMsIGlzIHRoZSBy ZXN1bHQgcG9seW1vcnBoaWM/DQogICAgV2hhdCBhcmUgdGhlIGRlY2xhcmVkIGFuZCBkeW5hbWlj IHR5cGVzIG9mIHRoZSByZXN1bHQ/DQoNClF1ZXN0aW9uIDEyOg0KKGEpIElzIHRoZSBNQVRSSVgg YXJndW1lbnQgb2YgdGhlIGludHJpbnNpYyBmdW5jdGlvbiBUUkFOU1BPU0UNCiAgICBwZXJtaXR0 ZWQgdG8gYmUgcG9seW1vcnBoaWM/DQpJZiBzbzoNCihiKSBJZiB0aGUgYXJndW1lbnQgaXMgcG9s eW1vcnBoaWMsIGlzIHRoZSByZXN1bHQgcG9seW1vcnBoaWM/ICBXaGF0DQogICAgYXJlIHRoZSBk ZWNsYXJlZCBhbmQgZHluYW1pYyB0eXBlcyBvZiB0aGUgcmVzdWx0Pw0KDQpRdWVzdGlvbiAxMzoN CihhKSBBcmUgdGhlIFZFQ1RPUiBhbmQgRklFTEQgYXJndW1lbnRzIG9mIHRoZSBpbnRyaW5zaWMg ZnVuY3Rpb24NCiAgICBVTlBBQ0sgcGVybWl0dGVkIHRvIGJlIHBvbHltb3JwaGljPw0KSWYgc286 DQooYikgSWYgb25lIG9mIHRoZXNlIGFyZ3VtZW50cyBpcyBwb2x5bW9ycGhpYywgbXVzdCB0aGUg b3RoZXIgYmUNCiAgICBwb2x5bW9ycGhpYz8NCihjKSBEbyB0aGUgcmVxdWlyZW1lbnRzIG9uIHRo ZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzIHJlZmVyIHRvIHRoZWlyDQogICAgZGVjbGFyZWQgdHlw ZXMgb3IgZHluYW1pYyB0eXBlcz8NCihkKSBJZiBlaXRoZXIgYXJndW1lbnQgaXMgcG9seW1vcnBo aWMsIGlzIHRoZSByZXN1bHQgcG9seW1vcnBoaWM/DQogICAgV2hhdCBhcmUgdGhlIGRlY2xhcmVk IGFuZCBkeW5hbWljIHR5cGVzIG9mIHRoZSByZXN1bHQ/DQoNClF1ZXN0aW9uIDE0Og0KQXJlIGFu eSBvZiB0aGUgb3RoZXIgYXJndW1lbnRzIG9mIGFueSBpbnRyaW5zaWMgcHJvY2VkdXJlIHBlcm1p dHRlZCB0bw0KYmUgcG9seW1vcnBoaWM/DQoNCkFOU1dFUjoNCg0KVGhlIGFzc2VydGlvbiB0aGF0 IGl0IGlzIHVuY2xlYXIgd2hldGhlciAidHlwZSIgbWVhbnMgZGVjbGFyZWQsIGR5bmFtaWMsDQpv ciBib3RoLCBpcyBtaXNndWlkZWQuICBUaGUgZ2VuZXJhbCBydWxlIGlzIHRoYXQgd2hlcmV2ZXIg aXQgbWFrZXMNCnNlbnNlLCBpdCBtZWFucyBib3RoLiAgV2hlcmUgb25seSBvbmUgbWVhbmluZyBt YWtlcyBzZW5zZSwgaXQgbWVhbnMNCnRoYXQgb25lLiAgV2hlcmUgb25seSBvbmUgbWVhbmluZyBp cyBpbnRlbmRlZCBidXQgaXQgd291bGQgb3RoZXJ3aXNlDQpub3QgYmUgY2xlYXIgZnJvbSBjb250 ZXh0LCBpdCBpcyBxdWFsaWZpZWQgYXMgImRlY2xhcmVkIHR5cGUiIG9yDQoiZHluYW1pYyB0eXBl Ii4NCg0KQW5zd2VyIDE6DQpZZXMuDQoNCkFuc3dlciAyOg0KKGEpIFllcy4NCihiKSBZZXMuICAi VGhlIHJlc3VsdCBpcyBvZiB0aGUgdHlwZSAuLi4gb2YgQVJSQVkiLg0KDQpBbnN3ZXIgMzoNCihh KSBZZXMuDQooYikgTm8uDQooYykgVGhlIHJlcXVpcmVtZW50cyBhcHBseSB0byBib3RoIHRoZSBk ZWNsYXJlZCB0eXBlIGFuZCB0aGUgZHluYW1pYw0KICAgIHR5cGUuDQooZCkgIlRoZSB0eXBlIGhh cyAuLi4gdGhlIHR5cGUgLi4uIG9mIEFSUkFZIi4gIFRoZXJlZm9yZSBpdCBpcyBwb2x5bW9ycGhp Yw0KICAgIGlmIEFSUkFZIGlzIHBvbHltb3JwaGljLg0KDQpBbnN3ZXIgNDoNCihhKSBZZXMuDQoo YikgTm8uDQooYykgVGhlIHJlcXVpcmVtZW50cyByZWZlciB0byB0aGUgZGVjbGFyZWQgdHlwZTsg dGhpcyBpcyBleHBsaWNpdGx5DQogICAgc3RhdGVkLg0KDQpBbnN3ZXIgNTogIFRoaXMgcXVlc3Rp b24gaGFzIGJlZW4gZGVmZXJyZWQgdG8gaW50ZXJwIEYwOC8wMTAyDQogICBUU09VUkNFIGFuZCBG U09VUkNFIGFyZSByZXF1aXJlZCBoYXZlIHRoZSBzYW1lIGRlY2xhcmVkIHR5cGUsIGJ1dCBtYXkg YmUgDQogICBwb2x5bW9ycGhpYy4gIFRoZSBxdWVzdGlvbnMgb2Ygd2hhdCB0aGUgcmVxdWlyZW1l bnRzIGFyZSBvbiB0aGUgZHluYW1pYyB0eXBlLCANCiAgIGFuZCB3aGV0aGVyIHRoZSByZXN1bHQg aXMgcG9seW1vcnBoaWMsIGFyZSBkZWZlcnJlZCB0byBpbnRlcnAgRjA4LzAxMDIuDQoNCkFuc3dl ciA2Og0KWWVzLg0KDQpBbnN3ZXIgNzoNCihhKSBZZXMuDQooYikgTm8uDQooYykgVGhlIHJlcXVp cmVtZW50cyByZWZlciB0byBib3RoIHRoZSBkZWNsYXJlZCB0eXBlIGFuZCB0aGUgZHluYW1pYw0K ICAgIHR5cGUuICBOb3RlIHRoYXQgdGhpcyBtZWFucyB0aGF0IGlmIGVpdGhlciBBUlJBWSBvciBW RUNUT1IgaXMgbm90DQogICAgcG9seW1vcnBoaWMsIHRoZSByZXF1aXJlbWVudCBmb3IgdHlwZSBt YXRjaGluZyBtZWFucyB0aGF0IHRoZQ0KICAgIGR5bmFtaWMgdHlwZSBvZiB0aGUgcG9seW1vcnBo aWMgYXJndW1lbnQgaXMga25vd24uDQooZCkgVGhlIHJlc3VsdCAiaGFzIHRoZSBzYW1lIHR5cGUi IGFzIEFSUkFZLCBhbmQgdGhlcmVmb3JlIGlzIHBvbHltb3JwaGljDQogICAgaWYgQVJSQVkgaXMg cG9seW1vcnBoaWMuDQoNCkFuc3dlciA4Og0KKGEpIFllcy4NCihiKSBOby4NCihjKSBUaGUgcmVx dWlyZW1lbnRzIHJlZmVyIHRvIGJvdGggdGhlIGRlY2xhcmVkIHR5cGUgYW5kIHRoZSBkeW5hbWlj DQogICAgdHlwZS4NCihkKSBUaGUgcmVzdWx0ICJoYXMgdGhlIHNhbWUgdHlwZSIgYXMgU09VUkNF LCBhbmQgdGhlcmVmb3JlIGlzIHBvbHltb3JwaGljDQogICAgaWYgYW5kIG9ubHkgaWYgU09VUkNF IGlzIHBvbHltb3JwaGljLg0KDQpBbnN3ZXIgOToNCihhKSBZZXMuDQooYikgTm8uDQooYykgVGhl IHJlcXVpcmVtZW50cyBhcmUgZXhwbGljaXRseSBzdGF0ZWQgdG8gcmVmZXIgdG8gdGhlIGRlY2xh cmVkIHR5cGUuDQoNCkFuc3dlciAxMDoNCihhKSBZZXMuDQooYikgWWVzLiAgIlRoZSByZXN1bHQg aXMgLi4uIG9mIHRoZSBzYW1lIHR5cGUgLi4uIGFzIEFSUkFZLiIuDQoNCkFuc3dlciAxMToNCihh KSBZZXMuDQooYikgWWVzLg0KKGMpICJUaGUgcmVzdWx0IGlzIG9mIHRoZSBzYW1lIHR5cGUgLi4u IGFzIE1PTEQuIi4NCg0KQW5zd2VyIDEyOg0KKGEpIFllcy4NCihiKSBZZXMuICBUaGUgZGVjbGFy ZWQgYW5kIGR5bmFtaWMgdHlwZXMgb2YgdGhlIHJlc3VsdCBhcmUgdGhvc2Ugb2YNCiAgICB0aGUg YXJndW1lbnQuDQoNCkFuc3dlciAxMzoNCihhKSBZZXMuDQooYikgWWVzLg0KKGMpIFRoZSByZXF1 aXJlbWVudHMgcmVmZXIgdG8gYm90aCB0aGUgZGVjbGFyZWQgdHlwZSBhbmQgdGhlIGR5bmFtaWMN CiAgICB0eXBlLg0KKGQpIFllcy4gIFRoZSByZXN1bHQgaGFzIHRoZSBzYW1lIGRlY2xhcmVkIGFu ZCBkeW5hbWljIHR5cGVzIGFzIFZFQ1RPUiwgDQogICAgYW5kIGlzIHBvbHltb3JwaGljIGlmIGFu ZCBvbmx5IGlmIFZFQ1RPUiBpcyBwb2x5bW9ycGhpYy4NCg0KQW5zd2VyIDE0Og0KWWVzLiAgRm9y IGV4YW1wbGUsIElNQUdFX0lOREVYLCBMQ09CT1VORCwgUFJFU0VOVCwgU1RPUkFHRV9TSVpFLCBh bmQNClVDT0JPVU5ELg0KDQpFRElUUzoNCg0KTm9uZS4NCg0KU1VCTUlUVEVEIEJZOiBSb2IgSmFt ZXMNCg0KSElTVE9SWTogMDUtMTM4ICAgIG0xNzEgIEYwMy8wMDQ3IHN1Ym1pdHRlZCAtIGNvbnRh aW5lZCB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb25zL2Fuc3dlcnMNCiAg ICAgICAgIDA1LTEzOHIxICBtMTcxICBDb250YWluZWQgdGhlIGVkaXRzLCBwYXNzZWQgYnkgSjMg bWVldGluZw0KICAgICAgICAgMDUtMTcwICAgIG0xNzIgIFBhc3NlZCBKMyBsZXR0ZXIgYmFsbG90 ICMxMQ0KICAgICAgICAgTjE2MjIgICAgIG0xNzIgIEZhaWxlZCBXRzUgYmFsbG90IE4xNjI5DQog ICAgICAgICAxMy0yNDIgICAgbTIwMCAgUmV2aXNlZCAtIHBhc3NlZCBieSBKMyBtZWV0aW5nDQog ICAgICAgICAxMy0yNjIgICAgbTIwMSAgUGFzc2VkIEozIGxldHRlciBiYWxsb3QgIzI4IDEzLTI1 NXIxDQogICAgICAgICBOMTk5MCAgICAgbTIwMiAgUGFzc2VkIGFzIGFtZW5kZWQgYnkgV0c1IGJh bGxvdCA2IE4xOTg3Lzg4LzkwDQoqKiBRNSB3YXMgZGVmZXJyZWQgdG8gRjA4LzAxMDI7IEEyKGIp IGFuZCBBMTMoZCkgd2VyZSBtb2RpZmllZA0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIEluIEYy MDA4IENvcnJpZ2VuZHVtIDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwMy8wMDUxDQpU SVRMRTogUmVwZWF0IHNwZWNpZmllcnMgYW5kIFVERFRJTw0KS0VZV09SRFM6IHJlcGVhdCBzcGVj aWZpZXIsIFBPUz0sIFVERFRJTw0KREVGRUNUIFRZUEU6IEludGVycHJldGF0aW9uDQpTVEFUVVM6 IEozIGNvbnNpZGVyYXRpb24gaW4gcHJvZ3Jlc3MNCg0KUVVFU1RJT046DQoNCkNvbnNpZGVyIHRo ZSBmb2xsb3dpbmcgcHJvZ3JhbToNCg0KTU9EVUxFIG0NCg0KICBUWVBFIHQNCiAgICBJTlRFR0VS IDo6IGkNCiAgICBJTlRFR0VSIDo6IGoNCiAgRU5EIFRZUEUNCg0KICBJTlRFR0VSIDo6IGlwb3MN Cg0KICBJTlRFUkZBQ0UgUkVBRChGT1JNQVRURUQpDQogICAgTU9EVUxFIFBST0NFRFVSRSBmb3Jt YXR0ZWRSZWFkVA0KICBFTkQgSU5URVJGQUNFDQoNCkNPTlRBSU5TDQoNCiAgU1VCUk9VVElORSBm b3JtYXR0ZWRSZWFkVCAoZHR2LCB1bml0LCBpb3R5cGUsIHZsaXN0LCBpb3N0YXQsIGlvbXNnKQ0K ICAgIENMQVNTKFQpLCBJTlRFTlQoSU5PVVQpIDo6IGR0dg0KICAgIElOVEVHRVIsIElOVEVOVChJ TikgOjogdW5pdA0KICAgIENIQVJBQ1RFUigqKSwgSU5URU5UKElOKSA6OiBpb3R5cGUNCiAgICBJ TlRFR0VSLCBJTlRFTlQoSU4pIDo6IHZsaXN0KDopDQogICAgSU5URUdFUiwgSU5URU5UKE9VVCkg OjogaW9zdGF0DQogICAgQ0hBUkFDVEVSKCopLCBJTlRFTlQoSU5PVVQpIDo6IGlvbXNnDQoNCiAg ICBSRUFEKHVuaXQsICopIGR0diVpDQogICAgSU5RVUlSRSh1bml0LCBQT1M9aXBvcykNCiAgICBS RUFEKHVuaXQsICopIGR0diVqDQogIEVORCBTVUJST1VUSU5FDQoNCkVORCBNT0RVTEUNCg0KUFJP R1JBTSBmb28NCiAgVVNFIG0NCiAgVFlQRSh0KSA6OiBhDQogIE9QRU4oMTAsIEZJTEU9J2ZpbGUu dHh0JywgQUNDRVNTPSdzdHJlYW0nLCBGT1JNPSdmb3JtYXR0ZWQnKQ0KICBXUklURSgxMCwgJyhB KScpICcyKjMgNScNCiAgUkVXSU5EKDEwKQ0KICBSRUFEKDEwLCAqKSBhDQogIFBSSU5UICosIGEl aSwgYSVqLCBpcG9zDQpFTkQgUFJPR1JBTQ0KDQoxMC45IG9mIEZvcnRyYW4gMjAwMyBzdGF0ZXMg dGhhdCB0aGUgcipjIGZvcm0gb2YgbGlzdC1kaXJlY3RlZCBpbnB1dA0KaXMgZXF1aXZhbGVudCB0 byByIG9jY3VycmVuY2VzIG9mIGMuICBTbywgd2hlbiB0aGUgcmVhZCBpcyBwZXJmb3JtZWQsDQpp dCBpcyBhcyBpZiB0aGUgaW5wdXQgcmVjb3JkIGNvbnRhaW5zIHR3byBvY2N1cnJlbmNlcyBvZiB0 aGUgbnVtYmVyIDMuDQoNClRoZSBmaXJzdCBjaGlsZCByZWFkIHN0YXRlbWVudCByZWFkcyB0aGUg Zmlyc3QgMywgYW5kIGRvZXMgbm90IGFkdmFuY2UNCnRoZSBmaWxlIHBvc2l0aW9uIHRvIHRoZSBu ZXh0IHJlY29yZCAoYmVjYXVzZSBpdCBpcyBhIGNoaWxkIGRhdGENCnRyYW5zZmVyIHN0YXRlbWVu dCkuICBJdCBhcHBlYXJzIHRoYXQgdGhlIHNlY29uZCByZWFkIHN0YXRlbWVudCBzaG91bGQNCnJl YWQgdGhlIHNlY29uZCAzLiAgQnV0IHRoZSBmaWxlIHBvc2l0aW9uIGJldHdlZW4gdGhlIGNoaWxk IHJlYWQNCnN0YXRlbWVudHMgaXMgdW5jbGVhci4NCg0KV2hhdCBkb2VzIHRoZSBhYm92ZSBwcm9n cmFtIHByaW50Pw0KDQpBTlNXRVI6DQoNClRoZSBzdGFuZGFyZCBkb2VzIHNwZWNpZnkgdGhlIGJl aGF2aW9yIG9mIGEgcHJvY2Vzc29yIHdoZW4gYSBsaXN0DQpkaXJlY3RlZCBpbnB1dCByZWNvcmQg Y29udGFpbnMgYSByKmMgY29uc3RhbnQsIGJ1dCB0aGF0IGlzIGlycmVsZXZhbnQNCnRvIHRoZSBx dWVzdGlvbiBhdCBoYW5kLiAgRXhlY3V0aW5nIGFuIElOUVVJUkUgc3RhdGVtZW50IHVzaW5nIGFu DQppbnRlcm5hbCB1bml0IGlzIHByb2hpYml0ZWQgYnkgWzIzNToxNl0gOS4xMC4yLjFwMi4gIFRo ZSBwcm9ncmFtIGRvZXMNCm5vdCBjb25mb3JtLg0KDQpFRElUUzoNCg0KTm9uZS4NCg0KU1VCTUlU VEVEIEJZOiBSb2IgSmFtZXMNCg0KSElTVE9SWTogMDUtMTQyICAgICAgICBtMTcxICBGMDMvMDA1 MSBzdWJtaXR0ZWQNCiAgICAgICAgIDA1LTE0MnIyICAgICAgbTE3MSAgUGFzc2VkIGJ5IEozIG1l ZXRpbmcNCiAgICAgICAgIDA1LTE2Ny8xNzAgICAgbTE3MiAgRmFpbGVkIEozIGxldHRlciBiYWxs b3QgIzExDQogICAgICAgICAwNi0zNjlyMSAgICAgIG0xNzggIFBhc3NlZCBieSBKMyBtZWV0aW5n DQogICAgICAgICAwNy0yNTByMS8yNzIgIG0xODEgIEZhaWxlZCBKMyBsZXR0ZXIgYmFsbG90ICMx Mw0KICAgICAgICAgMTMtMjQ4ICAgICAgICBtMjAwICBSZXZpc2VkIC0gd2l0aGRyYXduDQoNClRo ZSBxdWVzdGlvbiByYWlzZWQgYXQgbTIwMCB3YXMgYWJvdXQgdGhlIGRlZmluaXRpb24gb2YgImlu dGVybmFsIHVuaXQNCig5LjYuNC44LjMpIiBbMjI2OjRdLCB3aGljaCBzZWVtcyB0byBjb25mbGlj dCB3aXRoIHRoZSBUZXJtcyBhbmQNCkRlZmluaXRpb25zIFsxMjoyNi0zMV06DQoNCiAgICAxLjMu OTQNCiAgICAgaW50ZXJuYWwgZmlsZQ0KICAgICAgY2hhcmFjdGVyIHZhcmlhYmxlIHRoYXQgaXMg Y29ubmVjdGVkIHRvIGFuIGludGVybmFsIHVuaXQgKDkuNCkNCg0KICAgIDEuMy45NQ0KICAgICBp bnRlcm5hbCB1bml0DQogICAgICBpbnB1dC9vdXRwdXQgdW5pdCB0aGF0IGlzIGNvbm5lY3RlZCB0 byBhbiBpbnRlcm5hbCBmaWxlICg5LjUuNCkNCg0KVGhlIGNsYXJpZmljYXRpb24gd2UgbmVlZGVk IGJ1dCBjb3VsZG4ndCBmaW5kIGlzIHByb2JhYmx5IFsyMDg6OC0xMF06DQoNCiAgICBBbiBpbnRl cm5hbCB1bml0IGlzIHVzZWQgdG8gcmVmZXIgdG8gYW4gaW50ZXJuYWwgZmlsZSBhbmQgaXMNCiAg ICBzcGVjaWZpZWQgYnkgYW4gaW50ZXJuYWwtZmlsZS12YXJpYWJsZSBvciBhIGZpbGUtdW5pdC1u dW1iZXINCiAgICB3aG9zZSB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgdW5pdCBhcmd1bWVudCBvZiBh biBhY3RpdmUgZGVmaW5lZA0KICAgIGlucHV0L291dHB1dCBwcm9jZWR1cmUgKDkuNi40LjgpLg0K DQovU3Rhbg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjAzLzAwNTMNClRJVExFOiBUaGUg QklORCBhdHRyaWJ1dGUgZm9yIENfUFRSIGFuZCBDX0ZVTlBUUg0KS0VZV09SRFM6IEJJTkQgYXR0 cmlidXRlLCBDX1BUUiwgQ19GVU5QVFIsIHByaXZhdGUgY29tcG9uZW50cw0KREVGRUNUIFRZUEU6 IEVycmF0dW0NClNUQVRVUzogSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0K MS4gRG8gdGhlIGRlcml2ZWQgdHlwZXMgQ19QVFIgYW5kIENfRlVOUFRSIGhhdmUgdGhlIEJJTkQg YXR0cmlidXRlPw0KDQpUaGlzIGFmZmVjdHMgd2hldGhlciBhbiBvYmplY3Qgb2Ygb25lIG9mIHRo ZXNlIHR5cGVzIGlzIHBlcm1pdHRlZA0KZGlyZWN0bHkgaW4gQ09NTU9OLiAgQzUxMDEgaW4gdGhl IEZvcnRyYW4gMjAwOCBzdGFuZGFyZCBzdGF0ZXMgIklmIGENCmNvbW1vbi1ibG9jay1vYmplY3Qg aXMgb2YgYSBkZXJpdmVkIHR5cGUsIGl0IHNoYWxsIGJlIGEgc2VxdWVuY2UgdHlwZQ0Kb3IgYSB0 eXBlIHdpdGggdGhlIEJJTkQgYXR0cmlidXRlIGFuZCBpdCBzaGFsbCBoYXZlIG5vIGRlZmF1bHQN CmluaXRpYWxpemF0aW9uLiINCg0KMi4gV2hldGhlciB0aGUgZGVyaXZlZCB0eXBlcyBDX1BUUiBh bmQgQ19GVU5QVFIgaGF2ZSB0aGUgQklORA0KYXR0cmlidXRlIGFmZmVjdHMgd2hldGhlciB0aGV5 IGFyZSBleHRlbnNpYmxlLiAgU3ViY2xhdXNlIDQuNS43LjEgb2YNCnRoZSBGb3J0cmFuIDIwMDgg c3RhbmRhcmQgc3RhdGVzICJBIG5vbnNlcXVlbmNlIGRlcml2ZWQgdHlwZSB0aGF0IGRvZXMNCm5v dCBoYXZlIHRoZSBCSU5EIGF0dHJpYnV0ZSBpcyBhbiBleHRlbnNpYmxlIHR5cGUuIiAgQXJlIHRo ZXNlIHR5cGVzDQpleHRlbnNpYmxlPw0KDQozLiBTdWJjbGF1c2UgMTUuMy4zIG9mIHRoZSBGb3J0 cmFuIDIwMDggc3RhbmRhcmQgc3RhdGVzIHRoYXQgQ19QVFIgYW5kDQpDX0ZVTlBUUiBhcmUgZGVy aXZlZCB0eXBlcyB3aXRoIHByaXZhdGUgY29tcG9uZW50cy4gQXJlIHVzZXItZGVmaW5lZA0KZGVy aXZlZCB0eXBlcyB3aXRoIHRoZSBCSU5EIGF0dHJpYnV0ZSBwZXJtaXR0ZWQgdG8gaGF2ZSBwcml2 YXRlDQpjb21wb25lbnRzPw0KDQpBTlNXRVI6DQoNCjEuIE5vLCB0aGVzZSB0eXBlcyBkbyBub3Qg aGF2ZSB0aGUgQklORCBhdHRyaWJ1dGUuICAxNS4zLjMgZG9lcyBub3QNCnNwZWNpZnkgdGhhdCB0 aGV5IGhhdmUgdGhlIEJJTkQgYXR0cmlidXRlLiAgMTUuMy40IGRvZXMgbm90IHJlcXVpcmUNCnRo ZW0gdG8gaGF2ZSB0aGUgQklORCBhdHRyaWJ1dGUgaW4gb3JkZXIgdG8gbWFrZSB0aGVtIGludGVy b3BlcmFibGUuDQoxNS4zLjUgd291bGQgcmVxdWlyZSB0aGVtIHRvIGludGVyb3BlcmF0ZSB3aXRo IGEgQyBzdHJ1Y3QgaWYgdGhleSBoYWQNCnRoZSBCSU5EIGF0dHJpYnV0ZTsgdGhpcyBpcyBhYnN1 cmQsIHNpbmNlIEMgb2JqZWN0IHBvaW50ZXJzIGFuZCBDDQpmdW5jdGlvbiBwb2ludGVycyBhcmUg Y2xlYXJseSBub3Qgc3RydWN0cy4NCg0KTm90ZSB0aGF0IHdoZXRoZXIgdGhlc2UgdHlwZXMgaGF2 ZSBkZWZhdWx0IGluaXRpYWxpemF0aW9uIGlzIG5vdA0Kc3BlY2lmaWVkIGJ5IHRoZSBzdGFuZGFy ZCwgc28gcG9zc2Vzc2lvbiBvZiBCSU5EIHdvdWxkIG5vdCBuZWNlc3NhcmlseQ0KaGF2ZSBhbGxv d2VkIHRoZW0gaW4gQ09NTU9OIGFueXdheS4NCg0KRWRpdHMgYXJlIHByb3ZpZGVkIHRvIGNvcnJl Y3QgaW5jb21wbGV0ZSwgYW5kIHRodXMgbWlzbGVhZGluZywNCnN0YXRlbWVudHMgYWJvdXQgZGVy aXZlZCB0eXBlcyBhbmQgdGhlIEJJTkQgYXR0cmlidXRlLg0KDQoyLiBObywgdGhlc2UgdHlwZXMg d2VyZSBub3QgaW50ZW5kZWQgdG8gYmUgZXh0ZW5zaWJsZS4gIEl0IHdhcyBhbg0Kb3ZlcnNpZ2h0 IHRoYXQgdGhlc2UgdHlwZXMgd2VyZSBub3QgZXhwbGljaXRseSBleGNsdWRlZCBmcm9tIGJlaW5n DQpleHRlbnNpYmxlIGJ5IHN1YmNsYXVzZSA0LjUuNy4xIHBhcmFncmFwaCAxIG9mIHRoZSBGb3J0 cmFuIDIwMDgNCnN0YW5kYXJkLiAgQW4gZWRpdCBpcyBwcm92aWRlZCB0byBjb3JyZWN0IHRoaXMu DQoNCjMuIFllcywgYSB1c2VyLWRlZmluZWQgZGVyaXZlZCB0eXBlIHdpdGggdGhlIEJJTkQgYXR0 cmlidXRlIGlzDQpwZXJtaXR0ZWQgdG8gaGF2ZSBwcml2YXRlIGNvbXBvbmVudHMuICBUaGlzIHNp dHVhdGlvbiBpcyB0aGUgc2FtZQ0KYXMgZm9yIFNFUVVFTkNFIHR5cGVzLCB3aGljaCBhcmUgc2lt aWxhciAoYnV0IG5vdCBpbnRlcm9wZXJhYmxlKS4NCkFzIHdpdGggU0VRVUVOQ0UgdHlwZXMsIG1h a2luZyBhIGNvbXBvbmVudCBQUklWQVRFIGRvZXMgcHJldmVudA0KYWNjZXNzLCBpbiBhIGNvbmZv cm1pbmcgcHJvZ3JhbSwgdG8gdGhlIGNvbXBvbmVudCBieSBhIHByb2dyYW1tZXIgd2hvDQppcyBz dWZmaWNpZW50bHkgZGV0ZXJtaW5lZDsgaG93ZXZlciwgaXQgY29udGludWVzIHRvIGZ1bGZpbGwg dGhlDQpzb2Z0d2FyZSBlbmdpbmVlcmluZyByb2xlIGZvciB3aGljaCBpdCB3YXMgaW50ZW5kZWQu ICBOb3RlIGZ1cnRoZXINCnRoYXQgdGhlcmUgYXJlIG1hbnkgb3RoZXIgc2l0dWF0aW9ucyB3aGVy ZSB0d28gZGlmZmVyZW50IEZvcnRyYW4NCmRlcml2ZWQgdHlwZXMgd2lsbCBpbnRlcm9wZXJhdGUg d2l0aCB0aGUgc2FtZSBDIGRlcml2ZWQgdHlwZTsgdGhpcyBpcw0Kbm90IGEgZGVmZWN0IGluIGVp dGhlciBzdGFuZGFyZCwgYnV0IHNpbXBseSBhIGNvbnNlcXVlbmNlIG9mIHRoZSB0d28NCmxhbmd1 YWdlcyBoYXZpbmcgZGlmZmVyZW50IGFwcHJvYWNoZXMgdG8gdHlwZSBjb21wYXRpYmlsaXR5Lg0K DQpFRElUUyB0byAxMC0wMDdyMToNCg0KWzE5OjE1LTE2XSBJbiAxLjMuMTQ3LjYsDQogIHJlcGxh Y2UgdGhlIGRlZmluaXRpb24gb2YgImV4dGVuc2libGUgdHlwZSINCiAgd2l0aCAidHlwZSB0aGF0 IG1heSBiZSBleHRlbmRlZCB1c2luZyB0aGUgRVhURU5EUyBjbGF1c2UgKDQuNS43LjEpIi4NCntS ZXBhaXIgZGVmaW5pdGlvbiBvZiBleHRlbnNpYmxlIHR5cGUufQ0KDQpbNzc6M10gSW4gNC41Ljcu MXAxLA0KICBBZnRlciAiQSBkZXJpdmVkIHR5cGUiIGluc2VydA0KICAgICIsIG90aGVyIHRoYW4g dGhlIHR5cGUgQ19QVFIgb3IgQ19GVU5QVFIgZnJvbSB0aGUgaW50cmluc2ljIG1vZHVsZQ0KICAg ICBJU09fQ19CSU5ESU5HLCINCntQcm9oaWJpdCB0aGVzZSB0eXBlcyBmcm9tIHN1YnNlcXVlbnQg ZXh0ZW5zaW9uLn0NCg0KWzQzMTo2XSBJbiAxNS4zLjRwMSwgcmVwbGFjZSB0aGUgZmlyc3Qgc2Vu dGVuY2Ugd2l0aA0KICAiSW50ZXJvcGVyYWJpbGl0eSBiZXR3ZWVuIGRlcml2ZWQgdHlwZXMgaW4g Rm9ydHJhbiBhbmQgc3RydWN0IHR5cGVzDQogICBpbiBDIGlzIHByb3ZpZGVkIGJ5IHRoZSBCSU5E IGF0dHJpYnV0ZSBvbiB0aGUgRm9ydHJhbiB0eXBlLiINCntSZWR1Y2UgbWlzbGVhZGluZyBvcGVu aW5nIGJsYXRoZXIgLSB0aGlzIGlzIGp1c3QgaGVyZSBzbyB3ZSBkaWRuJ3QNCiBzdGFydCB0aGUg c3ViY2xhdXNlIHdpdGggYSBidW5jaCBvZiBjb25zdHJhaW50cy4gIEFsdGVybmF0aXZlbHkgd2UN CiBjb3VsZCBtb3ZlIHBhcmFncmFwaCAyIChhbmQgbm90ZSAxNS4xMikgdG8gcmVwbGFjZSBwYXJh Z3JhcGggMS59DQoNCls0MzE6MTIrMl0gSW4gMTUuMy40LCBOb3RlIDE1LjExLA0KICBBZnRlciAi aXMgaW50ZXJvcGVyYWJsZSIgaW5zZXJ0ICJ3aXRoIGEgQyBzdHJ1Y3QgdHlwZSIuDQp7Q29ycmVj dCBhbm90aGVyIG1pc2xlYWRpbmcgc2VudGVuY2UufQ0KDQpbNDMxOjEzLTE4XSBJbiAxNS4zLjRw MiwNCiAgQ2hhbmdlIGFsbCBmb3VyIG9jY3VycmVuY2VzIG9mICJGb3J0cmFuIGRlcml2ZWQgdHlw ZSINCiAgdG8gImRlcml2ZWQgdHlwZSI7DQogIGNoYW5nZSB0aGUgc2luZ2xlIG9jY3VycmVuY2Ug b2YgIkZvcnRyYW4gdHlwZSIgdG8gImRlcml2ZWQgdHlwZSIuDQp7UmVtb3ZlIHVubmVjZXNzYXJ5 IGFuZCBjb25mdXNpbmcgcXVhbGlmaWNhdGlvbiBvZiAiZGVyaXZlZCB0eXBlIiB3aXRoDQogIkZv cnRyYW4iLn0NCg0KU1VCTUlUVEVEIEJZOiBKb2huIFJlaWQNCg0KSElTVE9SWTogMDUtMTUxICAg IG0xNzEgIEYwMy8wMDUzIHN1Ym1pdHRlZCAtIFBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAg ICAwNS0xNzAgICAgbTE3MiAgUGFzc2VkIEozIGxldHRlciBiYWxsb3QgIzExDQogICAgICAgICBO MTYyMiAgICAgbTE3MiAgRmFpbGVkIFdHNSBiYWxsb3QgTjE2MjkNCiAgICAgICAgIDExLTIxN3Ix ICBtMTk1ICBSZXZpc2VkIGFuc3dlciBmb3IgRm9ydHJhbiAyMDA4IC0gUGFzc2VkDQogICAgICAg ICAgICAgICAgICAgICAgICAgIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDExLTI0MSAgICBtMTk2 ICBQYXNzZWQgYXMgYW1lbmRlZCBieSBKMyBsZXR0ZXIgYmFsbG90DQogICAgICAgICAgICAgICAg ICAgICAgICAgICMyNCAxMS0yMjkNCiAgICAgICAgIDEyLTE2NXIyICBtMTk4ICBQYXNzZWQgYnkg SjMgbGV0dGVyIGJhbGxvdCAjMjUgMTItMTQ3DQogICAgICAgICAxMi0xOTMgICAgbTE5OSAgRmFp bGVkIFdHNSBiYWxsb3QgIzMgTjE5MzIvTjE5MzMvTjE5MzkNCiAgICAgICAgIDEyLTE5MCAgICBt MTk5ICBSZXZpc2VkIGFuc3dlci9lZGl0cyAtIHBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAg ICAxMy0yMzcgICAgbTIwMCAgUGFzc2VkIGFzIGFtZW5kZWQgYnkgSjMgbGV0dGVyIGJhbGxvdA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIzI3IDEzLTIwMw0KICAgICAgICAgTjE5OTAgICAg IG0yMDIgIFBhc3NlZCBieSBXRzUgYmFsbG90IDYgTjE5ODcvODgvOTANCiAgICAgICAgIE4yMDAy ICAgICBtMjAzICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVN QkVSOiBGMDMvMDA1OQ0KVElUTEU6IFN0cnVjdHVyZSBjb21wb25lbnRzIGluIG5hbWVsaXN0IGlu cHV0DQpLRVlXT1JEUzogTmFtZWxpc3QsIFVERFRJTywgY29tcG9uZW50DQpERUZFQ1QgVFlQRTog RXJyYXR1bQ0KU1RBVFVTOiBKMyBjb25zaWRlcmF0aW9uIGluIHByb2dyZXNzDQoNClFVRVNUSU9O Og0KDQpDb25zaWRlciB0aGUgZm9sbG93aW5nIHByb2dyYW06DQoNCiAgICAgIE1PRFVMRSBtDQog ICAgICAgIFBSSVZBVEUNCiAgICAgICAgVFlQRSwgUFVCTElDIDo6IHQNCiAgICAgICAgICBJTlRF R0VSIDo6IGkNCiAgICAgICAgICBJTlRFR0VSIDo6IGoNCiAgICAgICAgQ09OVEFJTlMNCiAgICAg ICAgICBQUk9DRURVUkUsIFBSSVZBVEUgOjogcmVhZEZvcm1hdHRlZCA9PiByZWFkRm9ybWF0dGVk VA0KICAgICAgICAgIEdFTkVSSUMgOjogUkVBRChGT1JNQVRURUQpID0+IHJlYWRGb3JtYXR0ZWQN CiAgICAgICAgRU5EIFRZUEUNCiAgICAgIENPTlRBSU5TDQogICAgICAgIFNVQlJPVVRJTkUgcmVh ZGZvcm1hdHRlZFQoZHR2LCB1bml0LCBpb3R5cGUsIHZfbGlzdCwgaW9zdGF0LCAmDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmIGlvbXNnKQ0KICAgICAgICAgIENMQVNTKHQpLCAg ICAgSU5URU5UKElOT1VUKSA6OiBkdHYNCiAgICAgICAgICBJTlRFR0VSLCAgICAgIElOVEVOVChJ TikgICAgOjogdW5pdA0KICAgICAgICAgIENIQVJBQ1RFUigqKSwgSU5URU5UKElOKSAgICA6OiBp b3R5cGUNCiAgICAgICAgICBJTlRFR0VSLCAgICAgIElOVEVOVChJTikgICAgOjogdl9saXN0KDop DQogICAgICAgICAgSU5URUdFUiwgICAgICBJTlRFTlQoT1VUKSAgIDo6IGlvc3RhdA0KICAgICAg ICAgIENIQVJBQ1RFUigqKSwgSU5URU5UKElOT1VUKSA6OiBpb21zZw0KICAgICAgICAgIFJFQUQg KHVuaXQsICopIGR0diVpDQogICAgICAgICAgZHR2JWogPSBkdHYlaSAqIDINCiAgICAgICAgRU5E IFNVQlJPVVRJTkUNCiAgICAgIEVORCBNT0RVTEUNCg0KICAgICAgUFJPR1JBTSBwDQogICAgICAg IFVTRSBtDQogICAgICAgIFRZUEUodCkgOjogeA0KICAgICAgICBOQU1FTElTVCAvbm1sLyB4DQog ICAgICAgIFJFQUQgKCosIG5tbCkNCiAgICAgICAgUFJJTlQgKiwgeCVpLCB4JWoNCiAgICAgIEVO RCBQUk9HUkFNDQoNClF1ZXN0aW9uIDE6DQpJcyB0aGUgZm9sbG93aW5nIGlucHV0IHZhbGlkIGZv ciB0aGUgYWJvdmUgcHJvZ3JhbT8NCg0KJm5tbA0KIHglaSA9IDEwMA0KLw0KDQpRdWVzdGlvbiAy Og0KSWYgdGhlIGlucHV0IGlzIHZhbGlkLCB3aGF0IGlzIHRoZSBvdXRwdXQgb2YgdGhlIHByb2dy YW0sIHdoZW4gdXNpbmcNCnRoaXMgaW5wdXQ/DQoNCkFOU1dFUjoNCg0KMS4gTm8sIHRoaXMgaW5w dXQgaXMgbm90IHZhbGlkIGZvciB0aGUgZ2l2ZW4gcHJvZ3JhbS4gIFRoZSBuYW1lIG9mIGENCmNv bXBvbmVudCBvZiBhIHN0cnVjdHVyZSBzaG91bGQgbm90IGFwcGVhciBpbiBuYW1lbGlzdCBpbnB1 dCBpZiB0aGF0DQpzdHJ1Y3R1cmUgd291bGQgYmUgcHJvY2Vzc2VkIGJ5IGEgdXNlci1kZWZpbmVk IGRlcml2ZWQtdHlwZSBJL08NCnByb2NlZHVyZS4gIEVkaXRzIGFyZSBzdXBwbGllZCB0byBjb3Jy ZWN0IHRoaXMgb3ZlcnNpZ2h0Lg0KDQoyLiBOL0ENCg0KRURJVFM6DQoNClsyNDM6MjQtMjddDQpS ZXBsYWNlDQogICAgIklmIHRoZSBuYW1lbGlzdCBncm91cCBvYmplY3QgbmFtZSBpcyB0aGUgbmFt ZSBvZiBhIHZhcmlhYmxlIG9mDQogICAgIGRlcml2ZWQgdHlwZSwgdGhlIG5hbWUgaW4gdGhlIGlu cHV0IHJlY29yZCBtYXkgYmUgZWl0aGVyIHRoZSBuYW1lDQogICAgIG9mIHRoZSB2YXJpYWJsZSBv ciB0aGUgZGVzaWduYXRvciBvZiBvbmUgb2YgaXRzIGNvbXBvbmVudHMsDQogICAgIGluZGljYXRl ZCBieSBxdWFsaWZ5aW5nIHRoZSB2YXJpYWJsZSBuYW1lIHdpdGggdGhlIGFwcHJvcHJpYXRlDQog ICAgIGNvbXBvbmVudCBuYW1lLiINCndpdGgNCiAgICAiSWYgdGhlIG5hbWVsaXN0IGdyb3VwIG9i amVjdCBpcyBhIHZhcmlhYmxlIG9mIGRlcml2ZWQgdHlwZSwgdGhlDQogICAgIG5hbWUgaW4gdGhl IGlucHV0IHJlY29yZCBtYXkgYmUgdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlLiAgSWYgdGhlDQog ICAgIHZhcmlhYmxlIHdvdWxkIG5vdCBiZSBwcm9jZXNzZWQgYnkgYSB1c2VyLWRlZmluZWQgZGVy aXZlZC10eXBlDQogICAgIGlucHV0L291dHB1dCBwcm9jZWR1cmUsIHRoZSBuYW1lIGluIHRoZSBp bnB1dCByZWNvcmQgbWF5IGFsc28gYmUNCiAgICAgdGhlIGRlc2lnbmF0b3Igb2Ygb25lIG9mIGl0 cyBjb21wb25lbnRzLCB1c2luZyB0aGUgc3ludGF4IG9mDQogICAgIG9iamVjdCBkZXNpZ25hdG9y cy4iDQoNClNVQk1JVFRFRCBCWTogUm9iIEphbWVzDQoNCkhJU1RPUlk6IDA1LTE3NCAgICBtMTcy ICBGMDMvMDA1OSBzdWJtaXR0ZWQNCiAgICAgICAgIDA1LTIyMSAgICBtMTczICBQYXNzZWQgYnkg SjMgbWVldGluZw0KICAgICAgICAgMDYtMTMzICAgIG0xNzUgIEZhaWxlZCBKMyBsZXR0ZXIgYmFs bG90ICMxMiAtIHR5cG8gZml4ZWQNCg0KICBSaWNoIEJsZWlrYW1wJ3MgTk8gY29tbWVudCBmb3Ig RjAzLzAwNTk6DQoNCiAgICBUaGUgcmVwbGFjZW1lbnQgdGV4dCByZWFkcyAiaWYgdGhlIHZhcmlh YmxlIHdvdWxkIG5vdCBiZSBwcm9jZXNzZWQNCiAgICBieSBhIFVERFRJTyAuLi4iLCBidXQgSSB0 aGluayB0aGUgcHJlc2VuY2Ugb2YgYW4gb2JqZWN0IGRlc2lnbmF0b3INCiAgICBtaWdodCBhY3R1 YWxseSBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIG9iamVjdCBkZXNpZ25hdG9yIGlzDQog ICAgcHJvY2Vzc2VkIGJ5IGEgVUREVElPIHJvdXRpbmUgKHNvcnQgb2YgdGhlIHJldmVyc2UgZGVj aXNpb24NCiAgICBwcm9jZXNzIHRoYW4gd2hhdCBpcyBiZWluZyBzdWdnZXN0ZWQsIHdoZXJlIGJl aW5nIHByb2Nlc3NlZCBieSBhDQogICAgVUREVElPIHJvdXRpbmUgcHJlY2x1ZGVzIHRoZSB1c2Ug b2YgYSBub24tc2ltcGxlIHZhcmlhYmxlIG5hbWUgaW4NCiAgICB0aGUgaW5wdXQgcmVjb3JkKS4N Cg0KICAgIFNlY29uZCwgdGhlIHNlbnRlbmNlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSByZXBsYWNl ZCB0ZXh0IHRhbGtzDQogICAgYWJvdXQgIlN1Y2Nlc3NpdmUgcXVhbGlmaWNhdGlvbnMiIGJlaW5n IGFwcGxpZWQgdG8gdGhlIG5hbWUuICBJDQogICAgdGhpbmsgdGhpcyByZWFkcyBhd2t3YXJkbHkg d2l0aCB0aGUgc3VnZ2VzdGVkIGVkaXQuDQoNCiAgICBUaGlyZCwgSSB0aGluayB0aGUgYW5zd2Vy IG1heSBiZSB3cm9uZy4gIEZvciBuYW1lbGlzdCBpbnB1dCwgd2UNCiAgICBzaG91bGQgYWxsb3cg KHBlcmhhcHMgd2UgYWxyZWFkeSBkbykgb2JqZWN0IGRlc2lnbmF0b3JzIGFsbCB0aGUNCiAgICB0 aW1lLCBhbmQganVzdCBub3QgaW52b2tlIHRoZSBVRERUSU8gcm91dGluZSBpZiB0aGUgb2JqZWN0 DQogICAgZGVzaWduYXRvciBpcyBub3QgYSBzaW1wbGUgIHZhcmlhYmxlIG5hbWUsIG9yIGlmIHRo ZSByZXN1bHRpbmcNCiAgICBvYmplY3RzIGRhdGF0eXBlL3NoYXBlIGRvIG5vdCBtYXRjaCBhbiBl eGlzdGluZyBpbnRlcmZhY2UgZm9yIGENCiAgICBVRERUSU8gcm91dGluZS4gIEFsc28sIGl0cyBu b3QgY2xlYXIgdG8gbWUgKGl0cyB0b28gbGF0ZSBpbiB0aGUNCiAgICBkYXkpLCBidXQgcGVyaGFw cyB3ZSByZWFsbHkgd2FudCB0byBhbGxvdyBhbiBvYmplY3QgZGVzaWduYXRvcg0KICAgIHRoYXQn cyBhbiBhcnJheSBlbGVtZW50IHJlZmVyZW5jZSB0byBpbnZva2UgYSBVRERUSU8gcm91dGluZS4N CiAgICBXZSBjb3VsZCB1c2UgdGhlIGRhdGF0eXBlIGFuZCBzaGFwZSBvZiB0aGUgb2JqZWN0IGRl c2lnbmF0b3IgdG8NCiAgICBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgYSBVRERUSU8gcm91dGlu ZSBzaG91bGQgYmUgaW52b2tlZA0KICAgIChzdGlsbCBhIGNvbXBpbGUgdGltZSBkZWNpc2lvbiku ICBJJ20gbm90IGF0IGFsbCBzdXJlIHdlJ2Qgd2FudA0KICAgIHRvIGFsbG93IGNvbXBvbmVudCBy ZWZlcmVuY2VzIGluIHN1Y2ggYSBjYXNlLCBvciBwZXJoYXBzIGENCiAgICBjb21wb25lbnQgcmVm ZXJlbmNlIGluIHRoZSBpbnB1dCByZWNvcmQganVzdCBwcmVjbHVkZXMgdGhlDQogICAgcG9zc2li aWxpdHkgb2YgaW52b2tpbmcgYSBVRERUSU8gcm91dGluZSBmb3IgdGhhdCBpbnB1dCB2YWx1ZS4N Cg0KICAgIFRoZSB0cmFkZW9mZnMgaGVyZSBhcmU6DQogICAgMSkgYWxsb3cgc29tZSBtb3JlIGZ1 bmN0aW9uYWxpdHkgKHdoaWNoIHdlIG1heSBhbHJlYWR5IGFsbG93KSwNCiAgICAgICBzdWNoIGFz IGFycmF5IGVsZW1lbnQgcmVmZXJlbmNlcyBhcHBlYXJpbmcgaW4gYSBuYW1lbGlzdCBpbnB1dA0K ICAgICAgIHJlY29yZCAoYXMgYSBuYW1lbGlzdCBncm91cCBvYmplY3QgbmFtZSwgcG9zc2libHkg cXVhbGlmaWVkKSwNCiAgICAgICBhbmQgc3RpbGwgY2F1c2UgYSBVRERUSU8gcm91dGluZSB0byBi ZSBpbnZva2VkLCBhbmQNCg0KICAgIDIpIGtlZXAgdGhlIHJ1bGVzIHNpbXBsZSBlbm91Z2ggdGhh dCB0aGUgdXNlciBhbmQgY29tcGlsZXIncyBJL08NCiAgICAgIGxpYnJhcnkgY2FuIGVhc2lseSBh Z3JlZSBvbiB3aGF0J3Mgc3VwcG9zZWQgdG8gaGFwcGVuLCBhbmQNCiAgICAgIHdoYXQgaW5wdXQg dmFsdWVzIGFyZSB0aGVyZWZvcmUgYWxsb3dlZC4NCg0KICAgIEkgd2FzIGdvaW5nIHRvIHN1Z2dl c3QgYSByZXBsYWNlbWVudCBlZGl0LCBidXQgbXkgaGVhZCBodXJ0cyB0b28NCiAgICBtdWNoIDop Lg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjAzLzAwNjQNClRJVExFOiBSZWN1cnNpdmUg ZGVjbGFyYXRpb24gb2YgcHJvY2VkdXJlIGludGVyZmFjZXMNCktFWVdPUkRTOiBwcm9jZWR1cmUs IGludGVyZmFjZQ0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSW4gRjIwMDggQ29ycmln ZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0KUTEuIENvbnNpZGVyIHRoZSBmb2xsb3dpbmcgcHJvZ3Jh bToNCg0KICAgICAgUFJPR1JBTSBmb28NCiAgICAgICAgUFJPQ0VEVVJFKHN1YikgOjogcA0KICAg ICAgICBJTlRFUkZBQ0UNCiAgICAgICAgICBTVUJST1VUSU5FIHN1YihwMikNCiAgICAgICAgICAg IElNUE9SVCBwDQogICAgICAgICAgICBQUk9DRURVUkUocCkgOjogcDINCiAgICAgICAgICBFTkQg U1VCUk9VVElORQ0KICAgICAgICBFTkQgSU5URVJGQUNFDQogICAgICBFTkQgUFJPR1JBTQ0KDQpD MTIxNiBhcHBlYXJzIHRvIHByb2hpYml0IHRoZSBjYXNlIG9mIGFuIGludGVyZmFjZSBuYW1lIGlu IGEgcHJvY2VkdXJlDQpkZWNsYXJhdGlvbiBzdGF0ZW1lbnQgYmVpbmcgdGhlIG5hbWUgb2Ygc29t ZXRoaW5nIGRlY2xhcmVkIGluIGEgbGF0ZXINCnByb2NlZHVyZSBkZWNsYXJhdGlvbiBzdGF0ZW1l bnQuICBCdXQgaXQgZG9lcyBub3QgYXBwZWFyIHRvIHByb2hpYml0DQp0aGUgY2FzZSBvZiBhbiBp bnRlcmZhY2UgbmFtZSBiZWluZyB0aGUgbmFtZSBvZiBzb21ldGhpbmcgZGVjbGFyZWQgaW4NCmEg bGF0ZXIgaW50ZXJmYWNlIGJvZHkuDQoNCkluIHRoZSBhYm92ZSBwcm9ncmFtLCB0aGUgY2hhcmFj dGVyaXN0aWNzIG9mIHAgcmVseSBvbiB0aGUNCmNoYXJhY3RlcmlzdGljcyBvZiBzdWIuICBUaGUg Y2hhcmFjdGVyaXN0aWNzIG9mIHN1YiwgaW4gdHVybiwgcmVseSBvbg0KdGhlIGNoYXJhY3Rlcmlz dGljcyBvZiBwLg0KDQpJcyB0aGlzIHByb2dyYW0gc3RhbmRhcmQtY29uZm9ybWluZz8NCg0KUTIu IENvbnNpZGVyIHRoZSBtb2R1bGUNCg0KICAgIE1PRFVMRSBtMQ0KICAgIENPTlRBSU5TDQogICAg ICBTVUJST1VUSU5FIHMocCkNCiAgICAgICAgUFJPQ0VEVVJFKHMpIDo6IHANCiAgICAgIEVORCBT VUJST1VUSU5FDQogICAgRU5EIE1PRFVMRQ0KDQpDb25zdHJhaW50IEMxMjE2IGRvZXMgbm90IGFw cGx5IGhlcmUgc2luY2UgInMiIGlzIG5vdCBkZWNsYXJlZCBieSBhDQpwcm9jZWR1cmUgZGVjbGFy YXRpb24gc3RhdGVtZW50OyB1bmxpa2UgUTEsIGl0IGlzIGFsc28gbm90IGRlY2xhcmVkIGJ5DQph biBpbnRlcmZhY2UgYm9keS4gIEhvd2V2ZXIsIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgUyBoYXZl IG5vdCBiZWVuDQpkZXRlcm1pbmVkIGJlZm9yZSB0aGUgcHJvY2VkdXJlIGRlY2xhcmF0aW9uIHN0 YXRlbWVudCBoYXMgYmVlbg0KcHJvY2Vzc2VkLCBhbmQgdGhhdCBjYW5ub3QgYmUgcHJvY2Vzc2Vk IHVudGlsIHdlIGtub3cgd2hhdCB0aGUNCmludGVyZmFjZSBvZiBTIGlzLg0KDQpJcyB0aGlzIHBy b2dyYW0gdW5pdCBzdGFuZGFyZC1jb25mb3JtaW5nPw0KDQpRMy4gQ29uc2lkZXIgdGhlIG1vZHVs ZQ0KDQogICAgTU9EVUxFIG0yDQogICAgQ09OVEFJTlMNCiAgICAgIFNVQlJPVVRJTkUgczEoYSkN CiAgICAgICAgUFJPQ0VEVVJFKHMyKSA6OiBhDQogICAgICBFTkQgU1VCUk9VVElORQ0KICAgICAg U1VCUk9VVElORSBzMihiKQ0KICAgICAgICBQUk9DRURVUkUoczEpIDo6IGINCiAgICAgIEVORCBT VUJST1VUSU5FDQogICAgRU5EIE1PRFVMRQ0KDQpUaGUgaW50ZXJmYWNlIG9mIEEgZGVwZW5kcyBv biB0aGUgaW50ZXJmYWNlIG9mIFMyLCB3aGljaCBkZXBlbmRzIG9uDQp0aGUgY2hhcmFjdGVyaXN0 aWNzIG9mIEIsIHdoaWNoIGRlcGVuZHMgb24gdGhlIGNoYXJhY3RlcmlzdGljcyBvZiBTMSwNCndo aWNoIGRlcGVuZHMgb24gdGhlIGNoYXJhY3RlcmlzdGljcyBvZiBBOyBhIGNpcmN1bGFyIGRlcGVu ZGVuY3kuDQoNCklzIHRoaXMgcHJvZ3JhbSB1bml0IHN0YW5kYXJkLWNvbmZvcm1pbmc/DQoNClE0 LiBDb25zaWRlcg0KDQogICAgICBNT0RVTEUgbTMNCiAgICAgICAgUFJPQ0VEVVJFKHMpLFBPSU5U RVIgOjogc3B0cg0KICAgICAgQ09OVEFJTlMNCiAgICAgICAgU1VCUk9VVElORSBzKHApDQogICAg ICAgICAgUFJPQ0VEVVJFKHNwdHIpIDo6IHANCiAgICAgICAgRU5EIFNVQlJPVVRJTkUNCiAgICAg IEVORCBNT0RVTEUNCg0KSW4gdGhlIG5vcm1hbCBjb3Vyc2Ugb2YgZXZlbnRzIHRoZXJlIGlzIG5v IHByb2JsZW0gZGVjbGFyaW5nIGENCnByb2NlZHVyZSBwb2ludGVyIHRvIGhhdmUgdGhlIGludGVy ZmFjZSBvZiBhIG1vZHVsZSBwcm9jZWR1cmUgdGhhdCBpcw0KZGVmaW5lZCBsYXRlciwgYW5kIHRo aXMgaXMgZGVzaXJhYmxlLCBidXQgaW4gdGhpcyBjYXNlIHRoZXJlIHNlZW1zIHRvDQpiZSBhIGNp cmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHNwdHIsIHMs IGFuZA0KcC4NCg0KSXMgdGhpcyBwcm9ncmFtIHVuaXQgc3RhbmRhcmQtY29uZm9ybWluZz8NCg0K QU5TV0VSOg0KDQpOb25lIG9mIHRoZSBleGFtcGxlcyBhcmUgc3RhbmRhcmQtY29uZm9ybWluZywg YXMgdGhlIHN0YW5kYXJkIGRvZXMgbm90DQplc3RhYmxpc2ggYW4gaW50ZXJwcmV0YXRpb24gZm9y IHRoZW0uDQoNCkFuIGVkaXQgaXMgcHJvdmlkZWQgdG8gY2xhcmlmeSB0aGlzLg0KDQpFRElUIHRv IDEwLTAwN3IxOg0KDQpbMjg4OjNdIDEyLjQuMy42cDIsIGFwcGVuZCBuZXcgc2VudGVuY2UNCiAg IlRoZSBpbnRlcmZhY2Ugc3BlY2lmaWVkIGJ5IDxpbnRlcmZhY2UtbmFtZT4gc2hhbGwgbm90IGRl cGVuZCBvbiBhbnkNCiAgIGNoYXJhY3RlcmlzdGljIG9mIGEgcHJvY2VkdXJlIGlkZW50aWZpZWQg YnkgYQ0KICAgPHByb2NlZHVyZS1lbnRpdHktbmFtZT4gaW4gdGhlIDxwcm9jLWRlY2wtbGlzdD4g b2YgdGhlIHNhbWUNCiAgIHByb2NlZHVyZSBkZWNsYXJhdGlvbiBzdGF0ZW1lbnQuIg0KDQpTVUJN SVRURUQgQlk6IFJvYiBKYW1lcw0KDQpISVNUT1JZOiAwNS0xNzkgICAgbTE3MiAgRjAzLzAwNjQg c3VibWl0dGVkDQogICAgICAgICAwNS0yMjYgICAgbTE3MyAgUGFzc2VkIGJ5IEozIG1lZXRpbmcN CiAgICAgICAgIDA2LTEzMyAgICBtMTc1ICBGYWlsZWQgSjMgbGV0dGVyIGJhbGxvdCAjMTINCiAg ICAgICAgIDA5LTE0OSAgICBtMTg3ICBQYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMDkt MTg3cjIgIG0xODggIEZhaWxlZCBKMyBsZXR0ZXIgYmFsbG90ICMxOCAwOS0xNTUNCiAgICAgICAg IDEzLTI0NSAgICBtMjAwICBSZXZpc2VkIC0gcGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAg IDEzLTI2MiAgICBtMjAxICBQYXNzZWQgSjMgbGV0dGVyIGJhbGxvdCAjMjggMTMtMjU1cjENCiAg ICAgICAgIE4xOTkwICAgICBtMjAyICBQYXNzZWQgYnkgV0c1IGJhbGxvdCA2IE4xOTg3Lzg4Lzkw DQogICAgICAgICBOMjAwMiAgICAgbTIwMyAgSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQoNCk5VTUJFUjogRjAzLzAwODQNClRJVExFOiBJRUVFX1NFVF9ST1VORElOR19N T0RFIGluIGEgc3Vicm91dGluZQ0KS0VZV09SRFM6IElFRUVfQVJJVEhNRVRJQw0KREVGRUNUIFRZ UEU6IEludGVycHJldGF0aW9uDQpTVEFUVVM6IEozIGNvbnNpZGVyYXRpb24gaW4gcHJvZ3Jlc3MN Cg0KUVVFU1RJT046DQoNClNlY3Rpb24gNy4xLjcgb2YgdGhlIEZvcnRyYW4gMjAwOCBzdGFuZGFy ZCBzYXlzIHRoYXQgaWYgdGhlIHZhbHVlIG9mIGFuDQpleHByZXNzaW9uIGNhbiBiZSBkZXRlcm1p bmVkIGJlZm9yZSBleGVjdXRpb24gb2YgdGhlIHByb2dyYW0sIGl0IGlzDQpzdGFuZGFyZC1jb25m b3JtaW5nIHRvIHVzZSB0aGUgcHJlZGV0ZXJtaW5lZCB2YWx1ZS4NCg0KQ29uc2lkZXIgdGhlIHN1 YnByb2dyYW0NCg0KICAgICAgICBTVUJST1VUSU5FIFMoKQ0KICAgICAgICBVU0UsIElOVFJJTlNJ QyA6OiBJRUVFX0FSSVRITUVUSUMNCiAgICAgICAgVVNFLCBJTlRSSU5TSUMgOjogSUVFRV9GRUFU VVJFUw0KDQogICAgICAgIElOVEVHRVIsIFBBUkFNRVRFUiA6OiBzcCA9IElFRUVfU0VMRUNURURf UkVBTF9LSU5EKDYsMzApDQogICAgICAgIHJlYWwoc3ApIDo6IFggPSAwLjU1NTkwMTNfc3ANCiAg ICAgICAgcmVhbChzcCkgOjogWSA9IDEuMjA5MjQ4MV9zcA0KICAgICAgICByZWFsKHNwKSA6OiBa MSwgWjINCiAgICAgICAgSUYgKElFRUVfU1VQUE9SVF9ST1VORElORyhJRUVFX05FQVJFU1QsWCkg LkFORC4gJg0KICAgICAgICAgICAgSUVFRV9TVVBQT1JUX1JPVU5ESU5HKElFRUVfVVAsWCkpIFRI RU4NCiAgICAgICAgICAgIENBTEwgSUVFRV9TRVRfUk9VTkRJTkdfTU9ERShJRUVFX1VQKQ0KICAg ICAgICAgICAgWjEgPSBYKlkNCiAgICAgICAgICAgIENBTEwgSUVFRV9TRVRfUk9VTkRJTkdfTU9E RShJRUVFX05FQVJFU1QpDQogICAgICAgICAgICBaMiA9IFgqWQ0KICAgICAgICAgICAgUFJJTlQg KiwgJ1Jlc2lkdWFsOiAnLCBaMSAtIFoyDQogICAgICAgIEVORElGDQogICAgICAgIEVORA0KDQoo MSkgSXMgYSBwcm9jZXNzb3IgcGVybWl0dGVkIGFsd2F5cyB0byBwcmludCB6ZXJvIGZvciB0aGUg cmVzaWR1YWwNCiAgICBaMSAtIFoyID8NCigyKSBTYW1lIHF1ZXN0aW9uLCBhZnRlciBnaXZpbmcg WCBhbmQgWSB0aGUgUEFSQU1FVEVSIGF0dHJpYnV0ZS4NCg0KQU5TV0VSOg0KDQooMSkgWWVzLiAg VGhlIHByb2Nlc3NvciBpcyBhbGxvd2VkIHRvIGV2YWx1YXRlIGV4cHJlc3Npb25zIChjb25zdGFu dA0Kb3Igb3RoZXJ3aXNlKSBpbiBhbnkgbWF0aGVtYXRpY2FsbHkgZXF1aXZhbGVudCB3YXkuICBJ biBwYXJ0aWN1bGFyLCBpdA0KaXMgcGVybWl0dGVkIHRvIGV2YWx1YXRlIHVzaW5nIGhpZ2hlciBw cmVjaXNpb24gdGhhbiBhbnkgcHJlY2lzaW9uDQphdmFpbGFibGUgd2hlbiB0aGUgcHJvZ3JhbSBp cyBleGVjdXRlZC4gIEZvciBleGFtcGxlLCBpdCBtaWdodCBjb21wdXRlDQpaMSA9PSBaMiA9PSAw LjY3MjIyMjU5MDgxMjUzLCB0aGVuIGNvbXB1dGUgWjEgLSBaMiA9PSAwLjAsIHJlZ2FyZGxlc3MN Cm9mIGhvdyB0aGUgcHJvZ3JhbSBtaWdodCBkbyByb3VuZGluZyBhdCB0aGUgc2V2ZW50aCBkZWNp bWFsIGRpZ2l0IHdoZW4NCml0IGlzIGV4ZWN1dGVkLg0KDQooMikgWWVzLCBmb3IgdGhlIHNhbWUg cmVhc29ucyBhcyBxdWVzdGlvbiAoMSkuDQoNCkVESVRTIHRvIDEwLTAwN3IxOg0KDQpOb25lLg0K DQpTVUJNSVRURUQgQlk6IE1pY2hhZWwgSW5ncmFzc2lhDQoNCkhJU1RPUlk6IDA2LTM3MiAgICBt MTc4ICBGMDMvMDA4NCBzdWJtaXR0ZWQNCiAgICAgICAgIDExLTIxOCAgICBtMTk1ICBSZXZpc2Vk IGFuc3dlciBmb3IgRm9ydHJhbiAyMDA4IC0gUGFzc2VkDQogICAgICAgICAgICAgICAgICAgICAg ICAgIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDExLTI0MSAgICBtMTk2ICBQYXNzZWQgYXMgYW1l bmRlZCBieSBKMyBsZXR0ZXIgYmFsbG90DQogICAgICAgICAgICAgICAgICAgICAgICAgICMyNCAx MS0yMjkNCiAgICAgICAgIDEyLTE2NXIyICBtMTk4ICBQYXNzZWQgYXMgYW1lbmRlZCBieSBKMyBs ZXR0ZXIgYmFsbG90DQogICAgICAgICAgICAgICAgICAgICAgICAgICMyNSAxMi0xNDcNCiAgICAg ICAgIDEyLTE5MyAgICBtMTk5ICBGYWlsZWQgV0c1IGJhbGxvdCAjMyBOMTkzMi9OMTkzMy9OMTkz OQ0KDQpGMDMvMDA4NA0KDQpCYWRlciBOTyB2b3RlOg0KDQpUaGUgYW5zd2VycyBnaXZlbiB0byBi b3RoICgxKSBhbmQgKDIpIGluIHRoZSBpbnRlcnAgYXBwZWFyIHRvIG1lDQp0byBiZSBjb3VudGVy aW50dWl0aXZlOyB0aGUgcHJvZ3JhbW1lciB3b3VsZCBleHBlY3QgdGhhdCB0aGUNCmNhbGN1bGF0 aW9uIG9mIFoxIGFuZCBaMiByZXNwZWN0aXZlbHkgb2JleSB0aGUgaW1wb3NlZCByb3VuZGluZw0K bW9kZS4gSW4gcGFydGljdWxhciwgSSBzdXNwZWN0IHRoZXJlIGFyZSBzaXR1YXRpb25zIHdoZXJl IGl0IGlzDQptb3JlIG9idmlvdXMgdG8gdGhlIGNvbXBpbGVyIHRoYW4gdG8gdGhlIHByb2dyYW1t ZXIgdGhhdCBleHByZXNzaW9ucw0KYXJlIGV2YWx1YXRlZCBhdCBjb21waWxlIHRpbWUsIGFuZCB0 aGF0IGRpZmZlcmVudCBwcm9jZXNzb3JzIG1heQ0KaGF2ZSBkaWZmZXJpbmcgY2FwYWJpbGl0aWVz IGluIGlkZW50aWZ5aW5nIHN1Y2ggZXhwcmVzc2lvbnMuIFRoZQ0KcmVzb2x1dGlvbiBvZiBzdWNo IHNpdHVhdGlvbnMgaXMgb25lIHRhcmdldCB0aGF0IHRoZSBJRUVFIGZhY2lsaXRpZXMNCndlcmUg ZGVzaWduZWQgZm9yLiBJIHRoZXJlZm9yZSBhbSBpbiBmYXZvciBvZiB0aGUgc3RhbmNlIHRoYXQs IGlmDQpzdXBwb3J0ZWQsIHRoZSBzZXR0aW5nIG9mIHRoZSByb3VuZGluZyBtb2RlIHNob3VsZCB0 YWtlIHByZWNlZGVuY2UNCm92ZXIgcHJvY2Vzc29yLWRlcGVuZGVudCBjb21waWxlLXRpbWUgZXZh bHVhdGlvbnMuDQoNCkNvcmJldHQgTk8gdm90ZToNCg0KSSBkaXNhZ3JlZSB3aXRoIHRoZSBpbnRl cnByZXRhdGlvbiBnaXZlbi4gIEkgYmVsaWV2ZSB0aGF0IHRoZQ0KYXNzaWdubWVudHMgc2hvdWxk IHJlcXVpcmUgY29udmVyc2lvbnMgdG8gYmUgZG9uZSBhbmQgdGhhdCB0aGUNCmNvbnZlcnNpb25z IHNob3VsZCBiZSBkb25lIGluIGFjY29yZCB3aXRoIHRoZSByb3VuZGluZyBtb2RlDQpjdXJyZW50 bHkgaW4gZWZmZWN0LiAgVGhlcmVmb3JlLCB0aGUgcmVzdWx0cyBzaG91bGQgbm90IGJlIHplcm8u DQoNCkxvbmcgTk8gdm90ZToNCg0KSSB3YXMgY29uZnVzZWQgYnkgSm9obidzIGNvbW1lbnQgdGhh dCB0aGUgcm91bmRpbmcgbW9kZSBvbg0KZW50cnkgdG8gdGhlIHN1YnJvdXRpbmUgYWZmZWN0ZWQg dGhlIHZhbHVlIG9mIFoxIHNpbmNlIHRoZSBjb21wdXRhdGlvbg0Kb2YgWjEgZm9sbG93cyBhIGNh bGwgdGhhdCByZXNldHMgdGhlIHJvdW5kaW5nIG1vZGUuICBJIHRoaW5rIHRoZSByZWFsDQpxdWVz dGlvbiBoZXJlIGlzIHdoYXQgdGhlIHN0YW5kYXJkIG1lYW5zIGJ5ICJtYXRoZW1hdGljYWwiLiAg SSBoYWQNCmFsd2F5cyB0aG91Z2h0IGluIHRlcm1zIG9mIHRoaW5ncyBsaWtlIGFsZ2VicmEuICBK b2huJ3MgYW5zd2VyIHNlZW1zDQp0byBpbXBseSB0aGF0IGNvbXB1dGF0aW9uYWwgbnVtZXJpY3Mg KGFzIHNwZWNpZmllZCBieSBJRUVFKSBhcmUgcGFydA0Kb2YgdGhlIGNvbmNlcHQgb2YgIm1hdGhl bWF0aWNhbCIuICBJbiBvdGhlciBjb250ZXh0cywgSSB0aGluayB0aGF0DQpKb2huJ3MgaW50ZXJw cmV0YXRpb24gY291bGQgYmUgaGFybWZ1bC4gIE9uIHRoZSBvdGhlciBoYW5kLCB0aGUNCmN1cnJl bnQgYW5zd2VyIGRvZXMgc2VlbSB0byBtYWtlIHRoZSB1c2VmdWxuZXNzIG9mIHRoZQ0KSUVFRV9T RVRfUk9VTkRJTkdfTU9ERSByb3V0aW5lIG1vcmUgbGltaXRlZCB0aGF0IHdvdWxkIGJlDQpleHBl Y3RlZC4gQWxzbywgZG9lcyB0aGUgY29uY2VwdCBvZiBtYXRoZW1hdGljYWxseSBlcXVpdmFsZW50 IGFwcGx5IHRvDQp0aGUgYWdncmVnYXRpb24gb2YgbXVsdGlwbGUgc3RhdGVtZW50cywgb3IgZG9l cyBpdCBhcHBseSB0byBqdXN0IG9uZQ0KZXhwcmVzc2lvbj8gIEEgcHJvY2Vzc29yIHRoYXQgdXNl ZCB0aGUgIm1hdGhlbWF0aWNhbGx5IGVxdWl2YWxlbnQiDQphcmd1bWVudCB0byBnZXQgMCB3b3Vs ZCBuZWVkIHRvIGZvcndhcmQgc3ViIHRoZSBleHByZXNzaW9ucyBmb3IgWjEgYW5kDQpaMiBpbnRv IHRoZSBwcmludCBzdGF0ZW1lbnQgdG8gZ2V0IFgqWSAtIFgqWS4gIEkgZG9uJ3QgdGhpbmsgd2UN CmludGVuZGVkIHRvIGFsbG93IGZvcndhcmQgc3Vic3RpdHV0aW9uIG9mIGV4cHJlc3Npb25zIGFj cm9zcyBvbmUgb2YNCnRoZSBJRUVFIG1vZGUgc2V0dGluZyByb3V0aW5lcy4NCg0KTWFjbGFyZW4g Y29tbWVudDoNCg0KVGhpcyByZWxhdGVzIHRvIEYwMy8wMDY1LCBidXQgaXMgdGhlIG90aGVyIHdh eSByb3VuZC4gIFVubGlrZSB0aGF0IG9uZSwNCkkgY29uc2lkZXIgdGhpcyBjb25zaXN0ZW50IHdp dGggdGhlIG1ham9yaXR5IG9mIHRoZSBzZW1hbnRpYyB3b3JkaW5nIGluDQp0aGUgQyBzdGFuZGFy ZC4NCg0KTXV4d29ydGh5IE5vIHZvdGU6DQoNCkkgYWdyZWUgd2l0aCBKb2huJ3Mgdm90ZS4NCg0K UmVpZCBOTyB2b3RlOg0KDQpUaGUgSUVFRSByb3VuZGluZyBtb2RlIG9uIGVudHJ5IHRvIHRoZSBw cm9jZWR1cmUgbWF5IHZhcnkgZnJvbQ0KY2FsbCB0byBjYWxsLiBUaGUgdmFsdWUgb2YgWjEgZGVw ZW5kcyBvbiB0aGlzIHJvdW5kaW5nIG1vZGUuDQpUaGVyZWZvcmUsIHRoZSBwcm9jZXNzb3Igc2hv dWxkIG5vdCBhbHdheXMgcHJpbnQgemVybyBmb3IgWjEtWjIuDQpXaGV0aGVyIG9yIG5vdCBaMSBh bmQgWjIgaGF2ZSB0aGUgUEFSQU1FVEVSIGF0dHJpYnV0ZSBtYWtlcyBubw0KZGlmZmVyZW5jZS4g WWVzLCB0aGUgcHJvY2Vzc29yIGlzIGFsbG93ZWQgdG8gZXZhbHVhdGUgYW4NCmV4cHJlc3Npb24g aW4gYW55IG1hdGhlbWF0aWNhbGx5IGVxdWl2YWxlbnQgd2F5LCBidXQgaGVyZSB0aGUNCm1hdGhl bWF0aWNzIGRpY3RhdGVzIHRoYXQgYSBwYXJ0aWN1bGFyIGZvcm0gb2Ygcm91bmRpbmcsIGRlZmlu ZWQNCmluIHRoZSBJRUVFIHN0YW5kYXJkLCBiZSBhcHBsaWVkLg0KDQpTbnlkZXIgTk8gdm90ZToN Cg0KICAgIFRoZSBhbnN3ZXIgbWFrZXMgcm91bmRpbmcgbW9kZSBjaGFuZ2VzIHBvaW50bGVzcy4N Cg0KICAgIFRoZSB3b3JrLWFyb3VuZCB1c3VhbGx5IGFkdmFuY2VkIHRvIGNhdXNlIHJvdW5kaW5n IG1vZGUgY2hhbmdlcyB0bw0KICAgIGhhdmUgZWZmZWN0IChidXQgbm90IGFkdmFuY2VkIGluIHRo ZSBhbnN3ZXIgdG8gdGhlIGludGVycHJldGF0aW9uKQ0KICAgIGlzIHRvIHN0b3JlIGludGVybWVk aWF0ZSByZXN1bHRzIHRoYXQgYXJlIGNvbXB1dGVkIHdpdGggZGlmZmVyZW50DQogICAgcm91bmRp bmcgbW9kZXMgaW4gVk9MQVRJTEUgdmFyaWFibGVzIGlmIHRoZXkgYXJlIHVsdGltYXRlbHkgdG8g YmUNCiAgICBjb21iaW5lZCBpbiBhIHNpbmdsZSBleHByZXNzaW9uLg0KDQogICAgU3ViY2xhdXNl IDUuMy4xOSBzdGF0ZXMsIGluIHBhcnQsIGhvd2V2ZXIsIHRoYXQgIlRoZSBWT0xBVElMRQ0KICAg IGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhhdCBhbiBvYmplY3QgbWF5IGJlIHJlZmVyZW5jZWQsIGRl ZmluZWQsIG9yDQogICAgYmVjb21lIHVuZGVmaW5lZCwgYnkgbWVhbnMgbm90IHNwZWNpZmllZCBi eSB0aGUgcHJvZ3JhbS4iICBTZXR0aW5nDQogICAgdGhlIHJvdW5kaW5nIG1vZGUgaXMgZG9uZSBi eSBtZWFucyB0aGF0IEFSRSBzcGVjaWZpZWQgYnkgdGhlDQogICAgcHJvZ3JhbSwgc28gdGhlIGFk dmljZSBpcyBub3QgZ2VybWFuZS4gIE9uZSB3aG8gcmVhZHMgc3ViY2xhdXNlcw0KICAgIDUuMy4x OSwgMTQuNCwgMTQuMTEuNiwgYW5kIDE0LjExLjIxLCBhbmQgdGhlIGFuc3dlciB0byB0aGlzDQog ICAgaW50ZXJwcmV0YXRpb24sIG1pZ2h0IG5vdCByZWFsaXplIHRoYXQgdGhlIHVzZSBvZiBWT0xB VElMRSB2YXJpYWJsZXMNCiAgICBpcyByZXF1aXJlZCwgdW5kZXIgdGhlIHByZXNlbnQgaW50ZXJw cmV0YXRpb24sIGZvciBzdWJjbGF1c2VzIDE0LjQsDQogICAgMTQuMTEuNiwgYW5kIDE0LjExLjIx IHRvIGJlIG1lYW5pbmdmdWwuDQoNCiAgICBBIGJldHRlciBhbnN3ZXIgd291bGQgaGF2ZSBiZWVu IHRvIGFtZW5kIDcuMS41LjIuNCB0byByZXF1aXJlIHRoYXQNCiAgICBhbGwgZW50aXRpZXMgd2l0 aGluIHRoZSBleHByZXNzaW9uIGFyZSBldmFsdWF0ZWQgd2l0aCB0aGUgc2FtZQ0KICAgIHJvdW5k aW5nIG1vZGUsIG9yIHRvIHNwZWNpZnkgdGhhdCBxdWFudGl0aWVzIGV2YWx1YXRlZCB3aXRoDQog ICAgZGlmZmVyZW50IHJvdW5kaW5nIG1vZGVzIGNhbm5vdCBiZSBjb25zaWRlcmVkIHRvIGJlIG1h dGhlbWF0aWNhbGx5DQogICAgZXF1aXZhbGVudCwgZXZlbiBpZiBldmFsdWF0ZWQgYnkgdGV4dHVh bGx5IGlkZW50aWNhbCBleHByZXNzaW9ucy4NCiAgICBUaGlzIG1pZ2h0IHJlcXVpcmUgcHJvY2Vz c29ycyBlaXRoZXIgdG8gYWJhbmRvbiBjZXJ0YWluDQogICAgb3B0aW1pemF0aW9ucywgb3IgdG8g cGVyZm9ybSBtb3JlIGRldGFpbGVkIGRhdGFmbG93IGFuYWx5c2lzIHRoYXQNCiAgICBwcm9wYWdh dGVzIHJvdW5kaW5nIG1vZGUgdG8gZGV0ZXJtaW5lIHdoZW4gdGhvc2Ugb3B0aW1pemF0aW9ucyBh cmUNCiAgICBwZXJtaXR0ZWQuDQoNCiAgICBJZiB0aGUgcG9zaXRpb24gaW1wbGllZCBieSB0aGUg YW5zd2VyIHRvIHRoaXMgaW50ZXJwcmV0YXRpb24gaXMgdG8NCiAgICBiZSBtYWludGFpbmVkLCB0 aGUgYWJzZW5jZSBvZiBlZGl0cyBpcyBlbnRpcmVseSBpbmFkZXF1YXRlLiAgVGhlDQogICAgZGVm aW5pdGlvbiBvZiBWT0xBVElMRSBtdXN0IGJlIGNoYW5nZWQgdG8gZW5jb21wYXNzIGFjdGlvbnMg dGhhdCBBUkUNCiAgICBzcGVjaWZpZWQgYnkgdGhlIHByb2dyYW0sIGFuZCB0byBlbmNvbXBhc3Mg YWR2aWNlIGNvbmNlcm5pbmcNCiAgICByb3VuZGluZyBtb2RlIGNoYW5nZXMuICBBZHZpY2UgdG8g c3RvcmUgaW50ZXJtZWRpYXRlIHJlc3VsdHMgdGhhdA0KICAgIGFyZSBjb21wdXRlZCB3aXRoIGRp ZmZlcmVudCByb3VuZGluZyBtb2RlcyBpbnRvIFZPTEFUSUxFIHZhcmlhYmxlcywNCiAgICBpZiB0 aGV5IGFyZSB0byBiZSBjb21iaW5lZCBpbiBhIHNpbmdsZSBleHByZXNzaW9uLCBtdXN0IGJlIGlu Y2x1ZGVkDQogICAgaW4gc3ViY2xhdXNlcyAxNC40IGFuZCAxNC4xMS4yMS4NCg0KICAgIER1cmlu ZyB0aGUgcmVxdWlyZW1lbnRzIHBoYXNlIGZvciB0aGUgMjAwOCBzdGFuZGFyZCwgdGhlcmUgd2Fz IGENCiAgICByZXF1ZXN0IChpbiAwNC0yMTkpIGZvciBhICJzdHJpY3QgbW9kZSIgc2ltaWxhciB0 byB0aGF0IGRlc2NyaWJlZCBpbg0KICAgIHNlY3Rpb24gRy4yIG9mIHRoZSBBZGEgc3RhbmRhcmQs IGluIHdoaWNoIHJvdW5kaW5nIG1vZGUgc2V0dGluZ3MNCiAgICB3b3VsZCBhY3R1YWxseSBoYXZl IGFuIGVmZmVjdCB3aXRob3V0IG5lZWRpbmcgdG8gcmVzb3J0IHRvIFZPTEFUSUxFDQogICAgdmFy aWFibGVzLiAgSWYgYSAic3RyaWN0IG1vZGUiIGhhZCBiZWVuIHByb3ZpZGVkLCBpdCBtaWdodCBo YXZlIG1hZGUNCiAgICBzZW5zZSB0byBhbGxvdyBhIHByb2Nlc3NvciB0byBpZ25vcmUgcm91bmRp bmcgbW9kZSBjaGFuZ2VzIG91dHNpZGUNCiAgICBzdHJpY3QgcmVnaW9ucy4gIEEgcmVxdWVzdCBm b3IgYSAic3RyaWN0IG1vZGUiIHdpbGwgYmUgcHJlc2VudGVkDQogICAgZHVyaW5nIHRoZSByZXF1 aXJlbWVudHMtZ2F0aGVyaW5nIHBoYXNlIGZvciB0aGUgbmV4dCByZXZpc2lvbiBvZiB0aGUNCiAg ICBzdGFuZGFyZCwgZm9yIHRoaXMgYXMgd2VsbCBhcyBvdGhlciByZWFzb25zLg0KDQouLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uDQoNCkYwMy8wMDg0OiBSZXBsaWVzIGZyb20gdGhlIGVkaXRvcg0KICAgIEpvaG4gUmVp ZCB3cml0ZXM6DQo8PDwNCiAgICAgVGhlIElFRUUgcm91bmRpbmcgbW9kZSBvbiBlbnRyeSB0byB0 aGUgcHJvY2VkdXJlIG1heSB2YXJ5IGZyb20NCiAgICAgY2FsbCB0byBjYWxsLiBUaGUgdmFsdWUg b2YgWjEgZGVwZW5kcyBvbiB0aGlzIHJvdW5kaW5nIG1vZGUuDQogICAgIFRoZXJlZm9yZSwgdGhl IHByb2Nlc3NvciBzaG91bGQgbm90IGFsd2F5cyBwcmludCB6ZXJvIGZvciBaMS1aMi4NCiAgICAg V2hldGhlciBvciBub3QgWjEgYW5kIFoyIGhhdmUgdGhlIFBBUkFNRVRFUiBhdHRyaWJ1dGUgbWFr ZXMgbm8NCiAgICAgZGlmZmVyZW5jZS4gWWVzLCB0aGUgcHJvY2Vzc29yIGlzIGFsbG93ZWQgdG8g ZXZhbHVhdGUgYW4NCiAgICAgZXhwcmVzc2lvbiBpbiBhbnkgbWF0aGVtYXRpY2FsbHkgZXF1aXZh bGVudCB3YXksIGJ1dCBoZXJlIHRoZQ0KICAgICBtYXRoZW1hdGljcyBkaWN0YXRlcyB0aGF0IGEg cGFydGljdWxhciBmb3JtIG9mIHJvdW5kaW5nLCBkZWZpbmVkDQogICAgIGluIHRoZSBJRUVFIHN0 YW5kYXJkLCBiZSBhcHBsaWVkLg0KPj4+DQoNCk5vIGl0IGRvZXMgbm90LiAgSUVFRSBwZWN1bGlh cml0aWVzIHBsYXkgbm8gcGFydCBpbiB0aGUgbWF0aGVtYXRpY2FsDQpSZWFscy4NCg0KSUVFRSBp cyBtZXJlbHkgb25lIGZvcm0gb2YgY29tcHV0ZXIgYXJpdGhtZXRpYy4gIChJdCB3b3VsZCBtYWtl IHZlcnkNCmJhZCBtYXRoZW1hdGljcywgc2luY2UgSUVFRSBudW1iZXJzIGFyZSBub3QgZXZlbiBh IHN1YnNldCBvZiB0aGUNCjItcG9pbnQgY29tcGFjdGlmaWNhdGlvbiBvZiB0aGUgUmVhbHMsIHRo dXMgbmVhcmx5IGFsbCBtYXRoZW1hdGljYWwNCmlkZW50aXRpZXMgYW5kIHRoZW9yZW1zIGFib3V0 IHRoZSBSZWFscyB3b3VsZCBnZXQgZGVzdHJveWVkLikgIENvbXB1dGVyDQphcml0aG1ldGljIGlz ICpjb21wdXRhdGlvbmFsKiBub3QgKm1hdGhlbWF0aWNhbCouICBBTEwgY29tcHV0ZXINCmFyaXRo bWV0aWNzIGZyZXF1ZW50bHkgZ2l2ZSBkaWZmZXJlbnQgY29tcHV0YXRpb25hbCBhbnN3ZXJzIGZv cg0KbWF0aGVtYXRpY2FsbHktZXF1aXZhbGVudCBleHByZXNzaW9ucy4NCg0KQW5kIEkgY2Fubm90 IGJlbGlldmUgeW91IGFyZSBhZ2FpbiB0cm90dGluZyBvdXQgdGhpcyBub25zZW5zZSBzYXlpbmcN CmNvbnN0YW50IGV4cHJlc3Npb25zIHNob3VsZCBub3QgYmUgdHJlYXRlZCBhcyBjb25zdGFudC4g IElmIEkgaGF2ZQ0KICAgIlJFQUwoS0lORD1JTlQoYStiKSkgOjogeChJTlQoYStiKSkgPSBhK2I7 IHk9YStiIiwNCndpdGggYSBhbmQgYiBiZWluZyBmbG9hdGluZy1wb2ludCBuYW1lZCBjb25zdGFu dHMsIEkgYW0gbm90IGFsbG93ZWQNCnRvIGV2YWx1YXRlIGErYiBhdCBjb21waWxlIHRpbWU/ICBT dXJlbHkgeW91IGplc3QuICBPciBJIGNhbiBpbiB0aGUNCktJTkQ9IGJ1dCBub3QgaW4gdGhlIGFy cmF5IGJvdW5kPyAgVW5sZXNzIHRoZSBhcnJheSBpcyBpbiBDT01NT04gb3INCmhhcyB0aGUgU0FW RSBhdHRyaWJ1dGU/ICBTdXJlbHkgeW91IGplc3QgZXZlbiBtb3JlLiAgT3IgSSBjYW4NCmV2ZXJ5 d2hlcmUgZXhjZXB0IGluIHRoZSAieSA9Ij8gIFlvdSBjYW5ub3QgYmUgc2VyaW91cy4NCg0KRnVy dGhlcm1vcmUsIHRoZSByYXRpb25hbGUgeW91IGFyZSB1c2luZyBpcyBhcHBsaWNhYmxlIHRvIGFs bCByb3V0aW5lcw0KcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZXkgY2FsbCBJRUVFX1NFVF9ST1VO RElORyBhbmQgd291bGQgdGhlcmVieQ0KZGVzdHJveSBtYW55IGJhc2ljIG9wdGltaXNhdGlvbnMu ICBZb3UuUmVhbGx5LkNhbi5Ob3QuQmUuU2VyaW91cy4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1C RVI6IEYwMy8wMTAwDQpUSVRMRTogRXJyb3IgaW4gZmllbGQgd2lkdGggZm9yIHNwZWNpYWwgY2Fz ZXMgb2Ygc2lnbmVkIElORklOSVRZDQogICAgICAgb3V0cHV0DQpLRVlXT1JEUzogZm9ybWF0dGVk IG91dHB1dCwgc2lnbmVkIGluZmluaXR5DQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBJ biBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNClFVRVNUSU9OOg0KDQpJcyB0aGVyZSBhbiBlcnJvciBp biB0aGUgZGVzY3JpcHRpb24gZm9yIHRoZSBvdXRwdXQgb2YgYSBJRUVFIGluZmluaXR5DQp3aXRo IGEgc2lnbiBhbmQgYSBmaWVsZCB3aWR0aCBvZiAzIG9yIDg/DQoNCkZvcnRyYW4gMjAwOCwgMTAu Ny4yLjMuMiBwYXJhZ3JhcGggNywgWzI1MjozMy0zNF0sIGRlc2NyaWJlcyB0aGUNCm91dHB1dCBv ZiBJRUVFIGluZmluaXRpZXM7IHRoaXMgc3BlY2lmaWVzIGFzdGVyaXNrcyAoZmllbGQgb3ZlcmZs b3cpIGlmDQp0aGUgZmllbGQgd2lkdGggaXMgbGVzcyB0aGFuIDMsIGFuZCBvbWlzc2lvbiBvZiAi aW5pdHkiIGlmIHRoZSBmaWVsZA0Kd2lkdGggaXMgbGVzcyB0aGFuIDguICBIb3dldmVyLCB0aGlz IGRvZXMgbm90IHRha2UgaW50byBhY2NvdW50IHRoZQ0KZmFjdCB0aGF0IHRoZXJlIG1pZ2h0IGJl IGEgcGx1cyBvciBtaW51cyBzaWduIGluIHRoZSBmaWVsZC4NCg0KVGhlIGN1cnJlbnQgdGV4dCBh bHNvIGZhaWxzIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSBjYXNlIG9mIDx3PiA9IDAsDQpmb3Ig Ym90aCBJbmZpbml0eSBhbmQgTmFOIHZhbHVlcy4NCg0KQU5TV0VSOg0KDQpZZXMsIHRoZXJlIGlz IGFuIGVycm9yIGluIHRoZSBzcGVjaWFsIGNhc2VzLiAgRWRpdHMgYXJlIHByb3ZpZGVkIHRvDQpj b3JyZWN0bHkgZGVzY3JpYmUgdGhlIHJlcXVpcmVkIGZpZWxkIHdpZHRocyBmb3Igc2lnbmVkIGlu ZmluaXRpZXMuDQpBbiBlZGl0IGlzIGFsc28gcHJvdmlkZWQgdG8gcmVwYWlyIHRoZSBkZXNjcmlw dGlvbiBvZiB0aGUgb3V0cHV0IG9mDQpOYU4gdmFsdWVzLg0KDQpFRElUUyB0byAxMC0wMDdyMToN Cg0KWzI1MjozMy0zNF0gMTAuNy4yLjMuMnA3LCBSZXBsYWNlICJJZiA8dz4gaXMgLi4uIHByb2R1 Y2VkLiIgd2l0aA0KDQogICJUaGUgbWluaW11bSBmaWVsZCB3aWR0aCByZXF1aXJlZCBmb3Igb3V0 cHV0IG9mIHRoZSBmb3JtICdJbmYnIGlzIDMNCiAgIGlmIG5vIHNpZ24gaXMgcHJvZHVjZWQsIGFu ZCA0IG90aGVyd2lzZS4gIElmIDx3PiBpcyBncmVhdGVyIHRoYW4NCiAgIHplcm8gYnV0IGxlc3Mg dGhhbiB0aGUgbWluaW11bSByZXF1aXJlZCwgdGhlIGZpZWxkIGlzIGZpbGxlZCB3aXRoDQogICBh c3Rlcmlza3MuICBUaGUgbWluaW11bSBmaWVsZCB3aWR0aCBmb3Igb3V0cHV0IG9mIHRoZSBmb3Jt DQogICAnSW5maW5pdHknIGlzIDggaWYgbm8gc2lnbiBpcyBwcm9kdWNlZCBhbmQgOSBvdGhlcndp c2UuICBJZiA8dz4NCiAgIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbWluaW11bSBy ZXF1aXJlZCBmb3IgdGhlIGZvcm0NCiAgICdJbmZpbml0eScsIHRoZSBmb3JtICdJbmZpbml0eScg aXMgb3V0cHV0LiAgSWYgPHc+IGlzIHplcm8gb3IgPHc+DQogICBpcyBsZXNzIHRoYW4gdGhlIG1p bmltdW0gcmVxdWlyZWQgZm9yIHRoZSBmb3JtICdJbmZpbml0eScgYW5kDQogICBncmVhdGVyIHRo YW4gb3IgZXF1YWwgdG8gdGhlIG1pbmltdW0gcmVxdWlyZWQgZm9yIHRoZSBmb3JtICdJbmYnLA0K ICAgdGhlIGZvcm0gJ0luZicgaXMgb3V0cHV0LiAgT3RoZXJ3aXNlLCB0aGUgZmllbGQgaXMgZmls bGVkIHdpdGgNCiAgIGFzdGVyaXNrcy4iDQoNClsyNTI6MzddIFNhbWUgc3ViY2xhdXNlLCBwOCwg UmVwbGFjZSAiSWYgPHc+IC4uLiBhc2tlcmlza3MuIiB3aXRoDQoNCiAgIklmIDx3PiBpcyBncmVh dGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIDMsIHRoZSBmaWVsZCBpcyBmaWxsZWQNCiAgIHdp dGggYXN0ZXJpc2tzLiAgSWYgPHc+IGlzIHplcm8sIHRoZSBvdXRwdXQgZmllbGQgaXMgJ05hTicu Ii4NCg0KU1VCTUlUVEVEIEJZOiBEaWNrIEhlbmRyaWNrc29uDQoNCkhJU1RPUlk6IDA3LTI3MSAg ICBtMTgxICBGMDMvMDEwMCBzdWJtaXR0ZWQNCiAgICAgICAgIDA3LTI3MXIyICBtMTgxICBQYXNz ZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMDctMzIxICAgIG0xODIgIEZhaWxlZCBKMyBsZXR0 ZXIgYmFsbG90ICMxNCAwNy0yNzkNCiAgICAgICAgIDA3LTM0MHIxICBtMTgyICBQYXNzZWQgYnkg SjMgbWVldGluZw0KICAgICAgICAgMDgtMTMzcjIgIG0xODMgIFBhc3NlZCBieSBsZXR0ZXIgYmFs bG90ICMxNSAwOC0xMDENCiAgICAgICAgIDA4LTE2NCAgICBtMTg0ICBGYWlsZWQgV0c1IGJhbGxv dCAjNSBOMTcyMi1OMTcyNg0KICAgICAgICAgMTMtMjQ3ICAgIG0yMDAgIFJldmlzZWQgLSBwYXNz ZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTMtMjYyICAgIG0yMDEgIFBhc3NlZCBhcyBhbWVu ZGVkIGJ5IEozIGxldHRlciBiYWxsb3QgIzI4DQogICAgICAgICAgICAgICAgICAgICAgICAgIDEz LTI1NXIxDQogICAgICAgICBOMTk5MCAgICAgbTIwMiAgUGFzc2VkIGJ5IFdHNSBiYWxsb3QgNiBO MTk4Ny84OC85MA0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIEluIEYyMDA4IENvcnJpZ2VuZHVt IDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwMy8wMTIxDQpUSVRMRTogUHJlY2lzZSBG UCBzZW1hbnRpY3Mgb2YgdGhlIFJFQUwgaW50cmluc2ljDQpLRVlXT1JEUzogUkVBTCBpbnRyaW5z aWMNCkRFRkVDVCBUWVBFOiBDbGFyaWZpY2F0aW9uDQpTVEFUVVM6IEozIGNvbnNpZGVyYXRpb24g aW4gcHJvZ3Jlc3MNCg0KUVVFU1RJT046DQoNCk11c3QgdGhlIGludHJpbnNpYyBmdW5jdGlvbiBS RUFMIHdpdGggS0lORCBwYXJhbWV0ZXIgd3AgcmV0dXJuIGEgdmFsdWUNCnRoYXQgaXMgYSBSRUFM IChLSU5EPXdwKSBmbG9hdGluZyBwb2ludCBudW1iZXI/DQoNClJBVElPTkFMRSBGT1IgVEhFIFFV RVNUSU9OOg0KDQpDb21wdXRlciBoYXJkd2FyZSBtYXkgdXNlIGEgd2lkZXIgZmxvYXRpbmctcG9p bnQgZm9ybWF0IGZvciByZWdpc3RlcnMNCnRoYW4gZm9yIG1lbW9yeTsgZS5nLiwgODAgYml0cyBm b3IgcmVnaXN0ZXJzIGFuZCA2NCBiaXRzIGZvciBtZW1vcnkNCmZvciB0aGUgY2FzZSBvZiBzdGFu ZGFyZCBkb3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IG51bWJlcnMuDQpTb21lIGFsZ29y aXRobXMgcmVxdWlyZSBhIGhpZ2ggbGV2ZWwgb2YgY29udHJvbCBvdmVyIGZsb2F0aW5nIHBvaW50 DQpzZW1hbnRpY3MuICBJZiB0aGUgaW50cmluc2ljIGZ1bmN0aW9uIFJFQUwgd2l0aCBLSU5EIHBh cmFtZXRlciB3cCBpcw0KZ3VhcmFudGVlZCB0byByZXR1cm4gYSBSRUFMIChLSU5EPXdwKSByZXN1 bHQgdGhlbiBhIHByb2dyYW1tZXIgY2FuIHVzZQ0KdGhpcyB0byBmb3JjZSBpbnRlcm1lZGlhdGUg cmVzdWx0cyBpbnRvIG1haW4gbWVtb3J5IGZvcm1hdCwgbmV2ZXIgbWluZA0KdGhhdCB0aGUgb3B0 aW1pemluZyBjb21waWxlciBtYXkgaGF2ZSBwbGFjZWQgdGhlIGludGVybWVkaWF0ZSBpbiBhDQpy ZWdpc3Rlci4NCg0KSSBhbSBpbnRlcmVzdGVkIGluIGEgSjMgaW50ZXJwcmV0YXRpb24gb2YgdGhp cyBtYXR0ZXIsIGVzcGVjaWFsbHkgYQ0KbG91ZCBhbmQgY2xlYXIgYWZmaXJtYXRpdmUgaW50ZXJw cmV0YXRpb24sIGJlY2F1c2UgaXQgYXBwZWFycyB0aGF0DQpzb21lIHByZXNlbnQgRm9ydHJhbiBj b21waWxlcnMgb3B0aW1pemUgYXdheSBteSBleHBsaWNpdCB1c2Ugb2YgdGhlDQpSRUFMIGludHJp bnNpYy4gIFRoZSBjb250ZXh0IGlzIGNvZGUgZm9yIGNvbXBlbnNhdGVkIHN1bW1hdGlvbiAoS2Fo YW4NCnN1bW1hdGlvbikuICBJIGFwcHJlY2lhdGUgdGhhdCBwYXJlbnRoZXNlcyBhcmUgaW52aW9s YWJsZSBjb3VydGVzeSBvZg0KdGhlIEZvcnRyYW4gc3RhbmRhcmQsIGJ1dCBpbiBvcmRlciB0byBo YXZlIGNvZGUgdGhhdCBjYW5ub3QgYmUgYnJva2VuDQpieSBhbiBvcHRpbWl6aW5nIGNvbXBpbGVy IEkgc2VlbSB0byBuZWVkIGFsc28gYSBsYW5ndWFnZSBtZWNoYW5pc20gdG8NCmZvcmNlIGludGVy bWVkaWF0ZSByZXN1bHRzIGludG8gbWFpbiBtZW1vcnkgZm9ybWF0Lg0KDQpCYXMgQnJhYW1zDQpD aGVtaXN0cnkgRGVwYXJ0bWVudCBhbmQNCkVtZXJzb24gQ2VudGVyIGZvciBTY2llbnRpZmljIENv bXB1dGF0aW9uDQpFbW9yeSBVbml2ZXJzaXR5DQpBdGxhbnRhLCBHQQ0KDQpBTlNXRVI6DQoNClll cywgZm9yIHB1cnBvc2VzIG9mIGRldGVybWluaW5nIHRoZSB0eXBlIGFuZCBraW5kIG9mIHRoZSBy ZXN1bHQsIGZvcg0KdXNlIGluIHN1YmNsYXVzZSA3LjEuOS4zLCB0aGUgcmVzdWx0IG9mIHRoZSBp bnRyaW5zaWMgZnVuY3Rpb24gUkVBTCB3aXRoDQpLSU5EIGFyZ3VtZW50IHdwIHJldHVybnMgYSB2 YWx1ZSB0aGF0IGlzIG9mIHR5cGUgUkVBTChLSU5EPXdwKS4NCkhvd2V2ZXIsIGlmIGl0IGlzIHVz ZWQgd2l0aGluIGFuIGV4cHJlc3Npb24gaW52b2x2aW5nIGludHJpbnNpYw0Kb3BlcmF0aW9ucywN CiAgInRoZSBwcm9jZXNzb3IgbWF5IGV2YWx1YXRlIGFueSBtYXRoZW1hdGljYWxseSBlcXVpdmFs ZW50DQogICBleHByZXNzaW9uLCBwcm92aWRlZCB0aGF0IHRoZSBpbnRlZ3JpdHkgb2YgcGFyZW50 aGVzZXMgaXMgbm90DQogICB2aW9sYXRlZC4iDQphbmQNCiAgIm1hdGhlbWF0aWNhbGx5IGVxdWl2 YWxlbnQgZXhwcmVzc2lvbnMgb2YgbnVtZXJpYyB0eXBlIG1heSBwcm9kdWNlDQogICBkaWZmZXJl bnQgY29tcHV0YXRpb25hbCByZXN1bHRzIiwNCndoaWNoIG1lYW5zIHRoYXQgaXQgaXMgdW5saWtl bHkgdG8gc2VydmUgeW91ciBwdXJwb3NlLg0KDQpJbnRlcm1lZGlhdGUgcmVzdWx0cyBjYW4gYmUg cm91bmRlZCB0byBzdG9yYWdlIGZvcm1hdCBieSBhc3NpZ25tZW50IHRvIGENClZPTEFUSUxFIHZh cmlhYmxlLg0KDQpFRElUUyB0byAxMC0wMDdyMToNCg0KTm9uZS4NCg0KSElTVE9SWTogMDgtMjA4 cjEgIG0xODUgIEYwMy8wMTIxIHN1Ym1pdHRlZA0KICAgICAgICAgMTAtMjQwICAgIG0xOTMgIERy YWZ0IGFuc3dlciBmb3IgRjIwMDggLSBQYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTEt MTI5ICAgIG0xOTQgIFBhc3NlZCBieSBKMyBsZXR0ZXIgYmFsbG90ICMyMiAxMC0yNTQNCiAgICAg ICAgIE4xODc4ICAgICBtMTg2ICBGYWlsZWQgV0c1IGJhbGxvdCAxIE4xODc2DQogICAgICAgICAx MS0yNjAgICAgbTE5NiAgUmV2aXNlZCBhbnN3ZXINCiAgICAgICAgIDExLTI2MHIxICBtMTk2ICBQ YXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTItMTY1cjIgIG0xOTggIFBhc3NlZCBieSBK MyBsZXR0ZXIgYmFsbG90ICMyNSAxMi0xNDcNCiAgICAgICAgIDEyLTE5MyAgICBtMTk5ICBGYWls ZWQgV0c1IGJhbGxvdCAjMyBOMTkzMi9OMTkzMy9OMTkzOQ0KDQpGMDMvMDEyMQ0KDQpCYWRlciBO TyB2b3RlOg0KDQpUaGUgYW5zd2VyIGFzIGEgd2hvbGUgc2VlbXMgbWlzbGVhZGluZzsgZ2l2ZW4g dGhlIHNwZWNpZmljYXRpb24NCm9mIHRoZSBSRUFMIGludHJpbnNpYyBhbmQgZXhpc3RpbmcgcnVs ZXMgZm9yIHR5cGUgY29udmVyc2lvbnMgKG9yDQp0aGVpciBhYnNlbmNlKSBpbiBleHByZXNzaW9u cywgdGhlIGFuc3dlciBzaG91bGQgc2ltcGx5IGJlICJ5ZXMiLg0KVGhlIHJlZmVyZW5jZSB0byBt YXRoZW1hdGljYWxseSBlcXVpdmFsZW50IGV4cHJlc3Npb25zIGlzIG1vc3RseQ0KaXJyZWxldmFu dCAoc2luY2UgYnkgcGFyZW50aGVzaXphdGlvbiB0aGUgcHJvZ3JhbW1lcidzIHB1cnBvc2UNCnNo b3VsZCB2ZXJ5IGxpa2VseSBiZSBhY2hpZXZhYmxlKSwgYW5kIHRoYXQgdG8gVk9MQVRJTEUgdmFy aWFibGVzDQppcyBzaW1wbHkgdW5uZWNlc3NhcnkuDQoNCkNvcmJldHQgTk8gdm90ZToNCg0KSSBw cmV2aW91c2x5IHZvdGVkIGZvciB0aGUgYW5zd2VyIGdpdmVuLiAgU2luY2UgdGhlbiwgSQ0KaGF2 ZSBiZWVuIGNvbnZpbmNlZCBJIHdhcyBtaXN0YWtlbi4gIEkgbm8gbG9uZ2VyIHRoaW5rDQp0aGF0 IFJFQUwoWCksIHdoZXJlIFggaGFzIHR5cGUgUkVBTCBidXQgaGFzIGEgZGlmZmVyZW50DQpraW5k IHR5cGUgcGFyYW1ldGVyIHZhbHVlIGZyb20gdGhhdCBvZiB0eXBlIGRlZmF1bHQgcmVhbCwNCnNo b3VsZCBiZSBjb25zaWRlcmVkIG1hdGhlbWF0aWNhbGx5IGVxdWl2YWxlbnQgdG8gWC4gIEkNCm5v dyBhZ3JlZSB3aXRoIE1yLiBCcmFhbXMgdGhhdCB0aGUgaW50cmluc2ljIGZ1bmN0aW9uIFJFQUwN CnNob3VsZCBkbyBhIHJlYWwgY29udmVyc2lvbi4NCg0KSSBhZ3JlZSB3aXRoIFZhbiB0aGF0IG5v dGhpbmcgaW4gdGhlIHN0YW5kYXJkIG9yIGluIHRoZQ0KZXhpc3RpbmcgaW50ZXJwcmV0YXRpb25z IHJlcXVpcmVzIFZPTEFUSUxFIHRvIGZvcmNlIGENCmNvbnZlcnNpb24uICBJbnRlcnByZXRhdGlv biBGOTAvMDAwMDAxIGlzIHRoZSBvbmx5DQppbnRlcnByZXRhdGlvbiBJIGhhdmUgZm91bmQgdGhh dCBhZGRyZXNzZXMgdGhlIGlzc3VlLA0KYW5kIGl0LCBvZiBjb3Vyc2UsIGNvdWxkIG5vdCByZXF1 aXJlIHRoZSB1c2Ugb2YgVk9MQVRJTEUuDQpJIGFncmVlIHdpdGggSm9obiB0aGF0IFZPTEFUSUxF IHNob3VsZCBub3QgYmUgcmVxdWlyZWQgdG8NCmZvcmNlIGEgY29udmVyc2lvbi4NCg0KTG9uZyBO TyB2b3RlOg0KDQpTaW1pbGFyIHRvIEYwMy8wMDg0LCB0aGlzIGhpbmdlcyBvbiB0aGUgbWVhbmlu ZyBvZiAibWF0aGVtYXRpY2FsIi4NCkknbSBub3QgY29udmluY2VkIHRoYXQgYSBwcm9jZXNzb3Ig aXMgYWxsb3dlZCB0byB0cmVhdA0KWCBhbmQgUkVBTChYLHdwKSBhcyBtYXRoZW1hdGljYWxseSBl cXVpdmFsZW50LiAgVGhlIFJFQUwgZnVuY3Rpb24NCihtYXkpIHBlcmZvcm0gYW4gb3BlcmF0aW9u IHRoYXQgaXMgb3V0c2lkZSB0aGUgc2NvcGUgb2Ygbm9ybWFsDQphbGdlYnJhLg0KDQpNYWNsYXJl biBjb21tZW50Og0KDQpUaGUgcmVjb21tZW5kYXRpb24gdG8gdXNlIFZPTEFUSUxFIGlzIHdyb25n LiAgVGhlcmUgaXMgYSBjb21tb24gbXl0aCBpbg0KYW1vbmcgQyBhbmQgQysrIHByb2dyYW1tZXJz IGFuZCBldmVuIGluIGluZm9ybWF0aXZlIHRleHQgaW4gdGhlDQpzdGFuZGFyZHMgdGhhdCB2b2xh dGlsZSBpbXBsaWVzIHRoaXMgc2VtYW50aWMsIGJ1dCBpdCBpcyBub3QganVzdGlmaWVkDQpieSB0 aGVpciBub3JtYXRpdmUgdGV4dCwgbm9yIGRvIGFsbCBjb21waWxlcnMgc3VwcG9ydCBpdC4gIEZv cnRyYW4NCnNob3VsZCBub3QgZm9sbG93IHN1aXQgLSBpbiBwYXJ0aWN1bGFyLCBGb3J0cmFuIDIw MDggNS4zLjE5IG1ha2VzIG5vDQpzdWNoIGd1YXJhbnRlZS4NCg0KSW4gcGFydGljdWxhciwgYmVj YXVzZSA1LjMuMTkgcHJvdmlkZXMgbGljZW5jZSB0byB0aGUgcHJvY2Vzc29yIGFuZCBub3QNCnRv IHRoZSBwcm9ncmFtbWVyLCBhIGNvbXBpbGVyIGlzIGF0IGxpYmVydHkgdG8gb3B0aW1pc2UgYWxs IHJlZmVyZW5jZXMNCnRvIFZPTEFUSUxFIHZhcmlhYmxlcyBpZiBpdCBkb2VzIG5vdCBwcm92aWRl IGFueSBtZXRob2Qgb2YgYWNjZXNzaW5nIGl0DQpvdGhlciB0aGFuIHRob3NlIHNwZWNpZmllZCBi eSB0aGUgcHJvZ3JhbS4gIFJlZ3JldHRhYmx5LCB0aGUgY29ycmVjdA0KcmVzcG9uc2UgaXM6DQoN CiAgIFRoZXJlIGlzIG5vIGZlYXR1cmUgaW4gRm9ydHJhbiB0byBwcm92aWRlIHRoaXMgZmFjaWxp dHksIHRob3VnaA0KICAgYXNzaWdubWVudCB0byBhIFZPTEFUSUxFIHZhcmlhYmxlIHdpbGwgb2Z0 ZW4gd29yay4gIE9uIHNvbWUNCiAgIHByb2Nlc3NvcnMsIG1ha2luZyB0aGF0IGEgQklORChDKSB2 YXJpYWJsZSBpbiBhIG1vZHVsZSB3aWxsIGJlDQogICBuZWVkZWQgYnV0LCBvbiBhIGZldywgdGhp cyByZWNpcGUgd2lsbCBub3Qgd29yayBhdCBhbGwuDQoNClRoaXMgc2hvdWxkIGJlIGFkZHJlc3Nl ZCBwcm9wZXJseSBpbiBhIGZ1dHVyZSByZXZpc2lvbi4NCg0KTXV4d29ydGh5IGNvbW1lbnQ6DQoN Ckxpa2UgVmFuLCBJIGZpbmQgdGhlIEFuc3dlciB1bnNhdGlzZmFjdG9yeSBhbHRob3VnaCB0aGUg b3V0Y29tZSAobm8NCmVkaXQpIGlzIGNvcnJlY3QuICBUaGUgYW5zd2VyIGlzIFllcy4gIFRoaXMg aXMgc3RhdGVkIGNsZWFybHkgaW4NCjEzLjcuMTM4LiAgV2hhdCBhIHByb2Nlc3NvciBtaWdodCBv ciBtaWdodCBub3QgZG8gYmVoaW5kIHRoZSBzY2VuZXMgaXMNCmlycmVsZXZhbnQuICBJZiBpdCBk b2VzIG5vdCBvYmV5IDEzLjcuMTM4IGl0IGlzIG5vbi1zdGFuZGFyZC0NCmNvbmZvcm1pbmcuICAo V2UgYXJlIHRhbGtpbmcgYWJvdXQgYSBoaWdoLWxldmVsIGxhbmd1YWdlLCBub3QgQykuDQoNClJl aWQgTk8gdm90ZToNCg0KSSB0aGluayBpdCBpcyB1bmFjY2VwdGFibGUgdG8gcmVjb21tZW5kIHRo ZSB1c2Ugb2YgdGhlIFZPTEFUSUxFDQphdHRyaWJ1dGUgZm9yIGEgdmFyaWFibGUgdGhhdCBpcyBy ZWZlcmVuY2VkLCBkZWZpbmVkLCBvciBiZWNvbWVzDQp1bmRlZmluZWQgb25seSB3aXRoaW4gdGhl IEZvcnRyYW4gcHJvZ3JhbS4gVGhlIGRlc2lyZWQgZWZmZWN0DQptYXkgYmUgb2J0YWluZWQgYnkg YXNzaWduaW5nIHRoZSBpbnRlcm1lZGlhdGUgcmVzdWx0IHRvIGENCnZhcmlhYmxlIHdpdGhvdXQg dGhlIFZPTEFUSUxFIGF0dHJpYnV0ZSBiZWNhdXNlIHRoaXMgcnVsZXMgb3V0DQp0aGUgZXhjZXB0 aW9ucyBleHBsYWluZWQgaW4gdGhlIGZpbmFsIHNlbnRlbmNlIG9mIHRoZSBmaXJzdA0KcGFyYWdy YXBoIG9mIHRoZSBhbnN3ZXIgKCJGdXJ0aGVybW9yZSwgLi4uIikuDQoNClNueWRlciBOTyB2b3Rl Og0KDQogICAgVGhlIGFuc3dlciByZWZlcnMgdG8gc3ViY2xhdXNlIDcuMS41LjIuNCB3aXRob3V0 IGlkZW50aWZ5aW5nIHRoYXQNCiAgICBzdWJjbGF1c2U6ICJ0aGUgcHJvY2Vzc29yIG1heSBldmFs dWF0ZSBhbnkgbWF0aGVtYXRpY2FsbHkNCiAgICBlcXVpdmFsZW50IGV4cHJlc3Npb24sIHByb3Zp ZGVkIHRoYXQgdGhlIGludGVncml0eSBvZiBwYXJlbnRoZXNlcyBpcw0KICAgIG5vdCB2aW9sYXRl ZCwiIGFuZCB1c2VzIHRoYXQgYXMganVzdGlmaWNhdGlvbiBmb3IgdGhlIGFuc3dlci4NCiAgICBT dWJjbGF1c2UgNy4xLjUuMi40IGlzIGVudGlyZWx5IGlycmVsZXZhbnQgdG8gdGhlIHF1ZXN0aW9u Lg0KDQogICAgU3ViY2xhdXNlIDQuMS4yIHNwZWNpZmllcyB0aGF0ICJGb3IgZWFjaCB0eXBlIHRo ZXJlIGlzIGEgc2V0IG9mDQogICAgdmFsaWQgdmFsdWVzLiIgIFN1YmNsYXVzZSA0LjIgc3BlY2lm aWVzIHRoYXQgInRoZSBzZXQgb2YgdmFsdWVzLi4uDQogICAgZGVwZW5kW3NdIG9uIHRoZSB2YWx1 ZXMgb2YgdGhlIHBhcmFtZXRlcnMuIg0KDQogICAgU3ViY2xhdXNlIDEzLjcuMiwgYXMgYW1lbmRl ZCBieSB0aGUgYW5zd2VyIHRvIGludGVycCBGMDgvMDAwOCwNCiAgICBzYXlzLCBpbiBwYXJ0LCAi QSBwcm9ncmFtIHNoYWxsIG5vdCBpbnZva2UgYW4gaW50cmluc2ljIHByb2NlZHVyZQ0KICAgIHVu ZGVyIGNpcmN1bXN0YW5jZXMgd2hlcmUgYSB2YWx1ZSAuLi4gcmV0dXJuZWQgYXMgYSBmdW5jdGlv biByZXN1bHQNCiAgICBpcyBub3QgcmVwcmVzZW50YWJsZSBieSBvYmplY3RzIG9mIHRoZSBzcGVj aWZpZWQgdHlwZSBhbmQgdHlwZQ0KICAgIHBhcmFtZXRlcnMuIg0KDQogICAgQWxsb3dpbmcgdGhl IFJFQUwgaW50cmluc2ljIGZ1bmN0aW9uIHRvIHJldHVybiBhIHJlc3VsdCB0aGF0IGlzDQogICAg Y2xhaW1lZCB0byBoYXZlIGEgc3BlY2lmaWVkIGtpbmQsIGFuZCBhIHZhbHVlIHRoYXQgaXMgbm90 IGEgbWVtYmVyDQogICAgb2YgdGhlIHNldCBvZiB2YWxpZCB2YWx1ZXMgZm9yIHRoYXQga2luZCwg dmlvbGF0ZXMgdGhlIHJlcXVpcmVtZW50cw0KICAgIG9mIHN1YmNsYXVzZXMgNC4xLjIsIDQuMiwg YW5kIDEzLjcuMSBhcyBhbWVuZGVkIGJ5IGludGVycHJldGF0aW9uDQogICAgRjA4LzAwMDguICBB biBpbnRlcnByZXRhdGlvbiBzaG91bGQgbm90IGludHJvZHVjZSBhbiBpbmNvbnNpc3RlbmN5DQog ICAgdGhhdCB3aWxsIGxhdGVyIG5lZWQgdG8gYmUgcmVzb2x2ZWQgYnkgeWV0IGFub3RoZXIgaW50 ZXJwcmV0YXRpb24uDQogICAgRXZlbiBpZiBGMDgvMDAwOCB3ZXJlIHRvIGZhaWwsIHRoZSByZXN1 bHQgb2YgdGhlIGFuc3dlciB0byB0aGlzDQogICAgaW50ZXJwcmV0YXRpb24gd291bGQgYmUgdG8g aW50cm9kdWNlIGEgY29uZmxpY3QgdG8gMTMuNy4xIHN0YXR1cyBxdW8NCiAgICBhbnRlLCB3aGlj aCByZWFkcywgaW4gcGFydCwgIkEgcHJvZ3JhbSBpcyBwcm9oaWJpdGVkIGZyb20gaW52b2tpbmcN CiAgICBhbiBpbnRyaW5zaWMgcHJvY2VkdXJlIHVuZGVyIGNpcmN1bXN0YW5jZXMgd2hlcmUgYSB2 YWx1ZSB0byBiZQ0KICAgIHJldHVybmVkIGluIGEgc3Vicm91dGluZSBhcmd1bWVudCBvciBmdW5j dGlvbiByZXN1bHQgaXMgb3V0c2lkZSB0aGUNCiAgICByYW5nZSBvZiB2YWx1ZXMgcmVwcmVzZW50 YWJsZSBieSBvYmplY3RzIG9mIHRoZSBzcGVjaWZpZWQgdHlwZSBhbmQNCiAgICB0eXBlIHBhcmFt ZXRlcnMsIiBhbmQgY29udGludWVzIHdpdGggY2F2ZWF0cyBub3QgZ2VybWFuZSB0byB0aGUNCiAg ICBwcmVzZW50IGludGVycHJldGF0aW9uLg0KDQogICAgVGhlIG9ubHkgcmVhc29uIGV2ZXIgdG8g aW52b2tlIHRoZSBSRUFMIGludHJpbnNpYyBmdW5jdGlvbiB3aXRoIGENCiAgICByZWFsIGFyZ3Vt ZW50IGFuZCBhIEtJTkQgYXJndW1lbnQgaXMgdG8gcHJvZHVjZSBhIHJlc3VsdCB3aXRoIHRoZQ0K ICAgIHNwZWNpZmllZCBraW5kLCBhbmQgYSB2YWx1ZSB0aGF0IGlzIGEgbWVtYmVyIG9mIHRoZSBz ZXQgb2YgdmFsaWQNCiAgICB2YWx1ZXMgZm9yIHRoYXQga2luZC4gIFRoaXMgaXMgZXhjZWVkaW5n bHkgcmFyZSwgZXhjZXB0IHBlcmhhcHMgYXMNCiAgICBhbiBhY3R1YWwgYXJndW1lbnQgKHdoZXJl IHRoZSBwcm9jZXNzb3IgbXVzdCBuZWNlc3NhcmlseSBwcm9kdWNlIGENCiAgICB2YWx1ZSB0aGF0 IGlzIGEgbWVtYmVyIG9mIHRoZSBzZXQgb2YgdmFsaWQgdmFsdWVzLCBhbmQgYWRkaXRpb25hbGx5 DQogICAgaXMgcmVwcmVzZW50ZWQgYnkgdGhlIHNwZWNpZmllZCB0eXBlIGFuZCBraW5kKSwgYW5k IHRoZXJlZm9yZQ0KICAgIHJlcXVpcmluZyBwcm9jZXNzb3JzIHRvIHByb2R1Y2UgYSB2YWx1ZSBm b3IgdGhlIHJlc3VsdCBvZiBSRUFMIHRoYXQNCiAgICBpcyBhIG1lbWJlciBvZiB0aGUgc2V0IG9m IHZhbGlkIHZhbHVlcyBmb3IgdGhlIGtpbmQgb2YgdGhlIHJlc3VsdA0KICAgIHdvdWxkIGhhdmUg bm8gbWVhc3VyYWJsZSBlZmZlY3Qgb24gcGVyZm9ybWFuY2UgaW4gYW55IHByb2dyYW0gb3RoZXIN CiAgICB0aGFuIGFuIGFyY2FuZSBTUEVDIGJlbmNobWFyay4NCg0KICAgIFRoZSBhbnN3ZXIgc2hv dWxkIGJlICJBbHRob3VnaCBhIHByb2Nlc3NvciBpcyBhbGxvd2VkIHRvIHJlcGxhY2UgYW4NCiAg ICBleHByZXNzaW9uIHdpdGggYSBtYXRoZW1hdGljYWxseSBlcXVpdmFsZW50IGV4cHJlc3Npb24s IHN1YmNsYXVzZXMNCiAgICA0LjEuMiwgNC4yLCBhbmQgMTMuNy4xIChvciAxMy43LjEgYXMgYW1l bmRlZCBieSBpbnRlcnByZXRhdGlvbg0KICAgIEYwOC8wMDA4KSByZXF1aXJlIHRoZSB2YWx1ZSBv ZiB0aGUgcmVzdWx0IG9mIGV2ZXJ5IGludHJpbnNpYw0KICAgIGZ1bmN0aW9uIHRvIGJlIGEgbWVt YmVyIG9mIHRoZSBzZXQgb2YgdmFsaWQgdmFsdWVzIGZvciB0aGUgdHlwZSBhbmQNCiAgICBraW5k IG9mIHRoZSBmdW5jdGlvbiByZXN1bHQuIiAgTm8gbm9ybWF0aXZlIGVkaXRzIHdvdWxkIGJlIHJl cXVpcmVkLA0KICAgIGFsdGhvdWdoIGl0IHdvdWxkIGJlIGhlbHBmdWwgdG8gYWRkIGEgcmVjb21t ZW5kYXRpb24gaW4gYSBub3RlIChvciBhDQogICAgcmVxdWlyZW1lbnQpIHRvIDEzLjcuMTM4cDUg Q2FzZSAoaSkgdGhhdCB0aGUgcmVzdWx0IGhhdmUgYSB2YWx1ZQ0KICAgIHRoYXQgaXMgbm90IGRp ZmZlcmVudCBmcm9tIHRoZSBhcmd1bWVudCBieSBtb3JlIHRoYW4gb25lIHVuaXQgaW4gaXRzDQog ICAgbGVhc3Qgc2lnbmlmaWNhbnQgcGxhY2UgKHVubGVzcyB0aGUgYXJndW1lbnQgaXMgTmFOKSwg YW5kIHRoYXQgaXQgYmUNCiAgICByb3VuZGVkIGFjY29yZGluZyB0byBJRUMgNjA1NTk6MTk4OSBh bmQgdGhlIHJvdW5kaW5nIG1vZGUgY3VycmVudGx5DQogICAgaW4gZWZmZWN0IGlmIHRoZSBJRUVF X0FSSVRITUVUSUMgbW9kdWxlIGlzIGFjY2Vzc2libGUgKHVubGVzcyB0aGUNCiAgICBhcmd1bWVu dCBpcyBOYU4pLg0KDQogICAgQWR2aWNlIGluIHRoZSBwcmVzZW50bHkgcHJvcG9zZWQgYW5zd2Vy IGlzIG9mZmVyZWQgdG8gdXNlIHRoZQ0KICAgIFZPTEFUSUxFIGF0dHJpYnV0ZS4gIFN1YmNsYXVz ZSA1LjMuMTkgc3RhdGVzLCBpbiBwYXJ0LCBob3dldmVyLA0KICAgIHRoYXQgIlRoZSBWT0xBVElM RSBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoYXQgYW4gb2JqZWN0IG1heSBiZQ0KICAgIHJlZmVyZW5j ZWQsIGRlZmluZWQsIG9yIGJlY29tZSB1bmRlZmluZWQsIGJ5IG1lYW5zIG5vdCBzcGVjaWZpZWQg YnkNCiAgICB0aGUgcHJvZ3JhbS4iICBJbnZva2luZyB0aGUgUkVBTCBpbnRyaW5zaWMgZnVuY3Rp b24gaXMgYSBtZWFucyB0aGF0DQogICAgSVMgc3BlY2lmaWVkIGJ5IHRoZSBwcm9ncmFtLCBzbyB0 aGUgYWR2aWNlIGlzIG5vdCBnZXJtYW5lLg0KDQogICAgT25lIHdobyByZWFkcyBzdWJjbGF1c2Vz IDQuMS4yLCA0LjIsIDUuMy4xOSwgNy4xLjUuMi40IGFuZCAxMy43LjENCiAgICB3b3VsZCBoYXZl IG5vIGNsdWUgdGhhdCB0aGUgd2F5IHRvIG1ha2UgUkVBTCBvcGVyYXRlIGFzIGVzc2VudGlhbGx5 DQogICAgYWxsIHVzZXJzIGV4cGVjdCBpdCB0byBvcGVyYXRlIGlzIHRvIHN0b3JlIGl0cyByZXN1 bHQgaW50byBhDQogICAgdmFyaWFibGUgdGhhdCBoYXMgdGhlIFZPTEFUSUxFIGF0dHJpYnV0ZSEg IElmIG9uZSBtdXN0IGhhdmUgdGhlDQogICAgcHJlc2VudGx5IHByb3Bvc2VkIGFuc3dlciwgaGF2 aW5nIG5vIGVkaXRzIGlzIGVudGlyZWx5IGluYWRlcXVhdGUuDQogICAgU3ViY2xhdXNlIDUuMy4x OSBtdXN0IGJlIGFtZW5kZWQgdG8gaW5jbHVkZSBlZmZlY3RzIHRoYXQgQVJFDQogICAgc3BlY2lm aWVkIGJ5IHRoZSBwcm9ncmFtLiAgU3ViY2xhdXNlcyA1LjMuMTkgYW5kIDEzLjcuMTM4IG11c3Qg YmUNCiAgICBhbWVuZGVkIHRvIGluY2x1ZGUgYWR2aWNlIHRvIHVzZSB0aGUgVk9MQVRJTEUgYXR0 cmlidXRlIHRvIG1ha2UgUkVBTA0KICAgIGZ1bmN0aW9uIGFzIGVzc2VudGlhbGx5IGFsbCB1c2Vy cyBleHBlY3QgaXQgdG8uICBGdXJ0aGVyLCB0aGVyZSBtdXN0DQogICAgYmUgYW4gZXhwbGljaXQg ZXhlbXB0aW9uIGZvciBSRUFMIGluIHN1YmNsYXVzZSAxMy43LjEsIGFuZCBtYXliZSBpbg0KICAg IDQuMS4yIGFuZCA0LjIgYXMgd2VsbC4NCg0KICAgIEEgcGVydmVyc2UgcmVhZGluZyBvZiAxMy43 LjEsIGFkcm9pdGx5IHNpZGVzdGVwcGluZyBzdWJjbGF1c2VzIDQuMS4yDQogICAgYW5kIDQuMiwg bWlnaHQgYmUgdGhhdCBhIGZ1bmN0aW9uIGlzIGFsbG93ZWQgdG8gcmV0dXJuIGEgdmFsdWUgdGhh dA0KICAgIGlzIG5vdCBhIG1lbWJlciBvZiB0aGUgc2V0IG9mIHZhbGlkIHZhbHVlcyBmb3IgdGhl IHR5cGUgYW5kIGtpbmQgb2YNCiAgICB0aGUgcmVzdWx0LCBidXQgdGhhdCBhIHByb2dyYW0gaXMg bm90IGFsbG93ZWQgdG8gaW52b2tlIHRoZSBmdW5jdGlvbg0KICAgIGluIHN1Y2ggYSB3YXkgYXMg dG8gcHJvZHVjZSB0aGF0IHJlc3VsdC4gIFRoaXMgd291bGQgbWFrZSBpdCBpbGxlZ2FsDQogICAg aW5zdGVhZCBvZiBwb2ludGxlc3MgdG8gaW52b2tlIHRoZSBSRUFMIGludHJpbnNpYyBmdW5jdGlv biB3aXRoIHRoZQ0KICAgIGhvcGUgdG8gcHJvZHVjZSBhIHZhbHVlIHRoYXQgaXMgYSBtZW1iZXIg b2YgdGhlIHNldCBvZiB2YWxpZCB2YWx1ZXMNCiAgICBmb3IgdGhlIGtpbmQgb2YgdGhlIHJlc3Vs dC4gIFRoYXQgaXMsIGZvciBleGFtcGxlLCB0aGF0IFJFQUwgaXMNCiAgICBwZXJtaXR0ZWQgdG8g YWN0IGNvbnNpc3RlbnRseSB3aXRoIHRoZSBwcmVzZW50IGFuc3dlciB0byB0aGlzDQogICAgaW50 ZXJwcmV0YXRpb24sIGJ1dCBhIHByb2dyYW0gaXMgbm90IHBlcm1pdHRlZCB0byBpbnZva2UNCiAg ICBSRUFMKDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzMzhkMCxraW5kKDEuMGUwKSkgaWYgdGhl IHByb2Nlc3Nvcg0KICAgIHVzZXMgMzItYml0IElFRUUgYXJpdGhtZXRpYyBmb3IgZGVmYXVsdCBy ZWFsLCBiZWNhdXNlIHRoZSByZXN1bHQNCiAgICB3b3VsZCBub3QgYmUgYSBtZW1iZXIgb2YgdGhl IHNldCBvZiB2YWxpZCB2YWx1ZXMuICBJZiBzbywgaW4gb3JkZXINCiAgICB0byBkZXRlY3QgcHJv Z3JhbXMgdGhhdCBhcmUgbm90IHN0YW5kYXJkIGNvbmZvcm1pbmcsIGEgaGVscGZ1bA0KICAgIHBy b2Nlc3NvciBzaG91bGQgYW5ub3VuY2UgYW4gZXJyb3IgaW4gdGhpcyBjaXJjdW1zdGFuY2UsIHdo aWNoDQogICAgcmVxdWlyZXMgcHJvZHVjaW5nIGEgdmFsdWUgdGhhdCBpcyBhIG1lbWJlciBvZiB0 aGUgc2V0IG9mIHZhbGlkDQogICAgdmFsdWVzLCBhbmQgY29tcGFyaW5nIGl0IHRvIHRoZSBwcm9w b3NlZCByZXN1bHQgdmFsdWUgaW5zdGVhZCBvZg0KICAgIHVzaW5nIGl0IGFzIHRoZSByZXN1bHQg dmFsdWUuICBPbmUgbWlnaHQgYXJndWUgdGhhdCAxMy43LjEgd2FzDQogICAgYWltZWQsIGZvciBl eGFtcGxlLCBhdCBTUVJUKC0xLjApLCBmb3Igd2hpY2ggdGhlIG1hdGhlbWF0aWNhbA0KICAgIGZ1 bmN0aW9uIGFwcHJveGltYXRlZCBieSB0aGUgaW50cmluc2ljIGZ1bmN0aW9uIGhhcyBubyB2YWx1 ZXMgdGhhdA0KICAgIGFyZSByZXByZXNlbnRhYmxlIGJ5IHRoZSB0eXBlIGFuZCBraW5kIG9mIHRo ZSByZXN1bHQuICBCdXQgaXQNCiAgICBkb2Vzbid0IHNheSBzbywgYW5kIHRoYXQgYXJndW1lbnQg ZG9lcyBub3QgcmVhc29uYWJseSBhcHBseSB0bw0KICAgIFJFQUwuICBTaW5jZSAxMy43LjEzOHA1 IENhc2UgKGkpIGV4cGxpY2l0bHkgc2F5cyB0aGF0IFJFQUwgcHJvZHVjZXMNCiAgICBhbiBhcHBy b3hpbWF0aW9uIHRvIGl0cyBhcmd1bWVudCwgaXQgaXMgbW9yZSByZWFzb25hYmxlIGZvcg0KICAg IFJFQUwoMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMzOGQwLGtpbmQoMS4wZTApKSB0byBwcm9k dWNlIGFuDQogICAgYXBwcm94aW1hdGlvbiB0aGF0IGlzIGEgbWVtYmVyIG9mIHRoZSBzZXQgb2Yg dmFsaWQgdmFsdWVzIGZvciB0aGUNCiAgICBraW5kIG9mIHRoZSByZXN1bHQsIHRoYW4gZm9yIGl0 cyBpbnZvY2F0aW9uIHRvIGJlIHByb2hpYml0ZWQsIG9yIGZvcg0KICAgIGl0IHRvIHByb2R1Y2Ug YSByZXN1bHQgdGhhdCBpcyBub3QgYSBtZW1iZXIgb2YgdGhlIHNldCBvZiB2YWxpZA0KICAgIHZh bHVlcyBmb3IgdGhlIGtpbmQgb2YgdGhlIHJlc3VsdC4NCg0KICAgIElmIGEgcHJvY2Vzc29yIGFi c29sdXRlbHkgbXVzdCByZWR1Y2UgUkVBTCB3aXRoIGEgcmVhbCBhcmd1bWVudCB0bw0KICAgIHRo ZSBpZGVudGl0eSBvcGVyYXRpb24gdW5kZXIgY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBhIGNvbW1h bmQtbGluZQ0KICAgIGFyZ3VtZW50IHRvIGNhdXNlIHRoaXMgYmVoYXZpb3IgY291bGQgYmUgcHJv dmlkZWQsIHdpdGggYSBjYXZlYXQNCiAgICB0aGF0IHVzaW5nIHRoYXQgc2V0dGluZyBhZG1pdHMg YmVoYXZpb3IgdGhhdCBpcyBub3QgY29uc2lzdGVudCB3aXRoDQogICAgdGhlIHN0YW5kYXJkLg0K DQouLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLg0KDQpGMDMvMDEyMTogUmVwbGllcyBmcm9tIHRoZSBlZGl0b3INCg0KPDw8 DQogICAgICBJIHRoaW5rIGl0IGlzIHVuYWNjZXB0YWJsZSB0byByZWNvbW1lbmQgdGhlIHVzZSBv ZiB0aGUgVk9MQVRJTEUNCiAgICAgIGF0dHJpYnV0ZSBmb3IgYSB2YXJpYWJsZSB0aGF0IGlzIHJl ZmVyZW5jZWQsIGRlZmluZWQsIG9yIGJlY29tZXMNCiAgICAgIHVuZGVmaW5lZCBvbmx5IHdpdGhp biB0aGUgRm9ydHJhbiBwcm9ncmFtLiBUaGUgZGVzaXJlZCBlZmZlY3QNCiAgICAgIG1heSBiZSBv YnRhaW5lZCBieSBhc3NpZ25pbmcgdGhlIGludGVybWVkaWF0ZSByZXN1bHQgdG8gYQ0KICAgICAg dmFyaWFibGUgd2l0aG91dCB0aGUgVk9MQVRJTEUgYXR0cmlidXRlIGJlY2F1c2UgdGhpcyBydWxl cyBvdXQNCiAgICAgIHRoZSBleGNlcHRpb25zIGV4cGxhaW5lZCBpbiB0aGUgZmluYWwgc2VudGVu Y2Ugb2YgdGhlIGZpcnN0DQogICAgICBwYXJhZ3JhcGggb2YgdGhlIGFuc3dlciAoIkZ1cnRoZXJt b3JlLCAuLi4iKS4NCj4+Pg0KDQpXZWxsIG5vLiAgSW50ZXItc3RhdGVtZW50IG9wdGltaXNhdGlv biBpcyBhbGl2ZSBhbmQgd2VsbCAocmUsIGluIHNwaXRlDQpvZiBGOTAvMDAwMDAxOiBzb21lIHZl bmRvcnMgaGF2ZSB0byBjb21wZXRlIG9uIFNQRUMgYmVuY2htYXJrcyBhbmQgdGhlDQpsaWtlISks IGFuZCB0aGUgcGVvcGxlIG1vYW5pbmcgYWJvdXQgdGhlIFJFQUwoKSBpbnRyaW5zaWMgbm90IGRv aW5nDQp3aGF0IHRoZXkgd2FudCBmcmVxdWVudGx5IGFsc28gd2FudCB0aGUgb3B0aW1pc2F0aW9u IGNyYW5rZWQgdXAgdG8gdGhhdA0KbGV2ZWwuIEluIHRoYXQgY2FzZSwgVk9MQVRJTEUgaXMgc29t ZXRoaW5nIHRoYXQgZG9lcywgaW4gZmFjdCwgd29yay4NCg0KT25lIG1pZ2h0IHBsYXVzaWJseSBh cmd1ZSB0aGF0IHdlIGFyZSBiZWluZyBtb3JlIGhlbHBmdWwgaGVyZSB0aGFuIHdlDQpuZWVkIHRv Lg0KDQpOaWNrIG9waW5lZDoNCjw8PA0KICAgLi4uIGlzIGEgY29tbW9uIG15dGggaW4gYW1vbmcg QyBhbmQgQysrIGFuZCBldmVuIGluIGluZm9ybWF0aXZlIHRleHQNCiAgIGluIHRoZSBzdGFuZGFy ZHMgdGhhdCB2b2xhdGlsZSBpbXBsaWVzIHRoaXMgc2VtYW50aWMNCj4+Pg0KDQpJZiBpbmZvcm1h dGl2ZSB0ZXh0IGluIHRoZSBzdGFuZGFyZCBpbXBsaWVzIHRoaXMgc2VtYW50aWMsIHRoYXQgaXMg YQ0KY2xlYXIgaW5kaWNhdGlvbiBvZiB0aGUgaW50ZW50IG9mIHRoZSBDIGNvbW1pdHRlZS4NCg0K PDw8DQogICBidXQgaXQgaXMgbm90IGp1c3RpZmllZCBieSB0aGVpciBub3JtYXRpdmUgdGV4dCwN Cj4+Pg0KDQpUaGF0IGlzIHlvdXIgb3Bpbmlvbi4gIFlvdSBtaWdodCBvciBtaWdodCBub3QgYmUg cmlnaHQuICBNeQ0KdW5kZXJzdGFuZGluZyBvZiB0aGUgbm9ybWF0aXZlIHRleHQgaXMgb3RoZXJ3 aXNlIGkuZS4gdGhlIHNhbWUgYXMgdGhlDQppbmZvcm1hdGl2ZSBpbXBsaWNhdGlvbi4gIEkgbWln aHQgb3IgbWlnaHQgbm90IGJlIHJpZ2h0LiAgVW5kZXIgdGhlDQpjaXJjdW1zdGFuY2VzLCBzaW5j ZSB0aGlzIGlzIHRoZSBGb3J0cmFuIGNvbW1pdHRlZSBub3QgdGhlIEMNCmNvbW1pdHRlZSwgd2Ug c2hvdWxkIHRha2UgdGhlIGluZm9ybWF0aXZlIHRleHQgYXMgYmVpbmcgY29ycmVjdA0KcmF0aGVy IHRoYW4gd2hhdCBzb21lIG9mIHRoZSBiYXJyYWNrcy1yb29tIGxhd3llcnMgc2F5Lg0KDQo8PDwN CiAgIG5vciBkbyBhbGwgY29tcGlsZXJzIHN1cHBvcnQgaXQNCj4+Pg0KDQpNYW55IGNvbXBpbGVy cyBoYXZlIG1hbnkgYnVncyBpbiBtYW55IGFyZWFzLCBhbmQgdm9sYXRpbGUgaXMgbm8NCmV4Y2Vw dGlvbiB0byB0aGlzLiAgSW5kZWVkLCBwYXBlcnMgaGF2ZSBiZWVuIHdyaXR0ZW4gb24gc3VjaCB2 ZXJ5DQp0b3BpY3MuICBIb3dldmVyLCB0aGlzIGNhc2UgaXMgdmVyeSBzaW1wbGUgKG5vIG11bHRp LXRocmVhZGluZw0KcmVxdWlyZWQhKSBhbmQgaW4gbXkgZXhwZXJpZW5jZSBpdCBkb2VzIHdvcmsg cmVsaWFibHkuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBGMDMvMDEzOQ0KVElUTEU6IEZ1 bmN0aW9ucyByZXR1cm5pbmcgcHJvY2VkdXJlIHBvaW50ZXJzDQpLRVlXT1JEUzogcHJvY2VkdXJl IHBvaW50ZXINCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEluIEYyMDA4IENvcnJpZ2Vu ZHVtIDMNCg0KUVVFU1RJT046DQoNCigxKSBJcyBhIGZ1bmN0aW9uIHBlcm1pdHRlZCB0byByZXR1 cm4gYSBwcm9jZWR1cmUgcG9pbnRlcj8NCiAgICBNdWNoIG9mIHRoZSBsYW5ndWFnZSB0YWxrcyBh Ym91dCB0aGUgZnVuY3Rpb24gcmVzdWx0IHZhcmlhYmxlLA0KICAgIGJ1dCBhIHByb2NlZHVyZSBw b2ludGVyIGlzIG5vdCBhIHZhcmlhYmxlLiAgRm9yIGV4YW1wbGUsIDIuMi4zDQogICAgc2F5cyBb MTI6MTZdDQogICAgICAgIlRoZSBWQVJJQUJMRSB0aGF0IHJldHVybnMgdGhlIHZhbHVlIG9mIGEg ZnVuY3Rpb24gaXMgY2FsbGVkDQogICAgICAgIHRoZSBSRVNVTFQgVkFSSUFCTEUuIg0KICAgIChl bXBoYXNpcyBtaW5lKTsgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIHZhbHVlIG9mIGEgZnVuY3Rp b24gaXMNCiAgICByZXR1cm5lZCBpbiBhIHZhcmlhYmxlLg0KDQooMikgV2hlcmUgbWF5IGEgZnVu Y3Rpb24gcmVmZXJlbmNlIHRoYXQgcmV0dXJucyBhIHByb2NlZHVyZSBwb2ludGVyDQogICAgYXBw ZWFyPyAgSW4gcGFydGljdWxhciwNCiAgICAoYSkgYXMgYSA8c2VsZWN0b3I+IGluIGEgU0VMRUNU IFRZUEUgb3IgYW4gQVNTT0NJQVRFIHN0YXRlbWVudDsNCiAgICAoYikgd2l0aGluIHBhcmVudGhl c2VzIGFzIGEgcHJpbWFyeTsNCiAgICAoYykgYXMgdGhlIGFyZ3VtZW50IHRvIGFuIGludHJpbnNp YyBpbnF1aXJ5IGZ1bmN0aW9uIHN1Y2ggYXMNCiAgICAgICAgS0lORCBvciBMRU4uDQoNCigzKSBb MTI6MTgtMTldIHNheXMNCiAgICAgICJhIHN1YnJvdXRpbmUgbWF5IGJlIHVzZWQgdG8gY2hhbmdl IHRoZSBwcm9ncmFtIHN0YXRlIGJ5DQogICAgICAgY2hhbmdpbmcgdGhlIHZhbHVlcyBvZiBhbnkg b2YgdGhlIGRhdGEgb2JqZWN0cyBhY2Nlc3NpYmxlDQogICAgICAgdG8gdGhlIHN1YnJvdXRpbmUi Lg0KICAgIEEgcHJvY2VkdXJlIHBvaW50ZXIgaXMgbm90IGEgZGF0YSBvYmplY3QsIHNvIGlzIHRo aXMgbWVhbnQgdG8NCiAgICBpbXBseSB0aGF0IGEgc3Vicm91dGluZSBpcyBub3QgcGVybWl0dGVk IHRvIGNoYW5nZSB0aGUgc3RhdGUgb2YgYQ0KICAgIHByb2NlZHVyZSBwb2ludGVyPyAgU2ltaWxh ciB0ZXh0IGZvciBmdW5jdGlvbnMgYXBwZWFycyBpbiB0aGUgc2FtZQ0KICAgIHBhcmFncmFwaC4N Cg0KQU5TV0VSOg0KDQooMSkgWWVzLCBhIGZ1bmN0aW9uIGlzIHBlcm1pdHRlZCB0byByZXR1cm4g YSBwcm9jZWR1cmUgcG9pbnRlcjsgdGhlDQogICAgIHRleHQgY2FsbGluZyB0aGlzIGEgdmFyaWFi bGUgaXMgaW4gZXJyb3IuICBFZGl0cyBhcmUgc3VwcGxpZWQgdG8NCiAgICAgY29ycmVjdCB0aGVz ZSBtaXN0YWtlcy4NCg0KKDIpIEl0IHdhcyBpbnRlbmRlZCB0aGF0IGEgZnVuY3Rpb24gcmVmZXJl bmNlIHRoYXQgcmV0dXJucyBhDQogICAgIHByb2NlZHVyZSBwb2ludGVyIG9ubHkgYmUgcGVybWl0 dGVkIGFzIGFuIGFyZ3VtZW50IHRvIHRoZQ0KICAgICBBU1NPQ0lBVEVEIGFuZCBOVUxMIGludHJp bnNpYyBmdW5jdGlvbnMgYW5kIGluIHBsYWNlcyB3aGVyZSBhbg0KICAgICBvcmRpbmFyeSBwcm9j ZWR1cmUgbmFtZSB3b3VsZCBiZSBhY2NlcHRhYmxlLiAgUGFyZW50aGVzZXMgYXJvdW5kDQogICAg IGEgcG9pbnRlciBhY3QgdG8gZGVyZWZlcmVuY2UgdGhlIHBvaW50ZXIgYW5kIHJldHVybiBhIGNv cHkgb2YgdGhlDQogICAgIHZhbHVlOiB0aGlzIGFjdGlvbiBpcyBpbmFwcGxpY2FibGUgdG8gcHJv Y2VkdXJlcy4gVGh1cyB0aGUNCiAgICAgYW5zd2VycyB0byB0aGUgc3BlY2lmaWMgc3ViLXF1ZXN0 aW9ucyBhcmUgTm8sIE5vLCBhbmQgTm8gYWdhaW4uDQogICAgIENsYXJpZnlpbmcgZWRpdHMgYXJl IHByb3ZpZGVkLg0KDQooMykgTm8sIHRoaXMgaW1wbGljYXRpb24gaXMgbm90IGludGVuZGVkLiAg QSBjbGFyaWZ5aW5nIGVkaXQgaXMNCiAgICBwcm92aWRlZC4NCg0KRURJVFMgZm9yICgxYik6DQoN ClsxMDozMytdIEluc2VydCBuZXcgdGVybSBhZnRlciAiMS4zLjc3IDw8ZnVuY3Rpb24+PiINCiAg IjEuMy43N2EgPDxmdW5jdGlvbiByZXN1bHQ+Pg0KICAgZW50aXR5IHRoYXQgcmV0dXJucyB0aGUg dmFsdWUgb2YgYSBmdW5jdGlvbiIuDQoNClsxNTozMS0zM10gRGVsZXRlIHRlcm0gMS4zLjEyMSA8 PHJlc3VsdCB2YXJpYWJsZT4+Lg0KDQpbNTI6Ml0gNC4zLjEuMnAyLCBhZnRlciAiZnVuY3Rpb24g cmVzdWx0IiBkZWxldGUgInZhcmlhYmxlIi4NCg0KWzU4OjIzXSA0LjQuMy4ycDUsDQogICAgICAg ICJyZXN1bHQgdmFyaWFibGUgaW4gdGhlIGZ1bmN0aW9uIiAtPiAiZnVuY3Rpb24gcmVzdWx0Ii4N Cg0KWzg3OjldIDUuMXAyICJpdHMgcmVzdWx0IHZhcmlhYmxlIiAtPiAidGhlIGZ1bmN0aW9uIHJl c3VsdCIuDQoNClsxMDk6MjRdIDUuNXA0LA0KICAgICAgICAgIm5hbWUgb2YgdGhlIHJlc3VsdCB2 YXJpYWJsZSBvZiB0aGF0IGZ1bmN0aW9uIHN1YnByb2dyYW0iDQogICAgICAgICAtPiAicmVzdWx0 IG9mIHRoYXQgZnVuY3Rpb24iLg0Ke0Z1bmN0aW9uICpzdWJwcm9ncmFtKnMgZG8gbm90IGhhdmUg cmVzdWx0cywgdGhlIGZ1bmN0aW9uIHNwZWNpZmllZCBieQ0KIHRoZSBGVU5DVElPTiBzdGF0ZW1l bnQgZG9lcywgYXMgZG8gdGhlIG9uZXMgZGVmaW5lZCBieSB0aGUgRU5UUlkNCiBzdGF0ZW1lbnRz LCBidXQgdGhlIHN1YnByb2dyYW0gaXMganVzdCBzeW50YXgufQ0KDQpbMTEyOjE1XSA1LjcuMS4x IEM1ODcsICJyZXN1bHQgdmFyaWFibGUiIC0+ICJmdW5jdGlvbiByZXN1bHQiLg0KDQpbMTE0OjIy XSA1LjcuMi4xIEM1MTAwLCAicmVzdWx0IHZhcmlhYmxlIiAtPiAiZnVuY3Rpb24gcmVzdWx0Ii4N Cg0KWzEzMDoyNl0gNi43LjMuMnAyLCBhZnRlciAiZnVuY3Rpb24gcmVzdWx0IiBkZWxldGUgInZh cmlhYmxlIi4NCg0KWzI3ODoxMV0gMTIuMy4xICJyZXN1bHQgdmFsdWUiLT4iZnVuY3Rpb24gcmVz dWx0Ii4NCntSZWFkcyBhIGJpdCBhd2t3YXJkbHksIGJ1dCBpdCBpcyBpbXBvcnRhbnQgdG8gdXNl IHRoZSBjb3JyZWN0IHRlcm1zDQogYW5kIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCAxMi4zLjMgKHdo aWNoIGRvZXMpIG90aGVyd2lzZSB0aGlzIGlzDQogdW5kZWZpbmVkIG1lYW5pbmdsZXNzIGJsYXRo ZXIufQ0KDQpbMzA3OjUsOV0gMTIuNi4yLjJwMywgInJlc3VsdCB2YXJpYWJsZSIgLT4gImZ1bmN0 aW9uIHJlc3VsdCIsIHR3aWNlLg0KDQpbMzA3OjEyLDE0LDE1XSBwNCwgInJlc3VsdCB2YXJpYWJs ZSIgLT4gImZ1bmN0aW9uIHJlc3VsdCIsIHRocmljZS4NCg0KWzMwNzoxNS0xNl0gRGVsZXRlICJU aGUgY2hhcmFjdGVyaXN0aWNzIC4uLiB2YXJpYWJsZS4iLg0KDQpbMzA3OjE2LTE3XSAiaXRzIHJl c3VsdCB2YXJpYWJsZS4iIC0+ICJpdHMgZnVuY3Rpb24gcmVzdWx0LiINCg0KWzMwNzoxN10gImlz IGEgcG9pbnRlciIgLT4gImlzIGEgZGF0YSBwb2ludGVyIi4NCg0KWzMwNzoxOCwxOCwyMF0gInJl c3VsdCB2YXJpYWJsZSIgLT4gImZ1bmN0aW9uIHJlc3VsdCIsIHRocmljZS4NCg0KWzMwNzoyMCsy XSBOT1RFIDEyLjQxLCAiVGhlIC4uLiBzdWJwcm9ncmFtLiIgLT4NCiAgIlRoZSBmdW5jdGlvbiBy ZXN1bHQgaXMgc2ltaWxhciB0byBhbnkgb3RoZXIgZW50aXR5ICh2YXJpYWJsZSBvcg0KICAgcHJv Y2VkdXJlIHBvaW50ZXIpIGxvY2FsIHRvIHRoZSBmdW5jdGlvbiBzdWJwcm9ncmFtLiIuDQpbMzA3 OjIwKzRdICJ0aGlzIHZhcmlhYmxlIiAtPiAidGhpcyBlbnRpdHkiLg0KWzMwNzoyMCs1XSAidGhh dCB2YXJpYWJsZSIgLT4gInRoYXQgZW50aXR5Ii4NCg0KWzMwOToyMywyNF0gMTIuNi4yLjVwMywN CiAgICAgICAgICAgICJyZXN1bHQgdmFyaWFibGUgbmFtZSIgLT4gIm5hbWUgb2YgdGhlIGZ1bmN0 aW9uIHJlc3VsdCIsDQogICAgICAgICAgICB0d2ljZS4NCg0KWzMxMDoyXSAxMi42LjIuNnAzLCBh ZnRlciAibmFtZSBvZiBpdHMgcmVzdWx0IiBkZWxldGUgInZhcmlhYmxlIi4NCg0KWzMxMDoyLTNd IERlbGV0ZSAiVGhlIGNoYXJhY3RlcmlzdGljcyAuLi4gdGhlIHJlc3VsdCB2YXJpYWJsZS4iLg0K DQpbMzEwOjUtNl0gInJlc3VsdCB2YXJpYWJsZXMgaWRlbnRpZnkgdGhlIHNhbWUgdmFyaWFibGUi DQogICAgICAgICAgLT4gInJlc3VsdCBuYW1lcyBpZGVudGlmeSB0aGUgc2FtZSBlbnRpdHkiDQog ICAgICAgICAgIGFuZCBkZWxldGUgIiwgYWx0aG91Z2ggdGhlaXIgbmFtZXMgbmVlZCBub3QgYmUg dGhlIHNhbWUiLg0KDQpbMzEwOjZdICJzY2FsYXJzIiAtPiAic2NhbGFyIHZhcmlhYmxlcyIuDQoN ClszMTQ6M10gQWZ0ZXIgIlRoZSByZXN1bHQiIGRlbGV0ZSAidmFyaWFibGUiLg0KDQpbNDMzOjdd ICJyZXN1bHQgdmFyaWFibGUgaXMgYSBzY2FsYXIiLT4icmVzdWx0IGlzIGEgc2NhbGFyIHZhcmlh YmxlIi4NCg0KWzQ0MTo3LDEwXSAxNi4zLjFwNCwgInJlc3VsdCB2YXJpYWJsZSIgLT4gImZ1bmN0 aW9uIHJlc3VsdCIsIHR3aWNlLg0KDQpbNDQxOjE4LTIwXSAxNi4zLjNwMSwgInJlc3VsdCB2YXJp YWJsZSIgLT4gImZ1bmN0aW9uIHJlc3VsdCIsIHRocmljZS4NCg0KWzQ0OTozLTRdIDE2LjUuMy4x cDEgInJlc3VsdCB2YXJpYWJsZXMiIC0+DQogICAgICAgICAgImZ1bmN0aW9uIHJlc3VsdHMgdGhh dCBhcmUgdmFyaWFibGVzIi4NCg0KWzQ1MDoyMF0gMTYuNS4zLjRwNiwNCiAgICAgICAgICJyZXN1 bHQgdmFyaWFibGVzIiAtPiAiZnVuY3Rpb24gcmVzdWx0cyB0aGF0IGFyZSB2YXJpYWJsZXMiLg0K DQpbNDU2OjExXSAxNi42LjZwMSwgaXRlbSAoMTUpKGUpLA0KICAgICAgICAgInRoZSByZXN1bHQg dmFyaWFibGUgb2YgYSBmdW5jdGlvbiINCiAgICAgICAgIC0+ICJhIHZhcmlhYmxlIHRoYXQgaXMg dGhlIGZ1bmN0aW9uIHJlc3VsdCBvZiB0aGF0IHByb2NlZHVyZSINCntBbHNvIGZpeGVzIGFsbCBm dW5jdGlvbiByZXN1bHRzIGJlY29taW5nIHVuZGVmaW5lZCB3aGVuIGEgc2luZ2xlDQogcHJvY2Vk dXJlIGlzIGludm9rZWQhfQ0KDQpFRElUUyBmb3IgKDJiKS4NCg0KWzEzMzoyNitdIEluc2VydCBu ZXcgY29uc3RyYWludA0KICAiQzcwMmEgKFI3MDEpIFRoZSA8ZXhwcj4gc2hhbGwgbm90IGJlIGEg ZnVuY3Rpb24gcmVmZXJlbmNlIHRoYXQNCiAgICAgICAgIHJldHVybnMgYSBwcm9jZWR1cmUgcG9p bnRlci4iDQoNClsxNzA6MjMrXSBJbnNlcnQgbmV3IGNvbnN0cmFpbnQNCiAgIkM4MDRhIChSODA1 KSBUaGUgPGV4cHI+IHNoYWxsIG5vdCBiZSBhIGZ1bmN0aW9uIHJlZmVyZW5jZSB0aGF0DQogICAg ICAgICByZXR1cm5zIGEgcHJvY2VkdXJlIHBvaW50ZXIuIg0KDQpbMzE2OjEyK10gMTMuMi4xIGFm dGVyIHA2LCBpbnNlcnQgbmV3IHBhcmFncmFwaA0KICAiQW4gYXJndW1lbnQgdG8gYW4gaW50cmlu c2ljIHByb2NlZHVyZSBvdGhlciB0aGFuIEFTU09DSUFURUQsIE5VTEwsDQogICBvciBQUkVTRU5U IHNoYWxsIGJlIGEgZGF0YSBvYmplY3QuIg0KDQpFRElUUyBmb3IgKDMpLg0KDQpbMzA6MjhdIEFm dGVyICJkYXRhIG9iamVjdHMiIGluc2VydCAib3IgcHJvY2VkdXJlIHBvaW50ZXJzIi4NCg0KU1VC TUlUVEVEIEJZOiBNYWxjb2xtIENvaGVuDQoNCkhJU1RPUlk6IDA5LTI5NSAgICBtMTkwICBGMDMv MDEzOSBzdWJtaXR0ZWQgLSBQYXNzZWQgYnkgSjMgbWVldGluZzoNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgQiBhbnN3ZXJzIHBhc3NlZA0KICAgICAgICAgMTAtMTA1ICAgIG0xOTEgIFBhc3Nl ZCBhcyBhbWVuZGVkIGJ5IEozIGxldHRlciBiYWxsb3QgIzIwDQogICAgICAgICAgICAgICAgICAg ICAgICAgIDA5LTMwNw0KICAgICAgICAgTjE4MTYgICAgIG0xOTEgIEZhaWxlZCBXRzUgYmFsbG90 ICM3IHtOMTgwNS82fSAtIGludGVycA0KICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVk IC0gc2VlIDEwLTEzNXIxDQogICAgICAgICAxMy0yNDkgICAgbTIwMCAgUmV2aXNlZCAtIHBhc3Nl ZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAxMy0yNjIgICAgbTIwMSAgUGFzc2VkIGFzIGFtZW5k ZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAjMjgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgMTMt MjU1cjENCiAgICAgICAgIE4xOTkwICAgICBtMjAyICBQYXNzZWQgYnkgV0c1IGJhbGxvdCA2IE4x OTg3Lzg4LzkwDQoqKiBBZGQgZXh0cmEgZWRpdCB0byBbMzA3OjE2LTE3XTsgIGNoYW5nZSB0aGUg ZWRpdCBmb3IgWzQzMzo3XQ0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIEluIEYyMDA4IENvcnJp Z2VuZHVtIDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpQYXJ0IDQ6IEFjdGl2 ZSBGb3J0cmFuIDIwMDggSW50ZXJwcmV0YXRpb24gUmVxdWVzdHMNCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0K LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMDI5DQpUSVRMRTogRzAgZWRpdCBkZXNjcmlw dG9yIGFuZCBmbG9hdGluZy1wb2ludCBvdXRwdXQNCktFWVdPUkRTOiBHIGVkaXQgZGVzY3JpcHRv ciwgMCB3aWR0aA0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSjMgY29uc2lkZXJhdGlv biBpbiBwcm9ncmVzcw0KDQpRVUVTVElPTjoNCg0KRm9yIGRhdGEgdHlwZXMgb3RoZXIgdGhhbiBm bG9hdGluZy1wb2ludCwgdGhlIGVmZmVjdCBvZiB0aGUgRzAgZWRpdA0KZGVzY3JpcHRvciBpcyBw cmVjaXNlbHkgZGVmaW5lZC4gIEZvciBmbG9hdGluZy1wb2ludCBvdXRwdXQsIHRoZQ0KZWZmZWN0 IGlzIHByZWNpc2VseSBkZWZpbmVkIG9ubHkgaWYgdGhlIHZhbHVlIGlzIGFuIElFRUUgTmFOIG9y DQpJbmZpbml0eSwgdGhlIHJlc3VsdCBpcyBvdGhlcndpc2UgbGVmdCB1cCB0byB0aGUgcHJvY2Vz c29yIHRvIHNlbGVjdA0KInJlYXNvbmFibGUiIHZhbHVlcyBmb3IgdywgZSwgYW5kIGQgKGlmIGQg aXMgdW5zcGVjaWZpZWQpLg0KDQpUaGUgc3RhbmRhcmQgc3RhdGVzIFsyNTg6Ny05IDEwLjcuNS4y LjJwMl06DQoNCiAgICAgICJ0aGUgRzAgYW5kIEcwLmQgZWRpdCBkZXNjcmlwdG9ycyBmb2xsb3cg dGhlIHJ1bGVzIGZvciB0aGUNCiAgICAgICBHdy5kRWUgZWRpdCBkZXNjcmlwdG9yLCBleGNlcHQg dGhhdCBhbnkgbGVhZGluZyBvciB0cmFpbGluZw0KICAgICAgIGJsYW5rcyBhcmUgcmVtb3ZlZCIu DQoNCk9uZSBtaWdodCBkZWR1Y2UgZnJvbSB0aGUgd29yZGluZyBvZiB0aGlzIHRoYXQgdGhlcmUg aXMgbm8gdXBwZXIgbGltaXQNCm9uIHRoZSBjaG9pY2Ugb2Ygdywgc2luY2UgdGhlIHByb2R1Y3Rp b24gb2YgYWRkaXRpb25hbCBsZWFkaW5nIChvcg0KdHJhaWxpbmcpIGJsYW5rcyBoYXMgbm8gZWZm ZWN0IG9uIHRoZSBvdXRwdXQuDQoNClExLiBJcyBhIHZhbHVlIGZvciB3IG9yIGUgdGhhdCByZXN1 bHRzIGluIHRoZSBmaWVsZCBiZWluZyBmaWxsZWQgd2l0aA0KICAgIGFzdGVyaXNrcyByZWFzb25h YmxlPyAgVGhpcyBpcyBub3QsIGFmdGVyIGFsbCwgYW4gZXJyb3IgY29uZGl0aW9uLg0KDQpRMi4g SXMgYSB2YWx1ZSBmb3IgZCB0aGF0IHJlc3VsdHMgaW4gc2lnbmlmaWNhbnQgbG9zcyBvZiBwcmVj aXNpb24NCiAgICByZWFzb25hYmxlPyAgRS5nLiBkPT0xLCBvciBmb3IgYSBsZXNzIGV4dHJlbWUg ZXhhbXBsZSwNCiAgICBkPT1QUkVDSVNJT04odmFsdWUpLzIuDQoNClEzLiBJcyBhIHZhbHVlIGZv ciBkIHRoYXQgcHJvZHVjZXMgbWFueSBtb3JlIGRpZ2l0cyB0aGFuIHRoZSBwcmVjaXNpb24NCiAg ICByZWFzb25hYmxlPyAgRS5nLiBkPT0xMDAwMDAwLiAgT3IsIGZvciBhIGxlc3MgZXh0cmVtZSBl eGFtcGxlLA0KICAgIGQ9PVBSRUNJU0lPTihxdWFkKSB3aXRoIGEgc2luZ2xlIHByZWNpc2lvbiB2 YWx1ZS4NCg0KUTQuIElzIGEgdmFsdWUgZm9yIGUgdGhhdCBwcm9kdWNlcyBtYW55IG1vcmUgZGln aXRzIGluIHRoZSBleHBvbmVudA0KICAgIHRoYW4gdGhlIGV4cG9uZW50IHJhbmdlIHJlYXNvbmFi bGU/ICBFLmcuIGU9PTEwMDAwMDAuDQoNClE1LiBJZiB0aGUgc3RhbmRhcmQgY2Fubm90IHRlbGwg bWUgd2hhdCAicmVhc29uYWJsZSIgbWVhbnMsIHdoYXQNCiAgICBwdXJwb3NlIGRvZXMgaXQgc2Vy dmUgZm9yIGl0IHRvIHNheSB0aGF0IGl0IG11c3QgYmUgcmVhc29uYWJsZT8NCiAgICBJIGNhbm5v dCBzZWUgaG93IHRvIHRlbGwgd2hldGhlciBhIHByb2Nlc3NvciBjb25mb3JtcyB0byB0aGUNCiAg ICBzdGFuZGFyZCBpbiB0aGlzIHJlc3BlY3QuDQoNCkRJU0NVU1NJT046DQoNClRoZSBzdGFuZGFy ZCBwZXJtaXRzLCBidXQgZG9lcyBub3QgcmVxdWlyZSwgdGhlICJiZXN0IiB2YWx1ZXMgb2Ygdywg ZA0Kb3IgZSB0byBiZSBjaG9zZW4gZm9yIGVhY2ggaW50ZXJuYWwgdmFsdWUuDQoNCkFOU1dFUjoN Cg0KQTEuIE5vLCB0aGF0IGlzIG5vdCByZWFzb25hYmxlLiAgQW4gZWRpdCBpcyBzdXBwbGllZCB0 byBjbGFyaWZ5IHRoZQ0KICAgIG1lYW5pbmcgb2YgInJlYXNvbmFibGUiLg0KDQpBMi4gTm8sIGEg dmFsdWUgb2YgZCB0aGF0IHJlc3VsdHMgaW4gYSBzaWduaWZpY2FudCBsb3NzIG9mIHByZWNpc2lv bg0KICAgIGlzIG5vdCByZWFzb25hYmxlLiAgQW4gZWRpdCBpcyBzdXBwbGllZCB0byBjb3JyZWN0 IHRoaXMuDQoNCkEzLiBObywgaXQgaXMgbm90IHJlYXNvbmFibGUgZm9yIGQgdG8gYmUgcmlkaWN1 bG91c2x5IGxhcmdlLg0KICAgIEFuIGVkaXQgaXMgc3VwcGxpZWQgdG8gY2xhcmlmeSB0aGUgaW50 ZW50Lg0KDQpBNC4gTm8sIGUgc2hvdWxkIG5vdCBiZSBiaWdnZXIgdGhhbiB0aGF0IHJlcXVpcmVk IHRvIHJlcHJlc2VudCB0aGUNCiAgICBsYXJnZXN0IGZpbml0ZSBtYWNoaW5lLXJlcHJlc2VudGFi bGUgbnVtYmVyLiAgQW4gZWRpdCBpcw0KICAgIHN1cHBsaWVkIHRvIHNwZWNpZnkgdGhpcy4NCg0K QTUuIFllcywgdGhlIHVzZSBvZiB0aGUgd29yZCAicmVhc29uYWJsZSIgaW4gdGhpcyBjb250ZXh0 IGlzIGVudGlyZWx5DQogICAgbWVhbmluZ2xlc3MuICBBbiBlZGl0IGlzIHN1cHBsaWVkIHRvIHJl bW92ZSB0aGlzIG1pc2xlYWRpbmcNCiAgICB0ZXJtaW5vbG9neS4NCg0KRURJVFMgdG8gMTAtMDA3 cjE6DQoNCkluIDEwLjcuNS4yLjIsIHBhcmFncmFwaCAyOg0KDQpbMjU4OjldIEluIDEwLjcuNS4y LjJwMiBsYXN0IHNlbnRlbmNlOg0KICAiUmVhc29uYWJsZSBwcm9jZXNzb3ItZGVwZW5kZW50IiAt PiAiUHJvY2Vzc29yLWRlcGVuZGVudCIuDQp7QTUufQ0KDQpbMjU4OjEwXSBJbiA3LjUuMi4ycDIg bGFzdCBzZW50ZW5jZSwgYWZ0ZXIgInZhbHVlIiBpbnNlcnQNCiAgIiwgdGhhdCBkbyBub3QgcmVz dWx0IGluIHRoZSBmaWVsZCBiZWluZyBmaWxsZWQgd2l0aCBhc3Rlcmlza3MiLg0Ke0ExLn0NCg0K WzI1ODoxMF0gQXBwZW5kIG5ldyBzZW50ZW5jZXMgdG8gMTAuNy41LjIuMnAyOg0KICAiVGhlIHZh bHVlIG9mIDxkPiBzaGFsbCBub3QgcmVzdWx0IGluIHRoZSBwcm9kdWN0aW9uIG9mIGFuIG91dHB1 dA0KICAgdmFsdWUgdGhhdCBkaWZmZXJzIGZyb20gdGhlIGludGVybmFsIHZhbHVlIGJ5IG1vcmUg dGhhbg0KICAgMTAwKlNQQUNJTkcodmFsdWUpLCBhbmQgc2hhbGwgbm90IGJlIG1vcmUgdGhhbiB0 d28gbGFyZ2VyIHRoYW4gdGhlDQogICBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgdGhhdCBtaWdo dCBiZSByZXF1aXJlZCB0byBkaXN0aW5ndWlzaA0KICAgYmV0d2VlbiB0d28gZGlmZmVyZW50IG1h Y2hpbmUgbnVtYmVycyBvZiB0aGUga2luZCBvZiB0aGUgaW50ZXJuYWwNCiAgIHZhbHVlLiAgVGhl IHZhbHVlIG9mIDxlPiBzaGFsbCBub3QgYmUgc28gbGFyZ2UgdGhhdCB0aGUgZXhwb25lbnQNCiAg IHdvdWxkIGhhdmUgYSBsZWFkaW5nIHplcm8gYm90aCB3aGVuIHRoZSBpbnRlcm5hbCB2YWx1ZSBp cyB0aGUNCiAgIGxhcmdlc3QgZmluaXRlIG1hY2hpbmUgbnVtYmVyIGFuZCB3aGVuIGl0IGlzIHRo ZSBzbWFsbGVzdCBmaW5pdGUNCiAgIG1hY2hpbmUgbnVtYmVyIG9mIHRoYXQga2luZC4iDQp7VGhl IGZpcnN0IHNlbnRlbmNlIGxpbWl0cyB0aGUgY2hvaWNlIG9mIDxkPiB0byBsb3NlIG5vIG1vcmUg dGhhbiAyDQogZGlnaXRzIG9mIHByZWNpc2lvbiAoQTIpIGFuZCB0byBoYXZlIG5vIG1vcmUgdGhh biAyIHNwdXJpb3VzIGRpZ2l0cw0KIG9mICBwcmVjaXNpb24gKEEzKTsgZm9yIHNvbWUgZmxvYXRp bmctcG9pbnQgZm9ybWF0cywgdGhlIHVwcGVyIGJvdW5kDQogaXMgbm90IHN0cm9uZywgYmVpbmcg ZCA8PSAyK01BWChQUkVDSVNJT04odmFsdWUpKzIsUkFOR0UodmFsdWUpKjIpLg0KIFRoZSBzZWNv bmQgc2VudGVuY2Ugd291bGQgYWxsb3cgZT09NCBmb3IgYSBsb3Atc2lkZWQgZXhwb25lbnQgcmFu Z2UsDQogZS5nLiAtMTEwMCB0byArOTAwLCBidXQgd291bGQgbGltaXQgZSB0byBhdCBtb3N0IDMg aWYgdGhlIGV4cG9uZW50DQogcmFuZ2UgaXMgZS5nLiAtMzA4IHRvICszMDggKEE0KS4NCiBOZWl0 aGVyIG9mIHRoZXNlIHJlc3RyaWN0aW9ucyBwcmV2ZW50IGEgcHJvY2Vzc29yIGZyb20gcHJvZHVj aW5nDQogZmV3ZXIgbWFudGlzc2Egb3IgZXhwb25lbnQgZGlnaXRzIGZvciBwYXJ0aWN1bGFyIHZh bHVlcyBpZiB0aGF0IGRvZXMNCiBub3QgcmVzdWx0IGluIHNlcmlvdXMgbG9zcyBvZiBhY2N1cmFj eS59DQoNClNVQk1JVFRFRCBCWTogTWFsY29sbSBDb2hlbg0KDQpISVNUT1JZOiAxMC0xNzkgICAg bTE5MiAgRjA4LzAwMjkgc3VibWl0dGVkDQogICAgICAgICAxMC0xNzlyMSAgbTE5MiAgRHJhZnQg YW5zd2VyIHdpdGggc3RyYXcgdm90ZSBvbiBhbHRlcm5hdGl2ZQ0KICAgICAgICAgMTAtMTc5cjIg IG0xOTIgIFJldmlzZWQgZHJhZnQgLSBQYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTAt MjAyICAgIG0xOTIgIFBhc3NlZCBieSBKMyBsZXR0ZXIgYmFsbG90ICMyMSAxMC0xOTkNCiAgICAg ICAgIDExLTAwNkFyMSBtMTk2ICBBZGp1c3QgZWRpdHMgdG8gcmVmZXJlbmNlIDEwLTAwN3IxDQog ICAgICAgICBOMTg4OSAgICAgbTE5NiAgRmFpbGVkIFdHNSBiYWxsb3QgMiBOMTg3Nw0KDQpGMDgv MDAyOQ0KQ29yYmV0dCBOTyB2b3RlOg0KSSBhZ3JlZSB0aGF0IHRoZSB3b3JkICJyZWFzb25hYmxl IiBzaG91bGQgbm90IGFwcGVhciBpbiB0aGUNCkZvcnRyYW4gc3RhbmRhcmQuICBUaGUgZmlyc3Qg dHdvIHByb3Bvc2VkIGVkaXRzIHNob3VsZCBiZQ0KaW5jb3Jwb3JhdGVkLiAgVGhlIHRoaXJkIGVk aXQgc2hvdWxkIG5vdCBiZSBhZG9wdGVkLg0KDQpJIG9iamVjdCB0byB0aGUgdGhpcmQgZWRpdCBv biBnZW5lcmFsIGdyb3VuZHMuICBUaGUgaXNzdWVzIGRlYWx0DQp3aXRoIGluIHRoZSB0aGlyZCBl ZGl0IHNob3VsZCBiZSBtYXR0ZXJzIG9mICJxdWFsaXR5IG9mDQppbXBsZW1lbnRhdGlvbi4iICBJ IHNlZSBubyByZWFzb24gZm9yIHRoZSBGb3J0cmFuIHN0YW5kYXJkIHRvDQpyZXN0cmljdCBpbXBs ZW1lbnRvcnMnIGNob2ljZXMgaW4gdGhpcyBhcmVhLg0KDQpJIGFsc28gb2JqZWN0IHRvIHRoZSB0 aGlyZCBlZGl0IG9uIHNwZWNpZmljIGdyb3VuZHMuICBUaGUNCnByb3Bvc2VkIGVkaXQgbWFrZXMg bm8gcHJvdmlzaW9uIGZvciBub256ZXJvIHNjYWxlIGZhY3RvcnMuICBJZg0KYSBub256ZXJvIHNj YWxlIGZhY3RvciBpcyBpbiBlZmZlY3QsIGFuIGltcGxlbWVudGF0aW9uIG1pZ2h0DQpyZWFzb25h Ymx5IGNob29zZSBhIHZhbHVlIG9mIGQgdGhhdCBpcyBvdXRzaWRlIHRoZSByYW5nZQ0Kc3BlY2lm aWVkIGJ5IHRoZSBlZGl0LCBpZiBvbmx5IHRvIGF2b2lkIHRoZSBzY2FsZSBmYWN0b3IgYmVpbmcN Cm91dHNpZGUgdGhlIGFsbG93ZWQgcmFuZ2Ugb2YgdmFsdWVzLg0KDQpUaGUgcGhyYXNlDQogICAg YW5kIHNoYWxsIG5vdCBiZSBubyBtb3JlIHRoYW4gdHdvIGxhcmdlciB0aGFuIHRoZQ0KICAgIG1h eGltdW0gbnVtYmVyIG9mIGRpZ2l0cyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIHRvDQogICAgZGlz dGluZ3Vpc2ggYmV0d2VlbiAgICAgICB0d28gZGlmZmVyZW50IG1hY2hpbmUNCiAgICBudW1iZXJz IG9mIHRoZSBraW5kIG9mIHRoZSBpbnRlcm5hbCB2YWx1ZS4NCnNob3VsZCBzYXkgZWl0aGVyICJh bnkiIGJldHdlZW4gImJldHdlZW4iIGFuZCAidHdvIiwNCm9yIHNob3VsZCBzYXkgImFsbCBwYWly cyBvZiIgaW5zdGVhZCBvZiAidHdvLiINCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjA4 LzAwNDENClRJVExFOiAgU2VnbWVudCBvcmRlcmluZyBydWxlcw0KS0VZV09SRFM6IHNlZ21lbnQs IGFsbG9jYXRpb24NCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEozIGNvbnNpZGVyYXRp b24gaW4gcHJvZ3Jlc3MNCg0KUVVFU1RJT046DQoNCigxKSBXYXMgaXQgaW50ZW5kZWQgdG8gYWxs b3cgdGhlIGFsbG9jYXRpb24gb2YgYSB2YXJpYWJsZSB0aGF0IGlzIG5vdA0KICAgIGEgc3Vib2Jq ZWN0IG9mIGEgY29hcnJheSB0byBiZSB1bm9yZGVyZWQgd2l0aCByZXNwZWN0IHRvIGl0cw0KICAg IGRlZmluaXRpb24gYnkgYW5vdGhlciBpbWFnZSB0aHJvdWdoIGEgcG9pbnRlciBjb21wb25lbnQg b2YgYQ0KICAgIGNvYXJyYXk/DQoNCkZvciBleGFtcGxlLA0KDQogIFBST0dSQU0gZXhhbXBsZTEN CiAgICBUWVBFIHQxDQogICAgICBSRUFMLEFMTE9DQVRBQkxFIDo6IGMoOikNCiAgICBFTkQgVFlQ RQ0KICAgIFRZUEUgdDINCiAgICAgIFRZUEUodDEpLFBPSU5URVIgOjogcA0KICAgIEVORCBUWVBF DQogICAgVFlQRSh0MSksVEFSR0VUIDo6IHgNCiAgICBUWVBFKHQyKSA6OiB5WypdDQogICAgeSVw ID0+IHggICAgICAgICAgICAgICAgICAgICAgICAgISB5W25dJXAgPT4geFtuXSBmb3IgYWxsIG4u DQogICAgU1lOQyBBTEwNCiAgICBJRiAoVEhJU19JTUFHRSgpPT0xKSBUSEVODQogICAgICBBTExP Q0FURSh4JWMoMTAwMCkpICAgICAgICAgICAgISBBbGxvY2F0ZXMgeFsxXSVjLg0KICAgIEVMU0UN CiAgICAgIHlbMV0lcCVjKFRISVNfSU1BR0UoKSkgPSA5OTkgICAhIERlZmluZXMgc29tZSBwYXJ0 IG9mIHhbMV0lYy4NCiAgICBFTkQgSUYNCiAgRU5EIFBST0dSQU0NCg0KKDIpIElmIGEgdmFyaWFi bGUgaXMgYWxyZWFkeSBkZWZpbmVkIChpbml0aWFsbHkgb3IgYnkgc29tZSBzZWdtZW50DQogICAg dGhhdCBwcmVjZWRlcyBhbGwgb3RoZXIgc2VnbWVudHMgaW4gdGhpcyBxdWVzdGlvbiksIG1heSBv bmUgaW1hZ2UNCiAgICByZWZlcmVuY2UgaXQgd2hpbGUgYW5vdGhlciBpbWFnZSBjYXVzZXMgaXQg dG8gYmVjb21lIHVuZGVmaW5lZCBpbg0KICAgIHVub3JkZXJlZCBzZWdtZW50cz8NCg0KRm9yIGV4 YW1wbGUsIGlzDQoNCiAgUFJPR1JBTSBleGFtcGxlMg0KICAgIFJFQUwgOjogeCgxMDApWypdDQog ICAgeCA9IDENCiAgICBTWU5DIEFMTA0KICAgIElGIChUSElTX0lNQUdFKCk9PTEpIFRIRU4NCiAg ICAgIFBSSU5UICosU1VNKHgpDQogICAgRUxTRQ0KICAgICAgQ0FMTCBkZXN0cm95KHgpDQogICAg RU5EIElGDQogIENPTlRBSU5TDQogICAgU1VCUk9VVElORSBkZXN0cm95KHgpDQogICAgICBSRUFM LElOVEVOVChPVVQpIDo6IHgoOikNCiAgICBFTkQgU1VCUk9VVElORQ0KICBFTkQgUFJPR1JBTQ0K DQpzdGFuZGFyZC1jb25mb3JtaW5nPyAgVGhpcyBkb2VzIG5vdCBhcHBlYXIgdG8gdmlvbGF0ZSBh bnkgb2YgdGhlDQpzZWdtZW50IG9yZGVyaW5nIHJlcXVpcmVtZW50cyBpbiA4LjUuMiBiZWNhdXNl IGl0IGlzIG5vdCBkZWZpbmVkIGluDQphbnkgdW5vcmRlcmVkIHNlZ21lbnQgKHNvIGJ1bGxldCAx IGRvZXMgbm90IGFwcGx5KSwgdGhlcmUgaXMgbm8NCmFsbG9jYXRpb24gb3IgcG9pbnRlciBhc3Nv Y2lhdGlvbiBzdGF0dXMgKHNvIGJ1bGxldCAyIGRvZXMgbm90IGFwcGx5KSwNCmFuZCB0aGVyZSBp cyBubyBkdW1teSBhcmd1bWVudCBiZWluZyBkZWZpbmVkIChzbyBidWxsZXQgMyBkb2VzIG5vdA0K YXBwbHkpLg0KDQpBTlNXRVI6DQoNCigxKSBObywgdGhpcyBleGFtcGxlIHZpb2xhdGVzIHRoZSBy ZXF1aXJlbWVudCBvZiB0aGUgZmlyc3QgYnVsbGV0IGluDQogICAgcGFyYWdyYXBoIDMgb2YgOC41 LjIsIHdoaWNoIHNheXM6DQogICAgICAiaWYgYSB2YXJpYWJsZSBpcyBkZWZpbmVkIG9uIGFuIGlt YWdlIGluIGEgc2VnbWVudCwgaXQgc2hhbGwgbm90DQogICAgICAgYmUgcmVmZXJlbmNlZCwgZGVm aW5lZCwgb3IgYmVjb21lIHVuZGVmaW5lZCBpbiBhIHNlZ21lbnQgb24NCiAgICAgICBhbm90aGVy IGltYWdlIHVubGVzcyB0aGUgc2VnbWVudHMgYXJlIG9yZGVyZWQiLg0KICAgIHhbMV0lYyBpcyBk ZWZpbmVkIGluIHNlZ21lbnQgMiBieSBpbWFnZXMgMi1OLCBidXQgaXMgbWFkZQ0KICAgIHVuZGVm aW5lZCBvbiBpbWFnZSAxIChhbGxvY2F0aW9uIG1ha2VzIGEgdmFyaWFibGUgdW5kZWZpbmVkIGV4 Y2VwdA0KICAgIHdoZW4gZGVmYXVsdCBpbml0aWFsaXphdGlvbiBvY2N1cnMpLg0KDQooMikgTm8s IHRoaXMgZXhhbXBsZSB3YXMgbm90IGludGVuZGVkIHRvIGJlIHN0YW5kYXJkLWNvbmZvcm1pbmcu ICBBbg0KICAgIGVkaXQgaXMgc3VwcGxpZWQgdG8gY2xhcmlmeSB0aGUgaW50ZW50Lg0KDQpFRElU UyB0byAxMC0wMDc6DQoNClsxODk6MTRdIEluIDguNS4yIHBhcmFncmFwaCAzLCBmaXJzdCBidWxs ZXQgcG9pbnQsDQogIEFmdGVyICJpZiBhIHZhcmlhYmxlIGlzIGRlZmluZWQiDQogIEluc2VydCAi b3IgYmVjb21lcyB1bmRlZmluZWQiDQogIChiZWZvcmUgIm9uIGFuIGltYWdlIGluIGEgc2VnbWVu dCIpLg0Ke0ZvcmJpZCB1bmNvb3JkaW5hdGVkIHVuZGVmaW5pbmdzIG9mIHZhcmlhYmxlcy59DQoN ClNVQk1JVFRFRCBCWTogSm9obiBSZWlkDQoNCkhJU1RPUlk6IDEwLTIwMSAgICBtMTkzICBGMDgv MDA0MSBzdWJtaXR0ZWQNCiAgICAgICAgIDEwLTIwMXIxICBtMTkzICBSZXZpc2VkIC0gUGFzc2Vk IGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDExLTEyOSAgICBtMTk0ICBGYWlsZWQgSjMgbGV0dGVy IGJhbGxvdCAjMjIgMTAtMjU0DQoNCioqIHN0YXJ0IG5lZ2F0aXZlIGNvbW1lbnRzDQogIEpvaG4g UmVpZCdzIE5PIHZvdGUgb24gRjA4LzAwNDE6DQoNCiAgICBUaGVyZSBhcmUgZXJyb3JzIGluIGJv dGggZXhhbXBsZXMuIEluIGV4YW1wbGUgKDEpLCB0aGUgY29tcG9uZW50IG9mDQogICAgdHlwZSB0 MiBzaG91bGQgaGF2ZSB0eXBlIHQxLiBJbiBleGFtcGxlICgyKSwgdGhlIFBSSU5UIHN0YXRlbWVu dA0KICAgIHNob3VsZCByZWZlcmVuY2UgeCBvbiBhbm90aGVyIGltYWdlLCBlLmcuIFBSSU5UICos IHgoMSlbMl0uDQoNCiAgICBNb3JlIHNlcmlvdXNseSwgdGhlIGVkaXQgcHJvcG9zZWQgaW4gMTAt MjAxIGhhcyBiZWVuIHJlbW92ZWQuIFdoaWxlDQogICAgaXQgaXMgbm90IG5lY2Vzc2FyeSBmb3Ig YWxsb2NhdGlvbiwgaXQgaXMgbmVlZGVkIGZvciBwb2ludGVyDQogICAgYXNzb2NpYXRpb24uICBU aGlzIG1lYW5zIHRoYXQgaXQgaXMgZGVzaXJhYmxlIHRvIHJld3JpdGUgdGhlDQogICAgcXVlc3Rp b25zIGFuZCBhbnN3ZXJzLiAgSGVyZSBpcyBteSBzdWdnZXN0aW9uDQoNCiAgICBRVUVTVElPTjoN Cg0KICAgICgxKSBJZiBhIHZhcmlhYmxlIGlzIGFscmVhZHkgZGVmaW5lZCAoaW5pdGlhbGx5IG9y IGJ5IHNvbWUgc2VnbWVudA0KICAgICAgICB0aGF0IHByZWNlZGVzIGFsbCBvdGhlciBzZWdtZW50 cyBpbiB0aGlzIHF1ZXN0aW9uKSwgbWF5IG9uZQ0KICAgICAgICBpbWFnZSByZWZlcmVuY2UgaXQg d2hpbGUgYW5vdGhlciBpbWFnZSBjYXVzZXMgaXQgdG8gYmVjb21lDQogICAgICAgIHVuZGVmaW5l ZCBpbiB1bm9yZGVyZWQgc2VnbWVudHM/DQoNCiAgICBGb3IgZXhhbXBsZSwgaXMNCg0KICAgICAg UFJPR1JBTSBleGFtcGxlMg0KICAgICAgICBSRUFMIDo6IHgoMTAwKVsqXQ0KICAgICAgICB4ID0g MQ0KICAgICAgICBTWU5DIEFMTA0KICAgICAgICBJRiAoVEhJU19JTUFHRSgpPT0xKSBUSEVODQog ICAgICAgICAgUFJJTlQgKix4KDEpWzJdDQogICAgICAgIEVMU0UNCiAgICAgICAgICBDQUxMIGRl c3Ryb3koeCkNCiAgICAgICAgRU5EIElGDQogICAgICBDT05UQUlOUw0KICAgICAgICBTVUJST1VU SU5FIGRlc3Ryb3koeCkNCiAgICAgICAgICBSRUFMLElOVEVOVChPVVQpIDo6IHgoOikNCiAgICAg ICAgRU5EIFNVQlJPVVRJTkUNCiAgICAgIEVORCBQUk9HUkFNDQoNCiAgICBzdGFuZGFyZC1jb25m b3JtaW5nPyAgVGhpcyBkb2VzIG5vdCBhcHBlYXIgdG8gdmlvbGF0ZSBhbnkgb2YgdGhlDQogICAg c2VnbWVudCBvcmRlcmluZyByZXF1aXJlbWVudHMgaW4gOC41LjIgYmVjYXVzZSBpdCBpcyBub3Qg ZGVmaW5lZCBpbg0KICAgIGFueSB1bm9yZGVyZWQgc2VnbWVudCAoc28gYnVsbGV0IDEgZG9lcyBu b3QgYXBwbHkpLCB0aGVyZSBpcyBubw0KICAgIGFsbG9jYXRpb24gb3IgcG9pbnRlciBhc3NvY2lh dGlvbiBzdGF0dXMgKHNvIGJ1bGxldCAyIGRvZXMgbm90DQogICAgYXBwbHkpLCBhbmQgdGhlcmUg aXMgbm8gZHVtbXkgYXJndW1lbnQgYmVpbmcgZGVmaW5lZCAoc28gYnVsbGV0IDMNCiAgICBkb2Vz IG5vdCBhcHBseSkuDQoNCiAgICAoMikgV2FzIGl0IGludGVuZGVkIHRvIGFsbG93IGEgcG9pbnRl ciBhc3NpZ25tZW50IHRvIGEgcG9pbnRlciB0aGF0DQogICAgICAgIGlzIG5vdCBhIHN1Ym9iamVj dCBvZiBhIGNvYXJyYXkgdG8gYmUgdW5vcmRlcmVkIHdpdGggcmVzcGVjdCB0bw0KICAgICAgICBp dHMgZGVmaW5pdGlvbiBieSBhbm90aGVyIGltYWdlIHRocm91Z2ggYSBwb2ludGVyIGNvbXBvbmVu dCBvZg0KICAgICAgICBhIGNvYXJyYXk/DQoNCiAgICBGb3IgZXhhbXBsZSwNCg0KICAgICAgUFJP R1JBTSBleGFtcGxlMQ0KICAgICAgICBUWVBFIHQNCiAgICAgICAgICBSRUFMLFBPSU5URVIgOjog cA0KICAgICAgICBFTkQgVFlQRQ0KICAgICAgICBSRUFMLFRBUkdFVCA6OiBhPTAuMCwgYj0xLjAN CiAgICAgICAgVFlQRSh0KSA6OiB5WypdDQogICAgICAgIHklcCA9PiBhICAgICAgICAgICAgICAg ICAgICAgICAgICEgeVtuXSVwID0+IGEgZm9yIGFsbCBuLg0KICAgICAgICBTWU5DIEFMTA0KICAg ICAgICBJRiAoVEhJU19JTUFHRSgpPT0xKSBUSEVODQogICAgICAgICAgeSVwID0+IGIgICAgICAg ICAgICAgICAgICAgICAgICEgeVsxXSVwID0+IGINCiAgICAgICAgRUxTRQ0KICAgICAgICAgIHlb MV0lcCA9IDk5OSAgICAgICAgICAgICAgICAgICAhIERlZmluZXMgYVsxXSBvciBiWzFdPw0KICAg ICAgICBFTkQgSUYNCiAgICAgIEVORCBQUk9HUkFNDQoNCiAgICBBTlNXRVI6DQoNCiAgICAoMSkg Tm8uIFRoaXMgY2FzZSBoYXMgYmVlbiBvdmVybG9va2VkIGluIHRoZSBzZWdtZW50IG9yZGVyaW5n IHJ1bGVzLg0KICAgICAgICBBbiBlZGl0IGlzIHN1cHBsaWVkIHRvIGNvcnJlY3QgdGhpcy4NCg0K ICAgICgyKSBOby4gVGhpcyBjYXNlLCB0b28sIGhhcyBiZWVuIG92ZXJsb29rZWQgaW4gdGhlIHNl Z21lbnQgb3JkZXJpbmcNCiAgICAgICAgcnVsZXMuICAgQW4gZWRpdCBpcyBzdXBwbGllZCB0byBj b3JyZWN0IHRoaXMuDQoNCiAgICBFRElUUyB0byAxMC0wMDc6DQoNCiAgICAgWzE4OToxNF0gSW4g OC41LjIgcGFyYWdyYXBoIDMsIGZpcnN0IGJ1bGxldCBwb2ludCwNCiAgICAgIEFmdGVyICJpZiBh IHZhcmlhYmxlIGlzIGRlZmluZWQiDQogICAgICBJbnNlcnQgIm9yIGJlY29tZXMgdW5kZWZpbmVk Ig0KICAgICAgKGJlZm9yZSAib24gYW4gaW1hZ2UgaW4gYSBzZWdtZW50IikuDQoNCiAgICBbMTg5 XSBJbiA4LjUuMiBTZWdtZW50cywgcGFyYWdyYXBoIDMsIHJlcGxhY2UgdGhlIHNlY29uZCBidWxs ZXQNCiAgICAgICAgICBpdGVtIGJ5DQogICAgICAgICJpZiB0aGUgYWxsb2NhdGlvbiBvciB0aGUg cG9pbnRlciBhc3NvY2lhdGlvbiBzdGF0dXMgb2YgYQ0KICAgICAgICAgdmFyaWFibGUgaXMgY2hh bmdlZCBvbiBhbiBpbWFnZSBpbiBhIHNlZ21lbnQsIHRoYXQgdmFyaWFibGUNCiAgICAgICAgIHNo YWxsIG5vdCBiZSByZWZlcmVuY2VkIG9yIGRlZmluZWQgaW4gYSBzZWdtZW50IG9uIGFub3RoZXIN CiAgICAgICAgIGltYWdlIHVubGVzcyB0aGUgc2VnbWVudHMgYXJlIG9yZGVyZWQsIGFuZCIuDQoN CiAgVmFuIFNueWRlcidzIE5vIHZvdGUgb24gRjA4LzAwNDE6DQoNCiAgICAiaXMgZGVmaW5lZCIg aXMgYSBzdGF0aWMgY29uY2VwdC4gIFRoZSByZXF1aXJlbWVudCBzaG91bGQNCiAgICAgYWx3YXlz IGhhdmUgYmVlbiAiYmVjb21lcyBkZWZpbmVkIi4gIFRoZXJlZm9yZSB0aGUgZWRpdCBzaG91bGQN CiAgICAgYmUgdG8gcmVwbGFjZSAidmFyaWFibGUgaXMgZGVmaW5lZCIgdG8gInZhcmlhYmxlIGJl Y29tZXMNCiAgICAgZGVmaW5lZCBvciB1bmRlZmluZWQiIC0tIG9yIGRvIHdlIG5lZWQgYW5vdGhl ciBpbnRlcnAgdG8NCiAgICAgcmVwYWlyIHRoaXM/DQoNCiAgSmltIFhpYSdzIE5vIHZvdGUgb24g RjA4LzAwNDE6DQoNCiAgICBUaGUgZmlyc3QgZXhhbXBsZSBzaG91bGQgYmUgZml4ZWQgdG8gaGF2 ZSB0MiBjb250YWlucyBhIHBvaW50ZXINCiAgICBjb21wb25lbnQgb2YgdHlwZSB0MS4gIFRoZSBz ZWNvbmQgZXhhbXBsZSBpcyBwZXJmZWN0bHkgbGVnYWwuICBTZWVtcw0KICAgIHdlIG5lZWQgdG8g cmV3b3JrIG9uIHRoaXMgaW50ZXJwLg0KDQogIHJlc3VsdCBvZiBiYWxsb3Qgb24gRjA4LzAwNDE6 DQoNCiAgICBJbiBleGFtcGxlICgxKSwgdGhlIGNvbXBvbmVudCBvZiB0eXBlIHQyIGlzIGNoYW5n ZWQgdG8gdHlwZSB0MS4NCiAgICBIb3dldmVyLCBtb3JlIHdvcmsgaXMgbmVlZGVkIG9uIHRoaXMg aW50ZXJwIGFzIGEgcmVzdWx0IG9mIHRoZXNlDQogICAgY29tbWVudHMgPT4gRjA4LzAwNDEgZmFp bHMuDQoNCiAgICBUaGUgZWRpdCBpbiAxMC0yMDEgcmVmZXJyZWQgdG8gYWJvdmUgaXM6DQogICAg ICBbMTg5XSBJbiA4LjUuMiBTZWdtZW50cywgcGFyYWdyYXBoIDMsIHJlcGxhY2UgdGhlIHNlY29u ZCBidWxsZXQNCiAgICAgIGl0ZW0gYnkNCiAgICAgICAgImlmIHRoZSBhbGxvY2F0aW9uIG9yIHRo ZSBwb2ludGVyIGFzc29jaWF0aW9uIHN0YXR1cyBvZiBhDQogICAgICAgICB2YXJpYWJsZSBpcyBj aGFuZ2VkIG9uIGFuIGltYWdlIGluIGEgc2VnbWVudCwgdGhhdCB2YXJpYWJsZQ0KICAgICAgICAg c2hhbGwgbm90IGJlIHJlZmVyZW5jZWQgb3IgZGVmaW5lZCBpbiBhIHNlZ21lbnQgb24gYW5vdGhl cg0KICAgICAgICAgaW1hZ2UgdW5sZXNzIHRoZSBzZWdtZW50cyBhcmUgb3JkZXJlZCwgYW5kIg0K KiogZW5kIG5lZ2F0aXZlIGNvbW1lbnRzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBGMDgv MDA0NQ0KVElUTEU6ICBjb25zdHJhaW50cyBvbiBlbnRpdGllcyBvZiB0eXBlIExPQ0tfVFlQRQ0K S0VZV09SRFM6IGxvY2ssIHBvbHltb3JwaGlzbQ0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRV UzogSjMgY29uc2lkZXJhdGlvbiBpbiBwcm9ncmVzcw0KDQpRVUVTVElPTjoNCg0KQ29uc2lkZXIg dGhlIGZvbGxvd2luZyBwcm9ncmFtOg0KDQogIFByb2dyYW0gZXhhbXBsZQ0KICAgIFVzZSBJc29f Rm9ydHJhbl9FbnYsIE9ubHk6bG9ja190eXBlDQogICAgdHlwZSA6OiBtDQogICAgICBjbGFzcygq KSwgYWxsb2NhdGFibGUgOjogbG9jaw0KICAgIGVuZCB0eXBlDQogICAgdHlwZShtKSA6OiBvbVsq XQ0KICAgIGFsbG9jYXRlKGxvY2tfdHlwZSA6OiBvbSVsb2NrKQ0KICAgIGNhbGwgaW5uZXIob20p ICAgICAgICAgICAgICAgICAgISBQcm9ibGVtIGNhbGwuDQogIENvbnRhaW5zDQogICAgU3Vicm91 dGluZSBpbm5lcihvbW0pDQogICAgICBUeXBlKG0pLEludGVudChPdXQpIDo6IG9tbQ0KICAgICAg UHJpbnQgKixBbGxvY2F0ZWQob21tJWxvY2spDQogICAgRW5kIFN1YnJvdXRpbmUNCiAgRW5kIFBy b2dyYW0NCg0KQ29uc3RyYWludCBDMTMwNCBhdHRlbXB0cyB0byBwcm9oaWJpdCBhIHZhcmlhYmxl IHdpdGggYSBMT0NLX1RZUEUNCnN1Ym9iamVjdCBmcm9tIGFwcGVhcmluZyBpbiBhIHZhcmlhYmxl IGRlZmluaXRpb24gY29udGV4dCwgc3VjaCBhcyB0aGUNCmNhbGwgdG8gaW5uZXIsIGJ1dCB0aGUg ZHluYW1pYyB0eXBlIG9mIG9tJWxvY2sgY2Fubm90IGJlIGRldGVybWluZWQNCnN0YXRpY2FsbHku DQoNCklzIHRoaXMgcHJvZ3JhbSBzdGFuZGFyZC1jb25mb3JtaW5nPw0KDQpBTlNXRVI6DQoNClRo ZSBleGFtcGxlIHdhcyBub3QgaW50ZW5kZWQgdG8gYmUgc3RhbmRhcmQtY29uZm9ybWluZy4gIEFu IEFMTE9DQVRFDQpzdGF0ZW1lbnQgd2l0aCBhIDx0eXBlLXNwZWM+IHNob3VsZCBub3QgaGF2ZSBi ZWVuIHBlcm1pdHRlZCB0byBhZGQNCmNvbXBvbmVudHMgb2YgdHlwZSBMT0NLX1RZUEU7IGFuIGVk aXQgaXMgc3VwcGxpZWQgdG8gY29ycmVjdCB0aGlzDQplcnJvci4NCg0KRURJVFMgdG8gMTAtMDA3 Og0KDQpbMTI3OjddIEluIEM2NDEsDQogIEFmdGVyICJDX1BUUiIgcmVwbGFjZSAib3IiIGJ5ICIs IjsNCiAgQWZ0ZXIgIkNfRlVOUFRSIiBpbnNlcnQNCiAgICAiLCBMT0NLX1RZUEUgKDEzLjguMi4x NiksIG9yIGEgdHlwZSB3aXRoIGEgZGlyZWN0IGNvbXBvbmVudCBvZg0KICAgICB0eXBlIExPQ0tf VFlQRSB0aGF0IGlzIG5vdCBhIGRpcmVjdCBjb21wb25lbnQgb2YgdGhlIGRlY2xhcmVkDQogICAg IHR5cGUgb2YgYW55IDxhbGxvY2F0ZS1vYmplY3Q+LCIuDQp7Rml4IGNvbmRpdGlvbiB0byBwcm9o aWJpdCBMT0NLX1RZUEUgYW5kIGFueSB0eXBlIHdpdGggYSBMT0NLX1RZUEUNCiBkaXJlY3QgY29t cG9uZW50LiAgTm90ZSB0aGF0IHdlIG9ubHkgd2FudCB0byBwcm9oaWJpdCAibmV3IiBsb2NrX3R5 cGUNCiBjb21wb25lbnRzIGZyb20gYXBwZWFyaW5nIGluIHRoZSA8dHlwZS1zcGVjPiwgd2UgZG9u J3Qgd2FudCB0byBmb3JiaWQNCiBvbmVzIHRoYXQgYXJlIGFscmVhZHkgaW4gdGhlIGRlY2xhcmVk IHR5cGUufQ0KDQpbMTI3OjhdIEFmdGVyICJMT0NLX1RZUEUiIGRlbGV0ZSAiKDEzLjguMi4xNiki Lg0Ke1JlZmVyZW5jZSBub3cgYXBwZWFycyBvbmUgbGluZSBlYXJsaWVyLCBzbyBpcyB1bm5lY2Vz c2FyeS59DQoNClNVQk1JVFRFRCBCWTogUi4gQmFkZXINCg0KSElTVE9SWTogMTAtMjEwICAgIG0x OTMgIEYwOC8wMDQ1IHN1Ym1pdHRlZA0KICAgICAgICAgMTAtMjEwcjEgIG0xOTMgIFJldmlzZWQg LSBQYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTEtMTI5ICAgIG0xOTQgIEZhaWxlZCBi eSBKMyBsZXR0ZXIgYmFsbG90ICMyMiAxMC0yNTQNCg0KKiogc3RhcnQgbmVnYXRpdmUgY29tbWVu dHMNCiAgSmltIFhpYSdzIE5vIHZvdGUgb24gRjA4LzAwNDU6DQoNCiAgICBUaGUgZWRpdHMgbWFr ZXMgaXQgaWxsZWdhbCB0byBzcGVjaWZ5IExPQ0tfVFlQRSBhcyA8dHlwZS1zcGVjPiBpZg0KICAg IHRoZSBjb2FycmF5IGl0c2VsZiBpcyBvZiBMT0NLX1RZUEUuICBGb3IgZXhhbXBsZSwNCiAgICAg IHR5cGUobG9ja190eXBlKSwgYWxsb2NhdGFibGUgOjogbG9ja3NbKl0NCiAgICBUaGUgZWRpdHMg bWFrZSB0aGUgZm9sbG93aW5nIGFsbG9jYXRlIHN0YXRlbWVudCBpbGxlZ2FsDQogICAgICBBTExP Q0FURSAoTE9DS19UWVBFOiBsb2Nrc1sqXSkNCg0KICByZXN1bHQgb2YgYmFsbG90IG9uIEYwOC8w MDQ1Og0KDQogICAgL2ludGVycCB3aWxsIHRha2UgdGhpcyBiYWNrIGZvciBtb3JlIHdvcmsgc2lu Y2Ugd2UgdGhpbmsgdGhhdCBKaW0NCiAgICBoYXMgYSB2YWxpZCBjb21wbGFpbnQgPT4gRjA4LzAw NDUgZmFpbHMNCg0KICAgIFBlcmhhcHMgdGhlIGVkaXQgc2hvdWxkIGJlIGNoYW5nZWQgdG8NCg0K ICAgICAgWzEyNzo3XSBJbiBDNjQxLA0KICAgICAgICBBZnRlciAiQ19QVFIiIHJlcGxhY2UgIm9y IiBieSAiLCI7DQogICAgICAgIEFmdGVyICJDX0ZVTlBUUiIgaW5zZXJ0DQogICAgICAgICAgIiwg b3IgYSB0eXBlIHdpdGggYSBkaXJlY3QgY29tcG9uZW50IG9mIHR5cGUgTE9DS19UWVBFDQogICAg ICAgICAgICgxMy44LjIuMTYpIHRoYXQgaXMgbm90IGEgZGlyZWN0IGNvbXBvbmVudCBvZiB0aGUg ZGVjbGFyZWQNCiAgICAgICAgICAgdHlwZSBvZiBhbnkgPGFsbG9jYXRlLW9iamVjdD4sIi4NCg0K ICAgICAgWzEyNzo3K10gSW5zZXJ0IG5ldyBjb25zdHJhaW50DQogICAgICAgICJDNjQxYSAoUjYy NikgSWYgYW4gPGFsbG9jYXRlLW9iamVjdD4gaXMgdW5saW1pdGVkIHBvbHltb3JwaGljLA0KICAg ICAgICAgICAgICAgPHR5cGUtc3BlYz4gc2hhbGwgbm90IHNwZWNpZnkgdGhlIHR5cGUgTE9DS19U WVBFDQogICAgICAgICAgICAgICAoMTMuOC4yLjE2KS4iDQoqKiBlbmQgbmVnYXRpdmUgY29tbWVu dHMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMDcxDQpUSVRMRTogVmVjdG9yIHN1 YnNjcmlwdCB0YXJnZXQNCktFWVdPUkRTOiBQb2ludGVyIGFzc2lnbm1lbnQsIFZlY3RvciBzdWJz Y3JpcHQNCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEluIEYyMDA4IENvcnJpZ2VuZHVt IDMNCg0KUVVFU1RJT046DQoNCkNvbnNpZGVyDQoNCiAgUFJPR1JBTSBtMTk3MDA2DQogICAgUkVB TCxUQVJHRVQgOjogeCgxMDApID0gWyAoaSxpPTEsMTAwKSBdDQogICAgUkVBTCxQT0lOVEVSIDo6 IHAoOikNCiAgICBUWVBFIHQNCiAgICAgIFJFQUwsUE9JTlRFUiA6OiBxKDopDQogICAgRU5EIFRZ UEUNCiAgICBUWVBFKHQpIHkNCiAgICBwID0+IHggICAgICAgICAgICAgICAgICAgICAhICgxKQ0K ICAgIHkgPSB0KHgpICAgICAgICAgICAgICAgICAgICEgKDIpDQogICAgcCA9PiB4KCBbIDEsNCw5 LDI1IF0gKSAgICAgISAoMykNCiAgICB5ID0gdCh4KCBbIDEsNCw5LDI1IF0gKSkgICAhICg0KQ0K ICAgIFBSSU5UICoseSVxDQogIEVORCBQUk9HUkFNDQoNClRoZSBwb2ludGVyIGFzc2lnbm1lbnQg c3RhdGVtZW50IGF0ICgxKSBhc3NvY2lhdGVzIFAgd2l0aCBYLg0KVGhlIGludHJpbnNpYyBhc3Np Z25tZW50IHN0YXRlbWVudCBhdCAoMikgaW5jbHVkZXMgdGhlIGVmZmVjdCBvZg0KcG9pbnRlciBh c3NpZ25tZW50IG9mIFggdG8gWSVRLCBidXQgaXMgbm90IGEgcG9pbnRlciBhc3NpZ25tZW50DQpz dGF0ZW1lbnQuDQoNClRoZSBwb2ludGVyIGFzc2lnbm1lbnQgc3RhdGVtZW50IGF0ICgzKSBpcyBu b3Qgc3RhbmRhcmQtY29uZm9ybWluZw0KYWNjb3JkaW5nIHRvIDYuNS4zLjMuMiBwYXJhZ3JhcGgg MjoNCiAgIkFuIGFycmF5IHNlY3Rpb24gd2l0aCBhIHZlY3RvciBzdWJzY3JpcHQgc2hhbGwgbm90 IGJlDQogICAuLi4gdGhlIDxkYXRhLXRhcmdldD4gaW4gYSBwb2ludGVyIGFzc2lnbm1lbnQgc3Rh dGVtZW50Ig0KDQpIb3dldmVyLCB0aGUgaW50cmluc2ljIGFzc2lnbm1lbnQgc3RhdGVtZW50IGF0 ICg0KSBpcyBub3Qgc3ViamVjdCB0bw0KdGhpcyByZXF1aXJlbWVudCBhcyBpdCBpcyBub3QgYSBw b2ludGVyIGFzc2lnbm1lbnQgc3RhdGVtZW50Lg0KDQpOb3RlIHRoYXQgdGhlIHF1b3RlZCBwYXJh Z3JhcGggaXMgZW50aXJlbHkgIGR1cGxpY2F0aXZlLCBhcyBpbjoNCiAtIHRoZSBmaXJzdCBidWxs ZXQgaXRlbSBpcyBjb3ZlcmVkIGJ5IDEyLjUuMi40cDE4LA0KIC0gdGhlIHNlY29uZCBidWxsZXQg aXRlbSBpcyBjb3ZlcmVkIGJ5IEM3MjQgaW4gNy4yLjIuMg0KICAgKGJ1dCBDNzI0IGRvZXMgbm90 IGNvdmVyIHRoaXMgY2FzZSBlaXRoZXIpLA0KIC0gdGhlIHRoaXJkIGJ1bGxldCBpdGVtIGlzIGNv dmVyZWQgYnkgQzkwMSBpbiA5LjUuMS4NCkVkaXRvcmlhbCBpbXByb3ZlbWVudHMgaGF2ZSBiZWVu IG1hZGUgaW4gY29ycmlnZW5kdW0gMS4gIFRoZSBlbnRpcmUNCnBhcmFncmFwaCBoYXMgYmVlbiBy ZXdyaXR0ZW4uDQoNClExLiBXYXMgdGhlIHN0YXRlbWVudCBtYXJrZWQgKDQpIGludGVuZGVkIHRv IGJlIGFsbG93ZWQ/DQoNClEyLiBJZiBub3QsIHdhcyBpdCBpbnRlbmRlZCB0byBiZSBwcm9oaWJp dGVkIGJ5IGEgY29uc3RyYWludCBsaWtlDQogICAgQzcyNCwgb3Igd2FzIGl0IGludGVuZGVkIHRv IGJlIGEgc2ltcGxlIHJlcXVpcmVtZW50Pw0KICAgIChFZGl0b3JpYWwgbm90ZTogaW4gYW55IGNh c2Ugc3VyZWx5IHRoZSByZXF1aXJlbWVudCBzaG91bGQgYXBwZWFyDQogICAgaW4gdGhlIHBvaW50 ZXIgYXNzaWdubWVudCBzdWJjbGF1c2UuKQ0KDQpBTlNXRVI6DQoNCkExLiBObywgdGhpcyB3YXMg bm90IGludGVuZGVkLiAgQW4gZWRpdCBpcyBzdXBwbGllZCB0byBjb3JyZWN0IHRoaXMuDQoNCkEy LiBDb25zdHJhaW50IEM3MjQgd2FzIGludGVuZGVkIHRvIGNvdmVyIHRoaXMgY2FzZS4gIEFuIGVk aXQgaXMNCiAgICBzdXBwbGllZCB0byBjb3JyZWN0IHRoaXMuDQoNCkVESVQ6DQoNClsxNTg6MTkt MjBdIEluIDcuMi4yLjIgU3ludGF4IG9mIHRoZSBwb2ludGVyIGFzc2lnbm1lbnQgc3RhdGVtZW50 LA0KICAgICAgICAgICAgQzcyNCwgY2hhbmdlICIiKFI3MzcpIEEgPHZhcmlhYmxlPiINCiAgICAg ICAgICAgIHRvICJBIHZhcmlhYmxlIHRoYXQgaXMgYSBwb2ludGVyIHRhcmdldCIsDQogICAgICAg ICAgICBtYWtpbmcgdGhlIHdob2xlIGNvbnN0cmFpbnQgcmVhZDoNCiAgIkEgdmFyaWFibGUgdGhh dCBpcyBhIHBvaW50ZXIgdGFyZ2V0IHNoYWxsIGhhdmUgZWl0aGVyIHRoZSBUQVJHRVQNCiAgIG9y IFBPSU5URVIgYXR0cmlidXRlLCBhbmQgc2hhbGwgbm90IGJlIGFuIGFycmF5IHNlY3Rpb24gd2l0 aCBhDQogICB2ZWN0b3Igc3Vic2NyaXB0LiINCntNYWtlIHRoZSBjb25zdHJhaW50IGFwcGx5IHRv IGFsbCBmb3JtcyBvZiBwb2ludGVyIGFzc2lnbm1lbnQufQ0KDQp7Tm90aWNlIHRoYXQgdGhpcyBl ZGl0IGluY29ycG9yYXRlcyB0aGUgbGlzdCBpdGVtIGNvbmNlcm5pbmcgdmVjdG9yDQpzdWJzY3Jp cHRzIGZyb20gNi41LjMuMy4ycDIgc3RhdHVzIHF1byBhbnRlIGNvcnJpZ2VuZHVtIDEufQ0KDQpT VUJNSVRURUQgQlk6IE1hbGNvbG0gQ29oZW4NCg0KSElTVE9SWTogMTItMTIxICAgIG0xOTcgIEYw OC8wMDcxIHN1Ym1pdHRlZA0KCSAxMi0xMjFyMSAgbTE5NyAgUmV2aXNlZCB3b3JkaW5nIHdpdGgg c2FtZSBlZGl0cyAtIHBhc3NlZA0KICAgICAgICAgICAgICAgICAgICAgICAgICBieSBKMyBtZWV0 aW5nDQogICAgICAgICAxMi0xNjVyMiAgbTE5OCAgRmFpbGVkIEozIGxldHRlciBiYWxsb3QgIzI1 IDEyLTE0Nw0KICAgICAgICAgMTMtMjUwICAgIG0yMDAgIFJldmlzZWQgLSBwYXNzZWQgYnkgSjMg bWVldGluZw0KICAgICAgICAgMTMtMjYyICAgIG0yMDEgIFBhc3NlZCBKMyBsZXR0ZXIgYmFsbG90 ICMyOCAxMy0yNTVyMQ0KICAgICAgICAgTjE5OTAgICAgIG0yMDIgIFBhc3NlZCBieSBXRzUgYmFs bG90IDYgTjE5ODcvODgvOTANCiAgICAgICAgIE4yMDAyICAgICBtMjAzICBJbiBGMjAwOCBDb3Jy aWdlbmR1bSAzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBGMDgvMDA3NQ0KVElUTEU6IFBv aW50ZXIgZnVuY3Rpb24gcmVmZXJlbmNlIGFzIHZhcmlhYmxlIGluIGFzc2lnbm1lbnQNCktFWVdP UkRTOiBQb2ludGVyIGZ1bmN0aW9uLCBhc3NpZ25tZW50LCBkZWZpbmVkIG9wZXJhdG9yDQpERUZF Q1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNClFVRVNU SU9OOg0KDQooMSkgQ29uc2lkZXIgdGhlIGZvbGxvd2luZw0KDQogIG1vZHVsZSBGdW5jcw0KDQog ICAgaW50ZXJmYWNlIG9wZXJhdG9yICggLm9wLiApDQogICAgICBtb2R1bGUgcHJvY2VkdXJlIFVu YXJ5LCBCaW5hcnkNCiAgICBlbmQgaW50ZXJmYWNlDQoNCiAgY29udGFpbnMNCg0KICAgIGZ1bmN0 aW9uIFVuYXJ5ICggQXJnICkNCiAgICAgIGludGVnZXIsIGludGVudChpbikgOjogQXJnDQogICAg ICBpbnRlZ2VyLCBwb2ludGVyIDo6IFVuYXJ5DQogICAgLi4uDQogICAgZW5kIGZ1bmN0aW9uIFVu YXJ5DQoNCiAgICBmdW5jdGlvbiBCaW5hcnkgKCBBcmcxLCBBcmcyICkNCiAgICAgIGludGVnZXIs IGludGVudChpbikgOjogQXJnMSwgQXJnMg0KICAgICAgaW50ZWdlciwgcG9pbnRlciA6OiBCaW5h cnkNCiAgICAuLi4NCiAgICBlbmQgZnVuY3Rpb24gQmluYXJ5DQoNCiAgZW5kIG1vZHVsZSBGdW5j cw0KDQogIHByb2dyYW0gV2hhdA0KDQogICAgdXNlIEZ1bmNzDQogICAgaW50ZWdlciA6OiBYLCBZ ID0gNDINCg0KICAgIDEwIC5vcC4geCA9IHkNCg0KICBlbmQgcHJvZ3JhbSBXaGF0DQoNCklzIHRo ZSAiMTAiIGluICIxMCAub3AuIHggPSB5IiBhbiBvcGVyYW5kLCBhbmQgdGhlcmVmb3JlIGFuIGFy Z3VtZW50IG9mDQphIHJlZmVyZW5jZSB0byBCaW5hcnksIG9yIGlzIC5vcC4gYSByZWZlcmVuY2Ug dG8gVW5hcnkgYW5kICIxMCIgYQ0Kc3RhdGVtZW50IGxhYmVsPw0KDQooMikgQ29uc2lkZXIgdGhl IGZvbGxvd2luZw0KDQogIG1vZHVsZSBGdW5jcw0KDQogICAgaW50ZXJmYWNlIG9wZXJhdG9yICgg Lm9wLiApDQogICAgICBtb2R1bGUgcHJvY2VkdXJlIFVuYXJ5LCBCaW5hcnkNCiAgICBlbmQgaW50 ZXJmYWNlDQoNCiAgY29udGFpbnMNCg0KICAgIGZ1bmN0aW9uIFVuYXJ5ICggQXJnICkNCiAgICAg IGludGVnZXIsIGludGVudChpbikgOjogQXJnDQogICAgICBjaGFyYWN0ZXIobGVuPS4uLiksIHBv aW50ZXIgOjogVW5hcnkNCiAgICAuLi4NCiAgICBlbmQgZnVuY3Rpb24gVW5hcnkNCg0KICAgIGZ1 bmN0aW9uIEJpbmFyeSAoIEFyZzEsIEFyZzIgKQ0KICAgICAgaW50ZWdlciwgaW50ZW50KGluKSA6 OiBBcmcxLCBBcmcyDQogICAgICBjaGFyYWN0ZXIobGVuPS4uLiksIHBvaW50ZXIgOjogQmluYXJ5 DQogICAgLi4uDQogICAgZW5kIGZ1bmN0aW9uIEJpbmFyeQ0KDQogIGVuZCBtb2R1bGUgRnVuY3MN Cg0KICBwcm9ncmFtIFdoYXQNCg0KICAgIHVzZSBGdW5jcw0KICAgIGludGVnZXIgOjogWCA9IDQy LCBZDQoNCiAgICByZWFkICgxMCkgLm9wLiB4LCB5DQoNCiAgZW5kIHByb2dyYW0gV2hhdA0KDQpJ cyAiMTAiIGFuIDxpby1jb250cm9sLXNwZWMtbGlzdD4sIG9yIGlzICIoMTApIC5vcC4geCIgYSA8 Zm9ybWF0Pj8NCg0KTm90ZSB0aGF0IHRoaXMgcHJvZ3JhbSBpcyB2YWxpZCBGb3J0cmFuIDkwLCBh bmQgIigxMCkgLm9wLiB4IiBpcw0KYSA8Zm9ybWF0PiBhY2NvcmRpbmcgdG8gdGhlIEZvcnRyYW4g OTAgc3RhbmRhcmQuDQoNCkFOU1dFUjoNCg0KSXQgd2FzIGFuIG92ZXJzaWdodCB0aGF0IHRoZSBw cm9ncmFtcyBpbiAoMSkgYW5kICgyKSBjb25mb3JtIHRvIHRoZQ0Kc3ludGF4IGFuZCBjb25zdHJh aW50cyBpbiB0d28gZGlmZmVyZW50IHdheXMuDQoNClRoZSBwcm9ibGVtIHN0ZW1zIGZyb20gdGhl IG92ZXItYW1iaXRpb3VzIGV4dGVuc2lvbiBvZiBhbGxvd2luZw0KcG9pbnRlciBmdW5jdGlvbiBy ZWZlcmVuY2VzIHRvIGRlbm90ZSB2YXJpYWJsZXM7IHRoaXMgd2FzIHVuYW1iaWd1b3VzDQpmb3Ig PGZ1bmN0aW9uLXJlZmVyZW5jZT4gc3ludGF4LCBidXQgaXMgbm90IGZvciBvcGVyYXRvciBzeW50 YXguDQpBbHNvLCBvcGVyYXRvciBzeW50YXggaGFzIG90aGVyIHJlc3RyaWN0aW9ucyBvbiBpdCB0 aGF0IGFyZSBpbnRlbmRlZA0KdG8gcHJldmVudCBtb2RpZmljYXRpb24gb2YgYW4gb3BlcmFuZCwg YW5kIHRoZXNlIGFyZSBzdWJ2ZXJ0ZWQgaWYgdGhlDQpyZXN1bHQgaXMgdHJlYXRlZCBhcyBhIHZh cmlhYmxlLg0KDQpFZGl0cyBhcmUgc3VwcGxpZWQgdG8gcmVtb3ZlIHRoZSB0cmVhdG1lbnQgb2Yg cG9pbnRlci12YWx1ZWQgb3BlcmF0b3JzDQphcyB2YXJpYWJsZXMuDQoNCkVESVRTOg0KDQpbMTE3 OjEzXSBJbiA2LjIsIFI2MDIsIGNoYW5nZSAiPGV4cHI+IiB0byAiPGZ1bmN0aW9uLXJlZmVyZW5j ZT4iLg0KDQpbMTE3OjE1XSBJbiA2LjIsIEM2MDIsDQogICAgICAgICBjaGFuZ2UgIjxleHByPiAu Li4gaGFzIg0KICAgICAgICAgdG8gIjxmdW5jdGlvbi1yZWZlcmVuY2U+IHNoYWxsIGhhdmUiLg0K DQpbMTU4OjE4K10gSW4gNy4yLjIuMiwgUjczNywgYWRkIG5ldyBwcm9kdWN0aW9uDQogICAgICAg ICAgICAgIjw8b3I+PiA8ZXhwcj4iLg0Ke1Jlc3RvcmUgZGVzY3JpcHRpb24gb2YgPGRhdGEtdGFy Z2V0PiB0byBGMjAwMyB2ZXJzaW9uLn0NCg0KWzE1ODoyMCtdIEluIDcuMi4yLjIsIEFmdGVyIEM3 MjQsIGFkZCBuZXcgY29uc3RyYWludA0KICAiQzcyNGEgKFI3MzcpIEFuIDxleHByPiBzaGFsbCBi ZSBhIHJlZmVyZW5jZSB0byBhIGZ1bmN0aW9uIHRoYXQgaGFzDQogICAgICAgICAgICAgICAgYSBk YXRhIHBvaW50ZXIgcmVzdWx0LiINCntSZXN0b3JlIEYyMDAzIGNvbnN0cmFpbnQgKG1vcmUgb3Ig bGVzcykufQ0KDQpTVUJNSVRURUQgQlk6IFZhbiBTbnlkZXINCg0KSElTVE9SWTogMTItMTQ5ICAg IG0xOTggIEYwOC8wMDc1IHN1Ym1pdHRlZA0KICAgICAgICAgMTItMTQ5cjEgIG0xOTggIFJldmlz ZWQgZWRpdA0KICAgICAgICAgMTItMTQ5cjIgIG0xOTggIENsYXJpZmllZCBhbnN3ZXIsIHBhc3Nl ZCBKMyBtZWV0aW5nDQogICAgICAgICAxMi0xOTYgICAgbTE5OSAgU3Vic3VtZWQgRjA4LzAwNzYg YW5kIEZhaWxlZCBKMyBsZXR0ZXIgYmFsbG90DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMyNiwgMTItMTg0DQogICAgICAgICAxMi0xOTcgICAgbTE5OSAgUmV2aXNlZCBhbnN3ZXIvZWRp dHMgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTMtMjM3ICAgIG0yMDAgIFBhc3Nl ZCBieSBKMyBsZXR0ZXIgYmFsbG90ICMyNyAxMy0yMDMNCiAgICAgICAgIE4xOTkwICAgICBtMjAy ICBQYXNzZWQgYnkgV0c1IGJhbGxvdCA2IE4xOTg3Lzg4LzkwDQogICAgICAgICBOMjAwMiAgICAg bTIwMyAgSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjog RjA4LzAwNzYNClRJVExFOiBQb2ludGVyIGZ1bmN0aW9uIHJlZmVyZW5jZSBpbiBSRUFEDQpLRVlX T1JEUzogUG9pbnRlciBmdW5jdGlvbiByZWZlcmVuY2UsIFJFQUQsIGRlZmluZWQgb3BlcmF0b3IN CkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IFN1YnN1bWVkIGJ5IEYwOC8wMDc1IC0gTm8g ZWRpdHMgaW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0KQ29uc2lkZXIgdGhl IGZvbGxvd2luZw0KDQogIG1vZHVsZSBGdW5jcw0KDQogICAgaW50ZXJmYWNlIG9wZXJhdG9yICgg Lm9wLiApDQogICAgICBtb2R1bGUgcHJvY2VkdXJlIFVuYXJ5LCBCaW5hcnkNCiAgICBlbmQgaW50 ZXJmYWNlDQoNCiAgY29udGFpbnMNCg0KICAgIGZ1bmN0aW9uIFVuYXJ5ICggQXJnICkNCiAgICAg IGludGVnZXIsIGludGVudChpbikgOjogQXJnDQogICAgICBjaGFyYWN0ZXIobGVuPS4uLiksIHBv aW50ZXIgOjogVW5hcnkNCiAgICAuLi4NCiAgICBlbmQgZnVuY3Rpb24gVW5hcnkNCg0KICAgIGZ1 bmN0aW9uIEJpbmFyeSAoIEFyZzEsIEFyZzIgKQ0KICAgICAgaW50ZWdlciwgaW50ZW50KGluKSA6 OiBBcmcxLCBBcmcyDQogICAgICBjaGFyYWN0ZXIobGVuPS4uLiksIHBvaW50ZXIgOjogQmluYXJ5 DQogICAgLi4uDQogICAgZW5kIGZ1bmN0aW9uIEJpbmFyeQ0KDQogIGVuZCBtb2R1bGUgRnVuY3MN Cg0KICBwcm9ncmFtIFdoYXQNCg0KICAgIHVzZSBGdW5jcw0KICAgIGludGVnZXIgOjogWCA9IDQy LCBZDQoNCiAgICByZWFkICgxMCkgLm9wLiB4LCB5DQoNCiAgZW5kIHByb2dyYW0gV2hhdA0KDQpJ cyAiMTAiIGFuIDxpby1jb250cm9sLXNwZWMtbGlzdD4sIG9yIGlzICIoMTApIC5vcC4geCIgYSA8 Zm9ybWF0Pj8NCg0KTm90ZSB0aGF0IHRoaXMgcHJvZ3JhbSBpcyB2YWxpZCBGb3J0cmFuIDkwLCBh bmQgIigxMCkgLm9wLiB4IiBpcw0KYSA8Zm9ybWF0PiBhY2NvcmRpbmcgdG8gdGhlIEZvcnRyYW4g OTAgc3RhbmRhcmQuDQoNCiAgQW4gZWRpdCBpcyBzdXBwbGllZA0KdG8gcmVtb3ZlIHRoZSBhbWJp Z3VpdHkgaW4gdGhlIGN1cnJlbnQgc3RhbmRhcmQuDQoNCkFOU1dFUjoNCg0KVGhpcyBpcyBhbm90 aGVyIGV4YW1wbGUgb2YgdGhlIHNhbWUgcHJvYmxlbSBhcyBGMDgvMDA3NSwgdml6IHN5bnRhY3Rp Yw0KYW1iaWd1aXR5IGNhdXNlZCBieSB0aGUgRjIwMDggZmVhdHVyZSAib3BlcmF0b3Igc3ludGF4 IGZvciB2YXJpYWJsZQ0KZGVub3RhdGlvbiIuICBUaGVyZWZvcmUgdGhpcyBpbnRlcnByZXRhdGlv biByZXF1ZXN0IGlzIHN1YnN1bWVkIGJ5DQpGMDgvMDA3NS4NCg0KRURJVFM6DQoNClNlZSBGMDgv MDA3NS4NCg0KU1VCTUlUVEVEIEJZOiBWYW4gU255ZGVyDQoNCkhJU1RPUlk6IDEyLTE1MCAgICBt MTk4ICBGMDgvMDA3NiBzdWJtaXR0ZWQNCiAgICAgICAgIDEyLTE1MHIxICBtMTk4ICBSZXZpc2Vk IGFuc3dlciBhbmQgZWRpdHMsIHBhc3NlZCBKMyBtZWV0aW5nDQogICAgICAgICAxMi0xOTYgICAg bTE5OSAgU3Vic3VtZWQgYnkgRjA4LzAwNzUsIEozIGxldHRlciBiYWxsb3QgIzI2LA0KICAgICAg ICAgICAgICAgICAgICAgICAgIDEyLTE4NA0KDQogIFJlc3VsdDogVGhpcyBpcyBhbm90aGVyIGlu c3RhbmNlIG9mIHRoZSBzYW1lIHByb2JsZW0gKHN5bnRhY3RpYw0KICAgICAgICAgIGFtYmlndWl0 eSkgY2F1c2VkIGJ5IHRoZSBzYW1lIGZlYXR1cmUgKG9wZXJhdG9yIHN5bnRheA0KICAgICAgICAg IGZvciB2YXJpYWJsZSBkZW5vdGF0aW9uKSBhcyBGMDgvMDA3NSwgc28gbmVlZHMgdG8gYmUNCiAg ICAgICAgICBhbnN3ZXJlZCB0b2dldGhlciB3aXRoIEYwOC8wMDc1ID0+IGV4YW1wbGUgd2lsbCBi ZSBhZGRlZCB0bw0KICAgICAgICAgIEYwOC8wMDc1LCBhbmQgRjA4LzAwNzYgaXMgdGhlcmVmb3Jl IHN1YnN1bWVkIGJ5IEYwOC8wMDc1Lg0KDQogICAgICAgICAxMi0xOTcgICAgbTE5OSAgRjA4LzAw NzUgcGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIE4xOTkwICAgICBtMjAyICBQYXNzZWQg YnkgV0c1IGJhbGxvdCA2LCBOMTk4Ny84OC85MCAtIA0KICAgICAgICAgICAgICAgICAgICAgICAg ICBzdWJzdW1lZCBieSBGMDgvMDA3NQ0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIFN1YnN1bWVk IGJ5IEYwOC8wMDc1IC0gbm8gZWRpdHMgaW4gRjIwMDgNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgQ29ycmlnZW5kdW0gMw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjA4LzAwODMNClRJ VExFOiBUeXBlIHBhcmFtZXRlciBkZWZhdWx0IGV4cHJlc3Npb25zIGFsbG93IGNpcmN1bGFyIGRl cGVuZGVuY2UNCktFWVdPUkRTOiB0eXBlIHBhcmFtZXRlciBleHByZXNzaW9ucywgY2lyY3VsYXIg ZGVwZW5kZW5jZQ0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSW4gRjIwMDggQ29ycmln ZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0KQ29uc2lkZXINCg0KICB0eXBlIDo6IFQgKCBJLCBKICkN CiAgICBpbnRlZ2VyLCBraW5kIDo6IEkgPSBKICsgMQ0KICAgIGludGVnZXIsIGtpbmQgOjogSiA9 IEkgKyAxDQogIGVuZCB0eXBlIFQNCg0KICB0eXBlKHQpIDo6IFgoMSwyKQ0KICBwcmludCAqLCB4 JWksIHglag0KDQogIGVuZA0KDQoxLiBJcyB0aGUgcHJvZ3JhbSBzdGFuZGFyZCBjb25mb3JtaW5n Pw0KDQoyLiBXaGF0IGRvZXMgaXQgcHJpbnQ/DQoNCkFOU1dFUjoNCg0KMS4gVGhlIHByb2dyYW0g aXMgbm90IGNvbmZvcm1hbnQgYmVjYXVzZSB0aGUgc3RhbmRhcmQgZG9lcyBub3QgZXN0YWJsaXNo DQphbiBpbnRlcnByZXRhdGlvbi4NCg0KQW4gZWRpdCBpcyBzdXBwbGllZCB0byBtYWtlIGl0IGNs ZWFyIHRoYXQgdGhlIHByb2dyYW0gaXMgbm90IGNvbWZvcm1hbnQuDQoNCjIuIFRoZSBzdGFuZGFy ZCBkb2VzIG5vdCBlc3RhYmxpc2ggYW4gaW50ZXJwcmV0YXRpb24uDQoNCkVESVRTIGZvciAxMC0w MDdyMToNCg0KWzE1Mjo5XSBSZXBsYWNlIGl0ZW0gKDkpIGluIHRoZSBsaXN0IGluIDcuMS4xMnAx Og0KDQogICg5KSAiYSBwcmV2aW91c2x5IGRlY2xhcmVkIGtpbmQgdHlwZSBwYXJhbWV0ZXIgb2Yg dGhlIHR5cGUgYmVpbmcNCiAgICAgICBkZWZpbmVkLCINCg0KU1VCTUlUVEVEIEJZOiBWYW4gU255 ZGVyDQoNCkhJU1RPUlk6IDEyLTE3MiAgICBtMTk5ICBGMDgvMDA4MyBzdWJtaXR0ZWQgLSBwYXNz ZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTMtMjM3ICAgIG0yMDAgIFBhc3NlZCBieSBKMyBs ZXR0ZXIgYmFsbG90ICMyNyAxMy0yMDMNCiAgICAgICAgIE4xOTkwICAgICBtMjAyICBQYXNzZWQg YnkgV0c1IGJhbGxvdCA2IE4xOTg3Lzg4LzkwDQogICAgICAgICBOMjAwMiAgICAgbTIwMyAgSW4g RjIwMDggQ29ycmlnZW5kdW0gMw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjA4LzAwODQN ClRJVExFOiBQb2ludGVyIGFyZ3VtZW50cyB0byBQVVJFIGZ1bmN0aW9ucw0KS0VZV09SRFM6IFBV UkUgZnVuY3Rpb24sIFBPSU5URVIsIElOVEVOVChJTikNCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpT VEFUVVM6IEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KUVVFU1RJT046DQoNCiBDb25zaWRlciB0 aGUgZm9sbG93aW5nIHN1YnByb2dyYW06DQoNCiAgIFJlYWwgUHVyZSBGdW5jdGlvbiBGKCBYICkN CiAgICAgUmVhbCxQb2ludGVyIDo6IFgNCiAgICAgUmVhbCA6OiBGDQogICAgIGYgPSAxLjANCiAg ICAgeCA9IDIuMCAgICAhIChBKQ0KICAgICBOdWxsaWZ5KHgpICEgKEIpDQogICBFbmQgRnVuY3Rp b24gRg0KDQogVGhpcyBzdWJwcm9ncmFtIGRvZXMgbm90IGNvbmZvcm0gdG8gRm9ydHJhbiAyMDAz LCBiZWNhdXNlIGJvdGgNCiBzdGF0ZW1lbnRzIChBKSBhbmQgKEIpIHZpb2xhdGUgY29uc3RyYWlu dCBDMTI3MiB3aGljaCBzYXlzDQogICAiQzEyNzIgSW4gYSBwdXJlIHN1YnByb2dyYW0gYW55IGRl c2lnbmF0b3Igd2l0aCBhIGJhc2Ugb2JqZWN0IHRoYXQNCiAgICAgICAgICAuLi4gaXMgYSBkdW1t eSBhcmd1bWVudCBvZiBhIHB1cmUgZnVuY3Rpb24gLi4uIHNoYWxsIG5vdCBiZQ0KICAgICAgICAg IHVzZWQgLi4uIFtpbl0gYSB2YXJpYWJsZSBkZWZpbml0aW9uIGNvbnRleHQgLi4uIi4NCg0KSG93 ZXZlciwgdGhlIGNvcnJlc3BvbmRpbmcgY29uc3RyYWludCBpbiBGb3J0cmFuIDIwMDgsIEMxMjgz LCBpcw0KbWlzc2luZyB0aGUgY29uZGl0aW9uIHRoYXQgYXBwbGllcyB0aGUgY29uc3RyYWludCB0 byBhIGR1bW15DQphcmd1bWVudCBvZiBhIHB1cmUgZnVuY3Rpb24sIGV4Y2VwdCB3aGVuIGl0IGhh cyBJTlRFTlQoSU4pLiAgVGh1cw0KdGhlIHN0YXRlbWVudHMgbWFya2VkIChBKSBhbmQgKEIpIGRv IG5vdCB2aW9sYXRlIEMxMjgzLCBhbmQNCnRoZXJlZm9yZSB0aGlzIHN1YnByb2dyYW0gYXBwZWFy cyB0byBjb25mb3JtIHRvIEZvcnRyYW4gMjAwOC4NCg0KV2FzIHRoaXMgc3VicHJvZ3JhbSBpbnRl bmRlZCB0byBiZSBzdGFuZGFyZC1jb25mb3JtaW5nPw0KDQpBTlNXRVI6DQoNCk5vLCB0aGlzIHN1 YnByb2dyYW0gd2FzIG5vdCBpbnRlbmRlZCB0byBiZSBzdGFuZGFyZC1jb25mb3JtaW5nLg0KQW4g ZWRpdCBpcyBzdXBwbGllZCB0byByZS1pbnNlcnQgdGhlIG9taXR0ZWQgY29uZGl0aW9uLg0KDQpF RElUIHRvIDEwLTAwN3IxOg0KDQpbMzEyOjMxXSBJbiAxMi43LCBjb25zdHJhaW50IEMxMjgzLCBh ZnRlciAiYXNzb2NpYXRpb24iLA0KICAgICAgICAgaW5zZXJ0ICIsIGlzIGEgZHVtbXkgYXJndW1l bnQgb2YgYSBwdXJlIGZ1bmN0aW9uIi4NCg0KU1VCTUlUVEVEIEJZOiBUb2JpYXMgQnVybnVzDQoN CkhJU1RPUlk6IDEyLTE3NCAgICBtMTk5ICBGMDgvMDA4NCBzdWJtaXR0ZWQNCiAgICAgICAgIDEy LTE3NHIxICBtMTk5ICBSZXZpc2VkDQogICAgICAgICAxMi0xNzRyMiAgbTE5OSAgUGFzc2VkIGJ5 IEozIG1lZXRpbmcNCiAgICAgICAgIDEzLTIzNyAgICBtMjAwICBQYXNzZWQgYnkgSjMgbGV0dGVy IGJhbGxvdCAjMjcgMTMtMjAzDQogICAgICAgICBOMTk5MCAgICAgbTIwMiAgUGFzc2VkIGJ5IFdH NSBiYWxsb3QgNiBOMTk4Ny84OC85MA0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIEluIEYyMDA4 IENvcnJpZ2VuZHVtIDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMDg1DQpUSVRM RTogUHJvYmxlbXMgd2l0aCBQQVJBTUVURVJzDQpLRVlXT1JEUzogUEFSQU1FVEVSDQpERUZFQ1Qg VFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNClFVRVNUSU9O Og0KDQooMSkgQ29uc2lkZXIgdGhlIHByb2dyYW0gZnJhZ21lbnQNCg0KICAgIFN1YnJvdXRpbmUg cw0KICAgICAgUGFyYW1ldGVyIChuPTEpDQogICAgICBJbnRlZ2VyIDo6IHgsbiAgICAgICAhKEEp DQogICAgICBQYXJhbWV0ZXIgKHg9MykNCg0KICAgIFRoZSB0eXBlIGRlY2xhcmF0aW9uIHN0YXRl bWVudCBtYXJrZWQgIiEoQSkiLCBkZWNsYXJlcyB0aGUNCiAgICBlbnRpdGllcyBYIGFuZCBOIHRv IGJlIG9mIHR5cGUgSU5URUdFUi4gIEZ1cnRoZXJtb3JlLCBhcyB3ZSBzZWUgYnkNCiAgICB0aGUg aW1tZWRpYXRlbHkgcHJlY2VkaW5nIGFuZCBmb2xsb3dpbmcgUEFSQU1FVEVSIHN0YXRlbWVudHMs IGJvdGgNCiAgICBYIGFuZCBOIGFyZSBuYW1lZCBjb25zdGFudHMuDQoNCiAgICBVbmZvcnR1bmF0 ZWx5LCBhIGNvbnN0cmFpbnQgc2F5cw0KICAgICAgQzUwNyAoUjUwMykgIkFuIDxpbml0aWFsaXph dGlvbj4gc2hhbGwgYXBwZWFyIGlmIHRoZSBlbnRpdHkgaXMgYQ0KICAgICAgICAgICAgICAgICAg IG5hbWVkIGNvbnN0YW50ICg1LjMuMTMpLiINCiAgICAoQlRXLCBSNTAzIGlzIDxlbnRpdHktZGVj bD4uKQ0KDQogICAgVGhlcmVmb3JlIG9uZSBjb25jbHVkZXMgdGhhdCB0aGUgdHlwZSBkZWNsYXJh dGlvbiBzdGF0ZW1lbnQgbWFya2VkDQogICAgIiEoQSkiIGlzIG5vdCBjb25mb3JtaW5nIGFzIGl0 IHZpb2xhdGVzIEM1MDcgZm9yIGJvdGggWCBhbmQgTi4NCg0KICAgIElzIHRoaXMgc3RhdGVtZW50 IGludGVuZGVkIHRvIGJlIGNvbmZvcm1pbmc/DQoNCigyKSBGaXJzdGx5LCBjb25zaWRlcg0KDQog ICAgU3Vicm91dGluZSBzMihuKQ0KICAgICAgSW50ZWdlcixQYXJhbWV0ZXIgOjogeChuOm4rMSkg PSBbIDEsMiBdDQogICAgICBDaGFyYWN0ZXIobiksUGFyYW1ldGVyIDo6IHkgPSAnYWJjJw0KICAg ICAgLi4uDQoNCiAgICBUaGUgdHlwZSBkZWNsYXJhdGlvbiBzdGF0ZW1lbnRzIGFyZSBub3QgY29u Zm9ybWluZyBiZWNhdXNlDQogICAgYWNjb3JkaW5nIHRvIDUuMi4ycDEsIFggYW5kIFkgYXJlIGF1 dG9tYXRpYyBkYXRhIG9iamVjdHMsIGFuZCBDNTA2DQogICAgc2F5cyB0aGF0IDxpbml0aWFsaXph dGlvbj4gc2hhbGwgbm90IGFwcGVhciBpbiB0aGF0IGNhc2UuDQoNCiAgICBOb3cgY29uc2lkZXIN Cg0KICAgIFN1YnJvdXRpbmUgczJiKG4pDQogICAgICBJbXBsaWNpdCBDaGFyYWN0ZXIobikgKGEt eikNCiAgICAgIFBhcmFtZXRlciAoeSA9ICdhYmMnKQ0KICAgICAgSW50ZWdlciA6OiB4KG46bisx KQ0KICAgICAgUGFyYW1ldGVyKHg9WzEsMl0pDQoNCiAgICBUaGlzIGlzIG5vdCB2YWxpZCBGb3J0 cmFuIDIwMDMsIGJlY2F1c2UgNS4yIGNvbnRhaW5zIHRoZQ0KICAgIHJlcXVpcmVtZW50Og0KICAg ICAgIlRoZSBjb21iaW5hdGlvbiBvZiBhdHRyaWJ1dGVzIHRoYXQgbWF5IGJlIHNwZWNpZmllZCBm b3IgYQ0KICAgICAgIHBhcnRpY3VsYXIgZW50aXR5IGlzIHN1YmplY3QgdG8gdGhlIHNhbWUgcmVz dHJpY3Rpb25zIGFzIGZvcg0KICAgICAgIHR5cGUgZGVjbGFyYXRpb24gc3RhdGVtZW50cyByZWdh cmRsZXNzIG9mIHRoZSBtZXRob2Qgb2YNCiAgICAgICBzcGVjaWZpY2F0aW9uLiAgVGhpcyBhbHNv IGFwcGxpZXMgdG8gUFJPQ0VEVVJFLCBFWFRFUk5BTCwgYW5kDQogICAgICAgSU5UUklOU0lDIHN0 YXRlbWVudHMuIg0KDQogICAgVGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBlYXIgaW4gRjIw MDguICBIb3dldmVyLCB0aGVyZSBpcyBubw0KICAgIGluZGljYXRpb24gaW4gdGhlIEludHJvZHVj dGlvbiBvZiB0aGlzIG5ldyBmZWF0dXJlLg0KDQogICAgSXMgdGhpcyBleHRlbnNpb24gdG8gRm9y dHJhbiAyMDAzIGRlbGliZXJhdGU/DQoNCkFOU1dFUjoNCg0KKDEpIFllcywgdGhlIHR5cGUgZGVj bGFyYXRpb24gc3RhdGVtZW50IHdhcyBpbnRlbmRlZCB0byBiZSBhbGxvd2VkLg0KICAgIEFuIGVk aXQgaXMgc3VwcGxpZWQgdG8gY29ycmVjdCB0aGlzIG1pc3Rha2UuDQoNCigyKSBObywgdGhlIG9t aXNzaW9uIG9mIHRoaXMgcmVxdWlyZW1lbnQgd2FzIGluYWR2ZXJ0ZW50LiAgQW4gZWRpdA0KICAg IGlzIHN1cHBsaWVkIHRvIGNvcnJlY3QgdGhpcyBtaXN0YWtlLg0KDQpFRElUUzoNCg0KWzg4OjE0 XSBJbiA1LjIuMSwgUmVwbGFjZSBjb25zdHJhaW50ICJDNTA3ICg1MDMpIiBjb21wbGV0ZWx5IHdp dGgNCiAgIkM1MDcgKFI1MDEpIElmIHRoZSBQQVJBTUVURVIga2V5d29yZCBhcHBlYXJzLCA8aW5p dGlhbGl6YXRpb24+DQogICAgICAgIHNoYWxsIGFwcGVhciBpbiBlYWNoIDxlbnRpdHktZGVjbD4u Ig0Ke0ZpeCBRMS59DQoNCls4ODoxNCtdIEluIDUuMi4xLCBpbW1lZGlhdGVseSBhZnRlciBjb25z dHJhaW50IEM1MDcsIGluc2VydCBuZXcNCiAgICAgICAgIGNvbnN0cmFpbnQ6DQogICJDNTA3YSBB biBleHByZXNzaW9uIHRoYXQgc3BlY2lmaWVzIGEgbGVuZ3RoIHR5cGUgcGFyYW1ldGVyIG9yDQog ICAgICAgICBhcnJheSBib3VuZCBvZiBhIG5hbWVkIGNvbnN0YW50IHNoYWxsIGJlIGEgY29uc3Rh bnQNCiAgICAgICAgIGV4cHJlc3Npb24uIg0Ke0ZpeCBRMi59DQoNClNVQk1JVFRFRCBCWTogTWFs Y29sbSBDb2hlbg0KDQpISVNUT1JZOiAxMi0xODkgICAgbTE5OSAgRjA4LzAwODUgc3VibWl0dGVk DQogICAgICAgICAxMi0xODlyMSAgbTE5OSAgUGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAg IDEzLTIzNyAgICBtMjAwICBGYWlsZWQgYXMgYW1lbmRlZCBieSBKMyBsZXR0ZXIgYmFsbG90DQog ICAgICAgICAgICAgICAgICAgICAgICAgICMyNyAxMy0yMDMNCiAgICAgICAgIDEzLTIzOSAgICBt MjAwICBSZXZpc2VkIC0gcGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDEzLTI2MiAgICBt MjAxICBQYXNzZWQgSjMgbGV0dGVyIGJhbGxvdCAjMjggMTMtMjU1cjENCiAgICAgICAgIE4xOTkw ICAgICBtMjAyICBQYXNzZWQgYnkgV0c1IGJhbGxvdCA2IE4xOTg3Lzg4LzkwDQogICAgICAgICBO MjAwMiAgICAgbTIwMyAgSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoN Ck5VTUJFUjogRjA4LzAwODYNClRJVExFOiAgSW1wbGllZC1zaGFwZSBhbmQgc2VwYXJhdGUgUEFS QU1FVEVSIHN0YXRlbWVudA0KS0VZV09SRFM6IEltcGxpZWQtc2hhcGUsIFBBUkFNRVRFUg0KREVG RUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQpRVUVT VElPTjoNCg0KUTEuICBDb25zaWRlcg0KDQogIFByb2dyYW0gdGVzdDENCiAgICBDaGFyYWN0ZXIo KikgYSxiKCopDQogICAgRGltZW5zaW9uIGMoKikNCiAgICBQYXJhbWV0ZXIgKGE9JzEyMycsIGI9 WycxJywnMicsJzMnXSkNCiAgICBDaGFyYWN0ZXIoKiksUGFyYW1ldGVyIDo6IGMgPSBbICc0NCcs JzU1JywnNjYnIF0NCiAgICBQcmludCAqLGEsYixjDQogIEVuZA0KDQpUaGUgZGVmaW5pdGlvbiBv ZiB0aGUgYXNzdW1lZC1sZW5ndGggY2hhcmFjdGVyIG5hbWVkIGNvbnN0YW50IEENCmNvbmZvcm1z IHRvIEZvcnRyYW4gNzcgdG8gRm9ydHJhbiAyMDA4LiAgSG93ZXZlciwgdGhlIGRlZmluaXRpb24g b2YNCnRoZSBpbXBsaWVkLXNoYXBlIG5hbWVkIGNvbnN0YW50IEIgYXBwZWFycyBub3QgdG8gY29u Zm9ybSB0byBGb3J0cmFuDQoyMDA4LCBhcyB0aGUgc3RhbmRhcmQgc2F5cyBpbiA1LjQuMTFwMg0K ICAiQSBuYW1lZCBhcnJheSBjb25zdGFudCBkZWZpbmVkIGJ5IGEgUEFSQU1FVEVSIHN0YXRlbWVu dCBzaGFsbCBoYXZlDQogICBpdHMgc2hhcGUgc3BlY2lmaWVkIGluIGEgcHJpb3Igc3BlY2lmaWNh dGlvbiBzdGF0ZW1lbnQuIg0KT24gdGhlIG90aGVyIGhhbmQsIHRoZSBuYW1lZCBjb25zdGFudCBD IGRvZXMgbm90IGhhdmUgc3VjaCBhDQpyZXF1aXJlbWVudCwgc28gaXRzIGRlZmluaXRpb24gd291 bGQgYXBwZWFyIHRvIGJlIGNvbmZvcm1pbmcuDQoNClRoaXMgYXBwYXJlbnQgcmVxdWlyZW1lbnQg b24gdGhlIG5hbWVkIGNvbnN0YW50IEIgd291bGQgdGh1cyBhcHBlYXIgdG8NCmJlIGluY29uc2lz dGVudCB3aXRoIHRob3NlIG9uIHRoZSBuYW1lZCBjb25zdGFudCBDLCBhcyB3ZWxsIGFzDQppbmNv bnNpc3RlbnQgd2l0aCB0aGUgd2F5IHRoYXQgYXNzdW1lZCBsZW5ndGggd29ya3MsIGFuZCB3aXRo IHRoZQ0KZ2VuZXJhbCBwcmluY2lwbGUgb2YgYWxsb3dpbmcgYXR0cmlidXRlcyB0byBiZSBzcGVj aWZpZWQgZWl0aGVyIGluIGENCnNpbmdsZSB0eXBlIGRlY2xhcmF0aW9uIHN0YXRlbWVudCBvciB3 aXRoIHNlcGFyYXRlIHNwZWNpZmljYXRpb24NCnN0YXRlbWVudHMuDQoNCklzIHRoZSBwcm9ncmFt IGludGVuZGVkIHRvIGNvbmZvcm0gdG8gdGhlIEZvcnRyYW4gc3RhbmRhcmQ/DQoNClEyLiBDb25z aWRlcg0KDQogIFN1YnJvdXRpbmUgdGVzdDIoYSkNCiAgICBSZWFsLERpbWVuc2lvbigqKSA6OiBh LGMNCiAgICBQYXJhbWV0ZXIgKGMgPSBbIDQ1LjYgXSkNCiAgICBhKDpzaXplKGMpKSA9IGMNCiAg RW5kIFN1YnJvdXRpbmUNCg0KVGhlIDxhcnJheS1zcGVjPiBpbiB0aGUgdHlwZSBkZWNsYXJhdGlv biBzdGF0ZW1lbnQgaXMgYW1iaWd1b3VzOyBpZiBpdA0KaXMgYW4gPGltcGxpZWQtc2hhcGUtc3Bl Yz4gdGhlbiB0aGUgZGVjbGFyYXRpb24gb2YgQSBhcyBhbg0KYXNzdW1lZC1zaXplIGFycmF5IGlz IGVycm9uZW91cywgYnV0IGlmIGl0IGlzIGFuIDxhc3N1bWVkLXNpemUtc3BlYz4NCnRoZW4gdGhl IGRlY2xhcmF0aW9uIG9mIEMgYXMgYW4gaW1wbGllZC1zaGFwZSBhcnJheSBpcyBlcnJvbmVvdXMu DQoNCklzIHRoaXMgcHJvZ3JhbS11bml0IGludGVuZGVkIHRvIGJlIHN0YW5kYXJkLWNvbmZvcm1p bmc/DQoNCkFOU1dFUjoNCg0KQTEuIFllcywgdGhlIHByb2dyYW0gd2FzIGludGVuZGVkIHRvIGNv bmZvcm0gdG8gdGhlIEZvcnRyYW4gc3RhbmRhcmQuDQogICAgQW4gZWRpdCBpcyBwcm92aWRlZCB0 byBtb2RpZnkgdGhlIHJlcXVpcmVtZW50IGZvciBwcmlvcg0KICAgIHNwZWNpZmljYXRpb24gc28g YXMgdG8gYWxsb3cgdGhpcyBjYXNlLg0KDQpBMi4gWWVzLCB0aGUgcHJvZ3JhbSBpcyBpbnRlbmRl ZCB0byBjb25mb3JtIHRvIHRoZSBGb3J0cmFuIHN0YW5kYXJkLg0KICAgIEFuIGVkaXQgaXMgcHJv dmlkZWQgdG8gYWRkIHN5bnRheCB0byBwZXJtaXQgdGhpcyB1bmFtYmlndW91c2x5Lg0KDQpFRElU UyB0byAxMC0wMDdyMToNCg0KWzk0OjEwXSA1LjMuOC4xLCBSNTE1LA0KICAgICAgICBDaGFuZ2Ug IjxpbXBsaWVkLXNoYXBlLXNwZWMtbGlzdD4iIHRvICI8aW1wbGllZC1zaGFwZS1zcGVjPiIuDQp7 VGhpcyB3aWxsIGJlIHRoZSB1bmFtYmlndW91cyBpbXBsaWVkLXNoYXBlIHN5bnRheC59DQoNCls5 NDoxMCtdIEluc2VydCBuZXcgcHJvZHVjdGlvbg0KICAgICAgICAgIjw8b3I+PiA8aW1wbGllZC1z aGFwZS1vci1hc3N1bWVkLXNpemUtc3BlYz4iLg0Ke1RoaXMgd2lsbCBiZSB0aGUgb3RoZXJ3aXNl LWFtYmlndW91cyBzeW50YXgufQ0KDQpbOTU6MzJdIDUuMy44LjVwMQ0KICBSZXBsYWNlIHNlbnRl bmNlDQogICAgIkFuIGFzc3VtZWQtc2l6ZSBhcnJheSBpcyBkZWNsYXJlZCB3aXRoIGFuIDxhc3N1 bWVkLXNpemUtc3BlYz4uIg0KICB3aXRoDQogICAgIkEgZHVtbXkgYXJndW1lbnQgaXMgZGVjbGFy ZWQgdG8gYmUgYW4gYXNzdW1lZC1zaXplIGFycmF5IGJ5IGFuDQogICAgIDxhc3N1bWVkLXNpemUt c3BlYz4gb3IgYW4gPGltcGxpZWQtc2hhcGUtb3ItYXNzdW1lZC1zaXplLXNwZWM+LiINCntOb3cg dHdvIHdheXMgb2YgZGVjbGFyaW5nIGFzc3VtZWQgc2l6ZS59DQoNCls5NTozMy1dIEluc2VydCBu ZXcgQk5GIHRlcm0NCiAgIlI1MjBhIDxhc3N1bWVkLWltcGxpZWQtc3BlYz4gPDxpcz4+ICBbIDxs b3dlci1ib3VuZD4gOiBdICoiDQoNCls5NTozM10gUjUyMSA8YXNzdW1lZC1zaXplLXNwZWM+LCBh ZnRlciAiPDxpcz4+Ig0KICBSZXBsYWNlIGVudGlyZSBSSFMNCiAgICAiWyA8ZXhwbGljaXQtc2hh cGUtc3BlYz4sIF0uLi4gWyA8bG93ZXItYm91bmQ+IDogXSAqIg0KICB3aXRoDQogICAgIjxleHBs aWNpdC1zaGFwZS1zcGVjLWxpc3Q+LCA8YXNzdW1lZC1pbXBsaWVkLXNwZWM+Ig0Ke1RoZSB1bmFt YmlndW91cyBjYXNlIGhhcyBhIGxpc3Qgb2YgPGV4cGxpY2l0LXNoYXBlLXNwZWM+cy59DQoNCls5 NTozNytdIEluc2VydCBuZXcgQk5GIHJ1bGVzIGFuZCBjb25zdHJhaW50DQogICJSNTIxYSA8aW1w bGllZC1zaGFwZS1vci1hc3N1bWVkLXNpemUtc3BlYz4gPDxpcz4+DQogICAgICAgICAgICAgICAg PGFzc3VtZWQtaW1wbGllZC1zcGVjPg0KDQogICBDNTM0YSBBbiBvYmplY3Qgd2hvc2UgYXJyYXkg Ym91bmRzIGFyZSBzcGVjaWZpZWQgYnkgYW4NCiAgICAgICAgIDxpbXBsaWVkLXNoYXBlLW9yLWFz c3VtZWQtc2l6ZS1zcGVjPiBzaGFsbCBiZSBhIGR1bW15IGRhdGENCiAgICAgICAgIG9iamVjdCBv ciBhIG5hbWVkIGNvbnN0YW50LiINCntUaGUgb3RoZXJ3aXNlLWFtYmlndW91cyBjYXNlLiAgTm90 ZSBjYXJlZnVsIHdvcmRpbmcufQ0KDQpbOTY6MjQtMjVdIDUuMy44LjZwMQ0KICBSZXBsYWNlIHNl bnRlbmNlDQogICAgIkFuIGltcGxpZWQtc2hhcGUgYXJyYXkgaXMgZGVjbGFyZWQuLi4gPGltcGxp ZWQtc2hhcGUtc3BlYy1saXN0Pi4iDQogIHdpdGgNCiAgICAiQSBuYW1lZCBjb25zdGFudCBpcyBk ZWNsYXJlZCB0byBiZSBhbiBpbXBsaWVkLXNoYXBlIGFycmF5IHdpdGggYW4NCiAgICAgPGFycmF5 LXNwZWM+IHRoYXQgaXMgYW4gPGltcGxpZWQtc2hhcGUtb3ItYXNzdW1lZC1zaXplLXNwZWM+IG9y DQogICAgIGFuIDxpbXBsaWVkLXNoYXBlLXNwZWM+LiINCntOb3cgdHdvIHdheXMgb2YgZGVjbGFy aW5nIGltcGxpZWQgc2hhcGUufQ0KDQpbOTY6MjZdIFI1MjIsDQogIFJlcGxhY2UgcmlnaHQtaGFu ZC1zaWRlIChhZnRlciAiPDxpcz4+IikNCiAgICAiWyA8bG93ZXItYm91bmQ+IDogXSAqIg0KICB3 aXRoDQogICAgIjxhc3N1bWVkLWltcGxpZWQtc3BlYz4sIDxhc3N1bWVkLWltcGxpZWQtc3BlYy1s aXN0PiIuDQp7VGhpcyBpcyBub3cgdGhlIHVuYW1iaWd1b3VzbHkgaW1wbGllZC1zaGFwZSBzcGVj Ln0NCg0KWzk2OjI4XSBwMiwNCiAgQ2hhbmdlICI8aW1wbGllZC1zaGFwZS1zcGVjPnMiIC0+ICI8 YXNzdW1lZC1pbXBsaWVkLXNwZWM+cyINCiAgYW5kICAgICJ0aGUgPGltcGxpZWQtc2hhcGUtc3Bl Yy1saXN0PiIgLT4gIml0cyA8YXJyYXktc3BlYz4iLA0KICBtYWtpbmcgdGhlIGVudGlyZSBwYXJh Z3JhcGggcmVhZDoNCiAgICAiVGhlIHJhbmsgb2YgYW4gaW1wbGllZC1zaGFwZSBhcnJheSBpcyB0 aGUgbnVtYmVyIG9mDQogICAgIDxhc3N1bWVkLWltcGxpZWQtc3BlYz5zIGluIGl0cyA8YXJyYXkt c3BlYz4uIg0Ke0NoYW5nZSByYW5rIGRldGVybWluYXRpb24gdG8gYWNjb3JkIHdpdGggbmV3IHN5 bnRheCB0ZXJtLn0NCg0KWzEwNzoxMV0gNS40LjExcDEgInNoYXBlIiAtPiAicmFuayIuDQp7SW4g dGhlIFBBUkFNRVRFUiBzdGF0ZW1lbnQsIG9ubHkgcmVxdWlyZSB0aGUgcmFuayB0byBiZSBzcGVj aWZpZWQgaW4NCiBhIHByaW9yIHNwZWNpZmljYXRpb24gc3RhdGVtZW50Ln0NCg0KTk9URSBmb3Ig ZnV0dXJlIGludmVzdGlnYXRpb246DQoNCiAgVGhlIGN1cnJlbnQgd29yZGluZyBvZiBDNTMzIGlz IHNsaWdodGx5IGRlZmVjdGl2ZSwgYXMgaXQgZG9lcyBub3QNCiAgY2xlYXJseSBwcm9oaWJpdCAi UkVBTCxESU1FTlNJT04oKikgOjogZHVtbXksbm9uZHVtbXkiLCBzZWVpbmcgYXMNCiAgaG93IHRo YXQgZG9lcyBpbmRlZWQgZGVjbGFyZSAidGhlIGFycmF5IGJvdW5kcyBvZiBhIGR1bW15IGRhdGEN CiAgb2JqZWN0Ii4gIEM1MzMgc2hvdWxkIHByb2JhYmx5IGJlIHJld29yZGVkIHNpbWlsYXJseSB0 byBDNTM0YS4NCg0KU1VCTUlUVEVEIEJZOiBCaWxsIExvbmcNCg0KSElTVE9SWTogMTItMTkxICAg IG0xOTkgIEYwOC8wMDg2IHN1Ym1pdHRlZCAtIHJldmlzZWQgYnkgTWFsY29sbQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICBDb2hlbiAtIHBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAx My0yMzcgICAgbTIwMCAgRmFpbGVkIGxldHRlciBiYWxsb3QNCiAgICAgICAgIDEzLTIzNSAgICBt MjAwICBSZXZpc2VkIHdpdGggc3RyYXcgdm90ZXMNCiAgICAgICAgIDEzLTIzNXIxICBtMjAwICBQ YXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTMtMjYyICAgIG0yMDEgIFBhc3NlZCBhcyBh bWVuZGVkIGJ5IEozIGxldHRlciBiYWxsb3QgIzI4DQogICAgICAgICAgICAgICAgICAgICAgICAg IDEzLTI1NXIxDQogICAgICAgICBOMTk5MCAgICAgbTIwMiAgUGFzc2VkIGJ5IFdHNSBiYWxsb3Qg NiBOMTk4Ny84OC85MA0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIEluIEYyMDA4IENvcnJpZ2Vu ZHVtIDMNCioqIFJldmlzZWQgZWRpdHMgZnJvbSBkcmFmdCBjb3JyaWdlbmR1bSBiYWxsb3QgLSBy ZXBsYWNlIGVudGlyZSBpbnRlcnANCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMDg3 DQpUSVRMRTogTWl4ZWQta2luZCBjaGFyYWN0ZXIgYXNzaWdubWVudA0KS0VZV09SRFM6IE1peGVk IGtpbmQsIGNoYXJhY3RlciBhc3NpZ25tZW50DQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVT OiBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNClFVRVNUSU9OOg0KDQpGb3IgYSBwcm9jZXNzb3Ig dGhhdCBzdXBwb3J0cyBib3RoIEFTQ0lJIGFuZCBJU08gMTA2NDYgVUNTLTQNCmNoYXJhY3RlciBr aW5kcywgYXNzdW1pbmcgd2l0aG91dCBsb3NzIG9mIGdlbmVyYWxpdHkgdGhhdA0KU2VsZWN0ZWRf Q2hhcl9LaW5kKCdBU0NJSScpIGlzIGVxdWFsIHRvIDEgYW5kIHRoYXQNClNlbGVjdGVkX0NoYXJf S2luZCgnSVNPXzEwNjQ2JykgaXMgZXF1YWwgdG8gMTA2NDYsDQpjb25zaWRlciB0aGUgZm9sbG93 aW5nIHByb2dyYW06DQoNCiAgTW9kdWxlIGNoYXJraW5kcw0KICAgIEludGVnZXIsUGFyYW1ldGVy IDo6IGFzY2lpID0gMQ0KICAgIEludGVnZXIsUGFyYW1ldGVyIDo6IHVjczQgPSAxMDY0Ng0KICBF bmQgTW9kdWxlDQogIE1vZHVsZSBvdmVybG9hZA0KICAgIFVzZSBjaGFya2luZHMNCiAgICBJbnRl cmZhY2UgQXNzaWdubWVudCg9KQ0KICAgICAgTW9kdWxlIFByb2NlZHVyZSBjaGFyX2FzZw0KICAg IEVuZCBJbnRlcmZhY2UNCiAgQ29udGFpbnMNCiAgICBTdWJyb3V0aW5lIGNoYXJfYXNnKGEsYikN CiAgICAgIENoYXJhY3RlcigqLGFzY2lpKSxJbnRlbnQoT3V0KSA6OiBhDQogICAgICBDaGFyYWN0 ZXIoKix1Y3M0KSxJbnRlbnQoSW4pIDo6IGINCiAgICAgIERvIGk9MSxNaW4oTGVuKGEpLExlbihi KSkNCiAgICAgICAgYShpOmkpID0gQWNoYXIoTW9kKElhY2hhcihiKGk6aSkpKzEsMTI3KSkNCiAg ICAgIEVuZCBEbw0KICAgICAgYShpOikgPSBSZXBlYXQoJyonLExlbihhKS1MZW4oYikpDQogICAg RW5kIFN1YnJvdXRpbmUNCiAgRW5kIE1vZHVsZQ0KICBQcm9ncmFtIHRlc3QNCiAgICBVc2Ugb3Zl cmxvYWQNCiAgICBDaGFyYWN0ZXIoMTAsYXNjaWkpIHgNCiAgICB4ID0gdWNzNF8nSGVsbG8nDQog ICAgUHJpbnQgKiwnIicseCwnIicNCiAgRW5kIFByb2dyYW0NCg0KVGhpcyBwcm9ncmFtIGNvbmZv cm1zIHRvIEZvcnRyYW4gOTUsIHdoaWNoIHBlcm1pdHRlZCB1c2VyLWRlZmluZWQNCmFzc2lnbm1l bnQgYmV0d2VlbiBhbGwgY2hhcmFjdGVycyB3aXRoIGRpZmZlcmVudCBraW5kcy4NCg0KSG93ZXZl ciwgRm9ydHJhbiAyMDA4IHByb3ZpZGVzIGludHJpbnNpYyBhc3NpZ25tZW50IGJldHdlZW4NCklT TyAxMDY0NiBjaGFyYWN0ZXJzIGFuZCBBU0NJSSBjaGFyYWN0ZXJzLCBzbyB1c2VyLWRlZmluZWQg YXNzaWdubWVudA0KaXMgbm90IHBlcm1pdHRlZCAoMTIuNC4zLjQuMyBhbmQgVGFibGUgNy44KS4N Cg0KVGh1cyB0aGVyZSBzZWVtcyB0byBiZSBhIGNvbnRyYWRpY3Rpb24gYmV0d2VlbiB0aGUgRm9y dHJhbiA5NQ0KY29tcGF0aWJpbGl0eSBkZXNjcmlwdGlvbiBpbiAxLjYuMyBhbmQgMTIuNC4zLjQu My4NCg0KSXMgdGhlIHByb2dyYW0gaW50ZW5kZWQgdG8gY29uZm9ybSB0byBGb3J0cmFuIDIwMDg/ DQpBbmQgaWYgaXQgZG9lcywgZG9lcyBpdCBwcmludA0KICJIZWxsbyAgICAgIg0KKGludHJpbnNp YyBhc3NpZ25tZW50KQ0KICJJZm1tcCoqKioqIg0KKHVzZXItZGVmaW5lZCBhc3NpZ25tZW50KT8N Cg0KQU5TV0VSOg0KDQpUaGUgcHJvZ3JhbSB3YXMgbm90IGludGVuZGVkIHRvIGNvbmZvcm0gdG8g dGhlIHN0YW5kYXJkLg0KQW4gZWRpdCBpcyBwcm92aWRlZCB0byByZW1vdmUgdGhlIGNvbnRyYWRp Y3Rpb24uDQoNCkVESVRTOg0KDQpbMjQ6MTRdIDEuNi4zcDEsICJBbnkiDQogICAgICAgIC0+ICJF eGNlcHQgYXMgaWRlbnRpZmllZCBpbiB0aGlzIHN1YmNsYXVzZSwgYW55Ii4NCntObyBsb25nZXIg dHJ1ZS59DQoNClsyNDoxNV0gU3BsaXQgdGhlIHNlbnRlbmNlICJUaGUgLi4uIiBpbnRyb2R1Y2lu ZyB0aGUgbGlzdCBpbnRvIGENCiAgICAgICAgc2VwYXJhdGUgcGFyYWdyYXBoICh3aGljaCB3aWxs IGJlIHRoZSB0aGlyZCBwYXJhZ3JhcGgpLCBhbmQNCiAgICAgICAgaW5zZXJ0IGEgbmV3IHBhcmFn cmFwaCAoYXMgdGhlIHNlY29uZCBwYXJhZ3JhcGgpIGFzIGZvbGxvd3M6DQogICJGb3J0cmFuIDk1 IHBlcm1pdHRlZCBkZWZpbmVkIGFzc2lnbm1lbnQgYmV0d2VlbiBjaGFyYWN0ZXIgc3RyaW5ncw0K ICAgb2YgdGhlIHNhbWUgcmFuayBhbmQgZGlmZmVyZW50IGtpbmRzLiAgVGhpcyBwYXJ0IG9mIElT Ty9JRUMgMTUzOQ0KICAgZG9lcyBub3QgcGVybWl0IHRoYXQgaWYgYm90aCBvZiB0aGUgZGlmZmVy ZW50IGtpbmRzIGFyZSBBU0NJSSwNCiAgIElTTyAxMDY0Niwgb3IgZGVmYXVsdCBraW5kLiINCntE ZXNjcmliZSB0aGUgaW5jb21wYXRpYmlsaXR5Ln0NCg0KWzI1OjIrXSAxLjYuNCwgYWZ0ZXIgcDMs IGluc2VydCBhIG5ldyBwYXJhZ3JhcGguDQogICJGb3J0cmFuIDkwIHBlcm1pdHRlZCBkZWZpbmVk IGFzc2lnbm1lbnQgYmV0d2VlbiBjaGFyYWN0ZXIgc3RyaW5ncw0KICAgb2YgdGhlIHNhbWUgcmFu ayBhbmQgZGlmZmVyZW50IGtpbmRzLiAgVGhpcyBwYXJ0IG9mIElTTy9JRUMgMTUzOQ0KICAgZG9l cyBub3QgcGVybWl0IHRoYXQgaWYgYm90aCBvZiB0aGUgZGlmZmVyZW50IGtpbmRzIGFyZSBBU0NJ SSwNCiAgIElTTyAxMDY0Niwgb3IgZGVmYXVsdCBraW5kLiINCntEZXNjcmliZSB0aGUgaW5jb21w YXRpYmlsaXR5Ln0NCg0KU1VCTUlUVEVEIEJZOiBWYW4gU255ZGVyDQoNCkhJU1RPUlk6IDEzLTIw NCAgICBtMjAwICBGMDgvMDA4NyBzdWJtaXR0ZWQNCiAgICAgICAgIDEzLTIwNHIxICBtMjAwICBS ZXZpc2VkIC0gcGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDEzLTI2MiAgICBtMjAxICBQ YXNzZWQgSjMgbGV0dGVyIGJhbGxvdCAjMjggMTMtMjU1cjENCiAgICAgICAgIE4xOTkwICAgICBt MjAyICBQYXNzZWQgYnkgV0c1IGJhbGxvdCA2IE4xOTg3Lzg4LzkwDQogICAgICAgICBOMjAwMiAg ICAgbTIwMyAgSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJF UjogRjA4LzAwODgNClRJVExFOiBDYW4gQUxMT0NBVEUgd2l0aCBTT1VSQ0U9IGhhdmUgc2lkZS1l ZmZlY3RzIGluIGEgUFVSRSBwcm9jPw0KS0VZV09SRFM6IEFsbG9jYXRlLCBTT1VSQ0U9LCBQVVJF LCBzaWRlLWVmZmVjdHMNCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEluIEYyMDA4IENv cnJpZ2VuZHVtIDMNCg0KUVVFU1RJT046DQoNCk9uIGNvbXAubGFuZy5mb3J0cmFuIElhbiBIYXJ2 ZXkgYnJvdWdodCB1cCBhIHBvaW50ZXIvUFVSRQ0KcXVlc3Rpb24uDQoNCkdpdmVuIGEgdHlwZSBk ZWZpbml0aW9uIGxpa2UNCg0KIHR5cGUgOjogaW50X3B0cg0KICAgIGludGVnZXIsIHBvaW50ZXIg OjogaQ0KIGVuZCB0eXBlIGludF9wdHINCg0KQW5kIGEgUFVSRSBmdW5jdGlvbiBsaWtlDQoNCiAg UFVSRSBmdW5jdGlvbiBGVU4gKGFyZykNCiAgICB0eXBlKGludF9wdHIpLCBpbnRlbnQoaW4pIDo6 IGFyZw0KICAgIHR5cGUoaW50X3B0ciksIGFsbG9jYXRhYmxlIDo6IHRtcA0KICAgIEZVTiA9IDEN CiAgICBhbGxvY2F0ZSAodG1wLCBzb3VyY2U9YXJnKQ0KICAgIHRtcCVpID0gMg0KICBlbmQgZnVu Y3Rpb24gZnVuDQoNCklzIEZVTiBzdGFuZGFyZCBjb25mb3JtaW5nPw0KDQpEb2Vzbid0IHRoZSB1 c2Ugb2Ygc291cmNlPWFyZyBhbGxvdyB0aGUgZnVuY3Rpb24gdG8gbW9kaWZ5IGEgZ2xvYmFsDQpl bnRpdHkgdmlhIHRoZSB0bXAlaSA9IC4uLj8gIFRoZXJlIGRvbid0IHNlZW0gdG8gYmUgYW55IGNv bnN0cmFpbnRzIG9uDQp3aGF0IGFyZyVpIGNhbiBwb2ludCB0bywgd2hpY2ggbWVhbnMgdGhhdCB0 aGUgYXNzaWdubWVudCB0byB0bXAlaSBjYW4NCmhhdmUgc2lkZSBlZmZlY3RzLg0KDQpOb3RlIHRo YXQgQzEyODMoMSkgcHJldmVudHMgdXNhZ2UgbGlrZQ0KICAgIGFyZyVpID0gMg0KDQpBTlNXRVI6 DQoNClRoaXMgd2FzIG5vdCBpbnRlbmRlZCB0byBiZSBzdGFuZGFyZC1jb25mb3JtaW5nLg0KQW4g ZWRpdCBpcyBzdXBwbGllZCB0byByZW1lZHkgdGhpcyBvdmVyc2lnaHQuDQoNCkVESVRTOg0KDQpb MzEyOjM3XSBJbiBDMTI4MywgZGVsZXRlICJvciIgYW5kIGFkZCBhIG5ldyBpdGVtDQogICIoNGEp IGFzIHRoZSA8c291cmNlLWV4cHI+IGluIGEgU09VUkNFPSBjbGF1c2UgaWYgdGhlIGRlc2lnbmF0 b3IgaXMNCiAgICAgICAgb2YgYSBkZXJpdmVkIHR5cGUgdGhhdCBoYXMgYW4gdWx0aW1hdGUgcG9p bnRlciBjb21wb25lbnQsIG9yIg0KDQpTVUJNSVRURUQgQlk6IERpY2sgSGVuZHJpY2tzb24NCg0K SElTVE9SWTogMTMtMjI2ICAgIG0yMDAgIEYwOC8wMDg4IHN1Ym1pdHRlZA0KICAgICAgICAgMTMt MjI2cjEgIG0yMDAgIEVkaXRzIGFkZGVkIC0gcGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAg IDEzLTI2MiAgICBtMjAxICBQYXNzZWQgSjMgbGV0ZXIgYmFsbG90ICMyOCAxMy0yNTVyMQ0KICAg ICAgICAgTjE5OTAgICAgIG0yMDIgIFBhc3NlZCBieSBXRzUgYmFsbG90IDYgTjE5ODcvODgvOTAN CiAgICAgICAgIE4yMDAyICAgICBtMjAzICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCg0KTlVNQkVSOiBGMDgvMDA4OQ0KVElUTEU6ICBWYXJpYWJsZS1kZW5vdGluZyBm dW5jdGlvbiByZWZlcmVuY2VzIGNoYW5nZSBleGlzdGluZw0KICAgICAgICBzZW1hbnRpY3MNCktF WVdPUkRTOiBQb2ludGVyIGZ1bmN0aW9uLCBhcmd1bWVudCwgQVNTT0NJQVRFLCBTRUxFQ1QgVFlQ RQ0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSjMgY29uc2lkZXJhdGlvbiBpbiBwcm9n cmVzcw0KDQpRVUVTVElPTjoNCg0KUXVlc3Rpb25zIDEtMyB1c2UgdGhpcyBtb2R1bGU6DQoNCiAg TW9kdWxlIG0yMDBjMg0KICAgIEludGVnZXIsVGFyZ2V0IDo6IHggPSA0Mg0KICBDb250YWlucw0K ICAgIEZ1bmN0aW9uIGZ4KCkNCiAgICAgIEludGVnZXIsUG9pbnRlciA6OiBmeA0KICAgICAgZngg PT4geA0KICAgIEVuZCBGdW5jdGlvbg0KICBFbmQgTW9kdWxlDQoNClExLiBDb25zaWRlciB0aGlz IG1haW4gcHJvZ3JhbQ0KDQogIFByb2dyYW0gcTENCiAgICBVc2UgbTIwMGMyDQogICAgQ2FsbCB0 ZXN0KHgsZngoKSkgICAgICAgICAgICAgICAgICAhIFRoZSBjYWxsLg0KICBDb250YWlucw0KICAg IFN1YnJvdXRpbmUgdGVzdChhLGIpDQogICAgICBJbnRlZ2VyIDo6IGEsYg0KICAgICAgYSA9IGEq MTAgICAgICAgICAgICAgICAgICAgICAgICAgISBUaGUgYXNzaWdubWVudC4NCiAgICAgIFByaW50 ICosYSxiDQogICAgRW5kIFN1YnJvdXRpbmUNCiAgRW5kIFByb2dyYW0NCg0KQWNjb3JkaW5nIHRv IEZvcnRyYW4gMjAwMywgImZ4KCkiIGluIHRoZSBDQUxMIHN0YXRlbWVudCBpcyBhbg0KZXhwcmVz c2lvbiBhbmQgbm90IGEgdmFyaWFibGUsIGFuZCBoYXMgdGhlIHZhbHVlIDQyLiAgSXQgZm9sbG93 cw0KdGhhdCB0aGUgYXNzaWdubWVudCAiYSA9IGEqMTAiIGlzIHN0YW5kYXJkLWNvbmZvcm1pbmcg YW5kIGRvZXMNCm5vdCBhZmZlY3QgdGhlIHZhbHVlIG9mIEIuICBUaGVyZWZvcmUgdGhpcyBwcm9n cmFtIHByaW50cw0KIDQyMCA0Mg0KDQpIb3dldmVyLCBhY2NvcmRpbmcgdG8gRm9ydHJhbiAyMDA4 LCAiZngoKSIgaW4gdGhlIENBTEwgc3RhdGVtZW50IGlzIGENCnZhcmlhYmxlLCBhbmQgdGhlcmVm b3JlIHRoZSBhc3NpZ25tZW50IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlDQpzdGFuZGFyZCBiZWNh dXNlIGl0IGFmZmVjdHMgdGhlIHZhbHVlIG9mIEIgYW5kIHNvIHZpb2xhdGVzIDEyLjUuMi4xMw0K aXRlbSAoMykgd2hpY2ggcmVxdWlyZXMgYWxsIHVwZGF0ZXMgdG8gQiB0byBnbyB0aHJvdWdoIHRo ZSBkdW1teQ0KYXJndW1lbnQsIGFuZCB0aGVyZWZvcmUgdGhlIGJlaGF2aW91ciBvZiB0aGUgcHJv Z3JhbSBpcyB1bnNwZWNpZmllZC4NCg0KVGhpcyBjb25mbGljdHMgd2l0aCB0aGUgc3RhdGVtZW50 IGluIGNsYXVzZSAxIHRoYXQgYWxsIEZvcnRyYW4gMjAwMw0KcHJvZ3JhbXMgcmVtYWluIGNvbmZv cm1pbmcgaW4gRm9ydHJhbiAyMDA4Lg0KDQpJcyB0aGlzIHByb2dyYW0gaW50ZW5kZWQgdG8gcmVt YWluIHN0YW5kYXJkLWNvbmZvcm1pbmc/DQoNClEyLiBDb25zaWRlciB0aGlzIG1haW4gcHJvZ3Jh bQ0KDQogIFByb2dyYW0gcTINCiAgICBVc2UgbTIwMGMyDQogICAgQ2FsbCB0ZXN0KHgsZngoKSkg ICAgICAgICAgICAgICAgICAhIFRoZSBjYWxsLg0KICBDb250YWlucw0KICAgIFN1YnJvdXRpbmUg dGVzdChhLGIpDQogICAgICBJbnRlZ2VyLFRhcmdldCA6OiBhLGINCiAgICAgIGEgPSBhKjEwICAg ICAgICAgICAgICAgICAgICAgICAgICEgVGhlIGFzc2lnbm1lbnQuDQogICAgICBQcmludCAqLGEs Yg0KICAgIEVuZCBTdWJyb3V0aW5lDQogIEVuZCBQcm9ncmFtDQoNCkFjY29yZGluZyB0byBGb3J0 cmFuIDIwMDMsICJmeCgpIiBpbiB0aGUgQ0FMTCBzdGF0ZW1lbnQgaXMgYW4NCmV4cHJlc3Npb24g YW5kIG5vdCBhIHZhcmlhYmxlLCBhbmQgaGFzIHRoZSB2YWx1ZSA0Mi4gIEl0IGZvbGxvd3MNCnRo YXQgdGhlIGFzc2lnbm1lbnQgImEgPSBhKjEwIiBpcyBzdGFuZGFyZC1jb25mb3JtaW5nIGFuZCBk b2VzDQpub3QgYWZmZWN0IHRoZSB2YWx1ZSBvZiBCLiAgVGhlcmVmb3JlIHRoaXMgcHJvZ3JhbSBw cmludHMNCiA0MjAgNDINCg0KSG93ZXZlciwgYWNjb3JkaW5nIHRvIEZvcnRyYW4gMjAwOCwgImZ4 KCkiIGluIHRoZSBDQUxMIHN0YXRlbWVudCBpcyBhDQp2YXJpYWJsZSwgYW5kIHRoZXJlZm9yZSB0 aGUgYXNzaWdubWVudCB0byBBIGFmZmVjdHMgdGhlIHZhbHVlIG9mIEIsIHNvDQp0aGUgcHJvZ3Jh bSB3aWxsIHByaW50DQogNDIwIDQyMA0KDQpUaGlzIGFwcGFyZW50bHkgY29uZmxpY3RzIHdpdGgg dGhlIHN0YXRlbWVudCBpbiBjbGF1c2UgMSB0aGF0IEZvcnRyYW4NCjIwMDggaXMgYW4gdXB3YXJk cyBjb21wYXRpYmxlIGV4dGVuc2lvbiB0byBGb3J0cmFuIDIwMDMuDQoNCklzIHRoaXMgcHJvZ3Jh bSBpbnRlbmRlZCB0byBoYXZlIGFsdGVyZWQgc2VtYW50aWNzPw0KDQpRMy4gQ29uc2lkZXIgdGhp cyBtYWluIHByb2dyYW0NCg0KICBQcm9ncmFtIHEzDQogICAgVXNlIG0yMDBjMg0KICAgIEFzc29j aWF0ZSh5PT5meCgpKSAgICEgVGhlIGFzc29jaWF0aW9uLg0KICAgICAgeCA9IDAgICAgICAgICAg ICAgICEgVGhlIGFzc2lnbm1lbnQuDQogICAgICBQcmludCAqLHgseQ0KICAgIEVuZCBBc3NvY2lh dGUNCiAgRW5kIFByb2dyYW0NCg0KVGhpcyBtYWluIHByb2dyYW0gYXBwYXJlbnRseSBjb25mb3Jt cyB0byBib3RoIEZvcnRyYW4gMjAwMyBhbmQgRm9ydHJhbg0KMjAwOCwgYnV0IGFjY29yZGluZyB0 byBGb3J0cmFuIDIwMDMgImZ4KCkiIGluIHRoZSBhc3NvY2lhdGlvbiBpcyBhbg0KZXhwcmVzc2lv biwgZXZhbHVhdGVkIG9uIGVudHJ5IHRvIHRoZSBjb25zdHJ1Y3QsIGFuZCB0aGVyZWZvcmUgWQ0K YmVjb21lcyBhc3NvY2lhdGVkIHdpdGggdGhlIHZhbHVlIDQyLCBhbmQgdGhlcmVmb3JlIHRoZSBw cm9ncmFtIHByaW50cw0KdGhlIHZhbHVlcyAoc3BhY2luZyBtYXkgZGlmZmVyKQ0KDQogMCA0Mg0K DQp3aGVyZWFzIGFjY29yZGluZyB0byBGb3J0cmFuIDIwMDggImZ4KCkiIGluIHRoZSBhc3NvY2lh dGlvbiBpcyBhDQp2YXJpYWJsZSwgYW5kIGV2ZXJ5IHJlZmVyZW5jZSB0byBZIGlzIGEgcmVmZXJl bmNlIHRvIHRoZSBhc3NvY2lhdGVkDQp2YXJpYWJsZSwgc28gdGhlIGFzc2lnbm1lbnQgYWxzbyBj aGFuZ2VzIHRoZSB2YWx1ZSBvZiBZIGFuZCB0aGVyZWZvcmUNCnRoZSBwcm9ncmFtIHByaW50cyB0 aGUgdmFsdWVzDQoNCiAwIDANCg0KVGhpcyBhcHBhcmVudGx5IGNvbmZsaWN0cyB3aXRoIHRoZSBz dGF0ZW1lbnQgaW4gY2xhdXNlIDEgdGhhdCBGb3J0cmFuDQoyMDA4IGlzIGFuIHVwd2FyZHMgY29t cGF0aWJsZSBleHRlbnNpb24gdG8gRm9ydHJhbiAyMDAzLg0KDQpJcyB0aGlzIHByb2dyYW0gaW50 ZW5kZWQgdG8gaGF2ZSBhbHRlcmVkIHNlbWFudGljcz8NCg0KUTQuIENvbnNpZGVyIHRoaXMgcHJv Z3JhbQ0KDQogIE1vZHVsZSBtMjAwYzJfcTQNCiAgICBJbnRlZ2VyLFRhcmdldCA6OiB4ID0gNDIN CiAgQ29udGFpbnMNCiAgICBGdW5jdGlvbiBmeCgpDQogICAgICBDbGFzcygqKSxQb2ludGVyIDo6 IGZ4DQogICAgICBmeCA9PiB4DQogICAgRW5kIEZ1bmN0aW9uDQogIEVuZCBNb2R1bGUNCiAgUHJv Z3JhbSBxNA0KICAgIFVzZSBtMjAwYzJfcTQNCiAgICBTZWxlY3QgVHlwZSAocT0+ZngoKSkNCiAg ICBUeXBlIElzIChJbnRlZ2VyKQ0KICAgICAgeCA9IDANCiAgICAgIFByaW50ICoseCxxDQogICAg RW5kIFNlbGVjdA0KICBFbmQgUHJvZ3JhbQ0KDQpVc2luZyB0aGUgc2FtZSBsb2dpYyBhcyBRMiwg dGhpcyBzaG91bGQgcHJpbnQgdGhlIHZhbHVlcw0KIDAgNDINCmluIEZvcnRyYW4gMjAwMywgYnV0 IHRoZSB2YWx1ZXMNCiAwIDANCmluIEZvcnRyYW4gMjAwOC4NCg0KQWdhaW4sIHRoaXMgaXMgbm90 IHVwd2FyZHMgY29tcGF0aWJsZSB3aXRoIEZvcnRyYW4gMjAwMy4NCg0KSXMgdGhpcyBwcm9ncmFt IGludGVuZGVkIHRvIGhhdmUgYWx0ZXJlZCBzZW1hbnRpY3MuDQoNCkFOU1dFUjoNCg0KQTEuIFRo aXMgcHJvZ3JhbSBpcyBub3QgaW50ZW5kZWQgdG8gYmUgY29uZm9ybWluZyB0byBGb3J0cmFuIDIw MDguDQogICAgQW4gZWRpdCBpcyBzdXBwbGllZCB0byBub3RlIHRoZSBpbmNvbXBhdGliaWxpdHkg YmV0d2VlbiBGb3J0cmFuDQogICAgMjAwOCBhbmQgcHJldmlvdXMgRm9ydHJhbiBzdGFuZGFyZHMu DQoNCkEyLiBUaGlzIHByb2dyYW0gd2FzIGludGVuZGVkIHRvIGhhdmUgZGlmZmVyZW50IHNlbWFu dGljcyBpbiBGb3J0cmFuDQogICAgMjAwOC4gIEFuIGVkaXQgaXMgc3VwcGxpZWQgdG8gbm90ZSB0 aGUgaW5jb21wYXRpYmlsaXR5Lg0KDQpBMy4gVGhpcyBwcm9ncmFtIHdhcyBpbnRlbmRlZCB0byBo YXZlIGRpZmZlcmVudCBzZW1hbnRpY3MgaW4gRm9ydHJhbg0KICAgIDIwMDguICBBbiBlZGl0IGlz IHN1cHBsaWVkIHRvIG5vdGUgdGhlIGluY29tcGF0aWJpbGl0eS4NCg0KQTQuIFRoaXMgcHJvZ3Jh bSB3YXMgaW50ZW5kZWQgdG8gaGF2ZSBkaWZmZXJlbnQgc2VtYW50aWNzIGluIEZvcnRyYW4NCiAg ICAyMDA4LiAgQW4gZWRpdCBpcyBzdXBwbGllZCB0byBub3RlIHRoZSBpbmNvbXBhdGliaWxpdHku DQoNCkVESVRTIHRvIDEwLTAwN3IxOg0KDQpbMjQ6MTErXSAxLjYuMiAiRm9ydHJhbiAyMDAzIGNv bXBhdGliaWxpdHkiLA0KICBpbnNlcnQgbmV3IHBhcmFncmFwaHMgYXQgdGhlIGVuZCBvZiB0aGUg c3ViY2xhdXNlLA0KICBhZnRlciB0aGUgcGFyYWdyYXBocyBhZGRlZCBieSBDb3JyaWdlbmR1bSAy Og0KDQogICJBbiBhY3R1YWwgYXJndW1lbnQgdGhhdCBjb3JyZXNwb25kcyB0byBhIG5vbnBvaW50 ZXIgZHVtbXkgYXJndW1lbnQNCiAgIGFuZCB3aGljaCBpcyBhIDxmdW5jdGlvbi1yZWZlcmVuY2U+ IHRvIGEgcG9pbnRlciBmdW5jdGlvbiBpcw0KICAgcmVnYXJkZWQgYXMgYSB2YXJpYWJsZSBieSB0 aGlzIHBhcnQgb2YgSVNPL0lFQyAxNTM5IGJ1dCB3YXMNCiAgIHJlZ2FyZGVkIGFzIGFuIGV4cHJl c3Npb24gYnkgRm9ydHJhbiAyMDAzOyBpZiB0aGUgdGFyZ2V0IG9mIHRoZQ0KICAgcG9pbnRlciBy ZXN1bHQgaXMgbW9kaWZpZWQgb3RoZXIgdGhhbiB0aHJvdWdoIHRoYXQgZHVtbXkgYXJndW1lbnQN CiAgIGR1cmluZyBleGVjdXRpb24gb2YgdGhlIGNhbGxlZCBwcm9jZWR1cmUsIGFuZCB0aGF0IGR1 bW15IGFyZ3VtZW50DQogICBkb2VzIG5vdCBoYXZlIHRoZSBQT0lOVEVSIG9yIFRBUkdFVCBhdHRy aWJ1dGUsIHRoZSBwcm9ncmFtIGRvZXMgbm90DQogICBjb25mb3JtIHRvIHRoaXMgcGFydCBvZiBJ U08vSUVDIDE1MzkuICBJZiB0aGF0IGR1bW15IGFyZ3VtZW50IGRvZXMNCiAgIGhhdmUgdGhlIFBP SU5URVIgb3IgVEFSR0VUIGF0dHJpYnV0ZSwgYW55IGZ1cnRoZXIgcmVmZXJlbmNlIHRvIHRoYXQN CiAgIGR1bW15IGFyZ3VtZW50IHdpbGwgaGF2ZSB0aGUgbW9kaWZpZWQgdmFsdWUgYWNjb3JkaW5n IHRvIHRoaXMgcGFydA0KICAgb2YgSVNPL0lFQyAxNTM5IGluc3RlYWQgb2YgdGhlIGluaXRpYWwg dmFsdWUgYXMgc3BlY2lmaWVkIGJ5DQogICBJU08vSUVDIDE1MzktMToyMDA0Lg0KDQogICBBIDxz ZWxlY3Rvcj4gZm9yIGFuIEFTU09DSUFURSBvciBTRUxFQ1QgVFlQRSBjb25zdHJ1Y3QgdGhhdCBp cyBhDQogICA8ZnVuY3Rpb24tcmVmZXJlbmNlPiB0byBhIHBvaW50ZXIgZnVuY3Rpb24gaXMgcmVn YXJkZWQgYXMgYQ0KICAgdmFyaWFibGUgYnkgdGhpcyBwYXJ0IG9mIElTTy9JRUMgMTUzOTsgaWYg dGhlIHRhcmdldCBvZiB0aGUgcG9pbnRlcg0KICAgcmVzdWx0IGlzIG1vZGlmaWVkIGR1cmluZyBl eGVjdXRpb24gb2YgdGhlIGNvbnN0cnVjdCwgYW55IGZ1cnRoZXINCiAgIHJlZmVyZW5jZXMgdG8g dGhlIDxhc3NvY2lhdGUtbmFtZT4gd2lsbCBoYXZlIHRoZSBtb2RpZmllZCB2YWx1ZQ0KICAgYWNj b3JkaW5nIHRvIHRoaXMgcGFydCBvZiBJU08vSUVDIDE1MzkgaW5zdGVhZCBvZiB0aGUgaW5pdGlh bCB2YWx1ZQ0KICAgYXMgc3BlY2lmaWVkIGJ5IElTTy9JRUMgMTUzOS0xOjIwMDQuIg0KDQpbMjQ6 MTQtMTZdIDEuNi4zICJGb3J0cmFuIDk1IGNvbXBhdGliaWxpdHkiLCBwYXJhZ3JhcGggMSwgc2Vu dGVuY2UgMiwNCiAgQ2hhbmdlICJBbnkiIHRvICJFeGNlcHQgYXMgaWRlbnRpZmllZCBpbiB0aGlz IHN1YmNsYXVzZSwgYW55IiwNCiAgRGVsZXRlICJUaGUgZm9sbG93aW5nIEZvcnRyYW4gOTUgZmVh dHVyZXMgLi4gMTUzOS4iDQp7V2UgYXJlIGFib3V0IHRvIGFkZCBhIG5vbi1jb25mb3JtYW5jZSwg c28gdGhlIGxhc3Qgc2VudGVuY2Ugd2lsbA0KIGJlY29tZSB3cm9uZyBhbmQgaXQgaXMgaW4gYW55 IGNhc2UgdW5uZWNlc3NhcnkufQ0KDQpbMjQ6MTctMjddIENoYW5nZSBhbGwgYnVsbGV0IHBvaW50 cyBpbnRvIHNlcGFyYXRlIHBhcmFncmFwaHMuDQp7VGhlc2UgYXJlIG5vIGxvbmdlciBhIGxpc3Qu fQ0KDQpbMjQ6MjcrXSBJbnNlcnQgbmV3IHBhcmFncmFwaCBhdCBlbmQgb2Ygc3ViY2xhdXNlDQog ICJBbiBhY3R1YWwgYXJndW1lbnQgdGhhdCBjb3JyZXNwb25kcyB0byBhIG5vbnBvaW50ZXIgZHVt bXkgYXJndW1lbnQNCiAgIGFuZCB3aGljaCBpcyBhIDxmdW5jdGlvbi1yZWZlcmVuY2U+IHRvIGEg cG9pbnRlciBmdW5jdGlvbiBpcw0KICAgcmVnYXJkZWQgYXMgYSB2YXJpYWJsZSBieSB0aGlzIHBh cnQgb2YgSVNPL0lFQyAxNTM5IGJ1dCB3YXMNCiAgIHJlZ2FyZGVkIGFzIGFuIGV4cHJlc3Npb24g YnkgRm9ydHJhbiA5NTsgaWYgdGhlIHRhcmdldCBvZiB0aGUNCiAgIHBvaW50ZXIgcmVzdWx0IGlz IG1vZGlmaWVkIG90aGVyIHRoYW4gdGhyb3VnaCB0aGF0IGR1bW15IGFyZ3VtZW50DQogICBkdXJp bmcgZXhlY3V0aW9uIG9mIHRoZSBjYWxsZWQgcHJvY2VkdXJlLCB0aGUgcHJvZ3JhbSBkb2VzIG5v dA0KICAgY29uZm9ybSB0byB0aGlzIHBhcnQgb2YgSVNPL0lFQyAxNTM5LiINCg0KWzI0OjMwXSAx LjYuNCAiRm9ydHJhbiA5MCBjb21wYXRpYmlsaXR5IiwgcGFyYWdyYXBoIDENCiAgQ2hhbmdlICJB bnkiIHRvICJFeGNlcHQgYXMgaWRlbnRpZmllZCBpbiB0aGlzIHN1YmNsYXVzZSwgYW55IiwNCg0K WzI1OjYrXSBJbnNlcnQgbmV3IHBhcmFncmFwaCBhdCBlbmQgb2Ygc3ViY2xhdXNlLg0KICAiQW4g YWN0dWFsIGFyZ3VtZW50IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBub25wb2ludGVyIGR1bW15IGFy Z3VtZW50DQogICBhbmQgd2hpY2ggaXMgYSA8ZnVuY3Rpb24tcmVmZXJlbmNlPiB0byBhIHBvaW50 ZXIgZnVuY3Rpb24gaXMNCiAgIHJlZ2FyZGVkIGFzIGEgdmFyaWFibGUgYnkgdGhpcyBwYXJ0IG9m IElTTy9JRUMgMTUzOSBidXQgd2FzDQogICByZWdhcmRlZCBhcyBhbiBleHByZXNzaW9uIGJ5IEZv cnRyYW4gOTU7IGlmIHRoZSB0YXJnZXQgb2YgdGhlDQogICBwb2ludGVyIHJlc3VsdCBpcyBtb2Rp ZmllZCBvdGhlciB0aGFuIHRocm91Z2ggdGhhdCBkdW1teSBhcmd1bWVudA0KICAgZHVyaW5nIGV4 ZWN1dGlvbiBvZiB0aGUgY2FsbGVkIHByb2NlZHVyZSwgdGhlIHByb2dyYW0gZG9lcyBub3QNCiAg IGNvbmZvcm0gdG8gdGhpcyBwYXJ0IG9mIElTTy9JRUMgMTUzOS4iDQoNClNVQk1JVFRFRCBCWTog TWFsY29sbSBDb2hlbg0KDQpISVNUT1JZOiAxMy0yMjggICAgbTIwMCAgRjA4LzAwODkgc3VibWl0 dGVkDQogICAgICAgICAxMy0yMjhyMSAgbTIwMCAgUmV2aXNlZCAtIHBhc3NlZCBieSBKMyBtZWV0 aW5nDQogICAgICAgICAxMy0yNjIgICAgbTIwMSAgUGFzc2VkIGFzIGFtZW5kZWQgYnkgSjMgbGV0 dGVyIGJhbGxvdCAjMjgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgMTMtMjU1cjENCiAgICAg ICAgIE4xOTkwICAgICBtMjAyICBGYWlsZWQgV0c1IGJhbGxvdCBOMTk4OC9uMTk4Nw0KDQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KRnJvbSBOMTk5MDogRjA4LzAwODkNCg0KQ29yYmV0dCByZWFz b24gZm9yIE5PIHZvdGUNCg0KUXVlc3Rpb25zIFExIGFuZCBRMiBhc3N1bWUgdGhhdCBpZiBhIHBv aW50ZXIgYWN0dWFsIGFyZ3VtZW50DQpoYXMgdGhlIGZvcm0gb2YgYW4gZXhwcmVzc2lvbiBhbmQg dGhlIGNvcnJlc3BvbmRpbmcgZHVtbXkNCmFyZ3VtZW50IGlzIGEgbm9ucG9pbnRlciBkdW1teSBh cmd1bWVudCB3aXRob3V0IHRoZSBWQUxVRQ0KYXR0cmlidXRlLCB0aGUgZHVtbXkgYXJndW1lbnQg YmVjb21lcyBhcmd1bWVudCBhc3NvY2lhdGVkDQp3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgdGFyZ2V0 IG9mIHRoZSB2YWx1ZSBvZiB0aGUgcG9pbnRlcg0KYWN0dWFsIGFyZ3VtZW50LiAgT24gdGhlIG5l d3Nncm91cCBjb21wLmxhbmcuZm9ydHJhbiwgSWFuDQpIYXJ2ZXkgcG9pbnRlZCBvdXQgdGhhdCB0 aGUgRm9ydHJhbiBzdGFuZGFyZHMgZG8gbm90IHN1cHBvcnQNCnRoYXQgcHJlbWlzZS4gIFBhcmFn cmFwaCAyIG9mIENsYXVzZSAxMi41LjIuMyBvZiB0aGUNCkZvcnRyYW4gMjAwOCBzdGFuZGFyZCBz dGF0ZXMNCg0KICAgICBJZiBhIG5vbnBvaW50ZXIgZHVtbXkgYXJndW1lbnQgd2l0aG91dCB0aGUg VkFMVUUNCiAgICAgYXR0cmlidXRlIGNvcnJlc3BvbmRzIHRvIGEgcG9pbnRlciBhY3R1YWwgYXJn dW1lbnQNCiAgICAgdGhhdCBpcyBwb2ludGVyIGFzc29jaWF0ZWQgd2l0aCBhIHRhcmdldCwgdGhl DQogICAgIGR1bW15IGFyZ3VtZW50IGJlY29tZXMgYXJndW1lbnQgYXNzb2NpYXRlZCB3aXRoDQog ICAgIHRoYXQgdGFyZ2V0Lg0KDQpQYXJhZ3JhcGggOCBvZiBDbGF1c2UgMTIuNC4xLjIgb2YgdGhl IEZvcnRyYW4gMjAwMyBzdGFuZGFyZA0Kc3RhdGVzDQoNCiAgICAgRXhjZXB0IGluIHJlZmVyZW5j ZXMgdG8gaW50cmluc2ljIGlucXVpcnkgZnVuY3Rpb25zLA0KICAgICBpZiB0aGUgZHVtbXkgYXJn dW1lbnQgaXMgbm90IGEgcG9pbnRlciBhbmQgdGhlDQogICAgIGNvcnJlc3BvbmRpbmcgYWN0dWFs IGFyZ3VtZW50IGlzIGEgcG9pbnRlciwgdGhlDQogICAgIGFjdHVhbCBhcmd1bWVudCBzaGFsbCBi ZSBhc3NvY2lhdGVkIHdpdGggYSB0YXJnZXQNCiAgICAgYW5kIHRoZSBkdW1teSBhcmd1bWVudCBi ZWNvbWVzIGFyZ3VtZW50IGFzc29jaWF0ZWQNCiAgICAgd2l0aCB0aGF0IHRhcmdldC4NCg0KUGFy YWdyYXBoIDYgb2YgQ2xhdXNlIDEyLjQuMS4xIG9mIHRoZSBGb3J0cmFuIDk1IHN0YW5kYXJkDQpz dGF0ZXMNCg0KICAgICBJZiB0aGUgZHVtbXkgYXJndW1lbnQgaXMgbm90IGEgcG9pbnRlciBhbmQg dGhlDQogICAgIGNvcnJlc3BvbmRpbmcgYWN0dWFsIGFyZ3VtZW50IGlzIGEgcG9pbnRlciwgdGhl DQogICAgIGFjdHVhbCBhcmd1bWVudCBzaGFsbCBiZSBjdXJyZW50bHkgYXNzb2NpYXRlZA0KICAg ICB3aXRoIGEgdGFyZ2V0IGFuZCB0aGUgZHVtbXkgYXJndW1lbnQgYmVjb21lcw0KICAgICBhcmd1 bWVudCBhc3NvY2lhdGVkIHdpdGggdGhhdCB0YXJnZXQNCg0KVGhlIHBhcmFncmFwaCBhZGRlZCBi ZXR3ZWVuIHBhcmFncmFwaHMgMyBhbmQgNCBvZg0KQ2xhdXNlIDEyLjQuMS4xIG9mIHRoZSBGb3J0 cmFuIDkwIHN0YW5kYXJkIGJ5DQpDb3JyaWdlbmR1bSAyIHN0YXRlcw0KDQogICAgIElmIHRoZSBk dW1teSBhcmd1bWVudCBpcyBub3QgYSBwb2ludGVyIGFuZCB0aGUNCiAgICAgY29ycmVzcG9uZGlu ZyBhY3R1YWwgYXJndW1lbnQgaXMsIHRoZSBhY3R1YWwNCiAgICAgYXJndW1lbnQgbXVzdCBiZSBj dXJyZW50bHkgYXNzb2NpYXRlZCB3aXRoIGENCiAgICAgdGFyZ2V0IGFuZCB0aGUgZHVtbXkgYXJn dW1lbnQgYmVjb21lcyBhcmd1bWVudA0KICAgICBhc3NvY2lhdGVkIHdpdGggdGhhdCB0YXJnZXQu DQoNClRoYXQgdGV4dCB3YXMgYWRkZWQgYXMgYSByZXN1bHQgb2YgaW50ZXJwcmV0YXRpb24NCkY5 MC8wMDAwMzkuDQoNCkluIHRoZSBleGFtcGxlcyBnaXZlbiBpbiBxdWVzdGlvbnMgUTEgYW5kIFEy LCB0aGUNCmFjdHVhbCBhcmd1bWVudCBmeCgpIGlzIGEgcG9pbnRlciBhY3R1YWwgYXJndW1lbnQN CmNvcnJlc3BvbmRpbmcgdG8gYSBub25wb2ludGVyIGR1bW15IGFyZ3VtZW50Lg0KVGhlcmVmb3Jl LCB0aGUgZHVtbXkgYXJndW1lbnQgYmVjb21lcyBhcmd1bWVudA0KYXNzb2NpYXRlZCB3aXRoIHRo ZSB0YXJnZXQgb2YgdGhlIHBvaW50ZXIgYWN0dWFsDQphcmd1bWVudCwgd2hpY2ggaXMgdGhlIG1v ZHVsZSB2YXJpYWJsZSB4LiAgVGhlIGR1bW15DQphcmd1bWVudCBkb2VzIG5vdCBiZWNvbWUgYXJn dW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZQ0KdmFsdWUgb2YgdGhlIHRhcmdldCBvZiB0aGUgcG9p bnRlci4gIFRodXMsIHRoZXJlIGlzDQpubyBzZW1hbnRpYyBkaWZmZXJlbmNlIGJldHdlZW4gRm9y dHJhbiAyMDA4IGFuZCB0aGUNCnByZXZpb3VzIHN0YW5kYXJkcyBpbiB0aGlzIHJlZ2FyZC4NCg0K VGhlIGFuc3dlcnMgYW5kIGVkaXRzIGdpdmVuIGZvciBxdWVzdGlvbnMgUTEgYW5kIFEyIGFyZQ0K YmFzZWQgb24gdGhlIHNhbWUgcHJlbWlzZSBhcyB0aGUgcXVlc3Rpb25zIHRoZW1zZWx2ZXMNCmFu ZCBzaG91bGQgYmUgcmVqZWN0ZWQuDQoNCkkgYXNrZWQgcGVvcGxlIHRvIGNvbXBpbGUgYW5kIHJ1 biB0aGUgZXhhbXBsZSBwcm9ncmFtcw0KZ2l2ZW4gaW4gcXVlc3Rpb25zIFExIGFuZCBRMiBhbmQg dmFyaWF0aW9ucyBvZiB0aGVtDQp1c2luZyBhIHZhcmlldHkgb2YgY29tcGlsZXJzLiAgSW4gbW9z dCwgYnV0IG5vdCBhbGwsDQpjYXNlcywgdGhlIHJlc3VsdHMgd2VyZSBjb25zaXN0ZW50IHdpdGgg dGhlIHNlbWFudGljcw0Kc3RhdGVkIGluIHRoZSBGb3J0cmFuIHN0YW5kYXJkcywgbm90IHdpdGgg dGhlIHNlbWFudGljcw0KYXNzdW1lZCBieSBxdWVzdGlvbnMgUTEgYW5kIFEyLg0KDQpRdWVzdGlv bnMgUTMgYW5kIFE0IGFyZSBjb25zaXN0ZW50IHdpdGggdGhlIHN0YW5kYXJkcywNCmFzIGFyZSB0 aGUgY29ycmVzcG9uZGluZyBhbnN3ZXJzIGFuZCBlZGl0cywgYnV0IEkgZG8gbm90DQpjYXJlIGZv ciB0aGUgbmF0dXJlIG9mIHRoZSBjaGFuZ2VzIHRoYXQgd2lsbCByZXN1bHQgaWYNCmludGVycHJl dGF0aW9uIEYwOC8wMDc1IGlzIHBhc3NlZC4gIEkgdGhpbmsgY2hhbmdpbmcgdGhlDQpsYW5ndWFn ZSBzbyB0aGF0IHRoZSBmb3JtIG9mIGEgZnVuY3Rpb24gcmVmZXJlbmNlDQpkZXRlcm1pbmVzIGl0 cyBtZWFuaW5nIGlzIGEgbWlzdGFrZS4NCg0KTG9uZyBjb21tZW50Og0KDQpUd2ljZSBpbiB0aGUg ZWRpdHMgYXBwZWFycyAiLi4uYSA8ZnVuY3Rpb24tcmVmZXJlbmNlPiB0byBhDQpwb2ludGVyIGZ1 bmN0aW9uIGlzIHJlZ2FyZGVkIGFzIGEgdmFyaWFibGUuLi4iLiBTaG91bGQgdGhpcw0KYmUgYSAi ZGF0YSBwb2ludGVyIGZ1bmN0aW9uIj8NCg0KU255ZGVyIGNvbW1lbnQ6DQoNClRoZSB0ZXJtICJw b2ludGVyIGZ1bmN0aW9uIiBpcyBub3QgdXNlZCBhcyBhIG5vdW4sDQphbHRob3VnaCAibm9ucG9p bnRlciBmdW5jdGlvbiIgaXMgc28gdXNlZCBhdCBbNDU0OjM2XS4NCkkgaGF2ZSBhIHNsaWdodCBw cmVmZXJlbmNlIHRoYXQgInBvaW50ZXIgZnVuY3Rpb24iIGluDQp0aGUgZWRpdCBmb3IgWzI0OjEx K10gYmUgcmVwbGFjZWQgYnkgImZ1bmN0aW9uIHRoYXQNCnJldHVybnMgYSBwb2ludGVyIHJlc3Vs dCIgaW4gYm90aCBwYXJhZ3JhcGhzLiAgVGhlDQpzYW1lIGNoYW5nZSBvdWdodCB0byBiZSBtYWRl IGluIHRoZSBlZGl0cyBmb3IgWzI0OjI3K10NCmFuZCBbMjU6NitdDQoNCkEgcGFyYWxsZWwgY2hh bmdlIG91Z2h0IHRvIGJlIG1hZGUgYXQgWzQ1NDozNl0sIGJ1dA0KdGhhdCBjYW4gYmUgZG9uZSBl ZGl0b3JpYWxseSByYXRoZXIgdGhhbiB3aXRoaW4gdGhpcw0KaW50ZXJwcmV0cmF0aW9uLg0KDQpE ZWNpc2lvbiBvZiAvSU5URVJQOiBGYWlsZWQuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6 IEYwOC8wMDkwDQpUSVRMRTogCVdoYXQgcmVzdHJpY3Rpb25zIGFwcGx5IHRvIGluaXRpYWxpemF0 aW9uIGFuZCBQQVJBTUVURVI/DQpLRVlXT1JEUzogUEFSQU1FVEVSLCBpbml0aWFsaXphdGlvbiwg Y29uZm9ybWFibGUsIHR5cGUgY29udmVyc2lvbg0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRV UzogSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0KQ29uc2lkZXIgdGhlIHBy b2dyYW1zDQoNCiAgUHJvZ3JhbSBtMjAwYzNfMQ0KICAgIEludGVnZXIgOjogYSgxMCwxMCkNCiAg ICBQYXJhbWV0ZXIgKGEgPSBbIChpLGk9MSwxMDApIF0gKQ0KICAgIFByaW50ICosYQ0KICBFbmQg UHJvZ3JhbQ0KDQogIFByb2dyYW0gbTIwMGMzXzINCiAgICBQYXJhbWV0ZXIgKGIgPSAnb2snKQ0K ICAgIFByaW50ICosYg0KICBFbmQgUHJvZ3JhbQ0KDQogIFByb2dyYW0gbTIwMGMzXzMNCiAgICBJ bnRlZ2VyIDo6IHgoMjMpID0gWyAxIF0NCiAgICBQcmludCAqLHgNCiAgRW5kIFByb2dyYW0NCg0K ICBQcm9ncmFtIG0yMDBjM180DQogICAgSW50ZWdlciA6OiB5ID0gJ29rJw0KICAgIFByaW50ICos eQ0KICBFbmQgUHJvZ3JhbQ0KDQpUaGUgUEFSQU1FVEVSIHN0YXRlbWVudCBmb3IgdGhlIG5hbWVk IGNvbnN0YW50IEEgaGFzIGFuIGV4cHJlc3Npb24NCndob3NlIHNoYXBlIGRvZXMgbm90IGNvbmZv cm0gd2l0aCB0aGF0IG9mIEEuICBUaGUgUEFSQU1FVEVSIHN0YXRlbWVudA0KZm9yIHRoZSBuYW1l ZCBjb25zdGFudCBCIGhhcyBhbiBleHByZXNzaW9uIHdob3NlIHR5cGUgZG9lcyBub3QgY29uZm9y bQ0KdG8gdGhhdCBvZiBCLiAgVGhlIDxpbml0aWFsaXphdGlvbj4gZm9yIFggaXMgbm90IGNvbmZv cm1hYmxlIGluIHNoYXBlLg0KVGhlIDxpbml0aWFsaXphdGlvbj4gZm9yIFkgaXMgbm90IGNvbmZv cm1hYmxlIGluIHR5cGUuDQoNClRoZXJlIGFwcGVhcnMgdG8gYmUgbm8gcmVxdWlyZW1lbnQgZWl0 aGVyIGZvciBzaGFwZSBvciB0eXBlDQpjb25mb3JtYW5jZSwgaW4gRm9ydHJhbiAyMDA4IG9yIGlu IHByZXZpb3VzIEZvcnRyYW4gc3RhbmRhcmRzLCBleGNlcHQNCmZvciBpbml0aWFsaXppbmcgZGF0 YSBwb2ludGVycy4NCg0KUTEuIERvIGFueSBvZiB0aGVzZSBwcm9ncmFtcyBjb25mb3JtIHRvIEZv cnRyYW4gMjAwOD8NCg0KUTIuIElmIHRoZXJlIGlzIG1lYW50IHRvIGJlIGEgcmVxdWlyZW1lbnQg Zm9yIHRoZSBzaGFwZXMgdG8gY29uZm9ybSBvcg0KICAgIGZvciB0aGUgdHlwZXMgdG8gYmUgY29u dmVydGlibGUsIHNob3VsZCB0aGlzIG5vdCBiZSBhIGNvbnN0cmFpbnQ/DQoNCkFOU1dFUjoNCg0K QTEuIE5vLCB0aGVzZSBwcm9ncmFtcyBkbyBub3QgY29uZm9ybSB0byBGb3J0cmFuIDIwMDgsIGFz IG5vDQogICAgaW50ZXJwcmV0YXRpb24gaXMgZXN0YWJsaXNoZWQgZm9yIGFueSBvZiB0aGVtLiAg RWRpdHMgYXJlDQogICAgcHJvdmlkZWQgdG8gY2xhcmlmeSB0aGlzLg0KDQpBMi4gVGhpcyBpcyBu b3QgYSBjb25zdHJhaW50LiAgQSBmdXR1cmUgcmV2aXNpb24gb2YgRm9ydHJhbiBtaWdodA0KICAg IGNob29zZSB0byBtYW5kYXRlIGRpYWdub3NpcyBvZiB0aGVzZSBlcnJvcnMuDQoNCkVESVQgdG8g MTAtMDA3cjE6DQoNCls4ODozMCtdIDUuMi4xIFN5bnRheCwgSW5zZXJ0IG5ldyBwYXJhZ3JhcGgg YXQgZW5kIG9mIHN1YmNsYXVzZQ0KICAiSWYgPGluaXRpYWxpemF0aW9uPiBhcHBlYXJzIGZvciBh IG5vbnBvaW50ZXIgZW50aXR5LA0KICAgLSBpdHMgdHlwZSBhbmQgdHlwZSBwYXJhbWV0ZXJzIHNo YWxsIGNvbmZvcm0gYXMgc3BlY2lmaWVkIGZvcg0KICAgICBpbnRyaW5zaWMgYXNzaWdubWVudCAo Ny4yLjEuMik7DQogICAtIGlmIHRoZSBlbnRpdHkgaGFzIGltcGxpZWQgc2hhcGUsIHRoZSByYW5r IG9mIDxpbml0aWFsaXphdGlvbj4NCiAgICAgc2hhbGwgYmUgdGhlIHNhbWUgYXMgdGhlIHJhbmsg b2YgdGhlIGVudGl0eTsNCiAgIC0gaWYgdGhlIGVudGl0eSBkb2VzIG5vdCBoYXZlIGltcGxpZWQg c2hhcGUsIDxpbml0aWFsaXphdGlvbj4gc2hhbGwNCiAgICAgZWl0aGVyIGJlIHNjYWxhciBvciBo YXZlIHRoZSBzYW1lIHNoYXBlIGFzIHRoZSBlbnRpdHkuIi4NCg0KWzEwNzoxMitdIDUuNC4xMSBQ QVJBTUVURVIgc3RhdGVtZW50LCBhZnRlciBwMiwgSW5zZXJ0IG5ldyBwYXJhZ3JhcGgNCiAgIlRo ZSBjb25zdGFudCBleHByZXNzaW9uIHRoYXQgY29ycmVzcG9uZHMgdG8gYSBuYW1lZCBjb25zdGFu dCBzaGFsbA0KICAgaGF2ZSB0eXBlIGFuZCB0eXBlIHBhcmFtZXRlcnMgdGhhdCBjb25mb3JtIHdp dGggdGhlIG5hbWVkIGNvbnN0YW50DQogICBhcyBzcGVjaWZpZWQgZm9yIGludHJpbnNpYyBhc3Np Z25tZW50ICg3LjIuMS4yKS4gIElmIHRoZSBuYW1lZA0KICAgY29uc3RhbnQgaGFzIGltcGxpZWQg c2hhcGUsIHRoZSBleHByZXNzaW9uIHNoYWxsIGhhdmUgdGhlIHNhbWUgcmFuaw0KICAgYXMgdGhl IG5hbWVkIGNvbnN0YW50OyBvdGhlcndpc2UsIHRoZSBleHByZXNzaW9uIHNoYWxsIGVpdGhlciBi ZQ0KICAgc2NhbGFyIG9yIGhhdmUgdGhlIHNhbWUgcmFuayBhcyB0aGUgbmFtZWQgY29uc3RhbnQu Ii4NCg0KU1VCTUlUVEVEIEJZOiBNYWxjb2xtIENvaGVuDQoNCkhJU1RPUlk6IDEzLTIyOSAgICBt MjAwICBGMDgvMDA5MCBzdWJtaXR0ZWQgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAg MTMtMjYyICAgIG0yMDEgIFBhc3NlZCBKMyBsZXR0ZXIgYmFsbG90ICMyOCAxMy0yNTVyMQ0KICAg ICAgICAgTjE5OTAgICAgIG0yMDIgIFBhc3NlZCBieSBXRzUgYmFsbG90IDYgTjE5ODcvODgvOTAN CiAgICAgICAgIE4yMDAyICAgICBtMjAzICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMDkxDQpUSVRMRTogRGVyaXZlZCB0eXBlIHdpdGgg bm8gY29tcG9uZW50cw0KS0VZV09SRDogRGVyaXZlZCB0eXBlDQpERUZFQ1QgVFlQRTogRXJyYXR1 bQ0KU1RBVFVTOiBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNClFVRVNUSU9OOg0KDQpRMS4gQ29u c2lkZXINCg0KICBQcm9ncmFtIG03XzENCiAgVHlwZSBlbXB0eQ0KICBFbmQgVHlwZQ0KICBUeXBl KGVtcHR5KSxUYXJnZXQgOjogeA0KICBUeXBlKGVtcHR5KSxQb2ludGVyIDo6IHkNCiAgeSA9PiB4 DQogIFByaW50ICosQXNzb2NpYXRlZCh5LHgpDQogIEVuZA0KDQpJcyB0aGlzIHByb2dyYW0gc3Rh bmRhcmQtY29uZm9ybWluZywgYW5kIGRvZXMgaXQgcHJpbnQgVCBvciBGPw0KDQpBY2NvcmRpbmcg dG8gMTYuNS4zLjJwMiwNCiAgaXRlbSAxICBpcyBkZWZhdWx0IGludGVnZXIgZXRjLCBOL0ENCiAg aXRlbSAyIGlzIGRvdWJsZSBwcmVjaXNpb24gZXRjLCBOL0ENCiAgaXRlbSAzIGlzIGRlZmF1bHQg Y2hhcmFjdGVyLCBOL0ENCiAgaXRlbSA0IGlzIEMgY2hhcmFjdGVyLCBOL0ENCiAgaXRlbSA1IGlz IFNFUVVFTkNFIHR5cGUsIE4vQQ0KDQpBY2NvcmRpbmcgdG8gaXRlbSAoNiksDQogICJhIG5vbnBv aW50ZXIgc2NhbGFyIG9iamVjdCBvZiBhbnkgdHlwZSBub3Qgc3BlY2lmaWVkIGluIGl0ZW1zDQog ICAoMSktKDUpIG9jY3VwaWVzIGEgc2luZ2xlIHVuc3BlY2lmaWVkIHN0b3JhZ2UgdW5pdCB0aGF0 IGlzDQogICBkaWZmZXJlbnQgW2Zyb20gZXZlcnl0aGluZyBlbHNlXSINCg0KSWYgdGhhdCBhbmFs eXNpcyBpcyBjb3JyZWN0LCBYIG9jY3VwaWVzIGEgc2luZ2xlIHVuc3BlY2lmaWVkIHN0b3JhZ2UN CnVuaXQsIG5vdCB6ZXJvIHN0b3JhZ2UgdW5pdHMsIGFuZCB0aGVyZWZvcmUgVCBzaG91bGQgYmUg cHJpbnRlZC4NCg0KUTIuIENvbnNpZGVyDQoNCiAgUHJvZ3JhbSBtN18yDQogIFR5cGUgc2VtcHR5 DQogICAgU2VxdWVuY2UNCiAgRW5kIFR5cGUNCiAgVHlwZShzZW1wdHkpLFRhcmdldCA6OiB4DQog IFR5cGUoc2VtcHR5KSxQb2ludGVyIDo6IHkNCiAgeSA9PiB4DQogIFByaW50ICosQXNzb2NpYXRl ZCh5LHgpDQogIEVuZA0KDQpJcyB0aGlzIHByb2dyYW0gc3RhbmRhcmQtY29uZm9ybWluZywgYW5k IGRvZXMgaXQgcHJpbnQgVCBvciBGPw0KDQpOb3cgWCBmYWxscyBpbnRvIGl0ZW0gNSwgd2hpY2gg bWFrZXMgaXQgYSAic2VxdWVuY2Ugb2Ygc3RvcmFnZQ0Kc2VxdWVuY2VzIGNvcnJlc3BvbmRpbmcg dG8gdGhlIHNlcXVlbmNlIG9mIGl0cyB1bHRpbWF0ZSBjb21wb25lbnRzIjsNCnRoZXJlIGFyZSBu byB1bHRpbWF0ZSBjb21wb25lbnRzLCB0aGlzIG1ha2VzIGl0IGEgemVyby1zaXplZCBzdG9yYWdl DQpzZXF1ZW5jZSBhbmQgdGhlcmVmb3JlIEYgc2hvdWxkIGJlIHByaW50ZWQuDQoNClRoaXMgZG9l cyBub3Qgc2VlbSB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIGFwcGFyZW50IGFuc3dlciB0byBR MS4NCg0KUTMuIENvbnNpZGVyDQoNCiAgUHJvZ3JhbSBtN18zDQogIFR5cGUgbnVtZXJpY19lbXB0 eQ0KICAgIFNlcXVlbmNlDQogIEVuZCBUeXBlDQogIFR5cGUgY2hhcmFjdGVyX2VtcHR5DQogICAg U2VxdWVuY2UNCiAgRW5kIFR5cGUNCiAgVHlwZShudW1lcmljX2VtcHR5KSBhDQogIEludGVnZXIg Yg0KICBDaGFyYWN0ZXIgYw0KICBUeXBlKGNoYXJhY3Rlcl9lbXB0eSkgZA0KICBFcXVpdmFsZW5j ZShhLGIpICAgICAgICAgICAgICEgRTEuDQogIEVxdWl2YWxlbmNlKGMsZCkgICAgICAgICAgICAg ISBFMi4NCiAgRW5kDQoNCklzIHRoaXMgcHJvZ3JhbSBjb25mb3JtaW5nPw0KDQpBY2NvcmRpbmcg dG8gdGhlIGRlZmluaXRpb25zIGluIDQuNS4yLjMsIE5VTUVSSUNfRU1QVFkgaXMgYSBudW1lcmlj DQpzZXF1ZW5jZSB0eXBlIGFuZCB0aGVyZWZvcmUgb25lIG1pZ2h0IGV4cGVjdCB0byBiZSBhYmxl IHRvIEVRVUlWQUxFTkNFDQppdCB0byBhbiBJTlRFR0VSLiAgU2ltaWxhcmx5LCBDSEFSQUNURVJf RU1QVFkgaXMgYSBjaGFyYWN0ZXIgc2VxdWVuY2UNCnR5cGUgYW5kIHRoZXJlZm9yZSBvbmUgbWln aHQgZXhwZWN0IHRvIGJlIGFibGUgdG8gRVFVSVZBTEVOQ0UgaXQgdG8gYQ0KQ0hBUkFDVEVSLg0K DQpIb3dldmVyLCBOVU1FUklDX0VNUFRZIGlzIGNsZWFybHkgYWxzbyBhIGNoYXJhY3RlciBzZXF1 ZW5jZSB0eXBlLCBhbmQNCnRoZXJlZm9yZSBzdGF0ZW1lbnQgRTEgdmlvbGF0ZXMgQzU5MiBiZWNh dXNlIEIgaXMgbm90IGNoYXJhY3RlciBvcg0KY2hhcmFjdGVyIHNlcXVlbmNlLg0KDQpTaW1pbGFy bHksIENIQVJBQ1RFUl9FTVBUWSBpcyBjbGVhcmx5IGFsc28gYSBudW1lcmljIHNlcXVlbmNlIHR5 cGUsDQphbmQgdGhlcmVmb3JlIHN0YXRlbWVudCBFMiB2aW9sYXRlcyBDNTkxLg0KDQpJdCBzZWVt cyB2ZXJ5IHN0cmFuZ2UgdG8gaGF2ZSBhIHR5cGUgdGhhdCBpcyBzaW11bHRhbmVvdXNseSBudW1l cmljDQphbmQgY2hhcmFjdGVyIHNlcXVlbmNlIHR5cGUuDQoNClE0LiBDb25zaWRlcg0KDQogIFBy b2dyYW0gbTdfNA0KICBUeXBlIG51bWVyaWNfZW1wdHlfMg0KICAgIFNlcXVlbmNlDQogICAgUmVh bCBjKDApDQogIEVuZCBUeXBlDQogIFR5cGUgY2hhcmFjdGVyX2VtcHR5XzINCiAgICBTZXF1ZW5j ZQ0KICAgIENoYXJhY3RlcigwKSBjDQogIEVuZCBUeXBlDQogIFR5cGUobnVtZXJpY19lbXB0eV8y KSBhDQogIEludGVnZXIgYg0KICBDaGFyYWN0ZXIgYw0KICBUeXBlKGNoYXJhY3Rlcl9lbXB0eV8y KSBkDQogIEVxdWl2YWxlbmNlKGEsYikgICAgICAgICAgICAgISBFMy4NCiAgRXF1aXZhbGVuY2Uo YyxkKSAgICAgICAgICAgICAhIEU0Lg0KICBFbmQNCg0KRG9lcyB0aGlzIHByb2dyYW0gY29uZm9y bT8NCg0KQWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9ucyBpbiA0LjUuMi4zLCBOVU1FUklDX0VN UFRZXzIgaXMgYSBudW1lcmljDQpzZXF1ZW5jZSB0eXBlIGFuZCBub3QgYSBjaGFyYWN0ZXIgc2Vx dWVuY2UgdHlwZSwgYW5kIGNvbnZlcnNlbHkNCkNIQVJBQ1RFUl9FTVBUWV8yIGlzIGEgY2hhcmFj dGVyIHNlcXVlbmNlIHR5cGUgYW5kIG5vdCBhIG51bWVyaWMNCnNlcXVlbmNlIHR5cGUsIGFuZCB0 aGVyZWZvcmUgdGhlIGNvbnN0cmFpbnRzIGZvciB0aGUgc3RhdGVtZW50cyBhdCBFMw0KYW5kIEU0 IGFyZSBub3QgdmlvbGF0ZWQuDQoNClRodXMgdGhpcyBhcHBlYXJzIHRvIGJlIGNvbmZvcm1pbmcs IGluIGNvbnRyYWRpY3Rpb24gdG8gdGhlIGV4YW1wbGUgaW4NClEzLCBldmVuIHRob3VnaCB0aGUg c3RvcmFnZSBzZXF1ZW5jZSBvZiBOVU1FUklDX0VNUFRZLA0KTlVNRVJJQ19FTVBUWV8yLCBDSEFS QUNURVJfRU1QVFksIGFuZCBDSEFSQUNURVJfRU1QVFlfMiBhcmUgYWxsIHRoZQ0Kc2FtZS4NCg0K VGhpcyBkb2VzIG5vdCBsb29rIHZlcnkgY29uc2lzdGVudCB3aXRoIHRoZSBzaXR1YXRpb24gaW4g UTMuDQoNCkFOU1dFUjoNCg0KQTEuICBUaGUgcHJvZ3JhbSBpcyBjb25mb3JtaW5nIGFuZCBwcmlu dHMgVC4NCg0KQTIuICBUaGUgcHJvZ3JhbSB3YXMgbm90IGludGVuZGVkIHRvIGNvbmZvcm07IFNF UVVFTkNFIG1ha2VzIG5vIHNlbnNlDQogICAgIHdoZW4gdGhlcmUgYXJlIG5vIGNvbXBvbmVudHMu ICBBbiBlZGl0IGlzIG5lZWRlZCB0byBjb3JyZWN0IHRoaXMuDQoNCkEzLiAgVGhlIHByb2dyYW0g ZG9lcyBub3QgY29uZm9ybSBhcyBhIHNlcXVlbmNlIHR5cGUgbXVzdCBoYXZlIGF0DQogICAgIGxl YXN0IG9uZSBjb21wb25lbnQuDQoNCkE0LiAgVGhlIHByb2dyYW0gaXMgY29uZm9ybWluZy4gIFRo ZSBhcHBhcmVudCBkZXNpZ24gaW5jb25zaXN0ZW5jeSBpcw0KICAgICBub3QgYW4gZXJyb3IgaW4g dGhlIHN0YW5kYXJkLg0KDQpFRElUIHRvIDEwLTAwN3IxOg0KDQpbNjI6MTldIDQuNS4yLjMsIGlu IGNvbnN0cmFpbnQgQzQzNg0KICAgICAgICBBZnRlciAiYXBwZWFycywiIGluc2VydCAidGhlIHR5 cGUgc2hhbGwgaGF2ZSBhdCBsZWFzdCBvbmUNCiAgICAgICAgICAgICAgIGNvbXBvbmVudCwiLg0K DQpTVUJNSVRURUQgQlk6IE1hbGNvbG0gQ29oZW4NCg0KSElTVE9SWTogMTMtMjY2ICAgIG0yMDEg IEYwOC8wMDkxIHN1Ym1pdHRlZA0KICAgICAgICAgMTMtMjY2cjEgIG0yMDEgIFJldmlzZWQgLSBw YXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTMtMzEzICAgIG0yMDIgIFBhc3NlZCBhcyBh bWVuZGVkIGJ5IEozIGxldHRlciBiYWxsb3QgMTMtMjk3DQogICAgICAgICBOMTk5NCAgICAgbTIw MiAgUGFzc2VkIGJ5IFdHNSBiYWxsb3QgNyBOMTk5MS85Mi85NA0KICAgICAgICAgTjIwMDIgICAg IG0yMDMgIEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6 IEYwOC8wMDkyDQpUSVRMRTogRGVyaXZlZCB0eXBlIHBhcmFtZXRlciByZXF1aXJlbWVudHMNCktF WVdPUkQ6IERlcml2ZWQgdHlwZSBwYXJhbWV0ZXINCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFU VVM6IEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KUVVFU1RJT046DQoNCkNvbnNpZGVyDQoNCiAg VHlwZSB0MShhLGEpDQogICAgSW50ZWdlcixLaW5kIDo6IGENCiAgICBJbnRlZ2VyLExlbiA6OiBh DQogIEVuZCBUeXBlDQogIFR5cGUgdDIoYSkNCiAgICBJbnRlZ2VyLEtpbmQgOjogYSxhLGENCiAg RW5kIFR5cGUNCg0KVGhlc2UgdHlwZSBkZWZpbml0aW9uIGFwcGVhcnMgdG8gdmFsaWQsIGluIHRo YXQNCihhKSB0aGVyZSBpcyBubyByZXF1aXJlbWVudCB0aGF0IGEgdHlwZSBwYXJhbWV0ZXIgYXBw ZWFycyBvbmx5IG9uY2UgaW4NCiAgICB0aGUgPHR5cGUtcGFyYW0tbmFtZS1saXN0PjsNCihiKSB0 aGVyZSBpcyBubyByZXF1aXJlbWVudCB0aGF0IGEgdHlwZSBwYXJhbWV0ZXIgYXBwZWFycyBpbiBv bmx5IG9uZQ0KICAgIDx0eXBlLXBhcmFtLWRlZi1zdG10PiwgYW5kIG9ubHkgb25jZS4NCg0KV2Vy ZSB0aGVzZSBpbnRlbmRlZCB0byBiZSB2YWxpZD8gIFdoYXQgaXMgdGhlaXIgbWVhbmluZz8NCg0K QU5TV0VSOg0KDQpUaGVzZSB3ZXJlIG5vdCBpbnRlbmRlZCB0byBiZSB2YWxpZCwgYW5kIHRoZXkg YXJlIG5vdCB2YWxpZCBiZWNhdXNlDQp0aGUgc3RhbmRhcmQgZG9lcyBub3QgZXN0YWJsaXNoIGFu IGludGVycHJldGF0aW9uIGZvciB0aGVtLiAgVW5pcXVlDQpuYW1lcyBmb3IgdHlwZSBwYXJhbWV0 ZXJzIGNhbiBwb3NzaWJseSBiZSBkZWR1Y2VkIGZyb20gdGhlIHNjb3BpbmcNCnJ1bGVzLg0KDQpF ZGl0cyBhcmUgc3VwcGxpZWQgdG8gbWFrZSB0aGUgcmVxdWlyZW1lbnRzIGV4cGxpY2l0Lg0KDQpF RElUUyB0byAxMC0wMDdyMToNCg0KWzYxOjE5K10gSW4gNC41LjIuMSwgYWZ0ZXIgQzQyNyBpbnNl cnQgbmV3IGNvbnN0cmFpbnQNCiAgIkM0MjdhIChSNDI2KSBUaGUgc2FtZSA8dHlwZS1wYXJhbS1u YW1lPiBzaGFsbCBub3QgYXBwZWFyIG1vcmUgdGhhbg0KICAgICAgICAgb25jZSBpbiBhIDxkZXJp dmVkLXR5cGUtc3RtdD4uIg0Ke1JlcXVpcmUgdW5pcXVlIG5hbWVzIGZvciB0eXBlIHBhcmFtZXRl cnMufQ0KDQpbNjQ6OF0gSW4gNC41LjMuMSwgQzQzOCwgYWZ0ZXIgInNoYWxsIGFwcGVhciIgaW5z ZXJ0ICJleGFjdGx5IG9uY2UiLg0Ke0ZvcmJpZCBtdWx0aXBsZSBkZWNsYXJhdGlvbnMgb2YgYSB0 eXBlIHBhcmFtZXRlciwgd2hldGhlciBpbiB0aGUgc2FtZQ0KIDx0eXBlLXBhcmFtLWRlZi1zdG10 PiBvciBtb3JlIHRoYW4gb25lLn0NCg0KU1VCTUlUVEVEIEJZOiBNYWxjb2xtIENvaGVuDQoNCkhJ U1RPUlk6IDEzLTI2NyAgICBtMjAxICBGMDgvMDA5MiBzdWJtaXR0ZWQgLSBwYXNzZWQgYnkgSjMg bWVldGluZw0KICAgICAgICAgMTMtMzEzICAgIG0yMDIgIFBhc3NlZCBhcyBhbWVuZGVkIGJ5IEoz IGxldHRlciBiYWxsb3QgMTMtMjk3DQogICAgICAgICBOMTk5NCAgICAgbTIwMiAgUGFzc2VkIGJ5 IFdHNSBiYWxsb3QgNyBOMTk5MS85Mi85NA0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIEluIEYy MDA4IENvcnJpZ2VuZHVtIDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMDkzDQpU SVRMRTogUHJvY2VzcyBleGl0IHN0YXR1cyBhbmQgZXJyb3IgdGVybWluYXRpb24NCktFWVdPUkQ6 IEVSUk9SIFNUT1ANCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEluIEYyMDA4IENvcnJp Z2VuZHVtIDMNCg0KUVVFU1RJT046DQoNCk1hbnkgb3BlcmF0aW5nIHN5c3RlbXMgdG9kYXkgKGUu Zy4gUG9zaXgtcmVsYXRlZCBvbmVzKSB1c2UgYSBwcm9jZXNzDQpleGl0IHN0YXR1cyBvZiB6ZXJv IHRvIGluZGljYXRlIHN1Y2Nlc3NmdWwgZXhlY3V0aW9uLCB3aGVyZWFzIG5vbnplcm8NCmluZGlj YXRlcyBhbiBlcnJvci4gIChPY2Nhc2lvbmFsbHkgbm9uemVybyB2YWx1ZXMsIGUuZy4gMSwgYWxz bw0KaW5kaWNhdGUgc3VjY2Vzcy4pDQoNCkZvcnRyYW4gU1RPUCBhbmQgRVJST1IgU1RPUCB3aXRo IGFuIGludGVnZXIgPHN0b3AtY29kZT4gYXJlDQpyZWNvbW1lbmRlZCB0byB1c2UgdGhlIDxzdG9w LWNvZGU+IGFzIHRoZSBleGl0IHN0YXR1cy4gIFRoZSBTVE9QDQpzdGF0ZW1lbnQgd2l0aG91dCBh biBpbnRlZ2VyIDxzdG9wLWNvZGU+IGlzIHJlY29tbWVuZGVkIHRvIGhhdmUgYW4NCmV4aXQgc3Rh dHVzIG9mIHplcm87IHRoaXMgY29uZm9ybXMgdG8gY29tbW9uIHByYWN0aWNlIHNpbmNlIFNUT1AN CmluaXRpYXRlcyBub3JtYWwgdGVybWluYXRpb24uDQoNClRoZSBzdGFuZGFyZCBpcyBzaWxlbnQg b24gdGhlIGVmZmVjdCBvZiBlcnJvciB0ZXJtaW5hdGlvbiwgZXhjZXB0IGluDQp0aGUgY2FzZSBv ZiBhbiBFUlJPUiBTVE9QIChzYW5zIGludGVnZXIgPHN0b3AtY29kZT4pIHdoaWNoIGlzDQp1bmV4 cGVjdGVkbHkgcmVjb21tZW5kZWQgdG8gYWxzbyByZXR1cm4gYW4gZXhpdCBzdGF0dXMgb2YgemVy by4NCg0KUTEuIElzIHRoaXMgaW50ZW50aW9uYWw/ICBTaG91bGQgdGhlIGV4aXQgY29kZSBmb3Ig RVJST1IgU1RPUCBub3QgaGF2ZQ0KICAgIGJlZW4gcmVjb21tZW5kZWQgdG8gYmUgbm9uemVybz8N Cg0KUTIuIFNob3VsZCB0aGUgcmVjb21tZW5kYXRpb24gZm9yIGFuIEVSUk9SIFNUT1Agbm90IGFs c28gYXBwbHkgdG8NCiAgICBlcnJvciB0ZXJtaW5hdGlvbiBieSBvdGhlciBjYXVzZXM/DQoNCkFO U1dFUjoNCg0KQTEuIEl0IHdhcyBub3QgaW50ZW5kZWQgdG8gcmVjb21tZW5kIHJldHVybmluZyAi c3VjY2VzcyIgZm9yIGVycm9yDQogICAgdGVybWluYXRpb24uICBBbiBlZGl0IGlzIHN1cHBsaWVk IHRvIGNvcnJlY3QgdGhpcy4NCg0KQTIuIFllcywgdGhlIHJlY29tbWVuZGF0aW9uIGZvciBhbiBF UlJPUiBTVE9QIHdpdGhvdXQgYW4gaW50ZWdlcg0KICAgIDxzdG9wLWNvZGU+IHNob3VsZCBhbHNv IGFwcGx5IHRvIG90aGVyIG1lYW5zIG9mIHN0YW5kYXJkLWRlZmluZWQNCiAgICBlcnJvciB0ZXJt aW5hdGlvbi4gIEFuIGVkaXQgaXMgc3VwcGxpZWQgdG8gY29ycmVjdCB0aGlzIG9taXNzaW9uLg0K DQpFRElUIHRvIDEwLTAwN3IxOg0KDQpbMzM6MzYrXSAyLjMuNSwgYmVmb3JlIE5vdGUgMi43LCBp bnNlcnQgbmV3IG5vdGUNCiAgIk5PVEUgMi42YQ0KICAgSWYgdGhlIHByb2Nlc3NvciBzdXBwb3J0 cyB0aGUgY29uY2VwdCBvZiBhIHByb2Nlc3MgZXhpdCBzdGF0dXMsIGl0DQogICBpcyByZWNvbW1l bmRlZCB0aGF0IGVycm9yIHRlcm1pbmF0aW9uIGluaXRpYXRlZCBvdGhlciB0aGFuIGJ5IGFuDQog ICBFUlJPUiBTVE9QIHN0YXRlbWVudCBzdXBwbGllcyBhIHByb2Nlc3Nvci1kZXBlbmRlbnQgbm9u emVybyB2YWx1ZQ0KICAgYXMgdGhlIHByb2Nlc3MgZXhpdCBzdGF0dXMuIg0Ke1JlY29tbWVuZGF0 aW9uIGZvciBlcnJvciB0ZXJtaW5hdGlvbiBvdGhlciB0aGFuIGJ5IEVSUk9SIFNUT1AufQ0KDQpb MTg4OjEwKzEwXSBJbiA4LjQsIE5vdGUgOC4zMCwNCiAgICAgICAgICAgIEJlZm9yZSAiaXMgb2Yg dHlwZSBjaGFyYWN0ZXIgb3IgZG9lcyBub3QgYXBwZWFyIg0KICAgICAgICAgICAgSW5zZXJ0ICJp biBhIFNUT1Agc3RhdGVtZW50Ii4NCntMaW1pdCB6ZXJvIHJlY29tbWVuZGF0aW9uIHRvIFNUT1As IG5vdCBFUlJPUiBTVE9QLn0NCg0KWzE4ODoxMCsxMStdIEF0IHRoZSBlbmQgb2YgTm90ZSA4LjMw LCBpbnNlcnQgYSBuZXcgcGFyYWdyYXBoDQogICJJZiB0aGUgPHN0b3AtY29kZT4gaW4gYW4gRVJS T1IgU1RPUCBzdGF0ZW1lbnQgaXMgb2YgdHlwZSBjaGFyYWN0ZXINCiAgIG9yIGRvZXMgbm90IGFw cGVhciwgaXQgaXMgcmVjb21tZW5kZWQgdGhhdCBhIHByb2Nlc3Nvci1kZXBlbmRlbnQNCiAgIG5v bnplcm8gdmFsdWUgYmUgc3VwcGxpZWQgYXMgdGhlIHByb2Nlc3MgZXhpdCBzdGF0dXMsIGlmIHRo ZQ0KICAgcHJvY2Vzc29yIHN1cHBvcnRzIHRoYXQgY29uY2VwdC4iDQp7U3BlY2lmeSBub256ZXJv IGV4aXQgZm9yIEVSUk9SIFNUT1AufQ0KDQpbNDU5OjE3K10gQWZ0ZXIgdGhlIGJ1bGxldCBpdGVt IJNob3cgc29vbiBhbiBpbWFnZSB0ZXJtaW5hdGVzIGlmDQogIGFub3RoZXIgaW1hZ2UgaW5pdGlh dGVzIGVycm9yIHRlcm1pbmF0aW9uICgyLjMuNSk7lA0KICBJbnNlcnQgbmV3IGJ1bGxldCBwb2lu dA0KICAidGhlIHJlY29tbWVuZGVkIHByb2Nlc3MgZXhpdCBzdGF0dXMgd2hlbiBlcnJvciB0ZXJt aW5hdGlvbiBpcw0KICAgaW5pdGlhdGVkIG90aGVyIHRoYW4gYnkgYW4gRVJST1IgU1RPUCBzdGF0 ZW1lbnQgd2l0aCBhbiBpbnRlZ2VyDQogICA8c3RvcC1jb2RlPiAoMi4zLjUpOyINCntQcm9iYWJs eSB1bm5lY2Vzc2FyeSwgc2VlaW5nIGhvdyBpdCBpcyBvbmx5IGEgcmVjb21tZW5kYXRpb24sIGJ1 dA0KIG1heWJlIGEgZ29vZCBpZGVhIGFueXdheS59DQoNClNVQk1JVFRFRCBCWTogQmlsbCBMb25n L01hbGNvbG0gQ29oZW4NCg0KSElTVE9SWTogMTMtMjY4ICAgIG0yMDEgIEYwOC8wMDkzIHN1Ym1p dHRlZCAtIHBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAxMy0zMTMgICAgbTIwMiAgUGFz c2VkIGFzIGFtZW5kZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAxMy0yOTcNCiAgICAgICAgIE4xOTk0 ICAgICBtMjAyICBQYXNzZWQgYXMgYW1lbmRlZCBieSBXRzUgYmFsbG90IDcgTjE5OTEvOTIvOTQN CioqIFs0NjA6MjQrXSBtb3ZlZCB0byBbNDU5OjE3K10NCiAgICAgICAgIE4yMDAyICAgICBtMjAz ICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBGMDgv MDA5NA0KVElUTEU6IFByb2NlZHVyZSBzdGF0ZW1lbnQgYW5kIGRvdWJsZSBjb2xvbg0KS0VZV09S RDogUFJPQ0VEVVJFLCBJbnRlcmZhY2UgYmxvY2sNCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFU VVM6IEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KUVVFU1RJT046DQoNCkZvcnRyYW4gMjAwMyBk aWQgbm90IHBlcm1pdCBhIGRvdWJsZSBjb2xvbiBpbiB0aGUgPHByb2NlZHVyZS1zdG10PiBpbg0K YW4gaW50ZXJmYWNlIGJsb2NrLiAgRm9ydHJhbiAyMDA4IHN5bnRheCBzZWVtcyB0byBhbGxvdyB0 aGlzLCBidXQgaXQNCmlzIG5vdCBtZW50aW9uZWQgaW4gdGhlIEludHJvZHVjdGlvbiBhcyBhIG5l dyBGMjAwOCBmZWF0dXJlLg0KDQpJcyB0aGlzIGFwcGFyZW50IG5ldyBmZWF0dXJlIGRlbGliZXJh dGU/DQoNCkFOU1dFUjoNCg0KWWVzLCB0aGlzIG5ldyBmZWF0dXJlIHdhcyBpbnRlbmRlZC4NCg0K QW4gZWRpdCBpcyBwcm92aWRlZCB0byBhZGQgbWVudGlvbiBvZiBpdCB0byB0aGUgSW50cm9kdWN0 aW9uLg0KDQpFRElUOg0KDQpbeHZpXSBJbnRyb2R1Y3Rpb24sIHAyLCAiUHJvZ3JhbXMgYW5kIHBy b2NlZHVyZXM6IiBidWxsZXQsDQogICAgICBBZnRlciAiZW1wdHkgQ09OVEFJTlMgc2VjdGlvbiBp cyBhbGxvd2VkLiINCiAgICAgIEluc2VydCAiQSBQUk9DRURVUkUgc3RhdGVtZW50IGNhbiBoYXZl IGEgZG91YmxlIGNvbG9uIGJlZm9yZQ0KICAgICAgICAgICAgICB0aGUgZmlyc3QgcHJvY2VkdXJl IG5hbWUuIg0KDQpTVUJNSVRURUQgQlk6IE1hbGNvbG0gQ29oZW4NCg0KSElTVE9SWTogMTMtMjc0 ICAgIG0yMDEgIEYwOC8wMDk0IHN1Ym1pdHRlZCAtIHBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAg ICAgICAxMy0zMTMgICAgbTIwMiAgUGFzc2VkIGJ5IEozIGxldHRlciBiYWxsb3QgMTMtMjk3DQog ICAgICAgICBOMTk5NCAgICAgbTIwMiAgUGFzc2VkIGJ5IFdHNSBiYWxsb3QgNyBOMTk5MS85Mi85 NA0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMDk1DQpUSVRMRTogSXMgUFJFU0VOVCBhbGxvd2Vk IGluIHNwZWNpZmljYXRpb24gYW5kIGNvbnN0YW50IGV4cHJlc3Npb25zDQpLRVlXT1JEOiBQUkVT RU5ULCBvcHRpb25hbCBkdW1teSBhcmd1bWVudA0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRV UzogSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0KUTEuIENvbnNpZGVyDQoN CiAgU3Vicm91dGluZSBzMShhKQ0KICAgIEludGVnZXIsT3B0aW9uYWwgOjogYQ0KICAgIExvZ2lj YWwsUGFyYW1ldGVyIDo6IHggPSBQcmVzZW50KGEpDQogICAgUHJpbnQgKix4DQogIEVuZCBTdWJy b3V0aW5lDQoNCkRvZXMgdGhpcyBwcm9ncmFtIHVuaXQgY29uZm9ybSB0byB0aGUgc3RhbmRhcmQ/ DQo3LjEuMTIgaXRlbSAoNCkgcGVybWl0cw0KICAiYSBzcGVjaWZpY2F0aW9uIGlucXVpcnkgd2hl cmUgZWFjaCBkZXNpZ25hdG9yIG9yIGZ1bmN0aW9uIGFyZ3VtZW50DQogICBpcyAuLi4NCiAgICAg KGIpIGEgdmFyaWFibGUgd2hvc2UgcHJvcGVydGllcyBpbnF1aXJlZCBhYm91dCBhcmUgbm90DQog ICAgICAgIChpKSBhc3N1bWVkLA0KICAgICAgICAoaWkpIGRlZmVycmVkLCBvcg0KICAgICAgICAo aWlpKSBkZWZpbmVkIGJ5IGFuIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYSBjb25zdGFudA0KICAg ICAgICAgICAgICBleHByZXNzaW9uLCINClBSRVNFTlQgaXMgYSBzcGVjaWZpY2F0aW9uIGlucXVp cnkgKGJlY2F1c2UgaXQgaXMgYW4gaW50cmluc2ljIGlucXVpcnkNCmZ1bmN0aW9uKSwgYW5kIHRo ZSBzdGFuZGFyZCBkb2VzIG5vdCBzYXkgdGhhdCB0aGUgInByZXNlbmNlIiBvZiBhbg0Kb3B0aW9u YWwgZHVtbXkgYXJndW1lbnQgaXMgYW4gYXNzdW1lZCBvciBkZWZlcnJlZCBhdHRyaWJ1dGUsIGFu ZCBpdA0KZG9lcyBub3QgYXBwZWFyIHRvIGJlICJkZWZpbmVkIGJ5IGFuIGV4cHJlc3Npb24iIGVp dGhlci4NCg0KT24gdGhlIG90aGVyIGhhbmQsIHRoZSBzdGFuZGFyZCBkb2VzIG5vdCBzYXkgYW55 dGhpbmcgYWJvdXQgd2hhdCBraW5kDQpvZiBwcm9wZXJ0eSB0aGUgcHJlc2VuY2UgaXMuDQoNClEy LiBDb25zaWRlcg0KDQogIFN1YnJvdXRpbmUgczIoYSkNCiAgICBJbnRlZ2VyLE9wdGlvbmFsIDo6 IGENCiAgICBSZWFsIHgoTWVyZ2UoMiwzLFByZXNlbnQoYSkpKQ0KICAgIElmIChQcmVzZW50KGEp KSBUaGVuDQogICAgICB4ID0gWyAxLDIsYSBdDQogICAgRWxzZQ0KICAgICAgeCA9IFsgMSwyIF0N CiAgICBFbmQgSWYNCiAgICBQcmludCAqLHgNCiAgRW5kIFN1YnJvdXRpbmUNCg0KRG9lcyB0aGlz IHByb2dyYW0gdW5pdCBjb25mb3JtIHRvIHRoZSBzdGFuZGFyZD8gIEl0IGFwcGVhcnMgdG8gc2F0 aXNmeQ0KdGhlIHJ1bGVzIGZvciBzcGVjaWZpY2F0aW9uIGV4cHJlc3Npb24sIHNpbWlsYXJseSB0 byBob3cgaXQgc2F0aXNmaWVzDQp0aGUgcnVsZXMgZm9yIGEgY29uc3RhbnQgZXhwcmVzc2lvbiwg YnV0IHRoZW4gdGhlIHN0YW5kYXJkIGlzIHNpbGVudA0KYXMgdG8gd2hhdCBzb3J0IG9mIHByb3Bl cnR5ICJwcmVzZW5jZSIgaXMuLi4NCg0KUTMuIENvbnNpZGVyDQoNCiAgU3Vicm91dGluZSBzMyhh KQ0KICAgIENoYXJhY3RlcigqKSxPcHRpb25hbCA6OiBhDQogICAgUmVhbCB4KExlbihhKSkNCiAg ICBQcmludCAqLFNpemUoeCkNCiAgRW5kIFN1YnJvdXRpbmUNCg0KRG9lcyB0aGlzIHByb2dyYW0g dW5pdCBjb25mb3JtIHRvIHRoZSBzdGFuZGFyZD8gIFVzaW5nIHRoZSBzYW1lDQpyZWFzb25pbmcg YXMgUTEgYW5kIFEyLCBpdCBhcHBlYXJzIHRvIGNvbmZvcm0sIGJ1dCBpZiBBIGlzIGFic2VudCwN CkxFTihBKSBpcyBub3QgcGVybWl0dGVkIGJ5IDEyLjUuMi4xMi4NCg0KQU5TV0VSOg0KDQpBMS4g UHJvZ3JhbSB1bml0IFMxIHdhcyBub3QgaW50ZW5kZWQgdG8gY29uZm9ybSB0byB0aGUgc3RhbmRh cmQuDQogICAgQW4gZWRpdCBpcyBwcm92aWRlZCB0byBjbGFyaWZ5IHRoYXQgdGhpcyBpcyBub3Qg dmFsaWQuDQoNCkEyLiBQcm9ncmFtIHVuaXQgUzIgd2FzIGludGVuZGVkIHRvIGNvbmZvcm0gdG8g dGhlIHN0YW5kYXJkLg0KICAgIEFuIGVkaXQgaXMgcHJvdmlkZWQgdG8gY2xhcmlmeSB0aGF0IHRo aXMgaXMgdmFsaWQuDQoNCkEzLiBQcm9ncmFtIHVuaXQgUzMgd2FzIG5vdCBpbnRlbmRlZCB0byBj b25mb3JtIHRvIHRoZSBzdGFuZGFyZC4NCiAgICBBbiBlZGl0IGlzIHByb3ZpZGVkIHRvIGNsYXJp ZnkgdGhhdCB0aGlzIGlzIG5vdCB2YWxpZC4NCg0KRURJVFMgdG8gMTAtMDA3cjE6DQoNClsxNTA6 MjRdIDcuMS4xMXAyLCBpdGVtICg5KShiKQ0KICBhZnRlciAidmFyaWFibGUiIGluc2VydCAiLHRo YXQgaXMgbm90IGFuIG9wdGlvbmFsIGR1bW15IGFyZ3VtZW50LCAiLg0Ke1ByZXZlbnQgc3BlY2lm aWNhdGlvbiBlbnF1aXJpZXMgb24gb3B0aW9uYWwgZHVtbXkgYXJndW1lbnRzLn0NCg0KWzE1MDoy NytdIDcuMS4xMXAyLCBhZnRlciBpdGVtICg5KSBlbnRpcmVseSwNCiAgaW5zZXJ0ICIoOWEpIGEg c3BlY2lmaWNhdGlvbiBpbnF1aXJ5IHRoYXQgaXMgYSBjb25zdGFudCBleHByZXNzaW9uLA0KICAg ICAgICAgICg5YikgYSByZWZlcmVuY2UgdG8gdGhlIGludHJpbnNpYyBmdW5jdGlvbiBQUkVTRU5U LCINCntBbGxvdyBpbnF1aXJpZXMgb24gb3B0aW9uYWwgZHVtbXkgYXJndW1lbnRzIHRoYXQgd2ls bCBub3QgdmlvbGF0ZSB0aGUNCiBydWxlcyBpbiAxMi41LjIuMTIgd2hlbiB0aGUgZHVtbXkgaXMg YWJzZW50LA0KIGFuZCBhbGxvdyBQUkVTRU5UIHRvIGJlIHVzZWQufQ0KDQpbMTUwOjM3XSA3LjEu MTFwNCwgaXRlbSAoMSkNCiAgYWZ0ZXIgImludHJpbnNpYyBpbnF1aXJ5IGZ1bmN0aW9uIiBpbnNl cnQgIm90aGVyIHRoYW4gUFJFU0VOVCIuDQp7UmVtb3ZlIFBSRVNFTlQgZnJvbSBsaXN0IG9mIHNw ZWNpZmljYXRpb24gaW5xdWlyaWVzLCB0aGlzIGZpeGVzDQogY29uc3RhbnQgZXhwcmVzc2lvbnMu fQ0KDQpTVUJNSVRURUQgQlk6IE1hbGNvbG0gQ29oZW4vVmFuIFNueWRlcg0KDQpISVNUT1JZOiAx My0yNzggICAgbTIwMSAgRjA4LzAwOTUgc3VibWl0dGVkDQogICAgICAgICAxMy0yNzhyMSAgbTIw MSAgUGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDEzLTMxMyAgICBtMjAyICBQYXNzZWQg YnkgSjMgbGV0dGVyIGJhbGxvdCAxMy0yOTcNCiAgICAgICAgIE4xOTk0ICAgICBtMjAyICBQYXNz ZWQgYnkgV0c1IGJhbGxvdCA3IE4xOTkxLzkyLzk0DQogICAgICAgICBOMjAwMiAgICAgbTIwMyAg SW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjA4LzAw OTYNClRJVExFOiBJcyBWQUxVRSBwZXJtaXR0ZWQgZm9yIGFuIGFycmF5IGluIGEgQklORChDKSBw cm9jZWR1cmU/DQpLRVlXT1JEOiBhcnJheSwgQklORChDKSwgVkFMVUUNCkRFRkVDVCBUWVBFOiBF cnJhdHVtDQpTVEFUVVM6IEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KUVVFU1RJT046DQoNCkNv bnNpZGVyDQoNCiAgSU5URVJGQUNFDQogICAgU1VCUk9VVElORSBzKGEpIEJJTkQoQykNCiAgICAg IFVTRSBJU09fQ19CSU5ESU5HDQogICAgICBSRUFMKENfZmxvYXQpLFZBTFVFIDo6IGEoMTAwKQ0K ICAgIEVORA0KICBFTkQgSU5URVJGQUNFDQoNClExLiBEb2VzIHRoaXMgaW50ZXJmYWNlIGNvbmZv cm0gdG8gdGhlIEZvcnRyYW4gc3RhbmRhcmQ/DQoNClEyLiBJZiBzbywgd2hhdCBwcm90b3R5cGUg ZG9lcyBpdCBpbnRlcm9wZXJhdGUgd2l0aD8NCg0KQU5TV0VSOg0KDQpBMS4gQyBkb2VzIG5vdCBo YXZlIGFycmF5cyB0aGF0IGFyZSBwYXNzZWQgYnkgdmFsdWUsIHNvIHRoaXMgd2FzIG5vdA0KICAg IGludGVuZGVkIHRvIGNvbmZvcm0gdG8gdGhlIEZvcnRyYW4gc3RhbmRhcmQuICBBbiBlZGl0IGlz IHByb3ZpZGVkDQogICAgdG8gY2xhcmlmeSB0aGlzLg0KDQpBMi4gVGhpcyBxdWVzdGlvbiBpcyBt b290Lg0KDQpFRElUUyB0byAxMC0wMDdyMToNCg0KWzMwNjozMV0gMTIuNi4yLjIsIEMxMjU1LCBh ZnRlciAiKDE1LjMuNSwgMTUuMy42KSIgaW5zZXJ0DQogICJ0aGF0IGlzIG5vdCBhbiBhcnJheSB3 aXRoIHRoZSBWQUxVRSBhdHRyaWJ1dGUsIg0Ke0RvIG5vdCBwZXJtaXQgQklORChDKSB0byBoYXZl IGFycmF5cyBieSB2YWx1ZS59DQp7Tm90ZTogVFMgMjkxMTMgcmVwbGFjZXMgdGhpcyBzYW1lIGNv bnN0cmFpbnQufQ0KDQpbNDMzOjEyXSAxNS4zLjdwMiwgaXRlbSAoNCksIGFmdGVyICJhbnkiIGlu c2VydCAic2NhbGFyIi4NCntEbyBub3QgZGVzY3JpYmUgYXJyYXlzIGJ5IHZhbHVlIGluIGEgcHJv dG90eXBlLn0NCg0KU1VCTUlUVEVEIEJZOiBNYWxjb2xtIENvaGVuDQoNCkhJU1RPUlk6IDEzLTI4 NCAgICBtMjAxICBGMDgvMDA5NiBzdWJtaXR0ZWQgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAg ICAgICAgMTMtMzEzICAgIG0yMDIgIFBhc3NlZCBhcyBhbWVuZGVkIGJ5IEozIGxldHRlciBiYWxs b3QgMTMtMjk3DQogICAgICAgICBOMTk5NCAgICAgbTIwMiAgUGFzc2VkIGJ5IFdHNSBiYWxsb3Qg NyBOMTk5MS85Mi85NA0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIEluIEYyMDA4IENvcnJpZ2Vu ZHVtIDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMDk3DQpUSVRMRTogSXMgdGhl IG9wdGlvbmFsIGNvbW1hIGFsbG93ZWQgaW4gVFlQRShDSEFSQUNURVIqLi4uKT8NCktFWVdPUkQ6 IFRZUEUsIENIQVJBQ1RFUg0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSW4gRjIwMDgg Q29ycmlnZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0KQ29uc2lkZXINCg0KICBDSEFSQUNURVIqMSwg QQ0KICBUWVBFKENIQVJBQ1RFUioxLCkgQg0KDQpUaGUgb3B0aW9uYWwgY29tbWEgaW4gdGhlIGRl Y2xhcmF0aW9uIG9mIEIgbG9va3MgdWdseS4NCklzIHRoaXMgZGVsaWJlcmF0ZT8NCg0KQU5TV0VS Og0KDQpObywgdGhpcyBzeW50YXggd2FzIGluYWR2ZXJ0ZW50bHkgYWxsb3dlZC4gIEFuIGVkaXQg aXMgcHJvdmlkZWQgdG8NCnJlbW92ZSBpdC4NCg0KRURJVFMgdG8gMTAtMDA3cjE6DQoNCls1MToy NitdIDQuMy4xLjEsIGFmdGVyIEM0MDYsIGluc2VydCBuZXcgY29uc3RyYWludA0KICAiQzQwNmEg KFI0MDMpIEluIFRZUEUoPGludHJpbnNpYy10eXBlLXNwZWM+KSB0aGUNCiAgICAgICAgIDxpbnRy aW5zaWMtdHlwZS1zcGVjPiBzaGFsbCBub3QgZW5kIHdpdGggYSBjb21tYS4iDQoNClNVQk1JVFRF RCBCWTogTWFsY29sbSBDb2hlbg0KDQpISVNUT1JZOiAxMy0yODUgICAgbTIwMSAgRjA4LzAwOTcg c3VibWl0dGVkIC0gcGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDEzLTMxMyAgICBtMjAy ICBQYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAxMy0yOTcNCiAgICAgICAgIE4xOTk0ICAgICBt MjAyICBQYXNzZWQgYnkgV0c1IGJhbGxvdCA3IE4xOTkxLzkyLzk0DQogICAgICAgICBOMjAwMiAg ICAgbTIwMyAgSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJF UjogRjA4LzAwOTgNClRJVExFOiBIb3cgbWFueSBBQ1FVSVJFRF9MT0NLPSBzcGVjaWZpZXJzIGFy ZSBhbGxvd2VkIGluIGEgTE9DSyBzdG10Pw0KS0VZV09SRDogTE9DSw0KREVGRUNUIFRZUEU6IEVy cmF0dW0NClNUQVRVUzogSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0KQ29u c2lkZXINCg0KICBMT0NLICggeCwgQUNRVUlSRURfTE9DSz1uMSwgQUNRVUlSRURfTE9DSz1uMiwg U1RBVD1uMywgU1RBVD1uNCApDQoNCklzIHRoaXMgY29uZm9ybWluZz8NCg0KTXVsdGlwbGUgU1RB VD0gYXJlIHByb2hpYml0ZWQgZnJvbSBhIDxzeW5jLXN0YXQtbGlzdD4sIGJ1dCB0aGlzIGlzIGEN Cjxsb2NrLXN0YXQtbGlzdD4gc28gdGhhdCBkb2VzIG5vdCBhcHBseS4gIFRoZXJlIGlzIG5vIGNv bnN0cmFpbnQNCmFueXdoZXJlIGFib3V0IGhvdyBtYW55IEFDUVVJUkVEX0xPQ0s9IHNwZWNpZmll cnMgbWF5IGFwcGVhci4NCg0KQU5TV0VSOg0KDQpObywgdGhpcyB3YXMgbm90IGludGVuZGVkIHRv IGJlIGNvbmZvcm1pbmcuICBObyBzcGVjaWZpZXIgd2FzIGludGVuZGVkDQp0byBiZSBhbGxvd2Vk IHRvIGFwcGVhciBtb3JlIHRoYW4gb25jZS4NCg0KRURJVFMgdG8gMTAtMDA3cjE6DQoNClsxOTQ6 MitdIDguNS42LCBhZnRlciBSODY0LCBpbnNlcnQgbmV3IGNvbnN0cmFpbnQNCiAgIkM4NTJhIE5v IHNwZWNpZmllciBzaGFsbCBhcHBlYXIgbW9yZSB0aGFuIG9uY2UgaW4gYSBnaXZlbg0KICAgICAg ICAgPGxvY2stc3RhdC1saXN0Pi4iDQoNClNVQk1JVFRFRCBCWTogTWFsY29sbSBDb2hlbg0KDQpI SVNUT1JZOiAxMy0yODYgICAgbTIwMSAgRjA4LzAwOTggc3VibWl0dGVkIC0gcGFzc2VkIGJ5IEoz IG1lZXRpbmcNCiAgICAgICAgIDEzLTMxMyAgICBtMjAyICBQYXNzZWQgYnkgSjMgbGV0dGVyIGJh bGxvdCAxMy0yOTcNCiAgICAgICAgIE4xOTk0ICAgICBtMjAyICBQYXNzZWQgYnkgV0c1IGJhbGxv dCA3IE4xOTkxLzkyLzk0DQogICAgICAgICBOMjAwMiAgICAgbTIwMyAgSW4gRjIwMDggQ29ycmln ZW5kdW0gMw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjA4LzAwOTkNClRJVExFOiBWT0xB VElMRSBpbiBzcGVjaWZpY2F0aW9uIGV4cHJlc3Npb25zDQpLRVlXT1JEOiBWT0xBVElMRSwgc3Bl Y2lmaWNhdGlvbiBleHByZXNzaW9uDQpERUZFQ1QgVFlQRTogSW50ZXJwcmV0YXRpb24uDQpTVEFU VVM6IFBhc3NlZCBieSBKMyBtZWV0aW5nDQoNClFVRVNUSU9OOg0KDQpJcyB0aGUgZm9sbG93aW5n IHN1YnByb2dyYW0gcmVxdWlyZWQgYWx3YXlzIHRvIHByaW50ICJUIFQiPw0KDQogIHN1YnJvdXRp bmUgV29iYmx5ICggTiApDQogICAgaW50ZWdlciwgdm9sYXRpbGUgOjogTg0KICAgIGludGVnZXIg OjogQSAoIG4sIG4gKQ0KICAgIGludGVnZXIgOjogQiAoIG4gKiBuICkNCiAgICBwcmludCAqLCBz aXplKGEpID09IHNpemUoYiksIHNpemUoYSwxKSA9PSBzaXplKGEsMikNCiAgZW5kIHN1YnJvdXRp bmUgV29iYmx5DQoNCkFOU1dFUjoNCg0KTm8uDQoNClRoZXJlIGFyZSB0aHJlZSBzcGVjaWZpY2F0 aW9uIGV4cHJlc3Npb25zIGluIHRoZSBzdWJyb3V0aW5lLCBhbmQgdGhlDQp2b2xhdGlsZSB2YXJp YWJsZSBOIGFwcGVhcnMgaW4gZWFjaCBvZiB0aGVtLiAgU2luY2UsIGJlaW5nIHZvbGF0aWxlLA0K dGhlIHZhcmlhYmxlIE4gbWlnaHQgaGF2ZSBhIGRpZmZlcmVudCB2YWx1ZSBlYWNoIHRpbWUgaXQg aXMNCnJlZmVyZW5jZWQsIHRoZXNlIHRocmVlIHNwZWNpZmljYXRpb24gZXhwcmVzc2lvbnMgbWln aHQgcmVjZWl2ZQ0KZGlmZmVyZW50IHZhbHVlcyBmb3IgdGhlaXIgcmVmZXJlbmNlcyB0byBOLiAg SWYgdGhhdCBoYXBwZW5zLCB0aGUNCmFycmF5IHNpemVzIG1pZ2h0IHdlbGwgYmUgZGlmZmVyZW50 Lg0KDQpFRElUUzoNCg0KTm9uZS4NCg0KU1VCTUlUVEVEIEJZOiBWYW4gU255ZGVyDQoNCkhJU1RP Ulk6IG0yMDIgIDEzLTI5OHIxICBGMDgvMDA5OSBzdWJtaXR0ZWQNCiAgICAgICAgIG0yMDIgIDEz LTI5OHIyICBSZXZpc2VkIGFuc3dlciAtIHBhc3NlZCBieSBKMyBtZWV0aW5nDQoNCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCg0KTlVNQkVSOiBGMDgvMDEwMA0KVElUTEU6IElNUE9SVCBzdGF0ZW1lbnQgYW5kIHBy aW9yIGV4cGxpY2l0IGRlY2xhcmF0aW9uDQpLRVlXT1JEOiBJTVBPUlQgc3RhdGVtZW50LCBwcmlv ciBleHBsaWNpdCBkZWNsYXJhdGlvbg0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogUGFz c2VkIGJ5IEozIG1lZXRpbmcNCg0KUVVFU1RJT046DQoNClExLiBEb2VzIHRoZSBmb2xsb3dpbmcg cHJvZ3JhbSBmcmFnbWVudCBjb25mb3JtIHRvIHRoZSAyMDA4IHN0YW5kYXJkPw0KDQogIHN1YnJv dXRpbmUgUyAoIFAgKQ0KICAgIGludGVyZmFjZQ0KICAgICAgc3Vicm91dGluZSBRICggWCApDQog ICAgICAgIHJlYWwsIGludGVudChpbm91dCkgOjogWA0KICAgICAgZW5kIHN1YnJvdXRpbmUgUQ0K ICAgIGVuZCBpbnRlcmZhY2UNCiAgICBpbnRlcmZhY2UNCiAgICAgIHN1YnJvdXRpbmUgUCAoIEEg KQ0KICAgICAgICBpbXBvcnQNCiAgICAgICAgcHJvY2VkdXJlIChSKSA6OiBBDQogICAgICBlbmQg c3Vicm91dGluZSBQDQogICAgZW5kIGludGVyZmFjZQ0KICAgIHByb2NlZHVyZSAoUSkgOjogUg0K ICBlbmQgc3Vicm91dGluZSBTDQoNCjEyLjQuMy4zcDIgc2F5cyAiSWYgYW4gZW50aXR5IHRoYXQg aXMgbWFkZSBhY2Nlc3NpYmxlIGJ5IHRoaXMgbWVhbnMgaXMNCmFjY2Vzc2VkIGJ5IGhvc3QgYXNz b2NpYXRpb24gYW5kIGlzIGRlZmluZWQgaW4gdGhlIGhvc3Qgc2NvcGluZyB1bml0LCBpdA0Kc2hh bGwgYmUgZXhwbGljaXRseSBkZWNsYXJlZCBwcmlvciB0byB0aGUgaW50ZXJmYWNlIGJvZHkuIg0K DQpIb3dldmVyLCBhbHRob3VnaCB0aGUgcHJvY2VkdXJlIFIgaXMgZGVjbGFyZWQgaW4gdGhlIGhv c3Qgc2NvcGluZyB1bml0DQppdCBpcyBub3QgZGVmaW5lZCBpbiB0aGUgaG9zdCBzY29waW5nIHVu aXQsIHNvIHRoaXMgaXMgaW5lZmZlY3RpdmUuDQoNClEyLiBJZiB0aGUgSU1QT1JUIHN0YXRlbWVu dCB3ZXJlIGNoYW5nZWQgdG8gIklNUE9SVCBSIiwgd291bGQgdGhhdCBiZQ0KICAgIGNvbmZvcm1p bmc/DQoNCjEyLjQuMy4zcDEgc2F5cw0KICAiQW4gZW50aXR5IHRoYXQgaXMgaW1wb3J0ZWQgaW4g dGhpcyBtYW5uZXIgYW5kIGlzIGRlZmluZWQgaW4gdGhlDQogICBob3N0IHNjb3BpbmcgdW5pdCBz aGFsbCBiZSBleHBsaWNpdGx5IGRlY2xhcmVkIHByaW9yIHRvIHRoZQ0KICAgaW50ZXJmYWNlIGJv ZHkuIg0KDQpBZ2FpbiwgcHJvY2VkdXJlIFIgaXMgZGVjbGFyZWQgYnV0IG5vdCBkZWZpbmVkIGlu IHRoZSBob3N0IHNjb3BpbmcNCnVuaXQsIHNvIHRoaXMgcmVxdWlyZW1lbnQgaXMgaW5lZmZlY3Rp dmUuDQoNCkFOU1dFUjoNCg0KVGhlc2UgZXhhbXBsZXMgd2VyZSBub3QgaW50ZW5kZWQgdG8gY29u Zm9ybSB0byB0aGUgRm9ydHJhbiBzdGFuZGFyZC4NCkFuIGVkaXQgaXMgcHJvdmlkZWQuDQoNCkVE SVRTOg0KDQpbMjgyOjddIDEyLjQuMy4zcDEsIGFmdGVyICJpbXBvcnRlZCBpbiB0aGlzIG1hbm5l ciBhbmQgaXMiDQogICAgICAgIGNoYW5nZSAiZGVmaW5lZCIgdG8gImRlY2xhcmVkIi4NCg0KWzI4 MjoxNF0gcDIsIGFmdGVyICJpcyBhY2Nlc3NlZCBieSBob3N0IGFzc29jaWF0aW9uIGFuZCBpcyIN CiAgICAgICAgIGNoYW5nZSAiZGVmaW5lZCIgdG8gImRlY2xhcmVkIi4NCg0KU1VCTUlUVEVEIEJZ OiBWYW4gU255ZGVyDQoNCkhJU1RPUlk6IG0yMDIgIDEzLTMwNSAgICBGMDgvMDEwMCBzdWJtaXR0 ZWQNCiAgICAgICAgIG0yMDIgIDEzLTMwNXIxICBSZXZpc2VkIGFuc3dlciAmIGVkaXRzIC0gcGFz c2VkIGJ5IEozIG1lZXRpbmcNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMTAxDQpU SVRMRTogTkFNRUxJU1QgYW5kIG11bHRpcGxlIG9jY3VycmVuY2VzIG9mIGEgdmFyaWFibGUNCktF WVdPUkQ6IE5BTUVMSVNUDQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBQYXNzZWQgYnkg SjMgbWVldGluZw0KDQpRVUVTVElPTjoNCg0KQ29uc2lkZXINCg0KICBQcm9ncmFtIHAxDQogICAg UmVhbCA6OiB4ID0gMywgeSA9IDQNCiAgICBOYW1lbGlzdCAvbi8geCwgeQ0KICAgIFdyaXRlICgq LG4pDQogIEVuZCBQcm9ncmFtDQoNCkFjY29yZGluZyB0byA1LjYsDQogICJUaGUgb3JkZXIgaW4g d2hpY2ggdGhlIHZhcmlhYmxlcyBhcmUgc3BlY2lmaWVkIGluIHRoZSBOQU1FTElTVA0KICAgc3Rh dGVtZW50IGRldGVybWluZXMgdGhlIG9yZGVyIGluIHdoaWNoIHRoZSB2YWx1ZXMgYXBwZWFyIG9u DQogICBvdXRwdXQuIg0KDQpIb3dldmVyLCB0aGlzIHN0b3BzIHNob3J0IG9mIHNheWluZyB0aGF0 IHRoZSBvcmRlciBpcyB0aGUgc2FtZSwgbWVyZWx5DQp0aGF0IGl0IGRldGVybWluZXMgaXQuICBQ ZXJoYXBzIGl0IG1pZ2h0IGJlIHN0YW5kYXJkLWNvbmZvcm1pbmcgZm9yIGENCnByb2Nlc3NvciB0 byBhbHdheXMgcHJvZHVjZSB0aGUgdmFsdWVzIGluIHJldmVyc2Ugb3JkZXIsIGZvciBleGFtcGxl Lg0KMTAuMTEuNCBkb2VzIG5vdCBzZWVtIHRvIGFkZHJlc3MgdGhlIGlzc3VlIG9mIHdoYXQgdGhl IG9yZGVyIGlzLg0KDQpRMTogSXMgdGhlIG9yZGVyIG1lYW50IHRvIGJlIHRoZSBzYW1lPw0KDQpD b25zaWRlcg0KDQogIFByb2dyYW0gcDINCiAgICBSZWFsIDo6IHggPSAzLCB5ID0gNA0KICAgIE5h bWVsaXN0IC9uLyB4LCB5LCB4DQogICAgV3JpdGUgKCosbikNCiAgRW5kIFByb2dyYW0NCg0KVGhp cyBwcm9ncmFtIGRpZCBub3QgY29uZm9ybSB0byBGb3J0cmFuIDkwLCBidXQgZG9lcyBjb25mb3Jt IHRvDQpGb3J0cmFuIDIwMDMgYW5kIGxhdGVyLiAgVGhlIEZvcnRyYW4gMjAwOCBzdGFuZGFyZCBz YXlzICg1LjZwMik6DQoNCiAgIlRoZSBvcmRlciBpbiB3aGljaCB0aGUgdmFyaWFibGVzIGFyZSBz cGVjaWZpZWQgaW4gdGhlIE5BTUVMSVNUDQogICBzdGF0ZW1lbnQgZGV0ZXJtaW5lcyB0aGUgb3Jk ZXIgaW4gd2hpY2ggdGhlIHZhbHVlcyBhcHBlYXIgb24NCiAgIG91dHB1dC4iDQoNCkhvd2V2ZXIs IHRoZXJlIGFyZSBvbmx5IHR3byB2YXJpYWJsZXMgaW4gdGhlIE5BTUVMSVNUIHN0YXRlbWVudCwg WA0KYW5kIFkuICBUaGVyZWZvcmUgaXQgc2VlbXMgdG8gYmUgYW1iaWd1b3VzIHdoZXRoZXIgdGhl IG91dHB1dCBzaG91bGQNCmJlIHNvbWV0aGluZyBsaWtlDQogICZOIFg9MyBZPTQgLw0Kb3INCiAg Jk4gWT00IFg9MyAvDQoNClNvbWUgY29tcGlsZXJzIHByb2R1Y2UNCiAgJk4gWD0zIFk9NCBYPTMg Lw0KYnV0IHRoaXMgaXMgbm90IGFuIG9yZGVyaW5nIG9mIHRoZSB2YXJpYWJsZXMgWCBhbmQgWS4N Cg0KUTIuIElzIHRoaXMgcHJvZ3JhbSBpbnRlbmRlZCB0byBjb25mb3JtIHRvIHRoZSBzdGFuZGFy ZCwgYW5kIGlmIHNvLA0KICAgIHdoYXQgaXMgdGhlIGludGVuZGVkIG91dHB1dD8NCg0KQU5TV0VS Og0KDQpBMS4gWWVzLCB0aGUgb3JkZXIgaXMgbWVhbnQgdG8gYmUgdGhlIHNhbWUuICBBbiBlZGl0 IGlzIHN1cHBsaWVkIHRvDQogICAgY2xhcmlmeSB0aGlzLg0KDQpBMi4gVGhlIHByb2dyYW0gd2Fz IGludGVuZGVkIHRvIGNvbmZvcm0gdG8gdGhlIHN0YW5kYXJkLCBhbmQgdGhlIG91dHB1dA0KICAg IHdhcyBpbnRlbmRlZCB0byBiZSB0aGUgdGhpcmQgb3B0aW9uLiAgQW4gZWRpdCBpcyBzdXBwbGll ZCB0bw0KICAgIGNvcnJlY3QgdGhlIHRleHQgaW4gNS42Lg0KDQpFRElUOg0KDQpbMTExOjEzLTE0 XSA1LjZwMiwgcmVwbGFjZSBlbnRpcmUgcGFyYWdyYXBoIHdpdGgNCiAgIlRoZSBvcmRlciBpbiB3 aGljaCB0aGUgdmFsdWVzIGFwcGVhciBvbiBvdXRwdXQgaXMgdGhlIHNhbWUgYXMgdGhlDQogICBv cmRlciBvZiB0aGUgPG5hbWVsaXN0LWdyb3VwLW9iamVjdD5zIGluIHRoZSBuYW1lbGlzdCBncm91 cCBvYmplY3QNCiAgIGxpc3Q7IGlmIGEgdmFyaWFibGUgYXBwZWFycyBtb3JlIHRoYW4gb25jZSBh cyBhDQogICA8bmFtZWxpc3QtZ3JvdXAtb2JqZWN0PiBmb3IgdGhlIHNhbWUgbmFtZWxpc3QgZ3Jv dXAsIGl0cyB2YWx1ZQ0KICAgYXBwZWFycyBvbmNlIGZvciBlYWNoIG9jY3VycmVuY2UiLg0KDQpT VUJNSVRURUQgQlk6IE1hbGNvbG0gQ29oZW4NCg0KSElTVE9SWTogbTIwMiAgMTMtMzE0ICAgIEYw OC8wMTAxIHN1Ym1pdHRlZCwgZmlyc3Qgb3B0aW9uIHNlbGVjdGVkIGJ5DQogICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cmF3IHZvdGUgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KDQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQoNCk5VTUJFUjogRjA4LzAxMDINClRJVExFOiBNRVJHRSBhbmQgcG9seW1vcnBoaXNt DQpLRVlXT1JEOiBNRVJHRSwgcG9seW1vcnBoaWMNCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFU VVM6IFBhc3NlZCBieSBKMyBtZWV0aW5nDQoNClFVRVNUSU9OOg0KDQpDb25zaWRlcg0KDQogIFBy b2dyYW0gdGVzdA0KICAgIFR5cGUgdA0KICAgIEVuZCBUeXBlDQogICAgVHlwZSxFeHRlbmRzKHQp IDo6IHQyDQogICAgRW5kIFR5cGUNCiAgICBDbGFzcyh0KSxBbGxvY2F0YWJsZSA6OiB4LHkNCiAg ICBUeXBlKHQpLEFsbG9jYXRhYmxlIDo6IGENCiAgICB4ID0gdCgpDQogICAgeSA9IHQyKCkNCiAg ICBhID0gdCgpDQogICAgRG8gaT0xLDINCiAgICAgIFNlbGVjdCBUeXBlICh6PT5NZXJnZShhLHgs aT09MSkpICAgISBBDQogICAgICBUeXBlIElzICh0KQ0KICAgICAgICBQcmludCAqLCdvaycNCiAg ICAgIFR5cGUgSXMgKHQyKQ0KICAgICAgICBQcmludCAqLCdGQUlMJw0KICAgICAgRW5kIFNlbGVj dA0KICAgIEVuZCBEbw0KICAgIERvIGk9MSwyDQogICAgICBTZWxlY3QgVHlwZSAoej0+TWVyZ2Uo eCxhLGk9PTEpKSAgICEgQg0KICAgICAgVHlwZSBJcyAodCkNCiAgICAgICAgUHJpbnQgKiwnb2sn DQogICAgICBUeXBlIElzICh0MikNCiAgICAgICAgUHJpbnQgKiwnRkFJTCcNCiAgICAgIEVuZCBT ZWxlY3QNCiAgICBFbmQgRG8NCiAgICBEbyBpPTEsMg0KICAgICAgU2VsZWN0IFR5cGUgKHo9Pk1l cmdlKGEseSxpPT0xKSkgICAhIEMNCiAgICAgIFR5cGUgSXMgKHQpDQogICAgICAgIFByaW50ICos J3QnDQogICAgICBUeXBlIElzICh0MikNCiAgICAgICAgUHJpbnQgKiwndDInDQogICAgICBFbmQg U2VsZWN0DQogICAgRW5kIERvDQogICAgRG8gaT0xLDINCiAgICAgIFNlbGVjdCBUeXBlICh6PT5N ZXJnZSh5LGEsaT09MSkpICAgISBEDQogICAgICBUeXBlIElzICh0KQ0KICAgICAgICBQcmludCAq LCd0Jw0KICAgICAgVHlwZSBJcyAodDIpDQogICAgICAgIFByaW50ICosJ3QyJw0KICAgICAgRW5k IFNlbGVjdA0KICAgIEVuZCBEbw0KICAgIERvIGk9MSwyDQogICAgICBTZWxlY3QgVHlwZSAoej0+ TWVyZ2UoeCx5LGk9PTEpKSAgICEgRQ0KICAgICAgVHlwZSBJcyAodCkNCiAgICAgICAgUHJpbnQg KiwndCcNCiAgICAgIFR5cGUgSXMgKHQyKQ0KICAgICAgICBQcmludCAqLCd0MicNCiAgICAgIEVu ZCBTZWxlY3QNCiAgICBFbmQgRG8NCiAgRW5kIFByb2dyYW0NCg0KQWNjb3JkaW5nIHRvIHRoZSBz dGFuZGFyZCwgdGhlIHR5cGUgb2YgdGhlIHJlc3VsdCBvZiBNRVJHRSBpcyB0aGUgc2FtZQ0KYXMg dGhlIHR5cGUgb2YgVFNPVVJDRS4gIE9uZSBtaWdodCBpbWFnaW5lIHRoYXQgdGhpcyBtZWFucyB0 aGF0IHRoZQ0KcmVzdWx0IGlzIHBvbHltb3JwaGljIGlmIGFuZCBvbmx5IGlmIFRTT1VSQ0UgaXMg cG9seW1vcnBoaWMuICBUaGlzDQp3b3VsZCBiZSBhIHNsaWdodGx5IHVudXN1YWwgYW5kIHVuZXhw ZWN0ZWQgYXN5bW1ldHJ5Lg0KDQpBbHNvLCB0aGUgdHlwZXMgb2YgRlNPVVJDRSBhbmQgVFNPVVJD RSBoYXZlIHRvIGJlIHRoZSBzYW1lLiAgSWYgdGhpcw0KbWVhbnMgYm90aCB0aGUgZGVjbGFyZWQg YW5kIGR5bmFtaWMgdHlwZXMsIG9uZSBtaWdodCBpbWFnaW5lIHRoYXQgdGhpcw0KbWVhbnMgdGhh dCB0aGUgcmVzdWx0IGlzIHBvbHltb3JwaGljIGlmIGFuZCBvbmx5IGlmIGJvdGggRlNPVVJDRSBh bmQNClRTT1VSQ0UgYXJlIHBvbHltb3JwaGljLCBzaW5jZSBvdGhlcndpc2UgdGhlIG5vbi1wb2x5 bW9ycGhpYyBhcmd1bWVudA0KZGVjaWRlcyB0aGUgdHlwZS4NCg0KT24gdGhlIG90aGVyIGhhbmQs IGlmIHRoZSB0eXBlIHJlcXVpcmVtZW50cyBhcmUgdGFsa2luZyBhYm91dCB0aGUNCmRlY2xhcmVk IHR5cGUgb25seSwgb25lIG1pZ2h0IGltYWdpbmUgdGhhdCB0aGUgcmVzdWx0IGlzIHBvbHltb3Jw aGljDQppZiBlaXRoZXIgVFNPVVJDRSBvciBGU09VUkNFIGlzIHBvbHltb3JwaGljLg0KDQpIb3dl dmVyLCBpbiBhbnkgY2FzZSB0aGVyZSB3b3VsZCBzZWVtIHRvIGJlIGFuIGVycm9yIGluIHRoZSBz dGFuZGFyZCwNCnNpbmNlIHRoZSByZXN1bHQgaXMgc3BlY2lmaWVkIHRvIGJlIHRoZSBzYW1lIGFz IFRTT1VSQ0UsIHJhdGhlciB0aGFuDQp0aGUgc2FtZSBhcyB3aGljaGV2ZXIgYXJndW1lbnQgaXMg Y2hvc2VuIHRvIGJlIHRoZSByZXN1bHQgdmFsdWU7IGlmDQp0aGlzIHJlZmVycyB0byB0aGUgZHlu YW1pYyB0eXBlLCBpdCBpcyBjb250cmFkaWN0b3J5IHdoZW4gRlNPVVJDRSBpcw0KY2hvc2VuIGFz IHRoZSByZXN1bHQgdmFsdWUuICBBbmQgaWYgaXQgZG9lcyBub3QgcmVmZXIgdG8gdGhlIGR5bmFt aWMNCnR5cGUsIHRoZXJlIGFwcGVhcnMgdG8gYmUgbm8gc3RhdGVtZW50IHdoaWNoIHNheXMgd2hh dCB0aGUgZHluYW1pYw0KdHlwZSBvZiB0aGUgcmVzdWx0IGlzLg0KDQpRMS4gIElzIHRoZSBhcHBh cmVudCBhc3ltbWV0cnkgYmV0d2VlbiB0aGUgdHJlYXRtZW50IG9mIFRTT1VSQ0UgYW5kDQogICAg IEZTT1VSQ0UgaW50ZW5kZWQ/DQoNClEyLiAgV2hpY2ggb2YgdGhlIE1FUkdFIGludm9jYXRpb25z IEEtRSBhcmUgcG9seW1vcnBoaWM/DQoNClEzLiAgV2hlbiB0aGUgcmVzdWx0IG9mIE1FUkdFIGlz IHBvbHltb3JwaGljLCBhcmUgdGhlIGR5bmFtaWMgdHlwZXMgb2YNCiAgICAgVFNPVVJDRSBhbmQg RlNPVVJDRSBwZXJtaXR0ZWQgdG8gYmUgZGlmZmVyZW50PyAgQW5kIGlmIHRoZXkgYXJlLA0KICAg ICBpcyB0aGUgZHluYW1pYyB0eXBlIG9mIHRoZSByZXN1bHQgdGhlIHNhbWUgYXMgdGhlIGNob3Nl biBhcmd1bWVudA0KICAgICBhbmQgbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIFRTT1VSQ0U/ DQoNCkFOU1dFUjoNCg0KQTEuIFRoZXJlIGlzIG5vIGFzeW1tZXRyeSBiZXR3ZWVuIFRTT1VSQ0Ug YW5kIEZTT1VSQ0UsIGJlY2F1c2UgdGhleQ0KICAgIGFyZSByZXF1aXJlZCB0byBoYXZlIHRoZSBz YW1lIHR5cGUgYW5kIHR5cGUgcGFyYW1ldGVycy4gIFRoaXMNCiAgICBtZWFucyB0aGF0IGJvdGgg dGhlIGRlY2xhcmVkIGFuZCBkeW5hbWljIHR5cGVzIGFuZCB0eXBlIHBhcmFtZXRlcnMNCiAgICBt dXN0IGJlIHRoZSBzYW1lLg0KDQpBMi4gT25seSBNRVJHRSBpbnZvY2F0aW9uIEUgaXMgcG9seW1v cnBoaWMuICBBbiBlZGl0IGlzIHByb3ZpZGVkIHRvDQogICAgY2xhcmlmeSB0aGlzLg0KDQpBMy4g Tm8sIHRoZSBkeW5hbWljIHR5cGVzIGFuZCB0eXBlIHBhcmFtZXRlcnMgYXJlIHJlcXVpcmVkIHRv IGJlIHRoZQ0KICAgIHNhbWUuDQoNCk5vdGUgdGhhdCBiZWNhdXNlIE1FUkdFIGlzIGVsZW1lbnRh bCwgaXQgbmVlZHMgdGhlIHR5cGUgYW5kIHR5cGUNCnBhcmFtZXRlcnMgdG8gYmUgdGhlIHNhbWUg Zm9yIGJvdGggdGhlIGRlY2xhcmVkIGFuZCBkeW5hbWljIHR5cGVzLA0Kb3RoZXJ3aXNlIHRoZSBw cmluY2lwbGUgdGhhdCBhbGwgZWxlbWVudHMgb2YgYW4gYXJyYXkgaGF2ZSB0aGUgc2FtZQ0KKGRl Y2xhcmVkIGFuZCBkeW5hbWljKSB0eXBlIGFuZCB0eXBlIHBhcmFtZXRlcnMgd291bGQgYmUgYnJv a2VuLg0KDQpFRElUUzoNCg0KWzM2ODoyNl0gMTMuNy4xMTBwNCAoUmVzdWx0IENoYXJhY3Rlcmlz dGljcyksDQogICAgICAgICAiU2FtZSBhcyBUU09VUkNFLiIgLT4NCiAgICAgICAgICJTYW1lIHR5 cGUgYW5kIHR5cGUgcGFyYW1ldGVycyBhcyBUU09VUkNFLiAgQmVjYXVzZSBUU09VUkNFDQogICAg ICAgICAgYW5kIEZTT1VSQ0UgYXJlIHJlcXVpcmVkIHRvIGhhdmUgdGhlIHNhbWUgdHlwZSBhbmQg dHlwZQ0KICAgICAgICAgIHBhcmFtZXRlcnMgKGZvciBib3RoIHRoZSBkZWNsYXJlZCBhbmQgZHlu YW1pYyB0eXBlcyksIHRoZQ0KICAgICAgICAgIHJlc3VsdCBpcyBwb2x5bW9ycGhpYyBpZiBhbmQg b25seSBpZiBib3RoIFRTT1VSQ0UgYW5kDQogICAgICAgICAgRlNPVVJDRSBhcmUgcG9seW1vcnBo aWMuIg0KDQpTVUJNSVRURUQgQlk6IE1hbGNvbG0gQ29oZW4NCg0KSElTVE9SWTogbTIwMiAgMTMt MzIxICAgIEYwOC8wMTAyIHN1Ym1pdHRlZA0KICAgICAgICAgbTIwMiAgMTMtMzIxcjEgIFJldmlz ZWQgZXhhbXBsZSAtIHBhc3NlZCBieSBKMyBtZWV0aW5nDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVN QkVSOiBGMDgvMDEwMw0KVElUTEU6IFBvaW50ZXJzIHRvIGludGVybmFsIHByb2NlZHVyZXMgd2l0 aCBkaWZmZXJlbnQgaG9zdCBpbnN0YW5jZXMNCktFWVdPUkQ6IGludGVybmFsIHByb2NlZHVyZSwg cHJvY2VkdXJlIHBvaW50ZXIsIGhvc3QgaW5zdGFuY2UNCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpT VEFUVVM6IFBhc3NlZCBieSBKMyBtZWV0aW5nDQoNClFVRVNUSU9OOg0KDQpDb25zaWRlcjoNCg0K ICAgIE1PRFVMRSBUWVBFUw0KICAgICAgQUJTVFJBQ1QgSU5URVJGQUNFDQogICAgICAgIFNVQlJP VVRJTkUgU1VCUk9VVElORSgpDQogICAgICAgIEVORCBTVUJST1VUSU5FIFNVQlJPVVRJTkUNCiAg ICAgIEVORCBJTlRFUkZBQ0UNCiAgICAgIFRZUEUgUFBTDQogICAgICAgIFBST0NFRFVSRShTVUJS T1VUSU5FKSwgUE9JTlRFUiwgTk9QQVNTIDo6IFNVX1BUUg0KICAgICAgRU5EIFRZUEUgUFBTDQog ICAgRU5EIE1PRFVMRSBUWVBFUw0KDQogICAgU1VCUk9VVElORSBDUFBTKFBQQSkNCiAgICAgIFVT RSBUWVBFUw0KICAgICAgVFlQRShQUFMpLCBESU1FTlNJT04oOikgOjogUFBBDQogICAgICBJTlRF R0VSIEksIEosIE4NCiAgICAgIE4gPSBTSVpFKFBQQSkNCiAgICAgIERPIEkgPSAxLCBODQogICAg ICAgIENBTEwgUFBBKEkpJVNVX1BUUigpDQogICAgICBFTkQgRE8NCiAgICAgIFBSSU5UICosKChB U1NPQ0lBVEVEKFBQQShJKSVTVV9QVFIsUFBBKEopJVNVX1BUUiksST0xLE4pLEo9MSxOKQ0KICAg IEVORCBTVUJST1VUSU5FIENQUFMNCg0KICAgIFJFQ1VSU0lWRSBTVUJST1VUSU5FIE9VVEVSKFBQ QSkNCiAgICAgIFVTRSBUWVBFUw0KICAgICAgVFlQRShQUFMpLCBESU1FTlNJT04oOikgOjogUFBB DQogICAgICBJTlRFUkZBQ0UNCiAgICAgICAgU1VCUk9VVElORSBDUFBTKFBQQSkNCiAgICAgICAg ICBVU0UgVFlQRVMNCiAgICAgICAgICBUWVBFKFBQUyksIERJTUVOU0lPTig6KSA6OiBQUEENCiAg ICAgICAgRU5EIFNVQlJPVVRJTkUgQ1BQUw0KICAgICAgRU5EIElOVEVSRkFDRQ0KICAgICAgSUYg KFNJWkUoUFBBKSAuRVEuIDMpIFRIRU4NCiAgICAgICAgQ0FMTCBDUFBTKFBQQSkNCiAgICAgIEVM U0UNCiAgICAgICAgQ0FMTCBPVVRFUiggKC8gUFBBLCBQUFMoSU5ORVIpIC8pICkNCiAgICAgIEVO RCBJRg0KICAgIENPTlRBSU5TDQogICAgICBTVUJST1VUSU5FIElOTkVSKCkNCiAgICAgICAgV1JJ VEUgKCosKikgJ1NJWkUoUFBBKSA9JywgU0laRShQUEEpDQogICAgICBFTkQgU1VCUk9VVElORSBJ Tk5FUg0KICAgIEVORCBTVUJST1VUSU5FIE9VVEVSDQoNCiAgICBQUk9HUkFNIE1BSU4NCiAgICAg IFVTRSBUWVBFUw0KICAgICAgSU5URVJGQUNFDQogICAgICAgIFJFQ1VSU0lWRSBTVUJST1VUSU5F IE9VVEVSKFBQQSkNCiAgICAgICAgICBVU0UgVFlQRVMNCiAgICAgICAgICBUWVBFKFBQUyksIERJ TUVOU0lPTig6KSA6OiBQUEENCiAgICAgICAgRU5EIFNVQlJPVVRJTkUgT1VURVINCiAgICAgIEVO RCBJTlRFUkZBQ0UNCiAgICAgIFRZUEUoUFBTKSxESU1FTlNJT04oMCkgOjogUFBBDQogICAgICBD QUxMIE9VVEVSKFBQQSkNCiAgICBFTkQgUFJPR1JBTSBNQUlODQoNCkRvZXMgdGhpcyBwcm9ncmFt IHByaW50IGFsbCB0cnVlIHZhbHVlcz8NCg0KVGhlIHByb2NlZHVyZSBwb2ludGVycyBhcmUgYWxs IGFzc29jaWF0ZWQgd2l0aCB0aGUgaW50ZXJuYWwgcHJvY2VkdXJlDQpJTk5FUiwgd2hpY2ggbWln aHQgbGVhZCBvbmUgdG8gYmVsaWV2ZSB0aGF0IHRoZSBhbnN3ZXIgaXMgeWVzICh0aGF0DQppcywg dGhleSBhcmUgYWxsIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2FtZSB0YXJnZXQpLCBidXQgZWFjaCBw cm9jZWR1cmUNCnBvaW50ZXIgYXQgZWFjaCBuZXN0aW5nIGxldmVsIGhhcyBhIGRpZmZlcmVudCBo b3N0IGluc3RhbmNlLCB3aGljaA0KbWlnaHQgbGVhZCBvbmUgdG8gYmVsaWV2ZSB0aGF0IHRoZSBh bnN3ZXIgaXMgbm8gKGFuZCB0aGF0IHRoZXJlZm9yZQ0Kb25seSBvbmUgb2YgZWFjaCBvZiB0aGUg My1lbGVtZW50IHNlcXVlbmNlcyBwcmludGVkIHdpbGwgYmUgVCkuDQoNCkFOU1dFUjoNCg0KTm8s IHRoZSBwcm9ncmFtIGRvZXMgbm90IHByaW50IGFsbCB0cnVlIHZhbHVlczsgdHdvIHByb2NlZHVy ZSBwb2ludGVycw0KdG8gdGhlICJzYW1lIiBpbnRlcm5hbCBwcm9jZWR1cmUgYXJlIG9ubHkgYXNz b2NpYXRlZCBpZiB0aGUgaG9zdA0KaW5zdGFuY2VzIGFyZSBhbHNvIHRoZSBzYW1lLiAgQW4gZWRp dCBpcyBzdXBwbGllZCB0byB0aGUgc3RhbmRhcmQgdG8NCmNsYXJpZnkgdGhpcy4NCg0KRURJVFM6 DQoNClszMzA6MjBdIDEzLjcuMTZwNSBDYXNlIChpaSksIGFmdGVyICJ3aXRoIFRBUkdFVCIgaW5z ZXJ0DQogICJhbmQsIGlmIFRBUkdFVCBpcyBhbiBpbnRlcm5hbCBwcm9jZWR1cmUsIHRoZXkgaGF2 ZSB0aGUgc2FtZSBob3N0DQogICBpbnN0YW5jZSIuDQoNClszMzA6MjJdIENhc2UgKGlpaSksIGFm dGVyICJzYW1lIHByb2NlZHVyZSIgaW5zZXJ0DQogICJhbmQsIGlmIHRoZSBwcm9jZWR1cmUgaXMg YW4gaW50ZXJuYWwgcHJvY2VkdXJlLCB0aGV5IGhhdmUgdGhlIHNhbWUNCiAgIGhvc3QgaW5zdGFu Y2UiLg0KDQpTVUJNSVRURUQgQlk6IFJvYmVydCBDb3JiZXR0Lg0KDQpISVNUT1JZOiBtMjAyICAg MTMtMzU3ICAgU3VibWl0dGVkIHdpdGggZm91ciBhbnN3ZXJzDQogICAgICAgICBtMjAyICAgMTMt MzU3cjEgU2VsZWN0ZWQgYW5zd2VyLCBhZGRlZCBlZGl0cyAtIHBhc3NlZCBieSBKMw0KICAgICAg ICAgICAgICAgICAgICAgICAgICBtZWV0aW5nDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg== --_004_4AA982B1265F43408480F737BE12F4D35F8981A2ORSMSX103amrcor_--