From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail2.protonmail.ch (mail2.protonmail.ch [185.70.40.22]) by mx.groups.io with SMTP id smtpd.web08.1054.1608676306524598785 for ; Tue, 22 Dec 2020 14:31:48 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@senzilla.io header.s=protonmail2 header.b=YdD2990X; spf=pass (domain: senzilla.io, ip: 185.70.40.22, mailfrom: hi@senzilla.io) Date: Tue, 22 Dec 2020 22:31:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=senzilla.io; s=protonmail2; t=1608676302; bh=CAXKkGmbTt8UzGzbBotDiNrHihwheI60I1Swnaz3fBk=; h=Date:To:From:Reply-To:Subject:In-Reply-To:References:From; b=YdD2990Xszh7FdDryZ8+K4TgWm+qwXOQe2u/qyKjVDjgAtPvcVMgPChIClIqtktQd jOVsrPQTiS2Ruiavdh47mh3tI2c3mx+wrBCs7zRHfSMbpXhPRQ+j1T7Q75UEW9K8nC YUiqVzcH7wUgnk5hYSabuDCpeElo5oQv+e+SFPXj4Nhb0YkIgcRP+/AMvHFPbe1YPu iFyIbcGmcTcbhNAZAaBLNF2T+3QT+INOCRb8x0Is02hudjVJwaYshKsTYw9baoF4Eb 6fE6MTz25RWg5Eb6qkqnEZk8HvflBnj8leBuGDtbizuHOd3CQrlJqPKH6NEyZpW6+k xhl0mv6vTpAEA== To: devel@edk2.groups.io, bret.barkelew@microsoft.com, "Feng, Bob C" , gaoliming , 'Yunhua Feng' From: "D. Olsson" Reply-To: "D. Olsson" Subject: Re: [edk2-devel] [edk2/master PATCH 1/1] GenFds: Compatibility with Python 3.9 Message-ID: In-Reply-To: References: <20201218201443.1001495-1-hi@senzilla.io> <003801d6d7fb$ec551390$c4ff3ab0$@byosoft.com.cn>, MIME-Version: 1.0 X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,HTML_FONT_LOW_CONTRAST, HTML_MESSAGE shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch Content-Type: multipart/alternative; boundary="b1_0DhbrSvbMKJ1duKLqA0JV097pJ2akHY5R1zEpEur94" --b1_0DhbrSvbMKJ1duKLqA0JV097pJ2akHY5R1zEpEur94 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SSBoYXZlIG5vdCBjcmVhdGVkIGFueSBhZGRpdGlvbmFsIGVudHJpZXMgb24gQnVnemlsbGEgb3Ig R2l0SHViIGZvciB0aGlzIHNwZWNpZmljIHBhdGNoLiBCdXQgSSBoYXZlIHNlZW4gcGxlbnR5IG9m IHJlbGF0ZWQgcGF0Y2hlcyBpbiB0aGUgbWFpbGluZyBsaXN0LgoKRC4gT2xzc29uClBHUDogODIw NEE4Q0QKCk9uIFR1ZSwgRGVjIDIyLCAyMDIwIGF0IDIyOjU5LCBCcmV0IEJhcmtlbGV3IHZpYSBn cm91cHMuaW8gPGJyZXQuYmFya2VsZXc9bWljcm9zb2Z0LmNvbUBncm91cHMuaW8+IHdyb3RlOgoK PiBEbyBhbnkgb2YgdGhlc2UgcmVwb3J0cyBoYXZlIGFjdGl2ZSBCdWd6aWxsYSBvciBHaXRIdWIg aXNzdWVzIGFzc29jaWF0ZWQgd2l0aCB0aGVtPwo+Cj4gVHJ5aW5nIHRvIHRyYWNrIHBhdGNoIGNv bXBsZXRpb24gaW4gTXUsIHNpbmNlIHdl4oCZdmUgYWxyZWFkeSBpbXBsZW1lbnRlZCB0aGUg4oCc ZnJvbWJ5dGVz4oCdIHNvbHV0aW9uLgo+Cj4gLSBCcmV0Cj4KPiBGcm9tOiBbQm9iIEZlbmcgdmlh IGdyb3Vwcy5pb10obWFpbHRvOmJvYi5jLmZlbmc9aW50ZWwuY29tQGdyb3Vwcy5pbykKPiBTZW50 OiBNb25kYXksIERlY2VtYmVyIDIxLCAyMDIwIDU6NTggUE0KPiBUbzogW2dhb2xpbWluZ10obWFp bHRvOmdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbik7IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBoaUBz ZW56aWxsYS5pbzsgWydZdW5odWEgRmVuZyddKG1haWx0bzpmZW5neXVuaHVhQGJ5b3NvZnQuY29t LmNuKQo+IFN1YmplY3Q6IFtFWFRFUk5BTF0gUmU6IFtlZGsyLWRldmVsXSBbZWRrMi9tYXN0ZXIg UEFUQ0ggMS8xXSBHZW5GZHM6IENvbXBhdGliaWxpdHkgd2l0aCBQeXRob24gMy45Cj4KPiBUaGlz IHBhdGNoIHdvbid0IHdvcmsgZm9yIHB5dGhvbjIKPgo+IExldCdzIHJldmlldyB0aGlzIHBhdGNo Lgo+IGh0dHBzOi8vbmFtMDYuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1o dHRwcyUzQSUyRiUyRmVkazIuZ3JvdXBzLmlvJTJGZyUyRmRldmVsJTJGbWVzc2FnZSUyRjY3NTEx JmFtcDtkYXRhPTA0JTdDMDElN0NCcmV0LkJhcmtlbGV3JTQwbWljcm9zb2Z0LmNvbSU3QzZmYTRm MGQzNGNhMzRkZjVhMjFhMDhkOGE2MWQxYzBmJTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAx MWRiNDclN0MxJTdDMCU3QzYzNzQ0MTk5MTI1MDM3Mjc5MCU3Q1Vua25vd24lN0NUV0ZwYkdac2Iz ZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENK WFZDSTZNbjAlM0QlN0MxMDAwJmFtcDtzZGF0YT1xMGtwTEN0aGFpbnlkMFY4dSUyRmdKb0NreDFT RDROMFNMSVRXWEJxQW1MQWslM0QmYW1wO3Jlc2VydmVkPTAKPgo+IFRoYW5rcywKPiBCb2IKPgo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogZ2FvbGltaW5nIDxnYW9saW1pbmdA Ynlvc29mdC5jb20uY24+Cj4gU2VudDogVHVlc2RheSwgRGVjZW1iZXIgMjIsIDIwMjAgODo0NyBB TQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgaGlAc2VuemlsbGEuaW87ICdZdW5odWEgRmVu ZycgPGZlbmd5dW5odWFAYnlvc29mdC5jb20uY24+OyBGZW5nLCBCb2IgQyA8Ym9iLmMuZmVuZ0Bp bnRlbC5jb20+Cj4gQ2M6ICdMaW1pbmcgR2FvJyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPgo+ IFN1YmplY3Q6IOWbnuWkjTogW2VkazItZGV2ZWxdIFtlZGsyL21hc3RlciBQQVRDSCAxLzFdIEdl bkZkczogQ29tcGF0aWJpbGl0eSB3aXRoIFB5dGhvbiAzLjkKPgo+IFl1bmh1YSBhbmQgQm9iOgo+ IENhbiB5b3UgcmV2aWV3IHRoaXMgcGF0Y2ggdGhpcyB3ZWVrPyBNb3JlIGFuZCBtb3JlIHBlb3Bs ZSByZXBvcnRzIFB5dGhvbjM5IGZhaWwgaW4gQmFzZVRvb2xzLgo+Cj4gVGhhbmtzCj4gTGltaW5n Cj4+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0KPj4g5Y+R5Lu25Lq6OiBib3VuY2UrMjc5NTIrNjky MzUrNDkwNTk1Mys4NzYxMDQ1QGdyb3Vwcy5pbwo+PiA8Ym91bmNlKzI3OTUyKzY5MjM1KzQ5MDU5 NTMrODc2MTA0NUBncm91cHMuaW8+ICDku6PooaggRC4gT2xzc29uIHZpYQo+PiBncm91cHMuaW8K Pj4g5Y+R6YCB5pe26Ze0OiAyMDIw5bm0MTLmnIgxOeaXpSA0OjE1Cj4+IOaUtuS7tuS6ujogZGV2 ZWxAZWRrMi5ncm91cHMuaW8KPj4g5oqE6YCBOiBEaWNrIE9sc3NvbiA8aGlAc2VuemlsbGEuaW8+ Cj4+IOS4u+mimDogW2VkazItZGV2ZWxdIFtlZGsyL21hc3RlciBQQVRDSCAxLzFdIEdlbkZkczog Q29tcGF0aWJpbGl0eSB3aXRoCj4+IFB5dGhvbiAzLjkKPj4KPj4gUHl0aG9uIDMuOSByZW1vdmVk IHRoZSB0b3N0cmluZygpIGFuZCBmcm9tc3RyaW5nKCkgbWV0aG9kczoKPj4gaHR0cHM6Ly9uYW0w Ni5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGZG9j cy5weXRob24ub3JnJTJGMyUyRndoYXRzbmV3JTJGMy45Lmh0bWwlMjNyZW1vdmVkJmFtcDtkYXRh PTA0JTdDMDElN0NCcmV0LkJhcmtlbGV3JTQwbWljcm9zb2Z0LmNvbSU3QzZmYTRmMGQzNGNhMzRk ZjVhMjFhMDhkOGE2MWQxYzBmJTdDNzJmOTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclN0Mx JTdDMCU3QzYzNzQ0MTk5MTI1MDM3Mjc5MCU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpXSWpv aU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAl M0QlN0MxMDAwJmFtcDtzZGF0YT1aamJ3bGxjMHRyR1VMJTJGU2dTbkI0SXZta3p1MkIxbDVBRWdi V0tmNEw3N2clM0QmYW1wO3Jlc2VydmVkPTAKPj4KPj4gU2lnbmVkLW9mZi1ieTogRGljayBPbHNz b24gPGhpQHNlbnppbGxhLmlvPgo+PiAtLS0KPj4gQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vR2Vu RmRzL0dlbkZkc0dsb2JhbFZhcmlhYmxlLnB5IHwgNCArKy0tCj4+IDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9CYXNlVG9v bHMvU291cmNlL1B5dGhvbi9HZW5GZHMvR2VuRmRzR2xvYmFsVmFyaWFibGUucHkKPj4gYi9CYXNl VG9vbHMvU291cmNlL1B5dGhvbi9HZW5GZHMvR2VuRmRzR2xvYmFsVmFyaWFibGUucHkKPj4gaW5k ZXggZGMxNzI3YzQ2Ni4uMTI0ZGM0MzE5OSAxMDA2NDQKPj4gLS0tIGEvQmFzZVRvb2xzL1NvdXJj ZS9QeXRob24vR2VuRmRzL0dlbkZkc0dsb2JhbFZhcmlhYmxlLnB5Cj4+ICsrKyBiL0Jhc2VUb29s cy9Tb3VyY2UvUHl0aG9uL0dlbkZkcy9HZW5GZHNHbG9iYWxWYXJpYWJsZS5weQo+PiBAQCAtNDYz LDEyICs0NjMsMTIgQEAgY2xhc3MgR2VuRmRzR2xvYmFsVmFyaWFibGU6Cj4+IEdlbkZkc0dsb2Jh bFZhcmlhYmxlLlNlY0NtZExpc3QuYXBwZW5kKCcKPj4gJy5qb2luKENtZCkuc3RyaXAoKSkKPj4g ZWxzZToKPj4gU2VjdGlvbkRhdGEgPSBhcnJheSgnQicsIFswLCAwLCAwLCAwXSkKPj4gLSBTZWN0 aW9uRGF0YS5mcm9tc3RyaW5nKFVpLmVuY29kZSgidXRmXzE2X2xlIikpCj4+ICsgU2VjdGlvbkRh dGEuZnJvbWJ5dGVzKFVpLmVuY29kZSgidXRmXzE2X2xlIikpCj4+IFNlY3Rpb25EYXRhLmFwcGVu ZCgwKQo+PiBTZWN0aW9uRGF0YS5hcHBlbmQoMCkKPj4gTGVuID0gbGVuKFNlY3Rpb25EYXRhKQo+ Pgo+PiBHZW5GZHNHbG9iYWxWYXJpYWJsZS5TZWN0aW9uSGVhZGVyLnBhY2tfaW50byhTZWN0aW9u RGF0YSwgMCwgTGVuICYKPj4gMHhmZiwgKExlbiA+PiA4KSAmIDB4ZmYsIChMZW4gPj4gMTYpICYg MHhmZiwgMHgxNSkKPj4gLSBTYXZlRmlsZU9uQ2hhbmdlKE91dHB1dCwgU2VjdGlvbkRhdGEudG9z dHJpbmcoKSkKPj4gKyBTYXZlRmlsZU9uQ2hhbmdlKE91dHB1dCwgU2VjdGlvbkRhdGEudG9ieXRl cygpKQo+Pgo+PiBlbGlmIFZlcjoKPj4gQ21kICs9ICgiLW4iLCBWZXIpCj4+IC0tCj4+IDIuMjUu MQo+Pgo+Pgo+Pgo+Pgo+Pgo+Pgo+Cj4g --b1_0DhbrSvbMKJ1duKLqA0JV097pJ2akHY5R1zEpEur94 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 ICA8ZGl2PkkgaGF2ZSBub3QgY3JlYXRlZCBhbnkgYWRkaXRpb25hbCBlbnRyaWVzIG9uIEJ1Z3pp bGxhIG9yIEdpdEh1YiBmb3IgdGhpcyBzcGVjaWZpYyBwYXRjaC4gQnV0IEkgaGF2ZSBzZWVuIHBs ZW50eSBvZiByZWxhdGVkIHBhdGNoZXMgaW4gdGhlIG1haWxpbmcgbGlzdC48Y2FyZXQ+PC9jYXJl dD48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2IGlkPSJwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9j ayIgY2xhc3M9InByb3Rvbm1haWxfc2lnbmF0dXJlX2Jsb2NrIj48ZGl2PjxkaXY+RC4gT2xzc29u PGJyPjwvZGl2PjxkaXY+UEdQOiA4MjA0QThDRDxicj48L2Rpdj48L2Rpdj48L2Rpdj4gIDxkaXY+ PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2Pk9uIFR1ZSwgRGVjIDIyLCAyMDIwIGF0IDIyOjU5LCBC cmV0IEJhcmtlbGV3IHZpYSBncm91cHMuaW8gJmx0OzxhIGhyZWY9Im1haWx0bzpicmV0LmJhcmtl bGV3PW1pY3Jvc29mdC5jb21AZ3JvdXBzLmlvIiBjbGFzcz0iIj5icmV0LmJhcmtlbGV3PW1pY3Jv c29mdC5jb21AZ3JvdXBzLmlvPC9hPiZndDsgd3JvdGU6PGJsb2NrcXVvdGUgY2xhc3M9InByb3Rv bm1haWxfcXVvdGUiIHR5cGU9ImNpdGUiPiAgDQoNCg0KDQoNCg0KDQo8ZGl2IGNsYXNzPSJXb3Jk U2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+RG8gYW55IG9mIHRoZXNlIHJlcG9ydHMg aGF2ZSBhY3RpdmUgQnVnemlsbGEgb3IgR2l0SHViIGlzc3VlcyBhc3NvY2lhdGVkIHdpdGggdGhl bT88L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj5UcnlpbmcgdG8gdHJhY2sgcGF0Y2ggY29tcGxldGlvbiBpbiBNdSwgc2luY2Ugd2XigJl2 ZSBhbHJlYWR5IGltcGxlbWVudGVkIHRoZSDigJxmcm9tYnl0ZXPigJ0gc29sdXRpb24uPC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+LSBC cmV0IDwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzwvcD4NCjxkaXYgc3R5bGU9Im1z by1lbGVtZW50OnBhcmEtYm9yZGVyLWRpdjtib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNF MUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIiBzdHlsZT0iYm9yZGVyOm5vbmU7cGFkZGluZzowaW4iPjxiPkZyb206IDwvYj48YSBocmVm PSJtYWlsdG86Ym9iLmMuZmVuZz1pbnRlbC5jb21AZ3JvdXBzLmlvIj5Cb2IgRmVuZyB2aWEgZ3Jv dXBzLmlvPC9hPjxicj4NCjxiPlNlbnQ6IDwvYj5Nb25kYXksIERlY2VtYmVyIDIxLCAyMDIwIDU6 NTggUE08YnI+DQo8Yj5UbzogPC9iPjxhIGhyZWY9Im1haWx0bzpnYW9saW1pbmdAYnlvc29mdC5j b20uY24iPmdhb2xpbWluZzwvYT47IDxhIGhyZWY9Im1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5p byI+DQpkZXZlbEBlZGsyLmdyb3Vwcy5pbzwvYT47IDxhIGhyZWY9Im1haWx0bzpoaUBzZW56aWxs YS5pbyI+aGlAc2VuemlsbGEuaW88L2E+OyA8YSBocmVmPSJtYWlsdG86ZmVuZ3l1bmh1YUBieW9z b2Z0LmNvbS5jbiI+DQonWXVuaHVhIEZlbmcnPC9hPjxicj4NCjxiPlN1YmplY3Q6IDwvYj5bRVhU RVJOQUxdIFJlOiBbZWRrMi1kZXZlbF0gW2VkazIvbWFzdGVyIFBBVENIIDEvMV0gR2VuRmRzOiBD b21wYXRpYmlsaXR5IHdpdGggUHl0aG9uIDMuOTwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+Jm5ic3A7PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0 b206MTIuMHB0Ij5UaGlzIHBhdGNoIHdvbid0IHdvcmsgZm9yIHB5dGhvbjI8YnI+DQo8YnI+DQpM ZXQncyByZXZpZXcgdGhpcyBwYXRjaC48YnI+DQo8YSBocmVmPSJodHRwczovL25hbTA2LnNhZmVs aW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZlZGsyLmdyb3Vw cy5pbyUyRmclMkZkZXZlbCUyRm1lc3NhZ2UlMkY2NzUxMSZhbXA7YW1wO2RhdGE9MDQlN0MwMSU3 Q0JyZXQuQmFya2VsZXclNDBtaWNyb3NvZnQuY29tJTdDNmZhNGYwZDM0Y2EzNGRmNWEyMWEwOGQ4 YTYxZDFjMGYlN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNjM3 NDQxOTkxMjUwMzcyNzkwJTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdN REFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzEwMDAm YW1wO2FtcDtzZGF0YT1xMGtwTEN0aGFpbnlkMFY4dSUyRmdKb0NreDFTRDROMFNMSVRXWEJxQW1M QWslM0QmYW1wO2FtcDtyZXNlcnZlZD0wIj5odHRwczovL25hbTA2LnNhZmVsaW5rcy5wcm90ZWN0 aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZlZGsyLmdyb3Vwcy5pbyUyRmclMkZk ZXZlbCUyRm1lc3NhZ2UlMkY2NzUxMSZhbXA7YW1wO2RhdGE9MDQlN0MwMSU3Q0JyZXQuQmFya2Vs ZXclNDBtaWNyb3NvZnQuY29tJTdDNmZhNGYwZDM0Y2EzNGRmNWEyMWEwOGQ4YTYxZDFjMGYlN0M3 MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3QzElN0MwJTdDNjM3NDQxOTkxMjUwMzcy NzkwJTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlqb2lW Mmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO2FtcDtzZGF0 YT1xMGtwTEN0aGFpbnlkMFY4dSUyRmdKb0NreDFTRDROMFNMSVRXWEJxQW1MQWslM0QmYW1wO2Ft cDtyZXNlcnZlZD0wPC9hPjxicj4NCjxicj4NClRoYW5rcyw8YnI+DQpCb2I8YnI+DQo8YnI+DQot LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLTxicj4NCkZyb206IGdhb2xpbWluZyAmbHQ7Z2FvbGlt aW5nQGJ5b3NvZnQuY29tLmNuJmd0OyA8YnI+DQpTZW50OiBUdWVzZGF5LCBEZWNlbWJlciAyMiwg MjAyMCA4OjQ3IEFNPGJyPg0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBoaUBzZW56aWxsYS5p bzsgJ1l1bmh1YSBGZW5nJyAmbHQ7ZmVuZ3l1bmh1YUBieW9zb2Z0LmNvbS5jbiZndDs7IEZlbmcs IEJvYiBDICZsdDtib2IuYy5mZW5nQGludGVsLmNvbSZndDs8YnI+DQpDYzogJ0xpbWluZyBHYW8n ICZsdDtnYW9saW1pbmdAYnlvc29mdC5jb20uY24mZ3Q7PGJyPg0KU3ViamVjdDogPHNwYW4gbGFu Zz0iWkgtQ04iIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtNaWNyb3NvZnQgWWFIZWkmcXVvdDss c2Fucy1zZXJpZiI+5Zue5aSNPC9zcGFuPjogW2VkazItZGV2ZWxdIFtlZGsyL21hc3RlciBQQVRD SCAxLzFdIEdlbkZkczogQ29tcGF0aWJpbGl0eSB3aXRoIFB5dGhvbiAzLjk8YnI+DQo8YnI+DQpZ dW5odWEgYW5kIEJvYjo8YnI+DQombmJzcDsgQ2FuIHlvdSByZXZpZXcgdGhpcyBwYXRjaCB0aGlz IHdlZWs/IE1vcmUgYW5kIG1vcmUgcGVvcGxlIHJlcG9ydHMgUHl0aG9uMzkgZmFpbCBpbiBCYXNl VG9vbHMuPGJyPg0KPGJyPg0KVGhhbmtzPGJyPg0KTGltaW5nPGJyPg0KJmd0OyAtLS0tLTxzcGFu IGxhbmc9IlpILUNOIiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7TWljcm9zb2Z0IFlhSGVpJnF1 b3Q7LHNhbnMtc2VyaWYiPumCruS7tuWOn+S7tjwvc3Bhbj4tLS0tLTxicj4NCiZndDsgPHNwYW4g bGFuZz0iWkgtQ04iIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtNaWNyb3NvZnQgWWFIZWkmcXVv dDssc2Fucy1zZXJpZiI+5Y+R5Lu25Lq6PC9zcGFuPjogYm91bmNlKzI3OTUyKzY5MjM1KzQ5MDU5 NTMrODc2MTA0NUBncm91cHMuaW88YnI+DQomZ3Q7ICZsdDtib3VuY2UrMjc5NTIrNjkyMzUrNDkw NTk1Mys4NzYxMDQ1QGdyb3Vwcy5pbyZndDsgPHNwYW4gbGFuZz0iWkgtQ04iIHN0eWxlPSJmb250 LWZhbWlseTomcXVvdDtNaWNyb3NvZnQgWWFIZWkmcXVvdDssc2Fucy1zZXJpZiI+DQrku6Pooag8 L3NwYW4+IEQuIE9sc3NvbiB2aWEgPGJyPg0KJmd0OyBncm91cHMuaW88YnI+DQomZ3Q7IDxzcGFu IGxhbmc9IlpILUNOIiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7TWljcm9zb2Z0IFlhSGVpJnF1 b3Q7LHNhbnMtc2VyaWYiPuWPkemAgeaXtumXtDwvc3Bhbj46IDIwMjA8c3BhbiBsYW5nPSJaSC1D TiIgc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O01pY3Jvc29mdCBZYUhlaSZxdW90OyxzYW5zLXNl cmlmIj7lubQ8L3NwYW4+MTI8c3BhbiBsYW5nPSJaSC1DTiIgc3R5bGU9ImZvbnQtZmFtaWx5OiZx dW90O01pY3Jvc29mdCBZYUhlaSZxdW90OyxzYW5zLXNlcmlmIj7mnIg8L3NwYW4+MTk8c3BhbiBs YW5nPSJaSC1DTiIgc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O01pY3Jvc29mdCBZYUhlaSZxdW90 OyxzYW5zLXNlcmlmIj7ml6U8L3NwYW4+DQogNDoxNTxicj4NCiZndDsgPHNwYW4gbGFuZz0iWkgt Q04iIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtNaWNyb3NvZnQgWWFIZWkmcXVvdDssc2Fucy1z ZXJpZiI+5pS25Lu25Lq6PC9zcGFuPjogZGV2ZWxAZWRrMi5ncm91cHMuaW88YnI+DQomZ3Q7IDxz cGFuIGxhbmc9IlpILUNOIiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7TWljcm9zb2Z0IFlhSGVp JnF1b3Q7LHNhbnMtc2VyaWYiPuaKhOmAgTwvc3Bhbj46IERpY2sgT2xzc29uICZsdDtoaUBzZW56 aWxsYS5pbyZndDs8YnI+DQomZ3Q7IDxzcGFuIGxhbmc9IlpILUNOIiBzdHlsZT0iZm9udC1mYW1p bHk6JnF1b3Q7TWljcm9zb2Z0IFlhSGVpJnF1b3Q7LHNhbnMtc2VyaWYiPuS4u+mimDwvc3Bhbj46 IFtlZGsyLWRldmVsXSBbZWRrMi9tYXN0ZXIgUEFUQ0ggMS8xXSBHZW5GZHM6IENvbXBhdGliaWxp dHkgd2l0aA0KPGJyPg0KJmd0OyBQeXRob24gMy45PGJyPg0KJmd0OyA8YnI+DQomZ3Q7IFB5dGhv biAzLjkgcmVtb3ZlZCB0aGUgdG9zdHJpbmcoKSBhbmQgZnJvbXN0cmluZygpIG1ldGhvZHM6PGJy Pg0KJmd0OyA8YSBocmVmPSJodHRwczovL25hbTA2LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxv b2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZkb2NzLnB5dGhvbi5vcmclMkYzJTJGd2hhdHNuZXcl MkYzLjkuaHRtbCUyM3JlbW92ZWQmYW1wO2FtcDtkYXRhPTA0JTdDMDElN0NCcmV0LkJhcmtlbGV3 JTQwbWljcm9zb2Z0LmNvbSU3QzZmYTRmMGQzNGNhMzRkZjVhMjFhMDhkOGE2MWQxYzBmJTdDNzJm OTg4YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclN0MxJTdDMCU3QzYzNzQ0MTk5MTI1MDM3Mjc5 MCU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJs dU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MxMDAwJmFtcDthbXA7c2RhdGE9 Wmpid2xsYzB0ckdVTCUyRlNnU25CNEl2bWt6dTJCMWw1QUVnYldLZjRMNzdnJTNEJmFtcDthbXA7 cmVzZXJ2ZWQ9MCI+DQpodHRwczovL25hbTA2LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2su Y29tLz91cmw9aHR0cHMlM0ElMkYlMkZkb2NzLnB5dGhvbi5vcmclMkYzJTJGd2hhdHNuZXclMkYz LjkuaHRtbCUyM3JlbW92ZWQmYW1wO2FtcDtkYXRhPTA0JTdDMDElN0NCcmV0LkJhcmtlbGV3JTQw bWljcm9zb2Z0LmNvbSU3QzZmYTRmMGQzNGNhMzRkZjVhMjFhMDhkOGE2MWQxYzBmJTdDNzJmOTg4 YmY4NmYxNDFhZjkxYWIyZDdjZDAxMWRiNDclN0MxJTdDMCU3QzYzNzQ0MTk5MTI1MDM3Mjc5MCU3 Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16 SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0QlN0MxMDAwJmFtcDthbXA7c2RhdGE9Wmpi d2xsYzB0ckdVTCUyRlNnU25CNEl2bWt6dTJCMWw1QUVnYldLZjRMNzdnJTNEJmFtcDthbXA7cmVz ZXJ2ZWQ9MDwvYT48YnI+DQomZ3Q7IDxicj4NCiZndDsgU2lnbmVkLW9mZi1ieTogRGljayBPbHNz b24gJmx0O2hpQHNlbnppbGxhLmlvJmd0Ozxicj4NCiZndDsgLS0tPGJyPg0KJmd0OyZuYnNwOyBC YXNlVG9vbHMvU291cmNlL1B5dGhvbi9HZW5GZHMvR2VuRmRzR2xvYmFsVmFyaWFibGUucHkgfCA0 ICsrLS08YnI+DQomZ3Q7Jm5ic3A7IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pPGJyPg0KJmd0OyA8YnI+DQomZ3Q7IGRpZmYgLS1naXQgYS9CYXNlVG9vbHMv U291cmNlL1B5dGhvbi9HZW5GZHMvR2VuRmRzR2xvYmFsVmFyaWFibGUucHk8YnI+DQomZ3Q7IGIv QmFzZVRvb2xzL1NvdXJjZS9QeXRob24vR2VuRmRzL0dlbkZkc0dsb2JhbFZhcmlhYmxlLnB5PGJy Pg0KJmd0OyBpbmRleCBkYzE3MjdjNDY2Li4xMjRkYzQzMTk5IDEwMDY0NDxicj4NCiZndDsgLS0t IGEvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vR2VuRmRzL0dlbkZkc0dsb2JhbFZhcmlhYmxlLnB5 PGJyPg0KJmd0OyArKysgYi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9HZW5GZHMvR2VuRmRzR2xv YmFsVmFyaWFibGUucHk8YnI+DQomZ3Q7IEBAIC00NjMsMTIgKzQ2MywxMiBAQCBjbGFzcyBHZW5G ZHNHbG9iYWxWYXJpYWJsZTo8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IEdlbkZkc0dsb2JhbFZhcmlh YmxlLlNlY0NtZExpc3QuYXBwZW5kKCc8YnI+DQomZ3Q7ICcuam9pbihDbWQpLnN0cmlwKCkpPGJy Pg0KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBlbHNlOjxicj4NCiZndDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgU2VjdGlvbkRhdGEgPSBhcnJheSgnQics IFswLCAwLCAwLCAwXSk8YnI+DQomZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgU2VjdGlvbkRhdGEuZnJvbXN0cmluZyhVaS5lbmNvZGUoInV0Zl8xNl9sZSIpKTxicj4NCiZn dDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBTZWN0aW9uRGF0YS5mcm9tYnl0 ZXMoVWkuZW5jb2RlKCJ1dGZfMTZfbGUiKSk8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFNlY3Rpb25EYXRhLmFwcGVuZCgwKTxicj4NCiZndDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgU2VjdGlvbkRhdGEu YXBwZW5kKDApPGJyPg0KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyBMZW4gPSBsZW4oU2VjdGlvbkRhdGEpPGJyPg0KJmd0OyA8YnI+DQomZ3Q7IEdlbkZk c0dsb2JhbFZhcmlhYmxlLlNlY3Rpb25IZWFkZXIucGFja19pbnRvKFNlY3Rpb25EYXRhLCAwLCBM ZW4gJmFtcDsgPGJyPg0KJmd0OyAweGZmLCAoTGVuICZndDsmZ3Q7IDgpICZhbXA7IDB4ZmYsIChM ZW4gJmd0OyZndDsgMTYpICZhbXA7IDB4ZmYsIDB4MTUpPGJyPg0KJmd0OyAtJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IFNhdmVGaWxlT25DaGFuZ2UoT3V0cHV0LCBTZWN0aW9uRGF0 YS50b3N0cmluZygpKTxicj4NCiZndDsgKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyBTYXZlRmlsZU9uQ2hhbmdlKE91dHB1dCwgU2VjdGlvbkRhdGEudG9ieXRlcygpKTxicj4NCiZn dDsgPGJyPg0KJmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyBlbGlmIFZlcjo8YnI+DQomZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IENtZCAr PSAoIi1uIiwgVmVyKTxicj4NCiZndDsgLS08YnI+DQomZ3Q7IDIuMjUuMTxicj4NCiZndDsgPGJy Pg0KJmd0OyA8YnI+DQomZ3Q7IDxicj4NCiZndDsgPGJyPg0KJmd0OyA8YnI+DQomZ3Q7IDxicj4N Cjxicj4NCjxicj4NCjxicj4NCjxicj4NCjxicj4NCjxicj4NCjxicj4NCjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPiZuYnNwOzwvcD4NCjwvZGl2Pg0KDQoNCg0KDQogDQoNCjwvYmxvY2txdW90 ZT48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj4= --b1_0DhbrSvbMKJ1duKLqA0JV097pJ2akHY5R1zEpEur94--