[qt/clang/llvm-project]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]> Wed, 5 Aug 2026 00:14:46 +0000 (UTC)
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
R2l0IHJlcG9zaXRvcnkgY2hhbmdlIHN1bW1hcnkgZm9yIHF0L2NsYW5nL2xsdm0tcHJvamVjdApQ dXNoZWQgYnkgbWlycm9yLXNlcnZpY2UgaW50byBicmFuY2ggJ3Vwc3RyZWFtL21haW4nLgpDaGFu Z2VkIGZyb20gOTU4YTliYjI5OTU4YmVmMTg2NmExOGQ0YmRlMGM0ZTdhYWJlMWFjNyB0byBkNzU3 NWJjNWU3MmJmMTVkYWJiOWY1NzgyYTYyOWUyMTFiZjQ5MTRhCkFja25vd2xlZGdlbWVudCB3YXMg cmVjZWl2ZWQgdGhhdCB0aGlzIGNoYW5nZSBpbnRyb2R1Y2VzIG9ubHkgZXhpc3RpbmcgY29kZSB0 aGF0IGhhcyBiZWVuIHB1c2hlZCB0byBhbm90aGVyIHB1YmxpYyBvcGVuIHNvdXJjZSByZXBvc2l0 b3J5LgoKVGhpcyBjaGFuZ2UgY29udGFpbnMgdGhlIGZvbGxvd2luZyBuZXcgY29tbWl0czoKCkdp dCBjb21taXQgNzYwOWNiODNiZjVmYzVjMjVlMjg3NzcwZGIyNzdkYmIzNGU2NzRiOCBieSBHaXRI dWIgKG9uIGJlaGFsZiBvZiBGaW5uIFBsdW1tZXIpIG9uIDA0LzA4LzIwMjYgYXQgMTc6MzMuLgpb RGlyZWN0WF0gUHJldmVudCBgZHhpbC1yZXNvdXJjZS1hY2Nlc3NgIGZyb20gaW5zZXJ0aW5nIGEg cmVzb3VyY2UgYWNjZXNzIGluLWJldHdlZW4gcGhpIG5vZGVzICgjMjExMzQzKQoKVGhlIHBhc3Mg Y2FuIGluY29ycmVjdGx5IHBsYWNlIGEgbG9hZC9zdG9yZSB3aXRoaW4gdGhlIHBoaSBub2RlcyBh dCB0b3AKb2YgdGhlIGJhc2ljIGJsb2NrOiBodHRwczovL2dvZGJvbHQub3JnL3oveDVFYzRHV0dU CgpUaGlzIGlzIHJlc29sdmVkIGJ5IHVwZGF0aW5nIGByZXBsYWNlSGFuZGxlV2l0aEluZGljZXNg IHRvIGFkanVzdCB0aGUKaW5zZXJ0aW9uIHBvaW50IHdoZW4gdGhlIHB0ciBjb21lcyBmcm9tIGEg cGhpIG5vZGUuCgpSZXNvbHZlcywgaW4gcGFydCwgaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2 bS1wcm9qZWN0L2lzc3Vlcy8yMTExMjEKCkFzc2lzdGVkIGJ5OiBDbGF1ZGUgT3B1cyA0LjgKaHR0 cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvNzYwOWNi ODNiZjVmYzVjMjVlMjg3NzcwZGIyNzdkYmIzNGU2NzRiOAoKR2l0IGNvbW1pdCA1MzgyZjdkNjRm ZjU5ZDE5ODA5MWZmZDI2M2Q3YWRlY2Y1ZDdkZDVhIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEJl bmphbWluIE1heHdlbGwpIG9uIDA0LzA4LzIwMjYgYXQgMTc6NDguLgpbQ29zdE1vZGVsXVtBQXJj aDY0XSBBZGQgaW5pdGlhbCBjb3N0cyBmb3IgYG1hc2tlZC5jb21wcmVzc3N0b3JlYCAoIzIxMzcx MikKClRoaXMgYWRkcyBhbiBpbml0aWFsIGNvc3QgbW9kZWwgZm9yIGBtYXNrZWQuY29tcHJlc3Nz dG9yZWAuIFRoZSB0ZXN0cwphcmUgYmFzZWQgb24gYG1hc2tlZF9leHBhbmRfbG9hZC5sbGAsIHdo aWNoIGNvdmVycyBhbGwgY29uZmlndXJhdGlvbnMKZm9yIHRoZSBgZXhwYW5kYC9gY29tcGFjdGAg aW5zdHJ1Y3Rpb25zLgoKTm90ZTogUmlnaHQgbm93LCB3ZSBvbmx5IHJlcG9ydCB2YWxpZCBjb3N0 cyBmb3IgYG1hc2tlZC5jb21wcmVzc3N0b3JlYApvcGVyYXRpb25zIHRoYXQgY2FuIGJlIGxvd2Vy ZWQgd2l0aCBTVkUxIChhcyB0aGF0J3MgYWxsIHdlIGhhbmRsZSBJU0VMCmZvciBhdCB0aGUgbW9t ZW50KS4KaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21t aXQvNTM4MmY3ZDY0ZmY1OWQxOTgwOTFmZmQyNjNkN2FkZWNmNWQ3ZGQ1YQoKR2l0IGNvbW1pdCBh ZjE0NDU2YTJiYWM1NTAyNmIyZDU3Y2JmMTRiMzkwNWM0NTJiOGE0IGJ5IEdpdEh1YiAob24gYmVo YWxmIG9mIGFyc255ZGVyMTYpIG9uIDA0LzA4LzIwMjYgYXQgMTc6NTIuLgpbT3Blbk1QXSBTaW1w bGlmeSBnZW5lcmljIG1pY3JvdGFzayBkaXNwYXRjaCAoIzIxNDAwNCkKClJlcGxhY2UgdGhlIGdl bmVyaWMgbWljcm90YXNrIGRpc3BhdGNoZXIncyBoYW5kd3JpdHRlbiBmdW5jdGlvbi1wb2ludGVy CnR5cGVzIGFuZCBjYWxscyB3aXRoIGEgdmFyaWFkaWMtdGVtcGxhdGUgaGVscGVyIGFuZCBhIG1h Y3JvIGZvciBlYWNoCnN1cHBvcnRlZCBhcmd1bWVudCBjb3VudC4KClRoZSBkaXNwYXRjaGVyIHN0 aWxsIGNhc3RzIGVhY2ggbWljcm90YXNrIHRvIHRoZSBleGFjdCBmaXhlZC1hcml0eQpzaWduYXR1 cmUgcmVxdWlyZWQgYnkgcGxhdGZvcm1zIHN1Y2ggYXMgV2ViQXNzZW1ibHkuIFRoaXMgaXMgaW50 ZW5kZWQgYXMKYSByZWZhY3RvciBvbmx5OiB0aGUgZXhpc3RpbmcgbGltaXQgb2YgMTUgbWljcm90 YXNrIGFyZ3VtZW50cyBhbmQgdGhlCmRpYWdub3N0aWMgZm9yIGxhcmdlciBhcmd1bWVudCBjb3Vu dHMgcmVtYWluIHVuY2hhbmdlZC4KClRoaXMgcmVkdWNlcyB0aGUgcmVwZXRpdGl2ZSBjb2RlIGFu ZCBtYWtlcyBmdXR1cmUgY2hhbmdlcyB0byB0aGUKc3VwcG9ydGVkIGFyZ3VtZW50IHJhbmdlIGVh c2llciB0byByZXZpZXcuCgpTcGxpdCBvdXQgZnJvbSAjMjExMDcxCmh0dHBzOi8vaW52ZW50Lmtk ZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0L2FmMTQ0NTZhMmJhYzU1MDI2YjJk NTdjYmYxNGIzOTA1YzQ1MmI4YTQKCkdpdCBjb21taXQgMmEyYWRkZTM1OTM3NjY3ZGQ5M2RjNTU5 NGFjNWQ1Mjg0MmUxMTZkMiBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBDaGlubWF5IERlc2hwYW5k ZSkgb24gMDQvMDgvMjAyNiBhdCAxNzo1Ni4uCltBTURHUFVdW0dJU2VsXSBBZGQgUmVnQmFua0xl Z2FsaXplIHJ1bGVzIGZvciBsbHZtLmFtZGdjbi5mZG90Mi5iZjE2LmJmMTYgKCMyMTQwMTMpCmh0 dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0LzJhMmFk ZGUzNTkzNzY2N2RkOTNkYzU1OTRhYzVkNTI4NDJlMTE2ZDIKCkdpdCBjb21taXQgNTAwOTYyMjk4 ZDYyNGE3NGFkZTU4YzJhZWI2NTMxM2ZiMzJkZGE1YSBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBB bGV4ZXkgQmF0YWV2KSBvbiAwNC8wOC8yMDI2IGF0IDE3OjU3Li4KW0luc3RDb21iaW5lXUZvbGQg ZmNtcCtzZWxlY3QgdG8gbWluL21heCBpZiBpdHMgemVybyBzaWduIGlzIG1pc3NpbmcKCkxvb2sg dGhyb3VnaCBwaGlzLCBjaGFpbmVkIHNlbGVjdHMgYW5kIHRoZSBsb29wIGJhY2sgZWRnZSB0byB0 aGUKc2VsZWN0IGl0c2VsZiBhbmQgZm9sZCBpZiBubyB1c2UgY2FuIG9ic2VydmUgdGhlIHNpZ24g b2YgemVybyBvZiB0aGUKcmVzdWx0LiBUaGlzIHJlc3RvcmVzIHRoZSBmb2xkIGZvciBsb29wLWNh cnJpZWQgYW5kIHVucm9sbGVkIHJ1bm5pbmcKbWluL21heCB2YWx1ZXMgKGZjc2VsIC0+IGZtaW5u bSBvbiBBQXJjaDY0KSBsb3N0IHRvIHRoZSBzaWduZWQgemVybwpoYW5kbGluZyBmaXggaW4gbWF0 Y2hTZWxlY3RQYXR0ZXJuICgjMjEwMDc3KS4KClJldmlld2VyczogbmlraWMsIGR0Y3h6eXcKClB1 bGwgUmVxdWVzdDogaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3B1bGwvMjEz MTMzCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0 LzUwMDk2MjI5OGQ2MjRhNzRhZGU1OGMyYWViNjUzMTNmYjMyZGRhNWEKCkdpdCBjb21taXQgNzBl Y2M1YmI2MjE4N2NhNzBlNmZlNGU1NjNkYmQ2MGY4OGMyZTdhMCBieSBHaXRIdWIgKG9uIGJlaGFs ZiBvZiBUaW11ciBHb2x1Ym92aWNoKSBvbiAwNC8wOC8yMDI2IGF0IDE3OjU4Li4KUmV2ZXJ0ICJb R2xvYmFsSVNlbF0gQ29tYmluZSBtZXJnZS11bm1lcmdlIHdpdGggbWl4ZWQgc2NhbGFyIGFuZCB2 ZWN0b3IgdHlwZXMiICgjMjE0MDEwKQoKUmV2ZXJ0cyBsbHZtL2xsdm0tcHJvamVjdCMyMTMwODYK aHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvNzBl Y2M1YmI2MjE4N2NhNzBlNmZlNGU1NjNkYmQ2MGY4OGMyZTdhMAoKR2l0IGNvbW1pdCA2MzI2ZjE0 Y2RjMTJiYWJmZGM0MzU5ZjVkZGQ0ZGZjZDY2YjUzZjMzIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9m IEFkYW0gU21pdGgpIG9uIDA0LzA4LzIwMjYgYXQgMTg6MDMuLgpbQ0lSXSBMb3dlciB2YXJpYWRp YyBjYWxscyBpbiBDYWxsQ29udkxvd2VyaW5nIGZvciB4ODZfNjQgKCMyMTMzMTUpCgpDYWxsQ29u dkxvd2VyaW5nIGNsYXNzaWZpZWQgZWFjaCBmdW5jdGlvbiBvbmNlIGZyb20gaXRzIGRlY2xhcmVk CnNpZ25hdHVyZSBhbmQgcmV1c2VkIHRoYXQgY2xhc3NpZmljYXRpb24gYXQgZXZlcnkgY2FsbCBz aXRlLiBBbiBhcmd1bWVudApwYXNzZWQgdGhyb3VnaCBhbiBlbGxpcHNpcyBoYXMgbm8gZW50cnkg aW4gdGhlIGNhbGxlZSdzIHBhcmFtZXRlciBsaXN0LApzbyBvbiB4ODZfNjQgYW4gZWxsaXBzaXMg YXJndW1lbnQgdGhhdCBuZWVkZWQgYW4gZXh0ZW5zaW9uIGF0dHJpYnV0ZSwgYQpyZWdpc3RlciBj b2VyY2lvbiwgb3IgYSBieXZhbCBzbG90IHdhcyBlbWl0dGVkIHVuY2hhbmdlZCB3aGVuZXZlciB0 aGUKY2FsbGVlJ3MgZGVjbGFyZWQgcGFyYW1ldGVycyBoYXBwZW5lZCB0byBuZWVkIG5vIHJld3Jp dGUsIGFuZCByZXBvcnRlZApOWUkgd2hlbiB0aGV5IGRpZC4KCkFuIGVsbGlwc2lzIGFyZ3VtZW50 IGNvbXBldGVzIGZvciB0aGUgc2FtZSByZWdpc3RlcnMgYXMgYSBkZWNsYXJlZCBvbmUsCnNvIHRo ZSBzYW1lIHR3by1laWdodGJ5dGUgcmVjb3JkIGdvZXMgaW4gYSByZWdpc3RlciBwYWlyIGVhcmx5 IGluIHRoZQpsaXN0IGFuZCBieXZhbCBvbmNlIHRoZSBpbnRlZ2VyIHJlZ2lzdGVycyBhcmUgZ29u ZS4gVmFyaWFkaWMgY2FsbCBzaXRlcwp1bmRlciB0aGUgeDg2XzY0IGRyaXZlciBhcmUgbm93IGNs YXNzaWZpZWQgZnJvbSB0aGUgY2FsbCdzIG93biBvcGVyYW5kCnR5cGVzLCBhbmQgdGhlIGRlY2xh cmVkIHBhcmFtZXRlciBjb3VudCByZWFjaGVzCmBsbHZtOjphYmk6OkZ1bmN0aW9uSW5mbzo6Y3Jl YXRlYCBhcyBpdHMgYE51bVJlcXVpcmVkYCBhcmd1bWVudCwgd2hpY2gKaXMgd2hhdCBsZXRzIHRo ZSBjbGFzc2lmaWVyIHRlbGwgYSBuYW1lZCBhcmd1bWVudCBmcm9tIG9uZSBwYXNzZWQKdGhyb3Vn aCB0aGUgZWxsaXBzaXMuIFRvZGF5IHRoYXQgZmxhZyBvbmx5IGRlY2lkZXMgd2hldGhlciBhIGxh cmdlCnZlY3RvciBnb2VzIGluIGEgcmVnaXN0ZXIsIGFuZCB0aGUgQ0lSIHR5cGUgYnJpZGdlIGFk bWl0cyBubyB2ZWN0b3IKdHlwZXMsIHNvIHRoZSBib3VuZGFyeSBjaGFuZ2VzIG5vIG91dHB1dCB5 ZXQuCgpgcHJlcGVuZEluZGlyZWN0Q2FsbGVlYCBhbHNvIHJlYnVpbHQgdGhlIGNhbGxlZSBwb2lu dGVyJ3MgcG9pbnRlZQp3aXRob3V0IGBpc1ZhckFyZ2AsIGRyb3BwaW5nIHRoZSBlbGxpcHNpcyBm cm9tIGEgbG93ZXJlZCBpbmRpcmVjdCBjYWxsCmFuZCB3aXRoIGl0IHRoZSB2ZWN0b3ItcmVnaXN0 ZXIgY291bnQgdGhlIHg4Nl82NCBTeXNWIEFCSSBwYXNzZXMgaW4gQUwuCkEgdm9pZCByZXR1cm4g YW5kIGEgcmV0dXJuIHRoZSBBQkkgZHJvcHMsIHN1Y2ggYXMgYW4gZW1wdHkgcmVjb3JkLCBib3Ro CmNsYXNzaWZ5IGFzIGBJZ25vcmVgIHdoaWxlIG5lZWRpbmcgb3Bwb3NpdGUgdHJlYXRtZW50LCBz bwpgRnVuY3Rpb25DbGFzc2lmaWNhdGlvbmAgbm93IHJlY29yZHMgd2hpY2ggb25lIGl0IHdhcyB3 aGVyZSB0aGUKY2xhc3NpZmljYXRpb24gaXMgcHJvZHVjZWQuIGBuZWVkc1Jld3JpdGVgIG1vdmVz IGZyb20gdGhlIENJUiByZXdyaXRlcgp0byBgbWxpci9pbmNsdWRlL21saXIvQUJJL0FCSVJld3Jp dGVDb250ZXh0LmhgLCBvdmVyIGEgbmV3IHBlci1hcmd1bWVudApgaXNQYXNzVGhyb3VnaGAsIHNv IHRoZSBwYXNzIGFuZCB0aGUgcmV3cml0ZXIgc2hhcmUgb25lIGRlZmluaXRpb24uCgpUd28gdGhp bmdzIGFyZSBuZXdseSBkaWFnbm9zZWQgcmF0aGVyIHRoYW4gbmV3bHkgYnJva2VuLiBUaGUKb3Bl cmFuZC1jb3VudCBjaGVjayBtb3ZlcyBhaGVhZCBvZiB0aGUgcGFzcy10aHJvdWdoIGVhcmx5IHJl dHVybiwgc28gYQpjYWxsIHdob3NlIG9wZXJhbmQgY291bnQgZGlzYWdyZWVzIHdpdGggYSBgbm9f cHJvdG9gIGNhbGxlZSdzCmRlY2xhcmF0aW9uIGlzIHJlcG9ydGVkIGluc3RlYWQgb2YgbG93ZXJl ZCB3aXRoIG9wZXJhbmRzIHRoZQpjbGFzc2lmaWNhdGlvbiBuZXZlciBjb3ZlcmVkLiBBbmQgdGhl IGluZGlyZWN0LWNhbGwgd2FsayB2aXNpdHMKYGNpcjo6Q0lSQ2FsbE9wSW50ZXJmYWNlYCByYXRo ZXIgdGhhbiBvbmx5IGBjaXIuY2FsbGAsIHNvIGEgdmFyaWFkaWMKaW5kaXJlY3QgYGNpci50cnlf Y2FsbGAgaXMgYWNjb3VudGVkIGZvciwgYW5kIG9uZSB0aGF0IG5lZWRzIGEgcmV3cml0ZQppcyBy ZXBvcnRlZCBpbnN0ZWFkIG9mIGxlZnQgYXMgd3JpdHRlbiB3aGlsZSB0aGUgc2lnbmF0dXJlIGFy b3VuZCBpdCBpcwpjb2VyY2VkLiBBIG5vbi12YXJpYWRpYyBpbmRpcmVjdCBgY2lyLnRyeV9jYWxs YCBpcyBmaWx0ZXJlZCBvdXQgd2hlcmUKdGhlIHdhbGsgY29sbGVjdHMsIHNpbmNlIHJld3JpdGlu ZyBvbmUgaXMgdW5pbXBsZW1lbnRlZCBlaXRoZXIgd2F5IGFuZAp0aGF0IGdhcCBoYXMgbm90aGlu ZyB0byBkbyB3aXRoIHRoZSBlbGxpcHNpcy4gUmVwb3J0ZWQgTllJOiB2YXJpYWRpYwppbmRpcmVj dCBjYWxscyB0aGF0IG5lZWQgYSByZXdyaXRlLCB2YXJpYWRpYyBjYWxscyB1bmRlciB0aGUgb3Ro ZXIKZHJpdmVycywgYW5kIGFuIGVsbGlwc2lzIGFyZ3VtZW50IHdob3NlIEFCSSBjb2VyY2lvbiB0 aGUgdHlwZSBicmlkZ2UKY2Fubm90IHJlcHJlc2VudC4KaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9x dC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvNjMyNmYxNGNkYzEyYmFiZmRjNDM1OWY1ZGRk NGRmY2Q2NmI1M2YzMwoKR2l0IGNvbW1pdCBjOWYyYmEyMjg0OWU1MGRmMTI3N2RiODIyNWE2NDEw YmE5ZGRjYjVlIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIFNhbSBFbGxpb3R0KSBvbiAwNC8wOC8y MDI2IGF0IDE4OjA5Li4KW1JJU0NWXSBGaXggWHFjaSBGdXNpb25zIHdpdGggRnJhbWUgSW5kZXhl cyAoIzIxMzgxNSkKClByZS1SQSwgdGhlIEFEREkgY2FuIGNvbnRhaW4gYSBmcmFtZSBpbmRleCBy YXRoZXIgdGhhbiBhIHJlZ2lzdGVyLCB3aGljaApjYXVzZXMgYGdldFJlZygpYCB0byBhc3NlcnQu IFRoZXNlIHdlcmUgbWlzc2luZyB0aGUgYENoZWNrSXNSZWdPcGVyYW5kYAp0aGF0IG1vc3Qgb3Ro ZXIgZnVzaW9ucyBoYXZlLgpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0tcHJv amVjdC8tL2NvbW1pdC9jOWYyYmEyMjg0OWU1MGRmMTI3N2RiODIyNWE2NDEwYmE5ZGRjYjVlCgpH aXQgY29tbWl0IGNhZmQzNmJmY2U2NzY4MjE5M2MzZDVkYTU5MWIwNTFhNDYwZTUwZjYgYnkgR2l0 SHViIChvbiBiZWhhbGYgb2YgRXJpY2ggS2VhbmUpIG9uIDA0LzA4LzIwMjYgYXQgMTg6MTEuLgpb TkZDXVtDSVJdIFByb3BhZ2F0ZSBTeW1ib2xUYWJsZXMgYmV0dGVyICgjMjEzOTcyKQoKVGhpcyBj YW1lIHVwIGR1cmluZyBzZWxmLWJ1aWxkLCB3ZSBhcmUgc3BlbmRpbmcgYSBsb3Qgb2YgdGltZSBp biBzb21lCmNhc2VzIGxvb2tpbmcgdXAgdXNpbmcgdGhlIGdsb2JhbCBzeW1ib2wgdGFibGUsIHdo aWNoIGRvZXMgbm8gY2FjaGluZy4KUHJldmlvdXNseSB3ZSdkIHByb3BhZ2F0ZWQgdGhpcyBpbiBh IGZldyBwbGFjZXMsIGJ1dCB0aGlzIHBhdGNoIHJlbW92ZXMKYWxsIHVzZXMgb2YgU3ltYm9sVGFi bGU6Omxvb2t1cCBhbmQgYWRkcyB0aGUgY2FjaGUgZXZlcnl3aGVyZS4KClRoaXMgaW52b2x2ZWQg Y2hhbmdpbmcgdGhlIHRhYmxlZ2VuIHRvIGluY2x1ZGUgaXQgaW4gZWFjaCBvZiBvdXIKcmV3cml0 ZXJzLCBwbHVzIHRoZSBDaXJBdHRyIGxvd2VyaW5nIGV2ZXJ5d2hlcmUuCgpUaGUgb25seSB0aGlu ZyB3ZSBoYXZlIHRvIHRha2UgY2FyZSBvZiBpcyB0byBtYWtlIHN1cmUgd2UgaW52YWxpZGF0ZSB0 aGUKY2FjaGUvdXBkYXRlIHRoZSBjYWNoZSB3aGVuZXZlciB3ZSBhZGQgc29tZXRoaW5nIHdpdGgg YSBuYW1lIChzZWUKY3JlYXRlTExWTUZ1bmNPcElmTm90RXhpc3QpLgoKVGhpcyBpcyBORkMsIGFz IGl0IGlzbid0IG9ic2VydmFibGUsIG90aGVyIHRoYW4gYmVpbmcgYSBidWlsZCB0aW1lCmltcHJv dmVtZW50LgpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0tcHJvamVjdC8tL2Nv bW1pdC9jYWZkMzZiZmNlNjc2ODIxOTNjM2Q1ZGE1OTFiMDUxYTQ2MGU1MGY2CgpHaXQgY29tbWl0 IDFmNjlhMTYyODk0NzhjOWE3YjJjZGE1ZGY0Y2QxNmQ2NjA5ZWIyYzIgYnkgR2l0SHViIChvbiBi ZWhhbGYgb2YgU2ltb24gUGlsZ3JpbSkgb24gMDQvMDgvMjAyNiBhdCAxODoxNS4uCltDb3N0TW9k ZWxdW1g4Nl0gZ2V0QXJpdGhtZXRpY1JlZHVjdGlvbkNvc3QgLSBlbnN1cmUgd2UgdGVzdCB0aGUg dlhpMSByZWR1Y3Rpb25zIHR5cGVzIGJlZm9yZSBsZWdhbGlzYXRpb24gKCMyMTEwNDMpCgpQcmUt QVZYNTEyIHRoZXNlIHdpbGwgYmUgbGVnYWxpemVkIHRvIHdpZGVyIHZlY3RvciB0eXBlcyBhbmQg bWlnaHQgbWF0Y2gKYWdhaW5zdCBvdGhlciByZWR1Y3Rpb25zIHRhYmxlcy4KCk5vdGljZWQgd2hp bGUgd29ya2luZyBvbiBpbXByb3ZpbmcgbG9naWMgcmVkdWN0aW9ucywgYnV0IGhpdCBhIGNhc2UK d2l0aC93aXRob3V0IHBvcGNudCBmb3IgYm9vbCBzdW0gcmVkdWN0aW9uIHBhdHRlcm5zIC0gSSd2 ZSBhZGRlZCBhIEFWWDIKdGVzdCBwYXNzIHRvIGNoZWNrIHRoZSAoY29ycmVjdGVkKSBjb3N0cyBh cmUgc3RpbGwgd29ya2luZwpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0tcHJv amVjdC8tL2NvbW1pdC8xZjY5YTE2Mjg5NDc4YzlhN2IyY2RhNWRmNGNkMTZkNjYwOWViMmMyCgpH aXQgY29tbWl0IDA4YTg3MzlhYzg5YTI3YzdkYmQwMzQ5MjY2NjExY2E5NDg2NmFlMmYgYnkgR2l0 SHViIChvbiBiZWhhbGYgb2YgTmVyaXh5eikgb24gMDQvMDgvMjAyNiBhdCAxODoxNi4uCltsbGRi XVtQeXRob25dIElubGluZSBgbGxkYl9pdGVyYCBmb3IgYmV0dGVyIHR5cGUgaW5mZXJlbmNlICgj MjE0MDAwKQoKQ3VycmVudGx5LCB0aGUgYGxsZGJfaXRlcmAgaGVscGVyIGlzIHVzZWQgZm9yIHBy b3ZpZGluZyBgX19pdGVyX19gIGluCnRoZSBQeXRob24gYmluZGluZ3M6CmBgYHB5dGhvbgpkZWYg bGxkYl9pdGVyKG9iaiwgZ2V0c2l6ZSwgZ2V0ZWxlbSk6CiAgICAiIiJBIGdlbmVyYXRvciBhZGFw dG9yIHRvIHN1cHBvcnQgaXRlcmF0aW9uIGZvciBsbGRiIGNvbnRhaW5lciBvYmplY3RzLiIiIgog ICAgc2l6ZSA9IGdldGF0dHIob2JqLCBnZXRzaXplKQogICAgZWxlbSA9IGdldGF0dHIob2JqLCBn ZXRlbGVtKQogICAgZm9yIGkgaW4gcmFuZ2Uoc2l6ZSgpKToKICAgICAgICB5aWVsZCBlbGVtKGkp CmBgYAoKQSB0eXBlIGNoZWNrZXIgb3IgTFNQIGNhbid0IHNlZSB0aHJvdWdoIHRoaXMgZnVuY3Rp b24uIEN1cnJlbnRseSwgdGhhdCdzCm5vIHByb2JsZW0sIGJlY2F1c2UgaXQgZG9lc24ndCBrbm93 IHRoZSByZXR1cm4gdHlwZSBvZiBhbnkgU3dpZyB3cmFwcGVyLApidXQgd2hlbiB3ZSBhZGQgdHlw ZSBhbm5vdGF0aW9ucyAoaG9wZWZ1bGx5IHdpdGggU3dpZyA0LjUgaW4gIzIxMzQ2MyksCmBfX2l0 ZXJfX2AgcmVtYWlucyB1bnR5cGVkLiBTbyBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgd3JhcHBlcnMg d29uJ3Qgc2hvdwp0aGUgY29ycmVjdCB0eXBlLgoKQXMgdGhlIGZ1bmN0aW9uYWxpdHkgaXMgZmFp cmx5IHNpbXBsZSwgaXQncyBlYXNpZXIgdG8gaW5saW5lIGl0LiBUaGF0J3MKd2hhdCB0aGlzIFBS IGRvZXMuIFRoZW4gYSB0eXBlIGNoZWNrZXIgY2FuIGluZmVyIHRoZSByZXR1cm4gdHlwZS4KaHR0 cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvMDhhODcz OWFjODlhMjdjN2RiZDAzNDkyNjY2MTFjYTk0ODY2YWUyZgoKR2l0IGNvbW1pdCBhYjRmMjEwYTMx MjdlM2JhMTc3MzgxODkxMTk0MTQ0ZjkyNzk4YmE2IGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIE1h dHQgQXJzZW5hdWx0KSBvbiAwNC8wOC8yMDI2IGF0IDE4OjE3Li4KY2xhbmc6IFJlcGxhY2UgSXMq T2ZmbG9hZEFyY2ggZnJlZSBmdW5jdGlvbnMgd2l0aCBPZmZsb2FkQXJjaCBtZXRob2RzICgjMjEz MzYzKQpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0tcHJvamVjdC8tL2NvbW1p dC9hYjRmMjEwYTMxMjdlM2JhMTc3MzgxODkxMTk0MTQ0ZjkyNzk4YmE2CgpHaXQgY29tbWl0IGE5 YTZlZGI1OTM1YzlmNDJjNTkyODM2NjEyMzU2YmVhNTZlM2MwOGIgYnkgR2l0SHViIChvbiBiZWhh bGYgb2YgQWxleGV5IEJhdGFldikgb24gMDQvMDgvMjAyNiBhdCAxODoxOC4uCltTTFBdVmVjdG9y aXplIHNpbmdsZS11c2VyIGluc3RydWN0aW9ucyBhcyB0aGUgbGFzdC1hdHRlbXB0IHNlZWRzCgpJ bnN0cnVjdGlvbnMgd2l0aCB0aGUgc2luZ2xlIHVzZXIgY29zdCBvbmUgZXh0cmFjdCBwZXIgbGFu ZSwgc28gdGhleSBhcmUKdmVjdG9yaXplZCBhZnRlciBhbGwgb3RoZXIgcm9vdHMgaW4gdGhlIGZ1 bmN0aW9uIGFyZSBleGhhdXN0ZWQsIGdyb3VwZWQgYnkKdGhlIGtleS9zdWJrZXkgcGFpcnMuIExv YWRzLCBhZGRyZXNzZXMsIGNvbXBhcmVzIGFuZCB0aGUgb3BlcmF0aW9ucywgZm9sZGVkCmF3YXkg b3IgY29udHJhY3RlZCBpbnRvIHRoZSBzY2FsYXIgRk1BLCBhcmUgZXhjbHVkZWQuIFRoZSByZWpl Y3RlZCBidW5kbGVzCmFuZCB0aGUgbWVtYmVycyBvZiB0aGUgcHJpY2VkIG1pbmltYWwgbm9kZXMg YXJlIG5vdCByZXRyaWVkLCB1bmxlc3MgdGhlCnRyZWUgd2FzIGRyb3BwZWQgYnkgdGhlIHJlcGFj a2luZyBvdmVyaGVhZCByYXRoZXIgdGhhbiBieSB0aGUgbWVtYmVycy4KClJldmlld2VyczogaGly YWRpdHlhLCBSS1NpbW9uLCBiYWJhYnVjawoKUHVsbCBSZXF1ZXN0OiBodHRwczovL2dpdGh1Yi5j b20vbGx2bS9sbHZtLXByb2plY3QvcHVsbC8yMTI1NzkKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9x dC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvYTlhNmVkYjU5MzVjOWY0MmM1OTI4MzY2MTIz NTZiZWE1NmUzYzA4YgoKR2l0IGNvbW1pdCA0MDJjOWY5YTc3NmRjMjBkMDNlMzNjNDQ3ZDg2NjM0 YzQ4NmE1NDM0IGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEhlbnJ5IEppYW5nKSBvbiAwNC8wOC8y MDI2IGF0IDE4OjIzLi4KW05GQ11bQ3VkYV1bdGVzdF0gRml4IENIRUNLLU5PVCBwYXR0ZXJucyBt YXRjaGluZyB0aGUgYnVpbGQgZGlyZWN0b3J5ICgjMjEzNzk5KQoKYGN1ZGEtb21wLXVuc3VwcG9y dGVkLWRlYnVnLW9wdGlvbnMuY3VgJ3MgQ09NTU9OLU5PVDogLi4ufGxsZGJ8Li4uIGNhbgptYXRj aCBhZ2FpbnN0IHRoZSBidWlsZCBkaXJlY3RvcnkgcGF0aCB0aGF0IG1heSBjb250YWluIGBsbGRi YCBpbiB0aGUKcGF0aG5hbWUuIENoYW5nZSB0aGUgdGVzdCB0byBjaGVjayB0aGUgZXhhY3QgY2Mx IGFyZ3VtZW50cy4KCnJkYXI6Ly8xODM1MDE1NTgKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9j bGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvNDAyYzlmOWE3NzZkYzIwZDAzZTMzYzQ0N2Q4NjYz NGM0ODZhNTQzNAoKR2l0IGNvbW1pdCBmNTlkNmY1Zjg2NmI5NzQxMzUxMGZhMTE5MTQ0NjUxZmJi YmM3MTIzIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIFVzYW1hIEhhbWVlZCkgb24gMDQvMDgvMjAy NiBhdCAxODo0OS4uCltjbGFuZ11bdGVzdF0gQWRkIHRlc3QgZm9yIHN0YWNrX3Byb3RlY3Rvcl9p Z25vcmUgaW4gc3lzdGVtIG1hY3JvcyAoIzIxMzc3MCkKCmQzMTg0YmM2YzZhOCAoIltjbGFuZ10g RG9uJ3Qgd2FybiBvbiBzdGFja19wcm90ZWN0b3JfaWdub3JlIGluIHN5c3RlbQptYWNyb3MiKSBh ZGRlZCBTdXBwcmVzc0luU3lzdGVtTWFjcm8gdG8Kd2Fybl9zdGFja19wcm90ZWN0aW9uX2lnbm9y ZV9hdHRyaWJ1dGUgYnV0IG9ubHkgYWRkZWQgYW4gTExWTSBDb2RlR2VuCnRlc3QgZm9yIHRoZSBz dGFjay1wcm90ZWN0b3IgbWV0YWRhdGEsIHNvIHRoZSBkaWFnbm9zdGljIGNoYW5nZSBpdHNlbGYK d2FzIHVudGVzdGVkLgoKQWRkIGEgdGVzdCB1c2luZyB0aGUgc2VsZi1pbmNsdWRlIHN5c3RlbV9o ZWFkZXIgaWRpb206IHRoZSBhdHRyaWJ1dGUKZnJvbSBhIHN5c3RlbSBoZWFkZXIgbWFjcm8gZG9l cyBub3Qgd2FybiB1bmRlciAtZnN0YWNrLXByb3RlY3Rvci1hbGwsCndoaWxlIG9uZSB3cml0dGVu IGluIHVzZXIgY29kZSBzdGlsbCBkb2VzLgoKcmRhcjovLzE4Mzk2Mjk4NQpodHRwczovL2ludmVu dC5rZGUub3JnL3F0L2NsYW5nL2xsdm0tcHJvamVjdC8tL2NvbW1pdC9mNTlkNmY1Zjg2NmI5NzQx MzUxMGZhMTE5MTQ0NjUxZmJiYmM3MTIzCgpHaXQgY29tbWl0IDQzNzZiOGQ2Njk2MWRiMzYwOTQ1 ZGI0NGFiZTUxMGQ5ZjEzYWJmNjEgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQWxleGV5IEJhdGFl dikgb24gMDQvMDgvMjAyNiBhdCAxODo1Ny4uCltTTFBdRmxhdHRlbiBhZGQvc3ViIGFuZCBmYWRk L2ZzdWIgY2hhaW5zIGludG8gb25lIHJlYXNzb2NpYXRlZCBub2RlCgpBIHBlZWxlZCBzdWJ0cmFj dCBrZWVwcyB0aGUgY29sdW1uIHNpZ24gZm9yIGl0cyBmaXJzdCBvcGVyYW5kIGFuZCBmbGlwcwpp dCBmb3IgdGhlIHNlY29uZCwgc28gbWl4ZWQgYWRkL3N1YiAoZmFkZC9mc3ViIHdpdGggcmVhc3Nv YykgY2hhaW5zCmxpbmVhcml6ZSBpbnRvIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBvcGVyYW5kIGNv bHVtbnMgY29tYmluaW5nIGFzCnN1bShwb3NpdGl2ZSkgLSBzdW0obmVnYXRpdmUpLCB3aXRoIHN1 YnRyYWhlbmQgY29sdW1ucyByZW9yZGVyZWQgYnkKdmFsdWUgZmFtaWx5LiBudXcgaXMgbm93IGFs c28gZHJvcHBlZCBvbiBub24tZXhhY3QgY29tYmluZXMgd2hlbiBhCm5lZ2F0ZWQgbGVhZiBleGlz dHMsIHNpbmNlIGEgcmVncm91cGVkIHN1YnRyYWhlbmQgc3VtIGNhbiBleGNlZWQgdGhlCm9yaWdp bmFsIHJ1bm5pbmcgdG90YWwuCgpSZXZpZXdlcnM6IFJLU2ltb24sIGJhYmFidWNrLCBoaXJhZGl0 eWEKClB1bGwgUmVxdWVzdDogaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3B1 bGwvMjEzNTQ0Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0v Y29tbWl0LzQzNzZiOGQ2Njk2MWRiMzYwOTQ1ZGI0NGFiZTUxMGQ5ZjEzYWJmNjEKCkdpdCBjb21t aXQgYjA3ZmM4YTQ0YWE2YWMwM2VjOGUwYzc5YjA0MTM0YmRhODdiNTI3OSBieSBHaXRIdWIgKG9u IGJlaGFsZiBvZiBGb2xrZXJ0IGRlIFZyaWVzKSBvbiAwNC8wOC8yMDI2IGF0IDE5OjAwLi4KW1NQ QVJDXSBEbyBub3QgdXNlIHRoZSB1bmltcCBzdHJ1Y3QtcmV0dXJuIGNvbnZlbnRpb24gZm9yIHpl cm8tc2l6ZWQgdHlwZXMgKCMyMTM3MzMpCgpHQ0MgaGFzIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGFu IGBzcmV0YCBvZiBhIHplcm8tc2l6ZWQgdHlwZSwgbWF0Y2ggdGhhdApoYW5kbGluZy4KCmh0dHBz Oi8vZ29kYm9sdC5vcmcvei9UY3JhYW83clQKCkl0IHNlZW1zIHVubGlrZWx5IHNvbWVvbmUgaXMg YWN0dWFsbHkgcmVseWluZyBvbiB0aGlzLCBzbyBJIGhhdmVuJ3QKYWRkZWQgdGhlIGFiaSBjb21w YXRpYmlsaXR5IGxvZ2ljLiBSdXN0IGhvd2V2ZXIgdXNlcyB6ZXJvLXNpemVkIHR5cGVzCnF1aXRl IGhlYXZpbHksIHNvIGhhdmluZyB0aGlzIHdvcmsgY29ycmVjdGx5IGlzIHVzZWZ1bCB0aGVyZS4K aHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvYjA3 ZmM4YTQ0YWE2YWMwM2VjOGUwYzc5YjA0MTM0YmRhODdiNTI3OQoKR2l0IGNvbW1pdCA4Y2YzMjY4 YjNhNjVlMTg2ZjEwNDEzOWEzZjUzZDA3ZGU4ZDUwMzJhIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9m IEFuZHkgS2F5bG9yKSBvbiAwNC8wOC8yMDI2IGF0IDE5OjEwLi4KW0NJUl1bQUFyY2g2NF0gVXNl IENJUidzIGZtYSBhbmQgc3FydCBmb3IgTmVvbiBidWlsdGlucyAoIzIxMzgwMCkKClRoaXMgY2hh bmdlIHJlcGxhY2VzIHNvbWUgbG9jYXRpb25zIHdoZXJlIHRoZSBOZW9uIGJ1aWx0aW4gaGFuZGxp bmcgd2FzCmNhbGxpbmcgTExWTSBpbnRyaW5zaWNzIGRpcmVjdGx5IGZvciBGTUEgYW5kIHNxcnQg b3BlcmF0aW9ucyByYXRoZXIgdGhhbgp1c2luZyB0aGUgQ0lSIG9wZXJhdGlvbnMuIFVzaW5nIHRo ZSBDSVIgb3BlcmF0aW9ucyB3aWxsIGJlIG5lY2Vzc2FyeSB0bwpnZXQgdGhlIGJlc3QgY29uc3Ry YWluZWQgRlAgaGFuZGxpbmcuCgpUaGlzIHdpbGwgc3RpbGwgcmVxdWlyZSBzZXR0aW5nIHRoZSBm ZW52IGF0dHJpYnV0ZSBvbiB0aGVzZSBvcGVyYXRpb25zCndoZW4gbmVlZGVkLiBUaGlzIGNoYW5n ZSBpcyBqdXN0IHRoZSBmaXJzdCBvZiBhIGZldyBwcmVsaW1pbmFyeSBjaGFuZ2VzCm5lZWRlZCB0 byBnZXQgdXMgaW4gYSBnb29kIHN0YXRlIHRvIGFkZCB0aGUgY29uc3RyYWluZWQgRlAgaGFuZGxp bmcuCgpBc3Npc3RlZC1ieTogQ3Vyc29yIC8gR3JvayA0LjUKaHR0cHM6Ly9pbnZlbnQua2RlLm9y Zy9xdC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvOGNmMzI2OGIzYTY1ZTE4NmYxMDQxMzlh M2Y1M2QwN2RlOGQ1MDMyYQoKR2l0IGNvbW1pdCBkNDYyODUyNmJkZDJjOGJkMDNhY2RjYmYwZjlk ODcxMGVmMjQzNDg2IGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEFuZHkgS2F5bG9yKSBvbiAwNC8w OC8yMDI2IGF0IDE5OjE1Li4KW0NJUl0gQXBwbHkgRlAgY29uc3RyYWludHMgdG8gZ2xvYmFsIGlu aXRpYWxpemVycyAoIzIxMzc3NikKCkJlY2F1c2UgQ0lSIGhhbmRsZXMgZ2xvYmFsIGluaXRpYWxp emVycyB1c2luZyBhIHJlZ2lvbiBvZiB0aGUgY2lyLmdsb2JhbApvcGVyYXRpb24gZHVyaW5nIGlu aXRpYWwgY29kZSBnZW5lcmF0aW9uLCB0aGVzZSBpbml0aWFsaXplcnMgZG9uJ3QKYXV0b21hdGlj YWxseSBnZXQgdGhlIHN0cmljdGZwIHNldHVwIGluIENJUkdlbkZ1bmN0aW9uOjpzdGFydEZ1bmN0 aW9uLgoKVGhpcyBjaGFuZ2UgYWRkcyBhbiBhdHRyaWJ1dGUgdG8gdGhlIGNpci5nbG9iYWwgb3Bl cmF0aW9uIHRvIHRyYWNrCmZsb2F0aW5nLXBvaW50IGNvbnN0cmFpbnRzIHNvIHRoYXQgdGhlIGBz dHJpY3RmcGAgYXR0cmlidXRlIGNhbiBiZSBzZXQKb24gdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0 aW9uIHdoZW4gaXQgaXMgY3JlYXRlZCBkdXJpbmcgRUhBQkkgbG93ZXJpbmcuCgpBc3Npc3RlZC1i eTogQ3Vyc29yIC8gdmFyaW91cyBtb2RlbHMKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFu Zy9sbHZtLXByb2plY3QvLS9jb21taXQvZDQ2Mjg1MjZiZGQyYzhiZDAzYWNkY2JmMGY5ZDg3MTBl ZjI0MzQ4NgoKR2l0IGNvbW1pdCAzMmI2NDVkOWQ2OWI4YzJlNjI4OTBmZWQxOTIwMzMzN2JlZGRm Nzk3IGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEVyaWMgQ2hyaXN0b3BoZXIpIG9uIDA0LzA4LzIw MjYgYXQgMTk6MjEuLgpbRGVidWdJbmZvXSBUcmVhdCB0YWcgb2Zmc2V0cyBhcyBub24tZW1pdHRp bmcgKCMyMTE5NjkpCgpEV19PUF9MTFZNX3RhZ19vZmZzZXQgZG9lc24ndCBlbWl0IGFueXRoaW5n IGludG8gdGhlIERXQVJGIGV4cHJlc3Npb24sCnNvIGxvb2sgcGFzdCBpdCB3aGVuIGRlY2lkaW5n IHdoZXRoZXIgYSByZWdpc3RlciBleHByZXNzaW9uIGlzIGNvbXBsZXgKb3Igd2hldGhlciBhcHBl bmRUb1N0YWNrIG5lZWRzIHRvIGFkZCBhIGRlcmVmZXJlbmNlLgoKVGVzdGVkIHdpdGggbWFrZSBj aGVjay4KCkFzc2lzdGVkIHdpdGggQUkuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcv bGx2bS1wcm9qZWN0Ly0vY29tbWl0LzMyYjY0NWQ5ZDY5YjhjMmU2Mjg5MGZlZDE5MjAzMzM3YmVk ZGY3OTcKCkdpdCBjb21taXQgNzAyNTNhZjg3MDk2MTdiODYwODY1Y2U4ZDc0MjA0NzE4ZThhMTk3 NSBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBWaXRhbHkgQnVrYSkgb24gMDQvMDgvMjAyNiBhdCAx OToyNy4uCltORkNdW2xpYkZ1enplcl0gUmVtb3ZlIHVudXNlZCBHZXRNb2R1bGVOYW1lIGhlbHBl ciBpbiBUcmFjZVBDICgjMjE0MDMyKQoKRml4aW5nIGJ1aWxkIGJvdHMgYWZ0ZXIKaHR0cHM6Ly9n aXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L3B1bGwvMjAzMDg0LgpodHRwczovL2ludmVudC5r ZGUub3JnL3F0L2NsYW5nL2xsdm0tcHJvamVjdC8tL2NvbW1pdC83MDI1M2FmODcwOTYxN2I4NjA4 NjVjZThkNzQyMDQ3MThlOGExOTc1CgpHaXQgY29tbWl0IDdmNDk4ZDlkMzZkMTAyYTY1MzA4OWU4 NmNjMDdkMGE3ZjkwYmZhZWMgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgUWlvbmdzaSBXdSkgb24g MDQvMDgvMjAyNiBhdCAxOTozOC4uCltjbGFuZ11bRGVwZW5kZW5jeVNjYW5uaW5nXSBVc2UgQ29t cGlsZXJJbnN0YW5jZVdpdGhDb250ZXh0IGZvciBUVSBTY2FubmluZyAoIzIxMTQwOCkKCkFmdGVy IGBDb21waWxlckluc3RhbmNlV2l0aENvbnRleHRgJ3MgcmVsb2NhdGlvbiB0bwpgRGVwZW5kZW5j eVNjYW5uaW5nV29ya2VyLmNwcGAsIHdlIGNhbiB1c2UgaXQgZnJlZWx5IGFzIGFuCmltcGxlbWVu dGF0aW9uIGVuZ2luZSBmb3IgVFUgc2Nhbm5pbmcuIFRoaXMgUFIgZG9lcyB0aGF0LCBhbmQgdW5p Zmllcwp0aGUgYnktbmFtZSBzY2FubmluZyBhbmQgVFUgc2Nhbm5pbmcgc28gdGhleSBhbGwgZ28g dGhyb3VnaApgQ29tcGlsZXJJbnN0YW5jZVdpdGhDb250ZXh0YC4KCnJkYXI6Ly8xNjcwMzQzMDkK CgoKLS0tCgo8c3ViPlN0YWNrIGNyZWF0ZWQgd2l0aCA8YQpocmVmPSJodHRwczovL2dpdGh1Yi5j b20vZ2l0aHViL2doLXN0YWNrIj5HaXRIdWIgU3RhY2tzIENMSTwvYT4g4oCiIDxhCmhyZWY9Imh0 dHBzOi8vZ2guaW8vc3RhY2tzLWZlZWRiYWNrIj5HaXZlIEZlZWRiYWNrIPCfkqw8L2E+PC9zdWI+ Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0Lzdm NDk4ZDlkMzZkMTAyYTY1MzA4OWU4NmNjMDdkMGE3ZjkwYmZhZWMKCkdpdCBjb21taXQgMDQ3MjJh NGEzMmU2ZmVjMTg5N2NjM2NiNWE1NDgwOWZjZDhjOWNhZSBieSBHaXRIdWIgKG9uIGJlaGFsZiBv ZiBRaW9uZ3NpIFd1KSBvbiAwNC8wOC8yMDI2IGF0IDE5OjM4Li4KW2NsYW5nXVtEZXBlbmRlbmN5 U2Nhbm5pbmddIERpc3NvbHZlIERlcGVuZGVuY3lTY2FubmVySW1wbC5oL2NwcCAoIzIxMTQwOSkK CmBEZXBlbmRlbmN5U2Nhbm5lckltcGwuaC9jcHBgIHdlcmUgY3JlYXRlZCB0byBzaGFyZSBjb2Rl IGJldHdlZW4gVFUKc2Nhbm5pbmcgYW5kIGJ5LW5hbWUgc2Nhbm5pbmcgd2hlbiB0aGV5IHdlcmUg b24gZGlmZmVyZW50IGNvZGUgcGF0aHMuCkFmdGVyIHVuaWZ5aW5nIHRoZSBpbXBsZW1lbnRhdGlv biB0aHJvdWdoIGBDb21waWxlckluc3RhbmNlV2l0aENvbnRleHRgLAp3ZSBubyBsb25nZXIgbmVl ZCBhIHNlcGFyYXRlIGhlYWRlci9jcHAgcGFpciBhbmQgYWxsIHRoZSBjb2RlIGFyZSBtb3ZlZApp bnRvIGBEZXBlbmRlbmN5U2Nhbm5pbmdXb3JrZXIuY3BwYC4gVGhpcyBQUiBpcyBtZWNobmljYWwg YW5kIGRvZXMgbm90CmludGVuZCB0byBpbnRyb2R1Y2UgYmVoYXZpdm9yIGNoYW5nZXMuCgotLS0K CjxzdWI+U3RhY2sgY3JlYXRlZCB3aXRoIDxhCmhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9naXRo dWIvZ2gtc3RhY2siPkdpdEh1YiBTdGFja3MgQ0xJPC9hPiDigKIgPGEKaHJlZj0iaHR0cHM6Ly9n aC5pby9zdGFja3MtZmVlZGJhY2siPkdpdmUgRmVlZGJhY2sg8J+SrDwvYT48L3N1Yj4KaHR0cHM6 Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvMDQ3MjJhNGEz MmU2ZmVjMTg5N2NjM2NiNWE1NDgwOWZjZDhjOWNhZQoKR2l0IGNvbW1pdCBiM2NlMDdiOTk5OTAw MGU2ZmFkMWMzYWE4ZjQyOWUyZmYyNmI1OThmIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEFiaGlu YSBTcmVlKSBvbiAwNC8wOC8yMDI2IGF0IDE5OjQxLi4KW1N5c3RlbVpdW3ovT1NdIHVzZSBMTFZN X1RIUkVBRF9MT0NBTCBpbnN0ZWFkIG9mIHRocmVhZF9sb2NhbCAoIzIxNDAzOSkKClRoaXMgcGF0 Y2ggaXMgdG8gZml4IHRoZSBmb2xsb3dpbmcgZXJyb3Igb24gei9PUwoKYGBgCmxsdm0vaW5jbHVk ZS9sbHZtL1N1cHBvcnQvUGVyVGhyZWFkQnVtcFB0ckFsbG9jYXRvci5oOjc1OjEyOiBlcnJvcjog dGhyZWFkLWxvY2FsIHN0b3JhZ2UgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhlIGN1cnJlbnQgdGFy Z2V0CiAgIDc1IHwgICAgIHN0YXRpYyB0aHJlYWRfbG9jYWwgc3RkOjp2ZWN0b3I8QWxsb2NhdG9y VHkgKj4gQ2FjaGU7CiAgICAgIHwgICAgICAgICAgICBeCmBgYApodHRwczovL2ludmVudC5rZGUu b3JnL3F0L2NsYW5nL2xsdm0tcHJvamVjdC8tL2NvbW1pdC9iM2NlMDdiOTk5OTAwMGU2ZmFkMWMz YWE4ZjQyOWUyZmYyNmI1OThmCgpHaXQgY29tbWl0IGNkZGMxMDc4OTliZGYwOWVlM2ZmZDYwYjAw YjMyNDU1ZTY5OWIxMzAgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQXJzZW5peSBPYm9sZW5za2l5 KSBvbiAwNC8wOC8yMDI2IGF0IDE5OjQ4Li4KW0FNREdQVV0gRG8gbm90IHdpZGVuIGNvbnN0YW50 IGxvYWRzIHRoYXQgbWF5IG5vdCBiZSBkZXJlZmVyZW5jZWFibGUgKCMxODQ3OTApCmh0dHBzOi8v aW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0L2NkZGMxMDc4OTli ZGYwOWVlM2ZmZDYwYjAwYjMyNDU1ZTY5OWIxMzAKCkdpdCBjb21taXQgZGVlNzBhMGZjOTQ4Y2U5 MDYwZjQyMjVlZTViNzA3YWY0Mjg3ZTVkYyBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBBbGV4YW5k ZXIgUmljaGFyZHNvbikgb24gMDQvMDgvMjAyNiBhdCAxOTo1NS4uCltUYWJsZUdlbl0gR2VuZXJh dGUgYGdldFJlZ0NsYXNzRnJvbU1hdGNoS2luZCgpYCBmb3IgQXNtTWF0Y2hlcnMKClRoaXMgaGVs cGVyIGNhbiBiZSB1c2VmdWwgaW4gdmFsaWRhdGVUYXJnZXRPcGVyYW5kQ2xhc3MgdG8gZ2V0IHRo ZQpNQ1JlZ2lzdGVyQ2xhc3MgZm9yIHRoZSBNQ0tfKiBlbnVtLgpNaWdyYXRlIHRoZSBSVlkgbG9n aWMgdG8gdXNlIHRoaXMgbmV3IGdlbmVyYXRlZCBmdW5jdGlvbi4gQ2hlY2tpbmcgYWxsCnJlZ2lz dGVyIGNsYXNzZXMgaW5zdGVhZCBvZiBqdXN0IHRoZSBSVlkgb25lcyB3aWxsIG1hcmdpbmFsbHkg c2xvdyBkb3duCnZhbGlkYXRlVGFyZ2V0T3BlcmFuZENsYXNzLCBidXQgc2luY2UgdGhpcyBpcyBh bHJlYWR5IGEgc2xvdyBwYXRoIGl0CnNob3VsZCBub3QgbWF0dGVyLgoKSWYgbXVsdGlwbGUgUmVn aXN0ZXJPcGVyYW5kcyBzaGFyZSBhIFBhcnNlck1hdGNoQ2xhc3MgYnV0IG1hcCB0byBkaWZmZXJl bnQKUmVnaXN0ZXJDbGFzc2VzLCBvbWl0IHRoZW0gZnJvbSB0aGUgZ2VuZXJhdGVkIGdldFJlZ0Ns YXNzRnJvbU1hdGNoS2luZAptYXBwaW5nIGZ1bmN0aW9uLiBJIG9yaWdpbmFsbHkgdHJpZWQgdG8g ZW1pdCBhbiBlcnJvciBoZXJlLCBidXQgaXQgdHVybnMKb3V0IHRoZXJlIGFyZSBtYW55IHRhcmdl dHMgdGhhdCByZWx5IG9uIHNoYXJpbmcgdGhlIFBhcnNlck1hdGNoQ2xhc3Mgd2l0aApkaWZmZXJl bnQgKGJ1dCBzaW1pbGFyKSBSZWdpc3RlckNsYXNzZXMgc28gaWdub3JpbmcgdGhlbSBpcyBzYWZl ci4KClJldmlld2VkIEJ5OiBsZW5hcnkKClB1bGwgUmVxdWVzdDogaHR0cHM6Ly9naXRodWIuY29t L2xsdm0vbGx2bS1wcm9qZWN0L3B1bGwvMjAwNDUzCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQv Y2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0L2RlZTcwYTBmYzk0OGNlOTA2MGY0MjI1ZWU1Yjcw N2FmNDI4N2U1ZGMKCkdpdCBjb21taXQgMGQxYjU0NjA0ZGFjNzNhZGMxNmFmMTVmNDMzYWUwYzky MDY5ZmNjMiBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBBbGV4YW5kZXIgUmljaGFyZHNvbikgb24g MDQvMDgvMjAyNiBhdCAxOTo1Ny4uCltUYWJsZUdlbl1bQXNtTWF0Y2hlcl0gUmVzb2x2ZSBSZWdD bGFzc0J5SHdNb2RlIGtpbmRzIGZvciBhbGwgb3BlcmFuZHMKCnZhbGlkYXRlT3BlcmFuZENsYXNz KCkgb25seSByZW1hcHBlZCBhIFJlZ0NsYXNzQnlId01vZGUgb3BlcmFuZCBraW5kCndoZW4gdGhl IGFjdHVhbCBwYXJzZWQgb3BlcmFuZCB3YXMgYSByZWdpc3Rlci4gV2hlbiB0aGUgb3BlcmFuZCB3 YXMKc29tZXRoaW5nIGVsc2UgZW50aXJlbHkgKGUuZy4gYSBiYXJlIGltbWVkaWF0ZSB3aGVyZSBh IHJlZ2lzdGVyIHdhcwpleHBlY3RlZCksIHRoaXMgZmVsbCB0aHJvdWdoIHRvIHRoZSBnZW5lcmlj ICJLaW5kIDw9IE1DS19MQVNUX1JFR0lTVEVSIgpkaWFnbm9zdGljIGNoZWNrLCBzbyB3ZSBlbmQg dXAgd2l0aCBhIGdlbmVyaWMgTWF0Y2hfSW52YWxpZE9wZXJhbmQuCgpObyB0ZXN0IGNoYW5nZXMg aGVyZSwgYnV0IHRoaXMgaXMgbmVlZGVkIHRvIGF2b2lkIGRpYWdub3N0aWMgcmVncmVzc2lvbnMK d2l0aCB0aGUgUlZZIGxvYWQvc3RvcmUgc3VwcG9ydCAoUFIgIzE3NzA3MykuCgpQdWxsIFJlcXVl c3Q6IGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9wdWxsLzIxMzQ3OQpodHRw czovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0tcHJvamVjdC8tL2NvbW1pdC8wZDFiNTQ2 MDRkYWM3M2FkYzE2YWYxNWY0MzNhZTBjOTIwNjlmY2MyCgpHaXQgY29tbWl0IGM3NDBjNTQ1MTdm YWZkZmI2YTNkZDM1MjI3MDAwNzZkNTE4NGM4NDIgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQWJo aW5hIFNyZWUpIG9uIDA0LzA4LzIwMjYgYXQgMTk6NTcuLgpbU3lzdGVtWl1bei9PU10gQWRkIGd1 YXJkIGZvciBTSV9VU0VSICAoIzIxMzEwMSkKClNJX1VTRVIgaXMgbm90IGRlZmluZWQgb24gei9P UyBhbmQgaXMgY2F1c2luZyB0aGUgZm9sbG93aW5nIGJ1aWxkCmZhaWx1cmUuIGBlcnJvcjogdXNl IG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnU0lfVVNFUidgIApUaGlzIHBhdGNoIGFkZHMgYSBn dWFyZCB0byBjaGVjayB3aGV0aGVyIFNJX1VTRVIgaXMgZGVmaW5lZApiZWZvcmUgdXNpbmcgaXQu Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0L2M3 NDBjNTQ1MTdmYWZkZmI2YTNkZDM1MjI3MDAwNzZkNTE4NGM4NDIKCkdpdCBjb21taXQgODM0M2M1 MzhmMGU3ZWRlZThiZmMyYzgwMGY2ZDFiZmFlZjY2NGMxMiBieSBHaXRIdWIgKG9uIGJlaGFsZiBv ZiBmb3JraW5nLWdvb2dsZS1iYXplbC1ib3RbYm90XSkgb24gMDQvMDgvMjAyNiBhdCAyMDowOS4u CltCYXplbF0gRml4ZXMgMDQ3MjJhNCAoIzIxNDA0OSkKClRoaXMgZml4ZXMgMDQ3MjJhNGEzMmU2 ZmVjMTg5N2NjM2NiNWE1NDgwOWZjZDhjOWNhZSAoIzIxMTQwOSkuCgpCdWlsZGtpdGUgZXJyb3Ig bGluazoKaHR0cHM6Ly9idWlsZGtpdGUuY29tL2xsdm0tcHJvamVjdC91cHN0cmVhbS1iYXplbC9i dWlsZHM/Y29tbWl0PTA0NzIyYTRhMzJlNmZlYzE4OTdjYzNjYjVhNTQ4MDlmY2Q4YzljYWUKCkNv LWF1dGhvcmVkLWJ5OiBHb29nbGUgQmF6ZWwgQm90IDxnb29nbGUtYmF6ZWwtYm90QGdvb2dsZS5j b20+Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0 LzgzNDNjNTM4ZjBlN2VkZWU4YmZjMmM4MDBmNmQxYmZhZWY2NjRjMTIKCkdpdCBjb21taXQgNDRj NmFlZDliZDliOWNkYTk5M2Y0ZTkzZjJjYmRiNGZiYmE4OTBkMCBieSBHaXRIdWIgKG9uIGJlaGFs ZiBvZiBTcGVuY2VyIEJyeW5nZWxzb24pIG9uIDA0LzA4LzIwMjYgYXQgMjA6MTUuLgpbZmxhbmdd W09wZW5NUF0gRGlhZ25vc2UgZmFpbGVkIGNvbnN0cnVjdCBkZWNvbXBvc2l0aW9uIGluc3RlYWQg b2YgZmFsbGluZyB0aHJvdWdoICgjMjE0MDEyKQoKYGJ1aWxkQ29uc3RydWN0UXVldWVgIGFzc2Vy dHMgdGhhdCBkZWNvbXBvc2l0aW9uIHByb2R1Y2VkIG91dHB1dDoKCmBgYGNwcApDb25zdHJ1Y3RE ZWNvbXBvc2l0aW9uIGRlY29tcG9zZShtb2RPcCwgc2VtYUN0eCwgZXZhbCwgY29tcG91bmQsIGNs YXVzZXMpOwphc3NlcnQoIWRlY29tcG9zZS5vdXRwdXQuZW1wdHkoKSAmJiAiQ29uc3RydWN0IGRl Y29tcG9zaXRpb24gZmFpbGVkIik7CmBgYAoKUmVsZWFzZSBidWlsZHMgaGF2ZSBubyBjaGVjaywg c28gdGhlIGVtcHR5IHF1ZXVlIGZhbGxzIHRocm91Z2ggdG8gdGhlCmxvb3AgYmVsb3cgYW5kIG91 dCB0byB0aGUKY2FsbGVyLiBUaGF0IGlzIHVuZGVmaW5lZCBiZWhhdmlvdXIsIGFuZCBpdCBpcyBy ZWFjaGFibGUg4oCUIHNlbWFudGljcwpkb2VzIG5vdCBjYXRjaCBldmVyeQpkaXJlY3RpdmUvY2xh dXNlIGNvbWJpbmF0aW9uIHRoYXQgY2Fubm90IGJlIGRlY29tcG9zZWQuIFRoZSByZXN1bHQgaXMg YW4KaW50ZXJtaXR0ZW50IHNlZ2ZhdWx0CnJhdGhlciB0aGFuIGEgZGlhZ25vc3RpYy4KCiMyMTE0 MzAgaXMgb25lIHdheSBpbjogYGFsbG9jYXRlYCBpcyBhbiBPcGVuTVAgNS4wIGNsYXVzZSwgYnV0 IG1vc3QKZGlyZWN0aXZlcyBkZWNsYXJlIGl0IGluCmBPTVAudGRgIHdpdGhvdXQgYSBtaW5pbXVt IHZlcnNpb24sIHNvIHNlbWFudGljcyBhY2NlcHRzIGl0IGJlbG93IDUuMAphbmQgZGVjb21wb3Np dGlvbiB0aGVuCmNvcnJlY3RseSByZWZ1c2VzIGl0LiBmbGFuZyBkZWZhdWx0cyB0byBPcGVuTVAg My4xLCBzbyBubyB1bnVzdWFsIGZsYWdzCmFyZSBuZWVkZWQuIFRoZQppbnRlcm1pdHRlbmN5IGlz IHdoYXQgbWFkZSB0aGF0IHJlcG9ydCBoYXJkIHRvIHBpbiBkb3duIOKAlCA0MCB0cmlhbHMgYXQK YC1mb3Blbm1wLXZlcnNpb249MzFgOgoKfCB8IHNlZ2ZhdWx0cyB8CnwtLS18LS0tfAp8IEFTTFIg b24gfCAyNS80MCB8CnwgQVNMUiBvZmYgKGBzZXRhcmNoIC1SYCkgfCAwLzQwIHwKCndoaWNoIGlz IGFuIHVuaW5pdGlhbGl6ZWQgcmVhZC4KCkFmdGVyIHRoaXMgcGF0Y2ggdGhlIHNhbWUgaW5wdXQg ZmFpbHMgZGV0ZXJtaW5pc3RpY2FsbHkgd2l0aCBhIGxvY2F0ZWQKZGlhZ25vc3RpYywgNDAvNDA6 CgpgYGAKZXJyb3I6IGxvYygicmVwcm8uZjkwIjo2OjExKTogT3Blbk1QIGNvbnN0cnVjdCBkZWNv bXBvc2l0aW9uIGZhaWxlZDogYSBjbGF1c2Ugb24KICAgICAgICd0YXJnZXQgdGVhbXMgZGlzdHJp YnV0ZSBwYXJhbGxlbCBkbycgY2Fubm90IGJlIGFwcGxpZWQgdG8gYW55IG9mIGl0cyBsZWFmIGNv bnN0cnVjdHMKYGBgCgpgZ2VuQ3Jhc2hEaWFnPWZhbHNlYCBzbyBpdCBleGl0cyBub24temVybyB3 aXRob3V0IGEgYmFja3RyYWNlLCByYXRoZXIKdGhhbiBwcmVzZW50aW5nIGFzIGEgY29tcGlsZXIK Y3Jhc2guCgpUaGlzIGlzIGEgaGFyZGVuaW5nIGZpeCBmb3IgdGhlIGxvd2VyaW5nIHBhdGggYW5k IGlzIGluZGVwZW5kZW50IG9mIGFueQpwYXJ0aWN1bGFyIGNsYXVzZTogaXQgY292ZXJzCmV2ZXJ5 IGNvbWJpbmF0aW9uIHRoYXQgZGVjb21wb3NlcyBlbXB0eS4gSXQgZG9lcyBub3QgbWFrZSB0aGUg YGFsbG9jYXRlYApjYXNlIGEgKmdvb2QqIGRpYWdub3N0aWMg4oCUCnRoYXQgYmVsb25ncyBpbiBz ZW1hbnRpY3MsIGFuZCAjMjEzOTgwIGlzIHRoZSBzZXBhcmF0ZSBjaGFuZ2UgZm9yIGl0LgoKYGNo ZWNrLWZsYW5nYCBpcyBjbGVhbiAoNDgwOCB0ZXN0cykuIE5vIHRlc3QgaXMgYWRkZWQ6IHRoZSBv bmx5IGluLXRyZWUKd2F5IHRvIHJlYWNoIHRoaXMgcGF0aCBpcwp0aHJvdWdoIHRoZSBgT01QLnRk YCBnYXAgdGhhdCAjMjEzOTgwIGZpeGVzLCBzbyBhIHRlc3QgaGVyZSB3b3VsZCBlbmNvZGUKdGhh dCBnYXAgYXMgZXhwZWN0ZWQKYmVoYXZpb3VyIGFuZCBoYXZlIHRvIGJlIHJlbW92ZWQgd2hlbiBp dCBsYW5kcy4gSGFwcHkgdG8gYWRkIG9uZSBpZgp5b3UnZCBwcmVmZXIuCgoKLS0tCgpQYXJ0cyBv ZiB0aGlzIGNoYW5nZSB3ZXJlIHdyaXR0ZW4gb3IgYXVkaXRlZCB3aXRoIENsYXVkZSBDb2RlLiBJ IGhhdmUKcmV2aWV3ZWQgYWxsIG9mIGl0IGFuZCB0YWtlCmZ1bGwgcmVzcG9uc2liaWxpdHkgZm9y IHRoZSBjb250cmlidXRpb24uIFNlZQpgbGx2bS9kb2NzL0FJVG9vbFBvbGljeS5tZGAuCmh0dHBz Oi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0LzQ0YzZhZWQ5 YmQ5YjljZGE5OTNmNGU5M2YyY2JkYjRmYmJhODkwZDAKCkdpdCBjb21taXQgODNmYjcyYTkwNGU4 MjMxYmY2ODc5MDc2YjljMTBiZGJmMjVlNDc0NCBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBBcnRo dXIgRXViYW5rcykgb24gMDQvMDgvMjAyNiBhdCAyMDoyMC4uCltEV1BdIEVhZ2VybHkgY2xlYXIg YnVmZmVycyBhZnRlciB3cml0aW5nICgjMjEzMzQ1KQoKTG93ZXJzIHBlYWsgbWVtb3J5IHVzYWdl IG9uIGEgbGx2bS1kd3AgaW52b2NhdGlvbiBmcm9tIDEyLjM3R0IgLT4KMTEuMTlHQi4KClRoaXMg YWN0dWFsbHkgbm93IGJlYXRzIG91dCBHTlUgZHdwICgxMS4zNUdCKSBhdCBsZWFzdCB3aGVuIHRo ZSBvdXRwdXQKZmlsZSBpcyBpbiB0bXBmcy4KaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFu Zy9sbHZtLXByb2plY3QvLS9jb21taXQvODNmYjcyYTkwNGU4MjMxYmY2ODc5MDc2YjljMTBiZGJm MjVlNDc0NAoKR2l0IGNvbW1pdCBkNTJlOTg4MTRjNDE0ODdlNTYzNWExODZkOTdiZjU4MDNlMjAy NDU3IGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEhlbnJ5IEppYW5nKSBvbiAwNC8wOC8yMDI2IGF0 IDIwOjI1Li4KW05GQ11bQU1ER1BVXSBGaXggZXhpdCBjb2RlIG1pc21hdGNoIHdpdGggRVhQRU5T SVZFX0NIRUNLIGluIHNjaGVkdWxl4oCmICgjMjE0MDI3KQoK4oCmLWFtZGdwdS10cmFja2VyLXBo eXNyZWctY3Jhc2gubGwKCk9ic2VydmVkIGluCmh0dHBzOi8vY2kuc3dpZnQub3JnL2pvYi9sbHZt Lm9yZy9qb2IvY2xhbmctc3RhZ2UxLVJBLWV4cGVuc2l2ZS9qb2IvbWFpbi8xMTU1CndpdGggTExW TV9FTkFCTEVfRVhQRU5TSVZFX0NIRUNLUyBlbmFibGVkLApgQ29kZUdlbi9BTURHUFUvc2NoZWR1 bGUtYW1kZ3B1LXRyYWNrZXItcGh5c3JlZy1jcmFzaC5sbGAgZmFpbHMgZHVlIHRvCk1hY2hpbmVW ZXJpZmllciBydW5uaW5nLCBjYXVzaW5nIGFuIGV4aXQgMS4KCk1vZGlmaWVkIHRvIGFsd2F5cyBy dW4gdGhlIGAtdmVyaWZ5LW1hY2hpbmVpbnN0cnNgLgoKcmRhcjovLzE4NDAxMDc2NgpodHRwczov L2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0tcHJvamVjdC8tL2NvbW1pdC9kNTJlOTg4MTRj NDE0ODdlNTYzNWExODZkOTdiZjU4MDNlMjAyNDU3CgpHaXQgY29tbWl0IGYyMGI2NGZmZTVjODFl MGVmMzViY2Y5OTkwZjYwYTFmZjkxNTdmN2IgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgRG1pdHJ5 IFZhc2lseWV2KSBvbiAwNC8wOC8yMDI2IGF0IDIwOjI2Li4KW2xsZGJdIERpc2FibGUgVGVzdFBy b2Nlc3NTYXZlQ29yZU1pbmlkdW1wU2l6ZU1pc21hdGNoIG9uIFdpbmRvd3MgaG9zdHMgKCMyMTQw NDQpCgpUaGUgYnVpbGRib3QKW2xsZGItcmVtb3RlLWxpbnV4LXdpbl0oaHR0cHM6Ly9sYWIubGx2 bS5vcmcvYnVpbGRib3QvIy9idWlsZGVycy8xOTcpIGlzCnJlZCBhZnRlciAjMjEyODYxLiAjMjEy ODYxIGNhbm5vdCBiZSByZXZlcnRlZCBhdXRvbWF0aWNhbGx5IG5vdyBiZWNhdXNlIG9mCiMyMTI2 NDEuIFNvIGRpc2FibGUgVGVzdFByb2Nlc3NTYXZlQ29yZU1pbmlkdW1wU2l6ZU1pc21hdGNoIG9u IFdpbmRvd3MKaG9zdHMgdG8gbWFrZSB0aGUgYnVpbGRib3QgZ3JlZW4gYWdhaW4uCmh0dHBzOi8v aW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0L2YyMGI2NGZmZTVj ODFlMGVmMzViY2Y5OTkwZjYwYTFmZjkxNTdmN2IKCkdpdCBjb21taXQgMDNmODZjNmQ0ZDU1ODA5 Zjk1MzFiNWUzN2ViODI0OWU1Njk3NDZhYSBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBEYXZpZCBZ b3VuZykgb24gMDQvMDgvMjAyNiBhdCAyMDozMi4uCltTdXBwb3J0XVtEcml2ZXJdW0xMREJdIEd1 YXJkIFdJTjMyX0xFQU5fQU5EX01FQU4gZGVmaW5pdGlvbnMgd2l0aCAjaWZuZGVmICgjMjEzMDQ1 KQoKU2V2ZXJhbCBXaW5kb3dzIGhlYWRlcnMvVFVzIHVuY29uZGl0aW9uYWxseSBgI2RlZmluZQpX SU4zMl9MRUFOX0FORF9NRUFOYC4gV2hlbiBhIGJ1aWxkIHByZWRlZmluZXMgdGhlIG1hY3JvIG9u IHRoZSBjb21waWxlcgpjb21tYW5kIGxpbmUgKGUuZy4gYSB0b29sY2hhaW4gdGhhdCBwYXNzZXMg LURXSU4zMl9MRUFOX0FORF9NRUFOLCB3aGljaApjbGFuZyB0cmVhdHMgYXMgYCNkZWZpbmUgV0lO MzJfTEVBTl9BTkRfTUVBTiAxYCksIHRoZSBkaWZmZXJpbmcgdG9rZW4KbGlzdHMgdHJpZ2dlciAt V21hY3JvLXJlZGVmaW5lZCwgd2hpY2ggYmVjb21lcyBhIGhhcmQgZXJyb3IgdW5kZXIKLVdlcnJv ci4KCkd1YXJkIHRoZSBkZWZpbml0aW9ucyB3aXRoICNpZm5kZWYsIG1hdGNoaW5nIHRoZSBhZGph Y2VudCBOT01JTk1BWApoYW5kbGluZyBhbmQgdGhlIGV4aXN0aW5nIHBhdHRlcm4gaW4KbGx2bS9s aWIvU3VwcG9ydC9ycG1hbGxvYy9ycG1hbGxvYy5jLiBUaGUgbWFjcm8gaXMgb25seSBhIHByZXNl bmNlIGZsYWcsCnNvIGtlZXBpbmcgYW4gZXh0ZXJuYWxseS1wcm92aWRlZCBkZWZpbml0aW9uIGlz IGNvcnJlY3QuCgpTaXRlcyBndWFyZGVkOgogIGxsdm0vaW5jbHVkZS9sbHZtL1N1cHBvcnQvV2lu ZG93cy9XaW5kb3dzU3VwcG9ydC5oCiAgbGx2bS9saWIvV2luZG93c0RyaXZlci9NU1ZDUGF0aHMu Y3BwCiAgY2xhbmcvbGliL0RyaXZlci9Ub29sQ2hhaW5zL01TVkMuY3BwCiAgbGxkYi9pbmNsdWRl L2xsZGIvSG9zdC93aW5kb3dzL3dpbmRvd3MuaAoKTWV0YSByYW4gaW50byB0aGlzIGludGVybmFs bHkgYnVpbGRpbmcgbGxkYiBvbiB3aW5kb3cgYWZ0ZXIgYSBzeW5jIHdpdGgKdXBzdHJlYW0gZnJv bSBKdWx5IGNvbW1pdCwgc28gYWRkaW5nIGd1YXJkcyB3b3VsZCBhbGxvdyB1cyB0byBkcm9wIGEK d29ya2Fyb3VuZCBvZiBpZ25vcmluZyB0aGUgZHVwbGljYXRlIGRlZmluZXMuCgpFcnJvcjoKbGx2 bVxpbmNsdWRlXGxsdm0vU3VwcG9ydC9XaW5kb3dzL1dpbmRvd3NTdXBwb3J0LmgoMjksOSk6IGVy cm9yOgonV0lOMzJfTEVBTl9BTkRfTUVBTicgbWFjcm8gcmVkZWZpbmVkIFstV2Vycm9yLC1XbWFj cm8tcmVkZWZpbmVkXQogICAyOSB8ICNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgogICAgICB8 ICAgICAgICAgXgo8Y29tbWFuZCBsaW5lPigxMCw5KTogbm90ZTogcHJldmlvdXMgZGVmaW5pdGlv biBpcyBoZXJlCiAgIDEwIHwgI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOIDEKICAgICAgfCAg ICAgICAgIF4KMSBlcnJvciBnZW5lcmF0ZWQuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xh bmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0LzAzZjg2YzZkNGQ1NTgwOWY5NTMxYjVlMzdlYjgyNDll NTY5NzQ2YWEKCkdpdCBjb21taXQgNDZiOGViODYxMzUyZDBkMzQ2MjNhMzEzOWVkMTFkZTc2MzMx NzMyMyBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBOaWtpdGEgVGVyZW50ZXYpIG9uIDA0LzA4LzIw MjYgYXQgMjA6MzkuLgpbTkZDXVtDbGFuZ11bRG9jc10gRml4IG1pbm9yIHR5cG9zIGluIENvbnN0 YW50IEludGVycHJldGVyIGRvYy4gKCMyMTE2MDgpCgpGaXJzdDogVHlwbyBpcyBvYnZpb3VzLiAK U2Vjb25kOiBJbiB0aGUgZXhhbXBsZSwgdGhlIGEueSBmaWVsZCBpcyBtaXNzaW5nIGFuZCBmaWVs ZCBhLmIueSBpcwpyZXF1aXJlZC4KaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZt LXByb2plY3QvLS9jb21taXQvNDZiOGViODYxMzUyZDBkMzQ2MjNhMzEzOWVkMTFkZTc2MzMxNzMy MwoKR2l0IGNvbW1pdCAyMTc4ZGI2ZDNkZTRhZDlmYjk3OTRmNTVlNmQ2ZDM4Y2RmMmIwMzQ3IGJ5 IEdpdEh1YiAob24gYmVoYWxmIG9mIFRpbXVyIEdvbHVib3ZpY2gpIG9uIDA0LzA4LzIwMjYgYXQg MjA6NDIuLgpbWDg2XSBIYW5kbGUgbXVsdGktdXNlIHNldGNjIGluIGNvbW11dGVTZWxlY3QgKCMy MTM2NDUpCgpXaGVuIGEgc2V0Y2MgY29uZGl0aW9uIGlzIHNoYXJlZCBiZXR3ZWVuIG11bHRpcGxl IHZzZWxlY3RzLApjb21tdXRlU2VsZWN0IHByZXZpb3VzbHkgYmFpbGVkIG91dCBkdWUgdG8gdGhl IG1fT25lVXNlIGNvbnN0cmFpbnQuCkV4dGVuZCBpdCB0byBjaGVjayBhbGwgdXNlcnMgb2YgdGhl IHNldGNjIGFuZCwgaWYgdGhleSBhbGwgYmVuZWZpdCBmcm9tCmNvbW11dGluZywgaW52ZXJ0IHRo ZSBjb25kaXRpb24gb25jZSB3aXRoIFJlcGxhY2VBbGxVc2VzT2ZWYWx1ZVdpdGggYW5kCnN3YXAg YWxsIHZzZWxlY3Qgb3BlcmFuZHMuCgpUaGlzIGZpeGVzIGEgd3JpdGUtbWFzayBmdXNpb24gcmVn cmVzc2lvbiB3aGVyZSBtYXNrZWQgbWluL21heApyZWR1Y3Rpb25zIHByb2R1Y2VkIHVuZnVzZWQg dm1pbnBzICsgdm1vdmFwcyB7JWt9IGluc3RlYWQgb2YgYSBzaW5nbGUKd3JpdGUtbWFza2VkIHZt aW5wcyB7JWt9LgpodHRwczovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0tcHJvamVjdC8t L2NvbW1pdC8yMTc4ZGI2ZDNkZTRhZDlmYjk3OTRmNTVlNmQ2ZDM4Y2RmMmIwMzQ3CgpHaXQgY29t bWl0IGFhNzY5NjNlYzAzOWY0ODVkMDVjMTIzNWJhYzVhNWVkZjM2MDUzNzggYnkgR2l0SHViIChv biBiZWhhbGYgb2YgU2ltb24gUGlsZ3JpbSkgb24gMDQvMDgvMjAyNiBhdCAyMDo0My4uCltYODZd IExvd2VyUEFSSVRZIC0gdXNlIGNvdW50TWF4QWN0aXZlQml0cyB0byBkZXRlcm1pbmUgaWYgcmVw cmVzZW50YWJsZSBhcyB1aW50OF90LiBORkMuICgjMjE0MDU2KQoKTXVjaCBjbGVhbmVyIHRoYW4g dXNpbmcgdGhlIE1hc2tlZFZhbHVlSXNaZXJvIGNoZWNrLgoKRml4IGk2NCAtPiB4b3IoaTMyLGkz MikgcGFyaXR5IHN0YWdlIGNvbW1lbnQgYXMgd2VsbC4KaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9x dC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvYWE3Njk2M2VjMDM5ZjQ4NWQwNWMxMjM1YmFj NWE1ZWRmMzYwNTM3OAoKR2l0IGNvbW1pdCBjZDQ1OWYyNDY2ZTQwOGViZjlkY2Q0NTVjNThhNDM5 NTJkNmE1OTAzIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEZhcnpvbiBMb3RmaSkgb24gMDQvMDgv MjAyNiBhdCAyMDo0Ny4uCltTUElSVl0gU3BsaXQgd2lkZSBzaGFkZXIgUEhJcyBiZWZvcmUgYXBw bHlpbmcgZXhwbGljaXQgc3VwcG9ydGVkIHR5cGVzICgjMjEzODA2KQoKZml4ZXMgIzIxMzgwMgoK QXBwbHkgdGhlIG1heGltdW0tdmVjdG9yLXNpemUgcnVsZSBiZWZvcmUgdGhlIGV4cGxpY2l0IFBI SSBsZWdhbGl0eQpydWxlcyBmb3IgdHlwZS4gVGhpcyB3YXkgaWYgd2Ugc2VlIGEgc2l6ZSAxNiB2 ZWN0b3Igd2Ugc3BsaXQgaXQKYmVmb3JlaGFuZC4KCkluIG1vcmUgcHJlY2lzZSB3b3JkcyB0aGlz IHByZXNlcnZlcyBleGlzdGluZyBsZWdhbGl0eSBydWxlcyB3aGlsZQplbnN1cmluZyBzaGFkZXIg UEhJcyB3aWRlciB0aGFuIGZvdXIgbGFuZXMgYXJlIHNwbGl0IGZpcnN0LgoKQXNzaXN0ZWQgYnkg Q29waWxvdCAoR1BUIDUuNiBTb2wpCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2 bS1wcm9qZWN0Ly0vY29tbWl0L2NkNDU5ZjI0NjZlNDA4ZWJmOWRjZDQ1NWM1OGE0Mzk1MmQ2YTU5 MDMKCkdpdCBjb21taXQgNGVmMmU3NTc4NWQ3MWE5YWI4NjgyYmYyZjZiNGNjYzIyM2JhNTY4YyBi eSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBFcmljIENocmlzdG9waGVyKSBvbiAwNC8wOC8yMDI2IGF0 IDIxOjA5Li4KW0ZpbGVDaGVja10gQXZvaWQgbWF0Y2hpbmcgSVIga2V5d29yZHMgaW4gc291cmNl IGZpbGVuYW1lcyAoIzIxMzgwOSkKCkFuY2hvciBjaGVja3MgZm9yIGRlY2xhcmUsIGRlZmluZSwg YW5kIGNvbWRhdCB0byB0aGUgc3RhcnQgb2YgbGluZXMgb3IgYW5vdGhlciBmaXh0dXJlIHNvCnBh dGhzIGluIG1vZHVsZSBoZWFkZXJzIGNhbm5vdCBzYXRpc2Z5IG9yIGludmFsaWRhdGUgdGhlbS4K ClRlc3RlZCB3aXRoIG1ha2UgY2hlY2suCgpBc3Npc3RlZCBieSBBSS4KaHR0cHM6Ly9pbnZlbnQu a2RlLm9yZy9xdC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvNGVmMmU3NTc4NWQ3MWE5YWI4 NjgyYmYyZjZiNGNjYzIyM2JhNTY4YwoKR2l0IGNvbW1pdCA5NTI0ZmY4MjY5N2I1MzlkZjZmYjcx MGQ3NTRhNzAzZDc4OGJiMTM3IGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEZhZHkgRmFyYWcpIG9u IDA0LzA4LzIwMjYgYXQgMjE6MjUuLgpbY2xhbmddW3Rlc3RdIFVzZSBgRmlsZUNoZWNrYCBpbiBg SW5kZXgvcmVwYXJzZS1wcmVkZWYtb2JqYy1wcm90b2NvbC5tYCAoIzIxMzU2NikKClRoZSB0ZXN0 IGhhZCBgQ0hFQ0tgIGRpcmVjdGl2ZXMgdGhhdCB3ZXJlIG5ldmVyIGV4ZWN1dGVkIGJlY2F1c2Ug dGhlCmBSVU5gIGxpbmUgZGlkIG5vdCBwaXBlIG91dHB1dCB0byBgRmlsZUNoZWNrYC4gVGhpcyBh bHNvIGRyb3BzIHRoZSBmaXJzdApgQ0hFQ0tgIGRpcmVjdGl2ZSBpbiBmYXZvciBvZiB0aGUgb25l IGJlbG93IGl0IGR1ZSB0byBgbGliY2xhbmdgIG5vdwpyZXBvcnRpbmcgdG9wLWxldmVsIGZvcndh cmQgY2xhc3MgZGVjbGFyYXRpb25zIGFzIGBPYmpDQ2xhc3NSZWZgIGN1cnNvcnMKd2hpY2ggaXMg dGhlIG1vZGVybiByZXByZXNlbnRhdGlvbiBvZiB0aGF0IHNhbWUgZGVjbGFyYXRpb24uCmh0dHBz Oi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0Lzk1MjRmZjgy Njk3YjUzOWRmNmZiNzEwZDc1NGE3MDNkNzg4YmIxMzcKCkdpdCBjb21taXQgZDViOWU2MTJkNzgx MTZmZmM1MjQxMDU4OGZlMmY1NmZjZTRjOTQxMCBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBTaW1v biBQaWxncmltKSBvbiAwNC8wOC8yMDI2IGF0IDIxOjM0Li4KW1g4Nl0gdmVjdG9yLXJlZHVjZS1v ci1jbXAubGwgLSBhZGQgbm91bndpbmQgdG8gc2lsZW5jZSBjZmkgbm9pc2UuIE5GQy4gKCMyMTQw NjQpCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0 L2Q1YjllNjEyZDc4MTE2ZmZjNTI0MTA1ODhmZTJmNTZmY2U0Yzk0MTAKCkdpdCBjb21taXQgMWUy NDM1ZTMyMzEyYjE0OTcwMGM1MGFiMmU4Y2Q0MzhmYWNmOWYyZiBieSBHaXRIdWIgKG9uIGJlaGFs ZiBvZiBLcnp5c3p0b2YgUGFyenlzemVrKSBvbiAwNC8wOC8yMDI2IGF0IDIxOjM4Li4KW2ZsYW5n XVtPcGVuTVBdIFVzZSAnbGluZWFyLXN0ZXAnIGluc3RlYWQgb2YgJ3N0ZXAtc2ltcGxlLW1vZGlm aWVyJyBp4oCmICgjMjE0MDQxKQoK4oCmbiA1LjEtCgpUaGVzZSB0d28gbW9kaWZpZXJzIGFyZSBz dHJ1Y3R1cmFsbHkgaWRlbnRpY2FsLCBidXQgdGhlIGxhdHRlciBoYXMgYW4KZXhjbHVzaXZlIHBy b3BlcnR5IHdoZXJlYXMgdGhlIGZvcm1lciBkb2VzIG5vdC4KQWxzbywgdGhpcyBhbGxvd3MgZGlh Z25vc3RpY3MgdG8gdXNlIHRoZSBtb2RpZmllciBuYW1lIHRoYXQgYXBwZWFycyBpbgp0aGUgc3Bl YyB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSB2ZXJzaW9uIGluIC1mb3Blbm1wLXZlcnNpb24uCmh0 dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0LzFlMjQz NWUzMjMxMmIxNDk3MDBjNTBhYjJlOGNkNDM4ZmFjZjlmMmYKCkdpdCBjb21taXQgNzQ1MjcxZmMy M2ZkMjNmODNlYWNlOTU5Mjg1YWJmZDU4MGEyNjdhNSBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBE YW4gTGlldykgb24gMDQvMDgvMjAyNiBhdCAyMTo0Ni4uCltORkNdW0JvdW5kc1NhZmV0eV0gR2l2 ZSBgY291bnRlZF9ieV9vcl9udWxsYCwgYHNpemVkX2J5YCwgYW5kIGBzaXplZF9ieV9vcl9udWxs YCB0aGVpciBvd24gZG9jdW1lbnRhdGlvbiAoIzIxMjg3NykKClByZXZpb3VzbHkgdGhlIGBjb3Vu dGVkX2J5YCwgYGNvdW50ZWRfYnlfb3JfbnVsbGAsIGBzaXplZF9ieWAsIGFuZApgc2l6ZWRfYnlf b3JfbnVsbGAgYXR0cmlidXRlcyBhbGwgcG9pbnRlZCBhdCBhIHNpbmdsZSBgRG9jdW1lbnRhdGlv bmAKb2JqZWN0IChgQ291bnRlZEJ5RG9jc2ApLiBUaGUgZ2VuZXJhdGVkIGBBdHRyaWJ1dGVSZWZl cmVuY2UucnN0YAp0aGVyZWZvcmUgZm9sZGVkIGFsbCBmb3VyIGludG8gb25lIGVudHJ5IHdob3Nl IHRleHQgZGVzY3JpYmVkIG9ubHkKYGNvdW50ZWRfYnlgIHVzZWQgb24gYSBDOTkgZmxleGlibGUg YXJyYXkgbWVtYmVyLgoKVGhpcyB3YXMgbWlzbGVhZGluZyBiZWNhdXNlIHRoZSBhdHRyaWJ1dGVz IGRpZmZlciBpbiBpbXBvcnRhbnQgd2F5cyB0aGF0CndlbnQgdW5kb2N1bWVudGVkOgoKKiBgY291 bnRlZF9ieWAgY291bnRzICplbGVtZW50cyogd2hlcmVhcyBgc2l6ZWRfYnlgIGNvdW50cyAqYnl0 ZXMqLgoqIGBjb3VudGVkX2J5YCBhbmQgYHNpemVkX2J5YCByZXF1aXJlIGEgbnVsbCBwb2ludGVy IHRvIGhhdmUgYSB6ZXJvCmNvdW50L3NpemUsIHdoaWxlIHRoZSBgX29yX251bGxgIHZhcmlhbnRz IGFsbG93IGEgbnVsbCBwb2ludGVyCnJlZ2FyZGxlc3Mgb2YgdGhlIGNvdW50IG9yIHNpemUuCiog YGNvdW50ZWRfYnlgIG1heSBiZSBhcHBsaWVkIHRvIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyLCBi dXQKYHNpemVkX2J5YCwgYGNvdW50ZWRfYnlfb3JfbnVsbGAsIGFuZCBgc2l6ZWRfYnlfb3JfbnVs bGAgYXBwbHkgdG8KcG9pbnRlcnMgb25seS4KCkFzIGEgcmVzdWx0IGEgcmVhZGVyIGxvb2tpbmcg dXAgYW55IG9mIHRoZSB0aHJlZSBub24tYGNvdW50ZWRfYnlgCmF0dHJpYnV0ZXMgd2FzIHNob3du IGRvY3VtZW50YXRpb24gZm9yIGEgZGlmZmVyZW50IGF0dHJpYnV0ZSB3aXRoCmRpZmZlcmVudCBi ZWhhdmlvci4KClRoaXMgY2hhbmdlIGdpdmVzIGBzaXplZF9ieWAsIGBjb3VudGVkX2J5X29yX251 bGxgLCBhbmQKYHNpemVkX2J5X29yX251bGxgIHRoZWlyIG93biBkb2N1bWVudGF0aW9uIHNvIHRo YXQgZWFjaCByZW5kZXJzIGFzIGl0cwpvd24gZW50cnkgZGVzY3JpYmluZyBpdHMgYWN0dWFsIGJl aGF2aW9yLiBUaGUgc3Vic3RhbnRpdmUgdGV4dCBsaXZlcyBpbgpgY291bnRlZF9ieWAgYW5kIGBz aXplZF9ieWA7IHRoZSBgX29yX251bGxgIHZhcmlhbnRzIGFyZSBkZXNjcmliZWQgaW4KdGVybXMg b2YgdGhlaXIgYmFzZSBhdHRyaWJ1dGUuCgpXaGlsZSB3ZSdyZSBoZXJlLCB0aGlzIHBhdGNoIGFs c286CgoqIFJlc3RydWN0dXJlcyBgY291bnRlZF9ieWAncyBkb2N1bWVudGF0aW9uIHRvIGV4cGxh aW4gdGhlIGF0dHJpYnV0ZSdzCm1lYW5pbmcgZmlyc3QsIHdpdGggdGhlIGZsZXhpYmxlLWFycmF5 LW1lbWJlciBtYXRlcmlhbCBtb3ZlZCBpbnRvIGl0cwpvd24gc3ViLXNlY3Rpb24gcmF0aGVyIHRo YW4gbGVhZGluZyB0aGUgZW50cnkuIEl0IG1hZGUgc2Vuc2UgdGhhdCBGQU1zCndlcmUgdGhlIGxl YWRpbmcgZW50cnkgd2hlbiB0aGF0IHdhcyB0aGUgb25seSBjb250ZXh0IHRoZSBhdHRyaWJ1dGUg d2FzCnN1cHBvcnRlZCBpbiwgYnV0IGl0J3MgYWxzbyBub3cgc3VwcG9ydGVkIG9uIHBvaW50ZXIg ZmllbGRzIGluIGEgc3RydWN0LgoqIERpc2N1c3NlcyBob3cgYGNvdW50ZWRfYnlgIG9uIGB2b2lk ICpgIGlzIHN1cHBvcnRlZCBhcyBhIEdOVQpleHRlbnNpb24uCiogQWRkcyB0d28gc2VjdGlvbnMg b24ga2VlcGluZyB0aGUgcG9pbnRlciBhbmQgY291bnQvc2l6ZSB2YWx1ZSBpbiBzeW5jLgpUaGUg dHdvIHNlY3Rpb25zIGFyZSBwcmFjdGljYWxseSBpZGVudGljYWwgb3RoZXIgdGhhbiB0aGUgYXR0 cmlidXRlIHRoZXkKZGlzY3VzcyBhbmQgdGhlIGFzc29jaWF0ZWQgY291bnQvc2l6ZS4KKiBGb3Ig YGNvdW50ZWRfYnlgLCBleHBsYWlucyBob3cgYSBwb2ludGVyIHRvIGEgZm9yd2FyZC1kZWNsYXJl ZCB0eXBlIGlzCmFsbG93ZWQgYXMgbG9uZyBhcyB0aGUgdHlwZSBpcyBjb21wbGV0ZSBhdCB0aGUg dXNlIHNpdGVzLgoqIEZvciBgc2l6ZWRfYnlgLCBleHBsYWlucyB0aGUgbW90aXZhdGlvbiBmb3Ig dXNpbmcgaXQgb24gdHlwZXMgdGhhdAphcmVuJ3QgYnl0ZS1zaXplZC4KCkFzc2lzdGVkLWJ5OiBD bGF1ZGUgQ29kZQoKcmRhcjovLzEzNjk3OTMxMApodHRwczovL2ludmVudC5rZGUub3JnL3F0L2Ns YW5nL2xsdm0tcHJvamVjdC8tL2NvbW1pdC83NDUyNzFmYzIzZmQyM2Y4M2VhY2U5NTkyODVhYmZk NTgwYTI2N2E1CgpHaXQgY29tbWl0IGFlYWEyYWFjYWQ1ZmVmMWI3MDBhODBjNGU1NTVlNmVmZmE1 NTkzNWUgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQWJoaW5hdiBHYWJhKSBvbiAwNC8wOC8yMDI2 IGF0IDIxOjU4Li4KW09wZW5NUF0gUHJvcGFnYXRlIFBSRVNFTlQgdG8gcG9pbnRlZSBlbnRyaWVz IGluIG1hcHBlciBjb2RlZ2VuICgjMjEwMjE0KQoKRm9yIGNhc2VzIGxpa2U6CgpgYGBjCiNwcmFn bWEgb21wIGRlY2xhcmVfbWFwcGVyIChkZWZhdWx0OiBTIHMpIG1hcChzLngsIHMucFswOjEwXSkK ClMgczE7Ci4uLgojcHJhZ21hIG9tcCB0YXJnZXRfZW50ZXJfZGF0YSBtYXAocHJlc2VudCwgYWxs b2M6IHMxKQpgYGAKQWZ0ZXIgIm1hcHBlci1leHBhbnNpb24iLCB0aGUgYmVoYXZpb3Igb2YgdGhl IGFib3ZlIHNob3VsZCBiZSBlcXVpdmFsZW50CnRvOgoKYGBgCiNwcmFnbWEgb21wIHRhcmdldF9l bnRlcl9kYXRhIG1hcChwcmVzZW50LCBhbGxvYzogczEueCkgbWFwKHByZXNlbnQsIGFsbG9jOiBz LnBbMDoxMF0pCmBgYAoKaS5lLiBUaGUgYHByZXNlbnRgIG1hcC10eXBlIG5lZWRzIHRvIGJlIHBy b3BhZ2F0ZWQgdG8gdGhlIG1hcCBmb3IgdGhlCnBvaW50ZWUgb2YgYHMucGAuIFRoYXQgd2FzIG5v dCBoYXBwZW5pbmcgcHJpb3IgdG8gdGhpcyBjaGFuZ2UuCgpXZSB0cnkgdG8gbGltaXQgdGhpcyB0 byBlbnRyaWVzIHRoYXQgaGF2ZSB0aGVpciBvd24gImF0dGFjaC1wdHIiIChsaWtlCmBzLnBbMDox MF1gKSBhbmQgdGh1cyBvY2N1cHkgYSBzZXBhcmF0ZSBzdG9yYWdlIGJsb2NrIHRoYW4gdGhlIGJh c2UKdmFyaWFibGUgZm9yIHdoaWNoIHRoZSBtYXBwZXIgaXMgZGVjbGFyZWQgKGxpa2UgYHNgKS4K Ck5vdGUgdGhhdCB3ZSBkbyB0aGlzIG9ubHkgd2l0aCBPcGVuTVAgNi4wKywgc2luY2UgdGhlIHdv cmRpbmcgaW4gNS4yCmltcGxpZXMgdGhhdCBQUkVTRU5UIGFwcGxpZXMgb25seSB0byBgcy54YCBh ZnRlciBtYXBwZXItZXhwYW5zaW9uLgoKClRPRE86IGBQUkVTRU5UYCBiaXQgc2hvdWxkIGFsc28g YmUgcHJvcGFnYXRlZCB0byBub24tcG9pbnRlZSBlbnRyaWVzCnJlc3VsdGluZyBmcm9tIG1hcHBl ci1leHBhbnNpb24sIGUuZy4KCmBgYGMKc3RydWN0IFMgewppbnQgeDsgaW50IHk7IGludCAqcDsK fTsKUyBzMTsKI3ByYWdtYSBvbXAgZGVjbGFyZV9tYXBwZXIgbWFwKHMueCwgcy55KQouLi4KI3By YWdtYSBvbXAgdGFyZ2V0X2VudGVyX2RhdGEgbWFwKHByZXNlbnQ6IHMxKQovLyBwcmVzZW50IGhh cyB0byBiZSBwcm9wYWdhdGVkIGlud2FyZHMgdG8gYHMueCwgcy55YCBzbyB0aGF0IGl0IGRvZXNu J3QKLy8gYXNzZXJ0IHRoYXQgdGhlIGZ1bGwgYHMxYCBpcyAicHJlc2VudCIuCmBgYAoKSG93ZXZl ciB3ZSBjYW5ub3QgZG8gdGhhdCB1bnRpbCB3ZSBoYXZlIHJlbW92ZWQgdGhlIHJlbWFpbmluZyB1 c2VzIG9mClBUUl9BTkRfT0JKIG1hcHMgbWFwLXR5cGUgKHdoaWNoIGlzIHVzZWQgZm9yIGJ5cmVm cyBpbiBjbGFuZyBhdCB0aGUKbW9tZW50KS4KCi0tLS0tLS0tLQoKQ28tYXV0aG9yZWQtYnk6IENs YXVkZSBPcHVzIDQuOCA8bm9yZXBseUBhbnRocm9waWMuY29tPgpodHRwczovL2ludmVudC5rZGUu b3JnL3F0L2NsYW5nL2xsdm0tcHJvamVjdC8tL2NvbW1pdC9hZWFhMmFhY2FkNWZlZjFiNzAwYTgw YzRlNTU1ZTZlZmZhNTU5MzVlCgpHaXQgY29tbWl0IDk1NTcyYjQ3OWE2OWFhYWNhODI0MDYzZGQx NGM3MWQ2MTg2ZWZlYjQgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQWxleGFuZGVyIFJpY2hhcmRz b24pIG9uIDA0LzA4LzIwMjYgYXQgMjI6MDAuLgpbUklTQy1WXVtNQ10gQWRkIGEgZmV3IG1vcmUg dGVzdHMgZm9yIGludmFsaWQgbHcgb3BlcmFuZHMKClRvIHNob3cgdGhlIGRpZmZlcmVuY2UgaW4g ZGlhZ25vc3RpYyBvdXRwdXQgYXMgc3VnZ2VzdGVkIGluCmh0dHBzOi8vZ2l0aHViLmNvbS9sbHZt L2xsdm0tcHJvamVjdC9wdWxsLzIxMDkwMS4KClB1bGwgUmVxdWVzdDogaHR0cHM6Ly9naXRodWIu Y29tL2xsdm0vbGx2bS1wcm9qZWN0L3B1bGwvMjE0MDcwCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcv cXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0Lzk1NTcyYjQ3OWE2OWFhYWNhODI0MDYzZGQx NGM3MWQ2MTg2ZWZlYjQKCkdpdCBjb21taXQgNDUyNDY3Y2JmODJmMTNmNTdlZGE0YzdmZDY2MjI1 YjEyMjVjN2U1OCBieSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBqZWZmbml1LW9wZW5haSkgb24gMDQv MDgvMjAyNiBhdCAyMjowMS4uCltTZWxlY3Rpb25EQUddIFNwbGl0IG1hc2tlZCBkaXYvcmVtIG9w ZXJhbmRzIHdpdGggaWxsZWdhbCBtYXNrcyAoIzIxNDA1OCkKClBSIGRlc2NyaXB0aW9uIHdyaXR0 ZW4gYnkgQ29kZXgKClNwbGl0IG1hc2tlZCBzaWduZWQgYW5kIHVuc2lnbmVkIGRpdmlzaW9uL3Jl bWFpbmRlciBhbG9uZ3NpZGUgaWxsZWdhbAp2ZWN0b3IgbWFza3MgdG8gZml4IE5WUFRYIFNlbGVj dGlvbkRBRyBjcmFzaGVzLiBDb3ZlcnMgYWxsIGZvdXIKaW50cmluc2ljcyBhbmQgdGhlIG9yaWdp bmFsIGVpZ2h0LWxhbmUgcmVwcm9kdWNlcjsgZml2ZSBmb2N1c2VkIExMVk0KdGVzdHMgcGFzcy4K aHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvNDUy NDY3Y2JmODJmMTNmNTdlZGE0YzdmZDY2MjI1YjEyMjVjN2U1OAoKR2l0IGNvbW1pdCBiYzZmMmE5 MjYzYmZjNTk2NmVhNTk2ZDIyMjY5YWJmYmZkMDAwM2UyIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9m IEFkYW0gU21pdGgpIG9uIDA0LzA4LzIwMjYgYXQgMjI6MDkuLgpbQ0lSXSBSZWplY3QgYSBnbG9i YWwgY2FycnlpbmcgYSBmdW5jdGlvbiB0eXBlICgjMjE0MDY1KQoKVGhlIHZlcmlmaWVyIHdhcyBh Y2NlcHRpbmcgYSBgY2lyLmdsb2JhbGAgd2hvc2UgYHN5bV90eXBlYCBpcyBhCmZ1bmN0aW9uLiBU aGUgTExWTSBkaWFsZWN0IGdsb2JhbCB0YWtlcyBvbmUgdG9vLCBzbyBpdCBzdXJ2aXZlcyB0byBM TFZNCklSIHRyYW5zbGF0aW9uIGFuZCBjcmFzaGVzIGluc3RlYWQgb2YgcmVwb3J0aW5nIGFuIGVy cm9yLgpgR2xvYmFsT3A6OnZlcmlmeSgpYCBub3cgcmVqZWN0cyBpdC4KaHR0cHM6Ly9pbnZlbnQu a2RlLm9yZy9xdC9jbGFuZy9sbHZtLXByb2plY3QvLS9jb21taXQvYmM2ZjJhOTI2M2JmYzU5NjZl YTU5NmQyMjI2OWFiZmJmZDAwMDNlMgoKR2l0IGNvbW1pdCA0MzdmZjM2MGY3YWRjYTRjNmNmY2Vj YTczMmI1NjhlZGQyNjkzYmQwIGJ5IEdpdEh1YiAob24gYmVoYWxmIG9mIEVyaWNoIEtlYW5lKSBv biAwNC8wOC8yMDI2IGF0IDIyOjEwLi4KW0NJUl0gTW92ZSBhcnJheS1jdG9yIGNsZWFudXAgdG8g cHJvcGVybHkgY2xlYW51cCB0ZW1wb3JhcmllcyAoIzIxMzk5MykKClRoaXMgcGF0Y2ggY2FtZSBv dXQgb2Ygc2VsZi1idWlsZCwgYW55IGNvbnN0cnVjdG9yIHRlbXBvcmFyeSBjYWxsZWQKZHVyaW5n IHRoZSBjb25zdHJ1Y3Rpb24gb2YgYW4gYXJyYXkgZWxlbWVudCB3YXMgYmVpbmcgaW1wcm9wZXJs eSBjbGVhbmVkCnVwIChhY3R1YWxseSwgbm8gdGVybWluYXRvcj8pLiBUaGlzIHBhdGNoIG1vdmVz IHRoZSBSdW5DbGVhbnVwcyBSQUlJIHRvCmRvIHNvIGltbWVkaWF0ZWx5IGluIHRoZSBib2R5LgoK VGhlIE9HQ0cvTExWTSBjaGVjayBsaW5lcyBhcmUgZWZmZWN0aXZlbHkgZXF1YWwsIGV4Y2VwdCBP R0NHIHVzZXMgYSBQSEkKYW5kIHdlIGFyZSBkb2luZyBzbyB3aXRoIGFuIGl0ZXJhdG9yIGxvb3As IGJ1dCB0aGUgJ2R0b3IgY2FsbGVkCmltbWVkaWF0ZWx5JyBpcyBzdGlsbCBjb3JyZWN0LgpodHRw czovL2ludmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0tcHJvamVjdC8tL2NvbW1pdC80MzdmZjM2 MGY3YWRjYTRjNmNmY2VjYTczMmI1NjhlZGQyNjkzYmQwCgpHaXQgY29tbWl0IGJkNDExNzM1MzU3 NGUxYzE4MjdlNjk2ODIxZDNmNGYxODBiMjRlZDYgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgRGF2 aWQgR3JlZW4pIG9uIDA0LzA4LzIwMjYgYXQgMjI6MTkuLgpbQUFyY2g2NF1bR2xvYmFsSVNlbF0g VXNlIGEgY29uY3JldGUgdHlwZSBmb3Igc3RvcmUgbWVyZ2luZy4gKCMyMTM3NDApCgpUaGlzIGlz IGp1c3QgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2Ygc2NhbGFyIHR5cGVzIGluIHRoZSBNSVIsIGFz IHRoZQp2YWx1ZSBpcyBiZXR3ZWVuIGEgY29uc3RhbnQgYW5kIGEgc3RvcmUgaXQgc2hvdWxkIGhh dmUgbGl0dGxlIGVmZmVjdC4KaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9xdC9jbGFuZy9sbHZtLXBy b2plY3QvLS9jb21taXQvYmQ0MTE3MzUzNTc0ZTFjMTgyN2U2OTY4MjFkM2Y0ZjE4MGIyNGVkNgoK R2l0IGNvbW1pdCAyMDMzOWRhNzUzZGJhMzg5YmFiZGI5MzdmMmMyYmU2MjRlYWM0NTE3IGJ5IEdp dEh1YiAob24gYmVoYWxmIG9mIEpvbmFzIERldmxpZWdoZXJlKSBvbiAwNC8wOC8yMDI2IGF0IDIy OjQ1Li4KW2xsZGJdIFN0ZXAgcGFzdCBhIHByb2xvZ3VlIHRoZSBwYyBpcyBpbnNpZGUgKCMyMTM1 NTUpCgpBIHN0ZXAgaW50byBhIGZ1bmN0aW9uIHJhbiBwYXN0IGl0cyBwcm9sb2d1ZSBvbmx5IHdo ZW4gdGhlIHBjIHdhcwpleGFjdGx5IHRoZSBmdW5jdGlvbidzIGZpcnN0IGFkZHJlc3MuIEEgdGFy Z2V0IHdob3NlIGVudHJ5IHBvaW50IGlzIG5vdAphIGZ1bmN0aW9uJ3MgZmlyc3QgYWRkcmVzcyAo c3VjaCBhcyBXZWJBc3NlbWJseSkgaXMgZW50ZXJlZCBwYXN0IGl0LgpUaGlzIG1lYW5zIHRoYXQg dGhlIGNoZWNrIHRvb2sgZXZlcnkgc3VjaCBjYWxsIGZvciBvbmUgd2hvc2UgcHJvbG9ndWUKaGFk IGFscmVhZHkgcnVuLCBhbmQgdGhlIHN0ZXAgc3RvcHBlZCBvbiB0aGUgb3BlbmluZyBicmFjZSBp bnN0ZWFkIG9mCnRoZSBmaXJzdCBzdGF0ZW1lbnQuCgpXaGF0IHNheXMgdGhlIHByb2xvZ3VlIGhh cyB5ZXQgdG8gcnVuIGlzIHRoZSBwYyBiZWluZyBpbnNpZGUgaXQsIHdoaWNoCmZvciBhIHRhcmdl dCB0aGF0IGRvZXMgZW50ZXIgYXQgdGhlIGZpcnN0IGFkZHJlc3MgaXMgdGhlIGNvbmRpdGlvbiB0 aGF0CndhcyB0aGVyZSBiZWZvcmUuCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2 bS1wcm9qZWN0Ly0vY29tbWl0LzIwMzM5ZGE3NTNkYmEzODliYWJkYjkzN2YyYzJiZTYyNGVhYzQ1 MTcKCkdpdCBjb21taXQgMDJiNWJlYjU3YmI0YmJjNDEzOTg1M2Y2ZGI1ZWM0YjkwYTcwZjY1NiBi eSBHaXRIdWIgKG9uIGJlaGFsZiBvZiBDaGlubWF5IERlc2hwYW5kZSkgb24gMDQvMDgvMjAyNiBh dCAyMjo0OC4uCltBTURHUFVdW0dJU2VsXSBSZWdCYW5rTGVnYWxpemUgcnVsZXMgZm9yIENWVCBT Y2FsZSBhbmQgU1IgQkYxNi1zcGVjaWZpYyBpbnRyaW5zaWNzICgjMjE0MDE4KQpodHRwczovL2lu dmVudC5rZGUub3JnL3F0L2NsYW5nL2xsdm0tcHJvamVjdC8tL2NvbW1pdC8wMmI1YmViNTdiYjRi YmM0MTM5ODUzZjZkYjVlYzRiOTBhNzBmNjU2CgpHaXQgY29tbWl0IDFmYzJiMzdjNjg5MmI2ODk2 MmI3YTkxNmY5NjQ4ZDUyMDQ1NDkwODUgYnkgR2l0SHViIChvbiBiZWhhbGYgb2YgQ2hpbm1heSBE ZXNocGFuZGUpIG9uIDA0LzA4LzIwMjYgYXQgMjI6NDguLgpbQU1ER1BVXVtHSVNlbF0gUmVnQmFu a0xlZ2FsaXplIHJ1bGVzIGZvciBCRjE2IHZhcmlhbnRzIG9mIGdmeDk1MCBNRk1BIGludHJpbnNp Y3MgKCMyMTQwNDIpCmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0 Ly0vY29tbWl0LzFmYzJiMzdjNjg5MmI2ODk2MmI3YTkxNmY5NjQ4ZDUyMDQ1NDkwODUKCkdpdCBj b21taXQgZDc1NzViYzVlNzJiZjE1ZGFiYjlmNTc4MmE2MjllMjExYmY0OTE0YSBieSBHaXRIdWIg KG9uIGJlaGFsZiBvZiBQaXlvdSBDaGVuKSBvbiAwNC8wOC8yMDI2IGF0IDIyOjU5Li4KW1JJU0NW XSBjb2FsZXNjZSBiZXR3ZWVuIFZTRVRWTEkgYW5kIFNGX1ZTRVRUTlQgKCMyMDM0MzgpCgpXaGVu IHR3aWRlbiAhPSAwLCBMTVVMLCB0YWlsIHBvbGljeSwgYW5kIG1hc2sgcG9saWN5IGZyb20gdGhl IHVzZXIgYXJlCmlnbm9yZWQuIFRoZSB0YWlsIHBvbGljeSBhbmQgbWFzayBwb2xpY3kgYXJlIGFs d2F5cyB0cmVhdGVkIGFzIGFnbm9zdGljLgpUaGUgbm9ybWFsIFJWViBpbnN0cnVjdGlvbiB3aWxs IGlnbm9yZSB0aGUgdHdpZGVuIHBhcmFtZXRlci4gVGhpcwpvYnNlcnZhdGlvbiBjb3VsZCBhbGxv dyB0aGUgUlZWIGluc3RydWN0aW9uIGFuZCB4c2ZtbSBpbnN0cnVjdGlvbiB0bwpzaGFyZSB0aGUg c2FtZSBjb25maWd1cmF0aW9uIGluc3RydWN0aW9uLgoKV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhl IEFWTCwgU0VXLCBhbmQgQWx0Rm10IGlzIHNhbWUgYmV0d2VlbiBWU0VUVkwgYW5kClZTRVRWTFRO LgoKLS0tLS0tLS0tCgpDby1hdXRob3JlZC1ieTogTHVrZSBMYXUgPGx1a2VfbGF1QGljbG91ZC5j b20+Cmh0dHBzOi8vaW52ZW50LmtkZS5vcmcvcXQvY2xhbmcvbGx2bS1wcm9qZWN0Ly0vY29tbWl0 L2Q3NTc1YmM1ZTcyYmYxNWRhYmI5ZjU3ODJhNjI5ZTIxMWJmNDkxNGEK