看板 FB_announce 關於我們 聯絡資訊
RnJlZUJTRCBRdWFydGVybHkgU3RhdHVzIFJlcG9ydCwgSnVseS1TZXB0ZW1iZXIgMjAxMwoKSW50 cm9kdWN0aW9uCgogICBUaGlzIHJlcG9ydCBjb3ZlcnMgRnJlZUJTRC1yZWxhdGVkIHByb2plY3Rz IGJldHdlZW4gSnVseSBhbmQgU2VwdGVtYmVyCiAgIDIwMTMuIFRoaXMgaXMgdGhlIHRoaXJkIG9m IGZvdXIgcmVwb3J0cyBwbGFubmVkIGZvciAyMDEzLgoKICAgV2UgaGF2ZSBoYWQgYW5vdGhlciB2 ZXJ5IGFjdGl2ZSB0aHJlZSBtb250aHMgaW4gdGhlIEZyZWVCU0Qgd29ybGQsCiAgIGluY2x1ZGlu ZyB0d28gRGV2ZWxvcGVyIFN1bW1pdHMgKEJTRENhbSBhbmQgRXVyb0JTRGNvbikgdGhhdCB3aWxs IGJlCiAgIGNvdmVyZWQgaW4gc2VwYXJhdGUgc3RhdHVzIHJlcG9ydHMuIEZyZWVCU0QgY29udGlu dWVzIHRvIHB1c2ggaGFyZCBvbgogICBzZWN1cml0eSwgd2l0aCBpbXByb3ZlbWVudHMgdG8gYm90 aCB0aGUgcGVyZm9ybWFuY2UgYW5kIHJlbGlhYmlsaXR5IG9mCiAgIHRoZSByYW5kb20gbnVtYmVy IGdlbmVyYXRpb24sIGFuZCBtb3JlIGNvbXBhcnRtZW50YWxpc2F0aW9uIGluIHByb2dyYW1zCiAg IGluIHRoZSBiYXNlIHN5c3RlbS4gRm9yIGRldmVsb3BlcnMsIHRoZXJlIGlzIHdvcmsgb24gYSBu ZXcgbW9kZXJuCiAgIGRlYnVnZ2VyLiBUaGVyZSBpcyBhbHNvIGEgc2lnbmlmaWNhbnQgYW1vdW50 IG9mIG9mIG1vZGVybml6YXRpb24gaW4gdGhlCiAgIHN1cHBvcnQgZm9yIE9iamVjdGl2ZS1DIGFu ZCBBZGEgdmlhIHBvcnRzLCBtYWtpbmcgRnJlZUJTRCBhIGZpcnN0LXJhdGUKICAgcGxhdGZvcm0g Zm9yIGRldmVsb3BpbmcgaW4gZWl0aGVyIGxhbmd1YWdlLCBpbiBhZGRpdGlvbiB0byB0aGUgZXhp c3RpbmcKICAgQysrMTEgYW5kIEMxMSBzdXBwb3J0IGFscmVhZHkgcHJlc2VudCBpbiB0aGUgYmFz ZSBzeXN0ZW0uIFNlcnZlciB1c2VycwogICB3aWxsIGJlIHBsZWFzZWQgdG8gc2VlIGltcHJvdmVt ZW50cyBpbiB0aGUgaVNDU0kgc3RhY2sgYW5kIHNjYWxhYmlsaXR5CiAgIGFsbG93aW5nIG92ZXIg YSBtaWxsaW9uIEkvTyBvcGVyYXRpb25zIHBlciBzZWNvbmQgb24gY29tbW9kaWZ5CiAgIGhhcmR3 YXJlLCB3aGlsZSBkZXNrdG9wIHVzZXJzIHdpbGwgc2VlIGltcHJvdmVtZW50cyBpbiBYIHN1cHBv cnQgZm9yCiAgIG5ldyBHUFVzIGFuZCBmb3IgcG9zc2libGUgWCByZXBsYWNlbWVudHMuCgogICBU aGFua3MgdG8gYWxsIHRoZSByZXBvcnRlcnMgZm9yIHRoZSBleGNlbGxlbnQgd29yayEgVGhpcyBy ZXBvcnQKICAgY29udGFpbnMgMzAgZW50cmllcyBhbmQgd2UgaG9wZSB5b3UgZW5qb3kgcmVhZGlu ZyBpdC4KCiAgIFRoZSBkZWFkbGluZSBmb3Igc3VibWlzc2lvbnMgY292ZXJpbmcgYmV0d2VlbiBP Y3RvYmVyIGFuZCBEZWNlbWJlciwgMjAxMwogICBpcyBKYW51YXJ5IDE0dGgsIDIwMTQuCiAgICAg X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCgpGcmVlQlNEIFRlYW0gUmVwb3J0cwoKICAgICAqIEZyZWVCU0QgQ29yZSBUZWFt CiAgICAgKiBGcmVlQlNEIFBvcnQgTWFuYWdlbWVudCBUZWFtCiAgICAgKiBGcmVlQlNEIFBvc3Rt YXN0ZXIgVGVhbQogICAgICogRnJlZUJTRCBSZWxlYXNlIEVuZ2luZWVyaW5nIFRlYW0KClByb2pl Y3RzCgogICAgICogU3RhdGljIENvZGUgQW5hbHlzaXMKCktlcm5lbAoKICAgICAqIEFFUy1OSSBJ bXByb3ZlbWVudHMgZm9yIEdFTEkKICAgICAqIEF0b21pYyAiY2xvc2Utb24tZXhlYyIKICAgICAq IENvbnRpbnVhdGlvbiBvZiB0aGUgTmV3Y29ucyBQcm9qZWN0CiAgICAgKiBHRU9NIERpcmVjdCBE aXNwYXRjaCBhbmQgRmluZS1HcmFpbmVkIENBTSBMb2NraW5nCiAgICAgKiBOYXRpdmUgaVNDU0kg U3RhY2sKICAgICAqIFJld29ya2luZyByYW5kb20oNCkKICAgICAqIFNESU8gRHJpdmVyCiAgICAg KiBWaXJ0SU8gTmV0d29yayBNdWx0aXF1ZXVlCiAgICAgKiBWTXdhcmUgVk1YTkVUMyBEcml2ZXIK CkFyY2hpdGVjdHVyZXMKCiAgICAgKiBGcmVlQlNEIG9uIEN1YmllYm9hcmQyCiAgICAgKiBGcmVl QlNEL0VDMgogICAgICogRnJlZUJTRC9wc2VyaWVzCiAgICAgKiBGcmVlQlNEL3NwYXJjNjQKICAg ICAqIFN1cGVycGFnZXMgZm9yIEFSTXY3CgpVc2VybGFuZCBQcm9ncmFtcwoKICAgICAqIENhcHNp Y3VtCiAgICAgKiBMTERCIERlYnVnZ2VyIFBvcnQKClBvcnRzCgogICAgICogRnJlZUJTRCBBZGEg UG9ydHMKICAgICAqIEZyZWVCU0QgUHl0aG9uIFBvcnRzCiAgICAgKiBHTk9NRS9GcmVlQlNECiAg ICAgKiBHTlVzdGVwIG9uIEZyZWVCU0QKICAgICAqIFguT3JnIG9uIEZyZWVCU0QKCkRvY3VtZW50 YXRpb24KCiAgICAgKiBGcmVlQlNEIERvY3VtZW50YXRpb24gUHJvamVjdCBQcmltZXIgRWRpdAog ICAgICogVGhlIGVudGl0aWVzIERvY3VtZW50YXRpb24gQnJhbmNoCgpHb29nbGUgU3VtbWVyIG9m IENvZGUKCiAgICAgKiBEb3dubG9hZCBNYW5hZ2VyIFNlcnZpY2UgZm9yIHRoZSBQb3J0cyBDb2xs ZWN0aW9uCgpNaXNjZWxsYW5lb3VzCgogICAgICogVGhlIEZyZWVCU0QgRm91bmRhdGlvbgogICAg IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwoKQUVTLU5JIEltcHJvdmVtZW50cyBmb3IgR0VMSQoKICAgVVJMOiBodHRwOi8v c3Zud2ViLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzI1NTE4NwoKICAgQ29udGFjdDogSm9o bi1NYXJrIEd1cm5leSA8am1nQEZyZWVCU0Qub3JnPgoKICAgQW4gZW5oYW5jZW1lbnQgdG8gdGhl IEFFUy1OSSBpbXBsZW1lbnRhdGlvbiBmb3IgT3BlbkNyeXB0bywgdGhlCiAgIGtlcm5lbCdzIGNy eXB0b2dyYXBoeSBmcmFtZXdvcmssIGhhcyBiZWVuIGNvbW1pdHRlZCB0aGF0IHNpZ25pZmljYW50 bHkKICAgaW1wcm92ZXMgQUVTLVhUUyBhbmQgQUVTLUNCQyBkZWNyeXB0aW9uIHBlcmZvcm1hbmNl LiBUaGlzIGdpdmVzIGdlbGkoOCkKICAgYXJvdW5kIGEgdGhyZWUgdGltZXMgcGVyZm9ybWFuY2Ug Ym9vc3Qgb24gZ25vcCg4KSB1c2luZyBBRVMtWFRTCiAgIGNvbXBhcmVkIHRvIHRoZSBvbGQgY29k ZS4KCiAgIFRoZXNlIGltcHJvdmVtZW50cyBhcmUgYXZhaWxhYmxlIHRvIHVzZXJzIG9mIHRoZSBP cGVuQ3J5cHRvIGZyYW1ld29yawogICBhbmQgY3J5cHRvKDQpLgogICAgIF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKQXRv bWljICJjbG9zZS1vbi1leGVjIgoKICAgVVJMOiBodHRwczovL3dpa2kuZnJlZWJzZC5vcmcvQXRv bWljQ2xvc2VPbkV4ZWMKCiAgIENvbnRhY3Q6IEppbGxlcyBUam9lbGtlciA8amlsbGVzQEZyZWVC U0Qub3JnPgoKICAgSWYgdGhyZWFkcyBvciBzaWduYWwgaGFuZGxlcnMgY2FsbCBmb3JrKCkgYW5k IGV4ZWMoKSwgZmlsZSBkZXNjcmlwdG9ycwogICBtYXkgYmUgcGFzc2VkIHVuZGVzaXJhYmx5IHRv IGNoaWxkIHByb2Nlc3Nlcywgd2hpY2ggbWF5IGxlYWQgdG8gaGFuZ3MKICAgKGlmIGEgcGlwZSBp cyBub3QgY2xvc2VkKSwgZXhjZWVkaW5nIHRoZSBmaWxlIGRlc2NyaXB0b3IgbGltaXQsIGFuZAog ICBzZWN1cml0eSBwcm9ibGVtcyAoaWYgdGhlIGNoaWxkIHByb2Nlc3MgaGFzIGxvd2VyIHByaXZp bGVnZSkuIE9uZQogICBzb2x1dGlvbiBpcyB2YXJpb3VzIG5ldyBBUElzIHRoYXQgc2V0IHRoZSAi Y2xvc2Utb24tZXhlYyIgZmxhZwogICBhdG9taWNhbGx5IHdpdGggYWxsb2NhdGluZyBhIGZpbGUg ZGVzY3JpcHRvci4gU29tZSBleGlzdGluZyBzb2Z0d2FyZQogICB3aWxsIHVzZSB0aGUgbmV3IGZl YXR1cmVzIGlmIHByZXNlbnQgb3Igd2lsbCBldmVuIHJlZnVzZSB0byBjb21waWxlCiAgIHdpdGhv dXQgdGhlbS4KCiAgIFdpdGggbWtvc3RlbXAoKSwgZHVwMygpLCBhbmQgYSBjaGFuZ2UgdG8gbW9k ZXMgb2YgZm9wZW4oKSBhbmQKICAgZnJlb3BlbigpLCBldmVyeXRoaW5nIHByb3Bvc2VkIGluIEF1 c3RpbiBHcm91cCBpc3N1ZSAjNDExIGhhcyBub3cgYmVlbgogICBpbXBsZW1lbnRlZC4gRm9yIGFs bCBQT1NJWC1zcGVjaWZpZWQgZnVuY3Rpb25zIHRoYXQgYWxsb2NhdGUgZmlsZQogICBkZXNjcmlw dG9ycywgaXQgaXMgcG9zc2libGUgdG8gcmVxdWVzdCB0aGF0IHRoZSBuZXcgZGVzY3JpcHRvciBi ZSBzZXQKICAgY2xvc2Utb24tZXhlYyBhdG9taWNhbGx5LgoKICAgQWRkaXRpb25hbGx5LCBtYW55 IGZpbGUgZGVzY3JpcHRvcnMgdXNlZCBpbnRlcm5hbGx5IGJ5IGxpYmMgYW5kIGxpYnV0aWwKICAg bm93IGhhdmUgdGhlIGNsb3NlLW9uLWV4ZWMgYml0IHNldC4KICAgICBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCkNhcHNp Y3VtCgogICBDb250YWN0OiBQYXdlbCBKYWt1YiBEYXdpZGVrIDxwamRARnJlZUJTRC5vcmc+Cgog ICBDYXBzaWN1bSBpcyB0aGUgRnJlZUJTRCBzYW5kYm94aW5nIHN1YnN5c3RlbSwgd2hpY2ggcHJl c2VudHMKICAgcHJvZ3JhbW1lcnMgd2l0aCBhIGNhcGFiaWxpdHkgbW9kdWxlIGFsbG93aW5nIGZp bmUtZ3JhaW5lZCBkZWxlZ2F0aW9uCiAgIG9mIHJpZ2h0cyB0byBsZXNzLXByaXZpbGVnZWQgcHJv Y2Vzc2VzLiBDYXNwZXIgaXMgYSBmcmllbmRseSBkYWVtb24KICAgdGhhdCBwcm92aWRlcyBzZXJ2 aWNlcyB0byBzYW5kYm94ZWQgcHJvY2Vzc2VzLCBhbGxvd2luZyBwb2xpY3ktYmFzZWQKICAgYWNj ZXNzIHRvIHByaXZpbGVnZWQgc2VydmljZXMgc3VjaCBhcyBETlMgcmVzb2x1dGlvbi4KCiAgIFRo ZSB3b3JrIG9uIENhcHNpY3VtIGFuZCByZWxhdGVkIHByb2plY3RzIChzdWNoIGFzIENhc3Blciwg bGlibnYsIGV0Yy4pCiAgIGlzIHByb2dyZXNzaW5nIG5pY2VseS4gQW4gb3ZlcmhhdWwgb2YgdGhl IGNhcF9yaWdodHNfdCB3YXMgY29tbWl0dGVkIHRvCiAgIEZyZWVCU0QgaGVhZCBhbmQgd2lsbCBi ZSBpbmNsdWRlZCBpbiAxMC4wLiBUaGlzIGFsbG93cyB1cyB0byBoYXZlIG1vcmUKICAgY2FwYWJp bGl0eSByaWdodHMgb24gZmlsZSBkZXNjcmlwdG9ycyB0aGFuIHRoZSBwcmV2aW91cyBsaW1pdCBv ZiA2NAogICByaWdodHMsIHdoaWNoIHdhcyBhbG1vc3QgcmVhY2hlZC4gVGhpcyBjaGFuZ2UgaXMg bm90IGJhY2t3YXJkCiAgIGNvbXBhdGlibGUsIHNvIGl0IHdhcyB2ZXJ5IGltcG9ydGFudCB0byBn ZXQgaXQgaW50byAxMC4wLgoKICAgbGlibnYsIHVzZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2Vl biBDYXNwZXIgc2VydmljZXMgYW5kIGNvbnN1bWVycywKICAgYnV0IHdoaWNoIHdpbGwgaG9wZWZ1 bGx5IGJlIHVzZWQgbW9yZSB3aWRlbHksIGlzIGZpbmFsaXplZCBhbmQgY29tZXMKICAgd2l0aCBh IG5pY2Ugc2V0IG9mIHJlZ3Jlc3Npb24gdGVzdHMuCgogICBUaGUgbnVtYmVyIG9mIGFwcGxpY2F0 aW9ucyBzYW5kYm94ZWQgdXNpbmcgdGhlIENhcHNpY3VtIGZyYW1ld29yayBpcwogICBpbmNyZWFz aW5nLiBXZSBoYXZlIGFyb3VuZCAxMCBvZiB0aGVtIGFscmVhZHkgaW4gYmFzZSBhbmQgbW9yZSB0 aGF0IGFyZQogICBub3QgeWV0IGNvbW1pdHRlZC4KCiAgIFRoaXMgcHJvamVjdCBpcyBiZWluZyBz cG9uc29yZWQgYnkgdGhlIEZyZWVCU0QgRm91bmRhdGlvbi4KCk9wZW4gdGFza3M6CgogICAgMS4g RmluaXNoIGRvY3VtZW50YXRpb24gb2YgQ2FzcGVyIGFuZCBpdHMgc2VydmljZXMuCiAgICAyLiBJ bXBsZW1lbnQgcmVncmVzc2lvbiB0ZXN0cyBmb3IgQ2FzcGVyIHNlcnZpY2VzLgogICAgMy4gRmlu aXNoIGRvY3VtZW50YXRpb24gZm9yIGxpYm52LgogICAgNC4gU3RhcnQgbWFraW5nIGxpYmMgbW9y ZSBzYW5kYm94LWZyaWVuZGx5LCB0aGF0IGlzLCBtb2RpZnlpbmcKICAgICAgIGZ1bmN0aW9ucyBz dWNoIGFzIHN0cmVycm9yKDMpLCBzdHJzaWduYWwoMyksIGxvY2FsdGltZSgzKSwKICAgICAgIGxv Z2luX2dldCooKSwgZ2V0c2VydmVudCgzKSwgZ2V0cHJvdGVudCgzKSwgYW5kIGdldHJwY2VudCgz KSB3aGljaAogICAgICAgY3VycmVudGx5IG9wZW4gZmlsZXMgb24gZmlyc3QgdXNlLCB3aGljaCBt aWdodCBiZSB0b28gbGF0ZSBpZiB3ZQogICAgICAgYXJlIGFscmVhZHkgaW4gYSBjYXBhYmlsaXR5 LW1vZGUgc2FuZGJveC4KICAgIDUuIFJldGhpbmsgdGhlIHN5c3RlbS5maWxlc3lzdGVtIENhc3Bl ciBzZXJ2aWNlIHRvIGFsbG93IGZvciBlYXN5CiAgICAgICBjb21wYXJ0bWVudGFsaXphdGlvbiBv ZiB2YXJpb3VzIGNvbW1hbmQtbGluZSB0b29scyB0aGF0IG9wZXJhdGUgb24KICAgICAgIG11bHRp cGxlIGZpbGVzLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwoKQ29udGludWF0aW9uIG9mIHRoZSBOZXdjb25zIFBy b2plY3QKCiAgIFVSTDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9iYXNlL3VzZXIvZWQvbmV3Y29u cy8KCiAgIENvbnRhY3Q6IEFsZWtzYW5kciBSeWJhbGtvIDxyYXlARnJlZUJTRC5vcmc+CgogICBU aGUgTmV3Y29ucyBwcm9qZWN0IGlzIGFpbWVkIHRvIHJlcGxhY2UgdGhlIG9sZCBzeXNjb25zKDQp LWJhc2VkCiAgIHZpcnR1YWwgdGVybWluYWxzLiBUaGUgbWFpbiBvYmplY3RpdmVzIGFyZTogc3Vw cG9ydCBVbmljb2RlIGNoYXJhY3RlcnMsCiAgIGFuZCBtb3ZlIGF3YXkgZnJvbSB0aGUgZGVwZW5k ZW5jeSBvbiBmaXhlZCBWR0EgYW5kIFZFU0EgZ3JhcGhpY3MgbW9kZXMKICAgYW5kIGJ1aWx0LWlu IEJJT1Mgc2VydmljZXMuCgogICBUaGlzIHByb2plY3Qgd2FzIG9yaWdpbmFsbHkgc3RhcnRlZCBi eSBFZCBTY2hvdXRlbiwgYW5kIGl0IGFscmVhZHkKICAgZmVhdHVyZWQgdGhlIGZvbGxvd2luZyBm ZWF0dXJlcyAoYW1vbmcgbWFueSBvdGhlcnMpIGluIDIwMTM6CiAgICAgKiBVbmljb2RlIGZvbnRz IHdpdGggTGF0aW4sIEN5cmlsbGljIGFuZCBzb21lIG1vcmUgc2ltcGxlIGNoYXJhY3RlcgogICAg ICAgc2V0cy4KICAgICAqIFVuaWNvZGUgb3V0cHV0IHN1cHBvcnQuCiAgICAgKiBHcmFwaGljcyBt b2RlIHN1cHBvcnQuCiAgICAgKiBUZXh0IG1vZGUgc3VwcG9ydC4KICAgICAqIHN5c21vdXNlKDQp IHN1cHBvcnQsIHdpdGhvdXQgY29weS9wYXN0ZS4KCiAgIEFuZCB0aGVzZSBoYXZlIGJlZW4gZXh0 ZW5kZWQgYnkgdGhlIGZvbGxvd2luZyBpdGVtcyByZWNlbnRseToKICAgICAqIEhpc3RvcnksIHRo YXQgaXMsIHRoZSBhYmlsaXR5IHRvIHNjcm9sbCB0aHJvdWdoIHRoZSB0ZXJtaW5hbAogICAgICAg aGlzdG9yeS4gVGhlIG9sZCwgc2VwYXJhdGUgaGlzdG9yeSBidWZmZXIgaGFzIGJlZW4gcmVtb3Zl ZC4KICAgICAqIFRoZSBoaXN0b3J5IGlzIGltcGxlbWVudGVkIGJ5IGEgY2lyY3VsYXIgYnVmZmVy IHdoaWNoIGhhcyBubyByaXNrCiAgICAgICBvZiBvdmVyZmxvdywgYW5kIHNjcm9sbGluZyBhcHBl YXJzICJ1bmxpbWl0ZWQiLgogICAgICogVlRfUFJPQ0VTUyBtb2RlLCBhIHdheSB0byBob2xkIHRo ZSB0ZXJtaW5hbCBhbmQgcHJldmVudCB0ZXJtaW5hbAogICAgICAgc3dpdGNoaW5nLiBGb3IgZXhh bXBsZSwgWC5PcmcgdXNlcyB0aGlzIGZlYXR1cmUgdG8gcHJldmVudCB0aGUgdXNlcgogICAgICAg ZnJvbSBzd2l0Y2hpbmcgdG8gYSBub24tWCB0ZXJtaW5hbC4KICAgICAqIGRybTIvZmJfaGVscGVy LCB0aGUgS01TIGRyaXZlci4gVGhpcyBiaW5kcyBOZXdjb25zIHRvIGZyYW1lYnVmZmVycwogICAg ICAgY3JlYXRlZCB0aGUgRFJNLWVuYWJsZWQgdmlkZW8gZHJpdmVycyBpbiB0aGUga2VybmVsIChz dWNoIGFzCiAgICAgICBpOTE1a21zIGFuZCByYWRlb25rbXMpLgogICAgICogRHluYW1pYyBhdHRh Y2htZW50IG9mIFZUIGRyaXZlcnMsIHZ0X2FsbG9jYXRlKCkgdG8gYWxsb3cgYXR0YWNoaW5nCiAg ICAgICBjb25zb2xlIHZpZGVvIGRyaXZlcnMgYXQgYSBsYXRlciBwb2ludCB3aGVyZSBmcmFtZWJ1 ZmZlciBvd25lciBjYW4KICAgICAgIG1hbmFnZSB0aGUgaW5pdGlhbGl6YXRpb24uIFRoaXMgaXMg Zm9yIEtNUyBhbmQgZGV2aWNlcyB3aXRob3V0CiAgICAgICBlYXJseSBncmFwaGljcyBzdXBwb3J0 LgoKICAgU3VwcG9ydGVkIHN0YXJ0dXAgbW9kZXMgZm9yIEtNUzoKICAgICAqIFN0YXJ0IHdpdGhv dXQgVlQgZ3JhcGhpY3MgZHJpdmVycywgdGhlbiBsb2FkIEtNUy4KICAgICAqIFN0YXJ0IHdpdGgg VkdBLCB0aGVuIGxvYWQgS01TLgogICAgICogUHJlbG9hZCBLTVMsIHRoZW4gdGhlIEtNUyBkcml2 ZXIgd2lsbCBiZSBhdHRhY2hlZCB0byB0aGUgb3V0cHV0LgogICAgICogUHJlbG9hZCBLTVMsIHN0 YXJ0IHdpdGggVkdBLCB0aGVuIEtNUyBkcml2ZXIgd2lsbCByZXBsYWNlIHRoZSBWR0EKICAgICAg IG91dHB1dC4KCiAgIFRoaXMgcHJvamVjdCBpcyBiZWluZyBzcG9uc29yZWQgYnkgVGhlIEZyZWVC U0QgRm91bmRhdGlvbi4gTWFueSB0aGFua3MKICAgdG8gRWQgU2Nob3V0ZW4sIHdobyBzdGFydGVk IHRoZSBOZXdjb25zIHByb2plY3QgYW5kIGRpZCBtb3N0IG9mIHRoZQogICB3b3JrLgoKT3BlbiB0 YXNrczoKCiAgICAxLiBJbXBsZW1lbnQgYSBHZW5lcmljIEZyYW1lYnVmZmVyIGludGVyZmFjZSwg YSBzaW1wbGUgaW50ZXJmYWNlIHRvCiAgICAgICBvZmZlciBkaXJlY3QgYWNjZXNzIHRvIHRoZSBm cmFtZWJ1ZmZlciBmcm9tIHRoZSB1c2VybGFuZCAodmlhCiAgICAgICAvZGV2L2ZiKikgYW5kIGF1 dG9tYXRpYyBtYW5hZ2VtZW50IG9mIHZpcnR1YWwgdGVybWluYWxzIGJ5IE5ld2NvbnMuCiAgICAy LiBNb3VzZSBzdXBwb3J0LCBjb3B5L3Bhc3RlIHVzaW5nIHN5c21vdXNlKDQpLgogICAgMy4gSW1w cm92ZSBsb2NraW5nLgogICAgNC4gQnVnIGZpeGVzLgogICAgNS4gSW50ZWdyYXRlIGludG8gRnJl ZUJTRCBoZWFkLgogICAgNi4gSW50ZWdyYXRlIGludG8gRnJlZUJTRCAxMC4wLgogICAgNy4gSW1w bGVtZW50IG1hcHBpbmcgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgdG8gVW5pY29kZSBvbiBrZXlib2Fy ZAogICAgICAgaW5wdXQuCiAgICA4LiBBZGFwdCBleGlzdGluZyBzY3JlZW4gc2F2ZXJzLgogICAg OS4gTGFzdCBidXQgbm90IGxlYXN0LCB0ZXN0aW5nIGlzIHdlbGNvbWUhCiAgICAgX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CgpEb3dubG9hZCBNYW5hZ2VyIFNlcnZpY2UgZm9yIHRoZSBQb3J0cyBDb2xsZWN0aW9uCgogICBV Ukw6IGh0dHBzOi8vd2lraS5mcmVlYnNkLm9yZy9TdW1tZXJPZkNvZGUyMDEzL0ludGVsbGVnZW50 RG93bmxvYWRNYW5hZ2VyCiAgIFVSTDogaHR0cHM6Ly93aWtpLmZyZWVic2Qub3JnL0lkZWFzUGFn ZS9JRE1TCgogICBDb250YWN0OiBBbWJhcmlzaGEgQmhhdGxhcGVudW1hcnRoaSA8YW1iYXJpc2hh QGZyZWVic2Qub3JnPgogICBDb250YWN0OiBYaW4gTGkgPGRlbHBoaWpAZnJlZWJzZC5vcmc+Cgog ICBUaGlzIGlzIGEgR29vZ2xlIFN1bW1lciBvZiBDb2RlIDIwMTMgcHJvamVjdCB0aGF0IGFpbXMg dG8gcmVwbGFjZSB0aGUKICAgZmV0Y2goMSktYmFzZWQgbWV0aG9kIGZvciBnZXR0aW5nIGRpc3Ry aWJ1dGlvbiBmaWxlcywgc3VjaCBhcyBzb3VyY2UKICAgdGFyYmFsbHMsIGZvciB0aGUgdGhpcmQt cGFydHkgYXBwbGljYXRpb25zIChwb3J0cykgd2l0aCBhbiBpbnRlbGxpZ2VudAogICBEb3dubG9h ZCBNYW5hZ2VyIFNlcnZpY2UgKHNlZSBsaW5rcyBmb3IgbW9yZSBpbmZvcm1hdGlvbikuCgogICBB bGwgdGhlIG1vZHVsZXMgaGlnaGxpZ2h0ZWQgaW4gdGhlIHByb2plY3Qgd2lraSBoYXZlIGJlZW4g Y29tcGxldGVkCiAgIChzZWUgbGlua3MpLiBTcGVjaWZpY2FsbHk6CiAgICAgKiBBIHNlcnZpY2Ug dGhhdCByZWNlaXZlcyBhbmQgc2VydmVzIGRvd25sb2FkIHJlcXVlc3RzLiBJdCBzYW1wbGVzCiAg ICAgICBkb3dubG9hZCBzcGVlZHMgZnJvbSBkaWZmZXJlbnQgbWlycm9ycyBhbmQgdXNlcyB0aGlz IGluZm9ybWF0aW9uIHRvCiAgICAgICBwaWNrIHRoZSBiZXN0IG1pcnJvciBvbiB0aGUgbmV4dCBy ZXF1ZXN0LiBJdCBjYW4gbWlncmF0ZSBqb2JzCiAgICAgICBiZXR3ZWVuIG1pcnJvcnMgaWYgaXQg cmVhbGl6ZXMgdGhhdCBhIGNvbXBsZXRlIGRvd25sb2FkIGZyb20gYQogICAgICAgZGlmZmVyZW50 IG1pcnJvciB3b3VsZCBiZSBmYXN0ZXIgdGhhbiBwcm9jZWVkaW5nIHdpdGggdGhlIG1pcnJvciBp dAogICAgICAgaXMgY3VycmVudGx5IHVzaW5nLgogICAgICogQSBzdGF0dXMgZHVtcCBmZWF0dXJl IGhhcyBhbHNvIGJlZW4gYWRkZWQgdG8gdGhlIGNsaWVudCAoZG1nZXQpCiAgICAgICB3aGljaCBk dW1wcyB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYWN0aXZlIGRvd25sb2Fkcywgc3BlZWRzIGZyb20K ICAgICAgIG1pcnJvcnMsIGV0Yy4KCk9wZW4gdGFza3M6CgogICAgMS4gVGhlIGltcGxlbWVudGF0 aW9uIChlc3BlY2lhbGx5IGpvYiBtaWdyYXRpb24gYW5kIGR1bXBpbmcgc3RhdHVzKQogICAgICAg aGFzIG5vdCBiZWVuIHRlc3RlZCB0aG9yb3VnaGx5LiBUZXN0IHRoZSBjb2RlLCB3cml0ZSBtb3Jl IHVuaXQgYW5kCiAgICAgICByZWdyZXNzaW9uIHRlc3RzLgogICAgIF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKRnJlZUJT RCBBZGEgUG9ydHMKCiAgIFVSTDogaHR0cDovL3d3dy5kcmFnb25sYWNlLm5ldAoKICAgQ29udGFj dDogSm9obiBNYXJpbm8gPG1hcmlub0BGcmVlQlNELm9yZz4KCiAgIEEgZmV3IHllYXJzIGFnbywg QWRhLWJhc2VkIHBvcnRzIGFsbW9zdCBjb21wbGV0ZWx5IGRpc2FwcGVhcmVkIGZyb20gdGhlCiAg IFBvcnRzIENvbGxlY3Rpb24uIFRoaXMgd2FzIG5vdCBzdXJwcmlzaW5nLCBhcyBGU0YgR05BVCwg dGhlIG9ubHkKICAgb3Blbi1zb3VyY2UgQWRhIGNvbXBpbGVyLCBjZWFzZWQgdG8gYnVpbGQgY29y cmVjdGx5IG9uIGFueSBCU0QgZmxhdm9yLgogICBQcmV2aW91c2x5LWJ1aWx0IGJvb3RzdHJhcCBj b21waWxlcnMgd291bGQgbm90IHJ1biBvbiBtb2Rlcm4gRnJlZUJTRCwKICAgYW5kIGNlcnRhaW5s eSBub3Qgb24gYW1kNjQuIFRoZSBmaXJzdCBzdGVwLCBzZWUgdGhlIGxpbmsgZm9yIGRldGFpbHMs CiAgIHdhcyB0byBwYXRjaCBHQ0MgaW4gb3JkZXIgdG8gZml4IEdOQVQgbm90IG9ubHkgb24gRnJl ZUJTRCwgYnV0CiAgIERyYWdvbkZseSwgTmV0QlNELCBhbmQgT3BlbkJTRCBhcyB3ZWxsLiBOZXcg Ym9vdHN0cmFwcyBmb3IgYm90aCBpMzg2CiAgIGFuZCBhbWQ2NCBwbGF0Zm9ybXMgd2VyZSBwcm9k dWNlZCBkdXJpbmcgdGhpcyBlZmZvcnQuIEFkYSBjb21waWxlcnMgb24KICAgRnJlZUJTRCBub3cg cGFzcyAxMDAlIG9mIHRoZSBBQ0FUUyBhbmQgR0NDIHRlc3RzdWl0ZXMuCgogICBXaXRoIHRoZSBp bnRyb2R1Y3Rpb24gb2YgdGhlIGZpcnN0IG5ldyBBZGEgY29tcGlsZXIgcG9ydCwgdGhlCiAgIEdD QyA0LjYtYmFzZWQgbGFuZy9nbmF0LWF1eCwgdGhlIEdOQVQgUHJvZ3JhbW1pbmcgU3R1ZGlvIChh CiAgIG11bHRpbGFuZ3VhZ2UgaW50ZWdyYXRlZCBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCksIFhN TC9BZGEsIGFuZCBHdGtBZGEKICAgd2VyZSBhbW9uZyB0aGUgZmlyc3QgQWRhIHBvcnRzIHJlc3Vy cmVjdGVkLgoKICAgV2l0aCB0aGUgbGF0ZXN0IGNvbXBpbGVyLCBsYW5nL2djYy1hdXggYmFzZWQg b24gR0NDIDQuNywgYSBjb2hlc2l2ZSBBZGEKICAgZnJhbWV3b3JrIHdhcyBjcmVhdGVkIHdpdGgg dGhlIG5ldyBVU0VTPSBmcmFtZXdvcmsuIEN1cnJlbnRseSBhcm91bmQgMjAKICAgcG9ydHMgYXJl IHBhcnQgb2YgdGhpcyBmcmFtZXdvcmsgaW5jbHVkaW5nIEZsb3Jpc3QsIEFTSVMsIEdQUmJ1aWxk LAogICBRdEFkYSwgQWRhQ29udHJvbCwgQWRhQnJvd3NlLCBQb2x5T3JiLCBhbmQgQVdTIChBZGEg V2ViIFNlcnZlcikuCgogICBUaGUgR05BVCBBVVggY29tcGlsZXIgaXMgYWxzbyBzdGlsbCBpbiB1 c2UgdG8gc2VydmUgYXMgYSBiYXNpcyBmb3IgdGhlCiAgIEdOQVREcm9pZCBwb3J0cyB3aGljaCBh cmUgRnJlZUJTRC10by1BbmRyb2lkIEFkYStDIGNyb3NzLWNvbXBpbGVycy4KICAgSG93ZXZlciwg dGhlc2Ugd2lsbCBzb29uIGJlIGludGVncmF0ZWQgaW50byB0aGUgQWRhIEZyYW1ld29yay4KCiAg IEF0IHRoaXMgcG9pbnQsIGl0IGxvb2tzIGxpa2UgRnJlZUJTRCAoc2hhcmVkIHdpdGggRHJhZ29u Rmx5IHZpYSBEUG9ydHMpCiAgIGhhcyB0YWtlbiB0aGUgY3Jvd24gZnJvbSBEZWJpYW4gYXMgdGhl IHJlY29nbml6ZWQgYmVzdCBBZGEgZGV2ZWxvcG1lbnQKICAgcGxhdGZvcm0uIFRoZSBGcmVlQlNE IHZlcnNpb25zIG9mIHRoZSBzb2Z0d2FyZSBhcmUgbW9yZSByZWNlbnQgYW5kIHRoZQogICBQb3J0 cyBDb2xsZWN0aW9uIGhhcyBwb3J0cyBub3QgYXZhaWxhYmxlIG9uIERlYmlhbiwgc3VjaCBhcwog ICBMaWJTcGFya0NyeXB0bywgdGhlIE1hdHJlc2hrYSBsaWJyYXJ5LCBhbmQgdGhlIEFodmVuIHVu aXQgdGVzdGVyLgoKICAgRnV0dXJlIHdvcmsgcG90ZW50aWFsbHkgaW5jbHVkZXMgY29udmVydGlu ZyBHQ0MgQVVYIHRvIEdDQyA0LjggdG8KICAgYWNxdWlyZSBiZXR0ZXIgQWRhIDIwMTIgc3VwcG9y dCwgaW1wb3J0aW5nIFNwYXJrIDIwMTQgaW50byBwb3J0cyB3aGVuCiAgIGl0IGFycml2ZXMgYW5k IHRvIGNvbnRpbnVlIHRvIGFkZCBuZXcgQWRhIHBvcnRzIHRvIHRoZSBmcmFtZXdvcmsuCiAgICAg X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCgpGcmVlQlNEIENvcmUgVGVhbQoKICAgQ29udGFjdDogRnJlZUJTRCBDb3JlIFRl YW0gPGNvcmVARnJlZUJTRC5vcmc+CgogICBJbiB0aGUgdGhpcmQgcXVhcnRlciBvZiAyMDEzLCB0 aGUgQ29yZSBUZWFtIGZvY3VzZWQgb24gb2ZmaWNpYWxseQogICBsYXVuY2hpbmcgcGtnLmZyZWVi c2Qub3JnLCB0aGUgUHJvamVjdCdzIG9mZmljaWFsIHBrZyg4KSByZXBvc2l0b3J5LCBpbgogICBj b29wZXJhdGlvbiB3aXRoIHRoZSBQb3J0IE1hbmFnZW1lbnQgVGVhbSwgdGhlIFNlY3VyaXR5IFRl YW0sIGFuZCB0aGUKICAgQ2x1c3RlciBBZG1pbmlzdHJhdGlvbiBUZWFtLiBBdCB0aGUgc2FtZSB0 aW1lLCB0aGVyZSBhcmUgcGxhbnMgdG8KICAgZ3JhZHVhbGx5IGRlcHJlY2F0ZSB0aGUgdXNlIG9m IHRoZSBvbGQgcGtnX2FkZCgxKSwgYWxsb3dpbmcgcGtnKDgpIHRvCiAgIGJlIHRoZSBkZWZhdWx0 IGJpbmFyeSBwYWNrYWdlIG1hbmFnZW1lbnQgc29sdXRpb24gZm9yIEZyZWVCU0QsIGFycml2aW5n CiAgIHdpdGggMTAuMC1SRUxFQVNFLiBUaG9tYXMgQWJ0aG9ycGUgaGFzIGJlZW4gYXBwb2ludGVk IHRvIHRoZSByb2xlIG9mCiAgIGxpYWlzb24gYmV0d2VlbiB0aGUgQ29yZSBUZWFtIGFuZCB0aGUg UG9ydHMgTWFuYWdlbWVudCBUZWFtLCBpbiBvcmRlcgogICB0byBtYWtlIHRoZSBjb2xsYWJvcmF0 aW9uIG1vcmUgZWZmZWN0aXZlLgoKICAgRGF2aWQgQ2hpc25hbGwgaGFzIGpvaW5lZCB0aGUgZ3Jv dXAgdGhhdCBwdWJsaXNoZXMgdGhlIFF1YXJ0ZXJseSBTdGF0dXMKICAgcmVwb3J0cyBhbmQgY29t cGlsZWQgYSBzcGVjaWFsIHN0YXR1cyByZXBvcnQgb24gdGhlIHJlc3VsdHMgb2YgdGhlCiAgIEJT RENhbiAyMDEzIERldmVsb3BlciBTdW1taXQuIERhdmlkIGFsc28gdG9vayB0aGUgbGVhZCByb2xl IG9uIHRoZQogICBvcmdhbml6YXRpb24gb2YgYW4gb2ZmLXNlYXNvbiBkZXZlbG9wZXIgc3VtbWl0 IGluIENhbWJyaWRnZSwgVUssIHdoaWNoCiAgIHdhcyBmaW5hbGx5IGhlbGQgYXQgdGhlIGVuZCBv ZiBBdWd1c3QuIEZvciB0aGUgaXRlbXMgZGlzY3Vzc2VkIGluCiAgIENhbWJyaWRnZSwgcHJlcGFy YXRpb24gb2YgYSBkZXRhaWxlZCByZXBvcnQgaXMgc3RpbGwgaW4gcHJvZ3Jlc3MuCgogICBUaGVy ZSB3ZXJlIHNyYyBjb21taXQgYml0cyBpc3N1ZWQgZm9yIDUgbmV3IGRldmVsb3BlcnMgYW5kIG1v c3Qgb2YgdGhlCiAgIHNyYyBjb21taXRzIGJlaW5nIGlkbGUgbW9yZSB0aGFuIDEyIG1vbnRocyBo YXZlIGJlZW4gdGFrZW4gaW50bwogICBzYWZla2VlcGluZyBhcyByZXN1bHQgb2YgYSBtYWpvciBj bGVhbnVwIHRvIHRoZSByZXBvc2l0b3J5IGFjY2VzcyBmaWxlCiAgIGluIEp1bHksIHBlcmZvcm1l ZCBieSBHYXZpbiBBdGtpbnNvbi4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCkZyZWVCU0QgRG9jdW1lbnRhdGlv biBQcm9qZWN0IFByaW1lciBFZGl0CgogICBVUkw6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvZG9j L2VuL2Jvb2tzL2ZkcC1wcmltZXIvYm9vay5odG1sCgogICBDb250YWN0OiBXYXJyZW4gQmxvY2sg PHdibG9ja0BGcmVlQlNELm9yZz4KCiAgIFRoZSBGcmVlQlNEIERvY3VtZW50YXRpb24gUHJvamVj dCBQcmltZXIgaGFkIG5vdCBjaGFuZ2VkIGF0IHRoZSBzYW1lCiAgIHJhdGUgYXMgdGhlIGRvY3Vt ZW50cyB0aGVtc2VsdmVzLiBTb21lIHNlY3Rpb25zIHdlcmUgb3V0ZGF0ZWQgYW5kCiAgIG90aGVy cyB3ZXJlIHZlcmJvc2UgYW5kIGNvbmZ1c2luZywgd2hpbGUgaW5mb3JtYXRpb24gb24gbmV3IGNo YW5nZXMgdG8KICAgdGhlIGRvY3VtZW50YXRpb24gd2VyZSBub3QgZGVzY3JpYmVkIGF0IGFsbC4g SW4gSnVseSwgV2FycmVuIGdhdmUgdGhlCiAgIGVudGlyZSBGRFAgUHJpbWVyIGEgZmFpcmx5IGlu dGVuc2UgZWRpdCBmb3Igc2ltcGxpY2l0eSBhbmQgY2xhcml0eS4KICAgQ2hhcHRlcnMgYW5kIHNl Y3Rpb25zIHdlcmUgbW92ZWQgaW50byBhIG1vcmUgbG9naWNhbCBvcmRlciwgYW5kCiAgIGluZm9y bWF0aW9uIHdhcyB1cGRhdGVkIHRvIGJlIGEgYmV0dGVyIGd1aWRlIHRvIHRoZSBjdXJyZW50IHN0 YXRlLgogICBNYXJrdXAgZXhhbXBsZXMgd2VyZSBhZGRlZCBhbmQgcmV2aXNlZC4gU3R5bGUgZ3Vp ZGVsaW5lcyB3ZXJlIGFsc28KICAgZXh0ZW5kZWQgYW5kIHVwZGF0ZWQuIFRoZSBQcmltZXIgaXMg bm93IGZhciBtb3JlIGNvbnNpc3RlbnQgYW5kIHVzYWJsZS4KICAgQXMgYWx3YXlzLCB0aGVyZSBp cyBzdGlsbCByb29tIGZvciBpbXByb3ZlbWVudCwgYW5kIGFkZGl0aW9ucyBvcgogICBjb3JyZWN0 aW9ucyBhcmUgZW5jb3VyYWdlZC4KCk9wZW4gdGFza3M6CgogICAgMS4gQW4gaW50cm9kdWN0b3J5 IGNoYXB0ZXIgb24gd3JpdGluZyBtYW51YWwgcGFnZXMgd2l0aCBtZG9jKDcpIHdvdWxkCiAgICAg ICBiZSBhbiBleGNlbGxlbnQgYWRkaXRpb24uCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpGcmVlQlNEIG9uIEN1 YmllYm9hcmQyCgogICBVUkw6IGh0dHA6Ly9zdm53ZWIuZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jh c2UvMjU0MDU2CgogICBDb250YWN0OiBHYW5ib2xkIFRzYWdhYW5raHV1IDxnYW5ib2xkQEZyZWVC U0Qub3JnPgoKICAgSW5pdGlhbCBzdXBwb3J0IG9mIEFsbHdpbm5lciBBMjAgU29DIGlzIGNvbW1p dHRlZCB0byBoZWFkLiBUaGUgQTIwIFNvQwogICBvbiBDdWJpZWJvYXJkMiBpcyBwaW4tdG8tcGlu IGNvbXBhdGlibGUgd2l0aCB0aGUgQTEwIGluIEN1YmllYm9hcmQxIGFuZAogICBGcmVlQlNEIHN1 cHBvcnRzIHRoZSBmb2xsb3dpbmcgcGVyaXBoZXJhbHM6CiAgICAgKiBVU0IgRUhDSQogICAgICog R1BJTwoKT3BlbiB0YXNrczoKCiAgICAxLiBHZXQgdGhlIEVNQUMgRXRoZXJuZXQgZHJpdmVyIHdv cmtpbmcuIE5lZWQgbW9yZSBoZWxwIGZyb20gbmV0d29yawogICAgICAgZHJpdmVyIGV4cGVydHMu CiAgICAyLiBBZGQgbW9yZSBkcml2ZXJzLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKRnJlZUJTRCBQb3J0IE1h bmFnZW1lbnQgVGVhbQoKICAgVVJMOiBodHRwOi8vd3d3LkZyZWVCU0Qub3JnL3BvcnRzLwogICBV Ukw6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvZG9jL2VuL2FydGljbGVzL2NvbnRyaWJ1dGluZy1w b3J0cy8KICAgVVJMOiBodHRwOi8vcG9ydHNtb24uZnJlZWJzZC5vcmcvaW5kZXguaHRtbAogICBV Ukw6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvcG9ydG1nci9pbmRleC5odG1sCiAgIFVSTDogaHR0 cDovL2Jsb2dzLmZyZWVic2Rpc2gub3JnL3BvcnRtZ3IvCiAgIFVSTDogaHR0cDovL3d3dy50d2l0 dGVyLmNvbS9mcmVlYnNkX3BvcnRtZ3IvCiAgIFVSTDogaHR0cDovL3d3dy5mYWNlYm9vay5jb20v cG9ydG1ncgogICBVUkw6IGh0dHA6Ly9saXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ZyZWVic2QtcGtnLWZhbGxvdXQKCiAgIENvbnRhY3Q6IEZyZWVCU0QgUG9ydCBNYW5hZ2VtZW50 IFRlYW0gPHBvcnRtZ3JARnJlZUJTRC5vcmc+CgogICBUaGUgcG9ydHMgdHJlZSBjb250YWlucyBh cHByb3hpbWF0ZWx5IDI0LDQwMCBwb3J0cywgd2hpbGUgdGhlIFBSIGNvdW50CiAgIGV4Y2VlZHMg MSw5MDAuIEluIHRoZSB0aGlyZCBxdWFydGVyLCB3ZSBhZGRlZCBmb3VyIG5ldyBjb21taXR0ZXJz IGFuZAogICB0b29rIGluIHNpeCBjb21taXQgYml0cyBmb3Igc2FmZWtlZXBpbmcuCgogICBBIHNp Z25pZmljYW50IGFtb3VudCBvZiBlZmZvcnQgaGFzIGdvbmUgaW50byB0d2Vha2luZyBhbmQgbWFu aXB1bGF0aW5nCiAgIHRoZSBpbmZyYXN0cnVjdHVyZSB0byBtb2Rlcm5pemUgYW5kIHVwZGF0ZSBp dCwgaW4gcHJlcGVyYXRpb24gZm9yCiAgIHBrZyg4KSByZXBsYWNpbmcgdGhlIG9sZCBwa2dfYWRk KDEpIGluZnJhc3RydWN0dXJlLCBhcyB3ZWxsIGFzCiAgIHByZXBhcmluZyBmb3IgRnJlZUJTRCAx MC4wIHdpdGggQ2xhbmcgYXMgZGVmYXVsdCBjb21waWxlciwgbGliYysrIGFzCiAgIHRoZSBkZWZh dWx0IEMrKyBzdGFuZGFyZCBsaWJyYXJ5LCBhbmQgaWNvbnYoMSkgaW50ZWdyYXRlZCBpbnRvIGxp YmMuCgogICBBdXRvbWF0ZWQgcHJvY2VkdXJlcyBmb3IgcXVhbGl0eSBhc3N1cmFuY2UgaGF2ZSBi ZWVuIGltcGxlbWVudGVkLAogICBub3RhYmx5IHBrZy1mYWxsb3V0LiBBbGwgcG9ydGVycyBhcmUg ZW5jb3VyYWdlZCB0byBzdWJzY3JpYmUgdG8gdGhlCiAgIGFzc29jaWF0ZWQgbWFpbGluZyBsaXN0 IChzZWUgbGlua3MpLCBhbmQgZG8gdGhlaXIgcGFydCB0byBmaXggcG9ydHMgZm9yCiAgIHBrZyg4 KSBhbmQgQ2xhbmcgcmVhZGluZXNzLgoKICAgTWFueSBpdGVyYXRpb25zIG9mIHRlc3RzIHdlcmUg cnVuIHRvIGVuc3VyZSB0aGF0IGFzIG1hbnkgcGFja2FnZXMgYXMKICAgcG9zc2libGUgd291bGQg YmUgYXZhaWxhYmxlIGZvciB0aGUgOS4yIHJlbGVhc2UuCgpPcGVuIHRhc2tzOgoKICAgIDEuIE1v c3QgcG9ydHMgUFJzIGFyZSBhc3NpZ25lZCwgd2Ugbm93IG5lZWQgdG8gZm9jdXMgb24gdGVzdGlu ZywKICAgICAgIGNvbW1pdHRpbmcsIGFuZCBjbG9zaW5nLgogICAgIF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKRnJlZUJT RCBQb3N0bWFzdGVyIFRlYW0KCiAgIFVSTDogaHR0cDovL2xpc3RzLmZyZWVic2Qub3JnL21haWxt YW4vbGlzdGluZm8vZnJlZWJzZC1mb3J0cmFuCiAgIFVSTDogaHR0cDovL2xpc3RzLmZyZWVic2Qu b3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWJzZC1wa2ctZmFsbG91dAogICBVUkw6IGh0dHA6Ly9s aXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVic2QtdXNlcnMtanAKCiAgIENv bnRhY3Q6IEZyZWVCU0QgUG9zdG1hc3RlciBUZWFtIDxwb3N0bWFzdGVyQEZyZWVCU0Qub3JnPgoK ICAgSW4gdGhlIHRoaXJkIHF1YXJ0ZXIgb2YgMjAxMywgdGhlIEZyZWVCU0QgUG9zdG1hc3RlciBU ZWFtIGhhcwogICBpbXBsZW1lbnRlZCB0aGUgZm9sbG93aW5nIGl0ZW1zIHRoYXQgbWF5IGJlIGlu dGVyZXN0IG9mIHRoZSBnZW5lcmFsCiAgIHB1YmxpYzoKICAgICAqIENyZWF0ZWQgdGhlIGZyZWVi c2QtZm9ydHJhbiBsaXN0LCByZXF1ZXN0ZWQgYnkgQW50b24gU2h0ZXJlbmxpa2h0LgogICAgICog Q3JlYXRlZCB0aGUgZnJlZWJzZC1wa2ctZmFsbG91dCBsaXN0LCByZXF1ZXN0ZWQgYnkgQmFwdGlz dGUKICAgICAgIERhcm91c3Npbi4KICAgICAqIENyZWF0ZWQgdGhlIGZyZWVic2QtdXNlcnMtanAg bGlzdCwgcmVxdWVzdGVkIGJ5IEhpcm9raSBTYXRvCiAgICAgKiBSZXRpcmVkIHRoZSBmcmVlYnNk LW1vemlsbGEgbGlzdCwgcmVxdWVzdGVkIGJ5IEZsb3JpYW4gU21lZXRzLgogICAgICogV29ya2Vk IHdpdGggdGhlIEZyZWVCU0QgQ2x1c3RlciBBZG1pbmlzdHJhdG9ycyB0byBlbmFibGUgVExTCiAg ICAgICBzdXBwb3J0IG9uIGluY29taW5nIGFuZCBvdXRnb2luZyBtYWlsIHNlcnZlcnMuCiAgICAg KiBTdGFydGVkIGRpc2N1c3Npb25zIGFuZCBleHBsb3JhdGlvbiBvZiBjdXJyZW50IGFuZCBwb3Nz aWJsZSBmdXR1cmUKICAgICAgIG1haWwgYW5kIHNwYW0gZmlsdGVyaW5nLgogICAgICogU3RhcnRl ZCB0aGUgcHJvY2VzcyBmb3IgcmV0aXJpbmcgdGhlIGFpYzd4eHggbWFpbGluZyBsaXN0LgogICAg ICAgQ29tcGxldGlvbiBvZiB0aGlzIGlzIHNjaGVkdWxlZCBmb3IgMTIgT2N0b2JlciAyMDEzLgog ICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwoKRnJlZUJTRCBQeXRob24gUG9ydHMKCiAgIFVSTDogaHR0cHM6Ly93aWtp LkZyZWVCU0Qub3JnL1B5dGhvbgogICBVUkw6IGlyYzovL2ZyZWVic2QtcHl0aG9uQGlyYy5mcmVl bm9kZS5uZXQKCiAgIENvbnRhY3Q6IEZyZWVCU0QgUHl0aG9uIFRlYW0gPHB5dGhvbkBGcmVlQlNE Lm9yZz4KCiAgIFdlIGFyZSBjdXJyZW50bHkgd29ya2luZyBvbiBjbGVhbmluZyB1cCB0aGUgbGFu Zy9weXRob24qIHBvcnRzIHRvCiAgIGltcHJvdmUgdGhlaXIgY29tcGF0aWJpbGl0eSB3aXRoIHRo ZSBvcmlnaW5hbCB1cHN0cmVhbSBidWlsZCBiZWhhdmlvdXIKICAgYW5kIHRvIHJlZHVjZSB0aGUg bmVlZCBmb3IgRnJlZUJTRC1zcGVjaWZpYyBidWlsZCBwYXRjaGVzLiBBIGZpcnN0IHN0ZXAKICAg d2FzIG1hZGUgaW4gU2VwdGVtYmVyIGJ5IHJlZHVjaW5nIHRoZSBmbGFncyBpbmplY3RlZCBpbnRv IHRoZSBkaWZmZXJlbnQKICAgUHl0aG9uIGludGVycHJldGVyIHZlcnNpb25zLgoKICAgVGhlIGZp cnN0IHRhc2tzIGhhdmUgYmVlbiBjb21wbGV0ZWQgdG8gc3VwcG9ydCB0aGUgaW5zdGFsbGF0aW9u IG9mCiAgIHBhY2thZ2VzIGZvciBkaWZmZXJlbnQgUHl0aG9uIHBvcnRzLiBBIG5ldyBtZXRhcG9y dCBzdHJ1Y3R1cmUgaGFzCiAgIHJlcGxhY2VkIHRoZSBvcmlnaW5hbCBQeXRob24gcG9ydCBiZWhh dmlvdXIsIGFuZCB3aWxsIGJlIGVuaGFuY2VkIG92ZXIKICAgdGhlIG5leHQgbW9udGhzIHRvIGVu YWJsZSBpbXByb3ZlZCBpbnN0YWxsYXRpb24gc3VwcG9ydCBvZiBwYWNrYWdlcyBmb3IKICAgZGlm ZmVyZW50IFB5dGhvbiB2ZXJzaW9ucyBhdCB0aGUgc2FtZSB0aW1lLgoKICAgVGhlIFB5dGhvbiBw b3J0cyBmcmFtZXdvcmsgd2FzIGVuaGFuY2VkIHdpdGggYXV0b21hdGVkIHBhY2thZ2luZyBsaXN0 CiAgIGNyZWF0aW9uIGFuZCByZXBsYWNlbWVudCBtYWNyb3MsIHdoaWNoIGltcHJvdmUgdGhlIGNv bXBhdGliaWxpdHkgd2l0aAogICBtdWx0aXBsZSBQeXRob24gdmVyc2lvbnMgYW5kIHJlZHVjZSB0 aGUgcGFja2FnaW5nIGxpc3Qgc2l6ZXMuCgogICBQeVB5IHdhcyBoZWF2aWx5IGVuaGFuY2VkIG92 ZXIgdGhlIGxhc3QgY291cGxlIG9mIG1vbnRocy4gTWFqb3IgdXBkYXRlcwogICB0byB0aGUgcG9y dCBzb2x2ZWQgaW50ZWdyYXRpb24gaXNzdWVzIGFuZCBhIG5ldyBweXB5LWRldmVsIHBvcnQgZm9y CiAgIHNuYXBzaG90cyBhbmQgcHJldmlld3Mgd2FzIGFkZGVkLiBTaW5jZSB0aGUgUHlQeSAzIHJl bGVhc2UsIHRoZXJlIGlzIGEKICAgbmV3IHB5cHkzLWRldmVsIHBvcnQgYXZhaWxhYmxlIHRvIHBy b3ZpZGUgbm90IG9ubHkgY29tcGF0aWJpbGl0eSBmb3IKICAgUHl0aG9uIDIueCBzcGVjaWZpYyBz Y3JpcHRzLCBidXQgYWxzbyBmb3IgdGhvc2UgdXNpbmcgdGhlIDMueCBsYW5ndWFnZQogICBzcGVj aWZpY2F0aW9uLgoKICAgSXJvblB5dGhvbiBmb3VuZCBpdHMgd2F5IGludG8gdGhlIEZyZWVCU0Qg cG9ydHMgdHJlZSwgcHJvdmlkaW5nIGFuCiAgIGltcGxlbWVudGF0aW9uIG9mIHRoZSBQeXRob24g bGFuZ3VhZ2UgYmFzZWQgb24gLk5FVCBhbmQgTW9uby4KCk9wZW4gdGFza3M6CgogICAgMS4gRGV2 ZWxvcCBhIGhpZ2gtbGV2ZWwgYW5kIGxpZ2h0d2VpZ2h0IFB5dGhvbiBQb3J0cyBQb2xpY3kuCiAg ICAyLiBDaGFzZSB0aGUgdW5pZmljYXRpb24gb2YgRGlzdHJpYnV0ZSAoZGV2ZWwvcHktZGlzdHJp YnV0ZSkgYW5kCiAgICAgICBTZXR1cHRvb2xzIChkZXZlbC9weS1zZXR1cHRvb2xzKikuCiAgICAz LiBBZGQgc3VwcG9ydCBmb3IgZ3JhbnVsYXIgZGVwZW5kZW5jaWVzIChmb3IgZXhhbXBsZSA+PTEu MCBvciA8IDIuMCkuCiAgICA0LiBMb29rIGF0IHdoYXQgYWRkaW5nIHBpcCAoUHl0aG9uIFBhY2th Z2UgSW5kZXgpIHN1cHBvcnQgbG9va3MgbGlrZS4KICAgIDUuIE1vcmUgdGFza3MgY2FuIGJlIGZv dW5kIG9uIHRoZSBUZWFtJ3Mgd2lraSBwYWdlIChzZWUgbGlua3MpLgogICAgIF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoK RnJlZUJTRCBSZWxlYXNlIEVuZ2luZWVyaW5nIFRlYW0KCiAgIFVSTDogaHR0cDovL3d3dy5GcmVl QlNELm9yZy9yZWxlYXNlcy85LjJSL3NjaGVkdWxlLmh0bWwKICAgVVJMOiBodHRwOi8vd3d3LkZy ZWVCU0Qub3JnL3JlbGVhc2VzLzEwLjBSL3NjaGVkdWxlLmh0bWwKICAgVVJMOiBodHRwOi8vZnRw LkZyZWVCU0Qub3JnL3B1Yi9GcmVlQlNEL3NuYXBzaG90cy9WTS1JTUFHRVMvCiAgIFVSTDogaHR0 cDovL2Z0cC5GcmVlQlNELm9yZy9wdWIvRnJlZUJTRC9zbmFwc2hvdHMvSVNPLUlNQUdFUy8KCiAg IENvbnRhY3Q6IEZyZWVCU0QgUmVsZWFzZSBFbmdpbmVlcmluZyBUZWFtIDxyZUBGcmVlQlNELm9y Zz4KCiAgIFRoZSBGcmVlQlNEIFJlbGVhc2UgRW5naW5lZXJpbmcgVGVhbSBoYXMgY29tcGxldGVk IHRoZSA5LjItUkVMRUFTRQogICBwcm9jZXNzLiBUaGUgcmVsZWFzZSBjeWNsZSBjaGFuZ2VkIHdp dGggYSBsYXN0LW1pbnV0ZSBhZGRpdGlvbiBvZgogICA5LjItUkM0LiBUaGUgOS4yLVJFTEVBU0Ug d2FzIGFubm91bmNlZCBTZXB0ZW1iZXIgMzAsIGZvdXIgd2Vla3MgYmVoaW5kCiAgIHRoZSBvcmln aW5hbCBzY2hlZHVsZS4KCiAgIFRoZSBGcmVlQlNEIDEwLjAtUkVMRUFTRSBjeWNsZSBoYXMgc3Rh cnRlZCwgYW5kIHRlc3RpbmcgaXMgc3Ryb25nbHkKICAgZW5jb3VyYWdlZC4gRm9yIHRlc3Rpbmcg cHVycG9zZXMsIGJvdGggaW5zdGFsbGF0aW9uIGltYWdlcyBhbmQgdmlydHVhbAogICBtYWNoaW5l IGltYWdlcyBleGlzdCBvbiB0aGUgRnJlZUJTRCBQcm9qZWN0IEZUUCBzZXJ2ZXJzLgoKT3BlbiB0 YXNrczoKCiAgICAxLiBUZXN0IDEwLjAtQ1VSUkVOVCBhbmQgcmVwb3J0IHByb2JsZW1zLgogICAg IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwoKRnJlZUJTRC9FQzIKCiAgIFVSTDogaHR0cDovL3d3dy5kYWVtb25vbG9neS5u ZXQvZnJlZWJzZC1vbi1lYzIvCiAgIFVSTDogaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9tYXJrZXRw bGFjZS9wcC9CMDBBQTI1TUxLLwoKICAgQ29udGFjdDogQ29saW4gUGVyY2l2YWwgPGNwZXJjaXZh QGZyZWVic2Qub3JnPgoKICAgRnJlZUJTRCBpbWFnZXMgYXJlIGF2YWlsYWJsZSBmb3IgdXNlIGlu IEVDMiBmb3IgOC4zLVJFTEVBU0UsCiAgIDguNC1SRUxFQVNFLCA5LjAtUkVMRUFTRSwgOS4xLVJF TEVBU0UsIGFuZCA5LjItUkVMRUFTRS4gSW4gOS4yLVJFTEVBU0UsCiAgIEZyZWVCU0QgcnVucyBp biBFQzIgdXNpbmcgYW4gdW5wYXRjaGVkIHNvdXJjZSB0cmVlLCBidXQgaXQgbmVlZHMgdGhlCiAg IFhFTkhWTSBrZXJuZWwgY29uZmlndXJhdGlvbi4KCiAgIFN0YXJ0aW5nIGZyb20gRnJlZUJTRCAx MC4wLUFMUEhBMywgdGhlIEdFTkVSSUMga2VybmVsIGNvbmZpZ3VyYXRpb24gbm93CiAgIGNvbnRh aW5zIGFsbCB0aGUgWEVOSFZNIGJpdHMgbmVlZGVkIHRvIGFsbG93IEZyZWVCU0QgdG8gcnVuIGlu IEVDMgogICBuYXRpdmVseS4gQ29uc2VxdWVudGx5LCBGcmVlQlNEIDEwLjAgd2lsbCBiZSB0aGUg Zmlyc3QgcmVsZWFzZSBmb3IKICAgd2hpY2ggRnJlZUJTRC9FQzIgaXMgcHVyZWx5ICJiaXRzIG9m ZiB0aGUgSVNPIi4gVGhpcyBhbHNvIG1lYW5zIHRoYXQKICAgc3RhcnRpbmcgd2l0aCAxMC4wIGl0 IHdpbGwgYmUgcG9zc2libGUgdG8gdXNlIGZyZWVic2QtdXBkYXRlKDgpIGZvciBhbGwKICAgYmFz ZSBzeXN0ZW0gdXBkYXRlcyAtLSBpbiBlYXJsaWVyIHJlbGVhc2VzIGl0IHdhcyBuZWNlc3Nhcnkg dG8KICAgcmVjb21waWxlIHRoZSBYRU5IVk0ga2VybmVsIG1hbnVhbGx5LgoKICAgRHVlIHRvIEZy ZWVCU0QncyB1c2Ugb2YgSFZNIHZpcnR1YWxpemF0aW9uLCBydW5uaW5nIG9uICJvbGQiIEVDMgog ICBpbnN0YW5jZSB0eXBlcyAobTEsIG0yLCBjMSwgdDEpIHJlcXVpcmVzIHRoYXQgRnJlZUJTRCBw cmV0ZW5kcyB0byBiZQogICBXaW5kb3dzLCB3aGljaCB1bmZvcnR1bmF0ZWx5IHJlc3VsdHMgaW4g cGF5aW5nIHRoZSBoaWdoZXIgIndpbmRvd3MiIEVDMgogICBpbnN0YW5jZSBwcmljZXMuIE9uICJu ZXciIEVDMiBpbnN0YW5jZXMgKGNjMSwgY2MyLCBjZzEsIGNyMSwgaGkxLCBoczEsCiAgIGFuZCBt MykgRnJlZUJTRCBjYW4gcnVuIGFzIGEgInVuaXgiIGltYWdlIGF0IHRoZSBsb3dlciByYXRlLgoK T3BlbiB0YXNrczoKCiAgICAxLiBUZXN0IEZyZWVCU0QgMTAuMC1BTFBIQXMvQkVUQXMvUkNzIGFz IHRoZXkgYmVjb21lIGF2YWlsYWJsZS4gUGxlbnR5CiAgICAgICBvZiBuZXcgWGVuIGNvZGUgaGFz IGJlZW4gY29tbWl0dGVkIHJlY2VudGx5IGFuZCB0aGVyZSBhcmUgcHJvYmFibHkKICAgICAgIGJ1 Z3MgdG8gZmluZCBiZWZvcmUgdGhlIHJlbGVhc2UuCiAgICAyLiBLZWVwIG5hZ2dpbmcgQW1hem9u IHRvIHByb3ZpZGUgbW9yZSBpbnN0YW5jZSB0eXBlcyB3aGljaCBGcmVlQlNECiAgICAgICBjYW4g cnVuIG9uIHdpdGhvdXQgcGF5aW5nIGEgIldpbmRvd3MgdGF4Ii4KICAgIDMuIFByb3ZpZGUgc29t ZSBtZWNoYW5pc20gZm9yIGluc3RhbmNlIGNvbmZpZ3VyYXRpb24gdmlhIEVDMgogICAgICAgdXNl ci1kYXRhLiBUaGlzIG1pZ2h0IGludm9sdmUgdXNpbmcgY2xvdWQtaW5pdCwgb3IgaXQgbWlnaHQg YmUgYQogICAgICAgbmV3IHN5c3RlbS4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCkZyZWVCU0QvcHNlcmllcwoK ICAgVVJMOiBodHRwOi8vc3Zud2ViLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzI1NTY0MwoK ICAgQ29udGFjdDogQW5kcmVhcyBUb2JsZXIgPGFuZHJlYXN0QGZyZWVic2Qub3JnPgogICBDb250 YWN0OiBOYXRoYW4gV2hpdGVob3JuIDxud2hpdGVob3JuQGZyZWVic2Qub3JnPgoKICAgU3RhcnRp bmcgd2l0aCBGcmVlQlNEIDEwLjAtQUxQSEE0LCB0aGUgcHJvamVjdHMvcHNlcmllcyBicmFuY2gg aGFzIGJlZW4KICAgbWVyZ2VkIGludG8gRnJlZUJTRCBoZWFkLiBUaGlzIGFsbG93cyBGcmVlQlNE L3Bvd2VycGM2NCB0byBydW4gaW4gYW4KICAgSUJNIFBPV0VSIGxvZ2ljYWwgcGFydGl0aW9uIGFu ZCBvbiBjZXJ0YWluIGNsYXNzZXMgb2Ygb2xkZXIgSUJNLXR5cGUKICAgUG93ZXJQQyBoYXJkd2Fy ZS4KCk9wZW4gdGFza3M6CgogICAgMS4gVGVzdCwgcG9zc2libHkgb24gcmVhbCBoYXJkd2FyZS4g TW9zdCB0ZXN0aW5nIGFuZCBkZXZlbG9wbWVudCB3YXMKICAgICAgIGNvbmR1Y3RlZCB3aXRoIHRo ZSBlbXVsYXRlZCBMUEFSIHRhcmdldCBpbiBRRU1VLiBQbGVhc2Ugc2VuZCBhbnkKICAgICAgIHRl c3RpbmcgcmVwb3J0cyB0byB0aGUgZnJlZWJzZC1wcGMgbWFpbGluZyBsaXN0LgogICAgIF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwoKRnJlZUJTRC9zcGFyYzY0CgogICBDb250YWN0OiBNYXJpdXMgU3Ryb2JsIDxtYXJpdXNA RnJlZUJTRC5vcmc+CgogICBUaGVyZSBhcmUgc2V2ZXJhbCB0aGluZ3MgZ29pbmcgb24gd2l0aCB0 aGUgRnJlZUJTRC9zcGFyYzY0IHBvcnQuCgogICBBZnRlciBoYXZpbmcgZml4ZWQgYWxsIHJlbWFp bmluZyBwcm9ibGVtcyBhbmQgc3RhcnRpbmcgd2l0aAogICA5LjItUkVMRUFTRSwgcmVsZWFzZXMg Zm9yIHRoaXMgYXJjaGl0ZWN0dXJlIGFyZSBjcm9zcy1idWlsdCBvbiB0aGUKICAgRnJlZUJTRCBQ cm9qZWN0IGNsdXN0ZXIuIEFzIG9uZSBtaWdodCBhbHJlYWR5IGhhdmUgbm90aWNlZCwgdGhpcyBt ZWFucwogICB0aGF0IGZyb20gbm93IG9uLCBzcGFyYzY0IGluc3RhbGwgc2V0cyBhbmQgaW1hZ2Vz IGluY2x1ZGluZyB0aG9zZSBmb3IKICAgQUxQSEEsIEJFVEEsIGFuZCBSQyBidWlsZHMsIGFyZSBh dmFpbGFibGUgYWxvbmdzaWRlIHRob3NlIGZvciB0aGUgb3RoZXIKICAgcGxhdGZvcm1zIHN1cHBv cnRlZCBieSBGcmVlQlNELiBTaW5jZSBBdWd1c3QgMjAxMywgYXV0b21hdGljYWxseQogICBjcm9z cy1idWlsdCBtb250aGx5IEZyZWVCU0Qvc3BhcmM2NCBzbmFwc2hvdHMgYXJlIGRpc3RyaWJ1dGVk IHZpYSB0aGUKICAgb2ZmaWNpYWwgcHJvamVjdCBtaXJyb3JzLiBIb3BlZnVsbHksIHRoaXMgY2Fu IHNvb24gYmUgZXh0ZW5kZWQgZnVydGhlcgogICB3aXRoIGZyZWVic2QtdXBkYXRlKDgpIHN1cHBv cnQgZm9yIHNwYXJjNjQuCgogICBUaGUgWC5PcmcgcG9ydHMgaGF2ZSBiZWVuIGZpeGVkIHRvIHdv cmsgb24gc3BhcmM2NCB3aGVuIGJ1aWx0IHdpdGggdGhlCiAgIFdJVEhfTkVXX1hPUkcga25vYi4g SG93ZXZlciwgaXQgc3RpbGwgbmVlZHMgdG8gYmUgZXZhbHVhdGVkIHdoZXRoZXIgdGhlCiAgIHJl Y2VudGx5IGNvbW1pdHRlZCB1cGRhdGUgdG8gTWVzYSA5LjEuNiBoYXMgaW50cm9kdWNlZCBhbnkg YnJlYWthZ2UuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCgpHRU9NIERpcmVjdCBEaXNwYXRjaCBhbmQgRmluZS1H cmFpbmVkIENBTSBMb2NraW5nCgogICBVUkw6IGh0dHA6Ly9zdm53ZWIuZnJlZWJzZC5vcmcvYmFz ZS9wcm9qZWN0cy9jYW1sb2NrLwogICBVUkw6IGh0dHA6Ly9wZW9wbGUuZnJlZWJzZC5vcmcvfm1h di9jYW1sb2NrX3BhdGNoZXMvCgogICBDb250YWN0OiBBbGV4YW5kZXIgTW90aW4gPG1hdkBGcmVl QlNELm9yZz4KCiAgIExhc3QgeWVhcidzIGhpZ2gtcGVyZm9ybWFuY2Ugc3RvcmFnZSB2ZW5kb3Ig c3VtbWl0IHJlcG9ydGVkIGEKICAgcGVyZm9ybWFuY2UgYm90dGxlbmVjayBpbiB0aGUgRnJlZUJT RCBibG9jayBzdG9yYWdlIHN1YnN5c3RlbSwgbGltaXRpbmcKICAgcGVhayBwZXJmb3JtYW5jZSB0 byBhcm91bmQgMzAwLTUwMEsgSU9QUy4gV2hpbGUgdGhhdCBpcyBzdGlsbCBtb3JlIHRoYW4KICAg ZW5vdWdoIGZvciBhdmVyYWdlIHN5c3RlbXMsIGRldGFpbGVkIGludmVzdGlnYXRpb24gaGFzIHNo b3duIGEgbnVtYmVyCiAgIG9mIHBsYWNlcyB0aGF0IHJlcXVpcmUgcmFkaWNhbCBpbXByb3ZlbWVu dC4gVGhlIHVubWFwcGVkIEkvTyBzdXBwb3J0CiAgIGltcGxlbWVudGVkIGVhcmx5IHRoaXMgeWVh ciBoYXMgYWxyZWFkeSBpbXByb3ZlZCBJL08gcGVyZm9ybWFuY2UgYnkKICAgYWJvdXQgMzAlIGFu ZCBtb3ZlZCBtb3JlIGZvY3VzIHRvd2FyZCBHRU9NIGFuZCBDQU0gc3Vic3lzdGVtcwogICBzY2Fs YWJpbGl0eS4gRml4aW5nIHRoZXNlIGlzc3VlcyB3YXMgdGhlIGdvYWwgb2YgdGhpcyBwcm9qZWN0 LgoKICAgVGhlIGV4aXN0aW5nIEdFT00gZGVzaWduIGFzc3VtZWQgbW9zdCBJL08gaGFuZGxpbmcg d2FzIHRvIGJlIGRvbmUgYnkKICAgb25seSB0d28ga2VybmVsIHRocmVhZHMgKGdfdXAoKSBhbmQg Z19kb3duKCkpLiBUaGF0IHNpbXBsaWZpZWQgbG9ja2luZwogICBpbiBzb21lIGNhc2VzLCBidXQg bGltaXRlZCBwb3RlbnRpYWwgU01QIHNjYWxhYmlsaXR5IGFuZCBjcmVhdGVkCiAgIGFkZGl0aW9u YWwgc2NoZWR1bGVyIG92ZXJoZWFkLiBUaGlzIHByb2plY3QgaW50cm9kdWNlcyB0aGUgY29uY2Vw dCBvZgogICBkaXJlY3QgSS9PIGRpc3BhdGNoIGludG8gR0VPTSBmb3IgY2FzZXMgd2hlcmUgaXQg aXMga25vd24gdG8gYmUgc2FmZQogICBhbmQgZWZmaWNpZW50LiBUaGF0IGltcGxpZXMgbWFya2lu ZyBzb21lIEdFT00gY29uc3VtZXJzIGFuZCBwcm92aWRlcnMKICAgd2l0aCBvbmUgb3IgdHdvIG5l dyBmbGFncywgZGVjbGFyaW5nIHNpdHVhdGlvbnMgd2hlbiBhIGRpcmVjdCBmdW5jdGlvbgogICBj YWxsIGNhbiBiZSB1c2VkIGluc3RlYWQgb2Ygbm9ybWFsIHJlcXVlc3QgcXVldWluZy4gVGhhdCBw ZXJtaXRzCiAgIGF2b2lkaW5nIGFueSBjb250ZXh0IHN3aXRjaGVzIGluc2lkZSBHRU9NIGZvciB0 aGUgbW9zdCB3aWRlbHkgdXNlZAogICB0b3BvbG9naWVzLCBzaW11bHRhbmVvdXNseSBwcm9jZXNz aW5nIG11bHRpcGxlIEkvT3MgZnJvbSBtdWx0aXBsZQogICBjYWxsaW5nIHRocmVhZHMuCgogICBI YXZpbmcgR0VPTSBwYXNzIHRocm91Z2ggbXVsdGlwbGUgY29uY3VycmVudCBjYWxscyBkb3duIHRv IHRoZQogICB1bmRlcmx5aW5nIGxheWVycyBleHBvc2VkIG1ham9yIGxvY2sgY29uZ2VzdGlvbiBp biBDQU0uIEluIHRoZSBleGlzdGluZwogICBDQU0gZGVzaWduLCBhbGwgZGV2aWNlcyBjb25uZWN0 ZWQgdG8gdGhlIHNhbWUgQVRBL1NDU0kgY29udHJvbGxlciBzaGFyZQogICBhIHNpbmdsZSBsb2Nr LCB3aGljaCBjYW4gYmUgcXVpdGUgYnVzeSBkdWUgdG8gbXVsdGlwbGUgY29udHJvbGxlcgogICBo YXJkd2FyZSBhY2Nlc3NlcyBhbmQvb3IgY29kZSBsb2dpYy4gRXhwZXJpbWVudHMgaGF2ZSBzaG93 biB0aGF0CiAgIGFwcGx5aW5nIG9ubHkgdGhlIGFib3ZlIEdFT00gZGlyZWN0IGRpc3BhdGNoIGNo YW5nZXMgYnVybnMgdXAgdG8gNjAlIG9mCiAgIHN5c3RlbSBDUFUgdGltZSBvciBldmVuIG1vcmUg aW4gYXR0ZW1wdHMgdG8gb2J0YWluIHRoZXNlIGxvY2tzIGJ5CiAgIG11bHRpcGxlIGNhbGxlcnMs IGtpbGxpbmcgYW55IGJlbmVmaXRzIG9mIEdFT00gZGlyZWN0IGRpc3BhdGNoLgoKICAgVG8gb3Zl cmNvbWUgdGhpcyBzY2FsaW5nIGxpbWl0YXRpb24sIGEgbmV3IGZpbmUtZ3JhaW5lZCBDQU0gbG9j a2luZwogICBkZXNpZ24gd2FzIGltcGxlbWVudGVkLiBJdCBpbXBsaWVzIHNwbGl0dGluZyB0aGUg YmlnIHBlci1TSU0gbG9ja3MgaW50bwogICBzZXZlcmFsIHNtYWxsZXIgb25lczogcGVyLUxVTiBs b2NrcywgcGVyLWJ1cyBsb2NrcywgcXVldWUgbG9ja3MsIGV0Yy4KICAgQWZ0ZXIgdGhlc2UgY2hh bmdlcywgdGhlIHJlbWFpbmluZyBwZXItU0lNIGxvY2sgcHJvdGVjdHMgb25seSB0aGUKICAgY29u dHJvbGxlciBkcml2ZXIgaW50ZXJuYWxzLCByZWR1Y2luZyBsb2NrIGNvbmdlc3Rpb24gZG93biB0 byBhbgogICBhY2NlcHRhYmxlIGxldmVsIGFuZCBrZWVwaW5nIGNvbXBhdGliaWxpdHkgd2l0aCBl eGlzdGluZyBkcml2ZXJzLgoKICAgVG9nZXRoZXIsIHRoZSBHRU9NIGFuZCBDQU0gY2hhbmdlcyBk b3VibGUgdGhlIHBlYWsgSS9PIHJhdGUsIHJlYWNoaW5nCiAgIHVwIHRvIDEsMDAwLDAwMCBJT1BT IG9uIGNvbnRlbXBvcmFyeSBoYXJkd2FyZS4KCiAgIFRoZSBjaGFuZ2VzIHdlcmUgdGVzdGVkIGJ5 IGEgbnVtYmVyIG9mIHBlb3BsZSBhbmQgd2lsbCBiZSBjb21taXR0ZWQKICAgaW50byBGcmVlQlNE IGhlYWQgYW5kIG1lcmdlZCB0byBzdGFibGUvMTAgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgRnJlZUJT RAogICAxMC4wIHJlbGVhc2UgY3ljbGUuCgogICBUaGUgcHJvamVjdCBpcyBzcG9uc29yZWQgYnkg aVhzeXN0ZW1zLCBJbmMuCgpPcGVuIHRhc2tzOgoKICAgIDEuIE1vcmUgcmV2aWV3cywgbW9yZSBz dGFiaWxpdHkgYW5kIHBlcmZvcm1hbmNlIHRlc3RzLgogICAgIF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKR05PTUUvRnJl ZUJTRAoKICAgVVJMOiBodHRwOi8vd3d3LkZyZWVCU0Qub3JnL2dub21lLwoKICAgQ29udGFjdDog RnJlZUJTRCBHTk9NRSBUZWFtIDxnbm9tZUBGcmVlQlNELm9yZz4KCiAgIEdsaWIgMi4zNiBhbmQg R3RrIDMuOCB3ZXJlIGltcG9ydGVkIGludG8gdGhlIHBvcnRzIHRyZWUuIFRoZSBHTk9NRSBUZWFt CiAgIGlzIGN1cnJlbnRseSB3b3JraW5nIG9uIGltcHJvdmluZyB0aGUgcXVhbGl0eSBvZiBHTk9N RSAzLjYuIFRoZSB2ZXJzaW9uCiAgIG9mIG11bHRpbWVkaWEvY2hlZXNlIHNoaXBwZWQgd2l0aCBH Tk9NRSAzIGlzIG5vdyBhYmxlIHRvIHVzZSBkZXZkKDgpIHRvCiAgIGZpbmQgdGhlIGNhbWVyYSB0 aHJvdWdoIG11bHRpbWVkaWEvd2ViY2FtZC4gU2V2ZXJhbCBidWlsZCBpbXByb3ZlbWVudHMKICAg aGF2ZSBiZWVuIG1hZGUgdG8gdGhlIHd3dy93ZWJraXQtZ3RrMyBwb3J0LCBob3dldmVyIGl0IHN0 aWxsIGlzIHJhdGhlcgogICBmcmFnaWxlLgoKICAgTUFURSwgYSBkZXNrdG9wIGVudmlyb25tZW50 IGZvcmtlZCBmcm9tIHRoZSBub3ctdW5tYWludGFpbmVkIGNvZGViYXNlCiAgIG9mIEdOT01FIDIs IGlzIGFib3V0IHJlYWR5IHRvIGdvIGluLgoKICAgR05PTUUgMiB3aWxsIGJlIHJlbW92ZWQgYXQg c29tZSBwb2ludCBpbiB0aGUgbmVhciBmdXR1cmUuIEhvdyBvciB3aGVuCiAgIHRoaXMgd2lsbCBo YXBwZW4gaXMgbm90IHlldCBjbGVhci4KCk9wZW4gdGFza3M6CgogICAgMS4gVGVzdCB0aGUgdXBk YXRlLiBDb250YWN0IHRoZSBtYWludGFpbmVycyBpZiBpdCBpcyBzdXNwZWN0ZWQgdGhhdCBhCiAg ICAgICBwb3J0IGRvZXMgbm90IHdvcmsgd2l0aCB0aGUgbmV3ZXIgdmVyc2lvbiBvZiBkZXZlbC9n bGliMjAuCiAgICAyLiBVcGRhdGUgdGhlIEZyZWVCU0QgR05PTUUgd2Vic2l0ZSB3aXRoIHJlY2Vu dCBjaGFuZ2VzIGluIHRoZSBwb3J0cwogICAgICAgdHJlZSwgYWRkIG5ldyBpdGVtcyBpbiBwcmVw YXJhdGlvbiBmb3IgR05PTUUgMyBhbmQgTWF0ZSwgZXRjLgogICAgMy4gQ29udGludWUgd29ya2lu ZyBvbiBHTk9NRSAzLjYsIHN0YWJpbGl0eSBhbmQgbWlzc2luZyBmZWF0dXJlcy4KICAgIDQuIElt cG9ydCBNQVRFIGludG8gdGhlIHBvcnRzIHRyZWUuCiAgICAgX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpHTlVzdGVwIG9u IEZyZWVCU0QKCiAgIENvbnRhY3Q6IERhdmlkIENoaXNuYWxsIDx0aGVyYXZlbkBGcmVlQlNELm9y Zz4KCiAgIEdOVXN0ZXAgaXMgdGhlIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBP YmplY3RpdmUtQyBBUElzIGJhc2VkCiAgIG9uIHRoZSBPcGVuU3RlcCBzcGVjaWZpY2F0aW9uIHRo YXQgQXBwbGUgYnJhbmRzIGFzIENvY29hLiBUaGUKICAgc2ltaWxhcml0aWVzIGJldHdlZW4gdGhl IEZyZWVCU0QgYW5kIE9TIFggbGliYyBtYWtlIEZyZWVCU0QgYW4KICAgYXR0cmFjdGl2ZSB0YXJn ZXQgcGxhdGZvcm0gZm9yIHBvcnRpbmcgT1MgWCBhcHBsaWNhdGlvbnMsIHdpdGggdGhlCiAgIGFk ZGl0aW9uIG9mIEdOVXN0ZXAuCgogICBUaGUgR05Vc3RlcCBwb3J0cyBpbiBGcmVlQlNEIGhhdmUg bm93IGJlZW4gdXBkYXRlZCB0byB0aGUgbGF0ZXN0CiAgIHJlbGVhc2VzIGFuZCBub3cgYnVpbGQg d2l0aCB0aGUgR05Vc3RlcCBPYmplY3RpdmUtQyBydW50aW1lIGFuZCBDbGFuZwogICAzLjMsIHdp dGggdGhlIG5vbi1mcmFnaWxlIEFCSSBieSBkZWZhdWx0LiBUaGlzIG1lYW5zIHRoYXQgYWxsIG9m IHRoZQogICBtb2Rlcm4gZmVhdHVyZXMgb2YgT2JqZWN0aXZlLUMgYXJlIHN1cHBvcnRlZCwgaW5j bHVkaW5nIEF1dG9tYXRpYwogICBSZWZlcmVuY2UgQ291bnRpbmcgKEFSQykgYW5kIHJlY2VudCBz eW50YXggaW1wcm92ZW1lbnRzLgoKICAgVGhlIGRldmVsL2dudXN0ZXAgbWV0YS1wb3J0IHdpbGwg aW5zdGFsbCBhbGwgb2YgdGhlIGNvcmUgR05Vc3RlcAogICBsaWJyYXJpZXMsIHJlYWR5IGZvciBk ZXZlbG9wbWVudC4gVGhlIHgxMS9nbnVzdGVwLWFwcCBtZXRhLXBvcnQgd2lsbAogICBpbnN0YWxs IGFsbCBvZiB0aGUgR05Vc3RlcC1iYXNlZCBhcHBsaWNhdGlvbnMgYW5kIGxpYnJhcmllcyBjdXJy ZW50bHkKICAgaW4gdGhlIHBvcnRzIHRyZWUuIE1hbnkgb2YgdGhlc2UgYXJlIG9sZCBhbmQgbm90 IHdlbGwtdGVzdGVkIHdpdGggbGF0ZXIKICAgR05Vc3RlcCByZWxlYXNlLCBzbyBjb25zaWRlciB0 aGVtIGV4cGVyaW1lbnRhbCBhdCBwcmVzZW50LiBXZSBhcmUKICAgY3VycmVudGx5IHdvcmtpbmcg b24gdXBkYXRpbmcgdGhlbSwgaW5jbHVkaW5nIG1vdmluZyBmcm9tIHNvbWUKICAgYWJhbmRvbmVk IHVwc3RyZWFtIGxvY2F0aW9ucyB0byB0aGUgR05Vc3RlcCBBcHBsaWNhdGlvbnMgUHJvamVjdCAo R0FQKSwKICAgd2hpY2ggaGFzIHRha2VuIG92ZXIgbWFpbnRlbmFuY2Ugb2YgYSBudW1iZXIgb2Yg b2xkZXIgR05Vc3RlcCBwcm9ncmFtcy4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCkxMREIgRGVidWdnZXIgUG9y dAoKICAgVVJMOiBodHRwczovL3dpa2kuZnJlZWJzZC5vcmcvbGxkYgoKICAgQ29udGFjdDogRWQg TWFzdGUgPGVtYXN0ZUBmcmVlYnNkLm9yZz4KCiAgIExMREIgaXMgdGhlIGRlYnVnZ2VyIHByb2pl Y3QgaW4gdGhlIExMVk0gZmFtaWx5LiBJdCBzdXBwb3J0cyB0aGUgTWFjIE9TCiAgIFgsIExpbnV4 LCBhbmQgRnJlZUJTRCBwbGF0Zm9ybXMuCgogICBBIG51bWJlciBvZiBpbXByb3ZlbWVudHMgaGF2 ZSBiZWVuIG1hZGUgdG8gdGhlIHBvcnQgc2luY2UgdGhlIHByZXZpb3VzCiAgIHN0YXR1cyB1cGRh dGUuIFVuaXQgdGVzdCBmYWlsdXJlcyBoYXZlIGJlZW4gdHJpYWdlZCBhbmQgaGF2ZSBkZWZlY3Rz CiAgIGVudGVyZWQgaW4gTExEQidzIGJ1ZyB0cmFja2VyLiBJbiBjb21iaW5hdGlvbiB3aXRoIHRo ZSBsbGRiIGJ1aWxkYm90CiAgIHRoaXMgYWxsb3dzIGZvciB0aGUgcXVpY2sgaWRlbnRpZmljYXRp b24gb2YgbmV3IGZhaWx1cmVzIGludHJvZHVjZWQgYnkKICAgb3RoZXIgb25nb2luZyBkZXZlbG9w bWVudC4gQ29yZSBmaWxlIHN1cHBvcnQgaGFzIGFsc28gYmVlbiBhZGRlZC4KCiAgIEFuIExMREIg c25hcHNob3QgaGFzIGJlZW4gaW1wb3J0ZWQgaW50byB0aGUgRnJlZUJTRCBiYXNlIHN5c3RlbSBh bmQgaXMKICAgYXZhaWxhYmxlIGFzIG9mIFNWTiByZXZpc2lvbiAyNTU3MjIuIEl0IGlzIG5vdCB5 ZXQgYnVpbHQgYnkgZGVmYXVsdCBidXQKICAgbWF5IGJlIGVuYWJsZWQgYnkgYWRkaW5nIFdJVEhf TExEQj0gdG8gc3JjLmNvbmYoNSkuCgogICBUaGlzIHByb2plY3QgaXMgc3BvbnNvcmVkIGJ5IERB UlBBL0FGUkwgaW4gY29sbGFib3JhdGlvbiB3aXRoIFNSSQogICBJbnRlcm5hdGlvbmFsIGFuZCB0 aGUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UuCgpPcGVuIHRhc2tzOgoKICAgIDEuIFN1cHBvcnQg bGl2ZSBkZWJ1Z2dpbmcgb2YgbXVsdGl0aHJlYWRlZCBwcm9jZXNzZXMuCiAgICAyLiBGaXggYW1k NjQgd2F0Y2hwb2ludHMuCiAgICAzLiBBZGQgc3VwcG9ydCBmb3IgcmVtb3RlIGRlYnVnZ2luZyAo Z2Ric2VydmVyLCBkZWJ1Z3NlcnZlcikuCiAgICA0LiBBZGQgc3VwcG9ydCBmb3Iga2VybmVsIGRl YnVnZ2luZy4KICAgIDUuIFZlcmlmeSBpMzg2IGFuZCBhcm0gYXJjaGl0ZWN0dXJlcy4KICAgIDYu IEltcGxlbWVudCBNSVBTIHRhcmdldCBzdXBwb3J0LgogICAgNy4gVmVyaWZ5IGNyb3NzLWRlYnVn Z2luZy4KICAgIDguIEludmVzdGlnYXRlIGFuZCBmaXggdGVzdCBzdWl0ZSBmYWlsdXJlcy4KICAg ICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KCk5hdGl2ZSBpU0NTSSBTdGFjawoKICAgVVJMOiBodHRwczovL3dpa2kuZnJl ZWJzZC5vcmcvTmF0aXZlJTIwaVNDU0klMjB0YXJnZXQKCiAgIENvbnRhY3Q6IEVkd2FyZCBUb21h c3ogTmFwaWVyYcWCYSA8dHJhc3pARnJlZUJTRC5vcmc+CgogICBEdWUgdG8gdGhlIHF1aWNrbHkg YXBwcm9hY2hpbmcgdGltZSBvZiAxMC4wLVJFTEVBU0UsIHRoZSBwcmlvcml0aWVzIGZvcgogICB0 aGUgbmF0aXZlIGlTQ1NJIHN0YWNrIHNoaWZ0ZWQgc29tZXdoYXQsIGZyb20gcGVyZm9ybWFuY2Ug b3B0aW1pemF0aW9ucwogICB0byBtYWtpbmcgc3VyZSB0aGUgbmV3IHN0YWNrIGlzIHJlbGlhYmxl LCBmZWF0dXJlLWNvbXBsZXRlLCBhbmQgaXMgYWJsZQogICB0byBpbnRlcm9wZXJhdGUgY29ycmVj dGx5IHdpdGggdmFyaW91cyBpbXBsZW1lbnRhdGlvbnMuIFBsZW50eSBvZiB0aW1lCiAgIHdhcyBp bnZlc3RlZCBpbnRvIHRlc3RpbmcgYW5kIGRlYnVnZ2luZywgbW9zdGx5IG9uIHRoZSBpbml0aWF0 b3Igc2lkZSwKICAgdG8gbWFrZSBzdXJlIGl0IHdvcmtzIGNvcnJlY3RseSB3aXRoIG90aGVyIHRh cmdldHMsIHN1Y2ggYXMgU29sYXJpcwogICBDT01TVEFSLCBhbmQgYmVoYXZlcyBwcm9wZXJseSBp biBlZGdlIGNvbmRpdGlvbnMgbGlrZSBjb25uZWN0aW9uCiAgIHByb2JsZW1zLiBOZXZlcnRoZWxl c3MsIHNvbWUgZnVuZGFtZW50YWwgb3B0aW1pemF0aW9ucywgc3VjaCBhcwogICBJbW1lZGlhdGUg RGF0YSBzdXBwb3J0LCB3ZXJlIGltcGxlbWVudGVkLiBUaGUgZG9jdW1lbnRhdGlvbiBoYXMKICAg aW1wcm92ZWQsIGFuZCB0aGVyZSB3aWxsIGJlIGEgbmV3IHNlY3Rpb24gYWRkZWQgdG8gdGhlIEZy ZWVCU0QgSGFuZGJvb2sKICAgZGVzY3JpYmluZyB0aGUgdXNlIG9mIHRoZSBuZXcgc3RhY2suCgog ICBUaGUgbmV3IHN0YWNrIHdhcyBjb21taXR0ZWQgdG8gaGVhZCBhbmQgd2lsbCBzaGlwIGFzIHBh cnQgb2YKICAgMTAuMC1SRUxFQVNFLiBUaGVyZSBpcyBvbmdvaW5nIHdvcmsgb24gZml4aW5nIGlz c3VlcyByZXBvcnRlZCBieSBlYXJseQogICBhZG9wdGVycy4KCiAgIFRoaXMgcHJvamVjdCBpcyBi ZWluZyBzcG9uc29yZWQgYnkgVGhlIEZyZWVCU0QgRm91bmRhdGlvbi4KCk9wZW4gdGFza3M6Cgog ICAgMS4gRml4IG5ld2x5IHJlcG9ydGVkIGlzc3Vlcy4KICAgIDIuIEltcHJvdmUgcGVyZm9ybWFu Y2UuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCgpSZXdvcmtpbmcgcmFuZG9tKDQpCgogICBDb250YWN0OiBNYXJr IE11cnJheSA8bWFya21AZnJlZWJzZC5vcmc+CiAgIENvbnRhY3Q6IEFydGh1ciBNZXNoIDxhcnRo dXJtZXNoQGdtYWlsLmNvbT4KICAgQ29udGFjdDogRGFnLUVybGluZyBTbcO4cmdyYXYgPGRlc0Bm cmVlYnNkLm9yZz4KCiAgIFJhbmRvbSBudW1iZXJzIHJlcXVpcmUgYSBsb3QgbW9yZSB0aG91Z2h0 IGFuZCBwcmVwYXJhdGlvbiB0aGFuIHdvdWxkCiAgIG5haXZlbHkgYXBwZWFyIHRvIGJlIHRoZSBj YXNlLiBGb3Igc2ltdWxhdGlvbnMsIG51bWJlciBzZXF1ZW5jZXMgdGhhdAogICBhcmUgcmVwZWF0 YWJsZSBidXQgc3VmZmljaWVudGx5IGRpc29yZGVyZWQgYXJlIG9mdGVuIG5lZWRlZCB0byBhY2hp ZXZlCiAgIHJlcXVpcmVkIGV4cGVyaW1lbnRhbCBkdXBsaWNhdGlvbiBhYmlsaXR5LCBhbmQgbWFu eSBwcm9ncmFtbWVycyBhcmUKICAgZmFtaWxpYXIgd2l0aCB0aGVzZS4gRm9yIGNyeXB0b2dyYXBo eSwgaXQgaXMgZXNzZW50aWFsIHRoYXQgYW4gYXR0YWNrZXIKICAgbm90IGJlIGFibGUgdG8gcHJl ZGljdCBvciBndWVzcyB0aGUgb3V0cHV0IHNlcXVlbmNlLCB0aHVzIGdpdmluZyBhCiAgIHNvdXJj ZSBvZiBzZWN1cml0eS1jcml0aWNhbCBzZWNyZXQgbWF0ZXJpYWwgZm9yIHVzZXMgc3VjaCBhcyBw YXNzd29yZHMKICAgb3IgImtleSBtYXRlcmlhbCIuCgogICBGcmVlQlNEJ3MgcmFuZG9tIG51bWJl ciBnZW5lcmF0b3IsIGF2YWlsYWJsZSBhcyB0aGUgcHNldWRvLWZpbGUKICAgL2Rldi9yYW5kb20g cHJvZHVjZXMgdW5wcmVkaWN0YWJsZSBudW1iZXJzIGludGVuZGVkIGZvciBjcnlwdG9ncmFwaGlj CiAgIHVzZSwgYW5kIGlzIHRodXMgYSBDcnlwdG9ncmFwaWNhbGx5LVNlY3VyZWQgUHNldWRvLVJh bmRvbSBOdW1iZXIKICAgR2VuZXJhdG9yLCBvciBDU1BSTkcuIFRoZSBzZWN1cml0eSBpcyBnaXZl biBieSBjYXJlZnVsIGRlc2lnbiBvZiB0aGUKICAgb3V0cHV0IGdlbmVyYXRvciAoYmFzZWQgb24g YSBibG9jayBjaXBoZXIpIGFuZCBpbnB1dCBlbnRyb3B5CiAgIGFjY3VtdWxhdGlvbiBxdWV1ZXMu IFRoZSBsYXR0ZXIgdXNlcyBoYXNoZXMgdG8gYWNjdW11bGF0ZSBzdG9jaGFzdGljCiAgIGluZm9y bWF0aW9uIGhhcnZlc3RlZCBmcm9tIHZhcmlvdXMgcGxhY2VzIGluIHRoZSBrZXJuZWwgdG8gcHJv dmlkZQogICBoaWdobHkgdW5wcmVkaWN0YWJsZSBpbnB1dCB0byB0aGUgZ2VuZXJhdG9yLiBUaGUg YWxnb3JpdGhtIGZvciBkb2luZwogICB0aGlzLCBZYXJyb3csIGJ5IFNjaG5laWVyIGV0IGFsLCBt YXkgYmUgZm91bmQgYnkgd2ViIHNlYXJjaC4KCiAgIEZyZWVCU0QncyBDU1BSTkcgYWxzbyBhbGxv d2VkIGZvciBjZXJ0YWluIHN0b2NoYXN0aWMgc291cmNlcywgZGVlbWVkIHRvCiAgIGJlICJoaWdo LXF1YWxpdHkiLCB0byBkaXJlY3RseSBzdXBwbHkgdGhlIHJhbmRvbSg0KSBkZXZpY2Ugd2l0aG91 dAogICBnb2luZyB0aHJvdWdoIFlhcnJvdy4gV2l0aCByZWNlbnQgcmV2ZWxhdGlvbnMgb3ZlciBw b3NzaWJsZSBnb3Zlcm5tZW50CiAgIHN1cnZlaWxsYW5jZSBhbmQgaW52b2x2ZW1lbnQgaW4gdGhl IHNlbGVjdGlvbiBvZiB0aGVzZSAiaGlnaC1xdWFsaXR5IgogICBzb3VyY2VzLCBpdCBpcyBmZWx0 IHRoYXQgdGhleSBjYW4gbm8gbG9uZ2VyIGJlIHRydXN0ZWQsIGFuZCBtdXN0CiAgIHRoZXJlZm9y ZSBhbHNvIGJlIHByb2Nlc3NlZCB0aG91Z2ggWWFycm93LgoKICAgVGhlIG1hdHRlciB3YXMgZGlz Y3Vzc2VkIGF0IHZhcmlvdXMgbGV2ZWxzIG9mIGZvcm1hbGl0eSBhdCB0aGUKICAgQ2FtYnJpZGdl IERldmVsb3BlciBTdW1taXQgaW4gQXVndXN0LCBhbmQgYXQgRXVyb0JTRGNvbiAyMDEzIGluCiAg IFNlcHRlbWJlci4KCiAgIFRoaXMgd29yayBpcyBub3cgZG9uZSwgYW5kIHRoZSByYW5kb20oNCkg Q1NQUk5HIGlzIG5vdyBicm91Z2h0IHRvIGEKICAgbW9yZSBwYXJhbm9pZCwgbW9kZXJuIHN0YW5k YXJkIG9mIGRpc3RydXN0IHdpdGggcmVnYXJkIHRvIGl0cyBlbnRyb3B5CiAgIHNvdXJjZXMuIElu ZnJhc3RydWN0dXJlIHdvcmsgd2FzIGFsc28gZG9uZSB0byBmYWNpbGl0YXRlIGNlcnRhaW4KICAg ZW50cm9weS1zb3VyY2UgY2hvaWNlcyBmb3IgdGhlIGNvbnZlbmllbmNlIG9mIHRoZSBzeXN0ZW0K ICAgYWRtaW5pc3RyYXRvcnMuCgogICBGdXR1cmUgd29yayBpcyBub3cgZ29pbmcgYWhlYWQgd2l0 aCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIEZvcnR1bmEKICAgYWxnb3JpdGhtIGJ5IEZlcmd1 c29uIGFuZCBTY2huZWllciBhcyBhbiB1cGdyYWRlIG9yIGFsdGVybmF0aXZlIHRvCiAgIFlhcnJv dy4gSW5pdGlhbGx5IGEgY2hvaWNlIHdpbGwgYmUgcHJlc2VudGVkLCBhbmQgZGVjaXNpb25zIG9u IHRoZQogICBmdXR1cmUgb2YgdGhlIENTUFJORyBwcm9jZXNzaW5nIGFsZ29yaXRobXMgaW4gdXNl IHdpbGwgYmUgbWFkZSBpbiB0aGUKICAgZnV0dXJlIGFzIG5lZWRzIGFyaXNlLgoKT3BlbiB0YXNr czoKCiAgICAxLiBJbXBsZW1lbnQgRklQUyA4MDAtOTBiIHN1cHBvcnQuCiAgICAyLiBBIGZ1bGws IGluLWRlcHRoIHJldmlldyBvZiBlbnRyb3B5LgogICAgIF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKU0RJTyBEcml2ZXIK CiAgIFVSTDogaHR0cHM6Ly93aWtpLmZyZWVic2Qub3JnL1NESU8KICAgVVJMOiBodHRwczovL2dp dGh1Yi5jb20va2liYWIvZnJlZWJzZC90cmVlL2tpYmFiLWRwbHVnCgogICBDb250YWN0OiBJbHlh IEJha3VsaW4gPGlseWFAYmFrdWxpbi5kZT4KCiAgIFNESU8gaXMgYW4gaW50ZXJmYWNlIGRlc2ln bmVkIGFzIGFuIGV4dGVuc2lvbiBvZiB0aGUgZXhpc3RpbmcgU0QgY2FyZAogICBzdGFuZGFyZCwg dG8gYWxsb3cgY29ubmVjdGluZyBkaWZmZXJlbnQgcGVyaXBoZXJhbHMgdG8gdGhlIGhvc3Qgd2l0 aAogICB0aGUgc3RhbmRhcmQgU0QgY29udHJvbGxlci4gUGVyaXBoZXJhbHMgY3VycmVudGx5IHNv bGQgYXQgdGhlIGdlbmVyYWwKICAgbWFya2V0IGluY2x1ZGUgV0xBTi9CVCBtb2R1bGVzLCBjYW1l cmFzLCBmaW5nZXJwcmludCByZWFkZXJzLCBhbmQKICAgYmFyY29kZSBzY2FubmVycy4gVGhlIGRy aXZlciBpcyBpbXBsZW1lbnRlZCBhcyBhbiBleHRlbnNpb24gdG8gdGhlCiAgIGV4aXN0aW5nIE1N QyBidXMsIGFkZGluZyBhIGxvdCBvZiBuZXcgU0RJTy1zcGVjaWZpYyBidXMgbWV0aG9kcy4gQQog ICBwcm90b3R5cGUgb2YgdGhlIGRyaXZlciBmb3IgdGhlIE1hcnZlbGwgU0RJTyBXTEFOL0JUIChB dmFzdGFyIDg4Vzg3ODcpCiAgIG1vZHVsZSBpcyBhbHNvIGJlaW5nIGRldmVsb3BlZCwgdXNpbmcg dGhlIGV4aXN0aW5nIExpbnV4IGRyaXZlciBhcyB0aGUKICAgcmVmZXJlbmNlLgoKICAgU0RJTyBj YXJkIGRldGVjdGlvbiBhbmQgaW5pdGlhbGl6YXRpb24gYWxyZWFkeSB3b3JrLCBtb3N0IG5lZWRl ZCBidXMKICAgbWV0aG9kcyBhcmUgaW1wbGVtZW50ZWQgYW5kIHRlc3RlZC4gVGhlcmUgaXMgYW4g b25nb2luZyB3b3JrIHRvIGRlc2lnbgogICBhIGdvb2QgbG9ja2luZyBtb2RlbCBmb3IgdGhlIHN0 YWNrLiBUaGUgV2lGaSBkcml2ZXIgaXMgYWJsZSB0byBsb2FkCiAgIGZpcm13YXJlIG9udG8gdGhl IGNhcmQgYW5kIGluaXRpYWxpemUgaXQuCgpPcGVuIHRhc2tzOgoKICAgIDEuIFNESU8gc3RhY2s6 IERlc2lnbiBhIGxvY2tpbmcgbW9kZWwsIGRlZmluZSBob3cgdGhlIGludGVycnVwdHMKICAgICAg IHNob3VsZCBiZSBwcm9jZXNzZWQgKG9uIFNESU8gY29udHJvbGxlciBsZXZlbCwgTU1DIHN0YWNr IGxldmVsIGFuZAogICAgICAgYnkgY2hpbGQgZHJpdmVycykuCiAgICAyLiBNYXJ2ZWxsIFNESU8g V2lGaTogY29ubmVjdCB0byB0aGUgRnJlZUJTRCBuZXR3b3JrIHN0YWNrLCB3cml0ZSB0aGUKICAg ICAgIGNvZGUgdG8gaW1wbGVtZW50IHJlcXVpcmVkIGZ1bmN0aW9ucyAoc3VjaCBhcyBzZW5kaW5n IGFuZCByZWNlaXZpbmcKICAgICAgIGRhdGEsIG5ldHdvcmsgc2Nhbm5pbmcsIGFuZCBzbyBvbiku CiAgICAzLiBJbXBsZW1lbnQgZGV0YWNoIHBhdGguIEl0IGNhbm5vdCBiZSB0ZXN0ZWQgb24gdGhl IERyZWFtUGx1ZyB1c2VkCiAgICAgICBmb3IgZGV2ZWxvcG1lbnQsIGJlY2F1c2UgdGhlIERyZWFt UGx1ZyBkb2VzIG5vdCBoYXZlIGFuIGV4dGVybmFsCiAgICAgICBTRElPLWNhcGFibGUgc2xvdC4K ICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KClN0YXRpYyBDb2RlIEFuYWx5c2lzCgogICBVUkw6IGh0dHA6Ly9zY2Fu LmNvdmVyaXR5LmNvbS8KICAgVVJMOiBodHRwOi8vc2Nhbi5mcmVlYnNkLnlvdXIub3JnLwogICBV Ukw6IGh0dHA6Ly9jbGFuZy1hbmFseXplci5sbHZtLm9yZy8KCiAgIENvbnRhY3Q6IFVscmljaCBT cG9lcmxlaW4gPHVxc0BGcmVlQlNELm9yZz4KCiAgIFdpdGggb3VyIG93biAob2xkIGFuZCB1bnN0 YWJsZSkgaW5zdGFuY2Ugb2YgQ292ZXJpdHkgUHJldmVudCBnb25lLCB3ZQogICBoYXZlIG5vdyBm dWxseSB0cmFuc2l0aW9uZWQgdG8gdGhlIFNjYW4gcHJvamVjdCBydW4gYnkgQ292ZXJpdHkgKHNl ZQogICBsaW5rcyksIHdoaWNoIE9wZW4gU291cmNlIHByb2plY3RzIGNhbiB1c2UgdG8gbGVhcm4g YWJvdXQgcG9zc2libGUKICAgZGVmZWN0cyBpbiB0aGVpciBzb3VyY2UgY29kZS4KCiAgIFdlIGFs c28gY29udGludWUgdG8gcnVuIG91ciBjb2RlIGJhc2UgdGhyb3VnaCB0aGUgU3RhdGljIEFuYWx5 emVyIHRoYXQKICAgaXMgc2hpcHBlZCB3aXRoIENsYW5nL0xMVk0uIEl0IGNhbm5vdCB0cmFjayB0 aGUgc3RhdGUgb2YgdGhlIGNvZGUgb3ZlcgogICB0aW1lLCBidXQgaGFzIHRoZSBiZW5lZml0IHRo YXQgZXZlcnlvbmUgY2FuIHVzZSBpdCB3aXRob3V0IGFueSBzcGVjaWFsCiAgIHNldHVwLiBTZWUg dGhlIGhvbWUgcGFnZSBhdCB0aGUgbGlua3Mgc2VjdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBv bgogICB0aGUgQ2xhbmcgU3RhdGljIEFuYWx5emVyIHByb2plY3QgaW4gZ2VuZXJhbCwgYW5kIGhl YWQgb3ZlciB0byB0aGUKICAgRnJlZUJTRCBDbGFuZyBTdGF0aWMgQW5hbHl6ZXIgU2NhbiBwYWdl IChzZWUgbGlua3MpIHRvIHNlZSB0aG9zZQogICBwb3NzaWJsZSBkZWZlY3RzIChubyBzaWdudXAg cmVxdWlyZWQpLgoKICAgV2UgYXJlIGxvb2tpbmcgZm9yIGEgY28tYWRtaW4gZm9yIGJvdGggb2Yg dGhlc2UgcHJvamVjdHMgdG8gaW5jcmVhc2UKICAgdGhlIGJ1cy1mYWN0b3IgYW5kIHRoZSBjaGFu Y2Ugb2Ygc3Vydml2YWwgZm9yIHRoZXNlIHNlcnZpY2VzLiBGYW1lIGFuZAogICBmb3J0dW5lIGF3 YWl0IQoKT3BlbiB0YXNrczoKCiAgICAxLiBNYXliZSB0dXJuIG9uIGVtYWlsIHJlcG9ydHMgZm9y IG5ldyBkZWZlY3RzIHRvIHRoZSBpbnRlcm5hbCBsaXN0IG9mCiAgICAgICBGcmVlQlNEIGRldmVs b3BlcnMuCiAgICAyLiBGaW5kIGNvLWFkbWluLgogICAgMy4gRml4IHRoZSBkZWZlY3RzIHJlcG9y dGVkIGJ5IENvdmVyaXR5IGFuZCBDbGFuZy4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KClN1cGVycGFnZXMgZm9y IEFSTXY3CgogICBVUkw6IGh0dHA6Ly9zdGF0aWMudXNlbml4Lm9yZy9ldmVudHMvb3NkaTAyL3Rl Y2gvZnVsbF9wYXBlcnMvbmF2YXJyby9uYXZhcnJvLnBkZgogICBVUkw6IGh0dHA6Ly93aWtpLmZy ZWVic2Qub3JnL0FSTVN1cGVycGFnZXMKICAgVVJMOiBodHRwOi8vYmxvZ3MuYXJtLmNvbS9zb2Z0 d2FyZS1lbmFibGVtZW50LzEwNzktdHJhbnNwYXJlbnQtc3VwZXJwYWdlcy1mb3ItZnJlZWJzZC1v bi1hcm0KICAgVVJMOiBodHRwczovL3dpa2kuZnJlZWJzZC5vcmcvMjAxMzA5RGV2U3VtbWl0P2Fj dGlvbj1BdHRhY2hGaWxlJmRvPXZpZXcmdGFyZ2V0PXNlbWloYWxmLXN1cGVycGFnZXNfYXJtdjcu cGRmCiAgIFVSTDogaHR0cDovL3N2bndlYi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yNTQ5 MTgKCiAgIENvbnRhY3Q6IFpiaWduaWV3IEJvZGVrIDx6YmJAc2VtaWhhbGYuY29tPgogICBDb250 YWN0OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgQ29udGFjdDogUmFm YcWCIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CgogICBUaGUgQVJNIGFyY2hpdGVjdHVy ZSBpcyBiZWNvbWluZyBtb3JlIGFuZCBtb3JlIHByZXZhbGVudCwgd2l0aAogICBpbmNyZWFzaW5n IHVzYWdlIGJleW9uZCB0aGUgbW9iaWxlIGFuZCBlbWJlZGRlZCBzcGFjZS4gQW1vbmcgdGhlIG1v cmUKICAgaW50ZXJlc3RpbmcgaW5kdXN0cnkgdHJlbmRzIGVtZXJnaW5nIGluIHRoZSByZWNlbnQg bW9udGhzLCB0aGVyZSBoYXMKICAgYmVlbiB0aGUgY29uY2VwdCBvZiAiQVJNIHNlcnZlciIuIFRv cC10aWVyIGNvbXBhbmllcyBsaWtlIERlbGwgYW5kIEhQCiAgIGhhdmUgYWxyZWFkeSBzdGFydGVk IHRvIGRldmVsb3Agc3VjaCBzeXN0ZW1zLgoKICAgS2V5IHRvIHRoZSBzdWNjZXNzIG9mIEZyZWVC U0QgaW4gdGhlc2UgbmV3IGFyZWFzIGlzIGRlYWxpbmcgd2l0aCB0aGUKICAgc29waGlzdGljYXRl ZCBmZWF0dXJlcyBvZiB0aGUgcGxhdGZvcm0sIGZvciBleGFtcGxlIGFkZGluZyBzdXBwb3J0IGZv cgogICBzdXBlcnBhZ2VzLgoKICAgVGhlIG9iamVjdGl2ZSBvZiB0aGlzIHByb2plY3QgaXMgdG8g ZW5hYmxlIEZyZWVCU0QvYXJtIHRvIHV0aWxpemUKICAgc3VwZXJwYWdlcywgYWxsb3dpbmcgZWZm aWNpZW50IHVzZSBvZiBUTEIgdHJhbnNsYXRpb25zIChieSBlbmxhcmdpbmcKICAgVExCIGNvdmVy YWdlKSwgbGVhZGluZyB0byBpbXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBtYW55IGFwcGxpY2F0aW9u cyBhbmQKICAgc2NhbGFiaWxpdHkuIFRoaXMgaXMgaW50ZW5kZWQgdG8gd29yayBvbiBBUk12Ny1i YXNlZCBwcm9jZXNzb3JzLAogICBob3dldmVyIGNvbXBhdGliaWxpdHkgd2l0aCBBUk12NiB3aWxs IGJlIHByZXNlcnZlZC4KCiAgIFRoZSBmb2xsb3dpbmcgc3RlcHMgaGF2ZSBiZWVuIG1hZGUgc2lu Y2UgdGhlIGxhc3Qgc3RhdHVzIHJlcG9ydDoKICAgICAqIFRoZSBwbWFwKDkpIG1vZHVsZSBoYXMg YmVlbiBhZGp1c3RlZCB0byBmdWxseSB1dGlsaXplIHN1cGVycGFnZXMuCiAgICAgKiBGb3VuZCBh bmQgZml4ZWQgbWlub3IgYnVncyBpbiBzdXBlcnBhZ2UgbWFuYWdlbWVudC4KICAgICAqIEltcGxl bWVudGVkIHRoZSBwbWFwX2FkdmlzZSgpIHJvdXRpbmUuCiAgICAgKiBQZXJmb3JtZWQgZXh0ZW5z aXZlIHRlc3RpbmcgYW5kIGJlbmNobWFya2luZzoKICAgICAgICAgICsgR2lnYSBVcGRhdGVzIFBl ciBTZWNvbmQgKEdVUFMpIGJlbmNobWFyazogMzQlIGxvd2VyIG1lbW9yeQogICAgICAgICAgICBh Y2Nlc3MgbGF0ZW5jeSBhbmQgMzQlIGhpZ2hlciB1cGRhdGVzIHJhdGlvLgogICAgICAgICAgKyBM TWJlbmNoOiAzOCUgbG93ZXIgbWVtb3J5IGxhdGVuY3kuCiAgICAgICAgICArIFNlbGYtaG9zdGVk IGJ1aWxkd29ybGQ6IDIwJSBzaG9ydGVyLCB1c2luZyBHQ0MuCiAgICAgKiBGaW5hbCBpbnRlZ3Jh dGlvbiBpbnRvIEZyZWVCU0QgaGVhZC4KCiAgIFRoaXMgcHJvamVjdCBpcyBqb2ludGx5IHNwb25z b3JlZCBieSBUaGUgRnJlZUJTRCBGb3VuZGF0aW9uIGFuZAogICBTZW1paGFsZi4KCk9wZW4gdGFz a3M6CgogICAgMS4gQWRqdXN0IHBtYXAgdG8gcmVzb2x2ZSB0aGUgZGVtb3Rpb24gaXNzdWUgY2F1 c2VkIGJ5IHRoZSBjb250aW51b3VzCiAgICAgICBhY3RpdmUgcXVldWUgc2Nhbm5pbmcgaW4gVk0u CiAgICAyLiBTdXBwb3J0IGZvciA2NEtCIHBhZ2Ugc2l6ZS4KICAgIDMuIE1vdmUgcHZfZmxhZ3Mg dG8gcGFnZSB0YWJsZSBlbnRyeSBkZXNjcmlwdG9ycy4KICAgICBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KClRoZSBlbnRp dGllcyBEb2N1bWVudGF0aW9uIEJyYW5jaAoKICAgVVJMOiBodHRwOi8vc3Zud2ViLmZyZWVic2Qu b3JnL2NoYW5nZXNldC9kb2MvNDIyMjYKCiAgIENvbnRhY3Q6IFJlbsOpIExhZGFuIDxyZW5lQEZy ZWVCU0Qub3JnPgoKICAgVGhlIGVudGl0aWVzIHByb2plY3QgYnJhbmNoIGhhcyBiZWVuIHN1Y2Nl c3NmdWxseSBtZXJnZWQgaW50byB0aGUgbWFpbgogICBkb2N1bWVudGF0aW9uIGJyYW5jaCBwZXIg cmV2aXNpb24gNDIyMjYgb2YgdGhlIGRvYyByZXBvc2l0b3J5IChzZWUKICAgbGluaykuIFRoZSBw dXJwb3NlIG9mIHRoaXMgYnJhbmNoIHdhcyB0byByZW1vdmUgdGhlIGR1cGxpY2F0ZWQKICAgZGVm aW5pdGlvbnMgb2YgYXV0aG9ycyBpbiBib3RoIGF1dGhvcnMuZW50IGFuZCBkZXZlbG9wZXJzLmVu dC4gVGhlCiAgIGxhdHRlciBmaWxlIGhhcyBiZWVuIHJlbW92ZWQgYWZ0ZXIgbWlncmF0aW5nIGl0 cyBjb250ZW50cyB0byB0aGUgZm9ybWVyCiAgIGZpbGUuIFdoaWxlIG1vc3QgY2hhbmdlcyBhcmUg bm90IHZpc2libGUgdG8gZW5kIHVzZXJzLCB0aGUgQ29tbWl0dGVyJ3MKICAgR3VpZGUgd2FzIGNo YW5nZWQgdG8gYWNjb21vZGF0ZSBmb3IgY2hhbmdlcyByZWxhdGVkIHRvIGFkZGluZyBhIG5ldwog ICBjb21taXR0ZXIuIFRyYW5zbGF0b3JzIHdlcmUgYWxzbyBpbmZvcm1lZCBvZiB0aGUgdXBkYXRl LiBUaGUgbGFyZ2VzdAogICBodXJkbGUgbWVudGlvbmVkIGluIHRoZSBsYXN0IHJlcG9ydCwgcHJv Y2Vzc2luZyB0aGUgPGVtYWlsPiBlbGVtZW50LAogICB3YXMgc29sdmVkIHdpdGggdGhlIGhlbHAg b2YgR8OhYm9yIEvDtnZlc2TDoW4uCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpUaGUgRnJlZUJTRCBGb3VuZGF0 aW9uCgogICBVUkw6IGh0dHA6Ly93d3cuRnJlZUJTREZvdW5kYXRpb24ub3JnLwoKICAgQ29udGFj dDogRGViIEdvb2RraW4gPGRlYkBGcmVlQlNERm91bmRhdGlvbi5vcmc+CgogICBUaGUgRnJlZUJT RCBGb3VuZGF0aW9uIGlzIGEgNTAxKGMpKDMpIG5vbi1wcm9maXQgb3JnYW5pemF0aW9uIGRlZGlj YXRlZAogICB0byBzdXBwb3J0aW5nIGFuZCBwcm9tb3RpbmcgdGhlIEZyZWVCU0QgUHJvamVjdCBh bmQgY29tbXVuaXR5CiAgIHdvcmxkd2lkZS4gTW9zdCBvZiBvdXIgZnVuZGluZyBpcyB1c2VkIHRv IHN1cHBvcnQgRnJlZUJTRCBkZXZlbG9wbWVudAogICBwcm9qZWN0cywgY29uZmVyZW5jZXMgYW5k IGRldmVsb3BlciBzdW1taXRzLCBwdXJjaGFzZSBlcXVpcG1lbnQgdG8gZ3JvdwogICBhbmQgaW1w cm92ZSB0aGUgRnJlZUJTRCBpbmZyYXN0cnVjdHVyZSwgYW5kIHByb3ZpZGUgbGVnYWwgc3VwcG9y dCBmb3IKICAgdGhlIFByb2plY3QuCgogICBXZSBsaXN0ZW5lZCB0byBvdXIgZG9ub3JzIHdobyBh c2tlZCB1cyB0byBoYXZlIG1vcmUgZnVuZHJhaXNpbmcgZWZmb3J0cwogICB0aHJvdWdob3V0IHRo ZSB5ZWFyLiBUaGlzIHF1YXJ0ZXIgd2UgaGFkIHRoZSBzZWNvbmQgb2YgdGhyZWUKICAgZnVuZHJh aXNpbmcgY2FtcGFpZ25zIHBsYW5uZWQgZm9yIDIwMTMuIFdlIHN0YXJ0ZWQgdGhlIHF1YXJ0ZXIg aGF2aW5nCiAgIHJhaXNlZCAkMzY1LDI5MS4gQnkgdGhlIGVuZCBvZiB0aGUgcXVhcnRlciwgd2Ug cmFpc2VkICQ0MTAsMDAwIGZvciB0aGUKICAgeWVhci4gVGhlc2UgZWFybHkgZG9uYXRpb25zIGhh dmUgbWFkZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiBvdXIKICAgZnVuZHJhaXNpbmcgZWZmb3J0 cyB0aGlzIHllYXIuCgogICBTb21lIG9mIHRoZSBoaWdobGlnaHRzIGZyb20gdGhpcyBwYXN0IHF1 YXJ0ZXIgaW5jbHVkZToKICAgICAqIFByb2plY3RzIGNvbXBsZXRlZCBsYXN0IHF1YXJ0ZXI6CiAg ICAgICAgICArIEFSTSBTdXBlcnBhZ2VzCiAgICAgICAgICArIERvY3VtZW50YXRpb24gcHJvamVj dCBpbmZyYXN0cnVjdHVyZSBlbmhhbmNlbWVudHMKICAgICAqIFByb2plY3RzIGluIHByb2dyZXNz OgogICAgICAgICAgKyBOYXRpdmUgaVNDU0kga2VybmVsIHN0YWNrCiAgICAgICAgICArIE5ld2Nv bnMgY29uc29sZSBkcml2ZXIKICAgICAqIFByb2plY3RzIHRoYXQgc3RhcnRlZCBsYXN0IHF1YXJ0 ZXI6CiAgICAgICAgICArIENhcHNpY3VtIEludGVncmF0aW9uCiAgICAgICAgICArIE5ldHdvcmsg U3RhY2sgTGF5ZXIgMiBNb2Rlcm5pemF0aW9uCiAgICAgKiBQbGF0aW51bSBTcG9uc29yIGZvciBF dXJvQlNEY29uLCBoYWQgc2l4IEZvdW5kYXRpb24gcmVwcmVzZW50YXRpdmVzCiAgICAgICBhdHRl bmQgdGhlIGNvbmZlcmVuY2UgYW5kIHRoZSBEZXZlbG9wZXIgU3VtbWl0LCBzcG9uc29yZWQgNwog ICAgICAgZGV2ZWxvcGVycyB0byBhdHRlbmQgdGhlIGNvbmZlcmVuY2UsIGFuZCBzcG9uc29yZWQg dGhlIERldmVsb3BlcgogICAgICAgU3VtbWl0LgogICAgICogU3BvbnNvcmVkIHRoZSBDYW1icmlk Z2UgRGV2ZWxvcGVyIFN1bW1pdCwgYW5kIHNwb25zb3JlZCAyCiAgICAgICBkZXZlbG9wZXJzIHRv IGF0dGVuZCB0aGlzIGV2ZW50LgogICAgICogQXR0ZW5kZWQgSW5kaWFuYXBvbGlzIExpbnV4RmVz dCBKdWx5IDI3LCBGT1NTQ09OIGluIFBoaWxhZGVscGhpYQogICAgICAgQXVndXN0IDEwLCBPaGlv IExpbnV4RmVzdCBpbiBDb2x1bWJ1cyBTZXB0ZW1iZXIgMTQsIGFuZCBMaW51eENvbiBpbgogICAg ICAgTmV3IE9ybGVhbnMgU2VwdGVtYmVyIDE2LTE3LCB0byBwcm9tb3RlIEZyZWVCU0QuCiAgICAg KiBNZXQgd2l0aCB0aGUgRnJlZUJTRCBDb3JlIFRlYW0gdG8gZGlzY3VzcyB0aGVpciBnb2FscyBh bmQgdG8KICAgICAgIGRpc2N1c3MgYXJlYXMgdGhhdCB3ZSBjYW4gaGVscC4KICAgICAqIE1ldCB3 aXRoIHRoZSBEb2N1bWVudGF0aW9uIFRlYW0gdG8gdGFsayBhYm91dCBoZWxwaW5nIHRoZW0gdXBk YXRlCiAgICAgICB0aGVpciB3ZWJzaXRlIGFzIHdlbGwgYXMgd2hhdCBvdGhlciBhcmVhcyB3ZSBj YW4gaGVscCB0aGVtIHdpdGguCiAgICAgKiBSZWNvZ25pemVkIERhZy1FcmxpbmcgU23DuHJncmF2 IGF0IEV1cm9CU0Rjb24gZm9yIGhpcyBjb250cmlidXRpb25zCiAgICAgICB0byBGcmVlQlNELgog ICAgICogQmVjYW1lIGEgc3BvbnNvciBvZiB2QlNEQ29uLCBhIG5ldyBjb25mZXJlbmNlIGluIFdh c2hpbmd0b24sIERDLgogICAgICogSGlyZWQgR2xlbiBCYXJiZXIgYXMgYSBmdWxsLXRpbWUgZW1w bG95ZWUgdG8gZG8gc3lzdGVtCiAgICAgICBhZG1pbmlzdHJhdGlvbiB3b3JrIGFuZCB0byBoZWxw IHdpdGggcmVsZWFzZSBlbmdpbmVlcmluZy4KICAgICAqIEhpcmVkIENpbnRoeSBUYW5rbyBhcyBh IHBhcnQtdGltZSBhZG1pbmlzdHJhdGl2ZSBhc3Npc3RhbnQgdG8gaGVscAogICAgICAgd2l0aCBk YXktdG8tZGF5IEZvdW5kYXRpb24gYWN0aXZpdGllcy4KICAgICAqIFB1cmNoYXNlZCBoYXJkd2Fy ZSB0byBiZSBwbGFjZWQgaW4gb3VyIE5ZSSBjb2xvIHRvIHN1cHBvcnQgdGhlCiAgICAgICBidWls ZGluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIG5ldyBzdHlsZSBwYWNrYWdlcyBpbiBhZHZhbmNlIG9m CiAgICAgICBGcmVlQlNEIDEwLgogICAgICogUHJvdmlkZWQgdGVsZWNvbmZlcmVuY2luZyBzZXJ2 aWNlcyB0byB0aGUgQ29yZSBUZWFtIHRvIHN1cHBvcnQKICAgICAgIHRoZWlyIG1vbnRobHkgY29u ZmVyZW5jZXMuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCgpWaXJ0SU8gTmV0d29yayBNdWx0aXF1ZXVlCgogICBV Ukw6IGh0dHA6Ly9zdm53ZWIuZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jhc2UvMjU1MTEyCgogICBD b250YWN0OiBCcnlhbiBWZW50ZWljaGVyIDxicnlhbnZAZnJlZWJzZC5vcmc+CgogICBUaGUgVmly dElPIG5ldHdvcmsgZHJpdmVyLCB2dG5ldCg0KSwgaXMgdXNlZCBieSBGcmVlQlNEIHN5c3RlbXMg cnVubmluZwogICBvbiBoeXBlcnZpc29ycyBpbmNsdWRpbmcgYmh5dmUoNCkgYW5kIExpbnV4J3Mg S1ZNLiBJdCByZWNlbnRseSBnYWluZWQKICAgc3VwcG9ydCBmb3IgbXVsdGlwbGUgcXVldWVzLCBh bG9uZyB3aXRoIGEgc2lnbmlmaWNhbnQgY2xlYW51cCBhbmQKICAgc3VwcG9ydCBmb3IgYSBmZXcg YWRkaXRpb25hbCBmZWF0dXJlcy4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KClZNd2FyZSBWTVhORVQzIERyaXZl cgoKICAgVVJMOiBodHRwOi8vbGlzdHMuZnJlZWJzZC5vcmcvcGlwZXJtYWlsL2ZyZWVic2QtY3Vy cmVudC8yMDEzLUF1Z3VzdC8wNDM0OTQuaHRtbAogICBVUkw6IGh0dHA6Ly9zdm53ZWIuZnJlZWJz ZC5vcmcvYmFzZS9oZWFkL3N5cy9kZXYvdm13YXJlL3ZteG5ldDMvCgogICBDb250YWN0OiBCcnlh biBWZW50ZWljaGVyIDxicnlhbnZAZnJlZWJzZC5vcmc+CgogICBBIHBvcnQgb2YgdGhlIE9wZW5C U0Qgdm14KDQpIGV0aGVybmV0IGRyaXZlciBmb3IgVk13YXJlIHZpcnR1YWwKICAgbWFjaGluZXMg aGFzIGJlZW4gY29tbWl0dGVkLiBUaGUgZHJpdmVyIGNhbiBiZSB1c2VkIGluIHBsYWNlIG9mIHRo ZQogICBWTXdhcmUgVG9vbHMgdm14bmV0MyBkcml2ZXIsIHdoaWNoIGN1cnJlbnRseSBkb2VzIG5v dCBzdXBwb3J0CiAgIDEwLjAtUkVMRUFTRSAob3IgYW55dGhpbmcgcGFzdCA5LjAtUkVMRUFTRSku CgpPcGVuIHRhc2tzOgoKICAgIDEuIFBlcmZvcm1hbmNlIGltcHJvdmVtZW50cywgbXVsdGlxdWV1 ZSBzdXBwb3J0LgogICAgMi4gTWVyZ2UgdG8gc3RhYmxlLzkuCiAgICAgX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpYLk9y ZyBvbiBGcmVlQlNECgogICBVUkw6IGh0dHBzOi8vd2lraS5mcmVlYnNkLm9yZy9HcmFwaGljcwog ICBVUkw6IGh0dHBzOi8vd2lraS5mcmVlYnNkLm9yZy9Yb3JnCiAgIFVSTDogaHR0cDovL3RyaWxs aWFuLmNocnVldGVydGVlLmNoL3BvcnRzL2Jyb3dzZXIvdHJ1bmsKICAgVVJMOiBodHRwczovL3dp a2kuZnJlZWJzZC5vcmcvQU1EX0dQVQogICBVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9kdW1iYmVs bC9mcmVlYnNkL3RyZWUva21zLWRybS11cGRhdGUtMzgKCiAgIENvbnRhY3Q6IEZyZWVCU0RYMTEg VGVhbSA8eDExQEZyZWVCU0Qub3JnPgoKICAgTWVzYSA5LjEgKGxpYkdMIGFuZCBkcmkpIHdhcyB1 cGRhdGVkIGluIHBvcnRzLiBUaGlzIGluY2x1ZGVzCiAgIGV4cGVyaW1lbnRhbCBwb3J0cyBmb3Ig bGliRUdMIGFuZCBsaWJnbGVzMjogdGhleSBhcmUgZGVwZW5kZW5jaWVzIG9mCiAgIHRoZSBleHBl cmltZW50YWwgcG9ydHMgZm9yIFdheWxhbmQgYW5kIFdlc3Rvbi4KCiAgIFRoZSByYWRlb25rbXMg ZHJpdmVyIHdhcyBjb21taXR0ZWQgdG8gRnJlZUJTRCBoZWFkIGluIHRoZSBlbmQgb2YgQXVndXN0 CiAgIGFuZCB3aWxsIGJlIHBhcnQgb2YgMTAuMC1SRUxFQVNFLiBJdCByZWNlaXZlZCBzZXZlcmFs IGZpeGVzIHNpbmNlIHRoZQogICBpbml0aWFsIGNvbW1pdCBhbmQgbm93IHNlZW1zIHF1aXRlIHN0 YWJsZS4gSG93ZXZlciwgb25lIG1pc3NpbmcgbWFqb3IKICAgZmVhdHVyZSBpcyBzdXBwb3J0IGZv ciBzdXNwZW5kL3Jlc3VtZTogdGhlIEdQVSBhbG1vc3QgYWx3YXlzIGxvY2tzIHVwCiAgIGR1cmlu ZyByZXN1bWUgb24gdGhlIHRlc3QgY29tcHV0ZXIuCgogICBUaGFua3MgdG8gdGhlIHVwZGF0ZSBv ZiBNZXNhIGFuZCB0aGUgdXBkYXRlIG9mCiAgIHgxMS1kcml2ZXJzL3hmODYtdmlkZW8tYXRpIHRv IDcuMi4wIGluIHRoZSBwb3J0cyB0cmVlLCBldmVyeSBwaWVjZXMgYXJlCiAgIGluIHBsYWNlIHRv IGFsbG93IHVzZXJzIHRvIHVzZSByZWNlbnQgQU1EIHZpZGVvIGNhcmRzICh1cCB0byBIRDcwMDAs CiAgIG1heWJlIHNvbWUgSEQ4MDAwKS4KCiAgIFRoZSBkcml2ZXIgd2lsbCBub3cgb25seSByZWNl aXZlIGJ1ZyBmaXhlcyBhbmQgZm9jdXMgd2lsbCBtb3ZlIG9uIHRoZQogICB1cGRhdGUgb2YgdGhl IERSTSBnZW5lcmljIGNvZGUgYW5kIHRoZSBpOTE1IGRyaXZlci4KCiAgIFRoZSBnZW5lcmljIERS TSBjb2RlLCBzaGFyZWQgYnkgdGhlIGk5MTVrbXMgYW5kIHJhZGVvbmttcyB2aWRlbyBkcml2ZXJz CiAgIGlzIHF1aXRlIG9sZCBub3cuIFdvcmsgaGFzIHN0YXJ0ZWQgdG8gdXBkYXRlIGFuZCBzeW5j IGl0IHdpdGggdGhhdCBvZgogICBMaW51eCAzLjguIFRoaXMgY29kZSBpcyBhdmFpbGFibGUgb24g R2l0SHViLgoKICAgVGhlIGV4cGVjdGVkIGJlbmVmaXRzIGFyZToKICAgICAqIEZpeGVzIGluIHRo ZSBmcmFtZWJ1ZmZlciBjb2RlLCB3aGljaCB3b3VsZCBoZWxwIHRoZSBmdXR1cmUKICAgICAgIGRl cGxveW1lbnQgb2YgTmV3Y29ucy4KICAgICAqIFByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIG1pbm9y IGRldmljZXMgKHRoYXQgaXMsIGNvbnRyb2wgdmVyc3VzCiAgICAgICByZW5kZXIgbm9kZXMpLgog ICAgICogU3VwcG9ydCBmb3Igc2V0bWFzdGVyIGFuZCBkcm9wbWFzdGVyLCB3aGljaCBhbGxvd3Mg dG8gcnVuIG11bHRpcGxlCiAgICAgICBYIHNlc3Npb25zLgoKICAgRnJhbsOnb2lzIFRpZ2VvdCBm cm9tIERyYWdvbkZseSBpcyBhbHNvIHdvcmtpbmcgb24gdXBkYXRlcyB0byB0aGVpciBEUk0KICAg Y29kZSwgYW5kIHRoZSBYMTEgdGVhbSBpcyBwbGFubmluZyB0byBzaGFyZSB0aGUgZWZmb3J0LgoK ICAgQW4gZXhwZXJpbWVudGFsIGRldmQoOCkgYmFja2VuZCB3YXMgYWRkZWQgdG8gdGhlCiAgIHgx MS1zZXJ2ZXJzL3hvcmctc2VydmVyIHBvcnQuIFRoaXMgYWxsb3dzIFguT3JnIHRvIHVzZSBkZXZk KDgpIHRvCiAgIGRldGVjdCBhbmQgY29uZmlndXJlIGlucHV0IGRldmljZXMgKGZvciBleGFtcGxl LCBrZXlib2FyZHMgYW5kIG1pY2VzKQogICBkeW5hbWljYWxseS4KCiAgIE91ciBjdXJyZW50IHdp a2kgYXJ0aWNsZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgcHJvamVjdHMgYW5kIHJlcG9ydAogICBz dGF0dXMuIEhvd2V2ZXIsIHRoZXkgbGFjayBzb21lIGNvbnNpc3RlbmN5IGFuZCBsaW5rcyBiZXR3 ZWVuIHRoZW0uIFdlCiAgIHN0YXJ0ZWQgdG8gdGhpbmsgYWJvdXQgcmVvcmdhbml6aW5nIHRoZW0g dG86CiAgICAgKiBJbXByb3ZlIHRoZSBjb29yZGluYXRpb24gYmV0d2VlbiB0aGUgcG9ydHMgYW5k IHRoZSBrZXJuZWwgZWZmb3J0cy4KICAgICAqIE1ha2UgdGhlIGluZm9ybWF0aW9uIG1vcmUgYWNj ZXNzaWJsZS4KCiAgIE5vdGhpbmcgaXMgdmlzaWJsZSB5ZXQgb24gdGhlIHdpa2kuCgpPcGVuIHRh c2tzOgoKICAgIDEuIEtlZXAgdHJhY2tpbmcgTWVzYSA5LjIgb3IgbGF0ZXIgYW5kIHhvcmctc2Vy dmVyIDEuMTQuIEJvdGggYXJlCiAgICAgICBjdXJyZW50bHkgYmxvY2tlZCwgYnV0IGl0IGlzIGdv b2QgdG8ga2VlcCB0cmFjayBvZiB3aGF0IHVwc3RyZWFtIGlzCiAgICAgICBkb2luZy4KICAgIDIu IFRlc3QgYW5kIHJlcG9ydCBzdWNjZXNzZXMgYW5kIGZhaWx1cmVzIGZvciBBTUQgR1BVcy4KICAg IDMuIFdheWxhbmQgYnVpbGRzIG5vdy4gV29yayBpcyBiZWluZyBkb25lIG9uIFdlc3RvbiB0byBz ZWUgaWYgdGhlcmUKICAgICAgIGFyZSBhbnkgcnVuLXRpbWUgaXNzdWVzLiBXZXN0b24gaXMgdGhl IHJlZmVyZW5jZSBjb21wb3NpdG9yIGZvcgogICAgICAgV2F5bGFuZC4KICAgIDQuIEltcHJvdmUg dGhlIGRldmQoOCkgYmFja2VuZCBmb3IgeDExLXNlcnZlcnMveG9yZy1zZXJ2ZXIsIHNvIHRoZSBI QUwKICAgICAgIG9wdGlvbiBjYW4gYmUgcmVtb3ZlZCBjb21wbGV0ZWx5LgogICAgIF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmcmVlYnNk LWFubm91bmNlQGZyZWVic2Qub3JnIG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMuZnJlZWJzZC5v cmcvbWFpbG1hbi9saXN0aW5mby9mcmVlYnNkLWFubm91bmNlClRvIHVuc3Vic2NyaWJlLCBzZW5k IGFueSBtYWlsIHRvICJmcmVlYnNkLWFubm91bmNlLXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIg==