<?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>186944</bug_id>
          
          <creation_ts>2018-06-22 15:40:22 -0700</creation_ts>
          <short_desc>Adjust WEBCORE_EXPORT annotations for LTO</short_desc>
          <delta_ts>2018-07-18 14:37:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=187781</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1435638</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-06-22 15:40:22 -0700</bug_when>
    <thetext>Adjust a number of places that result in WebKit&apos;s &apos;check-for-weak-vtables-and-externals&apos; script reporting weak external symbols:

    ERROR: WebCore has a weak external symbol in it (/Volumes/Data/dev/webkit/OpenSource/WebKitBuild/Release/WebCore.framework/Versions/A/WebCore)
    ERROR: A weak external symbol is generated when a symbol is defined in multiple compilation units and is also marked as being exported from the library.
    ERROR: A common cause of weak external symbols is when an inline function is listed in the linker export file.
    ...

These cases are caused by inline methods being marked with WTF_EXPORT (or related macro) or with an inline function being in a class marked as such, and when enabling LTO builds.

For the most part, address these by removing the WEBCORE_EXPORT annotation from inline methods. In some cases, move the implementation out-of-line because it&apos;s the class that has the WEBCORE_EXPORT on it and removing the annotation from the class would be too disruptive. Finally, in other cases, move the implementation out-of-line because check-for-weak-vtables-and-externals still complains when keeping the implementation inline and removing the annotation; this seems to typically (but not always) happen with destructors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435639</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-22 15:40:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/41384880&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435644</commentid>
    <comment_count>2</comment_count>
      <attachid>343380</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-06-22 15:43:53 -0700</bug_when>
    <thetext>Created attachment 343380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435650</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-06-22 15:48:20 -0700</bug_when>
    <thetext>Attachment 343380 did not pass style-queue:


ERROR: Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.h:53:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435690</commentid>
    <comment_count>4</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-06-22 16:59:22 -0700</bug_when>
    <thetext>That warning can be ignored for now. LTO builds succeed despite it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436209</commentid>
    <comment_count>5</comment_count>
      <attachid>343380</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-06-25 13:18:35 -0700</bug_when>
    <thetext>Comment on attachment 343380
Patch

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

r=me

&gt; Source/WebCore/ChangeLog:29
&gt; +        For the most part, address these by removing the WEBCORE_EXPORT
&gt; +        annotation from inline methods. In some cases, move the implementation
&gt; +        out-of-line because it&apos;s the class that has the WEBCORE_EXPORT on it
&gt; +        and removing the annotation from the class would be too disruptive.
&gt; +        Finally, in other cases, move the implementation out-of-line because
&gt; +        check-for-weak-vtables-and-externals still complains when keeping the
&gt; +        implementation inline and removing the annotation; this seems to
&gt; +        typically (but not always) happen with destructors.

Moving destructors out-of-line can save disk space in the binary as well!

&gt; Source/WebCore/workers/service/server/SWServer.h:72
&gt; -        WEBCORE_EXPORT virtual ~Connection() { }
&gt; +        virtual ~Connection() { }

This can be changed to:

        virtual ~Connection() = default;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436211</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-06-25 13:20:18 -0700</bug_when>
    <thetext>(In reply to Keith Rollin from comment #4)
&gt; That warning can be ignored for now. LTO builds succeed despite it.

ERROR: Source/WebCore/platform/mac/PlaybackSessionInterfaceMac.h:53:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 17 files

Why not just fix it?  It&apos;s clearly wrong.  Please fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436350</commentid>
    <comment_count>7</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-06-25 17:31:17 -0700</bug_when>
    <thetext>OK. I&apos;ve made the requested changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436351</commentid>
    <comment_count>8</comment_count>
      <attachid>343565</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-06-25 17:32:26 -0700</bug_when>
    <thetext>Created attachment 343565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436376</commentid>
    <comment_count>9</comment_count>
      <attachid>343565</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-25 19:05:42 -0700</bug_when>
    <thetext>Comment on attachment 343565
Patch

Clearing flags on attachment: 343565

Committed r233189: &lt;https://trac.webkit.org/changeset/233189&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436377</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-25 19:05:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343380</attachid>
            <date>2018-06-22 15:43:53 -0700</date>
            <delta_ts>2018-06-25 17:31:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186944-20180622154352.patch</filename>
            <type>text/plain</type>
            <size>22123</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyOTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzUzYTM0MjU5ZDIzNzdh
NWE3NWZmMzg4Y2VjZjFlNjFmZmQ3NTljOS4uMmVkYTZhYWY0MzViYmM3NmNkN2E3MThhZDM4Yzhi
M2E2NzJkMTk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDE4LTA2LTIyICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGp1c3QgV0VCQ09SRV9F
WFBPUlQgYW5ub3RhdGlvbnMgZm9yIExUTworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg2OTQ0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MTM4NDg4
MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGp1
c3QgYSBudW1iZXIgb2YgcGxhY2VzIHRoYXQgcmVzdWx0IGluIFdlYktpdCdzCisgICAgICAgICdj
aGVjay1mb3Itd2Vhay12dGFibGVzLWFuZC1leHRlcm5hbHMnIHNjcmlwdCByZXBvcnRpbmcgd2Vh
ayBleHRlcm5hbAorICAgICAgICBzeW1ib2xzOgorCisgICAgICAgICAgICBFUlJPUjogV2ViQ29y
ZSBoYXMgYSB3ZWFrIGV4dGVybmFsIHN5bWJvbCBpbiBpdCAoL1ZvbHVtZXMvRGF0YS9kZXYvd2Vi
a2l0L09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9XZWJDb3JlLmZyYW1ld29yay9WZXJz
aW9ucy9BL1dlYkNvcmUpCisgICAgICAgICAgICBFUlJPUjogQSB3ZWFrIGV4dGVybmFsIHN5bWJv
bCBpcyBnZW5lcmF0ZWQgd2hlbiBhIHN5bWJvbCBpcyBkZWZpbmVkIGluIG11bHRpcGxlIGNvbXBp
bGF0aW9uIHVuaXRzIGFuZCBpcyBhbHNvIG1hcmtlZCBhcyBiZWluZyBleHBvcnRlZCBmcm9tIHRo
ZSBsaWJyYXJ5LgorICAgICAgICAgICAgRVJST1I6IEEgY29tbW9uIGNhdXNlIG9mIHdlYWsgZXh0
ZXJuYWwgc3ltYm9scyBpcyB3aGVuIGFuIGlubGluZSBmdW5jdGlvbiBpcyBsaXN0ZWQgaW4gdGhl
IGxpbmtlciBleHBvcnQgZmlsZS4KKyAgICAgICAgICAgIC4uLgorCisgICAgICAgIFRoZXNlIGNh
c2VzIGFyZSBjYXVzZWQgYnkgaW5saW5lIG1ldGhvZHMgYmVpbmcgbWFya2VkIHdpdGggV1RGX0VY
UE9SVAorICAgICAgICAob3IgcmVsYXRlZCBtYWNybykgb3Igd2l0aCBhbiBpbmxpbmUgZnVuY3Rp
b24gYmVpbmcgaW4gYSBjbGFzcyBtYXJrZWQKKyAgICAgICAgYXMgc3VjaCwgYW5kIHdoZW4gZW5h
YmxpbmcgTFRPIGJ1aWxkcy4KKworICAgICAgICBGb3IgdGhlIG1vc3QgcGFydCwgYWRkcmVzcyB0
aGVzZSBieSByZW1vdmluZyB0aGUgV0VCQ09SRV9FWFBPUlQKKyAgICAgICAgYW5ub3RhdGlvbiBm
cm9tIGlubGluZSBtZXRob2RzLiBJbiBzb21lIGNhc2VzLCBtb3ZlIHRoZSBpbXBsZW1lbnRhdGlv
bgorICAgICAgICBvdXQtb2YtbGluZSBiZWNhdXNlIGl0J3MgdGhlIGNsYXNzIHRoYXQgaGFzIHRo
ZSBXRUJDT1JFX0VYUE9SVCBvbiBpdAorICAgICAgICBhbmQgcmVtb3ZpbmcgdGhlIGFubm90YXRp
b24gZnJvbSB0aGUgY2xhc3Mgd291bGQgYmUgdG9vIGRpc3J1cHRpdmUuCisgICAgICAgIEZpbmFs
bHksIGluIG90aGVyIGNhc2VzLCBtb3ZlIHRoZSBpbXBsZW1lbnRhdGlvbiBvdXQtb2YtbGluZSBi
ZWNhdXNlCisgICAgICAgIGNoZWNrLWZvci13ZWFrLXZ0YWJsZXMtYW5kLWV4dGVybmFscyBzdGls
bCBjb21wbGFpbnMgd2hlbiBrZWVwaW5nIHRoZQorICAgICAgICBpbXBsZW1lbnRhdGlvbiBpbmxp
bmUgYW5kIHJlbW92aW5nIHRoZSBhbm5vdGF0aW9uOyB0aGlzIHNlZW1zIHRvCisgICAgICAgIHR5
cGljYWxseSAoYnV0IG5vdCBhbHdheXMpIGhhcHBlbiB3aXRoIGRlc3RydWN0b3JzLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cy4gVGhlcmUgaXMgbm8gY2hhbmdlZCBmdW5jdGlvbmFsaXR5LiBPbmx5
IHRoZSBhbm5vdGF0aW9uCisgICAgICAgIGFuZCB0cmVhdG1lbnQgb2YgaW5saW5lIG1ldGhvZHMg
YXJlIGFsdGVyZWQuCisKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblRpbWVsaW5lOjpwYXVzZSk6CisgICAgICAgICog
cGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpyZXBvcnRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnJlcG9ydEV4cG9zZWRVbmZpbGxlZEFy
ZWEpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpoYXNB
Y3RpdmVOb3dQbGF5aW5nU2Vzc2lvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI6Omxhc3RVcGRhdGVkTm93UGxheWluZ1RpdGxlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6bGFzdFVwZGF0
ZWROb3dQbGF5aW5nRHVyYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpsYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFwc2VkVGltZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Omxhc3RV
cGRhdGVkTm93UGxheWluZ0luZm9VbmlxdWVJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVnaXN0ZXJlZEFzTm93UGxheWlu
Z0FwcGxpY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5n
QnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6fkNBUmluZ0J1ZmZl
cik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q0FSaW5nQnVmZmVyOjp+Q0FSaW5nQnVmZmVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6ZGlzcGxheUxpc3RBc1RleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllcjo6c2V0SXNUcmFja2luZ0Rpc3BsYXlMaXN0UmVwbGF5KToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmlzVHJhY2tpbmdEaXNwbGF5TGlzdFJlcGxheSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpyZXBsYXlEaXNwbGF5TGlzdEFz
VGV4dCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNldEF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjp1bnNldEF1ZGlvRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxpYldlYlJUQ1Byb3ZpZGVyOjpzZXRBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2Vi
UlRDUHJvdmlkZXI6OmNyZWF0ZURlY29kZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Okxp
YldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVFbmNvZGVyRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3Jl
OjpMaWJXZWJSVENQcm92aWRlcjo6ZGlzYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFj
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmVuYWJsZUVudW1lcmF0
aW5nQWxsTmV0d29ya0ludGVyZmFjZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZUFzeW5jKToKKyAgICAgICAgKiB0ZXN0aW5nL01v
Y2tHYW1lcGFkUHJvdmlkZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6Q29ubmVjdGlvbjo6fkNvbm5l
Y3Rpb24pOgorCiAyMDE4LTA2LTE5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBOZWVkIHRvIHByb3Blcmx5IGhhbmRsZSByZW1vdmFsIG9mIHdvcmtlciBpbiBT
V1NlcnZlcjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQgdGltZXIgbGFtYmRhCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oCmluZGV4IDEzOTI3MmNh
OTQxYmNjMGViODNlMzc1OTlhNDA0ZGU1MjgxZjIxMmIuLjJiZGE4MDA0NTMzOGYwZTgzNmY4ZDE0
ZjVhMGEwMmYyOWJhOWFjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9B
bmltYXRpb25UaW1lbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRp
b25UaW1lbGluZS5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHN0ZDo6
b3B0aW9uYWw8U2Vjb25kcz4gY3VycmVudFRpbWUoKSB7IHJldHVybiBtX2N1cnJlbnRUaW1lOyB9
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDdXJyZW50VGltZShTZWNvbmRzKTsKICAgICBX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgZGVzY3JpcHRpb24oKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIHZvaWQgcGF1c2UoKSB7IH07CisgICAgdmlydHVhbCB2b2lkIHBhdXNlKCkgeyB9Owog
CiAgICAgdmlydHVhbCB2b2lkIHRpbWluZ01vZGVsRGlkQ2hhbmdlKCkgeyB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKaW5kZXggMGNiNmNlMjE3NzE0MDhk
MzY1YWRlNmNlNWFhNTM3ZGIxZTdlMjQ5NC4uZTFmY2MyYjljMjg2MDU1ZmY1MjhjNjA5ZGQyOTM4
ZWMyNTMyNWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQ
cm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIu
aApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdFQkNP
UkVfRVhQT1JUIENhY2hlU3RvcmFnZVByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FjaGVT
dG9yYWdlUHJvdmlkZXI+IHsKK2NsYXNzIENhY2hlU3RvcmFnZVByb3ZpZGVyIDogcHVibGljIFJl
ZkNvdW50ZWQ8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENh
Y2hlU3RvcmFnZVByb3ZpZGVyKTsgfQogICAgIHZpcnR1YWwgUmVmPENhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQpIHsgcmV0
dXJuIENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggMWQ5ZGVhYWRiZWZiNjFhMzNi
MjgzYmUwM2I2MDdlMWY5ODVhNjhhOC4uZTc3Yjk3Mjk4YjI2ZWNiYjJmMWYwYWFlMjU2NjM1NTM5
ZTk3NTU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaApAQCAtOTEsOCArOTEsOCBAQCBwdWJsaWM6CiAgICAgLy8gYW5kIGNhbGwgc2Nyb2xsaW5n
VHJlZU5vZGVEaWRTY3JvbGwoKS4KICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2Ny
b2xsUG9zaXRpb25DaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgaW5Vc2VySW50
ZXJhY3Rpb24pOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHJlcG9ydFN5bmNo
cm9ub3VzU2Nyb2xsaW5nUmVhc29uc0NoYW5nZWQoTW9ub3RvbmljVGltZSwgU3luY2hyb25vdXNT
Y3JvbGxpbmdSZWFzb25zKSB7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgcmVw
b3J0RXhwb3NlZFVuZmlsbGVkQXJlYShNb25vdG9uaWNUaW1lLCB1bnNpZ25lZCAvKiB1bmZpbGxl
ZEFyZWEgKi8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRTeW5jaHJvbm91c1Njcm9sbGlu
Z1JlYXNvbnNDaGFuZ2VkKE1vbm90b25pY1RpbWUsIFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29u
cykgeyB9CisgICAgdmlydHVhbCB2b2lkIHJlcG9ydEV4cG9zZWRVbmZpbGxlZEFyZWEoTW9ub3Rv
bmljVGltZSwgdW5zaWduZWQgLyogdW5maWxsZWRBcmVhICovKSB7IH0KIAogICAgIEZsb2F0UG9p
bnQgbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgK
aW5kZXggYjhiN2NlYWRlY2M4ZGRjZjY1MzBhZjAzNmM5YjEyMGNiZDk1MjY1ZS4uOGRjZmQxMTEw
NjYyMGZjOTk3NjY4NTMxOWZlODNjODRjZmViMDNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgK
QEAgLTU1LDEyICs1NSwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBhY3RpdmVBdWRpb1Nlc3Npb25S
ZXF1aXJlZCgpIGNvbnN0OwogICAgIGJvb2wgY2FuUHJvZHVjZUF1ZGlvKCkgY29uc3Q7CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaGFzQWN0aXZlTm93UGxheWluZ1Nlc3Npb24o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgU3Ry
aW5nIGxhc3RVcGRhdGVkTm93UGxheWluZ1RpdGxlKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJp
bmcoKTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgZG91YmxlIGxhc3RVcGRhdGVkTm93
UGxheWluZ0R1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gTkFOOyB9Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCBkb3VibGUgbGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUoKSBjb25z
dCB7IHJldHVybiBOQU47IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHVpbnQ2NF90IGxh
c3RVcGRhdGVkTm93UGxheWluZ0luZm9VbmlxdWVJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
MDsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgYm9vbCByZWdpc3RlcmVkQXNOb3dQbGF5
aW5nQXBwbGljYXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBoYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCBTdHJpbmcgbGFzdFVwZGF0ZWROb3dQbGF5aW5nVGl0bGUoKSBjb25zdCB7IHJl
dHVybiBlbXB0eVN0cmluZygpOyB9CisgICAgdmlydHVhbCBkb3VibGUgbGFzdFVwZGF0ZWROb3dQ
bGF5aW5nRHVyYXRpb24oKSBjb25zdCB7IHJldHVybiBOQU47IH0KKyAgICB2aXJ0dWFsIGRvdWJs
ZSBsYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFwc2VkVGltZSgpIGNvbnN0IHsgcmV0dXJuIE5BTjsg
fQorICAgIHZpcnR1YWwgdWludDY0X3QgbGFzdFVwZGF0ZWROb3dQbGF5aW5nSW5mb1VuaXF1ZUlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBib29sIHJlZ2lzdGVy
ZWRBc05vd1BsYXlpbmdBcHBsaWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICBib29sIHdpbGxJZ25vcmVTeXN0ZW1JbnRlcnJ1cHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV93
aWxsSWdub3JlU3lzdGVtSW50ZXJydXB0aW9uczsgfQogICAgIHZvaWQgc2V0V2lsbElnbm9yZVN5
c3RlbUludGVycnVwdGlvbnMoYm9vbCBpZ25vcmUpIHsgbV93aWxsSWdub3JlU3lzdGVtSW50ZXJy
dXB0aW9ucyA9IGlnbm9yZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQ0FSaW5nQnVmZmVyLmNwcAppbmRleCA3ZDZiYmE3NmM1MzE5ODI1MTY4NDNmMWU5OWVi
MmUxNGRiYzMxNWIwLi5lZDdhN2E1YmMxNDMzNjJmOTdhZjljYWQ5MjExMDhmYjMyMWZmODdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVy
LmNwcApAQCAtNDQsNiArNDQsMTEgQEAgQ0FSaW5nQnVmZmVyOjpDQVJpbmdCdWZmZXIoKQogewog
fQogCitDQVJpbmdCdWZmZXI6On5DQVJpbmdCdWZmZXIoKQoreworICAgIGRlYWxsb2NhdGUoKTsK
K30KKwogQ0FSaW5nQnVmZmVyOjpDQVJpbmdCdWZmZXIoVW5pcXVlUmVmPENBUmluZ0J1ZmZlclN0
b3JhZ2U+JiYgc3RvcmFnZSkKICAgICA6IG1fYnVmZmVycyhXVEZNb3ZlKHN0b3JhZ2UpKQogICAg
ICwgbV90aW1lQm91bmRzUXVldWUoa0dlbmVyYWxSaW5nVGltZUJvdW5kc1F1ZXVlU2l6ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIuaAppbmRl
eCA0NTAyMmQzNjQ1M2EzZDY3MTliZjVhYjI0NGZmM2NmMzYxZDNkM2IxLi5jOGNhN2RiYzM5Mzg1
Y2FhZDk4MjBhYjAyOWQ2OGM2ODUzNzhhNTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5oCkBAIC02MSwxMCArNjEsNyBAQCBjbGFzcyBD
QVJpbmdCdWZmZXIgewogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIENBUmluZ0J1ZmZlcigp
OwogICAgIFdFQkNPUkVfRVhQT1JUIENBUmluZ0J1ZmZlcihVbmlxdWVSZWY8Q0FSaW5nQnVmZmVy
U3RvcmFnZT4mJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgfkNBUmluZ0J1ZmZlcigpCi0gICAgewot
ICAgICAgICBkZWFsbG9jYXRlKCk7Ci0gICAgfQorICAgIFdFQkNPUkVfRVhQT1JUIH5DQVJpbmdC
dWZmZXIoKTsKIAogICAgIGVudW0gRXJyb3IgewogICAgICAgICBPaywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudC5oCmluZGV4IDgxZjg0ZjUwMWRmZGU4NzQyNDViZWNjNDMwZGEyMWU4ZTQx
ZmI2MzkuLjM2YjE4NTcxZTJkNjhjZDVlYjE5ZWM3NGNlMjk3MWE3NzViNTAyMzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVsVmlk
ZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxs
c2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaApAQCAtNjksOCArNjksOCBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eShWaWRlb0dyYXZpdHkpIG92
ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKEhU
TUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgb3ZlcnJpZGU7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBpc1Zpc2libGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV92aWRlb0RpbWVuc2lvbnM7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc1Zp
ZGVvKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9oYXNWaWRlbzsgfQorICAgIEZsb2F0U2l6
ZSB2aWRlb0RpbWVuc2lvbnMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3ZpZGVvRGltZW5z
aW9uczsgfQorICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2hh
c1ZpZGVvOyB9CiAKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyLmgKaW5kZXggYzNiOTM5ZmQ4ODE4NjMzYjVlZGQ1M2Zj
YTJlYTAxM2QyMGMyYjY0Yy4uNzAyZGFjNDlhMjdmOGU5YjIzNTcyY2IzZjlhNTJmYmYzOGFkNmQ3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJv
dmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQcm92
aWRlci5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdhbWVw
YWRQcm92aWRlckNsaWVudDsKIGNsYXNzIFBsYXRmb3JtR2FtZXBhZDsKIAotY2xhc3MgV0VCQ09S
RV9FWFBPUlQgR2FtZXBhZFByb3ZpZGVyIHsKK2NsYXNzIEdhbWVwYWRQcm92aWRlciB7CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+R2FtZXBhZFByb3ZpZGVyKCkgPSBkZWZhdWx0OwogCkBAIC00OCw3
ICs0OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNNb2NrR2FtZXBhZFByb3ZpZGVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogcHJvdGVjdGVkOgotICAgIHZvaWQgZGlzcGF0
Y2hQbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkaXNwYXRjaFBsYXRmb3JtR2FtZXBhZElucHV0QWN0aXZpdHkoKTsKICAgICB2b2lkIHNldFNo
b3VsZE1ha2VHYW1lcGFkc1Zpc2liaWxlKCkgeyBtX3Nob3VsZE1ha2VHYW1lcGFkc1Zpc2libGUg
PSB0cnVlOyB9CiAgICAgSGFzaFNldDxHYW1lcGFkUHJvdmlkZXJDbGllbnQqPiBtX2NsaWVudHM7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aAppbmRleCAxMGVkYTE1ZmMzZjQ4ZmNhYmYxMjNkZjE2N2NmOTkwODYyNmNiYjRiLi42N2I2Mzkz
MjEyOTk3ZmYzZWU4ZTMzNGNlMjA5Y2IzZTVlN2UzZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC01NDIsMTEgKzU0MiwxMSBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGxheWVyVHJlZUFzVGV4dChMYXll
clRyZWVBc1RleHRCZWhhdmlvciA9IExheWVyVHJlZUFzVGV4dEJlaGF2aW9yTm9ybWFsKSBjb25z
dDsKIAogICAgIC8vIEZvciB0ZXN0aW5nLgotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgU3Ry
aW5nIGRpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlMaXN0OjpBc1RleHRGbGFncykgY29uc3QgeyBy
ZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBkaXNwbGF5TGlzdEFzVGV4dChE
aXNwbGF5TGlzdDo6QXNUZXh0RmxhZ3MpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0SXNUcmFja2luZ0Rpc3BsYXlMaXN0UmVw
bGF5KGJvb2wgaXNUcmFja2luZykgeyBtX2lzVHJhY2tpbmdEaXNwbGF5TGlzdFJlcGxheSA9IGlz
VHJhY2tpbmc7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNUcmFja2luZ0Rp
c3BsYXlMaXN0UmVwbGF5KCkgY29uc3QgeyByZXR1cm4gbV9pc1RyYWNraW5nRGlzcGxheUxpc3RS
ZXBsYXk7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFN0cmluZyByZXBsYXlEaXNwbGF5
TGlzdEFzVGV4dChEaXNwbGF5TGlzdDo6QXNUZXh0RmxhZ3MpIGNvbnN0IHsgcmV0dXJuIFN0cmlu
ZygpOyB9CisgICAgdmlydHVhbCB2b2lkIHNldElzVHJhY2tpbmdEaXNwbGF5TGlzdFJlcGxheShi
b29sIGlzVHJhY2tpbmcpIHsgbV9pc1RyYWNraW5nRGlzcGxheUxpc3RSZXBsYXkgPSBpc1RyYWNr
aW5nOyB9CisgICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdEaXNwbGF5TGlzdFJlcGxheSgpIGNv
bnN0IHsgcmV0dXJuIG1faXNUcmFja2luZ0Rpc3BsYXlMaXN0UmVwbGF5OyB9CisgICAgdmlydHVh
bCBTdHJpbmcgcmVwbGF5RGlzcGxheUxpc3RBc1RleHQoRGlzcGxheUxpc3Q6OkFzVGV4dEZsYWdz
KSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogCiAgICAgLy8gUmV0dXJuIGFuIGVzdGltYXRl
IG9mIHRoZSBiYWNraW5nIHN0b3JlIG1lbW9yeSBjb3N0IChpbiBieXRlcykuIE1heSBiZSBpbmNv
cnJlY3QgZm9yIHRpbGVkIGxheWVycy4KICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGRvdWJs
ZSBiYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oCmlu
ZGV4IDViODEyZGE2ZDZhMmFjZDBiYjY1Y2ZhZDQ5NjEwOThlYWM0NmJlMmIuLmVhMzRjYTcyNjBi
MzI0ZTMzY2IwMDA2ZThhMzMyZTczYzY4MWExZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLmgKQEAgLTUw
LDcgKzUwLDcgQEAgcHVibGljOgogICAgIFBsYXliYWNrU2Vzc2lvbk1vZGVsKiBwbGF5YmFja1Nl
c3Npb25Nb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWJhY2tTZXNzaW9uTW9kZWw7IH0KIAog
ICAgIC8vIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVzZXRNZWRpYVN0YXRlKCkgZmluYWwgeyB9CisgICAgdm9pZCByZXNldE1lZGlhU3RhdGUoKSBm
aW5hbCB7IH0KIAogICAgIC8vIFBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkdXJhdGlvbkNoYW5nZWQoZG91YmxlKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuaAppbmRleCAwYzcyNWY5ODA5ZDZiZTk3MzkzY2NiMzNkZmY3ZDgxOTE2
NTk4ZjlkLi40MDNlN2QxOTU1ZGQ2MWNkZTI4NGViZTE4ZjNjOGM3NTgxMWZhMjllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCkBAIC03MSw4ICs3MSw4IEBAIHB1YmxpYzoKICAgICAK
ICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBv
cnRlZENvbnN0cmFpbnRzKCkgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50czsgfQogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1l
ZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5JikgeyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB2b2lkIHVuc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlv
Q2FwdHVyZUZhY3RvcnkmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9GYWN0b3J5KFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkmKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgdW5zZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJl
RmFjdG9yeSYpIHsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYgYXVkaW9GYWN0b3J5KCkgPSAwOwogCiAgICAgdmly
dHVhbCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5JiB2aWRlb0ZhY3Rv
cnkoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCAwZTQ4
ZGRkMjRmYTJmYjRhZjBlZmRlYWE3YThjOWFiYTAzZDY0M2I5Li5mMjM2M2JhMGNlNGQyODJhMjcz
Yjk3Yzk5NDUwZTg4YjQ0YTZmOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5jcHAKQEAgLTUxLDYgKzUxLDEwIEBAIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4gTGli
V2ViUlRDUHJvdmlkZXI6OmNyZWF0ZSgpCiB9CiAjZW5kaWYKIAordm9pZCBMaWJXZWJSVENQcm92
aWRlcjo6c2V0QWN0aXZlKGJvb2wpCit7Cit9CisKICNpZiBVU0UoTElCV0VCUlRDKQogc3RhdGlj
IGlubGluZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBib29sIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0
aW9ucykKIHsKQEAgLTE5NSwxMSArMTk5LDMxIEBAIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6
OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyCiAg
ICAgcmV0dXJuIHdlYnJ0Yzo6Q3JlYXRlUGVlckNvbm5lY3Rpb25GYWN0b3J5KG5ldHdvcmtUaHJl
YWQsIG5ldHdvcmtUaHJlYWQsIHNpZ25hbGluZ1RocmVhZCwgYXVkaW9Nb2R1bGUsIHdlYnJ0Yzo6
Q3JlYXRlQnVpbHRpbkF1ZGlvRW5jb2RlckZhY3RvcnkoKSwgd2VicnRjOjpDcmVhdGVCdWlsdGlu
QXVkaW9EZWNvZGVyRmFjdG9yeSgpLCBjcmVhdGVFbmNvZGVyRmFjdG9yeSgpLCBjcmVhdGVEZWNv
ZGVyRmFjdG9yeSgpLCBudWxscHRyLCBudWxscHRyKTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPHdl
YnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZURlY29k
ZXJGYWN0b3J5KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworc3RkOjp1bmlxdWVfcHRy
PHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZUVu
Y29kZXJGYWN0b3J5KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogdm9pZCBMaWJXZWJS
VENQcm92aWRlcjo6c2V0UGVlckNvbm5lY3Rpb25GYWN0b3J5KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3
ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZT4mJiBmYWN0b3J5KQogewogICAg
IG1fZmFjdG9yeSA9IHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25GYWN0b3J5UHJveHk6OkNyZWF0ZShn
ZXRTdGF0aWNGYWN0b3J5QW5kVGhyZWFkcyhtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0U2Vy
dmVyKS5zaWduYWxpbmdUaHJlYWQuZ2V0KCksIFdURk1vdmUoZmFjdG9yeSkpOwogfQogCit2b2lk
IExpYldlYlJUQ1Byb3ZpZGVyOjpkaXNhYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNl
cygpCit7CisgICAgbV9lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzID0gZmFs
c2U7Cit9CisKK3ZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0
d29ya0ludGVyZmFjZXMoKQoreworICAgIG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50
ZXJmYWNlcyA9IHRydWU7Cit9CisKIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uSW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24o
d2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgd2VicnRjOjpQZWVyQ29u
bmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAg
ICAgLy8gRGVmYXVsdCBXSzEgaW1wbGVtZW50YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5oCmluZGV4IDlkMmQxM2E3OTUzODBmMzIyYTg3ZjliYmJlZGYxNTBmMjdiNGJjZjku
LjBiNGI5YmQ1YjNhMDNiNTJjNjNiYWNjNDNiYjU1ZTFhNTZmNzE2YWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBib29sIHdlYlJUQ0F2YWlsYWJsZSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldEFjdGl2
ZShib29sKSB7IH07CisgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBzZXRIMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZChib29sKSB7IH0KIApAQCAt
MTA0LDggKzEwNCw4IEBAIHB1YmxpYzoKICAgICAvLyBVc2VkIGZvciBtb2NrIHRlc3RpbmcKICAg
ICB2b2lkIHNldFBlZXJDb25uZWN0aW9uRmFjdG9yeShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRj
OjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2U+JiYpOwogCi0gICAgdm9pZCBkaXNhYmxl
RW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpIHsgbV9lbmFibGVFbnVtZXJhdGluZ0Fs
bE5ldHdvcmtJbnRlcmZhY2VzID0gZmFsc2U7IH0KLSAgICB2b2lkIGVuYWJsZUVudW1lcmF0aW5n
QWxsTmV0d29ya0ludGVyZmFjZXMoKSB7IG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50
ZXJmYWNlcyA9IHRydWU7IH0KKyAgICB2b2lkIGRpc2FibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJ
bnRlcmZhY2VzKCk7CisgICAgdm9pZCBlbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZh
Y2VzKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25z
KCkgeyBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyA9IHRydWU7IH0KIApAQCAtMTE1
LDggKzExNSw4IEBAIHByb3RlY3RlZDoKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQ
ZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVy
Q29ubmVjdGlvbk9ic2VydmVyJiwgcnRjOjpOZXR3b3JrTWFuYWdlciYsIHJ0Yzo6UGFja2V0U29j
a2V0RmFjdG9yeSYsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3Vy
YXRpb24mJik7CiAKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlv
bkZhY3RvcnlJbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9uRmFjdG9yeShydGM6OlRocmVh
ZCogbmV0d29ya1RocmVhZCwgcnRjOjpUaHJlYWQqIHNpZ25hbGluZ1RocmVhZCwgTGliV2ViUlRD
QXVkaW9Nb2R1bGUqKTsKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVv
RGVjb2RlckZhY3Rvcnk+IGNyZWF0ZURlY29kZXJGYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0cjsg
fQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFjdG9y
eT4gY3JlYXRlRW5jb2RlckZhY3RvcnkoKSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVEZWNv
ZGVyRmFjdG9yeSgpOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9F
bmNvZGVyRmFjdG9yeT4gY3JlYXRlRW5jb2RlckZhY3RvcnkoKTsKIAogICAgIGJvb2wgbV9lbmFi
bGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzIHsgZmFsc2UgfTsKICAgICAvLyBGSVhN
RTogUmVtb3ZlIG1fdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIgbWVtYmVyIHZhcmlh
YmxlIGFuZCBtYWtlIGl0IGEgZ2xvYmFsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCmluZGV4IDY3NmU3NGU1ZmFmM2Ex
ZDRhODUzZjk5MmIxNjY2M2YzZTcyNGUzNDAuLmQ2ZWRiNmQ2MThhZGMzYmNjZTIzZjAxZmI5N2Zm
MTM5OTdhNmZhYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgKQEAgLTg0LDkgKzg0LDkgQEAgcHVibGljOgogI2Vu
ZGlmCiAKICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgdm9pZCB3aWxsQ2FjaGVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRV
UkxSZXNwb25zZVJlZiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDRkNhY2hlZFVS
TFJlc3BvbnNlUmVmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihy
ZXNwb25zZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhSZXNv
dXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik+JiYgY29tcGxldGlvbkhhbmRsZXIp
IHsgY29tcGxldGlvbkhhbmRsZXIocmVzcG9uc2UpOyB9CiAjZWxpZiBQTEFURk9STShDT0NPQSkK
LSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhS
ZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKnJlc3BvbnNlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKik+JiYgY29tcGxldGlvbkhhbmRsZXIp
IHsgY29tcGxldGlvbkhhbmRsZXIocmVzcG9uc2UpOyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxD
YWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlICpy
ZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU0NhY2hlZFVSTFJlc3BvbnNlICopPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHJlc3BvbnNlKTsgfQogI2Vu
ZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3Vy
Y2VIYW5kbGUqKSB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrR2FtZXBhZFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tHYW1lcGFkUHJvdmlkZXIuaAppbmRleCA0ZTc5MGEyYWE4MjIxMWE4NWUxOTYxMzUxMWM1Mzk4
MDExNGM3ZDVhLi40MDQxOWI5MjMzZmUzOTA3YTk4MjZiNzA1MTJlZDYxMWUxNTU4OGQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tHYW1lcGFkUHJvdmlkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tHYW1lcGFkUHJvdmlkZXIuaApAQCAtNDEsNyAr
NDEsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0TW9uaXRvcmlu
Z0dhbWVwYWRzKEdhbWVwYWRQcm92aWRlckNsaWVudCYpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc3RvcE1vbml0b3JpbmdHYW1lcGFkcyhHYW1lcGFkUHJvdmlkZXJDbGllbnQmKSBm
aW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4m
IHBsYXRmb3JtR2FtZXBhZHMoKSBmaW5hbCB7IHJldHVybiBtX2Nvbm5lY3RlZEdhbWVwYWRWZWN0
b3I7IH0KKyAgICBjb25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4mIHBsYXRmb3JtR2FtZXBh
ZHMoKSBmaW5hbCB7IHJldHVybiBtX2Nvbm5lY3RlZEdhbWVwYWRWZWN0b3I7IH0KICAgICBib29s
IGlzTW9ja0dhbWVwYWRQcm92aWRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAog
ICAgIHZvaWQgc2V0TW9ja0dhbWVwYWREZXRhaWxzKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJp
bmcmIGdhbWVwYWRJRCwgdW5zaWduZWQgYXhpc0NvdW50LCB1bnNpZ25lZCBidXR0b25Db3VudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgK
aW5kZXggYzkxMzA5NDIxNmIzNmY2NWVhMGFkZWQ1MWRiYzcxODdlZTZjYWU0OS4uNWNkYjdjYjJm
MGU3YTk0NDAwODkxYjQ4ODNkNGZmMzA2MjJjNGU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNjksNyArNjksNyBAQCBwdWJs
aWM6CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgICAgICBmcmllbmQgY2xh
c3MgU1dTZXJ2ZXI7CiAgICAgcHVibGljOgotICAgICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFs
IH5Db25uZWN0aW9uKCkgeyB9CisgICAgICAgIHZpcnR1YWwgfkNvbm5lY3Rpb24oKSB7IH0KIAog
ICAgICAgICB1c2luZyBJZGVudGlmaWVyID0gU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsK
ICAgICAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlm
aWVyOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343565</attachid>
            <date>2018-06-25 17:32:26 -0700</date>
            <delta_ts>2018-06-25 19:05:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186944-20180625173225.patch</filename>
            <type>text/plain</type>
            <size>25586</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyOTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzUzYTM0MjU5ZDIzNzdh
NWE3NWZmMzg4Y2VjZjFlNjFmZmQ3NTljOS4uMjY4MjMwYTlkOGRhZDZmNGEwZDE1ZmU5MDIxNGQ2
MTk0ZTJlZjgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDE4LTA2LTI1ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGp1c3QgV0VCQ09SRV9F
WFBPUlQgYW5ub3RhdGlvbnMgZm9yIExUTworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg2OTQ0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MTM4NDg4
MD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIuCisKKyAgICAgICAgQWRqdXN0
IGEgbnVtYmVyIG9mIHBsYWNlcyB0aGF0IHJlc3VsdCBpbiBXZWJLaXQncworICAgICAgICAnY2hl
Y2stZm9yLXdlYWstdnRhYmxlcy1hbmQtZXh0ZXJuYWxzJyBzY3JpcHQgcmVwb3J0aW5nIHdlYWsg
ZXh0ZXJuYWwKKyAgICAgICAgc3ltYm9sczoKKworICAgICAgICAgICAgRVJST1I6IFdlYkNvcmUg
aGFzIGEgd2VhayBleHRlcm5hbCBzeW1ib2wgaW4gaXQgKC9Wb2x1bWVzL0RhdGEvZGV2L3dlYmtp
dC9PcGVuU291cmNlL1dlYktpdEJ1aWxkL1JlbGVhc2UvV2ViQ29yZS5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9XZWJDb3JlKQorICAgICAgICAgICAgRVJST1I6IEEgd2VhayBleHRlcm5hbCBzeW1ib2wg
aXMgZ2VuZXJhdGVkIHdoZW4gYSBzeW1ib2wgaXMgZGVmaW5lZCBpbiBtdWx0aXBsZSBjb21waWxh
dGlvbiB1bml0cyBhbmQgaXMgYWxzbyBtYXJrZWQgYXMgYmVpbmcgZXhwb3J0ZWQgZnJvbSB0aGUg
bGlicmFyeS4KKyAgICAgICAgICAgIEVSUk9SOiBBIGNvbW1vbiBjYXVzZSBvZiB3ZWFrIGV4dGVy
bmFsIHN5bWJvbHMgaXMgd2hlbiBhbiBpbmxpbmUgZnVuY3Rpb24gaXMgbGlzdGVkIGluIHRoZSBs
aW5rZXIgZXhwb3J0IGZpbGUuCisgICAgICAgICAgICAuLi4KKworICAgICAgICBUaGVzZSBjYXNl
cyBhcmUgY2F1c2VkIGJ5IGlubGluZSBtZXRob2RzIGJlaW5nIG1hcmtlZCB3aXRoIFdURl9FWFBP
UlQKKyAgICAgICAgKG9yIHJlbGF0ZWQgbWFjcm8pIG9yIHdpdGggYW4gaW5saW5lIGZ1bmN0aW9u
IGJlaW5nIGluIGEgY2xhc3MgbWFya2VkCisgICAgICAgIGFzIHN1Y2gsIGFuZCB3aGVuIGVuYWJs
aW5nIExUTyBidWlsZHMuCisKKyAgICAgICAgRm9yIHRoZSBtb3N0IHBhcnQsIGFkZHJlc3MgdGhl
c2UgYnkgcmVtb3ZpbmcgdGhlIFdFQkNPUkVfRVhQT1JUCisgICAgICAgIGFubm90YXRpb24gZnJv
bSBpbmxpbmUgbWV0aG9kcy4gSW4gc29tZSBjYXNlcywgbW92ZSB0aGUgaW1wbGVtZW50YXRpb24K
KyAgICAgICAgb3V0LW9mLWxpbmUgYmVjYXVzZSBpdCdzIHRoZSBjbGFzcyB0aGF0IGhhcyB0aGUg
V0VCQ09SRV9FWFBPUlQgb24gaXQKKyAgICAgICAgYW5kIHJlbW92aW5nIHRoZSBhbm5vdGF0aW9u
IGZyb20gdGhlIGNsYXNzIHdvdWxkIGJlIHRvbyBkaXNydXB0aXZlLgorICAgICAgICBGaW5hbGx5
LCBpbiBvdGhlciBjYXNlcywgbW92ZSB0aGUgaW1wbGVtZW50YXRpb24gb3V0LW9mLWxpbmUgYmVj
YXVzZQorICAgICAgICBjaGVjay1mb3Itd2Vhay12dGFibGVzLWFuZC1leHRlcm5hbHMgc3RpbGwg
Y29tcGxhaW5zIHdoZW4ga2VlcGluZyB0aGUKKyAgICAgICAgaW1wbGVtZW50YXRpb24gaW5saW5l
IGFuZCByZW1vdmluZyB0aGUgYW5ub3RhdGlvbjsgdGhpcyBzZWVtcyB0bworICAgICAgICB0eXBp
Y2FsbHkgKGJ1dCBub3QgYWx3YXlzKSBoYXBwZW4gd2l0aCBkZXN0cnVjdG9ycy4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIFRoZXJlIGlzIG5vIGNoYW5nZWQgZnVuY3Rpb25hbGl0eS4gT25seSB0
aGUgYW5ub3RhdGlvbgorICAgICAgICBhbmQgdHJlYXRtZW50IG9mIGlubGluZSBtZXRob2RzIGFy
ZSBhbHRlcmVkLgorCisgICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25UaW1lbGluZTo6cGF1c2UpOgorICAgICAgICAqIHBh
Z2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6cmVwb3J0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpyZXBvcnRFeHBvc2VkVW5maWxsZWRBcmVh
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6aGFzQWN0
aXZlTm93UGxheWluZ1Nlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpsYXN0VXBkYXRlZE5vd1BsYXlpbmdUaXRsZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6Omxhc3RVcGRhdGVk
Tm93UGxheWluZ0R1cmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlcjo6bGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpsYXN0VXBk
YXRlZE5vd1BsYXlpbmdJbmZvVW5pcXVlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJlZ2lzdGVyZWRBc05vd1BsYXlpbmdB
cHBsaWNhdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1
ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQVJpbmdCdWZmZXI6On5DQVJpbmdCdWZmZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNBUmluZ0J1ZmZlcjo6fkNBUmluZ0J1ZmZlcik6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQcm92aWRlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXI6OmRpc3BsYXlMaXN0QXNUZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI6OnNldElzVHJhY2tpbmdEaXNwbGF5TGlzdFJlcGxheSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjppc1RyYWNraW5nRGlzcGxheUxpc3RSZXBsYXkgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6cmVwbGF5RGlzcGxheUxpc3RBc1Rl
eHQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzZXRBdWRpb0ZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6dW5zZXRBdWRpb0ZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
aWJXZWJSVENQcm92aWRlcjo6c2V0QWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJU
Q1Byb3ZpZGVyOjpjcmVhdGVEZWNvZGVyRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpMaWJX
ZWJSVENQcm92aWRlcjo6Y3JlYXRlRW5jb2RlckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDUHJvdmlkZXI6OmRpc2FibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2Vz
KToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjplbmFibGVFbnVtZXJhdGlu
Z0FsbE5ldHdvcmtJbnRlcmZhY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2VBc3luYyk6CisgICAgICAgICogdGVzdGluZy9Nb2Nr
R2FtZXBhZFByb3ZpZGVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb246On5Db25uZWN0
aW9uKToKKwogMjAxOC0wNi0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgTmVlZCB0byBwcm9wZXJseSBoYW5kbGUgcmVtb3ZhbCBvZiB3b3JrZXIgaW4gU1dT
ZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50IHRpbWVyIGxhbWJkYQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaAppbmRleCAxMzkyNzJjYTk0
MWJjYzBlYjgzZTM3NTk5YTQwNGRlNTI4MWYyMTJiLi4yYmRhODAwNDUzMzhmMGU4MzZmOGQxNGY1
YTBhMDJmMjliYTlhYzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5p
bWF0aW9uVGltZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9u
VGltZWxpbmUuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBzdGQ6Om9w
dGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbV9jdXJyZW50VGltZTsgfQog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q3VycmVudFRpbWUoU2Vjb25kcyk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIGRlc2NyaXB0aW9uKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIHBhdXNlKCkgeyB9OworICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgpIHsgfTsKIAog
ICAgIHZpcnR1YWwgdm9pZCB0aW1pbmdNb2RlbERpZENoYW5nZSgpIHsgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oCmluZGV4IDBjYjZjZTIxNzcxNDA4ZDM2
NWFkZTZjZTVhYTUzN2RiMWU3ZTI0OTQuLmUxZmNjMmI5YzI4NjA1NWZmNTI4YzYwOWRkMjkzOGVj
MjUzMjVmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJv
dmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgK
QEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBXRUJDT1JF
X0VYUE9SVCBDYWNoZVN0b3JhZ2VQcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPENhY2hlU3Rv
cmFnZVByb3ZpZGVyPiB7CitjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRlciA6IHB1YmxpYyBSZWZD
b3VudGVkPENhY2hlU3RvcmFnZVByb3ZpZGVyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxD
YWNoZVN0b3JhZ2VQcm92aWRlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNo
ZVN0b3JhZ2VQcm92aWRlcik7IH0KICAgICB2aXJ0dWFsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uPiBjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEKSB7IHJldHVy
biBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDFkOWRlYWFkYmVmYjYxYTMzYjI4
M2JlMDNiNjA3ZTFmOTg1YTY4YTguLmU3N2I5NzI5OGIyNmVjYmIyZjFmMGFhZTI1NjYzNTUzOWU5
NzU1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmgKQEAgLTkxLDggKzkxLDggQEAgcHVibGljOgogICAgIC8vIGFuZCBjYWxsIHNjcm9sbGluZ1Ry
ZWVOb2RlRGlkU2Nyb2xsKCkuCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNjcm9s
bFBvc2l0aW9uQ2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhTY3JvbGxpbmdOb2RlSUQsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIGluVXNlckludGVy
YWN0aW9uKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCByZXBvcnRTeW5jaHJv
bm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1vbm90b25pY1RpbWUsIFN5bmNocm9ub3VzU2Ny
b2xsaW5nUmVhc29ucykgeyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHJlcG9y
dEV4cG9zZWRVbmZpbGxlZEFyZWEoTW9ub3RvbmljVGltZSwgdW5zaWduZWQgLyogdW5maWxsZWRB
cmVhICovKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0U3luY2hyb25vdXNTY3JvbGxpbmdS
ZWFzb25zQ2hhbmdlZChNb25vdG9uaWNUaW1lLCBTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRFeHBvc2VkVW5maWxsZWRBcmVhKE1vbm90b25p
Y1RpbWUsIHVuc2lnbmVkIC8qIHVuZmlsbGVkQXJlYSAqLykgeyB9CiAKICAgICBGbG9hdFBvaW50
IG1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCmlu
ZGV4IGI4YjdjZWFkZWNjOGRkY2Y2NTMwYWYwMzZjOWIxMjBjYmQ5NTI2NWUuLjhkY2ZkMTExMDY2
MjBmYzk5NzY2ODUzMTlmZTgzYzg0Y2ZlYjAzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCkBA
IC01NSwxMiArNTUsMTIgQEAgcHVibGljOgogICAgIGJvb2wgYWN0aXZlQXVkaW9TZXNzaW9uUmVx
dWlyZWQoKSBjb25zdDsKICAgICBib29sIGNhblByb2R1Y2VBdWRpbygpIGNvbnN0OwogCi0gICAg
V0VCQ09SRV9FWFBPUlQgdmlydHVhbCBib29sIGhhc0FjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFN0cmlu
ZyBsYXN0VXBkYXRlZE5vd1BsYXlpbmdUaXRsZSgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGRvdWJsZSBsYXN0VXBkYXRlZE5vd1Bs
YXlpbmdEdXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIE5BTjsgfQotICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgZG91YmxlIGxhc3RVcGRhdGVkTm93UGxheWluZ0VsYXBzZWRUaW1lKCkgY29uc3Qg
eyByZXR1cm4gTkFOOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB1aW50NjRfdCBsYXN0
VXBkYXRlZE5vd1BsYXlpbmdJbmZvVW5pcXVlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgcmVnaXN0ZXJlZEFzTm93UGxheWlu
Z0FwcGxpY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aGFzQWN0aXZlTm93UGxheWluZ1Nlc3Npb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgU3RyaW5nIGxhc3RVcGRhdGVkTm93UGxheWluZ1RpdGxlKCkgY29uc3QgeyByZXR1
cm4gZW1wdHlTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgZG91YmxlIGxhc3RVcGRhdGVkTm93UGxh
eWluZ0R1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gTkFOOyB9CisgICAgdmlydHVhbCBkb3VibGUg
bGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUoKSBjb25zdCB7IHJldHVybiBOQU47IH0K
KyAgICB2aXJ0dWFsIHVpbnQ2NF90IGxhc3RVcGRhdGVkTm93UGxheWluZ0luZm9VbmlxdWVJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgYm9vbCByZWdpc3RlcmVk
QXNOb3dQbGF5aW5nQXBwbGljYXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
Ym9vbCB3aWxsSWdub3JlU3lzdGVtSW50ZXJydXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fd2ls
bElnbm9yZVN5c3RlbUludGVycnVwdGlvbnM7IH0KICAgICB2b2lkIHNldFdpbGxJZ25vcmVTeXN0
ZW1JbnRlcnJ1cHRpb25zKGJvb2wgaWdub3JlKSB7IG1fd2lsbElnbm9yZVN5c3RlbUludGVycnVw
dGlvbnMgPSBpZ25vcmU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9DQVJpbmdCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0NBUmluZ0J1ZmZlci5jcHAKaW5kZXggN2Q2YmJhNzZjNTMxOTgyNTE2ODQzZjFlOTllYjJl
MTRkYmMzMTViMC4uZWQ3YTdhNWJjMTQzMzYyZjk3YWY5Y2FkOTIxMTA4ZmIzMjFmZjg3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5j
cHAKQEAgLTQ0LDYgKzQ0LDExIEBAIENBUmluZ0J1ZmZlcjo6Q0FSaW5nQnVmZmVyKCkKIHsKIH0K
IAorQ0FSaW5nQnVmZmVyOjp+Q0FSaW5nQnVmZmVyKCkKK3sKKyAgICBkZWFsbG9jYXRlKCk7Cit9
CisKIENBUmluZ0J1ZmZlcjo6Q0FSaW5nQnVmZmVyKFVuaXF1ZVJlZjxDQVJpbmdCdWZmZXJTdG9y
YWdlPiYmIHN0b3JhZ2UpCiAgICAgOiBtX2J1ZmZlcnMoV1RGTW92ZShzdG9yYWdlKSkKICAgICAs
IG1fdGltZUJvdW5kc1F1ZXVlKGtHZW5lcmFsUmluZ1RpbWVCb3VuZHNRdWV1ZVNpemUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmgKaW5kZXgg
NDUwMjJkMzY0NTNhM2Q2NzE5YmY1YWIyNDRmZjNjZjM2MWQzZDNiMS4uYzhjYTdkYmMzOTM4NWNh
YWQ5ODIwYWIwMjlkNjhjNjg1Mzc4YTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL21hYy9DQVJpbmdCdWZmZXIuaApAQCAtNjEsMTAgKzYxLDcgQEAgY2xhc3MgQ0FS
aW5nQnVmZmVyIHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBDQVJpbmdCdWZmZXIoKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBDQVJpbmdCdWZmZXIoVW5pcXVlUmVmPENBUmluZ0J1ZmZlclN0
b3JhZ2U+JiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIH5DQVJpbmdCdWZmZXIoKQotICAgIHsKLSAg
ICAgICAgZGVhbGxvY2F0ZSgpOwotICAgIH0KKyAgICBXRUJDT1JFX0VYUE9SVCB+Q0FSaW5nQnVm
ZmVyKCk7CiAKICAgICBlbnVtIEVycm9yIHsKICAgICAgICAgT2ssCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQuaAppbmRleCA4MWY4NGY1MDFkZmRlODc0MjQ1YmVjYzQzMGRhMjFlOGU0MWZi
NjM5Li4zNmIxODU3MWUyZDY4Y2Q1ZWIxOWVjNzRjZTI5NzFhNzc1YjUwMjM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVv
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1vZGVsVmlkZW9FbGVtZW50LmgKQEAgLTY5LDggKzY5LDggQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0VmlkZW9MYXllckdyYXZpdHkoVmlkZW9HcmF2aXR5KSBvdmVy
cmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChIVE1M
TWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOwogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgaXNWaXNpYmxlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgRmxvYXRTaXplIHZpZGVvRGltZW5zaW9ucygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fdmlkZW9EaW1lbnNpb25zOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNWaWRl
bygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faGFzVmlkZW87IH0KKyAgICBGbG9hdFNpemUg
dmlkZW9EaW1lbnNpb25zKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV92aWRlb0RpbWVuc2lv
bnM7IH0KKyAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9oYXNW
aWRlbzsgfQogCiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dhbWVwYWQvR2FtZXBhZFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
YW1lcGFkL0dhbWVwYWRQcm92aWRlci5oCmluZGV4IGMzYjkzOWZkODgxODYzM2I1ZWRkNTNmY2Ey
ZWEwMTNkMjBjMmI2NGMuLjcwMmRhYzQ5YTI3ZjhlOWIyMzU3MmNiM2Y5YTUyZmJmMzhhZDZkNzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvR2FtZXBhZFByb3Zp
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlk
ZXIuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHYW1lcGFk
UHJvdmlkZXJDbGllbnQ7CiBjbGFzcyBQbGF0Zm9ybUdhbWVwYWQ7CiAKLWNsYXNzIFdFQkNPUkVf
RVhQT1JUIEdhbWVwYWRQcm92aWRlciB7CitjbGFzcyBHYW1lcGFkUHJvdmlkZXIgewogcHVibGlj
OgogICAgIHZpcnR1YWwgfkdhbWVwYWRQcm92aWRlcigpID0gZGVmYXVsdDsKIApAQCAtNDgsNyAr
NDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTW9ja0dhbWVwYWRQcm92aWRlcigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIGRpc3BhdGNo
UGxhdGZvcm1HYW1lcGFkSW5wdXRBY3Rpdml0eSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZGlzcGF0Y2hQbGF0Zm9ybUdhbWVwYWRJbnB1dEFjdGl2aXR5KCk7CiAgICAgdm9pZCBzZXRTaG91
bGRNYWtlR2FtZXBhZHNWaXNpYmlsZSgpIHsgbV9zaG91bGRNYWtlR2FtZXBhZHNWaXNpYmxlID0g
dHJ1ZTsgfQogICAgIEhhc2hTZXQ8R2FtZXBhZFByb3ZpZGVyQ2xpZW50Kj4gbV9jbGllbnRzOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgK
aW5kZXggMTBlZGExNWZjM2Y0OGZjYWJmMTIzZGYxNjdjZjk5MDg2MjZjYmI0Yi4uNjdiNjM5MzIx
Mjk5N2ZmM2VlOGUzMzRjZTIwOWNiM2U1ZTdlM2ViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNTQyLDExICs1NDIsMTEgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBsYXllclRyZWVBc1RleHQoTGF5ZXJU
cmVlQXNUZXh0QmVoYXZpb3IgPSBMYXllclRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCkgY29uc3Q7
CiAKICAgICAvLyBGb3IgdGVzdGluZy4KLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFN0cmlu
ZyBkaXNwbGF5TGlzdEFzVGV4dChEaXNwbGF5TGlzdDo6QXNUZXh0RmxhZ3MpIGNvbnN0IHsgcmV0
dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBTdHJpbmcgZGlzcGxheUxpc3RBc1RleHQoRGlz
cGxheUxpc3Q6OkFzVGV4dEZsYWdzKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogCi0gICAg
V0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldElzVHJhY2tpbmdEaXNwbGF5TGlzdFJlcGxh
eShib29sIGlzVHJhY2tpbmcpIHsgbV9pc1RyYWNraW5nRGlzcGxheUxpc3RSZXBsYXkgPSBpc1Ry
YWNraW5nOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBib29sIGlzVHJhY2tpbmdEaXNw
bGF5TGlzdFJlcGxheSgpIGNvbnN0IHsgcmV0dXJuIG1faXNUcmFja2luZ0Rpc3BsYXlMaXN0UmVw
bGF5OyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBTdHJpbmcgcmVwbGF5RGlzcGxheUxp
c3RBc1RleHQoRGlzcGxheUxpc3Q6OkFzVGV4dEZsYWdzKSBjb25zdCB7IHJldHVybiBTdHJpbmco
KTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRJc1RyYWNraW5nRGlzcGxheUxpc3RSZXBsYXkoYm9v
bCBpc1RyYWNraW5nKSB7IG1faXNUcmFja2luZ0Rpc3BsYXlMaXN0UmVwbGF5ID0gaXNUcmFja2lu
ZzsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1RyYWNraW5nRGlzcGxheUxpc3RSZXBsYXkoKSBjb25z
dCB7IHJldHVybiBtX2lzVHJhY2tpbmdEaXNwbGF5TGlzdFJlcGxheTsgfQorICAgIHZpcnR1YWwg
U3RyaW5nIHJlcGxheURpc3BsYXlMaXN0QXNUZXh0KERpc3BsYXlMaXN0OjpBc1RleHRGbGFncykg
Y29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KIAogICAgIC8vIFJldHVybiBhbiBlc3RpbWF0ZSBv
ZiB0aGUgYmFja2luZyBzdG9yZSBtZW1vcnkgY29zdCAoaW4gYnl0ZXMpLiBNYXkgYmUgaW5jb3Jy
ZWN0IGZvciB0aWxlZCBsYXllcnMuCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBkb3VibGUg
YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMuaAppbmRl
eCA1YjgxMmRhNmQ2YTJhY2QwYmI2NWNmYWQ0OTYxMDk4ZWFjNDZiZTJiLi45YWE5NTVmYzQ0ZmE0
Yzg0YjllNGEwZjY2YTk0M2FhNWI4NGIyOWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oCkBAIC00Nywz
MCArNDcsMzAgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
TWFjIGZpbmFsCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxQbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VNYWM+IGNyZWF0ZShQbGF5YmFja1Nlc3Npb25Nb2RlbCYpOwogICAgIHZpcnR1YWwgflBsYXli
YWNrU2Vzc2lvbkludGVyZmFjZU1hYygpOwotICAgIFBsYXliYWNrU2Vzc2lvbk1vZGVsKiBwbGF5
YmFja1Nlc3Npb25Nb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWJhY2tTZXNzaW9uTW9kZWw7
IH0KKyAgICBQbGF5YmFja1Nlc3Npb25Nb2RlbCogcGxheWJhY2tTZXNzaW9uTW9kZWwoKSBjb25z
dDsKIAogICAgIC8vIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZQotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcmVzZXRNZWRpYVN0YXRlKCkgZmluYWwgeyB9CisgICAgdm9pZCByZXNldE1lZGlhU3Rh
dGUoKSBmaW5hbDsKIAogICAgIC8vIFBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkdXJhdGlvbkNoYW5nZWQoZG91YmxlKSBmaW5hbDsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGN1cnJlbnRUaW1lQ2hhbmdlZChkb3VibGUgLypjdXJyZW50VGltZSov
LCBkb3VibGUgLyphbmNob3JUaW1lKi8pIGZpbmFsOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmF0ZUNoYW5nZWQoYm9vbCAvKmlzUGxheWluZyovLCBmbG9hdCAvKnBsYXliYWNrUmF0ZSovKSBm
aW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlZWthYmxlUmFuZ2VzQ2hhbmdlZChjb25z
dCBUaW1lUmFuZ2VzJiwgZG91YmxlIC8qbGFzdE1vZGlmaWVkVGltZSovLCBkb3VibGUgLypsaXZl
VXBkYXRlSW50ZXJ2YWwqLykgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhdWRpb01l
ZGlhU2VsZWN0aW9uT3B0aW9uc0NoYW5nZWQoY29uc3QgVmVjdG9yPE1lZGlhU2VsZWN0aW9uT3B0
aW9uPiYgLypvcHRpb25zKi8sIHVpbnQ2NF90IC8qc2VsZWN0ZWRJbmRleCovKSBmaW5hbDsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnNDaGFuZ2Vk
KGNvbnN0IFZlY3RvcjxNZWRpYVNlbGVjdGlvbk9wdGlvbj4mIC8qb3B0aW9ucyovLCB1aW50NjRf
dCAvKnNlbGVjdGVkSW5kZXgqLykgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhdWRp
b01lZGlhU2VsZWN0aW9uSW5kZXhDaGFuZ2VkKHVpbnQ2NF90KSBmaW5hbDsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGxlZ2libGVNZWRpYVNlbGVjdGlvbkluZGV4Q2hhbmdlZCh1aW50NjRfdCkg
ZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBleHRlcm5hbFBsYXliYWNrQ2hhbmdlZChi
b29sIC8qIGVuYWJsZWQgKi8sIFBsYXliYWNrU2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNr
VGFyZ2V0VHlwZSwgY29uc3QgU3RyaW5nJiAvKiBsb2NhbGl6ZWREZXZpY2VOYW1lICovKSBmaW5h
bDsKKyAgICB2b2lkIGR1cmF0aW9uQ2hhbmdlZChkb3VibGUpIGZpbmFsOworICAgIHZvaWQgY3Vy
cmVudFRpbWVDaGFuZ2VkKGRvdWJsZSAvKmN1cnJlbnRUaW1lKi8sIGRvdWJsZSAvKmFuY2hvclRp
bWUqLykgZmluYWw7CisgICAgdm9pZCByYXRlQ2hhbmdlZChib29sIC8qaXNQbGF5aW5nKi8sIGZs
b2F0IC8qcGxheWJhY2tSYXRlKi8pIGZpbmFsOworICAgIHZvaWQgc2Vla2FibGVSYW5nZXNDaGFu
Z2VkKGNvbnN0IFRpbWVSYW5nZXMmLCBkb3VibGUgLypsYXN0TW9kaWZpZWRUaW1lKi8sIGRvdWJs
ZSAvKmxpdmVVcGRhdGVJbnRlcnZhbCovKSBmaW5hbDsKKyAgICB2b2lkIGF1ZGlvTWVkaWFTZWxl
Y3Rpb25PcHRpb25zQ2hhbmdlZChjb25zdCBWZWN0b3I8TWVkaWFTZWxlY3Rpb25PcHRpb24+JiAv
Km9wdGlvbnMqLywgdWludDY0X3QgLypzZWxlY3RlZEluZGV4Ki8pIGZpbmFsOworICAgIHZvaWQg
bGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uc0NoYW5nZWQoY29uc3QgVmVjdG9yPE1lZGlhU2Vs
ZWN0aW9uT3B0aW9uPiYgLypvcHRpb25zKi8sIHVpbnQ2NF90IC8qc2VsZWN0ZWRJbmRleCovKSBm
aW5hbDsKKyAgICB2b2lkIGF1ZGlvTWVkaWFTZWxlY3Rpb25JbmRleENoYW5nZWQodWludDY0X3Qp
IGZpbmFsOworICAgIHZvaWQgbGVnaWJsZU1lZGlhU2VsZWN0aW9uSW5kZXhDaGFuZ2VkKHVpbnQ2
NF90KSBmaW5hbDsKKyAgICB2b2lkIGV4dGVybmFsUGxheWJhY2tDaGFuZ2VkKGJvb2wgLyogZW5h
YmxlZCAqLywgUGxheWJhY2tTZXNzaW9uTW9kZWw6OkV4dGVybmFsUGxheWJhY2tUYXJnZXRUeXBl
LCBjb25zdCBTdHJpbmcmIC8qIGxvY2FsaXplZERldmljZU5hbWUgKi8pIGZpbmFsOwogCi0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBpbnZhbGlkYXRlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBlbnN1cmVDb250cm9sc01hbmFnZXIoKTsKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICB2
b2lkIGVuc3VyZUNvbnRyb2xzTWFuYWdlcigpOwogI2lmIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09O
VFJPTFNfTUFOQUdFUikKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBsYXlCYWNrQ29udHJv
bHNNYW5hZ2VyKFdlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyICopOwotICAgIFdFQkNPUkVfRVhQ
T1JUIFdlYlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyICpwbGF5QmFja0NvbnRyb2xzTWFuYWdlcigp
OworICAgIHZvaWQgc2V0UGxheUJhY2tDb250cm9sc01hbmFnZXIoV2ViUGxheWJhY2tDb250cm9s
c01hbmFnZXIgKik7CisgICAgV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIgKnBsYXlCYWNrQ29u
dHJvbHNNYW5hZ2VyKCk7CiAjZW5kaWYKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGJlZ2luU2Ny
dWJiaW5nKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbmRTY3J1YmJpbmcoKTsKKyAgICB2
b2lkIGJlZ2luU2NydWJiaW5nKCk7CisgICAgdm9pZCBlbmRTY3J1YmJpbmcoKTsKIAogcHJpdmF0
ZToKICAgICBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMoUGxheWJhY2tTZXNzaW9uTW9kZWwm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxheWJhY2tT
ZXNzaW9uSW50ZXJmYWNlTWFjLm1tCmluZGV4IGI0MzIxOWQxNzMwZDUxMDI1ZDUzNGIxMGQzMjUy
OWZjZDUwNmRiZGQuLjYwMmVkZGJhNTFmY2UxMTM5M2RiY2U0NDVmYmI4NjA4NjY0OGM5NjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vz
c2lvbkludGVyZmFjZU1hYy5tbQpAQCAtNjEsNiArNjEsMTUgQEAgUGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlTWFjOjp+UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjKCkKICAgICBpbnZhbGlkYXRl
KCk7CiB9CiAKK1BsYXliYWNrU2Vzc2lvbk1vZGVsKiBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VN
YWM6OnBsYXliYWNrU2Vzc2lvbk1vZGVsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wbGF5YmFj
a1Nlc3Npb25Nb2RlbDsKK30KKwordm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6OnJl
c2V0TWVkaWFTdGF0ZSgpCit7Cit9CisKIHZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFj
OjpkdXJhdGlvbkNoYW5nZWQoZG91YmxlIGR1cmF0aW9uKQogewogI2lmIEVOQUJMRShXRUJfUExB
WUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAppbmRl
eCAwYzcyNWY5ODA5ZDZiZTk3MzkzY2NiMzNkZmY3ZDgxOTE2NTk4ZjlkLi40MDNlN2QxOTU1ZGQ2
MWNkZTI4NGViZTE4ZjNjOGM3NTgxMWZhMjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5oCkBAIC03MSw4ICs3MSw4IEBAIHB1YmxpYzoKICAgICAKICAgICBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKCkgeyBy
ZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50czsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIHNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1
cmVGYWN0b3J5JikgeyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHVuc2V0QXVk
aW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkmKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1
ZGlvQ2FwdHVyZUZhY3RvcnkmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdW5zZXRBdWRpb0ZhY3Rv
cnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYpIHsgfQogICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFj
dG9yeSYgYXVkaW9GYWN0b3J5KCkgPSAwOwogCiAgICAgdmlydHVhbCBSZWFsdGltZU1lZGlhU291
cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5JiB2aWRlb0ZhY3RvcnkoKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCAwZTQ4ZGRkMjRmYTJmYjRhZjBlZmRlYWE3
YThjOWFiYTAzZDY0M2I5Li5mMjM2M2JhMGNlNGQyODJhMjczYjk3Yzk5NDUwZTg4YjQ0YTZmOTE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTUxLDYgKzUxLDEw
IEBAIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0
ZSgpCiB9CiAjZW5kaWYKIAordm9pZCBMaWJXZWJSVENQcm92aWRlcjo6c2V0QWN0aXZlKGJvb2wp
Cit7Cit9CisKICNpZiBVU0UoTElCV0VCUlRDKQogc3RhdGljIGlubGluZSBydGM6OlNvY2tldEFk
ZHJlc3MgcHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRy
ZXNzLCBib29sIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykKIHsKQEAgLTE5NSwxMSAr
MTk5LDMxIEBAIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFjdG9y
eUludGVyZmFjZT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyCiAgICAgcmV0dXJuIHdlYnJ0Yzo6Q3Jl
YXRlUGVlckNvbm5lY3Rpb25GYWN0b3J5KG5ldHdvcmtUaHJlYWQsIG5ldHdvcmtUaHJlYWQsIHNp
Z25hbGluZ1RocmVhZCwgYXVkaW9Nb2R1bGUsIHdlYnJ0Yzo6Q3JlYXRlQnVpbHRpbkF1ZGlvRW5j
b2RlckZhY3RvcnkoKSwgd2VicnRjOjpDcmVhdGVCdWlsdGluQXVkaW9EZWNvZGVyRmFjdG9yeSgp
LCBjcmVhdGVFbmNvZGVyRmFjdG9yeSgpLCBjcmVhdGVEZWNvZGVyRmFjdG9yeSgpLCBudWxscHRy
LCBudWxscHRyKTsKIH0KIAorc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFj
dG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZURlY29kZXJGYWN0b3J5KCkKK3sKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVy
RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZUVuY29kZXJGYWN0b3J5KCkKK3sKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKwogdm9pZCBMaWJXZWJSVENQcm92aWRlcjo6c2V0UGVlckNv
bm5lY3Rpb25GYWN0b3J5KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9u
RmFjdG9yeUludGVyZmFjZT4mJiBmYWN0b3J5KQogewogICAgIG1fZmFjdG9yeSA9IHdlYnJ0Yzo6
UGVlckNvbm5lY3Rpb25GYWN0b3J5UHJveHk6OkNyZWF0ZShnZXRTdGF0aWNGYWN0b3J5QW5kVGhy
ZWFkcyhtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0U2VydmVyKS5zaWduYWxpbmdUaHJlYWQu
Z2V0KCksIFdURk1vdmUoZmFjdG9yeSkpOwogfQogCit2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpk
aXNhYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpCit7CisgICAgbV9lbmFibGVF
bnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzID0gZmFsc2U7Cit9CisKK3ZvaWQgTGliV2Vi
UlRDUHJvdmlkZXI6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKQorewor
ICAgIG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyA9IHRydWU7Cit9CisK
IHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBMaWJX
ZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlv
bk9ic2VydmVyJiBvYnNlcnZlciwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRD
Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgLy8gRGVmYXVsdCBXSzEgaW1w
bGVtZW50YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4IDlkMmQx
M2E3OTUzODBmMzIyYTg3ZjliYmJlZGYxNTBmMjdiNGJjZjkuLjBiNGI5YmQ1YjNhMDNiNTJjNjNi
YWNjNDNiYjU1ZTFhNTZmNzE2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5o
CkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIHdlYlJUQ0F2YWls
YWJsZSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sKSB7IH07CisgICAgdmly
dHVhbCB2b2lkIHNldEFjdGl2ZShib29sKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRIMjY0SGFy
ZHdhcmVFbmNvZGVyQWxsb3dlZChib29sKSB7IH0KIApAQCAtMTA0LDggKzEwNCw4IEBAIHB1Ymxp
YzoKICAgICAvLyBVc2VkIGZvciBtb2NrIHRlc3RpbmcKICAgICB2b2lkIHNldFBlZXJDb25uZWN0
aW9uRmFjdG9yeShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3Rv
cnlJbnRlcmZhY2U+JiYpOwogCi0gICAgdm9pZCBkaXNhYmxlRW51bWVyYXRpbmdBbGxOZXR3b3Jr
SW50ZXJmYWNlcygpIHsgbV9lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzID0g
ZmFsc2U7IH0KLSAgICB2b2lkIGVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMo
KSB7IG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyA9IHRydWU7IH0KKyAg
ICB2b2lkIGRpc2FibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCk7CisgICAgdm9p
ZCBlbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkgeyBtX2Rpc2FibGVOb25Mb2Nh
bGhvc3RDb25uZWN0aW9ucyA9IHRydWU7IH0KIApAQCAtMTE1LDggKzExNSw4IEBAIHByb3RlY3Rl
ZDoKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFj
ZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwg
cnRjOjpOZXR3b3JrTWFuYWdlciYsIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSYsIHdlYnJ0Yzo6
UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJik7CiAKICAgICBydGM6
OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2U+IGNy
ZWF0ZVBlZXJDb25uZWN0aW9uRmFjdG9yeShydGM6OlRocmVhZCogbmV0d29ya1RocmVhZCwgcnRj
OjpUaHJlYWQqIHNpZ25hbGluZ1RocmVhZCwgTGliV2ViUlRDQXVkaW9Nb2R1bGUqKTsKLSAgICB2
aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0
ZURlY29kZXJGYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIHZpcnR1YWwgc3RkOjp1
bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFjdG9yeT4gY3JlYXRlRW5jb2RlckZhY3Rv
cnkoKSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8d2Vi
cnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVEZWNvZGVyRmFjdG9yeSgpOworICAgIHZp
cnR1YWwgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFjdG9yeT4gY3JlYXRl
RW5jb2RlckZhY3RvcnkoKTsKIAogICAgIGJvb2wgbV9lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdv
cmtJbnRlcmZhY2VzIHsgZmFsc2UgfTsKICAgICAvLyBGSVhNRTogUmVtb3ZlIG1fdXNlTmV0d29y
a1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIgbWVtYmVyIHZhcmlhYmxlIGFuZCBtYWtlIGl0IGEgZ2xv
YmFsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUNsaWVudC5oCmluZGV4IDY3NmU3NGU1ZmFmM2ExZDRhODUzZjk5MmIxNjY2M2YzZTcy
NGUzNDAuLmQ2ZWRiNmQ2MThhZGMzYmNjZTIzZjAxZmI5N2ZmMTM5OTdhNmZhYzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xp
ZW50LmgKQEAgLTg0LDkgKzg0LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBVU0UoQ0ZVUkxD
T05ORUNUSU9OKQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCB3aWxsQ2FjaGVSZXNw
b25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiByZXNwb25z
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihyZXNwb25zZSk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoQ0ZDYWNoZWRV
UkxSZXNwb25zZVJlZik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIo
cmVzcG9uc2UpOyB9CiAjZWxpZiBQTEFURk9STShDT0NPQSkKLSAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIE5TQ2Fj
aGVkVVJMUmVzcG9uc2UgKnJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TQ2FjaGVk
VVJMUmVzcG9uc2UgKik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIo
cmVzcG9uc2UpOyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVz
b3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlICpyZXNwb25zZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChOU0NhY2hlZFVSTFJlc3BvbnNlICopPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
IGNvbXBsZXRpb25IYW5kbGVyKHJlc3BvbnNlKTsgfQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSB7IHJldHVybiBm
YWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrR2FtZXBhZFBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tHYW1lcGFkUHJvdmlkZXIuaApp
bmRleCA0ZTc5MGEyYWE4MjIxMWE4NWUxOTYxMzUxMWM1Mzk4MDExNGM3ZDVhLi40MDQxOWI5MjMz
ZmUzOTA3YTk4MjZiNzA1MTJlZDYxMWUxNTU4OGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01vY2tHYW1lcGFkUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tHYW1lcGFkUHJvdmlkZXIuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0TW9uaXRvcmluZ0dhbWVwYWRzKEdhbWVwYWRQcm92
aWRlckNsaWVudCYpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcE1vbml0b3Jp
bmdHYW1lcGFkcyhHYW1lcGFkUHJvdmlkZXJDbGllbnQmKSBmaW5hbDsKLSAgICBXRUJDT1JFX0VY
UE9SVCBjb25zdCBWZWN0b3I8UGxhdGZvcm1HYW1lcGFkKj4mIHBsYXRmb3JtR2FtZXBhZHMoKSBm
aW5hbCB7IHJldHVybiBtX2Nvbm5lY3RlZEdhbWVwYWRWZWN0b3I7IH0KKyAgICBjb25zdCBWZWN0
b3I8UGxhdGZvcm1HYW1lcGFkKj4mIHBsYXRmb3JtR2FtZXBhZHMoKSBmaW5hbCB7IHJldHVybiBt
X2Nvbm5lY3RlZEdhbWVwYWRWZWN0b3I7IH0KICAgICBib29sIGlzTW9ja0dhbWVwYWRQcm92aWRl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgc2V0TW9ja0dhbWVw
YWREZXRhaWxzKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmIGdhbWVwYWRJRCwgdW5zaWdu
ZWQgYXhpc0NvdW50LCB1bnNpZ25lZCBidXR0b25Db3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggYzkxMzA5NDIxNmIzNmY2
NWVhMGFkZWQ1MWRiYzcxODdlZTZjYWU0OS4uYmZjOTgyMjBiNTQ5MDJkYWEwZDQ2N2VkOGU1NGIw
NDYyODVjYjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogICAgICAgICBmcmllbmQgY2xhc3MgU1dTZXJ2ZXI7CiAgICAgcHVi
bGljOgotICAgICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5Db25uZWN0aW9uKCkgeyB9Cisg
ICAgICAgIHZpcnR1YWwgfkNvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CiAKICAgICAgICAgdXNpbmcg
SWRlbnRpZmllciA9IFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7CiAgICAgICAgIElkZW50
aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>