From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: From: Bastian Krause Date: Fri, 12 Jun 2020 12:52:28 +0200 Message-Id: <20200612105231.4318-3-bst@pengutronix.de> In-Reply-To: <20200612105231.4318-1-bst@pengutronix.de> References: <20200612105231.4318-1-bst@pengutronix.de> MIME-Version: 1.0 Subject: [ptxdist] [PATCH v2 2/5] doc: dev_manual: split up into multiple files List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Cc: Bastian Krause , Roland Hieber U3BsaXQgdGhlIGxlbmd0aHkgZGV2ZWxvcGVyJ3MgbWFudWFsIGludG8gbXVsdGlwbGUgZmlsZXMg dG8gZWFzZQpuYXZpZ2F0aW9uIHdoZW4gZWRpdGluZy4KCk5vIGZ1cnRoZXIgY2hhbmdlIHRvIHRo ZSBjb250ZW50LgoKU2lnbmVkLW9mZi1ieTogQmFzdGlhbiBLcmF1c2UgPGJzdEBwZW5ndXRyb25p eC5kZT4KUmV2aWV3ZWQtYnk6IFJvbGFuZCBIaWViZXIgPHJoaUBwZW5ndXRyb25peC5kZT4KVGVz dGVkLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+Ci0tLQpObyBjaGFu Z2VzIHNpbmNlIChpbXBsaWNpdCkgdjEuCi0tLQogZG9jL2Rldl9hZGRfYmluX29ubHlfZmlsZXMu cnN0ICAgICAgIHwgIDEwNSArKwogZG9jL2Rldl9hZGRfbmV3X3BrZ3MucnN0ICAgICAgICAgICAg IHwgMTMzOSArKysrKysrKysrKysrKysrKysrCiBkb2MvZGV2X2NyZWF0ZV9uZXdfcGtnX3RlbXBs YXRlcy5yc3QgfCAgIDc3ICsrCiBkb2MvZGV2X2Rpcl9oaWVyYXJjaHkucnN0ICAgICAgICAgICAg fCAgMTA4ICsrCiBkb2MvZGV2X2xheWVyc19pbl9wdHhkaXN0LnJzdCAgICAgICAgfCAgMTExICsr CiBkb2MvZGV2X21hbnVhbC5yc3QgICAgICAgICAgICAgICAgICAgfCAxNzY0ICstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDE3NDkgaW5zZXJ0aW9ucygrKSwgMTc1 NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2MvZGV2X2FkZF9iaW5fb25seV9m aWxlcy5yc3QKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2MvZGV2X2FkZF9uZXdfcGtncy5yc3QKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkb2MvZGV2X2NyZWF0ZV9uZXdfcGtnX3RlbXBsYXRlcy5yc3QKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkb2MvZGV2X2Rpcl9oaWVyYXJjaHkucnN0CiBjcmVhdGUgbW9kZSAx MDA2NDQgZG9jL2Rldl9sYXllcnNfaW5fcHR4ZGlzdC5yc3QKCmRpZmYgLS1naXQgYS9kb2MvZGV2 X2FkZF9iaW5fb25seV9maWxlcy5yc3QgYi9kb2MvZGV2X2FkZF9iaW5fb25seV9maWxlcy5yc3QK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi45MDMxZTQzN2MKLS0tIC9kZXYv bnVsbAorKysgYi9kb2MvZGV2X2FkZF9iaW5fb25seV9maWxlcy5yc3QKQEAgLTAsMCArMSwxMDUg QEAKKy4uIF9hZGRpbmdfZmlsZXM6CisKK0FkZGluZyBCaW5hcnkgT25seSBGaWxlcworLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisKK1NvbWV0aW1lcyBhIGZldyBiaW5hcnkgZmlsZXMgaGF2ZSB0 byBiZSBhZGRlZCBpbnRvIHRoZSByb290IGZpbGVzeXN0ZW0uCitPciAtIHRvIGJlIG1vcmUgcHJl Y2lzZSAtIHNvbWUgZmlsZXMsIHRoYXQgZG8gbm90IG5lZWQgdG8gYmUgYnVpbHQgaW4KK2FueSB3 YXkuCisKK09uIHRoZSBvdGhlciBoYW5kLCBzb21ldGltZXMgZmlsZXMgc2hvdWxkIGJlIGluY2x1 ZGVkIHRoYXQgYXJlIG5vdAorY292ZXJlZCBieSBhbnkgb3BlbiBzb3VyY2UgbGljZW5zZSBhbmQg c28sIHNob3VsZCBub3QgYmUgc2hpcHBlZCBpbiB0aGUKK3NvdXJjZSBjb2RlIGZvcm1hdC4KKwor QWRkIEJpbmFyeSBGaWxlcyBGaWxlIGJ5IEZpbGUKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CisKK0RvaW5nIHRvIG9uIGEgZmlsZSBieSBmaWxlIGJhc2UgY2FuIGhhcHBlbiBieSBqdXN0 IHVzaW5nIHRoZSBgYGluc3RhbGxfY29weWBgCittYWNybyBpbiB0aGUgKnRhcmdldGluc3RhbGwq IHN0YWdlIGluIG91ciBvd24gY3VzdG9taXplZCBydWxlcyBmaWxlLgorCisuLiBjb2RlLWJsb2Nr Ojogbm9uZQorCisgICAgQCQoY2FsbCBpbnN0YWxsX2NvcHksIGJpbmFyeV9leGFtcGxlLCAwLCAw LCAwNjQ0LCBcCisgICAgICAgPC9wYXRoL3RvL3NvbWUvZmlsZS8+cHR4X2xvZ28ucG5nLCBcCisg ICAgICAgL2V4YW1wbGUvcHR4X2xvZ28ucG5nKQorCitJdCBjb3BpZXMgdGhlIGZpbGUgYGBwdHhf bG9nby5wbmdgYCBmcm9tIHNvbWUgbG9jYXRpb24gdG8gdGFyZ2V04oCZcyByb290CitmaWxlc3lz dGVtLiBSZWZlciA6cmVmOmBpbnN0YWxsX2NvcHlgIGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIGFi b3V0IHVzaW5nIHRoZQorYGBpbnN0YWxsX2NvcHlgYCBtYWNyby4KKworVGhlIGRpc2FkdmFudGFn ZSBvZiB0aGlzIG1ldGhvZCBpczogaWYgd2Ugd2FudCB0byBpbnN0YWxsIG1vcmUgdGhhbiBvbmUK K2ZpbGUsIHdlIG5lZWQgb25lIGNhbGwgdG8gdGhlIGBgaW5zdGFsbF9jb3B5YGAgbWFjcm8gcGVy IGZpbGUuIFRoaXMgaXMKK2V2ZW4gaGFyZGVyIGlmIG5vdCBvbmx5IGEgc2V0IG9mIGZpbGVzIGlz IHRvIGJlIGluc3RhbGxlZCwgYnV0IGEgd2hvbGUKK2RpcmVjdG9yeSB0cmVlIHdpdGggZmlsZXMg aW5zdGVhZC4KKworQWRkIEJpbmFyeSBGaWxlcyB2aWEgYW4gQXJjaGl2ZQorfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgorCitJZiBhIHdob2xlIHRyZWUgb2YgZmlsZXMgaXMgdG8gYmUg aW5zdGFsbGVkLCB3b3JraW5nIHdpdGggYSAqdGFyKiBiYXNlZAorYXJjaGl2ZSBjb3VsZCBtYWtl IGxpZmUgZWFzaWVyLiBJbiB0aGlzIGNhc2UgdGhlIGFyY2hpdmUgaXRzZWxmIHByb3ZpZGVzCith bGwgdGhlIHJlcXVpcmVkIGluZm9ybWF0aW9uIHRoZSBmaWxlcyBhcmUgbmVlZGluZyB0byBiZSBp bnN0YWxsZWQgaW4gYQorY29ycmVjdCBtYW5uZXI6CisKKy0gIHRoZSBmaWxlIGl0c2VsZiBhbmQg aXRzIG5hbWUKKworLSAgdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgYW5kIHRoZSBmaW5hbCBsb2Nh dGlvbiBvZiBldmVyeSBmaWxlIGluIHRoaXMKKyAgIHN0cnVjdHVyZQorCistICB1c2VyIGFuZCBn cm91cCBJRCBvbiBhIHBlciBmaWxlIGJhc2UKKworLi4gY29kZS1ibG9jazo6IG5vbmUKKworICAg IEAkKGNhbGwgaW5zdGFsbF9hcmNoaXZlLCBiaW5hcnlfZXhhbXBsZSwgLSwgLSwgXAorICAgICAg IDwvcGF0aC90by9hbi8+YXJjaGl2ZS50Z3osIC8pCisKK1JlZmVyIDpyZWY6YGluc3RhbGxfYXJj aGl2ZWAgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgdXNpbmcgdGhlCitgYGluc3RhbGxf YXJjaGl2ZWBgIG1hY3JvLgorCitVc2luZyBhbiBhcmNoaXZlIGNhbiBiZSB1c2VmdWwgdG8gaW5z dGFsbCBwYXJ0cyBvZiB0aGUgcm9vdCBmaWxlc3lzdGVtCit0aGF0IGFyZSBub3QgY292ZXJlZCBi eSBhbnkgb3BlbiBzb3VyY2UgbGljZW5zZS4gSXRzIHBvc3NpYmxlIHRvIHNoaXAKK3RoZSBiaW5h cmllcyB3aXRoaW4gdGhlIHJlZ3VsYXIgQlNQLCB3aXRob3V0IHRoZSBuZWVkIGZvciB0aGVpciBz b3VyY2VzLgorSG93ZXZlciBpdCBpcyBwb3NzaWJsZSBmb3IgdGhlIGN1c3RvbWVyIHRvIHJlLWNy ZWF0ZSBldmVyeXRoaW5nIHJlcXVpcmVkCitmcm9tIHRoZSBCU1AgdG8gZ2V0IHRoZWlyIHRhcmdl dCB1cCBhbmQgcnVubmluZyBhZ2Fpbi4KKworQW5vdGhlciB1c2UgY2FzZSBmb3IgdGhlIGFyY2hp dmUgbWV0aG9kIGNvdWxkIGJlIHRoZSBzdXBwb3J0IGZvcgorZGlmZmVyZW50IGRldmVsb3BtZW50 IHRlYW1zLiBPbmUgdGVhbSBwcm92aWRlcyBhIHNvZnR3YXJlIGNvbXBvbmVudCBpbgordGhlIGFy Y2hpdmUgZm9ybWF0LCB0aGUgb3RoZXIgdGVhbSBkb2VzIG5vdCBuZWVkIHRvIGJ1aWxkIGl0IGJ1 dCBjYW4gdXNlCitpdCBpbiB0aGUgc2FtZSB3YXkgdGhhbiBldmVyeSBvdGhlciBzb2Z0d2FyZSBj b21wb25lbnQuCisKK0NyZWF0aW5nIGEgUnVsZXMgRmlsZQorfn5+fn5+fn5+fn5+fn5+fn5+fn5+ CisKK0xldCBQVFhkaXN0IGNyZWF0ZSBvbmUgZm9yIHVzLgorCisuLiBjb2RlLWJsb2NrOjogdGV4 dAorCisgICAgJCBwdHhkaXN0IG5ld3BhY2thZ2UgZmlsZQorCisgICAgcHR4ZGlzdDogY3JlYXRp bmcgYSBuZXcgJ2ZpbGUnIHBhY2thZ2U6CisKKyAgICBwdHhkaXN0OiBlbnRlciBwYWNrYWdlIG5h bWUuLi4uLi4uOiBteV9iaW5maWxlcworICAgIHB0eGRpc3Q6IGVudGVyIHZlcnNpb24gbnVtYmVy Li4uLi46IDEKKyAgICBwdHhkaXN0OiBlbnRlciBwYWNrYWdlIGF1dGhvci4uLi4uOiBNeSBOYW1l IDxtZUBteS1vcmcuY29tPgorICAgIHB0eGRpc3Q6IGVudGVyIHBhY2thZ2Ugc2VjdGlvbi4uLi46 IHJvb3RmcworCitOb3cgdHdvIG5ldyBmaWxlcyBhcmUgcHJlc2VudCBpbiB0aGUgQlNQOgorCisj LiBgYHJ1bGVzL215X2JpbmZpbGVzLmluYGAgVGhlIHRlbXBsYXRlIGZvciB0aGUgbWVudQorCisj LiBgYHJ1bGVzL215X2JpbmZpbGVzLm1ha2VgYCBUaGUgcnVsZXMgdGVtcGxhdGUKKworQm90aCBm aWxlcyBub3cgbXVzdCBiZSBjdXN0b21pemVkIHRvIG1lZXQgb3VyIHJlcXVpcmVtZW50cy4gRHVl IHRvIHRoZQorYW5zd2VyICpyb290ZnMqIHRvIHRoZSDigJxgYGVudGVyIHBhY2thZ2Ugc2VjdGlv bmBg4oCdIHF1ZXN0aW9uLCB3ZSB3aWxsCitmaW5kIHRoZSBuZXcgbWVudSBlbnRyeSBpbjoKKwor Li4gY29kZS1ibG9jazo6IHRleHQKKworICAgIFJvb3QgRmlsZXN5c3RlbSAtLS0+CisgICAgCTwg PiBteV9iaW5maWxlcyAoTkVXKQorCitFbmFibGluZyB0aGlzIG5ldyBlbnRyeSB3aWxsIGFsc28g cnVuIG91ciBzdGFnZXMgaW4KK2BgcnVsZXMvbXlfYmluZmlsZXMubWFrZWBgIHRoZSBuZXh0IHRp bWUgd2UgZW50ZXI6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICAkIHB0eGRpc3QgZ28K ZGlmZiAtLWdpdCBhL2RvYy9kZXZfYWRkX25ld19wa2dzLnJzdCBiL2RvYy9kZXZfYWRkX25ld19w a2dzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjRhZTI3NjVjMgot LS0gL2Rldi9udWxsCisrKyBiL2RvYy9kZXZfYWRkX25ld19wa2dzLnJzdApAQCAtMCwwICsxLDEz MzkgQEAKKy4uIF9hZGRpbmdfbmV3X3BhY2thZ2VzOgorCitBZGRpbmcgTmV3IFBhY2thZ2VzCist LS0tLS0tLS0tLS0tLS0tLS0tCisKK1BUWGRpc3QgcHJvdmlkZXMgYSBodWdlIGFtb3VudCBvZiBh cHBsaWNhdGlvbnMgc3VmZmljaWVudCBmb3IgdGhlIG1vc3QKK2VtYmVkZGVkIHVzZSBjYXNlcy4g QnV0IHRoZXJlIGlzIHN0aWxsIG5lZWQgZm9yIHNvbWUgZmFuY3kgbmV3IHBhY2thZ2VzLgorVGhp cyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgc3RlcHMgYW5kIHRoZSBiYWNrZ3JvdW5kIG9uIGhvdyB0 byBpbnRlZ3JhdGUKK25ldyBwYWNrYWdlcyBpbnRvIHRoZSBwcm9qZWN0LgorCitBdCBmaXJzdCBh IHN1bW1hcnkgYWJvdXQgcG9zc2libGUgYXBwbGljYXRpb24gdHlwZXMgd2hpY2ggUFRYZGlzdCBj YW4KK2hhbmRsZToKKworLSAgKipob3N0IHR5cGUqKjogVGhpcyBraW5kIG9mIHBhY2thZ2UgaXMg YnVpbHQgdG8gcnVuIG9uIHRoZSBidWlsZAorICAgaG9zdC4gTW9zdCBvZiB0aGUgdGltZSBzdWNo IGEgcGFja2FnZSBpcyBuZWVkZWQgaWYgYW5vdGhlcgorICAgdGFyZ2V0LXJlbGV2YW50IHBhY2th Z2UgbmVlZHMgdG8gZ2VuZXJhdGUgc29tZSBkYXRhLiBGb3IgZXhhbXBsZSB0aGUKKyAgICpnbGli KiBwYWNrYWdlIGRlcGVuZHMgb24gaXRzIG93biB0byBjcmVhdGUgc29tZSBkYXRhLiBCdXQgaWYg aXQgaXMKKyAgIGNvbXBpbGVkIGZvciB0aGUgdGFyZ2V0LCBpdCBjYW7igJl0IGRvIHNvLiBUaGF0 4oCZcyB3aHkgYSBob3N0IGdsaWIKKyAgIHBhY2thZ2UgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSB0 aGVzZSB1dGlsaXRpZXMgcnVubmFibGUgb24gdGhlIGJ1aWxkCisgICBob3N0LiBJdCBzb3VuZHMg c3RyYW5nZSB0byBidWlsZCBhIGhvc3QgcGFja2FnZSwgZXZlbiBpZiBvbiB0aGUgYnVpbGQKKyAg IGhvc3Qgc3VjaCB1dGlsaXRpZXMgYXJlIGFscmVhZHkgaW5zdGFsbGVkLiBCdXQgdGhpcyB3YXkg ZW5zdXJlcyB0aGF0CisgICB0aGVyZSBhcmUgbm8gZGVwZW5kZW5jaWVzIHJlZ2FyZGluZyB0aGUg YnVpbGQgaG9zdCBzeXN0ZW0uCisKKy0gICoqdGFyZ2V0IHR5cGUqKjogVGhpcyBraW5kIG9mIHBh Y2thZ2UgaXMgYnVpbHQgZm9yIHRoZSB0YXJnZXQuCisKKy0gICoqY3Jvc3MgdHlwZSoqOiBUaGlz IGtpbmQgb2YgcGFja2FnZSBpcyBidWlsdCBmb3IgdGhlIGJ1aWxkIGhvc3QsIGJ1dAorICAgY3Jl YXRlcyBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGF0YSBmb3IgdGhlIHRhcmdldC4KKworLSAgKipz cmMtYXV0b2NvbmYtcHJvZyoqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBpcyBidWlsdCBmb3IgdGhl IHRhcmdldC4KKyAgIEl0IGlzIGludGVuZGVkIGZvciBkZXZlbG9wbWVudCwgYXMgaXQgZG9lcyBu b3QgaGFuZGxlIGEgcmVsZWFzZWQKKyAgIGFyY2hpdmUgYnV0IGEgcGxhaW4gc291cmNlIHByb2pl Y3QgaW5zdGVhZC4gQ3JlYXRpbmcgc3VjaCBhIHBhY2thZ2UKKyAgIHdpbGwgYWxzbyBjcmVhdGUg YSBzbWFsbCBhdXRvdG9vbHMgYmFzZWQgc291cmNlIHRlbXBsYXRlIHByb2plY3Qgb24KKyAgIGRl bWFuZCB0byBnaXZlIHRoZSBkZXZlbG9wZXIgYW4gZWFzeSBwb2ludCB0byBzdGFydC4gVGhpcyB0 ZW1wbGF0ZSBpcworICAgcHJlcGFyZWQgdG8gYnVpbGQgYSBzaW5nbGUgZXhlY3V0YWJsZSBwcm9n cmFtLiBGb3IgZnVydGhlciBkZXRhaWxzIHJlZmVyCisgICBzZWN0aW9uIDpyZWY6YGFkZGluZ19z cmNfYXV0b2NvbmZfZXhlY2AuCisKKy0gICoqc3JjLWF1dG9jb25mLWxpYioqOiBUaGlzIGtpbmQg b2YgcGFja2FnZSBpcyBidWlsdCBmb3IgdGhlIHRhcmdldC4KKyAgIEl0IGlzIGludGVuZGVkIGZv ciBkZXZlbG9wbWVudCwgYXMgaXQgZG9lcyBub3QgaGFuZGxlIGEgcmVsZWFzZWQKKyAgIGFyY2hp dmUgYnV0IGEgcGxhaW4gc291cmNlIHByb2plY3QgaW5zdGVhZC4gQ3JlYXRpbmcgc3VjaCBhIHBh Y2thZ2UKKyAgIHdpbGwgYWxzbyBjcmVhdGUgYSBzbWFsbCBhdXRvdG9vbHMvbGlidG9vbCBiYXNl ZCBzb3VyY2UgdGVtcGxhdGUKKyAgIHByb2plY3Qgb24gZGVtYW5kIHRvIGdpdmUgdGhlIGRldmVs b3BlciBhbiBlYXN5IHBvaW50IHRvIHN0YXJ0LiBUaGlzCisgICB0ZW1wbGF0ZSBpcyBwcmVwYXJl ZCB0byBidWlsZCBhIHNpbmdsZSBzaGFyZWQgbGlicmFyeS4gRm9yIGZ1cnRoZXIKKyAgIGRldGFp bHMgcmVmZXIgc2VjdGlvbiA6cmVmOmBhZGRpbmdfc3JjX2F1dG9jb25mX2xpYmAuCisKKy0gICoq c3JjLWF1dG9jb25mLXByb2dsaWIqKjogVGhpcyBraW5kIG9mIHBhY2thZ2UgaXMgYnVpbHQgZm9y IHRoZQorICAgdGFyZ2V0LiBJdCBpcyBpbnRlbmRlZCBmb3IgZGV2ZWxvcG1lbnQsIGFzIGl0IGRv ZXMgbm90IGhhbmRsZSBhCisgICByZWxlYXNlZCBhcmNoaXZlIGJ1dCBhIHBsYWluIHNvdXJjZSBw cm9qZWN0IGluc3RlYWQuIENyZWF0aW5nIHN1Y2ggYQorICAgcGFja2FnZSB3aWxsIGFsc28gY3Jl YXRlIGEgc21hbGwgYXV0b3Rvb2xzL2xpYnRvb2wgYmFzZWQgdGVtcGxhdGUKKyAgIHByb2plY3Qg b24gZGVtYW5kIHRvIGdpdmUgdGhlIGRldmVsb3BlciBhbiBlYXN5IHBvaW50IHRvIHN0YXJ0LiBU aGlzCisgICB0ZW1wbGF0ZSBpcyBwcmVwYXJlZCB0byBidWlsZCBhIHNpbmdsZSBzaGFyZWQgbGli cmFyeSBhbmQgYSBzaW5nbGUKKyAgIGV4ZWN1dGFibGUgcHJvZ3JhbS4gVGhlIHByb2dyYW0gd2ls bCBiZSBsaW5rZWQgYWdhaW5zdCB0aGUgc2hhcmVkCisgICBsaWJyYXJ5LiBGb3IgZnVydGhlciBk ZXRhaWxzIHJlZmVyIHNlY3Rpb24gOnJlZjpgYWRkaW5nX3NyY19hdXRvY29uZl9leGVjX2xpYmAu CisKKy0gICoqZmlsZSoqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBpcyBpbnRlbmRlZCB0byBhZGQg YSBmZXcgc2ltcGxlIGZpbGVzCisgICBpbnRvIHRoZSBidWlsZCBwcm9jZXNzLiBXZSBhc3N1bWUg dGhlc2UgZmlsZXMgZG8gbm90IG5lZWQgYW55CisgICBwcm9jZXNzaW5nLCB0aGV5IGFyZSByZWFk eSB0byB1c2UgYW5kIG11c3Qgb25seSBiZSBwcmVzZW50IGluIHRoZQorICAgYnVpbGQgcHJvY2Vz cyBvciBhdCBydW4tdGltZSAoSFRNTCBmaWxlcyBmb3IgZXhhbXBsZSkuIFJlZmVyIHRvIHRoZQor ICAgc2VjdGlvbiA6cmVmOmBhZGRpbmdfZmlsZXNgIGZvciBmdXJ0aGVyIGRldGFpbHMgb24gaG93 IHRvIHVzZQorICAgaXQuCisKKy0gICoqc3JjLW1ha2UtcHJvZyoqOiBUaGlzIGtpbmQgb2YgcGFj a2FnZSBpcyBidWlsdCBmb3IgdGhlIHRhcmdldC4gSXTigJlzCisgICBpbnRlbmRlZCBmb3IgZGV2 ZWxvcG1lbnQsIGFzIGl0IGRvZXMgbm90IGhhbmRsZSBhIHJlbGVhc2VkIGFyY2hpdmUKKyAgIGJ1 dCBhIHBsYWluIHNvdXJjZSBwcm9qZWN0IGluc3RlYWQuIENyZWF0aW5nIHN1Y2ggYSBwYWNrYWdl IHdpbGwgYWxzbworICAgY3JlYXRlIGEgc2ltcGxlIG1ha2VmaWxlLWJhc2VkIHRlbXBsYXRlIHBy b2plY3QgdGhlIGRldmVsb3BlciBjYW4gdXNlCisgICBhcyBhIHN0YXJ0aW5nIHBvaW50IGZvciBk ZXZlbG9wbWVudC4KKworLSAgKipzcmMtY21ha2UtcHJvZyoqOiBUaGlzIGtpbmQgb2YgcGFja2Fn ZSBpcyBidWlsdCBmb3IgdGhlIHRhcmdldC4KKyAgIEl04oCZcyBpbnRlbmRlZCBmb3IgZGV2ZWxv cG1lbnRzIGJhc2VkIG9uIHRoZSAqY21ha2UqIGJ1aWxkc3lzdGVtLgorICAgVmFyaW91cyBwcm9q ZWN0cyBhcmUgdXNpbmcgKmNtYWtlKiBpbnN0ZWFkIG9mICptYWtlKiBhbmQgY2FuIGJlIGJ1aWx0 CisgICB3aXRoIHRoaXMgcGFja2FnZSB0eXBlLiBQVFhkaXN0IHdpbGwgcHJlcGFyZSBpdCB0byBj b21waWxlIHNvdXJjZXMgaW4KKyAgIGFjY29yZGFuY2UgdG8gdGhlIHRhcmdldCBsaWJyYXJpZXMg YW5kIHRoZWlyIHNldHRpbmdzLiBDcmVhdGluZyBzdWNoCisgICBhIHBhY2thZ2Ugd2lsbCBhbHNv IGNyZWF0ZSBhIHNpbXBsZSB0ZW1wbGF0ZSBwcm9qZWN0IHRvIGJlIHVzZWQgYXMgYQorICAgc3Rh cnRpbmcgcG9pbnQgZm9yIGRldmVsb3BtZW50LgorCistICAqKnNyYy1xbWFrZS1wcm9nKio6IFRo aXMga2luZCBvZiBwYWNrYWdlIGlzIGJ1aWx0IGZvciB0aGUgdGFyZ2V0LgorICAgSXTigJlzIGlu dGVuZGVkIGZvciBkZXZlbG9wbWVudHMgYmFzZWQgb24gdGhlICpxbWFrZSogYnVpbGRzeXN0ZW0u IElmCisgICB0aGUgZGV2ZWxvcGVyIGlzIGdvaW5nIHRvIGRldmVsb3AgYSBRVCBiYXNlZCBhcHBs aWNhdGlvbiwgdGhpcyBydWxlCisgICBpcyBwcmVwYXJlZCB0byBjb21waWxlIHNvdXJjZXMgaW4g YWNjb3JkYW5jZSB0byB0aGUgdGFyZ2V0IGxpYnJhcmllcworICAgYW5kIHRoZWlyIHNldHRpbmdz LiBDcmVhdGluZyBzdWNoIGEgcGFja2FnZSB3aWxsIGFsc28gY3JlYXRlIGEgc2ltcGxlCisgICB0 ZW1wbGF0ZSBwcm9qZWN0IHRvIGJlIHVzZWQgYXMgYSBzdGFydGluZyBwb2ludCBmb3IgZGV2ZWxv cG1lbnQuCisKKy0gICoqc3JjLW1lc29uLXByb2cqKjogVGhpcyBraW5kIG9mIHBhY2thZ2UgaXMg YnVpbHQgZm9yIHRoZSB0YXJnZXQuCisgICBJdOKAmXMgaW50ZW5kZWQgZm9yIGRldmVsb3BtZW50 cyBiYXNlZCBvbiB0aGUgKm1lc29uKiBidWlsZHN5c3RlbS4KKyAgIFZhcmlvdXMgcHJvamVjdHMg YXJlIHVzaW5nICptZXNvbiogdG9kYXkgYW5kIGNhbiBiZSBidWlsdAorICAgd2l0aCB0aGlzIHBh Y2thZ2UgdHlwZS4gUFRYZGlzdCB3aWxsIHByZXBhcmUgaXQgdG8gY29tcGlsZSBzb3VyY2VzIGlu CisgICBhY2NvcmRhbmNlIHRvIHRoZSB0YXJnZXQgbGlicmFyaWVzIGFuZCB0aGVpciBzZXR0aW5n cy4gQ3JlYXRpbmcgc3VjaAorICAgYSBwYWNrYWdlIHdpbGwgYWxzbyBjcmVhdGUgYSBzaW1wbGUg dGVtcGxhdGUgcHJvamVjdCB0byBiZSB1c2VkIGFzIGEKKyAgIHN0YXJ0aW5nIHBvaW50IGZvciBk ZXZlbG9wbWVudC4KKworLSAgKipmb250Kio6IFRoaXMgcGFja2FnZSBpcyBhIGhlbHBlciB0byBh ZGQgWCBmb250IGZpbGVzIHRvIHRoZSByb290CisgICBmaWxlc3lzdGVtLiBUaGlzIHBhY2thZ2Ug ZG9lcyBub3QgY3JlYXRlIGFuIGFkZGl0aW9uYWwgSVBLRywgaW5zdGVhZAorICAgaXQgYWRkcyB0 aGUgZm9udCB0byB0aGUgZXhpc3RpbmcgZm9udCBJUEtHLiBUaGlzIGluY2x1ZGVzIHRoZQorICAg Z2VuZXJhdGlvbiBvZiB0aGUgZGlyZWN0b3J5IGluZGV4IGZpbGVzLCByZXF1aXJlZCBieSB0aGUg WG9yZworICAgZnJhbWV3b3JrIHRvIHJlY29nbml6ZSB0aGUgZm9udCBmaWxlLgorCistICAqKnNy Yy1saW51eC1kcml2ZXIqKjogVGhpcyBraW5kIG9mIHBhY2thZ2UgYnVpbGRzIGFuIG91dCBvZiB0 cmVlCisgICBrZXJuZWwgZHJpdmVyLiBJdCBhbHNvIGNyZWF0ZXMgYSBkcml2ZXIgdGVtcGxhdGUg dG8gZ2l2ZSB0aGUKKyAgIGRldmVsb3BlciBhbiBlYXN5IHBvaW50IHRvIHN0YXJ0LgorCistICAq Kmtlcm5lbCoqOiBQVFhkaXN0IGNvbWVzIHdpdGggdGhlIGFiaWxpdHkgdG8gaGFuZGxlIG9uZSBr ZXJuZWwgaW4gaXRzCisgICBwbGF0Zm9ybS4gVGhpcyB0eXBlIG9mIHBhY2thZ2UgZW5hYmxlcyB1 cyB0byBoYW5kbGUgbW9yZSB0aGFuIG9uZSBrZXJuZWwgaW4KKyAgIHRoZSBwcm9qZWN0LgorCist ICAqKmJhcmVib3gqKjogUFRYZGlzdCBjb21lcyB3aXRoIHRoZSBhYmlsaXR5IHRvIGhhbmRsZSBv bmUgYm9vdGxvYWRlciBpbiBpdHMKKyAgIHBsYXRmb3JtLiBUaGlzIHR5cGUgb2YgcGFja2FnZSBl bmFibGVzIHVzIHRvIGhhbmRsZSBtb3JlIHRoYW4gb25lIGJvb3Rsb2FkZXIKKyAgIGluIHRoZSBw cm9qZWN0LgorCistICAqKmltYWdlLXRneioqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBjcmVhdGVz IGEgdGFyIGJhbGwgZnJvbSBhIGxpc3Qgb2YKKyAgIHBhY2thZ2VzLiBJdCBpcyBvZnRlbiB1c2Vz IGFzIGFuIGlucHV0IGZvciBvdGhlciBpbWFnZSBwYWNrYWdlcy4KKworLSAgKippbWFnZS1nZW5p bWFnZSoqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBjYW4gaGFuZGxlIGFsbCBraW5kIG9mIGltYWdl CisgICBnZW5lcmF0aW9uIGZvciBhbG1vc3QgZXZlcnkgdGFyZ2V0IGluZGVwZW5kZW50IG9mIGl0 cyBjb21wbGV4aXR5LgorCistICAqKmJsc3BlYy1lbnRyeSoqOiBQVFhkaXN0IGNvbWVzIHdpdGgg dGhlIGFiaWxpdHkgdG8gaGFuZGxlIG9uZSBib290c3BlYyBpbiBpdHMKKyAgIHBsYXRmb3JtLiBU aGlzIHR5cGUgb2YgcGFja2FnZSBlbmFibGVzIHVzIHRvIGhhbmRsZSBtb3JlIHRoYW4gb25lIGJv b3RzcGVjCisgICBpbiB0aGUgcHJvamVjdC4KKworLi4gX2Zvb19leGFtcGxlOgorCitSdWxlIEZp bGUgQ3JlYXRpb24KK35+fn5+fn5+fn5+fn5+fn5+fgorCitUbyBjcmVhdGUgc3VjaCBhIG5ldyBw YWNrYWdlLCB3ZSBjcmVhdGUgYSBwcm9qZWN0IGxvY2FsIGBgcnVsZXMvYGAKK2RpcmVjdG9yeSBm aXJzdC4gVGhlbiB3ZSBydW4KKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgICQgcHR4ZGlz dCBuZXdwYWNrYWdlIDxwYWNrYWdlIHR5cGU+CisKK0lmIHdlIG9taXQgdGhlIDxgYHBhY2thZ2Ug dHlwZWBgXCA+LCBQVFhkaXN0IHdpbGwgbGlzdCBhbGwgYXZhaWxhYmxlCitwYWNrYWdlIHR5cGVz LgorCitJbiBvdXIgZmlyc3QgZXhhbXBsZSwgd2Ugd2FudCB0byBhZGQgYSBuZXcgdGFyZ2V0IHR5 cGUgYXJjaGl2ZSBwYWNrYWdlLgorV2hlbiBydW5uaW5nIHRoZQorCisuLiBjb2RlLWJsb2NrOjog dGV4dAorCisgICAgJCBwdHhkaXN0IG5ld3BhY2thZ2UgdGFyZ2V0CisKK2NvbW1hbmQsIFBUWGRp c3QgYXNrcyBhIGZldyBxdWVzdGlvbnMgYWJvdXQgdGhpcyBwYWNrYWdlLiBUaGlzCitpbmZvcm1h dGlvbiBpcyB0aGUgYmFzaWMgZGF0YSBQVFhkaXN0IG11c3Qga25vdyBhYm91dCB0aGUgcGFja2Fn ZS4KKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgIHB0eGRpc3Q6IGNyZWF0aW5nIGEgbmV3 ICd0YXJnZXQnIHBhY2thZ2U6CisKKyAgICBwdHhkaXN0OiBlbnRlciBwYWNrYWdlIG5hbWUuLi4u Li4uOiBmb28KKyAgICBwdHhkaXN0OiBlbnRlciB2ZXJzaW9uIG51bWJlci4uLi4uOiAxLjEuMAor ICAgIHB0eGRpc3Q6IGVudGVyIFVSTCBvZiBiYXNlZGlyLi4uLi46IGh0dHA6Ly93d3cuZm9vLmNv bS9kb3dubG9hZC9zcmMKKyAgICBwdHhkaXN0OiBlbnRlciBzdWZmaXguLi4uLi4uLi4uLi4uOiB0 YXIuZ3oKKyAgICBwdHhkaXN0OiBlbnRlciBwYWNrYWdlIGF1dGhvci4uLi4uOiBNeSBOYW1lIDxt ZUBteS1vcmcuY29tPgorICAgIHB0eGRpc3Q6IGVudGVyIHBhY2thZ2Ugc2VjdGlvbi4uLi46IHBy b2plY3Rfc3BlY2lmaWMKKworV2hhdCB3ZSBoYXZlIHRvIGFuc3dlcjoKKworLSAgKipwYWNrYWdl IG5hbWUqKjogQXMgdGhpcyBraW5kIG9mIHBhY2thZ2UgaGFuZGxlcyBhIHNvdXJjZSBhcmNoaXZl LAorICAgdGhlIGNvcnJlY3QgYW5zd2VyIGhlcmUgaXMgdGhlIGJhc2VuYW1lIG9mIHRoZSBhcmNo aXZl4oCZcyBmaWxlIG5hbWUuCisgICBJZiBpdHMgZnVsbCBuYW1lIGlzIGBgZm9vLTEuMS4wLnRh ci5nemBgLCB0aGVuIGBgZm9vYGAgaXMgdGhlCisgICBiYXNlbmFtZSB0byBlbnRlciBoZXJlLgor CistICAqKnZlcnNpb24gbnVtYmVyKio6IE1vc3Qgc291cmNlIGFyY2hpdmVzIGFyZSB1c2luZyBh IHJlbGVhc2Ugb3IKKyAgIHZlcnNpb24gbnVtYmVyIGluIHRoZWlyIGZpbGUgbmFtZS4gSWYgaXRz IGZ1bGwgbmFtZSBpcworICAgYGBmb28tMS4xLjAudGFyLmd6YGAsIHRoZW4gYGAxLjEuMGBgIGlz IHRoZSB2ZXJzaW9uIG51bWJlciB0byBlbnRlcgorICAgaGVyZS4KKworLSAgKipVUkwgb2YgYmFz ZWRpcioqOiBUaGlzIFVSTCB0ZWxscyBQVFhkaXN0IHdoZXJlIHRvIGRvd25sb2FkIHRoZQorICAg c291cmNlIGFyY2hpdmUgZnJvbSB0aGUgd2ViIChpZiBub3QgYWxyZWFkeSBkb25lKS4gSWYgdGhl IGZ1bGwgVVJMIHRvCisgICBkb3dubG9hZCB0aGUgYXJjaGl2ZSBpcworICAgYGBodHRwOi8vd3d3 LmZvby5jb20vZG93bmxvYWQvc3JjL2Zvby0xLjEuMC50YXIuZ3pgYCwgdGhlIGJhc2VkaXIKKyAg IHBhcnQgYGBodHRwOi8vd3d3LmZvby5jb20vZG93bmxvYWQvc3JjYGAgaXMgdG8gYmUgZW50ZXJl ZCBoZXJlLgorCistICAqKnN1ZmZpeCoqOiBBcmNoaXZlcyBhcmUgdXNpbmcgdmFyaW91cyBmb3Jt YXRzIGZvciBkaXN0cmlidXRpb24uCisgICBQVFhkaXN0IHVzZXMgdGhlICpzdWZmaXgqIGVudHJ5 IHRvIHNlbGVjdCB0aGUgbWF0Y2hpbmcgZXh0cmFjdGlvbgorICAgdG9vbC4gSWYgdGhlIGFyY2hp dmXigJlzIGZ1bGwgbmFtZSBpcyBgYGZvby0xLjEuMC50YXIuZ3pgYCwgdGhlbgorICAgYGB0YXIu Z3pgYCBpcyB0aGUgc3VmZml4IHRvIGVudGVyIGhlcmUuCisKKy0gICoqcGFja2FnZSBhdXRob3Iq KjogSWYgd2UgaW50ZW5kIHRvIGNvbnRyaWJ1dGUgdGhpcyBuZXcgcGFja2FnZSB0bworICAgUFRY ZGlzdCBtYWlubGluZSwgd2Ugc2hvdWxkIGFkZCBvdXIgbmFtZSBoZXJlLiBUaGlzIG5hbWUgd2ls bCBiZSB1c2VkCisgICBpbiB0aGUgY29weXJpZ2h0IG5vdGUgb2YgdGhlIHJ1bGUgZmlsZSBhbmQg d2lsbCBhbHNvIGJlIGFkZGVkIHRvIHRoZQorICAgZ2VuZXJhdGVkIGlwa2cuIFdoZW4geW91IHJ1 biBgYHB0eGRpc3Qgc2V0dXBgYCBwcmlvciB0byB0aGlzIGNhbGwsCisgICB5b3UgY2FuIGVudGVy IHlvdXIgbmFtZSBhbmQgeW91ciBlbWFpbCBhZGRyZXNzLCBzbyBQVFhkaXN0IHdpbGwgdXNlCisg ICBpdCBhcyB0aGUgZGVmYXVsdCAodmVyeSBoYW5keSBpZiB5b3UgaW50ZW5kIHRvIGFkZCBtYW55 IG5ldworICAgcGFja2FnZXMpLgorCistICAqKnBhY2thZ2Ugc2VjdGlvbioqOiBXZSBjYW4gZW50 ZXIgaGVyZSB0aGUgbWVudSBzZWN0aW9uIG5hbWUgd2hlcmUKKyAgIG91ciBuZXcgcGFja2FnZSBt ZW51IGVudHJ5IHNob3VsZCBiZSBsaXN0ZWQuIEluIHRoZSBmaXJzdCBzdGVwIHdlIGNhbgorICAg bGVhdmUgdGhlIGRlZmF1bHQgbmFtZSB1bmNoYW5nZWQuIEl04oCZcyBhIHN0cmluZyBpbiB0aGUg bWVudSBmaWxlCisgICBvbmx5LCBzbyBjaGFuZ2luZyBpdCBsYXRlciBvbiBpcyBzdGlsbCBwb3Nz aWJsZS4KKworTWFrZSBpdCBXb3JrCit+fn5+fn5+fn5+fn4KKworR2VuZXJhdGluZyB0aGUgcnVs ZSBmaWxlIGlzIG9ubHkgb25lIG9mIHRoZSByZXF1aXJlZCBzdGVwcyB0byBnZXQgYSBuZXcKK3Bh Y2thZ2UuIFRoZSBuZXh0IHN0ZXBzIHRvIG1ha2UgaXQgd29yayBhcmUgdG8gY2hlY2sgaWYgYWxs IHN0YWdlcyBhcmUKK3dvcmtpbmcgYXMgZXhwZWN0ZWQgYW5kIHRvIHNlbGVjdCB0aGUgcmVxdWly ZWQgcGFydHMgdG8gZ2V0IHRoZW0KK2luc3RhbGxlZCBpbiB0aGUgdGFyZ2V0IHJvb3QgZmlsZXN5 c3RlbS4gQWxzbyB3ZSBtdXN0IGZpbmQgYSByZWFzb25hYmxlCitsb2NhdGlvbiB3aGVyZSB0byBh ZGQgb3VyIG5ldyBtZW51IGVudHJ5IHRvIGNvbmZpZ3VyZSB0aGUgcGFja2FnZS4KKworVGhlIGdl bmVyYXRlZCBza2VsZXRvbiBzdGFydHMgdG8gYWRkIHRoZSBuZXcgbWVudSBlbnRyeSBpbiB0aGUg bWFpbgorY29uZmlndXJlIG1lbnUgKGlmIHdlIGxlZnQgdGhlIHNlY3Rpb24gbmFtZSB1bmNoYW5n ZWQpLiBSdW5uaW5nCitgYHB0eGRpc3QgbWVudWNvbmZpZ2BgIHdpbGwgc2hvdyBpdCBvbiB0b3Ag b2YgYWxsIG90aGVyIG1lbnVzIGVudHJpZXMuCisKKy4uIGltcG9ydGFudDo6IAorICBUbyBiZSBh YmxlIHRvIGltcGxlbWVudCBhbmQgdGVzdCBhbGwgdGhlIG90aGVyIHJlcXVpcmVkIHN0ZXBzIGZv ciBhZGRpbmcKKyAgYSBuZXcgcGFja2FnZSwgd2UgZmlyc3QgbXVzdCBlbmFibGUgdGhlIHBhY2th Z2UgZm9yIGJ1aWxkaW5nLiAoRmluZQorICB0dW5pbmcgdGhlIG1lbnUgY2FuIGhhcHBlbiBsYXRl ciBvbi4pCisKKworVGhlIHJ1bGUgZmlsZSBza2VsZXRvbiBzdGlsbCBsYWNrcyBzb21lIGltcG9y dGFudCBpbmZvcm1hdGlvbi4gTGV04oCZcwordGFrZSBhIGxvb2sgaW50byBzb21lIG9mIHRoZSB0 b3AgbGluZXMgb2YgdGhlIGdlbmVyYXRlZCBydWxlIGZpbGUKK2BgLi9ydWxlcy9mb28ubWFrZWBg OgorCisuLiBjb2RlLWJsb2NrOjogbWFrZQorCisgICAgRk9PX1ZFUlNJT04JOj0gMS4xLjAKKyAg ICBGT09fTUQ1CTo9CisgICAgRk9PCQk6PSBmb28tJChGT09fVkVSU0lPTikKKyAgICBGT09fU1VG RklYCTo9IHRhci5negorICAgIEZPT19VUkwJOj0gaHR0cDovL3d3dy5mb28uY29tL2Rvd25sb2Fk L3NyYy8kKEZPTykuJChGT09fU1VGRklYKQorICAgIEZPT19TT1VSQ0UJOj0gJChTUkNESVIpLyQo Rk9PKS4kKEZPT19TVUZGSVgpCisgICAgRk9PX0RJUgk6PSAkKEJVSUxERElSKS8kKEZPTykKKyAg ICBGT09fTElDRU5TRQk6PSB1bmtub3duCisKK1dlIGNhbiBmaW5kIHRoZXNlIGxpbmVzIHdpdGgg ZGlmZmVyZW50IGNvbnRlbnQgaW4gbW9zdCBvciBhbGwgb2YgdGhlCitvdGhlciBydWxlIGZpbGVz IFBUWGRpc3QgY29tZXMgd2l0aC4gVXAgdG8gdGhlIHVuZGVybGluZSBjaGFyYWN0ZXIgaXMKK2Fs d2F5cyB0aGUgcGFja2FnZSBuYW1lIGFuZCBhZnRlciB0aGUgdW5kZXJsaW5lIGNoYXJhY3RlciBp cyBhbHdheXMKK1BUWGRpc3Qgc3BlY2lmaWMuIFdoYXQgZG9lcyBpdCBtZWFuOgorCistICBgYCpf VkVSU0lPTmBgIGJyaW5ncyBpbiB0aGUgdmVyc2lvbiBudW1iZXIgb2YgdGhlIHJlbGVhc2UgYW5k IGlzIHVzZWQKKyAgIGZvciB0aGUgZG93bmxvYWQgYW5kIElQS0cvT1BLRyBwYWNrYWdlIGdlbmVy YXRpb24uCisKKy0gIGBgKl9NRDVgYCB0byBiZSBzdXJlIHRoZSBjb3JyZWN0IHBhY2thZ2UgaGFz IGJlZW4gZG93bmxvYWRlZCwgUFRYZGlzdAorICAgY2hlY2tzIHRoZSBnaXZlbiBNRDUgc3VtIGFn YWluc3QgdGhlIGFyY2hpdmUgY29udGVudC4gSWYgYm90aCBzdW1zIGRvCisgICBub3QgbWF0Y2gs IFBUWGRpc3QgcmVqZWN0cyB0aGUgYXJjaGl2ZSBhbmQgZmFpbHMgdGhlIGN1cnJlbnRseQorICAg cnVubmluZyBidWlsZC4KKworLSAgYGAqX1NVRkZJWGBgIGRlZmluZXMgdGhlIGFyY2hpdmUgdHlw ZSwgdG8gbWFrZSBQVFhkaXN0IGNob29zaW5nIHRoZQorICAgY29ycmVjdCBleHRyYWN0aW5nIHRv b2wuCisKKy0gIGBgKl9VUkxgYCBkZWZpbmVzIHRoZSBmdWxsIHF1YWxpZmllZCBVUkwgaW50byB0 aGUgd2ViIGZvciBkb3dubG9hZC4gSWYKKyAgIGFsdGVybmF0aXZlIGRvd25sb2FkIGxvY2F0aW9u cyBhcmUga25vd24sIHRoZXkgY2FuIGJlIGxpc3RlZCBpbiB0aGlzCisgICB2YXJpYWJsZSwgZGVs aW1pdGVyIGNoYXJhY3RlciBpcyB0aGUgc3BhY2UuCisKKy0gIGBgKl9TT1VSQ0VgYCB0ZWxscyBQ VFhkaXN0IHdoZXJlIHRvIHN0b3JlIHRoZSBkb3dubG9hZGVkIHBhY2thZ2UuCisKKy0gIGBgKl9E SVJgYCBwb2ludHMgdG8gdGhlIGRpcmVjdG9yeSB0aGlzIHBhY2thZ2Ugd2lsbCBiZSBidWlsdCBs YXRlciBvbgorICAgYnkgUFRYZGlzdC4KKworLSAgYGAqX0xJQ0VOU0VgYCBlbmFibGVzIHRoZSB1 c2VyIHRvIGdldCBhIGxpc3Qgb2YgbGljZW5zZXMgc2hlL2hlIGlzCisgICB1c2luZyBpbiBoZXIv aGlzIHByb2plY3QgKGxpY2Vuc2VzIG9mIHRoZSBlbmFibGVkIHBhY2thZ2VzKS4KKworQWZ0ZXIg ZW5hYmxpbmcgdGhlIG1lbnUgZW50cnksIHdlIGNhbiBzdGFydCB0byBjaGVjayB0aGUgKmdldCog YW5kCisqZXh0cmFjdCogc3RhZ2VzLCBjYWxsaW5nIHRoZW0gbWFudWFsbHkgb25lIGFmdGVyIGFu b3RoZXIuCisKKy4uIG5vdGU6OiBUaGUgc2hvd24gY29tbWFuZHMgYmVsb3cgZXhwZWN0IHRoYXQg UFRYZGlzdCBkb3dubG9hZHMgdGhlCisgIGFyY2hpdmVzIHRvIGEgZ2xvYmFsIGRpcmVjdG9yeSBu YW1lZCBgYGdsb2JhbF9zcmNgYC4gVGhpcyBpcyBub3QgdGhlCisgIGRlZmF1bHQgc2V0dGluZywg YnV0IHdlIHJlY29tbWVuZCB0byB1c2UgYSBnbG9iYWwgZGlyZWN0b3J5IHRvIHNoYXJlIGFsbAor ICBhcmNoaXZlcyBiZXR3ZWVuIFBUWGRpc3QgYmFzZWQgcHJvamVjdHMuIEFkdmFudGFnZSBpcyBl dmVyeSBkb3dubG9hZAorICBoYXBwZW5zIG9ubHkgb25jZS4gUmVmZXIgdG8gdGhlIGBgc2V0dXBg YCBjb21tYW5kIFBUWGRpc3QgcHJvdmlkZXMuCisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAg ICAkIHB0eGRpc3QgZ2V0IGZvbworCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgdGFyZ2V0OiBmb28tMS4xLjAudGFyLmd6CisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisKKyAgICAtLTIwMDktMTItMjEgMTA6NTQ6NDUtLSAgaHR0cDovL3d3dy5mb28uY29tL2Rv d25sb2FkL3NyYy9mb28tMS4xLjAudGFyLmd6CisgICAgTGVuZ3RoOiAyOTExOTAgKDI4NEspIFth cHBsaWNhdGlvbi94LWd6aXBdCisgICAgU2F2aW5nIHRvOiBgL2dsb2JhbF9zcmMvZm9vLTEuMS4w LnRhci5nei5YWFhYT0duY1pBJworCisgICAgMTAwJVs9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT5dIDI5MSwxOTAgICAgICAxNzBLL3MgICBpbiAxLjdzCisKKyAgICAyMDA5 LTEyLTIxIDEwOjU0OjQ4ICgxNzAgS0IvcykgLSBgL2dsb2JhbF9zcmMvZm9vLTEuMS4wLnRhci5n eicgc2F2ZWQgWzI5MTE5MC8yOTExOTBdCisKK1RoaXMgY29tbWFuZCBzaG91bGQgc3RhcnQgdG8g ZG93bmxvYWQgdGhlIHNvdXJjZSBhcmNoaXZlLiBJZiBpdCBmYWlscywKK3dlIHNob3VsZCBjaGVj ayBvdXIgbmV0d29yayBjb25uZWN0aW9uLCBwcm94eSBzZXR1cCBvciBpZiB0aGUgZ2l2ZW4gVVJM CitpbiB1c2UgaXMgY29ycmVjdC4KKworLi4gbm90ZTo6IFNvbWV0aW1lcyB3ZSBkbyBub3Qga25v dyB0aGUgY29udGVudCBvZiBhbGwgdGhlIG90aGVyIHZhcmlhYmxlcyBpbgorICB0aGUgcnVsZSBm aWxlLiBUbyBnZXQgYW4gaWRlYSB3aGF0IGNvbnRlbnQgYSB2YXJpYWJsZSBoYXMsIHdlIGNhbiBh c2sKKyAgUFRYZGlzdCBhYm91dCBpdDoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgICQg cHR4ZGlzdCBwcmludCBGT09fVVJMCisgICAgaHR0cDovL3d3dy5mb28uY29tL2Rvd25sb2FkL3Ny Yy9mb28tMS4xLjAudGFyLmd6CisKK1RoZSBuZXh0IHN0ZXAgd291bGQgYmUgdG8gZXh0cmFjdCB0 aGUgYXJjaGl2ZS4gQnV0IGFzIFBUWGRpc3QgY2hlY2tzIHRoZQorTUQ1IHN1bSBpbiB0aGlzIGNh c2UsIHRoaXMgc3RlcCB3aWxsIGZhaWwsIGJlY2F1c2UgdGhlIGBgRk9PX01ENWBgCit2YXJpYWJs ZSBpcyBzdGlsbCBlbXB0eS4gTGV04oCZcyBmaWxsIGl0OgorCisuLiBjb2RlLWJsb2NrOjogdGV4 dAorCisgICAgJCBtZDVzdW0gL2dsb2JhbF9zcmMvZm9vLTEuMS4wLnRhci5negorICAgIDlhMDk4 NDBhYjc3NWExMzllYmIwMGY1N2E1ODdiNDQ3CisKK1RoaXMgc3RyaW5nIG11c3QgYmUgYXNzaWdu ZWQgdG8gdGhlIEZPT19NRDUgaW4gb3VyIG5ldyBgYGZvby5tYWtlYGAKK3J1bGUgZmlsZToKKwor Li4gY29kZS1ibG9jazo6IHRleHQKKworICAgIEZPT19NRDUJCTo9IDlhMDk4NDBhYjc3NWExMzll YmIwMGY1N2E1ODdiNDQ3CisKK1dlIGFyZSBub3cgcHJlcGFyZWQgZm9yIHRoZSBuZXh0IHN0ZXA6 CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICAkIHB0eGRpc3QgZXh0cmFjdCBmb28KKwor ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdGFyZ2V0OiBmb28uZXh0cmFjdAorICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBleHRyYWN0OiBhcmNoaXZlPS9nbG9iYWxf c3JjL2Zvby0xLjEuMC50YXIuZ3oKKyAgICBleHRyYWN0OiBkZXN0PS9ob21lL2piZS9teV9uZXdf cHJqL2J1aWxkLXRhcmdldAorICAgIFBBVENISU46IHBhY2tldD1mb28tMS4xLjAKKyAgICBQQVRD SElOOiBkaXI9L2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0xLjEuMAorICAg IFBBVENISU46IG5vIHBhdGNoZXMgZm9yIGZvby0xLjEuMCBhdmFpbGFibGUKKyAgICBGaXhpbmcg dXAgL2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0xLjEuMC9jb25maWd1cmUK KyAgICBmaW5pc2hlZCB0YXJnZXQgZm9vLmV4dHJhY3QKKworSW4gdGhpcyBleGFtcGxlIHdlIGV4 cGVjdCBhbiBhdXRvdG9vbGl6ZWQgc291cmNlIHBhY2thZ2UuIEUuZy4gdG8KK3ByZXBhcmUgdGhl IGJ1aWxkLCB0aGUgYXJjaGl2ZSBjb21lcyB3aXRoIGEgYGBjb25maWd1cmVgYCBzY3JpcHQuIFRo aXMKK2lzIHRoZSBkZWZhdWx0IGNhc2UgZm9yIFBUWGRpc3QuIFNvLCB0aGVyZSBpcyBubyBuZWVk IHRvIG1vZGlmeSB0aGUgcnVsZQorZmlsZSBhbmQgd2UgY2FuIHNpbXBseSBydW46CisKKy4uIGNv ZGUtYmxvY2s6OiB0ZXh0CisKKyAgICAkIHB0eGRpc3QgcHJlcGFyZSBmb28KKworICAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdGFyZ2V0OiBmb28ucHJlcGFyZQorICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisKKyAgICBbLi4uXQorCisgICAgY2hlY2tpbmcgYnVpbGQgc3lzdGVt IHR5cGUuLi4gaTY4Ni1ob3N0LWxpbnV4LWdudQorICAgIGNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5 cGUuLi4gfHB0eGRpc3RDb21waWxlck5hbWV8CisgICAgY2hlY2tpbmcgd2hldGhlciB0byBlbmFi bGUgbWFpbnRhaW5lci1zcGVjaWZpYyBwb3J0aW9ucyBvZiBNYWtlZmlsZXMuLi4gbm8KKyAgICBj aGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmluL2luc3RhbGwg LWMKKyAgICBjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4geWVz CisgICAgY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAuLi4gL2Jpbi9ta2RpciAt cAorICAgIGNoZWNraW5nIGZvciBnYXdrLi4uIGdhd2sKKyAgICBjaGVja2luZyB3aGV0aGVyIG1h a2Ugc2V0cyAkKE1BS0UpLi4uIHllcworICAgIGNoZWNraW5nIGZvciB8cHR4ZGlzdENvbXBpbGVy TmFtZXwtc3RyaXAuLi4gfHB0eGRpc3RDb21waWxlck5hbWV8LXN0cmlwCisgICAgY2hlY2tpbmcg Zm9yIHxwdHhkaXN0Q29tcGlsZXJOYW1lfC1nY2MuLi4gfHB0eGRpc3RDb21waWxlck5hbWV8LWdj YworICAgIGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4u LiBhLm91dAorCisgICAgWy4uLl0KKworICAgIGNvbmZpZ3VyZTogY3JlYXRpbmcgLi9jb25maWcu c3RhdHVzCisgICAgY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKKyAgICBjb25maWcu c3RhdHVzOiBjcmVhdGluZyBwcGFfcHJvdG9jb2wvTWFrZWZpbGUKKyAgICBjb25maWcuc3RhdHVz OiBjcmVhdGluZyBjb25maWcuaAorICAgIGNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBkZXBmaWxl cyBjb21tYW5kcworICAgIGZpbmlzaGVkIHRhcmdldCBmb28ucHJlcGFyZQorCitBdCB0aGlzIHN0 YWdlIHRoaW5ncyBjYW4gZmFpbDoKKworLSAgQSB3cm9uZyBvciBubyBNRDUgc3VtIHdhcyBnaXZl bgorCistICBUaGUgYGBjb25maWd1cmVgYCBzY3JpcHQgaXMgbm90IGNyb3NzIGNvbXBpbGUgYXdh cmUKKworLSAgVGhlIHBhY2thZ2UgZGVwZW5kcyBvbiBleHRlcm5hbCBjb21wb25lbnRzIChsaWJy YXJpZXMgZm9yIGV4YW1wbGUpCisKK0lmIHRoZSBgYGNvbmZpZ3VyZWBgIHNjcmlwdCBpcyBub3Qg Y3Jvc3MgY29tcGlsZSBhd2FyZSwgd2UgYXJlIG91dCBvZgorbHVjay4gV2UgbXVzdCBwYXRjaCB0 aGUgc291cmNlIGFyY2hpdmUgaW4gdGhpcyBjYXNlIHRvIG1ha2UgaXQgd29yay4KK1JlZmVyIHRv IHRoZSBzZWN0aW9uIDpyZWY6YGNvbmZpZ3VyZV9yZWJ1aWxkYCBvbiBob3cgdG8gdXNlCitQVFhk aXN04oCZcyBmZWF0dXJlcyB0byBzaW1wbGlmeSB0aGlzIHRhc2suCitJZiB0aGUgcGFja2FnZSBk ZXBlbmRzIG9uIGV4dGVybmFsIGNvbXBvbmVudHMsIHRoZXNlIGNvbXBvbmVudHMgbWlnaHQKK2Jl IGFscmVhZHkgcGFydCBvZiBQVFhkaXN0LiBJbiB0aGlzIGNhc2Ugd2UganVzdCBoYXZlIHRvIGFk ZCB0aGlzCitkZXBlbmRlbmN5IGludG8gdGhlIG1lbnUgZmlsZSBhbmQgd2UgYXJlIGRvbmUuIEJ1 dCBpZiBQVFhkaXN0IGNhbm5vdAorZnVsZmlsbCB0aGlzIGRlcGVuZGVuY3ksIHdlIGFsc28gbXVz dCBhZGQgaXQgYXMgYSBzZXBhcmF0ZSBwYWNrYWdlCitmaXJzdC4KKworSWYgdGhlICpwcmVwYXJl KiBzdGFnZSBoYXMgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5LCB0aGUgbmV4dCBzdGVwIGlzIHRvCitj b21waWxlIHRoZSBwYWNrYWdlLgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICAgJCBwdHhk aXN0IGNvbXBpbGUgZm9vCisKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHRhcmdl dDogZm9vLmNvbXBpbGUKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgbWFrZVsx XTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQv Zm9vLTEuMS4wJworICAgIG1ha2UgIGFsbC1yZWN1cnNpdmUKKyAgICBtYWtlWzJdOiBFbnRlcmlu ZyBkaXJlY3RvcnkgYC9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxkLXRhcmdldC9mb28tMS4xLjAn CisgICAgbWFrZVszXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9i dWlsZC10YXJnZXQvZm9vLTEuMS4wJworCisgICAgWy4uLl0KKworICAgIG1ha2VbM106IExlYXZp bmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4w JworICAgIG1ha2VbMl06IExlYXZpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9i dWlsZC10YXJnZXQvZm9vLTEuMS4wJworICAgIG1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5IGAv aG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJworICAgIGZpbmlzaGVk IHRhcmdldCBmb28uY29tcGlsZQorCitBdCB0aGlzIHN0YWdlIHRoaW5ncyBjYW4gZmFpbDoKKwor LSAgVGhlIGJ1aWxkIHN5c3RlbSBpcyBub3QgY3Jvc3MgY29tcGlsZSBhd2FyZSAoaXQgdHJpZXMg dG8gZXhlY3V0ZSBqdXN0CisgICBjcmVhdGVkIHRhcmdldCBiaW5hcmllcyBmb3IgZXhhbXBsZSkK KworLSAgVGhlIHBhY2thZ2UgZGVwZW5kcyBvbiBleHRlcm5hbCBjb21wb25lbnRzIChsaWJyYXJp ZXMgZm9yIGV4YW1wbGUpCisgICBub3QgZGV0ZWN0ZWQgYnkgYGBjb25maWd1cmVgYAorCistICBT b3VyY2VzIGFyZSBpZ25vcmluZyB0aGUgZW5kaWFubmVzcyBvZiBzb21lIGFyY2hpdGVjdHVyZXMg b3IgdXNpbmcKKyAgIGhlYWRlciBmaWxlcyBmcm9tIHRoZSBidWlsZCBob3N0IHN5c3RlbSAoZnJv bSBgYC91c3IvaW5jbHVkZWBgIGZvcgorICAgZXhhbXBsZSkKKworLSAgVGhlIGxpbmtlciB1c2Vz IGxpYnJhcmllcyBmcm9tIHRoZSBidWlsZCBob3N0IHN5c3RlbSAoZnJvbQorICAgYGAvdXNyL2xp YmBgIGZvciBleGFtcGxlKSBieSBhY2NpZGVudAorCitJbiBhbGwgb2YgdGhlc2UgY2FzZXMgd2Ug bXVzdCBwYXRjaCB0aGUgc291cmNlcyB0byBtYWtlIHRoZW0gd29yay4gUmVmZXIKK3RvIHNlY3Rp b24gOnJlZjpgcGF0Y2hpbmdfcGFja2FnZXNgIG9uIGhvdyB0byB1c2UgUFRYZGlzdOKAmXMKK2Zl YXR1cmVzIHRvIHNpbXBsaWZ5IHRoaXMgdGFzay4KKworSW4gdGhpcyBleGFtcGxlIHdlIGV4cGVj dCB0aGUgYmVzdCBjYXNlOiBldmVyeXRoaW5nIHdlbnQgZmluZSwgZXZlbiBmb3IKK2Nyb3NzIGNv bXBpbGluZy4gU28sIHdlIGNhbiBjb250aW51ZSB3aXRoIHRoZSBuZXh0IHN0YWdlOiAqaW5zdGFs bCoKKworLi4gY29kZS1ibG9jazo6IHRleHQKKworICAgICQgcHR4ZGlzdCBpbnN0YWxsIGZvbwor CisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB0YXJnZXQ6IGZvby5pbnN0YWxsCisg ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIG1ha2VbMV06IEVudGVyaW5nIGRpcmVj dG9yeSBgL2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0xLjEuMCcKKyAgICBt YWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxkLXRh cmdldC9mb28tMS4xLjAnCisgICAgbWFrZVszXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvaG9tZS9q YmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJworICAgIHRlc3QgLXogIi91c3Iv YmluIiB8fCAvYmluL21rZGlyIC1wICIvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQv Zm9vLTEuMS4wL3Vzci9iaW4iCisgICAgICAvdXNyL2Jpbi9pbnN0YWxsIC1jICdmb28nICcvaG9t ZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wL3Vzci9iaW4vZm9vJworICAg IG1ha2VbM106IExlYXZpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10 YXJnZXQvZm9vLTEuMS4wJworICAgIG1ha2VbMl06IExlYXZpbmcgZGlyZWN0b3J5IGAvaG9tZS9q YmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJworICAgIG1ha2VbMV06IExlYXZp bmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4w JworICAgIGZpbmlzaGVkIHRhcmdldCBmb28uaW5zdGFsbAorCisgICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgIHRhcmdldDogZm9vLmluc3RhbGwucG9zdAorICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIGZpbmlzaGVkIHRhcmdldCBmb28uaW5zdGFsbC5w b3N0CisKK1RoaXMgKmluc3RhbGwqIHN0YWdlIGRvZXMgbm90IGluc3RhbGwgYW55dGhpbmcgdG8g dGhlIHRhcmdldCByb290CitmaWxlc3lzdGVtLiBJdCBpcyBtb3N0bHkgaW50ZW5kZWQgdG8gaW5z dGFsbCBsaWJyYXJpZXMgYW5kIGhlYWRlciBmaWxlcworb3RoZXIgcHJvZ3JhbXMgc2hvdWxkIGxp bmsgYWdhaW5zdCBsYXRlciBvbi4KKworVGhlIGxhc3Qgc3RhZ2Ug4oCTICp0YXJnZXRpbnN0YWxs KiDigJMgaXMgdGhlIG9uZSB0aGF0IGRlZmluZXMgdGhlIHBhY2thZ2XigJlzCitjb21wb25lbnRz IHRvIGJlIGZvcndhcmRlZCB0byB0aGUgdGFyZ2V04oCZcyByb290IGZpbGVzeXN0ZW0uIER1ZSB0 byB0aGUKK2Fic2VuY2Ugb2YgYSBnZW5lcmljIHdheSwgdGhpcyBpcyB0aGUgdGFzayBvZiB0aGUg ZGV2ZWxvcGVyLiBTbywgYXQgdGhpcworcG9pbnQgb2YgdGltZSB3ZSBtdXN0IHJ1biBvdXIgZmF2 b3VyaXRlIGVkaXRvciBhZ2FpbiBhbmQgbW9kaWZ5IG91ciBuZXcKK3J1bGUgZmlsZSBgYC4vcnVs ZXMvZm9vLm1ha2VgYC4KKworVGhlIHNrZWxldG9uIGZvciB0aGUgKnRhcmdldGluc3RhbGwqIHN0 YWdlIGxvb2tzIGxpa2UgdGhpczoKKworLi4gY29kZS1ibG9jazo6IG1ha2UKKworICAgICMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICMgVGFyZ2V0LUluc3RhbGwKKyAgICAjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKworICAgICQoU1RBVEVESVIpL2Zvby50YXJnZXRpbnN0YWxsOgorICAgIAlAJChj YWxsIHRhcmdldGluZm8pCisKKyAgICAJQCQoY2FsbCBpbnN0YWxsX2luaXQsICBmb28pCisgICAg CUAkKGNhbGwgaW5zdGFsbF9maXh1cCwgZm9vLFBBQ0tBR0UsZm9vKQorICAgIAlAJChjYWxsIGlu c3RhbGxfZml4dXAsIGZvbyxQUklPUklUWSxvcHRpb25hbCkKKyAgICAJQCQoY2FsbCBpbnN0YWxs X2ZpeHVwLCBmb28sVkVSU0lPTiwkKEZPT19WRVJTSU9OKSkKKyAgICAJQCQoY2FsbCBpbnN0YWxs X2ZpeHVwLCBmb28sU0VDVElPTixiYXNlKQorICAgIAlAJChjYWxsIGluc3RhbGxfZml4dXAsIGZv byxBVVRIT1IsIk15IE5hbWUgPG1lQG15LW9yZy5jb20+IikKKyAgICAJQCQoY2FsbCBpbnN0YWxs X2ZpeHVwLCBmb28sREVQRU5EUywpCisgICAgCUAkKGNhbGwgaW5zdGFsbF9maXh1cCwgZm9vLERF U0NSSVBUSU9OLG1pc3NpbmcpCisKKyAgICAJQCQoY2FsbCBpbnN0YWxsX2NvcHksIGZvbywgMCwg MCwgMDc1NSwgJChGT09fRElSKS9mb29iYXIsIC9kZXYvbnVsbCkKKworICAgIAlAJChjYWxsIGlu c3RhbGxfZmluaXNoLCBmb28pCisgICAgCUAkKGNhbGwgdG91Y2gpCisKK1RoZSDigJxoZWFkZXLi gJ0gb2YgdGhpcyBzdGFnZSBkZWZpbmVzIHNvbWUgaW5mb3JtYXRpb24gSVBLRyBuZWVkcy4gVGhl CitpbXBvcnRhbnQgcGFydCB0aGF0IHdlIG11c3QgbW9kaWZ5IGlzIHRoZSBjYWxsIHRvIHRoZSBg YGluc3RhbGxfY29weWBgCittYWNybyAocmVmZXIgdG8gc2VjdGlvbiA6cmVmOmByZWZlcmVuY2Vf bWFjcm9zYCBmb3IgbW9yZSBkZXRhaWxzCithYm91dCB0aGlzIGtpbmQgb2YgbWFjcm9zKS4gVGhp cyBjYWxsIGluc3RydWN0cyBQVFhkaXN0IHRvIGluY2x1ZGUgdGhlCitnaXZlbiBmaWxlICh3aXRo IFVJRCwgR0lEIGFuZCBwZXJtaXNzaW9ucykgaW50byB0aGUgSVBLRywgd2hpY2ggbWVhbnMgdG8K K2luc3RhbGwgdGhpcyBmaWxlIHRvIHRoZSB0YXJnZXTigJlzIHJvb3QgZmlsZXN5c3RlbS4KKwor RnJvbSB0aGUgcHJldmlvdXMgKmluc3RhbGwqIHN0YWdlIHdlIGtub3cgdGhpcyBwYWNrYWdlIGlu c3RhbGxzIGFuCitleGVjdXRhYmxlIGNhbGxlZCBgYGZvb2BgIHRvIGxvY2F0aW9uIGBgL3Vzci9i aW5gYC4gV2UgY2FuIGRvIHRoZSBzYW1lCitmb3Igb3VyIHRhcmdldCBieSBjaGFuZ2luZyB0aGUg Kmluc3RhbGxcX2NvcHkqIGxpbmUgdG86CisKKy4uIGNvZGUtYmxvY2s6OiBub25lCisKKyAgICBA JChjYWxsIGluc3RhbGxfY29weSwgZm9vLCAwLCAwLCAwNzU1LCAkKEZPT19ESVIpL2ZvbywgL3Vz ci9iaW4vZm9vKQorCitUbyBjaGVjayBpdCwgd2UganVzdCBydW46CisKKy4uIGNvZGUtYmxvY2s6 OiB0ZXh0CisKKyAgICAkIHB0eGRpc3QgdGFyZ2V0aW5zdGFsbCBmb28KKworICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdGFyZ2V0OiBmb28udGFyZ2V0aW5zdGFsbAorICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBpbnN0YWxsX2luaXQ6ICAgcHJl cGFyaW5nIGZvciBpbWFnZSBjcmVhdGlvbi4uLgorICAgIGluc3RhbGxfaW5pdDogICBAQVJDSEAg LT4gaTM4NiAuLi4gZG9uZQorICAgIGluc3RhbGxfaW5pdDogICBwcmVpbnN0IG5vdCBhdmFpbGFi bGUKKyAgICBpbnN0YWxsX2luaXQ6ICAgcG9zdGluc3Qgbm90IGF2YWlsYWJsZQorICAgIGluc3Rh bGxfaW5pdDogICBwcmVybSBub3QgYXZhaWxhYmxlCisgICAgaW5zdGFsbF9pbml0OiAgIHBvc3Ry bSBub3QgYXZhaWxhYmxlCisgICAgaW5zdGFsbF9maXh1cDogIEBQQUNLQUdFQCAtPiBmb28gLi4u IGRvbmUuCisgICAgaW5zdGFsbF9maXh1cDogIEBQUklPUklUWUAgLT4gb3B0aW9uYWwgLi4uIGRv bmUuCisgICAgaW5zdGFsbF9maXh1cDogIEBWRVJTSU9OQCAtPiAxLjEuMCAuLi4gZG9uZS4KKyAg ICBpbnN0YWxsX2ZpeHVwOiAgQFNFQ1RJT05AIC0+IGJhc2UgLi4uIGRvbmUuCisgICAgaW5zdGFs bF9maXh1cDogIEBBVVRIT1JAIC0+ICJNeSBOYW1lIDxtZVxAbXktb3JnLmNvbT4iIC4uLiBkb25l LgorICAgIGluc3RhbGxfZml4dXA6ICBAREVTQ1JJUFRJT05AIC0+IG1pc3NpbmcgLi4uIGRvbmUu CisgICAgaW5zdGFsbF9jb3B5OgorICAgICAgc3JjPS9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxk LXRhcmdldC9mb28tMS4xLjAvZm9vCisgICAgICBkc3Q9L3Vzci9iaW4vZm9vCisgICAgICBvd25l cj0wCisgICAgICBncm91cD0wCisgICAgICBwZXJtaXNzaW9ucz0wNzU1CisgICAgeHBrZ19maW5p c2g6ICAgIGNvbGxlY3RpbmcgbGljZW5zZSAodW5rbm93bikgLi4uIGRvbmUuCisgICAgeHBrZ19m aW5pc2g6ICAgIGNyZWF0aW5nIGlwa2cgcGFja2FnZSAuLi4gZG9uZS4KKyAgICBmaW5pc2hlZCB0 YXJnZXQgZm9vLnRhcmdldGluc3RhbGwKKworICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICB0YXJnZXQ6IGZvby50YXJnZXRpbnN0YWxsLnBvc3QKKyAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBmaW5pc2hlZCB0YXJnZXQgZm9vLnRh cmdldGluc3RhbGwucG9zdAorCitBZnRlciB0aGlzIGNvbW1hbmQsIHRoZSB0YXJnZXTigJlzIHJv b3QgZmlsZXN5c3RlbSBjb250YWlucyBhIGZpbGUgY2FsbGVkCitgYC91c3IvYmluL2Zvb2BgIG93 bmVkIGJ5IHJvb3QsIGl0cyBncm91cCBpcyBhbHNvIHJvb3QgYW5kIGV2ZXJ5b25lIGhhcworZXhl Y3V0aW9uIHBlcm1pc3Npb25zLCBidXQgb25seSB0aGUgdXNlciByb290IGhhcyB3cml0ZSBwZXJt aXNzaW9ucy4KKworT25lIGxhc3QgdGFzayBvZiB0aGlzIHBvcnQgaXMgc3RpbGwgb3BlbjogQSBy ZWFzb25hYmxlIGxvY2F0aW9uIGZvcgordGhlIG5ldyBtZW51IGVudHJ5IGluIFBUWGRpc3TigJlz IG1lbnUgaGllcmFyY2h5LiBQVFhkaXN0IGFycmFuZ2VzIGl0cworbWVudXMgb24gdGhlIG1lYW5p bmcgb2YgZWFjaCBwYWNrYWdlLiBJcyBpdCBhIG5ldHdvcmsgcmVsYXRlZCB0b29sPyBPcgorYSBz Y3JpcHRpbmcgbGFuZ3VhZ2U/IE9yIGEgZ3JhcGhpY2FsIGFwcGxpY2F0aW9uPworRWFjaCBvZiB0 aGVzZSBnbG9iYWwgbWVhbmluZ3MgaGFzIGl0cyBvd24gc3VibWVudSwgd2hlcmUgd2UgY2FuIGFk ZAorb3VyIG5ldyBlbnRyeSB0by4gV2UganVzdCBoYXZlIHRvIGVkaXQgdGhlIGhlYWQgb2Ygb3Vy IG5ldyBtZW51IGZpbGUKK2BgLi9ydWxlcy9mb28uaW5gYCB0byBhZGQgaXQgdG8gYSBzcGVjaWZp YyBnbG9iYWwgbWVudS4gSWYgb3VyIG5ldworcGFja2FnZSBpcyBhIG5ldHdvcmsgcmVsYXRlZCB0 b29sLCB0aGUgaGVhZCBvZiB0aGUgbWVudSBmaWxlIHNob3VsZAorbG9vayBsaWtlOgorCisuLiBj b2RlLWJsb2NrOjoga2NvbmZpZworCisgICAgIyMgU0VDVElPTj1uZXR3b3JraW5nCisKK1dlIGNh biBncmVwIHRocm91Z2ggdGhlIG90aGVyIG1lbnUgZmlsZXMgZnJvbSB0aGUgUFRYZGlzdCBtYWlu CitpbnN0YWxsYXRpb24gYGBydWxlcy9gYCBkaXJlY3RvcnkgdG8gZ2V0IGFuIGlkZWEgd2hhdCBz ZWN0aW9uIG5hbWVzIGFyZQorYXZhaWxhYmxlOgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisg ICAgcnVsZXMvICQgZmluZCAuIC1uYW1lIFwqLmluIHwgeGFyZ3MgZ3JlcCAiIyMgU0VDVElPTiIK KyAgICAuL2FjcGlkLmluOiMjIFNFQ1RJT049c2hlbGxfYW5kX2NvbnNvbGUKKyAgICAuL2Fsc2Et bGliLmluOiMjIFNFQ1RJT049c3lzdGVtX2xpYnJhcmllcworICAgIC4vYWxzYS11dGlscy5pbjoj IyBTRUNUSU9OPW11bHRpbWVkaWFfc291bmQKKyAgICAuL2FwYWNoZTIuaW46IyMgU0VDVElPTj1u ZXR3b3JraW5nCisgICAgLi9hcGFjaGUyX21vZF9weXRob24uaW46IyMgU0VDVElPTj1uZXR3b3Jr aW5nCisgICAgWy4uLl0KKyAgICAuL3hrZXlib2FyZC1jb25maWcuaW46IyMgU0VDVElPTj1tdWx0 aW1lZGlhX3hvcmdfZGF0YQorICAgIC4veG9yZy1hcHAteGV2LmluOiMjIFNFQ1RJT049bXVsdGlt ZWRpYV94b3JnX2FwcAorICAgIC4veG9yZy1hcHAteHJhbmRyLmluOiMjIFNFQ1RJT049bXVsdGlt ZWRpYV94b3JnX2FwcAorICAgIC4vaG9zdC1lZ2dkYnVzLmluOiMjIFNFQ1RJT049aG9zdHRvb2xz X25vcHJvbXB0CisgICAgLi9saWJzc2gyLmluOiMjIFNFQ1RJT049bmV0d29ya2luZworCitQb3J0 aW5nIGEgbmV3IHBhY2thZ2UgdG8gUFRYZGlzdCBpcyAoYWxtb3N0KSBmaW5pc2hlZCBub3cuCisK K1RvIGNoZWNrIGl0IHJpZ2h0IGF3YXksIHdlIHNpbXBseSBydW4gdGhlc2UgdHdvIGNvbW1hbmRz OgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICAgJCBwdHhkaXN0IGNsZWFuIGZvbworICAg IHJtIC1yZiAvaG9tZS9qYmUvbXlfbmV3X3Byai9zdGF0ZS9mb28uKgorICAgIHJtIC1yZiAvaG9t ZS9qYmUvbXlfbmV3X3Byai9wYWNrYWdlcy9mb29fKgorICAgIHJtIC1yZiAvaG9tZS9qYmUvbXlf bmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wCisgICAgJCBwdHhkaXN0IHRhcmdldGluc3Rh bGwgZm9vCisKKyAgICBbLi4uXQorCisuLiBpbXBvcnRhbnQ6OiBEaXNjb3ZlciBzb21laG93IGhp ZGRlbiBkZXBlbmRlbmNpZXMgd2l0aCBvbmUgbW9yZSBsYXN0IGNoZWNrIQorCitVcCB0byB0aGlz IHBvaW50IGFsbCB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhlIG5ldyBwYWNrYWdlIHdhcyBkb25lIGlu IGFuIGFscmVhZHkKK2J1aWx0IEJTUC4gRG9pbmcgc28gc29tZXRpbWVzIHNvbWVob3cgaGlkZGVu IGRlcGVuZGVuY2llcyBjYW5ub3QgYmUgc2VlbjoKK2V2ZXJ5dGhpbmcgc2VlbXMgZmluZSwgdGhl IG5ldyBwYWNrYWdlIGJ1aWxkcyBhbHdheXMgc3VjY2Vzc2Z1bGx5IGFuZCB0aGUKK3Jlc3VsdHMg YXJlIHdvcmtpbmcgb24gdGhlIHRhcmdldC4KKworU28gdG8gY2hlY2sgZm9yIHRoaXMga2luZCBv ZiBkZXBlbmRlbmNpZXMgdGhlcmUgaXMgc3RpbGwgb25lIG1vcmUgZmluYWwgY2hlY2sKK3RvIGRv IChldmVuIGlmIGl0cyBib3JpbmcgYW5kIHRha2VzIHRpbWUpOgorCisuLiBjb2RlLWJsb2NrOjog dGV4dAorCisgICAgJCBwdHhkaXN0IGNsZWFuCisgICAgWy4uLl0KKyAgICAkIHB0eGRpc3QgdGFy Z2V0aW5zdGFsbCBmb28KKyAgICBbLi4uXQorCitUaGlzIHdpbGwgcmUtc3RhcnQgd2l0aCBhICoq Y2xlYW4qKiBCU1AgYW5kIGJ1aWxkcyBleGFjdGx5IHRoZSBuZXcgcGFja2FnZSBhbmQKK2l0cyAo a25vd24pIGRlcGVuZGVuY2llcy4gSWYgdGhpcyBidWlsZHMgc3VjY2Vzc2Z1bGx5IGFzIHdlbGwg d2UgYXJlIHJlYWxseSBkb25lCit3aXRoIHRoZSBuZXcgcGFja2FnZS4KKworU29tZSBOb3RlcyBh Ym91dCBMaWNlbnNlcworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCitUaGUgYWxyZWFkeSBt ZW50aW9uZWQgcnVsZSB2YXJpYWJsZSBgYCpfTElDRU5TRWBgIChlLmcuIGBgRk9PX0xJQ0VOU0Vg YCBpbiBvdXIKK2V4YW1wbGUpIGlzIHZlcnkgaW1wb3J0YW50IGFuZCBtdXN0IGJlIGZpbGxlZCBi eSB0aGUgZGV2ZWxvcGVyIG9mIHRoZSBwYWNrYWdlLgorTWFueSBsaWNlbnNlcyBicmluZyBpbiBv YmxpZ2F0aW9ucyB1c2luZyB0aGUgY29ycmVzcG9uZGluZyBwYWNrYWdlICgqYXR0cmlidXRpb24q Citmb3IgZXhhbXBsZSkuIFRvIG1ha2UgbGlmZSBlYXNpZXIgZm9yIGV2ZXJ5Ym9keSB0aGUgbGlj ZW5zZSBmb3IgYSBwYWNrYWdlIG11c3QKK2JlIHByb3ZpZGVkLiAqU1BEWCogbGljZW5zZSBpZGVu dGlmaWVycyB1bmlmeSB0aGUgbGljZW5zZSBuYW1lcyBhbmQgYXJlIHVzZWQKK2luIFBUWGRpc3Qg dG8gaWRlbnRpZnkgbGljZW5zZSB0eXBlcyBhbmQgb2JsaWdhdGlvbnMuCisKK0lmIGEgcGFja2Fn ZSBjb21lcyB3aXRoIG1vcmUgdGhhbiBvbmUgbGljZW5zZSwgYWxsIG9mIHRoZWlyIFNQRFggaWRl bnRpZmllcnMKK211c3QgYmUgbGlzdGVkIGFuZCBjb25uZWN0ZWQgd2l0aCB0aGUga2V5d29yZCBg YEFORGBgLiBJZiB5b3VyIHBhY2thZ2UgY29tZXMKK3dpdGggR1BMLTIuMCBhbmQgTEdQTC0yLjEg bGljZW5zZXMsIHRoZSBkZWZpbml0aW9uIHNob3VsZCBsb29rIGxpa2UgdGhpczoKKworLi4gY29k ZS1ibG9jazo6IG1ha2UKKworICAgRk9PX0xJQ0VOU0UgOj0gR1BMLTIuMCBBTkQgTEdQTC0yLjEK KworT25lIHNwZWNpZmljIG9ibGlnYXRpb24gY2Fubm90IGJlIGRldGVjdGVkIGV4YW1pbmluZyB0 aGUgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXJzCitieSBQVFhkaXN0OiAqdGhlIGxpY2Vuc2UgY2hv aWNlKi4gSW4gdGhpcyBjYXNlIGFsbCBsaWNlbnNlcyBvZiBjaG9pY2UgbXVzdCBiZQorbGlzdGVk IGFuZCBjb25uZWN0ZWQgYnkgdGhlIGtleXdvcmQgYGBPUmBgLgorCitJZiwgZm9yIGV4YW1wbGUs IHlvdXIgb2JsaWdhdGlvbiBpcyB0byBzZWxlY3Qgb25lIG9mIHRoZSBsaWNlbnNlcyAqR1BMLTIu MCogKipvcioqCisqR1BMLTMuMCosIHRoZSBgYCpfTElDRU5TRWBgIHZhcmlhYmxlIHNob3VsZCBs b29rIGxpa2UgdGhpczoKKworLi4gY29kZS1ibG9jazo6IG1ha2UKKworICAgRk9PX0xJQ0VOU0Ug Oj0gR1BMLTIuMCBPUiBHUEwtMy4wCisKK1NQRFggTGljZW5zZSBJZGVudGlmaWVycworXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eCisKK0EgbGlzdCBvZiBTUERYIGxpY2Vuc2UgaWRlbnRpZmllcnMg Y2FuIGJlIGZvdW5kIGhlcmU6CisKKyAgIGh0dHBzOi8vc3BkeC5vcmcvbGljZW5zZXMvCisKK0hl bHAgdG8gRGV0ZWN0IHRoZSBDb3JyZWN0IExpY2Vuc2UKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl4KKworTGljZW5zZSBpZGVudGlmaWNhdGlvbiBpc24ndCB0cml2aWFsLiBBIGhl bHAgaW4gZG9pbmcgc28gY2FuIGJlIHRoZSBmb2xsb3dpbmcKK3JlcG9zaXRvcnkgYW5kIGl0cyBj b250ZW50LiBJdCBjb250YWlucyBhIGxpc3Qgb2Yga25vd24gbGljZW5zZXMgYmFzZWQgb24gdGhl aXIKK1NQRFggaWRlbnRpZmllci4gVGhlIGNvbnRlbnQgaXMgd2l0aG91dCBmb3JtYXR0aW5nIHRv IHNpbXBsaWZ5IHRleHQgc2VhcmNoLgorCisgICBodHRwczovL2dpdGh1Yi5jb20vc3BkeC9saWNl bnNlLWxpc3QtZGF0YS90cmVlL21hc3Rlci90ZXh0CisKK0FkdmFuY2VkIFJ1bGUgRmlsZXMKK35+ fn5+fn5+fn5+fn5+fn5+fn4KKworVGhlIHByZXZpb3VzIGV4YW1wbGUgb24gaG93IHRvIGNyZWF0 ZSBhIHJ1bGUgZmlsZSBzb21ldGltZXMgd29ya3MgYXMKK3Nob3duIGFib3ZlLiBCdXQgbW9zdCBv ZiB0aGUgdGltZSBzb3VyY2UgYXJjaGl2ZXMgYXJlIG5vdCB0aGF0IHNpbXBsZS4KK0luIHRoaXMg c2VjdGlvbiB3ZSB3YW50IHRvIGdpdmUgdGhlIHVzZXIgYSBtb3JlIGRldGFpbGVkIHNlbGVjdGlv biBob3cKK3RoZSBwYWNrYWdlIHdpbGwgYmUgYnVpbHQuCisKK0FkZGluZyBTdGF0aWMgQ29uZmln dXJlIFBhcmFtZXRlcnMKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworVGhl IGBgY29uZmlndXJlYGAgc2NyaXB0cyBvZiB2YXJpb3VzIHNvdXJjZSBhcmNoaXZlcyBwcm92aWRl IGFkZGl0aW9uYWwKK3BhcmFtZXRlcnMgdG8gZW5hYmxlIG9yIGRpc2FibGUgZmVhdHVyZXMsIG9y IHRvIGNvbmZpZ3VyZSB0aGVtIGluIGEKK3NwZWNpZmljIHdheS4KKworV2UgYXNzdW1lIHRoZSBg YGNvbmZpZ3VyZWBgIHNjcmlwdCBvZiBvdXIgYGBmb29gYCBleGFtcGxlIChyZWZlciB0bworc2Vj dGlvbiA6cmVmOmBmb29fZXhhbXBsZWApIHN1cHBvcnRzIHR3byBhZGRpdGlvbmFsIHBhcmFtZXRl cnM6CisKKy0gICoqLS1lbmFibGUtZGVidWcqKjogTWFrZSB0aGUgcHJvZ3JhbSBtb3JlIG5vaXN5 LiBJdOKAmXMgZGlzYWJsZWQgYnkKKyAgIGRlZmF1bHQuCisKKy0gICoqLS13aXRoLWJhcioqOiBB bHNvIGJ1aWxkIHRoZSBzcGVjaWFsIGV4ZWN1dGFibGUgKipiYXIqKi4gQnVpbGRpbmcKKyAgIHRo aXMgZXhlY3V0YWJsZSBpcyBhbHNvIGRpc2FibGVkIGJ5IGRlZmF1bHQuCisKK1dlIG5vdyB3YW50 IHRvIGZvcndhcmQgdGhlc2Ugb3B0aW9ucyB0byB0aGUgYGBjb25maWd1cmVgYCBzY3JpcHQgd2hl biBpdAorcnVucyBpbiB0aGUgKnByZXBhcmUqIHN0YWdlLiBUbyBkbyBzbywgd2UgbXVzdCBhZ2Fp biBvcGVuIHRoZSBydWxlIGZpbGUKK3dpdGggb3VyIGZhdm91cml0ZSBlZGl0b3IgYW5kIG5hdmln YXRlIHRvIHRoZSAqcHJlcGFyZSogc3RhZ2UgZW50cnkuCisKK1BUWGRpc3QgdXNlcyB0aGUgdmFy aWFibGUgYGBGT09fQ09ORl9PUFRgYCBhcyB0aGUgbGlzdCBvZiBwYXJhbWV0ZXJzIHRvCitiZSBn aXZlbiB0byBgYGNvbmZpZ3VyZWBgLgorCitDdXJyZW50bHkgdGhpcyB2YXJpYWJsZSBpcyBjb21t ZW50ZWQgb3V0IGFuZCBkZWZpbmVkIHRvOgorCisuLiBjb2RlLWJsb2NrOjogbWFrZQorCisgICAg IyBGT09fQ09ORl9PUFQgOj0gJChDUk9TU19BVVRPQ09ORl9VU1IpCisKK1RoZSB2YXJpYWJsZSBg YENST1NTX0FVVE9DT05GX1VTUmBgIGlzIHByZWRlZmluZWQgYnkgUFRYZGlzdCBhbmQKK2NvbnRh aW5zIGFsbCBiYXNpYyBwYXJhbWV0ZXJzIHRvIGluc3RydWN0IGBgY29uZmlndXJlYGAgdG8gcHJl cGFyZSBmb3IgYQorKipjcm9zcyoqIGNvbXBpbGUgZW52aXJvbm1lbnQuCisKK1RvIHVzZSB0aGUg dHdvIGFkZGl0aW9uYWwgbWVudGlvbmVkIGBgY29uZmlndXJlYGAgcGFyYW1ldGVycywgd2UgY29t bWVudAoraW4gdGhpcyBsaW5lIGFuZCBzdXBwbGVtZW50IHRoaXMgZXhwcmVzc2lvbiBhcyBmb2xs b3dzOgorCisuLiBjb2RlLWJsb2NrOjogbWFrZQorCisgICAgRk9PX0NPTkZfT1BUIDo9IFwKKyAg ICAgICAgJChDUk9TU19BVVRPQ09ORl9VU1IpIFwKKyAgICAgICAgLS1lbmFibGUtZGVidWcgXAor ICAgICAgICAtLXdpdGgtYmFyCisKKy4uIG5vdGU6OiBXZSByZWNvbW1lbmQgdG8gdXNlIHRoaXMg Zm9ybWF0IHdpdGggZWFjaCBwYXJhbWV0ZXIgb24gYSBsaW5lIG9mCisgaXRzIG93bi4gVGhpcyBm b3JtYXQgaXMgZWFzaWVyIHRvIHJlYWQgYW5kIGEgZGlmZiBzaG93cyBtb3JlIGV4YWN0bHkgYW55 CisgY2hhbmdlLgorCitUbyBkbyBhIGZhc3QgY2hlY2sgaWYgdGhpcyBhZGRpdGlvbiB3YXMgc3Vj Y2Vzc2Z1bCwgd2UgcnVuOgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICAgJCBwdHhkaXN0 IHByaW50IEZPT19DT05GX09QVAorICAgIC0tcHJlZml4PS91c3IgLS1zeXNjb25mZGlyPS9ldGMg LS1ob3N0PXxwdHhkaXN0Q29tcGlsZXJOYW1lfCAtLWJ1aWxkPWk2ODYtaG9zdC1saW51eC1nbnUg LS1lbmFibGUtZGVidWcgLS13aXRoLWJhcgorCisuLiBub3RlOjogSXQgZGVwZW5kcyBvbiB0aGUg Y3VycmVudGx5IHNlbGVjdGVkIHBsYXRmb3JtIGFuZCBpdHMgYXJjaGl0ZWN0dXJlCisgd2hhdCBj b250ZW50IHRoaXMgdmFyaWFibGUgd2lsbCBoYXZlLiBUaGUgY29udGVudCBzaG93biBhYm92ZSBp cyBhbgorIGV4YW1wbGUgZm9yIGEgdGFyZ2V0LgorCitPciByZS1idWlsZCB0aGUgcGFja2FnZSB3 aXRoIHRoZSBuZXcgc2V0dGluZ3M6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICAkIHB0 eGRpc3QgZHJvcCBmb28gcHJlcGFyZQorICAgICQgcHR4ZGlzdCB0YXJnZXRpbnN0YWxsIGZvbwor CitBZGRpbmcgRHluYW1pYyBDb25maWd1cmUgUGFyYW1ldGVycworXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl4KKworU29tZXRpbWVzIGl0IG1ha2VzIHNlbnNlIHRvIGFkZCB0aGlz IGtpbmQgb2YgcGFyYW1ldGVycyBvbiBkZW1hbmQgb25seTsKK2VzcGVjaWFsbHkgYSBwYXJhbWV0 ZXIgbGlrZSBgYC0tZW5hYmxlLWRlYnVnYGAuIFRvIGxldCB0aGUgdXNlciBkZWNpZGUKK2lmIHRo aXMgcGFyYW1ldGVyIGlzIHRvIGJlIHVzZWQgb3Igbm90LCB3ZSBtdXN0IGFkZCBhIG1lbnUgZW50 cnkuIFNvLAorbGV04oCZcyBleHBhbmQgb3VyIG1lbnUuIEhlcmUgaXMgaXRzIGN1cnJlbnQgY29u dGVudDoKKworLi4gY29kZS1ibG9jazo6IGtjb25maWcKKworICAgICMjIFNFQ1RJT049cHJvamVj dF9zcGVjaWZpYworCisgICAgY29uZmlnIEZPTworICAgICAgICAgICAgdHJpc3RhdGUKKyAgICAg ICAgICAgIHByb21wdCAiZm9vIgorICAgICAgICAgICAgaGVscAorICAgICAgICAgICAgICBGSVhN RQorCitXZeKAmWxsIGFkZCB0d28gbWVudSBlbnRyaWVzLCBvbmUgZm9yIGVhY2ggb3B0aW9uYWwg cGFyYW1ldGVyIHdlIHdhbnQgdG8KK2FkZCBvbiBkZW1hbmQgdG8gdGhlIGBgY29uZmlndXJlYGAg cGFyYW1ldGVyczoKKworLi4gY29kZS1ibG9jazo6IGtjb25maWcKKworICAgICMjIFNFQ1RJT049 cHJvamVjdF9zcGVjaWZpYworCisgICAgY29uZmlnIEZPTworICAgICAgICAgICB0cmlzdGF0ZQor ICAgICAgICAgICBwcm9tcHQgImZvbyIKKyAgICAgICAgICAgaGVscAorICAgICAgICAgICAgIEZJ WE1FCisKKyAgICBpZiBGT08KKyAgICBjb25maWcgRk9PX0RFQlVHCisgICAgICAgICAgIGJvb2wK KyAgICAgICAgICAgcHJvbXB0ICJhZGQgZGVidWcgbm9pc2UiCisKKyAgICBjb25maWcgRk9PX0JB UgorICAgICAgICAgICBib29sCisgICAgICAgICAgIHByb21wdCAiYnVpbGQgYmFyIgorCisgICAg ZW5kaWYKKworLi4gaW1wb3J0YW50OjogQWx3YXlzIGZvbGxvdyB0aGUgcnVsZSB0byBleHRlbmQg dGhlIGJhc2UgbmFtZSBieSBhIHN1Ym9wdGlvbgorICBuYW1lIGFzIHRoZSB0cmFpbGluZyBwYXJ0 IG9mIHRoZSB2YXJpYWJsZSBuYW1lLiBUaGlzIGdpdmVzIFBUWGRpc3QgdGhlIGFiaWxpdHkKKyAg dG8gZGV0ZWN0IGEgY2hhbmdlIGluIHRoZSBwYWNrYWdl4oCZcyBzZXR0aW5ncyAodmlhIG1lbnVj b25maWcpIHRvIGZvcmNlIGl0cworICByZWJ1aWxkIG9uIGRlbWFuZC4KKworVG8gbWFrZSB1c2Fn ZSBvZiB0aGUgbmV3IG1lbnUgZW50cmllcywgd2UgbXVzdCBjaGVjayB0aGVtIGluIHRoZSBydWxl CitmaWxlIGFuZCBhZGQgdGhlIGNvcnJlY3QgcGFyYW1ldGVyczoKKworLi4gY29kZS1ibG9jazo6 IG1ha2UKKworICAgICMKKyAgICAjIGF1dG9jb25mCisgICAgIworICAgIEZPT19DT05GX09QVCA6 PSBcCisgICAgICAgICQoQ1JPU1NfQVVUT0NPTkZfVVNSKSBcCisgICAgICAgIC0tJChjYWxsIHB0 eC9lbmRpcywgUFRYQ09ORl9GT09fREVCVUcpLWRlYnVnIFwKKyAgICAgICAgLS0kKGNhbGwgcHR4 L3d3bywgUFRYQ09ORl9GT09fQkFSKS1iYXIKKworLi4gaW1wb3J0YW50OjogUGxlYXNlIG5vdGUg dGhlIGxlYWRpbmcgYGBQVFhDT05GX2BgIGZvciBlYWNoIGRlZmluZS4gV2hpbGUgS2NvbmZpZyBp cworICB1c2luZyBgYEZPT19CQVJgYCwgdGhlIHJ1bGUgZmlsZSBtdXN0IHVzZSBgYFBUWENPTkZf Rk9PX0JBUmBgIGluc3RlYWQuCisKKy4uIG5vdGU6OiBSZWZlciA6cmVmOmBSdWxlIEZpbGUgTWFj cm8gUmVmZXJlbmNlIDxwYXJhbV9tYWNyb3M+YCBmb3IgZnVydGhlcgorICAgZGV0YWlscyBhYm91 dCB0aGVzZSBzcGVjaWFsIGtpbmQgb2Ygb3B0aW9uIG1hY3JvcyAoZS5nLiBgYHB0eC8uLi5gYCku CisKK0l0IGlzIGEgZ29vZCBwcmFjdGljZSB0byBhbHdheXMgYWRkIGJvdGggc2V0dGluZ3MsIGUu Zy4gYGAtLWRpc2FibGUtZGVidWdgYAorZXZlbiBpZiB0aGlzIGlzIHRoZSBkZWZhdWx0IGNhc2Uu IFNvbWV0aW1lcyBgYGNvbmZpZ3VyZWBgIHRyaWVzIHRvIGd1ZXNzCitzb21ldGhpbmcgYW5kIHRo ZSBiaW5hcnkgcmVzdWx0IG1pZ2h0IGRpZmZlciBkZXBlbmRpbmcgb24gdGhlIGJ1aWxkCitvcmRl ci4gRm9yIGV4YW1wbGUgc29tZSBraW5kIG9mIHBhY2thZ2Ugd291bGQgYWxzbyBidWlsZCBzb21l IFggcmVsYXRlZAordG9vbHMsIGlmIFggbGlicmFyaWVzIGFyZSBmb3VuZC4gSW4gdGhpcyBjYXNl IGl0IGRlcGVuZHMgb24gdGhlIGJ1aWxkCitvcmRlciwgaWYgdGhlIFggcmVsYXRlZCB0b29scyBh cmUgYnVpbHQgb3Igbm90LiBBbGwgdGhlIGF1dG9jaGVjaworZmVhdHVyZXMgYXJlIHByb2JsZW1h dGljIGhlcmUuIFNvLCBpZiB3ZSBkbyBub3Qgd2FudCBgYGNvbmZpZ3VyZWBgIHRvCitndWVzcyBp dHMgc2V0dGluZ3Mgd2UgKiptdXN0IGRpc2FibGUgZXZlcnl0aGluZyB3ZSBkbyBub3Qgd2FudCoq LgorCitUbyBzdXBwb3J0IHRoaXMgcHJvY2VzcywgUFRYZGlzdCBzdXBwbGllcyBhIGhlbHBlciBz Y3JpcHQsIGxvY2F0ZWQgYXQKK2BgL3BhdGgvdG8vcHR4ZGlzdC9zY3JpcHRzL2NvbmZpZ3VyZS1o ZWxwZXIucHlgYCB0aGF0IGNvbXBhcmVzIHRoZSBjb25maWd1cmUKK291dHB1dCB3aXRoIHRoZSBz ZXR0aW5ncyBmcm9tIGBgRk9PX0NPTkZfT1BUYGA6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisK KyAgICAkIC9vcHQvcHR4ZGlzdC0yMDE3LjA2LjAvc2NyaXB0cy9jb25maWd1cmUtaGVscGVyLnB5 IC1wIGxpYnNpZ3JvaworICAgIC0tLSBydWxlcy9saWJzaWdyb2subWFrZQorICAgICsrKyBsaWJz aWdyb2stMC41LjAKKyAgICBAQCAtNCwzICs0LDc0IEBACisgICAgIAktLWxpYmRpcj0vdXNyL2xp YgorICAgICAJLS1idWlsZD14ODZfNjQtaG9zdC1saW51eC1nbnUKKyAgICAgCS0taG9zdD1hcm0t djdhLWxpbnV4LWdudWVhYmloZgorICAgICsJLS1lbmFibGUtd2FybmluZ3M9bWlufG1heHxmYXRh bHxubworICAgICsJLS1kaXNhYmxlLWxhcmdlZmlsZQorICAgICsJLS1lbmFibGUtYWxsLWRyaXZl cnMKKyAgICArCS0tZW5hYmxlLWFnaWxlbnQtZG1tCisgICAgWy4uLl0KKyAgICArCS0tZW5hYmxl LXJ1YnkKKyAgICArCS0tZW5hYmxlLWphdmEKKyAgICArCS0td2l0aG91dC1saWJzZXJpYWxwb3J0 CisgICAgKwktLXdpdGhvdXQtbGliZnRkaQorICAgICsJLS13aXRob3V0LWxpYnVzYgorICAgICsJ LS13aXRob3V0LWxpYnJldmlzYQorICAgICsJLS13aXRob3V0LWxpYmdwaWIKKyAgICArCS0td2l0 aG91dC1saWJpZWVlMTI4NAorICAgICsJLS13aXRoLWpuaS1pbmNsdWRlLXBhdGg9RElSLUxJU1QK KworSW4gdGhpcyBleGFtcGxlLCBtYW55IGNvbmZpZ3VyZSBvcHRpb25zIGZyb20gbGlic2lncm9r IChtYXJrZWQgd2l0aCBgYCtgYCkKK2FyZSBub3QgeWV0IHByZXNlbnQgaW4gYGBMSUJTSUdST0tf Q09ORl9PUFRgYCBhbmQgbXVzdCBiZSBhZGRlZCwgcG9zc2libHkgYWxzbworYnkgcHJvdmlkaW5n IG1vcmUgZHluYW1pYyBvcHRpb25zIGluIHRoZSBwYWNrYWdlIGRlZmluaXRpb24uCisKK0lmIHNv bWUgcGFydHMgb2YgYSBwYWNrYWdlIGFyZSBidWlsdCBvbiBkZW1hbmQgb25seSwgdGhleSBtdXN0 IGFsc28gYmUKK2luc3RhbGxlZCBvbiBkZW1hbmQgb25seS4gQmVzaWRlcyB0aGUgKnByZXBhcmUq IHN0YWdlLCB3ZSBhbHNvIG11c3QKK21vZGlmeSBvdXIgKnRhcmdldGluc3RhbGwqIHN0YWdlOgor CisuLiBjb2RlLWJsb2NrOjogbWFrZQorCisgICAgCUAkKGNhbGwgaW5zdGFsbF9jb3B5LCBmb28s IDAsIDAsIDA3NTUsICQoRk9PX0RJUikvZm9vLCAvdXNyL2Jpbi9mb28pCisKKyAgICBpZmRlZiBQ VFhDT05GX0ZPT19CQVIKKyAgICAJQCQoY2FsbCBpbnN0YWxsX2NvcHksIGZvbywgMCwgMCwgMDc1 NSwgJChGT09fRElSKS9iYXIsIC91c3IvYmluL2JhcikKKyAgICBlbmRpZgorCisgICAgCUAkKGNh bGwgaW5zdGFsbF9maW5pc2gsIGZvbykKKyAgICAJQCQoY2FsbCB0b3VjaCkKKworTm93IHdlIGNh biBwbGF5IHdpdGggb3VyIG5ldyBtZW51IGVudHJpZXMgYW5kIGNoZWNrIGlmIHRoZXkgYXJlIHdv cmtpbmcKK2FzIGV4cGVjdGVkOgorCisuLiBjb2RlLWJsb2NrOjogdGV4dAorCisgICAgJCBwdHhk aXN0IG1lbnVjb25maWcKKyAgICAkIHB0eGRpc3QgdGFyZ2V0aW5zdGFsbCBmb28KKworV2hlbmV2 ZXIgd2UgY2hhbmdlIGEgKkZPTyogcmVsYXRlZCBtZW51IGVudHJ5LCBQVFhkaXN0IHNob3VsZCBk ZXRlY3QgaXQKK2FuZCByZS1idWlsZCB0aGUgcGFja2FnZSB3aGVuIGEgbmV3IGJ1aWxkIGlzIHN0 YXJ0ZWQuCisKKy4uIF9leHRlcm5hbF9kZXBlbmRlbmNpZXM6CisKK01hbmFnaW5nIEV4dGVybmFs IENvbXBpbGUgVGltZSBEZXBlbmRlbmNpZXMKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl4KKworV2hpbGUgcnVubmluZyB0aGUgcHJlcGFyZSBzdGFnZSwgaXQgY291 bGQgaGFwcGVuIHRoYXQgaXQgZmFpbHMgZHVlIHRvIGEKK21pc3NpbmcgZXh0ZXJuYWwgZGVwZW5k ZW5jeS4KKworRm9yIGV4YW1wbGU6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICBjaGVj a2luZyB3aGV0aGVyIHpsaWIgZXhpc3RzLi4uLmZhaWxlZAorCitJbiB0aGlzIGV4YW1wbGUsIG91 ciBuZXcgcGFja2FnZSBkZXBlbmRzIG9uIHRoZSBjb21wcmVzc2lvbiBsaWJyYXJ5CisqemxpYiou IFBUWGRpc3QgY29tZXMgd2l0aCBhIHRhcmdldCAqemxpYiouIEFsbCB3ZSBuZWVkIHRvIGRvIGlu IHRoaXMKK2Nhc2UgaXMgdG8gZGVjbGFyZSB0aGF0IG91ciBuZXcgcGFja2FnZSAqZm9vKiBkZXBl bmRzIG9uICp6bGliKi4gVGhpcwora2luZCBvZiBkZXBlbmRlbmN5IGlzIG1hbmFnZWQgaW4gdGhl IG1lbnUgZmlsZSBvZiBvdXIgbmV3IHBhY2thZ2UgYnkKK3NpbXBseSBhZGRpbmcgdGhlIGBgc2Vs ZWN0IFpMSUJgYCBsaW5lLiBBZnRlciB0aGlzIGFkZGl0aW9uIG91ciBtZW51CitmaWxlIGxvb2tz IGxpa2U6CisKKy4uIGNvZGUtYmxvY2s6OiBrY29uZmlnCisKKyAgICAjIyBTRUNUSU9OPXByb2pl Y3Rfc3BlY2lmaWMKKworICAgIGNvbmZpZyBGT08KKyAgICAgICAgICAgdHJpc3RhdGUKKyAgICAg ICAgICAgc2VsZWN0IFpMSUIKKyAgICAgICAgICAgcHJvbXB0ICJmb28iCisgICAgICAgICAgIGhl bHAKKyAgICAgICAgICAgICBGSVhNRQorCisgICAgaWYgRk9PCisgICAgY29uZmlnIEZPT19ERUJV RworICAgICAgICAgICBib29sCisgICAgICAgICAgIHByb21wdCAiYWRkIGRlYnVnIG5vaXNlIgor CisgICAgY29uZmlnIEZPT19CQVIKKyAgICAgICAgICAgYm9vbAorICAgICAgICAgICBwcm9tcHQg ImJ1aWxkIGJhciIKKworICAgIGVuZGlmCisKK1BUWGRpc3Qgbm93IGJ1aWxkcyB0aGUgKnpsaWIq IGZpcnN0IGFuZCBvdXIgbmV3IHBhY2thZ2UgdGhlcmVhZnRlci4KKworUmVmZXIgOnJlZjpgZXh0 ZXJuYWxfZGVwZW5kZW5jaWVzX3ZhcmlhbnRzYCBmb3IgbW9yZSBzcGVjaWZpYyBkZXBlbmRlbmN5 CitkZXNjcmlwdGlvbi4KKworTWFuYWdpbmcgRXh0ZXJuYWwgQ29tcGlsZSBUaW1lIERlcGVuZGVu Y2llcyBvbiBEZW1hbmQKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eCisKK0l0IGlzIGdvb2QgcHJhY3RpY2UgdG8gYWRkIG9ubHkgdGhvc2UgZGVw ZW5kZW5jaWVzIHRoYXQgYXJlIHJlYWxseQorcmVxdWlyZWQgZm9yIHRoZSBjdXJyZW50IGNvbmZp Z3VyYXRpb24gb2YgdGhlIHBhY2thZ2UuIElmIHRoZSBwYWNrYWdlCitwcm92aWRlcyB0aGUgZmVh dHVyZXMgKmZvbyogYW5kICpiYXIqIGFuZCBpdHMgYGBjb25maWd1cmVgYCBwcm92aWRlcworc3dp dGNoZXMgdG8gZW5hYmxlL2Rpc2FibGUgdGhlbSBpbmRlcGVuZGVudGx5LCB3ZSBjYW4gYWxzbyBh ZGQKK2RlcGVuZGVuY2llcyBvbiBkZW1hbmQuIExldOKAmXMgYXNzdW1lIGZlYXR1cmUgKmZvbyog bmVlZHMgdGhlIGNvbXByZXNzaW9uCitsaWJyYXJ5ICpsaWJ6KiBhbmQgKmJhciogbmVlZHMgdGhl IFhNTDIgbGlicmFyeSAqbGlieG1sMiouIFRoZXNlCitsaWJyYXJpZXMgYXJlIG9ubHkgcmVxdWly ZWQgYXQgcnVuLXRpbWUgaWYgdGhlIGNvcnJlc3BvbmRpbmcgZmVhdHVyZSBpcworZW5hYmxlZC4g VG8gYWRkIHRoZXNlIGRlcGVuZGVuY2llcyBvbiBkZW1hbmQsIHRoZSBtZW51IGZpbGUgbG9va3Mg bGlrZToKKworLi4gY29kZS1ibG9jazo6IGtjb25maWcKKworICAgICMjIFNFQ1RJT049cHJvamVj dF9zcGVjaWZpYworCisgICAgY29uZmlnIEZPTworICAgICAgICAgICB0cmlzdGF0ZQorICAgICAg ICAgICBzZWxlY3QgWkxJQiBpZiBGT09fRk9PCisgICAgICAgICAgIHNlbGVjdCBMSUJYTUwyIGlm IEZPT19CQVIKKyAgICAgICAgICAgcHJvbXB0ICJmb28iCisgICAgICAgICAgIGhlbHAKKyAgICAg ICAgICAgICBGSVhNRQorCisgICAgaWYgRk9PCisgICAgY29uZmlnIEZPT19ERUJVRworICAgICAg ICAgICBib29sCisgICAgICAgICAgIHByb21wdCAiYWRkIGRlYnVnIG5vaXNlIgorCisgICAgY29u ZmlnIEZPT19GT08KKyAgICAgICAgICAgYm9vbAorICAgICAgICAgICBwcm9tcHQgImJ1aWxkIGZv byIKKworICAgIGNvbmZpZyBGT09fQkFSCisgICAgICAgICAgIGJvb2wKKyAgICAgICAgICAgcHJv bXB0ICJidWlsZCBiYXIiCisKKyAgICBlbmRpZgorCisuLiBpbXBvcnRhbnQ6OiBEbyBub3QgYWRk IHRoZXNlIGBgc2VsZWN0YGAgc3RhdGVtZW50cyB0byB0aGUgY29ycmVzcG9uZGluZyBtZW51IGVu dHJ5LgorICBUaGV5IG11c3QgYmVsb25nIHRvIHRoZSBtYWluIG1lbnUgZW50cnkgb2YgdGhlIHBh Y2thZ2UgdG8gZW5zdXJlIHRoYXQKKyAgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBkZXBlbmRlbmNp ZXMgYmV0d2VlbiB0aGUgcGFja2FnZXMgaXMgZG9uZSBpbiBhCisgIGNvcnJlY3QgbWFubmVyLgor CitNYW5hZ2luZyBFeHRlcm5hbCBSdW50aW1lIERlcGVuZGVuY2llcworXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworU29tZSBwYWNrYWdlcyBhcmUgYnVpbGRpbmcgYWxs IG9mIHRoZWlyIGNvbXBvbmVudHMgYW5kIGFsc28gaW5zdGFsbGluZwordGhlbSBpbnRvIHRoZSB0 YXJnZXTigJlzIHN5c3Jvb3QuIEJ1dCBvbmx5IHRoZWlyICp0YXJnZXRpbnN0YWxsKiBzdGFnZQor ZGVjaWRlcyB3aGljaCBwYXJ0cyBhcmUgY29waWVkIHRvIHRoZSByb290IGZpbGVzeXN0ZW0uIFNv LCBjb21waWxpbmcgYW5kCitsaW5raW5nIG9mIG91ciBwYWNrYWdlIHdpbGwgd29yaywgYmVjYXVz ZSBldmVyeXRoaW5nIHJlcXVpcmVkIGlzIGZvdW5kCitpbiB0aGUgdGFyZ2V04oCZcyBzeXNyb290 LgorCitJbiBvdXIgZXhhbXBsZSB0aGVyZSBpcyBhIGhpZGRlbiBkZXBlbmRlbmN5IHRvIHRoZSBt YXRoIGxpYnJhcnkKK2BgbGlibWBgLiBPdXIgbmV3IHBhY2thZ2Ugd2FzIGJ1aWx0IHN1Y2Nlc3Nm dWxseSwgYmVjYXVzZSB0aGUgbGlua2VyIHdhcworYWJsZSB0byBsaW5rIG91ciBiaW5hcmllcyBh Z2FpbnN0IHRoZSBgYGxpYm1gYCBmcm9tIHRoZSB0b29sY2hhaW4uIEJ1dAoraW4gdGhpcyBjYXNl IHRoZSBgYGxpYm1gYCBtdXN0IGFsc28gYmUgYXZhaWxhYmxlIGluIHRoZSB0YXJnZXTigJlzIHJv b3QKK2ZpbGVzeXN0ZW0gdG8gZnVsZmlsIHRoZSBydW4tdGltZSBkZXBlbmRlbmN5OiBXZSBoYXZl IHRvIGZvcmNlIFBUWGRpc3QgdG8KK2luc3RhbGwgYGBsaWJtYGAuIGBgbGlibWBgIGlzIHBhcnQg b2YgdGhlICpnbGliYyogcGFja2FnZSwgYnV0IGlzIG5vdAoraW5zdGFsbGVkIGJ5IGRlZmF1bHQg KHRvIGtlZXAgdGhlIHJvb3QgZmlsZXN5c3RlbSBzbWFsbCkuIFNvLCBpdCAqKmRvZXMKK25vdCoq IGhlbHAgdG8gc2VsZWN0IHRoZSBgYEdMSUJDYGAgc3ltYm9sLCB0byBnZXQgYSBgYGxpYm1gYCBh dCBydW4tdGltZS4KKworVGhlIGNvcnJlY3Qgc29sdXRpb24gaGVyZSBpcyB0byBhZGQgYSBgYHNl bGVjdCBMSUJDX01gYCB0byBvdXIgbWVudQorZmlsZS4gV2l0aCBhbGwgdGhlIGFkZGl0aW9ucyBh Ym92ZSBpdCBub3cgbG9va3MgbGlrZToKKworLi4gY29kZS1ibG9jazo6IGtjb25maWcKKworICAg ICMjIFNFQ1RJT049cHJvamVjdF9zcGVjaWZpYworCisgICAgY29uZmlnIEZPTworICAgICAgICAg ICB0cmlzdGF0ZQorICAgICAgICAgICBzZWxlY3QgWkxJQiBpZiBGT09fRk9PCisgICAgICAgICAg IHNlbGVjdCBMSUJYTUwyIGlmIEZPT19CQVIKKyAgICAgICAgICAgc2VsZWN0IExJQkNfTQorICAg ICAgICAgICBwcm9tcHQgImZvbyIKKyAgICAgICAgICAgaGVscAorICAgICAgICAgICAgIEZJWE1F CisKKyAgICBpZiBGT08KKyAgICBjb25maWcgRk9PX0RFQlVHCisgICAgICAgICAgIGJvb2wKKyAg ICAgICAgICAgcHJvbXB0ICJhZGQgZGVidWcgbm9pc2UiCisKKyAgICBjb25maWcgRk9PX0ZPTwor ICAgICAgICAgICBib29sCisgICAgICAgICAgIHByb21wdCAiYnVpbGQgZm9vIgorCisgICAgY29u ZmlnIEZPT19CQVIKKyAgICAgICAgICAgYm9vbAorICAgICAgICAgICBwcm9tcHQgImJ1aWxkIGJh ciIKKworICAgIGVuZGlmCisKKy4uIG5vdGU6OiBUaGVyZSBhcmUgb3RoZXIgcGFja2FnZXMgYXJv dW5kLCB0aGF0IGRvIG5vdCBpbnN0YWxsIGV2ZXJ5dGhpbmcgYnkKKyAgZGVmYXVsdC4gSWYgb3Vy IG5ldyBwYWNrYWdlIG5lZWRzIHNvbWV0aGluZyBzcGVjaWFsLCB3ZSBtdXN0IHRha2UgYSBsb29r CisgIGludG8gdGhlIG1lbnUgb2YgdGhlIG90aGVyIHBhY2thZ2UgaG93IHRvIGZvcmNlIHRoZSBy ZXF1aXJlZCBjb21wb25lbnRzCisgIHRvIGJlIGluc3RhbGxlZCBhbmQgYWRkIHRoZSBjb3JyZXNw b25kaW5nIGBgc2VsZWN0c2BgIHRvIG91ciBvd24gbWVudQorICBmaWxlLiBJbiB0aGlzIGNhc2Ug aXQgZG9lcyBub3QgaGVscCB0byBlbmFibGUgdGhlIHJlcXVpcmVkIHBhcnRzIGluIG91cgorICBw cm9qZWN0IGNvbmZpZ3VyYXRpb24sIGJlY2F1c2UgdGhpcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBi dWlsZCBvcmRlciEKKworTWFuYWdpbmcgUGxhaW4gTWFrZWZpbGUgUGFja2FnZXMKK15eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK01hbnkgcGFja2FnZXMgYXJlIHN0aWxsIGNvbWlu ZyB3aXRoIGEgcGxhaW4gYGBNYWtlZmlsZWBgLiBUaGUgdXNlciBoYXMKK3RvIGFkYXB0IGl0IHRv IG1ha2UgaXQgd29yayBpbiBhIGNyb3NzIGNvbXBpbGUgZW52aXJvbm1lbnQgYXMgd2VsbC4KK1BU WGRpc3QgY2FuIGFsc28gaGFuZGxlIHRoaXMga2luZCBvZiBwYWNrYWdlcy4gV2Ugb25seSBoYXZl IHRvIHNwZWNpZnkKK2Egc3BlY2lhbCAqcHJlcGFyZSogYW5kICpjb21waWxlKiBzdGFnZS4KKwor U3VjaCBwYWNrYWdlcyBvZnRlbiBoYXZlIG5vIHNwZWNpYWwgbmVlZCBmb3IgYW55IGtpbmQgb2Yg cHJlcGFyYXRpb24uIEluCit0aGlzIHdlIG11c3QgaW5zdHJ1Y3QgUFRYZGlzdCB0byBkbyBub3Ro aW5nIGluIHRoZSAqcHJlcGFyZSogc3RhZ2U6CisKKy4uIGNvZGUtYmxvY2s6OiBtYWtlCisKKyAg ICBGT09fQ09ORl9UT09MIDo9IE5PCisKK1RvIGNvbXBpbGUgdGhlIHBhY2thZ2UsIHdlIGNhbiB1 c2UgYGBtYWtlYGBcIOKAmXMgZmVhdHVyZSB0byBvdmVyd3JpdGUKK3ZhcmlhYmxlcyB1c2VkIGlu IHRoZSBgYE1ha2VmaWxlYGAuIFdpdGggdGhpcyBmZWF0dXJlIHdlIGNhbiBzdGlsbCB1c2UKK3Ro ZSBvcmlnaW5hbCBgYE1ha2VmaWxlYGAgYnV0IHdpdGggb3VyIG93biAoY3Jvc3MgY29tcGlsZSkg c2V0dGluZ3MuCisKK01vc3Qgb2YgdGhlIHRpbWUgdGhlIGdlbmVyaWMgY29tcGlsZSBydWxlIGNh biBiZSB1c2VkLCBvbmx5IGEgZmV3CitzZXR0aW5ncyBhcmUgcmVxdWlyZWQuIEZvciBhIHdlbGwg ZGVmaW5lZCBgYE1ha2VmaWxlYGAgaXQgaXMgc3VmZmljaWVudCB0bworc2V0IHVwIHRoZSBjb3Jy ZWN0IGNyb3NzIGNvbXBpbGUgZW52aXJvbm1lbnQgZm9yIHRoZSAqY29tcGlsZSogc3RhZ2U6CisK Ky4uIGNvZGUtYmxvY2s6OiBtYWtlCisKKyAgICBGT09fTUFLRV9FTlYgOj0gJChDUk9TU19FTlYp CisKK2BgbWFrZWBgIHdpbGwgYmUgY2FsbGVkIGluIHRoaXMgY2FzZSB3aXRoOgorCitgYCQoRk9P X01BS0VfRU5WKSAkKE1BS0UpIC1DICQoRk9PX0RJUikgJChGT09fTUFLRV9PUFQpYGAKKworU28s IGluIHRoZSBydWxlIGZpbGUgb25seSB0aGUgdHdvIHZhcmlhYmxlcyBgYEZPT19NQUtFX0VOVmBg IGFuZAorYGBGT09fTUFLRV9PUFRgYCBtdXN0IGJlIHNldCwgdG8gZm9yd2FyZCB0aGUgcmVxdWly ZWQgc2V0dGluZ3MgdG8gdGhlCitwYWNrYWdl4oCZcyBidWlsZHN5c3RlbS4gSWYgdGhlIHBhY2th Z2UgY2Fubm90IGJlIGJ1aWx0IGluIHBhcmFsbGVsLCB3ZQorY2FuIGFsc28gYWRkIHRoZSBgYEZP T19NQUtFX1BBUsKgOj3CoE5PYGAuIGBgWUVTYGAgaXMgdGhlIGRlZmF1bHQuCisKK01hbmFnaW5n IENNYWtlL1FNYWtlL01lc29uIFBhY2thZ2VzCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXgorCitCdWlsZGluZyBwYWNrYWdlcyB0aGF0IHVzZSBgYGNtYWtlYGAsIGBgcW1ha2Vg YCBvciBgYG1lc29uYGAgaXMgbXVjaCBsaWtlCitidWlsZGluZyBwYWNrYWdlcyB3aXRoIGFuIGF1 dG90b29scyBiYXNlZCBidWlsZHN5c3RlbS4gV2UgbmVlZCB0byBzcGVjaWZ5Cit0aGUgY29uZmln dXJhdGlvbiB0b29sOgorCisuLiBjb2RlLWJsb2NrOjogbWFrZQorCisgICAgRk9PX0NPTkZfVE9P TCA6PSBjbWFrZQorCitvcgorCisuLiBjb2RlLWJsb2NrOjogbWFrZQorCisgICAgRk9PX0NPTkZf VE9PTCA6PSBxbWFrZQorCitvciByZXNwZWN0aXZlbHkKKworLi4gY29kZS1ibG9jazo6IG1ha2UK KworICAgIEZPT19DT05GX1RPT0wgOj0gbWVzb24KKworQW5kIHByb3ZpZGUgdGhlIGNvcnJlY3Qg Y29uZmlndXJhdGlvbiBvcHRpb25zLiBUaGUgc3ludGF4IGlzIGRpZmZlcmVudCBzbworUFRYZGlz dCBwcm92aWRlcyBhZGRpdGlvbmFsIG1hY3JvcyB0byBzaW1wbGlmeSBjb25maWd1cmFibGUgZmVh dHVyZXMuCitGb3IgYGBjbWFrZWBgIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdHlwaWNhbGx5 IGxvb2sgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogbWFrZQorCisgICAgRk9PX0NPTkZf T1BUIDo9IFwKKyAgICAJJChDUk9TU19DTUFLRV9VU1IpIFwKKyAgICAJLURCVUlMRF9URVNUUzpC T09MPU9GRiBcCisgICAgCS1ERU5BQkxFX0JBUjpCT09MPSQoY2FsbCBwdHgvb25vZmYsIFBUWENP TkZfRk9PX0JBUikKKworRm9yIGBgcW1ha2VgYCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHR5 cGljYWxseSBsb29rIGxpa2UgdGhpczoKKworLi4gY29kZS1ibG9jazo6IG1ha2UKKworICAgIEZP T19DT05GX09QVCA6PSBcCisgICAgCSQoQ1JPU1NfUU1BS0VfT1BUKSBcCisgICAgCVBSRUZJWD0v dXNyCisKK0FuZCBmb3IgYGBtZXNvbmBgIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdHlwaWNh bGx5IGxvb2sgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogbWFrZQorCisgICAgRk9PX0NP TkZfT1BUIDo9IFwKKyAgICAJJChDUk9TU19NRVNPTl9VU1IpIFwKKyAgICAJLURiYXI9JChjYWxs IHB0eC90cnVlZmFsc2UsUFRYQ09ORl9GT09fQkFSKQorCitQbGVhc2Ugbm90ZSB0aGF0IGN1cnJl bnRseSBvbmx5IGhvc3QgYW5kIHRhcmdldCBgYGNtYWtlYGBcL2BgbWVzb25gYCBwYWNrYWdlcwor YW5kIG9ubHkgdGFyZ2V0IGBgcW1ha2VgYCBwYWNrYWdlcyBhcmUgc3VwcG9ydGVkLgorCitNYW5h Z2luZyBQeXRob24gUGFja2FnZXMKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitBcyB3aXRo IGFueSBvdGhlciBwYWNrYWdlLCB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uIHRvb2wgbXVzdCBi ZSBzZWxlY3RlZAorZm9yIFB5dGhvbiBwYWNrYWdlczoKKworLi4gY29kZS1ibG9jazo6IG1ha2UK KworICAgIEZPT19DT05GX1RPT0wgOj0gcHl0aG9uCisKKy4uIG5vdGU6OiBGb3IgUHl0aG9uMyBw YWNrYWdlcyB0aGUgdmFsdWUgbXVzdCBiZSBgYHB5dGhvbjNgYC4KKworTm8gTWFrZWZpbGVzIGFy ZSB1c2VkIHdoZW4gYnVpbGRpbmcgUHl0aG9uIHBhY2thZ2VzIHNvIHRoZSB1c3VhbCBgYG1ha2Vg YAorYW5kIGBgbWFrZSBpbnN0YWxsYGAgZm9yIHRoZSAqY29tcGlsZSogYW5kICppbnN0YWxsKiBz dGFnZXMgY2Fubm90IGJlIHVzZWQuCitQVFhkaXN0IHdpbGwgY2FsbCBgYHB5dGhvbiBzZXR1cC5w eSBidWlsZGBgIGFuZCBgYHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsYGAKK2luc3RlYWQuCisKKy4u IG5vdGU6OiAqRk9PKiBpcyBzdGlsbCB0aGUgbmFtZSBvZiBvdXIgZXhhbXBsZSBwYWNrYWdlLiBJ dCBtdXN0IGJlCisgIHJlcGxhY2VkIGJ5IHRoZSByZWFsIHBhY2thZ2UgbmFtZS4KKworCisuLiBf cGF0Y2hpbmdfcGFja2FnZXM6CisKK1BhdGNoaW5nIFBhY2thZ2VzCit+fn5+fn5+fn5+fn5+fn5+ fgorCitUaGVyZSBjYW4gYmUgdmFyaW91cyByZWFzb25zIHdoeSBhIHBhY2thZ2UgbXVzdCBiZSBw YXRjaGVkOgorCistICBQYWNrYWdlIGlzIGJyb2tlbiBmb3IgY3Jvc3MgY29tcGlsZSBlbnZpcm9u bWVudHMKKworLSAgUGFja2FnZSBpcyBicm9rZW4gd2l0aGluIGEgc3BlY2lmaWMgZmVhdHVyZQor CistICBQYWNrYWdlIGlzIHZ1bG5lcmFibGUgYW5kIG5lZWRzIHNvbWUgZml4ZXMKKworLSAgb3Ig YW55dGhpbmcgZWxzZSAodGhpcyBjYXNlIGlzIHRoZSBtb3N0IGNvbW1vbiBvbmUpCisKK0lkZWFs bHksIHRob3NlIHByb2JsZW1zIHNob3VsZCBiZSBhZGRyZXNzZWQgaW4gdGhlIG9yaWdpbmFsIHBy b2plY3QsCitzbyBhbnkgcGF0Y2hlcyB5b3UgYWRkIHRvIHlvdXIgQlNQIG9yIHRvIFBUWGRpc3Qg c2hvdWxkIGFsc28gYmUgc3VibWl0dGVkIHVwc3RyZWFtLgorVGhlIHVwc3RyZWFtIHByb2plY3Qg Y2FuIG9mdGVuIHByb3ZpZGUgYmV0dGVyIGZlZWRiYWNrLCB0aGV5IGNhbiBpbnRlZ3JhdGUgeW91 cgorcGF0Y2ggaW50byBhIG5ldyByZWxlYXNlLCBhbmQgYWxzbyBtYWludGFpbiB5b3VyIGNoYW5n ZXMgYXMgcGFydCBvZiB0aGUgcHJvamVjdC4KK1RoaXMgd2F5IHdlIG1ha2Ugc3VyZSB0aGF0IGFs bCBhZHZhbnRhZ2VzIG9mIHRoZSBvcGVuIHNvdXJjZSBpZGVhIHdvcmsgZm9yIHVzOworYW5kIHlv dXIgcGF0Y2ggY2FuIGJlIHJlbW92ZWQgYWdhaW4gbGF0ZXIgd2hlbiBhIG5ldyByZWxlYXNlIG9m IHRoZSBwcm9qZWN0IGlzCitpbnRlZ3JhdGVkIGludG8geW91ciBCU1Agb3IgaW50byBQVFhkaXN0 LgorCitQVFhkaXN0IGhhbmRsZXMgcGF0Y2hpbmcgYXV0b21hdGljYWxseS4KK0FmdGVyIGV4dHJh Y3RpbmcgdGhlIGFyY2hpdmUgb2YgYSBwYWNrYWdlLCBQVFhkaXN0IGNoZWNrcyBmb3IgdGhlIGV4 aXN0ZW5jZSBvZgorYSBwYXRjaCBkaXJlY3RvcnkgbmFtZWQgbGlrZSBpdHMgYGA8UEtHPl9QQVRD SEVTYGAgdmFyaWFibGUsIG9yLCBpZiB0aGlzIHZhcmlhYmxlCitpcyBub3Qgc2V0LCBsaWtlIGl0 cyBgYDxQS0c+YGAgdmFyaWFibGUuCitUaGUgcGF0Y2ggZGlyZWN0b3J5IGlzIHRoZW4gc2VhcmNo ZWQgaW4gYWxsIGxvY2F0aW9ucyBsaXN0ZWQgYnkgdGhlCitgYFBUWERJU1RfUEFUSF9QQVRDSEVT YGAgdmFyaWFibGUsIGFuZCB0aGUgZmlyc3Qgb25lIGZvdW5kIGlzIHVzZWQuCitUYWtlIGFuIGV4 ZW1wbGFyeSBwYWNrYWdlIGBgZm9vYGAgd2l0aCB2ZXJzaW9uIGBgMS4xLjBgYDoKK1RoZSB2YXJp YWJsZSBgYEZPT2BgIHdpbGwgaGF2ZSB0aGUgdmFsdWUgYGBmb28tMS4xLjBgYCwgc28gUFRYZGlz dCB3aWxsIGxvb2sgZm9yCithIHBhdGNoIGRpcmVjdG9yeSBuYW1lZCBgYGZvby0xLjEuMGBgIGlu IHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgorCisjLiB0aGUgY3VycmVudCBsYXllcjoKKworICAg YS4gcHJvamVjdCAoYGAuL3BhdGNoZXMvZm9vLTEuMS4wYGApCisgICBiLiBwbGF0Zm9ybSAoYGAu L2NvbmZpZ3MvfHB0eGRpc3RQbGF0Zm9ybUNvbmZpZ0RpcnwvcGF0Y2hlcy9mb28tMS4xLjBgYCkK KworIy4gYW55IDpyZWY6YGJhc2UgbGF5ZXJzIDxsYXllcnMtaW4tcHR4ZGlzdD5gLAorICAgYXBw bHlpbmcgdGhlIHNhbWUgc2VhcmNoIG9yZGVyIGFzIGFib3ZlIGZvciBlYWNoIGxheWVyIHJlY3Vy c2l2ZWx5CisKKyMuIHB0eGRpc3QgKGBgPHB0eGRpc3QvaW5zdGFsbGF0aW9uL3BhdGg+L3BhdGNo ZXMvZm9vLTEuMS4wYGApCisKK1RoZSBwYXRjaGVzIGZyb20gdGhlIGZpcnN0IGxvY2F0aW9uIGZv dW5kIGFyZSB1c2VkLiBOb3RlOiBEdWUgdG8gdGhpcworc2VhcmNoIG9yZGVyLCBhIFBUWGRpc3Qg cHJvamVjdCBjYW4gcmVwbGFjZSBnbG9iYWwgcGF0Y2hlcyBmcm9tIHRoZQorUFRYZGlzdCBpbnN0 YWxsYXRpb24uIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiBhIHByb2plY3Qgc3RpY2tzIHRvIGEKK3Nw ZWNpZmljIFBUWGRpc3QgcmV2aXNpb24gYnV0IGZpeGVzIGZyb20gYSBtb3JlIHJlY2VudCByZXZp c2lvbiBvZgorUFRYZGlzdCBzaG91bGQgYmUgdXNlZC4KKworUFRYZGlzdCB1c2VzIHRoZSB1dGls aXRpZXMgKmdpdCosICpwYXRjaCogb3IgKnF1aWx0KiB0byB3b3JrIHdpdGgKK3BhdGNoZXMgb3Ig cGF0Y2ggc2VyaWVzLiBXZSByZWNvbW1lbmQgKmdpdCosIGFzIGl0IGNhbiBtYW5hZ2UgcGF0Y2gK K3NlcmllcyBpbiBhIHZlcnkgZWFzeSB3YXkuCisKK0NyZWF0aW5nIGEgUGF0Y2ggU2VyaWVzIGZv ciBhIFBhY2thZ2UKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworVG8g Y3JlYXRlIGEgcGF0Y2ggc2VyaWVzIGZvciB0aGUgZmlyc3QgdGltZSwgd2UgY2FuIHJ1biB0aGUg Zm9sbG93aW5nCitzdGVwcy4gV2UgYXJlIHN0aWxsIHVzaW5nIG91ciAqZm9vLTEuMS4wKiBleGFt cGxlIHBhY2thZ2UgaGVyZToKKworVXNpbmcgUXVpbHQKKyIiIiIiIiIiIiIiCisKK1dlIGNyZWF0 ZSBhIHNwZWNpYWwgZGlyZWN0b3J5IGZvciB0aGUgcGF0Y2ggc2VyaWVzIGluIHRoZSBsb2NhbCBw cm9qZWN0CitkaXJlY3Rvcnk6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICAkIG1rZGly IC1wIHBhdGNoZXMvZm9vLTEuMS4wCisKK1BUWGRpc3QgZXhwZWN0cyBhIGBgc2VyaWVzYGAgZmls ZSBpbiB0aGUgcGF0Y2ggZGlyZWN0b3J5IGFuZCBhdCBsZWFzdAorb25lIHBhdGNoLiBPdGhlcndp c2UgaXQgZmFpbHMuIER1ZSB0byB0aGUgZmFjdCB0aGF0IHdlIGRvIG5vdCBoYXZlIGFueQorcGF0 Y2ggY29udGVudCB5ZXQsIHdl4oCZbGwgc3RhcnQgd2l0aCBhIGR1bW15IGVudHJ5IGluIHRoZSBg YHNlcmllc2BgIGZpbGUKK2FuZCBhbiBlbXB0eSBgYHBhdGNoYGAgZmlsZS4KKworLi4gY29kZS1i bG9jazo6IHRleHQKKworICAgICQgdG91Y2ggcGF0Y2hlcy9mb28tMS4xLjAvZHVtbXkKKyAgICAk IGVjaG8gZHVtbXkgPiBwYXRjaGVzL2Zvby0xLjEuMC9zZXJpZXMKKworTmV4dCBpcyB0byBleHRy YWN0IHRoZSBwYWNrYWdlIChpZiBhbHJlYWR5IGRvbmUsIHdlIG11c3QgcmVtb3ZlIGl0CitmaXJz dCk6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICAkIHB0eGRpc3QgZXh0cmFjdCBmb28K KworVGhpcyB3aWxsIGV4dHJhY3QgdGhlIGFyY2hpdmUgYW5kIGNyZWF0ZSBhIHN5bWJvbGljIGxp bmsgaW4gdGhlIGJ1aWxkCitkaXJlY3RvcnkgcG9pbnRpbmcgdG8gb3VyIGxvY2FsIHBhdGNoIGRp cmVjdG9yeS4gV29ya2luZyB0aGlzIHdheSB3aWxsCitlbnN1cmUgdGhhdCB3ZSBkbyBub3QgbG9z ZSBvdXIgY3JlYXRlZCBwYXRjaGVzIGlmIHdlIGVudGVyCitgYHB0eGRpc3QgY2xlYW4gZm9vYGAg YnkgYWNjaWRlbnQuIEluIG91ciBjYXNlIHRoZSBwYXRjaGVzIGFyZSBzdGlsbAorcHJlc2VudCBp biBgYHBhdGNoZXMvZm9vLTEuMS4wYGAgYW5kIGNhbiBiZSB1c2VkIHRoZSBuZXh0IHRpbWUgd2UK K2V4dHJhY3QgdGhlIHBhY2thZ2UgYWdhaW4uCisKK0FsbCB3ZSBoYXZlIHRvIGRvIG5vdyBpcyB0 byBkbyB0aGUgbW9kaWZpY2F0aW9uIHdlIG5lZWQgdG8gbWFrZSB0aGUKK3BhY2thZ2Ugd29yay4g V2UgY2hhbmdlIGludG8gdGhlIGJ1aWxkIGRpcmVjdG9yeSBhbmQgdXNlIHF1aWx0XyB0bworY3Jl YXRlIG5ldyBwYXRjaGVzLCBhZGQgZmlsZXMgdG8gcmVzcGVjdGl2ZSBwYXRjaGVzLCBtb2RpZnkg dGhlc2UgZmlsZXMKK2FuZCByZWZyZXNoIHRoZSBwYXRjaGVzIHRvIHNhdmUgb3VyIGNoYW5nZXMu CitTZWUgdGhlICpxdWlsdCogZG9jdW1lbnRhdGlvbiAoYGBtYW4gMSBxdWlsdGBgKSBmb3IgbW9y ZSBpbmZvcm1hdGlvbi4KKworLi4gbm90ZTo6IEZvciBwYXRjaGVzIHRoYXQgYXJlIGludGVuZGVk IGZvciBQVFhkaXN0IHVwc3RyZWFtIHVzZSB0aGUgZ2l0CisgIHdvcmtmbG93IGRlc2NyaWJlZCBi ZWxvdyB0byBnZXQgcHJvcGVyIHBhdGNoIGhlYWRlcnMuCisKKy4uIF9xdWlsdDogaHR0cDovL3Nh dmFubmFoLm5vbmdudS5vcmcvcHJvamVjdHMvcXVpbHQKKworVXNpbmcgR2l0CisiIiIiIiIiIiIK KworQ3JlYXRlIHRoZSBwYXRjaCBkaXJlY3RvcnkgbGlrZSBhYm92ZSBmb3IgKnF1aWx0KiwKK2J1 dCBvbmx5IGFkZCBhbiBlbXB0eSBzZXJpZXMgZmlsZToKKworLi4gY29kZS1ibG9jazo6IHRleHQK KworICAgICQgbWtkaXIgLXAgcGF0Y2hlcy9mb28tMS4xLjAKKyAgICAkIHRvdWNoIHBhdGNoZXMv Zm9vLTEuMS4wL3NlcmllcworCitUaGVuIGV4dHJhY3QgdGhlIHBhY2thZ2Ugd2l0aCBhbiBhZGRp dGlvbmFsIGNvbW1hbmQgbGluZSBzd2l0Y2g6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAg ICAkIHB0eGRpc3QgLS1naXQgZXh0cmFjdCBmb28KKworVGhlIGVtcHR5IHNlcmllcyBmaWxlIG1h a2VzIFBUWGRpc3QgY3JlYXRlIGEgR2l0IHJlcG9zaXRvcnkgaW4gdGhlCityZXNwZWN0aXZlIHBh Y2thZ2UgYnVpbGQgZGlyZWN0b3J5LAorYW5kIGltcG9ydCB0aGUgcGFja2FnZSBzb3VyY2UgYXMg dGhlIGZpcnN0IGNvbW1pdC4KKworLi4gbm90ZTo6IE9wdGlvbmFsbHksIHlvdSBjYW4gZW5hYmxl IHRoZSBzZXR0aW5nICpEZXZlbG9wZXIgT3B0aW9ucyDihpIKKyAgdXNlIGdpdCB0byBhcHBseSBw YXRjaGVzKiBpbiBgcHR4ZGlzdCBzZXR1cGAgdG8gZ2V0IHRoaXMgYmVoYXZpb3VyCisgIGFzIGEg ZGVmYXVsdCBmb3IgZXZlcnkgcGFja2FnZS4KKyAgSG93ZXZlciwgbm90ZSB0aGF0IHRoaXMgc2V0 dGluZyBpcyBtZWFudCBmb3IgZGV2ZWxvcG1lbnQgb25seSwgYW5kIGNhbiBsZWFkCisgIHRvIGZh aWx1cmVzIOKAkyBzb21lIHBhY2thZ2VzIHRyeSB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgYmVp bmcgY29tcGlsZWQgZnJvbQorICBhIEdpdCBzb3VyY2UgdHJlZSwgYW5kIGJlaGF2ZSBkaWZmZXJl bnRseSBpbiB0aGF0IGNhc2UuCisKK1RoZW4geW91IGNhbiBjaGFuZ2UgaW50byB0aGUgcGFja2Fn ZSBidWlsZCBkaXJlY3RvcnkKKyhgYHBsYXRmb3JtLTxuYW1lPi9idWlsZC10YXJnZXQvZm9vLTEu MS4wYGApLAorcGF0Y2ggdGhlIHJlcXVpcmVkIHNvdXJjZSBmaWxlcywKK2FuZCBtYWtlIEdpdCBj b21taXRzIG9uIHRoZSB3YXkuCitUaGUgR2l0IGhpc3Rvcnkgc2hvdWxkIG5vdyBsb29rIHNvbWV0 aGluZyBsaWtlIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiB0ZXh0CisKKyAgICAkIGdpdCBsb2cg LS1vbmVsaW5lIC0tZGVjb3JhdGUKKyAgICAqIGRmMzQzZTgyMTg1MSAoSEVBRCAtPiBtYXN0ZXIp IE1ha2VmaWxlOiBkb24ndCBidWlsZCB0aGUgdGVzdHMKKyAgICAqIDY1YTM2MGMyYmQ2MCBzdHJm cnkuYzogZnJvYm5pY2F0ZSB0aGUgZXhjdXNhdG9yCisgICAgKiBmZGMzMTVmNjg0NGMgKHRhZzog Zm9vYmFyLTEuMS4wLCB0YWc6IGJhc2UpIGluaXRpYWwgY29tbWl0CisKK0ZpbmFsbHksIGNhbGwg YGBnaXQgcHR4LXBhdGNoZXNgYCB0byB0cmFuc2Zvcm0gdGhvc2UgR2l0IGNvbW1pdHMgaW50byB0 aGUgcGF0Y2gKK3NlcmllcyBpbiB0aGUgYGBwYXRjaGVzL2Zvby0xLjEuMGBgIGZvbGRlci4KK1Ro aXMgd2F5IHRoZXkgZG9uJ3QgZ2V0IGxvc3Qgd2hlbiBjbGVhbmluZyB0aGUgcGFja2FnZS4KKwor Li4gbm90ZTo6IFBUWGRpc3Qgd2lsbCBvbmx5IGNyZWF0ZSBhIEdpdCByZXBvc2l0b3J5IGZvciBw YWNrYWdlcyB3aXRoCisgIHBhdGNoZXMuICBUbyB1c2UgR2l0IHRvIGdlbmVyYXRlIHRoZSBmaXJz dCBwYXRjaCwgY3JlYXRlIGFuIGVtcHR5IHNlcmllcworICBmaWxlIGBgcGF0Y2hlcy9mb29iYXIt MS4xLjAvc2VyaWVzYGAgYmVmb3JlIGV4dHJhY3RpbmcgdGhlIHBhY2thZ2VzLiBUaGlzCisgIHdp bGwgdGVsbCBQVFhkaXN0IHRvIHVzZSBHaXQgYW55d2F5cyBhbmQgYGBnaXQgcHR4LXBhdGNoZXNg YCB3aWxsIHB1dCB0aGUKKyAgcGF0Y2hlcyB0aGVyZS4KKworQm90aCBhcHByb2FjaGVzIChHaXQg YW5kIHF1aWx0KSBhcmUgbm90IHN1aXRhYmxlIGZvciBtb2RpZnlpbmcgZmlsZXMKK3RoYXQgYXJl IGF1dG9nZW5lcmF0ZWQgaW4gYXV0b3Rvb2xzLWJhc2VkIGJ1aWxkc3lzdGVtcy4KK1JlZmVyIHRv IHRoZSBzZWN0aW9uIDpyZWY6YGNvbmZpZ3VyZV9yZWJ1aWxkYCBvbiBob3cgUFRYZGlzdCBjYW4K K2hhbmRsZSB0aGlzIHNwZWNpYWwgdGFzay4KKworQWRkaW5nIE1vcmUgUGF0Y2hlcyB0byBhIFBh Y2thZ2UKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK0lmIHdlIHdhbnQgdG8g YWRkIG1vcmUgcGF0Y2hlcyB0byBhbiBhbHJlYWR5IHBhdGNoZWQgcGFja2FnZSwgd2UgY2FuIHVz ZQorbmVhcmx5IHRoZSBzYW1lIHdheSBhcyBjcmVhdGluZyBwYXRjaGVzIGZvciB0aGUgZmlyc3Qg dGltZS4gQnV0IGlmIHRoZQorcGF0Y2ggc2VyaWVzIGNvbWVzIGZyb20gdGhlIFBUWGRpc3QgbWFp biBpbnN0YWxsYXRpb24sIHdlIGRvIG5vdCBoYXZlCit3cml0ZSBwZXJtaXNzaW9ucyB0byB0aGVz ZSBkaXJlY3RvcmllcyAoZG8gTkVWRVIgd29yayBvbiB0aGUgbWFpbgoraW5zdGFsbGF0aW9uIGRp cmVjdG9yaWVzLCBORVZFUiwgTkVWRVIsIE5FVkVSKS4gRHVlIHRvIHRoZSBzZWFyY2ggb3JkZXIK K2luIHdoaWNoIFBUWGRpc3Qgc2VhcmNoZXMgZm9yIHBhdGNoZXMgZm9yIGEgc3BlY2lmaWMgcGFj a2FnZSwgd2UgY2FuCitjb3B5IHRoZSBnbG9iYWwgcGF0Y2ggc2VyaWVzIHRvIG91ciBsb2NhbCBw cm9qZWN0IGRpcmVjdG9yeS4gTm93IHdlIGhhdmUKK3RoZSBwZXJtaXNzaW9ucyB0byBhZGQgbW9y ZSBwYXRjaGVzIG9yIG1vZGlmeSB0aGUgZXhpc3Rpbmcgb25lcy4gQWxzbworKnF1aWx0KiBhbmQg KmdpdCogYXJlIG91ciBmcmllbmRzIGhlcmUgdG8gbWFuYWdlIHRoZSBwYXRjaCBzZXJpZXMuCisK K0lmIHdlIHRoaW5rIHRoYXQgb3VyIG5ldyBwYXRjaGVzIGFyZSB2YWx1YWJsZSBhbHNvIGZvciBv dGhlcnMsIG9yIHRoZXkKK2ZpeCBhbiBlcnJvciwgaXQgY291bGQgYmUgYSBnb29kIGlkZWEgdG8g c2VuZCB0aGVzZSBwYXRjaGVzIHRvIFBUWGRpc3QKK21haW5saW5lLCBhbmQgdG8gdGhlIHVwc3Ry ZWFtIHByb2plY3QgdG9vLgorCisKKy4uIF9jb25maWd1cmVfcmVidWlsZDoKKworTW9kaWZ5aW5n IEF1dG90b29saXplZCBQYWNrYWdlcworXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgor CitBdXRvdG9vbGl6ZWQgcGFja2FnZXMgYXJlIHZlcnkgcGlja3kgd2hlbiBhdXRvbWF0aWNhbGx5 IGdlbmVyYXRlZCBmaWxlcworZ2V0IHBhdGNoZWQuIFRoZSBwYXRjaCBvcmRlciBpcyB2ZXJ5IGlt cG9ydGFudCBpbiB0aGlzIGNhc2UgYW5kCitzb21ldGltZXMgaXQgZXZlbiBmYWlscyBhbmQgbm9i b2R5IGtub3dzIHdoeS4KKworVG8gaW1wcm92ZSBhIHBhY2thZ2XigJlzIGF1dG90b29scy1iYXNl ZCBidWlsZCBzeXN0ZW0sIFBUWGRpc3QgY29tZXMgd2l0aAoraXRzIG93biBwcm9qZWN0IGxvY2Fs IGF1dG90b29scyB0byByZWdlbmVyYXRlIHRoZSBhdXRvdG9vbHMgdGVtcGxhdGUKK2ZpbGVzLCBp bnN0ZWFkIG9mIHBhdGNoaW5nIHRoZW0uIFdpdGggdGhpcyBmZWF0dXJlLCBvbmx5IHRoZSB0ZW1w bGF0ZQorZmlsZXMgbXVzdCBiZSBwYXRjaGVkLCB0aGUgcmVxdWlyZWQgYGBjb25maWd1cmVgYCBz Y3JpcHQgYW5kIHRoZQorYGBNYWtlZmlsZS5pbmBgIGZpbGVzIGFyZSByZWdlbmVyYXRlZCBpbiB0 aGUgZmluYWwgc3RhZ2VzIG9mIHRoZQorKnByZXBhcmUqIHN0ZXAuCisKK1RoaXMgZmVhdHVyZSB3 b3JrcyBsaWtlIHRoZSByZWd1bGFyIHBhdGNoaW5nIG1lY2hhbmlzbS4gVGhlIG9ubHkKK2RpZmZl cmVuY2UgaXMgdGhlIGFkZGl0aW9uYWwgYGBhdXRvZ2VuLnNoYGAgZmlsZSBpbiB0aGUgcGF0Y2gg ZGlyZWN0b3J5LgorSWYgaXQgZXhpc3RzIGFuZCBoYXMgZXhlY3V0aW9uIHBlcm1pc3Npb25zLCBp dCB3aWxsIGJlIGNhbGxlZCBhZnRlciB0aGUKK3BhY2thZ2Ugd2FzIHBhdGNoZWQgKHdoaWxlIHRo ZSAqZXh0cmFjdCogc3RhZ2UgaXMgcnVubmluZykuCisKK0l0cyBjb250ZW50IGRlcGVuZHMgb24g ZGV2ZWxvcGVyIG5lZWRzOyBmb3IgdGhlIG1vc3Qgc2ltcGxlIGNhc2UgdGhlCitjb250ZW50IGNh biBiZToKKworLi4gY29kZS1ibG9jazo6IGJhc2gKKworICAgICMhL2Jpbi9iYXNoCisKKyAgICBh Y2xvY2FsICRBQ0xPQ0FMX0ZMQUdTCisKKyAgICBsaWJ0b29saXplIFwKKyAgICAgICAgICAgIC0t Zm9yY2UgXAorICAgICAgICAgICAgLS1jb3B5CisKKyAgICBhdXRvcmVjb25mIFwKKyAgICAgICAg ICAgIC0tZm9yY2UgXAorICAgICAgICAgICAgLS1pbnN0YWxsIFwKKyAgICAgICAgICAgIC0td2Fy bmluZ3M9Y3Jvc3MgXAorICAgICAgICAgICAgLS13YXJuaW5ncz1zeW50YXggXAorICAgICAgICAg ICAgLS13YXJuaW5ncz1vYnNvbGV0ZSBcCisgICAgICAgICAgICAtLXdhcm5pbmdzPXVuc3VwcG9y dGVkCisKKy4uIG5vdGU6OiBJbiB0aGlzIHdheSBub3QgeWV0IGF1dG90b29saXplZCBwYWNrYWdl IGNhbiBiZSBhdXRvdG9vbGl6ZWQuIFdlCisgIGp1c3QgaGF2ZSB0byBhZGQgdGhlIGNvbW1vbiBh dXRvdG9vbCB0ZW1wbGF0ZSBmaWxlcyAoYGBjb25maWd1cmUuYWNgYAorICBhbmQgYGBNYWtlZmls ZS5hbWBgIGZvciBleGFtcGxlKSB2aWEgYSBwYXRjaCBzZXJpZXMgdG8gdGhlIHBhY2thZ2UKKyAg c291cmNlIGFuZCB0aGUgYGBhdXRvZ2VuLnNoYGAgdG8gdGhlIHBhdGNoIGRpcmVjdG9yeS4KZGlm ZiAtLWdpdCBhL2RvYy9kZXZfY3JlYXRlX25ld19wa2dfdGVtcGxhdGVzLnJzdCBiL2RvYy9kZXZf Y3JlYXRlX25ld19wa2dfdGVtcGxhdGVzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLmQ3YzI5MjdiNgotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9kZXZfY3JlYXRlX25l d19wa2dfdGVtcGxhdGVzLnJzdApAQCAtMCwwICsxLDc3IEBACitDcmVhdGluZyBOZXcgUGFja2Fn ZSBUZW1wbGF0ZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGb3IgbGFyZ2Vy IHByb2plY3RzIGl0IGNhbiBiZSBjb252ZW5pZW50IHRvIGhhdmUgcHJvamVjdCBzcGVjaWZpYyBw YWNrYWdlCit0ZW1wbGF0ZXMuIFRoaXMgY2FuIGJlIGFjaGlldmVkIGJ5IGVpdGhlciBtb2RpZnlp bmcgZXhpc3RpbmcgdGVtcGxhdGVzIG9yCitieSBjcmVhdGluZyBjb21wbGV0ZWx5IG5ldyB0ZW1w bGF0ZXMuCisKK01vZGlmeWluZyBhIFRlbXBsYXRlCit+fn5+fn5+fn5+fn5+fn5+fn5+fgorCitB IHRlbXBsYXRlIGNhbiBiZSBtb2RpZmllZCBieSBwcm92aWRpbmcgbmV3IGlucHV0IGZpbGVzLiBU aGlzIGlzIGVhc2llcgordGhhbiBjcmVhdGluZyBhIG5ldyB0ZW1wbGF0ZSBidXQgZG9lcyBub3Qg YWxsb3cgdG8gc3BlY2lmeSBuZXcgdmFyaWFibGVzIHRvCitzdWJzdGl0dXRlIGluIHRoZSBpbnB1 dCBmaWxlcy4KKworUFRYZGlzdCBsb29rcyBmb3IgdGVtcGxhdGUgZmlsZXMgdGhlIHNhbWUgd2F5 IGl0IGxvb2tzIGZvciBydWxlcyBmaWxlcy4gVGhlCitvbmx5IGRpZmZlcmVuY2UgaXMsIHRoYXQg aXQgc2VhcmNoZXMgaW4gdGhlIGBgdGVtcGxhdGVzL2BgIHN1YmRpcmVjdG9yeS4KK1NvIGEgbW9k aWZpZWQgYGAuL3J1bGVzL3RlbXBsYXRlcy90ZW1wbGF0ZS10YXJnZXQtbWFrZWBgIGNhbiBiZSB1 c2VkIHRvCit0d2VhayB0aGUgYGB0YXJnZXRgYCB0ZW1wbGF0ZS4KKworQ3JlYXRpbmcgYSBOZXcg VGVtcGxhdGUKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK0ZvciBhIGNvbXBsZXRlbHkgbmV3 IHRlbXBsYXRlLCBzb21lIGJhc2ggc2NyaXB0aW5nIGlzIHJlcXVpcmVkLiBBbGwgc2hlbGwKK2Nv ZGUgbXVzdCBiZSBwbGFjZWQgaW4gYSBmaWxlIG5hbWVkIGxpa2UgdGhpczoKK2BgLi9zY3JpcHRz L2xpYi9wdHhkX2xpYl8qLnNoYGAuCisKK1RoZSBtaW5pbXVtIHJlcXVpcmVtZW50IGZvciBhIG5l dyB0ZW1wbGF0ZSBpczoKKy0gIGEgc2hlbGwgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIHRoZSBuZXcg cGFja2FnZQorLSAgcmVnaXN0ZXJpbmcgdGhlIG5ldyB0ZW1wbGF0ZQorCisuLiBjb2RlLWJsb2Nr Ojogc2gKKworICAgIHB0eGRfdGVtcGxhdGVfbmV3X215cGtnKCkgeworICAgICAgICAjIGNyZWF0 ZSB0aGUgcGFja2FnZSBoZXJlCisgICAgfQorICAgIGV4cG9ydCAtZiBwdHhkX3RlbXBsYXRlX25l d19teXBrZworICAgIHB0eGRfdGVtcGxhdGVfaGVscF9saXN0WyR7I3B0eGRfdGVtcGxhdGVfaGVs cF9saXN0W0BdfV09Im15cGtnIgorICAgIHB0eGRfdGVtcGxhdGVfaGVscF9saXN0WyR7I3B0eGRf dGVtcGxhdGVfaGVscF9saXN0W0BdfV09ImNyZWF0ZSBhd2Vzb21lIG15cGtnIHBhY2thZ2UiCisK K1BUWGRpc3QgcHJvdmlkZXMgc2V2ZXJhbCBoZWxwZXIgZnVuY3Rpb25zIHRvIHNpbXBsaWZ5IHRo ZSB0ZW1wbGF0ZS4KK1VzaW5nIHRob3NlIGZ1bmN0aW9ucywgdGhlIHBhY2thZ2UgY3JlYXRpb24g cHJvY2VzcyBpcyBzcGxpdCBpbnRvIHR3bworcGFydHM6CisKKy0gIHF1ZXJ5IHRoZSB1c2VyIGZv ciBpbnB1dCBhbmQgZXhwb3J0IHZhcmlhYmxlcy4KKy0gIGNyZWF0ZSB0aGUgbmV3IHBhY2thZ2Ug ZmlsZXMgZnJvbSB0aGUgdGVtcGxhdGUgc291cmNlIGZpbGVzIGJ5CisgICBzdWJzdGl0dXRpbmcg YWxsIGluc3RhbmNlcyBvZiBgYEA8dmFyaWFibGU+QGBgIHdpdGggdGhlIHZhbHVlIG9mIHRoZQor ICAgY29ycmVzcG9uZGluZyB2YXJpYWJsZS4KKworQSBzaW1wbGUgdGVtcGxhdGUgZnVuY3Rpb24g Y291bGQgbG9vayBsaWtlIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBzaAorCisgICAgcHR4ZF90 ZW1wbGF0ZV9uZXdfbXlwa2coKSB7CisgICAgICAgIHB0eGRfdGVtcGxhdGVfcmVhZF9iYXNpYyAm JgorICAgICAgICBwdHhkX3RlbXBsYXRlX3JlYWQgImVudGVyIGRvd25sb2FkIHNlY3Rpb24iIERM X1NFQ1RJT04gImZvb2JhciIKKyAgICAgICAgcHR4ZF90ZW1wbGF0ZV9yZWFkX2F1dGhvciAmJgor ICAgICAgICBleHBvcnQgc2VjdGlvbj0ibG9jYWxfJHtkbHNlY3Rpb259IiAmJgorICAgICAgICBw dHhkX3RlbXBsYXRlX3dyaXRlX3J1bGVzCisgICAgfQorCitUaGlzIHRlbXBsYXRlIHJlcXVpcmVz IGBgcnVsZXMvdGVtcGxhdGVzL3RlbXBsYXRlLW15cGtnLW1ha2VgYCBhbmQKK2BgcnVsZXMvdGVt cGxhdGVzL3RlbXBsYXRlLW15cGtnLWluYGAgYXMgc291cmNlIGZpbGVzLiBUaGV5IGNvdWxkIGJl CitkZXJpdmVkIGZyb20gdGhlIGBgdGFyZ2V0YGAgdGVtcGxhdGUgd2l0aCBhIHNpbXBsZSBtb2Rp ZmljYXRpb246CisKKy4uIGNvZGUtYmxvY2s6OiBtYWtlCisKKyAgICBAUEFDS0FHRUBfU1VGRklY CTo9IHRhci54egorICAgIEBQQUNLQUdFQF9VUkwJOj0gaHR0cDovL2RsLm15LWNvbXBhbnkubG9j YWwvZG93bmxvYWRzL0BETF9TRUNUSU9OQC8kKEBQQUNLQUdFQCkuJChAUEFDS0FHRUBfU1VGRklY KQorCitUaGUgaGVscGVyIGZ1bmN0aW9ucyB0aGF0IGFyZSB1c2VkIGluIHRoZSBleGFtcGxlIGFi b3ZlIGFyZSBkZWZpbmVkIGluCitgYHNjcmlwdHMvbGliL3B0eGRfbGliX3RlbXBsYXRlLnNoYGAg aW4gdGhlIFBUWGRpc3Qgc291cmNlIHRyZWUuCisKK1RoZSB0ZW1wbGF0ZSBpcyBhIG5vcm1hbCBz aGVsbCBmdW5jdGlvbi4gQXJiaXRyYXJ5IHRoaW5ncyBjYW4gYmUgZG9uZSBoZXJlCit0byBjcmVh dGUgdGhlIG5ldyBwYWNrYWdlLiBUaGUgaGVscGVyIGZ1bmN0aW9ucyBhcmUganVzdCB0aGUgbW9z dAorY29udmVuaWVudCB3YXkgdG8gY3JhdGUgc2ltcGxlIHRlbXBsYXRlcy4gSXQgaXMgYWxzbyBw b3NzaWJsZSB0byBjcmVhdGUKK21vcmUgZmlsZXMuIEZvciBleGFtcGxlcywgdGhlIGJ1aWx0aW4g YGBnZW5pbWFnZWBgIHRlbXBsYXRlIGNyZWF0ZXMgYSBleHRyYQorY29uZmlnIGZpbGUgZm9yIHRo ZSBuZXcgcGFja2FnZS4KZGlmZiAtLWdpdCBhL2RvYy9kZXZfZGlyX2hpZXJhcmNoeS5yc3QgYi9k b2MvZGV2X2Rpcl9oaWVyYXJjaHkucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMC4uYmQxYWQ0MGQwCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL2Rldl9kaXJfaGllcmFyY2h5 LnJzdApAQCAtMCwwICsxLDEwOCBAQAorLi4gX2RpcmVjdG9yeV9oaWVyYXJjaHk6CisKK1BUWGRp c3TigJlzIERpcmVjdG9yeSBIaWVyYXJjaHkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisKKy4uIG5vdGU6OiBSZWZlcmVuY2VkIGRpcmVjdG9yaWVzIGFyZSBtZWFudCByZWxhdGl2ZSB0 byB0aGUgUFRYZGlzdCBtYWluCisgIGluc3RhbGxhdGlvbiBsb2NhdGlvbiAoaWYgbm90IG90aGVy d2lzZSBzdGF0ZWQpLiBJZiBub3QgY29uZmlndXJlZAorICBkaWZmZXJlbnRseSwgdGhpcyBtYWlu IHBhdGggaXMgYGAvdXNyL2xvY2FsL2xpYi9wdHhkaXN0LXxwdHhkaXN0VmVuZG9yVmVyc2lvbnxg YAorCitSdWxlIEZpbGVzCit+fn5+fn5+fn5+CisKK1doZW4gYnVpbGRpbmcgYSBzaW5nbGUgcGFj a2FnZSwgUFRYZGlzdCBuZWVkcyB0aGUgaW5mb3JtYXRpb24gb24gaG93IHRvCitoYW5kbGUgdGhl IHBhY2thZ2UsIGkuZS4gb24gaG93IHRvIGdldCBpdCBmcm9tIHRoZSBzb3VyY2UgdXAgdG8gd2hh dCB0aGUKK3RhcmdldCBuZWVkcyBhdCBydW4tdGltZS4gVGhpcyBpbmZvcm1hdGlvbiBpcyBwcm92 aWRlZCBieSBhIHJ1bGUgZmlsZSBwZXIKK3BhY2thZ2UuCisKK1BUWGRpc3QgY29sbGVjdHMgYWxs IHJ1bGUgZmlsZXMgaW4gaXRzIGBgcnVsZXMvYGAgZGlyZWN0b3J5LiBXaGVuZXZlcgorUFRYZGlz dCBidWlsZHMgc29tZXRoaW5nLCBhbGwgdGhlc2UgcnVsZSBmaWxlcyBhcmUgc2Nhbm5lZCBhdCBv bmNlLgorVGhlc2UgcnVsZSBmaWxlcyBhcmUgZ2xvYmFsIHJ1bGUgZmlsZXMsIHZhbGlkIGZvciBh bGwgcHJvamVjdHMuIFBUWGRpc3QKK3VzZXMgYSBtZWNoYW5pc20gdG8gYmUgYWJsZSB0byBhZGQg b3IgcmVwbGFjZSBzcGVjaWZpYyBydWxlIGZpbGVzIG9uIGEKK3BlciBwcm9qZWN0IGJhc2UuIElm IGEgYGBydWxlcy9gYCBkaXJlY3RvcnkgZXhpc3RzIGluIHRoZSBjdXJyZW50Citwcm9qZWN0LCBp dHMgY29udGVudCBpcyBzY2FubmVkIHRvby4gVGhlc2UgcHJvamVjdCBsb2NhbCBydWxlIGZpbGVz IGFyZQordXNlZCBpbiBhZGRpdGlvbiB0byB0aGUgZ2xvYmFsIHJ1bGUgZmlsZXMgb3Ig4oCTIGlm IHRoZXkgYXJlIHVzaW5nIHRoZQorc2FtZSBuYW1lIGFzIGEgZ2xvYmFsIHJ1bGUgZmlsZSDigJMg KipyZXBsYWNpbmcqKiB0aGUgZ2xvYmFsIHJ1bGUgZmlsZS4KKworVGhlIHJlcGxhY2luZyBtZWNo YW5pc20gY2FuIGJlIHVzZWQgdG8gZXh0ZW5kIG9yIGFkYXB0IHBhY2thZ2VzIGZvcgorc3BlY2lm aWMgcHJvamVjdCByZXF1aXJlbWVudHMuIE9yIGl0IGNhbiBiZSB1c2VkIGZvciBidWcgZml4aW5n IGJ5CitiYWNrcG9ydGluZyBydWxlIGZpbGVzIGZyb20gbW9yZSByZWNlbnQgUFRYZGlzdCByZXZp c2lvbnMgdG8gcHJvamVjdHMKK3RoYXQgYXJlIHN0dWNrIHRvIGFuIG9sZGVyIFBUWGRpc3QgcmV2 aXNpb24gZm9yIG1haW50ZW5hbmNlIG9ubHkuCisKK1BhdGNoIFNlcmllcworfn5+fn5+fn5+fn5+ CisKK1RoZXJlIGFyZSBtYW55IHBhY2thZ2VzIGluIHRoZSB3aWxkIHRoYXQgYXJlIG5vdCBjcm9z cyBidWlsZCBhd2FyZS4gVGhleQorZmFpbCBjb21waWxpbmcgc29tZSBmaWxlcywgdXNlIHdyb25n IGluY2x1ZGUgcGF0aHMgb3IgdHJ5IHRvIGxpbmsKK2FnYWluc3QgaG9zdCBsaWJyYXJpZXMuIFRv IGJlIHN1Y2Nlc3NmdWwgaW4gdGhlIGVtYmVkZGVkIHdvcmxkLCB0aGVzZQordHlwZXMgb2YgZmFp bHVyZXMgbXVzdCBiZSBmaXhlZC4gSWYgcmVxdWlyZWQsIFBUWGRpc3QgcHJvdmlkZXMgc3VjaAor Zml4ZXMgcGVyIHBhY2thZ2UuIFRoZXkgYXJlIG9yZ2FuaXplZCBpbiAqcGF0Y2ggc2VyaWVzKiBh bmQgY2FuIGJlIGZvdW5kCitpbiBhIGBgcGF0Y2hlcy9gYCBkaXJlY3Rvcnkgd2l0aGluIGEgc3Vi ZGlyZWN0b3J5IHVzaW5nIHRoZSBzYW1lIG5hbWUKK2FzIHRoZSBwYWNrYWdlIGl0c2VsZi4KKwor UFRYZGlzdCB1c2VzIHRoZSB1dGlsaXR5IGBgcGF0Y2hgYCBvciBgYHF1aWx0YGAgKG9yIGBgZ2l0 YGAgb24gZGVtYW5kKSB0byBhcHBseQorYW4gZXhpc3RpbmcgcGF0Y2ggc2VyaWVzIGFmdGVyIGV4 dHJhY3RpbmcgdGhlIGFyY2hpdmUuIFNvLCBldmVyeSBwYXRjaCBzZXJpZXMKK2NvbnRhaW5zIGEg c2V0IG9mIHBhdGNoZXMgYW5kIG9uZSBgYHNlcmllc2BgIGZpbGUgdG8gZGVmaW5lIHRoZSBvcmRl ciBpbgord2hpY2ggdGhlIHBhdGNoZXMgbXVzdCBiZSBhcHBsaWVkLgorCisuLiBub3RlOjogUGF0 Y2hlcyBjYW4gYmUgY29tcHJlc3NlZC4KKworUGF0Y2hlcyBhcmUgbG9va2VkIGZvciBhdCBzZXZl cmFsIGxvY2F0aW9uczoKKworMS4gIHRoZSBgYHBhdGNoZXMvYGAgZm9sZGVyIGluIHlvdXIgQlNQ IChgYCR7UFRYRElTVF9XT1JLU1BBQ0V9L3BhdGNoZXNgYCkKKworMi4gIHRoZSBmb2xkZXIgYGBw YXRjaGVzL2BgIGZvbGRlciByZWxhdGl2ZSB0byB5b3VyIHNlbGVjdGVkIHBsYXRmb3JtY29uZmln CisgICAgZmlsZSAoYGAke1BUWERJU1RfUExBVEZPUk1DT05GSUdESVJ9L3BhdGNoZXNgYCkuIElm IHlvdXIgcGxhdGZvcm1jb25maWcKKyAgICBmaWxlIGlzIGF0IGBgY29uZmlncy98cHR4ZGlzdFBs YXRmb3JtQ29uZmlnRGlyfC9wbGF0Zm9ybWNvbmZpZ2BgLCB0aGlzCisgICAgcGF0Y2ggZm9sZGVy IHdpbGwgYmUgYGBjb25maWdzL3xwdHhkaXN0UGxhdGZvcm1Db25maWdEaXJ8L3BhdGNoZXMvYGAu CisKKzMuICB0aGUgYGBwYXRjaGVzL2BgIGZvbGRlciBpbiBQVFhkaXN0J3MgbWFpbiBpbnN0YWxs YXRpb24gZGlyZWN0b3J5CisgICAgKGBgJHtQVFhESVNUX1RPUERJUn0vcGF0Y2hlc2BgKQorCitU aGUgbGlzdCBpcyB0cmllZCBmcm9tIGZpcnN0IHRvIGxhc3QuCitJZiBubyBwYXRjaGVzIHdlcmUg Zm91bmQgaW4gb25lIG9mIHRoZSBsb2NhdGlvbnMsIHRoZSBuZXh0IGxvY2F0aW9uIGlzIHRyaWVk LgorV2hlbiBhbGwgbG9jYXRpb25zIGhhdmUgYmVlbiB0cmllZCB1bnN1Y2Nlc3NmdWxseSwgdGhl IHBhY2thZ2UgaXMgbm90IHBhdGNoZWQuCisKK1RoaXMgc2VhcmNoIG9yZGVyIGNhbiBiZSB1c2Vk IHRvIHVzZSBzcGVjaWZpYyBwYXRjaCBzZXJpZXMgZm9yIHNwZWNpZmljCitjYXNlcy4KKworLSAg cGxhdGZvcm0gc3BlY2lmaWMKKworLSAgcHJvamVjdCBzcGVjaWZpYworCistICBjb21tb24gY2Fz ZQorCistICBidWcgZml4aW5nCisKK1RoZSAqYnVnIGZpeGluZyogY2FzZSBpcyB1c2VkIGluIGFj Y29yZGFuY2UgdG8gYSByZXBsYWNlbWVudCBvZiBhIHJ1bGUKK2ZpbGUuIElmIHRoaXMgd2FzIGRv bmUgZHVlIHRvIGEgYmFja3BvcnQsIGFuZCB0aGUgbW9yZSByZWNlbnQgUFRYZGlzdAorcmV2aXNp b24gZG9lcyBub3Qgb25seSBleGNoYW5nZSB0aGUgcnVsZSBmaWxlIGJ1dCBhbHNvIHRoZSBwYXRj aCBzZXJpZXMsCit0aGlzIG1lY2hhbmlzbSBlbnN1cmVzIHRoYXQgYm90aCByZWxldmFudCBwYXJ0 cyBjYW4gYmUgdXBkYXRlZCBpbiB0aGUKK3Byb2plY3QuCisKK1J1bnRpbWUgQ29uZmlndXJhdGlv bgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK01hbnkgcGFja2FnZXMgYXJlIHVzaW5nIHJ1bi10 aW1lIGNvbmZpZ3VyYXRpb24gZmlsZXMgYWxvbmcgd2l0aCB0aGVpcgorZXhlY3V0YWJsZXMgYW5k IGxpYnJhcmllcy4gUFRYZGlzdCBwcm92aWRlcyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZXMK K2ZvciB0aGUgbW9zdCBjb21tb24gY2FzZXMuIFRoZXNlIGZpbGVzIGNhbiBiZSBmb3VuZCBpbiB0 aGUKK2BgcHJvamVjdHJvb3QvZXRjYGAgZGlyZWN0b3J5IGFuZCB0aGV5IGFyZSB1c2luZyB0aGUg c2FtZSBuYW1lcyBhcyB0aGUgb25lcworYXQgcnVuLXRpbWUgKGFuZCB0aGVpciBpbnN0YWxsIGRp cmVjdG9yeSBvbiB0aGUgdGFyZ2V0IHNpZGUgd2lsbCBhbHNvIGJlCitgYC9ldGNgYCkuCisKK0J1 dCBzb21lIG9mIHRoZXNlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlcyBhcmUgZW1wdHksIGR1 ZSB0byB0aGUKK2Fic2VuY2Ugb2YgYSBjb21tb24gY2FzZS4gVGhlIHByb2plY3QgbXVzdCBwcm92 aWRlIHJlcGxhY2VtZW50cyBvZiB0aGVzZQorZmlsZXMgd2l0aCBhIG1vcmUgdXNlZnVsIGNvbnRl bnQgaW4gZXZlcnkgY2FzZSB3aGVyZSB0aGUgKGVtcHR5KSBkZWZhdWx0CitvbmUgZG9lcyBub3Qg bWVldCB0aGUgdGFyZ2V04oCZcyByZXF1aXJlbWVudHMuCisKK1BUWGRpc3QgZmlyc3Qgc2VhcmNo ZXMgaW4gdGhlIGxvY2FsIHByb2plY3QgZGlyZWN0b3J5IGZvciBhIHNwZWNpZmljCitjb25maWd1 cmF0aW9uIGZpbGUgYW5kIGZhbGxzIGJhY2sgdG8gdXNlIHRoZSBkZWZhdWx0IG9uZSBpZiBub25l IGV4aXN0cworbG9jYWxseS4gUmVmZXIgc2VjdGlvbiA6cmVmOmBpbnN0YWxsX2FsdGVybmF0aXZl YCBmb3IgZnVydGhlcgorZGV0YWlscyBpbiB3aGljaCBvcmRlciBhbmQgbG9jYXRpb25zIFBUWGRp c3Qgc2VhcmNoZXMgZm9yIHRoZXNlIGtpbmQgb2YgZmlsZXMuCisKK0EgcG9wdWxhciBleGFtcGxl IGlzIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgYGAvZXRjL2ZzdGFiYGAuIFRoZSBkZWZhdWx0Citv bmUgY29taW5nIHdpdGggUFRYZGlzdCB3b3JrcyBmb3IgdGhlIG1vc3QgY29tbW9uIGNhc2VzLiBC dXQgaWYgb3VyCitwcm9qZWN0IHJlcXVpcmVzIGEgc3BlY2lhbCBzZXR1cCwgd2UgY2FuIGp1c3Qg Y29weSB0aGUgZGVmYXVsdCBvbmUgdG8KK3RoZSBsb2NhbCBgYC4vcHJvamVjdHJvb3QvZXRjL2Zz dGFiYGAsIG1vZGlmeSBpdCBhbmQgd2UgYXJlIGRvbmUuIFRoZQorbmV4dCB0aW1lIFBUWGRpc3Qg YnVpbGRzIHRoZSByb290IGZpbGVzeXN0ZW0gaXQgd2lsbCB1c2UgdGhlIGxvY2FsCitgYGZzdGFi YGAgaW5zdGVhZCBvZiB0aGUgZ2xvYmFsIChkZWZhdWx0KSBvbmUuCmRpZmYgLS1naXQgYS9kb2Mv ZGV2X2xheWVyc19pbl9wdHhkaXN0LnJzdCBiL2RvYy9kZXZfbGF5ZXJzX2luX3B0eGRpc3QucnN0 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZWM5MmM4YzhhCi0tLSAvZGV2 L251bGwKKysrIGIvZG9jL2Rldl9sYXllcnNfaW5fcHR4ZGlzdC5yc3QKQEAgLTAsMCArMSwxMTEg QEAKKy4uIF9sYXllcnMtaW4tcHR4ZGlzdDoKKworTGF5ZXJzIGluIFBUWGRpc3QKKy0tLS0tLS0t LS0tLS0tLS0tCisKK0ZvciBiZXR0ZXIgbWFpbnRlbmFuY2Ugb3Igb3RoZXIgcmVhc29ucywgYSBQ VFhkaXN0IHByb2plY3QgY2FuIGJlIHNwbGl0CitpbnRvIG11bHRpcGxlIGxheWVycy4gRWFjaCBs YXllciBoYXMgZXhhY3RseSB0aGUgc2FtZSBkaXJlY3RvcnkgaGllcmFyY2h5CithcyBkZXNjcmli ZWQgaW4gOnJlZjpgZGlyZWN0b3J5X2hpZXJhcmNoeWAgYW5kIG90aGVyIGNoYXB0ZXJzLgorCitB bGwgbGF5ZXJzIGFyZSBleHBsaWNpdGx5IHN0YWNrZWQgaW4gdGhlIGZpbGVzeXN0ZW0uIFRoZSB0 b3AgbGF5ZXIgaXMgdGhlCit3b3Jrc3BhY2Ugb2YgdGhlIFBUWGRpc3QgcHJvamVjdC4gQW55IGBg c2VsZWN0ZWRfKmBgIGxpbmtzIGFuZCB0aGUgcGxhdGZvcm0KK2J1aWxkIGRpcmVjdG9yeSBhcmUg Y3JlYXRlZCBoZXJlLiBUaGUgbGF5ZXIgYmVsb3cgaXMgZGVmaW5lZCBieSB0aGUKK3N1YmRpcmVj dG9yeSBvciBzeW1saW5rIG5hbWVkIGBgYmFzZS9gYC4gTW9yZSBjYW4gYmUgc3RhY2tlZCB0aGUg c2FtZQord2F5LCBzbyBgYGJhc2UvYmFzZS9gYCBpcyB0aGUgdGhpcmQgbGF5ZXIgYW5kIHNvIG9u LgorSW4gbWFueSB3YXlzLCBQVFhkaXN0IGl0c2VsZiBjYW4gYmUgY29uc2lkZXJlZCBhcyB0aGUg Ym90dG9tIGxheWVyLiBUaGlzIGlzCitlaXRoZXIgaW1wbGljaXQgb3IgZXhwbGljaXQgd2l0aCBv bmUgbGFzdCBgYGJhc2UvYGAgc3ltbGluay4KKworQSBwcm9qZWN0IGNhbiBvdmVyd3JpdGUgZmls ZXMgcHJvdmlkZWQgYnkgUFRYZGlzdCBpbiBtYW55IGRpZmZlcmVudCB3YXlzLAorZS5nLiBydWxl IGZpbGVzIG9yIGZpbGVzIGluc3RhbGxlZCB3aXRoIDpyZWY6YGluc3RhbGxfYWx0ZXJuYXRpdmVg IGV0Yy4KK1RoaXMgY29uY2VwdCBleHBhbmRzIG5hdHVyYWxseSB0byBsYXllcnMuIEVhY2ggbGF5 ZXIgY2FuIG92ZXJ3cml0ZSBmaWxlcworcHJvdmlkZWQgYnkgbG93ZXIgbGF5ZXJzIGluIHRoZSBl eGFjdCBzYW1lIHdheS4gQW55IGZpbGVzIGFyZSBhbHdheXMKK3NlYXJjaGVkIGZvciBpbiBhIHN0 cmljdCBsYXllciBieSBsYXllciBvcmRlci4KKworV3JpdGluZyBMYXllciBBd2FyZSBSdWxlcwor fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCitGb3IgdGhlIG1vc3QgcGFydCwgcGFja2FnZSBy dWxlcyB3b3JrIGp1c3QgYXMgZXhwZWN0ZWQgd2hlbiBtdWx0aXBsZSBsYXllcnMKK2FyZSB1c2Vk LiBBbnkgbGF5ZXIgc3BlY2lmaWMgaGFuZGxpbmcgaXMgZG9uZSBpbXBsaWNpdGx5IGJ5IFBUWGRp c3QuCitIb3dldmVyLCB0aGVyZSBhcmUgYSBmZXcgdGhpbmdzIHRoYXQgbmVlZCBzcGVjaWFsIGhh bmRsaW5nLgorCitUaGUgdmFyaWFibGVzIDpyZWY6YFBUWERJU1RfV09SS1NQQUNFPHB0eGRpc3Rf d29ya3NwYWNlPmAgYW5kCis6cmVmOmBQVFhESVNUX1BMQVRGT1JNQ09ORklHRElSYDxwdHhkaXN0 X3BsYXRmb3JtY29uZmlnZGlyPmAgYWx3YXlzIHJlZmVyCit0byB0aGUgZGlyZWN0b3JpZXMgaW4g dGhlIHRvcCBsYXllci4gVGhlc2UgdmFyaWFibGVzIG1pZ2h0IGJlIHVzZWQgaW4gcnVsZXMKK2Zp bGVzIGxpa2UgdGhpczoKKworLi4gY29kZS1ibG9jazo6IG1ha2UKKworICAgTVlfS0VSTkVMX0NP TkZJRyA6PSAkKFBUWERJU1RfUExBVEZPUk1DT05GSUdESVIpL2tlcm5lbGNvbmZpZy5zcGVjaWFs CisKK0lmIHRoZSByZWZlcmVuY2VkIGZpbGUgaXMgaW4gYW55IGxheWVyIGJ1dCB0aGUgdG9wIG9u ZSB0aGVuIGl0IHdpbGwgbm90CitiZSBmb3VuZC4gVG8gaGFuZGxlIHVzZS1jYXNlcyBsaWtlIHRo aXMsIHRoZSBtYWNyb3MgOnJlZjpgaW5fcGF0aGAgYW5kCis6cmVmOmBpbl9wbGF0Zm9ybWNvbmZp Z2RpcmAgY2FuIGJlIHVzZWQ6CisKKy4uIGNvZGUtYmxvY2s6OiBtYWtlCisKKyAgIE1ZX0tFUk5F TF9DT05GSUcgOj0gJChjYWxsIHB0eC9pbi1wbGF0Zm9ybWNvbmZpZ2Rpciwga2VybmVsY29uZmln LnNwZWNpYWwpCisKK1RoaXMgd2F5LCB0aGUgbGF5ZXJzIGFyZSBzZWFyY2hlZCB0b3AgdG8gYm90 dG9tIHVudGlsIHRoZSBjb25maWcgZmlsZSBpcworZm91bmQuCisKK1BUWGRpc3QgQ29uZmlnIEZp bGVzIHdpdGggTXVsdGlwbGUgTGF5ZXJzCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgorCitJbiBtYW55IGNhc2VzIGEgbGF5ZXIgbWF5IHdhbnQgdG8gbW9kaWZ5IHRo ZSAqKnB0eGNvbmZpZyoqIGJ5IGVuYWJsaW5nIG9yCitkaXNhYmxpbmcgc29tZSBvcHRpb25zLiBB bnkgY2hhbmdlcyBtdXN0IGJlIHByb3BhZ2F0ZWQgdGhyb3VnaCB0aGUgd2hvbGUKK2xheWVyIHN0 YWNrLgorCitUaGUgZmVhdHVyZXMgYW5kIHdvcmtmbG93IGRlc2NyaWJlZCBoZXJlIGFwcGx5IHRv IHRoZSAqKnB0eGNvbmZpZyoqLCB0aGUKKyoqcGxhdGZvcm1jb25maWcqKiBhbmQgYW55ICoqY29s bGVjdGlvbmNvbmZpZyoqIHVzZWQgaW4gdGhlIHByb2plY3QuCisKK1RvIGRvIHRoaXMsIFBUWGRp c3Qgc3RvcmVzIGEgZGVsdGEgY29uZmlnIHRvIHRoZSBsYXllciBiZWxvdyBhbmQgYSBmdWxsCitj b25maWcgZmlsZSBpbiBlYWNoIGxheWVyLiBJZiB0aGUgdHdvIGZpbGVzIGFyZSBtaXNzaW5nIHRo ZW4gdGhlIGNvbmZpZyBpcwordW5jaGFuZ2VkLiBUaGUgYm90dG9tIGxheWVyIGhhcyBvbmx5IHRo ZSBjb25maWcgZmlsZSBhbmQgbm8gZGVsdGEuCisKK0F0IHJ1bnRpbWUsIFBUWGRpc3Qgd2lsbCBh bHdheXMgdXNlIHRoZSBmdWxsIGNvbmZpZyBmaWxlIGluIHRoZSB0b3AgbGF5ZXIKK3doZXJlIHRo ZSBjb25maWcgZXhpc3RzLiBCZWZvcmUgZG9pbmcgc28sIGl0IHdpbGwgZW5zdXJlIHRoYXQgdGhl IGNvbmZpZyBpcworY29uc2lzdGVudCBhY3Jvc3MgYWxsIGxheWVycy4gVGhpcyBtZWFucyB0aGF0 LCBmb3IgYW55IGxheWVyIHRoYXQgY29udGFpbnMgYQorZGVsdGEgY29uZmlnLCB0aGUgZnVsbCBj b25maWcgZmlsZSBvZiB0aGUgbGF5ZXIgYmVsb3cgaGFzIG5vdCBjaGFuZ2VkIHNpbmNlCit0aGUg ZGVsdGEgY29uZmlnIHdhcyBsYXN0IHVwZGF0ZWQuIElmIGFueSBpbmNvbnNpc3RlbmN5IGlzIGRl dGVjdGVkLAorUFRYZGlzdCB3aWxsIGFib3J0LgorCitGb3IgYW55IGNvbW1hbmQgdGhhdCBtb2Rp ZmllcyB0aGUgY29uZmlnIGZpbGUsIGV4Y2VwdCBgYG9sZGNvbmZpZ2BgLAorUFRYZGlzdCB3aWxs IHVzZSBrY29uZmlnIGltcGxpY2l0bHkgb24gYWxsIGxheWVycyB0byBjaGVjayBpZiB0aGUgY29u ZmlnCitmb3IgdGhpcyBsYXllciBpcyB1cCB0byBkYXRlLiBUaGlzIGlzIGEgc3RyaWN0ZXIgY2hl Y2sgdGhhbiB0aGUgY29uc2lzdGVuY3kKK3ZhbGlkYXRpb24uIEZvciBleGFtcGxlLCBpZiBhIG5l dyBwYWNrYWdlIHdhcyBhZGRlZCB0byBhIGxheWVyIHdpdGhvdXQKK3VwZGF0aW5nIHRoZSAqKnB0 eGNvbmZpZyoqIHRoZW4gdGhpcyB3aWxsIGJlIGRldGVjdGVkIGFuZCBQVFhkaXN0IHdpbGwKK2Fi b3J0LiBJZiBhbGwgb3RoZXIgbGF5ZXJzIGFyZSB1cCB0byBkYXRlLCB0aGVuIFBUWGRpc3Qgd2ls bCB1c2UgdGhlIGRlbHRhCitjb25maWcgb2YgdGhlIHRvcCBsYXllciwgYXBwbHkgaXQgdG8gdGhl IGZ1bGwgY29uZmlnIG9mIHRoZSBsYXllciBiZWxvdworYW5kIGV4ZWN1dGUgdGhlIHNwZWNpZmll ZCBjb21tYW5kIHdpdGggdGhlIHJlc3VsdGluZyBjb25maWcgZmlsZS4KKworLi4gbm90ZTo6IElm IHRoZSBjb25maWcgZmlsZSBkb2VzIG5vdCBleGlzdCB5ZXQgb24gdGhlIHRvcCBsYXllciwgdGhl biBpdAorICB3aWxsIGJlIGNyZWF0ZWQgaWYgY2hhbmdlcyB0byB0aGUgY29uZmlnIGFyZSBtYWRl LiBTaW1pbGFybHkgdGhlIGNvbmZpZworICB3aWxsIGJlIGRlbGV0ZWQgaWYgdGhlIGRlbHRhIGlz IGVtcHR5IGFmdGVyIHRoZSBjaGFuZ2VzLiBJbiBlaXRoZXIgY2FzZQorICBpdCBtYXkgYmUgbmVj ZXNzYXJ5IHRvIHVwZGF0ZSBhbnkgYGBzZWxlY3RlZF8qYGAgbGluayB0byBwb2ludCB0byB0aGUK KyAgY29ycmVjdCBjb25maWcuCisKK0lmIFBUWGRpc3QgZGV0ZWN0cyBhbiBpbmNvbnNpc3RlbmN5 IG9yIGFuIG91dCBvZiBkYXRlIGNvbmZpZyBmaWxlIHRoZW4gaXQKK211c3QgYmUgdXBkYXRlZCBi ZWZvcmUgdGhleSBjYW4gYmUgdXNlZC4gVGhpcyBjYW4gYmUgZG9uZSBieSB1c2luZyB0aGUKK2Bg b2xkY29uZmlnYGAgY29tbWFuZC4gSW4gdGhpcyBzcGVjaWFsIGNhc2UsIFBUWGRpc3Qgd2lsbCBp dGVyYXRlIGZyb20gdGhlCitib3R0b20gdG8gdGhlIHRvcCBsYXllciBhbmQgcnVuIGBgb2xkY29u ZmlnYGAgZm9yIGVhY2ggb2YgdGhlbS4gSXQgd2lsbAordXNlIHRoZSBkZWx0YSBjb25maWcgYXBw bGllZCB0byB0aGUgZnVsbCBjb25maWcgb2YgdGhlIGxheWVyIGJlbG93IGF0IGVhY2gKK3N0ZXAu IFRoaXMgbWVhbnMgdGhhdCBpdCdzIHBvc3NpYmxlIHRvIGVuYWJsZSBvciBkaXNhYmxlIGEgb3B0 aW9uIGluIHRoZQorYm90dG9tIGxheWVyIGFuZCBgYG9sZGNvbmZpZ2BgIHdpbGwgcHJvcGFnYXRl IHRoaXMgY2hhbmdlIHRvIGFsbCBvdGhlcgorbGF5ZXJzLgorCitQYWNrYWdlcyB3aXRoIGtjb25m aWcgQmFzZWQgQ29uZmlnIEZpbGVzCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CisKK0ZvciBwYWNrYWdlcyBzdWNoIGFzIHRoZSBMaW51eCBrZXJuZWwgdGhhdCBoYXZl IGtjb25maWcgYmFzZWQgY29uZmlnIGZpbGVzLAorYSBsb3Qgb2YgdGhlIGluZnJhc3RydWN0dXJl IHRvIGhhbmRsZSBjb25maWcgZmlsZXMgYW5kIGRlbHRhcyBhY3Jvc3MKK211bHRpcGxlIGxheWVy cyBjYW4gYmUgcmV1c2VkLiBDb25zaXN0ZW5jeSB2YWxpZGF0aW9uIGlzIGRvbmUgaW1wbGljaXRs eQorYW5kIGBgbWVudWNvbmZpZ2BgIGFuZCBvdGhlciBrY29uZmlnIGNvbW1hbmRzIHdpbGwgdXNl IGNvbmZpZyBmaWxlcyBhbmQKK2RlbHRhcyBhcyBleHBlY3RlZC4KKworSXQncyBub3QgcG9zc2li bGUgdG8gaW1wbGljaXRseSBydW4gYGBvbGRjb25maWdgYCBvbiBvdGhlciBsYXllcnMgKHRoaXMg bWF5CityZXF1aXJlIGEgZGlmZmVyZW50IHNvdXJjZSB0cmVlIGZvciB0aGUgcGFja2FnZXMpLCBz byBhbnkgaW5jb25zaXN0ZW5jaWVzCittdXN0IGJlIHJlc29sdmVkIG1hbnVhbGx5IGJ5IHJ1bm5p bmcgYGBvbGRjb25maWdgYCBleHBsaWNpdGx5IG9uIGVhY2gKK2xheWVyLgorCitUaGUgbWFrZSBt YWNyb3MgdGhhdCBwcm92aWRlIHRoZXNlIGZlYXR1cmVzIGFyZSBjdXJyZW50bHkgdXNlZCBieSB0 aGUKK2JhcmVib3ggYW5kIGtlcm5lbCBwYWNrYWdlcyBhbmQgdGVtcGxhdGVzLgpkaWZmIC0tZ2l0 IGEvZG9jL2Rldl9tYW51YWwucnN0IGIvZG9jL2Rldl9tYW51YWwucnN0CmluZGV4IDUwODI3YjZh OS4uNDdhNzdhOWJlIDEwMDY0NAotLS0gYS9kb2MvZGV2X21hbnVhbC5yc3QKKysrIGIvZG9jL2Rl dl9tYW51YWwucnN0CkBAIC01LDE3NTggKzUsMTIgQEAgUFRYZGlzdCBEZXZlbG9wZXLigJlzIE1h bnVhbAogCiBUaGlzIGNoYXB0ZXIgc2hvd3MgYWxsIChvciBtb3N0KSBvZiB0aGUgZGV0YWlscyBv ZiBob3cgUFRYZGlzdCB3b3Jrcy4KIAotLSAgd2hlcmUgYXJlIHRoZSBmaWxlcyBzdG9yZWQgdGhh dCBQVFhkaXN0IHVzZXMgd2hlbiBidWlsZGluZyBwYWNrYWdlcwotCi0tICBob3cgcGF0Y2hpbmcg d29ya3MKLQotLSAgd2hlcmUgaXMgUFRYZGlzdCBmZXRjaGluZyBhIHBhY2thZ2XigJlzIHJ1bi10 aW1lIGNvbmZpZ3VyYXRpb24gZmlsZXMKLSAgIGZyb20KLQotLSAgaG93IHRvIGNvbnRyb2wgYSBw YWNrYWdl4oCZcyBidWlsZCBzdGFnZXMKLQotLSAgaG93IHRvIGFkZCBuZXcgcGFja2FnZXMKLQot Li4gX2RpcmVjdG9yeV9oaWVyYXJjaHk6Ci0KLVBUWGRpc3TigJlzIERpcmVjdG9yeSBIaWVyYXJj aHkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS4uIG5vdGU6OiBSZWZlcmVuY2Vk IGRpcmVjdG9yaWVzIGFyZSBtZWFudCByZWxhdGl2ZSB0byB0aGUgUFRYZGlzdCBtYWluCi0gIGlu c3RhbGxhdGlvbiBsb2NhdGlvbiAoaWYgbm90IG90aGVyd2lzZSBzdGF0ZWQpLiBJZiBub3QgY29u ZmlndXJlZAotICBkaWZmZXJlbnRseSwgdGhpcyBtYWluIHBhdGggaXMgYGAvdXNyL2xvY2FsL2xp Yi9wdHhkaXN0LXxwdHhkaXN0VmVuZG9yVmVyc2lvbnxgYAotCi1SdWxlIEZpbGVzCi1+fn5+fn5+ fn5+Ci0KLVdoZW4gYnVpbGRpbmcgYSBzaW5nbGUgcGFja2FnZSwgUFRYZGlzdCBuZWVkcyB0aGUg aW5mb3JtYXRpb24gb24gaG93IHRvCi1oYW5kbGUgdGhlIHBhY2thZ2UsIGkuZS4gb24gaG93IHRv IGdldCBpdCBmcm9tIHRoZSBzb3VyY2UgdXAgdG8gd2hhdCB0aGUKLXRhcmdldCBuZWVkcyBhdCBy dW4tdGltZS4gVGhpcyBpbmZvcm1hdGlvbiBpcyBwcm92aWRlZCBieSBhIHJ1bGUgZmlsZSBwZXIK LXBhY2thZ2UuCi0KLVBUWGRpc3QgY29sbGVjdHMgYWxsIHJ1bGUgZmlsZXMgaW4gaXRzIGBgcnVs ZXMvYGAgZGlyZWN0b3J5LiBXaGVuZXZlcgotUFRYZGlzdCBidWlsZHMgc29tZXRoaW5nLCBhbGwg dGhlc2UgcnVsZSBmaWxlcyBhcmUgc2Nhbm5lZCBhdCBvbmNlLgotVGhlc2UgcnVsZSBmaWxlcyBh cmUgZ2xvYmFsIHJ1bGUgZmlsZXMsIHZhbGlkIGZvciBhbGwgcHJvamVjdHMuIFBUWGRpc3QKLXVz ZXMgYSBtZWNoYW5pc20gdG8gYmUgYWJsZSB0byBhZGQgb3IgcmVwbGFjZSBzcGVjaWZpYyBydWxl IGZpbGVzIG9uIGEKLXBlciBwcm9qZWN0IGJhc2UuIElmIGEgYGBydWxlcy9gYCBkaXJlY3Rvcnkg ZXhpc3RzIGluIHRoZSBjdXJyZW50Ci1wcm9qZWN0LCBpdHMgY29udGVudCBpcyBzY2FubmVkIHRv by4gVGhlc2UgcHJvamVjdCBsb2NhbCBydWxlIGZpbGVzIGFyZQotdXNlZCBpbiBhZGRpdGlvbiB0 byB0aGUgZ2xvYmFsIHJ1bGUgZmlsZXMgb3Ig4oCTIGlmIHRoZXkgYXJlIHVzaW5nIHRoZQotc2Ft ZSBuYW1lIGFzIGEgZ2xvYmFsIHJ1bGUgZmlsZSDigJMgKipyZXBsYWNpbmcqKiB0aGUgZ2xvYmFs IHJ1bGUgZmlsZS4KLQotVGhlIHJlcGxhY2luZyBtZWNoYW5pc20gY2FuIGJlIHVzZWQgdG8gZXh0 ZW5kIG9yIGFkYXB0IHBhY2thZ2VzIGZvcgotc3BlY2lmaWMgcHJvamVjdCByZXF1aXJlbWVudHMu IE9yIGl0IGNhbiBiZSB1c2VkIGZvciBidWcgZml4aW5nIGJ5Ci1iYWNrcG9ydGluZyBydWxlIGZp bGVzIGZyb20gbW9yZSByZWNlbnQgUFRYZGlzdCByZXZpc2lvbnMgdG8gcHJvamVjdHMKLXRoYXQg YXJlIHN0dWNrIHRvIGFuIG9sZGVyIFBUWGRpc3QgcmV2aXNpb24gZm9yIG1haW50ZW5hbmNlIG9u bHkuCi0KLVBhdGNoIFNlcmllcwotfn5+fn5+fn5+fn5+Ci0KLVRoZXJlIGFyZSBtYW55IHBhY2th Z2VzIGluIHRoZSB3aWxkIHRoYXQgYXJlIG5vdCBjcm9zcyBidWlsZCBhd2FyZS4gVGhleQotZmFp bCBjb21waWxpbmcgc29tZSBmaWxlcywgdXNlIHdyb25nIGluY2x1ZGUgcGF0aHMgb3IgdHJ5IHRv IGxpbmsKLWFnYWluc3QgaG9zdCBsaWJyYXJpZXMuIFRvIGJlIHN1Y2Nlc3NmdWwgaW4gdGhlIGVt YmVkZGVkIHdvcmxkLCB0aGVzZQotdHlwZXMgb2YgZmFpbHVyZXMgbXVzdCBiZSBmaXhlZC4gSWYg cmVxdWlyZWQsIFBUWGRpc3QgcHJvdmlkZXMgc3VjaAotZml4ZXMgcGVyIHBhY2thZ2UuIFRoZXkg YXJlIG9yZ2FuaXplZCBpbiAqcGF0Y2ggc2VyaWVzKiBhbmQgY2FuIGJlIGZvdW5kCi1pbiBhIGBg cGF0Y2hlcy9gYCBkaXJlY3Rvcnkgd2l0aGluIGEgc3ViZGlyZWN0b3J5IHVzaW5nIHRoZSBzYW1l IG5hbWUKLWFzIHRoZSBwYWNrYWdlIGl0c2VsZi4KLQotUFRYZGlzdCB1c2VzIHRoZSB1dGlsaXR5 IGBgcGF0Y2hgYCBvciBgYHF1aWx0YGAgKG9yIGBgZ2l0YGAgb24gZGVtYW5kKSB0byBhcHBseQot YW4gZXhpc3RpbmcgcGF0Y2ggc2VyaWVzIGFmdGVyIGV4dHJhY3RpbmcgdGhlIGFyY2hpdmUuIFNv LCBldmVyeSBwYXRjaCBzZXJpZXMKLWNvbnRhaW5zIGEgc2V0IG9mIHBhdGNoZXMgYW5kIG9uZSBg YHNlcmllc2BgIGZpbGUgdG8gZGVmaW5lIHRoZSBvcmRlciBpbgotd2hpY2ggdGhlIHBhdGNoZXMg bXVzdCBiZSBhcHBsaWVkLgotCi0uLiBub3RlOjogUGF0Y2hlcyBjYW4gYmUgY29tcHJlc3NlZC4K LQotUGF0Y2hlcyBhcmUgbG9va2VkIGZvciBhdCBzZXZlcmFsIGxvY2F0aW9uczoKLQotMS4gIHRo ZSBgYHBhdGNoZXMvYGAgZm9sZGVyIGluIHlvdXIgQlNQIChgYCR7UFRYRElTVF9XT1JLU1BBQ0V9 L3BhdGNoZXNgYCkKLQotMi4gIHRoZSBmb2xkZXIgYGBwYXRjaGVzL2BgIGZvbGRlciByZWxhdGl2 ZSB0byB5b3VyIHNlbGVjdGVkIHBsYXRmb3JtY29uZmlnCi0gICAgZmlsZSAoYGAke1BUWERJU1Rf UExBVEZPUk1DT05GSUdESVJ9L3BhdGNoZXNgYCkuIElmIHlvdXIgcGxhdGZvcm1jb25maWcKLSAg ICBmaWxlIGlzIGF0IGBgY29uZmlncy98cHR4ZGlzdFBsYXRmb3JtQ29uZmlnRGlyfC9wbGF0Zm9y bWNvbmZpZ2BgLCB0aGlzCi0gICAgcGF0Y2ggZm9sZGVyIHdpbGwgYmUgYGBjb25maWdzL3xwdHhk aXN0UGxhdGZvcm1Db25maWdEaXJ8L3BhdGNoZXMvYGAuCi0KLTMuICB0aGUgYGBwYXRjaGVzL2Bg IGZvbGRlciBpbiBQVFhkaXN0J3MgbWFpbiBpbnN0YWxsYXRpb24gZGlyZWN0b3J5Ci0gICAgKGBg JHtQVFhESVNUX1RPUERJUn0vcGF0Y2hlc2BgKQotCi1UaGUgbGlzdCBpcyB0cmllZCBmcm9tIGZp cnN0IHRvIGxhc3QuCi1JZiBubyBwYXRjaGVzIHdlcmUgZm91bmQgaW4gb25lIG9mIHRoZSBsb2Nh dGlvbnMsIHRoZSBuZXh0IGxvY2F0aW9uIGlzIHRyaWVkLgotV2hlbiBhbGwgbG9jYXRpb25zIGhh dmUgYmVlbiB0cmllZCB1bnN1Y2Nlc3NmdWxseSwgdGhlIHBhY2thZ2UgaXMgbm90IHBhdGNoZWQu Ci0KLVRoaXMgc2VhcmNoIG9yZGVyIGNhbiBiZSB1c2VkIHRvIHVzZSBzcGVjaWZpYyBwYXRjaCBz ZXJpZXMgZm9yIHNwZWNpZmljCi1jYXNlcy4KLQotLSAgcGxhdGZvcm0gc3BlY2lmaWMKLQotLSAg cHJvamVjdCBzcGVjaWZpYwotCi0tICBjb21tb24gY2FzZQotCi0tICBidWcgZml4aW5nCi0KLVRo ZSAqYnVnIGZpeGluZyogY2FzZSBpcyB1c2VkIGluIGFjY29yZGFuY2UgdG8gYSByZXBsYWNlbWVu dCBvZiBhIHJ1bGUKLWZpbGUuIElmIHRoaXMgd2FzIGRvbmUgZHVlIHRvIGEgYmFja3BvcnQsIGFu ZCB0aGUgbW9yZSByZWNlbnQgUFRYZGlzdAotcmV2aXNpb24gZG9lcyBub3Qgb25seSBleGNoYW5n ZSB0aGUgcnVsZSBmaWxlIGJ1dCBhbHNvIHRoZSBwYXRjaCBzZXJpZXMsCi10aGlzIG1lY2hhbmlz bSBlbnN1cmVzIHRoYXQgYm90aCByZWxldmFudCBwYXJ0cyBjYW4gYmUgdXBkYXRlZCBpbiB0aGUK LXByb2plY3QuCi0KLVJ1bnRpbWUgQ29uZmlndXJhdGlvbgotfn5+fn5+fn5+fn5+fn5+fn5+fn5+ Ci0KLU1hbnkgcGFja2FnZXMgYXJlIHVzaW5nIHJ1bi10aW1lIGNvbmZpZ3VyYXRpb24gZmlsZXMg YWxvbmcgd2l0aCB0aGVpcgotZXhlY3V0YWJsZXMgYW5kIGxpYnJhcmllcy4gUFRYZGlzdCBwcm92 aWRlcyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZXMKLWZvciB0aGUgbW9zdCBjb21tb24gY2Fz ZXMuIFRoZXNlIGZpbGVzIGNhbiBiZSBmb3VuZCBpbiB0aGUKLWBgcHJvamVjdHJvb3QvZXRjYGAg ZGlyZWN0b3J5IGFuZCB0aGV5IGFyZSB1c2luZyB0aGUgc2FtZSBuYW1lcyBhcyB0aGUgb25lcwot YXQgcnVuLXRpbWUgKGFuZCB0aGVpciBpbnN0YWxsIGRpcmVjdG9yeSBvbiB0aGUgdGFyZ2V0IHNp ZGUgd2lsbCBhbHNvIGJlCi1gYC9ldGNgYCkuCi0KLUJ1dCBzb21lIG9mIHRoZXNlIGRlZmF1bHQg Y29uZmlndXJhdGlvbiBmaWxlcyBhcmUgZW1wdHksIGR1ZSB0byB0aGUKLWFic2VuY2Ugb2YgYSBj b21tb24gY2FzZS4gVGhlIHByb2plY3QgbXVzdCBwcm92aWRlIHJlcGxhY2VtZW50cyBvZiB0aGVz ZQotZmlsZXMgd2l0aCBhIG1vcmUgdXNlZnVsIGNvbnRlbnQgaW4gZXZlcnkgY2FzZSB3aGVyZSB0 aGUgKGVtcHR5KSBkZWZhdWx0Ci1vbmUgZG9lcyBub3QgbWVldCB0aGUgdGFyZ2V04oCZcyByZXF1 aXJlbWVudHMuCi0KLVBUWGRpc3QgZmlyc3Qgc2VhcmNoZXMgaW4gdGhlIGxvY2FsIHByb2plY3Qg ZGlyZWN0b3J5IGZvciBhIHNwZWNpZmljCi1jb25maWd1cmF0aW9uIGZpbGUgYW5kIGZhbGxzIGJh Y2sgdG8gdXNlIHRoZSBkZWZhdWx0IG9uZSBpZiBub25lIGV4aXN0cwotbG9jYWxseS4gUmVmZXIg c2VjdGlvbiA6cmVmOmBpbnN0YWxsX2FsdGVybmF0aXZlYCBmb3IgZnVydGhlcgotZGV0YWlscyBp biB3aGljaCBvcmRlciBhbmQgbG9jYXRpb25zIFBUWGRpc3Qgc2VhcmNoZXMgZm9yIHRoZXNlIGtp bmQgb2YgZmlsZXMuCi0KLUEgcG9wdWxhciBleGFtcGxlIGlzIHRoZSBjb25maWd1cmF0aW9uIGZp bGUgYGAvZXRjL2ZzdGFiYGAuIFRoZSBkZWZhdWx0Ci1vbmUgY29taW5nIHdpdGggUFRYZGlzdCB3 b3JrcyBmb3IgdGhlIG1vc3QgY29tbW9uIGNhc2VzLiBCdXQgaWYgb3VyCi1wcm9qZWN0IHJlcXVp cmVzIGEgc3BlY2lhbCBzZXR1cCwgd2UgY2FuIGp1c3QgY29weSB0aGUgZGVmYXVsdCBvbmUgdG8K LXRoZSBsb2NhbCBgYC4vcHJvamVjdHJvb3QvZXRjL2ZzdGFiYGAsIG1vZGlmeSBpdCBhbmQgd2Ug YXJlIGRvbmUuIFRoZQotbmV4dCB0aW1lIFBUWGRpc3QgYnVpbGRzIHRoZSByb290IGZpbGVzeXN0 ZW0gaXQgd2lsbCB1c2UgdGhlIGxvY2FsCi1gYGZzdGFiYGAgaW5zdGVhZCBvZiB0aGUgZ2xvYmFs IChkZWZhdWx0KSBvbmUuCi0KLS4uIF9hZGRpbmdfbmV3X3BhY2thZ2VzOgotCi1BZGRpbmcgTmV3 IFBhY2thZ2VzCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVBUWGRpc3QgcHJvdmlkZXMgYSBodWdl IGFtb3VudCBvZiBhcHBsaWNhdGlvbnMgc3VmZmljaWVudCBmb3IgdGhlIG1vc3QKLWVtYmVkZGVk IHVzZSBjYXNlcy4gQnV0IHRoZXJlIGlzIHN0aWxsIG5lZWQgZm9yIHNvbWUgZmFuY3kgbmV3IHBh Y2thZ2VzLgotVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgc3RlcHMgYW5kIHRoZSBiYWNrZ3Jv dW5kIG9uIGhvdyB0byBpbnRlZ3JhdGUKLW5ldyBwYWNrYWdlcyBpbnRvIHRoZSBwcm9qZWN0Lgot Ci1BdCBmaXJzdCBhIHN1bW1hcnkgYWJvdXQgcG9zc2libGUgYXBwbGljYXRpb24gdHlwZXMgd2hp Y2ggUFRYZGlzdCBjYW4KLWhhbmRsZToKLQotLSAgKipob3N0IHR5cGUqKjogVGhpcyBraW5kIG9m IHBhY2thZ2UgaXMgYnVpbHQgdG8gcnVuIG9uIHRoZSBidWlsZAotICAgaG9zdC4gTW9zdCBvZiB0 aGUgdGltZSBzdWNoIGEgcGFja2FnZSBpcyBuZWVkZWQgaWYgYW5vdGhlcgotICAgdGFyZ2V0LXJl bGV2YW50IHBhY2thZ2UgbmVlZHMgdG8gZ2VuZXJhdGUgc29tZSBkYXRhLiBGb3IgZXhhbXBsZSB0 aGUKLSAgICpnbGliKiBwYWNrYWdlIGRlcGVuZHMgb24gaXRzIG93biB0byBjcmVhdGUgc29tZSBk YXRhLiBCdXQgaWYgaXQgaXMKLSAgIGNvbXBpbGVkIGZvciB0aGUgdGFyZ2V0LCBpdCBjYW7igJl0 IGRvIHNvLiBUaGF04oCZcyB3aHkgYSBob3N0IGdsaWIKLSAgIHBhY2thZ2UgaXMgcmVxdWlyZWQg dG8gcHJvdmlkZSB0aGVzZSB1dGlsaXRpZXMgcnVubmFibGUgb24gdGhlIGJ1aWxkCi0gICBob3N0 LiBJdCBzb3VuZHMgc3RyYW5nZSB0byBidWlsZCBhIGhvc3QgcGFja2FnZSwgZXZlbiBpZiBvbiB0 aGUgYnVpbGQKLSAgIGhvc3Qgc3VjaCB1dGlsaXRpZXMgYXJlIGFscmVhZHkgaW5zdGFsbGVkLiBC dXQgdGhpcyB3YXkgZW5zdXJlcyB0aGF0Ci0gICB0aGVyZSBhcmUgbm8gZGVwZW5kZW5jaWVzIHJl Z2FyZGluZyB0aGUgYnVpbGQgaG9zdCBzeXN0ZW0uCi0KLS0gICoqdGFyZ2V0IHR5cGUqKjogVGhp cyBraW5kIG9mIHBhY2thZ2UgaXMgYnVpbHQgZm9yIHRoZSB0YXJnZXQuCi0KLS0gICoqY3Jvc3Mg dHlwZSoqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBpcyBidWlsdCBmb3IgdGhlIGJ1aWxkIGhvc3Qs IGJ1dAotICAgY3JlYXRlcyBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGF0YSBmb3IgdGhlIHRhcmdl dC4KLQotLSAgKipzcmMtYXV0b2NvbmYtcHJvZyoqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBpcyBi dWlsdCBmb3IgdGhlIHRhcmdldC4KLSAgIEl0IGlzIGludGVuZGVkIGZvciBkZXZlbG9wbWVudCwg YXMgaXQgZG9lcyBub3QgaGFuZGxlIGEgcmVsZWFzZWQKLSAgIGFyY2hpdmUgYnV0IGEgcGxhaW4g c291cmNlIHByb2plY3QgaW5zdGVhZC4gQ3JlYXRpbmcgc3VjaCBhIHBhY2thZ2UKLSAgIHdpbGwg YWxzbyBjcmVhdGUgYSBzbWFsbCBhdXRvdG9vbHMgYmFzZWQgc291cmNlIHRlbXBsYXRlIHByb2pl Y3Qgb24KLSAgIGRlbWFuZCB0byBnaXZlIHRoZSBkZXZlbG9wZXIgYW4gZWFzeSBwb2ludCB0byBz dGFydC4gVGhpcyB0ZW1wbGF0ZSBpcwotICAgcHJlcGFyZWQgdG8gYnVpbGQgYSBzaW5nbGUgZXhl Y3V0YWJsZSBwcm9ncmFtLiBGb3IgZnVydGhlciBkZXRhaWxzIHJlZmVyCi0gICBzZWN0aW9uIDpy ZWY6YGFkZGluZ19zcmNfYXV0b2NvbmZfZXhlY2AuCi0KLS0gICoqc3JjLWF1dG9jb25mLWxpYioq OiBUaGlzIGtpbmQgb2YgcGFja2FnZSBpcyBidWlsdCBmb3IgdGhlIHRhcmdldC4KLSAgIEl0IGlz IGludGVuZGVkIGZvciBkZXZlbG9wbWVudCwgYXMgaXQgZG9lcyBub3QgaGFuZGxlIGEgcmVsZWFz ZWQKLSAgIGFyY2hpdmUgYnV0IGEgcGxhaW4gc291cmNlIHByb2plY3QgaW5zdGVhZC4gQ3JlYXRp bmcgc3VjaCBhIHBhY2thZ2UKLSAgIHdpbGwgYWxzbyBjcmVhdGUgYSBzbWFsbCBhdXRvdG9vbHMv bGlidG9vbCBiYXNlZCBzb3VyY2UgdGVtcGxhdGUKLSAgIHByb2plY3Qgb24gZGVtYW5kIHRvIGdp dmUgdGhlIGRldmVsb3BlciBhbiBlYXN5IHBvaW50IHRvIHN0YXJ0LiBUaGlzCi0gICB0ZW1wbGF0 ZSBpcyBwcmVwYXJlZCB0byBidWlsZCBhIHNpbmdsZSBzaGFyZWQgbGlicmFyeS4gRm9yIGZ1cnRo ZXIKLSAgIGRldGFpbHMgcmVmZXIgc2VjdGlvbiA6cmVmOmBhZGRpbmdfc3JjX2F1dG9jb25mX2xp YmAuCi0KLS0gICoqc3JjLWF1dG9jb25mLXByb2dsaWIqKjogVGhpcyBraW5kIG9mIHBhY2thZ2Ug aXMgYnVpbHQgZm9yIHRoZQotICAgdGFyZ2V0LiBJdCBpcyBpbnRlbmRlZCBmb3IgZGV2ZWxvcG1l bnQsIGFzIGl0IGRvZXMgbm90IGhhbmRsZSBhCi0gICByZWxlYXNlZCBhcmNoaXZlIGJ1dCBhIHBs YWluIHNvdXJjZSBwcm9qZWN0IGluc3RlYWQuIENyZWF0aW5nIHN1Y2ggYQotICAgcGFja2FnZSB3 aWxsIGFsc28gY3JlYXRlIGEgc21hbGwgYXV0b3Rvb2xzL2xpYnRvb2wgYmFzZWQgdGVtcGxhdGUK LSAgIHByb2plY3Qgb24gZGVtYW5kIHRvIGdpdmUgdGhlIGRldmVsb3BlciBhbiBlYXN5IHBvaW50 IHRvIHN0YXJ0LiBUaGlzCi0gICB0ZW1wbGF0ZSBpcyBwcmVwYXJlZCB0byBidWlsZCBhIHNpbmds ZSBzaGFyZWQgbGlicmFyeSBhbmQgYSBzaW5nbGUKLSAgIGV4ZWN1dGFibGUgcHJvZ3JhbS4gVGhl IHByb2dyYW0gd2lsbCBiZSBsaW5rZWQgYWdhaW5zdCB0aGUgc2hhcmVkCi0gICBsaWJyYXJ5LiBG b3IgZnVydGhlciBkZXRhaWxzIHJlZmVyIHNlY3Rpb24gOnJlZjpgYWRkaW5nX3NyY19hdXRvY29u Zl9leGVjX2xpYmAuCi0KLS0gICoqZmlsZSoqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBpcyBpbnRl bmRlZCB0byBhZGQgYSBmZXcgc2ltcGxlIGZpbGVzCi0gICBpbnRvIHRoZSBidWlsZCBwcm9jZXNz LiBXZSBhc3N1bWUgdGhlc2UgZmlsZXMgZG8gbm90IG5lZWQgYW55Ci0gICBwcm9jZXNzaW5nLCB0 aGV5IGFyZSByZWFkeSB0byB1c2UgYW5kIG11c3Qgb25seSBiZSBwcmVzZW50IGluIHRoZQotICAg YnVpbGQgcHJvY2VzcyBvciBhdCBydW4tdGltZSAoSFRNTCBmaWxlcyBmb3IgZXhhbXBsZSkuIFJl ZmVyIHRvIHRoZQotICAgc2VjdGlvbiA6cmVmOmBhZGRpbmdfZmlsZXNgIGZvciBmdXJ0aGVyIGRl dGFpbHMgb24gaG93IHRvIHVzZQotICAgaXQuCi0KLS0gICoqc3JjLW1ha2UtcHJvZyoqOiBUaGlz IGtpbmQgb2YgcGFja2FnZSBpcyBidWlsdCBmb3IgdGhlIHRhcmdldC4gSXTigJlzCi0gICBpbnRl bmRlZCBmb3IgZGV2ZWxvcG1lbnQsIGFzIGl0IGRvZXMgbm90IGhhbmRsZSBhIHJlbGVhc2VkIGFy Y2hpdmUKLSAgIGJ1dCBhIHBsYWluIHNvdXJjZSBwcm9qZWN0IGluc3RlYWQuIENyZWF0aW5nIHN1 Y2ggYSBwYWNrYWdlIHdpbGwgYWxzbwotICAgY3JlYXRlIGEgc2ltcGxlIG1ha2VmaWxlLWJhc2Vk IHRlbXBsYXRlIHByb2plY3QgdGhlIGRldmVsb3BlciBjYW4gdXNlCi0gICBhcyBhIHN0YXJ0aW5n IHBvaW50IGZvciBkZXZlbG9wbWVudC4KLQotLSAgKipzcmMtY21ha2UtcHJvZyoqOiBUaGlzIGtp bmQgb2YgcGFja2FnZSBpcyBidWlsdCBmb3IgdGhlIHRhcmdldC4KLSAgIEl04oCZcyBpbnRlbmRl ZCBmb3IgZGV2ZWxvcG1lbnRzIGJhc2VkIG9uIHRoZSAqY21ha2UqIGJ1aWxkc3lzdGVtLgotICAg VmFyaW91cyBwcm9qZWN0cyBhcmUgdXNpbmcgKmNtYWtlKiBpbnN0ZWFkIG9mICptYWtlKiBhbmQg Y2FuIGJlIGJ1aWx0Ci0gICB3aXRoIHRoaXMgcGFja2FnZSB0eXBlLiBQVFhkaXN0IHdpbGwgcHJl cGFyZSBpdCB0byBjb21waWxlIHNvdXJjZXMgaW4KLSAgIGFjY29yZGFuY2UgdG8gdGhlIHRhcmdl dCBsaWJyYXJpZXMgYW5kIHRoZWlyIHNldHRpbmdzLiBDcmVhdGluZyBzdWNoCi0gICBhIHBhY2th Z2Ugd2lsbCBhbHNvIGNyZWF0ZSBhIHNpbXBsZSB0ZW1wbGF0ZSBwcm9qZWN0IHRvIGJlIHVzZWQg YXMgYQotICAgc3RhcnRpbmcgcG9pbnQgZm9yIGRldmVsb3BtZW50LgotCi0tICAqKnNyYy1xbWFr ZS1wcm9nKio6IFRoaXMga2luZCBvZiBwYWNrYWdlIGlzIGJ1aWx0IGZvciB0aGUgdGFyZ2V0Lgot ICAgSXTigJlzIGludGVuZGVkIGZvciBkZXZlbG9wbWVudHMgYmFzZWQgb24gdGhlICpxbWFrZSog YnVpbGRzeXN0ZW0uIElmCi0gICB0aGUgZGV2ZWxvcGVyIGlzIGdvaW5nIHRvIGRldmVsb3AgYSBR VCBiYXNlZCBhcHBsaWNhdGlvbiwgdGhpcyBydWxlCi0gICBpcyBwcmVwYXJlZCB0byBjb21waWxl IHNvdXJjZXMgaW4gYWNjb3JkYW5jZSB0byB0aGUgdGFyZ2V0IGxpYnJhcmllcwotICAgYW5kIHRo ZWlyIHNldHRpbmdzLiBDcmVhdGluZyBzdWNoIGEgcGFja2FnZSB3aWxsIGFsc28gY3JlYXRlIGEg c2ltcGxlCi0gICB0ZW1wbGF0ZSBwcm9qZWN0IHRvIGJlIHVzZWQgYXMgYSBzdGFydGluZyBwb2lu dCBmb3IgZGV2ZWxvcG1lbnQuCi0KLS0gICoqc3JjLW1lc29uLXByb2cqKjogVGhpcyBraW5kIG9m IHBhY2thZ2UgaXMgYnVpbHQgZm9yIHRoZSB0YXJnZXQuCi0gICBJdOKAmXMgaW50ZW5kZWQgZm9y IGRldmVsb3BtZW50cyBiYXNlZCBvbiB0aGUgKm1lc29uKiBidWlsZHN5c3RlbS4KLSAgIFZhcmlv dXMgcHJvamVjdHMgYXJlIHVzaW5nICptZXNvbiogdG9kYXkgYW5kIGNhbiBiZSBidWlsdAotICAg d2l0aCB0aGlzIHBhY2thZ2UgdHlwZS4gUFRYZGlzdCB3aWxsIHByZXBhcmUgaXQgdG8gY29tcGls ZSBzb3VyY2VzIGluCi0gICBhY2NvcmRhbmNlIHRvIHRoZSB0YXJnZXQgbGlicmFyaWVzIGFuZCB0 aGVpciBzZXR0aW5ncy4gQ3JlYXRpbmcgc3VjaAotICAgYSBwYWNrYWdlIHdpbGwgYWxzbyBjcmVh dGUgYSBzaW1wbGUgdGVtcGxhdGUgcHJvamVjdCB0byBiZSB1c2VkIGFzIGEKLSAgIHN0YXJ0aW5n IHBvaW50IGZvciBkZXZlbG9wbWVudC4KLQotLSAgKipmb250Kio6IFRoaXMgcGFja2FnZSBpcyBh IGhlbHBlciB0byBhZGQgWCBmb250IGZpbGVzIHRvIHRoZSByb290Ci0gICBmaWxlc3lzdGVtLiBU aGlzIHBhY2thZ2UgZG9lcyBub3QgY3JlYXRlIGFuIGFkZGl0aW9uYWwgSVBLRywgaW5zdGVhZAot ICAgaXQgYWRkcyB0aGUgZm9udCB0byB0aGUgZXhpc3RpbmcgZm9udCBJUEtHLiBUaGlzIGluY2x1 ZGVzIHRoZQotICAgZ2VuZXJhdGlvbiBvZiB0aGUgZGlyZWN0b3J5IGluZGV4IGZpbGVzLCByZXF1 aXJlZCBieSB0aGUgWG9yZwotICAgZnJhbWV3b3JrIHRvIHJlY29nbml6ZSB0aGUgZm9udCBmaWxl LgotCi0tICAqKnNyYy1saW51eC1kcml2ZXIqKjogVGhpcyBraW5kIG9mIHBhY2thZ2UgYnVpbGRz IGFuIG91dCBvZiB0cmVlCi0gICBrZXJuZWwgZHJpdmVyLiBJdCBhbHNvIGNyZWF0ZXMgYSBkcml2 ZXIgdGVtcGxhdGUgdG8gZ2l2ZSB0aGUKLSAgIGRldmVsb3BlciBhbiBlYXN5IHBvaW50IHRvIHN0 YXJ0LgotCi0tICAqKmtlcm5lbCoqOiBQVFhkaXN0IGNvbWVzIHdpdGggdGhlIGFiaWxpdHkgdG8g aGFuZGxlIG9uZSBrZXJuZWwgaW4gaXRzCi0gICBwbGF0Zm9ybS4gVGhpcyB0eXBlIG9mIHBhY2th Z2UgZW5hYmxlcyB1cyB0byBoYW5kbGUgbW9yZSB0aGFuIG9uZSBrZXJuZWwgaW4KLSAgIHRoZSBw cm9qZWN0LgotCi0tICAqKmJhcmVib3gqKjogUFRYZGlzdCBjb21lcyB3aXRoIHRoZSBhYmlsaXR5 IHRvIGhhbmRsZSBvbmUgYm9vdGxvYWRlciBpbiBpdHMKLSAgIHBsYXRmb3JtLiBUaGlzIHR5cGUg b2YgcGFja2FnZSBlbmFibGVzIHVzIHRvIGhhbmRsZSBtb3JlIHRoYW4gb25lIGJvb3Rsb2FkZXIK LSAgIGluIHRoZSBwcm9qZWN0LgotCi0tICAqKmltYWdlLXRneioqOiBUaGlzIGtpbmQgb2YgcGFj a2FnZSBjcmVhdGVzIGEgdGFyIGJhbGwgZnJvbSBhIGxpc3Qgb2YKLSAgIHBhY2thZ2VzLiBJdCBp cyBvZnRlbiB1c2VzIGFzIGFuIGlucHV0IGZvciBvdGhlciBpbWFnZSBwYWNrYWdlcy4KLQotLSAg KippbWFnZS1nZW5pbWFnZSoqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBjYW4gaGFuZGxlIGFsbCBr aW5kIG9mIGltYWdlCi0gICBnZW5lcmF0aW9uIGZvciBhbG1vc3QgZXZlcnkgdGFyZ2V0IGluZGVw ZW5kZW50IG9mIGl0cyBjb21wbGV4aXR5LgotCi0tICAqKmJsc3BlYy1lbnRyeSoqOiBQVFhkaXN0 IGNvbWVzIHdpdGggdGhlIGFiaWxpdHkgdG8gaGFuZGxlIG9uZSBib290c3BlYyBpbiBpdHMKLSAg IHBsYXRmb3JtLiBUaGlzIHR5cGUgb2YgcGFja2FnZSBlbmFibGVzIHVzIHRvIGhhbmRsZSBtb3Jl IHRoYW4gb25lIGJvb3RzcGVjCi0gICBpbiB0aGUgcHJvamVjdC4KLQotLi4gX2Zvb19leGFtcGxl OgotCi1SdWxlIEZpbGUgQ3JlYXRpb24KLX5+fn5+fn5+fn5+fn5+fn5+fgotCi1UbyBjcmVhdGUg c3VjaCBhIG5ldyBwYWNrYWdlLCB3ZSBjcmVhdGUgYSBwcm9qZWN0IGxvY2FsIGBgcnVsZXMvYGAK LWRpcmVjdG9yeSBmaXJzdC4gVGhlbiB3ZSBydW4KLQotLi4gY29kZS1ibG9jazo6IHRleHQKLQot ICAgICQgcHR4ZGlzdCBuZXdwYWNrYWdlIDxwYWNrYWdlIHR5cGU+Ci0KLUlmIHdlIG9taXQgdGhl IDxgYHBhY2thZ2UgdHlwZWBgXCA+LCBQVFhkaXN0IHdpbGwgbGlzdCBhbGwgYXZhaWxhYmxlCi1w YWNrYWdlIHR5cGVzLgotCi1JbiBvdXIgZmlyc3QgZXhhbXBsZSwgd2Ugd2FudCB0byBhZGQgYSBu ZXcgdGFyZ2V0IHR5cGUgYXJjaGl2ZSBwYWNrYWdlLgotV2hlbiBydW5uaW5nIHRoZQotCi0uLiBj b2RlLWJsb2NrOjogdGV4dAotCi0gICAgJCBwdHhkaXN0IG5ld3BhY2thZ2UgdGFyZ2V0Ci0KLWNv bW1hbmQsIFBUWGRpc3QgYXNrcyBhIGZldyBxdWVzdGlvbnMgYWJvdXQgdGhpcyBwYWNrYWdlLiBU aGlzCi1pbmZvcm1hdGlvbiBpcyB0aGUgYmFzaWMgZGF0YSBQVFhkaXN0IG11c3Qga25vdyBhYm91 dCB0aGUgcGFja2FnZS4KLQotLi4gY29kZS1ibG9jazo6IHRleHQKLQotICAgIHB0eGRpc3Q6IGNy ZWF0aW5nIGEgbmV3ICd0YXJnZXQnIHBhY2thZ2U6Ci0KLSAgICBwdHhkaXN0OiBlbnRlciBwYWNr YWdlIG5hbWUuLi4uLi4uOiBmb28KLSAgICBwdHhkaXN0OiBlbnRlciB2ZXJzaW9uIG51bWJlci4u Li4uOiAxLjEuMAotICAgIHB0eGRpc3Q6IGVudGVyIFVSTCBvZiBiYXNlZGlyLi4uLi46IGh0dHA6 Ly93d3cuZm9vLmNvbS9kb3dubG9hZC9zcmMKLSAgICBwdHhkaXN0OiBlbnRlciBzdWZmaXguLi4u Li4uLi4uLi4uOiB0YXIuZ3oKLSAgICBwdHhkaXN0OiBlbnRlciBwYWNrYWdlIGF1dGhvci4uLi4u OiBNeSBOYW1lIDxtZUBteS1vcmcuY29tPgotICAgIHB0eGRpc3Q6IGVudGVyIHBhY2thZ2Ugc2Vj dGlvbi4uLi46IHByb2plY3Rfc3BlY2lmaWMKLQotV2hhdCB3ZSBoYXZlIHRvIGFuc3dlcjoKLQot LSAgKipwYWNrYWdlIG5hbWUqKjogQXMgdGhpcyBraW5kIG9mIHBhY2thZ2UgaGFuZGxlcyBhIHNv dXJjZSBhcmNoaXZlLAotICAgdGhlIGNvcnJlY3QgYW5zd2VyIGhlcmUgaXMgdGhlIGJhc2VuYW1l IG9mIHRoZSBhcmNoaXZl4oCZcyBmaWxlIG5hbWUuCi0gICBJZiBpdHMgZnVsbCBuYW1lIGlzIGBg Zm9vLTEuMS4wLnRhci5nemBgLCB0aGVuIGBgZm9vYGAgaXMgdGhlCi0gICBiYXNlbmFtZSB0byBl bnRlciBoZXJlLgotCi0tICAqKnZlcnNpb24gbnVtYmVyKio6IE1vc3Qgc291cmNlIGFyY2hpdmVz IGFyZSB1c2luZyBhIHJlbGVhc2Ugb3IKLSAgIHZlcnNpb24gbnVtYmVyIGluIHRoZWlyIGZpbGUg bmFtZS4gSWYgaXRzIGZ1bGwgbmFtZSBpcwotICAgYGBmb28tMS4xLjAudGFyLmd6YGAsIHRoZW4g YGAxLjEuMGBgIGlzIHRoZSB2ZXJzaW9uIG51bWJlciB0byBlbnRlcgotICAgaGVyZS4KLQotLSAg KipVUkwgb2YgYmFzZWRpcioqOiBUaGlzIFVSTCB0ZWxscyBQVFhkaXN0IHdoZXJlIHRvIGRvd25s b2FkIHRoZQotICAgc291cmNlIGFyY2hpdmUgZnJvbSB0aGUgd2ViIChpZiBub3QgYWxyZWFkeSBk b25lKS4gSWYgdGhlIGZ1bGwgVVJMIHRvCi0gICBkb3dubG9hZCB0aGUgYXJjaGl2ZSBpcwotICAg YGBodHRwOi8vd3d3LmZvby5jb20vZG93bmxvYWQvc3JjL2Zvby0xLjEuMC50YXIuZ3pgYCwgdGhl IGJhc2VkaXIKLSAgIHBhcnQgYGBodHRwOi8vd3d3LmZvby5jb20vZG93bmxvYWQvc3JjYGAgaXMg dG8gYmUgZW50ZXJlZCBoZXJlLgotCi0tICAqKnN1ZmZpeCoqOiBBcmNoaXZlcyBhcmUgdXNpbmcg dmFyaW91cyBmb3JtYXRzIGZvciBkaXN0cmlidXRpb24uCi0gICBQVFhkaXN0IHVzZXMgdGhlICpz dWZmaXgqIGVudHJ5IHRvIHNlbGVjdCB0aGUgbWF0Y2hpbmcgZXh0cmFjdGlvbgotICAgdG9vbC4g SWYgdGhlIGFyY2hpdmXigJlzIGZ1bGwgbmFtZSBpcyBgYGZvby0xLjEuMC50YXIuZ3pgYCwgdGhl bgotICAgYGB0YXIuZ3pgYCBpcyB0aGUgc3VmZml4IHRvIGVudGVyIGhlcmUuCi0KLS0gICoqcGFj a2FnZSBhdXRob3IqKjogSWYgd2UgaW50ZW5kIHRvIGNvbnRyaWJ1dGUgdGhpcyBuZXcgcGFja2Fn ZSB0bwotICAgUFRYZGlzdCBtYWlubGluZSwgd2Ugc2hvdWxkIGFkZCBvdXIgbmFtZSBoZXJlLiBU aGlzIG5hbWUgd2lsbCBiZSB1c2VkCi0gICBpbiB0aGUgY29weXJpZ2h0IG5vdGUgb2YgdGhlIHJ1 bGUgZmlsZSBhbmQgd2lsbCBhbHNvIGJlIGFkZGVkIHRvIHRoZQotICAgZ2VuZXJhdGVkIGlwa2cu IFdoZW4geW91IHJ1biBgYHB0eGRpc3Qgc2V0dXBgYCBwcmlvciB0byB0aGlzIGNhbGwsCi0gICB5 b3UgY2FuIGVudGVyIHlvdXIgbmFtZSBhbmQgeW91ciBlbWFpbCBhZGRyZXNzLCBzbyBQVFhkaXN0 IHdpbGwgdXNlCi0gICBpdCBhcyB0aGUgZGVmYXVsdCAodmVyeSBoYW5keSBpZiB5b3UgaW50ZW5k IHRvIGFkZCBtYW55IG5ldwotICAgcGFja2FnZXMpLgotCi0tICAqKnBhY2thZ2Ugc2VjdGlvbioq OiBXZSBjYW4gZW50ZXIgaGVyZSB0aGUgbWVudSBzZWN0aW9uIG5hbWUgd2hlcmUKLSAgIG91ciBu ZXcgcGFja2FnZSBtZW51IGVudHJ5IHNob3VsZCBiZSBsaXN0ZWQuIEluIHRoZSBmaXJzdCBzdGVw IHdlIGNhbgotICAgbGVhdmUgdGhlIGRlZmF1bHQgbmFtZSB1bmNoYW5nZWQuIEl04oCZcyBhIHN0 cmluZyBpbiB0aGUgbWVudSBmaWxlCi0gICBvbmx5LCBzbyBjaGFuZ2luZyBpdCBsYXRlciBvbiBp cyBzdGlsbCBwb3NzaWJsZS4KLQotTWFrZSBpdCBXb3JrCi1+fn5+fn5+fn5+fn4KLQotR2VuZXJh dGluZyB0aGUgcnVsZSBmaWxlIGlzIG9ubHkgb25lIG9mIHRoZSByZXF1aXJlZCBzdGVwcyB0byBn ZXQgYSBuZXcKLXBhY2thZ2UuIFRoZSBuZXh0IHN0ZXBzIHRvIG1ha2UgaXQgd29yayBhcmUgdG8g Y2hlY2sgaWYgYWxsIHN0YWdlcyBhcmUKLXdvcmtpbmcgYXMgZXhwZWN0ZWQgYW5kIHRvIHNlbGVj dCB0aGUgcmVxdWlyZWQgcGFydHMgdG8gZ2V0IHRoZW0KLWluc3RhbGxlZCBpbiB0aGUgdGFyZ2V0 IHJvb3QgZmlsZXN5c3RlbS4gQWxzbyB3ZSBtdXN0IGZpbmQgYSByZWFzb25hYmxlCi1sb2NhdGlv biB3aGVyZSB0byBhZGQgb3VyIG5ldyBtZW51IGVudHJ5IHRvIGNvbmZpZ3VyZSB0aGUgcGFja2Fn ZS4KLQotVGhlIGdlbmVyYXRlZCBza2VsZXRvbiBzdGFydHMgdG8gYWRkIHRoZSBuZXcgbWVudSBl bnRyeSBpbiB0aGUgbWFpbgotY29uZmlndXJlIG1lbnUgKGlmIHdlIGxlZnQgdGhlIHNlY3Rpb24g bmFtZSB1bmNoYW5nZWQpLiBSdW5uaW5nCi1gYHB0eGRpc3QgbWVudWNvbmZpZ2BgIHdpbGwgc2hv dyBpdCBvbiB0b3Agb2YgYWxsIG90aGVyIG1lbnVzIGVudHJpZXMuCi0KLS4uIGltcG9ydGFudDo6 IAotICBUbyBiZSBhYmxlIHRvIGltcGxlbWVudCBhbmQgdGVzdCBhbGwgdGhlIG90aGVyIHJlcXVp cmVkIHN0ZXBzIGZvciBhZGRpbmcKLSAgYSBuZXcgcGFja2FnZSwgd2UgZmlyc3QgbXVzdCBlbmFi bGUgdGhlIHBhY2thZ2UgZm9yIGJ1aWxkaW5nLiAoRmluZQotICB0dW5pbmcgdGhlIG1lbnUgY2Fu IGhhcHBlbiBsYXRlciBvbi4pCi0KLQotVGhlIHJ1bGUgZmlsZSBza2VsZXRvbiBzdGlsbCBsYWNr cyBzb21lIGltcG9ydGFudCBpbmZvcm1hdGlvbi4gTGV04oCZcwotdGFrZSBhIGxvb2sgaW50byBz b21lIG9mIHRoZSB0b3AgbGluZXMgb2YgdGhlIGdlbmVyYXRlZCBydWxlIGZpbGUKLWBgLi9ydWxl cy9mb28ubWFrZWBgOgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQotCi0gICAgRk9PX1ZFUlNJT04J Oj0gMS4xLjAKLSAgICBGT09fTUQ1CTo9Ci0gICAgRk9PCQk6PSBmb28tJChGT09fVkVSU0lPTikK LSAgICBGT09fU1VGRklYCTo9IHRhci5negotICAgIEZPT19VUkwJOj0gaHR0cDovL3d3dy5mb28u Y29tL2Rvd25sb2FkL3NyYy8kKEZPTykuJChGT09fU1VGRklYKQotICAgIEZPT19TT1VSQ0UJOj0g JChTUkNESVIpLyQoRk9PKS4kKEZPT19TVUZGSVgpCi0gICAgRk9PX0RJUgk6PSAkKEJVSUxERElS KS8kKEZPTykKLSAgICBGT09fTElDRU5TRQk6PSB1bmtub3duCi0KLVdlIGNhbiBmaW5kIHRoZXNl IGxpbmVzIHdpdGggZGlmZmVyZW50IGNvbnRlbnQgaW4gbW9zdCBvciBhbGwgb2YgdGhlCi1vdGhl ciBydWxlIGZpbGVzIFBUWGRpc3QgY29tZXMgd2l0aC4gVXAgdG8gdGhlIHVuZGVybGluZSBjaGFy YWN0ZXIgaXMKLWFsd2F5cyB0aGUgcGFja2FnZSBuYW1lIGFuZCBhZnRlciB0aGUgdW5kZXJsaW5l IGNoYXJhY3RlciBpcyBhbHdheXMKLVBUWGRpc3Qgc3BlY2lmaWMuIFdoYXQgZG9lcyBpdCBtZWFu OgotCi0tICBgYCpfVkVSU0lPTmBgIGJyaW5ncyBpbiB0aGUgdmVyc2lvbiBudW1iZXIgb2YgdGhl IHJlbGVhc2UgYW5kIGlzIHVzZWQKLSAgIGZvciB0aGUgZG93bmxvYWQgYW5kIElQS0cvT1BLRyBw YWNrYWdlIGdlbmVyYXRpb24uCi0KLS0gIGBgKl9NRDVgYCB0byBiZSBzdXJlIHRoZSBjb3JyZWN0 IHBhY2thZ2UgaGFzIGJlZW4gZG93bmxvYWRlZCwgUFRYZGlzdAotICAgY2hlY2tzIHRoZSBnaXZl biBNRDUgc3VtIGFnYWluc3QgdGhlIGFyY2hpdmUgY29udGVudC4gSWYgYm90aCBzdW1zIGRvCi0g ICBub3QgbWF0Y2gsIFBUWGRpc3QgcmVqZWN0cyB0aGUgYXJjaGl2ZSBhbmQgZmFpbHMgdGhlIGN1 cnJlbnRseQotICAgcnVubmluZyBidWlsZC4KLQotLSAgYGAqX1NVRkZJWGBgIGRlZmluZXMgdGhl IGFyY2hpdmUgdHlwZSwgdG8gbWFrZSBQVFhkaXN0IGNob29zaW5nIHRoZQotICAgY29ycmVjdCBl eHRyYWN0aW5nIHRvb2wuCi0KLS0gIGBgKl9VUkxgYCBkZWZpbmVzIHRoZSBmdWxsIHF1YWxpZmll ZCBVUkwgaW50byB0aGUgd2ViIGZvciBkb3dubG9hZC4gSWYKLSAgIGFsdGVybmF0aXZlIGRvd25s b2FkIGxvY2F0aW9ucyBhcmUga25vd24sIHRoZXkgY2FuIGJlIGxpc3RlZCBpbiB0aGlzCi0gICB2 YXJpYWJsZSwgZGVsaW1pdGVyIGNoYXJhY3RlciBpcyB0aGUgc3BhY2UuCi0KLS0gIGBgKl9TT1VS Q0VgYCB0ZWxscyBQVFhkaXN0IHdoZXJlIHRvIHN0b3JlIHRoZSBkb3dubG9hZGVkIHBhY2thZ2Uu Ci0KLS0gIGBgKl9ESVJgYCBwb2ludHMgdG8gdGhlIGRpcmVjdG9yeSB0aGlzIHBhY2thZ2Ugd2ls bCBiZSBidWlsdCBsYXRlciBvbgotICAgYnkgUFRYZGlzdC4KLQotLSAgYGAqX0xJQ0VOU0VgYCBl bmFibGVzIHRoZSB1c2VyIHRvIGdldCBhIGxpc3Qgb2YgbGljZW5zZXMgc2hlL2hlIGlzCi0gICB1 c2luZyBpbiBoZXIvaGlzIHByb2plY3QgKGxpY2Vuc2VzIG9mIHRoZSBlbmFibGVkIHBhY2thZ2Vz KS4KLQotQWZ0ZXIgZW5hYmxpbmcgdGhlIG1lbnUgZW50cnksIHdlIGNhbiBzdGFydCB0byBjaGVj ayB0aGUgKmdldCogYW5kCi0qZXh0cmFjdCogc3RhZ2VzLCBjYWxsaW5nIHRoZW0gbWFudWFsbHkg b25lIGFmdGVyIGFub3RoZXIuCi0KLS4uIG5vdGU6OiBUaGUgc2hvd24gY29tbWFuZHMgYmVsb3cg ZXhwZWN0IHRoYXQgUFRYZGlzdCBkb3dubG9hZHMgdGhlCi0gIGFyY2hpdmVzIHRvIGEgZ2xvYmFs IGRpcmVjdG9yeSBuYW1lZCBgYGdsb2JhbF9zcmNgYC4gVGhpcyBpcyBub3QgdGhlCi0gIGRlZmF1 bHQgc2V0dGluZywgYnV0IHdlIHJlY29tbWVuZCB0byB1c2UgYSBnbG9iYWwgZGlyZWN0b3J5IHRv IHNoYXJlIGFsbAotICBhcmNoaXZlcyBiZXR3ZWVuIFBUWGRpc3QgYmFzZWQgcHJvamVjdHMuIEFk dmFudGFnZSBpcyBldmVyeSBkb3dubG9hZAotICBoYXBwZW5zIG9ubHkgb25jZS4gUmVmZXIgdG8g dGhlIGBgc2V0dXBgYCBjb21tYW5kIFBUWGRpc3QgcHJvdmlkZXMuCi0KLS4uIGNvZGUtYmxvY2s6 OiB0ZXh0Ci0KLSAgICAkIHB0eGRpc3QgZ2V0IGZvbwotCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0gICAgdGFyZ2V0OiBmb28tMS4xLjAudGFyLmd6Ci0gICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0KLSAgICAtLTIwMDktMTItMjEgMTA6NTQ6NDUtLSAgaHR0cDovL3d3 dy5mb28uY29tL2Rvd25sb2FkL3NyYy9mb28tMS4xLjAudGFyLmd6Ci0gICAgTGVuZ3RoOiAyOTEx OTAgKDI4NEspIFthcHBsaWNhdGlvbi94LWd6aXBdCi0gICAgU2F2aW5nIHRvOiBgL2dsb2JhbF9z cmMvZm9vLTEuMS4wLnRhci5nei5YWFhYT0duY1pBJwotCi0gICAgMTAwJVs9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT5dIDI5MSwxOTAgICAgICAxNzBLL3MgICBpbiAxLjdz Ci0KLSAgICAyMDA5LTEyLTIxIDEwOjU0OjQ4ICgxNzAgS0IvcykgLSBgL2dsb2JhbF9zcmMvZm9v LTEuMS4wLnRhci5neicgc2F2ZWQgWzI5MTE5MC8yOTExOTBdCi0KLVRoaXMgY29tbWFuZCBzaG91 bGQgc3RhcnQgdG8gZG93bmxvYWQgdGhlIHNvdXJjZSBhcmNoaXZlLiBJZiBpdCBmYWlscywKLXdl IHNob3VsZCBjaGVjayBvdXIgbmV0d29yayBjb25uZWN0aW9uLCBwcm94eSBzZXR1cCBvciBpZiB0 aGUgZ2l2ZW4gVVJMCi1pbiB1c2UgaXMgY29ycmVjdC4KLQotLi4gbm90ZTo6IFNvbWV0aW1lcyB3 ZSBkbyBub3Qga25vdyB0aGUgY29udGVudCBvZiBhbGwgdGhlIG90aGVyIHZhcmlhYmxlcyBpbgot ICB0aGUgcnVsZSBmaWxlLiBUbyBnZXQgYW4gaWRlYSB3aGF0IGNvbnRlbnQgYSB2YXJpYWJsZSBo YXMsIHdlIGNhbiBhc2sKLSAgUFRYZGlzdCBhYm91dCBpdDoKLQotLi4gY29kZS1ibG9jazo6IHRl eHQKLQotICAgICQgcHR4ZGlzdCBwcmludCBGT09fVVJMCi0gICAgaHR0cDovL3d3dy5mb28uY29t L2Rvd25sb2FkL3NyYy9mb28tMS4xLjAudGFyLmd6Ci0KLVRoZSBuZXh0IHN0ZXAgd291bGQgYmUg dG8gZXh0cmFjdCB0aGUgYXJjaGl2ZS4gQnV0IGFzIFBUWGRpc3QgY2hlY2tzIHRoZQotTUQ1IHN1 bSBpbiB0aGlzIGNhc2UsIHRoaXMgc3RlcCB3aWxsIGZhaWwsIGJlY2F1c2UgdGhlIGBgRk9PX01E NWBgCi12YXJpYWJsZSBpcyBzdGlsbCBlbXB0eS4gTGV04oCZcyBmaWxsIGl0OgotCi0uLiBjb2Rl LWJsb2NrOjogdGV4dAotCi0gICAgJCBtZDVzdW0gL2dsb2JhbF9zcmMvZm9vLTEuMS4wLnRhci5n egotICAgIDlhMDk4NDBhYjc3NWExMzllYmIwMGY1N2E1ODdiNDQ3Ci0KLVRoaXMgc3RyaW5nIG11 c3QgYmUgYXNzaWduZWQgdG8gdGhlIEZPT19NRDUgaW4gb3VyIG5ldyBgYGZvby5tYWtlYGAKLXJ1 bGUgZmlsZToKLQotLi4gY29kZS1ibG9jazo6IHRleHQKLQotICAgIEZPT19NRDUJCTo9IDlhMDk4 NDBhYjc3NWExMzllYmIwMGY1N2E1ODdiNDQ3Ci0KLVdlIGFyZSBub3cgcHJlcGFyZWQgZm9yIHRo ZSBuZXh0IHN0ZXA6Ci0KLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Ci0KLSAgICAkIHB0eGRpc3QgZXh0 cmFjdCBmb28KLQotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgdGFyZ2V0OiBmb28u ZXh0cmFjdAotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICBleHRyYWN0OiBhcmNo aXZlPS9nbG9iYWxfc3JjL2Zvby0xLjEuMC50YXIuZ3oKLSAgICBleHRyYWN0OiBkZXN0PS9ob21l L2piZS9teV9uZXdfcHJqL2J1aWxkLXRhcmdldAotICAgIFBBVENISU46IHBhY2tldD1mb28tMS4x LjAKLSAgICBQQVRDSElOOiBkaXI9L2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zv by0xLjEuMAotICAgIFBBVENISU46IG5vIHBhdGNoZXMgZm9yIGZvby0xLjEuMCBhdmFpbGFibGUK LSAgICBGaXhpbmcgdXAgL2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0xLjEu MC9jb25maWd1cmUKLSAgICBmaW5pc2hlZCB0YXJnZXQgZm9vLmV4dHJhY3QKLQotSW4gdGhpcyBl eGFtcGxlIHdlIGV4cGVjdCBhbiBhdXRvdG9vbGl6ZWQgc291cmNlIHBhY2thZ2UuIEUuZy4gdG8K LXByZXBhcmUgdGhlIGJ1aWxkLCB0aGUgYXJjaGl2ZSBjb21lcyB3aXRoIGEgYGBjb25maWd1cmVg YCBzY3JpcHQuIFRoaXMKLWlzIHRoZSBkZWZhdWx0IGNhc2UgZm9yIFBUWGRpc3QuIFNvLCB0aGVy ZSBpcyBubyBuZWVkIHRvIG1vZGlmeSB0aGUgcnVsZQotZmlsZSBhbmQgd2UgY2FuIHNpbXBseSBy dW46Ci0KLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Ci0KLSAgICAkIHB0eGRpc3QgcHJlcGFyZSBmb28K LQotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgdGFyZ2V0OiBmb28ucHJlcGFyZQot ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICBbLi4uXQotCi0gICAgY2hlY2tpbmcg YnVpbGQgc3lzdGVtIHR5cGUuLi4gaTY4Ni1ob3N0LWxpbnV4LWdudQotICAgIGNoZWNraW5nIGhv c3Qgc3lzdGVtIHR5cGUuLi4gfHB0eGRpc3RDb21waWxlck5hbWV8Ci0gICAgY2hlY2tpbmcgd2hl dGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBwb3J0aW9ucyBvZiBNYWtlZmlsZXMu Li4gbm8KLSAgICBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3Iv YmluL2luc3RhbGwgLWMKLSAgICBjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlz IHNhbmUuLi4geWVzCi0gICAgY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAuLi4g L2Jpbi9ta2RpciAtcAotICAgIGNoZWNraW5nIGZvciBnYXdrLi4uIGdhd2sKLSAgICBjaGVja2lu ZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpLi4uIHllcwotICAgIGNoZWNraW5nIGZvciB8cHR4 ZGlzdENvbXBpbGVyTmFtZXwtc3RyaXAuLi4gfHB0eGRpc3RDb21waWxlck5hbWV8LXN0cmlwCi0g ICAgY2hlY2tpbmcgZm9yIHxwdHhkaXN0Q29tcGlsZXJOYW1lfC1nY2MuLi4gfHB0eGRpc3RDb21w aWxlck5hbWV8LWdjYwotICAgIGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0 IGZpbGUgbmFtZS4uLiBhLm91dAotCi0gICAgWy4uLl0KLQotICAgIGNvbmZpZ3VyZTogY3JlYXRp bmcgLi9jb25maWcuc3RhdHVzCi0gICAgY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUK LSAgICBjb25maWcuc3RhdHVzOiBjcmVhdGluZyBwcGFfcHJvdG9jb2wvTWFrZWZpbGUKLSAgICBj b25maWcuc3RhdHVzOiBjcmVhdGluZyBjb25maWcuaAotICAgIGNvbmZpZy5zdGF0dXM6IGV4ZWN1 dGluZyBkZXBmaWxlcyBjb21tYW5kcwotICAgIGZpbmlzaGVkIHRhcmdldCBmb28ucHJlcGFyZQot Ci1BdCB0aGlzIHN0YWdlIHRoaW5ncyBjYW4gZmFpbDoKLQotLSAgQSB3cm9uZyBvciBubyBNRDUg c3VtIHdhcyBnaXZlbgotCi0tICBUaGUgYGBjb25maWd1cmVgYCBzY3JpcHQgaXMgbm90IGNyb3Nz IGNvbXBpbGUgYXdhcmUKLQotLSAgVGhlIHBhY2thZ2UgZGVwZW5kcyBvbiBleHRlcm5hbCBjb21w b25lbnRzIChsaWJyYXJpZXMgZm9yIGV4YW1wbGUpCi0KLUlmIHRoZSBgYGNvbmZpZ3VyZWBgIHNj cmlwdCBpcyBub3QgY3Jvc3MgY29tcGlsZSBhd2FyZSwgd2UgYXJlIG91dCBvZgotbHVjay4gV2Ug bXVzdCBwYXRjaCB0aGUgc291cmNlIGFyY2hpdmUgaW4gdGhpcyBjYXNlIHRvIG1ha2UgaXQgd29y ay4KLVJlZmVyIHRvIHRoZSBzZWN0aW9uIDpyZWY6YGNvbmZpZ3VyZV9yZWJ1aWxkYCBvbiBob3cg dG8gdXNlCi1QVFhkaXN04oCZcyBmZWF0dXJlcyB0byBzaW1wbGlmeSB0aGlzIHRhc2suCi1JZiB0 aGUgcGFja2FnZSBkZXBlbmRzIG9uIGV4dGVybmFsIGNvbXBvbmVudHMsIHRoZXNlIGNvbXBvbmVu dHMgbWlnaHQKLWJlIGFscmVhZHkgcGFydCBvZiBQVFhkaXN0LiBJbiB0aGlzIGNhc2Ugd2UganVz dCBoYXZlIHRvIGFkZCB0aGlzCi1kZXBlbmRlbmN5IGludG8gdGhlIG1lbnUgZmlsZSBhbmQgd2Ug YXJlIGRvbmUuIEJ1dCBpZiBQVFhkaXN0IGNhbm5vdAotZnVsZmlsbCB0aGlzIGRlcGVuZGVuY3ks IHdlIGFsc28gbXVzdCBhZGQgaXQgYXMgYSBzZXBhcmF0ZSBwYWNrYWdlCi1maXJzdC4KLQotSWYg dGhlICpwcmVwYXJlKiBzdGFnZSBoYXMgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5LCB0aGUgbmV4dCBz dGVwIGlzIHRvCi1jb21waWxlIHRoZSBwYWNrYWdlLgotCi0uLiBjb2RlLWJsb2NrOjogdGV4dAot Ci0gICAgJCBwdHhkaXN0IGNvbXBpbGUgZm9vCi0KLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotICAgIHRhcmdldDogZm9vLmNvbXBpbGUKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot Ci0gICAgbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9i dWlsZC10YXJnZXQvZm9vLTEuMS4wJwotICAgIG1ha2UgIGFsbC1yZWN1cnNpdmUKLSAgICBtYWtl WzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxkLXRhcmdl dC9mb28tMS4xLjAnCi0gICAgbWFrZVszXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUv bXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJwotCi0gICAgWy4uLl0KLQotICAgIG1h a2VbM106IExlYXZpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJn ZXQvZm9vLTEuMS4wJwotICAgIG1ha2VbMl06IExlYXZpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUv bXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJwotICAgIG1ha2VbMV06IExlYXZpbmcg ZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJwot ICAgIGZpbmlzaGVkIHRhcmdldCBmb28uY29tcGlsZQotCi1BdCB0aGlzIHN0YWdlIHRoaW5ncyBj YW4gZmFpbDoKLQotLSAgVGhlIGJ1aWxkIHN5c3RlbSBpcyBub3QgY3Jvc3MgY29tcGlsZSBhd2Fy ZSAoaXQgdHJpZXMgdG8gZXhlY3V0ZSBqdXN0Ci0gICBjcmVhdGVkIHRhcmdldCBiaW5hcmllcyBm b3IgZXhhbXBsZSkKLQotLSAgVGhlIHBhY2thZ2UgZGVwZW5kcyBvbiBleHRlcm5hbCBjb21wb25l bnRzIChsaWJyYXJpZXMgZm9yIGV4YW1wbGUpCi0gICBub3QgZGV0ZWN0ZWQgYnkgYGBjb25maWd1 cmVgYAotCi0tICBTb3VyY2VzIGFyZSBpZ25vcmluZyB0aGUgZW5kaWFubmVzcyBvZiBzb21lIGFy Y2hpdGVjdHVyZXMgb3IgdXNpbmcKLSAgIGhlYWRlciBmaWxlcyBmcm9tIHRoZSBidWlsZCBob3N0 IHN5c3RlbSAoZnJvbSBgYC91c3IvaW5jbHVkZWBgIGZvcgotICAgZXhhbXBsZSkKLQotLSAgVGhl IGxpbmtlciB1c2VzIGxpYnJhcmllcyBmcm9tIHRoZSBidWlsZCBob3N0IHN5c3RlbSAoZnJvbQot ICAgYGAvdXNyL2xpYmBgIGZvciBleGFtcGxlKSBieSBhY2NpZGVudAotCi1JbiBhbGwgb2YgdGhl c2UgY2FzZXMgd2UgbXVzdCBwYXRjaCB0aGUgc291cmNlcyB0byBtYWtlIHRoZW0gd29yay4gUmVm ZXIKLXRvIHNlY3Rpb24gOnJlZjpgcGF0Y2hpbmdfcGFja2FnZXNgIG9uIGhvdyB0byB1c2UgUFRY ZGlzdOKAmXMKLWZlYXR1cmVzIHRvIHNpbXBsaWZ5IHRoaXMgdGFzay4KLQotSW4gdGhpcyBleGFt cGxlIHdlIGV4cGVjdCB0aGUgYmVzdCBjYXNlOiBldmVyeXRoaW5nIHdlbnQgZmluZSwgZXZlbiBm b3IKLWNyb3NzIGNvbXBpbGluZy4gU28sIHdlIGNhbiBjb250aW51ZSB3aXRoIHRoZSBuZXh0IHN0 YWdlOiAqaW5zdGFsbCoKLQotLi4gY29kZS1ibG9jazo6IHRleHQKLQotICAgICQgcHR4ZGlzdCBp bnN0YWxsIGZvbwotCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICB0YXJnZXQ6IGZv by5pbnN0YWxsCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIG1ha2VbMV06IEVu dGVyaW5nIGRpcmVjdG9yeSBgL2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0x LjEuMCcKLSAgICBtYWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9ob21lL2piZS9teV9uZXdf cHJqL2J1aWxkLXRhcmdldC9mb28tMS4xLjAnCi0gICAgbWFrZVszXTogRW50ZXJpbmcgZGlyZWN0 b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJwotICAgIHRl c3QgLXogIi91c3IvYmluIiB8fCAvYmluL21rZGlyIC1wICIvaG9tZS9qYmUvbXlfbmV3X3Byai9i dWlsZC10YXJnZXQvZm9vLTEuMS4wL3Vzci9iaW4iCi0gICAgICAvdXNyL2Jpbi9pbnN0YWxsIC1j ICdmb28nICcvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wL3Vzci9i aW4vZm9vJwotICAgIG1ha2VbM106IExlYXZpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3 X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJwotICAgIG1ha2VbMl06IExlYXZpbmcgZGlyZWN0 b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJwotICAgIG1h a2VbMV06IExlYXZpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJn ZXQvZm9vLTEuMS4wJwotICAgIGZpbmlzaGVkIHRhcmdldCBmb28uaW5zdGFsbAotCi0gICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIHRhcmdldDogZm9vLmluc3RhbGwucG9zdAot ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIGZpbmlzaGVkIHRhcmdldCBm b28uaW5zdGFsbC5wb3N0Ci0KLVRoaXMgKmluc3RhbGwqIHN0YWdlIGRvZXMgbm90IGluc3RhbGwg YW55dGhpbmcgdG8gdGhlIHRhcmdldCByb290Ci1maWxlc3lzdGVtLiBJdCBpcyBtb3N0bHkgaW50 ZW5kZWQgdG8gaW5zdGFsbCBsaWJyYXJpZXMgYW5kIGhlYWRlciBmaWxlcwotb3RoZXIgcHJvZ3Jh bXMgc2hvdWxkIGxpbmsgYWdhaW5zdCBsYXRlciBvbi4KLQotVGhlIGxhc3Qgc3RhZ2Ug4oCTICp0 YXJnZXRpbnN0YWxsKiDigJMgaXMgdGhlIG9uZSB0aGF0IGRlZmluZXMgdGhlIHBhY2thZ2XigJlz Ci1jb21wb25lbnRzIHRvIGJlIGZvcndhcmRlZCB0byB0aGUgdGFyZ2V04oCZcyByb290IGZpbGVz eXN0ZW0uIER1ZSB0byB0aGUKLWFic2VuY2Ugb2YgYSBnZW5lcmljIHdheSwgdGhpcyBpcyB0aGUg dGFzayBvZiB0aGUgZGV2ZWxvcGVyLiBTbywgYXQgdGhpcwotcG9pbnQgb2YgdGltZSB3ZSBtdXN0 IHJ1biBvdXIgZmF2b3VyaXRlIGVkaXRvciBhZ2FpbiBhbmQgbW9kaWZ5IG91ciBuZXcKLXJ1bGUg ZmlsZSBgYC4vcnVsZXMvZm9vLm1ha2VgYC4KLQotVGhlIHNrZWxldG9uIGZvciB0aGUgKnRhcmdl dGluc3RhbGwqIHN0YWdlIGxvb2tzIGxpa2UgdGhpczoKLQotLi4gY29kZS1ibG9jazo6IG1ha2UK LQotICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICMgVGFyZ2V0LUluc3RhbGwKLSAgICAj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICQoU1RBVEVESVIpL2Zvby50YXJnZXRpbnN0YWxs OgotICAgIAlAJChjYWxsIHRhcmdldGluZm8pCi0KLSAgICAJQCQoY2FsbCBpbnN0YWxsX2luaXQs ICBmb28pCi0gICAgCUAkKGNhbGwgaW5zdGFsbF9maXh1cCwgZm9vLFBBQ0tBR0UsZm9vKQotICAg IAlAJChjYWxsIGluc3RhbGxfZml4dXAsIGZvbyxQUklPUklUWSxvcHRpb25hbCkKLSAgICAJQCQo Y2FsbCBpbnN0YWxsX2ZpeHVwLCBmb28sVkVSU0lPTiwkKEZPT19WRVJTSU9OKSkKLSAgICAJQCQo Y2FsbCBpbnN0YWxsX2ZpeHVwLCBmb28sU0VDVElPTixiYXNlKQotICAgIAlAJChjYWxsIGluc3Rh bGxfZml4dXAsIGZvbyxBVVRIT1IsIk15IE5hbWUgPG1lQG15LW9yZy5jb20+IikKLSAgICAJQCQo Y2FsbCBpbnN0YWxsX2ZpeHVwLCBmb28sREVQRU5EUywpCi0gICAgCUAkKGNhbGwgaW5zdGFsbF9m aXh1cCwgZm9vLERFU0NSSVBUSU9OLG1pc3NpbmcpCi0KLSAgICAJQCQoY2FsbCBpbnN0YWxsX2Nv cHksIGZvbywgMCwgMCwgMDc1NSwgJChGT09fRElSKS9mb29iYXIsIC9kZXYvbnVsbCkKLQotICAg IAlAJChjYWxsIGluc3RhbGxfZmluaXNoLCBmb28pCi0gICAgCUAkKGNhbGwgdG91Y2gpCi0KLVRo ZSDigJxoZWFkZXLigJ0gb2YgdGhpcyBzdGFnZSBkZWZpbmVzIHNvbWUgaW5mb3JtYXRpb24gSVBL RyBuZWVkcy4gVGhlCi1pbXBvcnRhbnQgcGFydCB0aGF0IHdlIG11c3QgbW9kaWZ5IGlzIHRoZSBj YWxsIHRvIHRoZSBgYGluc3RhbGxfY29weWBgCi1tYWNybyAocmVmZXIgdG8gc2VjdGlvbiA6cmVm OmByZWZlcmVuY2VfbWFjcm9zYCBmb3IgbW9yZSBkZXRhaWxzCi1hYm91dCB0aGlzIGtpbmQgb2Yg bWFjcm9zKS4gVGhpcyBjYWxsIGluc3RydWN0cyBQVFhkaXN0IHRvIGluY2x1ZGUgdGhlCi1naXZl biBmaWxlICh3aXRoIFVJRCwgR0lEIGFuZCBwZXJtaXNzaW9ucykgaW50byB0aGUgSVBLRywgd2hp Y2ggbWVhbnMgdG8KLWluc3RhbGwgdGhpcyBmaWxlIHRvIHRoZSB0YXJnZXTigJlzIHJvb3QgZmls ZXN5c3RlbS4KLQotRnJvbSB0aGUgcHJldmlvdXMgKmluc3RhbGwqIHN0YWdlIHdlIGtub3cgdGhp cyBwYWNrYWdlIGluc3RhbGxzIGFuCi1leGVjdXRhYmxlIGNhbGxlZCBgYGZvb2BgIHRvIGxvY2F0 aW9uIGBgL3Vzci9iaW5gYC4gV2UgY2FuIGRvIHRoZSBzYW1lCi1mb3Igb3VyIHRhcmdldCBieSBj aGFuZ2luZyB0aGUgKmluc3RhbGxcX2NvcHkqIGxpbmUgdG86Ci0KLS4uIGNvZGUtYmxvY2s6OiBu b25lCi0KLSAgICBAJChjYWxsIGluc3RhbGxfY29weSwgZm9vLCAwLCAwLCAwNzU1LCAkKEZPT19E SVIpL2ZvbywgL3Vzci9iaW4vZm9vKQotCi1UbyBjaGVjayBpdCwgd2UganVzdCBydW46Ci0KLS4u IGNvZGUtYmxvY2s6OiB0ZXh0Ci0KLSAgICAkIHB0eGRpc3QgdGFyZ2V0aW5zdGFsbCBmb28KLQot ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgdGFyZ2V0OiBmb28udGFyZ2V0 aW5zdGFsbAotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICBpbnN0YWxs X2luaXQ6ICAgcHJlcGFyaW5nIGZvciBpbWFnZSBjcmVhdGlvbi4uLgotICAgIGluc3RhbGxfaW5p dDogICBAQVJDSEAgLT4gaTM4NiAuLi4gZG9uZQotICAgIGluc3RhbGxfaW5pdDogICBwcmVpbnN0 IG5vdCBhdmFpbGFibGUKLSAgICBpbnN0YWxsX2luaXQ6ICAgcG9zdGluc3Qgbm90IGF2YWlsYWJs ZQotICAgIGluc3RhbGxfaW5pdDogICBwcmVybSBub3QgYXZhaWxhYmxlCi0gICAgaW5zdGFsbF9p bml0OiAgIHBvc3RybSBub3QgYXZhaWxhYmxlCi0gICAgaW5zdGFsbF9maXh1cDogIEBQQUNLQUdF QCAtPiBmb28gLi4uIGRvbmUuCi0gICAgaW5zdGFsbF9maXh1cDogIEBQUklPUklUWUAgLT4gb3B0 aW9uYWwgLi4uIGRvbmUuCi0gICAgaW5zdGFsbF9maXh1cDogIEBWRVJTSU9OQCAtPiAxLjEuMCAu Li4gZG9uZS4KLSAgICBpbnN0YWxsX2ZpeHVwOiAgQFNFQ1RJT05AIC0+IGJhc2UgLi4uIGRvbmUu Ci0gICAgaW5zdGFsbF9maXh1cDogIEBBVVRIT1JAIC0+ICJNeSBOYW1lIDxtZVxAbXktb3JnLmNv bT4iIC4uLiBkb25lLgotICAgIGluc3RhbGxfZml4dXA6ICBAREVTQ1JJUFRJT05AIC0+IG1pc3Np bmcgLi4uIGRvbmUuCi0gICAgaW5zdGFsbF9jb3B5OgotICAgICAgc3JjPS9ob21lL2piZS9teV9u ZXdfcHJqL2J1aWxkLXRhcmdldC9mb28tMS4xLjAvZm9vCi0gICAgICBkc3Q9L3Vzci9iaW4vZm9v Ci0gICAgICBvd25lcj0wCi0gICAgICBncm91cD0wCi0gICAgICBwZXJtaXNzaW9ucz0wNzU1Ci0g ICAgeHBrZ19maW5pc2g6ICAgIGNvbGxlY3RpbmcgbGljZW5zZSAodW5rbm93bikgLi4uIGRvbmUu Ci0gICAgeHBrZ19maW5pc2g6ICAgIGNyZWF0aW5nIGlwa2cgcGFja2FnZSAuLi4gZG9uZS4KLSAg ICBmaW5pc2hlZCB0YXJnZXQgZm9vLnRhcmdldGluc3RhbGwKLQotICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICB0YXJnZXQ6IGZvby50YXJnZXRpbnN0YWxsLnBvc3QK LSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICBmaW5pc2hlZCB0 YXJnZXQgZm9vLnRhcmdldGluc3RhbGwucG9zdAotCi1BZnRlciB0aGlzIGNvbW1hbmQsIHRoZSB0 YXJnZXTigJlzIHJvb3QgZmlsZXN5c3RlbSBjb250YWlucyBhIGZpbGUgY2FsbGVkCi1gYC91c3Iv YmluL2Zvb2BgIG93bmVkIGJ5IHJvb3QsIGl0cyBncm91cCBpcyBhbHNvIHJvb3QgYW5kIGV2ZXJ5 b25lIGhhcwotZXhlY3V0aW9uIHBlcm1pc3Npb25zLCBidXQgb25seSB0aGUgdXNlciByb290IGhh cyB3cml0ZSBwZXJtaXNzaW9ucy4KLQotT25lIGxhc3QgdGFzayBvZiB0aGlzIHBvcnQgaXMgc3Rp bGwgb3BlbjogQSByZWFzb25hYmxlIGxvY2F0aW9uIGZvcgotdGhlIG5ldyBtZW51IGVudHJ5IGlu IFBUWGRpc3TigJlzIG1lbnUgaGllcmFyY2h5LiBQVFhkaXN0IGFycmFuZ2VzIGl0cwotbWVudXMg b24gdGhlIG1lYW5pbmcgb2YgZWFjaCBwYWNrYWdlLiBJcyBpdCBhIG5ldHdvcmsgcmVsYXRlZCB0 b29sPyBPcgotYSBzY3JpcHRpbmcgbGFuZ3VhZ2U/IE9yIGEgZ3JhcGhpY2FsIGFwcGxpY2F0aW9u PwotRWFjaCBvZiB0aGVzZSBnbG9iYWwgbWVhbmluZ3MgaGFzIGl0cyBvd24gc3VibWVudSwgd2hl cmUgd2UgY2FuIGFkZAotb3VyIG5ldyBlbnRyeSB0by4gV2UganVzdCBoYXZlIHRvIGVkaXQgdGhl IGhlYWQgb2Ygb3VyIG5ldyBtZW51IGZpbGUKLWBgLi9ydWxlcy9mb28uaW5gYCB0byBhZGQgaXQg dG8gYSBzcGVjaWZpYyBnbG9iYWwgbWVudS4gSWYgb3VyIG5ldwotcGFja2FnZSBpcyBhIG5ldHdv cmsgcmVsYXRlZCB0b29sLCB0aGUgaGVhZCBvZiB0aGUgbWVudSBmaWxlIHNob3VsZAotbG9vayBs aWtlOgotCi0uLiBjb2RlLWJsb2NrOjoga2NvbmZpZwotCi0gICAgIyMgU0VDVElPTj1uZXR3b3Jr aW5nCi0KLVdlIGNhbiBncmVwIHRocm91Z2ggdGhlIG90aGVyIG1lbnUgZmlsZXMgZnJvbSB0aGUg UFRYZGlzdCBtYWluCi1pbnN0YWxsYXRpb24gYGBydWxlcy9gYCBkaXJlY3RvcnkgdG8gZ2V0IGFu IGlkZWEgd2hhdCBzZWN0aW9uIG5hbWVzIGFyZQotYXZhaWxhYmxlOgotCi0uLiBjb2RlLWJsb2Nr OjogdGV4dAotCi0gICAgcnVsZXMvICQgZmluZCAuIC1uYW1lIFwqLmluIHwgeGFyZ3MgZ3JlcCAi IyMgU0VDVElPTiIKLSAgICAuL2FjcGlkLmluOiMjIFNFQ1RJT049c2hlbGxfYW5kX2NvbnNvbGUK LSAgICAuL2Fsc2EtbGliLmluOiMjIFNFQ1RJT049c3lzdGVtX2xpYnJhcmllcwotICAgIC4vYWxz YS11dGlscy5pbjojIyBTRUNUSU9OPW11bHRpbWVkaWFfc291bmQKLSAgICAuL2FwYWNoZTIuaW46 IyMgU0VDVElPTj1uZXR3b3JraW5nCi0gICAgLi9hcGFjaGUyX21vZF9weXRob24uaW46IyMgU0VD VElPTj1uZXR3b3JraW5nCi0gICAgWy4uLl0KLSAgICAuL3hrZXlib2FyZC1jb25maWcuaW46IyMg U0VDVElPTj1tdWx0aW1lZGlhX3hvcmdfZGF0YQotICAgIC4veG9yZy1hcHAteGV2LmluOiMjIFNF Q1RJT049bXVsdGltZWRpYV94b3JnX2FwcAotICAgIC4veG9yZy1hcHAteHJhbmRyLmluOiMjIFNF Q1RJT049bXVsdGltZWRpYV94b3JnX2FwcAotICAgIC4vaG9zdC1lZ2dkYnVzLmluOiMjIFNFQ1RJ T049aG9zdHRvb2xzX25vcHJvbXB0Ci0gICAgLi9saWJzc2gyLmluOiMjIFNFQ1RJT049bmV0d29y a2luZwotCi1Qb3J0aW5nIGEgbmV3IHBhY2thZ2UgdG8gUFRYZGlzdCBpcyAoYWxtb3N0KSBmaW5p c2hlZCBub3cuCi0KLVRvIGNoZWNrIGl0IHJpZ2h0IGF3YXksIHdlIHNpbXBseSBydW4gdGhlc2Ug dHdvIGNvbW1hbmRzOgotCi0uLiBjb2RlLWJsb2NrOjogdGV4dAotCi0gICAgJCBwdHhkaXN0IGNs ZWFuIGZvbwotICAgIHJtIC1yZiAvaG9tZS9qYmUvbXlfbmV3X3Byai9zdGF0ZS9mb28uKgotICAg IHJtIC1yZiAvaG9tZS9qYmUvbXlfbmV3X3Byai9wYWNrYWdlcy9mb29fKgotICAgIHJtIC1yZiAv aG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wCi0gICAgJCBwdHhkaXN0 IHRhcmdldGluc3RhbGwgZm9vCi0KLSAgICBbLi4uXQotCi0uLiBpbXBvcnRhbnQ6OiBEaXNjb3Zl ciBzb21laG93IGhpZGRlbiBkZXBlbmRlbmNpZXMgd2l0aCBvbmUgbW9yZSBsYXN0IGNoZWNrIQot Ci1VcCB0byB0aGlzIHBvaW50IGFsbCB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhlIG5ldyBwYWNrYWdl IHdhcyBkb25lIGluIGFuIGFscmVhZHkKLWJ1aWx0IEJTUC4gRG9pbmcgc28gc29tZXRpbWVzIHNv bWVob3cgaGlkZGVuIGRlcGVuZGVuY2llcyBjYW5ub3QgYmUgc2VlbjoKLWV2ZXJ5dGhpbmcgc2Vl bXMgZmluZSwgdGhlIG5ldyBwYWNrYWdlIGJ1aWxkcyBhbHdheXMgc3VjY2Vzc2Z1bGx5IGFuZCB0 aGUKLXJlc3VsdHMgYXJlIHdvcmtpbmcgb24gdGhlIHRhcmdldC4KLQotU28gdG8gY2hlY2sgZm9y IHRoaXMga2luZCBvZiBkZXBlbmRlbmNpZXMgdGhlcmUgaXMgc3RpbGwgb25lIG1vcmUgZmluYWwg Y2hlY2sKLXRvIGRvIChldmVuIGlmIGl0cyBib3JpbmcgYW5kIHRha2VzIHRpbWUpOgotCi0uLiBj b2RlLWJsb2NrOjogdGV4dAotCi0gICAgJCBwdHhkaXN0IGNsZWFuCi0gICAgWy4uLl0KLSAgICAk IHB0eGRpc3QgdGFyZ2V0aW5zdGFsbCBmb28KLSAgICBbLi4uXQotCi1UaGlzIHdpbGwgcmUtc3Rh cnQgd2l0aCBhICoqY2xlYW4qKiBCU1AgYW5kIGJ1aWxkcyBleGFjdGx5IHRoZSBuZXcgcGFja2Fn ZSBhbmQKLWl0cyAoa25vd24pIGRlcGVuZGVuY2llcy4gSWYgdGhpcyBidWlsZHMgc3VjY2Vzc2Z1 bGx5IGFzIHdlbGwgd2UgYXJlIHJlYWxseSBkb25lCi13aXRoIHRoZSBuZXcgcGFja2FnZS4KLQot U29tZSBOb3RlcyBhYm91dCBMaWNlbnNlcwotfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCi1U aGUgYWxyZWFkeSBtZW50aW9uZWQgcnVsZSB2YXJpYWJsZSBgYCpfTElDRU5TRWBgIChlLmcuIGBg Rk9PX0xJQ0VOU0VgYCBpbiBvdXIKLWV4YW1wbGUpIGlzIHZlcnkgaW1wb3J0YW50IGFuZCBtdXN0 IGJlIGZpbGxlZCBieSB0aGUgZGV2ZWxvcGVyIG9mIHRoZSBwYWNrYWdlLgotTWFueSBsaWNlbnNl cyBicmluZyBpbiBvYmxpZ2F0aW9ucyB1c2luZyB0aGUgY29ycmVzcG9uZGluZyBwYWNrYWdlICgq YXR0cmlidXRpb24qCi1mb3IgZXhhbXBsZSkuIFRvIG1ha2UgbGlmZSBlYXNpZXIgZm9yIGV2ZXJ5 Ym9keSB0aGUgbGljZW5zZSBmb3IgYSBwYWNrYWdlIG11c3QKLWJlIHByb3ZpZGVkLiAqU1BEWCog bGljZW5zZSBpZGVudGlmaWVycyB1bmlmeSB0aGUgbGljZW5zZSBuYW1lcyBhbmQgYXJlIHVzZWQK LWluIFBUWGRpc3QgdG8gaWRlbnRpZnkgbGljZW5zZSB0eXBlcyBhbmQgb2JsaWdhdGlvbnMuCi0K LUlmIGEgcGFja2FnZSBjb21lcyB3aXRoIG1vcmUgdGhhbiBvbmUgbGljZW5zZSwgYWxsIG9mIHRo ZWlyIFNQRFggaWRlbnRpZmllcnMKLW11c3QgYmUgbGlzdGVkIGFuZCBjb25uZWN0ZWQgd2l0aCB0 aGUga2V5d29yZCBgYEFORGBgLiBJZiB5b3VyIHBhY2thZ2UgY29tZXMKLXdpdGggR1BMLTIuMCBh bmQgTEdQTC0yLjEgbGljZW5zZXMsIHRoZSBkZWZpbml0aW9uIHNob3VsZCBsb29rIGxpa2UgdGhp czoKLQotLi4gY29kZS1ibG9jazo6IG1ha2UKLQotICAgRk9PX0xJQ0VOU0UgOj0gR1BMLTIuMCBB TkQgTEdQTC0yLjEKLQotT25lIHNwZWNpZmljIG9ibGlnYXRpb24gY2Fubm90IGJlIGRldGVjdGVk IGV4YW1pbmluZyB0aGUgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXJzCi1ieSBQVFhkaXN0OiAqdGhl IGxpY2Vuc2UgY2hvaWNlKi4gSW4gdGhpcyBjYXNlIGFsbCBsaWNlbnNlcyBvZiBjaG9pY2UgbXVz dCBiZQotbGlzdGVkIGFuZCBjb25uZWN0ZWQgYnkgdGhlIGtleXdvcmQgYGBPUmBgLgotCi1JZiwg Zm9yIGV4YW1wbGUsIHlvdXIgb2JsaWdhdGlvbiBpcyB0byBzZWxlY3Qgb25lIG9mIHRoZSBsaWNl bnNlcyAqR1BMLTIuMCogKipvcioqCi0qR1BMLTMuMCosIHRoZSBgYCpfTElDRU5TRWBgIHZhcmlh YmxlIHNob3VsZCBsb29rIGxpa2UgdGhpczoKLQotLi4gY29kZS1ibG9jazo6IG1ha2UKLQotICAg Rk9PX0xJQ0VOU0UgOj0gR1BMLTIuMCBPUiBHUEwtMy4wCi0KLVNQRFggTGljZW5zZSBJZGVudGlm aWVycwotXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCi0KLUEgbGlzdCBvZiBTUERYIGxpY2Vuc2Ug aWRlbnRpZmllcnMgY2FuIGJlIGZvdW5kIGhlcmU6Ci0KLSAgIGh0dHBzOi8vc3BkeC5vcmcvbGlj ZW5zZXMvCi0KLUhlbHAgdG8gRGV0ZWN0IHRoZSBDb3JyZWN0IExpY2Vuc2UKLV5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KLQotTGljZW5zZSBpZGVudGlmaWNhdGlvbiBpc24ndCB0 cml2aWFsLiBBIGhlbHAgaW4gZG9pbmcgc28gY2FuIGJlIHRoZSBmb2xsb3dpbmcKLXJlcG9zaXRv cnkgYW5kIGl0cyBjb250ZW50LiBJdCBjb250YWlucyBhIGxpc3Qgb2Yga25vd24gbGljZW5zZXMg YmFzZWQgb24gdGhlaXIKLVNQRFggaWRlbnRpZmllci4gVGhlIGNvbnRlbnQgaXMgd2l0aG91dCBm b3JtYXR0aW5nIHRvIHNpbXBsaWZ5IHRleHQgc2VhcmNoLgotCi0gICBodHRwczovL2dpdGh1Yi5j b20vc3BkeC9saWNlbnNlLWxpc3QtZGF0YS90cmVlL21hc3Rlci90ZXh0Ci0KLUFkdmFuY2VkIFJ1 bGUgRmlsZXMKLX5+fn5+fn5+fn5+fn5+fn5+fn4KLQotVGhlIHByZXZpb3VzIGV4YW1wbGUgb24g aG93IHRvIGNyZWF0ZSBhIHJ1bGUgZmlsZSBzb21ldGltZXMgd29ya3MgYXMKLXNob3duIGFib3Zl LiBCdXQgbW9zdCBvZiB0aGUgdGltZSBzb3VyY2UgYXJjaGl2ZXMgYXJlIG5vdCB0aGF0IHNpbXBs ZS4KLUluIHRoaXMgc2VjdGlvbiB3ZSB3YW50IHRvIGdpdmUgdGhlIHVzZXIgYSBtb3JlIGRldGFp bGVkIHNlbGVjdGlvbiBob3cKLXRoZSBwYWNrYWdlIHdpbGwgYmUgYnVpbHQuCi0KLUFkZGluZyBT dGF0aWMgQ29uZmlndXJlIFBhcmFtZXRlcnMKLV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl4KLQotVGhlIGBgY29uZmlndXJlYGAgc2NyaXB0cyBvZiB2YXJpb3VzIHNvdXJjZSBhcmNo aXZlcyBwcm92aWRlIGFkZGl0aW9uYWwKLXBhcmFtZXRlcnMgdG8gZW5hYmxlIG9yIGRpc2FibGUg ZmVhdHVyZXMsIG9yIHRvIGNvbmZpZ3VyZSB0aGVtIGluIGEKLXNwZWNpZmljIHdheS4KLQotV2Ug YXNzdW1lIHRoZSBgYGNvbmZpZ3VyZWBgIHNjcmlwdCBvZiBvdXIgYGBmb29gYCBleGFtcGxlIChy ZWZlciB0bwotc2VjdGlvbiA6cmVmOmBmb29fZXhhbXBsZWApIHN1cHBvcnRzIHR3byBhZGRpdGlv bmFsIHBhcmFtZXRlcnM6Ci0KLS0gICoqLS1lbmFibGUtZGVidWcqKjogTWFrZSB0aGUgcHJvZ3Jh bSBtb3JlIG5vaXN5LiBJdOKAmXMgZGlzYWJsZWQgYnkKLSAgIGRlZmF1bHQuCi0KLS0gICoqLS13 aXRoLWJhcioqOiBBbHNvIGJ1aWxkIHRoZSBzcGVjaWFsIGV4ZWN1dGFibGUgKipiYXIqKi4gQnVp bGRpbmcKLSAgIHRoaXMgZXhlY3V0YWJsZSBpcyBhbHNvIGRpc2FibGVkIGJ5IGRlZmF1bHQuCi0K LVdlIG5vdyB3YW50IHRvIGZvcndhcmQgdGhlc2Ugb3B0aW9ucyB0byB0aGUgYGBjb25maWd1cmVg YCBzY3JpcHQgd2hlbiBpdAotcnVucyBpbiB0aGUgKnByZXBhcmUqIHN0YWdlLiBUbyBkbyBzbywg d2UgbXVzdCBhZ2FpbiBvcGVuIHRoZSBydWxlIGZpbGUKLXdpdGggb3VyIGZhdm91cml0ZSBlZGl0 b3IgYW5kIG5hdmlnYXRlIHRvIHRoZSAqcHJlcGFyZSogc3RhZ2UgZW50cnkuCi0KLVBUWGRpc3Qg dXNlcyB0aGUgdmFyaWFibGUgYGBGT09fQ09ORl9PUFRgYCBhcyB0aGUgbGlzdCBvZiBwYXJhbWV0 ZXJzIHRvCi1iZSBnaXZlbiB0byBgYGNvbmZpZ3VyZWBgLgotCi1DdXJyZW50bHkgdGhpcyB2YXJp YWJsZSBpcyBjb21tZW50ZWQgb3V0IGFuZCBkZWZpbmVkIHRvOgotCi0uLiBjb2RlLWJsb2NrOjog bWFrZQotCi0gICAgIyBGT09fQ09ORl9PUFQgOj0gJChDUk9TU19BVVRPQ09ORl9VU1IpCi0KLVRo ZSB2YXJpYWJsZSBgYENST1NTX0FVVE9DT05GX1VTUmBgIGlzIHByZWRlZmluZWQgYnkgUFRYZGlz dCBhbmQKLWNvbnRhaW5zIGFsbCBiYXNpYyBwYXJhbWV0ZXJzIHRvIGluc3RydWN0IGBgY29uZmln dXJlYGAgdG8gcHJlcGFyZSBmb3IgYQotKipjcm9zcyoqIGNvbXBpbGUgZW52aXJvbm1lbnQuCi0K LVRvIHVzZSB0aGUgdHdvIGFkZGl0aW9uYWwgbWVudGlvbmVkIGBgY29uZmlndXJlYGAgcGFyYW1l dGVycywgd2UgY29tbWVudAotaW4gdGhpcyBsaW5lIGFuZCBzdXBwbGVtZW50IHRoaXMgZXhwcmVz c2lvbiBhcyBmb2xsb3dzOgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQotCi0gICAgRk9PX0NPTkZf T1BUIDo9IFwKLSAgICAgICAgJChDUk9TU19BVVRPQ09ORl9VU1IpIFwKLSAgICAgICAgLS1lbmFi bGUtZGVidWcgXAotICAgICAgICAtLXdpdGgtYmFyCi0KLS4uIG5vdGU6OiBXZSByZWNvbW1lbmQg dG8gdXNlIHRoaXMgZm9ybWF0IHdpdGggZWFjaCBwYXJhbWV0ZXIgb24gYSBsaW5lIG9mCi0gaXRz IG93bi4gVGhpcyBmb3JtYXQgaXMgZWFzaWVyIHRvIHJlYWQgYW5kIGEgZGlmZiBzaG93cyBtb3Jl IGV4YWN0bHkgYW55Ci0gY2hhbmdlLgotCi1UbyBkbyBhIGZhc3QgY2hlY2sgaWYgdGhpcyBhZGRp dGlvbiB3YXMgc3VjY2Vzc2Z1bCwgd2UgcnVuOgotCi0uLiBjb2RlLWJsb2NrOjogdGV4dAotCi0g ICAgJCBwdHhkaXN0IHByaW50IEZPT19DT05GX09QVAotICAgIC0tcHJlZml4PS91c3IgLS1zeXNj b25mZGlyPS9ldGMgLS1ob3N0PXxwdHhkaXN0Q29tcGlsZXJOYW1lfCAtLWJ1aWxkPWk2ODYtaG9z dC1saW51eC1nbnUgLS1lbmFibGUtZGVidWcgLS13aXRoLWJhcgotCi0uLiBub3RlOjogSXQgZGVw ZW5kcyBvbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHBsYXRmb3JtIGFuZCBpdHMgYXJjaGl0ZWN0 dXJlCi0gd2hhdCBjb250ZW50IHRoaXMgdmFyaWFibGUgd2lsbCBoYXZlLiBUaGUgY29udGVudCBz aG93biBhYm92ZSBpcyBhbgotIGV4YW1wbGUgZm9yIGEgdGFyZ2V0LgotCi1PciByZS1idWlsZCB0 aGUgcGFja2FnZSB3aXRoIHRoZSBuZXcgc2V0dGluZ3M6Ci0KLS4uIGNvZGUtYmxvY2s6OiB0ZXh0 Ci0KLSAgICAkIHB0eGRpc3QgZHJvcCBmb28gcHJlcGFyZQotICAgICQgcHR4ZGlzdCB0YXJnZXRp bnN0YWxsIGZvbwotCi1BZGRpbmcgRHluYW1pYyBDb25maWd1cmUgUGFyYW1ldGVycwotXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KLQotU29tZXRpbWVzIGl0IG1ha2VzIHNlbnNl IHRvIGFkZCB0aGlzIGtpbmQgb2YgcGFyYW1ldGVycyBvbiBkZW1hbmQgb25seTsKLWVzcGVjaWFs bHkgYSBwYXJhbWV0ZXIgbGlrZSBgYC0tZW5hYmxlLWRlYnVnYGAuIFRvIGxldCB0aGUgdXNlciBk ZWNpZGUKLWlmIHRoaXMgcGFyYW1ldGVyIGlzIHRvIGJlIHVzZWQgb3Igbm90LCB3ZSBtdXN0IGFk ZCBhIG1lbnUgZW50cnkuIFNvLAotbGV04oCZcyBleHBhbmQgb3VyIG1lbnUuIEhlcmUgaXMgaXRz IGN1cnJlbnQgY29udGVudDoKLQotLi4gY29kZS1ibG9jazo6IGtjb25maWcKLQotICAgICMjIFNF Q1RJT049cHJvamVjdF9zcGVjaWZpYwotCi0gICAgY29uZmlnIEZPTwotICAgICAgICAgICAgdHJp c3RhdGUKLSAgICAgICAgICAgIHByb21wdCAiZm9vIgotICAgICAgICAgICAgaGVscAotICAgICAg ICAgICAgICBGSVhNRQotCi1XZeKAmWxsIGFkZCB0d28gbWVudSBlbnRyaWVzLCBvbmUgZm9yIGVh Y2ggb3B0aW9uYWwgcGFyYW1ldGVyIHdlIHdhbnQgdG8KLWFkZCBvbiBkZW1hbmQgdG8gdGhlIGBg Y29uZmlndXJlYGAgcGFyYW1ldGVyczoKLQotLi4gY29kZS1ibG9jazo6IGtjb25maWcKLQotICAg ICMjIFNFQ1RJT049cHJvamVjdF9zcGVjaWZpYwotCi0gICAgY29uZmlnIEZPTwotICAgICAgICAg ICB0cmlzdGF0ZQotICAgICAgICAgICBwcm9tcHQgImZvbyIKLSAgICAgICAgICAgaGVscAotICAg ICAgICAgICAgIEZJWE1FCi0KLSAgICBpZiBGT08KLSAgICBjb25maWcgRk9PX0RFQlVHCi0gICAg ICAgICAgIGJvb2wKLSAgICAgICAgICAgcHJvbXB0ICJhZGQgZGVidWcgbm9pc2UiCi0KLSAgICBj b25maWcgRk9PX0JBUgotICAgICAgICAgICBib29sCi0gICAgICAgICAgIHByb21wdCAiYnVpbGQg YmFyIgotCi0gICAgZW5kaWYKLQotLi4gaW1wb3J0YW50OjogQWx3YXlzIGZvbGxvdyB0aGUgcnVs ZSB0byBleHRlbmQgdGhlIGJhc2UgbmFtZSBieSBhIHN1Ym9wdGlvbgotICBuYW1lIGFzIHRoZSB0 cmFpbGluZyBwYXJ0IG9mIHRoZSB2YXJpYWJsZSBuYW1lLiBUaGlzIGdpdmVzIFBUWGRpc3QgdGhl IGFiaWxpdHkKLSAgdG8gZGV0ZWN0IGEgY2hhbmdlIGluIHRoZSBwYWNrYWdl4oCZcyBzZXR0aW5n cyAodmlhIG1lbnVjb25maWcpIHRvIGZvcmNlIGl0cwotICByZWJ1aWxkIG9uIGRlbWFuZC4KLQot VG8gbWFrZSB1c2FnZSBvZiB0aGUgbmV3IG1lbnUgZW50cmllcywgd2UgbXVzdCBjaGVjayB0aGVt IGluIHRoZSBydWxlCi1maWxlIGFuZCBhZGQgdGhlIGNvcnJlY3QgcGFyYW1ldGVyczoKLQotLi4g Y29kZS1ibG9jazo6IG1ha2UKLQotICAgICMKLSAgICAjIGF1dG9jb25mCi0gICAgIwotICAgIEZP T19DT05GX09QVCA6PSBcCi0gICAgICAgICQoQ1JPU1NfQVVUT0NPTkZfVVNSKSBcCi0gICAgICAg IC0tJChjYWxsIHB0eC9lbmRpcywgUFRYQ09ORl9GT09fREVCVUcpLWRlYnVnIFwKLSAgICAgICAg LS0kKGNhbGwgcHR4L3d3bywgUFRYQ09ORl9GT09fQkFSKS1iYXIKLQotLi4gaW1wb3J0YW50Ojog UGxlYXNlIG5vdGUgdGhlIGxlYWRpbmcgYGBQVFhDT05GX2BgIGZvciBlYWNoIGRlZmluZS4gV2hp bGUgS2NvbmZpZyBpcwotICB1c2luZyBgYEZPT19CQVJgYCwgdGhlIHJ1bGUgZmlsZSBtdXN0IHVz ZSBgYFBUWENPTkZfRk9PX0JBUmBgIGluc3RlYWQuCi0KLS4uIG5vdGU6OiBSZWZlciA6cmVmOmBS dWxlIEZpbGUgTWFjcm8gUmVmZXJlbmNlIDxwYXJhbV9tYWNyb3M+YCBmb3IgZnVydGhlcgotICAg ZGV0YWlscyBhYm91dCB0aGVzZSBzcGVjaWFsIGtpbmQgb2Ygb3B0aW9uIG1hY3JvcyAoZS5nLiBg YHB0eC8uLi5gYCkuCi0KLUl0IGlzIGEgZ29vZCBwcmFjdGljZSB0byBhbHdheXMgYWRkIGJvdGgg c2V0dGluZ3MsIGUuZy4gYGAtLWRpc2FibGUtZGVidWdgYAotZXZlbiBpZiB0aGlzIGlzIHRoZSBk ZWZhdWx0IGNhc2UuIFNvbWV0aW1lcyBgYGNvbmZpZ3VyZWBgIHRyaWVzIHRvIGd1ZXNzCi1zb21l dGhpbmcgYW5kIHRoZSBiaW5hcnkgcmVzdWx0IG1pZ2h0IGRpZmZlciBkZXBlbmRpbmcgb24gdGhl IGJ1aWxkCi1vcmRlci4gRm9yIGV4YW1wbGUgc29tZSBraW5kIG9mIHBhY2thZ2Ugd291bGQgYWxz byBidWlsZCBzb21lIFggcmVsYXRlZAotdG9vbHMsIGlmIFggbGlicmFyaWVzIGFyZSBmb3VuZC4g SW4gdGhpcyBjYXNlIGl0IGRlcGVuZHMgb24gdGhlIGJ1aWxkCi1vcmRlciwgaWYgdGhlIFggcmVs YXRlZCB0b29scyBhcmUgYnVpbHQgb3Igbm90LiBBbGwgdGhlIGF1dG9jaGVjawotZmVhdHVyZXMg YXJlIHByb2JsZW1hdGljIGhlcmUuIFNvLCBpZiB3ZSBkbyBub3Qgd2FudCBgYGNvbmZpZ3VyZWBg IHRvCi1ndWVzcyBpdHMgc2V0dGluZ3Mgd2UgKiptdXN0IGRpc2FibGUgZXZlcnl0aGluZyB3ZSBk byBub3Qgd2FudCoqLgotCi1UbyBzdXBwb3J0IHRoaXMgcHJvY2VzcywgUFRYZGlzdCBzdXBwbGll cyBhIGhlbHBlciBzY3JpcHQsIGxvY2F0ZWQgYXQKLWBgL3BhdGgvdG8vcHR4ZGlzdC9zY3JpcHRz L2NvbmZpZ3VyZS1oZWxwZXIucHlgYCB0aGF0IGNvbXBhcmVzIHRoZSBjb25maWd1cmUKLW91dHB1 dCB3aXRoIHRoZSBzZXR0aW5ncyBmcm9tIGBgRk9PX0NPTkZfT1BUYGA6Ci0KLS4uIGNvZGUtYmxv Y2s6OiB0ZXh0Ci0KLSAgICAkIC9vcHQvcHR4ZGlzdC0yMDE3LjA2LjAvc2NyaXB0cy9jb25maWd1 cmUtaGVscGVyLnB5IC1wIGxpYnNpZ3JvawotICAgIC0tLSBydWxlcy9saWJzaWdyb2subWFrZQot ICAgICsrKyBsaWJzaWdyb2stMC41LjAKLSAgICBAQCAtNCwzICs0LDc0IEBACi0gICAgIAktLWxp YmRpcj0vdXNyL2xpYgotICAgICAJLS1idWlsZD14ODZfNjQtaG9zdC1saW51eC1nbnUKLSAgICAg CS0taG9zdD1hcm0tdjdhLWxpbnV4LWdudWVhYmloZgotICAgICsJLS1lbmFibGUtd2FybmluZ3M9 bWlufG1heHxmYXRhbHxubwotICAgICsJLS1kaXNhYmxlLWxhcmdlZmlsZQotICAgICsJLS1lbmFi bGUtYWxsLWRyaXZlcnMKLSAgICArCS0tZW5hYmxlLWFnaWxlbnQtZG1tCi0gICAgWy4uLl0KLSAg ICArCS0tZW5hYmxlLXJ1YnkKLSAgICArCS0tZW5hYmxlLWphdmEKLSAgICArCS0td2l0aG91dC1s aWJzZXJpYWxwb3J0Ci0gICAgKwktLXdpdGhvdXQtbGliZnRkaQotICAgICsJLS13aXRob3V0LWxp YnVzYgotICAgICsJLS13aXRob3V0LWxpYnJldmlzYQotICAgICsJLS13aXRob3V0LWxpYmdwaWIK LSAgICArCS0td2l0aG91dC1saWJpZWVlMTI4NAotICAgICsJLS13aXRoLWpuaS1pbmNsdWRlLXBh dGg9RElSLUxJU1QKLQotSW4gdGhpcyBleGFtcGxlLCBtYW55IGNvbmZpZ3VyZSBvcHRpb25zIGZy b20gbGlic2lncm9rIChtYXJrZWQgd2l0aCBgYCtgYCkKLWFyZSBub3QgeWV0IHByZXNlbnQgaW4g YGBMSUJTSUdST0tfQ09ORl9PUFRgYCBhbmQgbXVzdCBiZSBhZGRlZCwgcG9zc2libHkgYWxzbwot YnkgcHJvdmlkaW5nIG1vcmUgZHluYW1pYyBvcHRpb25zIGluIHRoZSBwYWNrYWdlIGRlZmluaXRp b24uCi0KLUlmIHNvbWUgcGFydHMgb2YgYSBwYWNrYWdlIGFyZSBidWlsdCBvbiBkZW1hbmQgb25s eSwgdGhleSBtdXN0IGFsc28gYmUKLWluc3RhbGxlZCBvbiBkZW1hbmQgb25seS4gQmVzaWRlcyB0 aGUgKnByZXBhcmUqIHN0YWdlLCB3ZSBhbHNvIG11c3QKLW1vZGlmeSBvdXIgKnRhcmdldGluc3Rh bGwqIHN0YWdlOgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQotCi0gICAgCUAkKGNhbGwgaW5zdGFs bF9jb3B5LCBmb28sIDAsIDAsIDA3NTUsICQoRk9PX0RJUikvZm9vLCAvdXNyL2Jpbi9mb28pCi0K LSAgICBpZmRlZiBQVFhDT05GX0ZPT19CQVIKLSAgICAJQCQoY2FsbCBpbnN0YWxsX2NvcHksIGZv bywgMCwgMCwgMDc1NSwgJChGT09fRElSKS9iYXIsIC91c3IvYmluL2JhcikKLSAgICBlbmRpZgot Ci0gICAgCUAkKGNhbGwgaW5zdGFsbF9maW5pc2gsIGZvbykKLSAgICAJQCQoY2FsbCB0b3VjaCkK LQotTm93IHdlIGNhbiBwbGF5IHdpdGggb3VyIG5ldyBtZW51IGVudHJpZXMgYW5kIGNoZWNrIGlm IHRoZXkgYXJlIHdvcmtpbmcKLWFzIGV4cGVjdGVkOgotCi0uLiBjb2RlLWJsb2NrOjogdGV4dAot Ci0gICAgJCBwdHhkaXN0IG1lbnVjb25maWcKLSAgICAkIHB0eGRpc3QgdGFyZ2V0aW5zdGFsbCBm b28KLQotV2hlbmV2ZXIgd2UgY2hhbmdlIGEgKkZPTyogcmVsYXRlZCBtZW51IGVudHJ5LCBQVFhk aXN0IHNob3VsZCBkZXRlY3QgaXQKLWFuZCByZS1idWlsZCB0aGUgcGFja2FnZSB3aGVuIGEgbmV3 IGJ1aWxkIGlzIHN0YXJ0ZWQuCi0KLS4uIF9leHRlcm5hbF9kZXBlbmRlbmNpZXM6Ci0KLU1hbmFn aW5nIEV4dGVybmFsIENvbXBpbGUgVGltZSBEZXBlbmRlbmNpZXMKLV5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KLQotV2hpbGUgcnVubmluZyB0aGUgcHJlcGFyZSBz dGFnZSwgaXQgY291bGQgaGFwcGVuIHRoYXQgaXQgZmFpbHMgZHVlIHRvIGEKLW1pc3NpbmcgZXh0 ZXJuYWwgZGVwZW5kZW5jeS4KLQotRm9yIGV4YW1wbGU6Ci0KLS4uIGNvZGUtYmxvY2s6OiB0ZXh0 Ci0KLSAgICBjaGVja2luZyB3aGV0aGVyIHpsaWIgZXhpc3RzLi4uLmZhaWxlZAotCi1JbiB0aGlz IGV4YW1wbGUsIG91ciBuZXcgcGFja2FnZSBkZXBlbmRzIG9uIHRoZSBjb21wcmVzc2lvbiBsaWJy YXJ5Ci0qemxpYiouIFBUWGRpc3QgY29tZXMgd2l0aCBhIHRhcmdldCAqemxpYiouIEFsbCB3ZSBu ZWVkIHRvIGRvIGluIHRoaXMKLWNhc2UgaXMgdG8gZGVjbGFyZSB0aGF0IG91ciBuZXcgcGFja2Fn ZSAqZm9vKiBkZXBlbmRzIG9uICp6bGliKi4gVGhpcwota2luZCBvZiBkZXBlbmRlbmN5IGlzIG1h bmFnZWQgaW4gdGhlIG1lbnUgZmlsZSBvZiBvdXIgbmV3IHBhY2thZ2UgYnkKLXNpbXBseSBhZGRp bmcgdGhlIGBgc2VsZWN0IFpMSUJgYCBsaW5lLiBBZnRlciB0aGlzIGFkZGl0aW9uIG91ciBtZW51 Ci1maWxlIGxvb2tzIGxpa2U6Ci0KLS4uIGNvZGUtYmxvY2s6OiBrY29uZmlnCi0KLSAgICAjIyBT RUNUSU9OPXByb2plY3Rfc3BlY2lmaWMKLQotICAgIGNvbmZpZyBGT08KLSAgICAgICAgICAgdHJp c3RhdGUKLSAgICAgICAgICAgc2VsZWN0IFpMSUIKLSAgICAgICAgICAgcHJvbXB0ICJmb28iCi0g ICAgICAgICAgIGhlbHAKLSAgICAgICAgICAgICBGSVhNRQotCi0gICAgaWYgRk9PCi0gICAgY29u ZmlnIEZPT19ERUJVRwotICAgICAgICAgICBib29sCi0gICAgICAgICAgIHByb21wdCAiYWRkIGRl YnVnIG5vaXNlIgotCi0gICAgY29uZmlnIEZPT19CQVIKLSAgICAgICAgICAgYm9vbAotICAgICAg ICAgICBwcm9tcHQgImJ1aWxkIGJhciIKLQotICAgIGVuZGlmCi0KLVBUWGRpc3Qgbm93IGJ1aWxk cyB0aGUgKnpsaWIqIGZpcnN0IGFuZCBvdXIgbmV3IHBhY2thZ2UgdGhlcmVhZnRlci4KLQotUmVm ZXIgOnJlZjpgZXh0ZXJuYWxfZGVwZW5kZW5jaWVzX3ZhcmlhbnRzYCBmb3IgbW9yZSBzcGVjaWZp YyBkZXBlbmRlbmN5Ci1kZXNjcmlwdGlvbi4KLQotTWFuYWdpbmcgRXh0ZXJuYWwgQ29tcGlsZSBU aW1lIERlcGVuZGVuY2llcyBvbiBEZW1hbmQKLV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCi0KLUl0IGlzIGdvb2QgcHJhY3RpY2UgdG8gYWRkIG9u bHkgdGhvc2UgZGVwZW5kZW5jaWVzIHRoYXQgYXJlIHJlYWxseQotcmVxdWlyZWQgZm9yIHRoZSBj dXJyZW50IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHBhY2thZ2UuIElmIHRoZSBwYWNrYWdlCi1wcm92 aWRlcyB0aGUgZmVhdHVyZXMgKmZvbyogYW5kICpiYXIqIGFuZCBpdHMgYGBjb25maWd1cmVgYCBw cm92aWRlcwotc3dpdGNoZXMgdG8gZW5hYmxlL2Rpc2FibGUgdGhlbSBpbmRlcGVuZGVudGx5LCB3 ZSBjYW4gYWxzbyBhZGQKLWRlcGVuZGVuY2llcyBvbiBkZW1hbmQuIExldOKAmXMgYXNzdW1lIGZl YXR1cmUgKmZvbyogbmVlZHMgdGhlIGNvbXByZXNzaW9uCi1saWJyYXJ5ICpsaWJ6KiBhbmQgKmJh ciogbmVlZHMgdGhlIFhNTDIgbGlicmFyeSAqbGlieG1sMiouIFRoZXNlCi1saWJyYXJpZXMgYXJl IG9ubHkgcmVxdWlyZWQgYXQgcnVuLXRpbWUgaWYgdGhlIGNvcnJlc3BvbmRpbmcgZmVhdHVyZSBp cwotZW5hYmxlZC4gVG8gYWRkIHRoZXNlIGRlcGVuZGVuY2llcyBvbiBkZW1hbmQsIHRoZSBtZW51 IGZpbGUgbG9va3MgbGlrZToKLQotLi4gY29kZS1ibG9jazo6IGtjb25maWcKLQotICAgICMjIFNF Q1RJT049cHJvamVjdF9zcGVjaWZpYwotCi0gICAgY29uZmlnIEZPTwotICAgICAgICAgICB0cmlz dGF0ZQotICAgICAgICAgICBzZWxlY3QgWkxJQiBpZiBGT09fRk9PCi0gICAgICAgICAgIHNlbGVj dCBMSUJYTUwyIGlmIEZPT19CQVIKLSAgICAgICAgICAgcHJvbXB0ICJmb28iCi0gICAgICAgICAg IGhlbHAKLSAgICAgICAgICAgICBGSVhNRQotCi0gICAgaWYgRk9PCi0gICAgY29uZmlnIEZPT19E RUJVRwotICAgICAgICAgICBib29sCi0gICAgICAgICAgIHByb21wdCAiYWRkIGRlYnVnIG5vaXNl IgotCi0gICAgY29uZmlnIEZPT19GT08KLSAgICAgICAgICAgYm9vbAotICAgICAgICAgICBwcm9t cHQgImJ1aWxkIGZvbyIKLQotICAgIGNvbmZpZyBGT09fQkFSCi0gICAgICAgICAgIGJvb2wKLSAg ICAgICAgICAgcHJvbXB0ICJidWlsZCBiYXIiCi0KLSAgICBlbmRpZgotCi0uLiBpbXBvcnRhbnQ6 OiBEbyBub3QgYWRkIHRoZXNlIGBgc2VsZWN0YGAgc3RhdGVtZW50cyB0byB0aGUgY29ycmVzcG9u ZGluZyBtZW51IGVudHJ5LgotICBUaGV5IG11c3QgYmVsb25nIHRvIHRoZSBtYWluIG1lbnUgZW50 cnkgb2YgdGhlIHBhY2thZ2UgdG8gZW5zdXJlIHRoYXQKLSAgdGhlIGNhbGN1bGF0aW9uIG9mIHRo ZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0aGUgcGFja2FnZXMgaXMgZG9uZSBpbiBhCi0gIGNvcnJl Y3QgbWFubmVyLgotCi1NYW5hZ2luZyBFeHRlcm5hbCBSdW50aW1lIERlcGVuZGVuY2llcwotXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KLQotU29tZSBwYWNrYWdlcyBhcmUg YnVpbGRpbmcgYWxsIG9mIHRoZWlyIGNvbXBvbmVudHMgYW5kIGFsc28gaW5zdGFsbGluZwotdGhl bSBpbnRvIHRoZSB0YXJnZXTigJlzIHN5c3Jvb3QuIEJ1dCBvbmx5IHRoZWlyICp0YXJnZXRpbnN0 YWxsKiBzdGFnZQotZGVjaWRlcyB3aGljaCBwYXJ0cyBhcmUgY29waWVkIHRvIHRoZSByb290IGZp bGVzeXN0ZW0uIFNvLCBjb21waWxpbmcgYW5kCi1saW5raW5nIG9mIG91ciBwYWNrYWdlIHdpbGwg d29yaywgYmVjYXVzZSBldmVyeXRoaW5nIHJlcXVpcmVkIGlzIGZvdW5kCi1pbiB0aGUgdGFyZ2V0 4oCZcyBzeXNyb290LgotCi1JbiBvdXIgZXhhbXBsZSB0aGVyZSBpcyBhIGhpZGRlbiBkZXBlbmRl bmN5IHRvIHRoZSBtYXRoIGxpYnJhcnkKLWBgbGlibWBgLiBPdXIgbmV3IHBhY2thZ2Ugd2FzIGJ1 aWx0IHN1Y2Nlc3NmdWxseSwgYmVjYXVzZSB0aGUgbGlua2VyIHdhcwotYWJsZSB0byBsaW5rIG91 ciBiaW5hcmllcyBhZ2FpbnN0IHRoZSBgYGxpYm1gYCBmcm9tIHRoZSB0b29sY2hhaW4uIEJ1dAot aW4gdGhpcyBjYXNlIHRoZSBgYGxpYm1gYCBtdXN0IGFsc28gYmUgYXZhaWxhYmxlIGluIHRoZSB0 YXJnZXTigJlzIHJvb3QKLWZpbGVzeXN0ZW0gdG8gZnVsZmlsIHRoZSBydW4tdGltZSBkZXBlbmRl bmN5OiBXZSBoYXZlIHRvIGZvcmNlIFBUWGRpc3QgdG8KLWluc3RhbGwgYGBsaWJtYGAuIGBgbGli bWBgIGlzIHBhcnQgb2YgdGhlICpnbGliYyogcGFja2FnZSwgYnV0IGlzIG5vdAotaW5zdGFsbGVk IGJ5IGRlZmF1bHQgKHRvIGtlZXAgdGhlIHJvb3QgZmlsZXN5c3RlbSBzbWFsbCkuIFNvLCBpdCAq KmRvZXMKLW5vdCoqIGhlbHAgdG8gc2VsZWN0IHRoZSBgYEdMSUJDYGAgc3ltYm9sLCB0byBnZXQg YSBgYGxpYm1gYCBhdCBydW4tdGltZS4KLQotVGhlIGNvcnJlY3Qgc29sdXRpb24gaGVyZSBpcyB0 byBhZGQgYSBgYHNlbGVjdCBMSUJDX01gYCB0byBvdXIgbWVudQotZmlsZS4gV2l0aCBhbGwgdGhl IGFkZGl0aW9ucyBhYm92ZSBpdCBub3cgbG9va3MgbGlrZToKLQotLi4gY29kZS1ibG9jazo6IGtj b25maWcKLQotICAgICMjIFNFQ1RJT049cHJvamVjdF9zcGVjaWZpYwotCi0gICAgY29uZmlnIEZP TwotICAgICAgICAgICB0cmlzdGF0ZQotICAgICAgICAgICBzZWxlY3QgWkxJQiBpZiBGT09fRk9P Ci0gICAgICAgICAgIHNlbGVjdCBMSUJYTUwyIGlmIEZPT19CQVIKLSAgICAgICAgICAgc2VsZWN0 IExJQkNfTQotICAgICAgICAgICBwcm9tcHQgImZvbyIKLSAgICAgICAgICAgaGVscAotICAgICAg ICAgICAgIEZJWE1FCi0KLSAgICBpZiBGT08KLSAgICBjb25maWcgRk9PX0RFQlVHCi0gICAgICAg ICAgIGJvb2wKLSAgICAgICAgICAgcHJvbXB0ICJhZGQgZGVidWcgbm9pc2UiCi0KLSAgICBjb25m aWcgRk9PX0ZPTwotICAgICAgICAgICBib29sCi0gICAgICAgICAgIHByb21wdCAiYnVpbGQgZm9v IgotCi0gICAgY29uZmlnIEZPT19CQVIKLSAgICAgICAgICAgYm9vbAotICAgICAgICAgICBwcm9t cHQgImJ1aWxkIGJhciIKLQotICAgIGVuZGlmCi0KLS4uIG5vdGU6OiBUaGVyZSBhcmUgb3RoZXIg cGFja2FnZXMgYXJvdW5kLCB0aGF0IGRvIG5vdCBpbnN0YWxsIGV2ZXJ5dGhpbmcgYnkKLSAgZGVm YXVsdC4gSWYgb3VyIG5ldyBwYWNrYWdlIG5lZWRzIHNvbWV0aGluZyBzcGVjaWFsLCB3ZSBtdXN0 IHRha2UgYSBsb29rCi0gIGludG8gdGhlIG1lbnUgb2YgdGhlIG90aGVyIHBhY2thZ2UgaG93IHRv IGZvcmNlIHRoZSByZXF1aXJlZCBjb21wb25lbnRzCi0gIHRvIGJlIGluc3RhbGxlZCBhbmQgYWRk IHRoZSBjb3JyZXNwb25kaW5nIGBgc2VsZWN0c2BgIHRvIG91ciBvd24gbWVudQotICBmaWxlLiBJ biB0aGlzIGNhc2UgaXQgZG9lcyBub3QgaGVscCB0byBlbmFibGUgdGhlIHJlcXVpcmVkIHBhcnRz IGluIG91cgotICBwcm9qZWN0IGNvbmZpZ3VyYXRpb24sIGJlY2F1c2UgdGhpcyBoYXMgbm8gZWZm ZWN0IG9uIHRoZSBidWlsZCBvcmRlciEKLQotTWFuYWdpbmcgUGxhaW4gTWFrZWZpbGUgUGFja2Fn ZXMKLV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCi0KLU1hbnkgcGFja2FnZXMgYXJl IHN0aWxsIGNvbWluZyB3aXRoIGEgcGxhaW4gYGBNYWtlZmlsZWBgLiBUaGUgdXNlciBoYXMKLXRv IGFkYXB0IGl0IHRvIG1ha2UgaXQgd29yayBpbiBhIGNyb3NzIGNvbXBpbGUgZW52aXJvbm1lbnQg YXMgd2VsbC4KLVBUWGRpc3QgY2FuIGFsc28gaGFuZGxlIHRoaXMga2luZCBvZiBwYWNrYWdlcy4g V2Ugb25seSBoYXZlIHRvIHNwZWNpZnkKLWEgc3BlY2lhbCAqcHJlcGFyZSogYW5kICpjb21waWxl KiBzdGFnZS4KLQotU3VjaCBwYWNrYWdlcyBvZnRlbiBoYXZlIG5vIHNwZWNpYWwgbmVlZCBmb3Ig YW55IGtpbmQgb2YgcHJlcGFyYXRpb24uIEluCi10aGlzIHdlIG11c3QgaW5zdHJ1Y3QgUFRYZGlz dCB0byBkbyBub3RoaW5nIGluIHRoZSAqcHJlcGFyZSogc3RhZ2U6Ci0KLS4uIGNvZGUtYmxvY2s6 OiBtYWtlCi0KLSAgICBGT09fQ09ORl9UT09MIDo9IE5PCi0KLVRvIGNvbXBpbGUgdGhlIHBhY2th Z2UsIHdlIGNhbiB1c2UgYGBtYWtlYGBcIOKAmXMgZmVhdHVyZSB0byBvdmVyd3JpdGUKLXZhcmlh YmxlcyB1c2VkIGluIHRoZSBgYE1ha2VmaWxlYGAuIFdpdGggdGhpcyBmZWF0dXJlIHdlIGNhbiBz dGlsbCB1c2UKLXRoZSBvcmlnaW5hbCBgYE1ha2VmaWxlYGAgYnV0IHdpdGggb3VyIG93biAoY3Jv c3MgY29tcGlsZSkgc2V0dGluZ3MuCi0KLU1vc3Qgb2YgdGhlIHRpbWUgdGhlIGdlbmVyaWMgY29t cGlsZSBydWxlIGNhbiBiZSB1c2VkLCBvbmx5IGEgZmV3Ci1zZXR0aW5ncyBhcmUgcmVxdWlyZWQu IEZvciBhIHdlbGwgZGVmaW5lZCBgYE1ha2VmaWxlYGAgaXQgaXMgc3VmZmljaWVudCB0bwotc2V0 IHVwIHRoZSBjb3JyZWN0IGNyb3NzIGNvbXBpbGUgZW52aXJvbm1lbnQgZm9yIHRoZSAqY29tcGls ZSogc3RhZ2U6Ci0KLS4uIGNvZGUtYmxvY2s6OiBtYWtlCi0KLSAgICBGT09fTUFLRV9FTlYgOj0g JChDUk9TU19FTlYpCi0KLWBgbWFrZWBgIHdpbGwgYmUgY2FsbGVkIGluIHRoaXMgY2FzZSB3aXRo OgotCi1gYCQoRk9PX01BS0VfRU5WKSAkKE1BS0UpIC1DICQoRk9PX0RJUikgJChGT09fTUFLRV9P UFQpYGAKLQotU28sIGluIHRoZSBydWxlIGZpbGUgb25seSB0aGUgdHdvIHZhcmlhYmxlcyBgYEZP T19NQUtFX0VOVmBgIGFuZAotYGBGT09fTUFLRV9PUFRgYCBtdXN0IGJlIHNldCwgdG8gZm9yd2Fy ZCB0aGUgcmVxdWlyZWQgc2V0dGluZ3MgdG8gdGhlCi1wYWNrYWdl4oCZcyBidWlsZHN5c3RlbS4g SWYgdGhlIHBhY2thZ2UgY2Fubm90IGJlIGJ1aWx0IGluIHBhcmFsbGVsLCB3ZQotY2FuIGFsc28g YWRkIHRoZSBgYEZPT19NQUtFX1BBUsKgOj3CoE5PYGAuIGBgWUVTYGAgaXMgdGhlIGRlZmF1bHQu Ci0KLU1hbmFnaW5nIENNYWtlL1FNYWtlL01lc29uIFBhY2thZ2VzCi1eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXgotCi1CdWlsZGluZyBwYWNrYWdlcyB0aGF0IHVzZSBgYGNtYWtl YGAsIGBgcW1ha2VgYCBvciBgYG1lc29uYGAgaXMgbXVjaCBsaWtlCi1idWlsZGluZyBwYWNrYWdl cyB3aXRoIGFuIGF1dG90b29scyBiYXNlZCBidWlsZHN5c3RlbS4gV2UgbmVlZCB0byBzcGVjaWZ5 Ci10aGUgY29uZmlndXJhdGlvbiB0b29sOgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQotCi0gICAg Rk9PX0NPTkZfVE9PTCA6PSBjbWFrZQotCi1vcgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQotCi0g ICAgRk9PX0NPTkZfVE9PTCA6PSBxbWFrZQotCi1vciByZXNwZWN0aXZlbHkKLQotLi4gY29kZS1i bG9jazo6IG1ha2UKLQotICAgIEZPT19DT05GX1RPT0wgOj0gbWVzb24KLQotQW5kIHByb3ZpZGUg dGhlIGNvcnJlY3QgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUaGUgc3ludGF4IGlzIGRpZmZlcmVu dCBzbwotUFRYZGlzdCBwcm92aWRlcyBhZGRpdGlvbmFsIG1hY3JvcyB0byBzaW1wbGlmeSBjb25m aWd1cmFibGUgZmVhdHVyZXMuCi1Gb3IgYGBjbWFrZWBgIHRoZSBjb25maWd1cmF0aW9uIG9wdGlv bnMgdHlwaWNhbGx5IGxvb2sgbGlrZSB0aGlzOgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQotCi0g ICAgRk9PX0NPTkZfT1BUIDo9IFwKLSAgICAJJChDUk9TU19DTUFLRV9VU1IpIFwKLSAgICAJLURC VUlMRF9URVNUUzpCT09MPU9GRiBcCi0gICAgCS1ERU5BQkxFX0JBUjpCT09MPSQoY2FsbCBwdHgv b25vZmYsIFBUWENPTkZfRk9PX0JBUikKLQotRm9yIGBgcW1ha2VgYCB0aGUgY29uZmlndXJhdGlv biBvcHRpb25zIHR5cGljYWxseSBsb29rIGxpa2UgdGhpczoKLQotLi4gY29kZS1ibG9jazo6IG1h a2UKLQotICAgIEZPT19DT05GX09QVCA6PSBcCi0gICAgCSQoQ1JPU1NfUU1BS0VfT1BUKSBcCi0g ICAgCVBSRUZJWD0vdXNyCi0KLUFuZCBmb3IgYGBtZXNvbmBgIHRoZSBjb25maWd1cmF0aW9uIG9w dGlvbnMgdHlwaWNhbGx5IGxvb2sgbGlrZSB0aGlzOgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQot Ci0gICAgRk9PX0NPTkZfT1BUIDo9IFwKLSAgICAJJChDUk9TU19NRVNPTl9VU1IpIFwKLSAgICAJ LURiYXI9JChjYWxsIHB0eC90cnVlZmFsc2UsUFRYQ09ORl9GT09fQkFSKQotCi1QbGVhc2Ugbm90 ZSB0aGF0IGN1cnJlbnRseSBvbmx5IGhvc3QgYW5kIHRhcmdldCBgYGNtYWtlYGBcL2BgbWVzb25g YCBwYWNrYWdlcwotYW5kIG9ubHkgdGFyZ2V0IGBgcW1ha2VgYCBwYWNrYWdlcyBhcmUgc3VwcG9y dGVkLgotCi1NYW5hZ2luZyBQeXRob24gUGFja2FnZXMKLV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e XgotCi1BcyB3aXRoIGFueSBvdGhlciBwYWNrYWdlLCB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9u IHRvb2wgbXVzdCBiZSBzZWxlY3RlZAotZm9yIFB5dGhvbiBwYWNrYWdlczoKLQotLi4gY29kZS1i bG9jazo6IG1ha2UKLQotICAgIEZPT19DT05GX1RPT0wgOj0gcHl0aG9uCi0KLS4uIG5vdGU6OiBG b3IgUHl0aG9uMyBwYWNrYWdlcyB0aGUgdmFsdWUgbXVzdCBiZSBgYHB5dGhvbjNgYC4KLQotTm8g TWFrZWZpbGVzIGFyZSB1c2VkIHdoZW4gYnVpbGRpbmcgUHl0aG9uIHBhY2thZ2VzIHNvIHRoZSB1 c3VhbCBgYG1ha2VgYAotYW5kIGBgbWFrZSBpbnN0YWxsYGAgZm9yIHRoZSAqY29tcGlsZSogYW5k ICppbnN0YWxsKiBzdGFnZXMgY2Fubm90IGJlIHVzZWQuCi1QVFhkaXN0IHdpbGwgY2FsbCBgYHB5 dGhvbiBzZXR1cC5weSBidWlsZGBgIGFuZCBgYHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsYGAKLWlu c3RlYWQuCi0KLS4uIG5vdGU6OiAqRk9PKiBpcyBzdGlsbCB0aGUgbmFtZSBvZiBvdXIgZXhhbXBs ZSBwYWNrYWdlLiBJdCBtdXN0IGJlCi0gIHJlcGxhY2VkIGJ5IHRoZSByZWFsIHBhY2thZ2UgbmFt ZS4KLQotCi0uLiBfcGF0Y2hpbmdfcGFja2FnZXM6Ci0KLVBhdGNoaW5nIFBhY2thZ2VzCi1+fn5+ fn5+fn5+fn5+fn5+fgotCi1UaGVyZSBjYW4gYmUgdmFyaW91cyByZWFzb25zIHdoeSBhIHBhY2th Z2UgbXVzdCBiZSBwYXRjaGVkOgotCi0tICBQYWNrYWdlIGlzIGJyb2tlbiBmb3IgY3Jvc3MgY29t cGlsZSBlbnZpcm9ubWVudHMKLQotLSAgUGFja2FnZSBpcyBicm9rZW4gd2l0aGluIGEgc3BlY2lm aWMgZmVhdHVyZQotCi0tICBQYWNrYWdlIGlzIHZ1bG5lcmFibGUgYW5kIG5lZWRzIHNvbWUgZml4 ZXMKLQotLSAgb3IgYW55dGhpbmcgZWxzZSAodGhpcyBjYXNlIGlzIHRoZSBtb3N0IGNvbW1vbiBv bmUpCi0KLUlkZWFsbHksIHRob3NlIHByb2JsZW1zIHNob3VsZCBiZSBhZGRyZXNzZWQgaW4gdGhl IG9yaWdpbmFsIHByb2plY3QsCi1zbyBhbnkgcGF0Y2hlcyB5b3UgYWRkIHRvIHlvdXIgQlNQIG9y IHRvIFBUWGRpc3Qgc2hvdWxkIGFsc28gYmUgc3VibWl0dGVkIHVwc3RyZWFtLgotVGhlIHVwc3Ry ZWFtIHByb2plY3QgY2FuIG9mdGVuIHByb3ZpZGUgYmV0dGVyIGZlZWRiYWNrLCB0aGV5IGNhbiBp bnRlZ3JhdGUgeW91cgotcGF0Y2ggaW50byBhIG5ldyByZWxlYXNlLCBhbmQgYWxzbyBtYWludGFp biB5b3VyIGNoYW5nZXMgYXMgcGFydCBvZiB0aGUgcHJvamVjdC4KLVRoaXMgd2F5IHdlIG1ha2Ug c3VyZSB0aGF0IGFsbCBhZHZhbnRhZ2VzIG9mIHRoZSBvcGVuIHNvdXJjZSBpZGVhIHdvcmsgZm9y IHVzOwotYW5kIHlvdXIgcGF0Y2ggY2FuIGJlIHJlbW92ZWQgYWdhaW4gbGF0ZXIgd2hlbiBhIG5l dyByZWxlYXNlIG9mIHRoZSBwcm9qZWN0IGlzCi1pbnRlZ3JhdGVkIGludG8geW91ciBCU1Agb3Ig aW50byBQVFhkaXN0LgotCi1QVFhkaXN0IGhhbmRsZXMgcGF0Y2hpbmcgYXV0b21hdGljYWxseS4K LUFmdGVyIGV4dHJhY3RpbmcgdGhlIGFyY2hpdmUgb2YgYSBwYWNrYWdlLCBQVFhkaXN0IGNoZWNr cyBmb3IgdGhlIGV4aXN0ZW5jZSBvZgotYSBwYXRjaCBkaXJlY3RvcnkgbmFtZWQgbGlrZSBpdHMg YGA8UEtHPl9QQVRDSEVTYGAgdmFyaWFibGUsIG9yLCBpZiB0aGlzIHZhcmlhYmxlCi1pcyBub3Qg c2V0LCBsaWtlIGl0cyBgYDxQS0c+YGAgdmFyaWFibGUuCi1UaGUgcGF0Y2ggZGlyZWN0b3J5IGlz IHRoZW4gc2VhcmNoZWQgaW4gYWxsIGxvY2F0aW9ucyBsaXN0ZWQgYnkgdGhlCi1gYFBUWERJU1Rf UEFUSF9QQVRDSEVTYGAgdmFyaWFibGUsIGFuZCB0aGUgZmlyc3Qgb25lIGZvdW5kIGlzIHVzZWQu Ci1UYWtlIGFuIGV4ZW1wbGFyeSBwYWNrYWdlIGBgZm9vYGAgd2l0aCB2ZXJzaW9uIGBgMS4xLjBg YDoKLVRoZSB2YXJpYWJsZSBgYEZPT2BgIHdpbGwgaGF2ZSB0aGUgdmFsdWUgYGBmb28tMS4xLjBg YCwgc28gUFRYZGlzdCB3aWxsIGxvb2sgZm9yCi1hIHBhdGNoIGRpcmVjdG9yeSBuYW1lZCBgYGZv by0xLjEuMGBgIGluIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgotCi0jLiB0aGUgY3VycmVudCBs YXllcjoKLQotICAgYS4gcHJvamVjdCAoYGAuL3BhdGNoZXMvZm9vLTEuMS4wYGApCi0gICBiLiBw bGF0Zm9ybSAoYGAuL2NvbmZpZ3MvfHB0eGRpc3RQbGF0Zm9ybUNvbmZpZ0RpcnwvcGF0Y2hlcy9m b28tMS4xLjBgYCkKLQotIy4gYW55IDpyZWY6YGJhc2UgbGF5ZXJzIDxsYXllcnMtaW4tcHR4ZGlz dD5gLAotICAgYXBwbHlpbmcgdGhlIHNhbWUgc2VhcmNoIG9yZGVyIGFzIGFib3ZlIGZvciBlYWNo IGxheWVyIHJlY3Vyc2l2ZWx5Ci0KLSMuIHB0eGRpc3QgKGBgPHB0eGRpc3QvaW5zdGFsbGF0aW9u L3BhdGg+L3BhdGNoZXMvZm9vLTEuMS4wYGApCi0KLVRoZSBwYXRjaGVzIGZyb20gdGhlIGZpcnN0 IGxvY2F0aW9uIGZvdW5kIGFyZSB1c2VkLiBOb3RlOiBEdWUgdG8gdGhpcwotc2VhcmNoIG9yZGVy LCBhIFBUWGRpc3QgcHJvamVjdCBjYW4gcmVwbGFjZSBnbG9iYWwgcGF0Y2hlcyBmcm9tIHRoZQot UFRYZGlzdCBpbnN0YWxsYXRpb24uIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiBhIHByb2plY3Qgc3Rp Y2tzIHRvIGEKLXNwZWNpZmljIFBUWGRpc3QgcmV2aXNpb24gYnV0IGZpeGVzIGZyb20gYSBtb3Jl IHJlY2VudCByZXZpc2lvbiBvZgotUFRYZGlzdCBzaG91bGQgYmUgdXNlZC4KLQotUFRYZGlzdCB1 c2VzIHRoZSB1dGlsaXRpZXMgKmdpdCosICpwYXRjaCogb3IgKnF1aWx0KiB0byB3b3JrIHdpdGgK LXBhdGNoZXMgb3IgcGF0Y2ggc2VyaWVzLiBXZSByZWNvbW1lbmQgKmdpdCosIGFzIGl0IGNhbiBt YW5hZ2UgcGF0Y2gKLXNlcmllcyBpbiBhIHZlcnkgZWFzeSB3YXkuCi0KLUNyZWF0aW5nIGEgUGF0 Y2ggU2VyaWVzIGZvciBhIFBhY2thZ2UKLV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl4KLQotVG8gY3JlYXRlIGEgcGF0Y2ggc2VyaWVzIGZvciB0aGUgZmlyc3QgdGltZSwgd2Ug Y2FuIHJ1biB0aGUgZm9sbG93aW5nCi1zdGVwcy4gV2UgYXJlIHN0aWxsIHVzaW5nIG91ciAqZm9v LTEuMS4wKiBleGFtcGxlIHBhY2thZ2UgaGVyZToKLQotVXNpbmcgUXVpbHQKLSIiIiIiIiIiIiIi Ci0KLVdlIGNyZWF0ZSBhIHNwZWNpYWwgZGlyZWN0b3J5IGZvciB0aGUgcGF0Y2ggc2VyaWVzIGlu IHRoZSBsb2NhbCBwcm9qZWN0Ci1kaXJlY3Rvcnk6Ci0KLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Ci0K LSAgICAkIG1rZGlyIC1wIHBhdGNoZXMvZm9vLTEuMS4wCi0KLVBUWGRpc3QgZXhwZWN0cyBhIGBg c2VyaWVzYGAgZmlsZSBpbiB0aGUgcGF0Y2ggZGlyZWN0b3J5IGFuZCBhdCBsZWFzdAotb25lIHBh dGNoLiBPdGhlcndpc2UgaXQgZmFpbHMuIER1ZSB0byB0aGUgZmFjdCB0aGF0IHdlIGRvIG5vdCBo YXZlIGFueQotcGF0Y2ggY29udGVudCB5ZXQsIHdl4oCZbGwgc3RhcnQgd2l0aCBhIGR1bW15IGVu dHJ5IGluIHRoZSBgYHNlcmllc2BgIGZpbGUKLWFuZCBhbiBlbXB0eSBgYHBhdGNoYGAgZmlsZS4K LQotLi4gY29kZS1ibG9jazo6IHRleHQKLQotICAgICQgdG91Y2ggcGF0Y2hlcy9mb28tMS4xLjAv ZHVtbXkKLSAgICAkIGVjaG8gZHVtbXkgPiBwYXRjaGVzL2Zvby0xLjEuMC9zZXJpZXMKLQotTmV4 dCBpcyB0byBleHRyYWN0IHRoZSBwYWNrYWdlIChpZiBhbHJlYWR5IGRvbmUsIHdlIG11c3QgcmVt b3ZlIGl0Ci1maXJzdCk6Ci0KLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Ci0KLSAgICAkIHB0eGRpc3Qg ZXh0cmFjdCBmb28KLQotVGhpcyB3aWxsIGV4dHJhY3QgdGhlIGFyY2hpdmUgYW5kIGNyZWF0ZSBh IHN5bWJvbGljIGxpbmsgaW4gdGhlIGJ1aWxkCi1kaXJlY3RvcnkgcG9pbnRpbmcgdG8gb3VyIGxv Y2FsIHBhdGNoIGRpcmVjdG9yeS4gV29ya2luZyB0aGlzIHdheSB3aWxsCi1lbnN1cmUgdGhhdCB3 ZSBkbyBub3QgbG9zZSBvdXIgY3JlYXRlZCBwYXRjaGVzIGlmIHdlIGVudGVyCi1gYHB0eGRpc3Qg Y2xlYW4gZm9vYGAgYnkgYWNjaWRlbnQuIEluIG91ciBjYXNlIHRoZSBwYXRjaGVzIGFyZSBzdGls bAotcHJlc2VudCBpbiBgYHBhdGNoZXMvZm9vLTEuMS4wYGAgYW5kIGNhbiBiZSB1c2VkIHRoZSBu ZXh0IHRpbWUgd2UKLWV4dHJhY3QgdGhlIHBhY2thZ2UgYWdhaW4uCi0KLUFsbCB3ZSBoYXZlIHRv IGRvIG5vdyBpcyB0byBkbyB0aGUgbW9kaWZpY2F0aW9uIHdlIG5lZWQgdG8gbWFrZSB0aGUKLXBh Y2thZ2Ugd29yay4gV2UgY2hhbmdlIGludG8gdGhlIGJ1aWxkIGRpcmVjdG9yeSBhbmQgdXNlIHF1 aWx0XyB0bwotY3JlYXRlIG5ldyBwYXRjaGVzLCBhZGQgZmlsZXMgdG8gcmVzcGVjdGl2ZSBwYXRj aGVzLCBtb2RpZnkgdGhlc2UgZmlsZXMKLWFuZCByZWZyZXNoIHRoZSBwYXRjaGVzIHRvIHNhdmUg b3VyIGNoYW5nZXMuCi1TZWUgdGhlICpxdWlsdCogZG9jdW1lbnRhdGlvbiAoYGBtYW4gMSBxdWls dGBgKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLQotLi4gbm90ZTo6IEZvciBwYXRjaGVzIHRoYXQg YXJlIGludGVuZGVkIGZvciBQVFhkaXN0IHVwc3RyZWFtIHVzZSB0aGUgZ2l0Ci0gIHdvcmtmbG93 IGRlc2NyaWJlZCBiZWxvdyB0byBnZXQgcHJvcGVyIHBhdGNoIGhlYWRlcnMuCi0KLS4uIF9xdWls dDogaHR0cDovL3NhdmFubmFoLm5vbmdudS5vcmcvcHJvamVjdHMvcXVpbHQKLQotVXNpbmcgR2l0 Ci0iIiIiIiIiIiIKLQotQ3JlYXRlIHRoZSBwYXRjaCBkaXJlY3RvcnkgbGlrZSBhYm92ZSBmb3Ig KnF1aWx0KiwKLWJ1dCBvbmx5IGFkZCBhbiBlbXB0eSBzZXJpZXMgZmlsZToKLQotLi4gY29kZS1i bG9jazo6IHRleHQKLQotICAgICQgbWtkaXIgLXAgcGF0Y2hlcy9mb28tMS4xLjAKLSAgICAkIHRv dWNoIHBhdGNoZXMvZm9vLTEuMS4wL3NlcmllcwotCi1UaGVuIGV4dHJhY3QgdGhlIHBhY2thZ2Ug d2l0aCBhbiBhZGRpdGlvbmFsIGNvbW1hbmQgbGluZSBzd2l0Y2g6Ci0KLS4uIGNvZGUtYmxvY2s6 OiB0ZXh0Ci0KLSAgICAkIHB0eGRpc3QgLS1naXQgZXh0cmFjdCBmb28KLQotVGhlIGVtcHR5IHNl cmllcyBmaWxlIG1ha2VzIFBUWGRpc3QgY3JlYXRlIGEgR2l0IHJlcG9zaXRvcnkgaW4gdGhlCi1y ZXNwZWN0aXZlIHBhY2thZ2UgYnVpbGQgZGlyZWN0b3J5LAotYW5kIGltcG9ydCB0aGUgcGFja2Fn ZSBzb3VyY2UgYXMgdGhlIGZpcnN0IGNvbW1pdC4KLQotLi4gbm90ZTo6IE9wdGlvbmFsbHksIHlv dSBjYW4gZW5hYmxlIHRoZSBzZXR0aW5nICpEZXZlbG9wZXIgT3B0aW9ucyDihpIKLSAgdXNlIGdp dCB0byBhcHBseSBwYXRjaGVzKiBpbiBgcHR4ZGlzdCBzZXR1cGAgdG8gZ2V0IHRoaXMgYmVoYXZp b3VyCi0gIGFzIGEgZGVmYXVsdCBmb3IgZXZlcnkgcGFja2FnZS4KLSAgSG93ZXZlciwgbm90ZSB0 aGF0IHRoaXMgc2V0dGluZyBpcyBtZWFudCBmb3IgZGV2ZWxvcG1lbnQgb25seSwgYW5kIGNhbiBs ZWFkCi0gIHRvIGZhaWx1cmVzIOKAkyBzb21lIHBhY2thZ2VzIHRyeSB0byBkZXRlcm1pbmUgaWYg dGhleSBhcmUgYmVpbmcgY29tcGlsZWQgZnJvbQotICBhIEdpdCBzb3VyY2UgdHJlZSwgYW5kIGJl aGF2ZSBkaWZmZXJlbnRseSBpbiB0aGF0IGNhc2UuCi0KLVRoZW4geW91IGNhbiBjaGFuZ2UgaW50 byB0aGUgcGFja2FnZSBidWlsZCBkaXJlY3RvcnkKLShgYHBsYXRmb3JtLTxuYW1lPi9idWlsZC10 YXJnZXQvZm9vLTEuMS4wYGApLAotcGF0Y2ggdGhlIHJlcXVpcmVkIHNvdXJjZSBmaWxlcywKLWFu ZCBtYWtlIEdpdCBjb21taXRzIG9uIHRoZSB3YXkuCi1UaGUgR2l0IGhpc3Rvcnkgc2hvdWxkIG5v dyBsb29rIHNvbWV0aGluZyBsaWtlIHRoaXM6Ci0KLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Ci0KLSAg ICAkIGdpdCBsb2cgLS1vbmVsaW5lIC0tZGVjb3JhdGUKLSAgICAqIGRmMzQzZTgyMTg1MSAoSEVB RCAtPiBtYXN0ZXIpIE1ha2VmaWxlOiBkb24ndCBidWlsZCB0aGUgdGVzdHMKLSAgICAqIDY1YTM2 MGMyYmQ2MCBzdHJmcnkuYzogZnJvYm5pY2F0ZSB0aGUgZXhjdXNhdG9yCi0gICAgKiBmZGMzMTVm Njg0NGMgKHRhZzogZm9vYmFyLTEuMS4wLCB0YWc6IGJhc2UpIGluaXRpYWwgY29tbWl0Ci0KLUZp bmFsbHksIGNhbGwgYGBnaXQgcHR4LXBhdGNoZXNgYCB0byB0cmFuc2Zvcm0gdGhvc2UgR2l0IGNv bW1pdHMgaW50byB0aGUgcGF0Y2gKLXNlcmllcyBpbiB0aGUgYGBwYXRjaGVzL2Zvby0xLjEuMGBg IGZvbGRlci4KLVRoaXMgd2F5IHRoZXkgZG9uJ3QgZ2V0IGxvc3Qgd2hlbiBjbGVhbmluZyB0aGUg cGFja2FnZS4KLQotLi4gbm90ZTo6IFBUWGRpc3Qgd2lsbCBvbmx5IGNyZWF0ZSBhIEdpdCByZXBv c2l0b3J5IGZvciBwYWNrYWdlcyB3aXRoCi0gIHBhdGNoZXMuICBUbyB1c2UgR2l0IHRvIGdlbmVy YXRlIHRoZSBmaXJzdCBwYXRjaCwgY3JlYXRlIGFuIGVtcHR5IHNlcmllcwotICBmaWxlIGBgcGF0 Y2hlcy9mb29iYXItMS4xLjAvc2VyaWVzYGAgYmVmb3JlIGV4dHJhY3RpbmcgdGhlIHBhY2thZ2Vz LiBUaGlzCi0gIHdpbGwgdGVsbCBQVFhkaXN0IHRvIHVzZSBHaXQgYW55d2F5cyBhbmQgYGBnaXQg cHR4LXBhdGNoZXNgYCB3aWxsIHB1dCB0aGUKLSAgcGF0Y2hlcyB0aGVyZS4KLQotQm90aCBhcHBy b2FjaGVzIChHaXQgYW5kIHF1aWx0KSBhcmUgbm90IHN1aXRhYmxlIGZvciBtb2RpZnlpbmcgZmls ZXMKLXRoYXQgYXJlIGF1dG9nZW5lcmF0ZWQgaW4gYXV0b3Rvb2xzLWJhc2VkIGJ1aWxkc3lzdGVt cy4KLVJlZmVyIHRvIHRoZSBzZWN0aW9uIDpyZWY6YGNvbmZpZ3VyZV9yZWJ1aWxkYCBvbiBob3cg UFRYZGlzdCBjYW4KLWhhbmRsZSB0aGlzIHNwZWNpYWwgdGFzay4KLQotQWRkaW5nIE1vcmUgUGF0 Y2hlcyB0byBhIFBhY2thZ2UKLV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCi0KLUlm IHdlIHdhbnQgdG8gYWRkIG1vcmUgcGF0Y2hlcyB0byBhbiBhbHJlYWR5IHBhdGNoZWQgcGFja2Fn ZSwgd2UgY2FuIHVzZQotbmVhcmx5IHRoZSBzYW1lIHdheSBhcyBjcmVhdGluZyBwYXRjaGVzIGZv ciB0aGUgZmlyc3QgdGltZS4gQnV0IGlmIHRoZQotcGF0Y2ggc2VyaWVzIGNvbWVzIGZyb20gdGhl IFBUWGRpc3QgbWFpbiBpbnN0YWxsYXRpb24sIHdlIGRvIG5vdCBoYXZlCi13cml0ZSBwZXJtaXNz aW9ucyB0byB0aGVzZSBkaXJlY3RvcmllcyAoZG8gTkVWRVIgd29yayBvbiB0aGUgbWFpbgotaW5z dGFsbGF0aW9uIGRpcmVjdG9yaWVzLCBORVZFUiwgTkVWRVIsIE5FVkVSKS4gRHVlIHRvIHRoZSBz ZWFyY2ggb3JkZXIKLWluIHdoaWNoIFBUWGRpc3Qgc2VhcmNoZXMgZm9yIHBhdGNoZXMgZm9yIGEg c3BlY2lmaWMgcGFja2FnZSwgd2UgY2FuCi1jb3B5IHRoZSBnbG9iYWwgcGF0Y2ggc2VyaWVzIHRv IG91ciBsb2NhbCBwcm9qZWN0IGRpcmVjdG9yeS4gTm93IHdlIGhhdmUKLXRoZSBwZXJtaXNzaW9u cyB0byBhZGQgbW9yZSBwYXRjaGVzIG9yIG1vZGlmeSB0aGUgZXhpc3Rpbmcgb25lcy4gQWxzbwot KnF1aWx0KiBhbmQgKmdpdCogYXJlIG91ciBmcmllbmRzIGhlcmUgdG8gbWFuYWdlIHRoZSBwYXRj aCBzZXJpZXMuCi0KLUlmIHdlIHRoaW5rIHRoYXQgb3VyIG5ldyBwYXRjaGVzIGFyZSB2YWx1YWJs ZSBhbHNvIGZvciBvdGhlcnMsIG9yIHRoZXkKLWZpeCBhbiBlcnJvciwgaXQgY291bGQgYmUgYSBn b29kIGlkZWEgdG8gc2VuZCB0aGVzZSBwYXRjaGVzIHRvIFBUWGRpc3QKLW1haW5saW5lLCBhbmQg dG8gdGhlIHVwc3RyZWFtIHByb2plY3QgdG9vLgotCi0KLS4uIF9jb25maWd1cmVfcmVidWlsZDoK LQotTW9kaWZ5aW5nIEF1dG90b29saXplZCBQYWNrYWdlcwotXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXgotCi1BdXRvdG9vbGl6ZWQgcGFja2FnZXMgYXJlIHZlcnkgcGlja3kgd2hlbiBh dXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmaWxlcwotZ2V0IHBhdGNoZWQuIFRoZSBwYXRjaCBvcmRl ciBpcyB2ZXJ5IGltcG9ydGFudCBpbiB0aGlzIGNhc2UgYW5kCi1zb21ldGltZXMgaXQgZXZlbiBm YWlscyBhbmQgbm9ib2R5IGtub3dzIHdoeS4KLQotVG8gaW1wcm92ZSBhIHBhY2thZ2XigJlzIGF1 dG90b29scy1iYXNlZCBidWlsZCBzeXN0ZW0sIFBUWGRpc3QgY29tZXMgd2l0aAotaXRzIG93biBw cm9qZWN0IGxvY2FsIGF1dG90b29scyB0byByZWdlbmVyYXRlIHRoZSBhdXRvdG9vbHMgdGVtcGxh dGUKLWZpbGVzLCBpbnN0ZWFkIG9mIHBhdGNoaW5nIHRoZW0uIFdpdGggdGhpcyBmZWF0dXJlLCBv bmx5IHRoZSB0ZW1wbGF0ZQotZmlsZXMgbXVzdCBiZSBwYXRjaGVkLCB0aGUgcmVxdWlyZWQgYGBj b25maWd1cmVgYCBzY3JpcHQgYW5kIHRoZQotYGBNYWtlZmlsZS5pbmBgIGZpbGVzIGFyZSByZWdl bmVyYXRlZCBpbiB0aGUgZmluYWwgc3RhZ2VzIG9mIHRoZQotKnByZXBhcmUqIHN0ZXAuCi0KLVRo aXMgZmVhdHVyZSB3b3JrcyBsaWtlIHRoZSByZWd1bGFyIHBhdGNoaW5nIG1lY2hhbmlzbS4gVGhl IG9ubHkKLWRpZmZlcmVuY2UgaXMgdGhlIGFkZGl0aW9uYWwgYGBhdXRvZ2VuLnNoYGAgZmlsZSBp biB0aGUgcGF0Y2ggZGlyZWN0b3J5LgotSWYgaXQgZXhpc3RzIGFuZCBoYXMgZXhlY3V0aW9uIHBl cm1pc3Npb25zLCBpdCB3aWxsIGJlIGNhbGxlZCBhZnRlciB0aGUKLXBhY2thZ2Ugd2FzIHBhdGNo ZWQgKHdoaWxlIHRoZSAqZXh0cmFjdCogc3RhZ2UgaXMgcnVubmluZykuCi0KLUl0cyBjb250ZW50 IGRlcGVuZHMgb24gZGV2ZWxvcGVyIG5lZWRzOyBmb3IgdGhlIG1vc3Qgc2ltcGxlIGNhc2UgdGhl Ci1jb250ZW50IGNhbiBiZToKLQotLi4gY29kZS1ibG9jazo6IGJhc2gKLQotICAgICMhL2Jpbi9i YXNoCi0KLSAgICBhY2xvY2FsICRBQ0xPQ0FMX0ZMQUdTCi0KLSAgICBsaWJ0b29saXplIFwKLSAg ICAgICAgICAgIC0tZm9yY2UgXAotICAgICAgICAgICAgLS1jb3B5Ci0KLSAgICBhdXRvcmVjb25m IFwKLSAgICAgICAgICAgIC0tZm9yY2UgXAotICAgICAgICAgICAgLS1pbnN0YWxsIFwKLSAgICAg ICAgICAgIC0td2FybmluZ3M9Y3Jvc3MgXAotICAgICAgICAgICAgLS13YXJuaW5ncz1zeW50YXgg XAotICAgICAgICAgICAgLS13YXJuaW5ncz1vYnNvbGV0ZSBcCi0gICAgICAgICAgICAtLXdhcm5p bmdzPXVuc3VwcG9ydGVkCi0KLS4uIG5vdGU6OiBJbiB0aGlzIHdheSBub3QgeWV0IGF1dG90b29s aXplZCBwYWNrYWdlIGNhbiBiZSBhdXRvdG9vbGl6ZWQuIFdlCi0gIGp1c3QgaGF2ZSB0byBhZGQg dGhlIGNvbW1vbiBhdXRvdG9vbCB0ZW1wbGF0ZSBmaWxlcyAoYGBjb25maWd1cmUuYWNgYAotICBh bmQgYGBNYWtlZmlsZS5hbWBgIGZvciBleGFtcGxlKSB2aWEgYSBwYXRjaCBzZXJpZXMgdG8gdGhl IHBhY2thZ2UKLSAgc291cmNlIGFuZCB0aGUgYGBhdXRvZ2VuLnNoYGAgdG8gdGhlIHBhdGNoIGRp cmVjdG9yeS4KLQotLi4gX2FkZGluZ19maWxlczoKLQotQWRkaW5nIEJpbmFyeSBPbmx5IEZpbGVz Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotU29tZXRpbWVzIGEgZmV3IGJpbmFyeSBmaWxl cyBoYXZlIHRvIGJlIGFkZGVkIGludG8gdGhlIHJvb3QgZmlsZXN5c3RlbS4KLU9yIC0gdG8gYmUg bW9yZSBwcmVjaXNlIC0gc29tZSBmaWxlcywgdGhhdCBkbyBub3QgbmVlZCB0byBiZSBidWlsdCBp bgotYW55IHdheS4KLQotT24gdGhlIG90aGVyIGhhbmQsIHNvbWV0aW1lcyBmaWxlcyBzaG91bGQg YmUgaW5jbHVkZWQgdGhhdCBhcmUgbm90Ci1jb3ZlcmVkIGJ5IGFueSBvcGVuIHNvdXJjZSBsaWNl bnNlIGFuZCBzbywgc2hvdWxkIG5vdCBiZSBzaGlwcGVkIGluIHRoZQotc291cmNlIGNvZGUgZm9y bWF0LgotCi1BZGQgQmluYXJ5IEZpbGVzIEZpbGUgYnkgRmlsZQotfn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KLQotRG9pbmcgdG8gb24gYSBmaWxlIGJ5IGZpbGUgYmFzZSBjYW4gaGFwcGVu IGJ5IGp1c3QgdXNpbmcgdGhlIGBgaW5zdGFsbF9jb3B5YGAKLW1hY3JvIGluIHRoZSAqdGFyZ2V0 aW5zdGFsbCogc3RhZ2UgaW4gb3VyIG93biBjdXN0b21pemVkIHJ1bGVzIGZpbGUuCi0KLS4uIGNv ZGUtYmxvY2s6OiBub25lCi0KLSAgICBAJChjYWxsIGluc3RhbGxfY29weSwgYmluYXJ5X2V4YW1w bGUsIDAsIDAsIDA2NDQsIFwKLSAgICAgICA8L3BhdGgvdG8vc29tZS9maWxlLz5wdHhfbG9nby5w bmcsIFwKLSAgICAgICAvZXhhbXBsZS9wdHhfbG9nby5wbmcpCi0KLUl0IGNvcGllcyB0aGUgZmls ZSBgYHB0eF9sb2dvLnBuZ2BgIGZyb20gc29tZSBsb2NhdGlvbiB0byB0YXJnZXTigJlzIHJvb3QK LWZpbGVzeXN0ZW0uIFJlZmVyIDpyZWY6YGluc3RhbGxfY29weWAgZm9yIGZ1cnRoZXIgaW5mb3Jt YXRpb24gYWJvdXQgdXNpbmcgdGhlCi1gYGluc3RhbGxfY29weWBgIG1hY3JvLgotCi1UaGUgZGlz YWR2YW50YWdlIG9mIHRoaXMgbWV0aG9kIGlzOiBpZiB3ZSB3YW50IHRvIGluc3RhbGwgbW9yZSB0 aGFuIG9uZQotZmlsZSwgd2UgbmVlZCBvbmUgY2FsbCB0byB0aGUgYGBpbnN0YWxsX2NvcHlgYCBt YWNybyBwZXIgZmlsZS4gVGhpcyBpcwotZXZlbiBoYXJkZXIgaWYgbm90IG9ubHkgYSBzZXQgb2Yg ZmlsZXMgaXMgdG8gYmUgaW5zdGFsbGVkLCBidXQgYSB3aG9sZQotZGlyZWN0b3J5IHRyZWUgd2l0 aCBmaWxlcyBpbnN0ZWFkLgotCi1BZGQgQmluYXJ5IEZpbGVzIHZpYSBhbiBBcmNoaXZlCi1+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0KLUlmIGEgd2hvbGUgdHJlZSBvZiBmaWxlcyBp cyB0byBiZSBpbnN0YWxsZWQsIHdvcmtpbmcgd2l0aCBhICp0YXIqIGJhc2VkCi1hcmNoaXZlIGNv dWxkIG1ha2UgbGlmZSBlYXNpZXIuIEluIHRoaXMgY2FzZSB0aGUgYXJjaGl2ZSBpdHNlbGYgcHJv dmlkZXMKLWFsbCB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gdGhlIGZpbGVzIGFyZSBuZWVkaW5n IHRvIGJlIGluc3RhbGxlZCBpbiBhCi1jb3JyZWN0IG1hbm5lcjoKLQotLSAgdGhlIGZpbGUgaXRz ZWxmIGFuZCBpdHMgbmFtZQotCi0tICB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZSBhbmQgdGhlIGZp bmFsIGxvY2F0aW9uIG9mIGV2ZXJ5IGZpbGUgaW4gdGhpcwotICAgc3RydWN0dXJlCi0KLS0gIHVz ZXIgYW5kIGdyb3VwIElEIG9uIGEgcGVyIGZpbGUgYmFzZQotCi0uLiBjb2RlLWJsb2NrOjogbm9u ZQotCi0gICAgQCQoY2FsbCBpbnN0YWxsX2FyY2hpdmUsIGJpbmFyeV9leGFtcGxlLCAtLCAtLCBc Ci0gICAgICAgPC9wYXRoL3RvL2FuLz5hcmNoaXZlLnRneiwgLykKLQotUmVmZXIgOnJlZjpgaW5z dGFsbF9hcmNoaXZlYCBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCB1c2luZyB0aGUKLWBg aW5zdGFsbF9hcmNoaXZlYGAgbWFjcm8uCi0KLVVzaW5nIGFuIGFyY2hpdmUgY2FuIGJlIHVzZWZ1 bCB0byBpbnN0YWxsIHBhcnRzIG9mIHRoZSByb290IGZpbGVzeXN0ZW0KLXRoYXQgYXJlIG5vdCBj b3ZlcmVkIGJ5IGFueSBvcGVuIHNvdXJjZSBsaWNlbnNlLiBJdHMgcG9zc2libGUgdG8gc2hpcAot dGhlIGJpbmFyaWVzIHdpdGhpbiB0aGUgcmVndWxhciBCU1AsIHdpdGhvdXQgdGhlIG5lZWQgZm9y IHRoZWlyIHNvdXJjZXMuCi1Ib3dldmVyIGl0IGlzIHBvc3NpYmxlIGZvciB0aGUgY3VzdG9tZXIg dG8gcmUtY3JlYXRlIGV2ZXJ5dGhpbmcgcmVxdWlyZWQKLWZyb20gdGhlIEJTUCB0byBnZXQgdGhl aXIgdGFyZ2V0IHVwIGFuZCBydW5uaW5nIGFnYWluLgotCi1Bbm90aGVyIHVzZSBjYXNlIGZvciB0 aGUgYXJjaGl2ZSBtZXRob2QgY291bGQgYmUgdGhlIHN1cHBvcnQgZm9yCi1kaWZmZXJlbnQgZGV2 ZWxvcG1lbnQgdGVhbXMuIE9uZSB0ZWFtIHByb3ZpZGVzIGEgc29mdHdhcmUgY29tcG9uZW50IGlu Ci10aGUgYXJjaGl2ZSBmb3JtYXQsIHRoZSBvdGhlciB0ZWFtIGRvZXMgbm90IG5lZWQgdG8gYnVp bGQgaXQgYnV0IGNhbiB1c2UKLWl0IGluIHRoZSBzYW1lIHdheSB0aGFuIGV2ZXJ5IG90aGVyIHNv ZnR3YXJlIGNvbXBvbmVudC4KLQotQ3JlYXRpbmcgYSBSdWxlcyBGaWxlCi1+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KLQotTGV0IFBUWGRpc3QgY3JlYXRlIG9uZSBmb3IgdXMuCi0KLS4uIGNvZGUtYmxv Y2s6OiB0ZXh0Ci0KLSAgICAkIHB0eGRpc3QgbmV3cGFja2FnZSBmaWxlCi0KLSAgICBwdHhkaXN0 OiBjcmVhdGluZyBhIG5ldyAnZmlsZScgcGFja2FnZToKLQotICAgIHB0eGRpc3Q6IGVudGVyIHBh Y2thZ2UgbmFtZS4uLi4uLi46IG15X2JpbmZpbGVzCi0gICAgcHR4ZGlzdDogZW50ZXIgdmVyc2lv biBudW1iZXIuLi4uLjogMQotICAgIHB0eGRpc3Q6IGVudGVyIHBhY2thZ2UgYXV0aG9yLi4uLi46 IE15IE5hbWUgPG1lQG15LW9yZy5jb20+Ci0gICAgcHR4ZGlzdDogZW50ZXIgcGFja2FnZSBzZWN0 aW9uLi4uLjogcm9vdGZzCi0KLU5vdyB0d28gbmV3IGZpbGVzIGFyZSBwcmVzZW50IGluIHRoZSBC U1A6Ci0KLSMuIGBgcnVsZXMvbXlfYmluZmlsZXMuaW5gYCBUaGUgdGVtcGxhdGUgZm9yIHRoZSBt ZW51Ci0KLSMuIGBgcnVsZXMvbXlfYmluZmlsZXMubWFrZWBgIFRoZSBydWxlcyB0ZW1wbGF0ZQot Ci1Cb3RoIGZpbGVzIG5vdyBtdXN0IGJlIGN1c3RvbWl6ZWQgdG8gbWVldCBvdXIgcmVxdWlyZW1l bnRzLiBEdWUgdG8gdGhlCi1hbnN3ZXIgKnJvb3RmcyogdG8gdGhlIOKAnGBgZW50ZXIgcGFja2Fn ZSBzZWN0aW9uYGDigJ0gcXVlc3Rpb24sIHdlIHdpbGwKLWZpbmQgdGhlIG5ldyBtZW51IGVudHJ5 IGluOgotCi0uLiBjb2RlLWJsb2NrOjogdGV4dAotCi0gICAgUm9vdCBGaWxlc3lzdGVtIC0tLT4K LSAgICAJPCA+IG15X2JpbmZpbGVzIChORVcpCi0KLUVuYWJsaW5nIHRoaXMgbmV3IGVudHJ5IHdp bGwgYWxzbyBydW4gb3VyIHN0YWdlcyBpbgotYGBydWxlcy9teV9iaW5maWxlcy5tYWtlYGAgdGhl IG5leHQgdGltZSB3ZSBlbnRlcjoKLQotLi4gY29kZS1ibG9jazo6IHRleHQKLQotICAgICQgcHR4 ZGlzdCBnbwotCi1DcmVhdGluZyBOZXcgUGFja2FnZSBUZW1wbGF0ZXMKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotCi1Gb3IgbGFyZ2VyIHByb2plY3RzIGl0IGNhbiBiZSBjb252ZW5p ZW50IHRvIGhhdmUgcHJvamVjdCBzcGVjaWZpYyBwYWNrYWdlCi10ZW1wbGF0ZXMuIFRoaXMgY2Fu IGJlIGFjaGlldmVkIGJ5IGVpdGhlciBtb2RpZnlpbmcgZXhpc3RpbmcgdGVtcGxhdGVzIG9yCi1i eSBjcmVhdGluZyBjb21wbGV0ZWx5IG5ldyB0ZW1wbGF0ZXMuCi0KLU1vZGlmeWluZyBhIFRlbXBs YXRlCi1+fn5+fn5+fn5+fn5+fn5+fn5+fgotCi1BIHRlbXBsYXRlIGNhbiBiZSBtb2RpZmllZCBi eSBwcm92aWRpbmcgbmV3IGlucHV0IGZpbGVzLiBUaGlzIGlzIGVhc2llcgotdGhhbiBjcmVhdGlu ZyBhIG5ldyB0ZW1wbGF0ZSBidXQgZG9lcyBub3QgYWxsb3cgdG8gc3BlY2lmeSBuZXcgdmFyaWFi bGVzIHRvCi1zdWJzdGl0dXRlIGluIHRoZSBpbnB1dCBmaWxlcy4KLQotUFRYZGlzdCBsb29rcyBm b3IgdGVtcGxhdGUgZmlsZXMgdGhlIHNhbWUgd2F5IGl0IGxvb2tzIGZvciBydWxlcyBmaWxlcy4g VGhlCi1vbmx5IGRpZmZlcmVuY2UgaXMsIHRoYXQgaXQgc2VhcmNoZXMgaW4gdGhlIGBgdGVtcGxh dGVzL2BgIHN1YmRpcmVjdG9yeS4KLVNvIGEgbW9kaWZpZWQgYGAuL3J1bGVzL3RlbXBsYXRlcy90 ZW1wbGF0ZS10YXJnZXQtbWFrZWBgIGNhbiBiZSB1c2VkIHRvCi10d2VhayB0aGUgYGB0YXJnZXRg YCB0ZW1wbGF0ZS4KLQotQ3JlYXRpbmcgYSBOZXcgVGVtcGxhdGUKLX5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+Ci0KLUZvciBhIGNvbXBsZXRlbHkgbmV3IHRlbXBsYXRlLCBzb21lIGJhc2ggc2NyaXB0 aW5nIGlzIHJlcXVpcmVkLiBBbGwgc2hlbGwKLWNvZGUgbXVzdCBiZSBwbGFjZWQgaW4gYSBmaWxl IG5hbWVkIGxpa2UgdGhpczoKLWBgLi9zY3JpcHRzL2xpYi9wdHhkX2xpYl8qLnNoYGAuCi0KLVRo ZSBtaW5pbXVtIHJlcXVpcmVtZW50IGZvciBhIG5ldyB0ZW1wbGF0ZSBpczoKLS0gIGEgc2hlbGwg ZnVuY3Rpb24gdGhhdCBjcmVhdGVzIHRoZSBuZXcgcGFja2FnZQotLSAgcmVnaXN0ZXJpbmcgdGhl IG5ldyB0ZW1wbGF0ZQotCi0uLiBjb2RlLWJsb2NrOjogc2gKLQotICAgIHB0eGRfdGVtcGxhdGVf bmV3X215cGtnKCkgewotICAgICAgICAjIGNyZWF0ZSB0aGUgcGFja2FnZSBoZXJlCi0gICAgfQot ICAgIGV4cG9ydCAtZiBwdHhkX3RlbXBsYXRlX25ld19teXBrZwotICAgIHB0eGRfdGVtcGxhdGVf aGVscF9saXN0WyR7I3B0eGRfdGVtcGxhdGVfaGVscF9saXN0W0BdfV09Im15cGtnIgotICAgIHB0 eGRfdGVtcGxhdGVfaGVscF9saXN0WyR7I3B0eGRfdGVtcGxhdGVfaGVscF9saXN0W0BdfV09ImNy ZWF0ZSBhd2Vzb21lIG15cGtnIHBhY2thZ2UiCi0KLVBUWGRpc3QgcHJvdmlkZXMgc2V2ZXJhbCBo ZWxwZXIgZnVuY3Rpb25zIHRvIHNpbXBsaWZ5IHRoZSB0ZW1wbGF0ZS4KLVVzaW5nIHRob3NlIGZ1 bmN0aW9ucywgdGhlIHBhY2thZ2UgY3JlYXRpb24gcHJvY2VzcyBpcyBzcGxpdCBpbnRvIHR3bwot cGFydHM6Ci0KLS0gIHF1ZXJ5IHRoZSB1c2VyIGZvciBpbnB1dCBhbmQgZXhwb3J0IHZhcmlhYmxl cy4KLS0gIGNyZWF0ZSB0aGUgbmV3IHBhY2thZ2UgZmlsZXMgZnJvbSB0aGUgdGVtcGxhdGUgc291 cmNlIGZpbGVzIGJ5Ci0gICBzdWJzdGl0dXRpbmcgYWxsIGluc3RhbmNlcyBvZiBgYEA8dmFyaWFi bGU+QGBgIHdpdGggdGhlIHZhbHVlIG9mIHRoZQotICAgY29ycmVzcG9uZGluZyB2YXJpYWJsZS4K LQotQSBzaW1wbGUgdGVtcGxhdGUgZnVuY3Rpb24gY291bGQgbG9vayBsaWtlIHRoaXM6Ci0KLS4u IGNvZGUtYmxvY2s6OiBzaAotCi0gICAgcHR4ZF90ZW1wbGF0ZV9uZXdfbXlwa2coKSB7Ci0gICAg ICAgIHB0eGRfdGVtcGxhdGVfcmVhZF9iYXNpYyAmJgotICAgICAgICBwdHhkX3RlbXBsYXRlX3Jl YWQgImVudGVyIGRvd25sb2FkIHNlY3Rpb24iIERMX1NFQ1RJT04gImZvb2JhciIKLSAgICAgICAg cHR4ZF90ZW1wbGF0ZV9yZWFkX2F1dGhvciAmJgotICAgICAgICBleHBvcnQgc2VjdGlvbj0ibG9j YWxfJHtkbHNlY3Rpb259IiAmJgotICAgICAgICBwdHhkX3RlbXBsYXRlX3dyaXRlX3J1bGVzCi0g ICAgfQotCi1UaGlzIHRlbXBsYXRlIHJlcXVpcmVzIGBgcnVsZXMvdGVtcGxhdGVzL3RlbXBsYXRl LW15cGtnLW1ha2VgYCBhbmQKLWBgcnVsZXMvdGVtcGxhdGVzL3RlbXBsYXRlLW15cGtnLWluYGAg YXMgc291cmNlIGZpbGVzLiBUaGV5IGNvdWxkIGJlCi1kZXJpdmVkIGZyb20gdGhlIGBgdGFyZ2V0 YGAgdGVtcGxhdGUgd2l0aCBhIHNpbXBsZSBtb2RpZmljYXRpb246Ci0KLS4uIGNvZGUtYmxvY2s6 OiBtYWtlCi0KLSAgICBAUEFDS0FHRUBfU1VGRklYCTo9IHRhci54egotICAgIEBQQUNLQUdFQF9V UkwJOj0gaHR0cDovL2RsLm15LWNvbXBhbnkubG9jYWwvZG93bmxvYWRzL0BETF9TRUNUSU9OQC8k KEBQQUNLQUdFQCkuJChAUEFDS0FHRUBfU1VGRklYKQotCi1UaGUgaGVscGVyIGZ1bmN0aW9ucyB0 aGF0IGFyZSB1c2VkIGluIHRoZSBleGFtcGxlIGFib3ZlIGFyZSBkZWZpbmVkIGluCi1gYHNjcmlw dHMvbGliL3B0eGRfbGliX3RlbXBsYXRlLnNoYGAgaW4gdGhlIFBUWGRpc3Qgc291cmNlIHRyZWUu Ci0KLVRoZSB0ZW1wbGF0ZSBpcyBhIG5vcm1hbCBzaGVsbCBmdW5jdGlvbi4gQXJiaXRyYXJ5IHRo aW5ncyBjYW4gYmUgZG9uZSBoZXJlCi10byBjcmVhdGUgdGhlIG5ldyBwYWNrYWdlLiBUaGUgaGVs cGVyIGZ1bmN0aW9ucyBhcmUganVzdCB0aGUgbW9zdAotY29udmVuaWVudCB3YXkgdG8gY3JhdGUg c2ltcGxlIHRlbXBsYXRlcy4gSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBjcmVhdGUKLW1vcmUgZmls ZXMuIEZvciBleGFtcGxlcywgdGhlIGJ1aWx0aW4gYGBnZW5pbWFnZWBgIHRlbXBsYXRlIGNyZWF0 ZXMgYSBleHRyYQotY29uZmlnIGZpbGUgZm9yIHRoZSBuZXcgcGFja2FnZS4KLQotLi4gX2xheWVy cy1pbi1wdHhkaXN0OgotCi1MYXllcnMgaW4gUFRYZGlzdAotLS0tLS0tLS0tLS0tLS0tLS0KLQot Rm9yIGJldHRlciBtYWludGVuYW5jZSBvciBvdGhlciByZWFzb25zLCBhIFBUWGRpc3QgcHJvamVj dCBjYW4gYmUgc3BsaXQKLWludG8gbXVsdGlwbGUgbGF5ZXJzLiBFYWNoIGxheWVyIGhhcyBleGFj dGx5IHRoZSBzYW1lIGRpcmVjdG9yeSBoaWVyYXJjaHkKLWFzIGRlc2NyaWJlZCBpbiA6cmVmOmBk aXJlY3RvcnlfaGllcmFyY2h5YCBhbmQgb3RoZXIgY2hhcHRlcnMuCi0KLUFsbCBsYXllcnMgYXJl IGV4cGxpY2l0bHkgc3RhY2tlZCBpbiB0aGUgZmlsZXN5c3RlbS4gVGhlIHRvcCBsYXllciBpcyB0 aGUKLXdvcmtzcGFjZSBvZiB0aGUgUFRYZGlzdCBwcm9qZWN0LiBBbnkgYGBzZWxlY3RlZF8qYGAg bGlua3MgYW5kIHRoZSBwbGF0Zm9ybQotYnVpbGQgZGlyZWN0b3J5IGFyZSBjcmVhdGVkIGhlcmUu IFRoZSBsYXllciBiZWxvdyBpcyBkZWZpbmVkIGJ5IHRoZQotc3ViZGlyZWN0b3J5IG9yIHN5bWxp bmsgbmFtZWQgYGBiYXNlL2BgLiBNb3JlIGNhbiBiZSBzdGFja2VkIHRoZSBzYW1lCi13YXksIHNv IGBgYmFzZS9iYXNlL2BgIGlzIHRoZSB0aGlyZCBsYXllciBhbmQgc28gb24uCi1JbiBtYW55IHdh eXMsIFBUWGRpc3QgaXRzZWxmIGNhbiBiZSBjb25zaWRlcmVkIGFzIHRoZSBib3R0b20gbGF5ZXIu IFRoaXMgaXMKLWVpdGhlciBpbXBsaWNpdCBvciBleHBsaWNpdCB3aXRoIG9uZSBsYXN0IGBgYmFz ZS9gYCBzeW1saW5rLgotCi1BIHByb2plY3QgY2FuIG92ZXJ3cml0ZSBmaWxlcyBwcm92aWRlZCBi eSBQVFhkaXN0IGluIG1hbnkgZGlmZmVyZW50IHdheXMsCi1lLmcuIHJ1bGUgZmlsZXMgb3IgZmls ZXMgaW5zdGFsbGVkIHdpdGggOnJlZjpgaW5zdGFsbF9hbHRlcm5hdGl2ZWAgZXRjLgotVGhpcyBj b25jZXB0IGV4cGFuZHMgbmF0dXJhbGx5IHRvIGxheWVycy4gRWFjaCBsYXllciBjYW4gb3Zlcndy aXRlIGZpbGVzCi1wcm92aWRlZCBieSBsb3dlciBsYXllcnMgaW4gdGhlIGV4YWN0IHNhbWUgd2F5 LiBBbnkgZmlsZXMgYXJlIGFsd2F5cwotc2VhcmNoZWQgZm9yIGluIGEgc3RyaWN0IGxheWVyIGJ5 IGxheWVyIG9yZGVyLgotCi1Xcml0aW5nIExheWVyIEF3YXJlIFJ1bGVzCi1+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+Ci0KLUZvciB0aGUgbW9zdCBwYXJ0LCBwYWNrYWdlIHJ1bGVzIHdvcmsganVz dCBhcyBleHBlY3RlZCB3aGVuIG11bHRpcGxlIGxheWVycwotYXJlIHVzZWQuIEFueSBsYXllciBz cGVjaWZpYyBoYW5kbGluZyBpcyBkb25lIGltcGxpY2l0bHkgYnkgUFRYZGlzdC4KLUhvd2V2ZXIs IHRoZXJlIGFyZSBhIGZldyB0aGluZ3MgdGhhdCBuZWVkIHNwZWNpYWwgaGFuZGxpbmcuCi0KLVRo ZSB2YXJpYWJsZXMgOnJlZjpgUFRYRElTVF9XT1JLU1BBQ0U8cHR4ZGlzdF93b3Jrc3BhY2U+YCBh bmQKLTpyZWY6YFBUWERJU1RfUExBVEZPUk1DT05GSUdESVJgPHB0eGRpc3RfcGxhdGZvcm1jb25m aWdkaXI+YCBhbHdheXMgcmVmZXIKLXRvIHRoZSBkaXJlY3RvcmllcyBpbiB0aGUgdG9wIGxheWVy LiBUaGVzZSB2YXJpYWJsZXMgbWlnaHQgYmUgdXNlZCBpbiBydWxlcwotZmlsZXMgbGlrZSB0aGlz OgotCi0uLiBjb2RlLWJsb2NrOjogbWFrZQotCi0gICBNWV9LRVJORUxfQ09ORklHIDo9ICQoUFRY RElTVF9QTEFURk9STUNPTkZJR0RJUikva2VybmVsY29uZmlnLnNwZWNpYWwKLQotSWYgdGhlIHJl ZmVyZW5jZWQgZmlsZSBpcyBpbiBhbnkgbGF5ZXIgYnV0IHRoZSB0b3Agb25lIHRoZW4gaXQgd2ls bCBub3QKLWJlIGZvdW5kLiBUbyBoYW5kbGUgdXNlLWNhc2VzIGxpa2UgdGhpcywgdGhlIG1hY3Jv cyA6cmVmOmBpbl9wYXRoYCBhbmQKLTpyZWY6YGluX3BsYXRmb3JtY29uZmlnZGlyYCBjYW4gYmUg dXNlZDoKLQotLi4gY29kZS1ibG9jazo6IG1ha2UKLQotICAgTVlfS0VSTkVMX0NPTkZJRyA6PSAk KGNhbGwgcHR4L2luLXBsYXRmb3JtY29uZmlnZGlyLCBrZXJuZWxjb25maWcuc3BlY2lhbCkKLQot VGhpcyB3YXksIHRoZSBsYXllcnMgYXJlIHNlYXJjaGVkIHRvcCB0byBib3R0b20gdW50aWwgdGhl IGNvbmZpZyBmaWxlIGlzCi1mb3VuZC4KLQotUFRYZGlzdCBDb25maWcgRmlsZXMgd2l0aCBNdWx0 aXBsZSBMYXllcnMKLX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0K LUluIG1hbnkgY2FzZXMgYSBsYXllciBtYXkgd2FudCB0byBtb2RpZnkgdGhlICoqcHR4Y29uZmln KiogYnkgZW5hYmxpbmcgb3IKLWRpc2FibGluZyBzb21lIG9wdGlvbnMuIEFueSBjaGFuZ2VzIG11 c3QgYmUgcHJvcGFnYXRlZCB0aHJvdWdoIHRoZSB3aG9sZQotbGF5ZXIgc3RhY2suCi0KLVRoZSBm ZWF0dXJlcyBhbmQgd29ya2Zsb3cgZGVzY3JpYmVkIGhlcmUgYXBwbHkgdG8gdGhlICoqcHR4Y29u ZmlnKiosIHRoZQotKipwbGF0Zm9ybWNvbmZpZyoqIGFuZCBhbnkgKipjb2xsZWN0aW9uY29uZmln KiogdXNlZCBpbiB0aGUgcHJvamVjdC4KLQotVG8gZG8gdGhpcywgUFRYZGlzdCBzdG9yZXMgYSBk ZWx0YSBjb25maWcgdG8gdGhlIGxheWVyIGJlbG93IGFuZCBhIGZ1bGwKLWNvbmZpZyBmaWxlIGlu IGVhY2ggbGF5ZXIuIElmIHRoZSB0d28gZmlsZXMgYXJlIG1pc3NpbmcgdGhlbiB0aGUgY29uZmln IGlzCi11bmNoYW5nZWQuIFRoZSBib3R0b20gbGF5ZXIgaGFzIG9ubHkgdGhlIGNvbmZpZyBmaWxl IGFuZCBubyBkZWx0YS4KLQotQXQgcnVudGltZSwgUFRYZGlzdCB3aWxsIGFsd2F5cyB1c2UgdGhl IGZ1bGwgY29uZmlnIGZpbGUgaW4gdGhlIHRvcCBsYXllcgotd2hlcmUgdGhlIGNvbmZpZyBleGlz dHMuIEJlZm9yZSBkb2luZyBzbywgaXQgd2lsbCBlbnN1cmUgdGhhdCB0aGUgY29uZmlnIGlzCi1j b25zaXN0ZW50IGFjcm9zcyBhbGwgbGF5ZXJzLiBUaGlzIG1lYW5zIHRoYXQsIGZvciBhbnkgbGF5 ZXIgdGhhdCBjb250YWlucyBhCi1kZWx0YSBjb25maWcsIHRoZSBmdWxsIGNvbmZpZyBmaWxlIG9m IHRoZSBsYXllciBiZWxvdyBoYXMgbm90IGNoYW5nZWQgc2luY2UKLXRoZSBkZWx0YSBjb25maWcg d2FzIGxhc3QgdXBkYXRlZC4gSWYgYW55IGluY29uc2lzdGVuY3kgaXMgZGV0ZWN0ZWQsCi1QVFhk aXN0IHdpbGwgYWJvcnQuCi0KLUZvciBhbnkgY29tbWFuZCB0aGF0IG1vZGlmaWVzIHRoZSBjb25m aWcgZmlsZSwgZXhjZXB0IGBgb2xkY29uZmlnYGAsCi1QVFhkaXN0IHdpbGwgdXNlIGtjb25maWcg aW1wbGljaXRseSBvbiBhbGwgbGF5ZXJzIHRvIGNoZWNrIGlmIHRoZSBjb25maWcKLWZvciB0aGlz IGxheWVyIGlzIHVwIHRvIGRhdGUuIFRoaXMgaXMgYSBzdHJpY3RlciBjaGVjayB0aGFuIHRoZSBj b25zaXN0ZW5jeQotdmFsaWRhdGlvbi4gRm9yIGV4YW1wbGUsIGlmIGEgbmV3IHBhY2thZ2Ugd2Fz IGFkZGVkIHRvIGEgbGF5ZXIgd2l0aG91dAotdXBkYXRpbmcgdGhlICoqcHR4Y29uZmlnKiogdGhl biB0aGlzIHdpbGwgYmUgZGV0ZWN0ZWQgYW5kIFBUWGRpc3Qgd2lsbAotYWJvcnQuIElmIGFsbCBv dGhlciBsYXllcnMgYXJlIHVwIHRvIGRhdGUsIHRoZW4gUFRYZGlzdCB3aWxsIHVzZSB0aGUgZGVs dGEKLWNvbmZpZyBvZiB0aGUgdG9wIGxheWVyLCBhcHBseSBpdCB0byB0aGUgZnVsbCBjb25maWcg b2YgdGhlIGxheWVyIGJlbG93Ci1hbmQgZXhlY3V0ZSB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgd2l0 aCB0aGUgcmVzdWx0aW5nIGNvbmZpZyBmaWxlLgotCi0uLiBub3RlOjogSWYgdGhlIGNvbmZpZyBm aWxlIGRvZXMgbm90IGV4aXN0IHlldCBvbiB0aGUgdG9wIGxheWVyLCB0aGVuIGl0Ci0gIHdpbGwg YmUgY3JlYXRlZCBpZiBjaGFuZ2VzIHRvIHRoZSBjb25maWcgYXJlIG1hZGUuIFNpbWlsYXJseSB0 aGUgY29uZmlnCi0gIHdpbGwgYmUgZGVsZXRlZCBpZiB0aGUgZGVsdGEgaXMgZW1wdHkgYWZ0ZXIg dGhlIGNoYW5nZXMuIEluIGVpdGhlciBjYXNlCi0gIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gdXBk YXRlIGFueSBgYHNlbGVjdGVkXypgYCBsaW5rIHRvIHBvaW50IHRvIHRoZQotICBjb3JyZWN0IGNv bmZpZy4KLQotSWYgUFRYZGlzdCBkZXRlY3RzIGFuIGluY29uc2lzdGVuY3kgb3IgYW4gb3V0IG9m IGRhdGUgY29uZmlnIGZpbGUgdGhlbiBpdAotbXVzdCBiZSB1cGRhdGVkIGJlZm9yZSB0aGV5IGNh biBiZSB1c2VkLiBUaGlzIGNhbiBiZSBkb25lIGJ5IHVzaW5nIHRoZQotYGBvbGRjb25maWdgYCBj b21tYW5kLiBJbiB0aGlzIHNwZWNpYWwgY2FzZSwgUFRYZGlzdCB3aWxsIGl0ZXJhdGUgZnJvbSB0 aGUKLWJvdHRvbSB0byB0aGUgdG9wIGxheWVyIGFuZCBydW4gYGBvbGRjb25maWdgYCBmb3IgZWFj aCBvZiB0aGVtLiBJdCB3aWxsCi11c2UgdGhlIGRlbHRhIGNvbmZpZyBhcHBsaWVkIHRvIHRoZSBm dWxsIGNvbmZpZyBvZiB0aGUgbGF5ZXIgYmVsb3cgYXQgZWFjaAotc3RlcC4gVGhpcyBtZWFucyB0 aGF0IGl0J3MgcG9zc2libGUgdG8gZW5hYmxlIG9yIGRpc2FibGUgYSBvcHRpb24gaW4gdGhlCi1i b3R0b20gbGF5ZXIgYW5kIGBgb2xkY29uZmlnYGAgd2lsbCBwcm9wYWdhdGUgdGhpcyBjaGFuZ2Ug dG8gYWxsIG90aGVyCi1sYXllcnMuCi0KLVBhY2thZ2VzIHdpdGgga2NvbmZpZyBCYXNlZCBDb25m aWcgRmlsZXMKLX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQotRm9y IHBhY2thZ2VzIHN1Y2ggYXMgdGhlIExpbnV4IGtlcm5lbCB0aGF0IGhhdmUga2NvbmZpZyBiYXNl ZCBjb25maWcgZmlsZXMsCi1hIGxvdCBvZiB0aGUgaW5mcmFzdHJ1Y3R1cmUgdG8gaGFuZGxlIGNv bmZpZyBmaWxlcyBhbmQgZGVsdGFzIGFjcm9zcwotbXVsdGlwbGUgbGF5ZXJzIGNhbiBiZSByZXVz ZWQuIENvbnNpc3RlbmN5IHZhbGlkYXRpb24gaXMgZG9uZSBpbXBsaWNpdGx5Ci1hbmQgYGBtZW51 Y29uZmlnYGAgYW5kIG90aGVyIGtjb25maWcgY29tbWFuZHMgd2lsbCB1c2UgY29uZmlnIGZpbGVz IGFuZAotZGVsdGFzIGFzIGV4cGVjdGVkLgotCi1JdCdzIG5vdCBwb3NzaWJsZSB0byBpbXBsaWNp dGx5IHJ1biBgYG9sZGNvbmZpZ2BgIG9uIG90aGVyIGxheWVycyAodGhpcyBtYXkKLXJlcXVpcmUg YSBkaWZmZXJlbnQgc291cmNlIHRyZWUgZm9yIHRoZSBwYWNrYWdlcyksIHNvIGFueSBpbmNvbnNp c3RlbmNpZXMKLW11c3QgYmUgcmVzb2x2ZWQgbWFudWFsbHkgYnkgcnVubmluZyBgYG9sZGNvbmZp Z2BgIGV4cGxpY2l0bHkgb24gZWFjaAotbGF5ZXIuCi0KLVRoZSBtYWtlIG1hY3JvcyB0aGF0IHBy b3ZpZGUgdGhlc2UgZmVhdHVyZXMgYXJlIGN1cnJlbnRseSB1c2VkIGJ5IHRoZQotYmFyZWJveCBh bmQga2VybmVsIHBhY2thZ2VzIGFuZCB0ZW1wbGF0ZXMuCisuLiB0b2N0cmVlOjoKKyAgIDpnbG9i OgorICAgOm1heGRlcHRoOiAyCisKKyAgIGRldl9kaXJfaGllcmFyY2h5CisgICBkZXZfYWRkX25l d19wa2dzCisgICBkZXZfYWRkX2Jpbl9vbmx5X2ZpbGVzCisgICBkZXZfY3JlYXRlX25ld19wa2df dGVtcGxhdGVzCisgICBkZXZfbGF5ZXJzX2luX3B0eGRpc3QKLS0gCjIuMjcuMAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnB0eGRpc3QgbWFpbGluZyBs aXN0CnB0eGRpc3RAcGVuZ3V0cm9uaXguZGUKVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtYWlsIHdp dGggc3ViamVjdCAidW5zdWJzY3JpYmUiIHRvIHB0eGRpc3QtcmVxdWVzdEBwZW5ndXRyb25peC5k ZQo=