<?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>131841</bug_id>
          
          <creation_ts>2014-04-18 03:03:18 -0700</creation_ts>
          <short_desc>Remove NETWORK_INFO support</short_desc>
          <delta_ts>2018-05-17 17:08:05 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=185697</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>73528</blocked>
    
    <blocked>99052</blocked>
    
    <blocked>102651</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
    
    <cc>syoichi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1001891</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-04-18 03:03:18 -0700</bug_when>
    <thetext>https://dvcs.w3.org/hg/dap/raw-file/tip/network-api/Overview.html

&quot;Work on this document has been discontinued and it should not be
referenced or used as a basis for implementation.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001895</commentid>
    <comment_count>1</comment_count>
      <attachid>229637</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-04-18 03:53:36 -0700</bug_when>
    <thetext>Created attachment 229637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001896</commentid>
    <comment_count>2</comment_count>
      <attachid>229637</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-04-18 03:56:33 -0700</bug_when>
    <thetext>Comment on attachment 229637
Patch

r+ed based on webkit-dev notification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001897</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-18 03:57:15 -0700</bug_when>
    <thetext>Attachment 229637 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001903</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-04-18 05:36:59 -0700</bug_when>
    <thetext>Committed r167488: &lt;http://trac.webkit.org/changeset/167488&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229637</attachid>
            <date>2014-04-18 03:53:36 -0700</date>
            <delta_ts>2014-04-18 03:56:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.patch</filename>
            <type>text/plain</type>
            <size>155930</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA2MDZlZDk4NjQ0ZjVlYzU1NDg2NzM0NzI2MWEwZWFhYWM1MGNiY2Q1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDE4IEFwciAyMDE0IDEyOjM2OjU4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
UGF0Y2gKCi0tLQogQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgMTIgKysKIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDMwICsrKysrCiAuLi4vYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2stZXhw
ZWN0ZWQudHh0ICAgICAgICB8ICAxNSAtLS0KIC4uLi9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFj
ay5odG1sICAgICAgICAgICAgICAgIHwgICA5IC0tCiAuLi4vYmFzaWMtYWxsLXR5cGVzLW9mLWV2
ZW50cy1leHBlY3RlZC50eHQgICAgICAgICB8ICAxMiAtLQogLi4uL2Jhc2ljLWFsbC10eXBlcy1v
Zi1ldmVudHMuaHRtbCAgICAgICAgICAgICAgICAgfCAgIDkgLS0KIC4uLi9iYXNpYy1vcGVyYXRp
b24tZXhwZWN0ZWQudHh0ICAgICAgICAgICAgICAgICAgIHwgIDExIC0tCiAuLi4vbmV0d29ya2lu
Zm9ybWF0aW9uL2Jhc2ljLW9wZXJhdGlvbi5odG1sICAgICAgICB8ICAgOSAtLQogLi4uL2V2ZW50
LWFmdGVyLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0ICAgICAgICAgICAgfCAgIDMgLQogLi4uL25l
dHdvcmtpbmZvcm1hdGlvbi9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwgfCAgIDkgLS0KIC4u
Li9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0ICAgICAgICAgICAgICAgICAgIHwgIDEzIC0t
LQogLi4uL25ldHdvcmtpbmZvcm1hdGlvbi9tdWx0aXBsZS1mcmFtZXMuaHRtbCAgICAgICAgfCAg
IDkgLS0KIC4uLi9yZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1uZXcuaHRtbCAgICAg
IHwgIDEzIC0tLQogLi4uL3NjcmlwdC10ZXN0cy9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5q
cyAgICAgfCAgNDEgLS0tLS0tLQogLi4uL3NjcmlwdC10ZXN0cy9iYXNpYy1hbGwtdHlwZXMtb2Yt
ZXZlbnRzLmpzICAgICAgfCAgMjAgLS0tLQogLi4uL3NjcmlwdC10ZXN0cy9iYXNpYy1vcGVyYXRp
b24uanMgICAgICAgICAgICAgICAgfCAgMTYgLS0tCiAuLi4vc2NyaXB0LXRlc3RzL2V2ZW50LWFm
dGVyLW5hdmlnYXRpb24uanMgICAgICAgICB8ICAxMyAtLS0KIC4uLi9zY3JpcHQtdGVzdHMvbXVs
dGlwbGUtZnJhbWVzLmpzICAgICAgICAgICAgICAgIHwgIDQ1IC0tLS0tLS0tCiAuLi4vbmV0d29y
a2luZm9ybWF0aW9uL3NjcmlwdC10ZXN0cy91cGRhdGVzLmpzICAgICB8ICAzNCAtLS0tLS0KIC4u
Li9zY3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5LmpzICAgICAgICAgICAgICAgIHwgIDE3IC0t
LQogLi4uL25ldHdvcmtpbmZvcm1hdGlvbi91cGRhdGVzLWV4cGVjdGVkLnR4dCAgICAgICAgfCAg
MTMgLS0tCiBMYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vdXBkYXRlcy5odG1sICAgICAg
ICB8ICAgOSAtLQogLi4uL3dpbmRvdy1wcm9wZXJ0eS1leHBlY3RlZC50eHQgICAgICAgICAgICAg
ICAgICAgfCAgMTIgLS0KIC4uLi9uZXR3b3JraW5mb3JtYXRpb24vd2luZG93LXByb3BlcnR5Lmh0
bWwgICAgICAgIHwgICA5IC0tCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMgICAgICB8ICAgNyAtLQogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMgICAgICAgICAgfCAgIDEgLQogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMgICAgICAgICAgfCAgIDMgLQogTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNp
bS9Ta2lwcGVkICAgICAgICAgICAgICAgfCAgIDMgLQogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgfCAgIDMgLQogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgfCAgIDMgLQogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyAgICAgfCAgIDMgLQogU291cmNlL1dURi9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkgKysKIFNvdXJjZS9XVEYv
d3RmL0ZlYXR1cmVEZWZpbmVzLmggICAgICAgICAgICAgICAgICAgIHwgICA0IC0KIFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgIHwgIDEwIC0tCiBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzMCArKysr
KwogLi4uL25ldHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5jcHAgfCAg
NzQgLS0tLS0tLS0tLS0tCiAuLi4vbmV0d29ya2luZm8vTmF2aWdhdG9yTmV0d29ya0luZm9Db25u
ZWN0aW9uLmggICB8ICA1NiAtLS0tLS0tLS0tCiAuLi4vbmV0d29ya2luZm8vTmF2aWdhdG9yTmV0
d29ya0luZm9Db25uZWN0aW9uLmlkbCB8ICAyNiAtLS0tLQogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9uZXR3b3JraW5mby9OZXR3b3JrSW5mby5jcHAgfCAgNDIgLS0tLS0tLQogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mby5oICAgfCAgNTYgLS0tLS0tLS0tLQog
Li4uL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9DbGllbnQuaCAgICAgICAgfCAgNTgg
LS0tLS0tLS0tLQogLi4uL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db25uZWN0aW9u
LmNwcCAgfCAxMDkgLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vTW9kdWxlcy9uZXR3b3JraW5mby9O
ZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaCAgICB8ICA5NCAtLS0tLS0tLS0tLS0tLS0tCiAuLi4vTW9k
dWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaWRsICB8ICA0NCAtLS0tLS0t
LQogLi4uL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db250cm9sbGVyLmNwcCAgfCAg
OTMgLS0tLS0tLS0tLS0tLS0tLQogLi4uL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9D
b250cm9sbGVyLmggICAgfCAgNjcgLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
RWZsLmNtYWtlICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIFNvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldEZhY3RvcnkuaW4gICAgICAgICAgIHwgICAxIC0KIC4uLi9wbGF0Zm9ybS9lZmwv
TmV0d29ya0luZm9Qcm92aWRlckVmbC5jcHAgICAgICAgIHwgIDg4IC0tLS0tLS0tLS0tLS0tLQog
Li4uL1dlYkNvcmUvcGxhdGZvcm0vZWZsL05ldHdvcmtJbmZvUHJvdmlkZXJFZmwuaCAgfCAgNDcg
LS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCAgICAgICAgICAg
ICAgIHwgIDIyIC0tLS0KIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggICAgICAg
ICAgICAgICAgIHwgICAyIC0KIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCAg
ICAgICAgICAgICAgIHwgICA0IC0KIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICA5ICsrCiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtl
ICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArKwogLi4uL2VmbC9XZWJDb3JlU3VwcG9ydC9O
ZXR3b3JrSW5mb0NsaWVudEVmbC5jcHAgICAgfCAgNzQgLS0tLS0tLS0tLS0tCiAuLi4vZWZsL1dl
YkNvcmVTdXBwb3J0L05ldHdvcmtJbmZvQ2xpZW50RWZsLmggICAgICB8ICA1OSAtLS0tLS0tLS0t
CiBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwICAgICAgICAgICAgICAgICB8ICAg
OCAtLQogU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAg
fCAgMTIgLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDQ0ICsrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSAgICAg
ICAgICAgICAgICAgICB8ICAgMSAtCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmggICAgICAgICAgICAgICB8ICAgMiAtCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmggICAgICAgICAgICAgICAgICB8ICAgMiAtCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmV0
d29ya0luZm8uY3BwICAgICAgICAgICB8ICA2NCAtLS0tLS0tLS0tLQogU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYk5ldHdvcmtJbmZvLmggICAgICAgICAgICAgfCAgNzAgLS0tLS0tLS0tLS0tCiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggICAgICAgICB8ICAgNCAt
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCAgICAgICB8ICAx
MyAtLS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCAgICAgICAg
IHwgICAxIC0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvLmNw
cCAgIHwgIDU1IC0tLS0tLS0tLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmV0
d29ya0luZm8uaCAgICAgfCAgNDMgLS0tLS0tLQogLi4uL1VJUHJvY2Vzcy9BUEkvQy9XS05ldHdv
cmtJbmZvTWFuYWdlci5jcHAgICAgICAgfCAgNjIgLS0tLS0tLS0tLS0KIC4uLi9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvTWFuYWdlci5oIHwgIDY1IC0tLS0tLS0tLS0tCiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAgICB8ICAgNCAt
CiAuLi4vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oICAgICAgICB8ICAg
NiAtCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgICAgICAgICAgICB8
ICAgNyAtLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCAgICAgICAgICAg
ICAgfCAgIDMgLQogLi4uL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAg
ICAgICAgfCAxMjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaCB8ICA4NSAtLS0tLS0tLS0tLS0tLQogLi4uL1dl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICAgICAgICAgfCAgMzMgLS0tLS0t
CiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29ya0luZm9Qcm92aWRlci5jcHAgICB8ICA3
MiAtLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1By
b3ZpZGVyLmggIHwgIDU4IC0tLS0tLS0tLS0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvTmV0
d29ya0luZm9Qcm92aWRlci5jcHAgIHwgMTIzIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuaCB8ICA2NSAtLS0tLS0t
LS0tLQogLi4uL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHAgICAgICAgICAg
fCAxMDYgLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJO
ZXR3b3JrSW5mb01hbmFnZXIuaCB8ICA3MSAtLS0tLS0tLS0tLS0KIC4uLi9OZXR3b3JrSW5mby9X
ZWJOZXR3b3JrSW5mb01hbmFnZXIubWVzc2FnZXMuaW4gIHwgIDI5IC0tLS0tCiAuLi4vV2ViQ29y
ZVN1cHBvcnQvV2ViTmV0d29ya0luZm9DbGllbnQuY3BwICAgICAgICB8ICA2OSAtLS0tLS0tLS0t
LS0KIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJOZXR3b3JrSW5mb0NsaWVudC5oICAgICAgICAgIHwg
IDYyIC0tLS0tLS0tLS0tCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgICAgICB8ICAgNyAtLQogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcCAgICAgICAgICAgfCAgIDggLS0KIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtl
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJl
cy5jbWFrZSAgICAgICAgICAgICAgICAgIHwgICAxIC0KIFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNt
YWtlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIFRvb2xzL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA5ICsrCiBUb29scy9TY3JpcHRzL3dl
YmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gICAgICAgICAgICB8ICAgMyAtCiA5NyBmaWxlcyBjaGFu
Z2VkLCAxNTUgaW5zZXJ0aW9ucygrKSwgMjczNyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vYWRkLWxpc3RlbmVyLWZyb20tY2Fs
bGJhY2stZXhwZWN0ZWQudHh0CiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvbmV0d29y
a2luZm9ybWF0aW9uL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmh0bWwKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vYmFzaWMtYWxsLXR5cGVzLW9m
LWV2ZW50cy1leHBlY3RlZC50eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9uZXR3
b3JraW5mb3JtYXRpb24vYmFzaWMtYWxsLXR5cGVzLW9mLWV2ZW50cy5odG1sCiBkZWxldGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL2Jhc2ljLW9wZXJhdGlvbi1l
eHBlY3RlZC50eHQKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9uZXR3b3JraW5mb3Jt
YXRpb24vYmFzaWMtb3BlcmF0aW9uLmh0bWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9uZXR3b3JraW5mb3JtYXRpb24vZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQK
IGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vZXZlbnQt
YWZ0ZXItbmF2aWdhdGlvbi5odG1sCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvbmV0
d29ya2luZm9ybWF0aW9uL211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50eHQKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vbXVsdGlwbGUtZnJhbWVzLmh0
bWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vcmVz
b3VyY2VzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tbmV3Lmh0bWwKIGRlbGV0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vc2NyaXB0LXRlc3RzL2FkZC1saXN0ZW5l
ci1mcm9tLWNhbGxiYWNrLmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvbmV0d29y
a2luZm9ybWF0aW9uL3NjcmlwdC10ZXN0cy9iYXNpYy1hbGwtdHlwZXMtb2YtZXZlbnRzLmpzCiBk
ZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL3NjcmlwdC10
ZXN0cy9iYXNpYy1vcGVyYXRpb24uanMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9u
ZXR3b3JraW5mb3JtYXRpb24vc2NyaXB0LXRlc3RzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uanMK
IGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vc2NyaXB0
LXRlc3RzL211bHRpcGxlLWZyYW1lcy5qcwogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L25ldHdvcmtpbmZvcm1hdGlvbi9zY3JpcHQtdGVzdHMvdXBkYXRlcy5qcwogZGVsZXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9zY3JpcHQtdGVzdHMvd2luZG93
LXByb3BlcnR5LmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvbmV0d29ya2luZm9y
bWF0aW9uL3VwZGF0ZXMtZXhwZWN0ZWQudHh0CiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvbmV0d29ya2luZm9ybWF0aW9uL3VwZGF0ZXMuaHRtbAogZGVsZXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi93aW5kb3ctcHJvcGVydHktZXhwZWN0ZWQudHh0
CiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL3dpbmRv
dy1wcm9wZXJ0eS5odG1sCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9uZXR3b3JraW5mby9OYXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb24uY3BwCiBkZWxldGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OYXZpZ2F0b3JO
ZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbmV0d29ya2luZm8vTmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uLmlkbAog
ZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmV0
d29ya0luZm8uY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
ZXR3b3JraW5mby9OZXR3b3JrSW5mby5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0NsaWVudC5oCiBkZWxldGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0Nvbm5l
Y3Rpb24uY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3
b3JraW5mby9OZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db25uZWN0aW9uLmlkbAog
ZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmV0
d29ya0luZm9Db250cm9sbGVyLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db250cm9sbGVyLmgKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTmV0d29ya0luZm9Qcm92aWRlckVm
bC5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvTmV0
d29ya0luZm9Qcm92aWRlckVmbC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvTmV0d29ya0luZm9DbGllbnRFZmwuY3BwCiBkZWxldGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvTmV0d29ya0luZm9DbGllbnRF
ZmwuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOZXR3b3Jr
SW5mby5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmV0
d29ya0luZm8uaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS05ldHdvcmtJbmZvLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mb01hbmFnZXIuY3BwCiBkZWxl
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmV0d29ya0lu
Zm9NYW5hZ2VyLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgKIGRlbGV0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29ya0luZm9NYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTmV0d29ya0luZm9Qcm92aWRlci5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29ya0luZm9Qcm92aWRlci5oCiBkZWxldGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVy
LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvTmV0
d29ya0luZm9Qcm92aWRlci5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01hbmFnZXIuY3BwCiBkZWxldGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3Jr
SW5mb01hbmFnZXIuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5hZ2VyLm1lc3NhZ2VzLmluCiBkZWxldGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJO
ZXR3b3JrSW5mb0NsaWVudC5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5ldHdvcmtJbmZvQ2xpZW50LmgKCmRpZmYgLS1n
aXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggYjhlNzhlNy4uYzk5ZDk1ZSAxMDA2NDQK
LS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTA0
LTE4ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBS
ZW1vdmUgTkVUV09SS19JTkZPIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMTg0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2U6CisgICAg
ICAgICogU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2U6CisgICAgICAgICogU291cmNlL2Nt
YWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZWNvbmZpZy5o
LmNtYWtlOgorCiAyMDE0LTA0LTE3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBUcnkgdG8gZml4IEVGTCBhbmQgR1RLIGJ1aWxkcy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZGJkMjZiLi45
NjAxODUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTQtMDQtMTggIFBoaWxpcHBlIE5vcm1h
bmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbW92ZSBORVRXT1JLX0lORk8g
c3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMxODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBuZXR3b3JraW5mb3JtYXRpb24vYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2stZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIG5ldHdvcmtpbmZvcm1hdGlvbi9hZGQtbGlzdGVuZXIt
ZnJvbS1jYWxsYmFjay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG5ldHdvcmtpbmZvcm1hdGlv
bi9iYXNpYy1hbGwtdHlwZXMtb2YtZXZlbnRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBuZXR3b3JraW5mb3JtYXRpb24vYmFzaWMtYWxsLXR5cGVzLW9mLWV2ZW50cy5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIG5ldHdvcmtpbmZvcm1hdGlvbi9iYXNpYy1vcGVyYXRpb24tZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIG5ldHdvcmtpbmZvcm1hdGlvbi9iYXNpYy1v
cGVyYXRpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBuZXR3b3JraW5mb3JtYXRpb24vZXZl
bnQtYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogbmV0
d29ya2luZm9ybWF0aW9uL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBuZXR3b3JraW5mb3JtYXRpb24vbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBuZXR3b3JraW5mb3JtYXRpb24vbXVsdGlwbGUtZnJhbWVzLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogbmV0d29ya2luZm9ybWF0aW9uL3Jlc291cmNlcy9ldmVu
dC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIG5ldHdvcmtp
bmZvcm1hdGlvbi9zY3JpcHQtdGVzdHMvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suanM6IFJl
bW92ZWQuCisgICAgICAgICogbmV0d29ya2luZm9ybWF0aW9uL3NjcmlwdC10ZXN0cy9iYXNpYy1h
bGwtdHlwZXMtb2YtZXZlbnRzLmpzOiBSZW1vdmVkLgorICAgICAgICAqIG5ldHdvcmtpbmZvcm1h
dGlvbi9zY3JpcHQtdGVzdHMvYmFzaWMtb3BlcmF0aW9uLmpzOiBSZW1vdmVkLgorICAgICAgICAq
IG5ldHdvcmtpbmZvcm1hdGlvbi9zY3JpcHQtdGVzdHMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBuZXR3b3JraW5mb3JtYXRpb24vc2NyaXB0LXRlc3RzL211
bHRpcGxlLWZyYW1lcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBuZXR3b3JraW5mb3JtYXRpb24v
c2NyaXB0LXRlc3RzL3VwZGF0ZXMuanM6IFJlbW92ZWQuCisgICAgICAgICogbmV0d29ya2luZm9y
bWF0aW9uL3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkuanM6IFJlbW92ZWQuCisgICAgICAg
ICogbmV0d29ya2luZm9ybWF0aW9uL3VwZGF0ZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIG5ldHdvcmtpbmZvcm1hdGlvbi91cGRhdGVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogbmV0d29ya2luZm9ybWF0aW9uL3dpbmRvdy1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogbmV0d29ya2luZm9ybWF0aW9uL3dpbmRvdy1wcm9wZXJ0eS5odG1sOiBS
ZW1vdmVkLgorCiAyMDE0LTA0LTE3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTY3NDc4LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL2FkZC1saXN0ZW5lci1mcm9tLWNh
bGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9hZGQt
bGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDllMTgxYzIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9y
bWF0aW9uL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDE1ICswLDAgQEAKLVRlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IGV2ZW50IGxpc3Rl
bmVyIGZyb20gYSBjYWxsYmFjayB3b3JrcyBhcyBleHBlY3RlZC4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLVBBU1MgdHlwZW9mIGNvbm5lY3Rpb24uYmFuZHdpZHRoIGlzICJudW1i
ZXIiCi1QQVNTIHR5cGVvZiBjb25uZWN0aW9uLm1ldGVyZWQgaXMgImJvb2xlYW4iCi1QQVNTIHR5
cGVvZiBjb25uZWN0aW9uLmJhbmR3aWR0aCBpcyAibnVtYmVyIgotUEFTUyB0eXBlb2YgY29ubmVj
dGlvbi5tZXRlcmVkIGlzICJib29sZWFuIgotUEFTUyB0eXBlb2YgY29ubmVjdGlvbi5iYW5kd2lk
dGggaXMgIm51bWJlciIKLVBBU1MgdHlwZW9mIGNvbm5lY3Rpb24ubWV0ZXJlZCBpcyAiYm9vbGVh
biIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vYWRkLWxpc3RlbmVyLWZy
b20tY2FsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9hZGQtbGlz
dGVuZXItZnJvbS1jYWxsYmFjay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
YTEyNDNkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9hZGQt
bGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
YWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL2Jhc2ljLWFsbC10eXBl
cy1vZi1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9u
L2Jhc2ljLWFsbC10eXBlcy1vZi1ldmVudHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4OTBjNGM2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL25ldHdvcmtp
bmZvcm1hdGlvbi9iYXNpYy1hbGwtdHlwZXMtb2YtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRlc3RzIHRoZSBiYXNpYyBvcGVyYXRpb24gb2YgYWxs
IE5ldHdvcmtJbmZvIGV2ZW50cy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLXdl
YmtpdG5ldHdvcmtpbmZvY2hhbmdlIGV2ZW50IGlzIHJhaXNlZAotUEFTUyB0eXBlb2YgY29ubmVj
dGlvbi5iYW5kd2lkdGggaXMgIm51bWJlciIKLVBBU1MgdHlwZW9mIGNvbm5lY3Rpb24ubWV0ZXJl
ZCBpcyAiYm9vbGVhbiIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vYmFz
aWMtYWxsLXR5cGVzLW9mLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0
aW9uL2Jhc2ljLWFsbC10eXBlcy1vZi1ldmVudHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjczMjlmMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3Jt
YXRpb24vYmFzaWMtYWxsLXR5cGVzLW9mLWV2ZW50cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvYmFzaWMtYWxsLXR5cGVzLW9mLWV2ZW50cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vYmFzaWMt
b3BlcmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9i
YXNpYy1vcGVyYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiOGQyZDM3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9i
YXNpYy1vcGVyYXRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBA
QAotVGVzdHMgdGhlIGJhc2ljIG9wZXJhdGlvbiBvZiBOZXR3b3JrSW5mby4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgdHlwZW9mIGNvbm5lY3Rpb24uYmFuZHdpZHRoIGlz
ICJudW1iZXIiCi1QQVNTIHR5cGVvZiBjb25uZWN0aW9uLm1ldGVyZWQgaXMgImJvb2xlYW4iCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL2Jhc2ljLW9wZXJhdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL2Jhc2ljLW9wZXJhdGlvbi5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOGEzNjJmLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9iYXNpYy1vcGVyYXRpb24uaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL2Jhc2ljLW9wZXJhdGlvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vZXZlbnQt
YWZ0ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3Jt
YXRpb24vZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDhlNmJjMzkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbmV0d29y
a2luZm9ybWF0aW9uL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0cyBmb3IgYSBjcmFzaCB3aGVyZSBhbiBldmVudCBp
cyBmaXJlZCBhZnRlciB0aGUgcGFnZSBoYXMgYmVlbiBuYXZpZ2F0ZWQgYXdheSB3aGVuIHRoZSBv
cmlnaW5hbCBwYWdlIGlzIGluIHRoZSBwYWdlIGNhY2hlLgotCi1TVUNDRVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL2V2ZW50LWFmdGVyLW5hdmlnYXRp
b24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNkZTI5MS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vZXZlbnQtYWZ0ZXItbmF2aWdhdGlv
bi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlv
bi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9u
ZXR3b3JraW5mb3JtYXRpb24vbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL25ldHdvcmtpbmZvcm1hdGlvbi9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODdhMThhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL25ldHdvcmtpbmZvcm1hdGlvbi9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotVGVzdHMgdXNpbmcgTmV0d29ya0luZm8gZnJvbSBt
dWx0aXBsZSBmcmFtZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHR5
cGVvZiBjb25uZWN0aW9uLmJhbmR3aWR0aCBpcyAibnVtYmVyIgotUEFTUyB0eXBlb2YgY29ubmVj
dGlvbi5tZXRlcmVkIGlzICJib29sZWFuIgotUEFTUyB0eXBlb2YgY29ubmVjdGlvbi5iYW5kd2lk
dGggaXMgIm51bWJlciIKLVBBU1MgdHlwZW9mIGNvbm5lY3Rpb24ubWV0ZXJlZCBpcyAiYm9vbGVh
biIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vbXVsdGlwbGUtZnJhbWVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vbXVsdGlwbGUtZnJhbWVzLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3YmVjOGEuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL211bHRpcGxlLWZyYW1lcy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbXVsdGlwbGUtZnJhbWVzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9y
ZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1uZXcuaHRtbCBiL0xheW91dFRlc3RzL25l
dHdvcmtpbmZvcm1hdGlvbi9yZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1uZXcuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjEzNDIyNS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vcmVzb3VyY2VzL2V2ZW50LWFmdGVyLW5hdmln
YXRpb24tbmV3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08aHRtbD4KLSAg
PGhlYWQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgVGVzdHMgZm9yIGEgY3Jhc2ggd2hlcmUg
YW4gZXZlbnQgaXMgZmlyZWQgYWZ0ZXIgdGhlIHBhZ2UgaGFzIGJlZW4gbmF2aWdhdGVkCi0gICAg
YXdheSB3aGVuIHRoZSBvcmlnaW5hbCBwYWdlIGlzIGluIHRoZSBwYWdlIGNhY2hlLjxicj48YnI+
Ci0gICAgU1VDQ0VTUwotICAgIDxzY3JpcHQ+Ci0gICAgICAgIGludGVybmFscy5zZXROZXR3b3Jr
SW5mb3JtYXRpb24oJ3dlYmtpdG5ldHdvcmtpbmZvY2hhbmdlJywgMTAwLCB0cnVlKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9zY3JpcHQt
dGVzdHMvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suanMgYi9MYXlvdXRUZXN0cy9uZXR3b3Jr
aW5mb3JtYXRpb24vc2NyaXB0LXRlc3RzL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMjg4ODVlLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9zY3JpcHQtdGVzdHMvYWRkLWxpc3RlbmVyLWZyb20t
Y2FsbGJhY2suanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi1kZXNjcmlwdGlvbign
VGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgZXZlbnQgbGlzdGVuZXIgZnJvbSBhIGNhbGxiYWNrIHdv
cmtzIGFzIGV4cGVjdGVkLicpOwotCi12YXIgYmFuZHdpZHRoID0gMTA7Ci12YXIgbWV0ZXJlZCA9
IGZhbHNlOwotCi12YXIgY29ubmVjdGlvbiA9IG5hdmlnYXRvci53ZWJraXRDb25uZWN0aW9uOwot
Ci1mdW5jdGlvbiBjaGVja05ldHdvcmtJbmZvcm1hdGlvbigpIHsKLSAgICBzaG91bGRCZSgidHlw
ZW9mIGNvbm5lY3Rpb24uYmFuZHdpZHRoIiwgJyJudW1iZXIiJyk7Ci0gICAgc2hvdWxkQmUoInR5
cGVvZiBjb25uZWN0aW9uLm1ldGVyZWQiLCAnImJvb2xlYW4iJyk7Ci19Ci0KLXZhciBmaXJzdExp
c3RlbmVyRXZlbnRzID0gMDsKLWZ1bmN0aW9uIGZpcnN0TGlzdGVuZXIoKSB7Ci0gICAgY2hlY2tO
ZXR3b3JrSW5mb3JtYXRpb24oKTsKLSAgICBpZiAoKytmaXJzdExpc3RlbmVyRXZlbnRzID09IDEp
IHsKLSAgICAgICAgY29ubmVjdGlvbi5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRuZXR3b3JraW5m
b2NoYW5nZScsIHNlY29uZExpc3RlbmVyKTsKLSAgICAgICAgaW50ZXJuYWxzLnNldE5ldHdvcmtJ
bmZvcm1hdGlvbignd2Via2l0bmV0d29ya2luZm9jaGFuZ2UnLCBiYW5kd2lkdGgsIG1ldGVyZWQp
OwotICAgIH0KLSAgICBlbHNlIGlmIChmaXJzdExpc3RlbmVyRXZlbnRzID4gMikKLSAgICAgICAg
dGVzdEZhaWxlZCgnVG9vIG1hbnkgZXZlbnRzIGZvciBmaXJzdCBsaXN0ZW5lci4nKTsKLSAgICBt
YXliZUZpbmlzaFRlc3QoKTsKLX0KLQotdmFyIHNlY29uZExpc3RlbmVyRXZlbnRzID0gMDsKLWZ1
bmN0aW9uIHNlY29uZExpc3RlbmVyKCkgewotICAgIGNoZWNrTmV0d29ya0luZm9ybWF0aW9uKCk7
Ci0gICAgaWYgKCsrc2Vjb25kTGlzdGVuZXJFdmVudHMgPiAxKQotICAgICAgICB0ZXN0RmFpbGVk
KCdUb28gbWFueSBldmVudHMgZm9yIHNlY29uZCBsaXN0ZW5lci4nKTsKLSAgICBtYXliZUZpbmlz
aFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gbWF5YmVGaW5pc2hUZXN0KCkgewotICAgIGlmIChmaXJz
dExpc3RlbmVyRXZlbnRzID09IDIgJiYgc2Vjb25kTGlzdGVuZXJFdmVudHMgPT0gMSkKLSAgICAg
ICAgZmluaXNoSlNUZXN0KCk7Ci19Ci0KLWNvbm5lY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcignd2Vi
a2l0bmV0d29ya2luZm9jaGFuZ2UnLCBmaXJzdExpc3RlbmVyKTsKLWludGVybmFscy5zZXROZXR3
b3JrSW5mb3JtYXRpb24oJ3dlYmtpdG5ldHdvcmtpbmZvY2hhbmdlJywgYmFuZHdpZHRoLCBtZXRl
cmVkKTsKLQotd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL3NjcmlwdC10ZXN0cy9iYXNpYy1hbGwtdHlwZXMtb2Yt
ZXZlbnRzLmpzIGIvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL3NjcmlwdC10ZXN0cy9i
YXNpYy1hbGwtdHlwZXMtb2YtZXZlbnRzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5MjQ2YTAxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9z
Y3JpcHQtdGVzdHMvYmFzaWMtYWxsLXR5cGVzLW9mLWV2ZW50cy5qcworKysgL2Rldi9udWxsCkBA
IC0xLDIwICswLDAgQEAKLWRlc2NyaXB0aW9uKCdUZXN0cyB0aGUgYmFzaWMgb3BlcmF0aW9uIG9m
IGFsbCBOZXR3b3JrSW5mbyBldmVudHMuJyk7Ci0KLXZhciBiYW5kd2lkdGggPSAxMDsKLXZhciBt
ZXRlcmVkID0gZmFsc2U7Ci0KLXZhciBjb25uZWN0aW9uID0gbmF2aWdhdG9yLndlYmtpdENvbm5l
Y3Rpb247Ci0KLWZ1bmN0aW9uIGNoZWNrTmV0d29ya0luZm9ybWF0aW9uKCkgewotICAgIHNob3Vs
ZEJlKCJ0eXBlb2YgY29ubmVjdGlvbi5iYW5kd2lkdGgiLCAnIm51bWJlciInKTsKLSAgICBzaG91
bGRCZSgidHlwZW9mIGNvbm5lY3Rpb24ubWV0ZXJlZCIsICciYm9vbGVhbiInKTsKLX0KLQotY29u
bmVjdGlvbi5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRuZXR3b3JraW5mb2NoYW5nZScsIGZ1bmN0
aW9uKCkgewotICAgIGRlYnVnKCd3ZWJraXRuZXR3b3JraW5mb2NoYW5nZSBldmVudCBpcyByYWlz
ZWQnKTsKLSAgICBjaGVja05ldHdvcmtJbmZvcm1hdGlvbigpOwotICAgIGZpbmlzaEpTVGVzdCgp
OwotfSk7Ci0KLWludGVybmFscy5zZXROZXR3b3JrSW5mb3JtYXRpb24oJ3dlYmtpdG5ldHdvcmtp
bmZvY2hhbmdlJywgYmFuZHdpZHRoLCBtZXRlcmVkKTsKLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9zY3JpcHQt
dGVzdHMvYmFzaWMtb3BlcmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9u
L3NjcmlwdC10ZXN0cy9iYXNpYy1vcGVyYXRpb24uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDE4MTUzMjUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0
aW9uL3NjcmlwdC10ZXN0cy9iYXNpYy1vcGVyYXRpb24uanMKKysrIC9kZXYvbnVsbApAQCAtMSwx
NiArMCwwIEBACi1kZXNjcmlwdGlvbignVGVzdHMgdGhlIGJhc2ljIG9wZXJhdGlvbiBvZiBOZXR3
b3JrSW5mby4nKTsKLQotdmFyIGJhbmR3aWR0aCA9IDEwOwotdmFyIG1ldGVyZWQgPSBmYWxzZTsK
LQotdmFyIGNvbm5lY3Rpb24gPSBuYXZpZ2F0b3Iud2Via2l0Q29ubmVjdGlvbjsKLQotY29ubmVj
dGlvbi5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRuZXR3b3JraW5mb2NoYW5nZScsIGZ1bmN0aW9u
KCkgewotICAgIHNob3VsZEJlKCJ0eXBlb2YgY29ubmVjdGlvbi5iYW5kd2lkdGgiLCAnIm51bWJl
ciInKTsKLSAgICBzaG91bGRCZSgidHlwZW9mIGNvbm5lY3Rpb24ubWV0ZXJlZCIsICciYm9vbGVh
biInKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotCi1pbnRlcm5hbHMuc2V0TmV0d29ya0lu
Zm9ybWF0aW9uKCd3ZWJraXRuZXR3b3JraW5mb2NoYW5nZScsIGJhbmR3aWR0aCwgbWV0ZXJlZCk7
Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L25ldHdvcmtpbmZvcm1hdGlvbi9zY3JpcHQtdGVzdHMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5q
cyBiL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9zY3JpcHQtdGVzdHMvZXZlbnQtYWZ0
ZXItbmF2aWdhdGlvbi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjIzMzE3OS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vc2NyaXB0LXRlc3Rz
L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBA
Ci1kZXNjcmlwdGlvbignVGVzdHMgZm9yIGEgY3Jhc2ggd2hlcmUgYW4gZXZlbnQgaXMgZmlyZWQg
YWZ0ZXIgdGhlIHBhZ2UgaGFzIGJlZW4gbmF2aWdhdGVkIGF3YXkgd2hlbiB0aGUgb3JpZ2luYWwg
cGFnZSBpcyBpbiB0aGUgcGFnZSBjYWNoZS4nKTsKLQotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCdXZWJLaXRVc2VzUGFnZUNhY2hlUHJl
ZmVyZW5jZUtleScsIDEpOwotZWxzZQotICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBy
dW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOwotCi1kb2N1bWVudC5ib2R5Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgewotICAgIG5hdmlnYXRvci53ZWJraXRDb25uZWN0aW9uLmFkZEV2ZW50TGlzdGVu
ZXIoJ3dlYmtpdG5ldHdvcmtpbmZvY2hhbmdlJywgZnVuY3Rpb24oKSB7IH0gKTsKLSAgICB3aW5k
b3cubG9jYXRpb24gPSAicmVzb3VyY2VzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tbmV3Lmh0bWwi
OwotfQotCi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vc2NyaXB0LXRlc3RzL211bHRpcGxlLWZyYW1lcy5qcyBi
L0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9zY3JpcHQtdGVzdHMvbXVsdGlwbGUtZnJh
bWVzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZmNkZThmLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9zY3JpcHQtdGVzdHMvbXVsdGlwbGUt
ZnJhbWVzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotZGVzY3JpcHRpb24oJ1Rl
c3RzIHVzaW5nIE5ldHdvcmtJbmZvIGZyb20gbXVsdGlwbGUgZnJhbWVzLicpOwotCi12YXIgYmFu
ZHdpZHRoID0gMTA7Ci12YXIgbWV0ZXJlZCA9IGZhbHNlOwotCi12YXIgY29ubmVjdGlvbiA9IG5h
dmlnYXRvci53ZWJraXRDb25uZWN0aW9uOwotCi1mdW5jdGlvbiBjaGVja05ldHdvcmtJbmZvcm1h
dGlvbigpIHsKLSAgICBzaG91bGRCZSgidHlwZW9mIGNvbm5lY3Rpb24uYmFuZHdpZHRoIiwgJyJu
dW1iZXIiJyk7Ci0gICAgc2hvdWxkQmUoInR5cGVvZiBjb25uZWN0aW9uLm1ldGVyZWQiLCAnImJv
b2xlYW4iJyk7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrQ2hpbGROZXR3b3JrSW5mb3JtYXRpb24oKSB7
Ci0gICAgc2hvdWxkQmUoInR5cGVvZiBjb25uZWN0aW9uLmJhbmR3aWR0aCIsICcibnVtYmVyIicp
OwotICAgIHNob3VsZEJlKCJ0eXBlb2YgY29ubmVjdGlvbi5tZXRlcmVkIiwgJyJib29sZWFuIicp
OwotfQotCi12YXIgaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCA9IGZhbHNlOwotZnVuY3Rpb24gbWFp
bkZyYW1lTGlzdGVuZXIoKSB7Ci0gICAgaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCA9IHRydWU7Ci0g
ICAgbWF5YmVGaW5pc2hUZXN0KCk7Ci19Ci0KLXZhciBoYXNDaGlsZEZyYW1lRXZlbnRGaXJlZCA9
IGZhbHNlOwotZnVuY3Rpb24gY2hpbGRGcmFtZUxpc3RlbmVyKCkgewotICAgIGhhc0NoaWxkRnJh
bWVFdmVudEZpcmVkID0gdHJ1ZTsKLSAgICBtYXliZUZpbmlzaFRlc3QoKTsKLX0KLQotZnVuY3Rp
b24gbWF5YmVGaW5pc2hUZXN0KCkgewotICAgIGlmIChoYXNNYWluRnJhbWVFdmVudEZpcmVkICYm
IGhhc0NoaWxkRnJhbWVFdmVudEZpcmVkKSB7Ci0gICAgICAgIGNoZWNrTmV0d29ya0luZm9ybWF0
aW9uKCk7Ci0gICAgICAgIGNoZWNrQ2hpbGROZXR3b3JrSW5mb3JtYXRpb24oKTsKLSAgICAgICAg
ZmluaXNoSlNUZXN0KCk7Ci0gICAgfQotfQotCi12YXIgY2hpbGRGcmFtZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwotZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjaGlsZEZy
YW1lKTsKLXZhciBjaGlsZENvbm5lY3Rpb24gPSBjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cubmF2
aWdhdG9yLndlYmtpdENvbm5lY3Rpb24KLWNoaWxkQ29ubmVjdGlvbi5hZGRFdmVudExpc3RlbmVy
KCd3ZWJraXRuZXR3b3JraW5mb2NoYW5nZScsIGNoaWxkRnJhbWVMaXN0ZW5lcik7Ci1jb25uZWN0
aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdG5ldHdvcmtpbmZvY2hhbmdlJywgbWFpbkZyYW1l
TGlzdGVuZXIpOwotCi1pbnRlcm5hbHMuc2V0TmV0d29ya0luZm9ybWF0aW9uKCd3ZWJraXRuZXR3
b3JraW5mb2NoYW5nZScsIGJhbmR3aWR0aCwgbWV0ZXJlZCk7Ci13aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vc2Ny
aXB0LXRlc3RzL3VwZGF0ZXMuanMgYi9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vc2Ny
aXB0LXRlc3RzL3VwZGF0ZXMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmMzM4
NzJjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9zY3JpcHQt
dGVzdHMvdXBkYXRlcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLWRlc2NyaXB0
aW9uKCdUZXN0cyB0aGF0IHVwZGF0ZXMgdG8gdGhlIGNvbm5lY3Rpb24gZXZlbnQgY2F1c2VzIG5l
dyBldmVudHMgdG8gZmlyZS4nKTsKLQotdmFyIGJhbmR3aWR0aCA9IDEwOwotdmFyIG1ldGVyZWQg
PSBmYWxzZTsKLQotdmFyIGNvbm5lY3Rpb24gPSBuYXZpZ2F0b3Iud2Via2l0Q29ubmVjdGlvbjsK
LQotZnVuY3Rpb24gY2hlY2tOZXR3b3JrSW5mb3JtYXRpb24oKSB7Ci0gICAgc2hvdWxkQmUoInR5
cGVvZiBjb25uZWN0aW9uLmJhbmR3aWR0aCIsICcibnVtYmVyIicpOwotICAgIHNob3VsZEJlKCJ0
eXBlb2YgY29ubmVjdGlvbi5tZXRlcmVkIiwgJyJib29sZWFuIicpOwotfQotCi1mdW5jdGlvbiBz
ZXROZXR3b3JrSW5mb3JtYXRpb24oKSB7Ci0gICAgaW50ZXJuYWxzLnNldE5ldHdvcmtJbmZvcm1h
dGlvbignd2Via2l0bmV0d29ya2luZm9jaGFuZ2UnLCBiYW5kd2lkdGgsIG1ldGVyZWQpOwotfQot
Ci1mdW5jdGlvbiBmaXJzdExpc3RlbmVyKCkgewotICAgIGNoZWNrTmV0d29ya0luZm9ybWF0aW9u
KCk7Ci0gICAgY29ubmVjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKCd3ZWJraXRuZXR3b3JraW5m
b2NoYW5nZScsIGZpcnN0TGlzdGVuZXIpOwotICAgIGNvbm5lY3Rpb24uYWRkRXZlbnRMaXN0ZW5l
cignd2Via2l0bmV0d29ya2luZm9jaGFuZ2UnLCB1cGRhdGVMaXN0ZW5lcik7Ci0gIAotICAgIGJh
bmR3aWR0aCA9IDU7Ci0gICAgbWV0ZXJlZCA9IHRydWU7Ci0gICAgc2V0TmV0d29ya0luZm9ybWF0
aW9uKCk7Ci19Ci0KLWZ1bmN0aW9uIHVwZGF0ZUxpc3RlbmVyKGV2ZW50KSB7Ci0gICAgY2hlY2tO
ZXR3b3JrSW5mb3JtYXRpb24oZXZlbnQpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi1jb25u
ZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdG5ldHdvcmtpbmZvY2hhbmdlJywgZmlyc3RM
aXN0ZW5lcik7Ci1zZXROZXR3b3JrSW5mb3JtYXRpb24oKTsKLXdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi9zY3Jp
cHQtdGVzdHMvd2luZG93LXByb3BlcnR5LmpzIGIvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0
aW9uL3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQxNjk5ODguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9y
bWF0aW9uL3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwxNyArMCwwIEBACi1kZXNjcmlwdGlvbignVGVzdHMgdGhhdCB0aGUgd2luZG93Lm5hdmlnYXRv
ci5jb25uZWN0aW9uIHByb3BlcnRpZXMgYXJlIHByZXNlbnQuJyk7Ci0KLWZ1bmN0aW9uIGhhc09u
Q29ubmVjdGlvblByb3BlcnR5KCkKLXsKLSAgICB2YXIgcmVzdWx0ID0gMDsKLSAgICBmb3IgKHZh
ciBwcm9wZXJ0eSBpbiBuYXZpZ2F0b3Iud2Via2l0Q29ubmVjdGlvbikgewotICAgICAgICBpZiAo
cHJvcGVydHkgPT0gJ29ud2Via2l0bmV0d29ya2luZm9jaGFuZ2UnKQotICAgICAgICAgICAgcmVz
dWx0ICs9IDE7Ci0gICAgfQotICAgIGlmIChyZXN1bHQgPT0gMSkKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1zaG91bGRCZVRydWUoInR5cGVvZiBuYXZpZ2F0
b3Iud2Via2l0Q29ubmVjdGlvbiA9PSAnb2JqZWN0JyIpOwotc2hvdWxkQmVUcnVlKCJoYXNPbkNv
bm5lY3Rpb25Qcm9wZXJ0eSgpIik7Ci1zaG91bGRCZVRydWUoIm5hdmlnYXRvci53ZWJraXRDb25u
ZWN0aW9uLmhhc093blByb3BlcnR5KCdvbndlYmtpdG5ldHdvcmtpbmZvY2hhbmdlJykiKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi91cGRhdGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi91cGRhdGVzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmRmN2Q5Mi4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vdXBkYXRlcy1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1UZXN0cyB0aGF0IHVwZGF0ZXMgdG8gdGhlIGNvbm5l
Y3Rpb24gZXZlbnQgY2F1c2VzIG5ldyBldmVudHMgdG8gZmlyZS4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLVBBU1MgdHlwZW9mIGNvbm5lY3Rpb24uYmFuZHdpZHRoIGlzICJudW1i
ZXIiCi1QQVNTIHR5cGVvZiBjb25uZWN0aW9uLm1ldGVyZWQgaXMgImJvb2xlYW4iCi1QQVNTIHR5
cGVvZiBjb25uZWN0aW9uLmJhbmR3aWR0aCBpcyAibnVtYmVyIgotUEFTUyB0eXBlb2YgY29ubmVj
dGlvbi5tZXRlcmVkIGlzICJib29sZWFuIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZv
cm1hdGlvbi91cGRhdGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vdXBk
YXRlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YThkYjA3Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi91cGRhdGVzLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy91cGRhdGVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi93aW5kb3ctcHJv
cGVydHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL3dpbmRv
dy1wcm9wZXJ0eS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIx
YmM2N2IuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvbmV0d29ya2luZm9ybWF0aW9uL3dpbmRv
dy1wcm9wZXJ0eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1U
ZXN0cyB0aGF0IHRoZSB3aW5kb3cubmF2aWdhdG9yLmNvbm5lY3Rpb24gcHJvcGVydGllcyBhcmUg
cHJlc2VudC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgdHlwZW9mIG5h
dmlnYXRvci53ZWJraXRDb25uZWN0aW9uID09ICdvYmplY3QnIGlzIHRydWUKLVBBU1MgaGFzT25D
b25uZWN0aW9uUHJvcGVydHkoKSBpcyB0cnVlCi1QQVNTIG5hdmlnYXRvci53ZWJraXRDb25uZWN0
aW9uLmhhc093blByb3BlcnR5KCdvbndlYmtpdG5ldHdvcmtpbmZvY2hhbmdlJykgaXMgdHJ1ZQot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi93aW5kb3ctcHJvcGVydHkuaHRt
bCBiL0xheW91dFRlc3RzL25ldHdvcmtpbmZvcm1hdGlvbi93aW5kb3ctcHJvcGVydHkuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWNhZjBlNy4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9uZXR3b3JraW5mb3JtYXRpb24vd2luZG93LXByb3BlcnR5Lmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlw
dCBzcmM9InNjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGU2ZThkZDEuLjFiNTUwNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUwLDEzICs1MCw2IEBAIHdlYmtpdC5vcmcvYi85ODc0
NyBwbHVnaW5zL2RvY3VtZW50LW9wZW4uaHRtbCBbIENyYXNoIEZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzEwMjIwMCBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQuaHRt
bCBbIENyYXNoIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEwMjIwMCBmYXN0L2RvbS9IVE1MQW5j
aG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9hZC1zZXQuaHRtbCBbIENyYXNoIEZhaWx1cmUgXQog
Ci0jIEhpdHRpbmcgIWRlY29kZXIuZGVzdGluYXRpb25JRCgpIGFzc2VydGlvbi4KLXdlYmtpdC5v
cmcvYi8xMDI2NTEgWyBEZWJ1ZyBdIG5ldHdvcmtpbmZvcm1hdGlvbi9tdWx0aXBsZS1mcmFtZXMu
aHRtbCBbIENyYXNoIF0KLXdlYmtpdC5vcmcvYi8xMDI2NTEgWyBEZWJ1ZyBdIG5ldHdvcmtpbmZv
cm1hdGlvbi9iYXNpYy1hbGwtdHlwZXMtb2YtZXZlbnRzLmh0bWwgWyBDcmFzaCBdCi13ZWJraXQu
b3JnL2IvMTAyNjUxIFsgRGVidWcgXSBuZXR3b3JraW5mb3JtYXRpb24vdXBkYXRlcy5odG1sIFsg
Q3Jhc2ggXQotd2Via2l0Lm9yZy9iLzEwMjY1MSBbIERlYnVnIF0gbmV0d29ya2luZm9ybWF0aW9u
L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmh0bWwgWyBDcmFzaCBdCi13ZWJraXQub3JnL2Iv
MTAyNjUxIFsgRGVidWcgXSBuZXR3b3JraW5mb3JtYXRpb24vYmFzaWMtb3BlcmF0aW9uLmh0bWwg
WyBDcmFzaCBdCi0KICMgV2ViR0wgdGVzdCBjYXNlcyBjcmFzaGluZyBpbiBXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6cmVhZFBpeGVscygpLgogd2Via2l0Lm9yZy9iLzEwOTQxNyB3ZWJnbC9j
b25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLWF0dGFjaG1lbnQtZm9ybWF0cy5odG1sIFsgQ3Jh
c2ggRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTA5OTQ1IHdlYmdsL2NvbmZvcm1hbmNlL2dsc2wv
bWlzYy9zaGFkZXItdW5pZm9ybS1wYWNraW5nLXJlc3RyaWN0aW9ucy5odG1sIFsgQ3Jhc2ggXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5ZmM1NTZmLi5j
OTQ3NzUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MTgxMiw3ICsxODEyLDYgQEAgd2Via2l0Lm9yZy9iLzEyODY3MCBmYXN0L2RvbS93ZWJ0aW1pbmct
ZG9jdW1lbnQtb3Blbi5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTI4NjcwIGZhc3Qv
ZG9tL3dlYnRpbWluZy1uYXZpZ2F0ZS13aXRoaW4tZG9jdW1lbnQuaHRtbCBbIEZhaWx1cmUgXQog
d2Via2l0Lm9yZy9iLzEyODY3MCBmYXN0L2Zvcm1zL2Zvcm0taGlkZXMtdGFibGUuaHRtbCBbIEZh
aWx1cmUgXQogd2Via2l0Lm9yZy9iLzEyODY3MCBqcy9kb20vZG9tLXN0YXRpYy1wcm9wZXJ0eS1m
b3ItaW4taXRlcmF0aW9uLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMjg2NzAgbmV0
d29ya2luZm9ybWF0aW9uL3dpbmRvdy1wcm9wZXJ0eS5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtp
dC5vcmcvYi8xMjg5MDEgYWNjZXNzaWJpbGl0eS9saXN0LWRldGVjdGlvbi5odG1sIFsgRmFpbHVy
ZSBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzI2
ZjEyZi4uNWQ1ZjM0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTI4Myw5ICsyODMsNiBAQCB3ZWJraXQub3JnL2IvOTkwMzYgaHR0cC90ZXN0cy9wb2lu
dGVyLWxvY2sgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi85NTU4MiBiYXR0ZXJ5c3RhdHVzIFsgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvOTU1ODIgYmF0dGVyeXN0YXR1cy9ldmVudC1hZnRlci1uYXZp
Z2F0aW9uLmh0bWwgWyBUaW1lb3V0IF0KIAotIyBOZXR3b3JrIEluZm9ybWF0aW9uIEFQSSBzdXBw
b3J0IG5vdCB5ZXQuCi13ZWJraXQub3JnL2IvOTkwNTIgbmV0d29ya2luZm9ybWF0aW9uIFsgU2tp
cCBdCi0KICMgVG91Y2ggYWRqdXN0bWVudCBub3QgZW5hYmxlZAogd2Via2l0Lm9yZy9iLzk5MDU0
IHRvdWNoYWRqdXN0bWVudCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk5MDU0IHRvdWNoYWRq
dXN0bWVudC9pZnJhbWUuaHRtbCBbIFRpbWVvdXQgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zLXNpbS9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbS9T
a2lwcGVkCmluZGV4IDE5MTg2ZTYuLjNlMDk1MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1zaW0vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2lt
L1NraXBwZWQKQEAgLTExMzgsOSArMTEzOCw2IEBAIG1lZGlhL2VuY3J5cHRlZC1tZWRpYS8KICMg
YmF0dGVyeXN0YXR1cyBub3Qgc3VwcG9ydGVkIG9uIGlPUwogYmF0dGVyeXN0YXR1cy8KIAotIyBu
ZXR3b3JraW5mb3JtYXRpb24gbm90IHN1cHBvcnRlZCBvbiBpT1MKLW5ldHdvcmtpbmZvcm1hdGlv
bi8KLQogIyBnYW1lcGFkIG5vdCBzdXBwb3J0ZWQgb24gaU9TCiBnYW1lcGFkLwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDc1YzI0ZTQuLmIyYjdiN2Ig
MTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC00MzUsOSAr
NDM1LDYgQEAgd2Via2l0Lm9yZy9iLzgxMjg5IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQubGluZS5j
YXAucm91bmQuaHRtbCBbIEZhaWx1cmUgXQogIyBOZWVkcyBCYXR0ZXJ5Q2xpZW50IGltcGxlbWVu
dGF0aW9uLgogd2Via2l0Lm9yZy9iLzYyNjk4IGJhdHRlcnlzdGF0dXMvCiAKLSNOZXR3b3JrIElu
Zm9ybWF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Lgotd2Via2l0Lm9yZy9iLzczNTI4IG5ldHdv
cmtpbmZvcm1hdGlvbgotCiAjIFByb3hpbWl0eSBFdmVudHMgaXMgbm90IHN1cHBvcnRlZC4KIHBy
b3hpbWl0eQogZmFzdC9ldmVudHMvY29uc3RydWN0b3JzL2RldmljZS1wcm94aW1pdHktZXZlbnQt
Y29uc3RydWN0b3IuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cwppbmRleCA0NTVmMDExLi44ZWFmMWY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTQ4NCw5ICsxNDg0LDYgQEAgd2Via2l0Lm9yZy9iLzc4ODAxIHRv
dWNoYWRqdXN0bWVudAogIyBOZWVkcyBCYXR0ZXJ5Q2xpZW50IGltcGxlbWVudGF0aW9uLgogd2Vi
a2l0Lm9yZy9iLzYyNjk4IGJhdHRlcnlzdGF0dXMvCiAKLSNOZXR3b3JrIEluZm9ybWF0aW9uIGlz
IG5vdCBzdXBwb3J0ZWQgeWV0Lgotd2Via2l0Lm9yZy9iLzczNTI4IG5ldHdvcmtpbmZvcm1hdGlv
bgotCiAjIFByb3hpbWl0eSBFdmVudHMgaXMgbm90IHN1cHBvcnRlZC4KIHByb3hpbWl0eQogZmFz
dC9ldmVudHMvY29uc3RydWN0b3JzL2RldmljZS1wcm94aW1pdHktZXZlbnQtY29uc3RydWN0b3Iu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggOTA0MTE0Yi4uYzc3ODdmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5j
YWlyby9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjUwLDkgKzIyNTAsNiBAQCBwbHVnaW5zL2Rlc3Ry
b3ktZHVyaW5nLW5wcC1uZXctb2JqZWN0LXdpdGgtZmFsbGJhY2stY29udGVudC5odG1sCiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjE3NgogaWV0ZXN0Y2VudGVy
L2NzczMvdmFsdWVzYW5kdW5pdHMvdW5pdHMtMDAwLmh0bQogCi0jIE5ldHdvcmsgSW5mb3JtYXRp
b24gaXMgbm90IHN1cHBvcnRlZCB5ZXQuCi1uZXR3b3JraW5mb3JtYXRpb24KLQogIyBBc3NlcnRz
L2NyYXNoZXMgaW4gUGx1Z2luVmlldzo6ZGlkRmluaXNoTG9hZGluZwogZmFzdC9sb2FkZXIvcmVs
b2FkLXplcm8tYnl0ZS1wbHVnaW4uaHRtbAogdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtcGx1Z2lu
LWRvY3VtZW50Lmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKaW5kZXggYWJkY2I2Yy4uMWY5NWZjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxNC0wNC0xOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIE5FVFdPUktfSU5GTyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE4NDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9GZWF0dXJlRGVmaW5lcy5oOgorCiAy
MDE0LTA0LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgRG9u
J3QgaW5jbHVkZSBDb21waWxhdGlvblRocmVhZC5oIGZyb20gU3RyaW5nSW1wbC5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oIGIvU291cmNlL1dURi93dGYvRmVh
dHVyZURlZmluZXMuaAppbmRleCBiZDVhNDc5Li5mNjc5YzBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZp
bmVzLmgKQEAgLTYxOCwxMCArNjE4LDYgQEAKICNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJ
Tl9NRVRBREFUQV9DQUNIRSAwCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRXT1JL
X0lORk8pCi0jZGVmaW5lIEVOQUJMRV9ORVRXT1JLX0lORk8gMAotI2VuZGlmCi0KICNpZiAhZGVm
aW5lZChFTkFCTEVfTk9USUZJQ0FUSU9OUykKICNkZWZpbmUgRU5BQkxFX05PVElGSUNBVElPTlMg
MAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDYxNzY0ZDYuLjJiY2QyYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0xMSw3ICsxMSw2IEBAIHNldChXZWJDb3JlX0lOQ0xVREVfRElS
RUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYXNvdXJjZSIKICAgICAi
JHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYXN0cmVhbSIKICAgICAiJHtXRUJDT1JFX0RJUn0v
TW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMiCi0gICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVs
ZXMvbmV0d29ya2luZm8iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbm90aWZpY2F0aW9u
cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9wbHVnaW5zIgogICAgICIke1dFQkNPUkVf
RElSfS9Nb2R1bGVzL3Byb3hpbWl0eSIKQEAgLTEzNCw3ICsxMzMsNiBAQCBzZXQoV2ViQ29yZV9J
RExfSU5DTFVERVMKICAgICBNb2R1bGVzL2luZGV4ZWRkYgogICAgIE1vZHVsZXMvaW5kaWV1aQog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0KLSAgICBNb2R1bGVzL25ldHdvcmtpbmZvCiAgICAgTW9k
dWxlcy9ub3RpZmljYXRpb25zCiAgICAgTW9kdWxlcy9wcm94aW1pdHkKICAgICBNb2R1bGVzL3F1
b3RhCkBAIC0yNDEsOSArMjM5LDYgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAKICAgICBNb2R1
bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuaWRsCiAKLSAg
ICBNb2R1bGVzL25ldHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5pZGwK
LSAgICBNb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29ubmVjdGlvbi5pZGwKLQogICAg
IE1vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbAogICAgIE1v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsCiAgICAgTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5pZGwKQEAgLTg3NywxMSArODcyLDYgQEAgc2V0KFdl
YkNvcmVfU09VUkNFUwogCiAgICAgTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdh
dG9yQ29udGVudFV0aWxzLmNwcAogCi0gICAgTW9kdWxlcy9uZXR3b3JraW5mby9OYXZpZ2F0b3JO
ZXR3b3JrSW5mb0Nvbm5lY3Rpb24uY3BwCi0gICAgTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3Jr
SW5mby5jcHAKLSAgICBNb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29ubmVjdGlvbi5j
cHAKLSAgICBNb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29udHJvbGxlci5jcHAKLQog
ICAgIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmNwcAogICAg
IE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCiAgICAgTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NmNiMzBmLi44
N2RhMDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTQtMDQtMTggIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbW92ZSBORVRXT1JL
X0lORk8gc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMxODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBNb2R1bGVzL25ldHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVj
dGlvbi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9uZXR3b3JraW5mby9OYXZpZ2F0
b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL25l
dHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5pZGw6IFJlbW92ZWQuCisg
ICAgICAgICogTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mby5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mby5oOiBSZW1vdmVkLgorICAg
ICAgICAqIE1vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9DbGllbnQuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBNb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29ubmVjdGlvbi5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0Nvbm5l
Y3Rpb24uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJ
bmZvQ29ubmVjdGlvbi5pZGw6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9uZXR3b3JraW5m
by9OZXR3b3JrSW5mb0NvbnRyb2xsZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMv
bmV0d29ya2luZm8vTmV0d29ya0luZm9Db250cm9sbGVyLmg6IFJlbW92ZWQuCisgICAgICAgICog
UGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbjoK
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvTmV0d29ya0luZm9Qcm92aWRlckVmbC5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL05ldHdvcmtJbmZvUHJvdmlkZXJFZmwuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNldE5ldHdvcmtJbmZvcm1hdGlvbik6IERlbGV0ZWQuCisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisK
IDIwMTQtMDQtMTcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNjc0NzguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05hdmlnYXRvck5l
dHdvcmtJbmZvQ29ubmVjdGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3
NTMyN2MuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9O
YXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBt
ZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0g
KiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0gKiBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RQotICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0gKiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgotICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0gKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0gKiBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0gKLSAqIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiTmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uLmgiCi0KLSNpZiBFTkFCTEUoTkVU
V09SS19JTkZPKQotCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJOYXZpZ2F0b3IuaCIK
LSNpbmNsdWRlICJOZXR3b3JrSW5mb0NvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLU5hdmlnYXRvck5ldHdvcmtJbmZvQ29u
bmVjdGlvbjo6TmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uKCkKLXsKLX0KLQotTmF2aWdh
dG9yTmV0d29ya0luZm9Db25uZWN0aW9uOjp+TmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9u
KCkKLXsKLX0KLQotY29uc3QgY2hhciogTmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uOjpz
dXBwbGVtZW50TmFtZSgpCi17Ci0gICAgcmV0dXJuICJOYXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5l
Y3Rpb24iOwotfQotCi1OYXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb24qIE5hdmlnYXRvck5l
dHdvcmtJbmZvQ29ubmVjdGlvbjo6ZnJvbShOYXZpZ2F0b3IqIG5hdmlnYXRvcikKLXsKLSAgICBO
YXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb24qIHN1cHBsZW1lbnQgPSBzdGF0aWNfY2FzdDxO
YXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb24qPihTdXBwbGVtZW50PE5hdmlnYXRvcj46OmZy
b20obmF2aWdhdG9yLCBzdXBwbGVtZW50TmFtZSgpKSk7Ci0gICAgaWYgKCFzdXBwbGVtZW50KSB7
Ci0gICAgICAgIHN1cHBsZW1lbnQgPSBuZXcgTmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9u
KCk7Ci0gICAgICAgIHByb3ZpZGVUbyhuYXZpZ2F0b3IsIHN1cHBsZW1lbnROYW1lKCksIGFkb3B0
UHRyKHN1cHBsZW1lbnQpKTsKLSAgICB9Ci0gICAgcmV0dXJuIHN1cHBsZW1lbnQ7Ci19Ci0KLU5l
dHdvcmtJbmZvQ29ubmVjdGlvbiogTmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uOjp3ZWJr
aXRDb25uZWN0aW9uKE5hdmlnYXRvciogbmF2aWdhdG9yKQotewotICAgIGlmICghbmF2aWdhdG9y
LT5mcmFtZSgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIE5hdmlnYXRvck5ldHdvcmtJbmZv
Q29ubmVjdGlvbiogbmF2aWdhdG9yQ29ubmVjdGlvbiA9IE5hdmlnYXRvck5ldHdvcmtJbmZvQ29u
bmVjdGlvbjo6ZnJvbShuYXZpZ2F0b3IpOwotICAgIGlmICghbmF2aWdhdG9yQ29ubmVjdGlvbi0+
bV9jb25uZWN0aW9uKQotICAgICAgICBuYXZpZ2F0b3JDb25uZWN0aW9uLT5tX2Nvbm5lY3Rpb24g
PSBOZXR3b3JrSW5mb0Nvbm5lY3Rpb246OmNyZWF0ZShuYXZpZ2F0b3IpOwotICAgIHJldHVybiBu
YXZpZ2F0b3JDb25uZWN0aW9uLT5tX2Nvbm5lY3Rpb24uZ2V0KCk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX0lORk8pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZv
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OYXZpZ2F0
b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTA5MWE1OC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZv
L05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTYg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBt
ZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0g
KiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0gKiBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RQotICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0gKiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgotICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0gKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0gKiBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0gKLSAqIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIE5hdmlnYXRvck5ldHdvcmtJ
bmZvQ29ubmVjdGlvbl9oCi0jZGVmaW5lIE5hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbl9o
Ci0KLSNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQotCi0jaW5jbHVkZSAiTmV0d29ya0luZm9Db25u
ZWN0aW9uLmgiCi0jaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBOYXZpZ2F0b3I7Ci0KLWNsYXNzIE5hdmlnYXRvck5ldHdvcmtJbmZvQ29u
bmVjdGlvbiA6IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4gewotcHVibGljOgotICAgIHZp
cnR1YWwgfk5hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbigpOwotCi0gICAgc3RhdGljIE5h
dmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbiogZnJvbShOYXZpZ2F0b3IqKTsKLSAgICBzdGF0
aWMgTmV0d29ya0luZm9Db25uZWN0aW9uKiB3ZWJraXRDb25uZWN0aW9uKE5hdmlnYXRvciopOwot
Ci1wcml2YXRlOgotICAgIE5hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbigpOwotICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwotCi0gICAgUmVmUHRyPE5ldHdvcmtJ
bmZvQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfSU5GTykKLQotI2VuZGlmIC8vIE5hdmlnYXRv
ck5ldHdvcmtJbmZvQ29ubmVjdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25ldHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVj
dGlvbi5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyYzQxYTIuLjAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OYXZpZ2F0b3JOZXR3b3Jr
SW5mb0Nvbm5lY3Rpb24uaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAq
LwotCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgfHwgIUxBTkdVQUdFX0dPQkpFQ1QK
LVsKLSAgICBDb25kaXRpb25hbD1ORVRXT1JLX0lORk8sCi1dIHBhcnRpYWwgaW50ZXJmYWNlIE5h
dmlnYXRvciB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIE5ldHdvcmtJbmZvQ29ubmVjdGlvbiB3
ZWJraXRDb25uZWN0aW9uOwotfTsKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNWU4YmViNi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdv
cmtpbmZvL05ldHdvcmtJbmZvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0g
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJOZXR3b3JrSW5mby5oIgotCi0jaWYgRU5BQkxF
KE5FVFdPUktfSU5GTykKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotTmV0d29ya0luZm86Ok5ldHdv
cmtJbmZvKGRvdWJsZSBiYW5kd2lkdGgsIGJvb2wgbWV0ZXJlZCkKLSAgICA6IG1fYmFuZHdpZHRo
KGJhbmR3aWR0aCkKLSAgICAsIG1fbWV0ZXJlZChtZXRlcmVkKQotewotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bmV0d29ya2luZm8vTmV0d29ya0luZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29y
a2luZm8vTmV0d29ya0luZm8uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTBmNGU0
YS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05ldHdv
cmtJbmZvLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIE5ldHdvcmtJ
bmZvX2gKLSNkZWZpbmUgTmV0d29ya0luZm9faAotCi0jaWYgRU5BQkxFKE5FVFdPUktfSU5GTykK
LQotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBOZXR3b3JrSW5mbyA6IHB1YmxpYyBS
ZWZDb3VudGVkPE5ldHdvcmtJbmZvPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
TmV0d29ya0luZm8+IGNyZWF0ZShkb3VibGUgYmFuZHdpZHRoLCBib29sIG1ldGVyZWQpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBOZXR3b3JrSW5mbyhiYW5kd2lkdGgsIG1ldGVyZWQpKTsgfQotCi0g
ICAgZG91YmxlIGJhbmR3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFuZHdpZHRoOyB9Ci0gICAg
Ym9vbCBtZXRlcmVkKCkgY29uc3QgeyByZXR1cm4gbV9tZXRlcmVkOyB9Ci0KLXByaXZhdGU6Ci0g
ICAgTmV0d29ya0luZm8oZG91YmxlIGJhbmR3aWR0aCwgYm9vbCBtZXRlcmVkKTsKLQotICAgIGRv
dWJsZSBtX2JhbmR3aWR0aDsKLSAgICBib29sIG1fbWV0ZXJlZDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmCi0jZW5kaWYgLy8gTmV0d29ya0luZm9Db25uZWN0aW9uX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0lu
Zm9DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0lu
Zm9DbGllbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY1OTU5ZC4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ2xp
ZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIE5ldHdvcmtJbmZv
Q2xpZW50X2gKLSNkZWZpbmUgTmV0d29ya0luZm9DbGllbnRfaAotCi0jaWYgRU5BQkxFKE5FVFdP
UktfSU5GTykKLQotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgTmV0d29ya0lu
Zm9Db250cm9sbGVyOwotY2xhc3MgUGFnZTsKLQotY2xhc3MgTmV0d29ya0luZm9DbGllbnQgewot
cHVibGljOgotICAgIHZpcnR1YWwgfk5ldHdvcmtJbmZvQ2xpZW50KCkgeyB9Ci0KLSAgICB2aXJ0
dWFsIGRvdWJsZSBiYW5kd2lkdGgoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIG1ldGVy
ZWQoKSBjb25zdCA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lk
IG5ldHdvcmtJbmZvQ29udHJvbGxlckRlc3Ryb3llZCgpID0gMDsKLX07Ci0KLXZvaWQgcHJvdmlk
ZU5ldHdvcmtJbmZvVG8oUGFnZSosIE5ldHdvcmtJbmZvQ2xpZW50Kik7Ci0KLX0KLQotI2VuZGlm
IC8vIEVOQUJMRShORVRXT1JLX0lORk8pCi0KLSNlbmRpZiAvLyBOZXR3b3JrSW5mb0NsaWVudF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJ
bmZvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05l
dHdvcmtJbmZvQ29ubmVjdGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDll
ZjYyOGQuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9O
ZXR3b3JrSW5mb0Nvbm5lY3Rpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTA5ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
Ci0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJOZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaCIK
LQotI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiTmV0d29ya0luZm9D
bGllbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzUmVmPE5ldHdvcmtJbmZvQ29u
bmVjdGlvbj4gTmV0d29ya0luZm9Db25uZWN0aW9uOjpjcmVhdGUoTmF2aWdhdG9yKiBuYXZpZ2F0
b3IpCi17Ci0gICAgYXV0byBuZXR3b3JrSW5mb0Nvbm5lY3Rpb24gPSBhZG9wdFJlZigqbmV3IE5l
dHdvcmtJbmZvQ29ubmVjdGlvbihuYXZpZ2F0b3IpKTsKLSAgICBuZXR3b3JrSW5mb0Nvbm5lY3Rp
b24uZ2V0KCkuc3VzcGVuZElmTmVlZGVkKCk7Ci0gICAgcmV0dXJuIG5ldHdvcmtJbmZvQ29ubmVj
dGlvbjsKLX0KLQotTmV0d29ya0luZm9Db25uZWN0aW9uOjpOZXR3b3JrSW5mb0Nvbm5lY3Rpb24o
TmF2aWdhdG9yKiBuYXZpZ2F0b3IpCi0gICAgOiBBY3RpdmVET01PYmplY3QobmF2aWdhdG9yLT5m
cmFtZSgpLT5kb2N1bWVudCgpKQotICAgICwgbV9jb250cm9sbGVyKE5ldHdvcmtJbmZvQ29udHJv
bGxlcjo6ZnJvbShuYXZpZ2F0b3ItPmZyYW1lKCktPnBhZ2UoKSkpCi0gICAgLCBtX25ldHdvcmtJ
bmZvKDApCi17Ci0gICAgbV9jb250cm9sbGVyLT5hZGRMaXN0ZW5lcih0aGlzKTsKLX0KLQotTmV0
d29ya0luZm9Db25uZWN0aW9uOjp+TmV0d29ya0luZm9Db25uZWN0aW9uKCkKLXsKLX0KLQotZG91
YmxlIE5ldHdvcmtJbmZvQ29ubmVjdGlvbjo6YmFuZHdpZHRoKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9jb250cm9sbGVyLT5jbGllbnQoKS0+YmFuZHdpZHRoKCk7Ci19Ci0KLWJvb2wgTmV0d29y
a0luZm9Db25uZWN0aW9uOjptZXRlcmVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250cm9s
bGVyLT5jbGllbnQoKS0+bWV0ZXJlZCgpOwotfQotCi12b2lkIE5ldHdvcmtJbmZvQ29ubmVjdGlv
bjo6ZGlkQ2hhbmdlTmV0d29ya0luZm9ybWF0aW9uKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQ
YXNzUmVmUHRyPE5ldHdvcmtJbmZvPiBuZXR3b3JrSW5mbykKLXsKLSAgICBtX25ldHdvcmtJbmZv
ID0gbmV0d29ya0luZm87Ci0gICAgZGlzcGF0Y2hFdmVudChldmVudCk7Ci19Ci0KLUV2ZW50VGFy
Z2V0RGF0YSogTmV0d29ya0luZm9Db25uZWN0aW9uOjpldmVudFRhcmdldERhdGEoKQotewotICAg
IHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7Ci19Ci0KLUV2ZW50VGFyZ2V0RGF0YSYgTmV0d29y
a0luZm9Db25uZWN0aW9uOjplbnN1cmVFdmVudFRhcmdldERhdGEoKQotewotICAgIHJldHVybiBt
X2V2ZW50VGFyZ2V0RGF0YTsKLX0KLQotRXZlbnRUYXJnZXRJbnRlcmZhY2UgTmV0d29ya0luZm9D
b25uZWN0aW9uOjpldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIE5l
dHdvcmtJbmZvQ29ubmVjdGlvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsKLX0KLQotdm9pZCBO
ZXR3b3JrSW5mb0Nvbm5lY3Rpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikKLXsKLSAg
ICBpZiAobV9jb250cm9sbGVyKQotICAgICAgICBtX2NvbnRyb2xsZXItPnJlbW92ZUxpc3RlbmVy
KHRoaXMpOwotfQotCi12b2lkIE5ldHdvcmtJbmZvQ29ubmVjdGlvbjo6cmVzdW1lKCkKLXsKLSAg
ICBpZiAobV9jb250cm9sbGVyKQotICAgICAgICBtX2NvbnRyb2xsZXItPmFkZExpc3RlbmVyKHRo
aXMpOwotfQotCi12b2lkIE5ldHdvcmtJbmZvQ29ubmVjdGlvbjo6c3RvcCgpCi17Ci0gICAgaWYg
KG1fY29udHJvbGxlcikKLSAgICAgICAgbV9jb250cm9sbGVyLT5yZW1vdmVMaXN0ZW5lcih0aGlz
KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0Nvbm5lY3Rpb24u
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTEyNGY4NC4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29ubmVjdGlvbi5o
CisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBOZXR3b3JrSW5mb0Nvbm5l
Y3Rpb25faAotI2RlZmluZSBOZXR3b3JrSW5mb0Nvbm5lY3Rpb25faAotCi0jaWYgRU5BQkxFKE5F
VFdPUktfSU5GTykKLSNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJFdmVu
dExpc3RlbmVyLmgiCi0jaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKLSNpbmNsdWRlICJOYXZpZ2F0
b3IuaCIKLSNpbmNsdWRlICJOZXR3b3JrSW5mby5oIgotI2luY2x1ZGUgIk5ldHdvcmtJbmZvQ29u
dHJvbGxlci5oIgotCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIE5ldHdvcmtJbmZvQ29udHJvbGxlcjsKLQotY2xhc3MgTmV0
d29ya0luZm9Db25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya0luZm9Db25uZWN0
aW9uPiwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKLXB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZjxOZXR3b3JrSW5mb0Nvbm5lY3Rpb24+IGNyZWF0ZShOYXZp
Z2F0b3IqKTsKLQotICAgIH5OZXR3b3JrSW5mb0Nvbm5lY3Rpb24oKTsKLQotICAgIGRvdWJsZSBi
YW5kd2lkdGgoKSBjb25zdDsKLSAgICBib29sIG1ldGVyZWQoKSBjb25zdDsKLSAgICAKLSAgICB2
b2lkIGRpZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlvbihQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1Jl
ZlB0cjxOZXR3b3JrSW5mbz4pOwotICAgIHZvaWQgbmV0d29ya0luZm9Db250cm9sbGVyRGVzdHJv
eWVkKCkgeyBtX2NvbnRyb2xsZXIgPSAwOyB9Ci0KLSAgICAvLyBFdmVudFRhcmdldCBpbXBsZW1l
bnRhdGlvbi4KLSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50
ZXJmYWNlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7IH0KLQotICAgIHVzaW5nIFJlZkNvdW50ZWQ8TmV0d29ya0lu
Zm9Db25uZWN0aW9uPjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8TmV0d29ya0luZm9Db25u
ZWN0aW9uPjo6ZGVyZWY7Ci0KLSAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHdl
YmtpdG5ldHdvcmtpbmZvY2hhbmdlKTsKLSAgCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0IGltcGxl
bWVudGF0aW9uLgotICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pOwot
ICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpOwotCi1w
cml2YXRlOgotICAgIGV4cGxpY2l0IE5ldHdvcmtJbmZvQ29ubmVjdGlvbihOYXZpZ2F0b3IqKTsK
LQotICAgIC8vIEV2ZW50VGFyZ2V0IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgRXZlbnRU
YXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIEV2ZW50
VGFyZ2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQotICAgIHZpcnR1YWwg
dm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9Ci0KLSAgICAvLyBF
dmVudFRhcmdldCBpbXBsZW1lbnRhdGlvbi4KLSAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRh
cmdldERhdGE7Ci0KLSAgICBOZXR3b3JrSW5mb0NvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKLSAg
ICBSZWZQdHI8TmV0d29ya0luZm8+IG1fbmV0d29ya0luZm87IAotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYKLSNlbmRpZiAvLyBOZXR3b3JrSW5mb0Nvbm5lY3Rpb25faApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5m
b0Nvbm5lY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3
b3JrSW5mb0Nvbm5lY3Rpb24uaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Njg4
ZTQxLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmV0
d29ya0luZm9Db25uZWN0aW9uLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KLSAqCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0vLyBodHRwOi8vZHZjcy53My5v
cmcvaGcvZGFwL3Jhdy1maWxlL3RpcC9uZXR3b3JrLWFwaS9pbmRleC5odG1sCi0jaWYgIWRlZmlu
ZWQoTEFOR1VBR0VfR09CSkVDVCkgfHwgIUxBTkdVQUdFX0dPQkpFQ1QKLVsKLSAgICBOb0ludGVy
ZmFjZU9iamVjdCwKLSAgICBDb25kaXRpb25hbD1ORVRXT1JLX0lORk8sCi0gICAgQWN0aXZlRE9N
T2JqZWN0LAotICAgIEV2ZW50VGFyZ2V0LAotXSBpbnRlcmZhY2UgTmV0d29ya0luZm9Db25uZWN0
aW9uIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGJhbmR3aWR0aDsKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtZXRlcmVkOwotCi0gICAgYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb253ZWJraXRuZXR3b3JraW5mb2NoYW5nZTsKLQotICAgIC8vIEV2ZW50VGFyZ2V0IGlu
dGVyZmFjZQotICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwotICAgIHZvaWQg
cmVtb3ZlRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcHRpb25hbCBib29sZWFuIHVzZUNhcHR1cmUpOwotICAgIFtSYWlzZXNFeGNlcHRp
b25dIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChFdmVudCBldnQpOwotfTsKLSNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0NvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5m
b0NvbnRyb2xsZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNGM4Zjk0Li4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0lu
Zm9Db250cm9sbGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJOZXR3b3JrSW5mb0NvbnRyb2xsZXIuaCIKLQotI2lmIEVO
QUJMRShORVRXT1JLX0lORk8pCi0jaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJOZXR3b3Jr
SW5mby5oIgotI2luY2x1ZGUgIk5ldHdvcmtJbmZvQ2xpZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotTmV0d29ya0luZm9Db250cm9sbGVyOjpOZXR3b3JrSW5mb0NvbnRyb2xsZXIoTmV0
d29ya0luZm9DbGllbnQqIGNsaWVudCkKLSAgICA6IG1fY2xpZW50KGNsaWVudCkKLXsKLX0KLQot
TmV0d29ya0luZm9Db250cm9sbGVyOjp+TmV0d29ya0luZm9Db250cm9sbGVyKCkKLXsKLSAgICBm
b3IgKE5ldHdvcmtJbmZvTGlzdGVuZXJMaXN0OjppdGVyYXRvciBpdCA9IG1fbGlzdGVuZXJzLmJl
Z2luKCk7IGl0ICE9IG1fbGlzdGVuZXJzLmVuZCgpOyArK2l0KQotICAgICAgICAoKml0KS0+bmV0
d29ya0luZm9Db250cm9sbGVyRGVzdHJveWVkKCk7Ci0KLSAgICBtX2NsaWVudC0+bmV0d29ya0lu
Zm9Db250cm9sbGVyRGVzdHJveWVkKCk7Ci19Ci0KLVBhc3NPd25QdHI8TmV0d29ya0luZm9Db250
cm9sbGVyPiBOZXR3b3JrSW5mb0NvbnRyb2xsZXI6OmNyZWF0ZShOZXR3b3JrSW5mb0NsaWVudCog
Y2xpZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgTmV0d29ya0luZm9Db250cm9sbGVy
KGNsaWVudCkpOwotfQotCi12b2lkIE5ldHdvcmtJbmZvQ29udHJvbGxlcjo6YWRkTGlzdGVuZXIo
TmV0d29ya0luZm9Db25uZWN0aW9uKiBuZXR3b3JrSW5mb0Nvbm5lY3Rpb24pCi17Ci0gICAgIG1f
bGlzdGVuZXJzLmFwcGVuZChuZXR3b3JrSW5mb0Nvbm5lY3Rpb24pOwotICAgICBtX2NsaWVudC0+
c3RhcnRVcGRhdGluZygpOwotfQotCi12b2lkIE5ldHdvcmtJbmZvQ29udHJvbGxlcjo6cmVtb3Zl
TGlzdGVuZXIoTmV0d29ya0luZm9Db25uZWN0aW9uKiBuZXR3b3JrSW5mb0Nvbm5lY3Rpb24pCi17
Ci0gICAgIHNpemVfdCBwb3NpdGlvbiA9IG1fbGlzdGVuZXJzLmZpbmQobmV0d29ya0luZm9Db25u
ZWN0aW9uKTsKLSAgICAgaWYgKHBvc2l0aW9uID09IFdURjo6bm90Rm91bmQpCi0gICAgICAgICBy
ZXR1cm47Ci0gICAgIG1fbGlzdGVuZXJzLnJlbW92ZShwb3NpdGlvbik7Ci0gICAgIGlmIChtX2xp
c3RlbmVycy5pc0VtcHR5KCkpCi0gICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Ci19
Ci0KLXZvaWQgTmV0d29ya0luZm9Db250cm9sbGVyOjpkaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRp
b24oY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8TmV0d29ya0luZm8+
IG5ldHdvcmtJbmZvKQotewotICAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gRXZlbnQ6OmNyZWF0
ZShldmVudFR5cGUsIGZhbHNlLCBmYWxzZSk7Ci0gICAgIFJlZlB0cjxOZXR3b3JrSW5mbz4gbmV0
d29ya0luZm9ybWF0aW9uID0gbmV0d29ya0luZm87Ci0gICAgIGZvciAoTmV0d29ya0luZm9MaXN0
ZW5lckxpc3Q6Oml0ZXJhdG9yIGl0ID0gbV9saXN0ZW5lcnMuYmVnaW4oKTsgaXQgIT0gbV9saXN0
ZW5lcnMuZW5kKCk7ICsraXQpCi0gICAgICAgICAoKml0KS0+ZGlkQ2hhbmdlTmV0d29ya0luZm9y
bWF0aW9uKGV2ZW50LCBuZXR3b3JrSW5mb3JtYXRpb24pOwotfQotCi1jb25zdCBjaGFyKiBOZXR3
b3JrSW5mb0NvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCkKLXsKLSAgICByZXR1cm4gIk5ldHdv
cmtJbmZvQ29udHJvbGxlciI7Ci19Ci0KLXZvaWQgcHJvdmlkZU5ldHdvcmtJbmZvVG8oUGFnZSog
cGFnZSwgTmV0d29ya0luZm9DbGllbnQqIGNsaWVudCkKLXsKLSAgICBOZXR3b3JrSW5mb0NvbnRy
b2xsZXI6OnByb3ZpZGVUbyhwYWdlLCBOZXR3b3JrSW5mb0NvbnRyb2xsZXI6OnN1cHBsZW1lbnRO
YW1lKCksIE5ldHdvcmtJbmZvQ29udHJvbGxlcjo6Y3JlYXRlKGNsaWVudCkpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db250cm9sbGVyLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1ZmI5YWEuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0NvbnRyb2xsZXIuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDY3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgTmV0d29ya0luZm9Db250cm9sbGVyX2gKLSNk
ZWZpbmUgTmV0d29ya0luZm9Db250cm9sbGVyX2gKLQotI2lmIEVOQUJMRShORVRXT1JLX0lORk8p
Ci0jaW5jbHVkZSAiTmV0d29ya0luZm9DbGllbnQuaCIKLSNpbmNsdWRlICJOZXR3b3JrSW5mb0Nv
bm5lY3Rpb24uaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgTmV0d29ya0luZm87Ci1jbGFzcyBOZXR3b3JrSW5mb0Nvbm5lY3Rpb247Ci0KLWNsYXNz
IE5ldHdvcmtJbmZvQ29udHJvbGxlciA6IHB1YmxpYyBTdXBwbGVtZW50PFBhZ2U+IHsKLXB1Ymxp
YzoKLSAgICB+TmV0d29ya0luZm9Db250cm9sbGVyKCk7Ci0KLSAgICBOZXR3b3JrSW5mb0NsaWVu
dCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KLQotICAgIHN0YXRpYyBQYXNzT3duUHRy
PE5ldHdvcmtJbmZvQ29udHJvbGxlcj4gY3JlYXRlKE5ldHdvcmtJbmZvQ2xpZW50Kik7Ci0KLSAg
ICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKLSAgICBzdGF0aWMgTmV0d29y
a0luZm9Db250cm9sbGVyKiBmcm9tKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIHN0YXRpY19jYXN0PE5l
dHdvcmtJbmZvQ29udHJvbGxlcio+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20ocGFnZSwgc3VwcGxl
bWVudE5hbWUoKSkpOyB9Ci0gICAKLSAgICB2b2lkIGFkZExpc3RlbmVyKE5ldHdvcmtJbmZvQ29u
bmVjdGlvbiopOwotICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoTmV0d29ya0luZm9Db25uZWN0aW9u
Kik7Ci0KLSAgICB2b2lkIGRpZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlvbihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxOZXR3b3JrSW5mbz4pOwotCi1wcml2YXRlOgot
ICAgIGV4cGxpY2l0IE5ldHdvcmtJbmZvQ29udHJvbGxlcihOZXR3b3JrSW5mb0NsaWVudCopOwot
Ci0gICAgdHlwZWRlZiBWZWN0b3I8TmV0d29ya0luZm9Db25uZWN0aW9uKj4gTmV0d29ya0luZm9M
aXN0ZW5lckxpc3Q7Ci0KLSAgICBOZXR3b3JrSW5mb0NsaWVudCogbV9jbGllbnQ7Ci0gICAgTmV0
d29ya0luZm9MaXN0ZW5lckxpc3QgbV9saXN0ZW5lcnM7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBF
TkFCTEUoTkVUV09SS19JTkZPKQotI2VuZGlmIC8vIE5ldHdvcmtJbmZvQ29udHJvbGxlcl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDI0Y2Y1MDEuLjUyYjUyZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtRWZsLmNtYWtlCkBAIC03Nyw3ICs3Nyw2IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUwogICAgIHBsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcAogICAgIHBsYXRm
b3JtL2VmbC9Mb2dnaW5nRWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9NSU1FVHlwZVJlZ2lzdHJ5
RWZsLmNwcAotICAgIHBsYXRmb3JtL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyRWZsLmNwcAogICAg
IHBsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAogICAgIHBsYXRmb3JtL2VmbC9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRFZmwuY3BwCiAgICAgcGxhdGZvcm0vZWZsL1BsYXRmb3JtTW91c2VFdmVu
dEVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3Rv
cnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCmluZGV4IDBi
NmM2ZDAuLjE1YTc3ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5p
bgpAQCAtMjAsNyArMjAsNiBAQCBNZWRpYVNvdXJjZSBjb25kaXRpb25hbD1NRURJQV9TT1VSQ0UK
IE1lZGlhU3RyZWFtIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQogTWVkaWFTdHJlYW1UcmFjayBj
b25kaXRpb25hbD1NRURJQV9TVFJFQU0KIE1lc3NhZ2VQb3J0Ci1OZXR3b3JrSW5mb0Nvbm5lY3Rp
b24gY29uZGl0aW9uYWw9TkVUV09SS19JTkZPCiBOb2RlCiBOb3RpZmljYXRpb24gY29uZGl0aW9u
YWw9Tk9USUZJQ0FUSU9OU3xMRUdBQ1lfTk9USUZJQ0FUSU9OUwogUGVyZm9ybWFuY2UgY29uZGl0
aW9uYWw9V0VCX1RJTUlORwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L05ldHdvcmtJbmZvUHJvdmlkZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L05ldHdvcmtJbmZvUHJvdmlkZXJFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlYjgzMGRlLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9OZXR3
b3JrSW5mb1Byb3ZpZGVyRWZsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk5ldHdv
cmtJbmZvUHJvdmlkZXJFZmwuaCIKLQotI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCi0KLSNpbmNs
dWRlIDxFZXplLmg+Ci0jaW5jbHVkZSA8RWV6ZV9OZXQuaD4KLSNpbmNsdWRlIDxsaW1pdHM+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
c3RhdGljIGNvbnN0IGNoYXIgZXRoZXJuZXRJbnRlcmZhY2VbXSA9ICJldGgwIjsKLQotTmV0d29y
a0luZm9Qcm92aWRlckVmbDo6TmV0d29ya0luZm9Qcm92aWRlckVmbCgpCi17Ci19Ci0KLXZvaWQg
TmV0d29ya0luZm9Qcm92aWRlckVmbDo6c3RhcnRVcGRhdGluZygpCi17Ci0gICAgaWYgKCFlZXpl
X2luaXQoKSkKLSAgICAgICAgRUlOQV9MT0dfRVJSKCJGYWlsIHRvIHN0YXJ0IG5ldHdvcmsgaW5m
b3JtYXRpb24gY2xpZW50LiIpOwotfQotCi12b2lkIE5ldHdvcmtJbmZvUHJvdmlkZXJFZmw6OnN0
b3BVcGRhdGluZygpCi17Ci0gICAgZWV6ZV9zaHV0ZG93bigpOwotfQotCi1kb3VibGUgTmV0d29y
a0luZm9Qcm92aWRlckVmbDo6YmFuZHdpZHRoKCkgY29uc3QKLXsKLSAgICAvLyBGSVhNRSA6IFRo
aXMgZnVuY3Rpb24gc2hvdWxkIGNvbnNpZGVyIGNlbGx1bGFyIG5ldHdvcmsgYXMgd2VsbC4gRm9y
IGV4YW1wbGUsIDJHLCAzRyBhbmQgNEcuCi0gICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04OTg1MSBmb3IgZGV0YWlsLgotICAgIEVlemVfTmV0KiBldGhO
ZXQgPSBlZXplX25ldF9uZXcoZXRoZXJuZXRJbnRlcmZhY2UpOwotICAgIC8vIEZJWE1FOiBFdGhl
cm5ldCBpcyBvbmx5IHN1cHBvcnRlZCBub3cuIElmIGV0aE5ldCBpcyBudWxsLCBuZXR3b3JrIGlz
IG9mZmxpbmUuCi0gICAgaWYgKCFldGhOZXQpCi0gICAgICAgIHJldHVybiAwOyAvLyBJZiBuZXR3
b3JrIGlzIG9mZmxpbmUsIHJldHVybiAwLgotCi0gICAgZWV6ZV9uZXRfc2NhbihldGhOZXQpOwot
Ci0gICAgLy8gRklYTUUgOiBUaGUgZWV6ZSBsaWJyYXJ5IGRvZXNuJ3Qgc3VwcG9ydCBFRVpFX05F
VF9BRERSX1RZUEVfSVAgdHlwZSB5ZXQuIFNvLCBFRVpFX05FVF9BRERSX1RZUEVfQlJPQURDQVNU
Ci0gICAgLy8gaXMgdXNlZCBmb3Igbm93LgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4NTIgZm9yIGRldGFpbC4KLSAgICBjb25zdCBjaGFyKiBh
ZGRyZXNzID0gZWV6ZV9uZXRfYWRkcl9nZXQoZXRoTmV0LCBFRVpFX05FVF9BRERSX1RZUEVfQlJP
QURDQVNUKTsKLSAgICBpZiAoIWFkZHJlc3MpCi0gICAgICAgIHJldHVybiAwOyAvLyBJZiBuZXR3
b3JrIGlzIG9mZmxpbmUsIHJldHVybiAwLgotCi0gICAgZG91YmxlIGJhbmR3aWR0aDsKLSAgICBj
b25zdCBjaGFyKiBhdHRyaWJ1dGUgPSBlZXplX25ldF9hdHRyaWJ1dGVfZ2V0KGV0aE5ldCwgInNw
ZWVkIik7Ci0gICAgaWYgKGF0dHJpYnV0ZSkgewotICAgICAgICBib29sIG9rOwotICAgICAgICBi
YW5kd2lkdGggPSBTdHJpbmc6OmZyb21VVEY4KGF0dHJpYnV0ZSkudG9VSW50U3RyaWN0KCZvayk7
Ci0gICAgfSBlbHNlCi0gICAgICAgIGJhbmR3aWR0aCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6aW5maW5pdHkoKTsgLy8gSWYgYmFuZHdpZHRoIGlzIHVua25vd24sIHJldHVybiBpbmZp
bml0eSB2YWx1ZS4KLQotICAgIGVlemVfbmV0X2ZyZWUoZXRoTmV0KTsKLQotICAgIHJldHVybiBi
YW5kd2lkdGggLyA4OyAvLyBNQi9zCi19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShORVRXT1JLX0lORk8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvTmV0d29ya0luZm9Qcm92aWRlckVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL05ldHdvcmtJbmZvUHJvdmlkZXJFZmwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZWMzZjhjNi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvTmV0d29ya0luZm9Qcm92aWRlckVmbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIE5ldHdvcmtJbmZvUHJvdmlkZXJFZmxf
aAotI2RlZmluZSBOZXR3b3JrSW5mb1Byb3ZpZGVyRWZsX2gKLQotI2lmIEVOQUJMRShORVRXT1JL
X0lORk8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgTmV0d29ya0luZm9Qcm92aWRl
ckVmbCB7Ci1wdWJsaWM6Ci0gICAgTmV0d29ya0luZm9Qcm92aWRlckVmbCgpOwotCi0gICAgdm9p
ZCBzdGFydFVwZGF0aW5nKCk7Ci0gICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLQotICAgIGRvdWJs
ZSBiYW5kd2lkdGgoKSBjb25zdDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShORVRXT1JLX0lORk8pCi0KLSNlbmRpZiAvLyBOZXR3b3JrSW5mb1Byb3Zp
ZGVyRWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAxMjU2NjAxLi4w
ZDkzYjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMTMsMTEgKzEx
Myw2IEBACiAjaW5jbHVkZSAiQmF0dGVyeUNvbnRyb2xsZXIuaCIKICNlbmRpZgogCi0jaWYgRU5B
QkxFKE5FVFdPUktfSU5GTykKLSNpbmNsdWRlICJOZXR3b3JrSW5mby5oIgotI2luY2x1ZGUgIk5l
dHdvcmtJbmZvQ29udHJvbGxlci5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoUFJPWElNSVRZX0VW
RU5UUykKICNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmgiCiAjZW5kaWYKQEAg
LTEyNjAsMjMgKzEyNTUsNiBAQCB2b2lkIEludGVybmFsczo6c2V0QmF0dGVyeVN0YXR1cyhjb25z
dCBTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjaGFyZ2luZywgZG91YmxlCiAjZW5kaWYKIH0KIAot
dm9pZCBJbnRlcm5hbHM6OnNldE5ldHdvcmtJbmZvcm1hdGlvbihjb25zdCBTdHJpbmcmIGV2ZW50
VHlwZSwgZG91YmxlIGJhbmR3aWR0aCwgYm9vbCBtZXRlcmVkLCBFeGNlcHRpb25Db2RlJiBlYykK
LXsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKLSAgICBpZiAo
IWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0jaWYgRU5BQkxFKE5FVFdPUktf
SU5GTykKLSAgICBOZXR3b3JrSW5mb0NvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQtPnBhZ2UoKSkt
PmRpZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlvbihldmVudFR5cGUsIE5ldHdvcmtJbmZvOjpjcmVh
dGUoYmFuZHdpZHRoLCBtZXRlcmVkKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShldmVudFR5
cGUpOwotICAgIFVOVVNFRF9QQVJBTShiYW5kd2lkdGgpOwotICAgIFVOVVNFRF9QQVJBTShtZXRl
cmVkKTsKLSNlbmRpZgotfQotCiB2b2lkIEludGVybmFsczo6c2V0RGV2aWNlUHJveGltaXR5KGNv
bnN0IFN0cmluZyYgZXZlbnRUeXBlLCBkb3VibGUgdmFsdWUsIGRvdWJsZSBtaW4sIGRvdWJsZSBt
YXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRl
eHREb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNzc1NzE1Ny4u
NzI0ZTJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xOTcsOCArMTk3LDYg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRCYXR0ZXJ5U3RhdHVzKGNvbnN0IFN0cmluZyYgZXZl
bnRUeXBlLCBib29sIGNoYXJnaW5nLCBkb3VibGUgY2hhcmdpbmdUaW1lLCBkb3VibGUgZGlzY2hh
cmdpbmdUaW1lLCBkb3VibGUgbGV2ZWwsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIHZvaWQgc2V0
TmV0d29ya0luZm9ybWF0aW9uKGNvbnN0IFN0cmluZyYgZXZlbnRUeXBlLCBkb3VibGUgYmFuZHdp
ZHRoLCBib29sIG1ldGVyZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLQogICAgIHZvaWQgc2V0RGV2aWNl
UHJveGltaXR5KGNvbnN0IFN0cmluZyYgZXZlbnRUeXBlLCBkb3VibGUgdmFsdWUsIGRvdWJsZSBt
aW4sIGRvdWJsZSBtYXgsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIGVudW0gewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDY4Mjc4NTAuLjU1MDJhNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTE3NiwxMCArMTc2LDYgQEAKICAgICBbUmFpc2Vz
RXhjZXB0aW9uXSB2b2lkIHNldEJhdHRlcnlTdGF0dXMoRE9NU3RyaW5nIGV2ZW50VHlwZSwgYm9v
bGVhbiBjaGFyZ2luZywgZG91YmxlIGNoYXJnaW5nVGltZSwgZG91YmxlIGRpc2NoYXJnaW5nVGlt
ZSwgZG91YmxlIGxldmVsKTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChFTkFCTEVfTkVUV09SS19J
TkZPKSAmJiBFTkFCTEVfTkVUV09SS19JTkZPCi0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBz
ZXROZXR3b3JrSW5mb3JtYXRpb24oRE9NU3RyaW5nIGV2ZW50VHlwZSwgZG91YmxlIGJhbmR3aWR0
aCwgYm9vbGVhbiBtZXRlcmVkKTsKLSNlbmRpZgotCiAjaWYgZGVmaW5lZChFTkFCTEVfUFJPWElN
SVRZX0VWRU5UUykgJiYgRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMKICAgICBbUmFpc2VzRXhjZXB0
aW9uXSB2b2lkIHNldERldmljZVByb3hpbWl0eShET01TdHJpbmcgZXZlbnRUeXBlLCBkb3VibGUg
dmFsdWUsIGRvdWJsZSBtaW4sIGRvdWJsZSBtYXgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4MWM2
ODcuLjk1YjhjZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDQtMTggIFBoaWxp
cHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbW92ZSBORVRX
T1JLX0lORk8gc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTMxODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKwogMjAxNC0wNC0xNyAgQnJlbnQgRnVsZ2hh
bSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBVbnJldmlld2VkIDY0LWJp
dCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtl
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAyN2VlZTVhLi5mNWFlNTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTEwNyw3ICsxMDcsNiBAQCBsaXN0KEFQUEVO
RCBXZWJLaXRfU09VUkNFUwogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VDbGll
bnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAK
ICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50RWZsLmNw
cAotICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9OZXR3b3JrSW5mb0NsaWVudEVmbC5jcHAKICAgICBl
ZmwvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50RWZsLmNwcAogICAg
IGVmbC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNFZmwuY3BwCiAgICAgZWZsL1dl
YkNvcmVTdXBwb3J0L1Byb2dyZXNzVHJhY2tlckNsaWVudEVmbC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpp
bmRleCA2MzBiZGJjLi5jNmY5N2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTQtMDQtMTggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFJlbW92ZSBORVRXT1JLX0lORk8gc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9OZXR3b3JrSW5mb0Ns
aWVudEVmbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvTmV0d29ya0lu
Zm9DbGllbnRFZmwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAg
ICAgICAoX2V3a192aWV3X3ByaXZfbmV3KToKKwogMjAxNC0wNC0xNyAgSmVvbmdldW4gS2ltICA8
amVfanVsaWUua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMV0gU1NMIFN0cmlj
dCBpcyBzZXQgYWNjb3JkaW5nIHRvIGlucHV0IHBhcmFtZXRlci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L05ldHdvcmtJbmZvQ2xpZW50RWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L05ldHdvcmtJbmZvQ2xpZW50RWZsLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDVkYzVkZS4uMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9OZXR3b3JrSW5mb0NsaWVudEVmbC5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNh
bXN1bmcgRWxlY3Ryb25pY3MKLSAqCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiTmV0d29ya0luZm9DbGllbnRFZmwuaCIKLQotI2lmIEVOQUJMRShORVRXT1JLX0lO
Rk8pCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLU5ldHdvcmtJbmZvQ2xpZW50RWZsOjpOZXR3b3JrSW5mb0NsaWVudEVmbCgpCi17Ci19Ci0K
LU5ldHdvcmtJbmZvQ2xpZW50RWZsOjp+TmV0d29ya0luZm9DbGllbnRFZmwoKQotewotfQotCi12
b2lkIE5ldHdvcmtJbmZvQ2xpZW50RWZsOjpuZXR3b3JrSW5mb0NvbnRyb2xsZXJEZXN0cm95ZWQo
KQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCi12b2lkIE5ldHdvcmtJbmZvQ2xpZW50RWZsOjpz
dGFydFVwZGF0aW5nKCkKLXsKLSAgICBtX3Byb3ZpZGVyLnN0YXJ0VXBkYXRpbmcoKTsKLX0KLQot
dm9pZCBOZXR3b3JrSW5mb0NsaWVudEVmbDo6c3RvcFVwZGF0aW5nKCkKLXsKLSAgICBtX3Byb3Zp
ZGVyLnN0b3BVcGRhdGluZygpOwotfQotCi1kb3VibGUgTmV0d29ya0luZm9DbGllbnRFZmw6OmJh
bmR3aWR0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJvdmlkZXIuYmFuZHdpZHRoKCk7Ci19
Ci0KLWJvb2wgTmV0d29ya0luZm9DbGllbnRFZmw6Om1ldGVyZWQoKSBjb25zdAotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9OZXR3b3JrSW5mb0NsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvTmV0d29ya0luZm9DbGllbnRFZmwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzNkNWVjOC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9OZXR3b3JrSW5mb0NsaWVudEVmbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSwgSW5jLiAoIkFwcGxl
Iikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBOZXR3b3JrSW5m
b0NsaWVudEVmbF9oCi0jZGVmaW5lIE5ldHdvcmtJbmZvQ2xpZW50RWZsX2gKLQotI2lmIEVOQUJM
RShORVRXT1JLX0lORk8pCi0KLSNpbmNsdWRlIDxOZXR3b3JrSW5mb0NsaWVudC5oPgotI2luY2x1
ZGUgPE5ldHdvcmtJbmZvUHJvdmlkZXJFZmwuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBOZXR3b3JrSW5mb0NsaWVudEVmbCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JrSW5mb0Ns
aWVudCB7Ci1wdWJsaWM6Ci0gICAgTmV0d29ya0luZm9DbGllbnRFZmwoKTsKLSAgICB+TmV0d29y
a0luZm9DbGllbnRFZmwoKTsKLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgbmV0d29ya0luZm9Db250
cm9sbGVyRGVzdHJveWVkKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwot
ICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLQotICAgIHZpcnR1YWwgZG91YmxlIGJh
bmR3aWR0aCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBtZXRlcmVkKCkgY29uc3Q7Ci0KLXBy
aXZhdGU6Ci0gICAgV2ViQ29yZTo6TmV0d29ya0luZm9Qcm92aWRlckVmbCBtX3Byb3ZpZGVyOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKLSNlbmRpZiAvLyBOZXR3b3Jr
SW5mb0NsaWVudEVmbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCAzNjRjYWQ1
Li43ZDRhZjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTEwOCwxMCArMTA4
LDYgQEAKICNpbmNsdWRlICJCYXR0ZXJ5Q2xpZW50RWZsLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJM
RShORVRXT1JLX0lORk8pCi0jaW5jbHVkZSAiTmV0d29ya0luZm9DbGllbnRFZmwuaCIKLSNlbmRp
ZgotCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAjaW5jbHVkZSAiQ29sb3JDaG9vc2Vy
Q2xpZW50LmgiCiAjZW5kaWYKQEAgLTYxOSwxMCArNjE1LDYgQEAgc3RhdGljIEV3a19WaWV3X1By
aXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0
RGF0YSkKICAgICBXZWJDb3JlOjpwcm92aWRlRGV2aWNlT3JpZW50YXRpb25Ubyhwcml2LT5wYWdl
LmdldCgpLCBuZXcgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRFZmwpOwogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQotICAgIFdlYkNvcmU6OnByb3ZpZGVOZXR3b3Jr
SW5mb1RvKHByaXYtPnBhZ2UuZ2V0KCksIG5ldyBXZWJDb3JlOjpOZXR3b3JrSW5mb0NsaWVudEVm
bCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShWSUJSQVRJT04pCiAgICAgV2ViQ29yZTo6cHJvdmlk
ZVZpYnJhdGlvblRvKHByaXYtPnBhZ2UuZ2V0KCksIG5ldyBXZWJDb3JlOjpWaWJyYXRpb25DbGll
bnRFZmwoc21hcnREYXRhLT5zZWxmKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXgg
YjExOTA1Ni4uNGNiZDA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTQxLDcgKzQxLDYgQEAg
c2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0ZpbGVBUEkiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvRnVsbFNjcmVl
biIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiIKLSAgICAiJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9OZXR3b3JrSW5mbyIKICAgICAiJHtXRUJLSVQyX0RJUn0v
V2ViUHJvY2Vzcy9JY29uRGF0YWJhc2UiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJIgpAQCAtMjI2LDcgKzIyNSw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBT
aGFyZWQvV2ViS2l0MkluaXRpYWxpemUuY3BwCiAgICAgU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIu
Y3BwCiAgICAgU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCi0gICAgU2hhcmVkL1dlYk5ldHdvcmtJ
bmZvLmNwcAogICAgIFNoYXJlZC9XZWJPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcAogICAgIFNoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAogICAgIFNoYXJlZC9XZWJQYWdlR3JvdXBE
YXRhLmNwcApAQCAtMzMyLDggKzMzMCw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVBy
b2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHku
Y3BwCi0gICAgVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmNwcAotICAgIFVJ
UHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRh
TWFuYWdlclByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5
Q2hhbmdlQ2xpZW50LmNwcApAQCAtMzc0LDggKzM3MCw2IEBAIHNldChXZWJLaXQyX1NPVVJDRVMK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS01lZGlhQ2FjaGVNYW5hZ2VyLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS05hdmlnYXRpb25EYXRhUmVmLmNwcAotICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJ
bmZvLmNwcAotICAgIFVJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvTWFuYWdlci5jcHAKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmljYXRpb24uY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKQEAgLTQ4Niw4ICs0ODAsNiBAQCBzZXQoV2ViS2l0
Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5jcHAKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCiAKLSAg
ICBXZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHAKLQogICAg
IFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwCiAKQEAgLTUyNyw3ICs1MTksNiBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKICAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcAotICAg
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmV0d29ya0luZm9DbGllbnQuY3BwCiAgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCiAgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCiAgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnSW5DbGllbnQuY3BwCkBAIC01ODcsNyAr
NTc4LDYgQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKICAgICBVSVByb2Nlc3MvV2Vi
SWNvbkRhdGFiYXNlLm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5
Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KLSAgICBVSVByb2Nlc3MvV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC02MjMsOCArNjEzLDYgQEAgc2V0KFdlYktp
dDJfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAKLSAgICBXZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5l
dHdvcmtJbmZvTWFuYWdlci5tZXNzYWdlcy5pbgotCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KIAogICAgIFdlYlByb2Nlc3Mv
T3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDZmMWE5MmYuLjk4ODY5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxNC0wNC0x
OCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVt
b3ZlIE5FVFdPUktfSU5GTyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzE4NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFBsYXRmb3JtRWZs
LmNtYWtlOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTaGFy
ZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVkL1dlYk5ldHdvcmtJbmZvLmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViTmV0d29ya0luZm8uaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXROZXR3b3JrSW5mb01hbmFn
ZXIpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mby5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTmV0d29ya0luZm8uaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3JrSW5mb01hbmFnZXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvTWFuYWdlci5oOiBSZW1vdmVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcDoKKyAgICAgICAgKEV3
a0NvbnRleHQ6OkV3a0NvbnRleHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19j
b250ZXh0X3ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OldlYkNvbnRleHQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmV0d29ya0lu
Zm9NYW5hZ2VyUHJveHkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmV0d29y
a0luZm9NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01hbmFnZXIuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZv
TWFuYWdlci5tZXNzYWdlcy5pbjogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYk5ldHdvcmtJbmZvQ2xpZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5ldHdvcmtJbmZvQ2xpZW50Lmg6IFJlbW92ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKwogMjAxNC0w
NC0xNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10g
SG9vayB1cCBzY3JlZW4ue2F2YWlsSGVpZ2h0LCBhdmFpbFdpZHRoLCBoZWlnaHQsIHdpZHRofQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA4MTQyYTY3Li40OWMyMTQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTQwLDcgKzE0MCw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJf
U09VUkNFUwogICAgIFVJUHJvY2Vzcy9lZmwvRmluZENsaWVudEVmbC5jcHAKICAgICBVSVByb2Nl
c3MvZWZsL0Zvcm1DbGllbnRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENv
bnRleHRFZmwuY3BwCi0gICAgVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAog
ICAgIFVJUHJvY2Vzcy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2Vm
bC9QYWdlUG9saWN5Q2xpZW50RWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvUGFnZVVJQ2xpZW50
RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IGQ0MTg5NGMuLjc0
OWM3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTExMSw4ICsxMTEs
NiBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0luc3BlY3RvciogV0tJbnNwZWN0b3JS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIq
IFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLTWVkaWFDYWNoZU1hbmFnZXIqIFdLTWVkaWFDYWNoZU1hbmFnZXJSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25EYXRhKiBXS05hdmlnYXRpb25EYXRhUmVmOwot
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOZXR3b3JrSW5mb01hbmFnZXIqIFdLTmV0d29y
a0luZm9NYW5hZ2VyUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOZXR3b3JrSW5m
byogV0tOZXR3b3JrSW5mb1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTm90aWZp
Y2F0aW9uKiBXS05vdGlmaWNhdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
Tm90aWZpY2F0aW9uTWFuYWdlciogV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCogV0tOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaApp
bmRleCAzZTEyNGM2Li42NDQ2NzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0x
MTgsOCArMTE4LDYgQEAgcHVibGljOgogICAgICAgICBLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLAog
ICAgICAgICBNZWRpYUNhY2hlTWFuYWdlciwKICAgICAgICAgTmF2aWdhdGlvbkRhdGEsCi0gICAg
ICAgIE5ldHdvcmtJbmZvLAotICAgICAgICBOZXR3b3JrSW5mb01hbmFnZXIsCiAgICAgICAgIE5v
dGlmaWNhdGlvbiwKICAgICAgICAgTm90aWZpY2F0aW9uTWFuYWdlciwKICAgICAgICAgTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViTmV0d29ya0luZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5ldHdvcmtJ
bmZvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDRmY2U4OS4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmV0d29ya0luZm8uY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIldlYk5ldHdvcmtJbmZvLmgiCi0KLSNpZiBFTkFCTEUoTkVUV09SS19J
TkZPKQotCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJBcmd1bWVudHMu
aCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYk5ldHdvcmtJbmZvOjpXZWJOZXR3b3JrSW5m
byhkb3VibGUgYmFuZHdpZHRoLCBib29sIG1ldGVyZWQpCi17Ci0gICAgbV9kYXRhLmJhbmR3aWR0
aCA9IGJhbmR3aWR0aDsKLSAgICBtX2RhdGEubWV0ZXJlZCA9IG1ldGVyZWQ7Ci19Ci0KLVdlYk5l
dHdvcmtJbmZvOjp+V2ViTmV0d29ya0luZm8oKQotewotfQotCi12b2lkIFdlYk5ldHdvcmtJbmZv
OjpEYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0g
ICAgZW5jb2RlciA8PCBiYW5kd2lkdGg7Ci0gICAgZW5jb2RlciA8PCBtZXRlcmVkOwotfQotCi1i
b29sIFdlYk5ldHdvcmtJbmZvOjpEYXRhOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIERhdGEmIHJlc3VsdCkKLXsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5i
YW5kd2lkdGgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQubWV0ZXJlZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0
cnVlOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShORVRX
T1JLX0lORk8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmV0d29ya0lu
Zm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOZXR3b3JrSW5mby5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlYzU3NWQwLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJOZXR3b3JrSW5mby5oCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJOZXR3b3JrSW5mb19oCi0jZGVmaW5lIFdl
Yk5ldHdvcmtJbmZvX2gKLQotI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCi0KLSNpbmNsdWRlICJB
UElPYmplY3QuaCIKLSNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKLSNpbmNsdWRlICJBcmd1
bWVudEVuY29kZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotY2xhc3MgV2ViTmV0d29ya0luZm8gOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBs
PEFQSTo6T2JqZWN0OjpUeXBlOjpOZXR3b3JrSW5mbz4gewotcHVibGljOgotICAgIHN0cnVjdCBE
YXRhIHsKLSAgICAgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsK
LSAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgRGF0YSYp
OwotCi0gICAgICAgIGRvdWJsZSBiYW5kd2lkdGg7Ci0gICAgICAgIGJvb2wgbWV0ZXJlZDsKLSAg
ICB9OwotCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViTmV0d29ya0luZm8+IGNyZWF0ZShkb3Vi
bGUgYmFuZHdpZHRoLCBib29sIG1ldGVyZWQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYk5ldHdvcmtJbmZvKGJhbmR3aWR0aCwgbWV0ZXJlZCkpOwotICAgIH0KLQotICAg
IHZpcnR1YWwgfldlYk5ldHdvcmtJbmZvKCk7Ci0KLSAgICBkb3VibGUgYmFuZHdpZHRoKCkgY29u
c3QgeyByZXR1cm4gbV9kYXRhLmJhbmR3aWR0aDsgfQotICAgIGJvb2wgbWV0ZXJlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGF0YS5tZXRlcmVkOyB9Ci0KLSAgICBjb25zdCBEYXRhJiBkYXRhKCkgY29u
c3QgeyByZXR1cm4gbV9kYXRhOyB9Ci0KLXByaXZhdGU6Ci0gICAgV2ViTmV0d29ya0luZm8oZG91
YmxlIGJhbmR3aWR0aCwgYm9vbCBtZXRlcmVkKTsKLQotICAgIERhdGEgbV9kYXRhOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19JTkZPKQot
Ci0jZW5kaWYgLy8gV2ViTmV0d29ya0luZm9faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCmluZGV4IDY0YzkyNjIuLjc3MjFhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTgzLDggKzgzLDYgQEAgY2xhc3MgV2Vi
SWNvbkRhdGFiYXNlOwogY2xhc3MgV2ViSW5zcGVjdG9yUHJveHk7CiBjbGFzcyBXZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyOwogY2xhc3MgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTsKLWNsYXNz
IFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5OwotY2xhc3MgV2ViTmV0d29ya0luZm87CiBjbGFz
cyBXZWJOb3RpZmljYXRpb247CiBjbGFzcyBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjsKIGNsYXNz
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTsKQEAgLTEyOSw4ICsxMjcsNiBAQCBXS19BRERf
QVBJX01BUFBJTkcoV0tJY29uRGF0YWJhc2VSZWYsIFdlYkljb25EYXRhYmFzZSkKIFdLX0FERF9B
UElfTUFQUElORyhXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYsIFdlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tNZWRpYUNhY2hlTWFuYWdlclJlZiwgV2Vi
TWVkaWFDYWNoZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRpb25E
YXRhUmVmLCBBUEk6Ok5hdmlnYXRpb25EYXRhKQotV0tfQUREX0FQSV9NQVBQSU5HKFdLTmV0d29y
a0luZm9NYW5hZ2VyUmVmLCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eSkKLVdLX0FERF9BUElf
TUFQUElORyhXS05ldHdvcmtJbmZvUmVmLCBXZWJOZXR3b3JrSW5mbykKIFdLX0FERF9BUElfTUFQ
UElORyhXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYsIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eSkKIFdLX0FERF9BUElfTUFQUElORyhXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVm
LCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS05v
dGlmaWNhdGlvblByb3ZpZGVyUmVmLCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggN2FjZDc2ZS4uNmRj
NjAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAK
QEAgLTUzLDkgKzUzLDYgQEAKICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCiAjaW5jbHVkZSAi
V2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIgogI2VuZGlmCi0jaWYgRU5BQkxFKE5FVFdPUktfSU5G
TykKLSNpbmNsdWRlICJXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oIgotI2VuZGlmCiAKIG5h
bWVzcGFjZSBBUEkgewogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQ29udGV4dERv
d25sb2FkQ2xpZW50QmFzZT4gewpAQCAtNDA5LDE2ICs0MDYsNiBAQCBXS0dlb2xvY2F0aW9uTWFu
YWdlclJlZiBXS0NvbnRleHRHZXRHZW9sb2NhdGlvbk1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYpCiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+c3VwcGxlbWVudDxX
ZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4oKSk7CiB9CiAKLVdLTmV0d29ya0luZm9NYW5hZ2Vy
UmVmIFdLQ29udGV4dEdldE5ldHdvcmtJbmZvTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJl
ZikKLXsKLSNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQotICAgIHJldHVybiB0b0FQSSh0b0ltcGwo
Y29udGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk+KCkpOwot
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY29udGV4dFJlZik7Ci0gICAgcmV0dXJuIDA7Ci0jZW5k
aWYKLX0KLQogV0tJY29uRGF0YWJhc2VSZWYgV0tDb250ZXh0R2V0SWNvbkRhdGFiYXNlKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJl
ZiktPmljb25EYXRhYmFzZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuaAppbmRleCAzYWU1YzlhLi40MzViMDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5oCkBAIC0xMzYsNyArMTM2LDYgQEAgV0tfRVhQT1JUIFdLR2Vv
bG9jYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0aW9uTWFuYWdlcihXS0NvbnRl
eHRSZWYgY28KIFdLX0VYUE9SVCBXS0ljb25EYXRhYmFzZVJlZiBXS0NvbnRleHRHZXRJY29uRGF0
YWJhc2UoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLS2V5VmFsdWVTdG9yYWdl
TWFuYWdlclJlZiBXS0NvbnRleHRHZXRLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyKFdLQ29udGV4dFJl
ZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS01lZGlhQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdl
dE1lZGlhQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKLVdLX0VYUE9SVCBXS05l
dHdvcmtJbmZvTWFuYWdlclJlZiBXS0NvbnRleHRHZXROZXR3b3JrSW5mb01hbmFnZXIoV0tDb250
ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBXS0Nv
bnRleHRHZXROb3RpZmljYXRpb25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VY
UE9SVCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0
YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUmVzb3VyY2VDYWNo
ZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
TmV0d29ya0luZm8uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmV0d29y
a0luZm8uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3M2ZkMDVlLi4wMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXS05ldHdvcmtJbmZvLmgiCi0KLSNpZiBFTkFCTEUo
TkVUV09SS19JTkZPKQotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYk5ldHdv
cmtJbmZvLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0jZW5kaWYKLQotV0tUeXBlSUQg
V0tOZXR3b3JrSW5mb0dldFR5cGVJRCgpCi17Ci0jaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKLSAg
ICByZXR1cm4gdG9BUEkoV2ViTmV0d29ya0luZm86OkFQSVR5cGUpOwotI2Vsc2UKLSAgICByZXR1
cm4gMDsKLSNlbmRpZgotfQotCi1XS05ldHdvcmtJbmZvUmVmIFdLTmV0d29ya0luZm9DcmVhdGUo
ZG91YmxlIGJhbmR3aWR0aCwgYm9vbCBpc01ldGVyZWQpCi17Ci0jaWYgRU5BQkxFKE5FVFdPUktf
SU5GTykKLSAgICBSZWZQdHI8V2ViTmV0d29ya0luZm8+IG5ldHdvcmtJbmZvID0gV2ViTmV0d29y
a0luZm86OmNyZWF0ZShiYW5kd2lkdGgsIGlzTWV0ZXJlZCk7Ci0gICAgcmV0dXJuIHRvQVBJKG5l
dHdvcmtJbmZvLnJlbGVhc2UoKS5sZWFrUmVmKCkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0o
YmFuZHdpZHRoKTsKLSAgICBVTlVTRURfUEFSQU0oaXNNZXRlcmVkKTsKLSAgICByZXR1cm4gMDsK
LSNlbmRpZgotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
TmV0d29ya0luZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJ
bmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmZjg2NGEuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTmV0d29ya0luZm8uaAorKysgL2Rl
di9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV0tO
ZXR3b3JrSW5mb19oCi0jZGVmaW5lIFdLTmV0d29ya0luZm9faAotCi0jaW5jbHVkZSA8V2ViS2l0
Mi9XS0Jhc2UuaD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgot
Ci1XS19FWFBPUlQgV0tUeXBlSUQgV0tOZXR3b3JrSW5mb0dldFR5cGVJRCgpOwotCi1XS19FWFBP
UlQgV0tOZXR3b3JrSW5mb1JlZiBXS05ldHdvcmtJbmZvQ3JlYXRlKGRvdWJsZSBiYW5kd2lkdGgs
IGJvb2wgaXNNZXRlcmVkKTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2Vu
ZGlmIC8vIFdLTmV0d29ya0luZm9faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLTmV0d29ya0luZm9NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvTWFuYWdlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDZjMjc4YTguLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLTmV0d29ya0luZm9NYW5hZ2VyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYyICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJXS05ldHdvcmtJbmZvTWFuYWdlci5oIgotCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5j
bHVkZSAiV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKLQotV0tUeXBlSUQgV0tOZXR3b3JrSW5mb01hbmFnZXJHZXRUeXBlSUQoKQotewotI2lm
IEVOQUJMRShORVRXT1JLX0lORk8pCi0gICAgcmV0dXJuIHRvQVBJKFdlYk5ldHdvcmtJbmZvTWFu
YWdlclByb3h5OjpBUElUeXBlKTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKLX0KLQot
dm9pZCBXS05ldHdvcmtJbmZvTWFuYWdlclNldFByb3ZpZGVyKFdLTmV0d29ya0luZm9NYW5hZ2Vy
UmVmIG5ldHdvcmtJbmZvTWFuYWdlciwgY29uc3QgV0tOZXR3b3JrSW5mb1Byb3ZpZGVyQmFzZSog
cHJvdmlkZXIpCi17Ci0jaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKLSAgICB0b0ltcGwobmV0d29y
a0luZm9NYW5hZ2VyKS0+aW5pdGlhbGl6ZVByb3ZpZGVyKHByb3ZpZGVyKTsKLSNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKG5ldHdvcmtJbmZvTWFuYWdlcik7Ci0gICAgVU5VU0VEX1BBUkFNKHByb3Zp
ZGVyKTsKLSNlbmRpZgotfQotCi12b2lkIFdLTmV0d29ya0luZm9NYW5hZ2VyUHJvdmlkZXJEaWRD
aGFuZ2VOZXR3b3JrSW5mb3JtYXRpb24oV0tOZXR3b3JrSW5mb01hbmFnZXJSZWYgbmV0d29ya0lu
Zm9NYW5hZ2VyLCBXS1N0cmluZ1JlZiBldmVudFR5cGUsIFdLTmV0d29ya0luZm9SZWYgbmV0d29y
a0luZm8pCi17Ci0jaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKLSAgICB0b0ltcGwobmV0d29ya0lu
Zm9NYW5hZ2VyKS0+cHJvdmlkZXJEaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRpb24oQXRvbWljU3Ry
aW5nKHRvSW1wbChldmVudFR5cGUpLT5zdHJpbmcoKSksIHRvSW1wbChuZXR3b3JrSW5mbykpOwot
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0obmV0d29ya0luZm9NYW5hZ2VyKTsKLSAgICBVTlVTRURf
UEFSQU0oZXZlbnRUeXBlKTsKLSAgICBVTlVTRURfUEFSQU0obmV0d29ya0luZm8pOwotI2VuZGlm
Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOZXR3b3Jr
SW5mb01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJ
bmZvTWFuYWdlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2JkY2E2Li4wMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS05ldHdvcmtJbmZvTWFu
YWdlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBXS05ldHdvcmtJbmZvTWFuYWdlcl9oCi0jZGVmaW5lIFdLTmV0d29ya0luZm9N
YW5hZ2VyX2gKLQotI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+Ci0KLSNpZmRlZiBfX2NwbHVz
cGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotLy8gUHJvdmlkZXIuCi10eXBlZGVmIHZvaWQg
KCpXS05ldHdvcmtJbmZvUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2spKFdLTmV0d29ya0lu
Zm9NYW5hZ2VyUmVmIG5ldHdvcmtJbmZvTWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
Ci10eXBlZGVmIHZvaWQgKCpXS05ldHdvcmtJbmZvUHJvdmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFj
aykoV0tOZXR3b3JrSW5mb01hbmFnZXJSZWYgbmV0d29ya0luZm9NYW5hZ2VyLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKLXR5cGVkZWYgZG91YmxlICgqV0tOZXR3b3JrSW5mb1Byb3ZpZGVyR2V0
QmFuZHdpZHRoQ2FsbGJhY2spKFdLTmV0d29ya0luZm9NYW5hZ2VyUmVmIG5ldHdvcmtJbmZvTWFu
YWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci10eXBlZGVmIGJvb2wgKCpXS05ldHdvcmtJ
bmZvUHJvdmlkZXJJc01ldGVyZWRDYWxsYmFjaykoV0tOZXR3b3JrSW5mb01hbmFnZXJSZWYgbmV0
d29ya0luZm9NYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLQotdHlwZWRlZiBzdHJ1
Y3QgV0tOZXR3b3JrSW5mb1Byb3ZpZGVyQmFzZSB7Ci0gICAgaW50ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwot
ICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKLX0gV0tOZXR3b3JrSW5mb1Byb3ZpZGVyQmFzZTsK
LQotdHlwZWRlZiBzdHJ1Y3QgV0tOZXR3b3JrSW5mb1Byb3ZpZGVyIHsKLSAgICBXS05ldHdvcmtJ
bmZvUHJvdmlkZXJCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJhc2U7Ci0KLSAgICBXS05ldHdvcmtJbmZvUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VXBkYXRpbmc7Ci0gICAgV0tOZXR3b3JrSW5m
b1Byb3ZpZGVyU3RvcFVwZGF0aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dG9wVXBkYXRpbmc7Ci0gICAgV0tOZXR3b3JrSW5mb1Byb3ZpZGVyR2V0QmFuZHdpZHRoQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICBiYW5kd2lkdGg7Ci0gICAgV0tOZXR3b3JrSW5m
b1Byb3ZpZGVySXNNZXRlcmVkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
c01ldGVyZWQ7Ci19IFdLTmV0d29ya0luZm9Qcm92aWRlclYwOwotCi1XS19FWFBPUlQgV0tUeXBl
SUQgV0tOZXR3b3JrSW5mb01hbmFnZXJHZXRUeXBlSUQoKTsKLQotV0tfRVhQT1JUIHZvaWQgV0tO
ZXR3b3JrSW5mb01hbmFnZXJTZXRQcm92aWRlcihXS05ldHdvcmtJbmZvTWFuYWdlclJlZiBuZXR3
b3JrSW5mb01hbmFnZXIsIGNvbnN0IFdLTmV0d29ya0luZm9Qcm92aWRlckJhc2UqIHByb3ZpZGVy
KTsKLQotV0tfRVhQT1JUIHZvaWQgV0tOZXR3b3JrSW5mb01hbmFnZXJQcm92aWRlckRpZENoYW5n
ZU5ldHdvcmtJbmZvcm1hdGlvbihXS05ldHdvcmtJbmZvTWFuYWdlclJlZiBuZXR3b3JrSW5mb01h
bmFnZXIsIFdLU3RyaW5nUmVmIGV2ZW50VHlwZSwgV0tOZXR3b3JrSW5mb1JlZiBuZXR3b3JrSW5m
byk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvLyBXS05ldHdv
cmtJbmZvTWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfY29udGV4dC5jcHAKaW5kZXggODc4MThkZC4uNDQ4YzZhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAtMjQsNyArMjQsNiBA
QAogI2luY2x1ZGUgIkJhdHRlcnlQcm92aWRlci5oIgogI2luY2x1ZGUgIkNvbnRleHRIaXN0b3J5
Q2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyRWZsLmgiCi0jaW5jbHVkZSAi
TmV0d29ya0luZm9Qcm92aWRlci5oIgogI2luY2x1ZGUgIlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZs
LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5o
IgpAQCAtNzEsOSArNzAsNiBAQCBFd2tDb250ZXh0OjpFd2tDb250ZXh0KFdLQ29udGV4dFJlZiBj
b250ZXh0KQogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKICAgICAsIG1fYmF0dGVyeVByb3Zp
ZGVyKEJhdHRlcnlQcm92aWRlcjo6Y3JlYXRlKGNvbnRleHQpKQogI2VuZGlmCi0jaWYgRU5BQkxF
KE5FVFdPUktfSU5GTykKLSAgICAsIG1fbmV0d29ya0luZm9Qcm92aWRlcihOZXR3b3JrSW5mb1By
b3ZpZGVyOjpjcmVhdGUoY29udGV4dCkpCi0jZW5kaWYKICAgICAsIG1fZG93bmxvYWRNYW5hZ2Vy
KHN0ZDo6bWFrZV91bmlxdWU8RG93bmxvYWRNYW5hZ2VyRWZsPihjb250ZXh0KSkKICAgICAsIG1f
cmVxdWVzdE1hbmFnZXJDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxSZXF1ZXN0TWFuYWdlckNsaWVu
dEVmbD4oY29udGV4dCkpCiAgICAgLCBtX2hpc3RvcnlDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxD
b250ZXh0SGlzdG9yeUNsaWVudEVmbD4oY29udGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKaW5kZXggZDA3ZjVi
NS4uYzI4OTVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHRfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaApAQCAtNDEsOSArNDEsNiBAQCBjbGFzcyBSZXF1ZXN0
TWFuYWdlckNsaWVudEVmbDsKICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCiBjbGFzcyBCYXR0
ZXJ5UHJvdmlkZXI7CiAjZW5kaWYKLSNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQotY2xhc3MgTmV0
d29ya0luZm9Qcm92aWRlcjsKLSNlbmRpZgogfQogCiBjbGFzcyBFd2tDb250ZXh0IDogcHVibGlj
IEV3a09iamVjdCB7CkBAIC0xMTcsOSArMTE0LDYgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQkFU
VEVSWV9TVEFUVVMpCiAgICAgUmVmUHRyPFdlYktpdDo6QmF0dGVyeVByb3ZpZGVyPiBtX2JhdHRl
cnlQcm92aWRlcjsKICNlbmRpZgotI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCi0gICAgUmVmUHRy
PFdlYktpdDo6TmV0d29ya0luZm9Qcm92aWRlcj4gbV9uZXR3b3JrSW5mb1Byb3ZpZGVyOwotI2Vu
ZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyRWZsPiBtX2Rv
d25sb2FkTWFuYWdlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpSZXF1ZXN0TWFuYWdl
ckNsaWVudEVmbD4gbV9yZXF1ZXN0TWFuYWdlckNsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IGM3YzUxZTMuLmMxMGVmZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTc0LDEwICs3NCw2IEBACiAjaW5jbHVkZSAi
V2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoTkVUV09SS19J
TkZPKQotI2luY2x1ZGUgIldlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgiCi0jZW5kaWYKLQog
I2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc01lc3NhZ2VzLmgi
CkBAIC0xOTIsOSArMTg4LDYgQEAgV2ViQ29udGV4dDo6V2ViQ29udGV4dChjb25zdCBTdHJpbmcm
IGluamVjdGVkQnVuZGxlUGF0aCkKICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCiAgICAgYWRk
U3VwcGxlbWVudDxXZWJCYXR0ZXJ5TWFuYWdlclByb3h5PigpOwogI2VuZGlmCi0jaWYgRU5BQkxF
KE5FVFdPUktfSU5GTykKLSAgICBhZGRTdXBwbGVtZW50PFdlYk5ldHdvcmtJbmZvTWFuYWdlclBy
b3h5PigpOwotI2VuZGlmCiAKICAgICBjb250ZXh0cygpLmFwcGVuZCh0aGlzKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKaW5kZXggYjJlMjMyNi4uNTJiMjU3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBAIC04NCw5ICs4NCw2IEBAIHN0cnVjdCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogICAgIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJh
Y2s8SW1tdXRhYmxlRGljdGlvbmFyeSo+IERpY3Rpb25hcnlDYWxsYmFjazsKIAotI2lmIEVOQUJM
RShORVRXT1JLX0lORk8pCi1jbGFzcyBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTsKLSNlbmRp
ZgogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiOWI5NjBiLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIldlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgiCi0KLSNpZiBFTkFCTEUoTkVUV09SS19J
TkZPKQotCi0jaW5jbHVkZSAiV2ViQ29udGV4dC5oIgotI2luY2x1ZGUgIldlYk5ldHdvcmtJbmZv
LmgiCi0jaW5jbHVkZSAiV2ViTmV0d29ya0luZm9NYW5hZ2VyTWVzc2FnZXMuaCIKLSNpbmNsdWRl
ICJXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCi0KLW5hbWVzcGFjZSBXZWJL
aXQgewotCi1jb25zdCBjaGFyKiBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6c3VwcGxlbWVu
dE5hbWUoKQotewotICAgIHJldHVybiAiV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkiOwotfQot
Ci1QYXNzUmVmUHRyPFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5PiBXZWJOZXR3b3JrSW5mb01h
bmFnZXJQcm94eTo6Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eShjb250ZXh0KSk7Ci19Ci0KLVdl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5OjpXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eShXZWJD
b250ZXh0KiBjb250ZXh0KQotICAgIDogV2ViQ29udGV4dFN1cHBsZW1lbnQoY29udGV4dCkKLSAg
ICAsIG1faXNVcGRhdGluZyhmYWxzZSkKLXsKLSAgICBXZWJDb250ZXh0U3VwcGxlbWVudDo6Y29u
dGV4dCgpLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYk5ldHdvcmtJbmZvTWFuYWdl
clByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKLX0KLQotV2ViTmV0d29ya0lu
Zm9NYW5hZ2VyUHJveHk6On5XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eSgpCi17Ci19Ci0KLXZv
aWQgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBX
S05ldHdvcmtJbmZvUHJvdmlkZXJCYXNlKiBwcm92aWRlcikKLXsKLSAgICBtX3Byb3ZpZGVyLmlu
aXRpYWxpemUocHJvdmlkZXIpOwotfQotCi12b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5
Ojpwcm92aWRlckRpZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlvbihjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgV2ViTmV0d29ya0luZm8qIG5ldHdvcmtJbmZvcm1hdGlvbikKLXsKLSAgICBp
ZiAoIWNvbnRleHQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29udGV4dCgpLT5zZW5kVG9B
bGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYk5ldHdvcmtJbmZvTWFuYWdlcjo6RGlkQ2hhbmdlTmV0
d29ya0luZm9ybWF0aW9uKGV2ZW50VHlwZSwgbmV0d29ya0luZm9ybWF0aW9uLT5kYXRhKCkpKTsK
LX0KLQotLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKLQotdm9pZCBXZWJOZXR3b3JrSW5mb01hbmFn
ZXJQcm94eTo6Y29udGV4dERlc3Ryb3llZCgpCi17Ci0gICAgc3RvcFVwZGF0aW5nKCk7Ci19Ci0K
LXZvaWQgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OnByb2Nlc3NEaWRDbG9zZShXZWJQcm9j
ZXNzUHJveHkqKQotewotICAgIHN0b3BVcGRhdGluZygpOwotfQotCi12b2lkIFdlYk5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5OjpyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpCi17Ci0gICAgQVBJOjpP
YmplY3Q6OnJlZigpOwotfQotCi12b2lkIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5OjpkZXJl
ZldlYkNvbnRleHRTdXBwbGVtZW50KCkKLXsKLSAgICBBUEk6Ok9iamVjdDo6ZGVyZWYoKTsKLX0K
LQotdm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6c3RhcnRVcGRhdGluZygpCi17Ci0g
ICAgaWYgKG1faXNVcGRhdGluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wcm92aWRlci5z
dGFydFVwZGF0aW5nKHRoaXMpOwotICAgIG1faXNVcGRhdGluZyA9IHRydWU7Ci19Ci0KLXZvaWQg
V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OnN0b3BVcGRhdGluZygpCi17Ci0gICAgaWYgKCFt
X2lzVXBkYXRpbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcHJvdmlkZXIuc3RvcFVwZGF0
aW5nKHRoaXMpOwotICAgIG1faXNVcGRhdGluZyA9IGZhbHNlOwotfQotCi12b2lkIFdlYk5ldHdv
cmtJbmZvTWFuYWdlclByb3h5OjpnZXRCYW5kd2lkdGgoZG91YmxlJiBiYW5kd2lkdGgpCi17Ci0g
ICAgYmFuZHdpZHRoID0gbV9wcm92aWRlci5iYW5kd2lkdGgodGhpcyk7Ci19Ci0KLXZvaWQgV2Vi
TmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OmlzTWV0ZXJlZChib29sJiBpc01ldGVyZWQpCi17Ci0g
ICAgaXNNZXRlcmVkID0gbV9wcm92aWRlci5pc01ldGVyZWQodGhpcyk7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfSU5GTykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4ZWQxNTcuLjAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVs
IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdl
Yk5ldHdvcmtJbmZvTWFuYWdlclByb3h5X2gKLSNkZWZpbmUgV2ViTmV0d29ya0luZm9NYW5hZ2Vy
UHJveHlfaAotCi0jaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKLQotI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgotI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUgIldlYkNvbnRleHRT
dXBwbGVtZW50LmgiCi0jaW5jbHVkZSAiV2ViTmV0d29ya0luZm9Qcm92aWRlci5oIgotI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJDb250
ZXh0OwotY2xhc3MgV2ViTmV0d29ya0luZm87Ci0KLWNsYXNzIFdlYk5ldHdvcmtJbmZvTWFuYWdl
clByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6TmV0d29y
a0luZm9NYW5hZ2VyPiwgcHVibGljIFdlYkNvbnRleHRTdXBwbGVtZW50LCBwcml2YXRlIElQQzo6
TWVzc2FnZVJlY2VpdmVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxl
bWVudE5hbWUoKTsKLQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5ldHdvcmtJbmZvTWFuYWdl
clByb3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOwotICAgIHZpcnR1YWwgfldlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5KCk7Ci0KLSAgICB2b2lkIGluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS05l
dHdvcmtJbmZvUHJvdmlkZXJCYXNlKik7Ci0KLSAgICB2b2lkIHByb3ZpZGVyRGlkQ2hhbmdlTmV0
d29ya0luZm9ybWF0aW9uKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFdlYk5l
dHdvcmtJbmZvKik7Ci0KLSAgICB1c2luZyBBUEk6Ok9iamVjdDo6cmVmOwotICAgIHVzaW5nIEFQ
STo6T2JqZWN0OjpkZXJlZjsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJOZXR3b3JrSW5m
b01hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7Ci0KLSAgICAvLyBXZWJDb250ZXh0U3VwcGxlbWVu
dAotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIG92ZXJyaWRlOwotCi0gICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYp
IG92ZXJyaWRlOwotCi0gICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7Ci0gICAgdm9pZCBzdG9wVXBk
YXRpbmcoKTsKLQotICAgIHZvaWQgZ2V0QmFuZHdpZHRoKGRvdWJsZSYpOwotICAgIHZvaWQgaXNN
ZXRlcmVkKGJvb2wmKTsKLQotICAgIGJvb2wgbV9pc1VwZGF0aW5nOwotCi0gICAgV2ViQ29udGV4
dCogbV9jb250ZXh0OwotICAgIFdlYk5ldHdvcmtJbmZvUHJvdmlkZXIgbV9wcm92aWRlcjsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfSU5G
TykKLQotI2VuZGlmIC8vIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZhY2RjMi4u
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTmV0d29ya0luZm9NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0jIENv
cHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotI2lmIEVOQUJMRShO
RVRXT1JLX0lORk8pCi0KLW1lc3NhZ2VzIC0+IFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5IHsK
LSAgICBTdGFydFVwZGF0aW5nKCk7Ci0gICAgU3RvcFVwZGF0aW5nKCk7Ci0KLSAgICBHZXRCYW5k
d2lkdGgoKSAtPiAoZG91YmxlIGJhbmR3aWR0aCk7Ci0gICAgSXNNZXRlcmVkKCkgLT4gKGJvb2wg
bWV0ZXJlZCk7Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmZmZkZjBkLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJOZXR3
b3JrSW5mb1Byb3ZpZGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJOZXR3b3Jr
SW5mb1Byb3ZpZGVyLmgiCi0KLSNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQotCi0jaW5jbHVkZSAi
V0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaCIKLSNp
bmNsdWRlIDxsaW1pdHMuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXZvaWQgV2ViTmV0d29y
a0luZm9Qcm92aWRlcjo6c3RhcnRVcGRhdGluZyhXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eSog
bmV0d29ya0luZm9NYW5hZ2VyKQotewotICAgIGlmICghbV9jbGllbnQuc3RhcnRVcGRhdGluZykK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jbGllbnQuc3RhcnRVcGRhdGluZyh0b0FQSShuZXR3
b3JrSW5mb01hbmFnZXIpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwotfQotCi12b2lkIFdl
Yk5ldHdvcmtJbmZvUHJvdmlkZXI6OnN0b3BVcGRhdGluZyhXZWJOZXR3b3JrSW5mb01hbmFnZXJQ
cm94eSogbmV0d29ya0luZm9NYW5hZ2VyKQotewotICAgIGlmICghbV9jbGllbnQuc3RvcFVwZGF0
aW5nKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NsaWVudC5zdG9wVXBkYXRpbmcodG9BUEko
bmV0d29ya0luZm9NYW5hZ2VyKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotZG91
YmxlIFdlYk5ldHdvcmtJbmZvUHJvdmlkZXI6OmJhbmR3aWR0aChXZWJOZXR3b3JrSW5mb01hbmFn
ZXJQcm94eSogbmV0d29ya0luZm9NYW5hZ2VyKSBjb25zdAotewotICAgIC8vIFRoZSBzcGVjIGlu
ZGljYXRlcyB0aGF0IHdlIHNob3VsZCByZXR1cm4gImluZmluaXR5IiBpZiB0aGUgYmFuZHdpZHRo
IGlzIHVua25vd24uCi0gICAgaWYgKCFtX2NsaWVudC5iYW5kd2lkdGgpCi0gICAgICAgIHJldHVy
biBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7Ci0KLSAgICByZXR1cm4g
bV9jbGllbnQuYmFuZHdpZHRoKHRvQVBJKG5ldHdvcmtJbmZvTWFuYWdlciksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7Ci19Ci0KLWJvb2wgV2ViTmV0d29ya0luZm9Qcm92aWRlcjo6aXNNZXRl
cmVkKFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5KiBuZXR3b3JrSW5mb01hbmFnZXIpIGNvbnN0
Ci17Ci0gICAgaWYgKCFtX2NsaWVudC5pc01ldGVyZWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIHJldHVybiBtX2NsaWVudC5pc01ldGVyZWQodG9BUEkobmV0d29ya0luZm9NYW5hZ2Vy
KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19JTkZPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb1Byb3ZpZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDc4NWFhODAuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYk5ldHdvcmtJbmZvUHJvdmlkZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViTmV0d29ya0luZm9Qcm92aWRlcl9oCi0j
ZGVmaW5lIFdlYk5ldHdvcmtJbmZvUHJvdmlkZXJfaAotCi0jaWYgRU5BQkxFKE5FVFdPUktfSU5G
TykKLQotI2luY2x1ZGUgIkFQSUNsaWVudC5oIgotI2luY2x1ZGUgIldLTmV0d29ya0luZm9NYW5h
Z2VyLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIEFQSSB7Ci10ZW1w
bGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tOZXR3b3JrSW5mb1Byb3ZpZGVyQmFzZT4gewot
ICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS05ldHdvcmtJbmZvUHJvdmlkZXJWMD4gVmVyc2lvbnM7
Ci19OwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViTmV0d29ya0luZm9NYW5h
Z2VyUHJveHk7Ci0KLWNsYXNzIFdlYk5ldHdvcmtJbmZvUHJvdmlkZXIgOiBwdWJsaWMgQVBJOjpD
bGllbnQ8V0tOZXR3b3JrSW5mb1Byb3ZpZGVyQmFzZT4gewotcHVibGljOgotICAgIHZvaWQgc3Rh
cnRVcGRhdGluZyhXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eSopOwotICAgIHZvaWQgc3RvcFVw
ZGF0aW5nKFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5Kik7Ci0KLSAgICBkb3VibGUgYmFuZHdp
ZHRoKFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5KikgY29uc3Q7Ci0gICAgYm9vbCBpc01ldGVy
ZWQoV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkqKSBjb25zdDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfSU5GTykKLQotI2VuZGlmIC8v
IFdlYk5ldHdvcmtJbmZvUHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvTmV0d29ya0luZm9Qcm92aWRlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDU0ZGI4ZTAuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEyMyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTmV0
d29ya0luZm9Qcm92aWRlci5oIgotCi0jaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKLQotI2luY2x1
ZGUgIldLTmV0d29ya0luZm9NYW5hZ2VyLmgiCi0jaW5jbHVkZSA8Tm90SW1wbGVtZW50ZWQuaD4K
LQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotc3RhdGljIGlubGluZSBOZXR3b3JrSW5mb1By
b3ZpZGVyKiB0b05ldHdvcmtJbmZvUHJvdmlkZXIoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TmV0d29ya0luZm9Qcm92aWRlcio+KGNvbnN0X2Nhc3Q8
dm9pZCo+KGNsaWVudEluZm8pKTsKLX0KLQotc3RhdGljIHZvaWQgc3RhcnRVcGRhdGluZ0NhbGxi
YWNrKFdLTmV0d29ya0luZm9NYW5hZ2VyUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewot
ICAgIHRvTmV0d29ya0luZm9Qcm92aWRlcihjbGllbnRJbmZvKS0+c3RhcnRVcGRhdGluZygpOwot
fQotCi1zdGF0aWMgdm9pZCBzdG9wVXBkYXRpbmdDYWxsYmFjayhXS05ldHdvcmtJbmZvTWFuYWdl
clJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICB0b05ldHdvcmtJbmZvUHJvdmlk
ZXIoY2xpZW50SW5mbyktPnN0b3BVcGRhdGluZygpOwotfQotCi1zdGF0aWMgZG91YmxlIGdldEJh
bmR3aWR0aENhbGxiYWNrKFdLTmV0d29ya0luZm9NYW5hZ2VyUmVmLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQotewotICAgIHJldHVybiB0b05ldHdvcmtJbmZvUHJvdmlkZXIoY2xpZW50SW5mbykt
PmJhbmR3aWR0aCgpOwotfQotCi1zdGF0aWMgYm9vbCBpc01ldGVyZWRDYWxsYmFjayhXS05ldHdv
cmtJbmZvTWFuYWdlclJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICByZXR1cm4g
dG9OZXR3b3JrSW5mb1Byb3ZpZGVyKGNsaWVudEluZm8pLT5tZXRlcmVkKCk7Ci19Ci0KLVBhc3NS
ZWZQdHI8TmV0d29ya0luZm9Qcm92aWRlcj4gTmV0d29ya0luZm9Qcm92aWRlcjo6Y3JlYXRlKFdL
Q29udGV4dFJlZiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTmV0d29ya0lu
Zm9Qcm92aWRlcihjb250ZXh0KSk7Ci19Ci0KLU5ldHdvcmtJbmZvUHJvdmlkZXI6Ok5ldHdvcmtJ
bmZvUHJvdmlkZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpCi0gICAgOiBtX2NvbnRleHQoY29udGV4
dCkKLXsKLSAgICBBU1NFUlQobV9jb250ZXh0KTsKLQotICAgIFdLTmV0d29ya0luZm9NYW5hZ2Vy
UmVmIHdrTmV0d29ya0luZm9NYW5hZ2VyID0gV0tDb250ZXh0R2V0TmV0d29ya0luZm9NYW5hZ2Vy
KG1fY29udGV4dC5nZXQoKSk7Ci0gICAgQVNTRVJUKHdrTmV0d29ya0luZm9NYW5hZ2VyKTsKLQot
ICAgIFdLTmV0d29ya0luZm9Qcm92aWRlclYwIHdrTmV0d29ya0luZm9Qcm92aWRlciA9IHsKLSAg
ICAgICAgewotICAgICAgICAgICAgMCwgLy8gdmVyc2lvbgotICAgICAgICAgICAgdGhpcywgLy8g
Y2xpZW50SW5mbwotICAgICAgICB9LAotICAgICAgICBzdGFydFVwZGF0aW5nQ2FsbGJhY2ssCi0g
ICAgICAgIHN0b3BVcGRhdGluZ0NhbGxiYWNrLAotICAgICAgICBnZXRCYW5kd2lkdGhDYWxsYmFj
aywKLSAgICAgICAgaXNNZXRlcmVkQ2FsbGJhY2sKLSAgICB9OwotCi0gICAgV0tOZXR3b3JrSW5m
b01hbmFnZXJTZXRQcm92aWRlcih3a05ldHdvcmtJbmZvTWFuYWdlciwgJndrTmV0d29ya0luZm9Q
cm92aWRlci5iYXNlKTsKLX0KLQotTmV0d29ya0luZm9Qcm92aWRlcjo6fk5ldHdvcmtJbmZvUHJv
dmlkZXIoKQotewotICAgIFdLTmV0d29ya0luZm9NYW5hZ2VyUmVmIHdrTmV0d29ya0luZm9NYW5h
Z2VyID0gV0tDb250ZXh0R2V0TmV0d29ya0luZm9NYW5hZ2VyKG1fY29udGV4dC5nZXQoKSk7Ci0g
ICAgQVNTRVJUKHdrTmV0d29ya0luZm9NYW5hZ2VyKTsKLQotICAgIFdLTmV0d29ya0luZm9NYW5h
Z2VyU2V0UHJvdmlkZXIod2tOZXR3b3JrSW5mb01hbmFnZXIsIDApOwotfQotCi12b2lkIE5ldHdv
cmtJbmZvUHJvdmlkZXI6Om5ldHdvcmtJbmZvQ29udHJvbGxlckRlc3Ryb3llZCgpCi17Ci0gICAg
ZGVsZXRlIHRoaXM7Ci19Ci0KLWRvdWJsZSBOZXR3b3JrSW5mb1Byb3ZpZGVyOjpiYW5kd2lkdGgo
KSBjb25zdAotewotICAgIHJldHVybiBtX3Byb3ZpZGVyLmJhbmR3aWR0aCgpOwotfQotCi1ib29s
IE5ldHdvcmtJbmZvUHJvdmlkZXI6Om1ldGVyZWQoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgTmV0d29ya0luZm9Qcm92aWRl
cjo6c3RhcnRVcGRhdGluZygpCi17Ci0gICAgbV9wcm92aWRlci5zdGFydFVwZGF0aW5nKCk7Ci19
Ci0KLXZvaWQgTmV0d29ya0luZm9Qcm92aWRlcjo6c3RvcFVwZGF0aW5nKCkKLXsKLSAgICBtX3By
b3ZpZGVyLnN0b3BVcGRhdGluZygpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfSU5G
TykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvTmV0d29ya0luZm9Q
cm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3Zp
ZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmNzIzODQuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIElu
dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IE5ldHdvcmtJbmZvUHJvdmlkZXJfaAotI2RlZmluZSBOZXR3b3JrSW5mb1Byb3ZpZGVyX2gKLQot
I2lmIEVOQUJMRShORVRXT1JLX0lORk8pCi0KLSNpbmNsdWRlIDxOZXR3b3JrSW5mb0NsaWVudC5o
PgotI2luY2x1ZGUgPE5ldHdvcmtJbmZvUHJvdmlkZXJFZmwuaD4KLSNpbmNsdWRlIDxXZWJLaXQy
L1dLQmFzZS5oPgotI2luY2x1ZGUgPFdlYktpdDIvV0tDb250ZXh0Lmg+Ci0jaW5jbHVkZSA8V2Vi
S2l0Mi9XS1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1jbGFzcyBOZXR3b3JrSW5mb1Byb3ZpZGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8TmV0d29ya0luZm9Qcm92aWRlcj4sIHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JrSW5mb0Ns
aWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+TmV0d29ya0luZm9Qcm92aWRlcigpOwotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE5ldHdvcmtJbmZvUHJvdmlkZXI+IGNyZWF0ZShXS0NvbnRleHRS
ZWYpOwotCi0gICAgLy8gTmV0d29ya0luZm9DbGllbnQgaW50ZXJmYWNlLgotICAgIHZpcnR1YWwg
dm9pZCBuZXR3b3JrSW5mb0NvbnRyb2xsZXJEZXN0cm95ZWQoKTsKLQotICAgIHZpcnR1YWwgZG91
YmxlIGJhbmR3aWR0aCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBtZXRlcmVkKCkgY29uc3Q7
Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOwotICAgIHZpcnR1YWwgdm9pZCBz
dG9wVXBkYXRpbmcoKTsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBOZXR3b3JrSW5mb1Byb3Zp
ZGVyKFdLQ29udGV4dFJlZik7Ci0KLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IG1fY29u
dGV4dDsKLSAgICBXZWJDb3JlOjpOZXR3b3JrSW5mb1Byb3ZpZGVyRWZsIG1fcHJvdmlkZXI7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX0lO
Rk8pCi0KLSNlbmRpZiAvLyBOZXR3b3JrSW5mb1Byb3ZpZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9N
YW5hZ2VyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWRiZjUyMi4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYk5ldHdvcmtJbmZv
TWFuYWdlci5oIgotCi0jaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKLQotI2luY2x1ZGUgIldlYk5l
dHdvcmtJbmZvTWFuYWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViTmV0d29ya0luZm9NYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlBhZ2UuaCIKLSNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrSW5mby5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvTmV0d29ya0luZm9Db250cm9sbGVyLmg+Ci0jaW5jbHVkZSA8bGltaXRzLmg+Ci0KLXVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY29uc3QgY2hh
ciogV2ViTmV0d29ya0luZm9NYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCi17Ci0gICAgcmV0dXJu
ICJXZWJOZXR3b3JrSW5mb01hbmFnZXIiOwotfQotCi1XZWJOZXR3b3JrSW5mb01hbmFnZXI6Oldl
Yk5ldHdvcmtJbmZvTWFuYWdlcihXZWJQcm9jZXNzKiBwcm9jZXNzKQotICAgIDogbV9wcm9jZXNz
KHByb2Nlc3MpCi17Ci0gICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OldlYk5ldHdvcmtJbmZvTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Ci19
Ci0KLVdlYk5ldHdvcmtJbmZvTWFuYWdlcjo6fldlYk5ldHdvcmtJbmZvTWFuYWdlcigpCi17Ci19
Ci0KLXZvaWQgV2ViTmV0d29ya0luZm9NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSog
cGFnZSkKLXsKLSAgICBib29sIHdhc0VtcHR5ID0gbV9wYWdlU2V0LmlzRW1wdHkoKTsKLQotICAg
IG1fcGFnZVNldC5hZGQocGFnZSk7Ci0KLSAgICBpZiAod2FzRW1wdHkpCi0gICAgICAgIG1fcHJv
Y2Vzcy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViTmV0d29y
a0luZm9NYW5hZ2VyUHJveHk6OlN0YXJ0VXBkYXRpbmcoKSwgMCk7Ci19Ci0KLXZvaWQgV2ViTmV0
d29ya0luZm9NYW5hZ2VyOjp1bnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKiBwYWdlKQotewotICAg
IG1fcGFnZVNldC5yZW1vdmUocGFnZSk7Ci0KLSAgICBpZiAobV9wYWdlU2V0LmlzRW1wdHkoKSkK
LSAgICAgICAgbV9wcm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eTo6U3RvcFVwZGF0aW5nKCksIDApOwotfQot
Ci1kb3VibGUgV2ViTmV0d29ya0luZm9NYW5hZ2VyOjpiYW5kd2lkdGgoV2ViUGFnZSogcGFnZSkg
Y29uc3QKLXsKLSAgICAvLyBUaGUgc3BlYyBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgcmV0dXJu
ICJpbmZpbml0eSIgaWYgdGhlIGJhbmR3aWR0aCBpcyB1bmtub3duLgotICAgIGRvdWJsZSBiYW5k
d2lkdGggPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmluZmluaXR5KCk7Ci0gICAgbV9w
cm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2Vi
TmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OkdldEJhbmR3aWR0aCgpLCBNZXNzYWdlczo6V2ViTmV0
d29ya0luZm9NYW5hZ2VyUHJveHk6OkdldEJhbmR3aWR0aDo6UmVwbHkoYmFuZHdpZHRoKSwgcGFn
ZS0+cGFnZUlEKCkpOwotICAgIHJldHVybiBiYW5kd2lkdGg7Ci19Ci0KLWJvb2wgV2ViTmV0d29y
a0luZm9NYW5hZ2VyOjptZXRlcmVkKFdlYlBhZ2UqIHBhZ2UpIGNvbnN0Ci17Ci0gICAgYm9vbCBt
ZXRlcmVkID0gZmFsc2U7Ci0gICAgbV9wcm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OklzTWV0ZXJl
ZCgpLCBNZXNzYWdlczo6V2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHk6OklzTWV0ZXJlZDo6UmVw
bHkobWV0ZXJlZCksIHBhZ2UtPnBhZ2VJRCgpKTsKLSAgICByZXR1cm4gbWV0ZXJlZDsKLX0KLQot
dm9pZCBXZWJOZXR3b3JrSW5mb01hbmFnZXI6OmRpZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlvbihj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgV2ViTmV0d29ya0luZm86OkRhdGEm
IGRhdGEpCi17Ci0gICAgUmVmUHRyPE5ldHdvcmtJbmZvPiBuZXR3b3JrSW5mb3JtYXRpb24gPSBO
ZXR3b3JrSW5mbzo6Y3JlYXRlKGRhdGEuYmFuZHdpZHRoLCBkYXRhLm1ldGVyZWQpOwotCi0gICAg
SGFzaFNldDxXZWJQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wYWdlU2V0LmJlZ2luKCk7
Ci0gICAgSGFzaFNldDxXZWJQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcGFnZVNldC5l
bmQoKTsKLSAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIFdlYlBhZ2UqIHBh
Z2UgPSAqaXQ7Ci0gICAgICAgIGlmIChwYWdlLT5jb3JlUGFnZSgpKQotICAgICAgICAgICAgTmV0
d29ya0luZm9Db250cm9sbGVyOjpmcm9tKHBhZ2UtPmNvcmVQYWdlKCkpLT5kaWRDaGFuZ2VOZXR3
b3JrSW5mb3JtYXRpb24oZXZlbnRUeXBlLCBuZXR3b3JrSW5mb3JtYXRpb24uZ2V0KCkpOwotICAg
IH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09S
S19JTkZPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5m
by9XZWJOZXR3b3JrSW5mb01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5hZ2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGE2MWU4NzcuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01hbmFnZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDcx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViTmV0d29ya0luZm9NYW5h
Z2VyX2gKLSNkZWZpbmUgV2ViTmV0d29ya0luZm9NYW5hZ2VyX2gKLQotI2lmIEVOQUJMRShORVRX
T1JLX0lORk8pCi0KLSNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJOZXR3b3JrSW5mby5oIgotI2luY2x1
ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJp
bmcuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlBhZ2U7Ci1jbGFzcyBXZWJQ
cm9jZXNzOwotCi1jbGFzcyBXZWJOZXR3b3JrSW5mb01hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vz
c1N1cHBsZW1lbnQsIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewotICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFdlYk5ldHdvcmtJbmZvTWFuYWdlcik7Ci1wdWJsaWM6Ci0gICAgZXhwbGlj
aXQgV2ViTmV0d29ya0luZm9NYW5hZ2VyKFdlYlByb2Nlc3MqKTsKLSAgICB+V2ViTmV0d29ya0lu
Zm9NYW5hZ2VyKCk7Ci0KLSAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsK
LQotICAgIHZvaWQgcmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqKTsKLSAgICB2b2lkIHVucmVnaXN0
ZXJXZWJQYWdlKFdlYlBhZ2UqKTsKLQotICAgIGRvdWJsZSBiYW5kd2lkdGgoV2ViUGFnZSopIGNv
bnN0OwotICAgIGJvb2wgbWV0ZXJlZChXZWJQYWdlKikgY29uc3Q7Ci1wcml2YXRlOgotICAgIC8v
IElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGRp
ZENoYW5nZU5ldHdvcmtJbmZvcm1hdGlvbihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
Y29uc3QgV2ViTmV0d29ya0luZm86OkRhdGEmKTsKLQotICAgIFdlYlByb2Nlc3MqIG1fcHJvY2Vz
czsKLSAgICBIYXNoU2V0PFdlYlBhZ2UqPiBtX3BhZ2VTZXQ7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX0lORk8pCi0KLSNlbmRpZiAvLyBX
ZWJOZXR3b3JrSW5mb01hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5t
ZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWNjODQwYy4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlci5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLSMg
Q29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0j
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jaWYgRU5BQkxF
KE5FVFdPUktfSU5GTykKLQotbWVzc2FnZXMgLT4gV2ViTmV0d29ya0luZm9NYW5hZ2VyIHsKLSAg
ICBEaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRpb24oQXRvbWljU3RyaW5nIGV2ZW50VHlwZSwgV2Vi
S2l0OjpXZWJOZXR3b3JrSW5mbzo6RGF0YSBuZXR3b3JrSW5mb3JtYXRpb24pOwotfQotCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTmV0d29ya0luZm9DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJOZXR3b3JrSW5mb0NsaWVudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDJmZDFhNzIuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJOZXR3b3JrSW5mb0NsaWVudC5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw2OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiV2ViTmV0d29ya0luZm9DbGllbnQuaCIKLQotI2lmIEVOQUJMRShORVRXT1JL
X0lORk8pCi0KLSNpbmNsdWRlICJXZWJOZXR3b3JrSW5mb01hbmFnZXIuaCIKLSNpbmNsdWRlICJX
ZWJQYWdlLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotV2ViTmV0d29ya0luZm9DbGllbnQ6On5XZWJOZXR3b3JrSW5mb0NsaWVudCgpCi17Ci19Ci0K
LWRvdWJsZSBXZWJOZXR3b3JrSW5mb0NsaWVudDo6YmFuZHdpZHRoKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCkuc3VwcGxlbWVudDxXZWJOZXR3b3JrSW5mb01hbmFn
ZXI+KCktPmJhbmR3aWR0aChtX3BhZ2UpOwotfQotCi1ib29sIFdlYk5ldHdvcmtJbmZvQ2xpZW50
OjptZXRlcmVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCkuc3Vw
cGxlbWVudDxXZWJOZXR3b3JrSW5mb01hbmFnZXI+KCktPm1ldGVyZWQobV9wYWdlKTsKLX0KLQot
dm9pZCBXZWJOZXR3b3JrSW5mb0NsaWVudDo6c3RhcnRVcGRhdGluZygpCi17Ci0gICAgV2ViUHJv
Y2Vzczo6c2hhcmVkKCkuc3VwcGxlbWVudDxXZWJOZXR3b3JrSW5mb01hbmFnZXI+KCktPnJlZ2lz
dGVyV2ViUGFnZShtX3BhZ2UpOwotfQotCi12b2lkIFdlYk5ldHdvcmtJbmZvQ2xpZW50OjpzdG9w
VXBkYXRpbmcoKQotewotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnN1cHBsZW1lbnQ8V2ViTmV0
d29ya0luZm9NYW5hZ2VyPigpLT51bnJlZ2lzdGVyV2ViUGFnZShtX3BhZ2UpOwotfQotCi12b2lk
IFdlYk5ldHdvcmtJbmZvQ2xpZW50OjpuZXR3b3JrSW5mb0NvbnRyb2xsZXJEZXN0cm95ZWQoKQot
ewotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnN1cHBsZW1lbnQ8V2ViTmV0d29ya0luZm9NYW5h
Z2VyPigpLT51bnJlZ2lzdGVyV2ViUGFnZShtX3BhZ2UpOwotICAgIGRlbGV0ZSB0aGlzOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX0lORk8p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Yk5ldHdvcmtJbmZvQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk5ldHdvcmtJbmZvQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGU5MDYzNmUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJOZXR3b3JrSW5mb0NsaWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJOZXR3b3JrSW5mb0NsaWVu
dF9oCi0jZGVmaW5lIFdlYk5ldHdvcmtJbmZvQ2xpZW50X2gKLQotI2lmIEVOQUJMRShORVRXT1JL
X0lORk8pCi0KLSNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtJbmZvQ2xpZW50Lmg+Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQYWdlOwotCi1jbGFzcyBXZWJOZXR3b3JrSW5mb0Ns
aWVudCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JrSW5mb0NsaWVudCB7Ci1wdWJsaWM6Ci0gICAg
V2ViTmV0d29ya0luZm9DbGllbnQoV2ViUGFnZSogcGFnZSkKLSAgICAgICAgOiBtX3BhZ2UocGFn
ZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdmlydHVhbCB+V2ViTmV0d29ya0luZm9DbGllbnQoKTsK
LQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgbmV0d29ya0luZm9Db250cm9sbGVyRGVzdHJv
eWVkKCkgb3ZlcnJpZGU7Ci0KLSAgICB2aXJ0dWFsIGRvdWJsZSBiYW5kd2lkdGgoKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgbWV0ZXJlZCgpIGNvbnN0IG92ZXJyaWRlOwotCi0g
ICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZv
aWQgc3RvcFVwZGF0aW5nKCkgb3ZlcnJpZGU7Ci0KLSAgICBXZWJQYWdlKiBtX3BhZ2U7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX0lORk8p
Ci0KLSNlbmRpZiAvLyBXZWJOZXR3b3JrSW5mb0NsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNGFjYjUyMy4uZTRkMjFhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTYy
LDEwICsxNjIsNiBAQAogI2luY2x1ZGUgIldlYkJhdHRlcnlDbGllbnQuaCIKICNlbmRpZgogCi0j
aWYgRU5BQkxFKE5FVFdPUktfSU5GTykKLSNpbmNsdWRlICJXZWJOZXR3b3JrSW5mb0NsaWVudC5o
IgotI2VuZGlmCi0KICNpZiBFTkFCTEUoVklCUkFUSU9OKQogI2luY2x1ZGUgIldlYlZpYnJhdGlv
bkNsaWVudC5oIgogI2VuZGlmCkBAIC0zNTcsOSArMzUzLDYgQEAgV2ViUGFnZTo6V2ViUGFnZSh1
aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIFdlYkNvcmU6OnByb3ZpZGVHZW9sb2Nh
dGlvblRvKG1fcGFnZS5nZXQoKSwgbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50KHRoaXMpKTsKICNl
bmRpZgotI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCi0gICAgV2ViQ29yZTo6cHJvdmlkZU5ldHdv
cmtJbmZvVG8obV9wYWdlLmdldCgpLCBuZXcgV2ViTmV0d29ya0luZm9DbGllbnQodGhpcykpOwot
I2VuZGlmCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJ
Q0FUSU9OUykKICAgICBXZWJDb3JlOjpwcm92aWRlTm90aWZpY2F0aW9uKG1fcGFnZS5nZXQoKSwg
bmV3IFdlYk5vdGlmaWNhdGlvbkNsaWVudCh0aGlzKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGMwY2ZjNjUuLjE1NTIzNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtODgsMTEgKzg4LDYgQEAKICNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4K
IAotI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCi0jaW5jbHVkZSAiV2ViTmV0d29ya0luZm9NYW5h
Z2VyLmgiCi0jaW5jbHVkZSAiV2ViTmV0d29ya0luZm9NYW5hZ2VyTWVzc2FnZXMuaCIKLSNlbmRp
ZgotCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICNpZiBQTEFURk9STShDT0NPQSkKICNp
bmNsdWRlICJDb29raWVTdG9yYWdlU2hpbS5oIgpAQCAtMTk5LDkgKzE5NCw2IEBAIFdlYlByb2Nl
c3M6OldlYlByb2Nlc3MoKQogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKICAgICBhZGRTdXBw
bGVtZW50PFdlYkJhdHRlcnlNYW5hZ2VyPigpOwogI2VuZGlmCi0jaWYgRU5BQkxFKE5FVFdPUktf
SU5GTykKLSAgICBhZGRTdXBwbGVtZW50PFdlYk5ldHdvcmtJbmZvTWFuYWdlcj4oKTsKLSNlbmRp
ZgogI2lmIFVTRShTT1VQKSAmJiAhRU5BQkxFKENVU1RPTV9QUk9UT0NPTFMpCiAgICAgYWRkU3Vw
cGxlbWVudDxXZWJTb3VwUmVxdWVzdE1hbmFnZXI+KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21h
a2UKaW5kZXggMTBlNmVhMC4uZDQyNWQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlv
bnNFZmwuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKQEAgLTgxLDcg
KzgxLDYgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01IVE1MIE9O
KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01PVVNFX0NVUlNPUl9T
Q0FMRSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9OQVZJR0FU
T1JfQ09OVEVOVF9VVElMUyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIE9OKQotV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX05FVFdPUktfSU5GTyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9ORVRXT1JLX1BST0NFU1MgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfTk9TTklGRiBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJIE9OKQpkaWZmIC0tZ2l0IGEvU291cmNl
L2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpp
bmRleCAxMjA1ZjE5Li41YTExNWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dU
Sy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtNTIsNyArNTIs
NiBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUVNT1JZX1NBTVBM
RVIgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUhUTUwgT04p
CiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTkFWSUdBVE9SX0NPTlRF
TlRfVVRJTFMgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX05F
VFNDQVBFX1BMVUdJTl9BUEkgT04pCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfTkVUV09SS19JTkZPIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfUVVPVEEgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkgT0ZGKQpkaWZmIC0tZ2l0IGEvU291cmNl
L2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVz
LmNtYWtlCmluZGV4IGQ5Yjk1YWMuLjZiOWUyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGZWF0dXJlcy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21h
a2UKQEAgLTkwLDcgKzkwLDYgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJL
SVRfT1BUSU9OX0RFRklORShFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMgIlRvZ2dsZSBO
YXZpZ2F0b3IgQ29udGVudCBVdGlscyBzdXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9E
RUZJTkUoRU5BQkxFX05PU05JRkYgIlRvZ2dsZSBzdXBwb3J0IGZvciAnWC1Db250ZW50LVR5cGUt
T3B0aW9uczogbm9zbmlmZiciIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVf
TkVUU0NBUEVfUExVR0lOX0FQSSAiVG9nZ2xlIE5ldHNjYXBlIFBsdWdpbiBzdXBwb3J0IiBPTikK
LSAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTkVUV09SS19JTkZPICJUb2dnbGUgTmV0
d29yayBJbmZvcm1hdGlvbiBBUEkgc3VwcG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVG
SU5FKEVOQUJMRV9ORVRXT1JLX1BST0NFU1MgIlRvZ2dsZSBkZWRpY2F0ZWQgbmV0d29yayBwcm9j
ZXNzIHN1cHBvcnQgaW4gV2ViS2l0MiIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVO
QUJMRV9OT1RJRklDQVRJT05TICJUb2dnbGUgRGVza3RvcCBOb3RpZmljYXRpb25zIFN1cHBvcnQi
IE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRT
ICJUb2dnbGUgT3JpZW50YXRpb24gRXZlbnRzIHN1cHBvcnQiIE9GRikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKaW5k
ZXggMjc1YWQyNy4uNjVmMjYzNSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlY29uZmlnLmguY21h
a2UKKysrIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKQEAgLTg0LDcgKzg0LDYgQEAKICNj
bWFrZWRlZmluZTAxIEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUwogI2NtYWtlZGVmaW5l
MDEgRU5BQkxFX05PU05JRkYKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5f
QVBJCi0jY21ha2VkZWZpbmUwMSBFTkFCTEVfTkVUV09SS19JTkZPCiAjY21ha2VkZWZpbmUwMSBF
TkFCTEVfTkVUV09SS19QUk9DRVNTCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfTk9USUZJQ0FUSU9O
UwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU5N2M3NjcuLjY3MWVmMjgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNC0wNC0xOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+CisKKyAgICAgICAgUmVtb3ZlIE5FVFdPUktfSU5GTyBzdXBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE4NDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVy
bC9GZWF0dXJlTGlzdC5wbToKKwogMjAxNC0wNC0xNyAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9r
Lm9oQGNvbGxhYm9yYS5jb20+CiAKICAgICAgICAgW0dUS10gWW91Q29tcGxldGVNZSBkb2Vzbid0
IHdvcmsgZm9yIGNtYWtlIGJ1aWxkIHN5c3RlbS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0
dXJlTGlzdC5wbQppbmRleCA5NDEyNjhkLi4xYmJmYzY0IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
ZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0zNDQsOSArMzQ0LDYgQEAgbXkgQGZlYXR1cmVzID0gKAog
ICAgIHsgb3B0aW9uID0+ICJuZXRzY2FwZS1wbHVnaW4tYXBpIiwgZGVzYyA9PiAiVG9nZ2xlIE5l
dHNjYXBlIFBsdWdpbiBBUEkgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9ORVRT
Q0FQRV9QTFVHSU5fQVBJIiwgZGVmYXVsdCA9PiAhaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRu
ZXRzY2FwZVBsdWdpbkFQSVN1cHBvcnQgfSwKIAotICAgIHsgb3B0aW9uID0+ICJuZXR3b3JrLWlu
Zm8iLCBkZXNjID0+ICJUb2dnbGUgTmV0d29yayBJbmZvIHN1cHBvcnQiLAotICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfTkVUV09SS19JTkZPIiwgZGVmYXVsdCA9PiBpc0VmbCgpLCB2YWx1ZSA9PiBc
JG5ldHdvcmtJbmZvU3VwcG9ydCB9LAotCiAgICAgeyBvcHRpb24gPT4gIm5vc25pZmYiLCBkZXNj
ID0+ICJUb2dnbGUgc3VwcG9ydCBmb3IgJ1gtQ29udGVudC1UeXBlLU9wdGlvbnM6IG5vc25pZmYn
IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05PU05JRkYiLCBkZWZhdWx0ID0+IDAsIHZhbHVl
ID0+IFwkbm9zbmlmZlN1cHBvcnQgfSwKIAotLSAKMS45LjI=
</data>
<flag name="review"
          id="254007"
          type_id="1"
          status="+"
          setter="gyuyoung.kim"
    />
          </attachment>
      

    </bug>

</bugzilla>