<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>185462</bug_id>
          
          <creation_ts>2018-05-08 20:26:05 -0700</creation_ts>
          <short_desc>[WPE] Build cleanly with GCC 8 and ICU 60</short_desc>
          <delta_ts>2018-08-24 06:14:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WPE WebKit</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>clopez</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1422125</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-08 20:26:05 -0700</bug_when>
    <thetext>WPE should build cleanly with GCC 8 and ICU 60

I haven&apos;t tested GTK yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422134</commentid>
    <comment_count>1</comment_count>
      <attachid>339927</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-08 21:28:57 -0700</bug_when>
    <thetext>Created attachment 339927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422135</commentid>
    <comment_count>2</comment_count>
      <attachid>339927</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-08 21:31:08 -0700</bug_when>
    <thetext>Comment on attachment 339927
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=339927&amp;action=review

&gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:633
&gt; -#define CREATE_PROTOTYPE_FOR_SIMPLE_TYPE(capitalName, lowerName, properName, instanceType, jsName, prototypeBase) \
&gt; -m_ ## lowerName ## Prototype.set(vm, this, capitalName##Prototype::create(vm, this, capitalName##Prototype::createStructure(vm, this, m_ ## prototypeBase ## Prototype.get()))); \
&gt; -m_ ## properName ## Structure.set(vm, this, instanceType::createStructure(vm, this, m_ ## lowerName ## Prototype.get()));
&gt; +#define CREATE_PROTOTYPE_FOR_SIMPLE_TYPE(capitalName, lowerName, properName, instanceType, jsName, prototypeBase) do { \
&gt; +        m_ ## lowerName ## Prototype.set(vm, this, capitalName##Prototype::create(vm, this, capitalName##Prototype::createStructure(vm, this, m_ ## prototypeBase ## Prototype.get()))); \
&gt; +        m_ ## properName ## Structure.set(vm, this, instanceType::createStructure(vm, this, m_ ## lowerName ## Prototype.get())); \
&gt; +    } while (0);

I can split the JSGlobalObject.cpp changes out into a separate patch, if desired, since this fixes a pretty serious bug. (CREATE_PROTOTYPE_FOR_SIMPLE_TYPE() and VISIT_SIMPLE_TYPE() are used in conditionals without braces, but there are multiple statements, so the second one gets executed unconditionally. Score one for GCC.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422137</commentid>
    <comment_count>3</comment_count>
      <attachid>339928</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-08 21:56:56 -0700</bug_when>
    <thetext>Created attachment 339928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422282</commentid>
    <comment_count>4</comment_count>
      <attachid>339928</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2018-05-09 09:08:28 -0700</bug_when>
    <thetext>Comment on attachment 339928
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=339928&amp;action=review

it looks ok, but i think those extra breaks added to make gcc8 happy should be changed by ASSERT_NOT_REACHED() instead.

&gt; Source/JavaScriptCore/b3/air/AirArg.h:892
&gt; +            break;

I think this one should be ASSERT_NOT_REACHED(); instead of break
Also.. why this change is not needed also in castToType() 20 lines below?

&gt; Source/JavaScriptCore/dfg/DFGDoubleFormatState.h:51
&gt; +        break;

ASSERT_NOT_REACHED();

&gt; Source/JavaScriptCore/dfg/DFGDoubleFormatState.h:61
&gt; +        break;

ASSERT_NOT_REACHED();

&gt; Source/JavaScriptCore/heap/MarkedBlockInlines.h:391
&gt; +                break;

ASSERT_NOT_REACHED();

&gt; Source/JavaScriptCore/heap/MarkedBlockInlines.h:402
&gt; +            break;

ASSERT_NOT_REACHED();

&gt; Source/JavaScriptCore/heap/MarkedBlockInlines.h:414
&gt; +                break;

ASSERT_NOT_REACHED();

&gt; Source/WebCore/css/CSSFontFace.cpp:608
&gt; +        break;

ASSERT_NOT_REACHED();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422284</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-09 09:12:01 -0700</bug_when>
    <thetext>Sure. It actually probably needs to be RELEASE_ASSERT_NOT_REACHED() for release builds. 

(In reply to Carlos Alberto Lopez Perez from comment #4)
&gt; &gt; Source/JavaScriptCore/b3/air/AirArg.h:892
&gt; &gt; +            break;
&gt; 
&gt; I think this one should be ASSERT_NOT_REACHED(); instead of break
&gt; Also.. why this change is not needed also in castToType() 20 lines below?

Weird. GCC works in mysterious ways. I&apos;ll add it there too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422293</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-09 09:20:11 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #5)
&gt; Sure. It actually probably needs to be RELEASE_ASSERT_NOT_REACHED() for
&gt; release builds. 

Confirmed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422294</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-05-09 09:21:23 -0700</bug_when>
    <thetext>Committed r231565: &lt;https://trac.webkit.org/changeset/231565&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453364</commentid>
    <comment_count>8</comment_count>
      <attachid>339928</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2018-08-23 18:46:29 -0700</bug_when>
    <thetext>Comment on attachment 339928
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=339928&amp;action=review

Noticed this issue while rebasing. GCallback shouldn&apos;t be in freetype files.

&gt; Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:51
&gt; +        reinterpret_cast&lt;cairo_destroy_func_t&gt;(reinterpret_cast&lt;GCallback&gt;(FT_Done_Face)));

This casts assumes USE(GLIB)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453434</commentid>
    <comment_count>9</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2018-08-24 06:14:15 -0700</bug_when>
    <thetext>(In reply to Don Olmstead from comment #8)
&gt; Comment on attachment 339928 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=339928&amp;action=review
&gt; 
&gt; Noticed this issue while rebasing. GCallback shouldn&apos;t be in freetype files.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:51
&gt; &gt; +        reinterpret_cast&lt;cairo_destroy_func_t&gt;(reinterpret_cast&lt;GCallback&gt;(FT_Done_Face)));
&gt; 
&gt; This casts assumes USE(GLIB)

Ouch. The double cast should not even be needed. Patch posted in bug #188919</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339927</attachid>
            <date>2018-05-08 21:28:57 -0700</date>
            <delta_ts>2018-05-08 21:56:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185462-20180508232856.patch</filename>
            <type>text/plain</type>
            <size>53362</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxNDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YjIxNzZmYTNiNTFkOWY4NjUxYjk3OGQyZmM3OGFlN2JiYTg4Njg3Li5iNDM0MTRmMTU3N2M1YzY2
MzM4ODhiMGM2NjkxYTY5YjgxODQxZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOC0wNS0wOCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGln
YWxpYS5jb20+CisKKyAgICAgICAgW1dQRV0gQnVpbGQgY2xlYW5seSB3aXRoIEdDQyA4IGFuZCBJ
Q1UgNjAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NTQ2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
QVBJL2dsaWIvSlNDQ2xhc3MuY3BwOiBTaWxlbmNlIG1hbnkgLVdjYXN0LWZ1bmN0aW9uLXR5cGUg
d2FybmluZ3MuCisgICAgICAgIChqc2NfY2xhc3NfYWRkX2NvbnN0cnVjdG9yKToKKyAgICAgICAg
KGpzY19jbGFzc19hZGRfbWV0aG9kKToKKyAgICAgICAgKiBBUEkvZ2xpYi9KU0NWYWx1ZS5jcHA6
IFNpbGVuY2UgbWFueSAtV2Nhc3QtZnVuY3Rpb24tdHlwZSB3YXJuaW5ncy4KKyAgICAgICAgKGpz
Y192YWx1ZV9vYmplY3RfZGVmaW5lX3Byb3BlcnR5X2FjY2Vzc29yKToKKyAgICAgICAgKGpzY192
YWx1ZV9uZXdfZnVuY3Rpb24pOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBCdWlsZCBCdWls
dGluTmFtZXMuY3BwIHdpdGggLWZuby12YXItdHJhY2tpbmctYXNzaWdubWVudHMuIFRoaXMgd2Fz
IGEKKyAgICAgICAgcHJvYmxlbSB3aXRoIEdDQyA3IHRvbywgYnV0IG1pZ2h0IGFzIHdlbGwgZml4
IGl0IG5vdy4KKyAgICAgICAgKiBhc3NlbWJsZXIvUHJvYmVDb250ZXh0Lmg6CisgICAgICAgIChK
U0M6OlByb2JlOjpDUFVTdGF0ZTo6Z3ByIGNvbnN0KTogU2lsZW5jZSBhIC1XY2xhc3MtbWVtYWNj
ZXNzIHdhcm5pbmcuCisgICAgICAgIChKU0M6OlByb2JlOjpDUFVTdGF0ZTo6c3ByIGNvbnN0KTog
RGl0dG8uIEFzc3VtZSBzdGQ6OnJlbW92ZV9jb25zdCBpcyBzYWZlIHRvIGNsb2JiZXIuCisgICAg
ICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzUmVw
cmVzZW50YWJsZUFzKTogU2lsZW5jZSAtV2ZhbGx0aHJvdWdoIHdhcm5pbmcuCisgICAgICAgICog
YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmNwcDoKKyAgICAgICAgKEpTQzo6QnVpbHRpbk5hbWVzOjpC
dWlsdGluTmFtZXMpOiBNb3ZlZCBmcm9tIEJ1aWx0aW5OYW1lcy5oIHNvIHdlIGNhbiB1c2UgYSBz
cGVjaWFsIGZsYWcuCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmg6CisgICAgICAg
IChKU0M6OkJ1aWx0aW5OYW1lczo6QnVpbHRpbk5hbWVzKTogTW92ZWQgdG8gQnVpbHRpbk5hbWVz
LmNwcC4KKyAgICAgICAgKiBkZmcvREZHRG91YmxlRm9ybWF0U3RhdGUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjptZXJnZURvdWJsZUZvcm1hdFN0YXRlcyk6IFNpbGVuY2UgLVdmYWxsdGhyb3VnaCB3
YXJuaW5ncy4KKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrSW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpNYXJrZWRCbG9jazo6SGFuZGxlOjpmaW5pc2hTd2VlcEtub3dpbmdIZWFwQ2VsbFR5cGUp
OiBTaWxlbmNlIC1XZmFsbHRocm91Z2ggd2FybmluZ3MuCisgICAgICAgICogcnVudGltZS9Db25m
aWdGaWxlLmNwcDoKKyAgICAgICAgKEpTQzo6Q29uZmlnRmlsZTo6Y2Fub25pY2FsaXplUGF0aHMp
OiBIZXJlIEdDQyBmb3VuZCBhIGdlbnVpbmUgbWlzdGFrZSwgc3RybmNhdCBpcyBjYWxsZWQKKyAg
ICAgICAgd2l0aCB0aGUgd3JvbmcgbGVuZ3RoIHBhcmFtZXRlciBhbmQgdGhlIHJlc3VsdCBpcyBu
b3QgbnVsbC10ZXJtaW5hdGVkLiBBbHNvLCBzaWxlbmNlIGEKKyAgICAgICAgLVdzdHJpbmdvcC10
cnVuY2F0aW9uIHdhcm5pbmcgYXMgd2UgaW50ZW50aW9uYWxseSB0cnVuY2F0ZSBmaWxlbmFtZXMg
dGhhdCBleGNlZWQgUEFUSF9NQVguCisgICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3Jt
YXQuY3BwOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OnBhcnRUeXBlU3RyaW5n
KTogQXZvaWQgYW4gSUNVIGRlcHJlY2F0aW9uIHdhcm5pbmcuCisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KTog
V2Ugd2VyZSB1bmNvbmRpdGlvbmFsbHkgcnVubmluZyBzb21lIEJpZ0ludCBjb2RlIGJ5IGFjY2lk
ZW50LgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbik6IFByb2Jh
Ymx5IGEgc2VyaW91cyBidWc/IEZpeGVkLgorCiAyMDE4LTA1LTA2ICBZdXN1a2UgU3V6dWtpICA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIFJlbW92ZSAidXNpbmcgbmFt
ZXNwYWNlIHN0ZDsiIGZyb20gSlNDLCBibWFsbG9jLCBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L0NoYW5nZUxvZyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwppbmRleCAx
NTM4MTlkZTE0MTQ1ODliNGY4YTQ4YWFmNjYzMTNiNGJkYmMyODFhLi43NDNiOWNiM2Y0YWY3ZjI0
NTNjMjhmMThjNTNjYTliZWUyZThmODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTgtMDUtMDggIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXUEVdIEJ1aWxkIGNsZWFubHkgd2l0aCBHQ0MgOCBhbmQgSUNVIDYwCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU0NjIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHhkZ21pbWUv
Q01ha2VMaXN0cy50eHQ6IFNpbGVuY2UgLVduby1jYXN0LWZ1bmN0aW9uLXR5cGUuIEknbSBub3Qg
ZmlnaHRpbmcgeGRnLW1pbWUuCisKIDIwMTgtMDMtMDUgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1z
dGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ01ha2VdIFNwbGl0IEpTQyBoZWFkZXIgY29weWlu
ZyBpbnRvIHB1YmxpYyBhbmQgcHJpdmF0ZSB0YXJnZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgxYTA2NTRlNDJlZGI3MDgw
ZTVjOGRlNWMzMzVmY2M1OTY4MWMyYzMuLmMxMzg5ODU4MTVjZjY0MjFiMTJkMWI4ZjI0MGJhNDM2
NWZiYmZjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMDUtMDggIE1pY2hhZWwgQ2F0YW56
YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdIEJ1aWxkIGNsZWFu
bHkgd2l0aCBHQ0MgOCBhbmQgSUNVIDYwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODU0NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHd0Zi9IYXNoVGFibGUuaDoKKyAgICAgICAgKFdURjo6SGFzaFRh
YmxlQnVja2V0SW5pdGlhbGl6ZXI8dHJ1ZT46OmluaXRpYWxpemUpOiBTaW5jZSAtV2NsYXNzLW1l
bWFjY2VzcyB3YXJuaW5nLiBUaGlzCisgICAgICAgIGlzIHByb2JhYmx5IHNhZmUgZW5vdWdoLCBz
aW5jZSBpdCdzIGZvciBhbiBlbXB0eSBidWNrZXQuCisgICAgICAgICogd3RmL1N0ZExpYkV4dHJh
cy5oOgorICAgICAgICAoV1RGOjpiaXR3aXNlX2Nhc3QpOiBTaWxlbmNlIC1XY2xhc3MtbWVtYWNj
ZXNzIGFzIHdlIHVzZSB0eXBlIHRyYWl0cyB0byBlbnN1cmUgc2FmZXR5IGhlcmUuCisgICAgICAg
ICogd3RmL1ZlY3Rvci5oOiBEaXR0bywgYWxsIHVzZXMgYXJlIHNhZmUuCisgICAgICAgICogd3Rm
L2dsaWIvV1RGR1R5cGUuaDogU2lsZW5jZSAtV2Nhc3QtZnVuY3Rpb24tdHlwZS4KKwogMjAxOC0w
NS0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBb
V1RGXSBFbWJlZCBkZWZhdWx0IGF0b21pYyBzdHJpbmcgdGFibGUgaW4gVGhyZWFkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggMGUxMDFiYTViYzMyOTdmMTMwNzY5YTQ4NmU1MDljZTQ4NWNmZmFmYi4uOWVkOTdjZGUw
YTFlN2VhYzhjOWY4ZTMzODUxYzM4ZjNiY2U2YzQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0
IEBACisyMDE4LTA1LTA4ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNv
bT4KKworICAgICAgICBbV1BFXSBCdWlsZCBjbGVhbmx5IHdpdGggR0NDIDggYW5kIElDVSA2MAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1NDYyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9y
bUdUSy5jbWFrZTogSW5jbHVkZSBkaXJlY3RvcmllcyBhcmUgaW4gdGhlIHdyb25nIHBsYWNlLgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6IFNpbGVuY2UgLVdjbGFz
cy1tZW1hY2Nlc3MgcHJvYmxlbXMgYW5kIGxlYXZlIHdhcm5pbmdzLgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6c3RhcnRPckVuZFRleHRNYXJrZXJEYXRhRm9yUmFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dE1hcmtlckRhdGFGb3JDaGFyYWN0ZXJP
ZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dE1hcmtlckRhdGFG
b3JWaXNpYmxlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4
dE1hcmtlckRhdGFGb3JGaXJzdFBvc2l0aW9uSW5UZXh0Q29udHJvbCk6CisgICAgICAgICogY3Nz
L0NTU0ZvbnRGYWNlLmNwcDogU2lsZW5jZSAtV2ZhbGx0aHJvdWdoCisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZTo6Zm9udExvYWRUaW1pbmcgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NT
ZWxlY3Rvckxpc3QuY3BwOiBTaWxlbmNlIC1XY2xhc3MtbWVtYWNjZXNzLCB0aGlzIG9uZSBpcyBp
bnRlbnRpb25hbC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yTGlzdDo6YWRvcHRTZWxl
Y3RvclZlY3Rvcik6CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwOiBTaWxlbmNl
IElDVSBkZXByZWNhdGlvbiB3YXJuaW5ncy4KKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguaDoK
KyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aDo6b3BlcmF0b3I9KTogTW9yZSAtV2NsYXNzLW1lbWFj
Y2VzcywgbG9va3MgYmVuaWduLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYWRpZW50OjpoYXNoIGNvbnN0KTogLVdjbGFzcy1t
ZW1hY2Nlc3MgYWdhaW4uIExlYXZlIGEgd2FybmluZy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwOiBTaWxlbmNlIElDVSBkZXBy
ZWNhdGlvbiB3YXJuaW5ncy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250
Q2Fpcm9IYXJmYnV6ek5HLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYXNjYWRlOjpmb250
Rm9yQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UgY29uc3QpOiBTaWxlbmNlIElDVSBkZXByZWNh
dGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhRnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRm
b3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSk6IFNpbGVuY2UgLVdjYXN0LWZ1bmN0aW9u
LXR5cGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERh
dGFGcmVlVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpjYW5SZW5kZXJDb21iaW5p
bmdDaGFyYWN0ZXJTZXF1ZW5jZSBjb25zdCk6IFNpbGVuY2UgSUNVIGRlcHJlY2F0aW9uLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Hc3RBbGxvY2F0b3JGYXN0TWFsbG9j
LmNwcDoKKyAgICAgICAgKGdzdEFsbG9jYXRvckZhc3RNYWxsb2NNZW1Vbm1hcCk6IEZpeCAtV2Nh
c3QtZnVuY3Rpb24tdHlwZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlVHJhY2tzKTogRml4IGJhZCBwcmludGYuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmVuYWJsZVRyYWNr
KTogQW5vdGhlciBiYWQgcHJpbnRmLgorICAgICAgICAoV2ViQ29yZTo6ZmluZEhMU1F1ZXVlKTog
Rml4IC1XY2FzdC1mdW5jdGlvbi10eXBlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwOgorICAgICAg
ICAod2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvckRlY3J5cHQpOiBGaXggYW5vdGhlciBiYWQg
cHJpbnRmLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5k
bGVJbXBsU291cC5jcHA6IFNpbGVuY2UgLVdjYXN0LWZ1bmN0aW9uLXR5cGUuCisgICAgICAgIChX
ZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpiZWdpbldhaXRpbmdGb3JTb2NrZXRXcml0
YWJpbGl0eSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwOiBTaWxl
bmNlIElDVSBkZXByZWNyYXRpb24uCisKIDIwMTgtMDUtMDcgIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVGV4dCB0cmFjayBjdWUgbG9nZ2luZyBzaG91
bGQgaW5jbHVkZSBjdWUgdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2YmM2MWI2MWI0ZmEwMjQ2NzM4ZGMxZmEy
ZWFlOWY4ZTIzZDZmNTMzLi5iMDQxODQzZGVmYWE5NzI1MjVkOWEwZWZmY2Y5NTI3YzVlZGI1YjZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA1LTA4ICBNaWNoYWVsIENhdGFuemFy
byAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXSBCdWlsZCBjbGVhbmx5
IHdpdGggR0NDIDggYW5kIElDVSA2MAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg1NDYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvZ2xpYi9HU29ja2V0TW9uaXRvci5jcHA6Cisg
ICAgICAgIChJUEM6OkdTb2NrZXRNb25pdG9yOjpzdGFydCk6IFNpbGVuY2UgLVdjYXN0LWZ1bmN0
aW9uLXR5cGUgd2FybmluZy4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2dsaWIvV2ViS2l0Q29udGV4
dE1lbnUuY3BwOgorICAgICAgICAod2Via2l0X2NvbnRleHRfbWVudV9uZXdfd2l0aF9pdGVtcyk6
IERpdHRvLgorCiAyMDE4LTA1LTA0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFNoaWZ0IHRvIGEgbG93ZXItbGV2ZWwgZnJhbWV3b3JrIGZvciBzaW1w
bGlmeWluZyBVUkxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIv
SlNDQ2xhc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NsYXNzLmNw
cAppbmRleCA2ODQzMzk4MWRkYjUxNjU3MDgzMGIyZTQwYzYyOTkxYWZkYjVkY2RjLi44NDFkMzdj
ZTZlZjExNDdiMjY0ZDFkYjM5M2E0ZWU2ZmVlNWIzY2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ2xhc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvZ2xpYi9KU0NDbGFzcy5jcHAKQEAgLTU2Myw3ICs1NjMsNyBAQCBKU0NWYWx1ZSog
anNjX2NsYXNzX2FkZF9jb25zdHJ1Y3RvcihKU0NDbGFzcyoganNjQ2xhc3MsIGNvbnN0IGNoYXIq
IG5hbWUsIEdDYWxsYgogICAgIH0KICAgICB2YV9lbmQoYXJncyk7CiAKLSAgICBHUmVmUHRyPEdD
bG9zdXJlPiBjbG9zdXJlID0gYWRvcHRHUmVmKGdfY2Nsb3N1cmVfbmV3KGNhbGxiYWNrLCB1c2Vy
RGF0YSwgcmVpbnRlcnByZXRfY2FzdDxHQ2xvc3VyZU5vdGlmeT4oZGVzdHJveU5vdGlmeSkpKTsK
KyAgICBHUmVmUHRyPEdDbG9zdXJlPiBjbG9zdXJlID0gYWRvcHRHUmVmKGdfY2Nsb3N1cmVfbmV3
KGNhbGxiYWNrLCB1c2VyRGF0YSwgcmVpbnRlcnByZXRfY2FzdDxHQ2xvc3VyZU5vdGlmeT4ocmVp
bnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRlc3Ryb3lOb3RpZnkpKSkpOwogICAgIEpTQzo6RXhl
Y1N0YXRlKiBleGVjID0gdG9KUyhqc2NDb250ZXh0R2V0SlNDb250ZXh0KHByaXYtPmNvbnRleHQp
KTsKICAgICBKU0M6OlZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIg
bG9ja2VyKHZtKTsKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIGpzY19jbGFzc19hZGRfbWV0aG9k
KEpTQ0NsYXNzKiBqc2NDbGFzcywgY29uc3QgY2hhciogbmFtZSwgR0NhbGxiYWNrIGNhbGxiYQog
ICAgIH0KICAgICB2YV9lbmQoYXJncyk7CiAKLSAgICBHUmVmUHRyPEdDbG9zdXJlPiBjbG9zdXJl
ID0gYWRvcHRHUmVmKGdfY2Nsb3N1cmVfbmV3KGNhbGxiYWNrLCB1c2VyRGF0YSwgcmVpbnRlcnBy
ZXRfY2FzdDxHQ2xvc3VyZU5vdGlmeT4oZGVzdHJveU5vdGlmeSkpKTsKKyAgICBHUmVmUHRyPEdD
bG9zdXJlPiBjbG9zdXJlID0gYWRvcHRHUmVmKGdfY2Nsb3N1cmVfbmV3KGNhbGxiYWNrLCB1c2Vy
RGF0YSwgcmVpbnRlcnByZXRfY2FzdDxHQ2xvc3VyZU5vdGlmeT4ocmVpbnRlcnByZXRfY2FzdDxH
Q2FsbGJhY2s+KGRlc3Ryb3lOb3RpZnkpKSkpOwogICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0g
dG9KUyhqc2NDb250ZXh0R2V0SlNDb250ZXh0KHByaXYtPmNvbnRleHQpKTsKICAgICBKU0M6OlZN
JiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWUuY3BwCmluZGV4IDc3M2YzZTI3
M2ZlOGZkM2Y2NTE4NDQ4MGM1NTZjMDhiYjYwMTI1OTMuLjY5M2JhMTA0ZTYxYTFjYTQ3ZTVmYzFk
ZTEzNjVmOTFjZTY3NDE4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
Z2xpYi9KU0NWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pT
Q1ZhbHVlLmNwcApAQCAtMTAwMywxNCArMTAwMywxNCBAQCB2b2lkIGpzY192YWx1ZV9vYmplY3Rf
ZGVmaW5lX3Byb3BlcnR5X2FjY2Vzc29yKEpTQ1ZhbHVlKiB2YWx1ZSwgY29uc3QgY2hhciogcHJv
cAogICAgIEpTQzo6Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBs
b2NrZXIodm0pOwogICAgIGlmIChnZXR0ZXIpIHsKLSAgICAgICAgR1JlZlB0cjxHQ2xvc3VyZT4g
Y2xvc3VyZSA9IGFkb3B0R1JlZihnX2NjbG9zdXJlX25ldyhnZXR0ZXIsIHVzZXJEYXRhLCByZWlu
dGVycHJldF9jYXN0PEdDbG9zdXJlTm90aWZ5PihkZXN0cm95Tm90aWZ5KSkpOworICAgICAgICBH
UmVmUHRyPEdDbG9zdXJlPiBjbG9zdXJlID0gYWRvcHRHUmVmKGdfY2Nsb3N1cmVfbmV3KGdldHRl
ciwgdXNlckRhdGEsIHJlaW50ZXJwcmV0X2Nhc3Q8R0Nsb3N1cmVOb3RpZnk+KHJlaW50ZXJwcmV0
X2Nhc3Q8R0NhbGxiYWNrPihkZXN0cm95Tm90aWZ5KSkpKTsKICAgICAgICAgYXV0byogZnVuY3Rp
b25PYmplY3QgPSB0b1JlZihKU0M6OkpTQ0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZSh2bSwgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBBU0NJSUxpdGVyYWwoImdldCIpLAogICAgICAgICAg
ICAgSlNDOjpKU0NDYWxsYmFja0Z1bmN0aW9uOjpUeXBlOjpNZXRob2QsIG51bGxwdHIsIFdURk1v
dmUoY2xvc3VyZSksIHByb3BlcnR5VHlwZSwgeyB9KSk7CiAgICAgICAgIEdSZWZQdHI8SlNDVmFs
dWU+IGZ1bmN0aW9uID0ganNjQ29udGV4dEdldE9yQ3JlYXRlVmFsdWUocHJpdi0+Y29udGV4dC5n
ZXQoKSwgZnVuY3Rpb25PYmplY3QpOwogICAgICAgICBqc2NfdmFsdWVfb2JqZWN0X3NldF9wcm9w
ZXJ0eShkZXNjcmlwdG9yLmdldCgpLCAiZ2V0IiwgZnVuY3Rpb24uZ2V0KCkpOwogICAgIH0KICAg
ICBpZiAoc2V0dGVyKSB7Ci0gICAgICAgIEdSZWZQdHI8R0Nsb3N1cmU+IGNsb3N1cmUgPSBhZG9w
dEdSZWYoZ19jY2xvc3VyZV9uZXcoc2V0dGVyLCB1c2VyRGF0YSwgZ2V0dGVyID8gbnVsbHB0ciA6
IHJlaW50ZXJwcmV0X2Nhc3Q8R0Nsb3N1cmVOb3RpZnk+KGRlc3Ryb3lOb3RpZnkpKSk7CisgICAg
ICAgIEdSZWZQdHI8R0Nsb3N1cmU+IGNsb3N1cmUgPSBhZG9wdEdSZWYoZ19jY2xvc3VyZV9uZXco
c2V0dGVyLCB1c2VyRGF0YSwgZ2V0dGVyID8gbnVsbHB0ciA6IHJlaW50ZXJwcmV0X2Nhc3Q8R0Ns
b3N1cmVOb3RpZnk+KHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNrPihkZXN0cm95Tm90aWZ5KSkp
KTsKICAgICAgICAgYXV0byogZnVuY3Rpb25PYmplY3QgPSB0b1JlZihKU0M6OkpTQ0NhbGxiYWNr
RnVuY3Rpb246OmNyZWF0ZSh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBBU0NJSUxp
dGVyYWwoInNldCIpLAogICAgICAgICAgICAgSlNDOjpKU0NDYWxsYmFja0Z1bmN0aW9uOjpUeXBl
OjpNZXRob2QsIG51bGxwdHIsIFdURk1vdmUoY2xvc3VyZSksIEdfVFlQRV9OT05FLCB7IHByb3Bl
cnR5VHlwZSB9KSk7CiAgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGZ1bmN0aW9uID0ganNjQ29u
dGV4dEdldE9yQ3JlYXRlVmFsdWUocHJpdi0+Y29udGV4dC5nZXQoKSwgZnVuY3Rpb25PYmplY3Qp
OwpAQCAtMTA1NCw3ICsxMDU0LDcgQEAgSlNDVmFsdWUqIGpzY192YWx1ZV9uZXdfZnVuY3Rpb24o
SlNDQ29udGV4dCogY29udGV4dCwgY29uc3QgY2hhciogbmFtZSwgR0NhbGxiYWMKICAgICB9CiAg
ICAgdmFfZW5kKGFyZ3MpOwogCi0gICAgR1JlZlB0cjxHQ2xvc3VyZT4gY2xvc3VyZSA9IGFkb3B0
R1JlZihnX2NjbG9zdXJlX25ldyhjYWxsYmFjaywgdXNlckRhdGEsIHJlaW50ZXJwcmV0X2Nhc3Q8
R0Nsb3N1cmVOb3RpZnk+KGRlc3Ryb3lOb3RpZnkpKSk7CisgICAgR1JlZlB0cjxHQ2xvc3VyZT4g
Y2xvc3VyZSA9IGFkb3B0R1JlZihnX2NjbG9zdXJlX25ldyhjYWxsYmFjaywgdXNlckRhdGEsIHJl
aW50ZXJwcmV0X2Nhc3Q8R0Nsb3N1cmVOb3RpZnk+KHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNr
PihkZXN0cm95Tm90aWZ5KSkpKTsKICAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IHRvSlMoanNj
Q29udGV4dEdldEpTQ29udGV4dChjb250ZXh0KSk7CiAgICAgSlNDOjpWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggNzA4MDk2MmE2NmQxZGRiYmEwZWE1M2ViNzdkNzZhMjVlOWM3
MWQ3NC4uNTg0MjY1ZmFkZWYxYmY4ODMwNDZkMGNiMTExYjNlOGYxYTIwNWZlYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTE4Miw2ICsxMTgyLDkgQEAgaWYgKENPTVBJ
TEVSX0lTX0dDQ19PUl9DTEFORykKICAgICAjIEF2b2lkIHVzaW5nIGZ1c2VkIG11bHRpcGx5LWFk
ZCBpbnN0cnVjdGlvbnMgc2luY2UgdGhpcyBjb3VsZCBnaXZlIGRpZmZlcmVudCByZXN1bHRzCiAg
ICAgIyBmb3IgZS5nLiBwYXJzZUludCBkZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtIGFuZCBjb21w
aWxhdGlvbiBmbGFncy4KICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoSmF2YVNjcmlw
dENvcmUgLWZmcC1jb250cmFjdD1vZmYpCisKKyAgICAjIEF2b2lkICJ2YXJpYWJsZSB0cmFja2lu
ZyBzaXplIGxpbWl0IGV4Y2VlZGVkIgorICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcyhi
dWlsdGlucy9CdWlsdGluTmFtZXMuY3BwIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAtZm5vLXZh
ci10cmFja2luZy1hc3NpZ25tZW50cykKIGVuZGlmICgpCiAKIFdFQktJVF9NQUtFX0ZPUldBUkRJ
TkdfSEVBREVSUyhKYXZhU2NyaXB0Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9Qcm9iZUNvbnRleHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvUHJvYmVDb250ZXh0LmgKaW5kZXggMzk0MWE4OWNjN2FlYTJkMjFlODlkMTUxNzlmYWIx
MzNmMzA1YjdjNC4uOTMyZWFlMjYyZDY4MGIzYTU5NDg5YjYxOTc4MzczODk0ZmQ2YWMxYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Qcm9iZUNvbnRleHQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1Byb2JlQ29udGV4dC5oCkBAIC04
NSw3ICs4NSw3IEBAIFQgQ1BVU3RhdGU6OmdwcihSZWdpc3RlcklEIGlkKSBjb25zdAogICAgIENQ
VVN0YXRlKiBjcHUgPSBjb25zdF9jYXN0PENQVVN0YXRlKj4odGhpcyk7CiAgICAgYXV0byYgZnJv
bSA9IGNwdS0+Z3ByKGlkKTsKICAgICB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDxUPjo6dHlw
ZSB0byB7IH07Ci0gICAgc3RkOjptZW1jcHkoJnRvLCAmZnJvbSwgc2l6ZW9mKHRvKSk7IC8vIFVz
ZSBzdGQ6Om1lbWNweSB0byBhdm9pZCBzdHJpY3QgYWxpYXNpbmcgaXNzdWVzLgorICAgIHN0ZDo6
bWVtY3B5KHN0YXRpY19jYXN0PHZvaWQqPigmdG8pLCAmZnJvbSwgc2l6ZW9mKHRvKSk7IC8vIFVz
ZSBzdGQ6Om1lbWNweSB0byBhdm9pZCBzdHJpY3QgYWxpYXNpbmcgaXNzdWVzLgogICAgIHJldHVy
biB0bzsKIH0KIApAQCAtOTUsNyArOTUsNyBAQCBUIENQVVN0YXRlOjpzcHIoU1BSZWdpc3RlcklE
IGlkKSBjb25zdAogICAgIENQVVN0YXRlKiBjcHUgPSBjb25zdF9jYXN0PENQVVN0YXRlKj4odGhp
cyk7CiAgICAgYXV0byYgZnJvbSA9IGNwdS0+c3ByKGlkKTsKICAgICB0eXBlbmFtZSBzdGQ6OnJl
bW92ZV9jb25zdDxUPjo6dHlwZSB0byB7IH07Ci0gICAgc3RkOjptZW1jcHkoJnRvLCAmZnJvbSwg
c2l6ZW9mKHRvKSk7IC8vIFVzZSBzdGQ6Om1lbWNweSB0byBhdm9pZCBzdHJpY3QgYWxpYXNpbmcg
aXNzdWVzLgorICAgIHN0ZDo6bWVtY3B5KHN0YXRpY19jYXN0PHZvaWQqPigmdG8pLCAmZnJvbSwg
c2l6ZW9mKHRvKSk7IC8vIFVzZSBzdGQ6Om1lbWNweSB0byBhdm9pZCBzdHJpY3QgYWxpYXNpbmcg
aXNzdWVzLgogICAgIHJldHVybiB0bzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
QXJnLmgKaW5kZXggN2EzOGQxMDhkM2Y0ZWI2MmRlOTljM2IyNWNkMWFiYmI3ZDA3MGE2YS4uNzM4
ZGMzMmJkOTg4MjZlMDA1NjgxN2M2YWY5NWY3ZGUyNDVkODVkNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckFyZy5oCkBAIC04ODksNiArODg5LDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgY2FzZSBXaWR0aDY0OgogICAgICAgICAgICAgICAgIHJldHVybiBCMzo6aXNSZXByZXNlbnRh
YmxlQXM8aW50NjRfdD4odmFsdWUpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgVW5zaWduZWQ6CiAgICAgICAgICAgICBzd2l0Y2ggKHdpZHRoKSB7CiAg
ICAgICAgICAgICBjYXNlIFdpZHRoODoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9idWlsdGlucy9CdWlsdGluTmFtZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5OYW1lcy5jcHAKaW5kZXggZjUyZTliOGJjZjNlZjY4MGIwYjE5NzljMDRkMzg0
NzE4YTUyZTZlOS4uNDVkZTgyZTdjYjU4YTI4M2IyMGZjYWU1OTgyYmJiNWMwNGRhOTE3NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5jcHAKQEAg
LTQ3LDYgKzQ3LDI3IEBAIFN5bWJvbEltcGw6OlN0YXRpY1N5bWJvbEltcGwgZG9sbGFyVk1Qcml2
YXRlTmFtZSB7ICJQcml2YXRlU3ltYm9sLiR2bSIsIFN5bWJvbEltCiBTeW1ib2xJbXBsOjpTdGF0
aWNTeW1ib2xJbXBsIHBvbHlQcm90b1ByaXZhdGVOYW1lIHsgIlByaXZhdGVTeW1ib2wuUG9seVBy
b3RvIiwgU3ltYm9sSW1wbDo6c19mbGFnSXNQcml2YXRlIH07CiAKIH0gLy8gbmFtZXNwYWNlIFN5
bWJvbHMKKworLy8gV2UgdHJlYXQgdGhlIGRvbGxhclZNIG5hbWUgYXMgYSBzcGVjaWFsIGNhc2Ug
YmVsb3cgZm9yICR2bSAoYmVjYXVzZSBDb21tb25JZGVudGlmaWVycyBkb2VzIG5vdAorLy8geWV0
IHN1cHBvcnQgdGhlICQgY2hhcmFjdGVyKS4KK0J1aWx0aW5OYW1lczo6QnVpbHRpbk5hbWVzKFZN
KiB2bSwgQ29tbW9uSWRlbnRpZmllcnMqIGNvbW1vbklkZW50aWZpZXJzKQorICAgIDogbV9lbXB0
eUlkZW50aWZpZXIoY29tbW9uSWRlbnRpZmllcnMtPmVtcHR5SWRlbnRpZmllcikKKyAgICBKU0Nf
Rk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9CVUlMVElOX05BTUVTX0lO
X0pTQykKKyAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9O
QU1FKElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FU19JTl9KU0MpCisgICAgSlNDX0NPTU1PTl9QUklW
QVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElaRV9CVUlMVElO
X1NZTUJPTFMpCisgICAgLCBtX2RvbGxhclZNTmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAiJHZtIikpCisgICAgLCBtX2RvbGxhclZNUHJpdmF0ZU5hbWUoSWRlbnRpZmllcjo6ZnJvbVVp
ZCh2bSwgJnN0YXRpY19jYXN0PFN5bWJvbEltcGwmPihTeW1ib2xzOjpkb2xsYXJWTVByaXZhdGVO
YW1lKSkpCisgICAgLCBtX3BvbHlQcm90b1ByaXZhdGVOYW1lKElkZW50aWZpZXI6OmZyb21VaWQo
dm0sICZzdGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oU3ltYm9sczo6cG9seVByb3RvUHJpdmF0ZU5h
bWUpKSkKK3sKKyAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTEla
RV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKKyAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJ
RklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5U
UlkpCisgICAgSlNDX0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKElOSVRJQUxJWkVfUFVC
TElDX1RPX1BSSVZBVEVfRU5UUlkpCisgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJT
X0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQor
ICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9M
KElOSVRJQUxJWkVfU1lNQk9MX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQorICAgIG1fcHJpdmF0
ZVRvUHVibGljTWFwLmFkZChtX2RvbGxhclZNUHJpdmF0ZU5hbWUuaW1wbCgpLCAmbV9kb2xsYXJW
TU5hbWUpOworICAgIG1fcHVibGljVG9Qcml2YXRlTWFwLmFkZChtX2RvbGxhclZNTmFtZS5pbXBs
KCksICZtX2RvbGxhclZNUHJpdmF0ZU5hbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAog
I2lmIENPTVBJTEVSKE1TVkMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVp
bHRpbk5hbWVzLmgKaW5kZXggZDRmMzY0YWIzNjA4YWIyZjhkOWJjM2ExZGIxMTEwMDQ3NjA5OThm
Ny4uZjY2YjhjYjUxZWI0MDJkODczNmZkN2RkMGQyZDBlN2EyOTJmNDUxMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtMjE5LDI2ICsyMTks
NyBAQCBjbGFzcyBCdWlsdGluTmFtZXMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEJ1aWx0
aW5OYW1lcyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIAogcHVibGljOgotICAgIC8v
IFdlIHRyZWF0IHRoZSBkb2xsYXJWTSBuYW1lIGFzIGEgc3BlY2lhbCBjYXNlIGJlbG93IGZvciAk
dm0gKGJlY2F1c2UgQ29tbW9uSWRlbnRpZmllcnMgZG9lcyBub3QKLSAgICAvLyB5ZXQgc3VwcG9y
dCB0aGUgJCBjaGFyYWN0ZXIpLgotCi0gICAgQnVpbHRpbk5hbWVzKFZNKiB2bSwgQ29tbW9uSWRl
bnRpZmllcnMqIGNvbW1vbklkZW50aWZpZXJzKQotICAgICAgICA6IG1fZW1wdHlJZGVudGlmaWVy
KGNvbW1vbklkZW50aWZpZXJzLT5lbXB0eUlkZW50aWZpZXIpCi0gICAgICAgIEpTQ19GT1JFQUNI
X0JVSUxUSU5fRlVOQ1RJT05fTkFNRShJTklUSUFMSVpFX0JVSUxUSU5fTkFNRVNfSU5fSlNDKQot
ICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1F
KElOSVRJQUxJWkVfQlVJTFRJTl9OQU1FU19JTl9KU0MpCi0gICAgICAgIEpTQ19DT01NT05fUFJJ
VkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJWkVfQlVJTFRJ
Tl9TWU1CT0xTKQotICAgICAgICAsIG1fZG9sbGFyVk1OYW1lKElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sICIkdm0iKSkKLSAgICAgICAgLCBtX2RvbGxhclZNUHJpdmF0ZU5hbWUoSWRlbnRpZmll
cjo6ZnJvbVVpZCh2bSwgJnN0YXRpY19jYXN0PFN5bWJvbEltcGwmPihTeW1ib2xzOjpkb2xsYXJW
TVByaXZhdGVOYW1lKSkpCi0gICAgICAgICwgbV9wb2x5UHJvdG9Qcml2YXRlTmFtZShJZGVudGlm
aWVyOjpmcm9tVWlkKHZtLCAmc3RhdGljX2Nhc3Q8U3ltYm9sSW1wbCY+KFN5bWJvbHM6OnBvbHlQ
cm90b1ByaXZhdGVOYW1lKSkpCi0gICAgewotICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZV
TkNUSU9OX05BTUUoSU5JVElBTElaRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKLSAgICAgICAg
SlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFM
SVpFX1BSSVZBVEVfVE9fUFVCTElDX0VOVFJZKQotICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElO
X0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWSkKLSAgICAg
ICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklU
SUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZB
VEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChJTklUSUFMSVpFX1NZTUJPTF9Q
VUJMSUNfVE9fUFJJVkFURV9FTlRSWSkKLSAgICAgICAgbV9wcml2YXRlVG9QdWJsaWNNYXAuYWRk
KG1fZG9sbGFyVk1Qcml2YXRlTmFtZS5pbXBsKCksICZtX2RvbGxhclZNTmFtZSk7Ci0gICAgICAg
IG1fcHVibGljVG9Qcml2YXRlTWFwLmFkZChtX2RvbGxhclZNTmFtZS5pbXBsKCksICZtX2RvbGxh
clZNUHJpdmF0ZU5hbWUpOwotICAgIH0KKyAgICBCdWlsdGluTmFtZXMoVk0qLCBDb21tb25JZGVu
dGlmaWVycyopOwogCiAgICAgY29uc3QgSWRlbnRpZmllciogbG9va1VwUHJpdmF0ZU5hbWUoY29u
c3QgSWRlbnRpZmllciYpIGNvbnN0OwogICAgIGNvbnN0IElkZW50aWZpZXImIGxvb2tVcFB1Ymxp
Y05hbWUoY29uc3QgSWRlbnRpZmllciYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEb3VibGVGb3JtYXRTdGF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb3VibGVGb3JtYXRTdGF0ZS5oCmluZGV4IGJlOTM1YTBhODMxMjQ2ZWMxZDcx
NjMwMTg3YjQ2YTUxY2E0ZjMzYzguLjBiZmQ3M2I3Y2U4MWRmZTU1ZDI3N2E2MGQ2NjUxNzljMzBl
NmEzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG91YmxlRm9y
bWF0U3RhdGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvdWJsZUZvcm1h
dFN0YXRlLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgaW5saW5lIERvdWJsZUZvcm1hdFN0YXRlIG1lcmdl
RG91YmxlRm9ybWF0U3RhdGVzKERvdWJsZUZvcm1hdFN0YXRlIGEsIERvdWJsZUZvcm0KICAgICAg
ICAgY2FzZSBDYW50VXNlRG91YmxlRm9ybWF0OgogICAgICAgICAgICAgcmV0dXJuIENhbnRVc2VE
b3VibGVGb3JtYXQ7CiAgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb3RVc2lu
Z0RvdWJsZUZvcm1hdDoKICAgICAgICAgc3dpdGNoIChiKSB7CiAgICAgICAgIGNhc2UgRW1wdHlE
b3VibGVGb3JtYXRTdGF0ZToKQEAgLTU3LDYgKzU4LDcgQEAgaW5saW5lIERvdWJsZUZvcm1hdFN0
YXRlIG1lcmdlRG91YmxlRm9ybWF0U3RhdGVzKERvdWJsZUZvcm1hdFN0YXRlIGEsIERvdWJsZUZv
cm0KICAgICAgICAgY2FzZSBDYW50VXNlRG91YmxlRm9ybWF0OgogICAgICAgICAgICAgcmV0dXJu
IENhbnRVc2VEb3VibGVGb3JtYXQ7CiAgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDYW50VXNlRG91YmxlRm9ybWF0OgogICAgICAgICByZXR1cm4gQ2FudFVzZURvdWJsZUZvcm1h
dDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRC
bG9ja0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrSW5s
aW5lcy5oCmluZGV4IGUzMzBkYTJiY2QxOTdjNjUxMzIzMDZjODAyNDczOWQyZjMyYzYyZDMuLjgy
OTZhODcxOTMzNDg3YzU4ZGEwZjdmNzA2NzNmYzQ3OWVjMDcxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrSW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrSW5saW5lcy5oCkBAIC0zODgsNiArMzg4LDcg
QEAgdm9pZCBNYXJrZWRCbG9jazo6SGFuZGxlOjpmaW5pc2hTd2VlcEtub3dpbmdIZWFwQ2VsbFR5
cGUoRnJlZUxpc3QqIGZyZWVMaXN0LCBjb24KICAgICAgICAgICAgICAgICAgICAgc3BlY2lhbGl6
ZWRTd2VlcDx0cnVlLCBJc0VtcHR5LCBTd2VlcE9ubHksIEJsb2NrSGFzRGVzdHJ1Y3RvcnMsIERv
bnRTY3JpYmJsZSwgRG9lc05vdEhhdmVOZXdseUFsbG9jYXRlZCwgTWFya3NTdGFsZT4oZnJlZUxp
c3QsIElzRW1wdHksIFN3ZWVwT25seSwgQmxvY2tIYXNEZXN0cnVjdG9ycywgRG9udFNjcmliYmxl
LCBEb2VzTm90SGF2ZU5ld2x5QWxsb2NhdGVkLCBNYXJrc1N0YWxlLCBkZXN0cm95RnVuYyk7CiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU3dlZXBUb0ZyZWVMaXN0OgogICAg
ICAgICAgICAgICAgIHN3aXRjaCAobWFya3NNb2RlKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBN
YXJrc05vdFN0YWxlOgpAQCAtMzk4LDYgKzM5OSw3IEBAIHZvaWQgTWFya2VkQmxvY2s6OkhhbmRs
ZTo6ZmluaXNoU3dlZXBLbm93aW5nSGVhcENlbGxUeXBlKEZyZWVMaXN0KiBmcmVlTGlzdCwgY29u
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vdEVtcHR5Ogog
ICAgICAgICAgICAgc3dpdGNoIChzd2VlcE1vZGUpIHsKICAgICAgICAgICAgIGNhc2UgU3dlZXBP
bmx5OgpAQCAtNDA5LDYgKzQxMSw3IEBAIHZvaWQgTWFya2VkQmxvY2s6OkhhbmRsZTo6ZmluaXNo
U3dlZXBLbm93aW5nSGVhcENlbGxUeXBlKEZyZWVMaXN0KiBmcmVlTGlzdCwgY29uCiAgICAgICAg
ICAgICAgICAgICAgIHNwZWNpYWxpemVkU3dlZXA8dHJ1ZSwgTm90RW1wdHksIFN3ZWVwT25seSwg
QmxvY2tIYXNEZXN0cnVjdG9ycywgRG9udFNjcmliYmxlLCBEb2VzTm90SGF2ZU5ld2x5QWxsb2Nh
dGVkLCBNYXJrc1N0YWxlPihmcmVlTGlzdCwgTm90RW1wdHksIFN3ZWVwT25seSwgQmxvY2tIYXNE
ZXN0cnVjdG9ycywgRG9udFNjcmliYmxlLCBEb2VzTm90SGF2ZU5ld2x5QWxsb2NhdGVkLCBNYXJr
c1N0YWxlLCBkZXN0cm95RnVuYyk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2UgU3dlZXBUb0ZyZWVMaXN0OgogICAgICAgICAgICAgICAgIHN3aXRjaCAobWFya3NNb2RlKSB7
CiAgICAgICAgICAgICAgICAgY2FzZSBNYXJrc05vdFN0YWxlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcAppbmRleCBiYjg3NjY2YzQ4NTFiYTcwYjBiNTJj
ZjE0OGQ4NzBjNzJlNjgzZjQ3Li4zMmE0NWE2MDI4YTYxNjBhYjc5YmEyMzEzODRmN2ExZDc5MDIy
MWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcApA
QCAtNDg4LDggKzQ4OCwxNSBAQCB2b2lkIENvbmZpZ0ZpbGU6OmNhbm9uaWNhbGl6ZVBhdGhzKCkK
ICAgICAgICAgICAgIGJvb2wgc2hvdWxkQWRkUGF0aFNlcGFyYXRvciA9IGZpbGVuYW1lQnVmZmVy
W3BhdGhuYW1lTGVuZ3RoIC0gMV0gIT0gJy8nOwogICAgICAgICAgICAgaWYgKHNpemVvZihmaWxl
bmFtZUJ1ZmZlcikgLSAxICA+PSBwYXRobmFtZUxlbmd0aCArIHNob3VsZEFkZFBhdGhTZXBhcmF0
b3IpIHsKICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQWRkUGF0aFNlcGFyYXRvcikKLSAgICAg
ICAgICAgICAgICAgICAgc3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgIi8iLCAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgc3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgIi8iLCAyKTsgLy8gUm9vbSBmb3Ig
Jy8nIHBsdXMgTlVMCisjaWYgQ09NUElMRVIoR0NDKSAmJiBHQ0NfVkVSU0lPTl9BVF9MRUFTVCg4
LCAwLCAwKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1Xc3RyaW5nb3AtdHJ1bmNhdGlvbiIKKyNlbmRpZgogICAgICAgICAgICAg
ICAgIHN0cm5jYXQoZmlsZW5hbWVCdWZmZXIsIG1fZmlsZW5hbWUsIHNpemVvZihmaWxlbmFtZUJ1
ZmZlcikgLSBzdHJsZW4oZmlsZW5hbWVCdWZmZXIpIC0gMSk7CisjaWYgQ09NUElMRVIoR0NDKSAm
JiBHQ0NfVkVSU0lPTl9BVF9MRUFTVCg4LCAwLCAwKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
b3AKKyNlbmRpZgogICAgICAgICAgICAgICAgIHN0cm5jcHkobV9maWxlbmFtZSwgZmlsZW5hbWVC
dWZmZXIsIHNfbWF4UGF0aExlbmd0aCk7CiAgICAgICAgICAgICAgICAgbV9maWxlbmFtZVtzX21h
eFBhdGhMZW5ndGhdID0gJ1wwJzsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IGM5MjBhY2Y0
N2U4MmM5NTJlOGZiNmUzMDdkOWIwZmUzZjVhODJiZGYuLjY1ZWVjMTBhM2I1MzI0YTAyODgwYjUx
YzljNTIzZjJlNDJkMTI0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcApAQCAtOTY0LDcgKzk2NCw3IEBAIGNvbnN0IGNo
YXIqIEludGxEYXRlVGltZUZvcm1hdDo6cGFydFR5cGVTdHJpbmcoVURhdGVGb3JtYXRGaWVsZCBm
aWVsZCkKICAgICBjYXNlIFVEQVRfU1RBTkRBTE9ORV9RVUFSVEVSX0ZJRUxEOgogICAgIGNhc2Ug
VURBVF9SRUxBVEVEX1lFQVJfRklFTEQ6CiAgICAgY2FzZSBVREFUX1RJTUVfU0VQQVJBVE9SX0ZJ
RUxEOgotI2lmIFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNIDwgNTgKKyNpZiBVX0lDVV9WRVJTSU9O
X01BSk9SX05VTSA8IDU4IHx8ICFkZWZpbmVkKFVfSElERV9ERVBSRUNBVEVEX0FQSSkKICAgICBj
YXNlIFVEQVRfRklFTERfQ09VTlQ6CiAjZW5kaWYKICAgICAgICAgcmV0dXJuICJsaXRlcmFsIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApp
bmRleCBlMTM5OGUyZjc0ZTgyNWM0YjIyMWFjMGRjNWI0YWJlZTkxOTdmYWZlLi42OWI1MzdlYjVk
NmU5MjFlNzJkNDY4NTBlMTk2YzBhYTJkZjk0NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC02MjcsOSArNjI3LDEwIEBAIHZv
aWQgSlNHbG9iYWxPYmplY3Q6OmluaXQoVk0mIHZtKQogICAgIG1fZ2VuZXJhdG9yUHJvdG90eXBl
LnNldCh2bSwgdGhpcywgR2VuZXJhdG9yUHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEdlbmVy
YXRvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2l0ZXJhdG9yUHJvdG90
eXBlLmdldCgpKSkpOwogICAgIG1fYXN5bmNHZW5lcmF0b3JQcm90b3R5cGUuc2V0KHZtLCB0aGlz
LCBBc3luY0dlbmVyYXRvclByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBBc3luY0dlbmVyYXRv
clByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2FzeW5jSXRlcmF0b3JQcm90
b3R5cGUuZ2V0KCkpKSk7CiAKLSNkZWZpbmUgQ1JFQVRFX1BST1RPVFlQRV9GT1JfU0lNUExFX1RZ
UEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05h
bWUsIHByb3RvdHlwZUJhc2UpIFwKLW1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGUuc2V0KHZt
LCB0aGlzLCBjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIGNhcGl0YWxO
YW1lIyNQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV8gIyMgcHJvdG90eXBl
QmFzZSAjIyBQcm90b3R5cGUuZ2V0KCkpKSk7IFwKLW1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0
dXJlLnNldCh2bSwgdGhpcywgaW5zdGFuY2VUeXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMs
IG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGUuZ2V0KCkpKTsKKyNkZWZpbmUgQ1JFQVRFX1BS
T1RPVFlQRV9GT1JfU0lNUExFX1RZUEUoY2FwaXRhbE5hbWUsIGxvd2VyTmFtZSwgcHJvcGVyTmFt
ZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJhc2UpIGRvIHsgXAorICAgICAgICBt
XyAjIyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLnNldCh2bSwgdGhpcywgY2FwaXRhbE5hbWUjI1By
b3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBjYXBpdGFsTmFtZSMjUHJvdG90eXBlOjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIHRoaXMsIG1fICMjIHByb3RvdHlwZUJhc2UgIyMgUHJvdG90eXBlLmdldCgp
KSkpOyBcCisgICAgICAgIG1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlLnNldCh2bSwgdGhp
cywgaW5zdGFuY2VUeXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fICMjIGxvd2VyTmFt
ZSAjIyBQcm90b3R5cGUuZ2V0KCkpKTsgXAorICAgIH0gd2hpbGUgKDApOwogICAgIAogICAgIEZP
Ul9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoQ1JFQVRFX1BST1RPVFlQRV9GT1JfU0lNUExFX1RZ
UEUpCiAKQEAgLTE0MzcsOSArMTQzOCwxMCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojp2aXNpdENo
aWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5h
cHBlbmQodGhpc09iamVjdC0+bV9zaGFyZWRBcnJheUJ1ZmZlclN0cnVjdHVyZSk7CiAjZW5kaWYK
IAotI2RlZmluZSBWSVNJVF9TSU1QTEVfVFlQRShDYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9w
ZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAotICAgIHZpc2l0
b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGUpOyBcCi0g
ICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1
cmUpOyBcCisjZGVmaW5lIFZJU0lUX1NJTVBMRV9UWVBFKENhcGl0YWxOYW1lLCBsb3dlck5hbWUs
IHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBkbyB7IFwK
KyAgICAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV8gIyMgbG93ZXJOYW1lICMjIFBy
b3RvdHlwZSk7IFwKKyAgICAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV8gIyMgcHJv
cGVyTmFtZSAjIyBTdHJ1Y3R1cmUpOyBcCisgICAgfSB3aGlsZSAoMCk7CiAKICAgICBGT1JfRUFD
SF9TSU1QTEVfQlVJTFRJTl9UWVBFKFZJU0lUX1NJTVBMRV9UWVBFKQogICAgIGlmIChVTkxJS0VM
WShPcHRpb25zOjp1c2VCaWdJbnQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS94
ZGdtaW1lL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkveGRnbWltZS9DTWFrZUxp
c3RzLnR4dAppbmRleCA3M2ZlZTk0OGU1NzYwYjdmMWYxMDc0Mjk5MDk3MzcxNDljMTg1ZGEzLi4y
NjA1ZTFjZDkwYzNhMDk3ZWUyYTcxYjU2ZTAxMjFkZTZmYTRmY2RjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS94ZGdtaW1lL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L3hkZ21pbWUvQ01ha2VMaXN0cy50eHQKQEAgLTIxLDYgKzIxLDcgQEAgYWRkX2RlZmluaXRp
b25zKC1EWERHX1BSRUZJWD1fd2tfeGRnKQogYWRkX2xpYnJhcnkoeGRnbWltZSBTVEFUSUMgJHtY
REdNSU1FX1NPVVJDRVN9KQogCiBpZiAoQ09NUElMRVJfSVNfR0NDX09SX0NMQU5HKQotICAgIFdF
QktJVF9BRERfVEFSR0VUX0NfRkxBR1MoeGRnbWltZSAtV25vLXNpZ24tY29tcGFyZQorICAgIFdF
QktJVF9BRERfVEFSR0VUX0NfRkxBR1MoeGRnbWltZSAtV25vLWNhc3QtZnVuY3Rpb24tdHlwZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV25vLXNpZ24tY29tcGFyZQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV25vLXVudXNlZC1wYXJhbWV0
ZXIpCiBlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmggYi9T
b3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAppbmRleCAwMjJlMjgxY2M5M2E1Y2VhMzlkM2QwNzcw
NDczMDQzMGU5NWFkODJmLi5lNmE5NTBmZDQwMDkzNmNjNGJmZjNkODY0YTI0Nzg1MmVhZGIzNWRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9IYXNoVGFibGUuaApAQCAtODQ3LDcgKzg0Nyw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAg
ICAgICAgICAgLy8gVGhpcyBpbml0aWFsaXplcyB0aGUgYnVja2V0IHdpdGhvdXQgY29weWluZyB0
aGUgZW1wdHkgdmFsdWUuCiAgICAgICAgICAgICAvLyBUaGF0IG1ha2VzIGl0IHBvc3NpYmxlIHRv
IHVzZSB0aGlzIHdpdGggdHlwZXMgdGhhdCBkb24ndCBzdXBwb3J0IGNvcHlpbmcuCiAgICAgICAg
ICAgICAvLyBUaGUgbWVtc2V0IHRvIDAgbG9va3MgbGlrZSBhIHNsb3cgb3BlcmF0aW9uIGJ1dCBp
cyBvcHRpbWl6ZWQgYnkgdGhlIGNvbXBpbGVycy4KLSAgICAgICAgICAgIG1lbXNldChzdGQ6OmFk
ZHJlc3NvZihidWNrZXQpLCAwLCBzaXplb2YoYnVja2V0KSk7CisgICAgICAgICAgICBtZW1zZXQo
c3RhdGljX2Nhc3Q8dm9pZCo+KHN0ZDo6YWRkcmVzc29mKGJ1Y2tldCkpLCAwLCBzaXplb2YoYnVj
a2V0KSk7CiAgICAgICAgIH0KICAgICB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvU3RkTGliRXh0cmFzLmggYi9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAppbmRleCA0
OWYyZTI5ODhkOTI2YmM1NjU5NWViYzlhMGNlOTI3MTg0MDg3YWJlLi43NjVmNDMyODFkZjA5MTU3
MjFkOGY0YWE0Zjk1YWRiN2IxMmZlNTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TdGRM
aWJFeHRyYXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaApAQCAtMTQyLDcg
KzE0Miw3IEBAIGlubGluZSBUb1R5cGUgYml0d2lzZV9jYXN0KEZyb21UeXBlIGZyb20pCiAgICAg
c3RhdGljX2Fzc2VydChfX2lzX3RyaXZpYWxseV9jb3B5YWJsZShGcm9tVHlwZSksICJiaXR3aXNl
X2Nhc3Qgb2Ygbm9uLXRyaXZpYWxseS1jb3B5YWJsZSB0eXBlISIpOwogI2VuZGlmCiAgICAgdHlw
ZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8VG9UeXBlPjo6dHlwZSB0byB7IH07Ci0gICAgc3RkOjpt
ZW1jcHkoJnRvLCAmZnJvbSwgc2l6ZW9mKHRvKSk7CisgICAgc3RkOjptZW1jcHkoc3RhdGljX2Nh
c3Q8dm9pZCo+KCZ0byksIHN0YXRpY19jYXN0PHZvaWQqPigmZnJvbSksIHNpemVvZih0bykpOwog
ICAgIHJldHVybiB0bzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVmVjdG9yLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRleCBjZmNiNmJiYWM1YWIzNGM5Y2M4YWJjZGEw
MjNlZjFjMWI5YTU1OWQ4Li44MGVlMjBiMzY4ZmFjMGNkNDdmMjMxNjMxNzUyZTA0MTJmNmI1YWZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9WZWN0b3IuaApAQCAtOTYsNyArOTYsNyBAQCBzdHJ1Y3QgVmVjdG9ySW5pdGlhbGl6ZXI8dHJ1
ZSwgdHJ1ZSwgVD4KIHsKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplSWZOb25QT0QoVCogYmVn
aW4sIFQqIGVuZCkKICAgICB7Ci0gICAgICAgIG1lbXNldChiZWdpbiwgMCwgcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4oZW5kKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGJlZ2luKSk7CisgICAg
ICAgIG1lbXNldChzdGF0aWNfY2FzdDx2b2lkKj4oYmVnaW4pLCAwLCByZWludGVycHJldF9jYXN0
PGNoYXIqPihlbmQpIC0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oYmVnaW4pKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKFQqIGJlZ2luLCBUKiBlbmQpCkBAIC0xNDEsMTEg
KzE0MSwxMSBAQCBzdHJ1Y3QgVmVjdG9yTW92ZXI8dHJ1ZSwgVD4KIHsKICAgICBzdGF0aWMgdm9p
ZCBtb3ZlKGNvbnN0IFQqIHNyYywgY29uc3QgVCogc3JjRW5kLCBUKiBkc3QpIAogICAgIHsKLSAg
ICAgICAgbWVtY3B5KGRzdCwgc3JjLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcmNF
bmQpIC0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oc3JjKSk7CisgICAgICAgIG1lbWNw
eShzdGF0aWNfY2FzdDx2b2lkKj4oZHN0KSwgc3RhdGljX2Nhc3Q8dm9pZCo+KGNvbnN0X2Nhc3Q8
VCo+KHNyYykpLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcmNFbmQpIC0gcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oc3JjKSk7CiAgICAgfQogICAgIHN0YXRpYyB2b2lkIG1v
dmVPdmVybGFwcGluZyhjb25zdCBUKiBzcmMsIGNvbnN0IFQqIHNyY0VuZCwgVCogZHN0KSAKICAg
ICB7Ci0gICAgICAgIG1lbW1vdmUoZHN0LCBzcmMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hh
cio+KHNyY0VuZCkgLSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcmMpKTsKKyAgICAg
ICAgbWVtbW92ZShzdGF0aWNfY2FzdDx2b2lkKj4oZHN0KSwgc3RhdGljX2Nhc3Q8dm9pZCo+KGNv
bnN0X2Nhc3Q8VCo+KHNyYykpLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcmNFbmQp
IC0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oc3JjKSk7CiAgICAgfQogfTsKIApAQCAt
MTcxLDcgKzE3MSw3IEBAIHN0cnVjdCBWZWN0b3JDb3BpZXI8dHJ1ZSwgVD4KIHsKICAgICBzdGF0
aWMgdm9pZCB1bmluaXRpYWxpemVkQ29weShjb25zdCBUKiBzcmMsIGNvbnN0IFQqIHNyY0VuZCwg
VCogZHN0KQogICAgIHsKLSAgICAgICAgbWVtY3B5KGRzdCwgc3JjLCByZWludGVycHJldF9jYXN0
PGNvbnN0IGNoYXIqPihzcmNFbmQpIC0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oc3Jj
KSk7CisgICAgICAgIG1lbWNweShzdGF0aWNfY2FzdDx2b2lkKj4oZHN0KSwgc3RhdGljX2Nhc3Q8
dm9pZCo+KGNvbnN0X2Nhc3Q8VCo+KHNyYykpLCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihzcmNFbmQpIC0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oc3JjKSk7CiAgICAgfQog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CiAgICAgc3RhdGljIHZvaWQgdW5pbml0aWFsaXplZENv
cHkoY29uc3QgVCogc3JjLCBjb25zdCBUKiBzcmNFbmQsIFUqIGRzdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL2dsaWIvV1RGR1R5cGUuaCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvV1RGR1R5
cGUuaAppbmRleCA3YjczM2I1ODM4OWFhNzA3YzRkYWI2MmZhMTM0MjkwZWNlM2ZmZjM1Li43ZjFj
ZjRkYzM3NGE4OTg5MWJkM2E2NTYyZjkyYjU2ZDBiN2U5ODAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1dURkdUeXBlLmgKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9XVEZHVHlw
ZS5oCkBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyB2b2lkIHR5cGVfbmFtZSMjX2ZpbmFsaXplKEdP
YmplY3QqIG9iamVjdCkgXAogICAgIEdfT0JKRUNUX0NMQVNTKHR5cGVfbmFtZSMjX3BhcmVudF9j
bGFzcyktPmZpbmFsaXplKG9iamVjdCk7IFwKIH0gXAogXAotc3RhdGljIHZvaWQgdHlwZV9uYW1l
IyNfY2xhc3NfaW50ZXJuX2luaXQoZ3BvaW50ZXIga2xhc3MpIFwKK3N0YXRpYyB2b2lkIHR5cGVf
bmFtZSMjX2NsYXNzX2ludGVybl9pbml0KGdwb2ludGVyIGtsYXNzLCBncG9pbnRlcikgXAogeyBc
CiAgICAgR09iamVjdENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7
IFwKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUoa2xhc3MsIHNpemVvZihUeXBlTmFtZSMj
UHJpdmF0ZSkpOyBcCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyB2b2lkIHR5cGVfbmFtZSMjX2Ns
YXNzX2ludGVybl9pbml0KGdwb2ludGVyIGtsYXNzKSBcCiAgICAgZ09iamVjdENsYXNzLT5maW5h
bGl6ZSA9IHR5cGVfbmFtZSMjX2ZpbmFsaXplOyBcCiB9IFwKIFwKLXN0YXRpYyB2b2lkIHR5cGVf
bmFtZSMjX2luaXQoVHlwZU5hbWUqIHNlbGYpIFwKK3N0YXRpYyB2b2lkIHR5cGVfbmFtZSMjX2lu
aXQoVHlwZU5hbWUqIHNlbGYsIGdwb2ludGVyKSBcCiB7IFwKICAgICBUeXBlTmFtZSMjUHJpdmF0
ZSogcHJpdiA9IEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURShzZWxmLCB0eXBlX25hbWUjI19n
ZXRfdHlwZSgpLCBUeXBlTmFtZSMjUHJpdmF0ZSk7IFwKICAgICBzZWxmLT5wcml2ID0gcHJpdjsg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBhNmY3N2Y3NjY1ZTQ1YmMwMDczMjNjZWY4
NTkzNTg0NjY2OTAyZGY5Li44MjNjNzdkZGIyMThlNDNkZjE0Yzg3M2ZiNWE2ZjZlZGFiYWZhOGEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTU2LDExICsxNTYsMTEgQEAgaWYgKEVO
QUJMRV9QTFVHSU5fUFJPQ0VTU19HVEsyKQogICAgICkKICAgICB0YXJnZXRfaW5jbHVkZV9kaXJl
Y3RvcmllcyhXZWJDb3JlUGxhdGZvcm1HVEsyIFBSSVZBVEUKICAgICAgICAgJHtXZWJDb3JlX0lO
Q0xVREVfRElSRUNUT1JJRVN9Ci0gICAgICAgICR7R1RLMl9JTkNMVURFX0RJUlN9Ci0gICAgICAg
ICR7R0RLMl9JTkNMVURFX0RJUlN9CiAgICAgKQogICAgIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9y
aWVzKFdlYkNvcmVQbGF0Zm9ybUdUSzIgU1lTVEVNIFBSSVZBVEUKICAgICAgICAgJHtXZWJDb3Jl
X1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTfQorICAgICAgICAke0dUSzJfSU5DTFVERV9ESVJT
fQorICAgICAgICAke0dESzJfSU5DTFVERV9ESVJTfQogICAgICkKICAgICB0YXJnZXRfbGlua19s
aWJyYXJpZXMoV2ViQ29yZVBsYXRmb3JtR1RLMgogICAgICAgICAgJHtXZWJDb3JlX0xJQlJBUklF
U30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmlu
ZGV4IDM5OThmMzEzZTBmNmFiMjRhYmI5MDNmZTQ2Y2FiOGE3MGViMDI3ODAuLjMxYjhhMmI3OGMz
MjNkZmJlOWM5OWU1ZDE2OTFkNmM5ZWFhNDdmNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMTk2MSw3ICsxOTYxLDkgQEAgQ2hhcmFj
dGVyT2Zmc2V0IEFYT2JqZWN0Q2FjaGU6OnN0YXJ0T3JFbmRDaGFyYWN0ZXJPZmZzZXRGb3JSYW5n
ZShSZWZQdHI8UmFuZ2U+IHIKIAogdm9pZCBBWE9iamVjdENhY2hlOjpzdGFydE9yRW5kVGV4dE1h
cmtlckRhdGFGb3JSYW5nZShUZXh0TWFya2VyRGF0YSYgdGV4dE1hcmtlckRhdGEsIFJlZlB0cjxS
YW5nZT4gcmFuZ2UsIGJvb2wgaXNTdGFydCkKIHsKLSAgICBtZW1zZXQoJnRleHRNYXJrZXJEYXRh
LCAwLCBzaXplb2YoVGV4dE1hcmtlckRhdGEpKTsKKyAgICAvLyBUaGlzIG1lbW9yeSBtdXN0IGJl
IHplcm8nZCBzbyBpbnN0YW5jZXMgb2YgVGV4dE1hcmtlckRhdGEgY2FuIGJlIHRlc3RlZCBmb3Ig
Ynl0ZS1lcXVpdmFsZW5jZS4KKyAgICAvLyBXYXJuaW5nOiBUaGlzIGlzIHJpc2t5IGFuZCBiYWQg
YmVjYXVzZSBUZXh0TWFya2VyRGF0YSBpcyBhIG5vbnRyaXZpYWwgdHlwZS4KKyAgICBtZW1zZXQo
c3RhdGljX2Nhc3Q8dm9pZCo+KCZ0ZXh0TWFya2VyRGF0YSksIDAsIHNpemVvZihUZXh0TWFya2Vy
RGF0YSkpOwogICAgIAogICAgIENoYXJhY3Rlck9mZnNldCBjaGFyYWN0ZXJPZmZzZXQgPSBzdGFy
dE9yRW5kQ2hhcmFjdGVyT2Zmc2V0Rm9yUmFuZ2UocmFuZ2UsIGlzU3RhcnQpOwogICAgIGlmIChj
aGFyYWN0ZXJPZmZzZXQuaXNOdWxsKCkpCkBAIC0yMDE4LDcgKzIwMjAsMTAgQEAgQ2hhcmFjdGVy
T2Zmc2V0IEFYT2JqZWN0Q2FjaGU6OmNoYXJhY3Rlck9mZnNldEZvck5vZGVBbmRPZmZzZXQoTm9k
ZSYgbm9kZSwgaW50IG8KIAogdm9pZCBBWE9iamVjdENhY2hlOjp0ZXh0TWFya2VyRGF0YUZvckNo
YXJhY3Rlck9mZnNldChUZXh0TWFya2VyRGF0YSYgdGV4dE1hcmtlckRhdGEsIGNvbnN0IENoYXJh
Y3Rlck9mZnNldCYgY2hhcmFjdGVyT2Zmc2V0KQogewotICAgIG1lbXNldCgmdGV4dE1hcmtlckRh
dGEsIDAsIHNpemVvZihUZXh0TWFya2VyRGF0YSkpOworICAgIC8vIFRoaXMgbWVtb3J5IG11c3Qg
YmUgemVybydkIHNvIGluc3RhbmNlcyBvZiBUZXh0TWFya2VyRGF0YSBjYW4gYmUgdGVzdGVkIGZv
ciBieXRlLWVxdWl2YWxlbmNlLgorICAgIC8vIFdhcm5pbmc6IFRoaXMgaXMgcmlza3kgYW5kIGJh
ZCBiZWNhdXNlIFRleHRNYXJrZXJEYXRhIGlzIGEgbm9udHJpdmlhbCB0eXBlLgorICAgIG1lbXNl
dChzdGF0aWNfY2FzdDx2b2lkKj4oJnRleHRNYXJrZXJEYXRhKSwgMCwgc2l6ZW9mKFRleHRNYXJr
ZXJEYXRhKSk7CisKICAgICBzZXRUZXh0TWFya2VyRGF0YVdpdGhDaGFyYWN0ZXJPZmZzZXQodGV4
dE1hcmtlckRhdGEsIGNoYXJhY3Rlck9mZnNldCk7CiB9CiAKQEAgLTIxOTgsOCArMjIwMyw5IEBA
IHN0ZDo6b3B0aW9uYWw8VGV4dE1hcmtlckRhdGE+IEFYT2JqZWN0Q2FjaGU6OnRleHRNYXJrZXJE
YXRhRm9yVmlzaWJsZVBvc2l0aW9uKGNvCiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+
IG9iaiA9IGNhY2hlLT5nZXRPckNyZWF0ZShkb21Ob2RlKTsKIAogICAgIC8vIFRoaXMgbWVtb3J5
IG11c3QgYmUgemVybydkIHNvIGluc3RhbmNlcyBvZiBUZXh0TWFya2VyRGF0YSBjYW4gYmUgdGVz
dGVkIGZvciBieXRlLWVxdWl2YWxlbmNlLgorICAgIC8vIFdhcm5pbmc6IFRoaXMgaXMgcmlza3kg
YW5kIGJhZCBiZWNhdXNlIFRleHRNYXJrZXJEYXRhIGlzIGEgbm9udHJpdmlhbCB0eXBlLgogICAg
IFRleHRNYXJrZXJEYXRhIHRleHRNYXJrZXJEYXRhOwotICAgIG1lbXNldCgmdGV4dE1hcmtlckRh
dGEsIDAsIHNpemVvZihUZXh0TWFya2VyRGF0YSkpOworICAgIG1lbXNldChzdGF0aWNfY2FzdDx2
b2lkKj4oJnRleHRNYXJrZXJEYXRhKSwgMCwgc2l6ZW9mKFRleHRNYXJrZXJEYXRhKSk7CiAgICAg
CiAgICAgdGV4dE1hcmtlckRhdGEuYXhJRCA9IG9iai5nZXQoKS0+YXhPYmplY3RJRCgpOwogICAg
IHRleHRNYXJrZXJEYXRhLm5vZGUgPSBkb21Ob2RlOwpAQCAtMjIyNiw4ICsyMjMyLDkgQEAgc3Rk
OjpvcHRpb25hbDxUZXh0TWFya2VyRGF0YT4gQVhPYmplY3RDYWNoZTo6dGV4dE1hcmtlckRhdGFG
b3JGaXJzdFBvc2l0aW9uSW5UZXgKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAg
IC8vIFRoaXMgbWVtb3J5IG11c3QgYmUgemVybydkIHNvIGluc3RhbmNlcyBvZiBUZXh0TWFya2Vy
RGF0YSBjYW4gYmUgdGVzdGVkIGZvciBieXRlLWVxdWl2YWxlbmNlLgorICAgIC8vIFdhcm5pbmc6
IFRoaXMgaXMgcmlza3kgYW5kIGJhZCBiZWNhdXNlIFRleHRNYXJrZXJEYXRhIGlzIGEgbm9udHJp
dmlhbCB0eXBlLgogICAgIFRleHRNYXJrZXJEYXRhIHRleHRNYXJrZXJEYXRhOwotICAgIG1lbXNl
dCgmdGV4dE1hcmtlckRhdGEsIDAsIHNpemVvZihUZXh0TWFya2VyRGF0YSkpOworICAgIG1lbXNl
dChzdGF0aWNfY2FzdDx2b2lkKj4oJnRleHRNYXJrZXJEYXRhKSwgMCwgc2l6ZW9mKFRleHRNYXJr
ZXJEYXRhKSk7CiAgICAgCiAgICAgdGV4dE1hcmtlckRhdGEuYXhJRCA9IG9iai5nZXQoKS0+YXhP
YmplY3RJRCgpOwogICAgIHRleHRNYXJrZXJEYXRhLm5vZGUgPSAmdGV4dENvbnRyb2w7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlLmNwcAppbmRleCA0ODJjMGMwODRlMWYwYzYwODI1MWE2YTY0YTc0
MjU0YmUxMGYwODkxLi45OTMwODMzZTk3ZWU4M2Y3NDQ3YjU2ZDVmNzU1NDZjZWJmNjUxMDk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKQEAgLTYwNSw2ICs2MDUsNyBAQCBhdXRvIENT
U0ZvbnRGYWNlOjpmb250TG9hZFRpbWluZygpIGNvbnN0IC0+IEZvbnRMb2FkVGltaW5nCiAgICAg
ICAgIGNhc2UgRm9udExvYWRpbmdCZWhhdmlvcjo6T3B0aW9uYWw6CiAgICAgICAgICAgICByZXR1
cm4geyAwLjFfcywgMF9zIH07CiAgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBT
ZXR0aW5nczo6Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6QmxvY2s6CiAgICAgICAgIHJldHVybiB7
IFNlY29uZHM6OmluZmluaXR5KCksIDBfcyB9OwogICAgIGNhc2UgU2V0dGluZ3M6OkZvbnRMb2Fk
VGltaW5nT3ZlcnJpZGU6OlN3YXA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3JMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3Bw
CmluZGV4IDU3ZWZhNjdkMGIzZWE0ODhmYzdhYzM0ZTExNGEzYjYwZWQ4Y2U2YTkuLjRmYzY5ODM4
YzcxMDgxMTM2ZTAyZmEyMzk1Y2NlYTk2ODFiOWY0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
ZWxlY3Rvckxpc3QuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgQ1NTU2VsZWN0b3JMaXN0Ojph
ZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0
CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgLy8gTW92ZSBpdGVtIGZyb20gdGhlIHBh
cnNlciBzZWxlY3RvciB2ZWN0b3IgaW50byBtX3NlbGVjdG9yQXJyYXkgd2l0aG91dCBpbnZva2lu
ZyBkZXN0cnVjdG9yIChVZ2guKQogICAgICAgICAgICAgICAgIENTU1NlbGVjdG9yKiBjdXJyZW50
U2VsZWN0b3IgPSBjdXJyZW50LT5yZWxlYXNlU2VsZWN0b3IoKS5yZWxlYXNlKCk7Ci0gICAgICAg
ICAgICAgICAgbWVtY3B5KCZtX3NlbGVjdG9yQXJyYXlbYXJyYXlJbmRleF0sIGN1cnJlbnRTZWxl
Y3Rvciwgc2l6ZW9mKENTU1NlbGVjdG9yKSk7CisgICAgICAgICAgICAgICAgbWVtY3B5KHN0YXRp
Y19jYXN0PHZvaWQqPigmbV9zZWxlY3RvckFycmF5W2FycmF5SW5kZXhdKSwgc3RhdGljX2Nhc3Q8
dm9pZCo+KGN1cnJlbnRTZWxlY3RvciksIHNpemVvZihDU1NTZWxlY3RvcikpOwogCiAgICAgICAg
ICAgICAgICAgLy8gRnJlZSB0aGUgdW5kZXJseWluZyBtZW1vcnkgd2l0aG91dCBpbnZva2luZyB0
aGUgZGVzdHJ1Y3Rvci4KICAgICAgICAgICAgICAgICBvcGVyYXRvciBkZWxldGUgKGN1cnJlbnRT
ZWxlY3Rvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXggNjU3
NGYxZWQ1N2QwZWQyYjg3MjBlMGM4MmI4NGE4NjJlMmUyMDQ2Ni4uNGIyMmE1MDkzZDEzMTNkNzUz
MjIzOTM2YmE0MzVmMDk0Y2ZhMWIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJh
dG9yLmNwcApAQCAtMTk5OSwxMSArMTk5OSwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY29udGFp
bnNLYW5hTGV0dGVycyhjb25zdCBTdHJpbmcmIHBhdHRlcm4pCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCisjaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCiAjZW5kaWYKLS8vIE5PVEU6IElDVSdzIHVub3JtX25vcm1hbGl6ZSBmdW5jdGlvbiBp
cyBkZXByZWNhdGVkIGluIHNvbWUgU0RLcy4KKy8vIE5PVEU6IElDVSdzIHVub3JtX25vcm1hbGl6
ZSBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLgogCiBzdGF0aWMgdm9pZCBub3JtYWxpemVDaGFyYWN0
ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIFZlY3RvcjxVQ2hh
cj4mIGJ1ZmZlcikKIHsKQEAgLTIwMjYsOCArMjAyNiw4IEBAIHN0YXRpYyB2b2lkIG5vcm1hbGl6
ZUNoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgVmVj
dG9yCiAgICAgQVNTRVJUKHN0YXR1cyA9PSBVX1NUUklOR19OT1RfVEVSTUlOQVRFRF9XQVJOSU5H
KTsKIH0KIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAorI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9w
CiAjZW5kaWYKIAogc3RhdGljIGJvb2wgaXNOb25MYXRpbjFTZXBhcmF0b3IoVUNoYXIzMiBjaGFy
YWN0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCmluZGV4IDY0YTA4ZThjMWI0ZmM5NmU1M2Nj
NzJiZWI2ZWM4NGIwYzc1N2E3NTkuLmJmMTQ0MjFhZjM1Zjc5ZDdlNDBmZDNjZGY0YWRmYzQzYTU3
Y2RlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aC5oCkBAIC0xOTYsNyArMTk2LDcgQEAgaW5s
aW5lIExlbmd0aCYgTGVuZ3RoOjpvcGVyYXRvcj0oY29uc3QgTGVuZ3RoJiBvdGhlcikKICAgICBp
ZiAoaXNDYWxjdWxhdGVkKCkpCiAgICAgICAgIGRlcmVmKCk7CiAKLSAgICBtZW1jcHkodGhpcywg
Jm90aGVyLCBzaXplb2YoTGVuZ3RoKSk7CisgICAgbWVtY3B5KHN0YXRpY19jYXN0PHZvaWQqPih0
aGlzKSwgc3RhdGljX2Nhc3Q8dm9pZCo+KGNvbnN0X2Nhc3Q8TGVuZ3RoKj4oJm90aGVyKSksIHNp
emVvZihMZW5ndGgpKTsKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKQEAgLTIwOCw3ICsyMDgsNyBA
QCBpbmxpbmUgTGVuZ3RoJiBMZW5ndGg6Om9wZXJhdG9yPShMZW5ndGgmJiBvdGhlcikKICAgICBp
ZiAoaXNDYWxjdWxhdGVkKCkpCiAgICAgICAgIGRlcmVmKCk7CiAKLSAgICBtZW1jcHkodGhpcywg
Jm90aGVyLCBzaXplb2YoTGVuZ3RoKSk7CisgICAgbWVtY3B5KHN0YXRpY19jYXN0PHZvaWQqPih0
aGlzKSwgc3RhdGljX2Nhc3Q8dm9pZCo+KCZvdGhlciksIHNpemVvZihMZW5ndGgpKTsKICAgICBv
dGhlci5tX3R5cGUgPSBBdXRvOwogICAgIHJldHVybiAqdGhpczsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcAppbmRleCBlN2Y4YzY3MTAxNTMwM2Nj
OGExNzZmNDY5ZTZkODZlMjU4NzQ4YTI0Li44OTk0YzAyMWVkZmI5MjYxNmJlZGNmMmY1MjdhZTE1
NmJiMTdjNTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFkaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGll
bnQuY3BwCkBAIC0yMTMsNyArMjEzLDggQEAgdW5zaWduZWQgR3JhZGllbnQ6Omhhc2goKSBjb25z
dAogICAgIENPTVBJTEVfQVNTRVJUKCEoc2l6ZW9mKENvbG9yU3RvcCkgJSAyKSwgQ29sb3Jfc3Rv
cF9zaXplX3Nob3VsZF9iZV9tdWx0aXBsZV9vZl90d28pOwogICAgIAogICAgIC8vIEVuc3VyZSB0
aGF0IGFueSBwYWRkaW5nIGluIHRoZSBzdHJ1Y3QgaXMgemVyby1maWxsZWQsIHNvIGl0IHdpbGwg
bm90IGFmZmVjdCB0aGUgaGFzaCB2YWx1ZS4KLSAgICBtZW1zZXQoJnBhcmFtZXRlcnMsIDAsIHNp
emVvZihwYXJhbWV0ZXJzKSk7CisgICAgLy8gRklYTUU6IFRoaXMgaXMgYXNraW5nIGZvciB0cm91
YmxlLCBiZWNhdXNlIGl0IGlzIGEgbm9udHJpdmlhbCB0eXBlLgorICAgIG1lbXNldChzdGF0aWNf
Y2FzdDx2b2lkKj4oJnBhcmFtZXRlcnMpLCAwLCBzaXplb2YocGFyYW1ldGVycykpOwogICAgIAog
ICAgIFdURjo6c3dpdGNoT24obV9kYXRhLAogICAgICAgICBbJnBhcmFtZXRlcnNdIChjb25zdCBM
aW5lYXJEYXRhJiBkYXRhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcApp
bmRleCAzYWFlN2VkNDkyODY5NmRkZWRkMGQ0OTc5OTk4ZDM5OTAzZjc3YmQ1Li40ZDVkODA4OGE5
MmNlOTdlOWNkNDgwYmM0YzhlYTU2OGI4ZTZhNmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRl
eHRJdGVyYXRvci5jcHAKQEAgLTY5LDExICs2OSwxMSBAQCBib29sIFN1cnJvZ2F0ZVBhaXJBd2Fy
ZVRleHRJdGVyYXRvcjo6Y29uc3VtZVNsb3dDYXNlKFVDaGFyMzImIGNoYXJhY3RlciwgdW5zaWdu
ZQogICAgIHJldHVybiB0cnVlOwogfQogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X
ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisjaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQorI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAjZW5kaWYKLS8vIE5PVEU6IElDVSdzIHVub3Jt
X25vcm1hbGl6ZSBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGluIHNvbWUgU0RLcy4KKy8vIE5PVEU6
IElDVSdzIHVub3JtX25vcm1hbGl6ZSBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLgogCiBVQ2hhcjMy
IFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvcjo6bm9ybWFsaXplVm9pY2luZ01hcmtzKCkK
IHsKQEAgLTk1LDggKzk1LDggQEAgVUNoYXIzMiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0
b3I6Om5vcm1hbGl6ZVZvaWNpbmdNYXJrcygpCiAgICAgcmV0dXJuIDA7CiB9CiAKLSNpZiBDT01Q
SUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyNpZiBDT01QSUxFUihH
Q0NfT1JfQ0xBTkcpCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAogI2VuZGlmCiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWly
b0hhcmZidXp6TkcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Rm9udENhaXJvSGFyZmJ1enpORy5jcHAKaW5kZXggYThhNzhjN2JkYTFiZTZhMTEyOTg5OGY5YmVh
ZTBkMTU3YmM0ZmFjMi4uZWY4NDNhMDYxZTljMGM4MjY3MTYzNDg5ZGNmYWEzNjViMGY3NTc5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENh
aXJvSGFyZmJ1enpORy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKQEAgLTQ5LDcgKzQ5LDE0IEBAIGNvbnN0IEZv
bnQqIEZvbnRDYXNjYWRlOjpmb250Rm9yQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UoY29uc3Qg
VUNoYXIqIGNoYXJhY3RlCiB7CiAgICAgVUVycm9yQ29kZSBlcnJvciA9IFVfWkVST19FUlJPUjsK
ICAgICBWZWN0b3I8VUNoYXIsIDQ+IG5vcm1hbGl6ZWRDaGFyYWN0ZXJzKGxlbmd0aCk7CisjaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJh
Z21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisj
ZW5kaWYKICAgICBpbnQzMl90IG5vcm1hbGl6ZWRMZW5ndGggPSB1bm9ybV9ub3JtYWxpemUoY2hh
cmFjdGVycywgbGVuZ3RoLCBVTk9STV9ORkMsIFVOT1JNX1VOSUNPREVfM18yLCBub3JtYWxpemVk
Q2hhcmFjdGVycy5kYXRhKCksIGxlbmd0aCwgJmVycm9yKTsKKyNpZiBDT01QSUxFUihHQ0NfT1Jf
Q0xBTkcpCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCiAgICAgaWYgKFVfRkFJ
TFVSRShlcnJvcikpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1E
YXRhRnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5
cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAppbmRleCBkM2ZjOTM0ZmU0YmUy
NjNlYWNkMWQxY2M5M2UxZjY5MmQwMTBhYjY2Li5iZDljZDAwMDlhZmJhMDllZjUxZWQ0ZThlMGZj
MmM0NGYxMWYyZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGFGcmVlVHlwZS5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YShGVF9GYWNlIGZyZWVUeXBlRmFjZSwgU2hhcmVkQnVmZmUK
ICAgICAvLyB0aGlzIGNhaXJvX2ZvbnRfZmFjZV90IGlzIGRlc3Ryb3llZCwgaXQgY2xlYW5zIHVw
IHRoZSBGcmVlVHlwZSBmYWNlIGFzIHdlbGwuCiAgICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0YV9r
ZXlfdCBmcmVlVHlwZUZhY2VLZXk7CiAgICAgY2Fpcm9fZm9udF9mYWNlX3NldF91c2VyX2RhdGEo
bV9mb250RmFjZSwgJmZyZWVUeXBlRmFjZUtleSwgZnJlZVR5cGVGYWNlLAotICAgICAgICAgcmVp
bnRlcnByZXRfY2FzdDxjYWlyb19kZXN0cm95X2Z1bmNfdD4oRlRfRG9uZV9GYWNlKSk7CisgICAg
ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y2Fpcm9fZGVzdHJveV9mdW5jX3Q+KHJlaW50ZXJwcmV0X2Nh
c3Q8R0NhbGxiYWNrPihGVF9Eb25lX0ZhY2UpKSk7CiB9CiAKIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRhRnJlZVR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFG
cmVlVHlwZS5jcHAKaW5kZXggNmEwYzMyMTA1YzNlMzZiMTAzMmY4N2I5MTkwODk0OGE2NzBkOGQy
MC4uZTM4MjkwYjNhY2I5NTUyMWRhYTk5MDg5ZDZmMmY5MWVkNjMxYTU1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFG
cmVlVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5
cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHAKQEAgLTE5OSw3ICsxOTksMTQgQEAgYm9vbCBG
b250OjpjYW5SZW5kZXJDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZShjb25zdCBVQ2hhciogY2hh
cmFjdGVycywgc2l6ZV90IGwKIAogICAgIFVFcnJvckNvZGUgZXJyb3IgPSBVX1pFUk9fRVJST1I7
CiAgICAgVmVjdG9yPFVDaGFyLCA0PiBub3JtYWxpemVkQ2hhcmFjdGVycyhsZW5ndGgpOworI2lm
IENPTVBJTEVSKEdDQ19PUl9DTEFORykKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
I2VuZGlmCiAgICAgaW50MzJfdCBub3JtYWxpemVkTGVuZ3RoID0gdW5vcm1fbm9ybWFsaXplKGNo
YXJhY3RlcnMsIGxlbmd0aCwgVU5PUk1fTkZDLCBVTk9STV9VTklDT0RFXzNfMiwgJm5vcm1hbGl6
ZWRDaGFyYWN0ZXJzWzBdLCBsZW5ndGgsICZlcnJvcik7CisjaWYgQ09NUElMRVIoR0NDX09SX0NM
QU5HKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgogICAgIGlmIChVX0ZBSUxV
UkUoZXJyb3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Hc3RBbGxvY2F0b3JGYXN0TWFsbG9j
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9Hc3RBbGxv
Y2F0b3JGYXN0TWFsbG9jLmNwcAppbmRleCA2YmNhMmM5YmNhYTg3NWQ4MWNjNWZiMDQwZmZkOTdl
ODgyNWY1YTViLi5hM2Y0ZDNlZjVhM2YzZGZmM2Y4YjI5NTJlOGY4YWQ5ZWQwZjc3NjEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR3N0QWxs
b2NhdG9yRmFzdE1hbGxvYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dzdEFsbG9jYXRvckZhc3RNYWxsb2MuY3BwCkBAIC04Niw5ICs4Niw4IEBA
IHN0YXRpYyBncG9pbnRlciBnc3RBbGxvY2F0b3JGYXN0TWFsbG9jTWVtTWFwKEdzdE1lbW9yeUZh
c3RNYWxsb2MqIG1lbW9yeSwgZ3NpemUsCiAgICAgcmV0dXJuIG1lbW9yeS0+ZGF0YTsKIH0KIAot
c3RhdGljIGdib29sZWFuIGdzdEFsbG9jYXRvckZhc3RNYWxsb2NNZW1Vbm1hcChHc3RNZW1vcnlG
YXN0TWFsbG9jKikKK3N0YXRpYyB2b2lkIGdzdEFsbG9jYXRvckZhc3RNYWxsb2NNZW1Vbm1hcChH
c3RNZW1vcnlGYXN0TWFsbG9jKikKIHsKLSAgICByZXR1cm4gVFJVRTsKIH0KIAogc3RhdGljIEdz
dE1lbW9yeUZhc3RNYWxsb2MqIGdzdEFsbG9jYXRvckZhc3RNYWxsb2NNZW1Db3B5KEdzdE1lbW9y
eUZhc3RNYWxsb2MqIG1lbW9yeSwgZ3NzaXplIG9mZnNldCwgZ3NpemUgc2l6ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggMzZhOTUyNjJl
ZjQyNzdhOWFjYjVmNmVlYWJiNjNlODVjNDE4ODY0NS4uMjIzZDQzZWU4MTEwYzU3ODRhZjBhNTI0
NmU5NGM0YmM3NzEyMzk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTY4NSw3ICs2ODUsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6dXBkYXRlVHJhY2tzKCkKICAgICAgICAgICAgIEdTVF9XQVJOSU5HKCJVbmtu
b3duIHRyYWNrIHR5cGUgZm91bmQgZm9yIHN0cmVhbSAlcyIsIHN0cmVhbUlkLnV0ZjgoKS5kYXRh
KCkpOwogICAgIH0KIAotICAgIEdTVF9JTkZPKCJNZWRpYSBoYXMgJXUgdmlkZW8gdHJhY2tzLCAl
dSBhdWRpbyB0cmFja3MgYW5kICV1IHRleHQgdHJhY2tzIiwgdmFsaWRWaWRlb1N0cmVhbXMuc2l6
ZSgpLCB2YWxpZEF1ZGlvU3RyZWFtcy5zaXplKCksIHZhbGlkVGV4dFN0cmVhbXMuc2l6ZSgpKTsK
KyAgICBHU1RfSU5GTygiTWVkaWEgaGFzICV6dSB2aWRlbyB0cmFja3MsICV6dSBhdWRpbyB0cmFj
a3MgYW5kICV6dSB0ZXh0IHRyYWNrcyIsIHZhbGlkVmlkZW9TdHJlYW1zLnNpemUoKSwgdmFsaWRB
dWRpb1N0cmVhbXMuc2l6ZSgpLCB2YWxpZFRleHRTdHJlYW1zLnNpemUoKSk7CiAKICAgICBib29s
IG9sZEhhc0F1ZGlvID0gbV9oYXNBdWRpbzsKICAgICBib29sIG9sZEhhc1ZpZGVvID0gbV9oYXNW
aWRlbzsKQEAgLTc0OSw3ICs3NDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6ZW5hYmxlVHJhY2soVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6VHJhY2tUeQogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBHU1RfSU5GTygiRW5hYmxpbmcg
JXMgdHJhY2sgd2l0aCBpbmRleDogJWx1IiwgdHJhY2tUeXBlQXNTdHJpbmcsIGluZGV4KTsKKyAg
ICBHU1RfSU5GTygiRW5hYmxpbmcgJXMgdHJhY2sgd2l0aCBpbmRleDogJXUiLCB0cmFja1R5cGVB
c1N0cmluZywgaW5kZXgpOwogICAgIC8vIEZJWE1FOiBSZW1vdmUgaXNNZWRpYVNvdXJjZSgpIHRl
c3QgYmVsb3cgd2hlbiBmaXhpbmcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MjUzMQogICAgIGlmIChtX2lzTGVnYWN5UGxheWJpbiB8fCBpc01lZGlhU291cmNlKCkp
IHsKICAgICAgICAgR3N0RWxlbWVudCogZWxlbWVudCA9IGlzTWVkaWFTb3VyY2UoKSA/IG1fc291
cmNlLmdldCgpIDogbV9waXBlbGluZS5nZXQoKTsKQEAgLTc2Miw3ICs3NjIsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZW5hYmxlVHJhY2soVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcjo6VHJhY2tUeQogICAgICAgICAgICAgU3RyaW5nIHN0cmVhbUlkID0gZ3N0X3N0cmVh
bV9nZXRfc3RyZWFtX2lkKHN0cmVhbSk7CiAgICAgICAgICAgICBzZWxlY3RlZFN0cmVhbXMgPSBn
X2xpc3RfYXBwZW5kKHNlbGVjdGVkU3RyZWFtcywgZ19zdHJkdXAoc3RyZWFtSWQudXRmOCgpLmRh
dGEoKSkpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIEdTVF9XQVJOSU5HKCIlcyBzdHJl
YW0gJWx1IG5vdCBmb3VuZCIsIHRyYWNrVHlwZUFzU3RyaW5nLCBpbmRleCk7CisgICAgICAgICAg
ICBHU1RfV0FSTklORygiJXMgc3RyZWFtICV1IG5vdCBmb3VuZCIsIHRyYWNrVHlwZUFzU3RyaW5n
LCBpbmRleCk7CiAKICAgICAgICAgLy8gVE9ETzogTVNFIEdzdFN0cmVhbSBBUEkgc3VwcG9ydDog
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjUzMQogICAgICAgICBn
c3RfZWxlbWVudF9zZW5kX2V2ZW50KG1fcGlwZWxpbmUuZ2V0KCksIGdzdF9ldmVudF9uZXdfc2Vs
ZWN0X3N0cmVhbXMoc2VsZWN0ZWRTdHJlYW1zKSk7CkBAIC0xNDc3LDggKzE0NzcsOSBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVyZ2VJbnZhbGlkVGV4dFRyYWNrcyhWZWN0
b3I8U3RyaW5nPiB2YWxpZFRyYQogfQogI2VuZGlmCiAKLXN0YXRpYyBpbnQgZmluZEhMU1F1ZXVl
KGNvbnN0IEdWYWx1ZSogaXRlbSkKK3N0YXRpYyBnaW50IGZpbmRITFNRdWV1ZShnY29uc3Rwb2lu
dGVyIGEsIGdjb25zdHBvaW50ZXIpCiB7CisgICAgR1ZhbHVlKiBpdGVtID0gc3RhdGljX2Nhc3Q8
R1ZhbHVlKj4oY29uc3RfY2FzdDxncG9pbnRlcj4oYSkpOwogICAgIEdzdEVsZW1lbnQqIGVsZW1l
bnQgPSBHU1RfRUxFTUVOVChnX3ZhbHVlX2dldF9vYmplY3QoaXRlbSkpOwogICAgIGlmIChnX3N0
cl9oYXNfcHJlZml4KEdTVF9FTEVNRU5UX05BTUUoZWxlbWVudCksICJxdWV1ZSIpKSB7CiAgICAg
ICAgIEdzdEVsZW1lbnQqIHBhcmVudCA9IEdTVF9FTEVNRU5UKEdTVF9FTEVNRU5UX1BBUkVOVChl
bGVtZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvZW1lL1dlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlE
ZWNyeXB0b3JHU3RyZWFtZXIuY3BwCmluZGV4IGJkOGZjMjRiYjMwYzIwZmRmNmM0NzJlY2Y0YWY1
ZmU2YmIzNzYzOWYuLmE2MzFhOTJlNzQ5N2I0NGE1NGUwYjZmYjMyYjUyM2ZmY2IyNzIxNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
V2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JH
U3RyZWFtZXIuY3BwCkBAIC0yNTQsNyArMjU0LDcgQEAgc3RhdGljIGdib29sZWFuIHdlYktpdE1l
ZGlhQ2xlYXJLZXlEZWNyeXB0b3JEZWNyeXB0KFdlYktpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkQK
IAogICAgIGlmICghc3ViU2FtcGxlQ291bnQpIHsKICAgICAgICAgLy8gRnVsbCBzYW1wbGUgZW5j
cnlwdGlvbi4KLSAgICAgICAgR1NUX1RSQUNFX09CSkVDVChzZWxmLCAiZnVsbCBzYW1wbGUgZW5j
cnlwdGlvbjogJWQgZW5jcnlwdGVkIGJ5dGVzIiwgbWFwLnNpemUpOworICAgICAgICBHU1RfVFJB
Q0VfT0JKRUNUKHNlbGYsICJmdWxsIHNhbXBsZSBlbmNyeXB0aW9uOiAlenUgZW5jcnlwdGVkIGJ5
dGVzIiwgbWFwLnNpemUpOwogCiAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBidWZmZXIgaXMgZW1w
dHkuCiAgICAgICAgIGlmIChtYXAuc2l6ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGxTb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBs
U291cC5jcHAKaW5kZXggYjk0YWI1OGYyMzUwZWQ5MzNmMGFhYzM5NTQ4NGE3ZTZiNTQxOWI0YS4u
MjQ4YTQyMWU0MWU2ZjdiZDExY2ZhYmI4ZTcyM2ExMWYyYmQ0YmQwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGxT
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0
U3RyZWFtSGFuZGxlSW1wbFNvdXAuY3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgdm9pZCBTb2NrZXRT
dHJlYW1IYW5kbGVJbXBsOjpiZWdpbldhaXRpbmdGb3JTb2NrZXRXcml0YWJpbGl0eSgpCiAKICAg
ICBtX3dyaXRlUmVhZHlTb3VyY2UgPSBhZG9wdEdSZWYoZ19wb2xsYWJsZV9vdXRwdXRfc3RyZWFt
X2NyZWF0ZV9zb3VyY2UobV9vdXRwdXRTdHJlYW0uZ2V0KCksIG1fY2FuY2VsbGFibGUuZ2V0KCkp
KTsKICAgICByZWYoKTsKLSAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV93cml0ZVJlYWR5U291
cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPih3cml0ZVJlYWR5Q2FsbGJh
Y2spLCB0aGlzLCBbXShncG9pbnRlciBoYW5kbGUpIHsgCisgICAgZ19zb3VyY2Vfc2V0X2NhbGxi
YWNrKG1fd3JpdGVSZWFkeVNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVu
Yz4ocmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KHdyaXRlUmVhZHlDYWxsYmFjaykpLCB0aGlz
LCBbXShncG9pbnRlciBoYW5kbGUpIHsKICAgICAgICAgc3RhdGljX2Nhc3Q8U29ja2V0U3RyZWFt
SGFuZGxlSW1wbCo+KGhhbmRsZSktPmRlcmVmKCk7CiAgICAgfSk7CiAgICAgZ19zb3VyY2VfYXR0
YWNoKG1fd3JpdGVSZWFkeVNvdXJjZS5nZXQoKSwgZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9k
ZWZhdWx0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
RW5jb2RpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2Rpbmcu
Y3BwCmluZGV4IDE3OTJmODc5M2NiN2Q0M2JlZDNjNzJhNjM1MDU5ZGY5ZGM4MDdkYjguLjQwMTNm
MzdjZjdlMWQ3Zjc3MjhkOGMwMDdmZmE2ODE3MjZkNWUwMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZy5jcHAKQEAgLTY5LDExICs2OSwxMSBAQCBTdHJp
bmcgVGV4dEVuY29kaW5nOjpkZWNvZGUoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCwg
Ym9vbCBzdG9wT25FcnJvciwgYgogICAgIHJldHVybiBuZXdUZXh0Q29kZWMoKnRoaXMpLT5kZWNv
ZGUoZGF0YSwgbGVuZ3RoLCB0cnVlLCBzdG9wT25FcnJvciwgc2F3RXJyb3IpOwogfQogCi0jaWYg
Q09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisjaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJh
Z21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAj
ZW5kaWYKLS8vIE5PVEU6IElDVSdzIHVub3JtX3F1aWNrQ2hlY2sgYW5kIHVub3JtX25vcm1hbGl6
ZSBmdW5jdGlvbnMgYXJlIGRlcHJlY2F0ZWQgaW4gc29tZSBTREtzLgorLy8gTk9URTogSUNVJ3Mg
dW5vcm1fcXVpY2tDaGVjayBhbmQgdW5vcm1fbm9ybWFsaXplIGZ1bmN0aW9ucyBhcmUgZGVwcmVj
YXRlZC4KIAogVmVjdG9yPHVpbnQ4X3Q+IFRleHRFbmNvZGluZzo6ZW5jb2RlKFN0cmluZ1ZpZXcg
dGV4dCwgVW5lbmNvZGFibGVIYW5kbGluZyBoYW5kbGluZykgY29uc3QKIHsKQEAgLTExMiw4ICsx
MTIsOCBAQCBWZWN0b3I8dWludDhfdD4gVGV4dEVuY29kaW5nOjplbmNvZGUoU3RyaW5nVmlldyB0
ZXh0LCBVbmVuY29kYWJsZUhhbmRsaW5nIGhhbmRsaQogICAgIHJldHVybiBuZXdUZXh0Q29kZWMo
KnRoaXMpLT5lbmNvZGUoU3RyaW5nVmlldyB7IHNvdXJjZSwgc291cmNlTGVuZ3RoIH0sIGhhbmRs
aW5nKTsKIH0KIAotI2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
cG9wCiAjZW5kaWYKIAogY29uc3QgY2hhciogVGV4dEVuY29kaW5nOjpkb21OYW1lKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0
b3IuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvZ2xpYi9HU29ja2V0TW9uaXRvci5j
cHAKaW5kZXggZDFlNGZjYzUxNWMyODFiNDgyYzU0MjhiZjI3MjA3ZWYyOWVlNGJlNC4uYjA1MmY4
NzhiMWEyMTE2MTY3ZmQ3ZWVmMDNlYzY3NjkxNGVmZGUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvZ2xpYi9HU29ja2V0TW9uaXRvci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvZ2xpYi9HU29ja2V0TW9uaXRvci5jcHAKQEAgLTUxLDcgKzUxLDcg
QEAgdm9pZCBHU29ja2V0TW9uaXRvcjo6c3RhcnQoR1NvY2tldCogc29ja2V0LCBHSU9Db25kaXRp
b24gY29uZGl0aW9uLCBSdW5Mb29wJiBydW4KICAgICBtX3NvdXJjZSA9IGFkb3B0R1JlZihnX3Nv
Y2tldF9jcmVhdGVfc291cmNlKHNvY2tldCwgY29uZGl0aW9uLCBtX2NhbmNlbGxhYmxlLmdldCgp
KSk7CiAgICAgZ19zb3VyY2Vfc2V0X25hbWUobV9zb3VyY2UuZ2V0KCksICJbV2ViS2l0XSBTb2Nr
ZXQgbW9uaXRvciIpOwogICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKLSAgICBn
X3NvdXJjZV9zZXRfY2FsbGJhY2sobV9zb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1Nv
dXJjZUZ1bmM+KHNvY2tldFNvdXJjZUNhbGxiYWNrKSwgdGhpcywgbnVsbHB0cik7CisgICAgZ19z
b3VyY2Vfc2V0X2NhbGxiYWNrKG1fc291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3Vy
Y2VGdW5jPihyZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oc29ja2V0U291cmNlQ2FsbGJhY2sp
KSwgdGhpcywgbnVsbHB0cik7CiAgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KG1fc291cmNlLmdl
dCgpLCBSdW5Mb29wU291cmNlUHJpb3JpdHk6OlJ1bkxvb3BEaXNwYXRjaGVyKTsKICAgICBnX3Nv
dXJjZV9hdHRhY2gobV9zb3VyY2UuZ2V0KCksIHJ1bkxvb3AubWFpbkNvbnRleHQoKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVu
dS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudS5j
cHAKaW5kZXggNWNhMTBhZjhkZmYwODBjYzBkYzUwNDFkYjEzYTM3NDE3MWEwYjQ1MS4uODZjOWMw
YjJkYTA2YTE4Y2NjNjhkZWQ3ZjA2Yjk0MTM0NTVjNjU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdENvbnRleHRNZW51LmNwcApAQCAtMTM2LDcgKzEz
Niw3IEBAIFdlYktpdENvbnRleHRNZW51KiB3ZWJraXRfY29udGV4dF9tZW51X25ldygpCiBXZWJL
aXRDb250ZXh0TWVudSogd2Via2l0X2NvbnRleHRfbWVudV9uZXdfd2l0aF9pdGVtcyhHTGlzdCog
aXRlbXMpCiB7CiAgICAgV2ViS2l0Q29udGV4dE1lbnUqIG1lbnUgPSB3ZWJraXRfY29udGV4dF9t
ZW51X25ldygpOwotICAgIGdfbGlzdF9mb3JlYWNoKGl0ZW1zLCByZWludGVycHJldF9jYXN0PEdG
dW5jPihnX29iamVjdF9yZWZfc2luayksIDApOworICAgIGdfbGlzdF9mb3JlYWNoKGl0ZW1zLCBy
ZWludGVycHJldF9jYXN0PEdGdW5jPihyZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4oZ19vYmpl
Y3RfcmVmX3NpbmspKSwgMCk7CiAgICAgbWVudS0+cHJpdi0+aXRlbXMgPSBnX2xpc3RfY29weShp
dGVtcyk7CiAKICAgICByZXR1cm4gbWVudTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1YTJlMjc2NjhjYjUxZjFkNTBmOTg4OTJhZWU0OGZjOWM4
NjJjNTZmLi5hYTM1YjU3MDA5NGZiZTY0OGY3OWQwYjZiYWE0Zjc2YzE2M2I5YWQwIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTgtMDUtMDggIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXUEVdIEJ1aWxkIGNsZWFubHkgd2l0aCBHQ0MgOCBhbmQgSUNVIDYwCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU0NjIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvQ01ha2VMaXN0cy50eHQ6IEZpeCB3ZWlyZCBidWlsZCBmYWlsdXJlLCB3ZSB3ZXJlIG1p
c3NpbmcgYSBkaXJlY3RvcnkuIE5vdAorICAgICAgICBzdXJlIHdoeSB0aGlzIHdhcyBuZXZlciBu
b3RpY2VkIHVudGlsIG5vdyBvciB3aHkgdGhlIGJvdHMgYXJlIE9LLgorICAgICAgICAqIGd0ay9q
aGJ1aWxkLm1vZHVsZXM6IEFkZCB1cHN0cmVhbSBwYXRjaCB0byBhdm9pZCB3YXJuaW5ncyBpbnNp
ZGUgR19ERUZJTkVfVFlQRS4KKyAgICAgICAgKiB3cGUvamhidWlsZC5tb2R1bGVzOiBEaXR0by4K
KwogMjAxOC0wNS0wNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXSBNdWx0aXBsZSBsaW5rcyBpbiBNYWlsIGFyZSBkcm9wcGVkIGluIGEgc2lu
Z2xlIGxpbmUsIGFuZCBhcmUgZGlmZmljdWx0IHRvIHRlbGwgYXBhcnQKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NN
YWtlTGlzdHMudHh0CmluZGV4IGViNzhlOWE4YzdmYjc2NjgwZjhmOWFmNDllNjA3YTc0NTQwYTMw
ZGQuLjEwZjhmY2FmYzA1YWE3ZDhlNzcwZjgzNWU5MmNjZWU4ODE4NTc2NzIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9DTWFrZUxpc3RzLnR4dApAQCAtMTc4LDYgKzE3OCw3IEBAIGluY2x1ZGVfZGlyZWN0b3Jp
ZXMoCiAgICAgJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucwogICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJCisgICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL0MKICAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUKICAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MKICkKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy9ndGsv
amhidWlsZC5tb2R1bGVzCmluZGV4IDEzNGM2NGM0YTNjYzljOTkwNTNmODQyMzE5YjljNzQ5ZWM0
ZmY2YjcuLjA2YjMxODcwNjE4NjY4Nzg3NjU1YTFlM2E2MDc0OGI4MTY4NDk5OGYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVsZXMKKysrIGIvVG9vbHMvZ3RrL2poYnVpbGQubW9k
dWxlcwpAQCAtMjE4LDYgKzIxOCw3IEBACiAgICAgICAgICAgICBoYXNoPSJzaGEyNTY6YmI4OWU1
YzVhYWQzMzE2OWE4YzdmMjhiNDU2NzFjNzg5OWMxMmY3NGNhZjcwNzczN2Y3ODRkNzEwMjc1OGU2
YyI+CiAgICAgICA8IS0tIFRoaXMgcGF0Y2ggbGFuZGVkIGluIGdsaWItMi01NCBicmFuY2ggYW5k
IHdpbGwgYmUgYXZhaWxhYmxlIGluIDIuNTQuMy4gLS0+CiAgICAgICA8cGF0Y2ggZmlsZT0iZ2xp
Yi1ndGVzdGVyLWRvLW5vdC1jb25zaWRlci1za2lwcGVkLXRlc3RzLWFzLWZhaWx1cmVzLnBhdGNo
IiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdsaWItY2FzdC1mdW5jdGlvbi10eXBl
LnBhdGNoIiBzdHJpcD0iMSIvPgogICAgIDwvYnJhbmNoPgogICA8L2F1dG90b29scz4KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1v
ZHVsZXMKaW5kZXggMTA5MDQ2N2JhMzdiZjJkODI2NTMwMDI1YzBmMTA3YzdlNWJhM2EwMi4uODVk
OTE0NTVkNDc2MjBhMzIxYWI3MjE4NDZhNjE2MGUyODcyZTcyYiAxMDA2NDQKLS0tIGEvVG9vbHMv
d3BlL2poYnVpbGQubW9kdWxlcworKysgYi9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCkBAIC03
Myw2ICs3Myw3IEBACiAgICAgICAgICAgICBoYXNoPSJzaGEyNTY6OTYzZmRjNjY4NWRjM2RhOGU1
MzgxZGZiOWYxNWNhNGI1NzA5YjI4YmU4NGQ5ZDA1YTliYjhlNDQ2YWJhYzBhOCI+CiAgICAgICA8
cGF0Y2ggZmlsZT0iZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcu
cGF0Y2giIHN0cmlwPSIxIi8+CiAgICAgICA8cGF0Y2ggZmlsZT0iZ2xpYi1yZXZlcnQtd2FrZXVw
LWNoYW5nZXMucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgICA8cGF0Y2ggZmlsZT0iZ2xpYi1jYXN0
LWZ1bmN0aW9uLXR5cGUucGF0Y2giIHN0cmlwPSIxIi8+CiAgICAgPC9icmFuY2g+CiAgIDwvYXV0
b3Rvb2xzPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339928</attachid>
            <date>2018-05-08 21:56:56 -0700</date>
            <delta_ts>2018-05-09 09:08:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185462-20180508235655.patch</filename>
            <type>text/plain</type>
            <size>59597</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxNTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MTA5NGQzMmFjNDRhNTUyNmRkNWI5MWE3MTk2M2VmYjY0NDkyOTI1Li4yMDc4MzA4MGQ1Y2M0ZWZm
ODI0MDMyYjU2M2FiZDI0MmEyNTZhZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOC0wNS0wOCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGln
YWxpYS5jb20+CisKKyAgICAgICAgW1dQRV0gQnVpbGQgY2xlYW5seSB3aXRoIEdDQyA4IGFuZCBJ
Q1UgNjAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NTQ2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
QVBJL2dsaWIvSlNDQ2xhc3MuY3BwOiBTaWxlbmNlIG1hbnkgLVdjYXN0LWZ1bmN0aW9uLXR5cGUg
d2FybmluZ3MuCisgICAgICAgIChqc2NfY2xhc3NfYWRkX2NvbnN0cnVjdG9yKToKKyAgICAgICAg
KGpzY19jbGFzc19hZGRfbWV0aG9kKToKKyAgICAgICAgKiBBUEkvZ2xpYi9KU0NWYWx1ZS5jcHA6
IFNpbGVuY2UgbWFueSAtV2Nhc3QtZnVuY3Rpb24tdHlwZSB3YXJuaW5ncy4KKyAgICAgICAgKGpz
Y192YWx1ZV9vYmplY3RfZGVmaW5lX3Byb3BlcnR5X2FjY2Vzc29yKToKKyAgICAgICAgKGpzY192
YWx1ZV9uZXdfZnVuY3Rpb24pOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBCdWlsZCBCdWls
dGluTmFtZXMuY3BwIHdpdGggLWZuby12YXItdHJhY2tpbmctYXNzaWdubWVudHMuIFRoaXMgd2Fz
IGEKKyAgICAgICAgcHJvYmxlbSB3aXRoIEdDQyA3IHRvbywgYnV0IG1pZ2h0IGFzIHdlbGwgZml4
IGl0IG5vdy4KKyAgICAgICAgKiBhc3NlbWJsZXIvUHJvYmVDb250ZXh0Lmg6CisgICAgICAgIChK
U0M6OlByb2JlOjpDUFVTdGF0ZTo6Z3ByIGNvbnN0KTogU2lsZW5jZSBhIC1XY2xhc3MtbWVtYWNj
ZXNzIHdhcm5pbmcuCisgICAgICAgIChKU0M6OlByb2JlOjpDUFVTdGF0ZTo6c3ByIGNvbnN0KTog
RGl0dG8uIEFzc3VtZSBzdGQ6OnJlbW92ZV9jb25zdCBpcyBzYWZlIHRvIGNsb2JiZXIuCisgICAg
ICAgICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzUmVw
cmVzZW50YWJsZUFzKTogU2lsZW5jZSAtV2ZhbGx0aHJvdWdoIHdhcm5pbmcuCisgICAgICAgICog
YnVpbHRpbnMvQnVpbHRpbk5hbWVzLmNwcDoKKyAgICAgICAgKEpTQzo6QnVpbHRpbk5hbWVzOjpC
dWlsdGluTmFtZXMpOiBNb3ZlZCBmcm9tIEJ1aWx0aW5OYW1lcy5oIHNvIHdlIGNhbiB1c2UgYSBz
cGVjaWFsIGZsYWcuCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmg6CisgICAgICAg
IChKU0M6OkJ1aWx0aW5OYW1lczo6QnVpbHRpbk5hbWVzKTogTW92ZWQgdG8gQnVpbHRpbk5hbWVz
LmNwcC4KKyAgICAgICAgKiBkZmcvREZHRG91YmxlRm9ybWF0U3RhdGUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjptZXJnZURvdWJsZUZvcm1hdFN0YXRlcyk6IFNpbGVuY2UgLVdmYWxsdGhyb3VnaCB3
YXJuaW5ncy4KKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrSW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpNYXJrZWRCbG9jazo6SGFuZGxlOjpmaW5pc2hTd2VlcEtub3dpbmdIZWFwQ2VsbFR5cGUp
OiBTaWxlbmNlIC1XZmFsbHRocm91Z2ggd2FybmluZ3MuCisgICAgICAgICogcnVudGltZS9Db25m
aWdGaWxlLmNwcDoKKyAgICAgICAgKEpTQzo6Q29uZmlnRmlsZTo6Y2Fub25pY2FsaXplUGF0aHMp
OiBIZXJlIEdDQyBmb3VuZCBhIGdlbnVpbmUgbWlzdGFrZSwgc3RybmNhdCBpcyBjYWxsZWQKKyAg
ICAgICAgd2l0aCB0aGUgd3JvbmcgbGVuZ3RoIHBhcmFtZXRlciBhbmQgdGhlIHJlc3VsdCBpcyBu
b3QgbnVsbC10ZXJtaW5hdGVkLiBBbHNvLCBzaWxlbmNlIGEKKyAgICAgICAgLVdzdHJpbmdvcC10
cnVuY2F0aW9uIHdhcm5pbmcgYXMgd2UgaW50ZW50aW9uYWxseSB0cnVuY2F0ZSBmaWxlbmFtZXMg
dGhhdCBleGNlZWQgUEFUSF9NQVguCisgICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3Jt
YXQuY3BwOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OnBhcnRUeXBlU3RyaW5n
KTogQXZvaWQgYW4gSUNVIGRlcHJlY2F0aW9uIHdhcm5pbmcuCisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KTog
V2Ugd2VyZSB1bmNvbmRpdGlvbmFsbHkgcnVubmluZyBzb21lIEJpZ0ludCBjb2RlIGJ5IGFjY2lk
ZW50LgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbik6IFByb2Jh
Ymx5IGEgc2VyaW91cyBidWc/IEZpeGVkLgorCiAyMDE4LTA1LTA4ICBNaWNoYWVsIFNhYm9mZiAg
PG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgbXVsdGlwbGUgV2F0Y2hwb2lu
dCBTZXQgZmlyZUFsbCgpIG1ldGhvZHMgd2l0aCB0ZW1wbGF0ZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0NoYW5nZUxvZyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwppbmRl
eCAxNTM4MTlkZTE0MTQ1ODliNGY4YTQ4YWFmNjYzMTNiNGJkYmMyODFhLi43NDNiOWNiM2Y0YWY3
ZjI0NTNjMjhmMThjNTNjYTliZWUyZThmODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTgtMDUtMDggIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtXUEVdIEJ1aWxkIGNsZWFubHkgd2l0aCBHQ0MgOCBhbmQgSUNVIDYw
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU0NjIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHhkZ21p
bWUvQ01ha2VMaXN0cy50eHQ6IFNpbGVuY2UgLVduby1jYXN0LWZ1bmN0aW9uLXR5cGUuIEknbSBu
b3QgZmlnaHRpbmcgeGRnLW1pbWUuCisKIDIwMTgtMDMtMDUgIERvbiBPbG1zdGVhZCAgPGRvbi5v
bG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ01ha2VdIFNwbGl0IEpTQyBoZWFkZXIgY29w
eWluZyBpbnRvIHB1YmxpYyBhbmQgcHJpdmF0ZSB0YXJnZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg5ZGM0MzZkM2NjOWEz
NGMwOWZiOTk3YjhmYTUxYTQ1M2NmNjM0NzcuLjE1OTNhMDk0OWJlMTIyZjk1ZGM3YWE3ODA3NDYw
ZTQwNWYzYWE3YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMDUtMDggIE1pY2hhZWwgQ2F0
YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdIEJ1aWxkIGNs
ZWFubHkgd2l0aCBHQ0MgOCBhbmQgSUNVIDYwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODU0NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9IYXNoVGFibGUuaDoKKyAgICAgICAgKFdURjo6SGFz
aFRhYmxlQnVja2V0SW5pdGlhbGl6ZXI8dHJ1ZT46OmluaXRpYWxpemUpOiBTaW5jZSAtV2NsYXNz
LW1lbWFjY2VzcyB3YXJuaW5nLiBUaGlzCisgICAgICAgIGlzIHByb2JhYmx5IHNhZmUgZW5vdWdo
LCBzaW5jZSBpdCdzIGZvciBhbiBlbXB0eSBidWNrZXQuCisgICAgICAgICogd3RmL1N0ZExpYkV4
dHJhcy5oOgorICAgICAgICAoV1RGOjpiaXR3aXNlX2Nhc3QpOiBTaWxlbmNlIC1XY2xhc3MtbWVt
YWNjZXNzIGFzIHdlIHVzZSB0eXBlIHRyYWl0cyB0byBlbnN1cmUgc2FmZXR5IGhlcmUuCisgICAg
ICAgICogd3RmL1ZlY3Rvci5oOiBEaXR0bywgYWxsIHVzZXMgYXJlIHNhZmUuCisgICAgICAgICog
d3RmL2dsaWIvV1RGR1R5cGUuaDogU2lsZW5jZSAtV2Nhc3QtZnVuY3Rpb24tdHlwZS4KKwogMjAx
OC0wNS0wNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEluUGxh
Y2VBYnN0cmFjdFN0YXRlOjpiZWdpbkJhc2ljQmxvY2sgc2hvdWxkbid0IGhhdmUgdG8gY2xlYXIg
YW55IGFic3RyYWN0IHZhbHVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZjMDc0MDQxZDE2MGMwMzAwM2RmZjUy
MGVjZDMxZmMxNzM3ZjhkMDYuLmZmYmI2MWZjODM4ZDMyZDc0N2VkMzdlNTJiOTRiZjI2Y2E1ZDZh
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxOC0wNS0wOCAgTWljaGFlbCBDYXRh
bnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV0gQnVpbGQgY2xl
YW5seSB3aXRoIEdDQyA4IGFuZCBJQ1UgNjAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4NTQ2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IEluY2x1ZGUgZGlyZWN0b3Jp
ZXMgYXJlIGluIHRoZSB3cm9uZyBwbGFjZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwOiBTaWxlbmNlIC1XY2xhc3MtbWVtYWNjZXNzIHByb2JsZW1zIGFuZCBsZWF2
ZSB3YXJuaW5ncy4KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnN0YXJ0T3JFbmRU
ZXh0TWFya2VyRGF0YUZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnRleHRNYXJrZXJEYXRhRm9yQ2hhcmFjdGVyT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnRleHRNYXJrZXJEYXRhRm9yVmlzaWJsZVBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRleHRNYXJrZXJEYXRhRm9yRmlyc3RQb3NpdGlvbklu
VGV4dENvbnRyb2wpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZS5jcHA6IFNpbGVuY2UgLVdm
YWxsdGhyb3VnaAorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6OmZvbnRMb2FkVGltaW5n
IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcDogU2lsZW5jZSAtV2Ns
YXNzLW1lbWFjY2VzcywgdGhpcyBvbmUgaXMgaW50ZW50aW9uYWwuCisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvckxpc3Q6OmFkb3B0U2VsZWN0b3JWZWN0b3IpOgorICAgICAgICAqIGVkaXRp
bmcvVGV4dEl0ZXJhdG9yLmNwcDogU2lsZW5jZSBJQ1UgZGVwcmVjYXRpb24gd2FybmluZ3MuCisg
ICAgICAgICogcGxhdGZvcm0vTGVuZ3RoLmg6CisgICAgICAgIChXZWJDb3JlOjpMZW5ndGg6Om9w
ZXJhdG9yPSk6IE1vcmUgLVdjbGFzcy1tZW1hY2Nlc3MsIGxvb2tzIGJlbmlnbi4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFk
aWVudDo6aGFzaCBjb25zdCk6IC1XY2xhc3MtbWVtYWNjZXNzIGFnYWluLiBMZWF2ZSBhIHdhcm5p
bmcuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0
ZXJhdG9yLmNwcDogU2lsZW5jZSBJQ1UgZGVwcmVjYXRpb24gd2FybmluZ3MuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb250Q2FzY2FkZTo6Zm9udEZvckNvbWJpbmluZ0NoYXJhY3RlclNlcXVlbmNl
IGNvbnN0KTogU2lsZW5jZSBJQ1UgZGVwcmVjYXRpb24uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OkZvbnRDdXN0b21QbGF0Zm9ybURh
dGEpOiBTaWxlbmNlIC1XY2FzdC1mdW5jdGlvbi10eXBlLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRhRnJlZVR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udDo6Y2FuUmVuZGVyQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UgY29uc3QpOiBT
aWxlbmNlIElDVSBkZXByZWNhdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvR3N0QWxsb2NhdG9yRmFzdE1hbGxvYy5jcHA6CisgICAgICAgIChnc3RBbGxvY2F0b3JG
YXN0TWFsbG9jTWVtVW5tYXApOiBGaXggLVdjYXN0LWZ1bmN0aW9uLXR5cGUuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0
ZVRyYWNrcyk6IEZpeCBiYWQgcHJpbnRmLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjplbmFibGVUcmFjayk6IEFub3RoZXIgYmFkIHByaW50Zi4KKyAgICAg
ICAgKFdlYkNvcmU6OmZpbmRITFNRdWV1ZSk6IEZpeCAtV2Nhc3QtZnVuY3Rpb24tdHlwZS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENsZWFyS2V5RGVj
cnlwdG9yR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKHdlYktpdE1lZGlhQ2xlYXJLZXlEZWNyeXB0
b3JEZWNyeXB0KTogRml4IGFub3RoZXIgYmFkIHByaW50Zi4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlSW1wbFNvdXAuY3BwOiBTaWxlbmNlIC1XY2Fz
dC1mdW5jdGlvbi10eXBlLgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1w
bDo6YmVnaW5XYWl0aW5nRm9yU29ja2V0V3JpdGFiaWxpdHkpOgorICAgICAgICAqIHBsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nLmNwcDogU2lsZW5jZSBJQ1UgZGVwcmVjcmF0aW9uLgorCiAyMDE4
LTA1LTA4ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxl
IHN5c3RlbSBwcmV2aWV3IGxpbmsgZmV0Y2hpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDEzYTE4YTM2YmQyOTky
ZDQyNTBkZThkZGZjNmIxNjgyN2JjODk2ZC4uMjM5YTNkZjAyMWFiZGFkYzNhYTZjZjVkNjBkMzI3
OGExMGE0YThjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wNS0wOCAgTWljaGFl
bCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV0gQnVp
bGQgY2xlYW5seSB3aXRoIEdDQyA4IGFuZCBJQ1UgNjAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTQ2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0
b3IuY3BwOgorICAgICAgICAoSVBDOjpHU29ja2V0TW9uaXRvcjo6c3RhcnQpOiBTaWxlbmNlIC1X
Y2FzdC1mdW5jdGlvbi10eXBlIHdhcm5pbmcuCisgICAgICAgICogU2hhcmVkL0FQSS9nbGliL1dl
YktpdENvbnRleHRNZW51LmNwcDoKKyAgICAgICAgKHdlYmtpdF9jb250ZXh0X21lbnVfbmV3X3dp
dGhfaXRlbXMpOiBEaXR0by4KKwogMjAxOC0wNS0wOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFw
cGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBuZXcgYXN5bmMgX3NhdmVjb29raWVzIFNQSSBmb3Ig
a2VlcGluZyBuZXR3b3JraW5nIHByb2Nlc3MgYWN0aXZlIGR1cmluZyBmbHVzaGluZyBjb29raWVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ2xhc3MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NsYXNzLmNwcAppbmRleCA2ODQz
Mzk4MWRkYjUxNjU3MDgzMGIyZTQwYzYyOTkxYWZkYjVkY2RjLi44NDFkMzdjZTZlZjExNDdiMjY0
ZDFkYjM5M2E0ZWU2ZmVlNWIzY2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL2dsaWIvSlNDQ2xhc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xp
Yi9KU0NDbGFzcy5jcHAKQEAgLTU2Myw3ICs1NjMsNyBAQCBKU0NWYWx1ZSoganNjX2NsYXNzX2Fk
ZF9jb25zdHJ1Y3RvcihKU0NDbGFzcyoganNjQ2xhc3MsIGNvbnN0IGNoYXIqIG5hbWUsIEdDYWxs
YgogICAgIH0KICAgICB2YV9lbmQoYXJncyk7CiAKLSAgICBHUmVmUHRyPEdDbG9zdXJlPiBjbG9z
dXJlID0gYWRvcHRHUmVmKGdfY2Nsb3N1cmVfbmV3KGNhbGxiYWNrLCB1c2VyRGF0YSwgcmVpbnRl
cnByZXRfY2FzdDxHQ2xvc3VyZU5vdGlmeT4oZGVzdHJveU5vdGlmeSkpKTsKKyAgICBHUmVmUHRy
PEdDbG9zdXJlPiBjbG9zdXJlID0gYWRvcHRHUmVmKGdfY2Nsb3N1cmVfbmV3KGNhbGxiYWNrLCB1
c2VyRGF0YSwgcmVpbnRlcnByZXRfY2FzdDxHQ2xvc3VyZU5vdGlmeT4ocmVpbnRlcnByZXRfY2Fz
dDxHQ2FsbGJhY2s+KGRlc3Ryb3lOb3RpZnkpKSkpOwogICAgIEpTQzo6RXhlY1N0YXRlKiBleGVj
ID0gdG9KUyhqc2NDb250ZXh0R2V0SlNDb250ZXh0KHByaXYtPmNvbnRleHQpKTsKICAgICBKU0M6
OlZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsK
QEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIGpzY19jbGFzc19hZGRfbWV0aG9kKEpTQ0NsYXNzKiBq
c2NDbGFzcywgY29uc3QgY2hhciogbmFtZSwgR0NhbGxiYWNrIGNhbGxiYQogICAgIH0KICAgICB2
YV9lbmQoYXJncyk7CiAKLSAgICBHUmVmUHRyPEdDbG9zdXJlPiBjbG9zdXJlID0gYWRvcHRHUmVm
KGdfY2Nsb3N1cmVfbmV3KGNhbGxiYWNrLCB1c2VyRGF0YSwgcmVpbnRlcnByZXRfY2FzdDxHQ2xv
c3VyZU5vdGlmeT4oZGVzdHJveU5vdGlmeSkpKTsKKyAgICBHUmVmUHRyPEdDbG9zdXJlPiBjbG9z
dXJlID0gYWRvcHRHUmVmKGdfY2Nsb3N1cmVfbmV3KGNhbGxiYWNrLCB1c2VyRGF0YSwgcmVpbnRl
cnByZXRfY2FzdDxHQ2xvc3VyZU5vdGlmeT4ocmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRl
c3Ryb3lOb3RpZnkpKSkpOwogICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gdG9KUyhqc2NDb250
ZXh0R2V0SlNDb250ZXh0KHByaXYtPmNvbnRleHQpKTsKICAgICBKU0M6OlZNJiB2bSA9IGV4ZWMt
PnZtKCk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWUuY3BwCmluZGV4IDc3M2YzZTI3M2ZlOGZkM2Y2NTE4
NDQ4MGM1NTZjMDhiYjYwMTI1OTMuLjY5M2JhMTA0ZTYxYTFjYTQ3ZTVmYzFkZTEzNjVmOTFjZTY3
NDE4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1ZhbHVlLmNwcApA
QCAtMTAwMywxNCArMTAwMywxNCBAQCB2b2lkIGpzY192YWx1ZV9vYmplY3RfZGVmaW5lX3Byb3Bl
cnR5X2FjY2Vzc29yKEpTQ1ZhbHVlKiB2YWx1ZSwgY29uc3QgY2hhciogcHJvcAogICAgIEpTQzo6
Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIodm0pOwog
ICAgIGlmIChnZXR0ZXIpIHsKLSAgICAgICAgR1JlZlB0cjxHQ2xvc3VyZT4gY2xvc3VyZSA9IGFk
b3B0R1JlZihnX2NjbG9zdXJlX25ldyhnZXR0ZXIsIHVzZXJEYXRhLCByZWludGVycHJldF9jYXN0
PEdDbG9zdXJlTm90aWZ5PihkZXN0cm95Tm90aWZ5KSkpOworICAgICAgICBHUmVmUHRyPEdDbG9z
dXJlPiBjbG9zdXJlID0gYWRvcHRHUmVmKGdfY2Nsb3N1cmVfbmV3KGdldHRlciwgdXNlckRhdGEs
IHJlaW50ZXJwcmV0X2Nhc3Q8R0Nsb3N1cmVOb3RpZnk+KHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxi
YWNrPihkZXN0cm95Tm90aWZ5KSkpKTsKICAgICAgICAgYXV0byogZnVuY3Rpb25PYmplY3QgPSB0
b1JlZihKU0M6OkpTQ0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZSh2bSwgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLCBBU0NJSUxpdGVyYWwoImdldCIpLAogICAgICAgICAgICAgSlNDOjpKU0ND
YWxsYmFja0Z1bmN0aW9uOjpUeXBlOjpNZXRob2QsIG51bGxwdHIsIFdURk1vdmUoY2xvc3VyZSks
IHByb3BlcnR5VHlwZSwgeyB9KSk7CiAgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGZ1bmN0aW9u
ID0ganNjQ29udGV4dEdldE9yQ3JlYXRlVmFsdWUocHJpdi0+Y29udGV4dC5nZXQoKSwgZnVuY3Rp
b25PYmplY3QpOwogICAgICAgICBqc2NfdmFsdWVfb2JqZWN0X3NldF9wcm9wZXJ0eShkZXNjcmlw
dG9yLmdldCgpLCAiZ2V0IiwgZnVuY3Rpb24uZ2V0KCkpOwogICAgIH0KICAgICBpZiAoc2V0dGVy
KSB7Ci0gICAgICAgIEdSZWZQdHI8R0Nsb3N1cmU+IGNsb3N1cmUgPSBhZG9wdEdSZWYoZ19jY2xv
c3VyZV9uZXcoc2V0dGVyLCB1c2VyRGF0YSwgZ2V0dGVyID8gbnVsbHB0ciA6IHJlaW50ZXJwcmV0
X2Nhc3Q8R0Nsb3N1cmVOb3RpZnk+KGRlc3Ryb3lOb3RpZnkpKSk7CisgICAgICAgIEdSZWZQdHI8
R0Nsb3N1cmU+IGNsb3N1cmUgPSBhZG9wdEdSZWYoZ19jY2xvc3VyZV9uZXcoc2V0dGVyLCB1c2Vy
RGF0YSwgZ2V0dGVyID8gbnVsbHB0ciA6IHJlaW50ZXJwcmV0X2Nhc3Q8R0Nsb3N1cmVOb3RpZnk+
KHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNrPihkZXN0cm95Tm90aWZ5KSkpKTsKICAgICAgICAg
YXV0byogZnVuY3Rpb25PYmplY3QgPSB0b1JlZihKU0M6OkpTQ0NhbGxiYWNrRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBBU0NJSUxpdGVyYWwoInNldCIp
LAogICAgICAgICAgICAgSlNDOjpKU0NDYWxsYmFja0Z1bmN0aW9uOjpUeXBlOjpNZXRob2QsIG51
bGxwdHIsIFdURk1vdmUoY2xvc3VyZSksIEdfVFlQRV9OT05FLCB7IHByb3BlcnR5VHlwZSB9KSk7
CiAgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGZ1bmN0aW9uID0ganNjQ29udGV4dEdldE9yQ3Jl
YXRlVmFsdWUocHJpdi0+Y29udGV4dC5nZXQoKSwgZnVuY3Rpb25PYmplY3QpOwpAQCAtMTA1NCw3
ICsxMDU0LDcgQEAgSlNDVmFsdWUqIGpzY192YWx1ZV9uZXdfZnVuY3Rpb24oSlNDQ29udGV4dCog
Y29udGV4dCwgY29uc3QgY2hhciogbmFtZSwgR0NhbGxiYWMKICAgICB9CiAgICAgdmFfZW5kKGFy
Z3MpOwogCi0gICAgR1JlZlB0cjxHQ2xvc3VyZT4gY2xvc3VyZSA9IGFkb3B0R1JlZihnX2NjbG9z
dXJlX25ldyhjYWxsYmFjaywgdXNlckRhdGEsIHJlaW50ZXJwcmV0X2Nhc3Q8R0Nsb3N1cmVOb3Rp
Znk+KGRlc3Ryb3lOb3RpZnkpKSk7CisgICAgR1JlZlB0cjxHQ2xvc3VyZT4gY2xvc3VyZSA9IGFk
b3B0R1JlZihnX2NjbG9zdXJlX25ldyhjYWxsYmFjaywgdXNlckRhdGEsIHJlaW50ZXJwcmV0X2Nh
c3Q8R0Nsb3N1cmVOb3RpZnk+KHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNrPihkZXN0cm95Tm90
aWZ5KSkpKTsKICAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IHRvSlMoanNjQ29udGV4dEdldEpT
Q29udGV4dChjb250ZXh0KSk7CiAgICAgSlNDOjpWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2tlcih2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggNzA4MDk2MmE2NmQxZGRiYmEwZWE1M2ViNzdkNzZhMjVlOWM3MWQ3NC4uNTg0MjY1
ZmFkZWYxYmY4ODMwNDZkMGNiMTExYjNlOGYxYTIwNWZlYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTE4Miw2ICsxMTgyLDkgQEAgaWYgKENPTVBJTEVSX0lTX0dDQ19P
Ul9DTEFORykKICAgICAjIEF2b2lkIHVzaW5nIGZ1c2VkIG11bHRpcGx5LWFkZCBpbnN0cnVjdGlv
bnMgc2luY2UgdGhpcyBjb3VsZCBnaXZlIGRpZmZlcmVudCByZXN1bHRzCiAgICAgIyBmb3IgZS5n
LiBwYXJzZUludCBkZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtIGFuZCBjb21waWxhdGlvbiBmbGFn
cy4KICAgICBXRUJLSVRfQUREX1RBUkdFVF9DWFhfRkxBR1MoSmF2YVNjcmlwdENvcmUgLWZmcC1j
b250cmFjdD1vZmYpCisKKyAgICAjIEF2b2lkICJ2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0
IGV4Y2VlZGVkIgorICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcyhidWlsdGlucy9CdWls
dGluTmFtZXMuY3BwIFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAtZm5vLXZhci10cmFja2luZy1h
c3NpZ25tZW50cykKIGVuZGlmICgpCiAKIFdFQktJVF9NQUtFX0ZPUldBUkRJTkdfSEVBREVSUyhK
YXZhU2NyaXB0Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9Qcm9iZUNvbnRleHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvUHJvYmVD
b250ZXh0LmgKaW5kZXggMzk0MWE4OWNjN2FlYTJkMjFlODlkMTUxNzlmYWIxMzNmMzA1YjdjNC4u
OTMyZWFlMjYyZDY4MGIzYTU5NDg5YjYxOTc4MzczODk0ZmQ2YWMxYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Qcm9iZUNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1Byb2JlQ29udGV4dC5oCkBAIC04NSw3ICs4NSw3IEBA
IFQgQ1BVU3RhdGU6OmdwcihSZWdpc3RlcklEIGlkKSBjb25zdAogICAgIENQVVN0YXRlKiBjcHUg
PSBjb25zdF9jYXN0PENQVVN0YXRlKj4odGhpcyk7CiAgICAgYXV0byYgZnJvbSA9IGNwdS0+Z3By
KGlkKTsKICAgICB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDxUPjo6dHlwZSB0byB7IH07Ci0g
ICAgc3RkOjptZW1jcHkoJnRvLCAmZnJvbSwgc2l6ZW9mKHRvKSk7IC8vIFVzZSBzdGQ6Om1lbWNw
eSB0byBhdm9pZCBzdHJpY3QgYWxpYXNpbmcgaXNzdWVzLgorICAgIHN0ZDo6bWVtY3B5KHN0YXRp
Y19jYXN0PHZvaWQqPigmdG8pLCAmZnJvbSwgc2l6ZW9mKHRvKSk7IC8vIFVzZSBzdGQ6Om1lbWNw
eSB0byBhdm9pZCBzdHJpY3QgYWxpYXNpbmcgaXNzdWVzLgogICAgIHJldHVybiB0bzsKIH0KIApA
QCAtOTUsNyArOTUsNyBAQCBUIENQVVN0YXRlOjpzcHIoU1BSZWdpc3RlcklEIGlkKSBjb25zdAog
ICAgIENQVVN0YXRlKiBjcHUgPSBjb25zdF9jYXN0PENQVVN0YXRlKj4odGhpcyk7CiAgICAgYXV0
byYgZnJvbSA9IGNwdS0+c3ByKGlkKTsKICAgICB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDxU
Pjo6dHlwZSB0byB7IH07Ci0gICAgc3RkOjptZW1jcHkoJnRvLCAmZnJvbSwgc2l6ZW9mKHRvKSk7
IC8vIFVzZSBzdGQ6Om1lbWNweSB0byBhdm9pZCBzdHJpY3QgYWxpYXNpbmcgaXNzdWVzLgorICAg
IHN0ZDo6bWVtY3B5KHN0YXRpY19jYXN0PHZvaWQqPigmdG8pLCAmZnJvbSwgc2l6ZW9mKHRvKSk7
IC8vIFVzZSBzdGQ6Om1lbWNweSB0byBhdm9pZCBzdHJpY3QgYWxpYXNpbmcgaXNzdWVzLgogICAg
IHJldHVybiB0bzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJBcmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKaW5kZXgg
N2EzOGQxMDhkM2Y0ZWI2MmRlOTljM2IyNWNkMWFiYmI3ZDA3MGE2YS4uNzM4ZGMzMmJkOTg4MjZl
MDA1NjgxN2M2YWY5NWY3ZGUyNDVkODVkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJBcmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckFyZy5oCkBAIC04ODksNiArODg5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgY2FzZSBXaWR0
aDY0OgogICAgICAgICAgICAgICAgIHJldHVybiBCMzo6aXNSZXByZXNlbnRhYmxlQXM8aW50NjRf
dD4odmFsdWUpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgVW5zaWduZWQ6CiAgICAgICAgICAgICBzd2l0Y2ggKHdpZHRoKSB7CiAgICAgICAgICAgICBj
YXNlIFdpZHRoODoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9C
dWlsdGluTmFtZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5O
YW1lcy5jcHAKaW5kZXggZjUyZTliOGJjZjNlZjY4MGIwYjE5NzljMDRkMzg0NzE4YTUyZTZlOS4u
NDVkZTgyZTdjYjU4YTI4M2IyMGZjYWU1OTgyYmJiNWMwNGRhOTE3NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5jcHAKQEAgLTQ3LDYgKzQ3LDI3
IEBAIFN5bWJvbEltcGw6OlN0YXRpY1N5bWJvbEltcGwgZG9sbGFyVk1Qcml2YXRlTmFtZSB7ICJQ
cml2YXRlU3ltYm9sLiR2bSIsIFN5bWJvbEltCiBTeW1ib2xJbXBsOjpTdGF0aWNTeW1ib2xJbXBs
IHBvbHlQcm90b1ByaXZhdGVOYW1lIHsgIlByaXZhdGVTeW1ib2wuUG9seVByb3RvIiwgU3ltYm9s
SW1wbDo6c19mbGFnSXNQcml2YXRlIH07CiAKIH0gLy8gbmFtZXNwYWNlIFN5bWJvbHMKKworLy8g
V2UgdHJlYXQgdGhlIGRvbGxhclZNIG5hbWUgYXMgYSBzcGVjaWFsIGNhc2UgYmVsb3cgZm9yICR2
bSAoYmVjYXVzZSBDb21tb25JZGVudGlmaWVycyBkb2VzIG5vdAorLy8geWV0IHN1cHBvcnQgdGhl
ICQgY2hhcmFjdGVyKS4KK0J1aWx0aW5OYW1lczo6QnVpbHRpbk5hbWVzKFZNKiB2bSwgQ29tbW9u
SWRlbnRpZmllcnMqIGNvbW1vbklkZW50aWZpZXJzKQorICAgIDogbV9lbXB0eUlkZW50aWZpZXIo
Y29tbW9uSWRlbnRpZmllcnMtPmVtcHR5SWRlbnRpZmllcikKKyAgICBKU0NfRk9SRUFDSF9CVUlM
VElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9CVUlMVElOX05BTUVTX0lOX0pTQykKKyAgICBK
U0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJ
WkVfQlVJTFRJTl9OQU1FU19JTl9KU0MpCisgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJ
RVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0woSU5JVElBTElaRV9CVUlMVElOX1NZTUJPTFMpCisg
ICAgLCBtX2RvbGxhclZNTmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiJHZtIikpCisg
ICAgLCBtX2RvbGxhclZNUHJpdmF0ZU5hbWUoSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgJnN0YXRp
Y19jYXN0PFN5bWJvbEltcGwmPihTeW1ib2xzOjpkb2xsYXJWTVByaXZhdGVOYW1lKSkpCisgICAg
LCBtX3BvbHlQcm90b1ByaXZhdGVOYW1lKElkZW50aWZpZXI6OmZyb21VaWQodm0sICZzdGF0aWNf
Y2FzdDxTeW1ib2xJbXBsJj4oU3ltYm9sczo6cG9seVByb3RvUHJpdmF0ZU5hbWUpKSkKK3sKKyAg
ICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUoSU5JVElBTElaRV9QUklWQVRFX1RP
X1BVQkxJQ19FTlRSWSkKKyAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9Q
Uk9QRVJUWV9OQU1FKElOSVRJQUxJWkVfUFJJVkFURV9UT19QVUJMSUNfRU5UUlkpCisgICAgSlND
X0ZPUkVBQ0hfQlVJTFRJTl9GVU5DVElPTl9OQU1FKElOSVRJQUxJWkVfUFVCTElDX1RPX1BSSVZB
VEVfRU5UUlkpCisgICAgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVS
VFlfTkFNRShJTklUSUFMSVpFX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQorICAgIEpTQ19DT01N
T05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJWkVf
U1lNQk9MX1BVQkxJQ19UT19QUklWQVRFX0VOVFJZKQorICAgIG1fcHJpdmF0ZVRvUHVibGljTWFw
LmFkZChtX2RvbGxhclZNUHJpdmF0ZU5hbWUuaW1wbCgpLCAmbV9kb2xsYXJWTU5hbWUpOworICAg
IG1fcHVibGljVG9Qcml2YXRlTWFwLmFkZChtX2RvbGxhclZNTmFtZS5pbXBsKCksICZtX2RvbGxh
clZNUHJpdmF0ZU5hbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2lmIENPTVBJTEVS
KE1TVkMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgK
aW5kZXggZDRmMzY0YWIzNjA4YWIyZjhkOWJjM2ExZGIxMTEwMDQ3NjA5OThmNy4uZjY2YjhjYjUx
ZWI0MDJkODczNmZkN2RkMGQyZDBlN2EyOTJmNDUxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtMjE5LDI2ICsyMTksNyBAQCBjbGFzcyBC
dWlsdGluTmFtZXMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEJ1aWx0aW5OYW1lcyk7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIAogcHVibGljOgotICAgIC8vIFdlIHRyZWF0IHRo
ZSBkb2xsYXJWTSBuYW1lIGFzIGEgc3BlY2lhbCBjYXNlIGJlbG93IGZvciAkdm0gKGJlY2F1c2Ug
Q29tbW9uSWRlbnRpZmllcnMgZG9lcyBub3QKLSAgICAvLyB5ZXQgc3VwcG9ydCB0aGUgJCBjaGFy
YWN0ZXIpLgotCi0gICAgQnVpbHRpbk5hbWVzKFZNKiB2bSwgQ29tbW9uSWRlbnRpZmllcnMqIGNv
bW1vbklkZW50aWZpZXJzKQotICAgICAgICA6IG1fZW1wdHlJZGVudGlmaWVyKGNvbW1vbklkZW50
aWZpZXJzLT5lbXB0eUlkZW50aWZpZXIpCi0gICAgICAgIEpTQ19GT1JFQUNIX0JVSUxUSU5fRlVO
Q1RJT05fTkFNRShJTklUSUFMSVpFX0JVSUxUSU5fTkFNRVNfSU5fSlNDKQotICAgICAgICBKU0Nf
Q09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9QUk9QRVJUWV9OQU1FKElOSVRJQUxJWkVf
QlVJTFRJTl9OQU1FU19JTl9KU0MpCi0gICAgICAgIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElG
SUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MKElOSVRJQUxJWkVfQlVJTFRJTl9TWU1CT0xTKQot
ICAgICAgICAsIG1fZG9sbGFyVk1OYW1lKElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICIkdm0i
KSkKLSAgICAgICAgLCBtX2RvbGxhclZNUHJpdmF0ZU5hbWUoSWRlbnRpZmllcjo6ZnJvbVVpZCh2
bSwgJnN0YXRpY19jYXN0PFN5bWJvbEltcGwmPihTeW1ib2xzOjpkb2xsYXJWTVByaXZhdGVOYW1l
KSkpCi0gICAgICAgICwgbV9wb2x5UHJvdG9Qcml2YXRlTmFtZShJZGVudGlmaWVyOjpmcm9tVWlk
KHZtLCAmc3RhdGljX2Nhc3Q8U3ltYm9sSW1wbCY+KFN5bWJvbHM6OnBvbHlQcm90b1ByaXZhdGVO
YW1lKSkpCi0gICAgewotICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05BTUUo
SU5JVElBTElaRV9QUklWQVRFX1RPX1BVQkxJQ19FTlRSWSkKLSAgICAgICAgSlNDX0NPTU1PTl9Q
UklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVpFX1BSSVZBVEVf
VE9fUFVCTElDX0VOVFJZKQotICAgICAgICBKU0NfRk9SRUFDSF9CVUlMVElOX0ZVTkNUSU9OX05B
TUUoSU5JVElBTElaRV9QVUJMSUNfVE9fUFJJVkFURV9FTlRSWSkKLSAgICAgICAgSlNDX0NPTU1P
Tl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfUFJPUEVSVFlfTkFNRShJTklUSUFMSVpFX1BVQkxJ
Q19UT19QUklWQVRFX0VOVFJZKQotICAgICAgICBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklF
UlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChJTklUSUFMSVpFX1NZTUJPTF9QVUJMSUNfVE9fUFJJ
VkFURV9FTlRSWSkKLSAgICAgICAgbV9wcml2YXRlVG9QdWJsaWNNYXAuYWRkKG1fZG9sbGFyVk1Q
cml2YXRlTmFtZS5pbXBsKCksICZtX2RvbGxhclZNTmFtZSk7Ci0gICAgICAgIG1fcHVibGljVG9Q
cml2YXRlTWFwLmFkZChtX2RvbGxhclZNTmFtZS5pbXBsKCksICZtX2RvbGxhclZNUHJpdmF0ZU5h
bWUpOwotICAgIH0KKyAgICBCdWlsdGluTmFtZXMoVk0qLCBDb21tb25JZGVudGlmaWVycyopOwog
CiAgICAgY29uc3QgSWRlbnRpZmllciogbG9va1VwUHJpdmF0ZU5hbWUoY29uc3QgSWRlbnRpZmll
ciYpIGNvbnN0OwogICAgIGNvbnN0IElkZW50aWZpZXImIGxvb2tVcFB1YmxpY05hbWUoY29uc3Qg
SWRlbnRpZmllciYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb3VibGVGb3JtYXRTdGF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdE
b3VibGVGb3JtYXRTdGF0ZS5oCmluZGV4IGJlOTM1YTBhODMxMjQ2ZWMxZDcxNjMwMTg3YjQ2YTUx
Y2E0ZjMzYzguLjBiZmQ3M2I3Y2U4MWRmZTU1ZDI3N2E2MGQ2NjUxNzljMzBlNmEzZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG91YmxlRm9ybWF0U3RhdGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvdWJsZUZvcm1hdFN0YXRlLmgKQEAg
LTQ4LDYgKzQ4LDcgQEAgaW5saW5lIERvdWJsZUZvcm1hdFN0YXRlIG1lcmdlRG91YmxlRm9ybWF0
U3RhdGVzKERvdWJsZUZvcm1hdFN0YXRlIGEsIERvdWJsZUZvcm0KICAgICAgICAgY2FzZSBDYW50
VXNlRG91YmxlRm9ybWF0OgogICAgICAgICAgICAgcmV0dXJuIENhbnRVc2VEb3VibGVGb3JtYXQ7
CiAgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOb3RVc2luZ0RvdWJsZUZvcm1h
dDoKICAgICAgICAgc3dpdGNoIChiKSB7CiAgICAgICAgIGNhc2UgRW1wdHlEb3VibGVGb3JtYXRT
dGF0ZToKQEAgLTU3LDYgKzU4LDcgQEAgaW5saW5lIERvdWJsZUZvcm1hdFN0YXRlIG1lcmdlRG91
YmxlRm9ybWF0U3RhdGVzKERvdWJsZUZvcm1hdFN0YXRlIGEsIERvdWJsZUZvcm0KICAgICAgICAg
Y2FzZSBDYW50VXNlRG91YmxlRm9ybWF0OgogICAgICAgICAgICAgcmV0dXJuIENhbnRVc2VEb3Vi
bGVGb3JtYXQ7CiAgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYW50VXNlRG91
YmxlRm9ybWF0OgogICAgICAgICByZXR1cm4gQ2FudFVzZURvdWJsZUZvcm1hdDsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9ja0lubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrSW5saW5lcy5oCmluZGV4
IGUzMzBkYTJiY2QxOTdjNjUxMzIzMDZjODAyNDczOWQyZjMyYzYyZDMuLjgyOTZhODcxOTMzNDg3
YzU4ZGEwZjdmNzA2NzNmYzQ3OWVjMDcxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtlZEJsb2NrSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtlZEJsb2NrSW5saW5lcy5oCkBAIC0zODgsNiArMzg4LDcgQEAgdm9pZCBNYXJr
ZWRCbG9jazo6SGFuZGxlOjpmaW5pc2hTd2VlcEtub3dpbmdIZWFwQ2VsbFR5cGUoRnJlZUxpc3Qq
IGZyZWVMaXN0LCBjb24KICAgICAgICAgICAgICAgICAgICAgc3BlY2lhbGl6ZWRTd2VlcDx0cnVl
LCBJc0VtcHR5LCBTd2VlcE9ubHksIEJsb2NrSGFzRGVzdHJ1Y3RvcnMsIERvbnRTY3JpYmJsZSwg
RG9lc05vdEhhdmVOZXdseUFsbG9jYXRlZCwgTWFya3NTdGFsZT4oZnJlZUxpc3QsIElzRW1wdHks
IFN3ZWVwT25seSwgQmxvY2tIYXNEZXN0cnVjdG9ycywgRG9udFNjcmliYmxlLCBEb2VzTm90SGF2
ZU5ld2x5QWxsb2NhdGVkLCBNYXJrc1N0YWxlLCBkZXN0cm95RnVuYyk7CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgU3dlZXBUb0ZyZWVMaXN0OgogICAgICAgICAgICAgICAg
IHN3aXRjaCAobWFya3NNb2RlKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBNYXJrc05vdFN0YWxl
OgpAQCAtMzk4LDYgKzM5OSw3IEBAIHZvaWQgTWFya2VkQmxvY2s6OkhhbmRsZTo6ZmluaXNoU3dl
ZXBLbm93aW5nSGVhcENlbGxUeXBlKEZyZWVMaXN0KiBmcmVlTGlzdCwgY29uCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vdEVtcHR5OgogICAgICAgICAgICAg
c3dpdGNoIChzd2VlcE1vZGUpIHsKICAgICAgICAgICAgIGNhc2UgU3dlZXBPbmx5OgpAQCAtNDA5
LDYgKzQxMSw3IEBAIHZvaWQgTWFya2VkQmxvY2s6OkhhbmRsZTo6ZmluaXNoU3dlZXBLbm93aW5n
SGVhcENlbGxUeXBlKEZyZWVMaXN0KiBmcmVlTGlzdCwgY29uCiAgICAgICAgICAgICAgICAgICAg
IHNwZWNpYWxpemVkU3dlZXA8dHJ1ZSwgTm90RW1wdHksIFN3ZWVwT25seSwgQmxvY2tIYXNEZXN0
cnVjdG9ycywgRG9udFNjcmliYmxlLCBEb2VzTm90SGF2ZU5ld2x5QWxsb2NhdGVkLCBNYXJrc1N0
YWxlPihmcmVlTGlzdCwgTm90RW1wdHksIFN3ZWVwT25seSwgQmxvY2tIYXNEZXN0cnVjdG9ycywg
RG9udFNjcmliYmxlLCBEb2VzTm90SGF2ZU5ld2x5QWxsb2NhdGVkLCBNYXJrc1N0YWxlLCBkZXN0
cm95RnVuYyk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU3dlZXBUb0Zy
ZWVMaXN0OgogICAgICAgICAgICAgICAgIHN3aXRjaCAobWFya3NNb2RlKSB7CiAgICAgICAgICAg
ICAgICAgY2FzZSBNYXJrc05vdFN0YWxlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uZmlnRmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db25maWdGaWxlLmNwcAppbmRleCBiYjg3NjY2YzQ4NTFiYTcwYjBiNTJjZjE0OGQ4NzBjNzJl
NjgzZjQ3Li45OGMxOTZmODJmNjg1MWJkZjcwZWY4ZDYyMjNiNWExNjkxMjkzNjJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25maWdGaWxlLmNwcApAQCAtNDg4LDggKzQ4
OCwxOSBAQCB2b2lkIENvbmZpZ0ZpbGU6OmNhbm9uaWNhbGl6ZVBhdGhzKCkKICAgICAgICAgICAg
IGJvb2wgc2hvdWxkQWRkUGF0aFNlcGFyYXRvciA9IGZpbGVuYW1lQnVmZmVyW3BhdGhuYW1lTGVu
Z3RoIC0gMV0gIT0gJy8nOwogICAgICAgICAgICAgaWYgKHNpemVvZihmaWxlbmFtZUJ1ZmZlcikg
LSAxICA+PSBwYXRobmFtZUxlbmd0aCArIHNob3VsZEFkZFBhdGhTZXBhcmF0b3IpIHsKICAgICAg
ICAgICAgICAgICBpZiAoc2hvdWxkQWRkUGF0aFNlcGFyYXRvcikKLSAgICAgICAgICAgICAgICAg
ICAgc3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgIi8iLCAxKTsKKyAgICAgICAgICAgICAgICAgICAg
c3RybmNhdChmaWxlbmFtZUJ1ZmZlciwgIi8iLCAyKTsgLy8gUm9vbSBmb3IgJy8nIHBsdXMgTlVM
CisjaWYgQ09NUElMRVIoR0NDKQorI2lmIEdDQ19WRVJTSU9OX0FUX0xFQVNUKDgsIDAsIDApCisj
cHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdzdHJpbmdvcC10cnVuY2F0aW9uIgorI2VuZGlmCisjZW5kaWYKICAgICAgICAgICAgICAg
ICBzdHJuY2F0KGZpbGVuYW1lQnVmZmVyLCBtX2ZpbGVuYW1lLCBzaXplb2YoZmlsZW5hbWVCdWZm
ZXIpIC0gc3RybGVuKGZpbGVuYW1lQnVmZmVyKSAtIDEpOworI2lmIENPTVBJTEVSKEdDQykKKyNp
ZiBHQ0NfVkVSU0lPTl9BVF9MRUFTVCg4LCAwLCAwKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
b3AKKyNlbmRpZgorI2VuZGlmCiAgICAgICAgICAgICAgICAgc3RybmNweShtX2ZpbGVuYW1lLCBm
aWxlbmFtZUJ1ZmZlciwgc19tYXhQYXRoTGVuZ3RoKTsKICAgICAgICAgICAgICAgICBtX2ZpbGVu
YW1lW3NfbWF4UGF0aExlbmd0aF0gPSAnXDAnOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKaW5kZXgg
MzgxZWJhYmRlYjNjMDRmZDg5MWFiMThlMWNkMjkzN2FlNzM2ZWFhMi4uMTU3M2M3Mjk1ZjE0OTc5
NmEwNWFkNzk3ODJkMDcyNjMzNDcyMzNlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCkBAIC05NjQsNyArOTY0LDcgQEAg
Y29uc3QgY2hhciogSW50bERhdGVUaW1lRm9ybWF0OjpwYXJ0VHlwZVN0cmluZyhVRGF0ZUZvcm1h
dEZpZWxkIGZpZWxkKQogICAgIGNhc2UgVURBVF9TVEFOREFMT05FX1FVQVJURVJfRklFTEQ6CiAg
ICAgY2FzZSBVREFUX1JFTEFURURfWUVBUl9GSUVMRDoKICAgICBjYXNlIFVEQVRfVElNRV9TRVBB
UkFUT1JfRklFTEQ6Ci0jaWYgVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPCA1OAorI2lmIFVfSUNV
X1ZFUlNJT05fTUFKT1JfTlVNIDwgNTggfHwgIWRlZmluZWQoVV9ISURFX0RFUFJFQ0FURURfQVBJ
KQogICAgIGNhc2UgVURBVF9GSUVMRF9DT1VOVDoKICNlbmRpZgogICAgICAgICByZXR1cm4gImxp
dGVyYWwiOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwCmluZGV4IGUxMzk4ZTJmNzRlODI1YzRiMjIxYWMwZGM1YjRhYmVlOTE5N2ZhZmUuLjY5
YjUzN2ViNWQ2ZTkyMWU3MmQ0Njg1MGUxOTZjMGFhMmRmOTQ2MzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTYyNyw5ICs2Mjcs
MTAgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYgdm0pCiAgICAgbV9nZW5lcmF0b3JQ
cm90b3R5cGUuc2V0KHZtLCB0aGlzLCBHZW5lcmF0b3JQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhp
cywgR2VuZXJhdG9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1faXRlcmF0
b3JQcm90b3R5cGUuZ2V0KCkpKSk7CiAgICAgbV9hc3luY0dlbmVyYXRvclByb3RvdHlwZS5zZXQo
dm0sIHRoaXMsIEFzeW5jR2VuZXJhdG9yUHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEFzeW5j
R2VuZXJhdG9yUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fYXN5bmNJdGVy
YXRvclByb3RvdHlwZS5nZXQoKSkpKTsKIAotI2RlZmluZSBDUkVBVEVfUFJPVE9UWVBFX0ZPUl9T
SU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBwcm9wZXJOYW1lLCBpbnN0YW5jZVR5
cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgXAotbV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlw
ZS5zZXQodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywg
Y2FwaXRhbE5hbWUjI1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtXyAjIyBw
cm90b3R5cGVCYXNlICMjIFByb3RvdHlwZS5nZXQoKSkpKTsgXAotbV8gIyMgcHJvcGVyTmFtZSAj
IyBTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBpbnN0YW5jZVR5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgdGhpcywgbV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlwZS5nZXQoKSkpOworI2RlZmluZSBD
UkVBVEVfUFJPVE9UWVBFX0ZPUl9TSU1QTEVfVFlQRShjYXBpdGFsTmFtZSwgbG93ZXJOYW1lLCBw
cm9wZXJOYW1lLCBpbnN0YW5jZVR5cGUsIGpzTmFtZSwgcHJvdG90eXBlQmFzZSkgZG8geyBcCisg
ICAgICAgIG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBjYXBpdGFs
TmFtZSMjUHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV8gIyMgcHJvdG90eXBlQmFzZSAjIyBQcm90b3R5
cGUuZ2V0KCkpKSk7IFwKKyAgICAgICAgbV8gIyMgcHJvcGVyTmFtZSAjIyBTdHJ1Y3R1cmUuc2V0
KHZtLCB0aGlzLCBpbnN0YW5jZVR5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV8gIyMg
bG93ZXJOYW1lICMjIFByb3RvdHlwZS5nZXQoKSkpOyBcCisgICAgfSB3aGlsZSAoMCk7CiAgICAg
CiAgICAgRk9SX0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShDUkVBVEVfUFJPVE9UWVBFX0ZPUl9T
SU1QTEVfVFlQRSkKIApAQCAtMTQzNyw5ICsxNDM4LDEwIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6
OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2
aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX3NoYXJlZEFycmF5QnVmZmVyU3RydWN0dXJlKTsK
ICNlbmRpZgogCi0jZGVmaW5lIFZJU0lUX1NJTVBMRV9UWVBFKENhcGl0YWxOYW1lLCBsb3dlck5h
bWUsIHByb3Blck5hbWUsIGluc3RhbmNlVHlwZSwganNOYW1lLCBwcm90b3R5cGVCYXNlKSBcCi0g
ICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV8gIyMgbG93ZXJOYW1lICMjIFByb3RvdHlw
ZSk7IFwKLSAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tXyAjIyBwcm9wZXJOYW1lICMj
IFN0cnVjdHVyZSk7IFwKKyNkZWZpbmUgVklTSVRfU0lNUExFX1RZUEUoQ2FwaXRhbE5hbWUsIGxv
d2VyTmFtZSwgcHJvcGVyTmFtZSwgaW5zdGFuY2VUeXBlLCBqc05hbWUsIHByb3RvdHlwZUJhc2Up
IGRvIHsgXAorICAgICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tXyAjIyBsb3dlck5h
bWUgIyMgUHJvdG90eXBlKTsgXAorICAgICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5t
XyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZSk7IFwKKyAgICB9IHdoaWxlICgwKTsKIAogICAg
IEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoVklTSVRfU0lNUExFX1RZUEUpCiAgICAgaWYg
KFVOTElLRUxZKE9wdGlvbnM6OnVzZUJpZ0ludCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L3hkZ21pbWUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS94ZGdtaW1l
L0NNYWtlTGlzdHMudHh0CmluZGV4IDczZmVlOTQ4ZTU3NjBiN2YxZjEwNzQyOTkwOTczNzE0OWMx
ODVkYTMuLjI2MDVlMWNkOTBjM2EwOTdlZTJhNzFiNTZlMDEyMWRlNmZhNGZjZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L3hkZ21pbWUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1RoaXJkUGFydHkveGRnbWltZS9DTWFrZUxpc3RzLnR4dApAQCAtMjEsNiArMjEsNyBAQCBhZGRf
ZGVmaW5pdGlvbnMoLURYREdfUFJFRklYPV93a194ZGcpCiBhZGRfbGlicmFyeSh4ZGdtaW1lIFNU
QVRJQyAke1hER01JTUVfU09VUkNFU30pCiAKIGlmIChDT01QSUxFUl9JU19HQ0NfT1JfQ0xBTkcp
Ci0gICAgV0VCS0lUX0FERF9UQVJHRVRfQ19GTEFHUyh4ZGdtaW1lIC1Xbm8tc2lnbi1jb21wYXJl
CisgICAgV0VCS0lUX0FERF9UQVJHRVRfQ19GTEFHUyh4ZGdtaW1lIC1Xbm8tY2FzdC1mdW5jdGlv
bi10eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1Xbm8tc2lnbi1j
b21wYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1Xbm8tdW51c2Vk
LXBhcmFtZXRlcikKIGVuZGlmICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFi
bGUuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCmluZGV4IDAyMmUyODFjYzkzYTVjZWEz
OWQzZDA3NzA0NzMwNDMwZTk1YWQ4MmYuLmU2YTk1MGZkNDAwOTM2Y2M0YmZmM2Q4NjRhMjQ3ODUy
ZWFkYjM1ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCkBAIC04NDcsNyArODQ3LDcgQEAgbmFtZXNwYWNlIFdU
RiB7CiAgICAgICAgICAgICAvLyBUaGlzIGluaXRpYWxpemVzIHRoZSBidWNrZXQgd2l0aG91dCBj
b3B5aW5nIHRoZSBlbXB0eSB2YWx1ZS4KICAgICAgICAgICAgIC8vIFRoYXQgbWFrZXMgaXQgcG9z
c2libGUgdG8gdXNlIHRoaXMgd2l0aCB0eXBlcyB0aGF0IGRvbid0IHN1cHBvcnQgY29weWluZy4K
ICAgICAgICAgICAgIC8vIFRoZSBtZW1zZXQgdG8gMCBsb29rcyBsaWtlIGEgc2xvdyBvcGVyYXRp
b24gYnV0IGlzIG9wdGltaXplZCBieSB0aGUgY29tcGlsZXJzLgotICAgICAgICAgICAgbWVtc2V0
KHN0ZDo6YWRkcmVzc29mKGJ1Y2tldCksIDAsIHNpemVvZihidWNrZXQpKTsKKyAgICAgICAgICAg
IG1lbXNldChzdGF0aWNfY2FzdDx2b2lkKj4oc3RkOjphZGRyZXNzb2YoYnVja2V0KSksIDAsIHNp
emVvZihidWNrZXQpKTsKICAgICAgICAgfQogICAgIH07CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaCBiL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5o
CmluZGV4IDQ5ZjJlMjk4OGQ5MjZiYzU2NTk1ZWJjOWEwY2U5MjcxODQwODdhYmUuLjc2NWY0MzI4
MWRmMDkxNTcyMWQ4ZjRhYTRmOTVhZGI3YjEyZmU1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1N0ZExpYkV4dHJhcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCkBA
IC0xNDIsNyArMTQyLDcgQEAgaW5saW5lIFRvVHlwZSBiaXR3aXNlX2Nhc3QoRnJvbVR5cGUgZnJv
bSkKICAgICBzdGF0aWNfYXNzZXJ0KF9faXNfdHJpdmlhbGx5X2NvcHlhYmxlKEZyb21UeXBlKSwg
ImJpdHdpc2VfY2FzdCBvZiBub24tdHJpdmlhbGx5LWNvcHlhYmxlIHR5cGUhIik7CiAjZW5kaWYK
ICAgICB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDxUb1R5cGU+Ojp0eXBlIHRvIHsgfTsKLSAg
ICBzdGQ6Om1lbWNweSgmdG8sICZmcm9tLCBzaXplb2YodG8pKTsKKyAgICBzdGQ6Om1lbWNweShz
dGF0aWNfY2FzdDx2b2lkKj4oJnRvKSwgc3RhdGljX2Nhc3Q8dm9pZCo+KCZmcm9tKSwgc2l6ZW9m
KHRvKSk7CiAgICAgcmV0dXJuIHRvOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9W
ZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCmluZGV4IGNmY2I2YmJhYzVhYjM0Yzlj
YzhhYmNkYTAyM2VmMWMxYjlhNTU5ZDguLjgwZWUyMGIzNjhmYWMwY2Q0N2YyMzE2MzE3NTJlMDQx
MmY2YjVhZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1ZlY3Rvci5oCkBAIC05Niw3ICs5Niw3IEBAIHN0cnVjdCBWZWN0b3JJbml0aWFs
aXplcjx0cnVlLCB0cnVlLCBUPgogewogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVJZk5vblBP
RChUKiBiZWdpbiwgVCogZW5kKQogICAgIHsKLSAgICAgICAgbWVtc2V0KGJlZ2luLCAwLCByZWlu
dGVycHJldF9jYXN0PGNoYXIqPihlbmQpIC0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oYmVnaW4p
KTsKKyAgICAgICAgbWVtc2V0KHN0YXRpY19jYXN0PHZvaWQqPihiZWdpbiksIDAsIHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KGVuZCkgLSByZWludGVycHJldF9jYXN0PGNoYXIqPihiZWdpbikpOwog
ICAgIH0KIAogICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoVCogYmVnaW4sIFQqIGVuZCkKQEAg
LTE0MSwxMSArMTQxLDExIEBAIHN0cnVjdCBWZWN0b3JNb3Zlcjx0cnVlLCBUPgogewogICAgIHN0
YXRpYyB2b2lkIG1vdmUoY29uc3QgVCogc3JjLCBjb25zdCBUKiBzcmNFbmQsIFQqIGRzdCkgCiAg
ICAgewotICAgICAgICBtZW1jcHkoZHN0LCBzcmMsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hh
cio+KHNyY0VuZCkgLSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcmMpKTsKKyAgICAg
ICAgbWVtY3B5KHN0YXRpY19jYXN0PHZvaWQqPihkc3QpLCBzdGF0aWNfY2FzdDx2b2lkKj4oY29u
c3RfY2FzdDxUKj4oc3JjKSksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHNyY0VuZCkg
LSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcmMpKTsKICAgICB9CiAgICAgc3RhdGlj
IHZvaWQgbW92ZU92ZXJsYXBwaW5nKGNvbnN0IFQqIHNyYywgY29uc3QgVCogc3JjRW5kLCBUKiBk
c3QpIAogICAgIHsKLSAgICAgICAgbWVtbW92ZShkc3QsIHNyYywgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBjaGFyKj4oc3JjRW5kKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHNyYykp
OworICAgICAgICBtZW1tb3ZlKHN0YXRpY19jYXN0PHZvaWQqPihkc3QpLCBzdGF0aWNfY2FzdDx2
b2lkKj4oY29uc3RfY2FzdDxUKj4oc3JjKSksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KHNyY0VuZCkgLSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcmMpKTsKICAgICB9CiB9
OwogCkBAIC0xNzEsNyArMTcxLDcgQEAgc3RydWN0IFZlY3RvckNvcGllcjx0cnVlLCBUPgogewog
ICAgIHN0YXRpYyB2b2lkIHVuaW5pdGlhbGl6ZWRDb3B5KGNvbnN0IFQqIHNyYywgY29uc3QgVCog
c3JjRW5kLCBUKiBkc3QpCiAgICAgewotICAgICAgICBtZW1jcHkoZHN0LCBzcmMsIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHNyY0VuZCkgLSByZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihzcmMpKTsKKyAgICAgICAgbWVtY3B5KHN0YXRpY19jYXN0PHZvaWQqPihkc3QpLCBzdGF0
aWNfY2FzdDx2b2lkKj4oY29uc3RfY2FzdDxUKj4oc3JjKSksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgY2hhcio+KHNyY0VuZCkgLSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcmMpKTsK
ICAgICB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KICAgICBzdGF0aWMgdm9pZCB1bmluaXRp
YWxpemVkQ29weShjb25zdCBUKiBzcmMsIGNvbnN0IFQqIHNyY0VuZCwgVSogZHN0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9XVEZHVHlwZS5oIGIvU291cmNlL1dURi93dGYvZ2xp
Yi9XVEZHVHlwZS5oCmluZGV4IDdiNzMzYjU4Mzg5YWE3MDdjNGRhYjYyZmExMzQyOTBlY2UzZmZm
MzUuLjdmMWNmNGRjMzc0YTg5ODkxYmQzYTY1NjJmOTJiNTZkMGI3ZTk4MDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL2dsaWIvV1RGR1R5cGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGli
L1dURkdUeXBlLmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIHZvaWQgdHlwZV9uYW1lIyNfZmlu
YWxpemUoR09iamVjdCogb2JqZWN0KSBcCiAgICAgR19PQkpFQ1RfQ0xBU1ModHlwZV9uYW1lIyNf
cGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsgXAogfSBcCiBcCi1zdGF0aWMgdm9pZCB0
eXBlX25hbWUjI19jbGFzc19pbnRlcm5faW5pdChncG9pbnRlciBrbGFzcykgXAorc3RhdGljIHZv
aWQgdHlwZV9uYW1lIyNfY2xhc3NfaW50ZXJuX2luaXQoZ3BvaW50ZXIga2xhc3MsIGdwb2ludGVy
KSBcCiB7IFwKICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNT
KGtsYXNzKTsgXAogICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShrbGFzcywgc2l6ZW9mKFR5
cGVOYW1lIyNQcml2YXRlKSk7IFwKQEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIHZvaWQgdHlwZV9u
YW1lIyNfY2xhc3NfaW50ZXJuX2luaXQoZ3BvaW50ZXIga2xhc3MpIFwKICAgICBnT2JqZWN0Q2xh
c3MtPmZpbmFsaXplID0gdHlwZV9uYW1lIyNfZmluYWxpemU7IFwKIH0gXAogXAotc3RhdGljIHZv
aWQgdHlwZV9uYW1lIyNfaW5pdChUeXBlTmFtZSogc2VsZikgXAorc3RhdGljIHZvaWQgdHlwZV9u
YW1lIyNfaW5pdChUeXBlTmFtZSogc2VsZiwgZ3BvaW50ZXIpIFwKIHsgXAogICAgIFR5cGVOYW1l
IyNQcml2YXRlKiBwcml2ID0gR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKHNlbGYsIHR5cGVf
bmFtZSMjX2dldF90eXBlKCksIFR5cGVOYW1lIyNQcml2YXRlKTsgXAogICAgIHNlbGYtPnByaXYg
PSBwcml2OyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGE2Zjc3Zjc2NjVlNDViYzAw
NzMyM2NlZjg1OTM1ODQ2NjY5MDJkZjkuLjgyM2M3N2RkYjIxOGU0M2RmMTRjODczZmI1YTZmNmVk
YWJhZmE4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xNTYsMTEgKzE1NiwxMSBA
QCBpZiAoRU5BQkxFX1BMVUdJTl9QUk9DRVNTX0dUSzIpCiAgICAgKQogICAgIHRhcmdldF9pbmNs
dWRlX2RpcmVjdG9yaWVzKFdlYkNvcmVQbGF0Zm9ybUdUSzIgUFJJVkFURQogICAgICAgICAke1dl
YkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFU30KLSAgICAgICAgJHtHVEsyX0lOQ0xVREVfRElSU30K
LSAgICAgICAgJHtHREsyX0lOQ0xVREVfRElSU30KICAgICApCiAgICAgdGFyZ2V0X2luY2x1ZGVf
ZGlyZWN0b3JpZXMoV2ViQ29yZVBsYXRmb3JtR1RLMiBTWVNURU0gUFJJVkFURQogICAgICAgICAk
e1dlYkNvcmVfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVN9CisgICAgICAgICR7R1RLMl9JTkNM
VURFX0RJUlN9CisgICAgICAgICR7R0RLMl9JTkNMVURFX0RJUlN9CiAgICAgKQogICAgIHRhcmdl
dF9saW5rX2xpYnJhcmllcyhXZWJDb3JlUGxhdGZvcm1HVEsyCiAgICAgICAgICAke1dlYkNvcmVf
TElCUkFSSUVTfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKaW5kZXggMzk5OGYzMTNlMGY2YWIyNGFiYjkwM2ZlNDZjYWI4YTcwZWIwMjc4MC4uMzFi
OGEyYjc4YzMyM2RmYmU5Yzk5ZTVkMTY5MWQ2YzllYWE0N2Y1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xOTYxLDcgKzE5NjEsOSBA
QCBDaGFyYWN0ZXJPZmZzZXQgQVhPYmplY3RDYWNoZTo6c3RhcnRPckVuZENoYXJhY3Rlck9mZnNl
dEZvclJhbmdlKFJlZlB0cjxSYW5nZT4gcgogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnN0YXJ0T3JF
bmRUZXh0TWFya2VyRGF0YUZvclJhbmdlKFRleHRNYXJrZXJEYXRhJiB0ZXh0TWFya2VyRGF0YSwg
UmVmUHRyPFJhbmdlPiByYW5nZSwgYm9vbCBpc1N0YXJ0KQogewotICAgIG1lbXNldCgmdGV4dE1h
cmtlckRhdGEsIDAsIHNpemVvZihUZXh0TWFya2VyRGF0YSkpOworICAgIC8vIFRoaXMgbWVtb3J5
IG11c3QgYmUgemVybydkIHNvIGluc3RhbmNlcyBvZiBUZXh0TWFya2VyRGF0YSBjYW4gYmUgdGVz
dGVkIGZvciBieXRlLWVxdWl2YWxlbmNlLgorICAgIC8vIFdhcm5pbmc6IFRoaXMgaXMgcmlza3kg
YW5kIGJhZCBiZWNhdXNlIFRleHRNYXJrZXJEYXRhIGlzIGEgbm9udHJpdmlhbCB0eXBlLgorICAg
IG1lbXNldChzdGF0aWNfY2FzdDx2b2lkKj4oJnRleHRNYXJrZXJEYXRhKSwgMCwgc2l6ZW9mKFRl
eHRNYXJrZXJEYXRhKSk7CiAgICAgCiAgICAgQ2hhcmFjdGVyT2Zmc2V0IGNoYXJhY3Rlck9mZnNl
dCA9IHN0YXJ0T3JFbmRDaGFyYWN0ZXJPZmZzZXRGb3JSYW5nZShyYW5nZSwgaXNTdGFydCk7CiAg
ICAgaWYgKGNoYXJhY3Rlck9mZnNldC5pc051bGwoKSkKQEAgLTIwMTgsNyArMjAyMCwxMCBAQCBD
aGFyYWN0ZXJPZmZzZXQgQVhPYmplY3RDYWNoZTo6Y2hhcmFjdGVyT2Zmc2V0Rm9yTm9kZUFuZE9m
ZnNldChOb2RlJiBub2RlLCBpbnQgbwogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnRleHRNYXJrZXJE
YXRhRm9yQ2hhcmFjdGVyT2Zmc2V0KFRleHRNYXJrZXJEYXRhJiB0ZXh0TWFya2VyRGF0YSwgY29u
c3QgQ2hhcmFjdGVyT2Zmc2V0JiBjaGFyYWN0ZXJPZmZzZXQpCiB7Ci0gICAgbWVtc2V0KCZ0ZXh0
TWFya2VyRGF0YSwgMCwgc2l6ZW9mKFRleHRNYXJrZXJEYXRhKSk7CisgICAgLy8gVGhpcyBtZW1v
cnkgbXVzdCBiZSB6ZXJvJ2Qgc28gaW5zdGFuY2VzIG9mIFRleHRNYXJrZXJEYXRhIGNhbiBiZSB0
ZXN0ZWQgZm9yIGJ5dGUtZXF1aXZhbGVuY2UuCisgICAgLy8gV2FybmluZzogVGhpcyBpcyByaXNr
eSBhbmQgYmFkIGJlY2F1c2UgVGV4dE1hcmtlckRhdGEgaXMgYSBub250cml2aWFsIHR5cGUuCisg
ICAgbWVtc2V0KHN0YXRpY19jYXN0PHZvaWQqPigmdGV4dE1hcmtlckRhdGEpLCAwLCBzaXplb2Yo
VGV4dE1hcmtlckRhdGEpKTsKKwogICAgIHNldFRleHRNYXJrZXJEYXRhV2l0aENoYXJhY3Rlck9m
ZnNldCh0ZXh0TWFya2VyRGF0YSwgY2hhcmFjdGVyT2Zmc2V0KTsKIH0KIApAQCAtMjE5OCw4ICsy
MjAzLDkgQEAgc3RkOjpvcHRpb25hbDxUZXh0TWFya2VyRGF0YT4gQVhPYmplY3RDYWNoZTo6dGV4
dE1hcmtlckRhdGFGb3JWaXNpYmxlUG9zaXRpb24oY28KICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0
eU9iamVjdD4gb2JqID0gY2FjaGUtPmdldE9yQ3JlYXRlKGRvbU5vZGUpOwogCiAgICAgLy8gVGhp
cyBtZW1vcnkgbXVzdCBiZSB6ZXJvJ2Qgc28gaW5zdGFuY2VzIG9mIFRleHRNYXJrZXJEYXRhIGNh
biBiZSB0ZXN0ZWQgZm9yIGJ5dGUtZXF1aXZhbGVuY2UuCisgICAgLy8gV2FybmluZzogVGhpcyBp
cyByaXNreSBhbmQgYmFkIGJlY2F1c2UgVGV4dE1hcmtlckRhdGEgaXMgYSBub250cml2aWFsIHR5
cGUuCiAgICAgVGV4dE1hcmtlckRhdGEgdGV4dE1hcmtlckRhdGE7Ci0gICAgbWVtc2V0KCZ0ZXh0
TWFya2VyRGF0YSwgMCwgc2l6ZW9mKFRleHRNYXJrZXJEYXRhKSk7CisgICAgbWVtc2V0KHN0YXRp
Y19jYXN0PHZvaWQqPigmdGV4dE1hcmtlckRhdGEpLCAwLCBzaXplb2YoVGV4dE1hcmtlckRhdGEp
KTsKICAgICAKICAgICB0ZXh0TWFya2VyRGF0YS5heElEID0gb2JqLmdldCgpLT5heE9iamVjdElE
KCk7CiAgICAgdGV4dE1hcmtlckRhdGEubm9kZSA9IGRvbU5vZGU7CkBAIC0yMjI2LDggKzIyMzIs
OSBAQCBzdGQ6Om9wdGlvbmFsPFRleHRNYXJrZXJEYXRhPiBBWE9iamVjdENhY2hlOjp0ZXh0TWFy
a2VyRGF0YUZvckZpcnN0UG9zaXRpb25JblRleAogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCiAgICAgLy8gVGhpcyBtZW1vcnkgbXVzdCBiZSB6ZXJvJ2Qgc28gaW5zdGFuY2VzIG9mIFRl
eHRNYXJrZXJEYXRhIGNhbiBiZSB0ZXN0ZWQgZm9yIGJ5dGUtZXF1aXZhbGVuY2UuCisgICAgLy8g
V2FybmluZzogVGhpcyBpcyByaXNreSBhbmQgYmFkIGJlY2F1c2UgVGV4dE1hcmtlckRhdGEgaXMg
YSBub250cml2aWFsIHR5cGUuCiAgICAgVGV4dE1hcmtlckRhdGEgdGV4dE1hcmtlckRhdGE7Ci0g
ICAgbWVtc2V0KCZ0ZXh0TWFya2VyRGF0YSwgMCwgc2l6ZW9mKFRleHRNYXJrZXJEYXRhKSk7Cisg
ICAgbWVtc2V0KHN0YXRpY19jYXN0PHZvaWQqPigmdGV4dE1hcmtlckRhdGEpLCAwLCBzaXplb2Yo
VGV4dE1hcmtlckRhdGEpKTsKICAgICAKICAgICB0ZXh0TWFya2VyRGF0YS5heElEID0gb2JqLmdl
dCgpLT5heE9iamVjdElEKCk7CiAgICAgdGV4dE1hcmtlckRhdGEubm9kZSA9ICZ0ZXh0Q29udHJv
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCmluZGV4IDQ4MmMwYzA4NGUxZjBjNjA4MjUx
YTZhNjRhNzQyNTRiZTEwZjA4OTEuLjk5MzA4MzNlOTdlZTgzZjc0NDdiNTZkNWY3NTU0NmNlYmY2
NTEwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcApAQCAtNjA1LDYgKzYwNSw3IEBA
IGF1dG8gQ1NTRm9udEZhY2U6OmZvbnRMb2FkVGltaW5nKCkgY29uc3QgLT4gRm9udExvYWRUaW1p
bmcKICAgICAgICAgY2FzZSBGb250TG9hZGluZ0JlaGF2aW9yOjpPcHRpb25hbDoKICAgICAgICAg
ICAgIHJldHVybiB7IDAuMV9zLCAwX3MgfTsKICAgICAgICAgfQorICAgICAgICBicmVhazsKICAg
ICBjYXNlIFNldHRpbmdzOjpGb250TG9hZFRpbWluZ092ZXJyaWRlOjpCbG9jazoKICAgICAgICAg
cmV0dXJuIHsgU2Vjb25kczo6aW5maW5pdHkoKSwgMF9zIH07CiAgICAgY2FzZSBTZXR0aW5nczo6
Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6U3dhcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9y
TGlzdC5jcHAKaW5kZXggNTdlZmE2N2QwYjNlYTQ4OGZjN2FjMzRlMTE0YTNiNjBlZDhjZTZhOS4u
NGZjNjk4MzhjNzEwODExMzZlMDJmYTIzOTVjY2VhOTY4MWI5ZjRhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBDU1NTZWxlY3Rv
ckxpc3Q6OmFkb3B0U2VsZWN0b3JWZWN0b3IoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJz
ZXJTZWxlY3QKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAvLyBNb3ZlIGl0ZW0gZnJv
bSB0aGUgcGFyc2VyIHNlbGVjdG9yIHZlY3RvciBpbnRvIG1fc2VsZWN0b3JBcnJheSB3aXRob3V0
IGludm9raW5nIGRlc3RydWN0b3IgKFVnaC4pCiAgICAgICAgICAgICAgICAgQ1NTU2VsZWN0b3Iq
IGN1cnJlbnRTZWxlY3RvciA9IGN1cnJlbnQtPnJlbGVhc2VTZWxlY3RvcigpLnJlbGVhc2UoKTsK
LSAgICAgICAgICAgICAgICBtZW1jcHkoJm1fc2VsZWN0b3JBcnJheVthcnJheUluZGV4XSwgY3Vy
cmVudFNlbGVjdG9yLCBzaXplb2YoQ1NTU2VsZWN0b3IpKTsKKyAgICAgICAgICAgICAgICBtZW1j
cHkoc3RhdGljX2Nhc3Q8dm9pZCo+KCZtX3NlbGVjdG9yQXJyYXlbYXJyYXlJbmRleF0pLCBzdGF0
aWNfY2FzdDx2b2lkKj4oY3VycmVudFNlbGVjdG9yKSwgc2l6ZW9mKENTU1NlbGVjdG9yKSk7CiAK
ICAgICAgICAgICAgICAgICAvLyBGcmVlIHRoZSB1bmRlcmx5aW5nIG1lbW9yeSB3aXRob3V0IGlu
dm9raW5nIHRoZSBkZXN0cnVjdG9yLgogICAgICAgICAgICAgICAgIG9wZXJhdG9yIGRlbGV0ZSAo
Y3VycmVudFNlbGVjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4
dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApp
bmRleCA2NTc0ZjFlZDU3ZDBlZDJiODcyMGUwYzgyYjg0YTg2MmUyZTIwNDY2Li40YjIyYTUwOTNk
MTMxM2Q3NTMyMjM5MzZiYTQzNWYwOTRjZmExYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
ZXh0SXRlcmF0b3IuY3BwCkBAIC0xOTk5LDExICsxOTk5LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBjb250YWluc0thbmFMZXR0ZXJzKGNvbnN0IFN0cmluZyYgcGF0dGVybikKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCisjcHJhZ21hIEdDQyBkaWFn
bm9zdGljIHB1c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKICNlbmRpZgotLy8gTk9URTogSUNVJ3MgdW5vcm1fbm9ybWFsaXplIGZ1
bmN0aW9uIGlzIGRlcHJlY2F0ZWQgaW4gc29tZSBTREtzLgorLy8gTk9URTogSUNVJ3MgdW5vcm1f
bm9ybWFsaXplIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuCiAKIHN0YXRpYyB2b2lkIG5vcm1hbGl6
ZUNoYXJhY3RlcnMoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgVmVj
dG9yPFVDaGFyPiYgYnVmZmVyKQogewpAQCAtMjAyNiw4ICsyMDI2LDggQEAgc3RhdGljIHZvaWQg
bm9ybWFsaXplQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVu
Z3RoLCBWZWN0b3IKICAgICBBU1NFUlQoc3RhdHVzID09IFVfU1RSSU5HX05PVF9URVJNSU5BVEVE
X1dBUk5JTkcpOwogfQogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCisjaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQorI3ByYWdtYSBHQ0MgZGlhZ25v
c3RpYyBwb3AKICNlbmRpZgogCiBzdGF0aWMgYm9vbCBpc05vbkxhdGluMVNlcGFyYXRvcihVQ2hh
cjMyIGNoYXJhY3RlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0
aC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgKaW5kZXggNjRhMDhlOGMxYjRm
Yzk2ZTUzY2M3MmJlYjZlYzg0YjBjNzU3YTc1OS4uYmYxNDQyMWFmMzVmNzlkN2U0MGZkM2NkZjRh
ZGZjNDNhNTdjZGVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3Ro
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmgKQEAgLTE5Niw3ICsxOTYs
NyBAQCBpbmxpbmUgTGVuZ3RoJiBMZW5ndGg6Om9wZXJhdG9yPShjb25zdCBMZW5ndGgmIG90aGVy
KQogICAgIGlmIChpc0NhbGN1bGF0ZWQoKSkKICAgICAgICAgZGVyZWYoKTsKIAotICAgIG1lbWNw
eSh0aGlzLCAmb3RoZXIsIHNpemVvZihMZW5ndGgpKTsKKyAgICBtZW1jcHkoc3RhdGljX2Nhc3Q8
dm9pZCo+KHRoaXMpLCBzdGF0aWNfY2FzdDx2b2lkKj4oY29uc3RfY2FzdDxMZW5ndGgqPigmb3Ro
ZXIpKSwgc2l6ZW9mKExlbmd0aCkpOwogICAgIHJldHVybiAqdGhpczsKIH0KIApAQCAtMjA4LDcg
KzIwOCw3IEBAIGlubGluZSBMZW5ndGgmIExlbmd0aDo6b3BlcmF0b3I9KExlbmd0aCYmIG90aGVy
KQogICAgIGlmIChpc0NhbGN1bGF0ZWQoKSkKICAgICAgICAgZGVyZWYoKTsKIAotICAgIG1lbWNw
eSh0aGlzLCAmb3RoZXIsIHNpemVvZihMZW5ndGgpKTsKKyAgICBtZW1jcHkoc3RhdGljX2Nhc3Q8
dm9pZCo+KHRoaXMpLCBzdGF0aWNfY2FzdDx2b2lkKj4oJm90aGVyKSwgc2l6ZW9mKExlbmd0aCkp
OwogICAgIG90aGVyLm1fdHlwZSA9IEF1dG87CiAgICAgcmV0dXJuICp0aGlzOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwCmluZGV4IGU3ZjhjNjcx
MDE1MzAzY2M4YTE3NmY0NjllNmQ4NmUyNTg3NDhhMjQuLjg5OTRjMDIxZWRmYjkyNjE2YmVkY2Yy
ZjUyN2FlMTU2YmIxN2M1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYWRpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFkaWVudC5jcHAKQEAgLTIxMyw3ICsyMTMsOCBAQCB1bnNpZ25lZCBHcmFkaWVudDo6aGFz
aCgpIGNvbnN0CiAgICAgQ09NUElMRV9BU1NFUlQoIShzaXplb2YoQ29sb3JTdG9wKSAlIDIpLCBD
b2xvcl9zdG9wX3NpemVfc2hvdWxkX2JlX211bHRpcGxlX29mX3R3byk7CiAgICAgCiAgICAgLy8g
RW5zdXJlIHRoYXQgYW55IHBhZGRpbmcgaW4gdGhlIHN0cnVjdCBpcyB6ZXJvLWZpbGxlZCwgc28g
aXQgd2lsbCBub3QgYWZmZWN0IHRoZSBoYXNoIHZhbHVlLgotICAgIG1lbXNldCgmcGFyYW1ldGVy
cywgMCwgc2l6ZW9mKHBhcmFtZXRlcnMpKTsKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBhc2tpbmcg
Zm9yIHRyb3VibGUsIGJlY2F1c2UgaXQgaXMgYSBub250cml2aWFsIHR5cGUuCisgICAgbWVtc2V0
KHN0YXRpY19jYXN0PHZvaWQqPigmcGFyYW1ldGVycyksIDAsIHNpemVvZihwYXJhbWV0ZXJzKSk7
CiAgICAgCiAgICAgV1RGOjpzd2l0Y2hPbihtX2RhdGEsCiAgICAgICAgIFsmcGFyYW1ldGVyc10g
KGNvbnN0IExpbmVhckRhdGEmIGRhdGEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0
b3IuY3BwCmluZGV4IDNhYWU3ZWQ0OTI4Njk2ZGRlZGQwZDQ5Nzk5OThkMzk5MDNmNzdiZDUuLjRk
NWQ4MDg4YTkyY2U5N2U5Y2Q0ODBiYzRjOGVhNTY4YjhlNmE2YmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFp
ckF3YXJlVGV4dEl0ZXJhdG9yLmNwcApAQCAtNjksMTEgKzY5LDExIEBAIGJvb2wgU3Vycm9nYXRl
UGFpckF3YXJlVGV4dEl0ZXJhdG9yOjpjb25zdW1lU2xvd0Nhc2UoVUNoYXIzMiYgY2hhcmFjdGVy
LCB1bnNpZ25lCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyNpZiBDT01QSUxFUihHQ0NfT1JfQ0xB
TkcpCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICNlbmRpZgotLy8gTk9URTogSUNV
J3MgdW5vcm1fbm9ybWFsaXplIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgaW4gc29tZSBTREtzLgor
Ly8gTk9URTogSUNVJ3MgdW5vcm1fbm9ybWFsaXplIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuCiAK
IFVDaGFyMzIgU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJhdG9yOjpub3JtYWxpemVWb2ljaW5n
TWFya3MoKQogewpAQCAtOTUsOCArOTUsOCBAQCBVQ2hhcjMyIFN1cnJvZ2F0ZVBhaXJBd2FyZVRl
eHRJdGVyYXRvcjo6bm9ybWFsaXplVm9pY2luZ01hcmtzKCkKICAgICByZXR1cm4gMDsKIH0KIAot
I2lmIENPTVBJTEVSKENMQU5HKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorI2lmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCiAjZW5kaWYK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Rm9udENhaXJvSGFyZmJ1enpORy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcAppbmRleCBhOGE3OGM3YmRhMWJlNmExMTI5
ODk4ZjliZWFlMGQxNTdiYzRmYWMyLi5lZjg0M2EwNjFlOWMwYzgyNjcxNjM0ODlkY2ZhYTM2NWIw
Zjc1NzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcApAQCAtNDksNyArNDksMTQgQEAg
Y29uc3QgRm9udCogRm9udENhc2NhZGU6OmZvbnRGb3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5j
ZShjb25zdCBVQ2hhciogY2hhcmFjdGUKIHsKICAgICBVRXJyb3JDb2RlIGVycm9yID0gVV9aRVJP
X0VSUk9SOwogICAgIFZlY3RvcjxVQ2hhciwgND4gbm9ybWFsaXplZENoYXJhY3RlcnMobGVuZ3Ro
KTsKKyNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1
c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKKyNlbmRpZgogICAgIGludDMyX3Qgbm9ybWFsaXplZExlbmd0aCA9IHVub3JtX25vcm1h
bGl6ZShjaGFyYWN0ZXJzLCBsZW5ndGgsIFVOT1JNX05GQywgVU5PUk1fVU5JQ09ERV8zXzIsIG5v
cm1hbGl6ZWRDaGFyYWN0ZXJzLmRhdGEoKSwgbGVuZ3RoLCAmZXJyb3IpOworI2lmIENPTVBJTEVS
KEdDQ19PUl9DTEFORykKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKICAgICBp
ZiAoVV9GQUlMVVJFKGVycm9yKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCmluZGV4IGQzZmM5
MzRmZTRiZTI2M2VhY2QxZDFjYzkzZTFmNjkyZDAxMGFiNjYuLmJkOWNkMDAwOWFmYmEwOWVmNTFl
ZDRlOGUwZmMyYzQ0ZjExZjJmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBs
YXRmb3JtRGF0YUZyZWVUeXBlLmNwcApAQCAtNDgsNyArNDgsNyBAQCBGb250Q3VzdG9tUGxhdGZv
cm1EYXRhOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhKEZUX0ZhY2UgZnJlZVR5cGVGYWNlLCBTaGFy
ZWRCdWZmZQogICAgIC8vIHRoaXMgY2Fpcm9fZm9udF9mYWNlX3QgaXMgZGVzdHJveWVkLCBpdCBj
bGVhbnMgdXAgdGhlIEZyZWVUeXBlIGZhY2UgYXMgd2VsbC4KICAgICBzdGF0aWMgY2Fpcm9fdXNl
cl9kYXRhX2tleV90IGZyZWVUeXBlRmFjZUtleTsKICAgICBjYWlyb19mb250X2ZhY2Vfc2V0X3Vz
ZXJfZGF0YShtX2ZvbnRGYWNlLCAmZnJlZVR5cGVGYWNlS2V5LCBmcmVlVHlwZUZhY2UsCi0gICAg
ICAgICByZWludGVycHJldF9jYXN0PGNhaXJvX2Rlc3Ryb3lfZnVuY190PihGVF9Eb25lX0ZhY2Up
KTsKKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjYWlyb19kZXN0cm95X2Z1bmNfdD4ocmVpbnRl
cnByZXRfY2FzdDxHQ2FsbGJhY2s+KEZUX0RvbmVfRmFjZSkpKTsKIH0KIAogRm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9TaW1wbGVG
b250RGF0YUZyZWVUeXBlLmNwcAppbmRleCA2YTBjMzIxMDVjM2UzNmIxMDMyZjg3YjkxOTA4OTQ4
YTY3MGQ4ZDIwLi5lMzgyOTBiM2FjYjk1NTIxZGFhOTkwODlkNmYyZjkxZWQ2MzFhNTVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9TaW1wbGVG
b250RGF0YUZyZWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9mcmVldHlwZS9TaW1wbGVGb250RGF0YUZyZWVUeXBlLmNwcApAQCAtMTk5LDcgKzE5OSwxNCBA
QCBib29sIEZvbnQ6OmNhblJlbmRlckNvbWJpbmluZ0NoYXJhY3RlclNlcXVlbmNlKGNvbnN0IFVD
aGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbAogCiAgICAgVUVycm9yQ29kZSBlcnJvciA9IFVfWkVS
T19FUlJPUjsKICAgICBWZWN0b3I8VUNoYXIsIDQ+IG5vcm1hbGl6ZWRDaGFyYWN0ZXJzKGxlbmd0
aCk7CisjaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBw
dXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCisjZW5kaWYKICAgICBpbnQzMl90IG5vcm1hbGl6ZWRMZW5ndGggPSB1bm9ybV9ub3Jt
YWxpemUoY2hhcmFjdGVycywgbGVuZ3RoLCBVTk9STV9ORkMsIFVOT1JNX1VOSUNPREVfM18yLCAm
bm9ybWFsaXplZENoYXJhY3RlcnNbMF0sIGxlbmd0aCwgJmVycm9yKTsKKyNpZiBDT01QSUxFUihH
Q0NfT1JfQ0xBTkcpCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCiAgICAgaWYg
KFVfRkFJTFVSRShlcnJvcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dzdEFsbG9jYXRvckZh
c3RNYWxsb2MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L0dzdEFsbG9jYXRvckZhc3RNYWxsb2MuY3BwCmluZGV4IDZiY2EyYzliY2FhODc1ZDgxY2M1ZmIw
NDBmZmQ5N2U4ODI1ZjVhNWIuLmEzZjRkM2VmNWEzZjNkZmYzZjhiMjk1MmU4ZjhhZDllZDBmNzc2
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9Hc3RBbGxvY2F0b3JGYXN0TWFsbG9jLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvR3N0QWxsb2NhdG9yRmFzdE1hbGxvYy5jcHAKQEAgLTg2LDkg
Kzg2LDggQEAgc3RhdGljIGdwb2ludGVyIGdzdEFsbG9jYXRvckZhc3RNYWxsb2NNZW1NYXAoR3N0
TWVtb3J5RmFzdE1hbGxvYyogbWVtb3J5LCBnc2l6ZSwKICAgICByZXR1cm4gbWVtb3J5LT5kYXRh
OwogfQogCi1zdGF0aWMgZ2Jvb2xlYW4gZ3N0QWxsb2NhdG9yRmFzdE1hbGxvY01lbVVubWFwKEdz
dE1lbW9yeUZhc3RNYWxsb2MqKQorc3RhdGljIHZvaWQgZ3N0QWxsb2NhdG9yRmFzdE1hbGxvY01l
bVVubWFwKEdzdE1lbW9yeUZhc3RNYWxsb2MqKQogewotICAgIHJldHVybiBUUlVFOwogfQogCiBz
dGF0aWMgR3N0TWVtb3J5RmFzdE1hbGxvYyogZ3N0QWxsb2NhdG9yRmFzdE1hbGxvY01lbUNvcHko
R3N0TWVtb3J5RmFzdE1hbGxvYyogbWVtb3J5LCBnc3NpemUgb2Zmc2V0LCBnc2l6ZSBzaXplKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAz
NmE5NTI2MmVmNDI3N2E5YWNiNWY2ZWVhYmI2M2U4NWM0MTg4NjQ1Li4yMjNkNDNlZTgxMTBjNTc4
NGFmMGE1MjQ2ZTk0YzRiYzc3MTIzOTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtNjg1LDcgKzY4NSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVUcmFja3MoKQogICAgICAgICAgICAgR1NUX1dBUk5J
TkcoIlVua25vd24gdHJhY2sgdHlwZSBmb3VuZCBmb3Igc3RyZWFtICVzIiwgc3RyZWFtSWQudXRm
OCgpLmRhdGEoKSk7CiAgICAgfQogCi0gICAgR1NUX0lORk8oIk1lZGlhIGhhcyAldSB2aWRlbyB0
cmFja3MsICV1IGF1ZGlvIHRyYWNrcyBhbmQgJXUgdGV4dCB0cmFja3MiLCB2YWxpZFZpZGVvU3Ry
ZWFtcy5zaXplKCksIHZhbGlkQXVkaW9TdHJlYW1zLnNpemUoKSwgdmFsaWRUZXh0U3RyZWFtcy5z
aXplKCkpOworICAgIEdTVF9JTkZPKCJNZWRpYSBoYXMgJXp1IHZpZGVvIHRyYWNrcywgJXp1IGF1
ZGlvIHRyYWNrcyBhbmQgJXp1IHRleHQgdHJhY2tzIiwgdmFsaWRWaWRlb1N0cmVhbXMuc2l6ZSgp
LCB2YWxpZEF1ZGlvU3RyZWFtcy5zaXplKCksIHZhbGlkVGV4dFN0cmVhbXMuc2l6ZSgpKTsKIAog
ICAgIGJvb2wgb2xkSGFzQXVkaW8gPSBtX2hhc0F1ZGlvOwogICAgIGJvb2wgb2xkSGFzVmlkZW8g
PSBtX2hhc1ZpZGVvOwpAQCAtNzQ5LDcgKzc0OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjplbmFibGVUcmFjayhUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpUcmFja1R5
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIEdTVF9JTkZPKCJF
bmFibGluZyAlcyB0cmFjayB3aXRoIGluZGV4OiAlbHUiLCB0cmFja1R5cGVBc1N0cmluZywgaW5k
ZXgpOworICAgIEdTVF9JTkZPKCJFbmFibGluZyAlcyB0cmFjayB3aXRoIGluZGV4OiAldSIsIHRy
YWNrVHlwZUFzU3RyaW5nLCBpbmRleCk7CiAgICAgLy8gRklYTUU6IFJlbW92ZSBpc01lZGlhU291
cmNlKCkgdGVzdCBiZWxvdyB3aGVuIGZpeGluZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgyNTMxCiAgICAgaWYgKG1faXNMZWdhY3lQbGF5YmluIHx8IGlzTWVkaWFT
b3VyY2UoKSkgewogICAgICAgICBHc3RFbGVtZW50KiBlbGVtZW50ID0gaXNNZWRpYVNvdXJjZSgp
ID8gbV9zb3VyY2UuZ2V0KCkgOiBtX3BpcGVsaW5lLmdldCgpOwpAQCAtNzYyLDcgKzc2Miw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjplbmFibGVUcmFjayhUcmFja1ByaXZh
dGVCYXNlR1N0cmVhbWVyOjpUcmFja1R5CiAgICAgICAgICAgICBTdHJpbmcgc3RyZWFtSWQgPSBn
c3Rfc3RyZWFtX2dldF9zdHJlYW1faWQoc3RyZWFtKTsKICAgICAgICAgICAgIHNlbGVjdGVkU3Ry
ZWFtcyA9IGdfbGlzdF9hcHBlbmQoc2VsZWN0ZWRTdHJlYW1zLCBnX3N0cmR1cChzdHJlYW1JZC51
dGY4KCkuZGF0YSgpKSk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgR1NUX1dBUk5JTkco
IiVzIHN0cmVhbSAlbHUgbm90IGZvdW5kIiwgdHJhY2tUeXBlQXNTdHJpbmcsIGluZGV4KTsKKyAg
ICAgICAgICAgIEdTVF9XQVJOSU5HKCIlcyBzdHJlYW0gJXUgbm90IGZvdW5kIiwgdHJhY2tUeXBl
QXNTdHJpbmcsIGluZGV4KTsKIAogICAgICAgICAvLyBUT0RPOiBNU0UgR3N0U3RyZWFtIEFQSSBz
dXBwb3J0OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTMxCiAg
ICAgICAgIGdzdF9lbGVtZW50X3NlbmRfZXZlbnQobV9waXBlbGluZS5nZXQoKSwgZ3N0X2V2ZW50
X25ld19zZWxlY3Rfc3RyZWFtcyhzZWxlY3RlZFN0cmVhbXMpKTsKQEAgLTE0NzcsOCArMTQ3Nyw5
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwdXJnZUludmFsaWRUZXh0VHJh
Y2tzKFZlY3RvcjxTdHJpbmc+IHZhbGlkVHJhCiB9CiAjZW5kaWYKIAotc3RhdGljIGludCBmaW5k
SExTUXVldWUoY29uc3QgR1ZhbHVlKiBpdGVtKQorc3RhdGljIGdpbnQgZmluZEhMU1F1ZXVlKGdj
b25zdHBvaW50ZXIgYSwgZ2NvbnN0cG9pbnRlcikKIHsKKyAgICBHVmFsdWUqIGl0ZW0gPSBzdGF0
aWNfY2FzdDxHVmFsdWUqPihjb25zdF9jYXN0PGdwb2ludGVyPihhKSk7CiAgICAgR3N0RWxlbWVu
dCogZWxlbWVudCA9IEdTVF9FTEVNRU5UKGdfdmFsdWVfZ2V0X29iamVjdChpdGVtKSk7CiAgICAg
aWYgKGdfc3RyX2hhc19wcmVmaXgoR1NUX0VMRU1FTlRfTkFNRShlbGVtZW50KSwgInF1ZXVlIikp
IHsKICAgICAgICAgR3N0RWxlbWVudCogcGFyZW50ID0gR1NUX0VMRU1FTlQoR1NUX0VMRU1FTlRf
UEFSRU5UKGVsZW1lbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9lbWUvV2ViS2l0Q2xlYXJLZXlEZWNyeXB0b3JHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRD
bGVhcktleURlY3J5cHRvckdTdHJlYW1lci5jcHAKaW5kZXggNjM4YzRjMTk1OGQ0NDJjNjk4MjY4
MzIzYWM4Y2M5MjYxZGM5MmE1ZC4uOGVkNTcwYzVhOTA3OTc2YmM3MTY4MGU5OWM2NzQ5MTE5MmY4
MzkyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL2VtZS9XZWJLaXRDbGVhcktleURlY3J5cHRvckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJLaXRDbGVhcktleURl
Y3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTI1NSw3ICsyNTUsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4g
d2ViS2l0TWVkaWFDbGVhcktleURlY3J5cHRvckRlY3J5cHQoV2ViS2l0TWVkaWFDb21tb25FbmNy
eXB0aW9uRAogCiAgICAgaWYgKCFzdWJTYW1wbGVDb3VudCkgewogICAgICAgICAvLyBGdWxsIHNh
bXBsZSBlbmNyeXB0aW9uLgotICAgICAgICBHU1RfVFJBQ0VfT0JKRUNUKHNlbGYsICJmdWxsIHNh
bXBsZSBlbmNyeXB0aW9uOiAlZCBlbmNyeXB0ZWQgYnl0ZXMiLCBtYXAuc2l6ZSk7CisgICAgICAg
IEdTVF9UUkFDRV9PQkpFQ1Qoc2VsZiwgImZ1bGwgc2FtcGxlIGVuY3J5cHRpb246ICV6dSBlbmNy
eXB0ZWQgYnl0ZXMiLCBtYXAuc2l6ZSk7CiAKICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGJ1ZmZl
ciBpcyBlbXB0eS4KICAgICAgICAgaWYgKG1hcC5zaXplKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlSW1wbFNvdXAu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhh
bmRsZUltcGxTb3VwLmNwcAppbmRleCBiOTRhYjU4ZjIzNTBlZDkzM2YwYWFjMzk1NDg0YTdlNmI1
NDE5YjRhLi4yNDhhNDIxZTQxZTZmN2JkMTFjZmFiYjhlNzIzYTExZjJiZDRiZDAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFu
ZGxlSW1wbFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKQEAgLTI2OCw3ICsyNjgsNyBAQCB2b2lk
IFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OmJlZ2luV2FpdGluZ0ZvclNvY2tldFdyaXRhYmlsaXR5
KCkKIAogICAgIG1fd3JpdGVSZWFkeVNvdXJjZSA9IGFkb3B0R1JlZihnX3BvbGxhYmxlX291dHB1
dF9zdHJlYW1fY3JlYXRlX3NvdXJjZShtX291dHB1dFN0cmVhbS5nZXQoKSwgbV9jYW5jZWxsYWJs
ZS5nZXQoKSkpOwogICAgIHJlZigpOwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3dyaXRl
UmVhZHlTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KHdyaXRlUmVh
ZHlDYWxsYmFjayksIHRoaXMsIFtdKGdwb2ludGVyIGhhbmRsZSkgeyAKKyAgICBnX3NvdXJjZV9z
ZXRfY2FsbGJhY2sobV93cml0ZVJlYWR5U291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdT
b3VyY2VGdW5jPihyZWludGVycHJldF9jYXN0PEdDYWxsYmFjaz4od3JpdGVSZWFkeUNhbGxiYWNr
KSksIHRoaXMsIFtdKGdwb2ludGVyIGhhbmRsZSkgewogICAgICAgICBzdGF0aWNfY2FzdDxTb2Nr
ZXRTdHJlYW1IYW5kbGVJbXBsKj4oaGFuZGxlKS0+ZGVyZWYoKTsKICAgICB9KTsKICAgICBnX3Nv
dXJjZV9hdHRhY2gobV93cml0ZVJlYWR5U291cmNlLmdldCgpLCBnX21haW5fY29udGV4dF9nZXRf
dGhyZWFkX2RlZmF1bHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRFbmNvZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRF
bmNvZGluZy5jcHAKaW5kZXggMTc5MmY4NzkzY2I3ZDQzYmVkM2M3MmE2MzUwNTlkZjlkYzgwN2Ri
OC4uNDAxM2YzN2NmN2UxZDdmNzcyOGQ4YzAwN2ZmYTY4MTcyNmQ1ZTAxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nLmNwcApAQCAtNjksMTEgKzY5LDEx
IEBAIFN0cmluZyBUZXh0RW5jb2Rpbmc6OmRlY29kZShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qg
bGVuZ3RoLCBib29sIHN0b3BPbkVycm9yLCBiCiAgICAgcmV0dXJuIG5ld1RleHRDb2RlYygqdGhp
cyktPmRlY29kZShkYXRhLCBsZW5ndGgsIHRydWUsIHN0b3BPbkVycm9yLCBzYXdFcnJvcik7CiB9
CiAKLSNpZiBDT01QSUxFUihDTEFORykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1
c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0
aW9ucyIKICNlbmRpZgotLy8gTk9URTogSUNVJ3MgdW5vcm1fcXVpY2tDaGVjayBhbmQgdW5vcm1f
bm9ybWFsaXplIGZ1bmN0aW9ucyBhcmUgZGVwcmVjYXRlZCBpbiBzb21lIFNES3MuCisvLyBOT1RF
OiBJQ1UncyB1bm9ybV9xdWlja0NoZWNrIGFuZCB1bm9ybV9ub3JtYWxpemUgZnVuY3Rpb25zIGFy
ZSBkZXByZWNhdGVkLgogCiBWZWN0b3I8dWludDhfdD4gVGV4dEVuY29kaW5nOjplbmNvZGUoU3Ry
aW5nVmlldyB0ZXh0LCBVbmVuY29kYWJsZUhhbmRsaW5nIGhhbmRsaW5nKSBjb25zdAogewpAQCAt
MTEyLDggKzExMiw4IEBAIFZlY3Rvcjx1aW50OF90PiBUZXh0RW5jb2Rpbmc6OmVuY29kZShTdHJp
bmdWaWV3IHRleHQsIFVuZW5jb2RhYmxlSGFuZGxpbmcgaGFuZGxpCiAgICAgcmV0dXJuIG5ld1Rl
eHRDb2RlYygqdGhpcyktPmVuY29kZShTdHJpbmdWaWV3IHsgc291cmNlLCBzb3VyY2VMZW5ndGgg
fSwgaGFuZGxpbmcpOwogfQogCi0jaWYgQ09NUElMRVIoQ0xBTkcpCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCisjaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQorI3ByYWdtYSBHQ0MgZGlh
Z25vc3RpYyBwb3AKICNlbmRpZgogCiBjb25zdCBjaGFyKiBUZXh0RW5jb2Rpbmc6OmRvbU5hbWUo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvZ2xpYi9HU29j
a2V0TW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRN
b25pdG9yLmNwcAppbmRleCBkMWU0ZmNjNTE1YzI4MWI0ODJjNTQyOGJmMjcyMDdlZjI5ZWU0YmU0
Li5iMDUyZjg3OGIxYTIxMTYxNjdmZDdlZWYwM2VjNjc2OTE0ZWZkZTAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcApAQCAtNTEs
NyArNTEsNyBAQCB2b2lkIEdTb2NrZXRNb25pdG9yOjpzdGFydChHU29ja2V0KiBzb2NrZXQsIEdJ
T0NvbmRpdGlvbiBjb25kaXRpb24sIFJ1bkxvb3AmIHJ1bgogICAgIG1fc291cmNlID0gYWRvcHRH
UmVmKGdfc29ja2V0X2NyZWF0ZV9zb3VyY2Uoc29ja2V0LCBjb25kaXRpb24sIG1fY2FuY2VsbGFi
bGUuZ2V0KCkpKTsKICAgICBnX3NvdXJjZV9zZXRfbmFtZShtX3NvdXJjZS5nZXQoKSwgIltXZWJL
aXRdIFNvY2tldCBtb25pdG9yIik7CiAgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
OwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3NvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRf
Y2FzdDxHU291cmNlRnVuYz4oc29ja2V0U291cmNlQ2FsbGJhY2spLCB0aGlzLCBudWxscHRyKTsK
KyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV9zb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nh
c3Q8R1NvdXJjZUZ1bmM+KHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNrPihzb2NrZXRTb3VyY2VD
YWxsYmFjaykpLCB0aGlzLCBudWxscHRyKTsKICAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkobV9z
b3VyY2UuZ2V0KCksIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6UnVuTG9vcERpc3BhdGNoZXIpOwog
ICAgIGdfc291cmNlX2F0dGFjaChtX3NvdXJjZS5nZXQoKSwgcnVuTG9vcC5tYWluQ29udGV4dCgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdENv
bnRleHRNZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9nbGliL1dlYktpdENvbnRl
eHRNZW51LmNwcAppbmRleCA1Y2ExMGFmOGRmZjA4MGNjMGRjNTA0MWRiMTNhMzc0MTcxYTBiNDUx
Li44NmM5YzBiMmRhMDZhMThjY2M2OGRlZDdmMDZiOTQxMzQ1NWM2NTQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnUuY3BwCkBAIC0x
MzYsNyArMTM2LDcgQEAgV2ViS2l0Q29udGV4dE1lbnUqIHdlYmtpdF9jb250ZXh0X21lbnVfbmV3
KCkKIFdlYktpdENvbnRleHRNZW51KiB3ZWJraXRfY29udGV4dF9tZW51X25ld193aXRoX2l0ZW1z
KEdMaXN0KiBpdGVtcykKIHsKICAgICBXZWJLaXRDb250ZXh0TWVudSogbWVudSA9IHdlYmtpdF9j
b250ZXh0X21lbnVfbmV3KCk7Ci0gICAgZ19saXN0X2ZvcmVhY2goaXRlbXMsIHJlaW50ZXJwcmV0
X2Nhc3Q8R0Z1bmM+KGdfb2JqZWN0X3JlZl9zaW5rKSwgMCk7CisgICAgZ19saXN0X2ZvcmVhY2go
aXRlbXMsIHJlaW50ZXJwcmV0X2Nhc3Q8R0Z1bmM+KHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNr
PihnX29iamVjdF9yZWZfc2luaykpLCAwKTsKICAgICBtZW51LT5wcml2LT5pdGVtcyA9IGdfbGlz
dF9jb3B5KGl0ZW1zKTsKIAogICAgIHJldHVybiBtZW51OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJmNWUzNDc1NzA4ZWM3Mzk2ZTQxZWYxNGI2
MGU2N2RiYjkyMGYzMzIuLmJkYjhhMzVkZGVkNTJiZTIwMmI0MzVjMDhiZTBjMDRlZTBkMGVlODkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOC0wNS0wOCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGln
YWxpYS5jb20+CisKKyAgICAgICAgW1dQRV0gQnVpbGQgY2xlYW5seSB3aXRoIEdDQyA4IGFuZCBJ
Q1UgNjAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NTQ2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dDogRml4IHdlaXJkIGJ1aWxkIGZhaWx1cmUsIHdl
IHdlcmUgbWlzc2luZyBhIGRpcmVjdG9yeS4gTm90CisgICAgICAgIHN1cmUgd2h5IHRoaXMgd2Fz
IG5ldmVyIG5vdGljZWQgdW50aWwgbm93IG9yIHdoeSB0aGUgYm90cyBhcmUgT0suCisgICAgICAg
ICogZ3RrL2poYnVpbGQubW9kdWxlczogQWRkIHVwc3RyZWFtIHBhdGNoIHRvIGF2b2lkIHdhcm5p
bmdzIGluc2lkZSBHX0RFRklORV9UWVBFLgorICAgICAgICAqIGd0ay9wYXRjaGVzL2dsaWItY2Fz
dC1mdW5jdGlvbi10eXBlLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvamhidWlsZC5tb2R1
bGVzOiBBZGQgdXBzdHJlYW0gcGF0Y2ggdG8gYXZvaWQgd2FybmluZ3MgaW5zaWRlIEdfREVGSU5F
X1RZUEUuCisgICAgICAgICogd3BlL3BhdGNoZXMvZ2xpYi1jYXN0LWZ1bmN0aW9uLXR5cGUucGF0
Y2g6IEFkZGVkLgorCiAyMDE4LTA1LTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIENvbnNvbGlkYXRlIFdlYkNvbnRlbnRSZWFkZXJJT1MgYW5kIFdl
YkNvbnRlbnRSZWFkZXJNYWMgaW50byBXZWJDb250ZW50UmVhZGVyQ29jb2EKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L0NNYWtlTGlzdHMudHh0CmluZGV4IGViNzhlOWE4YzdmYjc2NjgwZjhmOWFmNDllNjA3YTc0NTQw
YTMwZGQuLjEwZjhmY2FmYzA1YWE3ZDhlNzcwZjgzNWU5MmNjZWU4ODE4NTc2NzIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9DTWFrZUxpc3RzLnR4dApAQCAtMTc4LDYgKzE3OCw3IEBAIGluY2x1ZGVfZGlyZWN0
b3JpZXMoCiAgICAgJHtXRUJLSVRfRElSfS9TaGFyZWQvUGx1Z2lucwogICAgICR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJCisgICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL0MKICAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUKICAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MKICkKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy9n
dGsvamhidWlsZC5tb2R1bGVzCmluZGV4IDEzNGM2NGM0YTNjYzljOTkwNTNmODQyMzE5YjljNzQ5
ZWM0ZmY2YjcuLjA2YjMxODcwNjE4NjY4Nzg3NjU1YTFlM2E2MDc0OGI4MTY4NDk5OGYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVsZXMKKysrIGIvVG9vbHMvZ3RrL2poYnVpbGQu
bW9kdWxlcwpAQCAtMjE4LDYgKzIxOCw3IEBACiAgICAgICAgICAgICBoYXNoPSJzaGEyNTY6YmI4
OWU1YzVhYWQzMzE2OWE4YzdmMjhiNDU2NzFjNzg5OWMxMmY3NGNhZjcwNzczN2Y3ODRkNzEwMjc1
OGU2YyI+CiAgICAgICA8IS0tIFRoaXMgcGF0Y2ggbGFuZGVkIGluIGdsaWItMi01NCBicmFuY2gg
YW5kIHdpbGwgYmUgYXZhaWxhYmxlIGluIDIuNTQuMy4gLS0+CiAgICAgICA8cGF0Y2ggZmlsZT0i
Z2xpYi1ndGVzdGVyLWRvLW5vdC1jb25zaWRlci1za2lwcGVkLXRlc3RzLWFzLWZhaWx1cmVzLnBh
dGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdsaWItY2FzdC1mdW5jdGlvbi10
eXBlLnBhdGNoIiBzdHJpcD0iMSIvPgogICAgIDwvYnJhbmNoPgogICA8L2F1dG90b29scz4KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL3BhdGNoZXMvZ2xpYi1jYXN0LWZ1bmN0aW9uLXR5cGUucGF0
Y2ggYi9Ub29scy9ndGsvcGF0Y2hlcy9nbGliLWNhc3QtZnVuY3Rpb24tdHlwZS5wYXRjaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MzI4NzdkNmIyMGEyMTQ0NzFkZGZjYjFkMjhiMDU4ZTM2YTQyYzRmCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvZ3RrL3BhdGNoZXMvZ2xpYi1jYXN0LWZ1bmN0aW9uLXR5cGUucGF0
Y2gKQEAgLTAsMCArMSw1NCBAQAorRnJvbSBjMWY1ZTUyODQ0YzNiZjUwM2FjYTg4ODFiNmFmNjhm
NzhmMDI4YjRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTHVib21pciBSaW50ZWwg
PGxrdW5kcmFrQHYzLnNrPgorRGF0ZTogV2VkLCA3IEZlYiAyMDE4IDE3OjI3OjU0ICswMDAwCitT
dWJqZWN0OiBbUEFUQ0hdIGd0eXBlOiBjYXN0ICpfaW5pdCBmdW5jdGlvbnMgdG8gdm9pZCgqKSh2
b2lkKSBmaXJzdAorCitUaGUgKl9pbml0KCkgZnVuY3Rpb25zIGhhdmUgcHJvdG90eXBlcyBpbmNv
bXBhdGlibGUgd2l0aCAqSW5pdEZ1bmMgdHlwZXMgdGhleQorYXJlIGJlaW5nIGNhc3QgdG8uIFRo
aXMgdXBzZXRzIEdDQyA4J3MgLVdjYXN0LWZ1bmN0aW9uLXR5cGUgdGhhdCdzIGVuYWJsZWQgYnkK
K2RlZmF1bHQgd2l0aCAtV2V4dHJhLgorCitMZXQncyBub3QgaGF2ZSB0aGUgcHVibGljIGhlYWRl
ciBmaWxlcyBlbWl0IGEgd2FybmluZyBhbmQgbmV1dHJhbGl6ZSBpdCBieQorZG9pbmcgYSB2b2lk
KCopKHZvaWQpIGNhc3QgZmlyc3QuCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3df
YnVnLmNnaT9pZD03OTMyNzIKKy0tLQorIGdvYmplY3QvZ3R5cGUuaCB8IDggKysrKy0tLS0KKyAx
IGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0t
Z2l0IGEvZ29iamVjdC9ndHlwZS5oIGIvZ29iamVjdC9ndHlwZS5oCitpbmRleCBmNzcxYzA3Li42
MDhlZmIyIDEwMDY0NAorLS0tIGEvZ29iamVjdC9ndHlwZS5oCisrKysgYi9nb2JqZWN0L2d0eXBl
LmgKK0BAIC0xNzkwLDcgKzE3OTAsNyBAQCBndWludCAgICAgZ190eXBlX2dldF90eXBlX3JlZ2lz
dHJhdGlvbl9zZXJpYWwgKHZvaWQpOworICAqLworICNkZWZpbmUgR19JTVBMRU1FTlRfSU5URVJG
QUNFKFRZUEVfSUZBQ0UsIGlmYWNlX2luaXQpICAgICAgIHsgXAorICAgY29uc3QgR0ludGVyZmFj
ZUluZm8gZ19pbXBsZW1lbnRfaW50ZXJmYWNlX2luZm8gPSB7IFwKKy0gICAgKEdJbnRlcmZhY2VJ
bml0RnVuYykgaWZhY2VfaW5pdCwgTlVMTCwgTlVMTCBcCisrICAgIChHSW50ZXJmYWNlSW5pdEZ1
bmMpKHZvaWQgKCopKHZvaWQpKSBpZmFjZV9pbml0LCBOVUxMLCBOVUxMIFwKKyAgIH07IFwKKyAg
IGdfdHlwZV9hZGRfaW50ZXJmYWNlX3N0YXRpYyAoZ19kZWZpbmVfdHlwZV9pZCwgVFlQRV9JRkFD
RSwgJmdfaW1wbGVtZW50X2ludGVyZmFjZV9pbmZvKTsgXAorIH0KK0BAIC0xOTc0LDkgKzE5NzQs
OSBAQCB0eXBlX25hbWUjI19nZXRfdHlwZSAodm9pZCkgXAorICAgICAgICAgZ190eXBlX3JlZ2lz
dGVyX3N0YXRpY19zaW1wbGUgKFRZUEVfUEFSRU5ULCBcCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19pbnRlcm5fc3RhdGljX3N0cmluZyAoI1R5cGVOYW1lKSwgXAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoVHlwZU5hbWUj
I0NsYXNzKSwgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHQ2xh
c3NJbml0RnVuYykgdHlwZV9uYW1lIyNfY2xhc3NfaW50ZXJuX2luaXQsIFwKKysgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0NsYXNzSW5pdEZ1bmMpKHZvaWQgKCopKHZv
aWQpKSB0eXBlX25hbWUjI19jbGFzc19pbnRlcm5faW5pdCwgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoVHlwZU5hbWUpLCBcCistICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdJbnN0YW5jZUluaXRGdW5jKSB0eXBlX25hbWUj
I19pbml0LCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdJbnN0
YW5jZUluaXRGdW5jKSh2b2lkICgqKSh2b2lkKSkgdHlwZV9uYW1lIyNfaW5pdCwgXAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHVHlwZUZsYWdzKSBmbGFncyk7IFwK
KyAgICAgICB7IC8qIGN1c3RvbSBjb2RlIGZvbGxvd3MgKi8KKyAjZGVmaW5lIF9HX0RFRklORV9U
WVBFX0VYVEVOREVEX0VORCgpCVwKK0BAIC0yMDA4LDcgKzIwMDgsNyBAQCB0eXBlX25hbWUjI19n
ZXRfdHlwZSAodm9pZCkgXAorICAgICAgICAgZ190eXBlX3JlZ2lzdGVyX3N0YXRpY19zaW1wbGUg
KEdfVFlQRV9JTlRFUkZBQ0UsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX2ludGVybl9zdGF0aWNfc3RyaW5nICgjVHlwZU5hbWUpLCBcCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChUeXBlTmFtZSMjSW50ZXJmYWNlKSwg
XAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHQ2xhc3NJbml0RnVu
Yyl0eXBlX25hbWUjI19kZWZhdWx0X2luaXQsIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoR0NsYXNzSW5pdEZ1bmMpKEdWb2lkRnVuYyl0eXBlX25hbWUjI19kZWZh
dWx0X2luaXQsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBc
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdJbnN0YW5jZUluaXRG
dW5jKU5VTEwsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR1R5
cGVGbGFncykgMCk7IFwKKy0tCitsaWJnaXQyIDAuMjcuMAorCmRpZmYgLS1naXQgYS9Ub29scy93
cGUvamhidWlsZC5tb2R1bGVzIGIvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcwppbmRleCAxMDkw
NDY3YmEzN2JmMmQ4MjY1MzAwMjVjMGYxMDdjN2U1YmEzYTAyLi44NWQ5MTQ1NWQ0NzYyMGEzMjFh
YjcyMTg0NmE2MTYwZTI4NzJlNzJiIDEwMDY0NAotLS0gYS9Ub29scy93cGUvamhidWlsZC5tb2R1
bGVzCisrKyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKQEAgLTczLDYgKzczLDcgQEAKICAg
ICAgICAgICAgIGhhc2g9InNoYTI1Njo5NjNmZGM2Njg1ZGMzZGE4ZTUzODFkZmI5ZjE1Y2E0YjU3
MDliMjhiZTg0ZDlkMDVhOWJiOGU0NDZhYmFjMGE4Ij4KICAgICAgIDxwYXRjaCBmaWxlPSJnZGF0
ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaCIgc3RyaXA9IjEi
Lz4KICAgICAgIDxwYXRjaCBmaWxlPSJnbGliLXJldmVydC13YWtldXAtY2hhbmdlcy5wYXRjaCIg
c3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnbGliLWNhc3QtZnVuY3Rpb24tdHlwZS5w
YXRjaCIgc3RyaXA9IjEiLz4KICAgICA8L2JyYW5jaD4KICAgPC9hdXRvdG9vbHM+CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItY2FzdC1mdW5jdGlvbi10eXBlLnBhdGNoIGIv
VG9vbHMvd3BlL3BhdGNoZXMvZ2xpYi1jYXN0LWZ1bmN0aW9uLXR5cGUucGF0Y2gKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzMyODc3ZDZiMjBhMjE0NDcxZGRmY2IxZDI4YjA1OGUzNmE0MmM0ZgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItY2FzdC1mdW5jdGlvbi10eXBlLnBhdGNoCkBA
IC0wLDAgKzEsNTQgQEAKK0Zyb20gYzFmNWU1Mjg0NGMzYmY1MDNhY2E4ODgxYjZhZjY4Zjc4ZjAy
OGI0ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEx1Ym9taXIgUmludGVsIDxsa3Vu
ZHJha0B2My5zaz4KK0RhdGU6IFdlZCwgNyBGZWIgMjAxOCAxNzoyNzo1NCArMDAwMAorU3ViamVj
dDogW1BBVENIXSBndHlwZTogY2FzdCAqX2luaXQgZnVuY3Rpb25zIHRvIHZvaWQoKikodm9pZCkg
Zmlyc3QKKworVGhlICpfaW5pdCgpIGZ1bmN0aW9ucyBoYXZlIHByb3RvdHlwZXMgaW5jb21wYXRp
YmxlIHdpdGggKkluaXRGdW5jIHR5cGVzIHRoZXkKK2FyZSBiZWluZyBjYXN0IHRvLiBUaGlzIHVw
c2V0cyBHQ0MgOCdzIC1XY2FzdC1mdW5jdGlvbi10eXBlIHRoYXQncyBlbmFibGVkIGJ5CitkZWZh
dWx0IHdpdGggLVdleHRyYS4KKworTGV0J3Mgbm90IGhhdmUgdGhlIHB1YmxpYyBoZWFkZXIgZmls
ZXMgZW1pdCBhIHdhcm5pbmcgYW5kIG5ldXRyYWxpemUgaXQgYnkKK2RvaW5nIGEgdm9pZCgqKSh2
b2lkKSBjYXN0IGZpcnN0LgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzkzMjcyCistLS0KKyBnb2JqZWN0L2d0eXBlLmggfCA4ICsrKystLS0tCisgMSBmaWxl
IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh
L2dvYmplY3QvZ3R5cGUuaCBiL2dvYmplY3QvZ3R5cGUuaAoraW5kZXggZjc3MWMwNy4uNjA4ZWZi
MiAxMDA2NDQKKy0tLSBhL2dvYmplY3QvZ3R5cGUuaAorKysrIGIvZ29iamVjdC9ndHlwZS5oCitA
QCAtMTc5MCw3ICsxNzkwLDcgQEAgZ3VpbnQgICAgIGdfdHlwZV9nZXRfdHlwZV9yZWdpc3RyYXRp
b25fc2VyaWFsICh2b2lkKTsKKyAgKi8KKyAjZGVmaW5lIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShU
WVBFX0lGQUNFLCBpZmFjZV9pbml0KSAgICAgICB7IFwKKyAgIGNvbnN0IEdJbnRlcmZhY2VJbmZv
IGdfaW1wbGVtZW50X2ludGVyZmFjZV9pbmZvID0geyBcCistICAgIChHSW50ZXJmYWNlSW5pdEZ1
bmMpIGlmYWNlX2luaXQsIE5VTEwsIE5VTEwgXAorKyAgICAoR0ludGVyZmFjZUluaXRGdW5jKSh2
b2lkICgqKSh2b2lkKSkgaWZhY2VfaW5pdCwgTlVMTCwgTlVMTCBcCisgICB9OyBcCisgICBnX3R5
cGVfYWRkX2ludGVyZmFjZV9zdGF0aWMgKGdfZGVmaW5lX3R5cGVfaWQsIFRZUEVfSUZBQ0UsICZn
X2ltcGxlbWVudF9pbnRlcmZhY2VfaW5mbyk7IFwKKyB9CitAQCAtMTk3NCw5ICsxOTc0LDkgQEAg
dHlwZV9uYW1lIyNfZ2V0X3R5cGUgKHZvaWQpIFwKKyAgICAgICAgIGdfdHlwZV9yZWdpc3Rlcl9z
dGF0aWNfc2ltcGxlIChUWVBFX1BBUkVOVCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdfaW50ZXJuX3N0YXRpY19zdHJpbmcgKCNUeXBlTmFtZSksIFwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKFR5cGVOYW1lIyNDbGFz
cyksIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0NsYXNzSW5p
dEZ1bmMpIHR5cGVfbmFtZSMjX2NsYXNzX2ludGVybl9pbml0LCBcCisrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKEdDbGFzc0luaXRGdW5jKSh2b2lkICgqKSh2b2lkKSkg
dHlwZV9uYW1lIyNfY2xhc3NfaW50ZXJuX2luaXQsIFwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplb2YgKFR5cGVOYW1lKSwgXAorLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChHSW5zdGFuY2VJbml0RnVuYykgdHlwZV9uYW1lIyNfaW5p
dCwgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHSW5zdGFuY2VJ
bml0RnVuYykodm9pZCAoKikodm9pZCkpIHR5cGVfbmFtZSMjX2luaXQsIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR1R5cGVGbGFncykgZmxhZ3MpOyBcCisgICAg
ICAgeyAvKiBjdXN0b20gY29kZSBmb2xsb3dzICovCisgI2RlZmluZSBfR19ERUZJTkVfVFlQRV9F
WFRFTkRFRF9FTkQoKQlcCitAQCAtMjAwOCw3ICsyMDA4LDcgQEAgdHlwZV9uYW1lIyNfZ2V0X3R5
cGUgKHZvaWQpIFwKKyAgICAgICAgIGdfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfc2ltcGxlIChHX1RZ
UEVfSU5URVJGQUNFLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z19pbnRlcm5fc3RhdGljX3N0cmluZyAoI1R5cGVOYW1lKSwgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoVHlwZU5hbWUjI0ludGVyZmFjZSksIFwKKy0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0NsYXNzSW5pdEZ1bmMpdHlw
ZV9uYW1lIyNfZGVmYXVsdF9pbml0LCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKEdDbGFzc0luaXRGdW5jKShHVm9pZEZ1bmMpdHlwZV9uYW1lIyNfZGVmYXVsdF9p
bml0LCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgXAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHSW5zdGFuY2VJbml0RnVuYylO
VUxMLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdUeXBlRmxh
Z3MpIDApOyBcCistLQorbGliZ2l0MiAwLjI3LjAKKwo=
</data>
<flag name="review"
          id="358164"
          type_id="1"
          status="+"
          setter="clopez"
    />
    <flag name="commit-queue"
          id="358199"
          type_id="3"
          status="-"
          setter="clopez"
    />
          </attachment>
      

    </bug>

</bugzilla>