<?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>221317</bug_id>
          
          <creation_ts>2021-02-02 21:38:02 -0800</creation_ts>
          <short_desc>[GPUP] Run ImageDecoderAVFObjC in the GPU Process</short_desc>
          <delta_ts>2021-02-17 10:58:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>222052</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1725012</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-02 21:38:02 -0800</bug_when>
    <thetext>When &quot;UseGPUProcessForMediaEnabled&quot; is true, we will run ImageDecoderAVFObjC in the GPU Process to decode video for image elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725013</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-02 21:38:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/73914568&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725483</commentid>
    <comment_count>2</comment_count>
      <attachid>419227</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-03 21:28:03 -0800</bug_when>
    <thetext>Created attachment 419227
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725496</commentid>
    <comment_count>3</comment_count>
      <attachid>419232</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-03 22:05:58 -0800</bug_when>
    <thetext>Created attachment 419232
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725946</commentid>
    <comment_count>4</comment_count>
      <attachid>419364</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-04 22:37:07 -0800</bug_when>
    <thetext>Created attachment 419364
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726158</commentid>
    <comment_count>5</comment_count>
      <attachid>419428</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-05 10:29:24 -0800</bug_when>
    <thetext>Created attachment 419428
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726248</commentid>
    <comment_count>6</comment_count>
      <attachid>419452</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-05 13:10:42 -0800</bug_when>
    <thetext>Created attachment 419452
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726541</commentid>
    <comment_count>7</comment_count>
      <attachid>419556</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-07 22:44:43 -0800</bug_when>
    <thetext>Created attachment 419556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727237</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-09 14:05:21 -0800</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 419556 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727271</commentid>
    <comment_count>9</comment_count>
      <attachid>419769</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-09 14:45:10 -0800</bug_when>
    <thetext>Created attachment 419769
Rebase the patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727353</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-09 17:18:52 -0800</bug_when>
    <thetext>Committed r272625: &lt;https://commits.webkit.org/r272625&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419769.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730382</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-02-17 10:45:39 -0800</bug_when>
    <thetext>(In reply to EWS from comment #10)
&gt; Committed r272625: &lt;https://commits.webkit.org/r272625&gt;
&gt; 
&gt; All reviewed patches have been landed. Closing bug and clearing flags on
&gt; attachment 419769 [details].

This caused:

Bug 222052: REGRESSION (r272625): Fix missing headers in Xcode project
&lt;https://bugs.webkit.org/show_bug.cgi?id=222052&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730390</commentid>
    <comment_count>12</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-17 10:58:46 -0800</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #11)
&gt; (In reply to EWS from comment #10)
&gt; &gt; Committed r272625: &lt;https://commits.webkit.org/r272625&gt;
&gt; &gt; 
&gt; &gt; All reviewed patches have been landed. Closing bug and clearing flags on
&gt; &gt; attachment 419769 [details].
&gt; 
&gt; This caused:
&gt; 
&gt; Bug 222052: REGRESSION (r272625): Fix missing headers in Xcode project
&gt; &lt;https://bugs.webkit.org/show_bug.cgi?id=222052&gt;

Thanks for the fix!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419227</attachid>
            <date>2021-02-03 21:28:03 -0800</date>
            <delta_ts>2021-02-03 22:05:56 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-221317-20210203212802.patch</filename>
            <type>text/plain</type>
            <size>24234</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJiMzdhMWM4ODIxYTQ1
YWU3ZjgxNmU5ZGYwMzljMTc3NmJiYTA1Ni4uNDlmYzM2NTY4ODQzMDJhN2UwMTA5YjA3NjFiNGU5
NGUyZGVlMTRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAyLTAzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIFJ1biBJbWFnZURl
Y29kZXJBVkZPYmpDIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZhY3Rvcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXI6
Omluc3RhbGxGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2Rlcjo6Y2xlYXJG
YWN0b3JpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpzdXBwb3J0c01lZGlhVHlwZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmg6CisKIDIwMjEtMDItMDIgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ2lzdGVyIGZvciBw
b3dlciBub3RpZmljYXRpb25zIGluIHRoZSBVSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDllZWZjN2Fk
ZTZhNzY3YjUwYmUyMzgyZjUxMmY1NTBlNDA4M2NlNjUuLjU2NDdlZjNjZTNkODJhMDBjYmJkNWRh
MTNhOTc4OWI5NWE1ZGU1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjEtMDItMDMg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gUnVuIElt
YWdlRGVjb2RlckFWRk9iakMgaW4gdGhlIEdQVSBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEzMTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1JlbW90ZUltYWdl
RGVjb2RlckFWRi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29k
ZXJBVkY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGOjpjYW5EZWNvZGVUeXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGOjpzdXBwb3J0c01lZGlhVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdl
RGVjb2RlckFWRjo6ZW5jb2RlZERhdGFTdGF0dXMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVJbWFnZURlY29kZXJBVkY6OnNldEVuY29kZWREYXRhU3RhdHVzQ2hhbmdlQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OnNpemUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lQ291bnQgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OnJlcGV0aXRpb25Db3Vu
dCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6dXRpIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmaWxlbmFtZUV4
dGVuc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6
ZnJhbWVTaXplQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVj
b2RlckFWRjo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVNZXRhZGF0YUF0SW5kZXggY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lRHVyYXRpb25BdEluZGV4
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUhh
c0FscGhhQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6ZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVCeXRlc0F0SW5kZXggY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZUZyYW1lSW1hZ2VBdElu
ZGV4KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpzZXRFeHBlY3Rl
ZENvbnRlbnRTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpz
ZXREYXRhKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpjbGVhckZy
YW1lQnVmZmVyQ2FjaGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1Jl
bW90ZUltYWdlRGVjb2RlckFWRi5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRVc2VHUFVQcm9jZXNz
Rm9yTWVkaWEpOgorCiAyMDIxLTAyLTAyICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZWdpc3RlciBmb3IgcG93ZXIgbm90aWZpY2F0aW9ucyBpbiB0aGUg
VUkgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDM3ZTM3NGNiYjBkOTk4OTQ1YTMxZTJhM2I1NDRkODVkY2E0ZGZhYjcu
LjA4MTMyNjBiZmUzZjYzNjVhNWMxNzRmMjFiNjQ4NGJhZDM3Mzc3OTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQyMTcsNyAr
NDIxNyw3IEBACiAJCUNEMTI3REVFMTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVl
bldpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxN0E0NUQy
MTM3NDA4MTAwNzlFQzdCIC8qIFVuaWZpZWRTb3VyY2U2Mi1tbS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTdBNDU5MjEzNzQwMTYwMDc5RUM3QiAv
KiBVbmlmaWVkU291cmNlNjItbW0ubW0gKi87IH07CiAJCUNEMTlBMjY4MUExM0U3MDAwMDhENjUw
RSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNjcxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJQ0QxOUZFQTgxRjU3Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUZFQTYxRjU3
Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oICovOyB9OworCQlDRDE5RkVBODFGNTczOTcy
MDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVBNjFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0Qx
OUZFQUUxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlGRUFDMUY1NzRCNkQwMDBD
NDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLmggKi87IH07CiAJCUNEMTlGRUFGMUY1NzRCNkQw
MDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUZFQUQxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdl
RGVjb2RlckFWRk9iakMubW0gKi87IH07CiAJCUNEMjI1QzBCMUM0NkZCRjQwMDE0MDc2MSAvKiBX
ZWJDb3JlTlNVUkxTZXNzaW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0QyMjVDMDkxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Np
b24ubW0gKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VEZWNvZGVyLmNwcAppbmRleCA4NjhlZDg3ODA2ZDI5MDEwYjUxOTIyMDE2NDExNDQ1ZTZmZmZi
YWRlLi5jZGU5ZTA3NDdiNjYzNGIyZTBjMzVmMzNjMWMyMDc3MDA1NTNjYjJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5jcHAKQEAgLTI2
LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbWFnZURlY29kZXIu
aCIKIAorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCiAjaWYgVVNFKENHKQogI2lu
Y2x1ZGUgIkltYWdlRGVjb2RlckNHLmgiCiAjZWxpZiBVU0UoRElSRUNUMkQpCkBAIC00NCwxMSAr
NDYsMzggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQordXNpbmcgRmFjdG9yeVZlY3RvciA9IFZlY3RvcjxJbWFnZURlY29kZXI6OkltYWdlRGVjb2Rl
ckZhY3Rvcnk+Oworc3RhdGljIEZhY3RvcnlWZWN0b3ImIGZhY3RvcmllcygpCit7CisgICAgc3Rh
dGljIGF1dG8gZmFjdG9yaWVzID0gbWFrZU5ldmVyRGVzdHJveWVkPEZhY3RvcnlWZWN0b3I+KHsg
fSk7CisgICAgcmV0dXJuIGZhY3RvcmllczsKK30KKwordm9pZCBJbWFnZURlY29kZXI6Omluc3Rh
bGxGYWN0b3J5KEltYWdlRGVjb2Rlcjo6SW1hZ2VEZWNvZGVyRmFjdG9yeSYmIGZhY3RvcnkpCit7
CisgICAgZmFjdG9yaWVzKCkuYXBwZW5kKFdURk1vdmUoZmFjdG9yeSkpOworfQorCit2b2lkIElt
YWdlRGVjb2Rlcjo6Y2xlYXJGYWN0b3JpZXMoKQoreworICAgIGZhY3RvcmllcygpLmNsZWFyKCk7
Cit9CisjZW5kaWYKKwogUmVmUHRyPEltYWdlRGVjb2Rlcj4gSW1hZ2VEZWNvZGVyOjpjcmVhdGUo
U2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBBbHBoYU9wdGlvbiBh
bHBoYU9wdGlvbiwgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2Zp
bGVPcHRpb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKG1pbWVUeXBlKTsKIAogI2lmIEhBVkUoQVZB
U1NFVFJFQURFUikKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgaWYgKCFJbWFnZURlY29k
ZXJDRzo6Y2FuRGVjb2RlVHlwZShtaW1lVHlwZSkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBmYWN0
b3J5IDogZmFjdG9yaWVzKCkpIHsKKyAgICAgICAgICAgIGlmIChmYWN0b3J5LmNhbkRlY29kZVR5
cGUobWltZVR5cGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWN0b3J5LmNyZWF0ZUltYWdl
RGVjb2RlcihkYXRhLCBtaW1lVHlwZSwgYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxl
T3B0aW9uKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogICAgIGlmICghSW1hZ2VEZWNvZGVy
Q0c6OmNhbkRlY29kZVR5cGUobWltZVR5cGUpICYmIEltYWdlRGVjb2RlckFWRk9iakM6OmNhbkRl
Y29kZVR5cGUobWltZVR5cGUpKQogICAgICAgICByZXR1cm4gSW1hZ2VEZWNvZGVyQVZGT2JqQzo6
Y3JlYXRlKGRhdGEsIG1pbWVUeXBlLCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24pOwogI2VuZGlmCkBAIC04MSw2ICsxMTAsMTIgQEAgYm9vbCBJbWFnZURlY29kZXI6OnN1
cHBvcnRzTWVkaWFUeXBlKE1lZGlhVHlwZSB0eXBlKQogI2VuZGlmCiAKICNpZiBIQVZFKEFWQVNT
RVRSRUFERVIpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGZvciAoYXV0byYgZmFjdG9y
eSA6IGZhY3RvcmllcygpKSB7CisgICAgICAgIGlmIChmYWN0b3J5LnN1cHBvcnRzTWVkaWFUeXBl
KHR5cGUpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCiAgICAgaWYg
KEltYWdlRGVjb2RlckFWRk9iakM6OnN1cHBvcnRzTWVkaWFUeXBlKHR5cGUpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZURlY29kZXIuaAppbmRleCA4NjcwZDE1MjRjZWEyMTRiZGU3OWRkNjdkZGMyYzEzY2I0
MTlkYmE5Li4zYjllNDAyNThkNmFmNDMyM2YwZmM2MTM5YTQzMmJiM2I4MjhmYTI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIuaApAQCAtNTgs
NiArNTgsMjEgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNNZWRpYVR5cGUo
TWVkaWFUeXBlKTsKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICB1c2luZyBTdXBwb3J0
c01lZGlhVHlwZUZ1bmMgPSBXVEY6OkZ1bmN0aW9uPGJvb2woTWVkaWFUeXBlKT47CisgICAgdXNp
bmcgQ2FuRGVjb2RlVHlwZUZ1bmMgPSBXVEY6OkZ1bmN0aW9uPGJvb2woY29uc3QgU3RyaW5nJik+
OworICAgIHVzaW5nIENyZWF0ZUltYWdlRGVjb2RlckZ1bmMgPSBXVEY6OkZ1bmN0aW9uPFJlZlB0
cjxJbWFnZURlY29kZXI+KFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYsIEFscGhhT3B0aW9u
LCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik+OworCisgICAgc3RydWN0IEltYWdlRGVjb2Rl
ckZhY3RvcnkgeworICAgICAgICBTdXBwb3J0c01lZGlhVHlwZUZ1bmMgc3VwcG9ydHNNZWRpYVR5
cGU7CisgICAgICAgIENhbkRlY29kZVR5cGVGdW5jIGNhbkRlY29kZVR5cGU7CisgICAgICAgIENy
ZWF0ZUltYWdlRGVjb2RlckZ1bmMgY3JlYXRlSW1hZ2VEZWNvZGVyOworICAgIH07CisKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBpbnN0YWxsRmFjdG9yeShJbWFnZURlY29kZXJGYWN0
b3J5JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNsZWFyRmFjdG9yaWVzKCk7
CisjZW5kaWYKKwogICAgIHZpcnR1YWwgc2l6ZV90IGJ5dGVzRGVjb2RlZFRvRGV0ZXJtaW5lUHJv
cGVydGllcygpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgRW5jb2RlZERhdGFTdGF0dXMgZW5j
b2RlZERhdGFTdGF0dXMoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMTQ4Yzg5ODFlZGRlNGI3YTIxMTU3NTlmYTE5
ZTU3NDA0MTIwZmFhLi45ZTBmNzc0MjhlYTI2OGM3YzdmMWE1MDhmYjI2YzkzZGEzYTRlMzMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTQyOSw2ICs0MjksNyBAQAogCQkxRDAzNjlBQzI1Njc5Njk5MDA0NDAzNzIgLyogUmVtb3RlVGV4
dFRyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUQwMzY5QUEyNTY3OTQzQzAwNDQwMzcyIC8qIFJlbW90ZVRl
eHRUcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQwMzY5QUQyNTY3OTZB
QjAwNDQwMzcyIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDAzNjlBNTI1Njc5
NDNCMDA0NDAzNzIgLyogUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKIAkJMUQwMzY5QUUyNTY3OTZCOTAwNDQwMzcyIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxRDAzNjlBMjI1Njc5NDNCMDA0NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFja1By
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMUQ0NzY1N0IyNUNCM0FGNjAwN0FGMzEy
IC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxRDQ3NjU3OTI1Q0IzQUY2MDA3QUYzMTIgLyogUmVtb3RlSW1h
Z2VEZWNvZGVyQVZGLmNwcCAqLzsgfTsKIAkJMUQ0RDczNzAyM0E5RTU0NzAwNzE3QTI1IC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZCMjNBOURGNTUwMDcxN0Ey
NSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CiAJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlcy5oICovOyB9OwogCQkxRDRENzM3NjIzQTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwpAQCAtMjk3MCw2
ICsyOTcxLDggQEAKIAkJMUQzMkY4QTYyM0E4NjAxOTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDNBQjA0RDIzQUIw
MDcyMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFEM0FCMDRFMjNBQjAwOUIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDQ3NjU3ODI1Q0IzQUY2MDA3QUYzMTIgLyog
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlRGVjb2Rl
ckFWRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDQ3NjU3OTI1Q0IzQUY2MDA3
QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZUltYWdlRGVjb2RlckFWRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFE
NEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwogCQkxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5o
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNjk2Niw2ICs2OTY5LDgg
QEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUQ5N0VDN0QyNDA4
OThEMjAwNDY2RkZBIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tICovLAorCQkJ
CTFENDc2NTc5MjVDQjNBRjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkYuY3BwICov
LAorCQkJCTFENDc2NTc4MjVDQjNBRjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkYu
aCAqLywKIAkJCQkxREZERDBFMDIzRjYwRTFGMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNv
Y29hLmggKi8sCiAJCQkJMURGREQwREYyM0Y2MEUxRTAwRTlCNDkwIC8qIFZpZGVvTGF5ZXJSZW1v
dGVDb2NvYS5tbSAqLywKIAkJCSk7CkBAIC0xMTczMyw2ICsxMTczOCw3IEBACiAJCQkJODM5OTAy
MDMxQkU5QTAyQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
M0Q0NTRENzFCRTlEM0M0MDA2QzkzQkQgLyogTmV0d29ya0xvYWRDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTgzOTE0OTY1MUJFQTgzODUwMEQyRDk1MyAvKiBOZXR3b3JrTG9hZFBhcmFtZXRl
cnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0N0ZDOEEwMjVCODMzMUMwMDU0OTVGQyAvKiBOZXR3
b3JrTG9hZFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1NkExNjI4NzZGMzAw
RkE0M0I2IC8qIE5ldHdvcmtQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdDRjBFNDE2
M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDMTQyNkVEMUMyM0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjA5Niw3ICsxMjEwMiw2
IEBACiAJCQkJOTNBODhCMzMxQkM2RTlDRDAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDRERkVCMjFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNv
blV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMyNjExNjEyMTQwNTRGNDAwMDgwNkU3
IC8qIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3RkM4
QTAyNUI4MzMxQzAwNTQ5NUZDIC8qIE5ldHdvcmtMb2FkU2NoZWR1bGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTQxMjk5NDFDNjQyOEJCMDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTA1MjM3NDFDNzNEMzhCMDA3OTkzQ0IgLyogV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzM0U4
MzU1MjNBMDdDMDYwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLApAQCAt
MTM3MzgsNiArMTM3NDMsNyBAQAogCQkJCUNENDY2MTgzMjQwMTBBNjcwMDQ3Q0EzNSAvKiBSZW1v
dGVDRE1JbnN0YW5jZVNlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0RBQzIwRjkyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvblBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQUMyMEZBMjNGQzcy
NkMwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkxRDQ3NjU3QjI1Q0IzQUY2MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENzJBMUZBMjEyQkY0NkUwMDUxN0EyMCAvKiBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGRjI0QTJE
MTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEQzE4RkI0MjE4QTZFOUUwMDI1QTg4
RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9SZW1vdGVJbWFnZURlY29k
ZXJBVkYuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9SZW1v
dGVJbWFnZURlY29kZXJBVkYuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2YzIzODVmODg4ZTVkOTgxNmQ2OTIw
MWE4M2EzYjBlMDJmODlkOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL2NvY29hL1JlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAKQEAgLTAsMCAr
MSwxNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEhBVkUo
QVZBU1NFVFJFQURFUikKKworI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUeXBlcy5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvVVRJVXRpbGl0aWVzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworUmVmUHRyPFJlbW90ZUltYWdlRGVjb2RlckFWRj4gUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjpjcmVhdGUoU2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBBbHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwgR2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGKGRhdGEsIG1pbWVUeXBlLCBhbHBoYU9wdGlvbiwg
Z2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pKTsKK30KKworUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
OjpSZW1vdGVJbWFnZURlY29kZXJBVkYoU2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBBbHBoYU9wdGlvbiwgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCisgICAg
OiBJbWFnZURlY29kZXIoKQorICAgICwgbV9taW1lVHlwZShtaW1lVHlwZSkKKyAgICAsIG1fdXRp
KFdlYkNvcmU6OlVUSUZyb21NSU1FVHlwZShtaW1lVHlwZSkpCit7CisgICAgVU5VU0VEX1BBUkFN
KGRhdGEpOworfQorCitib29sIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y2FuRGVjb2RlVHlwZShj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6c3VwcG9ydHNNZWRp
YVR5cGUoTWVkaWFUeXBlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitFbmNvZGVkRGF0YVN0YXR1cyBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmVuY29k
ZWREYXRhU3RhdHVzKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBFbmNvZGVkRGF0YVN0YXR1czo6VW5rbm93bjsKK30KKwordm9pZCBSZW1vdGVJbWFnZURlY29k
ZXJBVkY6OnNldEVuY29kZWREYXRhU3RhdHVzQ2hhbmdlQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2
b2lkKEVuY29kZWREYXRhU3RhdHVzKT4mJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CitJbnRTaXplIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6c2l6ZSgpIGNvbnN0Cit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50U2l6ZSgpOworfQorCitzaXplX3QgUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUNvdW50KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiAwOworfQorCitSZXBldGl0aW9uQ291bnQgUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGOjpyZXBldGl0aW9uQ291bnQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFJlcGV0aXRpb25Db3VudE5vbmU7Cit9CisKK1N0cmluZyBSZW1vdGVJbWFn
ZURlY29kZXJBVkY6OnV0aSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXRpOworfQorCitTdHJp
bmcgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIE1JTUVUeXBlUmVnaXN0cnk6OnByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBl
KG1fbWltZVR5cGUpOworfQorCitJbnRTaXplIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVT
aXplQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHNpemUoKTsKK30KKworYm9vbCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lSXNDb21wbGV0
ZUF0SW5kZXgoc2l6ZV90KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitJbWFnZURlY29kZXI6OkZyYW1lTWV0YWRhdGEgUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGOjpmcmFtZU1ldGFkYXRhQXRJbmRleChzaXplX3QpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHsgfTsKK30KKworU2Vjb25kcyBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lRHVyYXRp
b25BdEluZGV4KHNpemVfdCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiB7IH07Cit9CisKK2Jvb2wgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUhhc0FscGhh
QXRJbmRleChzaXplX3QpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUFsbG93U3Vi
c2FtcGxpbmdBdEluZGV4KHNpemVfdCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwordW5zaWduZWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpm
cmFtZUJ5dGVzQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwpIGNvbnN0Cit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworUGxhdGZvcm1JbWFnZVB0ciBS
ZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCwgU3Vi
c2FtcGxpbmdMZXZlbCwgY29uc3QgRGVjb2RpbmdPcHRpb25zJikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit2b2lkIFJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6c2V0RXhwZWN0ZWRDb250ZW50U2l6ZShsb25nIGxvbmcpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OnNldERhdGEoU2hhcmVk
QnVmZmVyJiwgYm9vbCAvKmFsbERhdGFSZWNlaXZlZCovKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpjbGVhckZyYW1lQnVmZmVyQ2Fj
aGUoc2l6ZV90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL1JlbW90
ZUltYWdlRGVjb2RlckFWRi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9j
b2NvYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Yjc1Yzc5ZTA1MTQ4N2Ri
Y2IwNWY2MDc3MDY1MDdlZGRiOTYwNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuaApAQCAt
MCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEhBVkUoQVZBU1NFVFJFQURFUikKKworI2luY2x1ZGUgPFdlYkNvcmUvSW1h
Z2VEZWNvZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVJbWFnZURl
Y29kZXJBVkYgOiBwdWJsaWMgV2ViQ29yZTo6SW1hZ2VEZWNvZGVyIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmUHRyPFJlbW90ZUltYWdlRGVjb2RlckFWRj4gY3JlYXRlKFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdlYkNvcmU6OkFscGhhT3B0aW9uLCBX
ZWJDb3JlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CisgICAgdmlydHVhbCB+UmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGKCkgPSBkZWZhdWx0OworCisgICAgc3RhdGljIGJvb2wgY2FuRGVjb2Rl
VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c01l
ZGlhVHlwZShNZWRpYVR5cGUpOworICAgIC8vIHN0YXRpYyBib29sIHN1cHBvcnRzQ29udGFpbmVy
VHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICAKKyAgICBzaXplX3QgYnl0ZXNEZWNvZGVkVG9EZXRl
cm1pbmVQcm9wZXJ0aWVzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorCisgICAgV2Vi
Q29yZTo6RW5jb2RlZERhdGFTdGF0dXMgZW5jb2RlZERhdGFTdGF0dXMoKSBjb25zdCBmaW5hbDsK
KyAgICB2b2lkIHNldEVuY29kZWREYXRhU3RhdHVzQ2hhbmdlQ2FsbGJhY2soV1RGOjpGdW5jdGlv
bjx2b2lkKFdlYkNvcmU6OkVuY29kZWREYXRhU3RhdHVzKT4mJikgZmluYWw7CisgICAgV2ViQ29y
ZTo6SW50U2l6ZSBzaXplKCkgY29uc3QgZmluYWw7CisgICAgc2l6ZV90IGZyYW1lQ291bnQoKSBj
b25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpSZXBldGl0aW9uQ291bnQgcmVwZXRpdGlvbkNvdW50
KCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIHV0aSgpIGNvbnN0IGZpbmFsOworICAgIFN0cmlu
ZyBmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0IGZpbmFsOworICAgIE9wdGlvbmFsPFdlYkNvcmU6
OkludFBvaW50PiBob3RTcG90KCkgY29uc3QgZmluYWwgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9
CisKKyAgICBXZWJDb3JlOjpJbnRTaXplIGZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90LCBXZWJDb3Jl
OjpTdWJzYW1wbGluZ0xldmVsID0gV2ViQ29yZTo6U3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCkg
Y29uc3QgZmluYWw7CisgICAgYm9vbCBmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCkgY29u
c3QgZmluYWw7CisgICAgRnJhbWVNZXRhZGF0YSBmcmFtZU1ldGFkYXRhQXRJbmRleChzaXplX3Qp
IGNvbnN0IGZpbmFsOworCisgICAgU2Vjb25kcyBmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3Qp
IGNvbnN0IGZpbmFsOworICAgIGJvb2wgZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90KSBjb25z
dCBmaW5hbDsKKyAgICBib29sIGZyYW1lQWxsb3dTdWJzYW1wbGluZ0F0SW5kZXgoc2l6ZV90KSBj
b25zdCBmaW5hbDsKKyAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QsIFdlYkNv
cmU6OlN1YnNhbXBsaW5nTGV2ZWwgPSBXZWJDb3JlOjpTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0
KSBjb25zdCBmaW5hbDsKKworICAgIFdlYkNvcmU6OlBsYXRmb3JtSW1hZ2VQdHIgY3JlYXRlRnJh
bWVJbWFnZUF0SW5kZXgoc2l6ZV90LCBXZWJDb3JlOjpTdWJzYW1wbGluZ0xldmVsID0gV2ViQ29y
ZTo6U3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCwgY29uc3QgV2ViQ29yZTo6RGVjb2RpbmdPcHRp
b25zJiA9IFdlYkNvcmU6OkRlY29kaW5nT3B0aW9ucyhXZWJDb3JlOjpEZWNvZGluZ01vZGU6OlN5
bmNocm9ub3VzKSkgZmluYWw7CisKKyAgICB2b2lkIHNldEV4cGVjdGVkQ29udGVudFNpemUobG9u
ZyBsb25nKSBmaW5hbDsKKyAgICB2b2lkIHNldERhdGEoV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiwg
Ym9vbCBhbGxEYXRhUmVjZWl2ZWQpIGZpbmFsOworICAgIGJvb2wgaXNBbGxEYXRhUmVjZWl2ZWQo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzQWxsRGF0YVJlY2VpdmVkOyB9CisgICAgdm9pZCBj
bGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6ZV90KSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBSZW1v
dGVJbWFnZURlY29kZXJBVkYoV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgV2ViQ29yZTo6QWxwaGFPcHRpb24sIFdlYkNvcmU6OkdhbW1hQW5kQ29sb3JQcm9m
aWxlT3B0aW9uKTsKKworICAgIFN0cmluZyBtX21pbWVUeXBlOworICAgIFN0cmluZyBtX3V0aTsK
KyAgICBib29sIG1faXNBbGxEYXRhUmVjZWl2ZWQgeyBmYWxzZSB9OworfTsKKworfQorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMzNjYThlNzNiNmVk
MDU1YjQ4MmI3ZjEwMTFhMWY1ZDg5ODIyNmVkMy4uOGUyOWRiODE1NGI5MmMyYTQ5NzZkZTA5YzI4
MGZlM2M4OTI2MTJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApA
QCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
ci5oIgogI2luY2x1ZGUgIlByb2Nlc3NBc3NlcnRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVBdWRp
b1Nlc3Npb24uaCIKKyNpbmNsdWRlICJSZW1vdGVJbWFnZURlY29kZXJBVkYuaCIKICNpbmNsdWRl
ICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFFbmdpbmVD
b25maWd1cmF0aW9uRmFjdG9yeS5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIKQEAgLTEwNyw2ICsxMDgsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvR0NDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HbHlwaFBhZ2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0lt
YWdlRGVjb2Rlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Lmg+CkBAIC0xOTM4LDcgKzE5NDAsMTMgQEAgdm9p
ZCBXZWJQcm9jZXNzOjpzZXRVc2VHUFVQcm9jZXNzRm9yTWVkaWEoYm9vbCB1c2VHUFVQcm9jZXNz
Rm9yTWVkaWEpCiAgICAgZWxzZQogICAgICAgICBMZWdhY3lDRE06OnJlc2V0RmFjdG9yaWVzKCk7
CiAjZW5kaWYKLSAgICAKKworI2lmIEhBVkUoQVZBU1NFVFJFQURFUikKKyAgICBJbWFnZURlY29k
ZXI6OmNsZWFyRmFjdG9yaWVzKCk7CisgICAgaWYgKHVzZUdQVVByb2Nlc3NGb3JNZWRpYSkKKyAg
ICAgICAgSW1hZ2VEZWNvZGVyOjppbnN0YWxsRmFjdG9yeSh7IFJlbW90ZUltYWdlRGVjb2RlckFW
Rjo6c3VwcG9ydHNNZWRpYVR5cGUsIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y2FuRGVjb2RlVHlw
ZSwgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpjcmVhdGUgfSk7CisjZW5kaWYKKwogICAgIGlmICh1
c2VHUFVQcm9jZXNzRm9yTWVkaWEpCiAgICAgICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCkubWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeSgpLnJlZ2lzdGVyRmFjdG9yeSgpOwog
ICAgIGVsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419232</attachid>
            <date>2021-02-03 22:05:58 -0800</date>
            <delta_ts>2021-02-04 22:37:06 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-221317-20210203220557.patch</filename>
            <type>text/plain</type>
            <size>23224</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFkMmQ0ZjgwZWM2ZDU0
NTFiM2M4MzJmZjg1OWEwZmY2OWRjMTNhNi4uNzFiNjI5MGFlMmU4N2UxZGYzNTFhMGVjMzY2Yjhl
OWFkMTA0MzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAyLTAzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIFJ1biBJbWFnZURl
Y29kZXJBVkZPYmpDIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZhY3Rvcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXI6
Omluc3RhbGxGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2Rlcjo6Y2xlYXJG
YWN0b3JpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpzdXBwb3J0c01lZGlhVHlwZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmg6CisKIDIwMjEtMDItMDMgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgYW4gYW5j
ZXN0b3Igd2FsayBpbiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlV2lsbFZhbGlkYXRl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZGQwZWYwNTJlZTU2OGNkMGYxOGE5YjRmYzBiZmQ4N2JhZmI0ZGVlYy4u
NTYzZTZhODQzNGYyZjc4MmI0ZjAzZjA5YzU2ODdkNmQwNDRlZjIyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMS0wMi0wMyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtHUFVQXSBSdW4gSW1hZ2VEZWNvZGVyQVZGT2JqQyBpbiB0aGUgR1BVIFByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTMx
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29kZXJBVkYpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNhbkRlY29kZVR5cGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OnN1cHBvcnRzTWVkaWFUeXBlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjplbmNvZGVkRGF0YVN0YXR1cyBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6c2V0RW5jb2RlZERh
dGFTdGF0dXNDaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVj
b2RlckFWRjo6c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6ZnJhbWVDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVj
b2RlckFWRjo6cmVwZXRpdGlvbkNvdW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjp1dGkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZURlY29kZXJBVkY6OmZpbGVuYW1lRXh0ZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZVNpemVBdEluZGV4IGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4IGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZU1ldGFk
YXRhQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFW
Rjo6ZnJhbWVEdXJhdGlvbkF0SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJ
bWFnZURlY29kZXJBVkY6OmZyYW1lSGFzQWxwaGFBdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUFsbG93U3Vic2FtcGxpbmdBdEluZGV4
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUJ5
dGVzQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFW
Rjo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZURlY29kZXJBVkY6OnNldEV4cGVjdGVkQ29udGVudFNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVJbWFnZURlY29kZXJBVkY6OnNldERhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJ
bWFnZURlY29kZXJBVkY6OmNsZWFyRnJhbWVCdWZmZXJDYWNoZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNldFVzZUdQVVByb2Nlc3NGb3JNZWRpYSk6CisKIDIwMjEtMDItMDMgIFRpbW90aHkg
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBG
QUlMRUQ6ICFzaXplLmlzRW1wdHkoKSB1bmRlciBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMjNkY2JmZWQxNzUwYTNmZjVkNjY4MDNkY2JmYjY1YjIyZmVkZTBjMS4uOTc5OTMxMmUw
ZjM0NzY5ZTZlNjg5N2YxOGJkM2YyYjc5MWIzNzUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDIxOSw3ICs0MjE5LDcgQEAK
IAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQTE0
RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDE3QTQ1RDIxMzc0MDgxMDA3
OUVDN0IgLyogVW5pZmllZFNvdXJjZTYyLW1tLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxN0E0NTkyMTM3NDAxNjAwNzlFQzdCIC8qIFVuaWZpZWRT
b3VyY2U2Mi1tbS5tbSAqLzsgfTsKIAkJQ0QxOUEyNjgxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDE5QTI2NzFBMTNFNzAwMDA4RDY1MEUgLyogRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQlDRDE5RkVBODFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVBNjFGNTczOTcyMDAwQzQy
RkIgLyogSW1hZ2VEZWNvZGVyLmggKi87IH07CisJCUNEMTlGRUE4MUY1NzM5NzIwMDBDNDJGQiAv
KiBJbWFnZURlY29kZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMTlGRUE2MUY1NzM5NzIwMDBDNDJGQiAvKiBJbWFnZURlY29kZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDE5RkVBRTFGNTc0
QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUZFQUMxRjU3NEI2RDAwMEM0MkZCIC8qIElt
YWdlRGVjb2RlckFWRk9iakMuaCAqLzsgfTsKIAkJQ0QxOUZFQUYxRjU3NEI2RDAwMEM0MkZCIC8q
IEltYWdlRGVjb2RlckFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDE5RkVBRDFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZG
T2JqQy5tbSAqLzsgfTsKIAkJQ0QyMjVDMEIxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VS
TFNlc3Npb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDIyNUMwOTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLzsg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVj
b2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIu
Y3BwCmluZGV4IDg2OGVkODc4MDZkMjkwMTBiNTE5MjIwMTY0MTE0NDVlNmZmZmJhZGUuLmNkZTll
MDc0N2I2NjM0YjJlMGMzNWYzM2MxYzIwNzcwMDU1M2NiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcApAQCAtMjYsNiArMjYsOCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkltYWdlRGVjb2Rlci5oIgogCisjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKICNpZiBVU0UoQ0cpCiAjaW5jbHVkZSAiSW1h
Z2VEZWNvZGVyQ0cuaCIKICNlbGlmIFVTRShESVJFQ1QyRCkKQEAgLTQ0LDExICs0NiwzOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCit1c2luZyBG
YWN0b3J5VmVjdG9yID0gVmVjdG9yPEltYWdlRGVjb2Rlcjo6SW1hZ2VEZWNvZGVyRmFjdG9yeT47
CitzdGF0aWMgRmFjdG9yeVZlY3RvciYgZmFjdG9yaWVzKCkKK3sKKyAgICBzdGF0aWMgYXV0byBm
YWN0b3JpZXMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQ8RmFjdG9yeVZlY3Rvcj4oeyB9KTsKKyAgICBy
ZXR1cm4gZmFjdG9yaWVzOworfQorCit2b2lkIEltYWdlRGVjb2Rlcjo6aW5zdGFsbEZhY3Rvcnko
SW1hZ2VEZWNvZGVyOjpJbWFnZURlY29kZXJGYWN0b3J5JiYgZmFjdG9yeSkKK3sKKyAgICBmYWN0
b3JpZXMoKS5hcHBlbmQoV1RGTW92ZShmYWN0b3J5KSk7Cit9CisKK3ZvaWQgSW1hZ2VEZWNvZGVy
OjpjbGVhckZhY3RvcmllcygpCit7CisgICAgZmFjdG9yaWVzKCkuY2xlYXIoKTsKK30KKyNlbmRp
ZgorCiBSZWZQdHI8SW1hZ2VEZWNvZGVyPiBJbWFnZURlY29kZXI6OmNyZWF0ZShTaGFyZWRCdWZm
ZXImIGRhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIEFscGhhT3B0aW9uIGFscGhhT3B0aW9u
LCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikK
IHsKICAgICBVTlVTRURfUEFSQU0obWltZVR5cGUpOwogCiAjaWYgSEFWRShBVkFTU0VUUkVBREVS
KQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAoIUltYWdlRGVjb2RlckNHOjpjYW5E
ZWNvZGVUeXBlKG1pbWVUeXBlKSkgeworICAgICAgICBmb3IgKGF1dG8mIGZhY3RvcnkgOiBmYWN0
b3JpZXMoKSkgeworICAgICAgICAgICAgaWYgKGZhY3RvcnkuY2FuRGVjb2RlVHlwZShtaW1lVHlw
ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhY3RvcnkuY3JlYXRlSW1hZ2VEZWNvZGVyKGRh
dGEsIG1pbWVUeXBlLCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pOwor
ICAgICAgICB9CisgICAgfQorI2VuZGlmCiAgICAgaWYgKCFJbWFnZURlY29kZXJDRzo6Y2FuRGVj
b2RlVHlwZShtaW1lVHlwZSkgJiYgSW1hZ2VEZWNvZGVyQVZGT2JqQzo6Y2FuRGVjb2RlVHlwZSht
aW1lVHlwZSkpCiAgICAgICAgIHJldHVybiBJbWFnZURlY29kZXJBVkZPYmpDOjpjcmVhdGUoZGF0
YSwgbWltZVR5cGUsIGFscGhhT3B0aW9uLCBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CiAj
ZW5kaWYKQEAgLTgxLDYgKzExMCwxMiBAQCBib29sIEltYWdlRGVjb2Rlcjo6c3VwcG9ydHNNZWRp
YVR5cGUoTWVkaWFUeXBlIHR5cGUpCiAjZW5kaWYKIAogI2lmIEhBVkUoQVZBU1NFVFJFQURFUikK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgZm9yIChhdXRvJiBmYWN0b3J5IDogZmFjdG9y
aWVzKCkpIHsKKyAgICAgICAgaWYgKGZhY3Rvcnkuc3VwcG9ydHNNZWRpYVR5cGUodHlwZSkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKICAgICBpZiAoSW1hZ2VEZWNv
ZGVyQVZGT2JqQzo6c3VwcG9ydHNNZWRpYVR5cGUodHlwZSkpCiAgICAgICAgIHJldHVybiB0cnVl
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVj
b2Rlci5oCmluZGV4IDg2NzBkMTUyNGNlYTIxNGJkZTc5ZGQ2N2RkYzJjMTNjYjQxOWRiYTkuLjNi
OWU0MDI1OGQ2YWY0MzIzZjBmYzYxMzlhNDMyYmIzYjgyOGZhMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCkBAIC01OCw2ICs1OCwyMSBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c01lZGlhVHlwZShNZWRpYVR5cGUp
OwogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHVzaW5nIFN1cHBvcnRzTWVkaWFUeXBl
RnVuYyA9IFdURjo6RnVuY3Rpb248Ym9vbChNZWRpYVR5cGUpPjsKKyAgICB1c2luZyBDYW5EZWNv
ZGVUeXBlRnVuYyA9IFdURjo6RnVuY3Rpb248Ym9vbChjb25zdCBTdHJpbmcmKT47CisgICAgdXNp
bmcgQ3JlYXRlSW1hZ2VEZWNvZGVyRnVuYyA9IFdURjo6RnVuY3Rpb248UmVmUHRyPEltYWdlRGVj
b2Rlcj4oU2hhcmVkQnVmZmVyJiwgY29uc3QgU3RyaW5nJiwgQWxwaGFPcHRpb24sIEdhbW1hQW5k
Q29sb3JQcm9maWxlT3B0aW9uKT47CisKKyAgICBzdHJ1Y3QgSW1hZ2VEZWNvZGVyRmFjdG9yeSB7
CisgICAgICAgIFN1cHBvcnRzTWVkaWFUeXBlRnVuYyBzdXBwb3J0c01lZGlhVHlwZTsKKyAgICAg
ICAgQ2FuRGVjb2RlVHlwZUZ1bmMgY2FuRGVjb2RlVHlwZTsKKyAgICAgICAgQ3JlYXRlSW1hZ2VE
ZWNvZGVyRnVuYyBjcmVhdGVJbWFnZURlY29kZXI7CisgICAgfTsKKworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyB2b2lkIGluc3RhbGxGYWN0b3J5KEltYWdlRGVjb2RlckZhY3RvcnkmJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgY2xlYXJGYWN0b3JpZXMoKTsKKyNlbmRpZgor
CiAgICAgdmlydHVhbCBzaXplX3QgYnl0ZXNEZWNvZGVkVG9EZXRlcm1pbmVQcm9wZXJ0aWVzKCkg
Y29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBFbmNvZGVkRGF0YVN0YXR1cyBlbmNvZGVkRGF0YVN0
YXR1cygpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDlmY2JmODEwNTI0MmI2ZjI4NzQ4Zjk4MDY1ZWI0MDAzNWNjMjRk
YmQuLjAxODY4YTFlYzZiZWM5NDljNDc0YzI4MTg1ZjBjN2M0MzM0NWU5YjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDI5LDYgKzQy
OSw3IEBACiAJCTFEMDM2OUFDMjU2Nzk2OTkwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxRDAzNjlBQTI1Njc5NDNDMDA0NDAzNzIgLyogUmVtb3RlVGV4dFRyYWNrUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkxRDAzNjlBRDI1Njc5NkFCMDA0NDAzNzIg
LyogUmVtb3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDM2OUE1MjU2Nzk0M0IwMDQ0MDM3
MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkx
RDAzNjlBRTI1Njc5NkI5MDA0NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFEMDM2OUEyMjU2Nzk0M0IwMDQ0MDM3MiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OworCQkxRDQ3NjU3QjI1Q0IzQUY2MDA3QUYzMTIgLyogUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFENDc2NTc5MjVDQjNBRjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJB
VkYuY3BwICovOyB9OwogCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQ0RDcz
NzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZD
MjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgg
Ki87IH07CiAJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CkBAIC0yOTcxLDYgKzI5NzIsOCBA
QAogCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEM0FCMDREMjNBQjAwNzIwMDVDMUZG
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzQUIw
NEUyM0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFENDc2NTc4MjVDQjNBRjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFn
ZURlY29kZXJBVkYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENDc2NTc5MjVDQjNBRjYwMDdBRjMxMiAvKiBS
ZW1vdGVJbWFnZURlY29kZXJBVkYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQ0RDczNkIyM0E5
REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhw
bGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC02OTcyLDYgKzY5NzUsOCBAQAogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxRDk3RUM3RDI0MDg5OEQyMDA0NjZG
RkEgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0gKi8sCisJCQkJMUQ0NzY1Nzky
NUNCM0FGNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAgKi8sCisJCQkJMUQ0
NzY1NzgyNUNCM0FGNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRi5oICovLAogCQkJ
CTFERkREMEUwMjNGNjBFMUYwMEU5QjQ5MCAvKiBWaWRlb0xheWVyUmVtb3RlQ29jb2EuaCAqLywK
IAkJCQkxREZERDBERjIzRjYwRTFFMDBFOUI0OTAgLyogVmlkZW9MYXllclJlbW90ZUNvY29hLm1t
ICovLAogCQkJKTsKQEAgLTEzNzUzLDYgKzEzNzU4LDcgQEAKIAkJCQlDRDQ2NjE4MzI0MDEwQTY3
MDA0N0NBMzUgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUNEQUMyMEY5MjNGQzcyNkMwMDIxREVFMyAvKiBSZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb25Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDREFDMjBGQTIzRkM3MjZDMDAyMURFRTMgLyogUmVtb3RlQ0RNUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQ0NzY1N0IyNUNCM0FGNjAwN0FGMzEyIC8qIFJl
bW90ZUltYWdlRGVjb2RlckFWRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDcyQTFGQTIxMkJG
NDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gaW4gU291cmNlcyAq
LywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZC
NDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2Ev
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmMyMzg1
Zjg4OGU1ZDk4MTZkNjkyMDFhODNhM2IwZTAyZjg5ZDliCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9SZW1vdGVJbWFnZURlY29kZXJB
VkYuY3BwCkBAIC0wLDAgKzEsMTY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRi5oIgorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdl
VHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZm
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlZlB0cjxSZW1vdGVJbWFnZURl
Y29kZXJBVkY+IFJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y3JlYXRlKFNoYXJlZEJ1ZmZlciYgZGF0
YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgQWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEdhbW1h
QW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUltYWdlRGVjb2RlckFWRihkYXRhLCBtaW1lVHlw
ZSwgYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKSk7Cit9CisKK1JlbW90
ZUltYWdlRGVjb2RlckFWRjo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGKFNoYXJlZEJ1ZmZlciYgZGF0
YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgQWxwaGFPcHRpb24sIEdhbW1hQW5kQ29sb3JQcm9m
aWxlT3B0aW9uKQorICAgIDogSW1hZ2VEZWNvZGVyKCkKKyAgICAsIG1fbWltZVR5cGUobWltZVR5
cGUpCisgICAgLCBtX3V0aShXZWJDb3JlOjpVVElGcm9tTUlNRVR5cGUobWltZVR5cGUpKQorewor
ICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKK30KKworYm9vbCBSZW1vdGVJbWFnZURlY29kZXJBVkY6
OmNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBSZW1vdGVJbWFnZURlY29kZXJB
VkY6OnN1cHBvcnRzTWVkaWFUeXBlKE1lZGlhVHlwZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworRW5jb2RlZERhdGFTdGF0dXMgUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGOjplbmNvZGVkRGF0YVN0YXR1cygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gRW5jb2RlZERhdGFTdGF0dXM6OlVua25vd247Cit9CisKK3ZvaWQg
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpzZXRFbmNvZGVkRGF0YVN0YXR1c0NoYW5nZUNhbGxiYWNr
KFdURjo6RnVuY3Rpb248dm9pZChFbmNvZGVkRGF0YVN0YXR1cyk+JiYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworSW50U2l6ZSBSZW1vdGVJbWFnZURlY29kZXJBVkY6OnNpemUoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEludFNpemUoKTsKK30K
Kworc2l6ZV90IFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVDb3VudCgpIGNvbnN0Cit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworUmVwZXRpdGlvbkNvdW50
IFJlbW90ZUltYWdlRGVjb2RlckFWRjo6cmVwZXRpdGlvbkNvdW50KCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBSZXBldGl0aW9uQ291bnROb25lOworfQorCitT
dHJpbmcgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjp1dGkoKSBjb25zdAoreworICAgIHJldHVybiBt
X3V0aTsKK30KKworU3RyaW5nIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZmlsZW5hbWVFeHRlbnNp
b24oKSBjb25zdAoreworICAgIHJldHVybiBNSU1FVHlwZVJlZ2lzdHJ5OjpwcmVmZXJyZWRFeHRl
bnNpb25Gb3JNSU1FVHlwZShtX21pbWVUeXBlKTsKK30KKworSW50U2l6ZSBSZW1vdGVJbWFnZURl
Y29kZXJBVkY6OmZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsKSBjb25z
dAoreworICAgIHJldHVybiBzaXplKCk7Cit9CisKK2Jvb2wgUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
OjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSW1hZ2VEZWNvZGVyOjpGcmFtZU1ldGFk
YXRhIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVNZXRhZGF0YUF0SW5kZXgoc2l6ZV90KSBj
b25zdAoreworICAgIHJldHVybiB7IH07Cit9CisKK1NlY29uZHMgUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QpIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4geyB9OworfQorCitib29sIFJlbW90ZUltYWdlRGVjb2RlckFW
Rjo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90KSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFJlbW90ZUltYWdlRGVjb2RlckFW
Rjo6ZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleChzaXplX3QpIGNvbnN0Cit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Vuc2lnbmVkIFJlbW90ZUlt
YWdlRGVjb2RlckFWRjo6ZnJhbWVCeXRlc0F0SW5kZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVs
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bs
YXRmb3JtSW1hZ2VQdHIgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpjcmVhdGVGcmFtZUltYWdlQXRJ
bmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBS
ZW1vdGVJbWFnZURlY29kZXJBVkY6OnNldEV4cGVjdGVkQ29udGVudFNpemUobG9uZyBsb25nKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
OjpzZXREYXRhKFNoYXJlZEJ1ZmZlciYsIGJvb2wgLyphbGxEYXRhUmVjZWl2ZWQqLykKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y2xl
YXJGcmFtZUJ1ZmZlckNhY2hlKHNpemVfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9jb2NvYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGI3NWM3OWUwNTE0ODdkYmNiMDVmNjA3NzA2NTA3ZWRkYjk2MDZlNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisKKyNpbmNs
dWRlIDxXZWJDb3JlL0ltYWdlRGVjb2Rlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGIDogcHVibGljIFdlYkNvcmU6OkltYWdlRGVjb2RlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxSZW1vdGVJbWFnZURlY29kZXJBVkY+IGNyZWF0
ZShXZWJDb3JlOjpTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBXZWJDb3Jl
OjpBbHBoYU9wdGlvbiwgV2ViQ29yZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pOworICAg
IHZpcnR1YWwgflJlbW90ZUltYWdlRGVjb2RlckFWRigpID0gZGVmYXVsdDsKKworICAgIHN0YXRp
YyBib29sIGNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CisgICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNNZWRpYVR5cGUoTWVkaWFUeXBlKTsKKyAgICAvLyBzdGF0aWMgYm9vbCBz
dXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgCisgICAgc2l6ZV90IGJ5
dGVzRGVjb2RlZFRvRGV0ZXJtaW5lUHJvcGVydGllcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IDA7IH0KKworICAgIFdlYkNvcmU6OkVuY29kZWREYXRhU3RhdHVzIGVuY29kZWREYXRhU3RhdHVz
KCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRFbmNvZGVkRGF0YVN0YXR1c0NoYW5nZUNhbGxi
YWNrKFdURjo6RnVuY3Rpb248dm9pZChXZWJDb3JlOjpFbmNvZGVkRGF0YVN0YXR1cyk+JiYpIGZp
bmFsOworICAgIFdlYkNvcmU6OkludFNpemUgc2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIHNpemVf
dCBmcmFtZUNvdW50KCkgY29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6UmVwZXRpdGlvbkNvdW50
IHJlcGV0aXRpb25Db3VudCgpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyB1dGkoKSBjb25zdCBm
aW5hbDsKKyAgICBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdCBmaW5hbDsKKyAgICBP
cHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gaG90U3BvdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFdURjo6bnVsbG9wdDsgfQorCisgICAgV2ViQ29yZTo6SW50U2l6ZSBmcmFtZVNpemVBdEluZGV4
KHNpemVfdCwgV2ViQ29yZTo6U3Vic2FtcGxpbmdMZXZlbCA9IFdlYkNvcmU6OlN1YnNhbXBsaW5n
TGV2ZWw6OkRlZmF1bHQpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgZnJhbWVJc0NvbXBsZXRlQXRJ
bmRleChzaXplX3QpIGNvbnN0IGZpbmFsOworICAgIEZyYW1lTWV0YWRhdGEgZnJhbWVNZXRhZGF0
YUF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKKworICAgIFNlY29uZHMgZnJhbWVEdXJhdGlv
bkF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKKyAgICBib29sIGZyYW1lSGFzQWxwaGFBdElu
ZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBmcmFtZUFsbG93U3Vic2FtcGxpbmdB
dEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CisgICAgdW5zaWduZWQgZnJhbWVCeXRlc0F0SW5k
ZXgoc2l6ZV90LCBXZWJDb3JlOjpTdWJzYW1wbGluZ0xldmVsID0gV2ViQ29yZTo6U3Vic2FtcGxp
bmdMZXZlbDo6RGVmYXVsdCkgY29uc3QgZmluYWw7CisKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybUlt
YWdlUHRyIGNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCwgV2ViQ29yZTo6U3Vic2FtcGxp
bmdMZXZlbCA9IFdlYkNvcmU6OlN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQsIGNvbnN0IFdlYkNv
cmU6OkRlY29kaW5nT3B0aW9ucyYgPSBXZWJDb3JlOjpEZWNvZGluZ09wdGlvbnMoV2ViQ29yZTo6
RGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91cykpIGZpbmFsOworCisgICAgdm9pZCBzZXRFeHBlY3Rl
ZENvbnRlbnRTaXplKGxvbmcgbG9uZykgZmluYWw7CisgICAgdm9pZCBzZXREYXRhKFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlciYsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKSBmaW5hbDsKKyAgICBib29sIGlz
QWxsRGF0YVJlY2VpdmVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc0FsbERhdGFSZWNlaXZl
ZDsgfQorICAgIHZvaWQgY2xlYXJGcmFtZUJ1ZmZlckNhY2hlKHNpemVfdCkgZmluYWw7CisKK3By
aXZhdGU6CisgICAgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdlYkNvcmU6OkFscGhhT3B0aW9uLCBXZWJDb3JlOjpH
YW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CisKKyAgICBTdHJpbmcgbV9taW1lVHlwZTsKKyAg
ICBTdHJpbmcgbV91dGk7CisgICAgYm9vbCBtX2lzQWxsRGF0YVJlY2VpdmVkIHsgZmFsc2UgfTsK
K307CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDMzY2E4ZTczYjZlZDA1NWI0ODJiN2YxMDExYTFmNWQ4OTgyMjZlZDMuLjhlMjlkYjgxNTRi
OTJjMmE0OTc2ZGUwOWMyODBmZTNjODkyNjEyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJQcm9jZXNzQXNzZXJ0aW9uLmgiCiAjaW5j
bHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJl
bW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaCIKICNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCkBAIC0xMDcsNiArMTA4LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0dDQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
R2x5cGhQYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2lu
ZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oPgpAQCAtMTkzOCw3
ICsxOTQwLDEzIEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKGJv
b2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhKQogICAgIGVsc2UKICAgICAgICAgTGVnYWN5Q0RNOjpy
ZXNldEZhY3RvcmllcygpOwogI2VuZGlmCi0gICAgCisKKyNpZiBIQVZFKEFWQVNTRVRSRUFERVIp
CisgICAgSW1hZ2VEZWNvZGVyOjpjbGVhckZhY3RvcmllcygpOworICAgIGlmICh1c2VHUFVQcm9j
ZXNzRm9yTWVkaWEpCisgICAgICAgIEltYWdlRGVjb2Rlcjo6aW5zdGFsbEZhY3RvcnkoeyBSZW1v
dGVJbWFnZURlY29kZXJBVkY6OnN1cHBvcnRzTWVkaWFUeXBlLCBSZW1vdGVJbWFnZURlY29kZXJB
VkY6OmNhbkRlY29kZVR5cGUsIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y3JlYXRlIH0pOworI2Vu
ZGlmCisKICAgICBpZiAodXNlR1BVUHJvY2Vzc0Zvck1lZGlhKQogICAgICAgICBlbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpLm1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkoKS5yZWdp
c3RlckZhY3RvcnkoKTsKICAgICBlbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419364</attachid>
            <date>2021-02-04 22:37:07 -0800</date>
            <delta_ts>2021-02-05 10:29:22 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-221317-20210204223707.patch</filename>
            <type>text/plain</type>
            <size>60083</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFkMmQ0ZjgwZWM2ZDU0
NTFiM2M4MzJmZjg1OWEwZmY2OWRjMTNhNi4uNzFiNjI5MGFlMmU4N2UxZGYzNTFhMGVjMzY2Yjhl
OWFkMTA0MzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAyLTAzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIFJ1biBJbWFnZURl
Y29kZXJBVkZPYmpDIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZhY3Rvcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXI6
Omluc3RhbGxGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2Rlcjo6Y2xlYXJG
YWN0b3JpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpzdXBwb3J0c01lZGlhVHlwZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmg6CisKIDIwMjEtMDItMDMgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgYW4gYW5j
ZXN0b3Igd2FsayBpbiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlV2lsbFZhbGlkYXRl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZGQwZWYwNTJlZTU2OGNkMGYxOGE5YjRmYzBiZmQ4N2JhZmI0ZGVlYy4u
NTYzZTZhODQzNGYyZjc4MmI0ZjAzZjA5YzU2ODdkNmQwNDRlZjIyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMS0wMi0wMyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtHUFVQXSBSdW4gSW1hZ2VEZWNvZGVyQVZGT2JqQyBpbiB0aGUgR1BVIFByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTMx
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29kZXJBVkYpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNhbkRlY29kZVR5cGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OnN1cHBvcnRzTWVkaWFUeXBlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjplbmNvZGVkRGF0YVN0YXR1cyBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6c2V0RW5jb2RlZERh
dGFTdGF0dXNDaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVj
b2RlckFWRjo6c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6ZnJhbWVDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVj
b2RlckFWRjo6cmVwZXRpdGlvbkNvdW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjp1dGkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZURlY29kZXJBVkY6OmZpbGVuYW1lRXh0ZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZVNpemVBdEluZGV4IGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4IGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZU1ldGFk
YXRhQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFW
Rjo6ZnJhbWVEdXJhdGlvbkF0SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJ
bWFnZURlY29kZXJBVkY6OmZyYW1lSGFzQWxwaGFBdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUFsbG93U3Vic2FtcGxpbmdBdEluZGV4
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUJ5
dGVzQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFW
Rjo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZURlY29kZXJBVkY6OnNldEV4cGVjdGVkQ29udGVudFNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVJbWFnZURlY29kZXJBVkY6OnNldERhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJ
bWFnZURlY29kZXJBVkY6OmNsZWFyRnJhbWVCdWZmZXJDYWNoZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNldFVzZUdQVVByb2Nlc3NGb3JNZWRpYSk6CisKIDIwMjEtMDItMDMgIFRpbW90aHkg
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBG
QUlMRUQ6ICFzaXplLmlzRW1wdHkoKSB1bmRlciBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMjNkY2JmZWQxNzUwYTNmZjVkNjY4MDNkY2JmYjY1YjIyZmVkZTBjMS4uZGRjZDFiMzYw
OWQ2NGM5NTk0YTEzODVlY2JhMmY3OTUzNDlhZTgwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMyLDYgKzYzMiw3IEBACiAJ
CTFEMkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0Ey
MzNDM0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUx
RDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBF
RTIyOEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5
OTNCNjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1
cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkxRDQ3NjU4RTI1Q0NBNzc4MDA3QUYzMTIgLyogSW1hZ2VEZWNvZGVySWRl
bnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUQ0NzY1OEQyNUNDQTc3ODAwN0FGMzEyIC8qIEltYWdlRGVjb2RlcklkZW50aWZpZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDlGMEZDMTIx
MjIwMjlCMDA1RDhGRDQgLyogU2hhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxREM1NTQwMDIxMUJBOEM4MDA0Qjc4MEUgLyogU2hhcmVEYXRh
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURB
QjMxMTIyNTFENkJGMzAwRkM5NDg1IC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEIzMUExMjM3OURDODMw
MDg4M0ZERSAvKiBXZWJWaWRlb0NvbnRhaW5lckxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURBQjMxMTQyNTFENzI1QzAwRkM5NDg1IC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDIx
OSw4ICs0MjIwLDggQEAKIAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxs
U2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDE3
QTQ1RDIxMzc0MDgxMDA3OUVDN0IgLyogVW5pZmllZFNvdXJjZTYyLW1tLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxN0E0NTkyMTM3NDAxNjAwNzlF
QzdCIC8qIFVuaWZpZWRTb3VyY2U2Mi1tbS5tbSAqLzsgfTsKIAkJQ0QxOUEyNjgxQTEzRTcwMDAw
OEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2NzFBMTNFNzAwMDA4RDY1MEUgLyogRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQlDRDE5RkVBODFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVB
NjFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggKi87IH07Ci0JCUNEMTlGRUFFMUY1
NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVBQzFGNTc0QjZEMDAwQzQyRkIgLyog
SW1hZ2VEZWNvZGVyQVZGT2JqQy5oICovOyB9OworCQlDRDE5RkVBODFGNTczOTcyMDAwQzQyRkIg
LyogSW1hZ2VEZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDE5RkVBNjFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QxOUZFQUUxRjU3
NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlGRUFDMUY1NzRCNkQwMDBDNDJGQiAvKiBJ
bWFnZURlY29kZXJBVkZPYmpDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0QxOUZFQUYxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFW
Rk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDE5RkVBRDFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbSAqLzsgfTsK
IAkJQ0QyMjVDMEIxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDIyNUMwOTFDNDZG
QkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLzsgfTsKIAkJQ0QyMjVDMEMx
QzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1QzBBMUM0NkZCRjQwMDE0MDc2MSAv
KiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTY4ODgsNiArNjg4OSw3IEBACiAJCTFEMDAyNkE4MjM3NEY5RDkw
MENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50
ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFEMkM4MkI2MjM2QTNGNkEwMDU1RDZDNSAvKiBQaWN0dXJlSW5QaWN0
dXJlU3VwcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDQ3NjU4RDI1Q0NBNzc4MDA3QUYzMTIgLyog
SW1hZ2VEZWNvZGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZURlY29kZXJJZGVu
dGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQUIzMTEzMjUxRDcyNUMw
MEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVy
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREI2NkQzNzI1MzY3OEVB
MDBCNjcxQjkgLyogQXVkaW9PdXRwdXRVbml0QWRhcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRp
b091dHB1dFVuaXRBZGFwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQjY2
RDM4MjUzNjc4RUEwMEI2NzFCOSAvKiBBdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjY2NzEsNiArMjY2NzMsNyBAQAogCQkJCUIyQTEwQzkxMEIzODE4QkQw
MDA5OUFBNCAvKiBJbWFnZUJ1ZmZlclBpcGUuaCAqLywKIAkJCQlDRDE5RkVBNzFGNTczOTcyMDAw
QzQyRkIgLyogSW1hZ2VEZWNvZGVyLmNwcCAqLywKIAkJCQlDRDE5RkVBNjFGNTczOTcyMDAwQzQy
RkIgLyogSW1hZ2VEZWNvZGVyLmggKi8sCisJCQkJMUQ0NzY1OEQyNUNDQTc3ODAwN0FGMzEyIC8q
IEltYWdlRGVjb2RlcklkZW50aWZpZXIuaCAqLywKIAkJCQk1NTc2QTU2MjFEODhBNzA4MDBDQ0Mw
NEMgLyogSW1hZ2VGcmFtZS5jcHAgKi8sCiAJCQkJNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8q
IEltYWdlRnJhbWUuaCAqLywKIAkJCQlCQzdGNDRBNzBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VP
YnNlcnZlci5oICovLApAQCAtMzI1MjcsNiArMzI1MzAsNyBAQAogCQkJCUNEMTlGRUE4MUY1NzM5
NzIwMDBDNDJGQiAvKiBJbWFnZURlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMTlGRUFF
MUY1NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NTVCODdFRDFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFENDc2NThFMjVDQ0E3NzgwMDdBRjMxMiAvKiBJbWFnZURlY29kZXJJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzIwNUFCNjEyMzkyOTEwMDBCMTczODAgLyog
SW1hZ2VEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ4QjdENTMyNUMzNDFFNjAwOUU3
NUREIC8qIEltYWdlRXh0cmFjdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU3NkE1
NjUxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5jcHAKaW5kZXgg
ODY4ZWQ4NzgwNmQyOTAxMGI1MTkyMjAxNjQxMTQ0NWU2ZmZmYmFkZS4uMDExZGJkZGMxZTM1ZjIw
ZWFlMDg3OWI2NTE4Y2Y5OTAwNmVlYWZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyLmgiCiAKKyNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KKwogI2lmIFVTRShDRykKICNpbmNsdWRlICJJbWFnZURlY29kZXJD
Ry5oIgogI2VsaWYgVVNFKERJUkVDVDJEKQpAQCAtNDQsMTMgKzQ2LDU4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKK3VzaW5nIEZhY3RvcnlWZWN0
b3IgPSBWZWN0b3I8SW1hZ2VEZWNvZGVyOjpJbWFnZURlY29kZXJGYWN0b3J5PjsKKworc3RhdGlj
IHZvaWQgcGxhdGZvcm1SZWdpc3RlckZhY3RvcmllcyhGYWN0b3J5VmVjdG9yJiBmYWN0b3JpZXMp
Cit7CisgICAgZmFjdG9yaWVzLmFwcGVuZCh7IEltYWdlRGVjb2RlckFWRk9iakM6OnN1cHBvcnRz
TWVkaWFUeXBlLCBJbWFnZURlY29kZXJBVkZPYmpDOjpjYW5EZWNvZGVUeXBlLCBJbWFnZURlY29k
ZXJBVkZPYmpDOjpjcmVhdGUgfSk7Cit9CisKK3N0YXRpYyBGYWN0b3J5VmVjdG9yJiBpbnN0YWxs
ZWRGYWN0b3JpZXMoKQoreworICAgIHN0YXRpYyBhdXRvIGZhY3RvcmllcyA9IG1ha2VOZXZlckRl
c3Ryb3llZDxGYWN0b3J5VmVjdG9yPih7IH0pOworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBy
ZWdpc3RlckRlZmF1bHRzOworICAgIHN0ZDo6Y2FsbF9vbmNlKHJlZ2lzdGVyRGVmYXVsdHMsIFsm
XSB7CisgICAgICAgIHBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoZmFjdG9yaWVzKTsKKyAgICB9
KTsKKworICAgIHJldHVybiBmYWN0b3JpZXM7Cit9CisKK3ZvaWQgSW1hZ2VEZWNvZGVyOjppbnN0
YWxsRmFjdG9yeShJbWFnZURlY29kZXI6OkltYWdlRGVjb2RlckZhY3RvcnkmJiBmYWN0b3J5KQor
eworICAgIGluc3RhbGxlZEZhY3RvcmllcygpLmFwcGVuZChXVEZNb3ZlKGZhY3RvcnkpKTsKK30K
Kwordm9pZCBJbWFnZURlY29kZXI6OnJlc2V0RmFjdG9yaWVzKCkKK3sKKyAgICBpbnN0YWxsZWRG
YWN0b3JpZXMoKS5jbGVhcigpOworICAgIHBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoaW5zdGFs
bGVkRmFjdG9yaWVzKCkpOworfQorCit2b2lkIEltYWdlRGVjb2Rlcjo6Y2xlYXJGYWN0b3JpZXMo
KQoreworICAgIGluc3RhbGxlZEZhY3RvcmllcygpLmNsZWFyKCk7Cit9CisjZW5kaWYKKwogUmVm
UHRyPEltYWdlRGVjb2Rlcj4gSW1hZ2VEZWNvZGVyOjpjcmVhdGUoU2hhcmVkQnVmZmVyJiBkYXRh
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBBbHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwgR2FtbWFB
bmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pCiB7CiAgICAg
VU5VU0VEX1BBUkFNKG1pbWVUeXBlKTsKIAogI2lmIEhBVkUoQVZBU1NFVFJFQURFUikKLSAgICBp
ZiAoIUltYWdlRGVjb2RlckNHOjpjYW5EZWNvZGVUeXBlKG1pbWVUeXBlKSAmJiBJbWFnZURlY29k
ZXJBVkZPYmpDOjpjYW5EZWNvZGVUeXBlKG1pbWVUeXBlKSkKLSAgICAgICAgcmV0dXJuIEltYWdl
RGVjb2RlckFWRk9iakM6OmNyZWF0ZShkYXRhLCBtaW1lVHlwZSwgYWxwaGFPcHRpb24sIGdhbW1h
QW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKKyAgICBpZiAoIUltYWdlRGVjb2RlckNHOjpjYW5EZWNv
ZGVUeXBlKG1pbWVUeXBlKSkgeworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICAgICAgZm9y
IChhdXRvJiBmYWN0b3J5IDogaW5zdGFsbGVkRmFjdG9yaWVzKCkpIHsKKyAgICAgICAgICAgIGlm
IChmYWN0b3J5LmNhbkRlY29kZVR5cGUobWltZVR5cGUpKQorICAgICAgICAgICAgICAgIHJldHVy
biBmYWN0b3J5LmNyZWF0ZUltYWdlRGVjb2RlcihkYXRhLCBtaW1lVHlwZSwgYWxwaGFPcHRpb24s
IGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAg
aWYgKEltYWdlRGVjb2RlckFWRk9iakM6OmNhbkRlY29kZVR5cGUobWltZVR5cGUpKQorICAgICAg
ICAgICAgcmV0dXJuIEltYWdlRGVjb2RlckFWRk9iakM6OmNyZWF0ZShkYXRhLCBtaW1lVHlwZSwg
YWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKKyNlbmRpZgorICAgIH0K
ICNlbmRpZgogCiAjaWYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKFZJREVPKQpAQCAtODEsOSAr
MTI4LDE2IEBAIGJvb2wgSW1hZ2VEZWNvZGVyOjpzdXBwb3J0c01lZGlhVHlwZShNZWRpYVR5cGUg
dHlwZSkKICNlbmRpZgogCiAjaWYgSEFWRShBVkFTU0VUUkVBREVSKQorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKyAgICBmb3IgKGF1dG8mIGZhY3RvcnkgOiBpbnN0YWxsZWRGYWN0b3JpZXMoKSkg
eworICAgICAgICBpZiAoZmFjdG9yeS5zdXBwb3J0c01lZGlhVHlwZSh0eXBlKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbHNlCiAgICAgaWYgKEltYWdlRGVjb2RlckFWRk9i
akM6OnN1cHBvcnRzTWVkaWFUeXBlKHR5cGUpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRp
ZgorI2VuZGlmCiAKICNpZiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUoVklERU8pCiAgICAgaWYg
KEltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3VwcG9ydHNNZWRpYVR5cGUodHlwZSkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCmluZGV4IDg2NzBk
MTUyNGNlYTIxNGJkZTc5ZGQ2N2RkYzJjMTNjYjQxOWRiYTkuLjk0YTk2OGFmMzE1NGRlYTJjYjFh
NGZlNmY5MTg4ZTk5YTE5NjI1YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlRGVjb2Rlci5oCkBAIC01OCw2ICs1OCwyMiBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgYm9vbCBzdXBwb3J0c01lZGlhVHlwZShNZWRpYVR5cGUpOwogCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorICAgIHVzaW5nIFN1cHBvcnRzTWVkaWFUeXBlRnVuYyA9IFdURjo6RnVuY3Rp
b248Ym9vbChNZWRpYVR5cGUpPjsKKyAgICB1c2luZyBDYW5EZWNvZGVUeXBlRnVuYyA9IFdURjo6
RnVuY3Rpb248Ym9vbChjb25zdCBTdHJpbmcmKT47CisgICAgdXNpbmcgQ3JlYXRlSW1hZ2VEZWNv
ZGVyRnVuYyA9IFdURjo6RnVuY3Rpb248UmVmUHRyPEltYWdlRGVjb2Rlcj4oU2hhcmVkQnVmZmVy
JiwgY29uc3QgU3RyaW5nJiwgQWxwaGFPcHRpb24sIEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9u
KT47CisKKyAgICBzdHJ1Y3QgSW1hZ2VEZWNvZGVyRmFjdG9yeSB7CisgICAgICAgIFN1cHBvcnRz
TWVkaWFUeXBlRnVuYyBzdXBwb3J0c01lZGlhVHlwZTsKKyAgICAgICAgQ2FuRGVjb2RlVHlwZUZ1
bmMgY2FuRGVjb2RlVHlwZTsKKyAgICAgICAgQ3JlYXRlSW1hZ2VEZWNvZGVyRnVuYyBjcmVhdGVJ
bWFnZURlY29kZXI7CisgICAgfTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGlu
c3RhbGxGYWN0b3J5KEltYWdlRGVjb2RlckZhY3RvcnkmJik7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgcmVzZXRGYWN0b3JpZXMoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
dm9pZCBjbGVhckZhY3RvcmllcygpOworI2VuZGlmCisKICAgICB2aXJ0dWFsIHNpemVfdCBieXRl
c0RlY29kZWRUb0RldGVybWluZVByb3BlcnRpZXMoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFs
IEVuY29kZWREYXRhU3RhdHVzIGVuY29kZWREYXRhU3RhdHVzKCkgY29uc3QgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVySWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVySWRl
bnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNDZhZTBjNGMyMDI4ZTdhODk4ZmRkZTliNThkMTMzMDI2
ODFjMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZURlY29kZXJJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEltYWdlRGVjb2RlcklkZW50aWZpZXJUeXBlIHsgfTsK
K3VzaW5nIEltYWdlRGVjb2RlcklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdlRGVj
b2RlcklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW1h
Z2VEZWNvZGVyQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvSW1hZ2VEZWNvZGVyQVZGT2JqQy5oCmluZGV4IDNiNDUwNjc4ZmE3ZjM2
YzE5OGE0MGIwODdlNzQ2ZjEyYTc5OGM3ODUuLjQ1YmEwMWRlYmJkMmVmNDAyMDM3OWU1MWVkNTdj
YzA5OWM2MTJjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZP
YmpDLmgKQEAgLTUzLDE0ICs1MywxNCBAQCBjbGFzcyBXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Np
b247CiAKIGNsYXNzIEltYWdlRGVjb2RlckFWRk9iakMgOiBwdWJsaWMgSW1hZ2VEZWNvZGVyIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEltYWdlRGVjb2RlckFWRk9iakM+IGNyZWF0ZShT
aGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBBbHBoYU9wdGlvbiwgR2FtbWFB
bmRDb2xvclByb2ZpbGVPcHRpb24pOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8
SW1hZ2VEZWNvZGVyQVZGT2JqQz4gY3JlYXRlKFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIEFscGhhT3B0aW9uLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CiAgICAg
dmlydHVhbCB+SW1hZ2VEZWNvZGVyQVZGT2JqQygpOwogCi0gICAgc3RhdGljIGJvb2wgc3VwcG9y
dHNNZWRpYVR5cGUoTWVkaWFUeXBlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBz
dXBwb3J0c01lZGlhVHlwZShNZWRpYVR5cGUpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzQ29u
dGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKTsKIAogICAgIHNpemVfdCBieXRlc0RlY29kZWRUb0Rl
dGVybWluZVByb3BlcnRpZXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9Ci0gICAgc3Rh
dGljIGJvb2wgY2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBjYW5EZWNvZGVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpOwogCiAgICAgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWlt
ZVR5cGU7IH0KIApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1JbWFnZVB0
ciBjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwgPSBTdWJz
YW1wbGluZ0xldmVsOjpEZWZhdWx0LCBjb25zdCBEZWNvZGluZ09wdGlvbnMmID0gRGVjb2RpbmdP
cHRpb25zKERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMpKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0
RXhwZWN0ZWRDb250ZW50U2l6ZShsb25nIGxvbmcpIGZpbmFsOwotICAgIHZvaWQgc2V0RGF0YShT
aGFyZWRCdWZmZXImLCBib29sIGFsbERhdGFSZWNlaXZlZCkgZmluYWw7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXREYXRhKFNoYXJlZEJ1ZmZlciYsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKSBm
aW5hbDsKICAgICBib29sIGlzQWxsRGF0YVJlY2VpdmVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9pc0FsbERhdGFSZWNlaXZlZDsgfQogICAgIHZvaWQgY2xlYXJGcmFtZUJ1ZmZlckNhY2hlKHNp
emVfdCkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAppbmRleCAyM2FkNDA3ODBkMzY1N2JjODlhYTgyYjE0Y2YzNzcwYTMyNmRkNDA0Li44
N2NmYTc1N2IzZjYzZWVjZTg1MTY0MDljZmU2NzRiYTE2ZjE1YTc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0zMSw2ICszMSw3IEBAICQo
UFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNRmFjdG9yeVByb3h5Lm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNl
UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlQ0RNUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2Fj
eUNETVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggMDY1NTc1NTk1MzA4MzBkNjMy
YTU2NzdiM2ViZWVkNzA3ZmJlMmM4YS4uMzAwMTQwMDE4OTc0NjU4ZmM0MzBjYjljNDUzODMwN2E0
NDBiMWJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CkBAIC0xODYsNiArMTg2LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlc1JlcGwKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5TWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlN
ZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2Fn
ZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBjN2E1MDk0YjI0MmI0
MGZiOTIxMGQ5MDNjM2RjOGNmYTA3MmI0MmY1Li4xOWE0OTBjMGVkYzAwNGM0MzgxYmE4ZTIxNzk5
NWY3ZmIwNWUyMzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNDEsNiArMjQx
LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlciBcCiAJR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXIgXAogCUdQVVByb2Nlc3MvR1BVUHJvY2VzcyBcCisJR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVM
ZWdhY3lDRE1TZXNzaW9uUHJveHkgXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RN
RmFjdG9yeVByb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvblByb3h5
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAppbmRleCA4Mjc4YmNlMTRjNWYxYzI0YmU3YzkwMjJkNWZkNDBiMjRjNThl
ZmVmLi4yZTY5ZjhmZThkNzA3ZmU0MGMwN2RiMTZmY2E2ZjQ4YjhjMjk3NjY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCkBAIC0xMDYsNiArMTA2LDExIEBACiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNU2Vzc2lv
blByb3h5TWVzc2FnZXMuaCIKICNlbmRpZgogCisjaWYgSEFWRShBVkFTU0VUUkVBREVSKQorI2lu
Y2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlSW1h
Z2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlcy5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeVBy
b3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeVBy
b3h5TWVzc2FnZXMuaCIKQEAgLTI5MCw2ICsyOTUsMTYgQEAgUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmF1ZGlvU2Vzc2lvblByb3h5KCkKIH0KICNl
bmRpZgogCisjaWYgSEFWRShBVkFTU0VUUkVBREVSKQorUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJv
eHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmltYWdlRGVjb2RlckFWRlByb3h5KCkKK3sK
KyAgICBpZiAoIW1faW1hZ2VEZWNvZGVyQVZGUHJveHkpCisgICAgICAgIG1faW1hZ2VEZWNvZGVy
QVZGUHJveHkgPSBtYWtlVW5pcXVlPFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5PigqdGhpcyk7
CisKKyAgICByZXR1cm4gKm1faW1hZ2VEZWNvZGVyQVZGUHJveHk7Cit9CisjZW5kaWYKKwogdm9p
ZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVSZW5kZXJpbmdCYWNrZW5kKFJlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6U2VtYXBob3JlJiYgcmVzdW1l
RGlzcGxheUxpc3RTZW1hcGhvcmUpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRNYXAuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSgpIHsKQEAgLTQ2Myw2ICs0
NzgsMTIgQEAgYm9vbCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEMKICAgICAgICAgbWVkaWFFbmdpbmVDb25m
aWd1cmF0aW9uRmFjdG9yeVByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhj
b25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorI2lmIEhB
VkUoQVZBU1NFVFJFQURFUikKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCkpIHsKKyAgICAgICAgaW1hZ2VEZWNvZGVyQVZGUHJveHkoKS5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2Vu
ZGlmCiAKICAgICByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hNZXNzYWdlKGNv
bm5lY3Rpb24sIGRlY29kZXIpOwogfQpAQCAtNTE2LDYgKzUzNywxMiBAQCBib29sIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAjZW5kaWYKKyNpZiBIQVZF
KEFWQVNTRVRSRUFERVIpCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CisgICAgICAgIGltYWdlRGVjb2RlckFWRlByb3h5KCkuZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyNlbmRpZgogCiAgICAgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck1hcCgpLmRp
c3BhdGNoU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDdiYWRkMzc3NjljZjUyZmQ1NDBiNGZiNzc3ZDA4ODc0NjYwNGY1NGYuLmUy
MGFkMzJjYmQxMzg0ZmUxMjkyOTRlZWY1OGYxYmU5MzI1YzY5MjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNTQs
NiArNTQsNyBAQCBjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFn
ZXI7CiBjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTsKIGNsYXNzIFJlbW90ZUF1ZGlvU2Vz
c2lvblByb3h5TWFuYWdlcjsKIGNsYXNzIFJlbW90ZUNETUZhY3RvcnlQcm94eTsKK2NsYXNzIFJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5OwogY2xhc3MgUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVBy
b3h5OwogY2xhc3MgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeVByb3h5Owog
Y2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CkBAIC0xMDIsMTUgKzEwMywxOCBA
QCBwdWJsaWM6CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAgUmVtb3Rl
TGVnYWN5Q0RNRmFjdG9yeVByb3h5JiBsZWdhY3lDZG1GYWN0b3J5UHJveHkoKTsKICNlbmRpZgot
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogICAgIFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJh
dGlvbkZhY3RvcnlQcm94eSYgbWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeVByb3h5KCk7
Ci0jZW5kaWYKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgcmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkoKSB7IHJldHVybiAqbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eTsgfQogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAgICAgUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyJiBhdWRpb1Nlc3Npb25NYW5hZ2VyKCk7CiAjZW5kaWYKIAorI2lmIEhBVkUo
QVZBU1NFVFJFQURFUikKKyAgICBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eSYgaW1hZ2VEZWNv
ZGVyQVZGUHJveHkoKTsKKyNlbmRpZgorCiAgICAgdm9pZCB0ZXJtaW5hdGVXZWJQcm9jZXNzKCk7
CiAKIHByaXZhdGU6CkBAIC0yMjEsOSArMjI1LDExIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKExF
R0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUxlZ2FjeUNE
TUZhY3RvcnlQcm94eT4gbV9sZWdhY3lDZG1GYWN0b3J5UHJveHk7CiAjZW5kaWYKLSNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCi0gICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhRW5naW5lQ29u
ZmlndXJhdGlvbkZhY3RvcnlQcm94eT4gbV9tZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5
UHJveHk7CisjaWYgSEFWRShBVkFTU0VUUkVBREVSKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1v
dGVJbWFnZURlY29kZXJBVkZQcm94eT4gbV9pbWFnZURlY29kZXJBVkZQcm94eTsKICNlbmRpZgor
CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rv
cnlQcm94eT4gbV9tZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNmMTM5YzU3M2I1YWRmOGQ3ZGUxOTMxMzQ0MzQ5MGRiZTFjZDU3NzQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
UHJveHkuY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaCIKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVBREVSKQorCisjaW5jbHVkZSAiR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRGVjb2RlckFWRk9iakMuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZW1v
dGVJbWFnZURlY29kZXJBVkZQcm94eTo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkoR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcykKKyAgICA6IG1fY29u
bmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQoreworfQorCit2b2lk
IFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpjcmVhdGVEZWNvZGVyKGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0
ZShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgIGF1dG8gaW1hZ2VEZWNvZGVyID0gSW1h
Z2VEZWNvZGVyQVZGT2JqQzo6Y3JlYXRlKGJ1ZmZlciwgbWltZVR5cGUsIEFscGhhT3B0aW9uOjpQ
cmVtdWx0aXBsaWVkLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbjo6SWdub3JlZCk7CisKKyAg
ICBPcHRpb25hbDxJbWFnZURlY29kZXJJZGVudGlmaWVyPiBpbWFnZURlY29kZXJJZGVudGlmaWVy
OworICAgIGlmIChpbWFnZURlY29kZXIpIHsKKyAgICAgICAgYXV0byBpZGVudGlmaWVyID0gSW1h
Z2VEZWNvZGVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICAgICAgbV9pbWFnZURlY29kZXJz
LmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGltYWdlRGVjb2RlcikpOworICAgICAgICBpbWFnZURl
Y29kZXJJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBjb21wbGV0aW9uSGFu
ZGxlcihpbWFnZURlY29kZXJJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVJbWFnZURlY29k
ZXJBVkZQcm94eTo6ZGVsZXRlRGVjb2RlcihJbWFnZURlY29kZXJJZGVudGlmaWVyKQoreworfQor
Cit2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpzZXREYXRhKGNvbnN0IFdlYkNvcmU6
OkltYWdlRGVjb2RlcklkZW50aWZpZXImIGlkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCit7CisgICAgQVNTRVJUKG1faW1hZ2VE
ZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgYXV0byBidWZmZXIgPSBTaGFyZWRC
dWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgIG1faW1hZ2VEZWNv
ZGVycy5nZXQoaWRlbnRpZmllciktPnNldERhdGEoYnVmZmVyLCBhbGxEYXRhUmVjZWl2ZWQpOwor
fQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDM1NTBl
Yzk2OTA5YmNlMmQzY2RmMjNlYWVhZWEzNzhlMzg5ZmUxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmgK
QEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisKKyNpbmNsdWRlICJEYXRhUmVm
ZXJlbmNlLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9JbWFnZURlY29kZXJBVkZPYmpDLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXJJ
ZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOworCitjbGFzcyBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eSA6IHBy
aXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIGV4cGxpY2l0IFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5KEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVJbWFnZURlY29kZXJB
VkZQcm94eSgpID0gZGVmYXVsdDsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOworCitw
cml2YXRlOgorICAgIHZvaWQgY3JlYXRlRGVjb2Rlcihjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXI+KT4mJik7CisgICAgdm9pZCBkZWxldGVE
ZWNvZGVyKFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXIpOworICAgIHZvaWQgc2V0RGF0
YShjb25zdCBXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyJiwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpOworCisgICAgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIEhhc2hNYXA8V2ViQ29y
ZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciwgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGVjb2RlckFW
Rk9iakM+PiBtX2ltYWdlRGVjb2RlcnM7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwMjRmZWVjMWY1NDQ1ZmYy
M2IzMzVhMjFhMzlmNTY2NmE0YTJlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkubWVzc2FnZXMuaW4K
QEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisKK21lc3NhZ2VzIC0+IFJlbW90
ZUltYWdlRGVjb2RlckFWRlByb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIENyZWF0ZURlY29kZXIo
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIFN0cmluZyBtaW1lVHlwZSkgLT4g
KE9wdGlvbmFsPFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXI+IGlkZW50aWZpZXIpIFN5
bmNocm9ub3VzCisgICAgRGVsZXRlRGVjb2RlcihXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIpCisgICAgU2V0RGF0YShXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBib29s
IGFsbERhdGFSZWNlaXZlZCkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGRmFjdG9yeVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVJbWFnZURl
Y29kZXJBVkZGYWN0b3J5UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlZTgxYWI4N2E4ZWUwMGVjZmM4
YzQzNTE3YTc3NDg1YTc0YTcxNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGRmFjdG9yeVByb3h5LmNw
cApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRkZhY3RvcnlQcm94eS5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZUltYWdlRGVjb2RlckFW
RkZhY3RvcnlQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1Jl
bW90ZUltYWdlRGVjb2RlckFWRkZhY3RvcnlQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1NDM4ZjRjYzY5
MDAyZTY3YjAxMGIxNWViODgwZmZhYTI1NzA0M2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGRmFjdG9y
eVByb3h5LmgKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZWM4YmNmMDg3ZGYxNmRm
NjBkYmUwMDgwZTRjZWIwNjFkMTc2OGZmNy4uZTZmYTU5NzI4YWJjNmVlNGFmZDE2NzVkMTMxMzk1
YjUxYWMyM2Q2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBA
IC0yNjcsNiArMjY3LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFy
ZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OkZldGNoSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzJywKKyAgICAgICAgJ1dlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXIn
LAogICAgICAgICAnV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcicsCiAgICAgICAg
ICdXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENvbnRleHRJZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5ZmNiZjgxMDUyNDJiNmYyODc0
OGY5ODA2NWViNDAwMzVjYzI0ZGJkLi5hZDliYjEwNzRlODFkMDFiY2U0ZWM3MzQwNDZkZTlhOTRj
YWRkMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTQyOSw2ICs0MjksMTIgQEAKIAkJMUQwMzY5QUMyNTY3OTY5OTAwNDQwMzcyIC8q
IFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMDM2OUFBMjU2Nzk0M0MwMDQ0MDM3MiAv
KiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFEMDM2
OUFEMjU2Nzk2QUIwMDQ0MDM3MiAvKiBSZW1vdGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQw
MzY5QTUyNTY3OTQzQjAwNDQwMzcyIC8qIFJlbW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CiAJCTFEMDM2OUFFMjU2Nzk2QjkwMDQ0MDM3MiAvKiBSZW1vdGVBdWRp
b1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUQwMzY5QTIyNTY3OTQzQjAwNDQwMzcyIC8qIFJlbW90ZUF1
ZGlvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTFENDc2NTdCMjVDQjNB
RjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkYuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0NzY1NzkyNUNCM0FGNjAwN0FGMzEyIC8q
IFJlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAgKi87IH07CisJCTFENDc2NTg2MjVDQ0E0MTYwMDdB
RjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0NzY1ODQyNUNDQTQxNjAwN0FGMzEyIC8qIFJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmggKi87IH07CisJCTFENDc2NTg3MjVDQ0E0MTYwMDdB
RjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDQ3NjU4NTI1Q0NBNDE2MDA3QUYzMTIgLyog
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuY3BwICovOyB9OworCQkxRDQ3NjU5MjI1Q0NDRTkz
MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0NzY1OEYy
NUNDQ0U5MjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKKwkJMUQ0NzY1OTMyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFENDc2NTkwMjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURl
Y29kZXJBVkZQcm94eU1lc3NhZ2VzLmggKi87IH07CisJCTFENDc2NTk0MjVDQ0NFOTMwMDdBRjMx
MiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0NzY1OTEyNUNDQ0U5MzAw
N0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi87
IH07CiAJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkxRDRENzM3MTIzQTlFNTYy
MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkMyM0E5REY2MDAw
NzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJ
MUQ0RDczNzYyM0E5RUQxODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKQEAgLTI5NzEsNiArMjk3NywxNCBAQAogCQkxRDMy
RjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEM0FCMDREMjNBQjAwNzIwMDVDMUZGMCAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3Vy
Y2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzQUIwNEUyM0FCMDA5
QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFENDc2NTc4MjVDQjNBRjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJB
VkYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFENDc2NTc5MjVDQjNBRjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFn
ZURlY29kZXJBVkYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0NzY1ODQyNUNDQTQxNjAwN0FG
MzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZUltYWdlRGVjb2RlckFWRlByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFE
NDc2NTg1MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENDc2NThDMjVDQ0E2OTgwMDdBRjMxMiAvKiBSZW1v
dGVJbWFnZURlY29kZXJBVkZQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVJbWFnZURlY29k
ZXJBVkZQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0
NzY1OEYyNUNDQ0U5MjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90
ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDQ3NjU5MDI1Q0ND
RTkzMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1l
c3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
KwkJMUQ0NzY1OTEyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90
ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmg7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFENEQ3MzZCMjNBOURGNTUw
MDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQkxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQkxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBs
aWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMjk4Myw3ICsyOTk3LDcgQEAKIAkJMURBNDA4OTQy
M0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFEQTQwODlFMjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUw
MkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS1NoYXJlU2hlZXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFE
RDJBNjM2MjU1REU2NzUwMEZGN0I2RiAvKiBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcDsgcGF0aCA9IC9W
b2x1bWVzL0RhdGEvd2Via2l0L09wZW5Tb3VyY2UvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxhYnNv
bHV0ZT4iOyB9OworCQkxREQyQTYzNjI1NURFNjc1MDBGRjdCNkYgLyogTWVkaWFTb3VyY2VQcml2
YXRlUmVtb3RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERDJBNjM3MjU1REU2NzUwMEZG
N0I2RiAvKiBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFT
b3VyY2VQcml2YXRlUmVtb3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERDJB
NjM5MjU1REU2RDEwMEZGN0I2RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUREMkE2M0EyNTVERTZEMTAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZh
dGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTgxLDYgKzU5OTUsOCBAQAog
CQkJCUNEQUMyMEJEMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24u
aCAqLywKIAkJCQlDRDQ2NjE3RjI0MDEwNDU4MDA0N0NBMzUgLyogUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uLm1lc3NhZ2VzLmluICovLAogCQkJCUNEQUMyMEJDMjNGQzJGNzQwMDIxREVFMyAvKiBS
ZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25JZGVudGlmaWVyLmggKi8sCisJCQkJMUQ0NzY1NzkyNUNC
M0FGNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAgKi8sCisJCQkJMUQ0NzY1
NzgyNUNCM0FGNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRi5oICovLAogCQkJCUNE
RTU1NEVCMjQwNTgxODMwMDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE0uY3BwICovLAogCQkJCUNE
RTU1NEVBMjQwNTgxODMwMDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE0uaCAqLywKIAkJCQlDREU1
NTRFMzI0MDU4MTE0MDA4QTNEREIgLyogUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5jcHAgKi8sCkBA
IC02MDQ2LDYgKzYwNjIsOSBAQAogCQkJCUNEQUMyMDgzMjNGQjIxMzQwMDIxREVFMyAvKiBSZW1v
dGVDRE1Qcm94eS5jcHAgKi8sCiAJCQkJQ0RBQzIwODIyM0ZCMjEzNDAwMjFERUUzIC8qIFJlbW90
ZUNETVByb3h5LmggKi8sCiAJCQkJQ0RBQzIwODYyM0ZCMjE1ODAwMjFERUUzIC8qIFJlbW90ZUNE
TVByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTFENDc2NTg1MjVDQ0E0MTYwMDdBRjMxMiAvKiBS
ZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAgKi8sCisJCQkJMUQ0NzY1ODQyNUNDQTQxNjAw
N0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmggKi8sCisJCQkJMUQ0NzY1OEMy
NUNDQTY5ODAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5Lm1lc3NhZ2VzLmlu
ICovLAogCQkJCUNERTU1NTFEMjQwNUEzQjcwMDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE1GYWN0
b3J5UHJveHkuY3BwICovLAogCQkJCUNERTU1NTFDMjQwNUEzQjcwMDhBM0REQiAvKiBSZW1vdGVM
ZWdhY3lDRE1GYWN0b3J5UHJveHkuaCAqLywKIAkJCQlDREU1NTUxQjI0MDVBM0I3MDA4QTNEREIg
LyogUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5Lm1lc3NhZ2VzLmluICovLApAQCAtMTA4MDQs
NiArMTA4MjMsOSBAQAogCQkJCUNEQUMyMEVGMjNGQzM4MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0RBQzIwRjQyM0ZDMzgzQTAwMjFERUUz
IC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDREFDMjBGMDIzRkMzODM5MDAy
MURFRTMgLyogUmVtb3RlQ0RNUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQkxRDQ3NjU4
RjI1Q0NDRTkyMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAorCQkJCTFENDc2NTkwMjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFn
ZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJMUQ0NzY1OTEyNUNDQ0U5MzAwN0FG
MzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJ
CQkJMEZGMjRBMkIxODc5RTRCQzAwM0FCRjBDIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTBGRjI0QTJDMTg3OUU0QkMwMDNBQkYw
QyAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlD
REU1NTUyOTI0MDZCODk2MDA4QTNEREIgLyogUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTExODY2LDYgKzExODg4LDkgQEAKIAkJCQlDREFDMjBC
NDIzRkI1OEYyMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RBQzIwQ0EyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vz
c2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQzkyM0ZDMkY3NTAwMjFERUUzIC8qIFJl
bW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFE
NDc2NTg2MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMUQ0NzY1OTMyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFENDc2NTk0MjVD
Q0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzUmVwbGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0N0I1NkQxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90
ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRERGNzMxNTE4RTk1MDYw
MDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUIxNkFFQTE2NEIzQTg4MDAyOTBENjIgLyogUmVtb3RlTGF5ZXJUcmVlQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzc1Myw2ICsxMzc3OCw5IEBACiAJCQkJQ0Q0NjYx
ODMyNDAxMEE2NzAwNDdDQTM1IC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREFDMjBGOTIzRkM3MjZDMDAyMURFRTMgLyog
UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0RBQzIwRkEyM0ZDNzI2QzAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFENDc2NTdCMjVDQjNBRjYwMDdB
RjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkYuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQ0
NzY1ODcyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFENDc2NTkyMjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFn
ZURlY29kZXJBVkZQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RDcyQTFGQTIxMkJGNDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0g
aW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0g
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTc0YjFk
NDViYmY0OTM0ZTZkY2MwZWQzNDdhNjdlNDRjMzI3NzdiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuY3Bw
CkBAIC0wLDAgKzEsMTg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRi5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlv
bi5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0ltYWdlVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0
cnkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlZlB0
cjxSZW1vdGVJbWFnZURlY29kZXJBVkY+IFJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y3JlYXRlKFdl
YlByb2Nlc3MmIHdlYlByb2Nlc3MsIFNoYXJlZEJ1ZmZlciYgZGF0YSwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgQWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0
aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQoreworICAgIGF1dG8mIGdwdVByb2Nlc3ND
b25uZWN0aW9uID0gd2ViUHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOworICAg
IE9wdGlvbmFsPEltYWdlRGVjb2RlcklkZW50aWZpZXI+IGltYWdlRGVjb2RlcklkZW50aWZpZXI7
CisgICAgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2UgeyBkYXRh
IH07CisgICAgaWYgKCFncHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFN5bmMo
TWVzc2FnZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpDcmVhdGVEZWNvZGVyKGRhdGFS
ZWZlcmVuY2UsIG1pbWVUeXBlKSwgTWVzc2FnZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
OjpDcmVhdGVEZWNvZGVyOjpSZXBseShpbWFnZURlY29kZXJJZGVudGlmaWVyKSwgMCkpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFpbWFnZURlY29kZXJJZGVudGlmaWVyKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90
ZUltYWdlRGVjb2RlckFWRihncHVQcm9jZXNzQ29ubmVjdGlvbiwgKmltYWdlRGVjb2RlcklkZW50
aWZpZXIsIGRhdGEsIG1pbWVUeXBlLCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24pKTsKK30KKworUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29kZXJB
VkYoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBJbWFnZURlY29k
ZXJJZGVudGlmaWVyIGltYWdlRGVjb2RlcklkZW50aWZpZXIsIFNoYXJlZEJ1ZmZlciYsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIEFscGhhT3B0aW9uLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlv
bikKKyAgICA6IEltYWdlRGVjb2RlcigpCisgICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdw
dVByb2Nlc3NDb25uZWN0aW9uKQorICAgICwgbV9pZGVudGlmaWVyKGltYWdlRGVjb2RlcklkZW50
aWZpZXIpCisgICAgLCBtX21pbWVUeXBlKG1pbWVUeXBlKQorICAgICwgbV91dGkoV2ViQ29yZTo6
VVRJRnJvbU1JTUVUeXBlKG1pbWVUeXBlKSkKK3sKK30KKworYm9vbCBSZW1vdGVJbWFnZURlY29k
ZXJBVkY6OmNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK3sKKyAgICAvLyBU
T0RPOiBXZSBtYXkgbmVlZCB0byByZW1vdmUgQVZBc3NldE1JTUVUeXBlQ2FjaGUgaW4gdGhlIFdl
YiBwcm9jZXNzCisgICAgcmV0dXJuIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5j
YW5EZWNvZGVUeXBlKG1pbWVUeXBlKSAhPSBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6
OklzTm90U3VwcG9ydGVkOworfQorCitib29sIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6c3VwcG9y
dHNNZWRpYVR5cGUoTWVkaWFUeXBlIHR5cGUpCit7CisgICAgLy8gVE9ETzogV2UgbWF5IG5lZWQg
dG8gcmVtb3ZlIEFWQXNzZXRNSU1FVHlwZUNhY2hlIGluIHRoZSBXZWIgcHJvY2VzcworICAgIHJl
dHVybiB0eXBlID09IE1lZGlhVHlwZTo6VmlkZW8gJiYgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNp
bmdsZXRvbigpLmlzQXZhaWxhYmxlKCk7Cit9CisKK0VuY29kZWREYXRhU3RhdHVzIFJlbW90ZUlt
YWdlRGVjb2RlckFWRjo6ZW5jb2RlZERhdGFTdGF0dXMoKSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIEVuY29kZWREYXRhU3RhdHVzOjpVbmtub3duOworfQorCit2
b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6c2V0RW5jb2RlZERhdGFTdGF0dXNDaGFuZ2VDYWxs
YmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoRW5jb2RlZERhdGFTdGF0dXMpPiYmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK0ludFNpemUgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpzaXpl
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRTaXplKCk7
Cit9CisKK3NpemVfdCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lQ291bnQoKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlcGV0aXRpb25D
b3VudCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OnJlcGV0aXRpb25Db3VudCgpIGNvbnN0Cit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gUmVwZXRpdGlvbkNvdW50Tm9uZTsKK30K
KworU3RyaW5nIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6dXRpKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV91dGk7Cit9CisKK1N0cmluZyBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZpbGVuYW1lRXh0
ZW5zaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gTUlNRVR5cGVSZWdpc3RyeTo6cHJlZmVycmVk
RXh0ZW5zaW9uRm9yTUlNRVR5cGUobV9taW1lVHlwZSk7Cit9CisKK0ludFNpemUgUmVtb3RlSW1h
Z2VEZWNvZGVyQVZGOjpmcmFtZVNpemVBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gc2l6ZSgpOworfQorCitib29sIFJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXplX3QpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0ltYWdlRGVjb2Rlcjo6RnJhbWVN
ZXRhZGF0YSBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lTWV0YWRhdGFBdEluZGV4KHNpemVf
dCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9OworfQorCitTZWNvbmRzIFJlbW90ZUltYWdlRGVj
b2RlckFWRjo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90KSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKworYm9vbCBSZW1vdGVJbWFnZURlY29k
ZXJBVkY6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBSZW1vdGVJbWFnZURlY29k
ZXJBVkY6OmZyYW1lQWxsb3dTdWJzYW1wbGluZ0F0SW5kZXgoc2l6ZV90KSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit1bnNpZ25lZCBSZW1v
dGVJbWFnZURlY29kZXJBVkY6OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdM
ZXZlbCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQor
CitQbGF0Zm9ybUltYWdlUHRyIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y3JlYXRlRnJhbWVJbWFn
ZUF0SW5kZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsLCBjb25zdCBEZWNvZGluZ09wdGlvbnMm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3Zv
aWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpzZXRFeHBlY3RlZENvbnRlbnRTaXplKGxvbmcgbG9u
ZykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6c2V0RGF0YShTaGFyZWRCdWZmZXImIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQor
eworICAgIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlIHsgZGF0
YSB9OworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpTZXREYXRhKG1faWRlbnRpZmllciwgZGF0
YVJlZmVyZW5jZSwgYWxsRGF0YVJlY2VpdmVkKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGOjpjbGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6ZV90KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43YjdkYzEzOGRiNjA3YmM5Y2VjOGI3MmZhNmVhYjdiNDU2NDllNGU4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29k
ZXJBVkYuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEhBVkUoQVZBU1NFVFJFQURFUikKKworI2luY2x1ZGUg
PFdlYkNvcmUvSW1hZ2VEZWNvZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXJJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVQcm9jZXNzQ29u
bmVjdGlvbjsKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIFJlbW90ZUltYWdlRGVjb2RlckFW
RiA6IHB1YmxpYyBXZWJDb3JlOjpJbWFnZURlY29kZXIgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWZQdHI8UmVtb3RlSW1hZ2VEZWNvZGVyQVZGPiBjcmVhdGUoV2ViUHJvY2VzcyYsIFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdlYkNvcmU6OkFscGhhT3B0
aW9uLCBXZWJDb3JlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CisgICAgdmlydHVhbCB+
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGKCkgPSBkZWZhdWx0OworCisgICAgc3RhdGljIGJvb2wgY2Fu
RGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKKyAgICBzdGF0aWMgYm9vbCBzdXBw
b3J0c01lZGlhVHlwZShNZWRpYVR5cGUpOworICAgIC8vIHN0YXRpYyBib29sIHN1cHBvcnRzQ29u
dGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICAKKyAgICBzaXplX3QgYnl0ZXNEZWNvZGVk
VG9EZXRlcm1pbmVQcm9wZXJ0aWVzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorCisg
ICAgV2ViQ29yZTo6RW5jb2RlZERhdGFTdGF0dXMgZW5jb2RlZERhdGFTdGF0dXMoKSBjb25zdCBm
aW5hbDsKKyAgICB2b2lkIHNldEVuY29kZWREYXRhU3RhdHVzQ2hhbmdlQ2FsbGJhY2soV1RGOjpG
dW5jdGlvbjx2b2lkKFdlYkNvcmU6OkVuY29kZWREYXRhU3RhdHVzKT4mJikgZmluYWw7CisgICAg
V2ViQ29yZTo6SW50U2l6ZSBzaXplKCkgY29uc3QgZmluYWw7CisgICAgc2l6ZV90IGZyYW1lQ291
bnQoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpSZXBldGl0aW9uQ291bnQgcmVwZXRpdGlv
bkNvdW50KCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIHV0aSgpIGNvbnN0IGZpbmFsOworICAg
IFN0cmluZyBmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0IGZpbmFsOworICAgIE9wdGlvbmFsPFdl
YkNvcmU6OkludFBvaW50PiBob3RTcG90KCkgY29uc3QgZmluYWwgeyByZXR1cm4gV1RGOjpudWxs
b3B0OyB9CisKKyAgICBXZWJDb3JlOjpJbnRTaXplIGZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90LCBX
ZWJDb3JlOjpTdWJzYW1wbGluZ0xldmVsID0gV2ViQ29yZTo6U3Vic2FtcGxpbmdMZXZlbDo6RGVm
YXVsdCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVf
dCkgY29uc3QgZmluYWw7CisgICAgRnJhbWVNZXRhZGF0YSBmcmFtZU1ldGFkYXRhQXRJbmRleChz
aXplX3QpIGNvbnN0IGZpbmFsOworCisgICAgU2Vjb25kcyBmcmFtZUR1cmF0aW9uQXRJbmRleChz
aXplX3QpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90
KSBjb25zdCBmaW5hbDsKKyAgICBib29sIGZyYW1lQWxsb3dTdWJzYW1wbGluZ0F0SW5kZXgoc2l6
ZV90KSBjb25zdCBmaW5hbDsKKyAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQXRJbmRleChzaXplX3Qs
IFdlYkNvcmU6OlN1YnNhbXBsaW5nTGV2ZWwgPSBXZWJDb3JlOjpTdWJzYW1wbGluZ0xldmVsOjpE
ZWZhdWx0KSBjb25zdCBmaW5hbDsKKworICAgIFdlYkNvcmU6OlBsYXRmb3JtSW1hZ2VQdHIgY3Jl
YXRlRnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90LCBXZWJDb3JlOjpTdWJzYW1wbGluZ0xldmVsID0g
V2ViQ29yZTo6U3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCwgY29uc3QgV2ViQ29yZTo6RGVjb2Rp
bmdPcHRpb25zJiA9IFdlYkNvcmU6OkRlY29kaW5nT3B0aW9ucyhXZWJDb3JlOjpEZWNvZGluZ01v
ZGU6OlN5bmNocm9ub3VzKSkgZmluYWw7CisKKyAgICB2b2lkIHNldEV4cGVjdGVkQ29udGVudFNp
emUobG9uZyBsb25nKSBmaW5hbDsKKyAgICB2b2lkIHNldERhdGEoV2ViQ29yZTo6U2hhcmVkQnVm
ZmVyJiwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpIGZpbmFsOworICAgIGJvb2wgaXNBbGxEYXRhUmVj
ZWl2ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzQWxsRGF0YVJlY2VpdmVkOyB9CisgICAg
dm9pZCBjbGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6ZV90KSBmaW5hbDsKKworcHJpdmF0ZToKKyAg
ICBSZW1vdGVJbWFnZURlY29kZXJBVkYoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mLCBXZWJDb3JlOjpJ
bWFnZURlY29kZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBXZWJDb3JlOjpBbHBoYU9wdGlvbiwgV2ViQ29yZTo6R2FtbWFBbmRDb2xv
clByb2ZpbGVPcHRpb24pOworCisgICAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIG1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb247CisgICAgV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciBtX2lkZW50
aWZpZXI7CisKKyAgICBTdHJpbmcgbV9taW1lVHlwZTsKKyAgICBTdHJpbmcgbV91dGk7CisgICAg
Ym9vbCBtX2lzQWxsRGF0YVJlY2VpdmVkIHsgZmFsc2UgfTsKK307CisKK30KKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDMzY2E4ZTczYjZlZDA1NWI0
ODJiN2YxMDExYTFmNWQ4OTgyMjZlZDMuLmRkNTAzZjI0YzhhY2FjYTgzOTc4MzIyYjEwMzIxMzMz
OWNjZWRmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTEw
Nyw2ICsxMDcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR0NDb250cm9sbGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9HbHlwaFBhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1l
bnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRGVjb2Rlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSlNET01XaW5kb3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Lmg+
CkBAIC0xOTgsNiArMTk5LDEwIEBACiAjaW5jbHVkZSAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3IuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNT
RVRSRUFERVIpCisjaW5jbHVkZSAiUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmgiCisjZW5kaWYKKwog
I2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPFdlYkNvcmUvVlA5VXRpbGl0aWVzQ29jb2Eu
aD4KICNlbmRpZgpAQCAtMTkzOCw3ICsxOTQzLDIxIEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0VXNl
R1BVUHJvY2Vzc0Zvck1lZGlhKGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhKQogICAgIGVsc2UK
ICAgICAgICAgTGVnYWN5Q0RNOjpyZXNldEZhY3RvcmllcygpOwogI2VuZGlmCi0gICAgCisKKyNp
ZiBIQVZFKEFWQVNTRVRSRUFERVIpCisgICAgaWYgKHVzZUdQVVByb2Nlc3NGb3JNZWRpYSkgewor
ICAgICAgICBJbWFnZURlY29kZXI6OmNsZWFyRmFjdG9yaWVzKCk7CisgICAgICAgIEltYWdlRGVj
b2Rlcjo6aW5zdGFsbEZhY3RvcnkoeworICAgICAgICAgICAgUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
OjpzdXBwb3J0c01lZGlhVHlwZSwKKyAgICAgICAgICAgIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6
Y2FuRGVjb2RlVHlwZSwKKyAgICAgICAgICAgIFtdKFNoYXJlZEJ1ZmZlciYgZGF0YSwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgQWxwaGFPcHRpb24gYWxwaGFPcHRpb24sIEdhbW1hQW5kQ29sb3JQ
cm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKSB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y3JlYXRlKFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLCBkYXRhLCBtaW1lVHlwZSwgYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxl
T3B0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfSBlbHNlCisgICAgICAg
IEltYWdlRGVjb2Rlcjo6cmVzZXRGYWN0b3JpZXMoKTsKKyNlbmRpZgorCiAgICAgaWYgKHVzZUdQ
VVByb2Nlc3NGb3JNZWRpYSkKICAgICAgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5t
ZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5KCkucmVnaXN0ZXJGYWN0b3J5KCk7CiAgICAg
ZWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419428</attachid>
            <date>2021-02-05 10:29:24 -0800</date>
            <delta_ts>2021-02-05 13:10:40 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-221317-20210205102923.patch</filename>
            <type>text/plain</type>
            <size>61104</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFkMmQ0ZjgwZWM2ZDU0
NTFiM2M4MzJmZjg1OWEwZmY2OWRjMTNhNi4uNzFiNjI5MGFlMmU4N2UxZGYzNTFhMGVjMzY2Yjhl
OWFkMTA0MzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAyLTAzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIFJ1biBJbWFnZURl
Y29kZXJBVkZPYmpDIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZhY3Rvcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXI6
Omluc3RhbGxGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2Rlcjo6Y2xlYXJG
YWN0b3JpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpzdXBwb3J0c01lZGlhVHlwZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmg6CisKIDIwMjEtMDItMDMgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgYW4gYW5j
ZXN0b3Igd2FsayBpbiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlV2lsbFZhbGlkYXRl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZGQwZWYwNTJlZTU2OGNkMGYxOGE5YjRmYzBiZmQ4N2JhZmI0ZGVlYy4u
NTYzZTZhODQzNGYyZjc4MmI0ZjAzZjA5YzU2ODdkNmQwNDRlZjIyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMS0wMi0wMyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtHUFVQXSBSdW4gSW1hZ2VEZWNvZGVyQVZGT2JqQyBpbiB0aGUgR1BVIFByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTMx
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29kZXJBVkYpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNhbkRlY29kZVR5cGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OnN1cHBvcnRzTWVkaWFUeXBlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjplbmNvZGVkRGF0YVN0YXR1cyBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6c2V0RW5jb2RlZERh
dGFTdGF0dXNDaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVj
b2RlckFWRjo6c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6ZnJhbWVDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVj
b2RlckFWRjo6cmVwZXRpdGlvbkNvdW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjp1dGkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZURlY29kZXJBVkY6OmZpbGVuYW1lRXh0ZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZVNpemVBdEluZGV4IGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4IGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZU1ldGFk
YXRhQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFW
Rjo6ZnJhbWVEdXJhdGlvbkF0SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJ
bWFnZURlY29kZXJBVkY6OmZyYW1lSGFzQWxwaGFBdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUFsbG93U3Vic2FtcGxpbmdBdEluZGV4
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUJ5
dGVzQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFW
Rjo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZURlY29kZXJBVkY6OnNldEV4cGVjdGVkQ29udGVudFNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVJbWFnZURlY29kZXJBVkY6OnNldERhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJ
bWFnZURlY29kZXJBVkY6OmNsZWFyRnJhbWVCdWZmZXJDYWNoZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNldFVzZUdQVVByb2Nlc3NGb3JNZWRpYSk6CisKIDIwMjEtMDItMDMgIFRpbW90aHkg
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBG
QUlMRUQ6ICFzaXplLmlzRW1wdHkoKSB1bmRlciBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMjNkY2JmZWQxNzUwYTNmZjVkNjY4MDNkY2JmYjY1YjIyZmVkZTBjMS4uZGRjZDFiMzYw
OWQ2NGM5NTk0YTEzODVlY2JhMmY3OTUzNDlhZTgwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMyLDYgKzYzMiw3IEBACiAJ
CTFEMkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0Ey
MzNDM0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUx
RDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBF
RTIyOEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5
OTNCNjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1
cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkxRDQ3NjU4RTI1Q0NBNzc4MDA3QUYzMTIgLyogSW1hZ2VEZWNvZGVySWRl
bnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUQ0NzY1OEQyNUNDQTc3ODAwN0FGMzEyIC8qIEltYWdlRGVjb2RlcklkZW50aWZpZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDlGMEZDMTIx
MjIwMjlCMDA1RDhGRDQgLyogU2hhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxREM1NTQwMDIxMUJBOEM4MDA0Qjc4MEUgLyogU2hhcmVEYXRh
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURB
QjMxMTIyNTFENkJGMzAwRkM5NDg1IC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEIzMUExMjM3OURDODMw
MDg4M0ZERSAvKiBXZWJWaWRlb0NvbnRhaW5lckxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURBQjMxMTQyNTFENzI1QzAwRkM5NDg1IC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDIx
OSw4ICs0MjIwLDggQEAKIAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxs
U2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDE3
QTQ1RDIxMzc0MDgxMDA3OUVDN0IgLyogVW5pZmllZFNvdXJjZTYyLW1tLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxN0E0NTkyMTM3NDAxNjAwNzlF
QzdCIC8qIFVuaWZpZWRTb3VyY2U2Mi1tbS5tbSAqLzsgfTsKIAkJQ0QxOUEyNjgxQTEzRTcwMDAw
OEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2NzFBMTNFNzAwMDA4RDY1MEUgLyogRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQlDRDE5RkVBODFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVB
NjFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggKi87IH07Ci0JCUNEMTlGRUFFMUY1
NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVBQzFGNTc0QjZEMDAwQzQyRkIgLyog
SW1hZ2VEZWNvZGVyQVZGT2JqQy5oICovOyB9OworCQlDRDE5RkVBODFGNTczOTcyMDAwQzQyRkIg
LyogSW1hZ2VEZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDE5RkVBNjFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QxOUZFQUUxRjU3
NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlGRUFDMUY1NzRCNkQwMDBDNDJGQiAvKiBJ
bWFnZURlY29kZXJBVkZPYmpDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0QxOUZFQUYxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFW
Rk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDE5RkVBRDFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbSAqLzsgfTsK
IAkJQ0QyMjVDMEIxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDIyNUMwOTFDNDZG
QkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLzsgfTsKIAkJQ0QyMjVDMEMx
QzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1QzBBMUM0NkZCRjQwMDE0MDc2MSAv
KiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTY4ODgsNiArNjg4OSw3IEBACiAJCTFEMDAyNkE4MjM3NEY5RDkw
MENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50
ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFEMkM4MkI2MjM2QTNGNkEwMDU1RDZDNSAvKiBQaWN0dXJlSW5QaWN0
dXJlU3VwcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDQ3NjU4RDI1Q0NBNzc4MDA3QUYzMTIgLyog
SW1hZ2VEZWNvZGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZURlY29kZXJJZGVu
dGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQUIzMTEzMjUxRDcyNUMw
MEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVy
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREI2NkQzNzI1MzY3OEVB
MDBCNjcxQjkgLyogQXVkaW9PdXRwdXRVbml0QWRhcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRp
b091dHB1dFVuaXRBZGFwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQjY2
RDM4MjUzNjc4RUEwMEI2NzFCOSAvKiBBdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjY2NzEsNiArMjY2NzMsNyBAQAogCQkJCUIyQTEwQzkxMEIzODE4QkQw
MDA5OUFBNCAvKiBJbWFnZUJ1ZmZlclBpcGUuaCAqLywKIAkJCQlDRDE5RkVBNzFGNTczOTcyMDAw
QzQyRkIgLyogSW1hZ2VEZWNvZGVyLmNwcCAqLywKIAkJCQlDRDE5RkVBNjFGNTczOTcyMDAwQzQy
RkIgLyogSW1hZ2VEZWNvZGVyLmggKi8sCisJCQkJMUQ0NzY1OEQyNUNDQTc3ODAwN0FGMzEyIC8q
IEltYWdlRGVjb2RlcklkZW50aWZpZXIuaCAqLywKIAkJCQk1NTc2QTU2MjFEODhBNzA4MDBDQ0Mw
NEMgLyogSW1hZ2VGcmFtZS5jcHAgKi8sCiAJCQkJNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8q
IEltYWdlRnJhbWUuaCAqLywKIAkJCQlCQzdGNDRBNzBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VP
YnNlcnZlci5oICovLApAQCAtMzI1MjcsNiArMzI1MzAsNyBAQAogCQkJCUNEMTlGRUE4MUY1NzM5
NzIwMDBDNDJGQiAvKiBJbWFnZURlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMTlGRUFF
MUY1NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NTVCODdFRDFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFENDc2NThFMjVDQ0E3NzgwMDdBRjMxMiAvKiBJbWFnZURlY29kZXJJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzIwNUFCNjEyMzkyOTEwMDBCMTczODAgLyog
SW1hZ2VEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ4QjdENTMyNUMzNDFFNjAwOUU3
NUREIC8qIEltYWdlRXh0cmFjdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU3NkE1
NjUxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5jcHAKaW5kZXgg
ODY4ZWQ4NzgwNmQyOTAxMGI1MTkyMjAxNjQxMTQ0NWU2ZmZmYmFkZS4uMDg2OWU5OWEwMDg4NmY3
Y2QxMjE4NmZlMzE2MWRlMDQ3ZmE1MTM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyLmgiCiAKKyNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KKwogI2lmIFVTRShDRykKICNpbmNsdWRlICJJbWFnZURlY29kZXJD
Ry5oIgogI2VsaWYgVVNFKERJUkVDVDJEKQpAQCAtNDQsMTMgKzQ2LDU4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVB
REVSKQordXNpbmcgRmFjdG9yeVZlY3RvciA9IFZlY3RvcjxJbWFnZURlY29kZXI6OkltYWdlRGVj
b2RlckZhY3Rvcnk+OworCitzdGF0aWMgdm9pZCBwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKEZh
Y3RvcnlWZWN0b3ImIGZhY3RvcmllcykKK3sKKyAgICBmYWN0b3JpZXMuYXBwZW5kKHsgSW1hZ2VE
ZWNvZGVyQVZGT2JqQzo6c3VwcG9ydHNNZWRpYVR5cGUsIEltYWdlRGVjb2RlckFWRk9iakM6OmNh
bkRlY29kZVR5cGUsIEltYWdlRGVjb2RlckFWRk9iakM6OmNyZWF0ZSB9KTsKK30KKworc3RhdGlj
IEZhY3RvcnlWZWN0b3ImIGluc3RhbGxlZEZhY3RvcmllcygpCit7CisgICAgc3RhdGljIGF1dG8g
ZmFjdG9yaWVzID0gbWFrZU5ldmVyRGVzdHJveWVkPEZhY3RvcnlWZWN0b3I+KHsgfSk7CisgICAg
c3RhdGljIHN0ZDo6b25jZV9mbGFnIHJlZ2lzdGVyRGVmYXVsdHM7CisgICAgc3RkOjpjYWxsX29u
Y2UocmVnaXN0ZXJEZWZhdWx0cywgWyZdIHsKKyAgICAgICAgcGxhdGZvcm1SZWdpc3RlckZhY3Rv
cmllcyhmYWN0b3JpZXMpOworICAgIH0pOworCisgICAgcmV0dXJuIGZhY3RvcmllczsKK30KKwor
dm9pZCBJbWFnZURlY29kZXI6Omluc3RhbGxGYWN0b3J5KEltYWdlRGVjb2Rlcjo6SW1hZ2VEZWNv
ZGVyRmFjdG9yeSYmIGZhY3RvcnkpCit7CisgICAgaW5zdGFsbGVkRmFjdG9yaWVzKCkuYXBwZW5k
KFdURk1vdmUoZmFjdG9yeSkpOworfQorCit2b2lkIEltYWdlRGVjb2Rlcjo6cmVzZXRGYWN0b3Jp
ZXMoKQoreworICAgIGluc3RhbGxlZEZhY3RvcmllcygpLmNsZWFyKCk7CisgICAgcGxhdGZvcm1S
ZWdpc3RlckZhY3RvcmllcyhpbnN0YWxsZWRGYWN0b3JpZXMoKSk7Cit9CisKK3ZvaWQgSW1hZ2VE
ZWNvZGVyOjpjbGVhckZhY3RvcmllcygpCit7CisgICAgaW5zdGFsbGVkRmFjdG9yaWVzKCkuY2xl
YXIoKTsKK30KKyNlbmRpZgorCiBSZWZQdHI8SW1hZ2VEZWNvZGVyPiBJbWFnZURlY29kZXI6OmNy
ZWF0ZShTaGFyZWRCdWZmZXImIGRhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIEFscGhhT3B0
aW9uIGFscGhhT3B0aW9uLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9y
UHJvZmlsZU9wdGlvbikKIHsKICAgICBVTlVTRURfUEFSQU0obWltZVR5cGUpOwogCiAjaWYgSEFW
RShBVkFTU0VUUkVBREVSKQotICAgIGlmICghSW1hZ2VEZWNvZGVyQ0c6OmNhbkRlY29kZVR5cGUo
bWltZVR5cGUpICYmIEltYWdlRGVjb2RlckFWRk9iakM6OmNhbkRlY29kZVR5cGUobWltZVR5cGUp
KQotICAgICAgICByZXR1cm4gSW1hZ2VEZWNvZGVyQVZGT2JqQzo6Y3JlYXRlKGRhdGEsIG1pbWVU
eXBlLCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pOworICAgIGlmICgh
SW1hZ2VEZWNvZGVyQ0c6OmNhbkRlY29kZVR5cGUobWltZVR5cGUpKSB7CisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorICAgICAgICBmb3IgKGF1dG8mIGZhY3RvcnkgOiBpbnN0YWxsZWRGYWN0b3Jp
ZXMoKSkgeworICAgICAgICAgICAgaWYgKGZhY3RvcnkuY2FuRGVjb2RlVHlwZShtaW1lVHlwZSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhY3RvcnkuY3JlYXRlSW1hZ2VEZWNvZGVyKGRhdGEs
IG1pbWVUeXBlLCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pOworICAg
ICAgICB9CisjZWxzZQorICAgICAgICBpZiAoSW1hZ2VEZWNvZGVyQVZGT2JqQzo6Y2FuRGVjb2Rl
VHlwZShtaW1lVHlwZSkpCisgICAgICAgICAgICByZXR1cm4gSW1hZ2VEZWNvZGVyQVZGT2JqQzo6
Y3JlYXRlKGRhdGEsIG1pbWVUeXBlLCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24pOworI2VuZGlmCisgICAgfQogI2VuZGlmCiAKICNpZiBVU0UoR1NUUkVBTUVSKSAmJiBF
TkFCTEUoVklERU8pCkBAIC04MSw5ICsxMjgsMTYgQEAgYm9vbCBJbWFnZURlY29kZXI6OnN1cHBv
cnRzTWVkaWFUeXBlKE1lZGlhVHlwZSB0eXBlKQogI2VuZGlmCiAKICNpZiBIQVZFKEFWQVNTRVRS
RUFERVIpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGZvciAoYXV0byYgZmFjdG9yeSA6
IGluc3RhbGxlZEZhY3RvcmllcygpKSB7CisgICAgICAgIGlmIChmYWN0b3J5LnN1cHBvcnRzTWVk
aWFUeXBlKHR5cGUpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2Vsc2UKICAg
ICBpZiAoSW1hZ2VEZWNvZGVyQVZGT2JqQzo6c3VwcG9ydHNNZWRpYVR5cGUodHlwZSkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogI2VuZGlmCisjZW5kaWYKIAogI2lmIFVTRShHU1RSRUFNRVIpICYm
IEVOQUJMRShWSURFTykKICAgICBpZiAoSW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpzdXBwb3J0c01l
ZGlhVHlwZSh0eXBlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlRGVjb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VEZWNvZGVyLmgKaW5kZXggODY3MGQxNTI0Y2VhMjE0YmRlNzlkZDY3ZGRjMmMxM2NiNDE5ZGJh
OS4uOTRhOTY4YWYzMTU0ZGVhMmNiMWE0ZmU2ZjkxODhlOTlhMTk2MjViYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmgKQEAgLTU4LDYgKzU4
LDIyIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzTWVkaWFUeXBlKE1lZGlh
VHlwZSk7CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgdXNpbmcgU3VwcG9ydHNNZWRp
YVR5cGVGdW5jID0gV1RGOjpGdW5jdGlvbjxib29sKE1lZGlhVHlwZSk+OworICAgIHVzaW5nIENh
bkRlY29kZVR5cGVGdW5jID0gV1RGOjpGdW5jdGlvbjxib29sKGNvbnN0IFN0cmluZyYpPjsKKyAg
ICB1c2luZyBDcmVhdGVJbWFnZURlY29kZXJGdW5jID0gV1RGOjpGdW5jdGlvbjxSZWZQdHI8SW1h
Z2VEZWNvZGVyPihTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmLCBBbHBoYU9wdGlvbiwgR2Ft
bWFBbmRDb2xvclByb2ZpbGVPcHRpb24pPjsKKworICAgIHN0cnVjdCBJbWFnZURlY29kZXJGYWN0
b3J5IHsKKyAgICAgICAgU3VwcG9ydHNNZWRpYVR5cGVGdW5jIHN1cHBvcnRzTWVkaWFUeXBlOwor
ICAgICAgICBDYW5EZWNvZGVUeXBlRnVuYyBjYW5EZWNvZGVUeXBlOworICAgICAgICBDcmVhdGVJ
bWFnZURlY29kZXJGdW5jIGNyZWF0ZUltYWdlRGVjb2RlcjsKKyAgICB9OworCisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHZvaWQgaW5zdGFsbEZhY3RvcnkoSW1hZ2VEZWNvZGVyRmFjdG9yeSYm
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZXNldEZhY3RvcmllcygpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNsZWFyRmFjdG9yaWVzKCk7CisjZW5kaWYKKwog
ICAgIHZpcnR1YWwgc2l6ZV90IGJ5dGVzRGVjb2RlZFRvRGV0ZXJtaW5lUHJvcGVydGllcygpIGNv
bnN0ID0gMDsKIAogICAgIHZpcnR1YWwgRW5jb2RlZERhdGFTdGF0dXMgZW5jb2RlZERhdGFTdGF0
dXMoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZURlY29kZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZURlY29kZXJJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA0NmFlMGM0YzIw
MjhlN2E4OThmZGRlOWI1OGQxMzMwMjY4MWMxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2RlcklkZW50aWZpZXIuaApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2Jq
ZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gSW1hZ2VEZWNv
ZGVySWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgSW1hZ2VEZWNvZGVySWRlbnRpZmllciA9IE9i
amVjdElkZW50aWZpZXI8SW1hZ2VEZWNvZGVySWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpD
LmgKaW5kZXggM2I0NTA2NzhmYTdmMzZjMTk4YTQwYjA4N2U3NDZmMTJhNzk4Yzc4NS4uMDFiYTI4
YTU1ZDJiNjRjZTAxODQzZTA5YzMzYmI4MzMzYzFlZGY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW1hZ2VEZWNvZGVyQVZG
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMuaApAQCAtNTMsMTQgKzUzLDE0IEBAIGNsYXNzIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjsKIAogY2xhc3MgSW1hZ2VEZWNvZGVyQVZGT2JqQyA6
IHB1YmxpYyBJbWFnZURlY29kZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VE
ZWNvZGVyQVZGT2JqQz4gY3JlYXRlKFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIEFscGhhT3B0aW9uLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFJlZlB0cjxJbWFnZURlY29kZXJBVkZPYmpDPiBjcmVhdGUoU2hhcmVk
QnVmZmVyJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgQWxwaGFPcHRpb24sIEdhbW1hQW5kQ29s
b3JQcm9maWxlT3B0aW9uKTsKICAgICB2aXJ0dWFsIH5JbWFnZURlY29kZXJBVkZPYmpDKCk7CiAK
LSAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c01lZGlhVHlwZShNZWRpYVR5cGUpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBib29sIHN1cHBvcnRzTWVkaWFUeXBlKE1lZGlhVHlwZSk7CiAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYpOwogCiAgICAg
c2l6ZV90IGJ5dGVzRGVjb2RlZFRvRGV0ZXJtaW5lUHJvcGVydGllcygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIDA7IH0KLSAgICBzdGF0aWMgYm9vbCBjYW5EZWNvZGVUeXBlKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGNhbkRlY29kZVR5
cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAKICAgICBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9taW1lVHlwZTsgfQogCkBAIC04NCw4ICs4NCw4IEBAIHB1Ymxp
YzoKIAogICAgIFBsYXRmb3JtSW1hZ2VQdHIgY3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90
LCBTdWJzYW1wbGluZ0xldmVsID0gU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCwgY29uc3QgRGVj
b2RpbmdPcHRpb25zJiA9IERlY29kaW5nT3B0aW9ucyhEZWNvZGluZ01vZGU6OlN5bmNocm9ub3Vz
KSkgZmluYWw7CiAKLSAgICB2b2lkIHNldEV4cGVjdGVkQ29udGVudFNpemUobG9uZyBsb25nKSBm
aW5hbDsKLSAgICB2b2lkIHNldERhdGEoU2hhcmVkQnVmZmVyJiwgYm9vbCBhbGxEYXRhUmVjZWl2
ZWQpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RXhwZWN0ZWRDb250ZW50U2l6
ZShsb25nIGxvbmcpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGF0YShTaGFy
ZWRCdWZmZXImLCBib29sIGFsbERhdGFSZWNlaXZlZCkgZmluYWw7CiAgICAgYm9vbCBpc0FsbERh
dGFSZWNlaXZlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNBbGxEYXRhUmVjZWl2ZWQ7IH0K
ICAgICB2b2lkIGNsZWFyRnJhbWVCdWZmZXJDYWNoZShzaXplX3QpIGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMjNhZDQwNzgw
ZDM2NTdiYzg5YWE4MmIxNGNmMzc3MGEzMjZkZDQwNC4uODdjZmE3NTdiM2Y2M2VlY2U4NTE2NDA5
Y2ZlNjc0YmExNmYxNWE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdApAQCAtMzEsNiArMzEsNyBAQCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lvblByb3h5
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETVBy
b3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1Qcm94eS5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJv
eHkubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CmluZGV4IDA2NTU3NTU5NTMwODMwZDYzMmE1Njc3YjNlYmVlZDcwN2ZiZTJjOGEu
LjMwMDE0MDAxODk3NDY1OGZjNDMwY2I5YzQ1MzgzMDdhNDQwYjFiYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTg2LDYgKzE4Niw5
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMTWVzc2FnZXNSZXBsCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNz
YWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJB
VkZQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVz
c2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzdhNTA5NGIyNDJiNDBmYjkyMTBkOTAzYzNkYzhjZmEwNzJi
NDJmNS4uMTlhNDkwYzBlZGMwMDRjNDM4MWJhOGUyMTc5OTVmN2ZiMDVlMjM2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjQxLDYgKzI0MSw3IEBAIE1FU1NBR0VfUkVDRUlWRVJT
ID0gXAogCUdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIgXAogCUdQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyIFwKIAlHUFVQcm9j
ZXNzL0dQVVByb2Nlc3MgXAorCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
UHJveHkgXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNU2Vzc2lvblByb3h5IFwK
IAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eSBcCiAJR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggODI3
OGJjZTE0YzVmMWMyNGJlN2M5MDIyZDVmZDQwYjI0YzU4ZWZlZi4uMmU2OWY4ZmU4ZDcwN2ZlNDBj
MDdkYjE2ZmNhNmY0OGI4YzI5NzY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMTA2LDYgKzEwNiwxMSBA
QAogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETVNlc3Npb25Qcm94eU1lc3NhZ2VzLmgiCiAjZW5k
aWYKIAorI2lmIEhBVkUoQVZBU1NFVFJFQURFUikKKyNpbmNsdWRlICJSZW1vdGVJbWFnZURlY29k
ZXJBVkZQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2Fn
ZXMuaCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogI2luY2x1ZGUgIlJlbW90
ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90
ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eU1lc3NhZ2VzLmgiCkBAIC0yOTAs
NiArMjk1LDE2IEBAIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjphdWRpb1Nlc3Npb25Qcm94eSgpCiB9CiAjZW5kaWYKIAorI2lmIEhBVkUoQVZBU1NF
VFJFQURFUikKK1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjppbWFnZURlY29kZXJBVkZQcm94eSgpCit7CisgICAgaWYgKCFtX2ltYWdlRGVjb2Rl
ckFWRlByb3h5KQorICAgICAgICBtX2ltYWdlRGVjb2RlckFWRlByb3h5ID0gbWFrZVVuaXF1ZTxS
ZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eT4oKnRoaXMpOworCisgICAgcmV0dXJuICptX2ltYWdl
RGVjb2RlckFWRlByb3h5OworfQorI2VuZGlmCisKIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Y3JlYXRlUmVuZGVyaW5nQmFja2VuZChSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBJUEM6OlNlbWFwaG9yZSYmIHJlc3VtZURpc3BsYXlMaXN0U2VtYXBob3JlKQog
ewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kTWFwLmVuc3Vy
ZShpZGVudGlmaWVyLCBbJl0oKSB7CkBAIC00NjMsNiArNDc4LDEyIEBAIGJvb2wgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgSVBDCiAgICAgICAgIG1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eSgp
LmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyNpZiBIQVZFKEFWQVNTRVRSRUFERVIpCisgICAg
aWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVJbWFn
ZURlY29kZXJBVkZQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIGltYWdl
RGVjb2RlckFWRlByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgogCiAgICAgcmV0dXJuIG1lc3Nh
Z2VSZWNlaXZlck1hcCgpLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKIH0K
QEAgLTUxNiw2ICs1MzcsMTIgQEAgYm9vbCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNw
YXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogI2VuZGlmCisjaWYgSEFWRShBVkFTU0VUUkVBREVSKQorICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBpbWFnZURl
Y29kZXJBVkZQcm94eSgpLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
LCByZXBseUVuY29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAog
ICAgIHJldHVybiBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaFN5bmNNZXNzYWdlKGNvbm5l
Y3Rpb24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA3YmFkZDM3NzY5
Y2Y1MmZkNTQwYjRmYjc3N2QwODg3NDY2MDRmNTRmLi5lMjBhZDMyY2JkMTM4NGZlMTI5Mjk0ZWVm
NThmMWJlOTMyNWM2OTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTU0LDYgKzU0LDcgQEAgY2xhc3MgUmVtb3Rl
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk7CiBjbGFzcyBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXI7CiBjbGFz
cyBSZW1vdGVDRE1GYWN0b3J5UHJveHk7CitjbGFzcyBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94
eTsKIGNsYXNzIFJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5OwpAQCAtMTAyLDE1ICsxMDMsMTggQEAgcHVibGljOgogI2lmIEVOQUJMRShM
RUdBQ1lfRU5DUllQVEVEX01FRElBKQogICAgIFJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eSYg
bGVnYWN5Q2RtRmFjdG9yeVByb3h5KCk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKICAgICBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkmIG1lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eSgpOwotI2VuZGlmCiAgICAgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkgeyBy
ZXR1cm4gKm1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7IH0KIAogI2lmIFVTRShBVURJ
T19TRVNTSU9OKQogICAgIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWFuYWdlciYgYXVkaW9TZXNz
aW9uTWFuYWdlcigpOwogI2VuZGlmCiAKKyNpZiBIQVZFKEFWQVNTRVRSRUFERVIpCisgICAgUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkmIGltYWdlRGVjb2RlckFWRlByb3h5KCk7CisjZW5kaWYK
KwogICAgIHZvaWQgdGVybWluYXRlV2ViUHJvY2VzcygpOwogCiBwcml2YXRlOgpAQCAtMjIxLDkg
KzIyNSwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk+IG1fbGVnYWN5
Q2RtRmFjdG9yeVByb3h5OwogI2VuZGlmCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHk+
IG1fbWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeVByb3h5OworI2lmIEhBVkUoQVZBU1NF
VFJFQURFUikKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk+
IG1faW1hZ2VEZWNvZGVyQVZGUHJveHk7CiAjZW5kaWYKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHk+IG1fbWVkaWFFbmdpbmVD
b25maWd1cmF0aW9uRmFjdG9yeVByb3h5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzIxMWEwNmVkMTVmMzllNDc2YzNj
NWI3YTk0YWRkZmMyOWY5MGUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmNwcApAQCAtMCwwICsxLDg0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEhBVkUo
QVZBU1NFVFJFQURFUikKKworI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlICJSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9JbWFnZURlY29kZXJBVkZPYmpDLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6
OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29u
bmVjdGlvblRvV2ViUHJvY2VzcykKK3sKK30KKwordm9pZCBSZW1vdGVJbWFnZURlY29kZXJBVkZQ
cm94eTo6Y3JlYXRlRGVjb2Rlcihjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29y
ZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGF1dG8gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YS5kYXRhKCksIGRhdGEuc2l6
ZSgpKTsKKyAgICBhdXRvIGltYWdlRGVjb2RlciA9IEltYWdlRGVjb2RlckFWRk9iakM6OmNyZWF0
ZShidWZmZXIsIG1pbWVUeXBlLCBBbHBoYU9wdGlvbjo6UHJlbXVsdGlwbGllZCwgR2FtbWFBbmRD
b2xvclByb2ZpbGVPcHRpb246Oklnbm9yZWQpOworCisgICAgT3B0aW9uYWw8SW1hZ2VEZWNvZGVy
SWRlbnRpZmllcj4gaW1hZ2VEZWNvZGVySWRlbnRpZmllcjsKKyAgICBpZiAoaW1hZ2VEZWNvZGVy
KSB7CisgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IEltYWdlRGVjb2RlcklkZW50aWZpZXI6Omdl
bmVyYXRlKCk7CisgICAgICAgIG1faW1hZ2VEZWNvZGVycy5hZGQoaWRlbnRpZmllciwgV1RGTW92
ZShpbWFnZURlY29kZXIpKTsKKyAgICAgICAgaW1hZ2VEZWNvZGVySWRlbnRpZmllciA9IGlkZW50
aWZpZXI7CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRsZXIoaW1hZ2VEZWNvZGVySWRlbnRp
Zmllcik7Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OmRlbGV0ZURlY29k
ZXIoSW1hZ2VEZWNvZGVySWRlbnRpZmllcikKK3sKK30KKwordm9pZCBSZW1vdGVJbWFnZURlY29k
ZXJBVkZQcm94eTo6c2V0RXhwZWN0ZWRDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbWFnZURl
Y29kZXJJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBsb25nIGxvbmcgZXhwZWN0ZWRDb250ZW50U2l6
ZSkKK3sKKyAgICBBU1NFUlQobV9pbWFnZURlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
KyAgICBpZiAoIW1faW1hZ2VEZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9pbWFnZURlY29kZXJzLmdldChpZGVudGlmaWVyKS0+c2V0RXhwZWN0
ZWRDb250ZW50U2l6ZShleHBlY3RlZENvbnRlbnRTaXplKTsKK30KKwordm9pZCBSZW1vdGVJbWFn
ZURlY29kZXJBVkZQcm94eTo6c2V0RGF0YShjb25zdCBXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVu
dGlmaWVyJiBpZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGJvb2wg
YWxsRGF0YVJlY2VpdmVkKQoreworICAgIEFTU0VSVChtX2ltYWdlRGVjb2RlcnMuY29udGFpbnMo
aWRlbnRpZmllcikpOworICAgIGlmICghbV9pbWFnZURlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgbV9pbWFnZURlY29kZXJzLmdl
dChpZGVudGlmaWVyKS0+c2V0RGF0YShidWZmZXIsIGFsbERhdGFSZWNlaXZlZCk7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhZDA3NGMwMmUwYzZi
YzAyNDg2M2M1MTUzMWIxM2Q5YWI3YmYyNDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaApAQCAtMCww
ICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIEhBVkUoQVZBU1NFVFJFQURFUikKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdl
RGVjb2RlckFWRk9iakMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRGVjb2RlcklkZW50aWZp
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M7CisKK2NsYXNzIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5IDogcHJpdmF0ZSBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYpOworICAgIHZpcnR1YWwgflJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
KCkgPSBkZWZhdWx0OworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CisKK3ByaXZhdGU6
CisgICAgdm9pZCBjcmVhdGVEZWNvZGVyKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29y
ZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllcj4pPiYmKTsKKyAgICB2b2lkIGRlbGV0ZURlY29kZXIo
V2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllcik7CisgICAgdm9pZCBzZXRFeHBlY3RlZENv
bnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXImLCBsb25nIGxv
bmcgZXhwZWN0ZWRDb250ZW50U2l6ZSk7CisgICAgdm9pZCBzZXREYXRhKGNvbnN0IFdlYkNvcmU6
OkltYWdlRGVjb2RlcklkZW50aWZpZXImLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBib29s
IGFsbERhdGFSZWNlaXZlZCk7CisKKyAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpJbWFnZURlY29kZXJJ
ZGVudGlmaWVyLCBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VEZWNvZGVyQVZGT2JqQz4+IG1faW1hZ2VE
ZWNvZGVyczsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHku
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ4NmVkMmUxNTQ0NTRlNmQwYzBkNjA5NTkwMTZhNWFm
NWQ0MmM1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYm
IEhBVkUoQVZBU1NFVFJFQURFUikKKworbWVzc2FnZXMgLT4gUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
UHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgQ3JlYXRlRGVjb2RlcihJUEM6OlNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2UgZGF0YSwgU3RyaW5nIG1pbWVUeXBlKSAtPiAoT3B0aW9uYWw8V2ViQ29y
ZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllcj4gaWRlbnRpZmllcikgU3luY2hyb25vdXMKKyAgICBE
ZWxldGVEZWNvZGVyKFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICBTZXRFeHBlY3RlZENvbnRlbnRTaXplKFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZp
ZXIgaWRlbnRpZmllciwgbG9uZyBsb25nIGV4cGVjdGVkQ29udGVudFNpemUpCisgICAgU2V0RGF0
YShXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6U2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGRmFjdG9yeVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVJbWFnZURlY29kZXJBVkZGYWN0b3J5UHJveHkuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFlZTgxYWI4N2E4ZWUwMGVjZmM4YzQzNTE3YTc3NDg1YTc0YTcxNWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGRmFjdG9yeVByb3h5LmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFW
RkZhY3RvcnlQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL2NvY29hL1JlbW90ZUltYWdlRGVjb2RlckFWRkZhY3RvcnlQcm94eS5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZUltYWdlRGVjb2RlckFWRkZhY3RvcnlQ
cm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI1NDM4ZjRjYzY5MDAyZTY3YjAxMGIxNWViODgwZmZhYTI1NzA0
M2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29j
b2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGRmFjdG9yeVByb3h5LmgKQEAgLTAsMCArMSwyNiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKaW5kZXggZWM4YmNmMDg3ZGYxNmRmNjBkYmUwMDgwZTRjZWIwNjFkMTc2OGZmNy4u
ZTZmYTU5NzI4YWJjNmVlNGFmZDE2NzVkMTMxMzk1YjUxYWMyM2Q2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yNjcsNiArMjY3LDcgQEAgZGVmIHR5cGVz
X3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OkZl
dGNoSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXInLAogICAg
ICAgICAnV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJywKKyAgICAgICAgJ1dl
YkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6TGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQbGF5YmFja1RhcmdldENs
aWVudENvbnRleHRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA5ZmNiZjgxMDUyNDJiNmYyODc0OGY5ODA2NWViNDAwMzVjYzI0ZGJkLi5hZDli
YjEwNzRlODFkMDFiY2U0ZWM3MzQwNDZkZTlhOTRjYWRkMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQyOSw2ICs0MjksMTIgQEAK
IAkJMUQwMzY5QUMyNTY3OTY5OTAwNDQwMzcyIC8qIFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFEMDM2OUFBMjU2Nzk0M0MwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFEMDM2OUFEMjU2Nzk2QUIwMDQ0MDM3MiAvKiBSZW1v
dGVWaWRlb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQwMzY5QTUyNTY3OTQzQjAwNDQwMzcyIC8qIFJl
bW90ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFEMDM2OUFF
MjU2Nzk2QjkwMDQ0MDM3MiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQwMzY5
QTIyNTY3OTQzQjAwNDQwMzcyIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CisJCTFENDc2NTdCMjVDQjNBRjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURl
Y29kZXJBVkYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUQ0NzY1NzkyNUNCM0FGNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAg
Ki87IH07CisJCTFENDc2NTg2MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJB
VkZQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUQ0NzY1ODQyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5Lmgg
Ki87IH07CisJCTFENDc2NTg3MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJB
VkZQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxRDQ3NjU4NTI1Q0NBNDE2MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHku
Y3BwICovOyB9OworCQkxRDQ3NjU5MjI1Q0NDRTkzMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0NzY1OEYyNUNDQ0U5MjAwN0FGMzEyIC8qIFJlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMUQ0NzY1OTMy
NUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENDc2NTkwMjVD
Q0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzLmggKi87
IH07CisJCTFENDc2NTk0MjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQ
cm94eU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUQ0NzY1OTEyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi87IH07CiAJCTFENEQ3MzcwMjNBOUU1NDcwMDcx
N0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QjIzQTlE
RjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OwogCQkxRDRENzM3MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMUQ0RDczNzYyM0E5RUQxODAwNzE3QTI1IC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM3NTIzQTlFQjY4MDA3MTdB
MjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsK
QEAgLTI5NzEsNiArMjk3NywxNCBAQAogCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFE
M0FCMDREMjNBQjAwNzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUQzQUIwNEUyM0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxv
YWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENDc2NTc4MjVDQjNBRjYw
MDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENDc2NTc5
MjVDQjNBRjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkYuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUQ0NzY1ODQyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFW
RlByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENDc2NTg1MjVDQ0E0MTYwMDdBRjMxMiAvKiBS
ZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJ
bWFnZURlY29kZXJBVkZQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFE
NDc2NThDMjVDQ0E2OTgwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0NzY1OEYyNUNDQ0U5MjAwN0FGMzEyIC8qIFJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQkxRDQ3NjU5MDI1Q0NDRTkzMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0NzY1OTEyNUNDQ0U5MzAwN0FGMzEy
IC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2Fn
ZXNSZXBsaWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUltYWdlRGVj
b2RlckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxRDRENzM2QzIzQTlERjYw
MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxRDRENzM3NTIzQTlFQjY4MDA3
MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAt
Mjk4Myw3ICsyOTk3LDcgQEAKIAkJMURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQTQwODlFMjNBODI3Nzgw
MDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFERDJBNjM2MjU1REU2NzUwMEZGN0I2RiAvKiBN
ZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVkaWFTb3Vy
Y2VQcml2YXRlUmVtb3RlLmNwcDsgcGF0aCA9IC9Wb2x1bWVzL0RhdGEvd2Via2l0L09wZW5Tb3Vy
Y2UvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVS
ZW1vdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQkxREQyQTYzNjI1NURF
Njc1MDBGRjdCNkYgLyogTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFERDJBNjM3MjU1REU2NzUwMEZGN0I2RiAvKiBNZWRpYVNvdXJjZVByaXZhdGVS
ZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERDJBNjM5MjU1REU2RDEwMEZGN0I2RiAvKiBTb3Vy
Y2VCdWZmZXJQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZUJ1ZmZlclByaXZh
dGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUREMkE2M0EyNTVERTZE
MTAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC01OTgxLDYgKzU5OTUsOCBAQAogCQkJCUNEQUMyMEJEMjNGQzJGNzQwMDIxREVF
MyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uaCAqLywKIAkJCQlDRDQ2NjE3RjI0MDEwNDU4
MDA0N0NBMzUgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLm1lc3NhZ2VzLmluICovLAogCQkJ
CUNEQUMyMEJDMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25JZGVu
dGlmaWVyLmggKi8sCisJCQkJMUQ0NzY1NzkyNUNCM0FGNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdl
RGVjb2RlckFWRi5jcHAgKi8sCisJCQkJMUQ0NzY1NzgyNUNCM0FGNjAwN0FGMzEyIC8qIFJlbW90
ZUltYWdlRGVjb2RlckFWRi5oICovLAogCQkJCUNERTU1NEVCMjQwNTgxODMwMDhBM0REQiAvKiBS
ZW1vdGVMZWdhY3lDRE0uY3BwICovLAogCQkJCUNERTU1NEVBMjQwNTgxODMwMDhBM0REQiAvKiBS
ZW1vdGVMZWdhY3lDRE0uaCAqLywKIAkJCQlDREU1NTRFMzI0MDU4MTE0MDA4QTNEREIgLyogUmVt
b3RlTGVnYWN5Q0RNRmFjdG9yeS5jcHAgKi8sCkBAIC02MDQ2LDYgKzYwNjIsOSBAQAogCQkJCUNE
QUMyMDgzMjNGQjIxMzQwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eS5jcHAgKi8sCiAJCQkJQ0RB
QzIwODIyM0ZCMjEzNDAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5LmggKi8sCiAJCQkJQ0RBQzIw
ODYyM0ZCMjE1ODAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJ
CTFENDc2NTg1MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5j
cHAgKi8sCisJCQkJMUQ0NzY1ODQyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5LmggKi8sCisJCQkJMUQ0NzY1OEMyNUNDQTY5ODAwN0FGMzEyIC8qIFJlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUNERTU1NTFEMjQwNUEzQjcw
MDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHkuY3BwICovLAogCQkJCUNERTU1
NTFDMjQwNUEzQjcwMDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHkuaCAqLywK
IAkJCQlDREU1NTUxQjI0MDVBM0I3MDA4QTNEREIgLyogUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVBy
b3h5Lm1lc3NhZ2VzLmluICovLApAQCAtMTA4MDQsNiArMTA4MjMsOSBAQAogCQkJCUNEQUMyMEVG
MjNGQzM4MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CiAJCQkJQ0RBQzIwRjQyM0ZDMzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZXMu
aCAqLywKIAkJCQlDREFDMjBGMDIzRkMzODM5MDAyMURFRTMgLyogUmVtb3RlQ0RNUHJveHlNZXNz
YWdlc1JlcGxpZXMuaCAqLywKKwkJCQkxRDQ3NjU4RjI1Q0NDRTkyMDA3QUYzMTIgLyogUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTFENDc2NTkw
MjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzLmgg
Ki8sCisJCQkJMUQ0NzY1OTEyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFW
RlByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMEZGMjRBMkIxODc5RTRCQzAwM0FCRjBD
IC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAogCQkJCTBGRjI0QTJDMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDREU1NTUyOTI0MDZCODk2MDA4QTNEREIgLyog
UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTEx
ODY2LDYgKzExODg4LDkgQEAKIAkJCQlDREFDMjBCNDIzRkI1OEYyMDAyMURFRTMgLyogUmVtb3Rl
Q0RNSW5zdGFuY2VQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQ0EyM0ZDMkY3NTAw
MjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0RBQzIwQzkyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50
aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFENDc2NTg2MjVDQ0E0MTYwMDdBRjMxMiAvKiBS
ZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQ0NzY1OTMy
NUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCTFENDc2NTk0MjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFn
ZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0
N0I1NkQxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmVDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUIxNkFFQTE2NEIzQTg4
MDAyOTBENjIgLyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
Mzc1Myw2ICsxMzc3OCw5IEBACiAJCQkJQ0Q0NjYxODMyNDAxMEE2NzAwNDdDQTM1IC8qIFJlbW90
ZUNETUluc3RhbmNlU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDREFDMjBGOTIzRkM3MjZDMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBQzIwRkEyM0ZDNzI2
QzAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTFENDc2NTdCMjVDQjNBRjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJB
VkYuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQ0NzY1ODcyNUNDQTQxNjAwN0FGMzEyIC8qIFJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFENDc2NTky
MjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDcyQTFGQTIxMkJGNDZFMDA1MTdBMjAgLyog
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEy
RDE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4
OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTlmMjY3ZTk0ZGY3YTEzM2MyMGIxYjRlMTA3YTgwMjJm
OWFlY2I5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuY3BwCkBAIC0wLDAgKzEsMTg0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFW
Ri5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisK
KyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQVZB
c3NldE1JTUVUeXBlQ2FjaGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHlwZXMuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlZlB0cjxSZW1vdGVJbWFnZURlY29kZXJBVkY+IFJl
bW90ZUltYWdlRGVjb2RlckFWRjo6Y3JlYXRlKFdlYlByb2Nlc3MmIHdlYlByb2Nlc3MsIFNoYXJl
ZEJ1ZmZlciYgZGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgQWxwaGFPcHRpb24gYWxwaGFP
cHRpb24sIEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0
aW9uKQoreworICAgIGF1dG8mIGdwdVByb2Nlc3NDb25uZWN0aW9uID0gd2ViUHJvY2Vzcy5lbnN1
cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOworICAgIE9wdGlvbmFsPEltYWdlRGVjb2RlcklkZW50
aWZpZXI+IGltYWdlRGVjb2RlcklkZW50aWZpZXI7CisgICAgSVBDOjpTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlIGRhdGFSZWZlcmVuY2UgeyBkYXRhIH07CisgICAgaWYgKCFncHVQcm9jZXNzQ29u
bmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5OjpDcmVhdGVEZWNvZGVyKGRhdGFSZWZlcmVuY2UsIG1pbWVUeXBlKSwgTWVzc2Fn
ZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpDcmVhdGVEZWNvZGVyOjpSZXBseShpbWFn
ZURlY29kZXJJZGVudGlmaWVyKSwgMCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
aWYgKCFpbWFnZURlY29kZXJJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUltYWdlRGVjb2RlckFWRihncHVQcm9jZXNz
Q29ubmVjdGlvbiwgKmltYWdlRGVjb2RlcklkZW50aWZpZXIsIGRhdGEsIG1pbWVUeXBlLCBhbHBo
YU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pKTsKK30KKworUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29kZXJBVkYoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdw
dVByb2Nlc3NDb25uZWN0aW9uLCBJbWFnZURlY29kZXJJZGVudGlmaWVyIGltYWdlRGVjb2Rlcklk
ZW50aWZpZXIsIFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIEFscGhhT3B0
aW9uLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKKyAgICA6IEltYWdlRGVjb2RlcigpCisg
ICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQorICAgICwg
bV9pZGVudGlmaWVyKGltYWdlRGVjb2RlcklkZW50aWZpZXIpCisgICAgLCBtX21pbWVUeXBlKG1p
bWVUeXBlKQorICAgICwgbV91dGkoV2ViQ29yZTo6VVRJRnJvbU1JTUVUeXBlKG1pbWVUeXBlKSkK
K3sKK30KKworYm9vbCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNhbkRlY29kZVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSkKK3sKKyAgICAvLyBUT0RPOiBXZSBtYXkgbmVlZCB0byByZW1vdmUg
QVZBc3NldE1JTUVUeXBlQ2FjaGUgaW4gdGhlIFdlYiBwcm9jZXNzCisgICAgcmV0dXJuIEFWQXNz
ZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKG1pbWVUeXBlKSAhPSBN
ZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOworfQorCitib29s
IFJlbW90ZUltYWdlRGVjb2RlckFWRjo6c3VwcG9ydHNNZWRpYVR5cGUoTWVkaWFUeXBlIHR5cGUp
Cit7CisgICAgLy8gVE9ETzogV2UgbWF5IG5lZWQgdG8gcmVtb3ZlIEFWQXNzZXRNSU1FVHlwZUNh
Y2hlIGluIHRoZSBXZWIgcHJvY2VzcworICAgIHJldHVybiB0eXBlID09IE1lZGlhVHlwZTo6Vmlk
ZW8gJiYgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmlzQXZhaWxhYmxlKCk7Cit9
CisKK0VuY29kZWREYXRhU3RhdHVzIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZW5jb2RlZERhdGFT
dGF0dXMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEVuY29k
ZWREYXRhU3RhdHVzOjpVbmtub3duOworfQorCit2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6
c2V0RW5jb2RlZERhdGFTdGF0dXNDaGFuZ2VDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoRW5j
b2RlZERhdGFTdGF0dXMpPiYmIGNhbGxiYWNrKQoreworICAgIG1fZW5jb2RlZERhdGFTdGF0dXND
aGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKworSW50U2l6ZSBSZW1vdGVJ
bWFnZURlY29kZXJBVkY6OnNpemUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIEludFNpemUoKTsKK30KKworc2l6ZV90IFJlbW90ZUltYWdlRGVjb2RlckFWRjo6
ZnJhbWVDb3VudCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MDsKK30KKworUmVwZXRpdGlvbkNvdW50IFJlbW90ZUltYWdlRGVjb2RlckFWRjo6cmVwZXRpdGlv
bkNvdW50KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBSZXBl
dGl0aW9uQ291bnROb25lOworfQorCitTdHJpbmcgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjp1dGko
KSBjb25zdAoreworICAgIHJldHVybiBtX3V0aTsKK30KKworU3RyaW5nIFJlbW90ZUltYWdlRGVj
b2RlckFWRjo6ZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdAoreworICAgIHJldHVybiBNSU1FVHlw
ZVJlZ2lzdHJ5OjpwcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZShtX21pbWVUeXBlKTsKK30K
KworSW50U2l6ZSBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90
LCBTdWJzYW1wbGluZ0xldmVsKSBjb25zdAoreworICAgIHJldHVybiBzaXplKCk7Cit9CisKK2Jv
b2wgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCkg
Y29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
SW1hZ2VEZWNvZGVyOjpGcmFtZU1ldGFkYXRhIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVN
ZXRhZGF0YUF0SW5kZXgoc2l6ZV90KSBjb25zdAoreworICAgIHJldHVybiB7IH07Cit9CisKK1Nl
Y29uZHMgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3Qp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4geyB9OworfQorCiti
b29sIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90KSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleChz
aXplX3QpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3Vuc2lnbmVkIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVCeXRlc0F0SW5kZXgo
c2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIDA7Cit9CisKK1BsYXRmb3JtSW1hZ2VQdHIgUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwsIGNv
bnN0IERlY29kaW5nT3B0aW9ucyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKwordm9pZCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OnNldEV4cGVjdGVk
Q29udGVudFNpemUobG9uZyBsb25nIGV4cGVjdGVkQ29udGVudFNpemUpCit7CisgICAgbV9ncHVQ
cm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGUHJveHk6OlNldEV4cGVjdGVkQ29udGVudFNpemUobV9pZGVudGlmaWVyLCBleHBl
Y3RlZENvbnRlbnRTaXplKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpz
ZXREYXRhKFNoYXJlZEJ1ZmZlciYgZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCit7CisgICAg
SVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2UgeyBkYXRhIH07Cisg
ICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVt
b3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OlNldERhdGEobV9pZGVudGlmaWVyLCBkYXRhUmVmZXJl
bmNlLCBhbGxEYXRhUmVjZWl2ZWQpLCAwKTsKK30KKwordm9pZCBSZW1vdGVJbWFnZURlY29kZXJB
VkY6OmNsZWFyRnJhbWVCdWZmZXJDYWNoZShzaXplX3QpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5YTg4
YTdiYzYyZTU1Y2E3NTBlNTM0OTljYWJmZDNjZGIyYzJmMGIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5o
CkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVBREVSKQorCisjaW5jbHVkZSA8V2ViQ29y
ZS9JbWFnZURlY29kZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRGVjb2RlcklkZW50aWZp
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgV2ViUHJvY2VzczsKKworY2xhc3Mg
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGIDogcHVibGljIFdlYkNvcmU6OkltYWdlRGVjb2RlciB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZlB0cjxSZW1vdGVJbWFnZURlY29kZXJBVkY+IGNyZWF0ZShX
ZWJQcm9jZXNzJiwgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgV2ViQ29yZTo6QWxwaGFPcHRpb24sIFdlYkNvcmU6OkdhbW1hQW5kQ29sb3JQcm9maWxlT3B0
aW9uKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVJbWFnZURlY29kZXJBVkYoKSA9IGRlZmF1bHQ7CisK
KyAgICBzdGF0aWMgYm9vbCBjYW5EZWNvZGVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwor
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzTWVkaWFUeXBlKE1lZGlhVHlwZSk7CisgICAgLy8gc3Rh
dGljIGJvb2wgc3VwcG9ydHNDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIAorICAg
IHNpemVfdCBieXRlc0RlY29kZWRUb0RldGVybWluZVByb3BlcnRpZXMoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAwOyB9CisKKyAgICBXZWJDb3JlOjpFbmNvZGVkRGF0YVN0YXR1cyBlbmNvZGVk
RGF0YVN0YXR1cygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0RW5jb2RlZERhdGFTdGF0dXND
aGFuZ2VDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6RW5jb2RlZERhdGFTdGF0
dXMpPiYmKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpJbnRTaXplIHNpemUoKSBjb25zdCBmaW5hbDsK
KyAgICBzaXplX3QgZnJhbWVDb3VudCgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6OlJlcGV0
aXRpb25Db3VudCByZXBldGl0aW9uQ291bnQoKSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdXRp
KCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3QgZmlu
YWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGhvdFNwb3QoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKworICAgIFdlYkNvcmU6OkludFNpemUgZnJhbWVT
aXplQXRJbmRleChzaXplX3QsIFdlYkNvcmU6OlN1YnNhbXBsaW5nTGV2ZWwgPSBXZWJDb3JlOjpT
dWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0KSBjb25zdCBmaW5hbDsKKyAgICBib29sIGZyYW1lSXND
b21wbGV0ZUF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKKyAgICBGcmFtZU1ldGFkYXRhIGZy
YW1lTWV0YWRhdGFBdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CisKKyAgICBTZWNvbmRzIGZy
YW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBmcmFtZUhh
c0FscGhhQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgZnJhbWVBbGxvd1N1
YnNhbXBsaW5nQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOworICAgIHVuc2lnbmVkIGZyYW1l
Qnl0ZXNBdEluZGV4KHNpemVfdCwgV2ViQ29yZTo6U3Vic2FtcGxpbmdMZXZlbCA9IFdlYkNvcmU6
OlN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpIGNvbnN0IGZpbmFsOworCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1JbWFnZVB0ciBjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QsIFdlYkNvcmU6
OlN1YnNhbXBsaW5nTGV2ZWwgPSBXZWJDb3JlOjpTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0LCBj
b25zdCBXZWJDb3JlOjpEZWNvZGluZ09wdGlvbnMmID0gV2ViQ29yZTo6RGVjb2RpbmdPcHRpb25z
KFdlYkNvcmU6OkRlY29kaW5nTW9kZTo6U3luY2hyb25vdXMpKSBmaW5hbDsKKworICAgIHZvaWQg
c2V0RXhwZWN0ZWRDb250ZW50U2l6ZShsb25nIGxvbmcpIGZpbmFsOworICAgIHZvaWQgc2V0RGF0
YShXZWJDb3JlOjpTaGFyZWRCdWZmZXImLCBib29sIGFsbERhdGFSZWNlaXZlZCkgZmluYWw7Cisg
ICAgYm9vbCBpc0FsbERhdGFSZWNlaXZlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNBbGxE
YXRhUmVjZWl2ZWQ7IH0KKyAgICB2b2lkIGNsZWFyRnJhbWVCdWZmZXJDYWNoZShzaXplX3QpIGZp
bmFsOworCitwcml2YXRlOgorICAgIFJlbW90ZUltYWdlRGVjb2RlckFWRihHUFVQcm9jZXNzQ29u
bmVjdGlvbiYsIFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFdlYkNvcmU6OkFscGhhT3B0aW9uLCBX
ZWJDb3JlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CisKKyAgICBHUFVQcm9jZXNzQ29u
bmVjdGlvbiYgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsKKyAgICBXZWJDb3JlOjpJbWFnZURlY29k
ZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKworICAgIFN0cmluZyBtX21pbWVUeXBlOworICAg
IFN0cmluZyBtX3V0aTsKKyAgICBib29sIG1faXNBbGxEYXRhUmVjZWl2ZWQgeyBmYWxzZSB9Owor
ICAgIFdURjo6RnVuY3Rpb248dm9pZChXZWJDb3JlOjpFbmNvZGVkRGF0YVN0YXR1cyk+IG1fZW5j
b2RlZERhdGFTdGF0dXNDaGFuZ2VkQ2FsbGJhY2s7Cit9OworCit9CisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAzM2NhOGU3M2I2ZWQwNTViNDgyYjdm
MTAxMWExZjVkODk4MjI2ZWQzLi5kZDUwM2YyNGM4YWNhY2E4Mzk3ODMyMmIxMDMyMTMzMzljY2Vk
ZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMDcsNiAr
MTA3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0dDQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvR2x5cGhQYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pT
RE9NV2luZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oPgpAQCAt
MTk4LDYgKzE5OSwxMCBAQAogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVB
REVSKQorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRi5oIgorI2VuZGlmCisKICNpZiBQ
TEFURk9STShDT0NPQSkKICNpbmNsdWRlIDxXZWJDb3JlL1ZQOVV0aWxpdGllc0NvY29hLmg+CiAj
ZW5kaWYKQEAgLTE5MzgsNyArMTk0MywyMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFVzZUdQVVBy
b2Nlc3NGb3JNZWRpYShib29sIHVzZUdQVVByb2Nlc3NGb3JNZWRpYSkKICAgICBlbHNlCiAgICAg
ICAgIExlZ2FjeUNETTo6cmVzZXRGYWN0b3JpZXMoKTsKICNlbmRpZgotICAgIAorCisjaWYgSEFW
RShBVkFTU0VUUkVBREVSKQorICAgIGlmICh1c2VHUFVQcm9jZXNzRm9yTWVkaWEpIHsKKyAgICAg
ICAgSW1hZ2VEZWNvZGVyOjpjbGVhckZhY3RvcmllcygpOworICAgICAgICBJbWFnZURlY29kZXI6
Omluc3RhbGxGYWN0b3J5KHsKKyAgICAgICAgICAgIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6c3Vw
cG9ydHNNZWRpYVR5cGUsCisgICAgICAgICAgICBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNhbkRl
Y29kZVR5cGUsCisgICAgICAgICAgICBbXShTaGFyZWRCdWZmZXImIGRhdGEsIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIEFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBHYW1tYUFuZENvbG9yUHJvZmls
ZU9wdGlvbiBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikgeworICAgICAgICAgICAgICAgIHJl
dHVybiBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZShXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KSwgZGF0YSwgbWltZVR5cGUsIGFscGhhT3B0aW9uLCBnYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlv
bik7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICBJbWFn
ZURlY29kZXI6OnJlc2V0RmFjdG9yaWVzKCk7CisjZW5kaWYKKwogICAgIGlmICh1c2VHUFVQcm9j
ZXNzRm9yTWVkaWEpCiAgICAgICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkubWVkaWFF
bmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeSgpLnJlZ2lzdGVyRmFjdG9yeSgpOwogICAgIGVsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419452</attachid>
            <date>2021-02-05 13:10:42 -0800</date>
            <delta_ts>2021-02-07 22:44:41 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-221317-20210205131041.patch</filename>
            <type>text/plain</type>
            <size>62296</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFkMmQ0ZjgwZWM2ZDU0
NTFiM2M4MzJmZjg1OWEwZmY2OWRjMTNhNi4uNzFiNjI5MGFlMmU4N2UxZGYzNTFhMGVjMzY2Yjhl
OWFkMTA0MzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAyLTAzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIFJ1biBJbWFnZURl
Y29kZXJBVkZPYmpDIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmZhY3Rvcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXI6
Omluc3RhbGxGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2Rlcjo6Y2xlYXJG
YWN0b3JpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpzdXBwb3J0c01lZGlhVHlwZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmg6CisKIDIwMjEtMDItMDMgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgYW4gYW5j
ZXN0b3Igd2FsayBpbiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlV2lsbFZhbGlkYXRl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZGQwZWYwNTJlZTU2OGNkMGYxOGE5YjRmYzBiZmQ4N2JhZmI0ZGVlYy4u
NTYzZTZhODQzNGYyZjc4MmI0ZjAzZjA5YzU2ODdkNmQwNDRlZjIyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMS0wMi0wMyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFtHUFVQXSBSdW4gSW1hZ2VEZWNvZGVyQVZGT2JqQyBpbiB0aGUgR1BVIFByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTMx
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29kZXJBVkYpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNhbkRlY29kZVR5cGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OnN1cHBvcnRzTWVkaWFUeXBlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjplbmNvZGVkRGF0YVN0YXR1cyBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6c2V0RW5jb2RlZERh
dGFTdGF0dXNDaGFuZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVj
b2RlckFWRjo6c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6ZnJhbWVDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVj
b2RlckFWRjo6cmVwZXRpdGlvbkNvdW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjp1dGkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZURlY29kZXJBVkY6OmZpbGVuYW1lRXh0ZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZVNpemVBdEluZGV4IGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4IGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZU1ldGFk
YXRhQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFW
Rjo6ZnJhbWVEdXJhdGlvbkF0SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJ
bWFnZURlY29kZXJBVkY6OmZyYW1lSGFzQWxwaGFBdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUFsbG93U3Vic2FtcGxpbmdBdEluZGV4
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUJ5
dGVzQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFW
Rjo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZURlY29kZXJBVkY6OnNldEV4cGVjdGVkQ29udGVudFNpemUpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVJbWFnZURlY29kZXJBVkY6OnNldERhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJ
bWFnZURlY29kZXJBVkY6OmNsZWFyRnJhbWVCdWZmZXJDYWNoZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnNldFVzZUdQVVByb2Nlc3NGb3JNZWRpYSk6CisKIDIwMjEtMDItMDMgIFRpbW90aHkg
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBG
QUlMRUQ6ICFzaXplLmlzRW1wdHkoKSB1bmRlciBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMjNkY2JmZWQxNzUwYTNmZjVkNjY4MDNkY2JmYjY1YjIyZmVkZTBjMS4uZGRjZDFiMzYw
OWQ2NGM5NTk0YTEzODVlY2JhMmY3OTUzNDlhZTgwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjMyLDYgKzYzMiw3IEBACiAJ
CTFEMkY4RTA0MjM0NDc1MTYwMDk5M0I2OCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0Ey
MzNDM0QwQjAwRUUyMjhEIC8qIEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDUyMzQ0NzUx
RDAwOTkzQjY4IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREVGMDZDQzIzM0MzRDIwMDBF
RTIyOEQgLyogSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDJGOEUwNjIzNDQ3NTIzMDA5
OTNCNjggLyogUGljdHVyZUluUGljdHVyZVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0QyMzNDM0QyQTAwRUUyMjhEIC8qIFBpY3R1
cmVJblBpY3R1cmVXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkxRDQ3NjU4RTI1Q0NBNzc4MDA3QUYzMTIgLyogSW1hZ2VEZWNvZGVySWRl
bnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUQ0NzY1OEQyNUNDQTc3ODAwN0FGMzEyIC8qIEltYWdlRGVjb2RlcklkZW50aWZpZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDlGMEZDMTIx
MjIwMjlCMDA1RDhGRDQgLyogU2hhcmVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxREM1NTQwMDIxMUJBOEM4MDA0Qjc4MEUgLyogU2hhcmVEYXRh
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURB
QjMxMTIyNTFENkJGMzAwRkM5NDg1IC8qIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOEIzMUExMjM3OURDODMw
MDg4M0ZERSAvKiBXZWJWaWRlb0NvbnRhaW5lckxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMURBQjMxMTQyNTFENzI1QzAwRkM5NDg1IC8q
IFZpZGVvTGF5ZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUgLyogVmlkZW9MYXllck1hbmFnZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDIx
OSw4ICs0MjIwLDggQEAKIAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxs
U2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDE3
QTQ1RDIxMzc0MDgxMDA3OUVDN0IgLyogVW5pZmllZFNvdXJjZTYyLW1tLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxN0E0NTkyMTM3NDAxNjAwNzlF
QzdCIC8qIFVuaWZpZWRTb3VyY2U2Mi1tbS5tbSAqLzsgfTsKIAkJQ0QxOUEyNjgxQTEzRTcwMDAw
OEQ2NTBFIC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2NzFBMTNFNzAwMDA4RDY1MEUgLyogRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQlDRDE5RkVBODFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVB
NjFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggKi87IH07Ci0JCUNEMTlGRUFFMUY1
NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVBQzFGNTc0QjZEMDAwQzQyRkIgLyog
SW1hZ2VEZWNvZGVyQVZGT2JqQy5oICovOyB9OworCQlDRDE5RkVBODFGNTczOTcyMDAwQzQyRkIg
LyogSW1hZ2VEZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDE5RkVBNjFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0QxOUZFQUUxRjU3
NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlGRUFDMUY1NzRCNkQwMDBDNDJGQiAvKiBJ
bWFnZURlY29kZXJBVkZPYmpDLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0QxOUZFQUYxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFW
Rk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDE5RkVBRDFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbSAqLzsgfTsK
IAkJQ0QyMjVDMEIxQzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDIyNUMwOTFDNDZG
QkY0MDAxNDA3NjEgLyogV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLzsgfTsKIAkJQ0QyMjVDMEMx
QzQ2RkJGNDAwMTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjI1QzBBMUM0NkZCRjQwMDE0MDc2MSAv
KiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTY4ODgsNiArNjg4OSw3IEBACiAJCTFEMDAyNkE4MjM3NEY5RDkw
MENBNkNERiAvKiBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQwMDI2QTkyMzc0RjlEOTAwQ0E2Q0RGIC8qIEpTRW50
ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFEMkM4MkI2MjM2QTNGNkEwMDU1RDZDNSAvKiBQaWN0dXJlSW5QaWN0
dXJlU3VwcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDQ3NjU4RDI1Q0NBNzc4MDA3QUYzMTIgLyog
SW1hZ2VEZWNvZGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZURlY29kZXJJZGVu
dGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQUIzMTEzMjUxRDcyNUMw
MEZDOTQ4NSAvKiBWaWRlb0xheWVyTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0xheWVy
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREI2NkQzNzI1MzY3OEVB
MDBCNjcxQjkgLyogQXVkaW9PdXRwdXRVbml0QWRhcHRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRp
b091dHB1dFVuaXRBZGFwdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQjY2
RDM4MjUzNjc4RUEwMEI2NzFCOSAvKiBBdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjY2NzEsNiArMjY2NzMsNyBAQAogCQkJCUIyQTEwQzkxMEIzODE4QkQw
MDA5OUFBNCAvKiBJbWFnZUJ1ZmZlclBpcGUuaCAqLywKIAkJCQlDRDE5RkVBNzFGNTczOTcyMDAw
QzQyRkIgLyogSW1hZ2VEZWNvZGVyLmNwcCAqLywKIAkJCQlDRDE5RkVBNjFGNTczOTcyMDAwQzQy
RkIgLyogSW1hZ2VEZWNvZGVyLmggKi8sCisJCQkJMUQ0NzY1OEQyNUNDQTc3ODAwN0FGMzEyIC8q
IEltYWdlRGVjb2RlcklkZW50aWZpZXIuaCAqLywKIAkJCQk1NTc2QTU2MjFEODhBNzA4MDBDQ0Mw
NEMgLyogSW1hZ2VGcmFtZS5jcHAgKi8sCiAJCQkJNTU3NkE1NjMxRDg4QTcwODAwQ0NDMDRDIC8q
IEltYWdlRnJhbWUuaCAqLywKIAkJCQlCQzdGNDRBNzBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VP
YnNlcnZlci5oICovLApAQCAtMzI1MjcsNiArMzI1MzAsNyBAQAogCQkJCUNEMTlGRUE4MUY1NzM5
NzIwMDBDNDJGQiAvKiBJbWFnZURlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMTlGRUFF
MUY1NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NTVCODdFRDFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNvZGVyQ0cuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFENDc2NThFMjVDQ0E3NzgwMDdBRjMxMiAvKiBJbWFnZURlY29kZXJJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzIwNUFCNjEyMzkyOTEwMDBCMTczODAgLyog
SW1hZ2VEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ4QjdENTMyNUMzNDFFNjAwOUU3
NUREIC8qIEltYWdlRXh0cmFjdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU3NkE1
NjUxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5jcHAKaW5kZXgg
ODY4ZWQ4NzgwNmQyOTAxMGI1MTkyMjAxNjQxMTQ0NWU2ZmZmYmFkZS4uMDg2OWU5OWEwMDg4NmY3
Y2QxMjE4NmZlMzE2MWRlMDQ3ZmE1MTM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyLmgiCiAKKyNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KKwogI2lmIFVTRShDRykKICNpbmNsdWRlICJJbWFnZURlY29kZXJD
Ry5oIgogI2VsaWYgVVNFKERJUkVDVDJEKQpAQCAtNDQsMTMgKzQ2LDU4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVB
REVSKQordXNpbmcgRmFjdG9yeVZlY3RvciA9IFZlY3RvcjxJbWFnZURlY29kZXI6OkltYWdlRGVj
b2RlckZhY3Rvcnk+OworCitzdGF0aWMgdm9pZCBwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9yaWVzKEZh
Y3RvcnlWZWN0b3ImIGZhY3RvcmllcykKK3sKKyAgICBmYWN0b3JpZXMuYXBwZW5kKHsgSW1hZ2VE
ZWNvZGVyQVZGT2JqQzo6c3VwcG9ydHNNZWRpYVR5cGUsIEltYWdlRGVjb2RlckFWRk9iakM6OmNh
bkRlY29kZVR5cGUsIEltYWdlRGVjb2RlckFWRk9iakM6OmNyZWF0ZSB9KTsKK30KKworc3RhdGlj
IEZhY3RvcnlWZWN0b3ImIGluc3RhbGxlZEZhY3RvcmllcygpCit7CisgICAgc3RhdGljIGF1dG8g
ZmFjdG9yaWVzID0gbWFrZU5ldmVyRGVzdHJveWVkPEZhY3RvcnlWZWN0b3I+KHsgfSk7CisgICAg
c3RhdGljIHN0ZDo6b25jZV9mbGFnIHJlZ2lzdGVyRGVmYXVsdHM7CisgICAgc3RkOjpjYWxsX29u
Y2UocmVnaXN0ZXJEZWZhdWx0cywgWyZdIHsKKyAgICAgICAgcGxhdGZvcm1SZWdpc3RlckZhY3Rv
cmllcyhmYWN0b3JpZXMpOworICAgIH0pOworCisgICAgcmV0dXJuIGZhY3RvcmllczsKK30KKwor
dm9pZCBJbWFnZURlY29kZXI6Omluc3RhbGxGYWN0b3J5KEltYWdlRGVjb2Rlcjo6SW1hZ2VEZWNv
ZGVyRmFjdG9yeSYmIGZhY3RvcnkpCit7CisgICAgaW5zdGFsbGVkRmFjdG9yaWVzKCkuYXBwZW5k
KFdURk1vdmUoZmFjdG9yeSkpOworfQorCit2b2lkIEltYWdlRGVjb2Rlcjo6cmVzZXRGYWN0b3Jp
ZXMoKQoreworICAgIGluc3RhbGxlZEZhY3RvcmllcygpLmNsZWFyKCk7CisgICAgcGxhdGZvcm1S
ZWdpc3RlckZhY3RvcmllcyhpbnN0YWxsZWRGYWN0b3JpZXMoKSk7Cit9CisKK3ZvaWQgSW1hZ2VE
ZWNvZGVyOjpjbGVhckZhY3RvcmllcygpCit7CisgICAgaW5zdGFsbGVkRmFjdG9yaWVzKCkuY2xl
YXIoKTsKK30KKyNlbmRpZgorCiBSZWZQdHI8SW1hZ2VEZWNvZGVyPiBJbWFnZURlY29kZXI6OmNy
ZWF0ZShTaGFyZWRCdWZmZXImIGRhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIEFscGhhT3B0
aW9uIGFscGhhT3B0aW9uLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9y
UHJvZmlsZU9wdGlvbikKIHsKICAgICBVTlVTRURfUEFSQU0obWltZVR5cGUpOwogCiAjaWYgSEFW
RShBVkFTU0VUUkVBREVSKQotICAgIGlmICghSW1hZ2VEZWNvZGVyQ0c6OmNhbkRlY29kZVR5cGUo
bWltZVR5cGUpICYmIEltYWdlRGVjb2RlckFWRk9iakM6OmNhbkRlY29kZVR5cGUobWltZVR5cGUp
KQotICAgICAgICByZXR1cm4gSW1hZ2VEZWNvZGVyQVZGT2JqQzo6Y3JlYXRlKGRhdGEsIG1pbWVU
eXBlLCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pOworICAgIGlmICgh
SW1hZ2VEZWNvZGVyQ0c6OmNhbkRlY29kZVR5cGUobWltZVR5cGUpKSB7CisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorICAgICAgICBmb3IgKGF1dG8mIGZhY3RvcnkgOiBpbnN0YWxsZWRGYWN0b3Jp
ZXMoKSkgeworICAgICAgICAgICAgaWYgKGZhY3RvcnkuY2FuRGVjb2RlVHlwZShtaW1lVHlwZSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhY3RvcnkuY3JlYXRlSW1hZ2VEZWNvZGVyKGRhdGEs
IG1pbWVUeXBlLCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pOworICAg
ICAgICB9CisjZWxzZQorICAgICAgICBpZiAoSW1hZ2VEZWNvZGVyQVZGT2JqQzo6Y2FuRGVjb2Rl
VHlwZShtaW1lVHlwZSkpCisgICAgICAgICAgICByZXR1cm4gSW1hZ2VEZWNvZGVyQVZGT2JqQzo6
Y3JlYXRlKGRhdGEsIG1pbWVUeXBlLCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24pOworI2VuZGlmCisgICAgfQogI2VuZGlmCiAKICNpZiBVU0UoR1NUUkVBTUVSKSAmJiBF
TkFCTEUoVklERU8pCkBAIC04MSw5ICsxMjgsMTYgQEAgYm9vbCBJbWFnZURlY29kZXI6OnN1cHBv
cnRzTWVkaWFUeXBlKE1lZGlhVHlwZSB0eXBlKQogI2VuZGlmCiAKICNpZiBIQVZFKEFWQVNTRVRS
RUFERVIpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIGZvciAoYXV0byYgZmFjdG9yeSA6
IGluc3RhbGxlZEZhY3RvcmllcygpKSB7CisgICAgICAgIGlmIChmYWN0b3J5LnN1cHBvcnRzTWVk
aWFUeXBlKHR5cGUpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2Vsc2UKICAg
ICBpZiAoSW1hZ2VEZWNvZGVyQVZGT2JqQzo6c3VwcG9ydHNNZWRpYVR5cGUodHlwZSkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogI2VuZGlmCisjZW5kaWYKIAogI2lmIFVTRShHU1RSRUFNRVIpICYm
IEVOQUJMRShWSURFTykKICAgICBpZiAoSW1hZ2VEZWNvZGVyR1N0cmVhbWVyOjpzdXBwb3J0c01l
ZGlhVHlwZSh0eXBlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlRGVjb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VEZWNvZGVyLmgKaW5kZXggODY3MGQxNTI0Y2VhMjE0YmRlNzlkZDY3ZGRjMmMxM2NiNDE5ZGJh
OS4uOTRhOTY4YWYzMTU0ZGVhMmNiMWE0ZmU2ZjkxODhlOTlhMTk2MjViYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmgKQEAgLTU4LDYgKzU4
LDIyIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzTWVkaWFUeXBlKE1lZGlh
VHlwZSk7CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgdXNpbmcgU3VwcG9ydHNNZWRp
YVR5cGVGdW5jID0gV1RGOjpGdW5jdGlvbjxib29sKE1lZGlhVHlwZSk+OworICAgIHVzaW5nIENh
bkRlY29kZVR5cGVGdW5jID0gV1RGOjpGdW5jdGlvbjxib29sKGNvbnN0IFN0cmluZyYpPjsKKyAg
ICB1c2luZyBDcmVhdGVJbWFnZURlY29kZXJGdW5jID0gV1RGOjpGdW5jdGlvbjxSZWZQdHI8SW1h
Z2VEZWNvZGVyPihTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmLCBBbHBoYU9wdGlvbiwgR2Ft
bWFBbmRDb2xvclByb2ZpbGVPcHRpb24pPjsKKworICAgIHN0cnVjdCBJbWFnZURlY29kZXJGYWN0
b3J5IHsKKyAgICAgICAgU3VwcG9ydHNNZWRpYVR5cGVGdW5jIHN1cHBvcnRzTWVkaWFUeXBlOwor
ICAgICAgICBDYW5EZWNvZGVUeXBlRnVuYyBjYW5EZWNvZGVUeXBlOworICAgICAgICBDcmVhdGVJ
bWFnZURlY29kZXJGdW5jIGNyZWF0ZUltYWdlRGVjb2RlcjsKKyAgICB9OworCisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHZvaWQgaW5zdGFsbEZhY3RvcnkoSW1hZ2VEZWNvZGVyRmFjdG9yeSYm
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZXNldEZhY3RvcmllcygpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNsZWFyRmFjdG9yaWVzKCk7CisjZW5kaWYKKwog
ICAgIHZpcnR1YWwgc2l6ZV90IGJ5dGVzRGVjb2RlZFRvRGV0ZXJtaW5lUHJvcGVydGllcygpIGNv
bnN0ID0gMDsKIAogICAgIHZpcnR1YWwgRW5jb2RlZERhdGFTdGF0dXMgZW5jb2RlZERhdGFTdGF0
dXMoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZURlY29kZXJJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZURlY29kZXJJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA0NmFlMGM0YzIw
MjhlN2E4OThmZGRlOWI1OGQxMzMwMjY4MWMxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2RlcklkZW50aWZpZXIuaApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2Jq
ZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gSW1hZ2VEZWNv
ZGVySWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgSW1hZ2VEZWNvZGVySWRlbnRpZmllciA9IE9i
amVjdElkZW50aWZpZXI8SW1hZ2VEZWNvZGVySWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpD
LmgKaW5kZXggM2I0NTA2NzhmYTdmMzZjMTk4YTQwYjA4N2U3NDZmMTJhNzk4Yzc4NS4uY2Y5ZmQ0
ZWFmMzkxN2U0ZTFkM2ZiYmNhNDgxYWYwZjQ1ZDQ2OWVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW1hZ2VEZWNvZGVyQVZG
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMuaApAQCAtNTMsMTQgKzUzLDE0IEBAIGNsYXNzIFdl
YkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjsKIAogY2xhc3MgSW1hZ2VEZWNvZGVyQVZGT2JqQyA6
IHB1YmxpYyBJbWFnZURlY29kZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VE
ZWNvZGVyQVZGT2JqQz4gY3JlYXRlKFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIEFscGhhT3B0aW9uLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFJlZlB0cjxJbWFnZURlY29kZXJBVkZPYmpDPiBjcmVhdGUoU2hhcmVk
QnVmZmVyJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgQWxwaGFPcHRpb24sIEdhbW1hQW5kQ29s
b3JQcm9maWxlT3B0aW9uKTsKICAgICB2aXJ0dWFsIH5JbWFnZURlY29kZXJBVkZPYmpDKCk7CiAK
LSAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c01lZGlhVHlwZShNZWRpYVR5cGUpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBib29sIHN1cHBvcnRzTWVkaWFUeXBlKE1lZGlhVHlwZSk7CiAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYpOwogCiAgICAg
c2l6ZV90IGJ5dGVzRGVjb2RlZFRvRGV0ZXJtaW5lUHJvcGVydGllcygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIDA7IH0KLSAgICBzdGF0aWMgYm9vbCBjYW5EZWNvZGVUeXBlKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGNhbkRlY29kZVR5
cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAKICAgICBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9taW1lVHlwZTsgfQogCkBAIC04MiwxMCArODIsMTAgQEAgcHVi
bGljOgogICAgIGJvb2wgZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleChzaXplX3QpIGNvbnN0
IGZpbmFsOwogICAgIHVuc2lnbmVkIGZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxp
bmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpIGNvbnN0IGZpbmFsOwogCi0gICAg
UGxhdGZvcm1JbWFnZVB0ciBjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QsIFN1YnNhbXBs
aW5nTGV2ZWwgPSBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0LCBjb25zdCBEZWNvZGluZ09wdGlv
bnMmID0gRGVjb2RpbmdPcHRpb25zKERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMpKSBmaW5hbDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUltYWdlUHRyIGNyZWF0ZUZyYW1lSW1hZ2VBdElu
ZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQs
IGNvbnN0IERlY29kaW5nT3B0aW9ucyYgPSBEZWNvZGluZ09wdGlvbnMoRGVjb2RpbmdNb2RlOjpT
eW5jaHJvbm91cykpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRFeHBlY3RlZENvbnRlbnRTaXplKGxv
bmcgbG9uZykgZmluYWw7Ci0gICAgdm9pZCBzZXREYXRhKFNoYXJlZEJ1ZmZlciYsIGJvb2wgYWxs
RGF0YVJlY2VpdmVkKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEV4cGVjdGVk
Q29udGVudFNpemUobG9uZyBsb25nKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dERhdGEoU2hhcmVkQnVmZmVyJiwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpIGZpbmFsOwogICAgIGJv
b2wgaXNBbGxEYXRhUmVjZWl2ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzQWxsRGF0YVJl
Y2VpdmVkOyB9CiAgICAgdm9pZCBjbGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6ZV90KSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4
IDIzYWQ0MDc4MGQzNjU3YmM4OWFhODJiMTRjZjM3NzBhMzI2ZGQ0MDQuLjg3Y2ZhNzU3YjNmNjNl
ZWNlODUxNjQwOWNmZTY3NGJhMTZmMTVhNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTMxLDYgKzMxLDcgQEAgJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25Qcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVDRE1Qcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHkubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RNUHJveHkubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTGVnYWN5Q0RN
U2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAwNjU1NzU1OTUzMDgzMGQ2MzJhNTY3N2IzZWJlZWQ3
MDdmYmUyYzhhLi4zMDAxNDAwMTg5NzQ2NThmYzQzMGNiOWM0NTM4MzA3YTQ0MGIxYmFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE4
Niw2ICsxODYsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VzUmVwbAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1h
Z2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzUmVwbGll
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlc1JlcGxpZXMuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGM3YTUwOTRiMjQyYjQwZmI5MjEwZDkwM2Mz
ZGM4Y2ZhMDcyYjQyZjUuLjE5YTQ5MGMwZWRjMDA0YzQzODFiYThlMjE3OTk1ZjdmYjA1ZTIzNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI0MSw2ICsyNDEsNyBAQCBNRVNTQUdF
X1JFQ0VJVkVSUyA9IFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyIFwK
IAlHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlciBc
CiAJR1BVUHJvY2Vzcy9HUFVQcm9jZXNzIFwKKwlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Np
b25Qcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHkg
XAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CmluZGV4IDgyNzhiY2UxNGM1ZjFjMjRiZTdjOTAyMmQ1ZmQ0MGIyNGM1OGVmZWYuLjJlNjlmOGZl
OGQ3MDdmZTQwYzA3ZGIxNmZjYTZmNDhiOGMyOTc2NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTEwNiw2
ICsxMDYsMTEgQEAKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHlNZXNzYWdl
cy5oIgogI2VuZGlmCiAKKyNpZiBIQVZFKEFWQVNTRVRSRUFERVIpCisjaW5jbHVkZSAiUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVJbWFnZURlY29kZXJBVkZQ
cm94eU1lc3NhZ2VzLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICNpbmNs
dWRlICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkuaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHlNZXNzYWdlcy5o
IgpAQCAtMjkwLDYgKzI5NSwxNiBAQCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJveHkoKQogfQogI2VuZGlmCiAKKyNpZiBI
QVZFKEFWQVNTRVRSRUFERVIpCitSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eSYgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6aW1hZ2VEZWNvZGVyQVZGUHJveHkoKQoreworICAgIGlmICghbV9p
bWFnZURlY29kZXJBVkZQcm94eSkKKyAgICAgICAgbV9pbWFnZURlY29kZXJBVkZQcm94eSA9IG1h
a2VVbmlxdWU8UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk+KCp0aGlzKTsKKworICAgIHJldHVy
biAqbV9pbWFnZURlY29kZXJBVkZQcm94eTsKK30KKyNlbmRpZgorCiB2b2lkIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpTZW1hcGhvcmUmJiByZXN1bWVEaXNwbGF5TGlzdFNl
bWFwaG9yZSkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZE1hcC5lbnN1cmUoaWRlbnRpZmllciwgWyZdKCkgewpAQCAtNDYzLDYgKzQ3OCwxMiBAQCBib29s
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIElQQwogICAgICAgICBtZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5UHJveHkoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisjaWYgSEFWRShBVkFTU0VUUkVB
REVSKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAg
ICAgICBpbWFnZURlY29kZXJBVkZQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IGRlY29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJl
dHVybiBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVj
b2Rlcik7CiB9CkBAIC01MTYsNiArNTM3LDEyIEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICNlbmRpZgorI2lmIEhBVkUoQVZBU1NFVFJFQURF
UikKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAg
ICAgaW1hZ2VEZWNvZGVyQVZGUHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
I2VuZGlmCiAKICAgICByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hTeW5jTWVz
c2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXgg
N2JhZGQzNzc2OWNmNTJmZDU0MGI0ZmI3NzdkMDg4NzQ2NjA0ZjU0Zi4uZTIwYWQzMmNiZDEzODRm
ZTEyOTI5NGVlZjU4ZjFiZTkzMjVjNjkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC01NCw2ICs1NCw3IEBAIGNs
YXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjsKIGNsYXNzIFJl
bW90ZUF1ZGlvU2Vzc2lvblByb3h5OwogY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJveHlNYW5h
Z2VyOwogY2xhc3MgUmVtb3RlQ0RNRmFjdG9yeVByb3h5OworY2xhc3MgUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGUHJveHk7CiBjbGFzcyBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk7CiBjbGFzcyBS
ZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHk7CiBjbGFzcyBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eTsKQEAgLTEwMiwxNSArMTAzLDE4IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICBSZW1vdGVMZWdhY3lDRE1GYWN0
b3J5UHJveHkmIGxlZ2FjeUNkbUZhY3RvcnlQcm94eSgpOwogI2VuZGlmCi0jaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCiAgICAgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeVBy
b3h5JiBtZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkoKTsKLSNlbmRpZgogICAg
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eSgpIHsgcmV0dXJuICptX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OyB9CiAKICNp
ZiBVU0UoQVVESU9fU0VTU0lPTikKICAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1hbmFnZXIm
IGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKTsKICNlbmRpZgogCisjaWYgSEFWRShBVkFTU0VUUkVBREVS
KQorICAgIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5JiBpbWFnZURlY29kZXJBVkZQcm94eSgp
OworI2VuZGlmCisKICAgICB2b2lkIHRlcm1pbmF0ZVdlYlByb2Nlc3MoKTsKIAogcHJpdmF0ZToK
QEAgLTIyMSw5ICsyMjUsMTEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRF
RF9NRURJQSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5
PiBtX2xlZ2FjeUNkbUZhY3RvcnlQcm94eTsKICNlbmRpZgotI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeVByb3h5PiBtX21lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eTsKKyNpZiBI
QVZFKEFWQVNTRVRSRUFERVIpCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5PiBtX2ltYWdlRGVjb2RlckFWRlByb3h5OwogI2VuZGlmCisKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeVByb3h5PiBtX21l
ZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUltYWdlRGVjb2RlckFWRlByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU1NmRmMDc2MjY0
NDZiOTE4NWFiYWQwMzlkOTVmOGIyMDcyNmFkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAKQEAg
LTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgiCisjaW5jbHVkZSAiUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEZWNvZGVyQVZGT2JqQy5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5OjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgIDogbV9jb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCit7Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGUHJveHk6OmNyZWF0ZURlY29kZXIoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBk
YXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXI+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBhdXRvIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgp
LCBkYXRhLnNpemUoKSk7CisgICAgYXV0byBpbWFnZURlY29kZXIgPSBJbWFnZURlY29kZXJBVkZP
YmpDOjpjcmVhdGUoYnVmZmVyLCBtaW1lVHlwZSwgQWxwaGFPcHRpb246OlByZW11bHRpcGxpZWQs
IEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uOjpJZ25vcmVkKTsKKworICAgIE9wdGlvbmFsPElt
YWdlRGVjb2RlcklkZW50aWZpZXI+IGltYWdlRGVjb2RlcklkZW50aWZpZXI7CisgICAgaWYgKGlt
YWdlRGVjb2RlcikgeworICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBJbWFnZURlY29kZXJJZGVu
dGlmaWVyOjpnZW5lcmF0ZSgpOworICAgICAgICBtX2ltYWdlRGVjb2RlcnMuYWRkKGlkZW50aWZp
ZXIsIFdURk1vdmUoaW1hZ2VEZWNvZGVyKSk7CisgICAgICAgIGltYWdlRGVjb2RlcklkZW50aWZp
ZXIgPSBpZGVudGlmaWVyOworICAgIH0KKworICAgIGNvbXBsZXRpb25IYW5kbGVyKGltYWdlRGVj
b2RlcklkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5Ojpk
ZWxldGVEZWNvZGVyKEltYWdlRGVjb2RlcklkZW50aWZpZXIpCit7Cit9CisKK3ZvaWQgUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGUHJveHk6OnNldEV4cGVjdGVkQ29udGVudFNpemUoY29uc3QgV2ViQ29y
ZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciYgaWRlbnRpZmllciwgbG9uZyBsb25nIGV4cGVjdGVk
Q29udGVudFNpemUpCit7CisgICAgQVNTRVJUKG1faW1hZ2VEZWNvZGVycy5jb250YWlucyhpZGVu
dGlmaWVyKSk7CisgICAgaWYgKCFtX2ltYWdlRGVjb2RlcnMuY29udGFpbnMoaWRlbnRpZmllcikp
CisgICAgICAgIHJldHVybjsKKworICAgIG1faW1hZ2VEZWNvZGVycy5nZXQoaWRlbnRpZmllcikt
PnNldEV4cGVjdGVkQ29udGVudFNpemUoZXhwZWN0ZWRDb250ZW50U2l6ZSk7Cit9CisKK3ZvaWQg
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OnNldERhdGEoY29uc3QgV2ViQ29yZTo6SW1hZ2VE
ZWNvZGVySWRlbnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBk
YXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKK3sKKyAgICBBU1NFUlQobV9pbWFnZURlY29kZXJz
LmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBpZiAoIW1faW1hZ2VEZWNvZGVycy5jb250YWlu
cyhpZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBidWZmZXIgPSBTaGFy
ZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgIG1faW1hZ2VE
ZWNvZGVycy5nZXQoaWRlbnRpZmllciktPnNldERhdGEoYnVmZmVyLCBhbGxEYXRhUmVjZWl2ZWQp
OworfQorCit2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpjcmVhdGVGcmFtZUltYWdl
QXRJbmRleChjb25zdCBXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyJiBpZGVudGlmaWVy
LCBzaXplX3QgaW5kZXgpCit7CisgICAgQVNTRVJUKG1faW1hZ2VEZWNvZGVycy5jb250YWlucyhp
ZGVudGlmaWVyKSk7CisgICAgaWYgKCFtX2ltYWdlRGVjb2RlcnMuY29udGFpbnMoaWRlbnRpZmll
cikpCisgICAgICAgIHJldHVybjsKKworICAgIG1faW1hZ2VEZWNvZGVycy5nZXQoaWRlbnRpZmll
ciktPmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KGluZGV4KTsKK30KKworfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29k
ZXJBVkZQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjMzNjViY2Y0ZWJjYTNiNTA1MWY3ZDZmMjdh
MTk4NDg1MGUzMWRjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgSEFW
RShBVkFTU0VUUkVBREVSKQorCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEZWNvZGVyQVZGT2Jq
Qy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEZWNvZGVySWRlbnRpZmllci5oPgorI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKKwor
Y2xhc3MgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJl
Y2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBs
aWNpdCBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Jik7CisgICAgdmlydHVhbCB+UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkoKSA9IGRlZmF1bHQ7
CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICB2b2lkIGNy
ZWF0ZURlY29kZXIoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpJbWFnZURlY29k
ZXJJZGVudGlmaWVyPik+JiYpOworICAgIHZvaWQgZGVsZXRlRGVjb2RlcihXZWJDb3JlOjpJbWFn
ZURlY29kZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIHNldEV4cGVjdGVkQ29udGVudFNpemUoY29u
c3QgV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciYsIGxvbmcgbG9uZyBleHBlY3RlZENv
bnRlbnRTaXplKTsKKyAgICB2b2lkIHNldERhdGEoY29uc3QgV2ViQ29yZTo6SW1hZ2VEZWNvZGVy
SWRlbnRpZmllciYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGJvb2wgYWxsRGF0YVJlY2Vp
dmVkKTsKKyAgICB2b2lkIGNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KGNvbnN0IFdlYkNvcmU6Oklt
YWdlRGVjb2RlcklkZW50aWZpZXImLCBzaXplX3QgaW5kZXgpOworCisgICAgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciwgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGVjb2Rl
ckFWRk9iakM+PiBtX2ltYWdlRGVjb2RlcnM7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxMDlhZDA0NjVlYjA4
ZTJkOGQ5YmJlY2VlMjEzNjAxNGFjMDU2YmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisKK21lc3NhZ2VzIC0+IFJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIENyZWF0ZURlY29k
ZXIoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIFN0cmluZyBtaW1lVHlwZSkg
LT4gKE9wdGlvbmFsPFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXI+IGlkZW50aWZpZXIp
IFN5bmNocm9ub3VzCisgICAgRGVsZXRlRGVjb2RlcihXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCisgICAgU2V0RXhwZWN0ZWRDb250ZW50U2l6ZShXZWJDb3JlOjpJ
bWFnZURlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGxvbmcgbG9uZyBleHBlY3RlZENvbnRl
bnRTaXplKQorICAgIFNldERhdGEoV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwgYm9vbCBhbGxEYXRh
UmVjZWl2ZWQpCisgICAgQ3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoV2ViQ29yZTo6SW1hZ2VEZWNv
ZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCB1bnNpZ25lZCBpbmRleCkKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlSW1h
Z2VEZWNvZGVyQVZGRmFjdG9yeVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9jb2NvYS9SZW1vdGVJbWFnZURlY29kZXJBVkZGYWN0b3J5UHJveHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFlZTgxYWI4N2E4ZWUwMGVjZmM4YzQzNTE3YTc3NDg1YTc0YTcxNWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGRmFjdG9yeVByb3h5LmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRkZhY3Rv
cnlQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2Nv
Y29hL1JlbW90ZUltYWdlRGVjb2RlckFWRkZhY3RvcnlQcm94eS5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZUltYWdlRGVjb2RlckFWRkZhY3RvcnlQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI1NDM4ZjRjYzY5MDAyZTY3YjAxMGIxNWViODgwZmZhYTI1NzA0M2EKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGRmFjdG9yeVByb3h5LmgKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKaW5kZXggZWM4YmNmMDg3ZGYxNmRmNjBkYmUwMDgwZTRjZWIwNjFkMTc2OGZmNy4uZTZmYTU5
NzI4YWJjNmVlNGFmZDE2NzVkMTMxMzk1YjUxYWMyM2Q2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yNjcsNiArMjY3LDcgQEAgZGVmIHR5cGVzX3RoYXRf
Y2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OkZldGNoSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXInLAogICAgICAgICAn
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJywKKyAgICAgICAgJ1dlYkNvcmU6
OkltYWdlRGVjb2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6TGliV2ViUlRDU29j
a2V0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQbGF5YmFja1RhcmdldENsaWVudENv
bnRleHRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmll
cicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA5ZmNiZjgxMDUyNDJiNmYyODc0OGY5ODA2NWViNDAwMzVjYzI0ZGJkLi5hZDliYjEwNzRl
ODFkMDFiY2U0ZWM3MzQwNDZkZTlhOTRjYWRkMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQyOSw2ICs0MjksMTIgQEAKIAkJMUQw
MzY5QUMyNTY3OTY5OTAwNDQwMzcyIC8qIFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
MDM2OUFBMjU2Nzk0M0MwMDQ0MDM3MiAvKiBSZW1vdGVUZXh0VHJhY2tQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CiAJCTFEMDM2OUFEMjU2Nzk2QUIwMDQ0MDM3MiAvKiBSZW1vdGVWaWRl
b1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUQwMzY5QTUyNTY3OTQzQjAwNDQwMzcyIC8qIFJlbW90ZVZp
ZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFEMDM2OUFFMjU2Nzk2
QjkwMDQ0MDM3MiAvKiBSZW1vdGVBdWRpb1RyYWNrUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQwMzY5QTIyNTY3
OTQzQjAwNDQwMzcyIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CisJCTFENDc2NTdCMjVDQjNBRjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJB
VkYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0
NzY1NzkyNUNCM0FGNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAgKi87IH07
CisJCTFENDc2NTg2MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0NzY1
ODQyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmggKi87IH07
CisJCTFENDc2NTg3MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDQ3
NjU4NTI1Q0NBNDE2MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuY3BwICov
OyB9OworCQkxRDQ3NjU5MjI1Q0NDRTkzMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUQ0NzY1OEYyNUNDQ0U5MjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVj
b2RlckFWRlByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMUQ0NzY1OTMyNUNDQ0U5
MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENDc2NTkwMjVDQ0NFOTMw
MDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzLmggKi87IH07CisJ
CTFENDc2NTk0MjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1l
c3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUQ0NzY1OTEyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5TWVzc2FnZXNSZXBsaWVzLmggKi87IH07CiAJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0EyNSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QjIzQTlERjU1MDA3
MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OwogCQkxRDRENzM3MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMUQ0RDczNzYyM0E5RUQxODAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKQEAgLTI5
NzEsNiArMjk3NywxNCBAQAogCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEM0FCMDRE
MjNBQjAwNzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUQzQUIwNEUyM0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENDc2NTc4MjVDQjNBRjYwMDdBRjMx
MiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENDc2NTc5MjVDQjNB
RjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkYuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUQ0NzY1ODQyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENDc2NTg1MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJ
bWFnZURlY29kZXJBVkZQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJbWFnZURl
Y29kZXJBVkZQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENDc2NThD
MjVDQ0E2OTgwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0NzY1OEYyNUNDQ0U5MjAwN0FGMzEyIC8qIFJlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OworCQkxRDQ3NjU5MDI1Q0NDRTkzMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1v
dGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0NzY1OTEyNUNDQ0U5MzAwN0FGMzEyIC8qIFJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNSZXBs
aWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUltYWdlRGVjb2RlckFW
RlByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhw
bGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxRDRENzM2QzIzQTlERjYwMDA3MTdB
MjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMjk4Myw3
ICsyOTk3LDcgQEAKIAkJMURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQTQwODlFMjNBODI3NzgwMDU4Qzk1
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFERDJBNjM2MjU1REU2NzUwMEZGN0I2RiAvKiBNZWRpYVNv
dXJjZVByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVkaWFTb3VyY2VQcml2
YXRlUmVtb3RlLmNwcDsgcGF0aCA9IC9Wb2x1bWVzL0RhdGEvd2Via2l0L09wZW5Tb3VyY2UvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQkxREQyQTYzNjI1NURFNjc1MDBG
RjdCNkYgLyogTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFERDJBNjM3MjU1REU2NzUwMEZGN0I2RiAvKiBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFERDJBNjM5MjU1REU2RDEwMEZGN0I2RiAvKiBTb3VyY2VCdWZm
ZXJQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1v
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUREMkE2M0EyNTVERTZEMTAwRkY3
QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01OTgxLDYgKzU5OTUsOCBAQAogCQkJCUNEQUMyMEJEMjNGQzJGNzQwMDIxREVFMyAvKiBS
ZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uaCAqLywKIAkJCQlDRDQ2NjE3RjI0MDEwNDU4MDA0N0NB
MzUgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLm1lc3NhZ2VzLmluICovLAogCQkJCUNEQUMy
MEJDMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25JZGVudGlmaWVy
LmggKi8sCisJCQkJMUQ0NzY1NzkyNUNCM0FGNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2Rl
ckFWRi5jcHAgKi8sCisJCQkJMUQ0NzY1NzgyNUNCM0FGNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdl
RGVjb2RlckFWRi5oICovLAogCQkJCUNERTU1NEVCMjQwNTgxODMwMDhBM0REQiAvKiBSZW1vdGVM
ZWdhY3lDRE0uY3BwICovLAogCQkJCUNERTU1NEVBMjQwNTgxODMwMDhBM0REQiAvKiBSZW1vdGVM
ZWdhY3lDRE0uaCAqLywKIAkJCQlDREU1NTRFMzI0MDU4MTE0MDA4QTNEREIgLyogUmVtb3RlTGVn
YWN5Q0RNRmFjdG9yeS5jcHAgKi8sCkBAIC02MDQ2LDYgKzYwNjIsOSBAQAogCQkJCUNEQUMyMDgz
MjNGQjIxMzQwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eS5jcHAgKi8sCiAJCQkJQ0RBQzIwODIy
M0ZCMjEzNDAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5LmggKi8sCiAJCQkJQ0RBQzIwODYyM0ZC
MjE1ODAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTFENDc2
NTg1MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAgKi8s
CisJCQkJMUQ0NzY1ODQyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5LmggKi8sCisJCQkJMUQ0NzY1OEMyNUNDQTY5ODAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVj
b2RlckFWRlByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUNERTU1NTFEMjQwNUEzQjcwMDhBM0RE
QiAvKiBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHkuY3BwICovLAogCQkJCUNERTU1NTFDMjQw
NUEzQjcwMDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHkuaCAqLywKIAkJCQlD
REU1NTUxQjI0MDVBM0I3MDA4QTNEREIgLyogUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5Lm1l
c3NhZ2VzLmluICovLApAQCAtMTA4MDQsNiArMTA4MjMsOSBAQAogCQkJCUNEQUMyMEVGMjNGQzM4
MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
Q0RBQzIwRjQyM0ZDMzgzQTAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZXMuaCAqLywK
IAkJCQlDREFDMjBGMDIzRkMzODM5MDAyMURFRTMgLyogUmVtb3RlQ0RNUHJveHlNZXNzYWdlc1Jl
cGxpZXMuaCAqLywKKwkJCQkxRDQ3NjU4RjI1Q0NDRTkyMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTFENDc2NTkwMjVDQ0NF
OTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzLmggKi8sCisJ
CQkJMUQ0NzY1OTEyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMEZGMjRBMkIxODc5RTRCQzAwM0FCRjBDIC8qIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJ
CTBGRjI0QTJDMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDREU1NTUyOTI0MDZCODk2MDA4QTNEREIgLyogUmVtb3Rl
TGVnYWN5Q0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTExODY2LDYg
KzExODg4LDkgQEAKIAkJCQlDREFDMjBCNDIzRkI1OEYyMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5z
dGFuY2VQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQ0EyM0ZDMkY3NTAwMjFERUUz
IC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIw
QzkyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbklkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFENDc2NTg2MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJ
bWFnZURlY29kZXJBVkZQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQ0NzY1OTMyNUNDQ0U5
MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFENDc2NTk0MjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29k
ZXJBVkZQcm94eU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0N0I1NkQx
ODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmVDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUIxNkFFQTE2NEIzQTg4MDAyOTBE
NjIgLyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzc1Myw2
ICsxMzc3OCw5IEBACiAJCQkJQ0Q0NjYxODMyNDAxMEE2NzAwNDdDQTM1IC8qIFJlbW90ZUNETUlu
c3RhbmNlU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREFD
MjBGOTIzRkM3MjZDMDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBQzIwRkEyM0ZDNzI2QzAwMjFE
RUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTFENDc2NTdCMjVDQjNBRjYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkYuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMUQ0NzY1ODcyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFENDc2NTkyMjVDQ0NF
OTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDcyQTFGQTIxMkJGNDZFMDA1MTdBMjAgLyogUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlF
NEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4OEQgLyog
UmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kOTVmZTI0ODE4NWY0Yzc1MGZkZGFiMDRkNzU4NTcxMTY0ZTc4MTg0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVJbWFnZURlY29kZXJBVkYuY3BwCkBAIC0wLDAgKzEsMTkzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRi5oIgor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisKKyNpbmNs
dWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQVZBc3NldE1J
TUVUeXBlQ2FjaGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHlwZXMuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1VUSVV0aWxpdGllcy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK1JlZlB0cjxSZW1vdGVJbWFnZURlY29kZXJBVkY+IFJlbW90ZUlt
YWdlRGVjb2RlckFWRjo6Y3JlYXRlKFdlYlByb2Nlc3MmIHdlYlByb2Nlc3MsIFNoYXJlZEJ1ZmZl
ciYgZGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgQWxwaGFPcHRpb24gYWxwaGFPcHRpb24s
IEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKQor
eworICAgIGF1dG8mIGdwdVByb2Nlc3NDb25uZWN0aW9uID0gd2ViUHJvY2Vzcy5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpOworICAgIE9wdGlvbmFsPEltYWdlRGVjb2RlcklkZW50aWZpZXI+
IGltYWdlRGVjb2RlcklkZW50aWZpZXI7CisgICAgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlIGRhdGFSZWZlcmVuY2UgeyBkYXRhIH07CisgICAgaWYgKCFncHVQcm9jZXNzQ29ubmVjdGlv
bi5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5OjpDcmVhdGVEZWNvZGVyKGRhdGFSZWZlcmVuY2UsIG1pbWVUeXBlKSwgTWVzc2FnZXM6OlJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpDcmVhdGVEZWNvZGVyOjpSZXBseShpbWFnZURlY29k
ZXJJZGVudGlmaWVyKSwgMCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFp
bWFnZURlY29kZXJJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUltYWdlRGVjb2RlckFWRihncHVQcm9jZXNzQ29ubmVj
dGlvbiwgKmltYWdlRGVjb2RlcklkZW50aWZpZXIsIGRhdGEsIG1pbWVUeXBlLCBhbHBoYU9wdGlv
biwgZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pKTsKK30KKworUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGOjpSZW1vdGVJbWFnZURlY29kZXJBVkYoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nl
c3NDb25uZWN0aW9uLCBJbWFnZURlY29kZXJJZGVudGlmaWVyIGltYWdlRGVjb2RlcklkZW50aWZp
ZXIsIFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIEFscGhhT3B0aW9uLCBH
YW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbikKKyAgICA6IEltYWdlRGVjb2RlcigpCisgICAgLCBt
X2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQorICAgICwgbV9pZGVu
dGlmaWVyKGltYWdlRGVjb2RlcklkZW50aWZpZXIpCisgICAgLCBtX21pbWVUeXBlKG1pbWVUeXBl
KQorICAgICwgbV91dGkoV2ViQ29yZTo6VVRJRnJvbU1JTUVUeXBlKG1pbWVUeXBlKSkKK3sKK30K
KworYm9vbCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSkKK3sKKyAgICAvLyBUT0RPOiBXZSBtYXkgbmVlZCB0byByZW1vdmUgQVZBc3Nl
dE1JTUVUeXBlQ2FjaGUgaW4gdGhlIFdlYiBwcm9jZXNzCisgICAgcmV0dXJuIEFWQXNzZXRNSU1F
VHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKG1pbWVUeXBlKSAhPSBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOworfQorCitib29sIFJlbW90
ZUltYWdlRGVjb2RlckFWRjo6c3VwcG9ydHNNZWRpYVR5cGUoTWVkaWFUeXBlIHR5cGUpCit7Cisg
ICAgLy8gVE9ETzogV2UgbWF5IG5lZWQgdG8gcmVtb3ZlIEFWQXNzZXRNSU1FVHlwZUNhY2hlIGlu
IHRoZSBXZWIgcHJvY2VzcworICAgIHJldHVybiB0eXBlID09IE1lZGlhVHlwZTo6VmlkZW8gJiYg
QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmlzQXZhaWxhYmxlKCk7Cit9CisKK0Vu
Y29kZWREYXRhU3RhdHVzIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZW5jb2RlZERhdGFTdGF0dXMo
KSBjb25zdAoreworICAgIGlmICghbV9mcmFtZUltYWdlcy5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiBFbmNvZGVkRGF0YVN0YXR1czo6Q29tcGxldGU7CisgICAgaWYgKG1fc2l6ZSkKKyAgICAg
ICAgcmV0dXJuIEVuY29kZWREYXRhU3RhdHVzOjpTaXplQXZhaWxhYmxlOworICAgIC8vIGlmICgp
CisgICAgLy8gICAgcmV0dXJuIEVuY29kZWREYXRhU3RhdHVzOjpUeXBlQXZhaWxhYmxlOworCisg
ICAgcmV0dXJuIEVuY29kZWREYXRhU3RhdHVzOjpVbmtub3duOworfQorCit2b2lkIFJlbW90ZUlt
YWdlRGVjb2RlckFWRjo6c2V0RW5jb2RlZERhdGFTdGF0dXNDaGFuZ2VDYWxsYmFjayhXVEY6OkZ1
bmN0aW9uPHZvaWQoRW5jb2RlZERhdGFTdGF0dXMpPiYmIGNhbGxiYWNrKQoreworICAgIG1fZW5j
b2RlZERhdGFTdGF0dXNDaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwor
SW50U2l6ZSBSZW1vdGVJbWFnZURlY29kZXJBVkY6OnNpemUoKSBjb25zdAoreworICAgIGlmICht
X3NpemUpCisgICAgICAgIHJldHVybiBtX3NpemUudmFsdWUoKTsKKyAgICByZXR1cm4gSW50U2l6
ZSgpOworfQorCitzaXplX3QgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUNvdW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZUltYWdlcy5zaXplKCk7Cit9CisKK1JlcGV0aXRpb25D
b3VudCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OnJlcGV0aXRpb25Db3VudCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fZnJhbWVJbWFnZXMuc2l6ZSgpID4gMSA/IFJlcGV0aXRpb25Db3VudEluZmlu
aXRlIDogUmVwZXRpdGlvbkNvdW50Tm9uZTsKK30KKworU3RyaW5nIFJlbW90ZUltYWdlRGVjb2Rl
ckFWRjo6dXRpKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91dGk7Cit9CisKK1N0cmluZyBSZW1v
dGVJbWFnZURlY29kZXJBVkY6OmZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gTUlNRVR5cGVSZWdpc3RyeTo6cHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUobV9taW1l
VHlwZSk7Cit9CisKK0ludFNpemUgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZVNpemVBdElu
ZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2l6ZSgp
OworfQorCitib29sIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRl
eChzaXplX3QpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK0ltYWdlRGVjb2Rlcjo6RnJhbWVNZXRhZGF0YSBSZW1vdGVJbWFnZURlY29kZXJB
VkY6OmZyYW1lTWV0YWRhdGFBdEluZGV4KHNpemVfdCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9
OworfQorCitTZWNvbmRzIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVEdXJhdGlvbkF0SW5k
ZXgoc2l6ZV90KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHsg
fTsKK30KKworYm9vbCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lSGFzQWxwaGFBdEluZGV4
KHNpemVfdCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lQWxsb3dTdWJzYW1wbGlu
Z0F0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAoreworICAgIHJldHVybiBpbmRleCA8IG1fZnJh
bWVJbWFnZXMuc2l6ZSgpOworfQorCit1bnNpZ25lZCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZy
YW1lQnl0ZXNBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitQbGF0Zm9ybUltYWdlUHRyIFJl
bW90ZUltYWdlRGVjb2RlckFWRjo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90IGluZGV4
LCBTdWJzYW1wbGluZ0xldmVsLCBjb25zdCBEZWNvZGluZ09wdGlvbnMmKQoreworICAgIGlmIChp
bmRleCA+PSAwICYmIGluZGV4IDwgbV9mcmFtZUltYWdlcy5zaXplKCkpCisgICAgICAgIHJldHVy
biBtX2ZyYW1lSW1hZ2VzW2luZGV4XTsKKworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpDcmVh
dGVGcmFtZUltYWdlQXRJbmRleChtX2lkZW50aWZpZXIsIGluZGV4KSwgMCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpzZXRFeHBlY3RlZENv
bnRlbnRTaXplKGxvbmcgbG9uZyBleHBlY3RlZENvbnRlbnRTaXplKQoreworICAgIG1fZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUltYWdlRGVj
b2RlckFWRlByb3h5OjpTZXRFeHBlY3RlZENvbnRlbnRTaXplKG1faWRlbnRpZmllciwgZXhwZWN0
ZWRDb250ZW50U2l6ZSksIDApOworfQorCit2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6c2V0
RGF0YShTaGFyZWRCdWZmZXImIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQoreworICAgIElQ
Qzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlIHsgZGF0YSB9OworICAg
IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZUltYWdlRGVjb2RlckFWRlByb3h5OjpTZXREYXRhKG1faWRlbnRpZmllciwgZGF0YVJlZmVyZW5j
ZSwgYWxsRGF0YVJlY2VpdmVkKSwgMCk7CisKKyAgICBtX2lzQWxsRGF0YVJlY2VpdmVkID0gYWxs
RGF0YVJlY2VpdmVkOworfQorCit2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y2xlYXJGcmFt
ZUJ1ZmZlckNhY2hlKHNpemVfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVJbWFnZURlY29kZXJBVkYuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdhOWE0NjBjZTU2MDI0YzRl
NzZiNGVmZTVlYTM3MDJjNzdhNjU2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmgKQEAgLTAsMCArMSw5
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRGVjb2Rl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEZWNvZGVySWRlbnRpZmllci5oPgorI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb247CitjbGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBSZW1vdGVJbWFnZURl
Y29kZXJBVkYgOiBwdWJsaWMgV2ViQ29yZTo6SW1hZ2VEZWNvZGVyIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmUHRyPFJlbW90ZUltYWdlRGVjb2RlckFWRj4gY3JlYXRlKFdlYlByb2Nlc3MmLCBX
ZWJDb3JlOjpTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBXZWJDb3JlOjpB
bHBoYU9wdGlvbiwgV2ViQ29yZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pOworICAgIHZp
cnR1YWwgflJlbW90ZUltYWdlRGVjb2RlckFWRigpID0gZGVmYXVsdDsKKworICAgIHN0YXRpYyBi
b29sIGNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CisgICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNNZWRpYVR5cGUoTWVkaWFUeXBlKTsKKyAgICAvLyBzdGF0aWMgYm9vbCBzdXBw
b3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJik7CisgICAgCisgICAgc2l6ZV90IGJ5dGVz
RGVjb2RlZFRvRGV0ZXJtaW5lUHJvcGVydGllcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7
IH0KKworICAgIFdlYkNvcmU6OkVuY29kZWREYXRhU3RhdHVzIGVuY29kZWREYXRhU3RhdHVzKCkg
Y29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRFbmNvZGVkRGF0YVN0YXR1c0NoYW5nZUNhbGxiYWNr
KFdURjo6RnVuY3Rpb248dm9pZChXZWJDb3JlOjpFbmNvZGVkRGF0YVN0YXR1cyk+JiYpIGZpbmFs
OworICAgIFdlYkNvcmU6OkludFNpemUgc2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIHNpemVfdCBm
cmFtZUNvdW50KCkgY29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6UmVwZXRpdGlvbkNvdW50IHJl
cGV0aXRpb25Db3VudCgpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyB1dGkoKSBjb25zdCBmaW5h
bDsKKyAgICBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdCBmaW5hbDsKKyAgICBPcHRp
b25hbDxXZWJDb3JlOjpJbnRQb2ludD4gaG90U3BvdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsgfQorCisgICAgV2ViQ29yZTo6SW50U2l6ZSBmcmFtZVNpemVBdEluZGV4KHNp
emVfdCwgV2ViQ29yZTo6U3Vic2FtcGxpbmdMZXZlbCA9IFdlYkNvcmU6OlN1YnNhbXBsaW5nTGV2
ZWw6OkRlZmF1bHQpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgZnJhbWVJc0NvbXBsZXRlQXRJbmRl
eChzaXplX3QpIGNvbnN0IGZpbmFsOworICAgIEZyYW1lTWV0YWRhdGEgZnJhbWVNZXRhZGF0YUF0
SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKKworICAgIFNlY29uZHMgZnJhbWVEdXJhdGlvbkF0
SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKKyAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4
KHNpemVfdCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBmcmFtZUFsbG93U3Vic2FtcGxpbmdBdElu
ZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CisgICAgdW5zaWduZWQgZnJhbWVCeXRlc0F0SW5kZXgo
c2l6ZV90LCBXZWJDb3JlOjpTdWJzYW1wbGluZ0xldmVsID0gV2ViQ29yZTo6U3Vic2FtcGxpbmdM
ZXZlbDo6RGVmYXVsdCkgY29uc3QgZmluYWw7CisKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybUltYWdl
UHRyIGNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCwgV2ViQ29yZTo6U3Vic2FtcGxpbmdM
ZXZlbCA9IFdlYkNvcmU6OlN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQsIGNvbnN0IFdlYkNvcmU6
OkRlY29kaW5nT3B0aW9ucyYgPSBXZWJDb3JlOjpEZWNvZGluZ09wdGlvbnMoV2ViQ29yZTo6RGVj
b2RpbmdNb2RlOjpTeW5jaHJvbm91cykpIGZpbmFsOworCisgICAgdm9pZCBzZXRFeHBlY3RlZENv
bnRlbnRTaXplKGxvbmcgbG9uZykgZmluYWw7CisgICAgdm9pZCBzZXREYXRhKFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlciYsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKSBmaW5hbDsKKyAgICBib29sIGlzQWxs
RGF0YVJlY2VpdmVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc0FsbERhdGFSZWNlaXZlZDsg
fQorICAgIHZvaWQgY2xlYXJGcmFtZUJ1ZmZlckNhY2hlKHNpemVfdCkgZmluYWw7CisKK3ByaXZh
dGU6CisgICAgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgV2Vi
Q29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciwgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgV2ViQ29yZTo6QWxwaGFPcHRpb24sIFdlYkNvcmU6OkdhbW1h
QW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKKworICAgIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBtX2dw
dVByb2Nlc3NDb25uZWN0aW9uOworICAgIFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXIg
bV9pZGVudGlmaWVyOworCisgICAgU3RyaW5nIG1fbWltZVR5cGU7CisgICAgU3RyaW5nIG1fdXRp
OworICAgIGJvb2wgbV9pc0FsbERhdGFSZWNlaXZlZCB7IGZhbHNlIH07CisgICAgV1RGOjpGdW5j
dGlvbjx2b2lkKFdlYkNvcmU6OkVuY29kZWREYXRhU3RhdHVzKT4gbV9lbmNvZGVkRGF0YVN0YXR1
c0NoYW5nZWRDYWxsYmFjazsKKyAgICBWZWN0b3I8V2ViQ29yZTo6UGxhdGZvcm1JbWFnZVB0cj4g
bV9mcmFtZUltYWdlczsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBtX3NpemU7Cit9
OworCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRl
eCAzM2NhOGU3M2I2ZWQwNTViNDgyYjdmMTAxMWExZjVkODk4MjI2ZWQzLi4zMDJhZTM2OWJhN2Qy
NTBkN2Y1NTU0YTI2MmIxN2FkZWYyYzU3YjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCkBAIC0xOTgsNiArMTk4LDExIEBACiAjaW5jbHVkZSAiQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3IuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBIQVZFKEFWQVNTRVRSRUFERVIpCisjaW5jbHVkZSAiUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXIuaD4KKyNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAjaW5jbHVkZSA8V2ViQ29yZS9WUDlVdGlsaXRpZXNDb2NvYS5oPgogI2VuZGlm
CkBAIC0xOTM4LDcgKzE5NDMsMjEgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRVc2VHUFVQcm9jZXNz
Rm9yTWVkaWEoYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVkaWEpCiAgICAgZWxzZQogICAgICAgICBM
ZWdhY3lDRE06OnJlc2V0RmFjdG9yaWVzKCk7CiAjZW5kaWYKLSAgICAKKworI2lmIEhBVkUoQVZB
U1NFVFJFQURFUikKKyAgICBpZiAodXNlR1BVUHJvY2Vzc0Zvck1lZGlhKSB7CisgICAgICAgIElt
YWdlRGVjb2Rlcjo6Y2xlYXJGYWN0b3JpZXMoKTsKKyAgICAgICAgSW1hZ2VEZWNvZGVyOjppbnN0
YWxsRmFjdG9yeSh7CisgICAgICAgICAgICBSZW1vdGVJbWFnZURlY29kZXJBVkY6OnN1cHBvcnRz
TWVkaWFUeXBlLAorICAgICAgICAgICAgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpjYW5EZWNvZGVU
eXBlLAorICAgICAgICAgICAgW10oU2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBBbHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRp
b24gZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpjcmVhdGUoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCksIGRh
dGEsIG1pbWVUeXBlLCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pOwor
ICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgSW1hZ2VEZWNv
ZGVyOjpyZXNldEZhY3RvcmllcygpOworI2VuZGlmCisKICAgICBpZiAodXNlR1BVUHJvY2Vzc0Zv
ck1lZGlhKQogICAgICAgICBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLm1lZGlhRW5naW5l
Q29uZmlndXJhdGlvbkZhY3RvcnkoKS5yZWdpc3RlckZhY3RvcnkoKTsKICAgICBlbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419556</attachid>
            <date>2021-02-07 22:44:43 -0800</date>
            <delta_ts>2021-02-09 14:05:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221317-20210207224442.patch</filename>
            <type>text/plain</type>
            <size>90232</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFkMmQ0ZjgwZWM2ZDU0
NTFiM2M4MzJmZjg1OWEwZmY2OWRjMTNhNi4uZDFlYzNmNjk1M2M4NWRhZjI1YmIzNzc2YWRhZTAx
MDk0OGQ2NzlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTAyLTA3ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIFJ1biBJbWFnZURl
Y29kZXJBVkZPYmpDIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZ5IGBJbWFnZURlY29kZXJgIGFuZCBgSW1hZ2VE
ZWNvZGVyQVZGT2JqQ2AgY2xhc3NlcyBpbiBvcmRlciB0byBydW4gYEltYWdlRGVjb2RlckFWRk9i
akNgCisgICAgICAgIGluIHRoZSBHUFUgcHJvY2Vzcy4KKyAgICAgICAgLSBBZGQgaW5zdGFsbC9y
ZXNldCBmYWN0b3J5IG1ldGhvZHMgdG8gYEltYWdlRGVjb2RlcmAgY2xhc3MuCisgICAgICAgIC0g
QWRkIGEgc3RydWN0IGBGcmFtZUluZm9gLgorICAgICAgICAtIEV4cG9ydCBzb21lIG1ldGhvZHMg
b2YgYEltYWdlRGVjb2RlckFWRk9iakNgIHRvIFdlYktpdC4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGxhdGZvcm1SZWdpc3RlckZhY3Rv
cmllcyk6CisgICAgICAgIChXZWJDb3JlOjppbnN0YWxsZWRGYWN0b3JpZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjppbnN0YWxsRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZURlY29kZXI6OnJlc2V0RmFjdG9yaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
RGVjb2Rlcjo6Y2xlYXJGYWN0b3JpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpzdXBwb3J0c01lZGlh
VHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXI6OkZyYW1lSW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2Rlcjo6RnJhbWVJbmZvOjpkZWNvZGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2RlcklkZW50aWZpZXIuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW1hZ2VEZWNvZGVy
QVZGT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyQVZGT2JqQzo6aGFzVHJh
Y2sgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0ltYWdlRGVjb2RlckFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJB
VkZPYmpDOjpmcmFtZUluZm9zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2Rl
ckFWRk9iakM6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24uaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW06Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246OmVuc3VyZURlY29t
cHJlc3Npb25TZXNzaW9uRm9yU2FtcGxlKToKKyAgICAgICAgVXBkYXRlIHRoZSBhdHRyaWJ1dGUg
c28gdGhhdCB3ZSBjYW4gY3JlYXRlIGFuIElPU3VyZmFjZSBmcm9tIGEgZGVjb2RlZCBmcmFtZS4K
KwogMjAyMS0wMi0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBdm9pZCBhbiBhbmNlc3RvciB3YWxrIGluIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OmNvbXB1dGVXaWxsVmFsaWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkZDBlZjA1MmVlNTY4Y2QwZjE4YTli
NGZjMGJmZDg3YmFmYjRkZWVjLi5hMTFhMDYzMDVjZTU4NWM5ZTlkNTliODU0MmM5OTE5OWI0NzRk
Yjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDIxLTAyLTA3ICBQZW5nIExpdSAgPHBl
bmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIFJ1biBJbWFnZURlY29kZXJBVkZP
YmpDIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIxMzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBzdXBwb3J0IHRvIHJ1biBgSW1hZ2VE
ZWNvZGVyQVZGT2JqQ2AgaW4gdGhlIEdQVSBwcm9jZXNzIHdoZW4gdGhlCisgICAgICAgICJHUFUg
UHJvY2VzczogTWVkaWEiIHByZWZlcmVuY2UgaXMgb24uIFRoZSBgUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGYCBydW5uaW5nIGluIHRoZSBXZWIKKyAgICAgICAgcHJvY2VzcyBmb3J3YXJkcyB2aWRlbyBk
YXRhIHRvIHRoZSBgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlgIHJ1bm5pbmcgaW4gdGhlIEdQ
VSBwcm9jZXNzLAorICAgICAgICB3aGljaCBwYXJzZXMgdGhlIGRhdGEgYW5kIHJldHVybnMgZnJh
bWUgaW5mb3JtYXRpb24gKCJoYXNBbHBoYSIgYW5kICJkdXJhdGlvbiIpIHRvIHRoZQorICAgICAg
ICBXZWIgcHJvY2Vzcy4gYFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5YCB3aWxsIGdlbmVyYXRl
IChkZWNvZGUpIGZyYW1lcyAoaW1hZ2VzKSBhZnRlcgorICAgICAgICByZWNlaXZpbmcgcmVxdWVz
dHMgZnJvbSBgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGYC4gVGhlIGRlY29kZWQgZnJhbWVzIGFyZSB0
cmFuc2ZlcnJlZCB0bworICAgICAgICB0aGUgV2ViIHByb2Nlc3MgdGhyb3VnaCBJT1N1cmZhY2Vz
LCBhbmQgdGhlIGZyYW1lcyB3aWxsIGJlIGNhY2hlZCBpbiB0aGUgV2ViIHByb2Nlc3MuCisKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjppbWFnZURlY29k
ZXJBVkZQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmRpc3BhdGNoTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRpc3BhdGNoU3luY01lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVJbWFnZURlY29kZXJBVkZQcm94eTo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6Y3JlYXRlRGVjb2Rlcik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpkZWxldGVEZWNv
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OmVuY29k
ZWREYXRhU3RhdHVzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5OjpzZXRFeHBlY3RlZENvbnRlbnRTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OnNldERhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVJbWFnZURlY29kZXJBVkZQcm94eTo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaDogQWRkZWQu
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5t
ZXNzYWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUlt
YWdlRGVjb2RlckFWRjo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjp+UmVtb3RlSW1hZ2VEZWNvZGVyQVZGKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpncHVQcm9jZXNzQ29ubmVjdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y2FuRGVjb2RlVHlw
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6c3VwcG9ydHNNZWRp
YVR5cGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmVuY29kZWRE
YXRhU3RhdHVzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZG
OjpzZXRFbmNvZGVkRGF0YVN0YXR1c0NoYW5nZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpzaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUNvdW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpyZXBldGl0aW9uQ291bnQgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OnV0aSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZmlsZW5hbWVFeHRlbnNpb24gY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lU2l6ZUF0SW5kZXggY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lSXNDb21w
bGV0ZUF0SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJB
VkY6OmZyYW1lTWV0YWRhdGFBdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUR1cmF0aW9uQXRJbmRleCBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVIYXNBbHBoYUF0SW5kZXggY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lQWxsb3dTdWJz
YW1wbGluZ0F0SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29k
ZXJBVkY6OmZyYW1lQnl0ZXNBdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6c2V0RXhwZWN0ZWRDb250ZW50U2l6ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6c2V0RGF0YSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y2xlYXJGcmFtZUJ1ZmZlckNhY2hlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjplbmNvZGVkRGF0YVN0YXR1c0No
YW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRi5oOiBBZGRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUlt
YWdlRGVjb2RlckFWRk1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6Y3JlYXRlSW1hZ2VEZWNvZGVyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6ZGVsZXRlUmVtb3RlSW1hZ2VEZWNv
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6UmVt
b3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdl
RGVjb2RlckFWRk1hbmFnZXI6On5SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjpncHVQcm9j
ZXNzQ29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRk1hbmFnZXI6OnNldFVzZUdQVVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJ
bWFnZURlY29kZXJBVkZNYW5hZ2VyOjplbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIuaDog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOiBGaXggdW5pZmllZCBidWlsZCBmYWls
dXJlcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZh
dGUuaDogRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpzZXRVc2VHUFVQcm9jZXNzRm9yTWVkaWEpOgorCiAyMDIxLTAyLTAzICBUaW1vdGh5IEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVE
OiAhc2l6ZS5pc0VtcHR5KCkgdW5kZXIgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDIzZGNiZmVkMTc1MGEzZmY1ZDY2ODAzZGNiZmI2NWIyMmZlZGUwYzEuLmRkY2QxYjM2MDlkNjRj
OTU5NGExMzg1ZWNiYTJmNzk1MzQ5YWU4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzMiw2ICs2MzIsNyBAQAogCQkxRDJG
OEUwNDIzNDQ3NTE2MDA5OTNCNjggLyogRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkNBMjMzQzNE
MEIwMEVFMjI4RCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEMkY4RTA1MjM0NDc1MUQwMDk5
M0I2OCAvKiBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0MyMzNDM0QyMDAwRUUyMjhE
IC8qIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDYyMzQ0NzUyMzAwOTkzQjY4
IC8qIFBpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkNEMjMzQzNEMkEwMEVFMjI4RCAvKiBQaWN0dXJlSW5Q
aWN0dXJlV2luZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMUQ0NzY1OEUyNUNDQTc3ODAwN0FGMzEyIC8qIEltYWdlRGVjb2RlcklkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENDc2
NThEMjVDQ0E3NzgwMDdBRjMxMiAvKiBJbWFnZURlY29kZXJJZGVudGlmaWVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQ5RjBGQzEyMTIyMDI5
QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3ODBFIC8qIFNoYXJlRGF0YS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEQUIzMTEy
MjUxRDZCRjMwMEZDOTQ4NSAvKiBXZWJWaWRlb0NvbnRhaW5lckxheWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCMzFBMTIzNzlEQzgzMDA4ODNG
REUgLyogV2ViVmlkZW9Db250YWluZXJMYXllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEQUIzMTE0MjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRl
b0xheWVyTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMURBQjMxMTMyNTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQyMTksOCAr
NDIyMCw4IEBACiAJCUNEMTI3REVFMTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVl
bldpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxN0E0NUQy
MTM3NDA4MTAwNzlFQzdCIC8qIFVuaWZpZWRTb3VyY2U2Mi1tbS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTdBNDU5MjEzNzQwMTYwMDc5RUM3QiAv
KiBVbmlmaWVkU291cmNlNjItbW0ubW0gKi87IH07CiAJCUNEMTlBMjY4MUExM0U3MDAwMDhENjUw
RSAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNjcxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJQ0QxOUZFQTgxRjU3Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUZFQTYxRjU3
Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oICovOyB9OwotCQlDRDE5RkVBRTFGNTc0QjZE
MDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUZFQUMxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdl
RGVjb2RlckFWRk9iakMuaCAqLzsgfTsKKwkJQ0QxOUZFQTgxRjU3Mzk3MjAwMEM0MkZCIC8qIElt
YWdlRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0QxOUZFQTYxRjU3Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEMTlGRUFFMUY1NzRCNkQw
MDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVBQzFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VE
ZWNvZGVyQVZGT2JqQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUNEMTlGRUFGMUY1NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpD
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUZF
QUQxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMubW0gKi87IH07CiAJCUNE
MjI1QzBCMUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyMjVDMDkxQzQ2RkJGNDAw
MTQwNzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0gKi87IH07CiAJCUNEMjI1QzBDMUM0NkZC
RjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDIyNUMwQTFDNDZGQkY0MDAxNDA3NjEgLyogV2Vi
Q29yZU5TVVJMU2Vzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC02ODg4LDYgKzY4ODksNyBAQAogCQkxRDAwMjZBODIzNzRGOUQ5MDBDQTZD
REYgLyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGlj
dHVyZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGljdHVyZVN1
cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0NzY1OEQyNUNDQTc3ODAwN0FGMzEyIC8qIEltYWdl
RGVjb2RlcklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VEZWNvZGVySWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREFCMzExMzI1MUQ3MjVDMDBGQzk0
ODUgLyogVmlkZW9MYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFn
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCNjZEMzcyNTM2NzhFQTAwQjY3
MUI5IC8qIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9PdXRw
dXRVbml0QWRhcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREI2NkQzODI1
MzY3OEVBMDBCNjcxQjkgLyogQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI2NjcxLDYgKzI2NjczLDcgQEAKIAkJCQlCMkExMEM5MTBCMzgxOEJEMDAwOTlB
QTQgLyogSW1hZ2VCdWZmZXJQaXBlLmggKi8sCiAJCQkJQ0QxOUZFQTcxRjU3Mzk3MjAwMEM0MkZC
IC8qIEltYWdlRGVjb2Rlci5jcHAgKi8sCiAJCQkJQ0QxOUZFQTYxRjU3Mzk3MjAwMEM0MkZCIC8q
IEltYWdlRGVjb2Rlci5oICovLAorCQkJCTFENDc2NThEMjVDQ0E3NzgwMDdBRjMxMiAvKiBJbWFn
ZURlY29kZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJNTU3NkE1NjIxRDg4QTcwODAwQ0NDMDRDIC8q
IEltYWdlRnJhbWUuY3BwICovLAogCQkJCTU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFn
ZUZyYW1lLmggKi8sCiAJCQkJQkM3RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2
ZXIuaCAqLywKQEAgLTMyNTI3LDYgKzMyNTMwLDcgQEAKIAkJCQlDRDE5RkVBODFGNTczOTcyMDAw
QzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDE5RkVBRTFGNTc0
QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTU1Qjg3RUQxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggaW4gSGVhZGVycyAq
LywKKwkJCQkxRDQ3NjU4RTI1Q0NBNzc4MDA3QUYzMTIgLyogSW1hZ2VEZWNvZGVySWRlbnRpZmll
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcyMDVBQjYxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdl
RG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0OEI3RDUzMjVDMzQxRTYwMDlFNzVERCAv
KiBJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1NzZBNTY1MUQ4
OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIuY3BwCmluZGV4IDg2OGVk
ODc4MDZkMjkwMTBiNTE5MjIwMTY0MTE0NDVlNmZmZmJhZGUuLjA4NjllOTlhMDA4ODZmN2NkMTIx
ODZmZTMxNjFkZTA0N2ZhNTEzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkltYWdlRGVjb2Rlci5oIgogCisjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CisKICNpZiBVU0UoQ0cpCiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyQ0cuaCIK
ICNlbGlmIFVTRShESVJFQ1QyRCkKQEAgLTQ0LDEzICs0Niw1OCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEhBVkUoQVZBU1NFVFJFQURFUikK
K3VzaW5nIEZhY3RvcnlWZWN0b3IgPSBWZWN0b3I8SW1hZ2VEZWNvZGVyOjpJbWFnZURlY29kZXJG
YWN0b3J5PjsKKworc3RhdGljIHZvaWQgcGxhdGZvcm1SZWdpc3RlckZhY3RvcmllcyhGYWN0b3J5
VmVjdG9yJiBmYWN0b3JpZXMpCit7CisgICAgZmFjdG9yaWVzLmFwcGVuZCh7IEltYWdlRGVjb2Rl
ckFWRk9iakM6OnN1cHBvcnRzTWVkaWFUeXBlLCBJbWFnZURlY29kZXJBVkZPYmpDOjpjYW5EZWNv
ZGVUeXBlLCBJbWFnZURlY29kZXJBVkZPYmpDOjpjcmVhdGUgfSk7Cit9CisKK3N0YXRpYyBGYWN0
b3J5VmVjdG9yJiBpbnN0YWxsZWRGYWN0b3JpZXMoKQoreworICAgIHN0YXRpYyBhdXRvIGZhY3Rv
cmllcyA9IG1ha2VOZXZlckRlc3Ryb3llZDxGYWN0b3J5VmVjdG9yPih7IH0pOworICAgIHN0YXRp
YyBzdGQ6Om9uY2VfZmxhZyByZWdpc3RlckRlZmF1bHRzOworICAgIHN0ZDo6Y2FsbF9vbmNlKHJl
Z2lzdGVyRGVmYXVsdHMsIFsmXSB7CisgICAgICAgIHBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMo
ZmFjdG9yaWVzKTsKKyAgICB9KTsKKworICAgIHJldHVybiBmYWN0b3JpZXM7Cit9CisKK3ZvaWQg
SW1hZ2VEZWNvZGVyOjppbnN0YWxsRmFjdG9yeShJbWFnZURlY29kZXI6OkltYWdlRGVjb2RlckZh
Y3RvcnkmJiBmYWN0b3J5KQoreworICAgIGluc3RhbGxlZEZhY3RvcmllcygpLmFwcGVuZChXVEZN
b3ZlKGZhY3RvcnkpKTsKK30KKwordm9pZCBJbWFnZURlY29kZXI6OnJlc2V0RmFjdG9yaWVzKCkK
K3sKKyAgICBpbnN0YWxsZWRGYWN0b3JpZXMoKS5jbGVhcigpOworICAgIHBsYXRmb3JtUmVnaXN0
ZXJGYWN0b3JpZXMoaW5zdGFsbGVkRmFjdG9yaWVzKCkpOworfQorCit2b2lkIEltYWdlRGVjb2Rl
cjo6Y2xlYXJGYWN0b3JpZXMoKQoreworICAgIGluc3RhbGxlZEZhY3RvcmllcygpLmNsZWFyKCk7
Cit9CisjZW5kaWYKKwogUmVmUHRyPEltYWdlRGVjb2Rlcj4gSW1hZ2VEZWNvZGVyOjpjcmVhdGUo
U2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBBbHBoYU9wdGlvbiBh
bHBoYU9wdGlvbiwgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2Zp
bGVPcHRpb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKG1pbWVUeXBlKTsKIAogI2lmIEhBVkUoQVZB
U1NFVFJFQURFUikKLSAgICBpZiAoIUltYWdlRGVjb2RlckNHOjpjYW5EZWNvZGVUeXBlKG1pbWVU
eXBlKSAmJiBJbWFnZURlY29kZXJBVkZPYmpDOjpjYW5EZWNvZGVUeXBlKG1pbWVUeXBlKSkKLSAg
ICAgICAgcmV0dXJuIEltYWdlRGVjb2RlckFWRk9iakM6OmNyZWF0ZShkYXRhLCBtaW1lVHlwZSwg
YWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKKyAgICBpZiAoIUltYWdl
RGVjb2RlckNHOjpjYW5EZWNvZGVUeXBlKG1pbWVUeXBlKSkgeworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKyAgICAgICAgZm9yIChhdXRvJiBmYWN0b3J5IDogaW5zdGFsbGVkRmFjdG9yaWVzKCkp
IHsKKyAgICAgICAgICAgIGlmIChmYWN0b3J5LmNhbkRlY29kZVR5cGUobWltZVR5cGUpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBmYWN0b3J5LmNyZWF0ZUltYWdlRGVjb2RlcihkYXRhLCBtaW1l
VHlwZSwgYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKKyAgICAgICAg
fQorI2Vsc2UKKyAgICAgICAgaWYgKEltYWdlRGVjb2RlckFWRk9iakM6OmNhbkRlY29kZVR5cGUo
bWltZVR5cGUpKQorICAgICAgICAgICAgcmV0dXJuIEltYWdlRGVjb2RlckFWRk9iakM6OmNyZWF0
ZShkYXRhLCBtaW1lVHlwZSwgYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9u
KTsKKyNlbmRpZgorICAgIH0KICNlbmRpZgogCiAjaWYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxF
KFZJREVPKQpAQCAtODEsOSArMTI4LDE2IEBAIGJvb2wgSW1hZ2VEZWNvZGVyOjpzdXBwb3J0c01l
ZGlhVHlwZShNZWRpYVR5cGUgdHlwZSkKICNlbmRpZgogCiAjaWYgSEFWRShBVkFTU0VUUkVBREVS
KQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBmb3IgKGF1dG8mIGZhY3RvcnkgOiBpbnN0
YWxsZWRGYWN0b3JpZXMoKSkgeworICAgICAgICBpZiAoZmFjdG9yeS5zdXBwb3J0c01lZGlhVHlw
ZSh0eXBlKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbHNlCiAgICAgaWYg
KEltYWdlRGVjb2RlckFWRk9iakM6OnN1cHBvcnRzTWVkaWFUeXBlKHR5cGUpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICNlbmRpZgorI2VuZGlmCiAKICNpZiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFC
TEUoVklERU8pCiAgICAgaWYgKEltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3VwcG9ydHNNZWRpYVR5
cGUodHlwZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVj
b2Rlci5oCmluZGV4IDg2NzBkMTUyNGNlYTIxNGJkZTc5ZGQ2N2RkYzJjMTNjYjQxOWRiYTkuLjgx
NjY0MTMzMWMyYjNmMGFhY2JhMjE1MWRmZGY2Yjk0MmI2MjVlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCkBAIC01Niw4ICs1Niw1NSBA
QCBwdWJsaWM6CiAgICAgICAgIE9wdGlvbmFsPEludFNpemU+IGRlbnNpdHlDb3JyZWN0ZWRTaXpl
OwogICAgIH07CiAKKyAgICBzdHJ1Y3QgRnJhbWVJbmZvIHsKKyAgICAgICAgYm9vbCBoYXNBbHBo
YTsKKyAgICAgICAgU2Vjb25kcyBkdXJhdGlvbjsKKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPgorICAgICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAg
ICAgICB7CisgICAgICAgICAgICBlbmNvZGVyIDw8IGhhc0FscGhhOworICAgICAgICAgICAgZW5j
b2RlciA8PCBkdXJhdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+CisgICAgICAgIHN0YXRpYyBPcHRpb25hbDxGcmFtZUluZm8+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgICAgICB7CisgICAgICAgICAgICBPcHRpb25hbDxib29sPiBoYXNBbHBo
YTsKKyAgICAgICAgICAgIGRlY29kZXIgPj4gaGFzQWxwaGE7CisgICAgICAgICAgICBpZiAoIWhh
c0FscGhhKQorICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAg
ICAgIE9wdGlvbmFsPFNlY29uZHM+IGR1cmF0aW9uOworICAgICAgICAgICAgZGVjb2RlciA+PiBk
dXJhdGlvbjsKKyAgICAgICAgICAgIGlmICghZHVyYXRpb24pCisgICAgICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICAgICAgcmV0dXJuIHt7CisgICAgICAgICAgICAg
ICAgKmhhc0FscGhhLAorICAgICAgICAgICAgICAgICpkdXJhdGlvbgorICAgICAgICAgICAgfX07
CisgICAgICAgIH0KKyAgICB9OworCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNNZWRpYVR5cGUo
TWVkaWFUeXBlKTsKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICB1c2luZyBTdXBwb3J0
c01lZGlhVHlwZUZ1bmMgPSBXVEY6OkZ1bmN0aW9uPGJvb2woTWVkaWFUeXBlKT47CisgICAgdXNp
bmcgQ2FuRGVjb2RlVHlwZUZ1bmMgPSBXVEY6OkZ1bmN0aW9uPGJvb2woY29uc3QgU3RyaW5nJik+
OworICAgIHVzaW5nIENyZWF0ZUltYWdlRGVjb2RlckZ1bmMgPSBXVEY6OkZ1bmN0aW9uPFJlZlB0
cjxJbWFnZURlY29kZXI+KFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYsIEFscGhhT3B0aW9u
LCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik+OworCisgICAgc3RydWN0IEltYWdlRGVjb2Rl
ckZhY3RvcnkgeworICAgICAgICBTdXBwb3J0c01lZGlhVHlwZUZ1bmMgc3VwcG9ydHNNZWRpYVR5
cGU7CisgICAgICAgIENhbkRlY29kZVR5cGVGdW5jIGNhbkRlY29kZVR5cGU7CisgICAgICAgIENy
ZWF0ZUltYWdlRGVjb2RlckZ1bmMgY3JlYXRlSW1hZ2VEZWNvZGVyOworICAgIH07CisKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBpbnN0YWxsRmFjdG9yeShJbWFnZURlY29kZXJGYWN0
b3J5JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJlc2V0RmFjdG9yaWVzKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgY2xlYXJGYWN0b3JpZXMoKTsKKyNlbmRp
ZgorCiAgICAgdmlydHVhbCBzaXplX3QgYnl0ZXNEZWNvZGVkVG9EZXRlcm1pbmVQcm9wZXJ0aWVz
KCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBFbmNvZGVkRGF0YVN0YXR1cyBlbmNvZGVkRGF0
YVN0YXR1cygpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlRGVjb2RlcklkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlRGVjb2RlcklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDQ2YWUw
YzRjMjAyOGU3YTg5OGZkZGU5YjU4ZDEzMzAyNjgxYzEzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVySWRlbnRpZmllci5oCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0
Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBJbWFn
ZURlY29kZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBJbWFnZURlY29kZXJJZGVudGlmaWVy
ID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZURlY29kZXJJZGVudGlmaWVyVHlwZT47CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFW
Rk9iakMuaAppbmRleCAzYjQ1MDY3OGZhN2YzNmMxOThhNDBiMDg3ZTc0NmYxMmE3OThjNzg1Li40
ZGVlNDIxNWZlYTEwYWRlYjJhMWY3YzYzNDZjNzRlMmZkMmI0OGRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29k
ZXJBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvSW1hZ2VEZWNvZGVyQVZGT2JqQy5oCkBAIC01MywyMSArNTMsMjEgQEAgY2xh
c3MgV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOwogCiBjbGFzcyBJbWFnZURlY29kZXJBVkZP
YmpDIDogcHVibGljIEltYWdlRGVjb2RlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxJ
bWFnZURlY29kZXJBVkZPYmpDPiBjcmVhdGUoU2hhcmVkQnVmZmVyJiwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgQWxwaGFPcHRpb24sIEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEltYWdlRGVjb2RlckFWRk9iakM+IGNyZWF0ZShT
aGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBBbHBoYU9wdGlvbiwgR2FtbWFB
bmRDb2xvclByb2ZpbGVPcHRpb24pOwogICAgIHZpcnR1YWwgfkltYWdlRGVjb2RlckFWRk9iakMo
KTsKIAotICAgIHN0YXRpYyBib29sIHN1cHBvcnRzTWVkaWFUeXBlKE1lZGlhVHlwZSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgc3VwcG9ydHNNZWRpYVR5cGUoTWVkaWFUeXBlKTsK
ICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJik7CiAK
ICAgICBzaXplX3QgYnl0ZXNEZWNvZGVkVG9EZXRlcm1pbmVQcm9wZXJ0aWVzKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gMDsgfQotICAgIHN0YXRpYyBib29sIGNhbkRlY29kZVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgY2FuRGVj
b2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAogICAgIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX21pbWVUeXBlOyB9CiAKLSAgICB2b2lkIHNldEVuY29k
ZWREYXRhU3RhdHVzQ2hhbmdlQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKEVuY29kZWREYXRh
U3RhdHVzKT4mJikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFbmNvZGVkRGF0
YVN0YXR1c0NoYW5nZUNhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZChFbmNvZGVkRGF0YVN0YXR1
cyk+JiYpIGZpbmFsOwogICAgIEVuY29kZWREYXRhU3RhdHVzIGVuY29kZWREYXRhU3RhdHVzKCkg
Y29uc3QgZmluYWw7Ci0gICAgSW50U2l6ZSBzaXplKCkgY29uc3QgZmluYWw7Ci0gICAgc2l6ZV90
IGZyYW1lQ291bnQoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCBJbnRTaXplIHNp
emUoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgZnJhbWVDb3VudCgp
IGNvbnN0IGZpbmFsOwogICAgIFJlcGV0aXRpb25Db3VudCByZXBldGl0aW9uQ291bnQoKSBjb25z
dCBmaW5hbDsKICAgICBTdHJpbmcgdXRpKCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIGZpbGVu
YW1lRXh0ZW5zaW9uKCkgY29uc3QgZmluYWw7CkBAIC04MiwxMyArODIsMTYgQEAgcHVibGljOgog
ICAgIGJvb2wgZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFs
OwogICAgIHVuc2lnbmVkIGZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZl
bCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpIGNvbnN0IGZpbmFsOwogCi0gICAgUGxhdGZv
cm1JbWFnZVB0ciBjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2
ZWwgPSBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0LCBjb25zdCBEZWNvZGluZ09wdGlvbnMmID0g
RGVjb2RpbmdPcHRpb25zKERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMpKSBmaW5hbDsKKyAgICBX
RUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUltYWdlUHRyIGNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNp
emVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQsIGNvbnN0
IERlY29kaW5nT3B0aW9ucyYgPSBEZWNvZGluZ09wdGlvbnMoRGVjb2RpbmdNb2RlOjpTeW5jaHJv
bm91cykpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRFeHBlY3RlZENvbnRlbnRTaXplKGxvbmcgbG9u
ZykgZmluYWw7Ci0gICAgdm9pZCBzZXREYXRhKFNoYXJlZEJ1ZmZlciYsIGJvb2wgYWxsRGF0YVJl
Y2VpdmVkKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEV4cGVjdGVkQ29udGVu
dFNpemUobG9uZyBsb25nKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERhdGEo
U2hhcmVkQnVmZmVyJiwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpIGZpbmFsOwogICAgIGJvb2wgaXNB
bGxEYXRhUmVjZWl2ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzQWxsRGF0YVJlY2VpdmVk
OyB9CiAgICAgdm9pZCBjbGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6ZV90KSBmaW5hbDsKIAorICAg
IGJvb2wgaGFzVHJhY2soKSBjb25zdCB7IHJldHVybiAhIW1fdHJhY2s7IH0KKyAgICBXRUJDT1JF
X0VYUE9SVCBWZWN0b3I8SW1hZ2VEZWNvZGVyOjpGcmFtZUluZm8+IGZyYW1lSW5mb3MoKSBjb25z
dDsKKwogcHJpdmF0ZToKICAgICBJbWFnZURlY29kZXJBVkZPYmpDKFNoYXJlZEJ1ZmZlciYsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIEFscGhhT3B0aW9uLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9w
dGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpDLm1t
CmluZGV4IDEwZmViM2ZkZTc2OTY0MzFiMGY2MWViZDI3M2M3OWU3Zjc0NmM5NjkuLjU3ZjIxYzU4
ODg5YjY3NjM4Y2RjMjhhNDExNTQyZmFjZmU1MjAyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbQpAQCAtNTMzLDYgKzUzMywyMCBAQCBib29sIElt
YWdlRGVjb2RlckFWRk9iakM6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkgY29u
c3QKICAgICByZXR1cm4gc2FtcGxlRGF0YSA/IHNhbXBsZURhdGEtPmhhc0FscGhhKCkgOiBmYWxz
ZTsKIH0KIAorVmVjdG9yPEltYWdlRGVjb2Rlcjo6RnJhbWVJbmZvPiBJbWFnZURlY29kZXJBVkZP
YmpDOjpmcmFtZUluZm9zKCkgY29uc3QKK3sKKyAgICBpZiAobV9zYW1wbGVEYXRhLmVtcHR5KCkp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBWZWN0b3I8SW1hZ2VEZWNvZGVyOjpGcmFtZUlu
Zm8+IGluZm9zOworICAgIGZvciAoYXV0byYgc2FtcGxlIDogbV9zYW1wbGVEYXRhLnByZXNlbnRh
dGlvbk9yZGVyKCkpIHsKKyAgICAgICAgYXV0byogaW1hZ2VTYW1wbGUgPSAoSW1hZ2VEZWNvZGVy
QVZGT2JqQ1NhbXBsZSopc2FtcGxlLnNlY29uZC5nZXQoKTsKKyAgICAgICAgaW5mb3MuYXBwZW5k
KHsgaW1hZ2VTYW1wbGUtPmhhc0FscGhhKCksIFNlY29uZHMoaW1hZ2VTYW1wbGUtPmR1cmF0aW9u
KCkudG9Eb3VibGUoKSl9KTsKKyAgICB9CisKKyAgICByZXR1cm4gaW5mb3M7Cit9CisKIGJvb2wg
SW1hZ2VEZWNvZGVyQVZGT2JqQzo6ZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleChzaXplX3Qg
aW5kZXgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGluZGV4IDw9IG1fc2FtcGxlRGF0YS5zaXplKCk7
CkBAIC01NzIsNyArNTg2LDYgQEAgUGxhdGZvcm1JbWFnZVB0ciBJbWFnZURlY29kZXJBVkZPYmpD
OjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnMKICAgICAgICAgfSB3
aGlsZSAoLS1tX2N1cnNvciAhPSBtX3NhbXBsZURhdGEuZGVjb2RlT3JkZXIoKS5iZWdpbigpKTsK
ICAgICB9CiAKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2U7CiAgICAgd2hpbGUgKHRy
dWUpIHsKICAgICAgICAgaWYgKGRlY29kZVRpbWUgPCBtX2N1cnNvci0+c2Vjb25kLT5kZWNvZGVU
aW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uLmgKaW5kZXggYTY1MmFlZTFhZDc1YTJkMDM2M2Q3ZjU1YTgwMmRmZDY0
OTI5NGU4MC4uZWI2OTAzOGI3ZGZhOWEzOWIyZTZmYTY1NDJlYjk1MDU5OTE2YTU5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29t
cHJlc3Npb25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLmgKQEAgLTQxLDcgKzQxLDYgQEAgdHlw
ZWRlZiBzaWduZWQgbG9uZyBDTUl0ZW1Db3VudDsKIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIg
KkNWUGl4ZWxCdWZmZXJSZWY7CiB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpDVkltYWdlQnVm
ZmVyUmVmOwogdHlwZWRlZiBVSW50MzIgVlREZWNvZGVJbmZvRmxhZ3M7Ci10eXBlZGVmIFVJbnQz
MiBWVERlY29kZUluZm9GbGFnczsKIHR5cGVkZWYgc3RydWN0IE9wYXF1ZVZURGVjb21wcmVzc2lv
blNlc3Npb24qICBWVERlY29tcHJlc3Npb25TZXNzaW9uUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KaW5kZXggZGMyZWMz
NmNjZjc1MDY0ZTRlODg0MjM2ZTE2MmIyYzBhYjBjMDVkNy4uNzg1YmE4M2U4M2VlMTM3OTdlY2E1
NGFiNDU5ZGFlMjJkNGViNmVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbi5tbQpAQCAtMjE3LDEwICsyMTcsOCBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vz
c2lvbjo6ZW5zdXJlRGVjb21wcmVzc2lvblNlc3Npb25Gb3JTYW1wbGUoQ01TYW1wbGVCdQogICAg
ICAgICBhdXRvIHZpZGVvRGVjb2RlclNwZWNpZmljYXRpb24gPSBAeyAoX19icmlkZ2UgTlNTdHJp
bmcgKilrVlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0
ZWRWaWRlb0RlY29kZXI6IEAoIG1faGFyZHdhcmVEZWNvZGVyRW5hYmxlZCApIH07CiAKICAgICAg
ICAgTlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzOwotICAgICAgICBpZiAobV9tb2RlID09IE9wZW5H
TCkKLSAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBAeyAoX19icmlkZ2UgTlNTdHJpbmcqKWtDVlBp
eGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleTogQHsgLyogZW1wdHkgZGljdGlvbmFyeSAq
LyB9IH07Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgQVNTRVJUKG1fbW9kZSA9PSBSR0Ip
OworICAgICAgICBhdHRyaWJ1dGVzID0gQHsgKF9fYnJpZGdlIE5TU3RyaW5nKilrQ1ZQaXhlbEJ1
ZmZlcklPU3VyZmFjZVByb3BlcnRpZXNLZXk6IEB7IC8qIGVtcHR5IGRpY3Rpb25hcnkgKi8gfSB9
OworICAgICAgICBpZiAobV9tb2RlID09IFJHQikgewogICAgICAgICAgICAgYXR0cmlidXRlcyA9
IEB7IChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5
OiBAKGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEpIH07CiAgICAgICAgIH0KICAgICAgICAgVlRE
ZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBkZWNvbXByZXNzaW9uU2Vzc2lvbk91dCA9IG51bGxwdHI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXgg
MjNhZDQwNzgwZDM2NTdiYzg5YWE4MmIxNGNmMzc3MGEzMjZkZDQwNC4uNjQ5MTMwMGNhMDZkYmE4
YzI5MDJlNTEwZDYyMWZhNWNhOTZiMzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMzEsNiArMzEsNyBAQCAkKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eS5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5Lm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vz
c2lvblByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUNETVByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eS5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1Qcm94eS5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1T
ZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KQEAgLTE0NSw2ICsxNDYsOCBAQCAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlk
ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVDRE1JbnN0YW5jZS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLm1lc3NhZ2VzLmluCiskKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVj
b2RlckFWRk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNl
c3Npb25IZWxwZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDA2NTU3NTU5NTMwODMwZDYzMmE1Njc3YjNlYmVlZDcw
N2ZiZTJjOGEuLmM4MGRhNzA3NWQ3MTFjZjQwMmFmMzJhOTBiNGY2ZGIzY2FlNTVkZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysr
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTg2
LDYgKzE4NiwxNSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VzUmVwbAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJ
bWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVJbWFnZURlY29kZXJBVkZNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJBVkZNZXNzYWdl
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJ
bWFnZURlY29kZXJBVkZNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2Fn
ZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzUmVw
bGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzdhNTA5NGIyNDJiNDBmYjky
MTBkOTAzYzNkYzhjZmEwNzJiNDJmNS4uNTM5MzA1NGZhZmI4NzhiM2Q0ODg0YWNlYmEzM2U0Njhi
MjM2MWFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTgyLDYgKzE4Miw3IEBA
IE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXJNYW5hZ2VyIFwKIAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1J
bnN0YW5jZSBcCiAJV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
IFwKKwlXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyIFwK
IAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uIFwKIAlXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlIFwKIAlXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyIFwKQEAgLTI0MSw2ICsyNDIsNyBA
QCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyIFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlciBcCiAJR1BVUHJvY2Vzcy9HUFVQcm9jZXNzIFwKKwlHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2Fj
eUNETVNlc3Npb25Qcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0
b3J5UHJveHkgXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDgyNzhiY2UxNGM1ZjFjMjRiZTdjOTAyMmQ1ZmQ0MGIyNGM1OGVmZWYu
LjJlNjlmOGZlOGQ3MDdmZTQwYzA3ZGIxNmZjYTZmNDhiOGMyOTc2NjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
QEAgLTEwNiw2ICsxMDYsMTEgQEAKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJv
eHlNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBIQVZFKEFWQVNTRVRSRUFERVIpCisjaW5jbHVk
ZSAiUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVJbWFnZURl
Y29kZXJBVkZQcm94eU1lc3NhZ2VzLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKICNpbmNsdWRlICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHku
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHlN
ZXNzYWdlcy5oIgpAQCAtMjkwLDYgKzI5NSwxNiBAQCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJveHkoKQogfQogI2VuZGlm
CiAKKyNpZiBIQVZFKEFWQVNTRVRSRUFERVIpCitSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eSYg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aW1hZ2VEZWNvZGVyQVZGUHJveHkoKQoreworICAg
IGlmICghbV9pbWFnZURlY29kZXJBVkZQcm94eSkKKyAgICAgICAgbV9pbWFnZURlY29kZXJBVkZQ
cm94eSA9IG1ha2VVbmlxdWU8UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk+KCp0aGlzKTsKKwor
ICAgIHJldHVybiAqbV9pbWFnZURlY29kZXJBVkZQcm94eTsKK30KKyNlbmRpZgorCiB2b2lkIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpTZW1hcGhvcmUmJiByZXN1bWVEaXNw
bGF5TGlzdFNlbWFwaG9yZSkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcmVtb3RlUmVuZGVy
aW5nQmFja2VuZE1hcC5lbnN1cmUoaWRlbnRpZmllciwgWyZdKCkgewpAQCAtNDYzLDYgKzQ3OCwx
MiBAQCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQwogICAgICAgICBtZWRpYUVuZ2luZUNvbmZpZ3Vy
YXRpb25GYWN0b3J5UHJveHkoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5l
Y3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisjaWYgSEFWRShB
VkFTU0VUUkVBREVSKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBN
ZXNzYWdlczo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgeworICAgICAgICBpbWFnZURlY29kZXJBVkZQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlKGNv
bm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYK
IAogICAgIHJldHVybiBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVj
dGlvbiwgZGVjb2Rlcik7CiB9CkBAIC01MTYsNiArNTM3LDEyIEBAIGJvb2wgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICNlbmRpZgorI2lmIEhBVkUoQVZB
U1NFVFJFQURFUikKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVz
c2FnZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKKyAgICAgICAgaW1hZ2VEZWNvZGVyQVZGUHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Y29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorI2VuZGlmCiAKICAgICByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0
Y2hTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKaW5kZXggN2JhZGQzNzc2OWNmNTJmZDU0MGI0ZmI3NzdkMDg4NzQ2NjA0ZjU0Zi4uZTIwYWQz
MmNiZDEzODRmZTEyOTI5NGVlZjU4ZjFiZTkzMjVjNjkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC01NCw2ICs1
NCw3IEBAIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjsK
IGNsYXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OwogY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNYW5hZ2VyOwogY2xhc3MgUmVtb3RlQ0RNRmFjdG9yeVByb3h5OworY2xhc3MgUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGUHJveHk7CiBjbGFzcyBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk7
CiBjbGFzcyBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHk7CiBjbGFz
cyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKQEAgLTEwMiwxNSArMTAzLDE4IEBAIHB1
YmxpYzoKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICBSZW1vdGVMZWdh
Y3lDRE1GYWN0b3J5UHJveHkmIGxlZ2FjeUNkbUZhY3RvcnlQcm94eSgpOwogI2VuZGlmCi0jaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCiAgICAgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9u
RmFjdG9yeVByb3h5JiBtZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkoKTsKLSNl
bmRpZgogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiByZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eSgpIHsgcmV0dXJuICptX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OyB9CiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikKICAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eU1hbmFnZXImIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKTsKICNlbmRpZgogCisjaWYgSEFWRShBVkFT
U0VUUkVBREVSKQorICAgIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5JiBpbWFnZURlY29kZXJB
VkZQcm94eSgpOworI2VuZGlmCisKICAgICB2b2lkIHRlcm1pbmF0ZVdlYlByb2Nlc3MoKTsKIAog
cHJpdmF0ZToKQEAgLTIyMSw5ICsyMjUsMTEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTEVHQUNZ
X0VOQ1JZUFRFRF9NRURJQSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTGVnYWN5Q0RNRmFj
dG9yeVByb3h5PiBtX2xlZ2FjeUNkbUZhY3RvcnlQcm94eTsKICNlbmRpZgotI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFFbmdpbmVDb25maWd1
cmF0aW9uRmFjdG9yeVByb3h5PiBtX21lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94
eTsKKyNpZiBIQVZFKEFWQVNTRVRSRUFERVIpCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5PiBtX2ltYWdlRGVjb2RlckFWRlByb3h5OwogI2VuZGlmCisKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeVBy
b3h5PiBtX21lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU0
YTFlMDNjMjJhYzM2ZmRlMDZiNjE4MDM5NjMwOWViMjllYzcxMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94
eS5jcHAKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaCIKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVBREVSKQorCisjaW5jbHVkZSAiR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFn
ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0lPU3VyZmFjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEZWNvZGVyQVZGT2JqQy5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1Jl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eShHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgIDogbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCit7Cit9CisKK3Zv
aWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OmNyZWF0ZURlY29kZXIoY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPEltYWdlRGVjb2RlcklkZW50aWZpZXI+JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGF1dG8gaW1hZ2VEZWNvZGVyID0gSW1hZ2VEZWNvZGVyQVZGT2Jq
Qzo6Y3JlYXRlKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSks
IG1pbWVUeXBlLCBBbHBoYU9wdGlvbjo6UHJlbXVsdGlwbGllZCwgR2FtbWFBbmRDb2xvclByb2Zp
bGVPcHRpb246Oklnbm9yZWQpOworCisgICAgT3B0aW9uYWw8SW1hZ2VEZWNvZGVySWRlbnRpZmll
cj4gaW1hZ2VEZWNvZGVySWRlbnRpZmllcjsKKyAgICBpZiAoIWltYWdlRGVjb2RlcikKKyAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaW1hZ2VEZWNvZGVySWRlbnRpZmll
cikpOworCisgICAgYXV0byBpZGVudGlmaWVyID0gSW1hZ2VEZWNvZGVySWRlbnRpZmllcjo6Z2Vu
ZXJhdGUoKTsKKyAgICBtX2ltYWdlRGVjb2RlcnMuYWRkKGlkZW50aWZpZXIsIGltYWdlRGVjb2Rl
ci5jb3B5UmVmKCkpOworCisgICAgaW1hZ2VEZWNvZGVyLT5zZXRFbmNvZGVkRGF0YVN0YXR1c0No
YW5nZUNhbGxiYWNrKFt0aGlzLCBpZGVudGlmaWVyXShhdXRvKSBtdXRhYmxlIHsKKyAgICAgICAg
ZW5jb2RlZERhdGFTdGF0dXNDaGFuZ2VkKGlkZW50aWZpZXIpOworICAgIH0pOworCisgICAgaW1h
Z2VEZWNvZGVySWRlbnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgY29tcGxldGlvbkhhbmRsZXIo
V1RGTW92ZShpbWFnZURlY29kZXJJZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGUHJveHk6OmRlbGV0ZURlY29kZXIoY29uc3QgSW1hZ2VEZWNvZGVySWRlbnRpZmll
ciYgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9pbWFnZURlY29kZXJzLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKKyAgICBpZiAoIW1faW1hZ2VEZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVy
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pbWFnZURlY29kZXJzLnRha2UoaWRlbnRpZmll
cik7Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OmVuY29kZWREYXRhU3Rh
dHVzQ2hhbmdlZChjb25zdCBJbWFnZURlY29kZXJJZGVudGlmaWVyJiBpZGVudGlmaWVyKQorewor
ICAgIGlmICghbV9pbWFnZURlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvIGltYWdlRGVjb2RlciA9IG1faW1hZ2VEZWNvZGVycy5nZXQoaWRl
bnRpZmllcik7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjpFbmNvZGVkRGF0YVN0YXR1
c0NoYW5nZWQoaWRlbnRpZmllciwgaW1hZ2VEZWNvZGVyLT5mcmFtZUNvdW50KCksIGltYWdlRGVj
b2Rlci0+c2l6ZSgpLCBpbWFnZURlY29kZXItPmhhc1RyYWNrKCkpLCAwKTsKK30KKwordm9pZCBS
ZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6c2V0RXhwZWN0ZWRDb250ZW50U2l6ZShjb25zdCBJ
bWFnZURlY29kZXJJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBsb25nIGxvbmcgZXhwZWN0ZWRDb250
ZW50U2l6ZSkKK3sKKyAgICBBU1NFUlQobV9pbWFnZURlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKKyAgICBpZiAoIW1faW1hZ2VEZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9pbWFnZURlY29kZXJzLmdldChpZGVudGlmaWVyKS0+c2V0
RXhwZWN0ZWRDb250ZW50U2l6ZShleHBlY3RlZENvbnRlbnRTaXplKTsKK30KKwordm9pZCBSZW1v
dGVJbWFnZURlY29kZXJBVkZQcm94eTo6c2V0RGF0YShjb25zdCBJbWFnZURlY29kZXJJZGVudGlm
aWVyJiBpZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGJvb2wgYWxs
RGF0YVJlY2VpdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHNpemVfdCBmcmFtZUNvdW50LCBj
b25zdCBJbnRTaXplJiBzaXplLCBib29sIGhhc1RyYWNrLCBPcHRpb25hbDxWZWN0b3I8SW1hZ2VE
ZWNvZGVyOjpGcmFtZUluZm8+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NF
UlQobV9pbWFnZURlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBpZiAoIW1faW1h
Z2VEZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSkgeworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigwLCB7IH0sIGZhbHNlLCBXVEY6Om51bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgYXV0byBpbWFnZURlY29kZXIgPSBtX2ltYWdlRGVjb2RlcnMuZ2V0KGlkZW50aWZp
ZXIpOworICAgIGltYWdlRGVjb2Rlci0+c2V0RGF0YShTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRh
LmRhdGEoKSwgZGF0YS5zaXplKCkpLCBhbGxEYXRhUmVjZWl2ZWQpOworCisgICAgYXV0byBmcmFt
ZUNvdW50ID0gaW1hZ2VEZWNvZGVyLT5mcmFtZUNvdW50KCk7CisKKyAgICBPcHRpb25hbDxWZWN0
b3I8SW1hZ2VEZWNvZGVyOjpGcmFtZUluZm8+PiBmcmFtZUluZm9zOworICAgIGlmIChmcmFtZUNv
dW50KQorICAgICAgICBmcmFtZUluZm9zID0gaW1hZ2VEZWNvZGVyLT5mcmFtZUluZm9zKCk7CisK
KyAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZUNvdW50LCBpbWFnZURlY29kZXItPnNpemUoKSwg
aW1hZ2VEZWNvZGVyLT5oYXNUcmFjaygpLCBXVEZNb3ZlKGZyYW1lSW5mb3MpKTsKK30KKwordm9p
ZCBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoY29u
c3QgSW1hZ2VEZWNvZGVySWRlbnRpZmllciYgaWRlbnRpZmllciwgc2l6ZV90IGluZGV4LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdURjo6TWFjaFNlbmRSaWdodD4mJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKG1faW1hZ2VEZWNvZGVycy5jb250YWlucyhp
ZGVudGlmaWVyKSk7CisgICAgT3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiBzZW5kUmlnaHQ7
CisgICAgaWYgKCFtX2ltYWdlRGVjb2RlcnMuY29udGFpbnMoaWRlbnRpZmllcikpIHsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5kUmlnaHQpKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGF1dG8gZnJhbWVJbWFnZSA9IG1faW1hZ2VEZWNvZGVycy5nZXQoaWRl
bnRpZmllciktPmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KGluZGV4KTsKKyAgICBpZiAoIWZyYW1l
SW1hZ2UpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5kUmlnaHQpKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChhdXRvIHN1cmZhY2UgPSBJT1N1cmZh
Y2U6OmNyZWF0ZUZyb21JbWFnZShmcmFtZUltYWdlLmdldCgpKSkKKyAgICAgICAgc2VuZFJpZ2h0
ID0gc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKHNlbmRSaWdodCkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wYzBiOThiYjJlZDA1NGM2ZGM1YzgwZDUwNTM2Y2YzZGY1OGIwYWJiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5LmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIp
CisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXJBVkZPYmpDLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9JbWFnZURlY29kZXJJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTWFj
aFNlbmRSaWdodC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M7CisKK2NsYXNzIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5IDogcHJpdmF0
ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkoR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYpOworICAgIHZpcnR1YWwgflJlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5KCkgPSBkZWZhdWx0OworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OworICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CisKK3ByaXZh
dGU6CisgICAgdm9pZCBjcmVhdGVEZWNvZGVyKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2Vi
Q29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllcj4mJik+JiYpOworICAgIHZvaWQgZGVsZXRlRGVj
b2Rlcihjb25zdCBXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyJik7CisgICAgdm9pZCBz
ZXRFeHBlY3RlZENvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZp
ZXImLCBsb25nIGxvbmcgZXhwZWN0ZWRDb250ZW50U2l6ZSk7CisgICAgdm9pZCBzZXREYXRhKGNv
bnN0IFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXImLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmLCBib29sIGFsbERhdGFSZWNlaXZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzaXpl
X3QgZnJhbWVDb3VudCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgYm9vbCBoYXNUcmFj
aywgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkltYWdlRGVjb2Rlcjo6RnJhbWVJbmZvPj4mJik+
JiYpOworICAgIHZvaWQgY3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoY29uc3QgV2ViQ29yZTo6SW1h
Z2VEZWNvZGVySWRlbnRpZmllciYsIHNpemVfdCBpbmRleCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxXVEY6Ok1hY2hTZW5kUmlnaHQ+JiYpPiYmKTsKKworICAgIHZvaWQgZW5jb2Rl
ZERhdGFTdGF0dXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXIm
KTsKKworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fY29ubmVjdGlvblRvV2ViUHJv
Y2VzczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXIsIFJlZlB0
cjxXZWJDb3JlOjpJbWFnZURlY29kZXJBVkZPYmpDPj4gbV9pbWFnZURlY29kZXJzOworfTsKKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZDAyYzAxNWI4YTlmOGYzNDRkNDQxMzE4N2I5YWRiZjZhZjU3MTM3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVj
b2RlckFWRlByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVB
REVSKQorCittZXNzYWdlcyAtPiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eSBOb3RSZWZDb3Vu
dGVkIHsKKyAgICBDcmVhdGVEZWNvZGVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBk
YXRhLCBTdHJpbmcgbWltZVR5cGUpIC0+IChPcHRpb25hbDxXZWJDb3JlOjpJbWFnZURlY29kZXJJ
ZGVudGlmaWVyPiBpZGVudGlmaWVyKSBTeW5jaHJvbm91cworICAgIERlbGV0ZURlY29kZXIoV2Vi
Q29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFNldEV4cGVjdGVk
Q29udGVudFNpemUoV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBs
b25nIGxvbmcgZXhwZWN0ZWRDb250ZW50U2l6ZSkKKyAgICBTZXREYXRhKFdlYkNvcmU6OkltYWdl
RGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKSAtPiAodWludDMyX3QgZnJhbWVDb3VudCwg
V2ViQ29yZTo6SW50U2l6ZSBzaXplLCBib29sIGhhc1RyYWNrLCBPcHRpb25hbDxWZWN0b3I8V2Vi
Q29yZTo6SW1hZ2VEZWNvZGVyOjpGcmFtZUluZm8+PiBmcmFtZUluZm9zKSBTeW5jaHJvbm91cwor
ICAgIENyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZp
ZXIgaWRlbnRpZmllciwgdWludDMyX3QgaW5kZXgpIC0+IChPcHRpb25hbDxNYWNoU2VuZFJpZ2h0
PiBzZW5kUmlnaHQpIEFzeW5jCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKaW5kZXggZWM4YmNmMDg3ZGYxNmRmNjBkYmUwMDgwZTRjZWIwNjFkMTc2
OGZmNy4uZTZmYTU5NzI4YWJjNmVlNGFmZDE2NzVkMTMxMzk1YjUxYWMyM2Q2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yNjcsNiArMjY3LDcgQEAgZGVm
IHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNv
cmU6OkZldGNoSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIn
LAogICAgICAgICAnV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJywKKyAgICAg
ICAgJ1dlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6
TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQbGF5YmFja1Rh
cmdldENsaWVudENvbnRleHRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhUGxh
eWVySWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNDJiOGUyNGYxZjc4YjQw
NzViYzcxMDJkOTQwMjVjMDVjMTg3NDBhZC4uOTU2NjJkYzdhODkzZTc0ZGNmMTFkOWRlMzVlNzBi
Y2ViZDA2Njk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjEsMTIgKzYxLDExIEBAIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKIEdQVVBy
b2Nlc3MvaW9zL0dQVVByb2Nlc3NJT1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMu
bW0KIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmNwcAor
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAKIEdQVVByb2Nl
c3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCiBHUFVQcm9jZXNz
L21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJQcm94eS5jcHAKIEdQVVByb2Nlc3Mv
d2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCiAKLQotCiBQbGF0Zm9ybS9jZi9Nb2R1bGVD
Ri5jcHAKIAogUGxhdGZvcm0vY2xhc3NpZmllci9jb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Q2xhc3NpZmllckNvY29hLmNwcApAQCAtNTk0LDYgKzU5Myw4IEBAIFdlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKIFdl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNl
UHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3Zp
ZGVyTWFuYWdlci5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFW
Ri5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIu
Y3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVD
b2NvYS5tbQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29h
Lm1tCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNw
cApAQCAtNjk4LDYgKzY5OSw4IEBAIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAKK1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAor
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1l
ZGlhUmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlck1lc3NhZ2VSZWNl
aXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDlmY2JmODEwNTI0MmI2ZjI4NzQ4Zjk4MDY1ZWI0MDAzNWNjMjRkYmQuLjEyOTY0
MmVkNDY4YjBmNGQ2ZWU2MDFlMTdmYjU1MjM5ZjU4MTg2NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDI5LDYgKzQyOSwxMiBAQAog
CQkxRDAzNjlBQzI1Njc5Njk5MDA0NDAzNzIgLyogUmVtb3RlVGV4dFRyYWNrUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUQwMzY5QUEyNTY3OTQzQzAwNDQwMzcyIC8qIFJlbW90ZVRleHRUcmFja1Byb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQwMzY5QUQyNTY3OTZBQjAwNDQwMzcyIC8qIFJlbW90
ZVZpZGVvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDAzNjlBNTI1Njc5NDNCMDA0NDAzNzIgLyogUmVt
b3RlVmlkZW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQwMzY5QUUy
NTY3OTZCOTAwNDQwMzcyIC8qIFJlbW90ZUF1ZGlvVHJhY2tQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDAzNjlB
MjI1Njc5NDNCMDA0NDAzNzIgLyogUmVtb3RlQXVkaW9UcmFja1Byb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKKwkJMUQ0NzY1ODYyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVj
b2RlckFWRlByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxRDQ3NjU4NDI1Q0NBNDE2MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJv
eHkuaCAqLzsgfTsKKwkJMUQ0NzY1OTMyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVj
b2RlckFWRlByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFENDc2NTkwMjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29k
ZXJBVkZQcm94eU1lc3NhZ2VzLmggKi87IH07CisJCTFENDc2NTk0MjVDQ0NFOTMwMDdBRjMxMiAv
KiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0NzY1OTEyNUNDQ0U5MzAwN0FG
MzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi87IH07
CisJCTFENDc2NTlDMjVDRTc0QUQwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5h
Z2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFENDc2NTk5MjVDRTc0QUMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5h
Z2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJMUQ0NzY1OUQyNUNFNzRBRDAwN0FGMzEyIC8qIFJlbW90
ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENDc2NTlBMjVDRTc0QUMwMDdBRjMxMiAv
KiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CisJ
CTFENDc2NUExMjVDRjU3NDAwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDQ3NjU5
RjI1Q0Y1NzQwMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5oICovOyB9
OwogCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQ0RDczNzEyM0E5RTU2MjAw
NzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZDMjNBOURGNjAwMDcx
N0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTFE
NEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmggKi87IH07CkBAIC0yOTcxLDYgKzI5NzcsMjAgQEAKIAkJMUQzMkY4
QTYyM0E4NjAxOTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxRDNBQjA0RDIzQUIwMDcyMDA1QzFGRjAgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEM0FCMDRFMjNBQjAwOUIw
MDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxRDQ3NjU3ODI1Q0IzQUY2MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlRGVjb2RlckFWRi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxRDQ3NjU3OTI1Q0IzQUY2MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUltYWdlRGVjb2RlckFWRi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENDc2NTg0MjVDQ0E0MTYwMDdBRjMx
MiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVJ
bWFnZURlY29kZXJBVkZQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDQ3
NjU4NTI1Q0NBNDE2MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxRDQ3NjU4QzI1Q0NBNjk4MDA3QUYzMTIgLyogUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENDc2
NThGMjVDQ0NFOTIwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVJ
bWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0NzY1OTAyNUNDQ0U5
MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNz
YWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJB
VkZQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJ
CTFENDc2NTkxMjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1l
c3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVJ
bWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzUmVwbGllcy5oOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDQ3NjU5ODI1Q0RGNjQ5MDA3
QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBS
ZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxRDQ3NjU5OTI1Q0U3NEFDMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0NzY1OUEyNUNFNzRBQzAwN0FG
MzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdl
ck1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJ
bWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CisJCTFENDc2NTlCMjVDRTc0QUQwMDdBRjMxMiAvKiBSZW1vdGVJ
bWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURl
Y29kZXJBVkZNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJMUQ0NzY1OUYyNUNGNTc0MDAwN0FGMzEyIC8qIFJlbW90ZUltYWdl
RGVjb2RlckFWRk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDQ3NjVBMDI1Q0Y1NzQw
MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFENEQ3MzZDMjNBOURG
NjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmg7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFENEQ3Mzc1MjNBOUVCNjgw
MDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBA
IC0yOTgzLDcgKzMwMDMsNyBAQAogCQkxREE0MDg5NDIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURBNDA4OUUyM0E4Mjc3
ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMURCQkIwNjEyMTFDQzNDQjAwNTAyRUNDIC8qIFdLU2hhcmVTaGVldC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLU2hhcmVTaGVldC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUREMkE2MzYyNTVERTY3NTAwRkY3QjZGIC8q
IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZWRpYVNv
dXJjZVByaXZhdGVSZW1vdGUuY3BwOyBwYXRoID0gL1ZvbHVtZXMvRGF0YS93ZWJraXQvT3BlblNv
dXJjZS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291cmNlUHJpdmF0
ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CisJCTFERDJBNjM2MjU1
REU2NzUwMEZGN0I2RiAvKiBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUREMkE2MzcyNTVERTY3NTAwRkY3QjZGIC8qIE1lZGlhU291cmNlUHJpdmF0
ZVJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUREMkE2MzkyNTVERTZEMTAwRkY3QjZGIC8qIFNv
dXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREQyQTYzQTI1NURF
NkQxMDBGRjdCNkYgLyogU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTU5ODEsNiArNjAwMSwxMSBAQAogCQkJCUNEQUMyMEJEMjNGQzJGNzQwMDIx
REVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uaCAqLywKIAkJCQlDRDQ2NjE3RjI0MDEw
NDU4MDA0N0NBMzUgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLm1lc3NhZ2VzLmluICovLAog
CQkJCUNEQUMyMEJDMjNGQzJGNzQwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25J
ZGVudGlmaWVyLmggKi8sCisJCQkJMUQ0NzY1NzkyNUNCM0FGNjAwN0FGMzEyIC8qIFJlbW90ZUlt
YWdlRGVjb2RlckFWRi5jcHAgKi8sCisJCQkJMUQ0NzY1NzgyNUNCM0FGNjAwN0FGMzEyIC8qIFJl
bW90ZUltYWdlRGVjb2RlckFWRi5oICovLAorCQkJCTFENDc2NUEwMjVDRjU3NDAwMDdBRjMxMiAv
KiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmNwcCAqLywKKwkJCQkxRDQ3NjU5RjI1Q0Y1
NzQwMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5oICovLAorCQkJCTFE
NDc2NTk4MjVDREY2NDkwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLm1l
c3NhZ2VzLmluICovLAogCQkJCUNERTU1NEVCMjQwNTgxODMwMDhBM0REQiAvKiBSZW1vdGVMZWdh
Y3lDRE0uY3BwICovLAogCQkJCUNERTU1NEVBMjQwNTgxODMwMDhBM0REQiAvKiBSZW1vdGVMZWdh
Y3lDRE0uaCAqLywKIAkJCQlDREU1NTRFMzI0MDU4MTE0MDA4QTNEREIgLyogUmVtb3RlTGVnYWN5
Q0RNRmFjdG9yeS5jcHAgKi8sCkBAIC02MDQ2LDYgKzYwNzEsOSBAQAogCQkJCUNEQUMyMDgzMjNG
QjIxMzQwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eS5jcHAgKi8sCiAJCQkJQ0RBQzIwODIyM0ZC
MjEzNDAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5LmggKi8sCiAJCQkJQ0RBQzIwODYyM0ZCMjE1
ODAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTFENDc2NTg1
MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAgKi8sCisJ
CQkJMUQ0NzY1ODQyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
LmggKi8sCisJCQkJMUQ0NzY1OEMyNUNDQTY5ODAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUNERTU1NTFEMjQwNUEzQjcwMDhBM0REQiAv
KiBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHkuY3BwICovLAogCQkJCUNERTU1NTFDMjQwNUEz
QjcwMDhBM0REQiAvKiBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHkuaCAqLywKIAkJCQlDREU1
NTUxQjI0MDVBM0I3MDA4QTNEREIgLyogUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5Lm1lc3Nh
Z2VzLmluICovLApAQCAtMTA4MDQsNiArMTA4MzIsMTIgQEAKIAkJCQlDREFDMjBFRjIzRkMzODM5
MDAyMURFRTMgLyogUmVtb3RlQ0RNUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNE
QUMyMEY0MjNGQzM4M0EwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3NhZ2VzLmggKi8sCiAJ
CQkJQ0RBQzIwRjAyM0ZDMzgzOTAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZXNSZXBs
aWVzLmggKi8sCisJCQkJMUQ0NzY1OUIyNUNFNzRBRDAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVj
b2RlckFWRk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTFENDc2NTk5MjVDRTc0
QUMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZXMuaCAqLywK
KwkJCQkxRDQ3NjU5QTI1Q0U3NEFDMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTFENDc2NThGMjVDQ0NFOTIwMDdBRjMxMiAv
KiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJ
MUQ0NzY1OTAyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVz
c2FnZXMuaCAqLywKKwkJCQkxRDQ3NjU5MTI1Q0NDRTkzMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkwRkYyNEEyQjE4NzlFNEJD
MDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJMEZGMjRBMkMxODc5RTRCQzAwM0FCRjBDIC8qIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNERTU1NTI5MjQwNkI4OTYwMDhB
M0REQiAvKiBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LApAQCAtMTE4NjYsNiArMTE5MDAsMTIgQEAKIAkJCQlDREFDMjBCNDIzRkI1OEYyMDAyMURFRTMg
LyogUmVtb3RlQ0RNSW5zdGFuY2VQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBQzIwQ0Ey
M0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RBQzIwQzkyM0ZDMkY3NTAwMjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlU2Vz
c2lvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFENDc2NUExMjVDRjU3NDAwMDdB
RjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxRDQ3NjU5QzI1Q0U3NEFEMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdl
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkxRDQ3NjU5RDI1Q0U3NEFEMDA3QUYzMTIg
LyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMUQ0NzY1ODYyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQkxRDQ3NjU5MzI1Q0NDRTkzMDA3QUYzMTIg
LyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMUQ0NzY1OTQyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
TWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDQ3QjU2RDE4MTA3MTRFMDAz
QTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
REY3MzE1MThFOTUwNjAwMDRGNUE2NiAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjE2QUVBMTY0QjNBODgwMDI5MEQ2MiAvKiBSZW1v
dGVMYXllclRyZWVDb250ZXh0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44OTMzNWQyN2VkMGJkODM2ZGI0M2ZiNDcwODdiMGJmMDBlZDY0Mzg2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVJbWFnZURlY29kZXJBVkYuY3BwCkBAIC0wLDAgKzEsMjUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRi5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisKKyNpbmNsdWRl
ICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFW
RlByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQVZBc3NldE1JTUVU
eXBlQ2FjaGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yU3BhY2VDRy5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvSU9TdXJmYWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVR5cGVzLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
aGFyZWRCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgorI2luY2x1
ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmluYXJ5U2Vt
YXBob3JlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29kZXJBVkYoUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGTWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6SW1hZ2VEZWNv
ZGVySWRlbnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKKyAgICA6
IEltYWdlRGVjb2RlcigpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQorICAgICwgbV9taW1lVHlwZShtaW1lVHlwZSkKKyAgICAsIG1fdXRp
KFdlYkNvcmU6OlVUSUZyb21NSU1FVHlwZShtaW1lVHlwZSkpCit7Cit9CisKK1JlbW90ZUltYWdl
RGVjb2RlckFWRjo6flJlbW90ZUltYWdlRGVjb2RlckFWRigpCit7CisgICAgbV9tYW5hZ2VyLmRl
bGV0ZVJlbW90ZUltYWdlRGVjb2RlcihtX2lkZW50aWZpZXIpOworfQorCitHUFVQcm9jZXNzQ29u
bmVjdGlvbiYgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpncHVQcm9jZXNzQ29ubmVjdGlvbigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpOworfQor
Citib29sIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKQoreworICAgIC8vIFRPRE86IFdlIG1heSBuZWVkIHRvIHJlbW92ZSBBVkFzc2V0
TUlNRVR5cGVDYWNoZSBpbiB0aGUgV2ViIHByb2Nlc3MKKyAgICByZXR1cm4gQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OnNpbmdsZXRvbigpLmNhbkRlY29kZVR5cGUobWltZVR5cGUpICE9IE1lZGlhUGxh
eWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7Cit9CisKK2Jvb2wgUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjpzdXBwb3J0c01lZGlhVHlwZShNZWRpYVR5cGUgdHlwZSkKK3sKKyAg
ICAvLyBUT0RPOiBXZSBtYXkgbmVlZCB0byByZW1vdmUgQVZBc3NldE1JTUVUeXBlQ2FjaGUgaW4g
dGhlIFdlYiBwcm9jZXNzCisgICAgcmV0dXJuIHR5cGUgPT0gTWVkaWFUeXBlOjpWaWRlbyAmJiBB
VkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuaXNBdmFpbGFibGUoKTsKK30KKworRW5j
b2RlZERhdGFTdGF0dXMgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjplbmNvZGVkRGF0YVN0YXR1cygp
IGNvbnN0Cit7CisgICAgaWYgKG1fZnJhbWVDb3VudCkKKyAgICAgICAgcmV0dXJuIEVuY29kZWRE
YXRhU3RhdHVzOjpDb21wbGV0ZTsKKyAgICBpZiAobV9zaXplKQorICAgICAgICByZXR1cm4gRW5j
b2RlZERhdGFTdGF0dXM6OlNpemVBdmFpbGFibGU7CisgICAgaWYgKG1faGFzVHJhY2spCisgICAg
ICAgIHJldHVybiBFbmNvZGVkRGF0YVN0YXR1czo6VHlwZUF2YWlsYWJsZTsKKworICAgIHJldHVy
biBFbmNvZGVkRGF0YVN0YXR1czo6VW5rbm93bjsKK30KKwordm9pZCBSZW1vdGVJbWFnZURlY29k
ZXJBVkY6OnNldEVuY29kZWREYXRhU3RhdHVzQ2hhbmdlQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2
b2lkKEVuY29kZWREYXRhU3RhdHVzKT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX2VuY29kZWREYXRh
U3RhdHVzQ2hhbmdlZENhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Cit9CisKK0ludFNpemUg
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpzaXplKCkgY29uc3QKK3sKKyAgICBpZiAobV9zaXplKQor
ICAgICAgICByZXR1cm4gbV9zaXplLnZhbHVlKCk7CisgICAgcmV0dXJuIEludFNpemUoKTsKK30K
Kworc2l6ZV90IFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVDb3VudCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fZnJhbWVDb3VudDsKK30KKworUmVwZXRpdGlvbkNvdW50IFJlbW90ZUltYWdl
RGVjb2RlckFWRjo6cmVwZXRpdGlvbkNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFt
ZUNvdW50ID4gMSA/IFJlcGV0aXRpb25Db3VudEluZmluaXRlIDogUmVwZXRpdGlvbkNvdW50Tm9u
ZTsKK30KKworU3RyaW5nIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6dXRpKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV91dGk7Cit9CisKK1N0cmluZyBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZpbGVu
YW1lRXh0ZW5zaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gTUlNRVR5cGVSZWdpc3RyeTo6cHJl
ZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUobV9taW1lVHlwZSk7Cit9CisKK0ludFNpemUgUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZVNpemVBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdM
ZXZlbCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2l6ZSgpOworfQorCitib29sIFJlbW90ZUltYWdl
RGVjb2RlckFWRjo6ZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGluZGV4IDwgbV9mcmFtZUNvdW50OworfQorCitJbWFnZURlY29kZXI6OkZy
YW1lTWV0YWRhdGEgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZU1ldGFkYXRhQXRJbmRleChz
aXplX3QpIGNvbnN0Cit7CisgICAgcmV0dXJuIHsgfTsKK30KKworU2Vjb25kcyBSZW1vdGVJbWFn
ZURlY29kZXJBVkY6OmZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKK3sK
KyAgICBpZiAobV9mcmFtZUluZm9zLmlzRW1wdHkoKSB8fCBpbmRleCA+PSBtX2ZyYW1lSW5mb3Mu
c2l6ZSgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJuIG1fZnJhbWVJbmZvc1tp
bmRleF0uZHVyYXRpb247Cit9CisKK2Jvb2wgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUhh
c0FscGhhQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYgKG1fZnJhbWVJbmZv
cy5pc0VtcHR5KCkgfHwgaW5kZXggPj0gbV9mcmFtZUluZm9zLnNpemUoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1fZnJhbWVJbmZvc1tpbmRleF0uaGFzQWxwaGE7Cit9
CisKK2Jvb2wgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUFsbG93U3Vic2FtcGxpbmdBdElu
ZGV4KHNpemVfdCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gaW5kZXggPCBtX2ZyYW1lQ291
bnQ7Cit9CisKK3Vuc2lnbmVkIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVCeXRlc0F0SW5k
ZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsKSBjb25zdAoreworICAgIHJldHVybiAoc2l6ZSgp
LmFyZWEoKSAqIDQpLnVuc2FmZUdldCgpOworfQorCitQbGF0Zm9ybUltYWdlUHRyIFJlbW90ZUlt
YWdlRGVjb2RlckFWRjo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBTdWJz
YW1wbGluZ0xldmVsLCBjb25zdCBEZWNvZGluZ09wdGlvbnMmKQoreworICAgIGlmIChtX2ZyYW1l
SW1hZ2VzLmNvbnRhaW5zKGluZGV4KSkKKyAgICAgICAgcmV0dXJuIG1fZnJhbWVJbWFnZXMuZ2V0
KGluZGV4KTsKKworICAgIC8vIFRoaXMgZnVuY3Rpb24gbWlnaHQgYmUgY2FsbGVkIGluIHRoZSBt
YWluIHRocmVhZCB0byBydW4gdGhlIGRlY29kZXIgc3luY2hyb25vdXNseQorICAgIGlmIChpc01h
aW5UaHJlYWQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBCaW5hcnlTZW1hcGhv
cmUgZGVjb2RlU2VtYXBob3JlOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaW5kZXgsICZkZWNvZGVTZW1hcGhvcmVdIHsKKyAgICAg
ICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6Q3JlYXRlRnJhbWVJbWFnZUF0
SW5kZXgobV9pZGVudGlmaWVyLCBpbmRleCksIFsmXShhdXRvJiYgc2VuZFJpZ2h0KSB7CisgICAg
ICAgICAgICBpZiAoIXNlbmRSaWdodCkgeworICAgICAgICAgICAgICAgIGRlY29kZVNlbWFwaG9y
ZS5zaWduYWwoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGF1dG8gc3VyZmFjZSA9IFdlYkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbVNl
bmRSaWdodChXVEZNb3ZlKCpzZW5kUmlnaHQpLCBzUkdCQ29sb3JTcGFjZVJlZigpKTsKKyAgICAg
ICAgICAgIGlmICghc3VyZmFjZSkgeworICAgICAgICAgICAgICAgIGRlY29kZVNlbWFwaG9yZS5z
aWduYWwoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGF1dG8gaW1hZ2UgPSBzdXJmYWNlLT5jcmVhdGVJbWFnZSgpOworICAgICAgICAgICAg
aWYgKCFpbWFnZSkgeworICAgICAgICAgICAgICAgIGRlY29kZVNlbWFwaG9yZS5zaWduYWwoKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1f
ZnJhbWVJbWFnZXMuYWRkKGluZGV4LCBpbWFnZSk7CisgICAgICAgICAgICBkZWNvZGVTZW1hcGhv
cmUuc2lnbmFsKCk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVjb2RlU2VtYXBob3Jl
LndhaXQoKTsKKyAgICBpZiAobV9mcmFtZUltYWdlcy5jb250YWlucyhpbmRleCkpCisgICAgICAg
IHJldHVybiBtX2ZyYW1lSW1hZ2VzLmdldChpbmRleCk7CisKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKwordm9pZCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OnNldEV4cGVjdGVkQ29udGVudFNpemUo
bG9uZyBsb25nIGV4cGVjdGVkQ29udGVudFNpemUpCit7CisgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJv
eHk6OlNldEV4cGVjdGVkQ29udGVudFNpemUobV9pZGVudGlmaWVyLCBleHBlY3RlZENvbnRlbnRT
aXplKSwgMCk7Cit9CisKKy8vIElmIGFsbERhdGFSZWNlaXZlZCBpcyB0cnVlLCB0aGUgY2FsbGVy
IGV4cGVjdHMgZW5jb2RlZERhdGFTdGF0dXMoKSB0byBiZSA+PSBFbmNvZGVkRGF0YVN0YXR1czo6
U2l6ZUF2YWlsYWJsZQorLy8gYWZ0ZXIgdGhpcyBmdW5jdGlvbiByZXR1cm5zIChpbiB0aGUgc2Ft
ZSBydW4gbG9vcCkuCit2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6c2V0RGF0YShTaGFyZWRC
dWZmZXImIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQoreworICAgIElQQzo6U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlIHsgZGF0YSB9OworCisgICAgdWludDMyX3Qg
ZnJhbWVDb3VudDsKKyAgICBJbnRTaXplIHNpemU7CisgICAgYm9vbCBoYXNUcmFjazsKKyAgICBP
cHRpb25hbDxWZWN0b3I8SW1hZ2VEZWNvZGVyOjpGcmFtZUluZm8+PiBmcmFtZUluZm9zOworICAg
IGlmICghZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2Fn
ZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpTZXREYXRhKG1faWRlbnRpZmllciwgZGF0
YVJlZmVyZW5jZSwgYWxsRGF0YVJlY2VpdmVkKSwgTWVzc2FnZXM6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5OjpTZXREYXRhOjpSZXBseShmcmFtZUNvdW50LCBzaXplLCBoYXNUcmFjaywgZnJh
bWVJbmZvcyksIDApKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2lzQWxsRGF0YVJlY2VpdmVk
ID0gYWxsRGF0YVJlY2VpdmVkOworICAgIG1fZnJhbWVDb3VudCA9IGZyYW1lQ291bnQ7CisgICAg
aWYgKCFzaXplLmlzRW1wdHkoKSkKKyAgICAgICAgbV9zaXplID0gc2l6ZTsKKyAgICBtX2hhc1Ry
YWNrID0gaGFzVHJhY2s7CisKKyAgICBpZiAoZnJhbWVJbmZvcykKKyAgICAgICAgbV9mcmFtZUlu
Zm9zLnN3YXAoKmZyYW1lSW5mb3MpOworfQorCit2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6
Y2xlYXJGcmFtZUJ1ZmZlckNhY2hlKHNpemVfdCkKK3sKKyAgICBtX2ZyYW1lSW1hZ2VzLmNsZWFy
KCk7Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjplbmNvZGVkRGF0YVN0YXR1c0No
YW5nZWQoc2l6ZV90IGZyYW1lQ291bnQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUsIGJv
b2wgaGFzVHJhY2spCit7CisgICAgbV9mcmFtZUNvdW50ID0gZnJhbWVDb3VudDsKKyAgICBpZiAo
IXNpemUuaXNFbXB0eSgpKQorICAgICAgICBtX3NpemUgPSBzaXplOworICAgIG1faGFzVHJhY2sg
PSBoYXNUcmFjazsKKworICAgIGlmIChtX2VuY29kZWREYXRhU3RhdHVzQ2hhbmdlZENhbGxiYWNr
KQorICAgICAgICBtX2VuY29kZWREYXRhU3RhdHVzQ2hhbmdlZENhbGxiYWNrKGVuY29kZWREYXRh
U3RhdHVzKCkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTllMmZhMzNhNjQ4NTUyNjdjZTJkNjZjNThlNzFkNWFjODE3MjBlMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGLmgKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVBREVSKQorCisjaW5jbHVk
ZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFu
YWdlci5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvSW1hZ2VEZWNvZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXJJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CitjbGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBS
ZW1vdGVJbWFnZURlY29kZXJBVkYgZmluYWwKKyAgICA6IHB1YmxpYyBXZWJDb3JlOjpJbWFnZURl
Y29kZXIKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVJbWFnZURlY29kZXJBVkY+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUltYWdlRGVjb2RlckFWRj4gY3JlYXRl
KFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6Oklt
YWdlRGVjb2RlcklkZW50aWZpZXImIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZW1vdGVJbWFnZURlY29kZXJBVkYobWFuYWdlciwgaWRlbnRpZmllciwgbWltZVR5cGUp
KTsKKyAgICB9CisgICAgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGKFJlbW90ZUltYWdlRGVjb2RlckFW
Rk1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyJiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSk7CisKKyAgICB2aXJ0dWFsIH5SZW1vdGVJbWFnZURlY29kZXJBVkYo
KTsKKworICAgIHN0YXRpYyBib29sIGNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSk7CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNNZWRpYVR5cGUoTWVkaWFUeXBlKTsKKworICAg
IHNpemVfdCBieXRlc0RlY29kZWRUb0RldGVybWluZVByb3BlcnRpZXMoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAwOyB9CisKKyAgICBXZWJDb3JlOjpFbmNvZGVkRGF0YVN0YXR1cyBlbmNvZGVk
RGF0YVN0YXR1cygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0RW5jb2RlZERhdGFTdGF0dXND
aGFuZ2VDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6RW5jb2RlZERhdGFTdGF0
dXMpPiYmKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpJbnRTaXplIHNpemUoKSBjb25zdCBmaW5hbDsK
KyAgICBzaXplX3QgZnJhbWVDb3VudCgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6OlJlcGV0
aXRpb25Db3VudCByZXBldGl0aW9uQ291bnQoKSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgdXRp
KCkgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3QgZmlu
YWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGhvdFNwb3QoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKworICAgIFdlYkNvcmU6OkludFNpemUgZnJhbWVT
aXplQXRJbmRleChzaXplX3QsIFdlYkNvcmU6OlN1YnNhbXBsaW5nTGV2ZWwgPSBXZWJDb3JlOjpT
dWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0KSBjb25zdCBmaW5hbDsKKyAgICBib29sIGZyYW1lSXND
b21wbGV0ZUF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKKyAgICBGcmFtZU1ldGFkYXRhIGZy
YW1lTWV0YWRhdGFBdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CisKKyAgICBTZWNvbmRzIGZy
YW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBmcmFtZUhh
c0FscGhhQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgZnJhbWVBbGxvd1N1
YnNhbXBsaW5nQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOworICAgIHVuc2lnbmVkIGZyYW1l
Qnl0ZXNBdEluZGV4KHNpemVfdCwgV2ViQ29yZTo6U3Vic2FtcGxpbmdMZXZlbCA9IFdlYkNvcmU6
OlN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpIGNvbnN0IGZpbmFsOworCisgICAgV2ViQ29yZTo6
UGxhdGZvcm1JbWFnZVB0ciBjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QsIFdlYkNvcmU6
OlN1YnNhbXBsaW5nTGV2ZWwgPSBXZWJDb3JlOjpTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0LCBj
b25zdCBXZWJDb3JlOjpEZWNvZGluZ09wdGlvbnMmID0gV2ViQ29yZTo6RGVjb2RpbmdPcHRpb25z
KFdlYkNvcmU6OkRlY29kaW5nTW9kZTo6U3luY2hyb25vdXMpKSBmaW5hbDsKKworICAgIHZvaWQg
c2V0RXhwZWN0ZWRDb250ZW50U2l6ZShsb25nIGxvbmcpIGZpbmFsOworICAgIHZvaWQgc2V0RGF0
YShXZWJDb3JlOjpTaGFyZWRCdWZmZXImLCBib29sIGFsbERhdGFSZWNlaXZlZCkgZmluYWw7Cisg
ICAgYm9vbCBpc0FsbERhdGFSZWNlaXZlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNBbGxE
YXRhUmVjZWl2ZWQ7IH0KKyAgICB2b2lkIGNsZWFyRnJhbWVCdWZmZXJDYWNoZShzaXplX3QpIGZp
bmFsOworCisgICAgdm9pZCBlbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQoc2l6ZV90IGZyYW1lQ291
bnQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBib29sIGhhc1RyYWNrKTsKKworcHJpdmF0ZToK
KyAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKSBjb25zdDsK
KworICAgIFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXImIG1fbWFuYWdlcjsKKyAgICBXZWJD
b3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKworICAgIFN0cmluZyBt
X21pbWVUeXBlOworICAgIFN0cmluZyBtX3V0aTsKKyAgICBib29sIG1faXNBbGxEYXRhUmVjZWl2
ZWQgeyBmYWxzZSB9OworICAgIFdURjo6RnVuY3Rpb248dm9pZChXZWJDb3JlOjpFbmNvZGVkRGF0
YVN0YXR1cyk+IG1fZW5jb2RlZERhdGFTdGF0dXNDaGFuZ2VkQ2FsbGJhY2s7CisgICAgSGFzaE1h
cDxpbnQsIFdlYkNvcmU6OlBsYXRmb3JtSW1hZ2VQdHIsIFdURjo6SW50SGFzaDxpbnQ+LCBXVEY6
OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPGludD4+IG1fZnJhbWVJbWFnZXM7CisgICAg
VmVjdG9yPEltYWdlRGVjb2Rlcjo6RnJhbWVJbmZvPiBtX2ZyYW1lSW5mb3M7CisgICAgc2l6ZV90
IG1fZnJhbWVDb3VudCB7IDAgfTsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBtX3Np
emU7CisgICAgYm9vbCBtX2hhc1RyYWNrIHsgZmFsc2UgfTsKK307CisKK30KKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURl
Y29kZXJBVkZNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY1MzMwYjg3ZWI0
MzM3ZmU2YjZmNWJhNjI4MzgwYjgzYmI0MTVlZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5j
cHAKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisKKyNpbmNsdWRlICJHUFVQcm9jZXNz
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRi5oIgorI2luY2x1
ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlZlB0cjxSZW1vdGVJbWFn
ZURlY29kZXJBVkY+IFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6OmNyZWF0ZUltYWdlRGVj
b2RlcihTaGFyZWRCdWZmZXImIGRhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIEFscGhhT3B0
aW9uIGFscGhhT3B0aW9uLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFuZENvbG9y
UHJvZmlsZU9wdGlvbikKK3sKKyAgICBpZiAoIW1fbWVzc2FnZVJlY2VpdmVySW5pdGlhbGl6ZWQp
IHsKKyAgICAgICAgbV9tZXNzYWdlUmVjZWl2ZXJJbml0aWFsaXplZCA9IHRydWU7CisgICAgICAg
IGdwdVByb2Nlc3NDb25uZWN0aW9uKCkubWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksICp0aGlzKTsKKyAgICB9CisKKyAgICBPcHRpb25hbDxJbWFnZURlY29kZXJJ
ZGVudGlmaWVyPiBpbWFnZURlY29kZXJJZGVudGlmaWVyOworICAgIElQQzo6U2hhcmVkQnVmZmVy
RGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlIHsgZGF0YSB9OworICAgIGlmICghZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5OjpDcmVhdGVEZWNvZGVyKGRhdGFSZWZlcmVuY2UsIG1pbWVUeXBlKSwg
TWVzc2FnZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpDcmVhdGVEZWNvZGVyOjpSZXBs
eShpbWFnZURlY29kZXJJZGVudGlmaWVyKSwgMCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgaWYgKCFpbWFnZURlY29kZXJJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIGF1dG8gcmVtb3RlSW1hZ2VEZWNvZGVyID0gUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
OjpjcmVhdGUoKnRoaXMsICppbWFnZURlY29kZXJJZGVudGlmaWVyLCBkYXRhLCBtaW1lVHlwZSk7
CisgICAgbV9yZW1vdGVJbWFnZURlY29kZXJzLmFkZCgqaW1hZ2VEZWNvZGVySWRlbnRpZmllciwg
bWFrZVdlYWtQdHIocmVtb3RlSW1hZ2VEZWNvZGVyLmdldCgpKSk7CisKKyAgICByZXR1cm4gcmVt
b3RlSW1hZ2VEZWNvZGVyOworfQorCit2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6
OmRlbGV0ZVJlbW90ZUltYWdlRGVjb2Rlcihjb25zdCBJbWFnZURlY29kZXJJZGVudGlmaWVyJiBp
ZGVudGlmaWVyKQoreworICAgIG1fcmVtb3RlSW1hZ2VEZWNvZGVycy50YWtlKGlkZW50aWZpZXIp
OworICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpEZWxldGVEZWNvZGVyKGlkZW50aWZpZXIpLCAw
KTsKK30KKworUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6UmVtb3RlSW1hZ2VEZWNvZGVy
QVZGTWFuYWdlcihXZWJQcm9jZXNzJiBwcm9jZXNzKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3Mp
Cit7Cit9CisKK1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6On5SZW1vdGVJbWFnZURlY29k
ZXJBVkZNYW5hZ2VyKCkKK3sKKyAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLm1lc3NhZ2VSZWNl
aXZlck1hcCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKworY29uc3QgY2hhciog
IFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICBy
ZXR1cm4gIlJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIiOworfQorCitHUFVQcm9jZXNzQ29u
bmVjdGlvbiYgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6Z3B1UHJvY2Vzc0Nvbm5lY3Rp
b24oKSBjb25zdAoreworICAgIGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikKKyAgICAgICAg
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbiA9ICZtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oKTsKKworICAgIHJldHVybiAqbV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsKK30KKwordm9p
ZCBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjpzZXRVc2VHUFVQcm9jZXNzKGJvb2wgdXNl
R1BVUHJvY2VzcykKK3sKKyAgICBpZiAoIXVzZUdQVVByb2Nlc3MpIHsKKyAgICAgICAgSW1hZ2VE
ZWNvZGVyOjpyZXNldEZhY3RvcmllcygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
SW1hZ2VEZWNvZGVyOjpjbGVhckZhY3RvcmllcygpOworICAgIEltYWdlRGVjb2Rlcjo6aW5zdGFs
bEZhY3RvcnkoeworICAgICAgICBSZW1vdGVJbWFnZURlY29kZXJBVkY6OnN1cHBvcnRzTWVkaWFU
eXBlLAorICAgICAgICBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNhbkRlY29kZVR5cGUsCisgICAg
ICAgIFt0aGlzXShTaGFyZWRCdWZmZXImIGRhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIEFs
cGhhT3B0aW9uIGFscGhhT3B0aW9uLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbiBnYW1tYUFu
ZENvbG9yUHJvZmlsZU9wdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUltYWdlRGVj
b2RlcihkYXRhLCBtaW1lVHlwZSwgYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0
aW9uKTsKKyAgICAgICAgfQorICAgIH0pOworfQorCit2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFW
Rk1hbmFnZXI6OmVuY29kZWREYXRhU3RhdHVzQ2hhbmdlZChjb25zdCBJbWFnZURlY29kZXJJZGVu
dGlmaWVyJiBpZGVudGlmaWVyLCBzaXplX3QgZnJhbWVDb3VudCwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2l6ZSwgYm9vbCBoYXNUcmFjaykKK3sKKyAgICBpZiAoIW1fcmVtb3RlSW1hZ2VEZWNv
ZGVycy5jb250YWlucyhpZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBy
ZW1vdGVJbWFnZURlY29kZXIgPSBtX3JlbW90ZUltYWdlRGVjb2RlcnMuZ2V0KGlkZW50aWZpZXIp
OworICAgIGlmICghcmVtb3RlSW1hZ2VEZWNvZGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBy
ZW1vdGVJbWFnZURlY29kZXItPmVuY29kZWREYXRhU3RhdHVzQ2hhbmdlZChmcmFtZUNvdW50LCBz
aXplLCBoYXNUcmFjayk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiYjlhZDViYzVlNGM4ZDVjYzJiMWQ0MWE5MGU5NDY3NmZi
NjdjNjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIuaApAQCAtMCwwICsxLDc1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEhBVkUo
QVZBU1NFVFJFQURFUikKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvSW1hZ2VEZWNvZGVySWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
SW1hZ2VUeXBlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOworY2xhc3MgV2ViUHJvY2VzczsKKworY2xhc3MgUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGTWFuYWdlcgorICAgIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50CisgICAg
LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2Vy
KFdlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2Vy
KCk7CisKKyAgICB2b2lkIGRlbGV0ZVJlbW90ZUltYWdlRGVjb2Rlcihjb25zdCBXZWJDb3JlOjpJ
bWFnZURlY29kZXJJZGVudGlmaWVyJik7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxl
bWVudE5hbWUoKTsKKworICAgIHZvaWQgc2V0VXNlR1BVUHJvY2Vzcyhib29sKTsKKyAgICBHUFVQ
cm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKSBjb25zdDsKKworcHJpdmF0
ZToKKyAgICBSZWZQdHI8UmVtb3RlSW1hZ2VEZWNvZGVyQVZGPiBjcmVhdGVJbWFnZURlY29kZXIo
V2ViQ29yZTo6U2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBXZWJD
b3JlOjpBbHBoYU9wdGlvbiwgV2ViQ29yZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKKyAgICB2b2lkIGVuY29kZWREYXRhU3RhdHVzQ2hhbmdlZChjb25zdCBXZWJD
b3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyJiwgc2l6ZV90IGZyYW1lQ291bnQsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmLCBib29sIGhhc1RyYWNrKTsKKworICAgIEhhc2hNYXA8V2ViQ29yZTo6
SW1hZ2VEZWNvZGVySWRlbnRpZmllciwgV2Vha1B0cjxSZW1vdGVJbWFnZURlY29kZXJBVkY+PiBt
X3JlbW90ZUltYWdlRGVjb2RlcnM7CisKKyAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CisgICAg
bXV0YWJsZSBHUFVQcm9jZXNzQ29ubmVjdGlvbiogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbiB7IG51
bGxwdHIgfTsKKyAgICBib29sIG1fbWVzc2FnZVJlY2VpdmVySW5pdGlhbGl6ZWQgeyBmYWxzZSB9
OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFu
YWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWU1NDEzNmExMDAxNWU1YmY5MjgwMzJlOWRj
ZDE2YTZhNzNlM2E3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0w
LDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVBREVSKQorCittZXNzYWdlcyAtPiBSZW1vdGVJbWFn
ZURlY29kZXJBVkZNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIEVuY29kZWREYXRhU3RhdHVz
Q2hhbmdlZChXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQz
Ml90IGZyYW1lQ291bnQsIFdlYkNvcmU6OkludFNpemUgc2l6ZSwgYm9vbCBoYXNUcmFjaykKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKaW5kZXggNTQ5YjgzMmYwNmFmNTIyZjE0
NzA1ODNlZWQ4NjBjN2YyNWFjNTUxYi4uYzEwMzg3ZGMxZDU0ODRmZjIwMzdiZGU2MzIzZGU1YzU1
ZTNkZTQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApAQCAtNDEsNiArNDEsOCBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRp
b0J1ZmZlckxpc3QuaD4KIAorI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmluZGV4IDAyYTdiNGNkYTM2YmEzYjVkYjIz
NTJhNGIzYmRkMGNmMmRmZWJkNmEuLmJkZDU0OTcxY2RiZWI4MGExNTIzMzUwMWY0NmFjNTRiMmMx
N2I2ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBDb25u
ZWN0aW9uOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7
CitjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
ODYsNCArODcsMyBAQCBwcml2YXRlOgogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFT
U0VUV1JJVEVSREVMRUdBVEUpCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggYzI5ZDg1MGQwZGEzNTJjZGQ3MGI5MTM2ZWYyMGU5NGI4ZmRiNzNm
ZC4uNGRlMmUyODczZWMxMGVkZWVmZjZhZGQ0MjRjMTNjOTI2MjZhZDNiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0NSw2ICszNDUsOSBA
QAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQogI2luY2x1ZGUgIlJlbW90ZUxl
Z2FjeUNETUZhY3RvcnkuaCIKICNlbmRpZgorI2lmIEhBVkUoQVZBU1NFVFJFQURFUikKKyNpbmNs
dWRlICJSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmgiCisjZW5kaWYKICNlbmRpZgogCiAj
aWYgRU5BQkxFKElNQUdFX0VYVFJBQ1RJT04pCkBAIC0zODM5LDYgKzM4NDIsOSBAQCB2b2lkIFdl
YlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3Jl
KQogICAgIC8vIEZJWE1FOiB1c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkIHNob3VsZCBiZSBh
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZSBzaW5jZSBpdCdzIGdsb2JhbC4KICAgICBzdGF0aWNfY2Fz
dDxXZWJNZWRpYVN0cmF0ZWd5Jj4ocGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3ko
KSkuc2V0VXNlR1BVUHJvY2VzcyhtX3Nob3VsZFBsYXlNZWRpYUluR1BVUHJvY2Vzcyk7CiAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI+KCktPnNldFVzZUdQVVByb2Nlc3MobV9zaG91bGRQbGF5TWVkaWFJbkdQVVByb2Nlc3MpOwor
I2lmIEhBVkUoQVZBU1NFVFJFQURFUikKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBw
bGVtZW50PFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI+KCktPnNldFVzZUdQVVByb2Nlc3Mo
bV9zaG91bGRQbGF5TWVkaWFJbkdQVVByb2Nlc3MpOworI2VuZGlmCiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuc2V0VXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1JlbmRlcmluZyhtX3Nob3VsZFJl
bmRlckNhbnZhc0luR1BVUHJvY2Vzcyk7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2V0
VXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZyhtX3Nob3VsZFJlbmRlckRPTUluR1BVUHJvY2Vz
cyAmJiBEcmF3aW5nQXJlYTo6c3VwcG9ydHNHUFVQcm9jZXNzUmVuZGVyaW5nKG1fZHJhd2luZ0Fy
ZWFUeXBlKSk7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2V0VXNlR1BVUHJvY2Vzc0Zv
ck1lZGlhKG1fc2hvdWxkUGxheU1lZGlhSW5HUFVQcm9jZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAzM2NhOGU3M2I2ZWQwNTViNDgyYjdmMTAxMWExZjVk
ODk4MjI2ZWQzLi5kZjkxMWIyYmI1NjA5OTFmNWJjZjdjZTg5Nzg0ZjRjZGVjOWE3NzZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xOTgsNiArMTk4LDExIEBA
CiAjaW5jbHVkZSAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCIKICNlbmRpZgogCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisjaW5jbHVkZSAi
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXIu
aD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8V2ViQ29yZS9WUDlV
dGlsaXRpZXNDb2NvYS5oPgogI2VuZGlmCkBAIC0yNzMsNiArMjc4LDEwIEBAIFdlYlByb2Nlc3M6
OldlYlByb2Nlc3MoKQogICAgIGFkZFN1cHBsZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
PigpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEhBVkUoQVZBU1NFVFJF
QURFUikKKyAgICBhZGRTdXBwbGVtZW50PFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI+KCk7
CisjZW5kaWYKKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKICAgICBhZGRTdXBwbGVtZW50PFJlbW90ZUNETUZhY3Rvcnk+KCk7CiAjZW5kaWYKQEAg
LTE5MzgsNyArMTk0Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0VXNlR1BVUHJvY2Vzc0Zvck1l
ZGlhKGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhKQogICAgIGVsc2UKICAgICAgICAgTGVnYWN5
Q0RNOjpyZXNldEZhY3RvcmllcygpOwogI2VuZGlmCi0gICAgCisKICAgICBpZiAodXNlR1BVUHJv
Y2Vzc0Zvck1lZGlhKQogICAgICAgICBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLm1lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkoKS5yZWdpc3RlckZhY3RvcnkoKTsKICAgICBlbHNl
Cg==
</data>
<flag name="review"
          id="437822"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
    <flag name="commit-queue"
          id="438084"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419769</attachid>
            <date>2021-02-09 14:45:10 -0800</date>
            <delta_ts>2021-02-09 17:18:53 -0800</delta_ts>
            <desc>Rebase the patch for landing</desc>
            <filename>bug-221317-20210209144509.patch</filename>
            <type>text/plain</type>
            <size>87764</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJhNjUyMzUzYWMyOWE2
ZWRhMmQyODk3Y2QyNmY2ZDQ1YzRmOGI1OC4uNzFlYzk5MjA5MmM5ZWY2ZTU2OGViZTUwMGZkNTEy
MjEwZGJiNTczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTAyLTA5ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIFJ1biBJbWFnZURl
Y29kZXJBVkZPYmpDIGluIHRoZSBHUFUgUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMzE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVy
IE5vYmxlLgorCisgICAgICAgIE1vZGlmeSBgSW1hZ2VEZWNvZGVyYCBhbmQgYEltYWdlRGVjb2Rl
ckFWRk9iakNgIGNsYXNzZXMgaW4gb3JkZXIgdG8gcnVuIGBJbWFnZURlY29kZXJBVkZPYmpDYAor
ICAgICAgICBpbiB0aGUgR1BVIHByb2Nlc3MuCisgICAgICAgIC0gQWRkIGluc3RhbGwvcmVzZXQg
ZmFjdG9yeSBtZXRob2RzIHRvIGBJbWFnZURlY29kZXJgIGNsYXNzLgorICAgICAgICAtIEFkZCBh
IHN0cnVjdCBgRnJhbWVJbmZvYC4KKyAgICAgICAgLSBFeHBvcnQgc29tZSBtZXRob2RzIG9mIGBJ
bWFnZURlY29kZXJBVkZPYmpDYCB0byBXZWJLaXQuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VE
ZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6aW5zdGFsbGVkRmFjdG9yaWVzKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlRGVjb2Rlcjo6aW5zdGFsbEZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VEZWNvZGVyOjpyZXNldEZhY3Rvcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29k
ZXI6OmNsZWFyRmFjdG9yaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2Rlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2Rlcjo6c3VwcG9ydHNNZWRpYVR5cGUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpGcmFtZUluZm86OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZURlY29kZXI6OkZyYW1lSW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXJJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9i
akMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckFWRk9iakM6Omhhc1RyYWNrIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFn
ZURlY29kZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyQVZGT2Jq
Qzo6ZnJhbWVJbmZvcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJBVkZP
YmpDOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOjplbnN1cmVEZWNvbXByZXNz
aW9uU2Vzc2lvbkZvclNhbXBsZSk6CisgICAgICAgIFVwZGF0ZSB0aGUgYXR0cmlidXRlIHNvIHRo
YXQgd2UgY2FuIGNyZWF0ZSBhbiBJT1N1cmZhY2UgZnJvbSBhIGRlY29kZWQgZnJhbWUuCisKIDIw
MjEtMDItMDkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW21hY09TXSBBZGQgaW50ZXJuYWwgcHJlZmVyZW5jZSB0byBjb250cm9sIGhvdyBBVk91dHB1
dENvbnRleHQgaXMgYWxsb2NhdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5ZmI2YTRjN2ZlZjkxNzAzMjY3YmE3
YjYxOWY3Njg2NjU2NDVkYTIuLmY4ZWQ3Y2EzZjVmYzMyYzNjMGVhMmY5ZDZlM2QzMjgzNjM2MzY0
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMjEtMDItMDkgIFBlbmcgTGl1ICA8cGVu
Zy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gUnVuIEltYWdlRGVjb2RlckFWRk9i
akMgaW4gdGhlIEdQVSBQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjEzMTcKKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBzdXBwb3J0IHRvIHJ1biBgSW1hZ2VEZWNvZGVy
QVZGT2JqQ2AgaW4gdGhlIEdQVSBwcm9jZXNzIHdoZW4gdGhlCisgICAgICAgICJHUFUgUHJvY2Vz
czogTWVkaWEiIHByZWZlcmVuY2UgaXMgb24uIFRoZSBgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGYCBy
dW5uaW5nIGluIHRoZSBXZWIKKyAgICAgICAgcHJvY2VzcyBmb3J3YXJkcyB2aWRlbyBkYXRhIHRv
IHRoZSBgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlgIHJ1bm5pbmcgaW4gdGhlIEdQVSBwcm9j
ZXNzLAorICAgICAgICB3aGljaCBwYXJzZXMgdGhlIGRhdGEgYW5kIHJldHVybnMgZnJhbWUgaW5m
b3JtYXRpb24gKCJoYXNBbHBoYSIgYW5kICJkdXJhdGlvbiIpIHRvIHRoZQorICAgICAgICBXZWIg
cHJvY2Vzcy4gYFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5YCB3aWxsIGdlbmVyYXRlIChkZWNv
ZGUpIGZyYW1lcyAoaW1hZ2VzKSBhZnRlcgorICAgICAgICByZWNlaXZpbmcgcmVxdWVzdHMgZnJv
bSBgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGYC4gVGhlIGRlY29kZWQgZnJhbWVzIGFyZSB0cmFuc2Zl
cnJlZCB0bworICAgICAgICB0aGUgV2ViIHByb2Nlc3MgdGhyb3VnaCBJT1N1cmZhY2VzLCBhbmQg
dGhlIGZyYW1lcyB3aWxsIGJlIGNhY2hlZCBpbiB0aGUgV2ViIHByb2Nlc3MuCisKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisK
KyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjppbWFnZURlY29kZXJBVkZQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3Bh
dGNoTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmRpc3BhdGNoU3luY01lc3NhZ2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oOgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFn
ZURlY29kZXJBVkZQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZURlY29kZXJBVkZQcm94eTo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6Y3JlYXRlRGVjb2Rlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpkZWxldGVEZWNvZGVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OmVuY29kZWREYXRh
U3RhdHVzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5OjpzZXRFeHBlY3RlZENvbnRlbnRTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1h
Z2VEZWNvZGVyQVZGUHJveHk6OnNldERhdGEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFn
ZURlY29kZXJBVkZQcm94eTo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaDogQWRkZWQuCisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5tZXNzYWdl
cy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAg
ICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1h
Z2VEZWNvZGVyQVZGLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVj
b2RlckFWRjo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjp+UmVtb3RlSW1hZ2VEZWNvZGVyQVZGKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpncHVQcm9jZXNzQ29ubmVjdGlvbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y2FuRGVjb2RlVHlwZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6c3VwcG9ydHNNZWRpYVR5cGUp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmVuY29kZWREYXRhU3Rh
dHVzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpzZXRF
bmNvZGVkRGF0YVN0YXR1c0NoYW5nZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjpzaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1h
Z2VEZWNvZGVyQVZGOjpmcmFtZUNvdW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjpyZXBldGl0aW9uQ291bnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OnV0aSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlRGVjb2RlckFWRjo6ZmlsZW5hbWVFeHRlbnNpb24gY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lU2l6ZUF0SW5kZXggY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lSXNDb21wbGV0ZUF0
SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZy
YW1lTWV0YWRhdGFBdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGOjpmcmFtZUR1cmF0aW9uQXRJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVIYXNBbHBoYUF0SW5kZXggY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lQWxsb3dTdWJzYW1wbGlu
Z0F0SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6
OmZyYW1lQnl0ZXNBdEluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlRGVjb2RlckFWRjo6c2V0RXhwZWN0ZWRDb250ZW50U2l6ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6c2V0RGF0YSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y2xlYXJGcmFtZUJ1ZmZlckNhY2hlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjplbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5o
OiBBZGRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVj
b2RlckFWRk1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGTWFuYWdlcjo6Y3JlYXRlSW1hZ2VEZWNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6ZGVsZXRlUmVtb3RlSW1hZ2VEZWNvZGVyKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6UmVtb3RlSW1h
Z2VEZWNvZGVyQVZGTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRk1hbmFnZXI6On5SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjpncHVQcm9jZXNzQ29u
bmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRk1h
bmFnZXI6OnNldFVzZUdQVVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURl
Y29kZXJBVkZNYW5hZ2VyOjplbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFu
YWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwOiBGaXggdW5pZmllZCBidWlsZCBmYWlsdXJlcy4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaDog
RGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRV
c2VHUFVQcm9jZXNzRm9yTWVkaWEpOgorCiAyMDIxLTAyLTA5ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWRkIGludGVybmFsIHByZWZl
cmVuY2UgdG8gY29udHJvbCBob3cgQVZPdXRwdXRDb250ZXh0IGlzIGFsbG9jYXRlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEw
YzA0ZjQ3ODRkMDYxNDI1ZWIwMDIzYWU5NTAzODE4MzhmZDQ5MDAuLmEyNzNhNzIzZGZlNDU1ZDVh
ZTMyY2M1NjUwZDU4Y2IyZjNhMGM1M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzNiw2ICs2MzYsNyBAQAogCQkxRDJGOEUw
NDIzNDQ3NTE2MDA5OTNCNjggLyogRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERUYwNkNBMjMzQzNEMEIw
MEVFMjI4RCAvKiBFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEMkY4RTA1MjM0NDc1MUQwMDk5M0I2
OCAvKiBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFRjA2Q0MyMzNDM0QyMDAwRUUyMjhEIC8q
IEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQyRjhFMDYyMzQ0NzUyMzAwOTkzQjY4IC8q
IFBpY3R1cmVJblBpY3R1cmVXaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFERUYwNkNEMjMzQzNEMkEwMEVFMjI4RCAvKiBQaWN0dXJlSW5QaWN0
dXJlV2luZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMUQ0NzY1OEUyNUNDQTc3ODAwN0FGMzEyIC8qIEltYWdlRGVjb2RlcklkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENDc2NThE
MjVDQ0E3NzgwMDdBRjMxMiAvKiBJbWFnZURlY29kZXJJZGVudGlmaWVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUQ5RjBGQzEyMTIyMDI5QjAw
NUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMURDNTU0MDAyMTFCQThDODAwNEI3ODBFIC8qIFNoYXJlRGF0YS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFEQUIzMTEyMjUx
RDZCRjMwMEZDOTQ4NSAvKiBXZWJWaWRlb0NvbnRhaW5lckxheWVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDhCMzFBMTIzNzlEQzgzMDA4ODNGREUg
LyogV2ViVmlkZW9Db250YWluZXJMYXllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTFEQUIzMTE0MjUxRDcyNUMwMEZDOTQ4NSAvKiBWaWRlb0xh
eWVyTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMURBQjMxMTMyNTFENzI1QzAwRkM5NDg1IC8qIFZpZGVvTGF5ZXJNYW5hZ2VyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQyMzEsOCArNDIz
Miw4IEBACiAJCUNEMTI3REVFMTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldp
bmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qx
MjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QxN0E0NUQyMTM3
NDA4MTAwNzlFQzdCIC8qIFVuaWZpZWRTb3VyY2U2Mi1tbS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTdBNDU5MjEzNzQwMTYwMDc5RUM3QiAvKiBV
bmlmaWVkU291cmNlNjItbW0ubW0gKi87IH07CiAJCUNEMTlBMjY4MUExM0U3MDAwMDhENjUwRSAv
KiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNjcxQTEzRTcwMDAwOEQ2NTBFIC8qIERpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJQ0QxOUZFQTgxRjU3Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUZFQTYxRjU3Mzk3
MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oICovOyB9OwotCQlDRDE5RkVBRTFGNTc0QjZEMDAw
QzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUZFQUMxRjU3NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVj
b2RlckFWRk9iakMuaCAqLzsgfTsKKwkJQ0QxOUZFQTgxRjU3Mzk3MjAwMEM0MkZCIC8qIEltYWdl
RGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0QxOUZFQTYxRjU3Mzk3MjAwMEM0MkZCIC8qIEltYWdlRGVjb2Rlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEMTlGRUFFMUY1NzRCNkQwMDBD
NDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RkVBQzFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNv
ZGVyQVZGT2JqQy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUNEMTlGRUFGMUY1NzRCNkQwMDBDNDJGQiAvKiBJbWFnZURlY29kZXJBVkZPYmpDLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUZFQUQx
RjU3NEI2RDAwMEM0MkZCIC8qIEltYWdlRGVjb2RlckFWRk9iakMubW0gKi87IH07CiAJCUNEMjI1
QzBCMUM0NkZCRjQwMDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyMjVDMDkxQzQ2RkJGNDAwMTQw
NzYxIC8qIFdlYkNvcmVOU1VSTFNlc3Npb24ubW0gKi87IH07CiAJCUNEMjI1QzBDMUM0NkZCRjQw
MDE0MDc2MSAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDIyNUMwQTFDNDZGQkY0MDAxNDA3NjEgLyogV2ViQ29y
ZU5TVVJMU2Vzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC02ODk5LDYgKzY5MDAsNyBAQAogCQkxRDAwMjZBODIzNzRGOUQ5MDBDQTZDREYg
LyogSlNFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFEMDAyNkE5MjM3NEY5RDkwMENBNkNERiAvKiBKU0VudGVyUGljdHVy
ZUluUGljdHVyZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxRDJDODJCNjIzNkEzRjZBMDA1NUQ2QzUgLyogUGljdHVyZUluUGljdHVyZVN1cHBv
cnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGljdHVyZUluUGljdHVyZVN1cHBvcnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0NzY1OEQyNUNDQTc3ODAwN0FGMzEyIC8qIEltYWdlRGVj
b2RlcklkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VEZWNvZGVySWRlbnRpZmllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREFCMzExMzI1MUQ3MjVDMDBGQzk0ODUg
LyogVmlkZW9MYXllck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9MYXllck1hbmFnZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCNjZEMzcyNTM2NzhFQTAwQjY3MUI5
IC8qIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9PdXRwdXRV
bml0QWRhcHRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREI2NkQzODI1MzY3
OEVBMDBCNjcxQjkgLyogQXVkaW9PdXRwdXRVbml0QWRhcHRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBdWRpb091dHB1dFVuaXRBZGFwdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTI2NzA1LDYgKzI2NzA3LDcgQEAKIAkJCQlCMkExMEM5MTBCMzgxOEJEMDAwOTlBQTQg
LyogSW1hZ2VCdWZmZXJQaXBlLmggKi8sCiAJCQkJQ0QxOUZFQTcxRjU3Mzk3MjAwMEM0MkZCIC8q
IEltYWdlRGVjb2Rlci5jcHAgKi8sCiAJCQkJQ0QxOUZFQTYxRjU3Mzk3MjAwMEM0MkZCIC8qIElt
YWdlRGVjb2Rlci5oICovLAorCQkJCTFENDc2NThEMjVDQ0E3NzgwMDdBRjMxMiAvKiBJbWFnZURl
Y29kZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJNTU3NkE1NjIxRDg4QTcwODAwQ0NDMDRDIC8qIElt
YWdlRnJhbWUuY3BwICovLAogCQkJCTU1NzZBNTYzMUQ4OEE3MDgwMENDQzA0QyAvKiBJbWFnZUZy
YW1lLmggKi8sCiAJCQkJQkM3RjQ0QTcwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIu
aCAqLywKQEAgLTMyNTY2LDYgKzMyNTY5LDcgQEAKIAkJCQlDRDE5RkVBODFGNTczOTcyMDAwQzQy
RkIgLyogSW1hZ2VEZWNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDE5RkVBRTFGNTc0QjZE
MDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU1
Qjg3RUQxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVjb2RlckNHLmggaW4gSGVhZGVycyAqLywK
KwkJCQkxRDQ3NjU4RTI1Q0NBNzc4MDA3QUYzMTIgLyogSW1hZ2VEZWNvZGVySWRlbnRpZmllci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTcyMDVBQjYxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdlRG9j
dW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0OEI3RDUzMjVDMzQxRTYwMDlFNzVERCAvKiBJ
bWFnZUV4dHJhY3Rpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1NzZBNTY1MUQ4OEE3
MDgwMENDQzA0QyAvKiBJbWFnZUZyYW1lLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIuY3BwCmluZGV4IDg2OGVkODc4
MDZkMjkwMTBiNTE5MjIwMTY0MTE0NDVlNmZmZmJhZGUuLjA4NjllOTlhMDA4ODZmN2NkMTIxODZm
ZTMxNjFkZTA0N2ZhNTEzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VEZWNvZGVyLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkltYWdlRGVjb2Rlci5oIgogCisjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CisKICNpZiBVU0UoQ0cpCiAjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyQ0cuaCIKICNl
bGlmIFVTRShESVJFQ1QyRCkKQEAgLTQ0LDEzICs0Niw1OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEhBVkUoQVZBU1NFVFJFQURFUikKK3Vz
aW5nIEZhY3RvcnlWZWN0b3IgPSBWZWN0b3I8SW1hZ2VEZWNvZGVyOjpJbWFnZURlY29kZXJGYWN0
b3J5PjsKKworc3RhdGljIHZvaWQgcGxhdGZvcm1SZWdpc3RlckZhY3RvcmllcyhGYWN0b3J5VmVj
dG9yJiBmYWN0b3JpZXMpCit7CisgICAgZmFjdG9yaWVzLmFwcGVuZCh7IEltYWdlRGVjb2RlckFW
Rk9iakM6OnN1cHBvcnRzTWVkaWFUeXBlLCBJbWFnZURlY29kZXJBVkZPYmpDOjpjYW5EZWNvZGVU
eXBlLCBJbWFnZURlY29kZXJBVkZPYmpDOjpjcmVhdGUgfSk7Cit9CisKK3N0YXRpYyBGYWN0b3J5
VmVjdG9yJiBpbnN0YWxsZWRGYWN0b3JpZXMoKQoreworICAgIHN0YXRpYyBhdXRvIGZhY3Rvcmll
cyA9IG1ha2VOZXZlckRlc3Ryb3llZDxGYWN0b3J5VmVjdG9yPih7IH0pOworICAgIHN0YXRpYyBz
dGQ6Om9uY2VfZmxhZyByZWdpc3RlckRlZmF1bHRzOworICAgIHN0ZDo6Y2FsbF9vbmNlKHJlZ2lz
dGVyRGVmYXVsdHMsIFsmXSB7CisgICAgICAgIHBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoZmFj
dG9yaWVzKTsKKyAgICB9KTsKKworICAgIHJldHVybiBmYWN0b3JpZXM7Cit9CisKK3ZvaWQgSW1h
Z2VEZWNvZGVyOjppbnN0YWxsRmFjdG9yeShJbWFnZURlY29kZXI6OkltYWdlRGVjb2RlckZhY3Rv
cnkmJiBmYWN0b3J5KQoreworICAgIGluc3RhbGxlZEZhY3RvcmllcygpLmFwcGVuZChXVEZNb3Zl
KGZhY3RvcnkpKTsKK30KKwordm9pZCBJbWFnZURlY29kZXI6OnJlc2V0RmFjdG9yaWVzKCkKK3sK
KyAgICBpbnN0YWxsZWRGYWN0b3JpZXMoKS5jbGVhcigpOworICAgIHBsYXRmb3JtUmVnaXN0ZXJG
YWN0b3JpZXMoaW5zdGFsbGVkRmFjdG9yaWVzKCkpOworfQorCit2b2lkIEltYWdlRGVjb2Rlcjo6
Y2xlYXJGYWN0b3JpZXMoKQoreworICAgIGluc3RhbGxlZEZhY3RvcmllcygpLmNsZWFyKCk7Cit9
CisjZW5kaWYKKwogUmVmUHRyPEltYWdlRGVjb2Rlcj4gSW1hZ2VEZWNvZGVyOjpjcmVhdGUoU2hh
cmVkQnVmZmVyJiBkYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBBbHBoYU9wdGlvbiBhbHBo
YU9wdGlvbiwgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKG1pbWVUeXBlKTsKIAogI2lmIEhBVkUoQVZBU1NF
VFJFQURFUikKLSAgICBpZiAoIUltYWdlRGVjb2RlckNHOjpjYW5EZWNvZGVUeXBlKG1pbWVUeXBl
KSAmJiBJbWFnZURlY29kZXJBVkZPYmpDOjpjYW5EZWNvZGVUeXBlKG1pbWVUeXBlKSkKLSAgICAg
ICAgcmV0dXJuIEltYWdlRGVjb2RlckFWRk9iakM6OmNyZWF0ZShkYXRhLCBtaW1lVHlwZSwgYWxw
aGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKKyAgICBpZiAoIUltYWdlRGVj
b2RlckNHOjpjYW5EZWNvZGVUeXBlKG1pbWVUeXBlKSkgeworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKyAgICAgICAgZm9yIChhdXRvJiBmYWN0b3J5IDogaW5zdGFsbGVkRmFjdG9yaWVzKCkpIHsK
KyAgICAgICAgICAgIGlmIChmYWN0b3J5LmNhbkRlY29kZVR5cGUobWltZVR5cGUpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBmYWN0b3J5LmNyZWF0ZUltYWdlRGVjb2RlcihkYXRhLCBtaW1lVHlw
ZSwgYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKKyAgICAgICAgfQor
I2Vsc2UKKyAgICAgICAgaWYgKEltYWdlRGVjb2RlckFWRk9iakM6OmNhbkRlY29kZVR5cGUobWlt
ZVR5cGUpKQorICAgICAgICAgICAgcmV0dXJuIEltYWdlRGVjb2RlckFWRk9iakM6OmNyZWF0ZShk
YXRhLCBtaW1lVHlwZSwgYWxwaGFPcHRpb24sIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsK
KyNlbmRpZgorICAgIH0KICNlbmRpZgogCiAjaWYgVVNFKEdTVFJFQU1FUikgJiYgRU5BQkxFKFZJ
REVPKQpAQCAtODEsOSArMTI4LDE2IEBAIGJvb2wgSW1hZ2VEZWNvZGVyOjpzdXBwb3J0c01lZGlh
VHlwZShNZWRpYVR5cGUgdHlwZSkKICNlbmRpZgogCiAjaWYgSEFWRShBVkFTU0VUUkVBREVSKQor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBmb3IgKGF1dG8mIGZhY3RvcnkgOiBpbnN0YWxs
ZWRGYWN0b3JpZXMoKSkgeworICAgICAgICBpZiAoZmFjdG9yeS5zdXBwb3J0c01lZGlhVHlwZSh0
eXBlKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbHNlCiAgICAgaWYgKElt
YWdlRGVjb2RlckFWRk9iakM6OnN1cHBvcnRzTWVkaWFUeXBlKHR5cGUpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICNlbmRpZgorI2VuZGlmCiAKICNpZiBVU0UoR1NUUkVBTUVSKSAmJiBFTkFCTEUo
VklERU8pCiAgICAgaWYgKEltYWdlRGVjb2RlckdTdHJlYW1lcjo6c3VwcG9ydHNNZWRpYVR5cGUo
dHlwZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rl
ci5oCmluZGV4IDg2NzBkMTUyNGNlYTIxNGJkZTc5ZGQ2N2RkYzJjMTNjYjQxOWRiYTkuLjgxNjY0
MTMzMWMyYjNmMGFhY2JhMjE1MWRmZGY2Yjk0MmI2MjVlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCkBAIC01Niw4ICs1Niw1NSBAQCBw
dWJsaWM6CiAgICAgICAgIE9wdGlvbmFsPEludFNpemU+IGRlbnNpdHlDb3JyZWN0ZWRTaXplOwog
ICAgIH07CiAKKyAgICBzdHJ1Y3QgRnJhbWVJbmZvIHsKKyAgICAgICAgYm9vbCBoYXNBbHBoYTsK
KyAgICAgICAgU2Vjb25kcyBkdXJhdGlvbjsKKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPgorICAgICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgICAg
ICB7CisgICAgICAgICAgICBlbmNvZGVyIDw8IGhhc0FscGhhOworICAgICAgICAgICAgZW5jb2Rl
ciA8PCBkdXJhdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CisgICAgICAgIHN0YXRpYyBPcHRpb25hbDxGcmFtZUluZm8+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQorICAgICAgICB7CisgICAgICAgICAgICBPcHRpb25hbDxib29sPiBoYXNBbHBoYTsK
KyAgICAgICAgICAgIGRlY29kZXIgPj4gaGFzQWxwaGE7CisgICAgICAgICAgICBpZiAoIWhhc0Fs
cGhhKQorICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgICAg
IE9wdGlvbmFsPFNlY29uZHM+IGR1cmF0aW9uOworICAgICAgICAgICAgZGVjb2RlciA+PiBkdXJh
dGlvbjsKKyAgICAgICAgICAgIGlmICghZHVyYXRpb24pCisgICAgICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgICAgICAgICAgcmV0dXJuIHt7CisgICAgICAgICAgICAgICAg
Kmhhc0FscGhhLAorICAgICAgICAgICAgICAgICpkdXJhdGlvbgorICAgICAgICAgICAgfX07Cisg
ICAgICAgIH0KKyAgICB9OworCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNNZWRpYVR5cGUoTWVk
aWFUeXBlKTsKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICB1c2luZyBTdXBwb3J0c01l
ZGlhVHlwZUZ1bmMgPSBXVEY6OkZ1bmN0aW9uPGJvb2woTWVkaWFUeXBlKT47CisgICAgdXNpbmcg
Q2FuRGVjb2RlVHlwZUZ1bmMgPSBXVEY6OkZ1bmN0aW9uPGJvb2woY29uc3QgU3RyaW5nJik+Owor
ICAgIHVzaW5nIENyZWF0ZUltYWdlRGVjb2RlckZ1bmMgPSBXVEY6OkZ1bmN0aW9uPFJlZlB0cjxJ
bWFnZURlY29kZXI+KFNoYXJlZEJ1ZmZlciYsIGNvbnN0IFN0cmluZyYsIEFscGhhT3B0aW9uLCBH
YW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbik+OworCisgICAgc3RydWN0IEltYWdlRGVjb2RlckZh
Y3RvcnkgeworICAgICAgICBTdXBwb3J0c01lZGlhVHlwZUZ1bmMgc3VwcG9ydHNNZWRpYVR5cGU7
CisgICAgICAgIENhbkRlY29kZVR5cGVGdW5jIGNhbkRlY29kZVR5cGU7CisgICAgICAgIENyZWF0
ZUltYWdlRGVjb2RlckZ1bmMgY3JlYXRlSW1hZ2VEZWNvZGVyOworICAgIH07CisKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBpbnN0YWxsRmFjdG9yeShJbWFnZURlY29kZXJGYWN0b3J5
JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJlc2V0RmFjdG9yaWVzKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgY2xlYXJGYWN0b3JpZXMoKTsKKyNlbmRpZgor
CiAgICAgdmlydHVhbCBzaXplX3QgYnl0ZXNEZWNvZGVkVG9EZXRlcm1pbmVQcm9wZXJ0aWVzKCkg
Y29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBFbmNvZGVkRGF0YVN0YXR1cyBlbmNvZGVkRGF0YVN0
YXR1cygpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlRGVjb2RlcklkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlRGVjb2RlcklkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDQ2YWUwYzRj
MjAyOGU3YTg5OGZkZGU5YjU4ZDEzMzAyNjgxYzEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVySWRlbnRpZmllci5oCkBAIC0w
LDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9P
YmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBJbWFnZURl
Y29kZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBJbWFnZURlY29kZXJJZGVudGlmaWVyID0g
T2JqZWN0SWRlbnRpZmllcjxJbWFnZURlY29kZXJJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9i
akMuaAppbmRleCAzYjQ1MDY3OGZhN2YzNmMxOThhNDBiMDg3ZTc0NmYxMmE3OThjNzg1Li40ZGVl
NDIxNWZlYTEwYWRlYjJhMWY3YzYzNDZjNzRlMmZkMmI0OGRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJB
VkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvSW1hZ2VEZWNvZGVyQVZGT2JqQy5oCkBAIC01MywyMSArNTMsMjEgQEAgY2xhc3Mg
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uOwogCiBjbGFzcyBJbWFnZURlY29kZXJBVkZPYmpD
IDogcHVibGljIEltYWdlRGVjb2RlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxJbWFn
ZURlY29kZXJBVkZPYmpDPiBjcmVhdGUoU2hhcmVkQnVmZmVyJiwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgQWxwaGFPcHRpb24sIEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgUmVmUHRyPEltYWdlRGVjb2RlckFWRk9iakM+IGNyZWF0ZShTaGFy
ZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBBbHBoYU9wdGlvbiwgR2FtbWFBbmRD
b2xvclByb2ZpbGVPcHRpb24pOwogICAgIHZpcnR1YWwgfkltYWdlRGVjb2RlckFWRk9iakMoKTsK
IAotICAgIHN0YXRpYyBib29sIHN1cHBvcnRzTWVkaWFUeXBlKE1lZGlhVHlwZSk7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIGJvb2wgc3VwcG9ydHNNZWRpYVR5cGUoTWVkaWFUeXBlKTsKICAg
ICBzdGF0aWMgYm9vbCBzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJik7CiAKICAg
ICBzaXplX3QgYnl0ZXNEZWNvZGVkVG9EZXRlcm1pbmVQcm9wZXJ0aWVzKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gMDsgfQotICAgIHN0YXRpYyBib29sIGNhbkRlY29kZVR5cGUoY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgY2FuRGVjb2Rl
VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAogICAgIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUoKSBjb25zdCB7IHJldHVybiBtX21pbWVUeXBlOyB9CiAKLSAgICB2b2lkIHNldEVuY29kZWRE
YXRhU3RhdHVzQ2hhbmdlQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKEVuY29kZWREYXRhU3Rh
dHVzKT4mJikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRFbmNvZGVkRGF0YVN0
YXR1c0NoYW5nZUNhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZChFbmNvZGVkRGF0YVN0YXR1cyk+
JiYpIGZpbmFsOwogICAgIEVuY29kZWREYXRhU3RhdHVzIGVuY29kZWREYXRhU3RhdHVzKCkgY29u
c3QgZmluYWw7Ci0gICAgSW50U2l6ZSBzaXplKCkgY29uc3QgZmluYWw7Ci0gICAgc2l6ZV90IGZy
YW1lQ291bnQoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCBJbnRTaXplIHNpemUo
KSBjb25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCBzaXplX3QgZnJhbWVDb3VudCgpIGNv
bnN0IGZpbmFsOwogICAgIFJlcGV0aXRpb25Db3VudCByZXBldGl0aW9uQ291bnQoKSBjb25zdCBm
aW5hbDsKICAgICBTdHJpbmcgdXRpKCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIGZpbGVuYW1l
RXh0ZW5zaW9uKCkgY29uc3QgZmluYWw7CkBAIC04MiwxMyArODIsMTYgQEAgcHVibGljOgogICAg
IGJvb2wgZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOwog
ICAgIHVuc2lnbmVkIGZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9
IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpIGNvbnN0IGZpbmFsOwogCi0gICAgUGxhdGZvcm1J
bWFnZVB0ciBjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwg
PSBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0LCBjb25zdCBEZWNvZGluZ09wdGlvbnMmID0gRGVj
b2RpbmdPcHRpb25zKERlY29kaW5nTW9kZTo6U3luY2hyb25vdXMpKSBmaW5hbDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBQbGF0Zm9ybUltYWdlUHRyIGNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVf
dCwgU3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQsIGNvbnN0IERl
Y29kaW5nT3B0aW9ucyYgPSBEZWNvZGluZ09wdGlvbnMoRGVjb2RpbmdNb2RlOjpTeW5jaHJvbm91
cykpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRFeHBlY3RlZENvbnRlbnRTaXplKGxvbmcgbG9uZykg
ZmluYWw7Ci0gICAgdm9pZCBzZXREYXRhKFNoYXJlZEJ1ZmZlciYsIGJvb2wgYWxsRGF0YVJlY2Vp
dmVkKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEV4cGVjdGVkQ29udGVudFNp
emUobG9uZyBsb25nKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERhdGEoU2hh
cmVkQnVmZmVyJiwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpIGZpbmFsOwogICAgIGJvb2wgaXNBbGxE
YXRhUmVjZWl2ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzQWxsRGF0YVJlY2VpdmVkOyB9
CiAgICAgdm9pZCBjbGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6ZV90KSBmaW5hbDsKIAorICAgIGJv
b2wgaGFzVHJhY2soKSBjb25zdCB7IHJldHVybiAhIW1fdHJhY2s7IH0KKyAgICBXRUJDT1JFX0VY
UE9SVCBWZWN0b3I8SW1hZ2VEZWNvZGVyOjpGcmFtZUluZm8+IGZyYW1lSW5mb3MoKSBjb25zdDsK
KwogcHJpdmF0ZToKICAgICBJbWFnZURlY29kZXJBVkZPYmpDKFNoYXJlZEJ1ZmZlciYsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIEFscGhhT3B0aW9uLCBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlv
bik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpDLm1tCmlu
ZGV4IDEwZmViM2ZkZTc2OTY0MzFiMGY2MWViZDI3M2M3OWU3Zjc0NmM5NjkuLjU3ZjIxYzU4ODg5
YjY3NjM4Y2RjMjhhNDExNTQyZmFjZmU1MjAyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbQpAQCAtNTMzLDYgKzUzMywyMCBAQCBib29sIEltYWdl
RGVjb2RlckFWRk9iakM6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QK
ICAgICByZXR1cm4gc2FtcGxlRGF0YSA/IHNhbXBsZURhdGEtPmhhc0FscGhhKCkgOiBmYWxzZTsK
IH0KIAorVmVjdG9yPEltYWdlRGVjb2Rlcjo6RnJhbWVJbmZvPiBJbWFnZURlY29kZXJBVkZPYmpD
OjpmcmFtZUluZm9zKCkgY29uc3QKK3sKKyAgICBpZiAobV9zYW1wbGVEYXRhLmVtcHR5KCkpCisg
ICAgICAgIHJldHVybiB7IH07CisKKyAgICBWZWN0b3I8SW1hZ2VEZWNvZGVyOjpGcmFtZUluZm8+
IGluZm9zOworICAgIGZvciAoYXV0byYgc2FtcGxlIDogbV9zYW1wbGVEYXRhLnByZXNlbnRhdGlv
bk9yZGVyKCkpIHsKKyAgICAgICAgYXV0byogaW1hZ2VTYW1wbGUgPSAoSW1hZ2VEZWNvZGVyQVZG
T2JqQ1NhbXBsZSopc2FtcGxlLnNlY29uZC5nZXQoKTsKKyAgICAgICAgaW5mb3MuYXBwZW5kKHsg
aW1hZ2VTYW1wbGUtPmhhc0FscGhhKCksIFNlY29uZHMoaW1hZ2VTYW1wbGUtPmR1cmF0aW9uKCku
dG9Eb3VibGUoKSl9KTsKKyAgICB9CisKKyAgICByZXR1cm4gaW5mb3M7Cit9CisKIGJvb2wgSW1h
Z2VEZWNvZGVyQVZGT2JqQzo6ZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleChzaXplX3QgaW5k
ZXgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGluZGV4IDw9IG1fc2FtcGxlRGF0YS5zaXplKCk7CkBA
IC01NzIsNyArNTg2LDYgQEAgUGxhdGZvcm1JbWFnZVB0ciBJbWFnZURlY29kZXJBVkZPYmpDOjpj
cmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnMKICAgICAgICAgfSB3aGls
ZSAoLS1tX2N1cnNvciAhPSBtX3NhbXBsZURhdGEuZGVjb2RlT3JkZXIoKS5iZWdpbigpKTsKICAg
ICB9CiAKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2U7CiAgICAgd2hpbGUgKHRydWUp
IHsKICAgICAgICAgaWYgKGRlY29kZVRpbWUgPCBtX2N1cnNvci0+c2Vjb25kLT5kZWNvZGVUaW1l
KCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uLmgKaW5kZXggYTY1MmFlZTFhZDc1YTJkMDM2M2Q3ZjU1YTgwMmRmZDY0OTI5
NGU4MC4uZWI2OTAzOGI3ZGZhOWEzOWIyZTZmYTY1NDJlYjk1MDU5OTE2YTU5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJl
c3Npb25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLmgKQEAgLTQxLDcgKzQxLDYgQEAgdHlwZWRl
ZiBzaWduZWQgbG9uZyBDTUl0ZW1Db3VudDsKIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIgKkNW
UGl4ZWxCdWZmZXJSZWY7CiB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpDVkltYWdlQnVmZmVy
UmVmOwogdHlwZWRlZiBVSW50MzIgVlREZWNvZGVJbmZvRmxhZ3M7Ci10eXBlZGVmIFVJbnQzMiBW
VERlY29kZUluZm9GbGFnczsKIHR5cGVkZWYgc3RydWN0IE9wYXF1ZVZURGVjb21wcmVzc2lvblNl
c3Npb24qICBWVERlY29tcHJlc3Npb25TZXNzaW9uUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJD
b3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KaW5kZXggZGMyZWMzNmNj
Zjc1MDY0ZTRlODg0MjM2ZTE2MmIyYzBhYjBjMDVkNy4uNzg1YmE4M2U4M2VlMTM3OTdlY2E1NGFi
NDU5ZGFlMjJkNGViNmVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bi5tbQpAQCAtMjE3LDEwICsyMTcsOCBAQCB2b2lkIFdlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lv
bjo6ZW5zdXJlRGVjb21wcmVzc2lvblNlc3Npb25Gb3JTYW1wbGUoQ01TYW1wbGVCdQogICAgICAg
ICBhdXRvIHZpZGVvRGVjb2RlclNwZWNpZmljYXRpb24gPSBAeyAoX19icmlkZ2UgTlNTdHJpbmcg
KilrVlRWaWRlb0RlY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRW
aWRlb0RlY29kZXI6IEAoIG1faGFyZHdhcmVEZWNvZGVyRW5hYmxlZCApIH07CiAKICAgICAgICAg
TlNEaWN0aW9uYXJ5ICphdHRyaWJ1dGVzOwotICAgICAgICBpZiAobV9tb2RlID09IE9wZW5HTCkK
LSAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBAeyAoX19icmlkZ2UgTlNTdHJpbmcqKWtDVlBpeGVs
QnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleTogQHsgLyogZW1wdHkgZGljdGlvbmFyeSAqLyB9
IH07Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgQVNTRVJUKG1fbW9kZSA9PSBSR0IpOwor
ICAgICAgICBhdHRyaWJ1dGVzID0gQHsgKF9fYnJpZGdlIE5TU3RyaW5nKilrQ1ZQaXhlbEJ1ZmZl
cklPU3VyZmFjZVByb3BlcnRpZXNLZXk6IEB7IC8qIGVtcHR5IGRpY3Rpb25hcnkgKi8gfSB9Owor
ICAgICAgICBpZiAobV9tb2RlID09IFJHQikgewogICAgICAgICAgICAgYXR0cmlidXRlcyA9IEB7
IChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5OiBA
KGtDVlBpeGVsRm9ybWF0VHlwZV8zMkJHUkEpIH07CiAgICAgICAgIH0KICAgICAgICAgVlREZWNv
bXByZXNzaW9uU2Vzc2lvblJlZiBkZWNvbXByZXNzaW9uU2Vzc2lvbk91dCA9IG51bGxwdHI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Qg
Yi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMjNh
ZDQwNzgwZDM2NTdiYzg5YWE4MmIxNGNmMzc3MGEzMjZkZDQwNC4uNjQ5MTMwMGNhMDZkYmE4YzI5
MDJlNTEwZDYyMWZhNWNhOTZiMzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMzEsNiArMzEsNyBAQCAkKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUNETUZhY3RvcnlQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVDRE1JbnN0YW5jZVByb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUNETUluc3RhbmNlU2Vzc2lv
blByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUNETVByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUltYWdlRGVjb2RlckFWRlByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94eS5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1Qcm94eS5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNz
aW9uUHJveHkubWVzc2FnZXMuaW4KQEAgLTE0NSw2ICsxNDYsOCBAQCAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24ubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVDRE1JbnN0YW5jZS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLm1lc3NhZ2VzLmluCiskKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYubWVzc2FnZXMu
aW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUxlZ2FjeUNETVNlc3Npb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Np
b25IZWxwZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDA2NTU3NTU5NTMwODMwZDYzMmE1Njc3YjNlYmVlZDcwN2Zi
ZTJjOGEuLmM4MGRhNzA3NWQ3MTFjZjQwMmFmMzJhOTBiNGY2ZGIzY2FlNTVkZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTg2LDYg
KzE4NiwxNSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VzUmVwbAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFn
ZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVJbWFnZURlY29kZXJBVkZNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJBVkZNZXNzYWdlcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFn
ZURlY29kZXJBVkZNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNS
ZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzUmVwbGll
cy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjQxZGIyMjBjN2FhOWY4MjI1MGU3
NDA0NDc2NzZmYjM5ZjhjZmRhNy4uMTgzMjAzOWI1YzBjNDgyYjA0OTg0ZjY0ZmMxMjUyMzhmZjU2
OWFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTgyLDYgKzE4Miw3IEBAIE1F
U1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291
cmNlUHJvdmlkZXJNYW5hZ2VyIFwKIAlXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVDRE1JbnN0
YW5jZSBcCiAJV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uIFwK
KwlXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyIFwKIAlX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVMZWdhY3lDRE1TZXNzaW9uIFwKIAlXZWJQcm9jZXNz
L0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlIFwKIAlXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyIFwKQEAgLTI0MSw2ICsyNDIsNyBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29y
ZGVyIFwKIAlHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5k
ZXJlciBcCiAJR1BVUHJvY2Vzcy9HUFVQcm9jZXNzIFwKKwlHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZUltYWdlRGVjb2RlckFWRlByb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZUxlZ2FjeUNE
TVNlc3Npb25Qcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVMZWdhY3lDRE1GYWN0b3J5
UHJveHkgXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uUHJveHkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCmluZGV4IDljMTdjNDdhMDgwZjA3MmRmZWFjMTc3Yjk5MTdhZTEwMWU3MGQwNzMuLmY2
NDllNTQwNTcxYjQ3MTllN2UzN2ZmMjExNTRlMGM0MmY3ZDIwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTEwNiw2ICsxMDYsMTEgQEAKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1TZXNzaW9uUHJveHlN
ZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBIQVZFKEFWQVNTRVRSRUFERVIpCisjaW5jbHVkZSAi
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVJbWFnZURlY29k
ZXJBVkZQcm94eU1lc3NhZ2VzLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
ICNpbmNsdWRlICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkuaCIK
ICNpbmNsdWRlICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHlNZXNz
YWdlcy5oIgpAQCAtMjk1LDYgKzMwMCwxNiBAQCBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eSYgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YXVkaW9TZXNzaW9uUHJveHkoKQogfQogI2VuZGlmCiAK
KyNpZiBIQVZFKEFWQVNTRVRSRUFERVIpCitSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eSYgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aW1hZ2VEZWNvZGVyQVZGUHJveHkoKQoreworICAgIGlm
ICghbV9pbWFnZURlY29kZXJBVkZQcm94eSkKKyAgICAgICAgbV9pbWFnZURlY29kZXJBVkZQcm94
eSA9IG1ha2VVbmlxdWU8UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk+KCp0aGlzKTsKKworICAg
IHJldHVybiAqbV9pbWFnZURlY29kZXJBVkZQcm94eTsKK30KKyNlbmRpZgorCiB2b2lkIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVJlbmRlcmluZ0JhY2tlbmQoUmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpTZW1hcGhvcmUmJiByZXN1bWVEaXNwbGF5
TGlzdFNlbWFwaG9yZSkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcmVtb3RlUmVuZGVyaW5n
QmFja2VuZE1hcC5lbnN1cmUoaWRlbnRpZmllciwgWyZdKCkgewpAQCAtNDY4LDYgKzQ4MywxMiBA
QCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQwogICAgICAgICBtZWRpYUVuZ2luZUNvbmZpZ3VyYXRp
b25GYWN0b3J5UHJveHkoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rp
b24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisjaWYgSEFWRShBVkFT
U0VUUkVBREVSKQorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNz
YWdlczo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkg
eworICAgICAgICBpbWFnZURlY29kZXJBVkZQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKIAog
ICAgIHJldHVybiBtZXNzYWdlUmVjZWl2ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2Rlcik7CiB9CkBAIC01MjEsNiArNTQyLDEyIEBAIGJvb2wgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICNlbmRpZgorI2lmIEhBVkUoQVZBU1NF
VFJFQURFUikKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2Fn
ZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
KyAgICAgICAgaW1hZ2VEZWNvZGVyQVZGUHJveHkoKS5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorI2VuZGlmCiAKICAgICByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTWFwKCkuZGlzcGF0Y2hT
eW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
aW5kZXggN2JhZGQzNzc2OWNmNTJmZDU0MGI0ZmI3NzdkMDg4NzQ2NjA0ZjU0Zi4uZTIwYWQzMmNi
ZDEzODRmZTEyOTI5NGVlZjU4ZjFiZTkzMjVjNjkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC01NCw2ICs1NCw3
IEBAIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcjsKIGNs
YXNzIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OwogY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uUHJv
eHlNYW5hZ2VyOwogY2xhc3MgUmVtb3RlQ0RNRmFjdG9yeVByb3h5OworY2xhc3MgUmVtb3RlSW1h
Z2VEZWNvZGVyQVZGUHJveHk7CiBjbGFzcyBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5UHJveHk7CiBj
bGFzcyBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHk7CiBjbGFzcyBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKQEAgLTEwMiwxNSArMTAzLDE4IEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICBSZW1vdGVMZWdhY3lD
RE1GYWN0b3J5UHJveHkmIGxlZ2FjeUNkbUZhY3RvcnlQcm94eSgpOwogI2VuZGlmCi0jaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCiAgICAgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeVByb3h5JiBtZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHkoKTsKLSNlbmRp
ZgogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiByZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eSgpIHsgcmV0dXJuICptX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OyB9
CiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikKICAgICBSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eU1h
bmFnZXImIGF1ZGlvU2Vzc2lvbk1hbmFnZXIoKTsKICNlbmRpZgogCisjaWYgSEFWRShBVkFTU0VU
UkVBREVSKQorICAgIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5JiBpbWFnZURlY29kZXJBVkZQ
cm94eSgpOworI2VuZGlmCisKICAgICB2b2lkIHRlcm1pbmF0ZVdlYlByb2Nlc3MoKTsKIAogcHJp
dmF0ZToKQEAgLTIyMSw5ICsyMjUsMTEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTGVnYWN5Q0RNRmFjdG9y
eVByb3h5PiBtX2xlZ2FjeUNkbUZhY3RvcnlQcm94eTsKICNlbmRpZgotI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0
aW9uRmFjdG9yeVByb3h5PiBtX21lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eTsK
KyNpZiBIQVZFKEFWQVNTRVRSRUFERVIpCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5PiBtX2ltYWdlRGVjb2RlckFWRlByb3h5OwogI2VuZGlmCisKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeVByb3h5
PiBtX21lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlQcm94eTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU0YTFl
MDNjMjJhYzM2ZmRlMDZiNjE4MDM5NjMwOWViMjllYzcxMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5j
cHAKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVBREVSKQorCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0lPU3VyZmFjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEZWNvZGVyQVZGT2JqQy5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90
ZUltYWdlRGVjb2RlckFWRlByb3h5OjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eShHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgIDogbV9jb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCit7Cit9CisKK3ZvaWQg
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OmNyZWF0ZURlY29kZXIoY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPEltYWdlRGVjb2RlcklkZW50aWZpZXI+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGF1dG8gaW1hZ2VEZWNvZGVyID0gSW1hZ2VEZWNvZGVyQVZGT2JqQzo6
Y3JlYXRlKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSksIG1p
bWVUeXBlLCBBbHBoYU9wdGlvbjo6UHJlbXVsdGlwbGllZCwgR2FtbWFBbmRDb2xvclByb2ZpbGVP
cHRpb246Oklnbm9yZWQpOworCisgICAgT3B0aW9uYWw8SW1hZ2VEZWNvZGVySWRlbnRpZmllcj4g
aW1hZ2VEZWNvZGVySWRlbnRpZmllcjsKKyAgICBpZiAoIWltYWdlRGVjb2RlcikKKyAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaW1hZ2VEZWNvZGVySWRlbnRpZmllcikp
OworCisgICAgYXV0byBpZGVudGlmaWVyID0gSW1hZ2VEZWNvZGVySWRlbnRpZmllcjo6Z2VuZXJh
dGUoKTsKKyAgICBtX2ltYWdlRGVjb2RlcnMuYWRkKGlkZW50aWZpZXIsIGltYWdlRGVjb2Rlci5j
b3B5UmVmKCkpOworCisgICAgaW1hZ2VEZWNvZGVyLT5zZXRFbmNvZGVkRGF0YVN0YXR1c0NoYW5n
ZUNhbGxiYWNrKFt0aGlzLCBpZGVudGlmaWVyXShhdXRvKSBtdXRhYmxlIHsKKyAgICAgICAgZW5j
b2RlZERhdGFTdGF0dXNDaGFuZ2VkKGlkZW50aWZpZXIpOworICAgIH0pOworCisgICAgaW1hZ2VE
ZWNvZGVySWRlbnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RG
TW92ZShpbWFnZURlY29kZXJJZGVudGlmaWVyKSk7Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGUHJveHk6OmRlbGV0ZURlY29kZXIoY29uc3QgSW1hZ2VEZWNvZGVySWRlbnRpZmllciYg
aWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9pbWFnZURlY29kZXJzLmNvbnRhaW5zKGlkZW50
aWZpZXIpKTsKKyAgICBpZiAoIW1faW1hZ2VEZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9pbWFnZURlY29kZXJzLnRha2UoaWRlbnRpZmllcik7
Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OmVuY29kZWREYXRhU3RhdHVz
Q2hhbmdlZChjb25zdCBJbWFnZURlY29kZXJJZGVudGlmaWVyJiBpZGVudGlmaWVyKQoreworICAg
IGlmICghbV9pbWFnZURlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvIGltYWdlRGVjb2RlciA9IG1faW1hZ2VEZWNvZGVycy5nZXQoaWRlbnRp
Zmllcik7CisgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjpFbmNvZGVkRGF0YVN0YXR1c0No
YW5nZWQoaWRlbnRpZmllciwgaW1hZ2VEZWNvZGVyLT5mcmFtZUNvdW50KCksIGltYWdlRGVjb2Rl
ci0+c2l6ZSgpLCBpbWFnZURlY29kZXItPmhhc1RyYWNrKCkpLCAwKTsKK30KKwordm9pZCBSZW1v
dGVJbWFnZURlY29kZXJBVkZQcm94eTo6c2V0RXhwZWN0ZWRDb250ZW50U2l6ZShjb25zdCBJbWFn
ZURlY29kZXJJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBsb25nIGxvbmcgZXhwZWN0ZWRDb250ZW50
U2l6ZSkKK3sKKyAgICBBU1NFUlQobV9pbWFnZURlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIp
KTsKKyAgICBpZiAoIW1faW1hZ2VEZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9pbWFnZURlY29kZXJzLmdldChpZGVudGlmaWVyKS0+c2V0RXhw
ZWN0ZWRDb250ZW50U2l6ZShleHBlY3RlZENvbnRlbnRTaXplKTsKK30KKwordm9pZCBSZW1vdGVJ
bWFnZURlY29kZXJBVkZQcm94eTo6c2V0RGF0YShjb25zdCBJbWFnZURlY29kZXJJZGVudGlmaWVy
JiBpZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGJvb2wgYWxsRGF0
YVJlY2VpdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHNpemVfdCBmcmFtZUNvdW50LCBjb25z
dCBJbnRTaXplJiBzaXplLCBib29sIGhhc1RyYWNrLCBPcHRpb25hbDxWZWN0b3I8SW1hZ2VEZWNv
ZGVyOjpGcmFtZUluZm8+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQo
bV9pbWFnZURlY29kZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBpZiAoIW1faW1hZ2VE
ZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigwLCB7IH0sIGZhbHNlLCBXVEY6Om51bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBpbWFnZURlY29kZXIgPSBtX2ltYWdlRGVjb2RlcnMuZ2V0KGlkZW50aWZpZXIp
OworICAgIGltYWdlRGVjb2Rlci0+c2V0RGF0YShTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmRh
dGEoKSwgZGF0YS5zaXplKCkpLCBhbGxEYXRhUmVjZWl2ZWQpOworCisgICAgYXV0byBmcmFtZUNv
dW50ID0gaW1hZ2VEZWNvZGVyLT5mcmFtZUNvdW50KCk7CisKKyAgICBPcHRpb25hbDxWZWN0b3I8
SW1hZ2VEZWNvZGVyOjpGcmFtZUluZm8+PiBmcmFtZUluZm9zOworICAgIGlmIChmcmFtZUNvdW50
KQorICAgICAgICBmcmFtZUluZm9zID0gaW1hZ2VEZWNvZGVyLT5mcmFtZUluZm9zKCk7CisKKyAg
ICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZUNvdW50LCBpbWFnZURlY29kZXItPnNpemUoKSwgaW1h
Z2VEZWNvZGVyLT5oYXNUcmFjaygpLCBXVEZNb3ZlKGZyYW1lSW5mb3MpKTsKK30KKwordm9pZCBS
ZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6Y3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoY29uc3Qg
SW1hZ2VEZWNvZGVySWRlbnRpZmllciYgaWRlbnRpZmllciwgc2l6ZV90IGluZGV4LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdURjo6TWFjaFNlbmRSaWdodD4mJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKG1faW1hZ2VEZWNvZGVycy5jb250YWlucyhpZGVu
dGlmaWVyKSk7CisgICAgT3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiBzZW5kUmlnaHQ7Cisg
ICAgaWYgKCFtX2ltYWdlRGVjb2RlcnMuY29udGFpbnMoaWRlbnRpZmllcikpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5kUmlnaHQpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gZnJhbWVJbWFnZSA9IG1faW1hZ2VEZWNvZGVycy5nZXQoaWRlbnRp
ZmllciktPmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KGluZGV4KTsKKyAgICBpZiAoIWZyYW1lSW1h
Z2UpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5kUmlnaHQpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChhdXRvIHN1cmZhY2UgPSBJT1N1cmZhY2U6
OmNyZWF0ZUZyb21JbWFnZShmcmFtZUltYWdlLmdldCgpKSkKKyAgICAgICAgc2VuZFJpZ2h0ID0g
c3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZN
b3ZlKHNlbmRSaWdodCkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wYzBiOThiYjJlZDA1NGM2ZGM1YzgwZDUwNTM2Y2YzZGY1OGIwYWJiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5LmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisK
KyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZURlY29kZXJBVkZPYmpDLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9JbWFnZURlY29kZXJJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTWFjaFNl
bmRSaWdodC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M7CisKK2NsYXNzIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5IDogcHJpdmF0ZSBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYpOworICAgIHZpcnR1YWwgflJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
KCkgPSBkZWZhdWx0OworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CisKK3ByaXZhdGU6
CisgICAgdm9pZCBjcmVhdGVEZWNvZGVyKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29y
ZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllcj4mJik+JiYpOworICAgIHZvaWQgZGVsZXRlRGVjb2Rl
cihjb25zdCBXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyJik7CisgICAgdm9pZCBzZXRF
eHBlY3RlZENvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXIm
LCBsb25nIGxvbmcgZXhwZWN0ZWRDb250ZW50U2l6ZSk7CisgICAgdm9pZCBzZXREYXRhKGNvbnN0
IFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXImLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmLCBib29sIGFsbERhdGFSZWNlaXZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzaXplX3Qg
ZnJhbWVDb3VudCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgYm9vbCBoYXNUcmFjaywg
T3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkltYWdlRGVjb2Rlcjo6RnJhbWVJbmZvPj4mJik+JiYp
OworICAgIHZvaWQgY3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoY29uc3QgV2ViQ29yZTo6SW1hZ2VE
ZWNvZGVySWRlbnRpZmllciYsIHNpemVfdCBpbmRleCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxXVEY6Ok1hY2hTZW5kUmlnaHQ+JiYpPiYmKTsKKworICAgIHZvaWQgZW5jb2RlZERh
dGFTdGF0dXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXImKTsK
KworICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vz
czsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXIsIFJlZlB0cjxX
ZWJDb3JlOjpJbWFnZURlY29kZXJBVkZPYmpDPj4gbV9pbWFnZURlY29kZXJzOworfTsKKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVJbWFnZURlY29kZXJBVkZQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZDAyYzAxNWI4YTlmOGYzNDRkNDQxMzE4N2I5YWRiZjZhZjU3MTM3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVBREVS
KQorCittZXNzYWdlcyAtPiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eSBOb3RSZWZDb3VudGVk
IHsKKyAgICBDcmVhdGVEZWNvZGVyKElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRh
LCBTdHJpbmcgbWltZVR5cGUpIC0+IChPcHRpb25hbDxXZWJDb3JlOjpJbWFnZURlY29kZXJJZGVu
dGlmaWVyPiBpZGVudGlmaWVyKSBTeW5jaHJvbm91cworICAgIERlbGV0ZURlY29kZXIoV2ViQ29y
ZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFNldEV4cGVjdGVkQ29u
dGVudFNpemUoV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBsb25n
IGxvbmcgZXhwZWN0ZWRDb250ZW50U2l6ZSkKKyAgICBTZXREYXRhKFdlYkNvcmU6OkltYWdlRGVj
b2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKSAtPiAodWludDMyX3QgZnJhbWVDb3VudCwgV2Vi
Q29yZTo6SW50U2l6ZSBzaXplLCBib29sIGhhc1RyYWNrLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6SW1hZ2VEZWNvZGVyOjpGcmFtZUluZm8+PiBmcmFtZUluZm9zKSBTeW5jaHJvbm91cworICAg
IENyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KFdlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXIg
aWRlbnRpZmllciwgdWludDMyX3QgaW5kZXgpIC0+IChPcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBz
ZW5kUmlnaHQpIEFzeW5jCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKaW5kZXggOTc4MDM3YzRlMjU2MjdmNjUwNWYyZDZlYjM5YjFjYmMzOWMyOTYy
NC4uMDYzMThjYTE0YWFjODNkZDMwMzMyNmFjMDQ3OGI1YThkMmRhNjk1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yNjgsNiArMjY4LDcgQEAgZGVmIHR5
cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6
OkZldGNoSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXInLAog
ICAgICAgICAnV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJywKKyAgICAgICAg
J1dlYkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6TGli
V2ViUlRDU29ja2V0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQbGF5YmFja1Rhcmdl
dENsaWVudENvbnRleHRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhUGxheWVy
SWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNzYzYTI4Yjg4MWE1ZTYyNGYx
ZmVkYTA5NTJkMzJhYTlkYjg1NTJmYi4uMzIzODY3OTlhYTVhOTAxYTZkNGU1YjVmMTQwMmY2Yjk3
YTYyZTI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjEsMTIgKzYxLDExIEBAIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKIEdQVVByb2Nl
c3MvaW9zL0dQVVByb2Nlc3NJT1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMubW0K
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlclByb3h5LmNwcAorR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eS5jcHAKIEdQVVByb2Nlc3Mv
bWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCiBHUFVQcm9jZXNzL21l
ZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJQcm94eS5jcHAKIEdQVVByb2Nlc3Mvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCiAKLQotCiBQbGF0Zm9ybS9jZi9Nb2R1bGVDRi5j
cHAKIAogUGxhdGZvcm0vY2xhc3NpZmllci9jb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xh
c3NpZmllckNvY29hLmNwcApAQCAtNTkzLDYgKzU5Miw4IEBAIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAKIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJm
YWNlQmFja2VuZC5jcHAKIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJv
dmlkZXIuY3BwCiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlci5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5j
cHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIuY3Bw
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2Nv
YS5tbQogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvVmlkZW9MYXllclJlbW90ZUNvY29hLm1t
CiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmNwcApA
QCAtNjk3LDYgKzY5OCw4IEBAIFJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKK1JlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlh
UmVjb3JkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDkzMDUwOTJkNjQxZTdiYzY2YWM5ZDYxNjc2NmZmMWZhZjQ5MTgyNDYuLmUyZjk1Yjhk
MDI5OGM0MzIwZDlmMjhmZTU0NTgzYWNjY2JhMTllMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjk2NCw2ICsyOTY0LDIwIEBACiAJ
CTFEMzJGOEE2MjNBODYwMTkwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzQUIwNEQyM0FCMDA3MjAwNUMxRkYwIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDNBQjA0RTIz
QUIwMDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUQ0NzY1NzgyNUNCM0FGNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVj
b2RlckFWRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVJbWFnZURlY29kZXJBVkYuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0NzY1NzkyNUNCM0FGNjAwN0FGMzEyIC8qIFJlbW90
ZUltYWdlRGVjb2RlckFWRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVJbWFnZURlY29k
ZXJBVkYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDQ3NjU4NDI1Q0NBNDE2
MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUQ0NzY1ODUyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0NzY1OEMyNUNDQTY5ODAwN0FGMzEyIC8q
IFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZUltYWdl
RGVjb2RlckFWRlByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxRDQ3NjU4RjI1Q0NDRTkyMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFENDc2NTkw
MjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZUltYWdlRGVjb2RlckFWRlBy
b3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OworCQkxRDQ3NjU5MTI1Q0NDRTkzMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
UHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0NzY1OTgyNUNE
RjY0OTAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0NzY1OTkyNUNFNzRBQzAwN0FGMzEyIC8qIFJlbW90ZUlt
YWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2Vz
Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFENDc2NTlBMjVDRTc0
QUMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZUltYWdlRGVjb2RlckFW
Rk1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDQ3NjU5QjI1Q0U3NEFEMDA3QUYzMTIgLyog
UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFENDc2NTlGMjVDRjU3NDAwMDdBRjMxMiAvKiBSZW1v
dGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUltYWdlRGVj
b2RlckFWRk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0NzY1QTAy
NUNGNTc0MDAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxRDRENzM2
QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxRDRENzM3NTIz
QTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwpAQCAtMjk3Myw3ICsyOTg3LDcgQEAKIAkJMURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQTQwODlF
MjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hl
ZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hl
ZXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFERDJBNjM2MjU1REU2NzUwMEZG
N0I2RiAvKiBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcDsgcGF0aCA9IC9Wb2x1bWVzL0RhdGEvd2Via2l0
L09wZW5Tb3VyY2UvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVNvdXJj
ZVByaXZhdGVSZW1vdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQkxREQy
QTYzNjI1NURFNjc1MDBGRjdCNkYgLyogTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFERDJBNjM3MjU1REU2NzUwMEZGN0I2RiAvKiBNZWRpYVNvdXJj
ZVByaXZhdGVSZW1vdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTb3VyY2VQcml2YXRlUmVtb3Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERDJBNjM5MjU1REU2RDEwMEZGN0I2
RiAvKiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUREMkE2
M0EyNTVERTZEMTAwRkY3QjZGIC8qIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC01OTc1LDYgKzU5ODksMTEgQEAKIAkJCQlDREFDMjBCRDIzRkMy
Rjc0MDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uLmggKi8sCiAJCQkJQ0Q0NjYx
N0YyNDAxMDQ1ODAwNDdDQTM1IC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5tZXNzYWdlcy5p
biAqLywKIAkJCQlDREFDMjBCQzIzRkMyRjc0MDAyMURFRTMgLyogUmVtb3RlQ0RNSW5zdGFuY2VT
ZXNzaW9uSWRlbnRpZmllci5oICovLAorCQkJCTFENDc2NTc5MjVDQjNBRjYwMDdBRjMxMiAvKiBS
ZW1vdGVJbWFnZURlY29kZXJBVkYuY3BwICovLAorCQkJCTFENDc2NTc4MjVDQjNBRjYwMDdBRjMx
MiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkYuaCAqLywKKwkJCQkxRDQ3NjVBMDI1Q0Y1NzQwMDA3
QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5jcHAgKi8sCisJCQkJMUQ0NzY1
OUYyNUNGNTc0MDAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIuaCAqLywK
KwkJCQkxRDQ3NjU5ODI1Q0RGNjQ5MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFu
YWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREU1NTRFQjI0MDU4MTgzMDA4QTNEREIgLyogUmVt
b3RlTGVnYWN5Q0RNLmNwcCAqLywKIAkJCQlDREU1NTRFQTI0MDU4MTgzMDA4QTNEREIgLyogUmVt
b3RlTGVnYWN5Q0RNLmggKi8sCiAJCQkJQ0RFNTU0RTMyNDA1ODExNDAwOEEzRERCIC8qIFJlbW90
ZUxlZ2FjeUNETUZhY3RvcnkuY3BwICovLApAQCAtNjAzOSw2ICs2MDU4LDkgQEAKIAkJCQlDREFD
MjA4MzIzRkIyMTM0MDAyMURFRTMgLyogUmVtb3RlQ0RNUHJveHkuY3BwICovLAogCQkJCUNEQUMy
MDgyMjNGQjIxMzQwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eS5oICovLAogCQkJCUNEQUMyMDg2
MjNGQjIxNTgwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQkx
RDQ3NjU4NTI1Q0NBNDE2MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuY3Bw
ICovLAorCQkJCTFENDc2NTg0MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJB
VkZQcm94eS5oICovLAorCQkJCTFENDc2NThDMjVDQ0E2OTgwMDdBRjMxMiAvKiBSZW1vdGVJbWFn
ZURlY29kZXJBVkZQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlDREU1NTUxRDI0MDVBM0I3MDA4
QTNEREIgLyogUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5LmNwcCAqLywKIAkJCQlDREU1NTUx
QzI0MDVBM0I3MDA4QTNEREIgLyogUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5LmggKi8sCiAJ
CQkJQ0RFNTU1MUIyNDA1QTNCNzAwOEEzRERCIC8qIFJlbW90ZUxlZ2FjeUNETUZhY3RvcnlQcm94
eS5tZXNzYWdlcy5pbiAqLywKQEAgLTEwODA2LDYgKzEwODI4LDEyIEBACiAJCQkJQ0RBQzIwRUYy
M0ZDMzgzOTAwMjFERUUzIC8qIFJlbW90ZUNETVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQlDREFDMjBGNDIzRkMzODNBMDAyMURFRTMgLyogUmVtb3RlQ0RNUHJveHlNZXNzYWdlcy5o
ICovLAogCQkJCUNEQUMyMEYwMjNGQzM4MzkwMDIxREVFMyAvKiBSZW1vdGVDRE1Qcm94eU1lc3Nh
Z2VzUmVwbGllcy5oICovLAorCQkJCTFENDc2NTlCMjVDRTc0QUQwMDdBRjMxMiAvKiBSZW1vdGVJ
bWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkxRDQ3NjU5
OTI1Q0U3NEFDMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlck1lc3NhZ2Vz
LmggKi8sCisJCQkJMUQ0NzY1OUEyNUNFNzRBQzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2Rl
ckFWRk1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQkxRDQ3NjU4RjI1Q0NDRTkyMDA3
QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAorCQkJCTFENDc2NTkwMjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQ
cm94eU1lc3NhZ2VzLmggKi8sCisJCQkJMUQ0NzY1OTEyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90
ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMEZGMjRBMkIx
ODc5RTRCQzAwM0FCRjBDIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAogCQkJCTBGRjI0QTJDMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDREU1NTUyOTI0MDZC
ODk2MDA4QTNEREIgLyogUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKQEAgLTExODY1LDYgKzExODkzLDEyIEBACiAJCQkJQ0RBQzIwQjQyM0ZCNThGMjAw
MjFERUUzIC8qIFJlbW90ZUNETUluc3RhbmNlUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
QUMyMENBMjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEQUMyMEM5MjNGQzJGNzUwMDIxREVFMyAvKiBSZW1vdGVDRE1JbnN0
YW5jZVNlc3Npb25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxRDQ3NjVBMTI1Q0Y1
NzQwMDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMUQ0NzY1OUMyNUNFNzRBRDAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFW
Rk1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQ0NzY1OUQyNUNFNzRBRDAw
N0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCTFENDc2NTg2MjVDQ0E0MTYwMDdBRjMxMiAvKiBSZW1vdGVJbWFn
ZURlY29kZXJBVkZQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQ0NzY1OTMyNUNDQ0U5MzAw
N0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFENDc2NTk0MjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJB
VkZQcm94eU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ0N0I1NkQxODEw
NzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRERGNzMxNTE4RTk1MDYwMDA0RjVBNjYgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVD
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUIxNkFFQTE2NEIzQTg4MDAyOTBENjIg
LyogUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODkzMzVkMjdlZDBiZDgzNmRiNDNmYjQ3MDg3YjBiZjAwZWQ2
NDM4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcApAQCAtMCwwICsxLDI1MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVJbWFnZURlY29kZXJBVkYu
aCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVBREVSKQorCisj
aW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVJbWFnZURl
Y29kZXJBVkZQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVy
ZW5jZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlQ0cuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0lPU3VyZmFjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUeXBl
cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4K
KyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0Jp
bmFyeVNlbWFwaG9yZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK1JlbW90ZUltYWdlRGVjb2RlckFWRjo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZG
KFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6Oklt
YWdlRGVjb2RlcklkZW50aWZpZXImIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
CisgICAgOiBJbWFnZURlY29kZXIoKQorICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgLCBt
X2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fbWltZVR5cGUobWltZVR5cGUpCisgICAg
LCBtX3V0aShXZWJDb3JlOjpVVElGcm9tTUlNRVR5cGUobWltZVR5cGUpKQoreworfQorCitSZW1v
dGVJbWFnZURlY29kZXJBVkY6On5SZW1vdGVJbWFnZURlY29kZXJBVkYoKQoreworICAgIG1fbWFu
YWdlci5kZWxldGVSZW1vdGVJbWFnZURlY29kZXIobV9pZGVudGlmaWVyKTsKK30KKworR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24mIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6Z3B1UHJvY2Vzc0Nvbm5lY3Rp
b24oKSBjb25zdAoreworICAgIHJldHVybiBtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24o
KTsKK30KKworYm9vbCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNhbkRlY29kZVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSkKK3sKKyAgICAvLyBUT0RPOiBXZSBtYXkgbmVlZCB0byByZW1vdmUg
QVZBc3NldE1JTUVUeXBlQ2FjaGUgaW4gdGhlIFdlYiBwcm9jZXNzCisgICAgcmV0dXJuIEFWQXNz
ZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKG1pbWVUeXBlKSAhPSBN
ZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOworfQorCitib29s
IFJlbW90ZUltYWdlRGVjb2RlckFWRjo6c3VwcG9ydHNNZWRpYVR5cGUoTWVkaWFUeXBlIHR5cGUp
Cit7CisgICAgLy8gVE9ETzogV2UgbWF5IG5lZWQgdG8gcmVtb3ZlIEFWQXNzZXRNSU1FVHlwZUNh
Y2hlIGluIHRoZSBXZWIgcHJvY2VzcworICAgIHJldHVybiB0eXBlID09IE1lZGlhVHlwZTo6Vmlk
ZW8gJiYgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmlzQXZhaWxhYmxlKCk7Cit9
CisKK0VuY29kZWREYXRhU3RhdHVzIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZW5jb2RlZERhdGFT
dGF0dXMoKSBjb25zdAoreworICAgIGlmIChtX2ZyYW1lQ291bnQpCisgICAgICAgIHJldHVybiBF
bmNvZGVkRGF0YVN0YXR1czo6Q29tcGxldGU7CisgICAgaWYgKG1fc2l6ZSkKKyAgICAgICAgcmV0
dXJuIEVuY29kZWREYXRhU3RhdHVzOjpTaXplQXZhaWxhYmxlOworICAgIGlmIChtX2hhc1RyYWNr
KQorICAgICAgICByZXR1cm4gRW5jb2RlZERhdGFTdGF0dXM6OlR5cGVBdmFpbGFibGU7CisKKyAg
ICByZXR1cm4gRW5jb2RlZERhdGFTdGF0dXM6OlVua25vd247Cit9CisKK3ZvaWQgUmVtb3RlSW1h
Z2VEZWNvZGVyQVZGOjpzZXRFbmNvZGVkRGF0YVN0YXR1c0NoYW5nZUNhbGxiYWNrKFdURjo6RnVu
Y3Rpb248dm9pZChFbmNvZGVkRGF0YVN0YXR1cyk+JiYgY2FsbGJhY2spCit7CisgICAgbV9lbmNv
ZGVkRGF0YVN0YXR1c0NoYW5nZWRDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOworfQorCitJ
bnRTaXplIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6c2l6ZSgpIGNvbnN0Cit7CisgICAgaWYgKG1f
c2l6ZSkKKyAgICAgICAgcmV0dXJuIG1fc2l6ZS52YWx1ZSgpOworICAgIHJldHVybiBJbnRTaXpl
KCk7Cit9CisKK3NpemVfdCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lQ291bnQoKSBjb25z
dAoreworICAgIHJldHVybiBtX2ZyYW1lQ291bnQ7Cit9CisKK1JlcGV0aXRpb25Db3VudCBSZW1v
dGVJbWFnZURlY29kZXJBVkY6OnJlcGV0aXRpb25Db3VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fZnJhbWVDb3VudCA+IDEgPyBSZXBldGl0aW9uQ291bnRJbmZpbml0ZSA6IFJlcGV0aXRpb25D
b3VudE5vbmU7Cit9CisKK1N0cmluZyBSZW1vdGVJbWFnZURlY29kZXJBVkY6OnV0aSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fdXRpOworfQorCitTdHJpbmcgUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
OjpmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIE1JTUVUeXBlUmVnaXN0
cnk6OnByZWZlcnJlZEV4dGVuc2lvbkZvck1JTUVUeXBlKG1fbWltZVR5cGUpOworfQorCitJbnRT
aXplIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVTaXplQXRJbmRleChzaXplX3QsIFN1YnNh
bXBsaW5nTGV2ZWwpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNpemUoKTsKK30KKworYm9vbCBSZW1v
dGVJbWFnZURlY29kZXJBVkY6OmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6ZV90IGluZGV4KSBj
b25zdAoreworICAgIHJldHVybiBpbmRleCA8IG1fZnJhbWVDb3VudDsKK30KKworSW1hZ2VEZWNv
ZGVyOjpGcmFtZU1ldGFkYXRhIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVNZXRhZGF0YUF0
SW5kZXgoc2l6ZV90KSBjb25zdAoreworICAgIHJldHVybiB7IH07Cit9CisKK1NlY29uZHMgUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpIGNv
bnN0Cit7CisgICAgaWYgKG1fZnJhbWVJbmZvcy5pc0VtcHR5KCkgfHwgaW5kZXggPj0gbV9mcmFt
ZUluZm9zLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBtX2ZyYW1l
SW5mb3NbaW5kZXhdLmR1cmF0aW9uOworfQorCitib29sIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6
ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAoreworICAgIGlmIChtX2Zy
YW1lSW5mb3MuaXNFbXB0eSgpIHx8IGluZGV4ID49IG1fZnJhbWVJbmZvcy5zaXplKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBtX2ZyYW1lSW5mb3NbaW5kZXhdLmhhc0Fs
cGhhOworfQorCitib29sIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZnJhbWVBbGxvd1N1YnNhbXBs
aW5nQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGluZGV4IDwgbV9m
cmFtZUNvdW50OworfQorCit1bnNpZ25lZCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmZyYW1lQnl0
ZXNBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCkgY29uc3QKK3sKKyAgICByZXR1cm4g
KHNpemUoKS5hcmVhKCkgKiA0KS51bnNhZmVHZXQoKTsKK30KKworUGxhdGZvcm1JbWFnZVB0ciBS
ZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCBpbmRl
eCwgU3Vic2FtcGxpbmdMZXZlbCwgY29uc3QgRGVjb2RpbmdPcHRpb25zJikKK3sKKyAgICBpZiAo
bV9mcmFtZUltYWdlcy5jb250YWlucyhpbmRleCkpCisgICAgICAgIHJldHVybiBtX2ZyYW1lSW1h
Z2VzLmdldChpbmRleCk7CisKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIG1pZ2h0IGJlIGNhbGxlZCBp
biB0aGUgbWFpbiB0aHJlYWQgdG8gcnVuIHRoZSBkZWNvZGVyIHN5bmNocm9ub3VzbHkKKyAgICBp
ZiAoaXNNYWluVGhyZWFkKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgQmluYXJ5
U2VtYXBob3JlIGRlY29kZVNlbWFwaG9yZTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGluZGV4LCAmZGVjb2RlU2VtYXBob3JlXSB7
CisgICAgICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OkNyZWF0ZUZyYW1l
SW1hZ2VBdEluZGV4KG1faWRlbnRpZmllciwgaW5kZXgpLCBbJl0oYXV0byYmIHNlbmRSaWdodCkg
eworICAgICAgICAgICAgaWYgKCFzZW5kUmlnaHQpIHsKKyAgICAgICAgICAgICAgICBkZWNvZGVT
ZW1hcGhvcmUuc2lnbmFsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBhdXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0
ZUZyb21TZW5kUmlnaHQoV1RGTW92ZSgqc2VuZFJpZ2h0KSwgc1JHQkNvbG9yU3BhY2VSZWYoKSk7
CisgICAgICAgICAgICBpZiAoIXN1cmZhY2UpIHsKKyAgICAgICAgICAgICAgICBkZWNvZGVTZW1h
cGhvcmUuc2lnbmFsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBhdXRvIGltYWdlID0gc3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKTsKKyAgICAg
ICAgICAgIGlmICghaW1hZ2UpIHsKKyAgICAgICAgICAgICAgICBkZWNvZGVTZW1hcGhvcmUuc2ln
bmFsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBtX2ZyYW1lSW1hZ2VzLmFkZChpbmRleCwgaW1hZ2UpOworICAgICAgICAgICAgZGVjb2Rl
U2VtYXBob3JlLnNpZ25hbCgpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlY29kZVNl
bWFwaG9yZS53YWl0KCk7CisgICAgaWYgKG1fZnJhbWVJbWFnZXMuY29udGFpbnMoaW5kZXgpKQor
ICAgICAgICByZXR1cm4gbV9mcmFtZUltYWdlcy5nZXQoaW5kZXgpOworCisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK3ZvaWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpzZXRFeHBlY3RlZENvbnRl
bnRTaXplKGxvbmcgbG9uZyBleHBlY3RlZENvbnRlbnRTaXplKQoreworICAgIGdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUltYWdlRGVjb2Rl
ckFWRlByb3h5OjpTZXRFeHBlY3RlZENvbnRlbnRTaXplKG1faWRlbnRpZmllciwgZXhwZWN0ZWRD
b250ZW50U2l6ZSksIDApOworfQorCisvLyBJZiBhbGxEYXRhUmVjZWl2ZWQgaXMgdHJ1ZSwgdGhl
IGNhbGxlciBleHBlY3RzIGVuY29kZWREYXRhU3RhdHVzKCkgdG8gYmUgPj0gRW5jb2RlZERhdGFT
dGF0dXM6OlNpemVBdmFpbGFibGUKKy8vIGFmdGVyIHRoaXMgZnVuY3Rpb24gcmV0dXJucyAoaW4g
dGhlIHNhbWUgcnVuIGxvb3ApLgordm9pZCBSZW1vdGVJbWFnZURlY29kZXJBVkY6OnNldERhdGEo
U2hhcmVkQnVmZmVyJiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKK3sKKyAgICBJUEM6OlNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZSB7IGRhdGEgfTsKKworICAgIHVp
bnQzMl90IGZyYW1lQ291bnQ7CisgICAgSW50U2l6ZSBzaXplOworICAgIGJvb2wgaGFzVHJhY2s7
CisgICAgT3B0aW9uYWw8VmVjdG9yPEltYWdlRGVjb2Rlcjo6RnJhbWVJbmZvPj4gZnJhbWVJbmZv
czsKKyAgICBpZiAoIWdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5j
KE1lc3NhZ2VzOjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6U2V0RGF0YShtX2lkZW50aWZp
ZXIsIGRhdGFSZWZlcmVuY2UsIGFsbERhdGFSZWNlaXZlZCksIE1lc3NhZ2VzOjpSZW1vdGVJbWFn
ZURlY29kZXJBVkZQcm94eTo6U2V0RGF0YTo6UmVwbHkoZnJhbWVDb3VudCwgc2l6ZSwgaGFzVHJh
Y2ssIGZyYW1lSW5mb3MpLCAwKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pc0FsbERhdGFS
ZWNlaXZlZCA9IGFsbERhdGFSZWNlaXZlZDsKKyAgICBtX2ZyYW1lQ291bnQgPSBmcmFtZUNvdW50
OworICAgIGlmICghc2l6ZS5pc0VtcHR5KCkpCisgICAgICAgIG1fc2l6ZSA9IHNpemU7CisgICAg
bV9oYXNUcmFjayA9IGhhc1RyYWNrOworCisgICAgaWYgKGZyYW1lSW5mb3MpCisgICAgICAgIG1f
ZnJhbWVJbmZvcy5zd2FwKCpmcmFtZUluZm9zKTsKK30KKwordm9pZCBSZW1vdGVJbWFnZURlY29k
ZXJBVkY6OmNsZWFyRnJhbWVCdWZmZXJDYWNoZShzaXplX3QpCit7CisgICAgbV9mcmFtZUltYWdl
cy5jbGVhcigpOworfQorCit2b2lkIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6ZW5jb2RlZERhdGFT
dGF0dXNDaGFuZ2VkKHNpemVfdCBmcmFtZUNvdW50LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBz
aXplLCBib29sIGhhc1RyYWNrKQoreworICAgIG1fZnJhbWVDb3VudCA9IGZyYW1lQ291bnQ7Cisg
ICAgaWYgKCFzaXplLmlzRW1wdHkoKSkKKyAgICAgICAgbV9zaXplID0gc2l6ZTsKKyAgICBtX2hh
c1RyYWNrID0gaGFzVHJhY2s7CisKKyAgICBpZiAobV9lbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWRD
YWxsYmFjaykKKyAgICAgICAgbV9lbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWRDYWxsYmFjayhlbmNv
ZGVkRGF0YVN0YXR1cygpKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU5ZTJmYTMzYTY0ODU1MjY3Y2UyZDY2YzU4ZTcxZDVhYzgxNzIwZTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUlt
YWdlRGVjb2RlckFWRi5oCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEhBVkUoQVZBU1NFVFJFQURFUikKKwor
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2Rl
ckFWRk1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0ltYWdlRGVjb2Rlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEZWNv
ZGVySWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgV2ViUHJvY2VzczsKKwor
Y2xhc3MgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGIGZpbmFsCisgICAgOiBwdWJsaWMgV2ViQ29yZTo6
SW1hZ2VEZWNvZGVyCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVJbWFnZURlY29kZXJBVkY+
IGNyZWF0ZShSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBXZWJD
b3JlOjpJbWFnZURlY29kZXJJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBXZWJDb3JlOjpTaGFyZWRC
dWZmZXImLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGKG1hbmFnZXIsIGlkZW50aWZpZXIsIG1p
bWVUeXBlKSk7CisgICAgfQorICAgIFJlbW90ZUltYWdlRGVjb2RlckFWRihSZW1vdGVJbWFnZURl
Y29kZXJBVkZNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciYs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOworCisgICAgdmlydHVhbCB+UmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGKCk7CisKKyAgICBzdGF0aWMgYm9vbCBjYW5EZWNvZGVUeXBlKGNvbnN0IFN0cmluZyYg
bWltZVR5cGUpOworICAgIHN0YXRpYyBib29sIHN1cHBvcnRzTWVkaWFUeXBlKE1lZGlhVHlwZSk7
CisKKyAgICBzaXplX3QgYnl0ZXNEZWNvZGVkVG9EZXRlcm1pbmVQcm9wZXJ0aWVzKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorCisgICAgV2ViQ29yZTo6RW5jb2RlZERhdGFTdGF0dXMg
ZW5jb2RlZERhdGFTdGF0dXMoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldEVuY29kZWREYXRh
U3RhdHVzQ2hhbmdlQ2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKFdlYkNvcmU6OkVuY29kZWRE
YXRhU3RhdHVzKT4mJikgZmluYWw7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplKCkgY29uc3Qg
ZmluYWw7CisgICAgc2l6ZV90IGZyYW1lQ291bnQoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3Jl
OjpSZXBldGl0aW9uQ291bnQgcmVwZXRpdGlvbkNvdW50KCkgY29uc3QgZmluYWw7CisgICAgU3Ry
aW5nIHV0aSgpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBmaWxlbmFtZUV4dGVuc2lvbigpIGNv
bnN0IGZpbmFsOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBob3RTcG90KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CisKKyAgICBXZWJDb3JlOjpJbnRTaXpl
IGZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90LCBXZWJDb3JlOjpTdWJzYW1wbGluZ0xldmVsID0gV2Vi
Q29yZTo6U3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBm
cmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CisgICAgRnJhbWVNZXRh
ZGF0YSBmcmFtZU1ldGFkYXRhQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOworCisgICAgU2Vj
b25kcyBmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOworICAgIGJvb2wg
ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKKyAgICBib29sIGZyYW1l
QWxsb3dTdWJzYW1wbGluZ0F0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKKyAgICB1bnNpZ25l
ZCBmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QsIFdlYkNvcmU6OlN1YnNhbXBsaW5nTGV2ZWwgPSBX
ZWJDb3JlOjpTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0KSBjb25zdCBmaW5hbDsKKworICAgIFdl
YkNvcmU6OlBsYXRmb3JtSW1hZ2VQdHIgY3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90LCBX
ZWJDb3JlOjpTdWJzYW1wbGluZ0xldmVsID0gV2ViQ29yZTo6U3Vic2FtcGxpbmdMZXZlbDo6RGVm
YXVsdCwgY29uc3QgV2ViQ29yZTo6RGVjb2RpbmdPcHRpb25zJiA9IFdlYkNvcmU6OkRlY29kaW5n
T3B0aW9ucyhXZWJDb3JlOjpEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzKSkgZmluYWw7CisKKyAg
ICB2b2lkIHNldEV4cGVjdGVkQ29udGVudFNpemUobG9uZyBsb25nKSBmaW5hbDsKKyAgICB2b2lk
IHNldERhdGEoV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpIGZp
bmFsOworICAgIGJvb2wgaXNBbGxEYXRhUmVjZWl2ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2lzQWxsRGF0YVJlY2VpdmVkOyB9CisgICAgdm9pZCBjbGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6
ZV90KSBmaW5hbDsKKworICAgIHZvaWQgZW5jb2RlZERhdGFTdGF0dXNDaGFuZ2VkKHNpemVfdCBm
cmFtZUNvdW50LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgYm9vbCBoYXNUcmFjayk7CisKK3By
aXZhdGU6CisgICAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkg
Y29uc3Q7CisKKyAgICBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyJiBtX21hbmFnZXI7Cisg
ICAgV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisKKyAgICBT
dHJpbmcgbV9taW1lVHlwZTsKKyAgICBTdHJpbmcgbV91dGk7CisgICAgYm9vbCBtX2lzQWxsRGF0
YVJlY2VpdmVkIHsgZmFsc2UgfTsKKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6RW5j
b2RlZERhdGFTdGF0dXMpPiBtX2VuY29kZWREYXRhU3RhdHVzQ2hhbmdlZENhbGxiYWNrOworICAg
IEhhc2hNYXA8aW50LCBXZWJDb3JlOjpQbGF0Zm9ybUltYWdlUHRyLCBXVEY6OkludEhhc2g8aW50
PiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czxpbnQ+PiBtX2ZyYW1lSW1hZ2Vz
OworICAgIFZlY3RvcjxJbWFnZURlY29kZXI6OkZyYW1lSW5mbz4gbV9mcmFtZUluZm9zOworICAg
IHNpemVfdCBtX2ZyYW1lQ291bnQgeyAwIH07CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6
ZT4gbV9zaXplOworICAgIGJvb2wgbV9oYXNUcmFjayB7IGZhbHNlIH07Cit9OworCit9CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NTMz
MGI4N2ViNDMzN2ZlNmI2ZjViYTYyODM4MGI4M2JiNDE1ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRk1h
bmFnZXIuY3BwCkBAIC0wLDAgKzEsMTIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUUkVBREVSKQorCisjaW5jbHVkZSAiR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVJbWFnZURlY29kZXJBVkYuaCIK
KyNpbmNsdWRlICJSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZWZQdHI8UmVt
b3RlSW1hZ2VEZWNvZGVyQVZGPiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjpjcmVhdGVJ
bWFnZURlY29kZXIoU2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBB
bHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFB
bmRDb2xvclByb2ZpbGVPcHRpb24pCit7CisgICAgaWYgKCFtX21lc3NhZ2VSZWNlaXZlckluaXRp
YWxpemVkKSB7CisgICAgICAgIG1fbWVzc2FnZVJlY2VpdmVySW5pdGlhbGl6ZWQgPSB0cnVlOwor
ICAgICAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7CisgICAgfQorCisgICAgT3B0aW9uYWw8SW1hZ2VE
ZWNvZGVySWRlbnRpZmllcj4gaW1hZ2VEZWNvZGVySWRlbnRpZmllcjsKKyAgICBJUEM6OlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZSB7IGRhdGEgfTsKKyAgICBpZiAoIWdw
dVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1v
dGVJbWFnZURlY29kZXJBVkZQcm94eTo6Q3JlYXRlRGVjb2RlcihkYXRhUmVmZXJlbmNlLCBtaW1l
VHlwZSksIE1lc3NhZ2VzOjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6Q3JlYXRlRGVjb2Rl
cjo6UmVwbHkoaW1hZ2VEZWNvZGVySWRlbnRpZmllciksIDApKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIGlmICghaW1hZ2VEZWNvZGVySWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBhdXRvIHJlbW90ZUltYWdlRGVjb2RlciA9IFJlbW90ZUltYWdlRGVj
b2RlckFWRjo6Y3JlYXRlKCp0aGlzLCAqaW1hZ2VEZWNvZGVySWRlbnRpZmllciwgZGF0YSwgbWlt
ZVR5cGUpOworICAgIG1fcmVtb3RlSW1hZ2VEZWNvZGVycy5hZGQoKmltYWdlRGVjb2RlcklkZW50
aWZpZXIsIG1ha2VXZWFrUHRyKHJlbW90ZUltYWdlRGVjb2Rlci5nZXQoKSkpOworCisgICAgcmV0
dXJuIHJlbW90ZUltYWdlRGVjb2RlcjsKK30KKwordm9pZCBSZW1vdGVJbWFnZURlY29kZXJBVkZN
YW5hZ2VyOjpkZWxldGVSZW1vdGVJbWFnZURlY29kZXIoY29uc3QgSW1hZ2VEZWNvZGVySWRlbnRp
ZmllciYgaWRlbnRpZmllcikKK3sKKyAgICBtX3JlbW90ZUltYWdlRGVjb2RlcnMudGFrZShpZGVu
dGlmaWVyKTsKKyAgICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6RGVsZXRlRGVjb2RlcihpZGVudGlm
aWVyKSwgMCk7Cit9CisKK1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6OlJlbW90ZUltYWdl
RGVjb2RlckFWRk1hbmFnZXIoV2ViUHJvY2VzcyYgcHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhw
cm9jZXNzKQoreworfQorCitSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjp+UmVtb3RlSW1h
Z2VEZWNvZGVyQVZGTWFuYWdlcigpCit7CisgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5tZXNz
YWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUlt
YWdlRGVjb2RlckFWRk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK2NvbnN0
IGNoYXIqICBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCit7
CisgICAgcmV0dXJuICJSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyIjsKK30KKworR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24mIFJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6OmdwdVByb2Nlc3ND
b25uZWN0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCisg
ICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSAmbV9wcm9jZXNzLmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCk7CisKKyAgICByZXR1cm4gKm1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247Cit9
CisKK3ZvaWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlcjo6c2V0VXNlR1BVUHJvY2Vzcyhi
b29sIHVzZUdQVVByb2Nlc3MpCit7CisgICAgaWYgKCF1c2VHUFVQcm9jZXNzKSB7CisgICAgICAg
IEltYWdlRGVjb2Rlcjo6cmVzZXRGYWN0b3JpZXMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIEltYWdlRGVjb2Rlcjo6Y2xlYXJGYWN0b3JpZXMoKTsKKyAgICBJbWFnZURlY29kZXI6
Omluc3RhbGxGYWN0b3J5KHsKKyAgICAgICAgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpzdXBwb3J0
c01lZGlhVHlwZSwKKyAgICAgICAgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpjYW5EZWNvZGVUeXBl
LAorICAgICAgICBbdGhpc10oU2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBBbHBoYU9wdGlvbiBhbHBoYU9wdGlvbiwgR2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24g
Z2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24pIHsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVJ
bWFnZURlY29kZXIoZGF0YSwgbWltZVR5cGUsIGFscGhhT3B0aW9uLCBnYW1tYUFuZENvbG9yUHJv
ZmlsZU9wdGlvbik7CisgICAgICAgIH0KKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVJbWFnZURl
Y29kZXJBVkZNYW5hZ2VyOjplbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQoY29uc3QgSW1hZ2VEZWNv
ZGVySWRlbnRpZmllciYgaWRlbnRpZmllciwgc2l6ZV90IGZyYW1lQ291bnQsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNpemUsIGJvb2wgaGFzVHJhY2spCit7CisgICAgaWYgKCFtX3JlbW90ZUlt
YWdlRGVjb2RlcnMuY29udGFpbnMoaWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gcmVtb3RlSW1hZ2VEZWNvZGVyID0gbV9yZW1vdGVJbWFnZURlY29kZXJzLmdldChpZGVu
dGlmaWVyKTsKKyAgICBpZiAoIXJlbW90ZUltYWdlRGVjb2RlcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcmVtb3RlSW1hZ2VEZWNvZGVyLT5lbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQoZnJhbWVD
b3VudCwgc2l6ZSwgaGFzVHJhY2spOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVj
b2RlckFWRk1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmI5YWQ1YmM1ZTRjOGQ1Y2MyYjFkNDFhOTBl
OTQ2NzZmYjY3YzY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmgKQEAgLTAsMCArMSw3NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBIQVZFKEFWQVNTRVRSRUFERVIpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVk
ZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlRGVjb2RlcklkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0ltYWdlVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlvbjsKK2NsYXNz
IFJlbW90ZUltYWdlRGVjb2RlckFWRjsKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIFJlbW90
ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIKKyAgICA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVu
dAorICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
TWFuYWdlcihXZWJQcm9jZXNzJik7CisgICAgdmlydHVhbCB+UmVtb3RlSW1hZ2VEZWNvZGVyQVZG
TWFuYWdlcigpOworCisgICAgdm9pZCBkZWxldGVSZW1vdGVJbWFnZURlY29kZXIoY29uc3QgV2Vi
Q29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciYpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIq
IHN1cHBsZW1lbnROYW1lKCk7CisKKyAgICB2b2lkIHNldFVzZUdQVVByb2Nlc3MoYm9vbCk7Cisg
ICAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkgY29uc3Q7CisK
K3ByaXZhdGU6CisgICAgUmVmUHRyPFJlbW90ZUltYWdlRGVjb2RlckFWRj4gY3JlYXRlSW1hZ2VE
ZWNvZGVyKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgZGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgV2ViQ29yZTo6QWxwaGFPcHRpb24sIFdlYkNvcmU6OkdhbW1hQW5kQ29sb3JQcm9maWxlT3B0
aW9uKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgZmluYWw7CisgICAgdm9pZCBlbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQoY29u
c3QgV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciYsIHNpemVfdCBmcmFtZUNvdW50LCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiwgYm9vbCBoYXNUcmFjayk7CisKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OkltYWdlRGVjb2RlcklkZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlSW1hZ2VEZWNvZGVy
QVZGPj4gbV9yZW1vdGVJbWFnZURlY29kZXJzOworCisgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNz
OworICAgIG11dGFibGUgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24qIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24geyBudWxscHRyIH07CisgICAgYm9vbCBtX21lc3NhZ2VSZWNlaXZlckluaXRpYWxpemVkIHsg
ZmFsc2UgfTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRk1hbmFnZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTVlNTQxMzZhMTAwMTVlNWJmOTI4
MDMyZTlkY2QxNmE2YTczZTNhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEhBVkUoQVZBU1NFVFJFQURFUikKKworbWVzc2FnZXMgLT4gUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBFbmNvZGVkRGF0
YVN0YXR1c0NoYW5nZWQoV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVy
LCB1aW50MzJfdCBmcmFtZUNvdW50LCBXZWJDb3JlOjpJbnRTaXplIHNpemUsIGJvb2wgaGFzVHJh
Y2spCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCmluZGV4IDU0OWI4MzJmMDZh
ZjUyMmYxNDcwNTgzZWVkODYwYzdmMjVhYzU1MWIuLmMxMDM4N2RjMWQ1NDg0ZmYyMDM3YmRlNjMy
M2RlNWM1NWUzZGU0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTQxLDYgKzQxLDgg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
V2ViQXVkaW9CdWZmZXJMaXN0Lmg+CiAKKyNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExp
bmsuaD4KKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaAppbmRleCAyN2ViODVlMGU1ZTBj
NzMwZTExOThiODI1ZDIyOTFmYTM1MzUyM2IyLi5iZGQ1NDk3MWNkYmViODBhMTUyMzM1MDFmNDZh
YzU0YjJjMTdiNmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTg3LDQgKzg3LDMgQEAgcHJp
dmF0ZToKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRF
KQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDI3MzUwYWFiYzk5ZjY3Y2JlMzg1MzQ4ODkxN2U4Mjc2NGRlYmRmZTQuLmUxN2QxOTk4Y2FhMmIz
ZmUxYjk5MTU3ZDExZmE1ZmNiOWIzOTdjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNDcsNiArMzQ3LDkgQEAKICNpZiBFTkFCTEUoTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSkKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5Lmgi
CiAjZW5kaWYKKyNpZiBIQVZFKEFWQVNTRVRSRUFERVIpCisjaW5jbHVkZSAiUmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGTWFuYWdlci5oIgorI2VuZGlmCiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTUFHRV9F
WFRSQUNUSU9OKQpAQCAtMzg0OSw2ICszODUyLDkgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVm
ZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICAvLyBGSVhNRTog
dXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZCBzaG91bGQgYmUgYSBSdW50aW1lRW5hYmxlZEZl
YXR1cmUgc2luY2UgaXQncyBnbG9iYWwuCiAgICAgc3RhdGljX2Nhc3Q8V2ViTWVkaWFTdHJhdGVn
eSY+KHBsYXRmb3JtU3RyYXRlZ2llcygpLT5tZWRpYVN0cmF0ZWd5KCkpLnNldFVzZUdQVVByb2Nl
c3MobV9zaG91bGRQbGF5TWVkaWFJbkdQVVByb2Nlc3MpOwogICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnN1cHBsZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpLT5zZXRVc2VHUFVQ
cm9jZXNzKG1fc2hvdWxkUGxheU1lZGlhSW5HUFVQcm9jZXNzKTsKKyNpZiBIQVZFKEFWQVNTRVRS
RUFERVIpCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxSZW1vdGVJbWFn
ZURlY29kZXJBVkZNYW5hZ2VyPigpLT5zZXRVc2VHUFVQcm9jZXNzKG1fc2hvdWxkUGxheU1lZGlh
SW5HUFVQcm9jZXNzKTsKKyNlbmRpZgogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNldFVz
ZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmcobV9zaG91bGRSZW5kZXJDYW52YXNJbkdQVVBy
b2Nlc3MpOwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNldFVzZUdQVVByb2Nlc3NGb3JE
T01SZW5kZXJpbmcobV9zaG91bGRSZW5kZXJET01JbkdQVVByb2Nlc3MgJiYgRHJhd2luZ0FyZWE6
OnN1cHBvcnRzR1BVUHJvY2Vzc1JlbmRlcmluZyhtX2RyYXdpbmdBcmVhVHlwZSkpOwogICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnNldFVzZUdQVVByb2Nlc3NGb3JNZWRpYShtX3Nob3VsZFBs
YXlNZWRpYUluR1BVUHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggMzNjYThlNzNiNmVkMDU1YjQ4MmI3ZjEwMTFhMWY1ZDg5ODIyNmVkMy4uZGY5MTFi
MmJiNTYwOTkxZjViY2Y3Y2U4OTc4NGY0Y2RlYzlhNzc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTk4LDYgKzE5OCwxMSBAQAogI2luY2x1ZGUgIkF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgSEFWRShBVkFTU0VUUkVBREVSKQorI2luY2x1ZGUgIlJlbW90ZUltYWdlRGVjb2Rl
ckFWRi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VEZWNvZGVyLmg+CisjZW5kaWYKKwogI2lm
IFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPFdlYkNvcmUvVlA5VXRpbGl0aWVzQ29jb2EuaD4K
ICNlbmRpZgpAQCAtMjczLDYgKzI3OCwxMCBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAg
ICBhZGRTdXBwbGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBIQVZFKEFWQVNTRVRSRUFERVIpCisgICAgYWRkU3Vw
cGxlbWVudDxSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyPigpOworI2VuZGlmCisKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgYWRkU3Vw
cGxlbWVudDxSZW1vdGVDRE1GYWN0b3J5PigpOwogI2VuZGlmCkBAIC0xOTM4LDcgKzE5NDcsNyBA
QCB2b2lkIFdlYlByb2Nlc3M6OnNldFVzZUdQVVByb2Nlc3NGb3JNZWRpYShib29sIHVzZUdQVVBy
b2Nlc3NGb3JNZWRpYSkKICAgICBlbHNlCiAgICAgICAgIExlZ2FjeUNETTo6cmVzZXRGYWN0b3Jp
ZXMoKTsKICNlbmRpZgotICAgIAorCiAgICAgaWYgKHVzZUdQVVByb2Nlc3NGb3JNZWRpYSkKICAg
ICAgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5tZWRpYUVuZ2luZUNvbmZpZ3VyYXRp
b25GYWN0b3J5KCkucmVnaXN0ZXJGYWN0b3J5KCk7CiAgICAgZWxzZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>