<?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>193261</bug_id>
          
          <creation_ts>2019-01-08 15:23:17 -0800</creation_ts>
          <short_desc>Create a WebResourceLoadStatisticsStore attached to the NetworkSession</short_desc>
          <delta_ts>2019-01-09 20:16:02 -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>WebKit2</component>
          <version>WebKit Nightly Build</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>193199</blocked>
    
    <blocked>193297</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1492779</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-08 15:23:17 -0800</bug_when>
    <thetext>Each NetworkSession should have a WebResourceLoadStatisticsStore that tracks loads for that session.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493083</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-09 14:18:42 -0800</bug_when>
    <thetext>&lt;rdar://problem/47158616&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493093</commentid>
    <comment_count>2</comment_count>
      <attachid>358738</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-09 14:30:09 -0800</bug_when>
    <thetext>Created attachment 358738
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493110</commentid>
    <comment_count>3</comment_count>
      <attachid>358746</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-09 14:51:21 -0800</bug_when>
    <thetext>Created attachment 358746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493152</commentid>
    <comment_count>4</comment_count>
      <attachid>358760</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-09 16:12:42 -0800</bug_when>
    <thetext>Created attachment 358760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493175</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-09 17:12:45 -0800</bug_when>
    <thetext>I&apos;ve got some test crashes. Fixing now and will upload a patch shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493178</commentid>
    <comment_count>6</comment_count>
      <attachid>358769</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-09 17:18:35 -0800</bug_when>
    <thetext>Created attachment 358769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493179</commentid>
    <comment_count>7</comment_count>
      <attachid>358760</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-09 17:19:41 -0800</bug_when>
    <thetext>Comment on attachment 358760
Patch

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

The object ownership model seems good.

&gt; Source/WebKit/ChangeLog:14
&gt; +        WebsiteData object.

WebsiteDataStore

&gt; Source/WebKit/ChangeLog:18
&gt; +        are called in addition the calls to the WebSiteData object. These redundant calls

WebsiteDataStore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493198</commentid>
    <comment_count>8</comment_count>
      <attachid>358769</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-09 18:57:15 -0800</bug_when>
    <thetext>Comment on attachment 358769
Patch

Interesting.  This makes it so it can exist in either process, with a future patch that will remove its ability to be in the UIProcess.  Cool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493205</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-09 19:28:57 -0800</bug_when>
    <thetext>Committed r239816: &lt;https://trac.webkit.org/changeset/239816&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1493207</commentid>
    <comment_count>10</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-01-09 20:16:02 -0800</bug_when>
    <thetext>Follow-up build fix landed:
Committed r239817: &lt;https://trac.webkit.org/changeset/239817&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358738</attachid>
            <date>2019-01-09 14:30:09 -0800</date>
            <delta_ts>2019-01-09 14:51:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193261-20190109143008.patch</filename>
            <type>text/plain</type>
            <size>41849</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg5MWE0ZjVmODk1ZWFkYmUx
MWZjM2U0NWQyNGYyMWYwYjUwMTQ1NjQuLjgzNDdiOWRhNWM2MzJkMGI2NWE0ZDE4M2U2NWZiZjdh
Njk3ODdkOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTktMDEtMDkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGEgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlIGF0dGFjaGVkIHRvIHRoZSBOZXR3b3JrU2Vzc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMjYxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzE1ODYxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vZGlmaWVzIE5ldHdvcmtTZXNzaW9u
IHNvIHRoYXQgaXQgb3ducyBhIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZQorICAgICAg
ICBvYmplY3QuIFRoaXMgb2JqZWN0IGlzIG9ubHkgY3JlYXRlZCBpZiB0aGUgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyBmZWF0dXJlIGlzIHR1cm5lZCBvbi4KKworICAgICAgICBUaGUgcGF0Y2ggYWxz
byBtb2RpZmllcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgc28gdGhhdCBpdCBjYW4g
YmUgY29uc3RydWN0ZWQKKyAgICAgICAgd2l0aCBhbiBvd25pbmcgTmV0d29ya1Nlc3Npb24gYXMg
YW4gYWx0ZXJuYXRpdmUgdG8gdGhlIGN1cnJlbnQgcHJhY3RpY2Ugb2YgdXNpbmcgYQorICAgICAg
ICBXZWJzaXRlRGF0YSBvYmplY3QuCisKKyAgICAgICAgVHdvIGluaXRpYWwgbWVzc2FnZXMgZnJv
bSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFyZSBhZGRlZCAobG9nRnJhbWVOYXZpZ2F0aW9uIGFu
ZAorICAgICAgICBsb2dVc2VyTmF2aWdhdGlvbikgdGhhdCBub3RpZnkgdGhlIG5ldHdvcmsgcHJv
Y2VzcyBvZiB0aGVzZSBhY3Rpb25zLiBDdXJyZW50bHkgdGhleQorICAgICAgICBhcmUgY2FsbGVk
IGluIGFkZGl0aW9uIHRoZSBjYWxscyB0byB0aGUgV2ViU2l0ZURhdGEgb2JqZWN0LiBUaGVzZSBy
ZWR1bmRhbnQgY2FsbHMKKyAgICAgICAgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHBhdGNo
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggZm9yY2VzIHRoZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
IGNvZGUgaW4gdGhlIE5ldHdvcmtTZXNzaW9uIHRvIGJlIG9mZiBieQorICAgICAgICBkZWZhdWx0
LCBzbyB0aGVyZSBzaG91bGQgYmUgbm8gY2hhbmdlIGluIGJlaGF2aW9yIHdpdGggdGhpcyBwYXRj
aC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOjp1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFz
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldENh
Y2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRDYWNoZU1heEFnZUNhcCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlUHJldmFsZW50
RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29r
aWVzRm9ySGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6cmVtb3ZlUHJldmFsZW50RG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbFJlbW92ZURvbWFpbnNIYW5kbGVyKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpsb2dGcmFtZU5hdmlnYXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb246OmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpwcml2YXRlU2Vzc2lvblBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNv
Y29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NQcm94eTo6ZGlkTG9nVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpsb2dGcmFtZU5hdmlnYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MpOgorCiAyMDE5LTAx
LTA5ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBBZGQgbWlzc2luZyBhdXRvY2xlYW51cHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKaW5kZXggMTljMzhlMWM0N2NlZDYwODI1
NzhlN2QxOTM4MTUxZmQ1MGY3NTRmZC4uOGQ2MmQ2OGMxYzQ5ZjQ5Zjc5MTYwZGZlYmI2YWZhNjkw
ODdmZWU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmUuaCIKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJO
ZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiUGx1Z2luUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BlcnNpc3RlbnRTdG9yYWdlLmgiCkBAIC0zNCw2ICszNSw3IEBACiAjaW5jbHVkZSAiV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRh
U3RvcmUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0tleWVkQ29kaW5nLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3MuaD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdhdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CkBAIC04NjIsNiArODY0LDggQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnVwZGF0ZUNsaWVudFNpZGVDb29raWVzQWdlQ2Fw
KCkKICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3N0b3JlID0gbWFrZVJlZihtX3N0b3Jl
KSwgc2Vjb25kcyA9IG1fcGFyYW1ldGVycy5jbGllbnRTaWRlQ29va2llc0FnZUNhcFRpbWVdICgp
IHsKICAgICAgICAgaWYgKGF1dG8qIHdlYnNpdGVEYXRhU3RvcmUgPSBzdG9yZS0+d2Vic2l0ZURh
dGFTdG9yZSgpKQogICAgICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS0+c2V0QWdlQ2FwRm9yQ2xp
ZW50U2lkZUNvb2tpZXMoc2Vjb25kcywgW10geyB9KTsKKyAgICAgICAgaWYgKGF1dG8qIG5ldHdv
cmtTZXNzaW9uID0gc3RvcmUtPm5ldHdvcmtTZXNzaW9uKCkpCisgICAgICAgICAgICBuZXR3b3Jr
U2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNv
b2tpZXMoc2Vjb25kcyk7CiAgICAgfSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggNDUxZTcxMDhkNzgxMGU0MWE1NjQ3
MzQwOGMyNTExZGZhMTBmYmJjMy4uZmNmYWQ5ODJlZWRhMDUzZWQ2YzRiZTY5MWRlZDlkNDY2NjU2
NTU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmgiCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1Nlc3Np
b24uaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCIKICNp
bmNsdWRlICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCIKICNpbmNs
dWRlICJXZWJGcmFtZVByb3h5LmgiCkBAIC0zNyw2ICszOCw3IEBACiAjaW5jbHVkZSAiV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhRmV0
Y2hPcHRpb24uaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3MuaD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdhdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmg+CkBAIC0xMjEsNiArMTIzLDIxIEBAIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlKFdlYnNpdGVEYXRhU3RvcmUmCiAgICAgbV9kYWlseVRhc2tzVGltZXIuc3RhcnRSZXBlYXRp
bmcoMjRfaCk7CiB9CiAKK1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwgY29u
c3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KQorICAgIDogbV9uZXR3
b3JrU2Vzc2lvbihtYWtlV2Vha1B0cihuZXR3b3JrU2Vzc2lvbikpCisgICAgLCBtX3N0YXRpc3Rp
Y3NRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
IFByb2Nlc3MgRGF0YSBRdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6
OlFPUzo6VXRpbGl0eSkpCisgICAgLCBtX2RhaWx5VGFza3NUaW1lcihSdW5Mb29wOjptYWluKCks
IHRoaXMsICZXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnBlcmZvcm1EYWlseVRhc2tz
KQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgCisgICAgcG9zdFRhc2so
W3RoaXMsIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5Lmlzb2xhdGVkQ29weSgpXSB7CisgICAgICAgIG1fbWVtb3J5U3RvcmUg
PSBzdGQ6Om1ha2VfdW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZT4oKnRo
aXMsIG1fc3RhdGlzdGljc1F1ZXVlKTsKKyAgICAgICAgbV9wZXJzaXN0ZW50U3RvcmFnZSA9IHN0
ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlPigq
bV9tZW1vcnlTdG9yZSwgbV9zdGF0aXN0aWNzUXVldWUsIHJlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkpOworICAgIH0pOworICAgIAorICAgIG1fZGFpbHlUYXNrc1RpbWVyLnN0YXJ0UmVw
ZWF0aW5nKDI0X2gpOworfQorCiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6On5XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CkBAIC0yMzYsNiArMjUzLDEzIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3RyCiAgICAg
fSk7CiB9CiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorYm9vbCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25z
dCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4s
IHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCkKK3sKKyAgICByZXR1cm4gbV9uZXR3
b3JrU2Vzc2lvbiA/IG1fbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmhh
c1N0b3JhZ2VBY2Nlc3MocmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQs
IHBhZ2VJRCkgOiBmYWxzZTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgU3Ry
aW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCBoYXNBY2Nlc3MpPiYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CkBAIC0yNDQsNiArMjY4LDkgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFMKICAgICBpZiAo
bV93ZWJzaXRlRGF0YVN0b3JlKSB7CiAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+aGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihyZXNvdXJjZURvbWFpbiwgZmlyc3RQYXJ0eURvbWFp
biwgZnJhbWVJRCwgcGFnZUlELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgICAgIHJldHVybjsK
KyAgICB9IGVsc2UgeworICAgICAgICBjYWxsYmFjayhoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
cmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCkpOworICAg
ICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAgICAgY2FsbGJhY2soZmFsc2UpOwpAQCAtMzA5
LDYgKzMzNiwyMSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRT
dG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgUwogICAgIH0pOwogfQogCisjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKK2Jvb2wgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3RyaW5nJiByZXNvdXJjZURv
bWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKQoreworICAgIGJvb2wgaXNTdG9yYWdlR3JhbnRlZCA9
IGZhbHNlOworCisgICAgaWYgKG1fbmV0d29ya1Nlc3Npb24pIHsKKyAgICAgICAgbV9uZXR3b3Jr
U2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuZ3JhbnRTdG9yYWdlQWNjZXNzKHJlc291
cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQpOworICAgICAgICBB
U1NFUlQobV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuaGFzU3RvcmFn
ZUFjY2VzcyhyZXNvdXJjZURvbWFpbiwgZmlyc3RQYXJ0eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlE
KSk7CisgICAgICAgIGlzU3RvcmFnZUdyYW50ZWQgPSB0cnVlOworICAgIH0KKworICAgIHJldHVy
biBpc1N0b3JhZ2VHcmFudGVkOworfQorI2VuZGlmCisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihjb25zdCBTdHJpbmcm
IHN1YkZyYW1lUHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZVByaW1hcnlEb21h
aW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKQEAgLTMxNyw2ICszNTksOSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6Y2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgU3RyaW5nJgog
ICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpIHsKICAgICAgICAgbV93ZWJzaXRlRGF0YVN0b3Jl
LT5ncmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKHN1YkZyYW1lUHJpbWFyeURvbWFpbiwgdG9wRnJh
bWVQcmltYXJ5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKICAg
ICAgICAgcmV0dXJuOworICAgIH0gZWxzZSB7CisgICAgICAgIGNhbGxiYWNrKGdyYW50U3RvcmFn
ZUFjY2VzcyhzdWJGcmFtZVByaW1hcnlEb21haW4sIHRvcEZyYW1lUHJpbWFyeURvbWFpbiwgZnJh
bWVJRCwgcGFnZUlEKSk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKICAgICBjYWxs
YmFjayhmYWxzZSk7CkBAIC0zMzMsMTggKzM3OCwyNiBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6ZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MoKQogICAgIH0pOwogfQogCisj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKK3ZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCkKK3sKKyAgICBpZiAobV9u
ZXR3b3JrU2Vzc2lvbikKKyAgICAgICAgbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKCkucmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpOworfQorI2VuZGlmCisKIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKLSAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3JlKQorICAgIGlmIChtX3dlYnNpdGVEYXRhU3Rv
cmUpIHsKICAgICAgICAgbV93ZWJzaXRlRGF0YVN0b3JlLT5yZW1vdmVBbGxTdG9yYWdlQWNjZXNz
SGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgZWxzZQotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwotI2Vsc2UKLSAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoKTsKICNlbmRp
ZgorICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjphcHBsaWNhdGlvbldpbGxUZXJtaW5hdGUoKQpAQCAtNDAyLDcgKzQ1NSwx
MiBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0
aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYQogICAgIGF1dG8gbWFpbkZyYW1lUHJpbWFyeURv
bWFpbiA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnByaW1hcnlEb21haW4ocGFnZVVSTCk7CiAg
ICAgYXV0byBzb3VyY2VQcmltYXJ5RG9tYWluID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJp
bWFyeURvbWFpbihzb3VyY2VVUkwpOwogCi0gICAgcG9zdFRhc2soW3RoaXMsIHRhcmdldFByaW1h
cnlEb21haW4gPSB0YXJnZXRQcmltYXJ5RG9tYWluLmlzb2xhdGVkQ29weSgpLCBtYWluRnJhbWVQ
cmltYXJ5RG9tYWluID0gbWFpbkZyYW1lUHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHkoKSwgc291
cmNlUHJpbWFyeURvbWFpbiA9IHNvdXJjZVByaW1hcnlEb21haW4uaXNvbGF0ZWRDb3B5KCksIHRh
cmdldEhvc3QgPSB0YXJnZXRIb3N0LnRvU3RyaW5nKCkuaXNvbGF0ZWRDb3B5KCksIG1haW5GcmFt
ZUhvc3QgPSBtYWluRnJhbWVIb3N0LnRvU3RyaW5nKCkuaXNvbGF0ZWRDb3B5KCksIGlzUmVkaXJl
Y3QsIGlzTWFpbkZyYW1lID0gZnJhbWUuaXNNYWluRnJhbWUoKV0geworICAgIGxvZ0ZyYW1lTmF2
aWdhdGlvbih0YXJnZXRQcmltYXJ5RG9tYWluLCBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBzb3Vy
Y2VQcmltYXJ5RG9tYWluLCB0YXJnZXRIb3N0LnRvU3RyaW5nKCksIG1haW5GcmFtZUhvc3QudG9T
dHJpbmcoKSwgaXNSZWRpcmVjdCwgZnJhbWUuaXNNYWluRnJhbWUoKSk7Cit9CisKK3ZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgU3Ry
aW5nJiB0YXJnZXRQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIG1haW5GcmFtZVByaW1hcnlE
b21haW4sIGNvbnN0IFN0cmluZyYgc291cmNlUHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiB0
YXJnZXRIb3N0LCBjb25zdCBTdHJpbmcmIG1haW5GcmFtZUhvc3QsIGJvb2wgaXNSZWRpcmVjdCwg
Ym9vbCBpc01haW5GcmFtZSkKK3sKKyAgICBwb3N0VGFzayhbdGhpcywgdGFyZ2V0UHJpbWFyeURv
bWFpbiA9IHRhcmdldFByaW1hcnlEb21haW4uaXNvbGF0ZWRDb3B5KCksIG1haW5GcmFtZVByaW1h
cnlEb21haW4gPSBtYWluRnJhbWVQcmltYXJ5RG9tYWluLmlzb2xhdGVkQ29weSgpLCBzb3VyY2VQ
cmltYXJ5RG9tYWluID0gc291cmNlUHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHkoKSwgdGFyZ2V0
SG9zdCA9IHRhcmdldEhvc3QuaXNvbGF0ZWRDb3B5KCksIG1haW5GcmFtZUhvc3QgPSBtYWluRnJh
bWVIb3N0Lmlzb2xhdGVkQ29weSgpLCBpc1JlZGlyZWN0LCBpc01haW5GcmFtZV0gewogICAgICAg
ICAKICAgICAgICAgaWYgKG1fbWVtb3J5U3RvcmUpCiAgICAgICAgICAgICBtX21lbW9yeVN0b3Jl
LT5sb2dGcmFtZU5hdmlnYXRpb24odGFyZ2V0UHJpbWFyeURvbWFpbiwgbWFpbkZyYW1lUHJpbWFy
eURvbWFpbiwgc291cmNlUHJpbWFyeURvbWFpbiwgdGFyZ2V0SG9zdCwgbWFpbkZyYW1lSG9zdCwg
aXNSZWRpcmVjdCwgaXNNYWluRnJhbWUpOwpAQCAtNDE4LDcgKzQ3NiwxOCBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFVSTCYg
dXJsLCBDb21wbGV0aQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcG9zdFRhc2soW3Ro
aXMsIHByaW1hcnlEb21haW4gPSBpc29sYXRlZFByaW1hcnlEb21haW4odXJsKSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICBs
b2dVc2VySW50ZXJhY3Rpb24oaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVybCksIFt0aGlzLCBwcmlt
YXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVybCksIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICht
X21lbW9yeVN0b3JlKQorICAgICAgICAgICAgbV9tZW1vcnlTdG9yZS0+bG9nVXNlckludGVyYWN0
aW9uKHByaW1hcnlEb21haW4pOworICAgICAgICBwb3N0VGFza1JlcGx5KFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJpbmcmIHRhcmdldFByaW1hcnlE
b21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgcG9zdFRhc2soW3RoaXMsIHBy
aW1hcnlEb21haW4gPSB0YXJnZXRQcmltYXJ5RG9tYWluLmlzb2xhdGVkQ29weSgpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAg
ICAgICBpZiAobV9tZW1vcnlTdG9yZSkKICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmxvZ1Vz
ZXJJbnRlcmFjdGlvbihwcmltYXJ5RG9tYWluKTsKICAgICAgICAgcG9zdFRhc2tSZXBseShXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC04MjMsNiArODkyLDE0IEBAIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRHcmFuZGZhdGhlcmluZ1RpbWUoU2Vjb25kcyBz
ZWNvbmRzKQogICAgIH0pOwogfQogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRDYWNoZU1heEFnZUNh
cEZvclByZXZhbGVudFJlc291cmNlcyhTZWNvbmRzIHNlY29uZHMpCit7CisgICAgaWYgKG1fbmV0
d29ya1Nlc3Npb24pCisgICAgICAgIG1fbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vz
c2lvbigpLnNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKHNlY29uZHMpOwor
fQorI2VuZGlmCisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRDYWNo
ZU1heEFnZUNhcChTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAt
ODMzLDEwICs5MTAsMTkgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNl
dENhY2hlTWF4QWdlQ2FwKFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGkKICAgICAgICAgbV93ZWJz
aXRlRGF0YVN0b3JlLT5zZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhzZWNv
bmRzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CisgICAgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoc2Vjb25kcyk7CiAj
ZW5kaWYKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCisjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp1
cGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGRvbWFpbnNUb0Jsb2NrKQoreworICAgIGlmIChtX25ldHdvcmtTZXNzaW9uKQorICAgICAg
ICBtX25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zZXRQcmV2YWxlbnRE
b21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoZG9tYWluc1RvQmxvY2spOworfQorI2VuZGlmCisKIHZv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9t
YWluc1RvQmxvY2tDb29raWVzRm9ySGFuZGxlcihjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlu
c1RvQmxvY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtODQ2LDEwICs5MzIsMTkgQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxVcGRhdGVQcmV2YWxlbnRE
b21haW5zVG9CbG9ja0Nvb2tpZXNGb3IKICAgICAgICAgbV93ZWJzaXRlRGF0YVN0b3JlLT51cGRh
dGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoZG9tYWluc1RvQmxvY2ssIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICB1cGRh
dGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoZG9tYWluc1RvQmxvY2spOwogI2Vu
ZGlmCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVt
b3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlucykKK3sKKyAg
ICBpZiAobV9uZXR3b3JrU2Vzc2lvbikKKyAgICAgICAgbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29y
a1N0b3JhZ2VTZXNzaW9uKCkucmVtb3ZlUHJldmFsZW50RG9tYWlucyhkb21haW5zKTsKK30KKyNl
bmRpZgorCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbFJlbW92ZURv
bWFpbnNIYW5kbGVyKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zKQogewogICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CkBAIC04NTcsNiArOTUyLDcgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxSZW1vdmVEb21haW5zSGFuZGxlcihjb25zdCBWZWN0
b3I8U3RyaW4KICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmICht
X3dlYnNpdGVEYXRhU3RvcmUpCiAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+cmVtb3ZlUHJl
dmFsZW50RG9tYWlucyhkb21haW5zKTsKKyAgICByZW1vdmVQcmV2YWxlbnREb21haW5zKGRvbWFp
bnMpOwogI2VuZGlmCiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmgKaW5kZXggNTgxNzA0YTRlZjI5OWRjMDgzZDI3OWY1MzRjNzcyODFjZmE3NmI0
ZS4uMDAyMzZhMzk1NTNlYzIxY2QxODRjYzY3MjU1ODcwZmRhNTdlZmFkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtNDYsNiArNDYsNyBAQCBz
dHJ1Y3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2Ns
YXNzIE5ldHdvcmtTZXNzaW9uOwogY2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlOwogY2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlOwogY2xh
c3MgV2ViRnJhbWVQcm94eTsKQEAgLTY1LDYgKzY2LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKHdlYnNpdGVE
YXRhU3RvcmUpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUmVmPFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZT4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBuZXR3b3JrU2Vzc2lvbiwgY29uc3Qg
U3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKG5ldHdv
cmtTZXNzaW9uLCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KSk7CisgICAgfQorCiAg
ICAgfldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSgpOwogCiAgICAgc3RhdGljIGNvbnN0
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+JiBtb25pdG9yZWREYXRhVHlwZXMoKTsKQEAgLTgz
LDkgKzg5LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSgp
OwogCiAgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYsIGNv
bnN0IFVSTCYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
VVJMJiByZWRpcmVjdFVSTCk7CisgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgU3Ry
aW5nJiB0YXJnZXRQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIG1haW5GcmFtZVByaW1hcnlE
b21haW4sIGNvbnN0IFN0cmluZyYgc291cmNlUHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiB0
YXJnZXRIb3N0LCBjb25zdCBTdHJpbmcmIG1haW5GcmFtZUhvc3QsIGJvb2wgaXNSZWRpcmVjdCwg
Ym9vbCBpc01haW5GcmFtZSk7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVVJM
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGxvZ1VzZXJJbnRlcmFj
dGlvbihjb25zdCBTdHJpbmcmIHRhcmdldFByaW1hcnlEb21haW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBVUkwmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIGJvb2wgZ3JhbnRTdG9yYWdlQWNjZXNz
KGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURv
bWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCk7CiAgICAg
dm9pZCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CisgICAgYm9vbCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3Qg
U3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4o
Y29uc3QgVVJMJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgVVJMJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTk4LDYgKzEwOCw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNsZWFyUHJldmFsZW50UmVzb3VyY2UoY29uc3QgVVJMJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEdyYW5kZmF0aGVyZWQoY29uc3QgVVJMJiwg
Ym9vbCk7CiAgICAgdm9pZCBpc0dyYW5kZmF0aGVyZWQoY29uc3QgVVJMJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCk7
CisgICAgdm9pZCByZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBk
b21haW5zVG9CbG9jayk7CisgICAgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJl
c291cmNlcyhTZWNvbmRzKTsKICAgICB2b2lkIHNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bihjb25zdCBVUkwmIHN1YmZyYW1lLCBjb25zdCBVUkwmIHRvcEZyYW1lKTsKICAgICB2b2lkIHNl
dFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbihjb25zdCBVUkwmIHN1YnJlc291cmNlLCBj
b25zdCBVUkwmIHRvcEZyYW1lKTsKICAgICB2b2lkIHNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RUbyhjb25zdCBVUkwmIHN1YnJlc291cmNlLCBjb25zdCBVUkwmIGhvc3ROYW1lUmVkaXJlY3Rl
ZFRvKTsKQEAgLTEwOSw2ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFy
QmxvY2tpbmdTdGF0ZUZvckRvbWFpbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZVN0YXRpc3RpY3NB
bmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoKTsKICAgICB2b2lkIHN1Ym1pdFRlbGVtZXRyeSgpOwor
ICAgIHZvaWQgdXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBkb21haW5zVG9CbG9jayk7CiAKICAgICBlbnVtIGNsYXNzIFNob3VsZEdy
YW5kZmF0aGVyIHsKICAgICAgICAgTm8sCkBAIC0xNDAsOSArMTU0LDExIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAKICAgICBXZWJzaXRlRGF0YVN0b3Jl
KiB3ZWJzaXRlRGF0YVN0b3JlKCkgeyByZXR1cm4gbV93ZWJzaXRlRGF0YVN0b3JlLmdldCgpOyB9
CisgICAgTmV0d29ya1Nlc3Npb24qIG5ldHdvcmtTZXNzaW9uKCkgeyByZXR1cm4gbV9uZXR3b3Jr
U2Vzc2lvbi5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZShXZWJzaXRlRGF0YVN0b3JlJik7CisgICAgZXhwbGljaXQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiwgY29uc3QgU3RyaW5nJik7
CiAKICAgICB2b2lkIHBvc3RUYXNrKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICBzdGF0
aWMgdm9pZCBwb3N0VGFza1JlcGx5KFdURjo6RnVuY3Rpb248dm9pZCgpPiYmKTsKQEAgLTE2MSw2
ICsxNzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmx1c2hBbmREZXN0cm95UGVyc2lzdGVudFN0
b3JlKCk7CiAKICAgICBXZWFrUHRyPFdlYnNpdGVEYXRhU3RvcmU+IG1fd2Vic2l0ZURhdGFTdG9y
ZTsKKyAgICBXZWFrUHRyPE5ldHdvcmtTZXNzaW9uPiBtX25ldHdvcmtTZXNzaW9uOwogICAgIFJl
ZjxXb3JrUXVldWU+IG1fc3RhdGlzdGljc1F1ZXVlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU+IG1fbWVtb3J5U3RvcmU7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZT4gbV9wZXJz
aXN0ZW50U3RvcmFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKaW5kZXggMTZmOWY3ZDBiMTdjMzJjZGVmODk1ZjMwOWEwNjUxOGUzY2U3MzYy
Zi4uNGUzMTQ4MGI0MThmYTRkNzJhOWVmMDFmZTRjNjg4NDNlNGFmM2NmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTU0LDYgKzU0
LDcgQEAKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViU1dP
cmlnaW5TdG9yZS5oIgogI2luY2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIgpAQCAtMzAxLDYgKzMwMiw4IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmCiAgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVz
dGluZ05ldHdvcmtTZXNzaW9uKQogICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRj
aFRvTmV3VGVzdGluZ1Nlc3Npb24oKTsKIAorICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseShwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlKTsKKwogICAgIGF1dG8gc2Vzc2lvbklEID0gcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0
b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2Vzc2lvbklEOwogICAgIFNl
c3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0d29ya1Nlc3Npb246OmNyZWF0
ZSgqdGhpcywgV1RGTW92ZShwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycykpKTsKIApAQCAtNTIzLDYgKzUyNiwyNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpncmFudFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBTdHJpbmcmCiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6U3RvcmFnZUFjY2Vzc1JlcXVlc3RSZXN1bHQoaXNT
dG9yYWdlR3JhbnRlZCwgY29udGV4dElkKSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6
OmxvZ0ZyYW1lTmF2aWdhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVQcmltYXJ5RG9t
YWluLCBjb25zdCBTdHJpbmcmIHNvdXJjZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFy
Z2V0SG9zdCwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVIb3N0LCBib29sIGlzUmVkaXJlY3QsIGJv
b2wgaXNNYWluRnJhbWUpCit7CisgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gU2Vzc2lv
blRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKKyAgICAgICAgaWYgKGF1dG8q
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3Rh
dGlzdGljcygpKQorICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nRnJhbWVO
YXZpZ2F0aW9uKHRhcmdldFByaW1hcnlEb21haW4sIG1haW5GcmFtZVByaW1hcnlEb21haW4sIHNv
dXJjZVByaW1hcnlEb21haW4sIHRhcmdldEhvc3QsIG1haW5GcmFtZUhvc3QsIGlzUmVkaXJlY3Qs
IGlzTWFpbkZyYW1lKTsKKyAgICB9IGVsc2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgdWludDY0
X3QgY29udGV4dElkKQoreworICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IFNlc3Npb25U
cmFja2VyOjpuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgICAgIGlmIChhdXRvKiBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRp
c3RpY3MoKSkgeworICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nVXNlcklu
dGVyYWN0aW9uKHRhcmdldFByaW1hcnlEb21haW4sIFt0aGlzLCBjb250ZXh0SWRdIHsKKyAgICAg
ICAgICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpEaWRMb2dVc2VySW50ZXJhY3Rpb24oY29udGV4dElkKSwgMCk7Cisg
ICAgICAgICAgICB9KTsgICAgICAgIAorICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZW1vdmVBbGxT
dG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgY29udGV4dElk
KQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggY2VjODhlZTU0NDFiOGY1ZDU1Nzc0
MzE1OTMyY2JiNDlmNTkxY2ZiMy4uMzNlNzVkYWMxZWQ3MTJiYjQ3YzcwNWVkMjE0ZDU1MWI2NGM2
NzdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aApAQCAtMTU3LDYgKzE1Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3NG
b3JGcmFtZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29u
c3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBw
YWdlSUQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdlQWNjZXNz
RW50cmllcyhQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGdy
YW50U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZURv
bWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQg
bG9nRnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHRhcmdldFBy
aW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIHRhcmdldEhvc3QsIGNv
bnN0IFN0cmluZyYgbWFpbkZyYW1lSG9zdCwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZy
YW1lKTsKKyAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3Qg
U3RyaW5nJiB0YXJnZXRQcmltYXJ5RG9tYWluLCB1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZv
aWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgY29udGV4
dElkKTsKICAgICB2b2lkIHJlbW92ZVByZXZhbGVudERvbWFpbnMoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zKTsKICAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2Fw
Rm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCB1aW50NjRfdCBj
b250ZXh0SWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOGQ4NzIyNGJmMzExZTc3ZTU1YTIxMDg3M2E0
YTdhNTQzZDFlMWYwMi4uOGJhMTY3NWRjODhlNjRiNjU5YWNjOWY0MTNlODZhNWMxYzM2ZTdkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluCkBAIC05MCw2ICs5MCw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9j
ZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgcmVzb3VyY2VEb21haW4sIFN0cmluZyBmaXJzdFBh
cnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNv
bnRleHRJZCkKICAgICBHZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBHcmFudFN0b3JhZ2VBY2Nlc3MoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgcmVzb3VyY2VEb21haW4sIFN0cmluZyBmaXJz
dFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBjb250ZXh0SWQpCisgICAgTG9nRnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgU3RyaW5nIHRhcmdldFByaW1hcnlEb21haW4sIFN0cmluZyBtYWluRnJh
bWVQcmltYXJ5RG9tYWluLCBTdHJpbmcgc291cmNlUHJpbWFyeURvbWFpbiwgU3RyaW5nIHRhcmdl
dEhvc3QsIFN0cmluZyBtYWluRnJhbWVIb3N0LCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWlu
RnJhbWUpCisgICAgTG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
U3RyaW5nIHRhcmdldFByaW1hcnlEb21haW4sIHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBSZW1v
dmVBbGxTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgY29u
dGV4dElkKQogICAgIFJlbW92ZVByZXZhbGVudERvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBWZWN0b3I8U3RyaW5nPiBkb21haW5zV2l0aEludGVyYWN0aW9uKQogICAgIFNldENhY2hl
TWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
U2Vjb25kcyBzZWNvbmRzLCB1aW50NjRfdCBjb250ZXh0SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDViYTVjMWNjZTRlNjE4MmE0
Y2QyZWNkZTAwOTUwNjZhZjU0OWRiZWYuLjgyMDU0NmQ4NWFiZmFkNDNhOWQ2OTAzMzhjYmE0OTE5
YjE0NWMzODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb24uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJO
ZXR3b3JrU2Vzc2lvbi5oIgogCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KIAogI2lm
IFBMQVRGT1JNKENPQ09BKQpAQCAtNzcsNCArNzgsMTIgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6
aW52YWxpZGF0ZUFuZENhbmNlbCgpCiAgICAgICAgIHRhc2stPmludmFsaWRhdGVBbmRDYW5jZWwo
KTsKIH0KIAordm9pZCBOZXR3b3JrU2Vzc2lvbjo6ZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cygpCit7CisgICAgaWYgKG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcykKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpjcmVhdGUoKnRoaXMsIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGMwNDg3ZGEyZWQxYjllY2RmZTQ3MWY5MzE5
ZjUyMTljMjliOTJlNmEuLjQyOTJkYjc1N2E5MzgxYjg1YTRiOTVjZTMyNTY1OWE3ZmEzOWM3YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAg
LTMwLDYgKzMwLDggQEAKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjsKQEAgLTM5LDkgKzQxLDEwIEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrRGF0YVRhc2s7CiBjbGFzcyBOZXR3b3JrUHJv
Y2VzczsKK2NsYXNzIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIHN0cnVjdCBOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczsKIAotY2xhc3MgTmV0d29ya1Nlc3Npb24gOiBw
dWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrU2Vzc2lvbj4geworY2xhc3MgTmV0d29ya1Nlc3Npb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrU2Vzc2lvbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxOZXR3b3JrU2Vzc2lvbj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TmV0d29ya1Nlc3Np
b24+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0
ZXJzJiYpOwogICAgIHZpcnR1YWwgfk5ldHdvcmtTZXNzaW9uKCk7CkBAIC01OCwxMiArNjEsMTcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJOZXR3b3JrRGF0YVRhc2soTmV0d29ya0RhdGFU
YXNrJiB0YXNrKSB7IG1fZGF0YVRhc2tTZXQuYWRkKCZ0YXNrKTsgfQogICAgIHZvaWQgdW5yZWdp
c3Rlck5ldHdvcmtEYXRhVGFzayhOZXR3b3JrRGF0YVRhc2smIHRhc2spIHsgbV9kYXRhVGFza1Nl
dC5yZW1vdmUoJnRhc2spOyB9CiAKKyAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUq
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MuZ2V0KCk7IH0KKyAgICB2b2lkIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
KTsKKyAgICAKIHByb3RlY3RlZDoKICAgICBOZXR3b3JrU2Vzc2lvbihOZXR3b3JrUHJvY2VzcyYs
IFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAg
IFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsKICAgICBIYXNoU2V0PE5ldHdv
cmtEYXRhVGFzayo+IG1fZGF0YVRhc2tTZXQ7CisgICAgU3RyaW5nIG1fcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeTsKKyAgICBSZWZQdHI8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlPiBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3M7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNWQ2NDU0YzM3NTQ2Njg4
OTEyZDMzMDIzZjFmZDlhZmM4MjM2OGQwZS4uMjcwYWU0MzIwNTk4OTY2NTg5ZTk3YTZhMTZiMzc1
NDhjYmRhN2ZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTQ3LDYg
KzQ3LDcgQEAgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnM6OnByaXZhdGVTZXNzaW8KICNpZiBVU0UoQ1VSTCkKICAgICAgICAg
LCB7IH0sIHsgfQogI2VuZGlmCisgICAgICAgICwgeyB9LCB7IH0sIGZhbHNlCiAgICAgfTsKIH0K
IApAQCAtNjgsNiArNjksOSBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgY29v
a2llUGVyc2lzdGVudFN0b3JhZ2VGaWxlOwogICAgIGVuY29kZXIgPDwgcHJveHlTZXR0aW5nczsK
ICNlbmRpZgorICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsK
KyAgICBlbmNvZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGU7CisgICAgZW5jb2RlciA8PCBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwogfQog
CiBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC0x
MzMsNyArMTM3LDIyIEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
PiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjCiAgICAgaWYgKCFwcm94eVNl
dHRpbmdzKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogI2VuZGlmCi0gICAgCisKKyAg
ICBPcHRpb25hbDxTdHJpbmc+IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CisgICAg
ZGVjb2RlciA+PiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OworICAgIGlmICghcmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IHJlc291
cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFyZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gZW5hYmxlUmVzb3VyY2VMb2Fk
U3RhdGlzdGljczsKKyAgICBkZWNvZGVyID4+IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3M7
CisgICAgaWYgKCFlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCiAgICAgcmV0dXJuIHt7CiAgICAgICAgIHNlc3Npb25JRAogICAgICAg
ICAsIFdURk1vdmUoKmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcikKQEAgLTE1MSw2ICsxNzAsOSBA
QCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgICAgICAsIFdURk1vdmUoKmNvb2tpZVBlcnNp
c3RlbnRTdG9yYWdlRmlsZSkKICAgICAgICAgLCBXVEZNb3ZlKCpwcm94eVNldHRpbmdzKQogI2Vu
ZGlmCisgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkK
KyAgICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlKQorICAgICAgICAsIFdURk1vdmUoKmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MpCiAgICAgfX07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAwOWFm
MzMzMjMxM2NlYjcxOGI0ZmYwNGQzMDE2MzMxOTExYzk0MzcwLi42ZjlkZThiODAxMzhkNDE4Njlk
NzFjYmYwNmRiOTIxY2I5NDMxNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25k
cy5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTY5LDYgKzcwLDkgQEAgc3RydWN0IE5ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBTdHJpbmcgY29va2llUGVyc2lzdGVu
dFN0b3JhZ2VGaWxlOwogICAgIFdlYkNvcmU6OkN1cmxQcm94eVNldHRpbmdzIHByb3h5U2V0dGlu
Z3M7CiAjZW5kaWYKKyAgICBTdHJpbmcgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsK
KyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBib29sIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW0KaW5kZXggMzY1NTRkMzQzMTk2MjM4OGM0MDIxM2MxMGJhMDk5OTJkODdmMzc3YS4uMmQ5YmVl
MzJiMTc3OGUwYjVhZDNjZThiNmIwN2Y5MDJkMTAzMzcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpA
QCAtOTMyLDYgKzkzMiwxMCBAQCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3b3JrU2Vzc2lvbkNv
Y29hKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgTmV0d29yawogCiAgICAgbV9zdGF0
ZWxlc3NTZXNzaW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRl
IGFsbG9jXSBpbml0V2l0aE5ldHdvcmtTZXNzaW9uOip0aGlzIHdpdGhDcmVkZW50aWFsczpmYWxz
ZV0pOwogICAgIG1fc3RhdGVsZXNzU2Vzc2lvbiA9IFtOU1VSTFNlc3Npb24gc2Vzc2lvbldpdGhD
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24gZGVsZWdhdGU6c3RhdGljX2Nhc3Q8aWQ+KG1fc3Rh
dGVsZXNzU2Vzc2lvbkRlbGVnYXRlLmdldCgpKSBkZWxlZ2F0ZVF1ZXVlOltOU09wZXJhdGlvblF1
ZXVlIG1haW5RdWV1ZV1dOworCisgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
ID0gcGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OworICAgIGlmIChw
YXJhbWV0ZXJzLmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpCisgICAgICAgIGVuYWJsZVJl
c291cmNlTG9hZFN0YXRpc3RpY3MoKTsKIH0KIAogTmV0d29ya1Nlc3Npb25Db2NvYTo6fk5ldHdv
cmtTZXNzaW9uQ29jb2EoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNGE3OTFmMzVjMzBmYWNlNDc0ZDQ1
OWYxZjIyMjI1Zjg2ZDk1OTVkYS4uZjc0ZWRmOGU2Nzk4OGNlZTY5MWRjYmRlZDNmYWVmZTIwOTNk
MDM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC00MTksNiArNDE5LDEzIEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6ZGlkVXBkYXRlQmxvY2tDb29raWVzKHVpbnQ2NF90IGNhbGxiYWNrSWQpCiAg
ICAgbV91cGRhdGVCbG9ja0Nvb2tpZXNDYWxsYmFja01hcC50YWtlKGNhbGxiYWNrSWQpKCk7CiB9
CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkTG9nVXNlckludGVyYWN0aW9uKHVpbnQ2
NF90IGNvbnRleHRJZCkKK3sKKyAgICAvLyBGSVhNRSgxOTMyOTcpOiBJbXBsZW1lbnQgd2hlbiBh
Y3RpdmF0aW5nIGF1dG9tYXRlZCB0ZXN0IGNhc2VzLgorICAgIFVOVVNFRF9QQVJBTShjb250ZXh0
SWQpOworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25hbDxTZWNvbmRzPiBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCmluZGV4IDRmZTVjZTdhNDU2ZWRiNWI0MzJjMDE4ZjM3N2IzOTI0M2NmYTU0N2UuLmUzNDhh
ODViOTU0ZGUyOGZhNTExYzM4ZjEyZGE1MDZjODg4MTk3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xNDIs
NiArMTQyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJl
c3VsdCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpOwog
ICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFnZUlELCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGRvdWJsZSB2
YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUp
OwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgdm9pZCBkaWRMb2dV
c2VySW50ZXJhY3Rpb24odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZFVwZGF0ZUJs
b2NrQ29va2llcyh1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkU2V0QWdlQ2FwRm9y
Q2xpZW50U2lkZUNvb2tpZXModWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIHN0b3JhZ2VB
Y2Nlc3NSZXF1ZXN0UmVzdWx0KGJvb2wgd2FzR3JhbnRlZCwgdWludDY0X3QgY29udGV4dElkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiNTY0MWY5NjkwNTA4MjBkNTVlZjg3
ZDhiZTA1ODk5MWM5Yzc2M2NjLi4yYWFlM2ViNGE4NzJhZmI1MDcxMzdhMzEzY2Y3OGNhYTY4YWMx
YzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC00MCw2ICs0MCw3IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIExvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2Us
IFN0cmluZyBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVlLCB1bnNpZ25lZCBzaWduaWZpY2FudEZp
Z3VyZXMsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogCiAj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBEaWRMb2dVc2VySW50ZXJh
Y3Rpb24odWludDY0X3QgY2FsbGJhY2tJZCkKICAgICBEaWRVcGRhdGVCbG9ja0Nvb2tpZXModWlu
dDY0X3QgY2FsbGJhY2tJZCkKICAgICBEaWRTZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyh1
aW50NjRfdCBjYWxsYmFja0lkKQogICAgIFN0b3JhZ2VBY2Nlc3NSZXF1ZXN0UmVzdWx0KGJvb2wg
d2FzR3JhbnRlZCwgdWludDY0X3QgY29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggYTI5OGUzZmY0NGYxYjg2NGVjODNlYTVjYWI2MGMxY2FiYmJi
NmMyNy4uZDVlNjk1ZWI4ZWJiM2FiMTE4NjQ4OTNiYTBkZTk1ZDY4NDM4OWNjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC00NDU3LDYgKzQ0NTcsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJGcmFt
ZVByb3h5JiBmcmFtZSwgV2ViQ29yZQogCiAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSA9IHdlYnNpdGVEYXRhU3RvcmUoKS5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkp
CiAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS0+bG9nRnJhbWVOYXZpZ2F0aW9u
KGZyYW1lLCBVUkwoVVJMKCksIG1fcGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVlc3QsIHJlZGly
ZWN0UmVzcG9uc2UudXJsKCkpOworICAgIGxvZ0ZyYW1lTmF2aWdhdGlvbihmcmFtZSwgVVJMKFVS
TCgpLCBtX3BhZ2VMb2FkU3RhdGUudXJsKCkpLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLnVy
bCgpKTsKIAogICAgIGlmIChtX3BvbGljeUNsaWVudCkKICAgICAgICAgbV9wb2xpY3lDbGllbnQt
PmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oKnRoaXMsICZmcmFtZSwgV1RGTW92ZShu
YXZpZ2F0aW9uQWN0aW9uRGF0YSksIG9yaWdpbmF0aW5nRnJhbWUsIG9yaWdpbmFsUmVxdWVzdCwg
V1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShsaXN0ZW5lciksIG1fcHJvY2Vzcy0+dHJhbnNmb3Jt
SGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwpAQCAtNDQ3OSw2ICs0
NDgwLDM2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFdlYkZyYW1lUHJveHkmIGZyYW1lLCBXZWJDb3JlCiAgICAgbV9zaG91bGRTdXBwcmVzc0Fw
cExpbmtzSW5OZXh0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uID0gZmFsc2U7CiB9CiAKK3ZvaWQg
V2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJh
bWUsIGNvbnN0IFVSTCYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKQoreworICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CisgICAgCisgICAgYXV0byBzb3VyY2VVUkwgPSByZWRpcmVjdFVSTDsKKyAgICBi
b29sIGlzUmVkaXJlY3QgPSAhcmVkaXJlY3RVUkwuaXNOdWxsKCk7CisgICAgaWYgKCFpc1JlZGly
ZWN0KSB7CisgICAgICAgIHNvdXJjZVVSTCA9IGZyYW1lLnVybCgpOworICAgICAgICBpZiAoc291
cmNlVVJMLmlzTnVsbCgpKQorICAgICAgICAgICAgc291cmNlVVJMID0gcGFnZVVSTDsKKyAgICB9
CisgICAgCisgICAgYXV0byYgdGFyZ2V0VVJMID0gcmVxdWVzdC51cmwoKTsKKyAgICAKKyAgICBp
ZiAoIXRhcmdldFVSTC5pc1ZhbGlkKCkgfHwgIXBhZ2VVUkwuaXNWYWxpZCgpKQorICAgICAgICBy
ZXR1cm47CisgICAgCisgICAgYXV0byB0YXJnZXRIb3N0ID0gdGFyZ2V0VVJMLmhvc3QoKTsKKyAg
ICBhdXRvIG1haW5GcmFtZUhvc3QgPSBwYWdlVVJMLmhvc3QoKTsKKyAgICAKKyAgICBpZiAodGFy
Z2V0SG9zdC5pc0VtcHR5KCkgfHwgbWFpbkZyYW1lSG9zdC5pc0VtcHR5KCkgfHwgdGFyZ2V0SG9z
dCA9PSBzb3VyY2VVUkwuaG9zdCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgYXV0byB0
YXJnZXRQcmltYXJ5RG9tYWluID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFp
bih0YXJnZXRVUkwpOworICAgIGF1dG8gbWFpbkZyYW1lUHJpbWFyeURvbWFpbiA9IFJlc291cmNl
TG9hZFN0YXRpc3RpY3M6OnByaW1hcnlEb21haW4ocGFnZVVSTCk7CisgICAgYXV0byBzb3VyY2VQ
cmltYXJ5RG9tYWluID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbihzb3Vy
Y2VVUkwpOworCisgICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnNlbmRUb05ldHdvcmtpbmdQ
cm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6TG9nRnJhbWVOYXZpZ2F0aW9uKG1fd2Vi
c2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHRhcmdldFByaW1hcnlEb21haW4sIG1haW5GcmFt
ZVByaW1hcnlEb21haW4sIHNvdXJjZVByaW1hcnlEb21haW4sIHRhcmdldEhvc3QudG9TdHJpbmco
KSwgbWFpbkZyYW1lSG9zdC50b1N0cmluZygpLCBpc1JlZGlyZWN0LCBmcmFtZS5pc01haW5GcmFt
ZSgpKSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1l
SW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0
Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIGF1
dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShXVEZNb3ZlKHJlcGx5KSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDQ1NmM4YTI5ZWMzODY3
NTY2OGRkNWNjYjIxZTQ1NTM4Zjk3Nzk5ZGYuLmMwZTViMWZlZTdlMzQwOGI0MGMxMzg4NTYzZWY4
NjVmNzEyYTUzNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0x
OTA3LDYgKzE5MDcsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldE5lZWRzRm9udEF0dHJpYnV0
ZXMoYm9vbCk7CiAgICAgdm9pZCB1cGRhdGVGb250QXR0cmlidXRlc0FmdGVyRWRpdG9yU3RhdGVD
aGFuZ2UoKTsKIAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgdm9p
ZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYsIGNvbnN0IFVSTCYgcGFn
ZVVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgVVJMJiByZWRpcmVj
dFVSTCk7CisjZW5kaWYKKwogICAgIFdlYWtQdHI8UGFnZUNsaWVudD4gbV9wYWdlQ2xpZW50Owog
ICAgIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiBtX2NvbmZpZ3VyYXRpb247CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAyNTc4ZDNjYjQwYWNh
YzhlOWMyOTNkNjdhMTBiNzU3MzA2YjQ2OTgzLi4zZjE0MDZlNGM2OGM5ZGM0YjA0ZTI5MzMxNmJl
NzhlZjlhODBhZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCkBAIC01NDgsNiArNTQ4LDE1IEBAIE5ldHdvcmtQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQ
b29sOjplbnN1cmVOZXR3b3JrUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoCiAgICAgcGFy
YW1ldGVycy5zaG91bGREaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5
ID0gbV9zaG91bGREaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5Owog
I2VuZGlmCiAKKyAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3JlKQorICAgICAgICBwYXJhbWV0ZXJz
LmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRl
RGF0YVN0b3JlKCkucmVzb2x2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7Cisg
ICAgaWYgKHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Np
b25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNFbXB0eSgpKQor
ICAgICAgICBwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNz
aW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gQVBJOjpXZWJz
aXRlRGF0YVN0b3JlOjpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpOwor
CisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5
KHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIHBhcmFtZXRlcnMuZGVmYXVs
dERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCisgICAgcGFyYW1ldGVycy5k
ZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuZW5hYmxl
UmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IGZhbHNlOyAvLyBGSVhNRSgxOTMyOTcpOiBUdXJuIG9u
IHdoZW4gdGhlIGZlYXR1cmUgaXMgb24uCisKICAgICAvLyBBZGQgYW55IHBsYXRmb3JtIHNwZWNp
ZmljIHBhcmFtZXRlcnMKICAgICBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhwYXJh
bWV0ZXJzKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358746</attachid>
            <date>2019-01-09 14:51:21 -0800</date>
            <delta_ts>2019-01-09 16:12:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193261-20190109145120.patch</filename>
            <type>text/plain</type>
            <size>44077</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg5MWE0ZjVmODk1ZWFkYmUx
MWZjM2U0NWQyNGYyMWYwYjUwMTQ1NjQuLjE3MjQ3MTA5Yzg5MjU2ZGM4ODIwNGNkODkwZDU0MDhl
MmFhOTMxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMTktMDEtMDkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGEgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlIGF0dGFjaGVkIHRvIHRoZSBOZXR3b3JrU2Vzc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMjYxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzE1ODYxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vZGlmaWVzIE5ldHdvcmtTZXNzaW9u
IHNvIHRoYXQgaXQgb3ducyBhIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZQorICAgICAg
ICBvYmplY3QuIFRoaXMgb2JqZWN0IGlzIG9ubHkgY3JlYXRlZCBpZiB0aGUgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyBmZWF0dXJlIGlzIHR1cm5lZCBvbi4KKworICAgICAgICBUaGUgcGF0Y2ggYWxz
byBtb2RpZmllcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgc28gdGhhdCBpdCBjYW4g
YmUgY29uc3RydWN0ZWQKKyAgICAgICAgd2l0aCBhbiBvd25pbmcgTmV0d29ya1Nlc3Npb24gYXMg
YW4gYWx0ZXJuYXRpdmUgdG8gdGhlIGN1cnJlbnQgcHJhY3RpY2Ugb2YgdXNpbmcgYQorICAgICAg
ICBXZWJzaXRlRGF0YSBvYmplY3QuCisKKyAgICAgICAgVHdvIGluaXRpYWwgbWVzc2FnZXMgZnJv
bSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFyZSBhZGRlZCAobG9nRnJhbWVOYXZpZ2F0aW9uIGFu
ZAorICAgICAgICBsb2dVc2VyTmF2aWdhdGlvbikgdGhhdCBub3RpZnkgdGhlIG5ldHdvcmsgcHJv
Y2VzcyBvZiB0aGVzZSBhY3Rpb25zLiBDdXJyZW50bHkgdGhleQorICAgICAgICBhcmUgY2FsbGVk
IGluIGFkZGl0aW9uIHRoZSBjYWxscyB0byB0aGUgV2ViU2l0ZURhdGEgb2JqZWN0LiBUaGVzZSBy
ZWR1bmRhbnQgY2FsbHMKKyAgICAgICAgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHBhdGNo
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggZm9yY2VzIHRoZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
IGNvZGUgaW4gdGhlIE5ldHdvcmtTZXNzaW9uIHRvIGJlIG9mZiBieQorICAgICAgICBkZWZhdWx0
LCBzbyB0aGVyZSBzaG91bGQgYmUgbm8gY2hhbmdlIGluIGJlaGF2aW9yIHdpdGggdGhpcyBwYXRj
aC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOjp1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFz
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldENh
Y2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRDYWNoZU1heEFnZUNhcCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlUHJldmFsZW50
RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29r
aWVzRm9ySGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6cmVtb3ZlUHJldmFsZW50RG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbFJlbW92ZURvbWFpbnNIYW5kbGVyKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpsb2dGcmFtZU5hdmlnYXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb246OmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpwcml2YXRlU2Vzc2lvblBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNv
Y29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NQcm94eTo6ZGlkTG9nVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAgICAgICAoV2Vi
c2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9nRnJh
bWVOYXZpZ2F0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKToKKwogMjAxOS0wMS0wOSAgTWlj
aGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
QWRkIG1pc3NpbmcgYXV0b2NsZWFudXBzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IDE5YzM4ZTFjNDdjZWQ2MDgyNTc4ZTdkMTkz
ODE1MWZkNTBmNzU0ZmQuLjhkNjJkNjhjMWM0OWY0OWY3OTE2MGRmZWJiNmFmYTY5MDg3ZmVlNWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUu
Y3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlLmgiCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIlBs
dWdpblByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJz
aXN0ZW50U3RvcmFnZS5oIgpAQCAtMzQsNiArMzUsNyBAQAogI2luY2x1ZGUgIldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9LZXllZENvZGluZy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogI2luY2x1ZGUg
PHd0Zi9EYXRlTWF0aC5oPgpAQCAtODYyLDYgKzg2NCw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOjp1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCgpCiAgICAg
UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtzdG9yZSA9IG1ha2VSZWYobV9zdG9yZSksIHNlY29u
ZHMgPSBtX3BhcmFtZXRlcnMuY2xpZW50U2lkZUNvb2tpZXNBZ2VDYXBUaW1lXSAoKSB7CiAgICAg
ICAgIGlmIChhdXRvKiB3ZWJzaXRlRGF0YVN0b3JlID0gc3RvcmUtPndlYnNpdGVEYXRhU3RvcmUo
KSkKICAgICAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUtPnNldEFnZUNhcEZvckNsaWVudFNpZGVD
b29raWVzKHNlY29uZHMsIFtdIHsgfSk7CisgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lv
biA9IHN0b3JlLT5uZXR3b3JrU2Vzc2lvbigpKQorICAgICAgICAgICAgbmV0d29ya1Nlc3Npb24t
Pm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKHNl
Y29uZHMpOwogICAgIH0pOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDQ1MWU3MTA4ZDc4MTBlNDFhNTY0NzM0MDhjMjUx
MWRmYTEwZmJiYzMuLmZjZmFkOTgyZWVkYTA1M2VkNmM0YmU2OTFkZWQ5ZDQ2NjY1NjU1NDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
IgogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmgiCiAjaW5jbHVkZSAiV2Vi
RnJhbWVQcm94eS5oIgpAQCAtMzcsNiArMzgsNyBAQAogI2luY2x1ZGUgIldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NUZWxlbWV0cnkuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YUZldGNoT3B0aW9u
LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogI2luY2x1ZGUg
PHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgpAQCAtMTIxLDYgKzEyMywyMSBAQCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShXZWJz
aXRlRGF0YVN0b3JlJgogICAgIG1fZGFpbHlUYXNrc1RpbWVyLnN0YXJ0UmVwZWF0aW5nKDI0X2gp
OwogfQogCitXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0IFN0cmlu
ZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKKyAgICA6IG1fbmV0d29ya1Nlc3Np
b24obWFrZVdlYWtQdHIobmV0d29ya1Nlc3Npb24pKQorICAgICwgbV9zdGF0aXN0aWNzUXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBQcm9jZXNz
IERhdGEgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlV0
aWxpdHkpKQorICAgICwgbV9kYWlseVRhc2tzVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAm
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpwZXJmb3JtRGFpbHlUYXNrcykKK3sKKyAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIAorICAgIHBvc3RUYXNrKFt0aGlzLCBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeS5pc29sYXRlZENvcHkoKV0geworICAgICAgICBtX21lbW9yeVN0b3JlID0gc3RkOjpt
YWtlX3VuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU+KCp0aGlzLCBtX3N0
YXRpc3RpY3NRdWV1ZSk7CisgICAgICAgIG1fcGVyc2lzdGVudFN0b3JhZ2UgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZT4oKm1fbWVtb3J5
U3RvcmUsIG1fc3RhdGlzdGljc1F1ZXVlLCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
KTsKKyAgICB9KTsKKyAgICAKKyAgICBtX2RhaWx5VGFza3NUaW1lci5zdGFydFJlcGVhdGluZygy
NF9oKTsKK30KKwogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp+V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpA
QCAtMjM2LDYgKzI1MywxMyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
aGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cgogICAgIH0pOwogfQog
CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKK2Jvb2wgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3RyaW5n
JiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpCit7CisgICAgcmV0dXJuIG1fbmV0d29ya1Nlc3Np
b24gPyBtX25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5oYXNTdG9yYWdl
QWNjZXNzKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQp
IDogZmFsc2U7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFN0cmluZyYgcmVz
b3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNj
ZXNzKT4mJiBjYWxsYmFjaykKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAt
MjQ0LDYgKzI2OCw5IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxs
SGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBTCiAgICAgaWYgKG1fd2Vic2l0
ZURhdGFTdG9yZSkgewogICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPmhhc1N0b3JhZ2VBY2Nl
c3NGb3JGcmFtZUhhbmRsZXIocmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1l
SUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgICAgICByZXR1cm47CisgICAgfSBl
bHNlIHsKKyAgICAgICAgY2FsbGJhY2soaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKHJlc291cmNl
RG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQpKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIH0KICNlbmRpZgogICAgIGNhbGxiYWNrKGZhbHNlKTsKQEAgLTMwOSw2ICszMzYs
MjEgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFj
Y2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFMKICAgICB9KTsKIH0KIAorI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCitib29sIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IHVpbnQ2NF90IHBhZ2VJRCkKK3sKKyAgICBib29sIGlzU3RvcmFnZUdyYW50ZWQgPSBmYWxzZTsK
KworICAgIGlmIChtX25ldHdvcmtTZXNzaW9uKSB7CisgICAgICAgIG1fbmV0d29ya1Nlc3Npb24t
Pm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmdyYW50U3RvcmFnZUFjY2VzcyhyZXNvdXJjZURvbWFp
biwgZmlyc3RQYXJ0eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlEKTsKKyAgICAgICAgQVNTRVJUKG1f
bmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmhhc1N0b3JhZ2VBY2Nlc3Mo
cmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCkpOworICAg
ICAgICBpc1N0b3JhZ2VHcmFudGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gaXNTdG9y
YWdlR3JhbnRlZDsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgU3RyaW5nJiBzdWJGcmFt
ZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVQcmltYXJ5RG9tYWluLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CkBAIC0zMTcsNiArMzU5LDkgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN0cmluZyYKICAgICBpZiAo
bV93ZWJzaXRlRGF0YVN0b3JlKSB7CiAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+Z3JhbnRT
dG9yYWdlQWNjZXNzSGFuZGxlcihzdWJGcmFtZVByaW1hcnlEb21haW4sIHRvcEZyYW1lUHJpbWFy
eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9IGVsc2UgeworICAgICAgICBjYWxsYmFjayhncmFudFN0b3JhZ2VBY2Nlc3Mo
c3ViRnJhbWVQcmltYXJ5RG9tYWluLCB0b3BGcmFtZVByaW1hcnlEb21haW4sIGZyYW1lSUQsIHBh
Z2VJRCkpOworICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAgICAgY2FsbGJhY2soZmFs
c2UpOwpAQCAtMzMzLDE4ICszNzgsMjYgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCkKICAgICB9KTsKIH0KIAorI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpCit7CisgICAgaWYgKG1fbmV0d29ya1Nl
c3Npb24pCisgICAgICAgIG1fbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigp
LnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAg
aWYgKG1fd2Vic2l0ZURhdGFTdG9yZSkKKyAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3JlKSB7CiAg
ICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIo
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIGVsc2UKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKLSNlbHNlCi0gICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCk7CiAjZW5kaWYKKyAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwogfQogCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6YXBwbGljYXRpb25XaWxsVGVybWluYXRlKCkKQEAgLTQwMiw3ICs0NTUsMTIgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25z
dCBXZWJGcmFtZVByb3h5JiBmcmEKICAgICBhdXRvIG1haW5GcmFtZVByaW1hcnlEb21haW4gPSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5RG9tYWluKHBhZ2VVUkwpOwogICAgIGF1dG8g
c291cmNlUHJpbWFyeURvbWFpbiA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnByaW1hcnlEb21h
aW4oc291cmNlVVJMKTsKIAotICAgIHBvc3RUYXNrKFt0aGlzLCB0YXJnZXRQcmltYXJ5RG9tYWlu
ID0gdGFyZ2V0UHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHkoKSwgbWFpbkZyYW1lUHJpbWFyeURv
bWFpbiA9IG1haW5GcmFtZVByaW1hcnlEb21haW4uaXNvbGF0ZWRDb3B5KCksIHNvdXJjZVByaW1h
cnlEb21haW4gPSBzb3VyY2VQcmltYXJ5RG9tYWluLmlzb2xhdGVkQ29weSgpLCB0YXJnZXRIb3N0
ID0gdGFyZ2V0SG9zdC50b1N0cmluZygpLmlzb2xhdGVkQ29weSgpLCBtYWluRnJhbWVIb3N0ID0g
bWFpbkZyYW1lSG9zdC50b1N0cmluZygpLmlzb2xhdGVkQ29weSgpLCBpc1JlZGlyZWN0LCBpc01h
aW5GcmFtZSA9IGZyYW1lLmlzTWFpbkZyYW1lKCldIHsKKyAgICBsb2dGcmFtZU5hdmlnYXRpb24o
dGFyZ2V0UHJpbWFyeURvbWFpbiwgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwgc291cmNlUHJpbWFy
eURvbWFpbiwgdGFyZ2V0SG9zdC50b1N0cmluZygpLCBtYWluRnJhbWVIb3N0LnRvU3RyaW5nKCks
IGlzUmVkaXJlY3QsIGZyYW1lLmlzTWFpbkZyYW1lKCkpOworfQorCit2b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFN0cmluZyYgdGFy
Z2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0SG9z
dCwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVIb3N0LCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNN
YWluRnJhbWUpCit7CisgICAgcG9zdFRhc2soW3RoaXMsIHRhcmdldFByaW1hcnlEb21haW4gPSB0
YXJnZXRQcmltYXJ5RG9tYWluLmlzb2xhdGVkQ29weSgpLCBtYWluRnJhbWVQcmltYXJ5RG9tYWlu
ID0gbWFpbkZyYW1lUHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHkoKSwgc291cmNlUHJpbWFyeURv
bWFpbiA9IHNvdXJjZVByaW1hcnlEb21haW4uaXNvbGF0ZWRDb3B5KCksIHRhcmdldEhvc3QgPSB0
YXJnZXRIb3N0Lmlzb2xhdGVkQ29weSgpLCBtYWluRnJhbWVIb3N0ID0gbWFpbkZyYW1lSG9zdC5p
c29sYXRlZENvcHkoKSwgaXNSZWRpcmVjdCwgaXNNYWluRnJhbWVdIHsKICAgICAgICAgCiAgICAg
ICAgIGlmIChtX21lbW9yeVN0b3JlKQogICAgICAgICAgICAgbV9tZW1vcnlTdG9yZS0+bG9nRnJh
bWVOYXZpZ2F0aW9uKHRhcmdldFByaW1hcnlEb21haW4sIG1haW5GcmFtZVByaW1hcnlEb21haW4s
IHNvdXJjZVByaW1hcnlEb21haW4sIHRhcmdldEhvc3QsIG1haW5GcmFtZUhvc3QsIGlzUmVkaXJl
Y3QsIGlzTWFpbkZyYW1lKTsKQEAgLTQxOCw3ICs0NzYsMTggQEAgdm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OmxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBVUkwmIHVybCwgQ29t
cGxldGkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHBvc3RUYXNrKFt0aGlzLCBwcmlt
YXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVybCksIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgbG9nVXNlcklu
dGVyYWN0aW9uKGlzb2xhdGVkUHJpbWFyeURvbWFpbih1cmwpLCBbdGhpcywgcHJpbWFyeURvbWFp
biA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbih1cmwpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICBpZiAobV9tZW1vcnlT
dG9yZSkKKyAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmxvZ1VzZXJJbnRlcmFjdGlvbihwcmlt
YXJ5RG9tYWluKTsKKyAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Ojpsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiB0YXJnZXRQcmltYXJ5RG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5RG9t
YWluID0gdGFyZ2V0UHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHkoKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYg
KG1fbWVtb3J5U3RvcmUpCiAgICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5sb2dVc2VySW50ZXJh
Y3Rpb24ocHJpbWFyeURvbWFpbik7CiAgICAgICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwpAQCAtODIzLDYgKzg5MiwxNCBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6c2V0R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29uZHMgc2Vjb25kcykK
ICAgICB9KTsKIH0KIAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCit2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2
YWxlbnRSZXNvdXJjZXMoU2Vjb25kcyBzZWNvbmRzKQoreworICAgIGlmIChtX25ldHdvcmtTZXNz
aW9uKQorICAgICAgICBtX25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5z
ZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhzZWNvbmRzKTsKK30KKyNlbmRp
ZgorCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Q2FjaGVNYXhBZ2VD
YXAoU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTgzMywxMCAr
OTEwLDE5IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRDYWNoZU1h
eEFnZUNhcChTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpCiAgICAgICAgIG1fd2Vic2l0ZURhdGFT
dG9yZS0+c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoc2Vjb25kcywgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIHNl
dENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKHNlY29uZHMpOwogI2VuZGlmCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlUHJl
dmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21h
aW5zVG9CbG9jaykKK3sKKyAgICBpZiAobV9uZXR3b3JrU2Vzc2lvbikKKyAgICAgICAgbV9uZXR3
b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2V0UHJldmFsZW50RG9tYWluc1Rv
QmxvY2tDb29raWVzRm9yKGRvbWFpbnNUb0Jsb2NrKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Js
b2NrQ29va2llc0ZvckhhbmRsZXIoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb0Jsb2Nr
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTg0NiwxMCArOTMyLDE5IEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1Rv
QmxvY2tDb29raWVzRm9yCiAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+dXBkYXRlUHJldmFs
ZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKGRvbWFpbnNUb0Jsb2NrLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgdXBkYXRlUHJldmFs
ZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKGRvbWFpbnNUb0Jsb2NrKTsKICNlbmRpZgogICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92ZVByZXZh
bGVudERvbWFpbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnMpCit7CisgICAgaWYgKG1f
bmV0d29ya1Nlc3Npb24pCisgICAgICAgIG1fbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdl
U2Vzc2lvbigpLnJlbW92ZVByZXZhbGVudERvbWFpbnMoZG9tYWlucyk7Cit9CisjZW5kaWYKKwog
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxSZW1vdmVEb21haW5zSGFu
ZGxlcihjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlucykKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwpAQCAtODU3LDYgKzk1Miw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpjYWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIoY29uc3QgVmVjdG9yPFN0cmlu
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAobV93ZWJzaXRl
RGF0YVN0b3JlKQogICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnJlbW92ZVByZXZhbGVudERv
bWFpbnMoZG9tYWlucyk7CisgICAgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhkb21haW5zKTsKICNl
bmRpZgogfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oCmluZGV4IDU4MTcwNGE0ZWYyOTlkYzA4M2QyNzlmNTM0Yzc3MjgxY2ZhNzZiNGUuLjAwMjM2
YTM5NTUzZWMyMWNkMTg0Y2M2NzI1NTg3MGZkYTU3ZWZhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgc3RydWN0IFJl
c291cmNlTG9hZFN0YXRpc3RpY3M7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBOZXR3
b3JrU2Vzc2lvbjsKIGNsYXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTsKIGNs
YXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTsKIGNsYXNzIFdlYkZy
YW1lUHJveHk7CkBAIC02NSw2ICs2NiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSh3ZWJzaXRlRGF0YVN0b3Jl
KSk7CiAgICAgfQogCisgICAgc3RhdGljIFJlZjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0IFN0cmluZyYg
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShuZXR3b3JrU2Vzc2lv
biwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkpOworICAgIH0KKwogICAgIH5XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoKTsKIAogICAgIHN0YXRpYyBjb25zdCBPcHRpb25T
ZXQ8V2Vic2l0ZURhdGFUeXBlPiYgbW9uaXRvcmVkRGF0YVR5cGVzKCk7CkBAIC04Myw5ICs4OSwx
MyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBsaWNhdGlvbldpbGxUZXJtaW5hdGUoKTsKIAogICAg
IHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmLCBjb25zdCBVUkwm
IHBhZ2VVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFVSTCYgcmVk
aXJlY3RVUkwpOworICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFN0cmluZyYgdGFy
Z2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0SG9z
dCwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVIb3N0LCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNN
YWluRnJhbWUpOwogICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFVSTCYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29u
c3QgU3RyaW5nJiB0YXJnZXRQcmltYXJ5RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3QgVVJMJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICBib29sIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBT
dHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpOwogICAgIHZvaWQgaGFz
SGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOworICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN0cmluZyYg
cmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFVS
TCYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQ
cmV2YWxlbnRSZXNvdXJjZShjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgc2V0VmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFVSTCYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC05OCw2ICsxMDgsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjbGVhclByZXZhbGVudFJlc291cmNlKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYsIGJvb2wpOwog
ICAgIHZvaWQgaXNHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpOworICAgIHZv
aWQgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1Rv
QmxvY2spOworICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMo
U2Vjb25kcyk7CiAgICAgdm9pZCBzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oY29uc3Qg
VVJMJiBzdWJmcmFtZSwgY29uc3QgVVJMJiB0b3BGcmFtZSk7CiAgICAgdm9pZCBzZXRTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oY29uc3QgVVJMJiBzdWJyZXNvdXJjZSwgY29uc3QgVVJM
JiB0b3BGcmFtZSk7CiAgICAgdm9pZCBzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oY29u
c3QgVVJMJiBzdWJyZXNvdXJjZSwgY29uc3QgVVJMJiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CkBA
IC0xMDksNiArMTIyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2NoZWR1bGVDbGVhckJsb2NraW5n
U3RhdGVGb3JEb21haW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJl
Y29yZHNQcm9jZXNzaW5nKCk7CiAgICAgdm9pZCBzdWJtaXRUZWxlbWV0cnkoKTsKKyAgICB2b2lk
IHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zvcihjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZG9tYWluc1RvQmxvY2spOwogCiAgICAgZW51bSBjbGFzcyBTaG91bGRHcmFuZGZhdGhl
ciB7CiAgICAgICAgIE5vLApAQCAtMTQwLDkgKzE1NCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpOwogCiAgICAgV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0
ZURhdGFTdG9yZSgpIHsgcmV0dXJuIG1fd2Vic2l0ZURhdGFTdG9yZS5nZXQoKTsgfQorICAgIE5l
dHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbigpIHsgcmV0dXJuIG1fbmV0d29ya1Nlc3Npb24u
Z2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSYpOworICAgIGV4cGxpY2l0IFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYpOwogCiAgICAg
dm9pZCBwb3N0VGFzayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgc3RhdGljIHZvaWQg
cG9zdFRhc2tSZXBseShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CkBAIC0xNjEsNiArMTc3LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGZsdXNoQW5kRGVzdHJveVBlcnNpc3RlbnRTdG9yZSgpOwog
CiAgICAgV2Vha1B0cjxXZWJzaXRlRGF0YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7CisgICAg
V2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4gbV9uZXR3b3JrU2Vzc2lvbjsKICAgICBSZWY8V29ya1F1
ZXVlPiBtX3N0YXRpc3RpY3NRdWV1ZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlPiBtX21lbW9yeVN0b3JlOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U+IG1fcGVyc2lzdGVudFN0
b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCmluZGV4IDE2ZjlmN2QwYjE3YzMyY2RlZjg5NWYzMDlhMDY1MThlM2NlNzM2MmYuLjRlMzE0
ODBiNDE4ZmE0ZDcyYTllZjAxZmU0YzY4ODQzZTRhZjNjZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAj
aW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1ZGUgIldlYlNXT3JpZ2luU3Rv
cmUuaCIKICNpbmNsdWRlICJXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCIKQEAgLTMwMSw2ICszMDIsOCBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmJgogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3
b3JrU2Vzc2lvbikKICAgICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rl
c3RpbmdTZXNzaW9uKCk7CiAKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50
bHkocGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7
CisKICAgICBhdXRvIHNlc3Npb25JRCA9IHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFt
ZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNlc3Npb25JRDsKICAgICBTZXNzaW9uVHJh
Y2tlcjo6c2V0U2Vzc2lvbihzZXNzaW9uSUQsIE5ldHdvcmtTZXNzaW9uOjpjcmVhdGUoKnRoaXMs
IFdURk1vdmUocGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMpKSk7CiAKQEAgLTUyMyw2ICs1MjYsMjcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6Z3JhbnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
U3RyaW5nJgogICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OlN0b3JhZ2VBY2Nlc3NSZXF1ZXN0UmVzdWx0KGlzU3RvcmFnZUdy
YW50ZWQsIGNvbnRleHRJZCksIDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dGcmFt
ZU5hdmlnYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHRhcmdl
dFByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwgY29u
c3QgU3RyaW5nJiBzb3VyY2VQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIHRhcmdldEhvc3Qs
IGNvbnN0IFN0cmluZyYgbWFpbkZyYW1lSG9zdCwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFp
bkZyYW1lKQoreworICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IFNlc3Npb25UcmFja2Vy
OjpuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgICAgIGlmIChhdXRvKiByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
KSkKKyAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ0ZyYW1lTmF2aWdhdGlv
bih0YXJnZXRQcmltYXJ5RG9tYWluLCBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBzb3VyY2VQcmlt
YXJ5RG9tYWluLCB0YXJnZXRIb3N0LCBtYWluRnJhbWVIb3N0LCBpc1JlZGlyZWN0LCBpc01haW5G
cmFtZSk7CisgICAgfSBlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2
b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBTdHJpbmcmIHRhcmdldFByaW1hcnlEb21haW4sIHVpbnQ2NF90IGNvbnRl
eHRJZCkKK3sKKyAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBTZXNzaW9uVHJhY2tlcjo6
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgeworICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VM
b2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkp
IHsKKyAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ1VzZXJJbnRlcmFjdGlv
bih0YXJnZXRQcmltYXJ5RG9tYWluLCBbdGhpcywgY29udGV4dElkXSB7CisgICAgICAgICAgICAg
ICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6RGlkTG9nVXNlckludGVyYWN0aW9uKGNvbnRleHRJZCksIDApOworICAgICAgICAg
ICAgfSk7ICAgICAgICAKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlQWxsU3RvcmFnZUFj
Y2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAg
ICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGNlYzg4ZWU1NDQxYjhmNWQ1NTc3NDMxNTkzMmNi
YjQ5ZjU5MWNmYjMuLjMzZTc1ZGFjMWVkNzEyYmI0N2M3MDVlZDIxNGQ1NTFiNjRjNjc3YzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTE1
Nyw2ICsxNTcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmlu
ZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCB1
aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMo
UEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBncmFudFN0b3Jh
Z2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGxvZ0ZyYW1l
TmF2aWdhdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB0YXJnZXRQcmltYXJ5RG9t
YWluLCBjb25zdCBTdHJpbmcmIG1haW5GcmFtZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYg
c291cmNlUHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiB0YXJnZXRIb3N0LCBjb25zdCBTdHJp
bmcmIG1haW5GcmFtZUhvc3QsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSk7Cisg
ICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYg
dGFyZ2V0UHJpbWFyeURvbWFpbiwgdWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIHJlbW92
ZUFsbFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAg
ICAgdm9pZCByZW1vdmVQcmV2YWxlbnREb21haW5zKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgZG9tYWlucyk7CiAgICAgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywgdWludDY0X3QgY29udGV4dElk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluCmluZGV4IDhkODcyMjRiZjMxMWU3N2U1NWEyMTA4NzNhNGE3YTU0M2Qx
ZTFmMDIuLjhiYTE2NzVkYzg4ZTY0YjY1OWFjYzlmNDEzZTg2YTVjMWMzNmU3ZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbgpAQCAtOTAsNiArOTAsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdh
Y3lSZWNlaXZlciB7CiAgICAgSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgU3RyaW5nIHJlc291cmNlRG9tYWluLCBTdHJpbmcgZmlyc3RQYXJ0eURvbWFp
biwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBjb250ZXh0SWQp
CiAgICAgR2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCB1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgR3JhbnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgU3RyaW5nIHJlc291cmNlRG9tYWluLCBTdHJpbmcgZmlyc3RQYXJ0eURv
bWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0
X3QgY29udGV4dElkKQorICAgIExvZ0ZyYW1lTmF2aWdhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFN0cmluZyB0YXJnZXRQcmltYXJ5RG9tYWluLCBTdHJpbmcgbWFpbkZyYW1lUHJpbWFy
eURvbWFpbiwgU3RyaW5nIHNvdXJjZVByaW1hcnlEb21haW4sIFN0cmluZyB0YXJnZXRIb3N0LCBT
dHJpbmcgbWFpbkZyYW1lSG9zdCwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKQor
ICAgIExvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyB0
YXJnZXRQcmltYXJ5RG9tYWluLCB1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgUmVtb3ZlQWxsU3Rv
cmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGNvbnRleHRJZCkK
ICAgICBSZW1vdmVQcmV2YWxlbnREb21haW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVj
dG9yPFN0cmluZz4gZG9tYWluc1dpdGhJbnRlcmFjdGlvbikKICAgICBTZXRDYWNoZU1heEFnZUNh
cEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMg
c2Vjb25kcywgdWludDY0X3QgY29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCA1YmE1YzFjY2U0ZTYxODJhNGNkMmVjZGUw
MDk1MDY2YWY1NDlkYmVmLi44MjA1NDZkODVhYmZhZDQzYTlkNjkwMzM4Y2JhNDkxOWIxNDVjMzg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKIAorI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKQEAgLTc3LDQgKzc4LDEyIEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OmludmFsaWRh
dGVBbmRDYW5jZWwoKQogICAgICAgICB0YXNrLT5pbnZhbGlkYXRlQW5kQ2FuY2VsKCk7CiB9CiAK
K3ZvaWQgTmV0d29ya1Nlc3Npb246OmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MoKQorewor
ICAgIGlmIChtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6Y3JlYXRlKCp0aGlzLCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAppbmRleCBjMDQ4N2RhMmVkMWI5ZWNkZmU0NzFmOTMxOWY1MjE5YzI5
YjkyZTZhLi40MjkyZGI3NTdhOTM4MWI4NWE0Yjk1Y2UzMjU2NTlhN2ZhMzljN2JlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC0zMCw2ICsz
MCw4IEBACiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBOZXR3b3JrU3RvcmFnZVNlc3Npb247CkBAIC0zOSw5ICs0MSwxMCBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgTmV0d29ya0RhdGFUYXNrOwogY2xhc3MgTmV0d29ya1Byb2Nlc3M7Citj
bGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU7CiBzdHJ1Y3QgTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM7CiAKLWNsYXNzIE5ldHdvcmtTZXNzaW9uIDogcHVibGljIFJl
ZkNvdW50ZWQ8TmV0d29ya1Nlc3Npb24+IHsKK2NsYXNzIE5ldHdvcmtTZXNzaW9uIDogcHVibGlj
IFJlZkNvdW50ZWQ8TmV0d29ya1Nlc3Npb24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TmV0d29y
a1Nlc3Npb24+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE5ldHdvcmtTZXNzaW9uPiBjcmVh
dGUoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmKTsK
ICAgICB2aXJ0dWFsIH5OZXR3b3JrU2Vzc2lvbigpOwpAQCAtNTgsMTIgKzYxLDE3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKE5ldHdvcmtEYXRhVGFzayYgdGFz
aykgeyBtX2RhdGFUYXNrU2V0LmFkZCgmdGFzayk7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJOZXR3
b3JrRGF0YVRhc2soTmV0d29ya0RhdGFUYXNrJiB0YXNrKSB7IG1fZGF0YVRhc2tTZXQucmVtb3Zl
KCZ0YXNrKTsgfQogCisgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKiByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
LmdldCgpOyB9CisgICAgdm9pZCBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CisgICAg
CiBwcm90ZWN0ZWQ6CiAgICAgTmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNl
c3Npb25JRCk7CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8TmV0
d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CiAgICAgSGFzaFNldDxOZXR3b3JrRGF0YVRh
c2sqPiBtX2RhdGFUYXNrU2V0OworICAgIFN0cmluZyBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3Rvcnk7CisgICAgUmVmUHRyPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZT4gbV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDVkNjQ1NGMzNzU0NjY4ODkxMmQzMzAy
M2YxZmQ5YWZjODIzNjhkMGUuLjI3MGFlNDMyMDU5ODk2NjU4OWU5N2E2YTE2YjM3NTQ4Y2JkYTdm
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC00Nyw2ICs0Nyw3IEBA
IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpwcml2YXRlU2Vzc2lvCiAjaWYgVVNFKENVUkwpCiAgICAgICAgICwgeyB9LCB7
IH0KICNlbmRpZgorICAgICAgICAsIHsgfSwgeyB9LCBmYWxzZQogICAgIH07CiB9CiAKQEAgLTY4
LDYgKzY5LDkgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGNvb2tpZVBlcnNp
c3RlbnRTdG9yYWdlRmlsZTsKICAgICBlbmNvZGVyIDw8IHByb3h5U2V0dGluZ3M7CiAjZW5kaWYK
KyAgICBlbmNvZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CisgICAgZW5j
b2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwor
ICAgIGVuY29kZXIgPDwgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKIH0KIAogT3B0aW9u
YWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMTMzLDcgKzEz
NywyMiBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgIGlmICghcHJveHlTZXR0aW5ncykK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNlbmRpZgotICAgIAorCisgICAgT3B0aW9u
YWw8U3RyaW5nPiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OworICAgIGRlY29kZXIg
Pj4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKKyAgICBpZiAoIXJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3RvcnkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M7CisgICAgZGVjb2RlciA+PiBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOworICAgIGlm
ICghZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKwogICAgIHJldHVybiB7ewogICAgICAgICBzZXNzaW9uSUQKICAgICAgICAgLCBXVEZN
b3ZlKCpib3VuZEludGVyZmFjZUlkZW50aWZpZXIpCkBAIC0xNTEsNiArMTcwLDkgQEAgT3B0aW9u
YWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWMKICAgICAgICAgLCBXVEZNb3ZlKCpjb29raWVQZXJzaXN0ZW50U3Rv
cmFnZUZpbGUpCiAgICAgICAgICwgV1RGTW92ZSgqcHJveHlTZXR0aW5ncykKICNlbmRpZgorICAg
ICAgICAsIFdURk1vdmUoKnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCisgICAgICAg
ICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSkKKyAgICAgICAgLCBXVEZNb3ZlKCplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQogICAg
IH19OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMDlhZjMzMzIzMTNj
ZWI3MThiNGZmMDRkMzAxNjMzMTkxMWM5NDM3MC4uNmY5ZGU4YjgwMTM4ZDQxODY5ZDcxY2JmMDZk
YjkyMWNiOTQzMTQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMjUsNiAr
MjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIK
ICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNp
bmNsdWRlIDx3dGYvVVJMLmg+CkBAIC02OSw2ICs3MCw5IEBAIHN0cnVjdCBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU3RyaW5nIGNvb2tpZVBlcnNpc3RlbnRTdG9yYWdl
RmlsZTsKICAgICBXZWJDb3JlOjpDdXJsUHJveHlTZXR0aW5ncyBwcm94eVNldHRpbmdzOwogI2Vu
ZGlmCisgICAgU3RyaW5nIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CisgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGU7CisgICAgYm9vbCBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsgZmFs
c2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4
IDM2NTU0ZDM0MzE5NjIzODhjNDAyMTNjMTBiYTA5OTkyZDg3ZjM3N2EuLjJkOWJlZTMyYjE3Nzhl
MGI1YWQzY2U4YjZiMDdmOTAyZDEwMzM3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTkzMiw2
ICs5MzIsMTAgQEAgTmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3
b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmsKIAogICAgIG1fc3RhdGVsZXNzU2Vz
c2lvbkRlbGVnYXRlID0gYWRvcHROUyhbW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBhbGxvY10g
aW5pdFdpdGhOZXR3b3JrU2Vzc2lvbjoqdGhpcyB3aXRoQ3JlZGVudGlhbHM6ZmFsc2VdKTsKICAg
ICBtX3N0YXRlbGVzc1Nlc3Npb24gPSBbTlNVUkxTZXNzaW9uIHNlc3Npb25XaXRoQ29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uIGRlbGVnYXRlOnN0YXRpY19jYXN0PGlkPihtX3N0YXRlbGVzc1Nl
c3Npb25EZWxlZ2F0ZS5nZXQoKSkgZGVsZWdhdGVRdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBtYWlu
UXVldWVdXTsKKworICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHBhcmFt
ZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKKyAgICBpZiAocGFyYW1ldGVy
cy5lbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQorICAgICAgICBlbmFibGVSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKCk7CiB9CiAKIE5ldHdvcmtTZXNzaW9uQ29jb2E6On5OZXR3b3JrU2Vzc2lv
bkNvY29hKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDRhNzkxZjM1YzMwZmFjZTQ3NGQ0NTlmMWYyMjIy
NWY4NmQ5NTk1ZGEuLmY3NGVkZjhlNjc5ODhjZWU2OTFkY2JkZWQzZmFlZmUyMDkzZDAzNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtNDE5LDYgKzQxOSwxMyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmRpZFVwZGF0ZUJsb2NrQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQogICAgIG1fdXBk
YXRlQmxvY2tDb29raWVzQ2FsbGJhY2tNYXAudGFrZShjYWxsYmFja0lkKSgpOwogfQogCit2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZExvZ1VzZXJJbnRlcmFjdGlvbih1aW50NjRfdCBjb250
ZXh0SWQpCit7CisgICAgLy8gRklYTUUoMTkzMjk3KTogSW1wbGVtZW50IHdoZW4gYWN0aXZhdGlu
ZyBhdXRvbWF0ZWQgdGVzdCBjYXNlcy4KKyAgICBVTlVTRURfUEFSQU0oY29udGV4dElkKTsKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEFn
ZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
YWw8U2Vjb25kcz4gc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRl
eCA0ZmU1Y2U3YTQ1NmVkYjViNDMyYzAxOGYzNzdiMzkyNDNjZmE1NDdlLi5lMzQ4YTg1Yjk1NGRl
MjhmYTUxMWMzOGYxMmRhNTA2Yzg4ODE5Nzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMTQyLDYgKzE0Miw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWlu
dDY0X3QgcGFnZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIHVpbnQzMl90IHJlc3VsdCwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKICAgICB2b2lk
IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVu
c2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKICNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIHZvaWQgZGlkTG9nVXNlckludGVy
YWN0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBkaWRVcGRhdGVCbG9ja0Nvb2tp
ZXModWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZFNldEFnZUNhcEZvckNsaWVudFNp
ZGVDb29raWVzKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBzdG9yYWdlQWNjZXNzUmVx
dWVzdFJlc3VsdChib29sIHdhc0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjU2NDFmOTY5MDUwODIwZDU1ZWY4N2Q4YmUwNTg5
OTFjOWM3NjNjYy4uMmFhZTNlYjRhODcyYWZiNTA3MTM3YTMxM2NmNzhjYWE2OGFjMWMzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDAsNiArNDAsNyBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBMb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcg
ZGVzY3JpcHRpb24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBl
bnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIAogI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgRGlkTG9nVXNlckludGVyYWN0aW9uKHVp
bnQ2NF90IGNhbGxiYWNrSWQpCiAgICAgRGlkVXBkYXRlQmxvY2tDb29raWVzKHVpbnQ2NF90IGNh
bGxiYWNrSWQpCiAgICAgRGlkU2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXModWludDY0X3Qg
Y2FsbGJhY2tJZCkKICAgICBTdG9yYWdlQWNjZXNzUmVxdWVzdFJlc3VsdChib29sIHdhc0dyYW50
ZWQsIHVpbnQ2NF90IGNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IGEyOThlM2ZmNDRmMWI4NjRlYzgzZWE1Y2FiNjBjMWNhYmJiYjZjMjcuLmQ4
YTFmODQ2NDM5Y2E0OGM0NmYyMzA2MjQ4ODljYWUzODFmMGMyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjIxLDEwICsyMjEsNiBAQAogI2luY2x1ZGUg
IldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmgiCiAjZW5kaWYKIAotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0jaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3Rvci5oPgogI2VuZGlmCkBAIC00
NDU1LDggKzQ0NTEsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oV2ViRnJhbWVQcm94eSYgZnJhbWUsIFdlYkNvcmUKICAgICBBUEk6Ok5hdmln
YXRpb24qIG1haW5GcmFtZU5hdmlnYXRpb24gPSBmcmFtZS5pc01haW5GcmFtZSgpID8gbmF2aWdh
dGlvbi5nZXQoKSA6IG51bGxwdHI7CiAgICAgV2ViRnJhbWVQcm94eSogb3JpZ2luYXRpbmdGcmFt
ZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQp
OwogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoYXV0byog
cmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlID0gd2Vic2l0ZURhdGFTdG9yZSgpLnJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKSkKICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLT5s
b2dGcmFtZU5hdmlnYXRpb24oZnJhbWUsIFVSTChVUkwoKSwgbV9wYWdlTG9hZFN0YXRlLnVybCgp
KSwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZS51cmwoKSk7CisgICAgbG9nRnJhbWVOYXZpZ2F0
aW9uKGZyYW1lLCBVUkwoVVJMKCksIG1fcGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVlc3QsIHJl
ZGlyZWN0UmVzcG9uc2UudXJsKCkpOworI2VuZGlmCiAKICAgICBpZiAobV9wb2xpY3lDbGllbnQp
CiAgICAgICAgIG1fcG9saWN5Q2xpZW50LT5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KCp0aGlzLCAmZnJhbWUsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBvcmlnaW5hdGlu
Z0ZyYW1lLCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUobGlzdGVu
ZXIpLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0
KCkpLmdldCgpKTsKQEAgLTQ0NzksNiArNDQ3OCwzOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJGcmFtZVByb3h5JiBmcmFtZSwgV2ViQ29y
ZQogICAgIG1fc2hvdWxkU3VwcHJlc3NBcHBMaW5rc0luTmV4dE5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbiA9IGZhbHNlOwogfQogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
K3ZvaWQgV2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94
eSYgZnJhbWUsIGNvbnN0IFVSTCYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKQoreworICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CisgICAgCisgICAgYXV0byBzb3VyY2VVUkwgPSByZWRpcmVjdFVSTDsK
KyAgICBib29sIGlzUmVkaXJlY3QgPSAhcmVkaXJlY3RVUkwuaXNOdWxsKCk7CisgICAgaWYgKCFp
c1JlZGlyZWN0KSB7CisgICAgICAgIHNvdXJjZVVSTCA9IGZyYW1lLnVybCgpOworICAgICAgICBp
ZiAoc291cmNlVVJMLmlzTnVsbCgpKQorICAgICAgICAgICAgc291cmNlVVJMID0gcGFnZVVSTDsK
KyAgICB9CisgICAgCisgICAgYXV0byYgdGFyZ2V0VVJMID0gcmVxdWVzdC51cmwoKTsKKyAgICAK
KyAgICBpZiAoIXRhcmdldFVSTC5pc1ZhbGlkKCkgfHwgIXBhZ2VVUkwuaXNWYWxpZCgpKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgYXV0byB0YXJnZXRIb3N0ID0gdGFyZ2V0VVJMLmhvc3Qo
KTsKKyAgICBhdXRvIG1haW5GcmFtZUhvc3QgPSBwYWdlVVJMLmhvc3QoKTsKKyAgICAKKyAgICBp
ZiAodGFyZ2V0SG9zdC5pc0VtcHR5KCkgfHwgbWFpbkZyYW1lSG9zdC5pc0VtcHR5KCkgfHwgdGFy
Z2V0SG9zdCA9PSBzb3VyY2VVUkwuaG9zdCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAg
YXV0byB0YXJnZXRQcmltYXJ5RG9tYWluID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFy
eURvbWFpbih0YXJnZXRVUkwpOworICAgIGF1dG8gbWFpbkZyYW1lUHJpbWFyeURvbWFpbiA9IFJl
c291cmNlTG9hZFN0YXRpc3RpY3M6OnByaW1hcnlEb21haW4ocGFnZVVSTCk7CisgICAgYXV0byBz
b3VyY2VQcmltYXJ5RG9tYWluID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFp
bihzb3VyY2VVUkwpOworCisgICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnNlbmRUb05ldHdv
cmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6TG9nRnJhbWVOYXZpZ2F0aW9u
KG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHRhcmdldFByaW1hcnlEb21haW4sIG1h
aW5GcmFtZVByaW1hcnlEb21haW4sIHNvdXJjZVByaW1hcnlEb21haW4sIHRhcmdldEhvc3QudG9T
dHJpbmcoKSwgbWFpbkZyYW1lSG9zdC50b1N0cmluZygpLCBpc1JlZGlyZWN0LCBmcmFtZS5pc01h
aW5GcmFtZSgpKSk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJh
bWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0
aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0
aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RS
ZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVw
bHkpCiB7CiAgICAgYXV0byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRlcjo6Y3JlYXRlKFdU
Rk1vdmUocmVwbHkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
NDU2YzhhMjllYzM4Njc1NjY4ZGQ1Y2NiMjFlNDU1MzhmOTc3OTlkZi4uYzBlNWIxZmVlN2UzNDA4
YjQwYzEzODg1NjNlZjg2NWY3MTJhNTM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTE5MDcsNiArMTkwNywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0TmVl
ZHNGb250QXR0cmlidXRlcyhib29sKTsKICAgICB2b2lkIHVwZGF0ZUZvbnRBdHRyaWJ1dGVzQWZ0
ZXJFZGl0b3JTdGF0ZUNoYW5nZSgpOwogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBXZWJGcmFtZVByb3h5Jiwg
Y29uc3QgVVJMJiBwYWdlVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBVUkwmIHJlZGlyZWN0VVJMKTsKKyNlbmRpZgorCiAgICAgV2Vha1B0cjxQYWdlQ2xpZW50PiBt
X3BhZ2VDbGllbnQ7CiAgICAgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJh
dGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4
IDI1NzhkM2NiNDBhY2FjOGU5YzI5M2Q2N2ExMGI3NTczMDZiNDY5ODMuLmViYTNhMmJmMjU2M2M2
OWQxZjJlZGRlMzdlZDIxMTQ3ZjdiYWRjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTU0OCw2ICs1NDgsMTUgQEAgTmV0d29ya1Byb2Nlc3NQcm94
eSYgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUq
IHdpdGgKICAgICBwYXJhbWV0ZXJzLnNob3VsZERpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rl
cm1pbmF0aW9uRGVsYXkgPSBtX3Nob3VsZERpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1p
bmF0aW9uRGVsYXk7CiAjZW5kaWYKIAorICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCisgICAg
ICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25Q
YXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBtX3dlYnNpdGVEYXRh
U3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5yZXNvbHZlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkoKTsKKyAgICBpZiAocGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVy
cy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eS5pc0VtcHR5KCkpCisgICAgICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRl
cnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkgPSBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGlyZWN0b3J5KCk7CisKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFk
V3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgcGFy
YW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyAg
ICBwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFy
YW1ldGVycy5lbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gdHJ1ZTsgLy8gRklYTUUoMTkz
Mjk3KTogVHVybiBvbiB3aGVuIHRoZSBmZWF0dXJlIGlzIG9uLgorCiAgICAgLy8gQWRkIGFueSBw
bGF0Zm9ybSBzcGVjaWZpYyBwYXJhbWV0ZXJzCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplTmV0d29y
a1Byb2Nlc3MocGFyYW1ldGVycyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5t
bQppbmRleCA4NzdlZGQ0YmVhZjRlZTE1YzI3ZGQwZDI0NzAxYzVmNmJkNDM3YzY0Li4wNjlkNGI5
YjBhYzM2NmYyYWQ4MDA4M2FkOGNlNTE4YWFmNTY5ZmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURh
dGFTdG9yZUNvY29hLm1tCkBAIC04Myw2ICs4MywxMSBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICBpZiAoIWh0dHBzUHJveHku
aXNWYWxpZCgpICYmIGlzU2FmYXJpKQogICAgICAgICBodHRwc1Byb3h5ID0gVVJMKFVSTCgpLCBb
ZGVmYXVsdHMgc3RyaW5nRm9yS2V5OihOU1N0cmluZyAqKVdlYktpdDJIVFRQU1Byb3h5RGVmYXVs
dHNLZXldKTsKIAorICAgIGF1dG8gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IG1f
Y29uZmlndXJhdGlvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpOworICAgIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5SGFu
ZGxlOworICAgIGlmICghcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc0VtcHR5KCkp
CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVj
dG9yeShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGlyZWN0b3J5SGFuZGxlKTsKKwogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBh
cmFtZXRlcnM7CiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSB7CiAg
ICAgICAgIG1fc2Vzc2lvbklELApAQCAtOTUsNiArMTAwLDkgQEAgV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgICAgIFNlY29uZHMg
eyBbZGVmYXVsdHMgaW50ZWdlckZvcktleTpXZWJLaXROZXR3b3JrTG9hZFRocm90dGxlTGF0ZW5j
eU1pbGxpc2Vjb25kc0RlZmF1bHRzS2V5XSAvIDEwMDAuIH0sCiAgICAgICAgIFdURk1vdmUoaHR0
cFByb3h5KSwKICAgICAgICAgV1RGTW92ZShodHRwc1Byb3h5KSwKKyAgICAgICAgV1RGTW92ZShy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KSwKKyAgICAgICAgV1RGTW92ZShyZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5SGFuZGxlKSwKKyAgICAgICAgZmFsc2UgLy8gRklYTUUo
MTkzMjk3KTogU3dpdGNoIHRvIG1fY29uZmlndXJhdGlvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoKQogICAgIH07CiAKICAgICBhdXRvIGNvb2tpZUZpbGUgPSByZXNvbHZlZENvb2tp
ZVN0b3JhZ2VGaWxlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358760</attachid>
            <date>2019-01-09 16:12:42 -0800</date>
            <delta_ts>2019-01-09 19:27:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193261-20190109161241.patch</filename>
            <type>text/plain</type>
            <size>44296</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg5MWE0ZjVmODk1ZWFkYmUx
MWZjM2U0NWQyNGYyMWYwYjUwMTQ1NjQuLjE3MjQ3MTA5Yzg5MjU2ZGM4ODIwNGNkODkwZDU0MDhl
MmFhOTMxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMTktMDEtMDkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGEgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlIGF0dGFjaGVkIHRvIHRoZSBOZXR3b3JrU2Vzc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMjYxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzE1ODYxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vZGlmaWVzIE5ldHdvcmtTZXNzaW9u
IHNvIHRoYXQgaXQgb3ducyBhIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZQorICAgICAg
ICBvYmplY3QuIFRoaXMgb2JqZWN0IGlzIG9ubHkgY3JlYXRlZCBpZiB0aGUgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyBmZWF0dXJlIGlzIHR1cm5lZCBvbi4KKworICAgICAgICBUaGUgcGF0Y2ggYWxz
byBtb2RpZmllcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgc28gdGhhdCBpdCBjYW4g
YmUgY29uc3RydWN0ZWQKKyAgICAgICAgd2l0aCBhbiBvd25pbmcgTmV0d29ya1Nlc3Npb24gYXMg
YW4gYWx0ZXJuYXRpdmUgdG8gdGhlIGN1cnJlbnQgcHJhY3RpY2Ugb2YgdXNpbmcgYQorICAgICAg
ICBXZWJzaXRlRGF0YSBvYmplY3QuCisKKyAgICAgICAgVHdvIGluaXRpYWwgbWVzc2FnZXMgZnJv
bSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFyZSBhZGRlZCAobG9nRnJhbWVOYXZpZ2F0aW9uIGFu
ZAorICAgICAgICBsb2dVc2VyTmF2aWdhdGlvbikgdGhhdCBub3RpZnkgdGhlIG5ldHdvcmsgcHJv
Y2VzcyBvZiB0aGVzZSBhY3Rpb25zLiBDdXJyZW50bHkgdGhleQorICAgICAgICBhcmUgY2FsbGVk
IGluIGFkZGl0aW9uIHRoZSBjYWxscyB0byB0aGUgV2ViU2l0ZURhdGEgb2JqZWN0LiBUaGVzZSBy
ZWR1bmRhbnQgY2FsbHMKKyAgICAgICAgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHBhdGNo
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggZm9yY2VzIHRoZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
IGNvZGUgaW4gdGhlIE5ldHdvcmtTZXNzaW9uIHRvIGJlIG9mZiBieQorICAgICAgICBkZWZhdWx0
LCBzbyB0aGVyZSBzaG91bGQgYmUgbm8gY2hhbmdlIGluIGJlaGF2aW9yIHdpdGggdGhpcyBwYXRj
aC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOjp1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFz
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldENh
Y2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRDYWNoZU1heEFnZUNhcCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlUHJldmFsZW50
RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29r
aWVzRm9ySGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6cmVtb3ZlUHJldmFsZW50RG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbFJlbW92ZURvbWFpbnNIYW5kbGVyKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpsb2dGcmFtZU5hdmlnYXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb246OmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpwcml2YXRlU2Vzc2lvblBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNv
Y29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NQcm94eTo6ZGlkTG9nVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAgICAgICAoV2Vi
c2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9nRnJh
bWVOYXZpZ2F0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKToKKwogMjAxOS0wMS0wOSAgTWlj
aGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
QWRkIG1pc3NpbmcgYXV0b2NsZWFudXBzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IDE5YzM4ZTFjNDdjZWQ2MDgyNTc4ZTdkMTkz
ODE1MWZkNTBmNzU0ZmQuLjhkNjJkNjhjMWM0OWY0OWY3OTE2MGRmZWJiNmFmYTY5MDg3ZmVlNWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUu
Y3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlLmgiCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdlci5oIgogI2luY2x1ZGUgIlBs
dWdpblByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJz
aXN0ZW50U3RvcmFnZS5oIgpAQCAtMzQsNiArMzUsNyBAQAogI2luY2x1ZGUgIldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NUZWxlbWV0cnkuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9LZXllZENvZGluZy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogI2luY2x1ZGUg
PHd0Zi9EYXRlTWF0aC5oPgpAQCAtODYyLDYgKzg2NCw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOjp1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCgpCiAgICAg
UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtzdG9yZSA9IG1ha2VSZWYobV9zdG9yZSksIHNlY29u
ZHMgPSBtX3BhcmFtZXRlcnMuY2xpZW50U2lkZUNvb2tpZXNBZ2VDYXBUaW1lXSAoKSB7CiAgICAg
ICAgIGlmIChhdXRvKiB3ZWJzaXRlRGF0YVN0b3JlID0gc3RvcmUtPndlYnNpdGVEYXRhU3RvcmUo
KSkKICAgICAgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUtPnNldEFnZUNhcEZvckNsaWVudFNpZGVD
b29raWVzKHNlY29uZHMsIFtdIHsgfSk7CisgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lv
biA9IHN0b3JlLT5uZXR3b3JrU2Vzc2lvbigpKQorICAgICAgICAgICAgbmV0d29ya1Nlc3Npb24t
Pm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKHNl
Y29uZHMpOwogICAgIH0pOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDQ1MWU3MTA4ZDc4MTBlNDFhNTY0NzM0MDhjMjUx
MWRmYTEwZmJiYzMuLmZjZmFkOTgyZWVkYTA1M2VkNmM0YmU2OTFkZWQ5ZDQ2NjY1NjU1NDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
IgogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlLmgiCiAjaW5jbHVkZSAiV2Vi
RnJhbWVQcm94eS5oIgpAQCAtMzcsNiArMzgsNyBAQAogI2luY2x1ZGUgIldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NUZWxlbWV0cnkuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YUZldGNoT3B0aW9u
LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogI2luY2x1ZGUg
PHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgpAQCAtMTIxLDYgKzEyMywyMSBAQCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShXZWJz
aXRlRGF0YVN0b3JlJgogICAgIG1fZGFpbHlUYXNrc1RpbWVyLnN0YXJ0UmVwZWF0aW5nKDI0X2gp
OwogfQogCitXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0IFN0cmlu
ZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKKyAgICA6IG1fbmV0d29ya1Nlc3Np
b24obWFrZVdlYWtQdHIobmV0d29ya1Nlc3Npb24pKQorICAgICwgbV9zdGF0aXN0aWNzUXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBQcm9jZXNz
IERhdGEgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlV0
aWxpdHkpKQorICAgICwgbV9kYWlseVRhc2tzVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAm
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpwZXJmb3JtRGFpbHlUYXNrcykKK3sKKyAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIAorICAgIHBvc3RUYXNrKFt0aGlzLCBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeS5pc29sYXRlZENvcHkoKV0geworICAgICAgICBtX21lbW9yeVN0b3JlID0gc3RkOjpt
YWtlX3VuaXF1ZTxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU+KCp0aGlzLCBtX3N0
YXRpc3RpY3NRdWV1ZSk7CisgICAgICAgIG1fcGVyc2lzdGVudFN0b3JhZ2UgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZT4oKm1fbWVtb3J5
U3RvcmUsIG1fc3RhdGlzdGljc1F1ZXVlLCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
KTsKKyAgICB9KTsKKyAgICAKKyAgICBtX2RhaWx5VGFza3NUaW1lci5zdGFydFJlcGVhdGluZygy
NF9oKTsKK30KKwogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjp+V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlKCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpA
QCAtMjM2LDYgKzI1MywxMyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
aGFzU3RvcmFnZUFjY2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFN0cgogICAgIH0pOwogfQog
CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKK2Jvb2wgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3RyaW5n
JiByZXNvdXJjZURvbWFpbiwgY29uc3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpCit7CisgICAgcmV0dXJuIG1fbmV0d29ya1Nlc3Np
b24gPyBtX25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5oYXNTdG9yYWdl
QWNjZXNzKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQp
IDogZmFsc2U7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFN0cmluZyYgcmVz
b3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNj
ZXNzKT4mJiBjYWxsYmFjaykKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAt
MjQ0LDYgKzI2OCw5IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxs
SGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBTCiAgICAgaWYgKG1fd2Vic2l0
ZURhdGFTdG9yZSkgewogICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPmhhc1N0b3JhZ2VBY2Nl
c3NGb3JGcmFtZUhhbmRsZXIocmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1l
SUQsIHBhZ2VJRCwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgICAgICByZXR1cm47CisgICAgfSBl
bHNlIHsKKyAgICAgICAgY2FsbGJhY2soaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKHJlc291cmNl
RG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQpKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIH0KICNlbmRpZgogICAgIGNhbGxiYWNrKGZhbHNlKTsKQEAgLTMwOSw2ICszMzYs
MjEgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFj
Y2VzcyhTdHJpbmcmJiBzdWJGcmFtZUhvc3QsIFMKICAgICB9KTsKIH0KIAorI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCitib29sIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IHVpbnQ2NF90IHBhZ2VJRCkKK3sKKyAgICBib29sIGlzU3RvcmFnZUdyYW50ZWQgPSBmYWxzZTsK
KworICAgIGlmIChtX25ldHdvcmtTZXNzaW9uKSB7CisgICAgICAgIG1fbmV0d29ya1Nlc3Npb24t
Pm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmdyYW50U3RvcmFnZUFjY2VzcyhyZXNvdXJjZURvbWFp
biwgZmlyc3RQYXJ0eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlEKTsKKyAgICAgICAgQVNTRVJUKG1f
bmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmhhc1N0b3JhZ2VBY2Nlc3Mo
cmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCkpOworICAg
ICAgICBpc1N0b3JhZ2VHcmFudGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gaXNTdG9y
YWdlR3JhbnRlZDsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgU3RyaW5nJiBzdWJGcmFt
ZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVQcmltYXJ5RG9tYWluLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CkBAIC0zMTcsNiArMzU5LDkgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN0cmluZyYKICAgICBpZiAo
bV93ZWJzaXRlRGF0YVN0b3JlKSB7CiAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+Z3JhbnRT
dG9yYWdlQWNjZXNzSGFuZGxlcihzdWJGcmFtZVByaW1hcnlEb21haW4sIHRvcEZyYW1lUHJpbWFy
eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9IGVsc2UgeworICAgICAgICBjYWxsYmFjayhncmFudFN0b3JhZ2VBY2Nlc3Mo
c3ViRnJhbWVQcmltYXJ5RG9tYWluLCB0b3BGcmFtZVByaW1hcnlEb21haW4sIGZyYW1lSUQsIHBh
Z2VJRCkpOworICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAgICAgY2FsbGJhY2soZmFs
c2UpOwpAQCAtMzMzLDE4ICszNzgsMjYgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCkKICAgICB9KTsKIH0KIAorI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpCit7CisgICAgaWYgKG1fbmV0d29ya1Nl
c3Npb24pCisgICAgICAgIG1fbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigp
LnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAg
aWYgKG1fd2Vic2l0ZURhdGFTdG9yZSkKKyAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3JlKSB7CiAg
ICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzc0hhbmRsZXIo
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIGVsc2UKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKLSNlbHNlCi0gICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCk7CiAjZW5kaWYKKyAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwogfQogCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6YXBwbGljYXRpb25XaWxsVGVybWluYXRlKCkKQEAgLTQwMiw3ICs0NTUsMTIgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25z
dCBXZWJGcmFtZVByb3h5JiBmcmEKICAgICBhdXRvIG1haW5GcmFtZVByaW1hcnlEb21haW4gPSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5RG9tYWluKHBhZ2VVUkwpOwogICAgIGF1dG8g
c291cmNlUHJpbWFyeURvbWFpbiA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnByaW1hcnlEb21h
aW4oc291cmNlVVJMKTsKIAotICAgIHBvc3RUYXNrKFt0aGlzLCB0YXJnZXRQcmltYXJ5RG9tYWlu
ID0gdGFyZ2V0UHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHkoKSwgbWFpbkZyYW1lUHJpbWFyeURv
bWFpbiA9IG1haW5GcmFtZVByaW1hcnlEb21haW4uaXNvbGF0ZWRDb3B5KCksIHNvdXJjZVByaW1h
cnlEb21haW4gPSBzb3VyY2VQcmltYXJ5RG9tYWluLmlzb2xhdGVkQ29weSgpLCB0YXJnZXRIb3N0
ID0gdGFyZ2V0SG9zdC50b1N0cmluZygpLmlzb2xhdGVkQ29weSgpLCBtYWluRnJhbWVIb3N0ID0g
bWFpbkZyYW1lSG9zdC50b1N0cmluZygpLmlzb2xhdGVkQ29weSgpLCBpc1JlZGlyZWN0LCBpc01h
aW5GcmFtZSA9IGZyYW1lLmlzTWFpbkZyYW1lKCldIHsKKyAgICBsb2dGcmFtZU5hdmlnYXRpb24o
dGFyZ2V0UHJpbWFyeURvbWFpbiwgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwgc291cmNlUHJpbWFy
eURvbWFpbiwgdGFyZ2V0SG9zdC50b1N0cmluZygpLCBtYWluRnJhbWVIb3N0LnRvU3RyaW5nKCks
IGlzUmVkaXJlY3QsIGZyYW1lLmlzTWFpbkZyYW1lKCkpOworfQorCit2b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFN0cmluZyYgdGFy
Z2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0SG9z
dCwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVIb3N0LCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNN
YWluRnJhbWUpCit7CisgICAgcG9zdFRhc2soW3RoaXMsIHRhcmdldFByaW1hcnlEb21haW4gPSB0
YXJnZXRQcmltYXJ5RG9tYWluLmlzb2xhdGVkQ29weSgpLCBtYWluRnJhbWVQcmltYXJ5RG9tYWlu
ID0gbWFpbkZyYW1lUHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHkoKSwgc291cmNlUHJpbWFyeURv
bWFpbiA9IHNvdXJjZVByaW1hcnlEb21haW4uaXNvbGF0ZWRDb3B5KCksIHRhcmdldEhvc3QgPSB0
YXJnZXRIb3N0Lmlzb2xhdGVkQ29weSgpLCBtYWluRnJhbWVIb3N0ID0gbWFpbkZyYW1lSG9zdC5p
c29sYXRlZENvcHkoKSwgaXNSZWRpcmVjdCwgaXNNYWluRnJhbWVdIHsKICAgICAgICAgCiAgICAg
ICAgIGlmIChtX21lbW9yeVN0b3JlKQogICAgICAgICAgICAgbV9tZW1vcnlTdG9yZS0+bG9nRnJh
bWVOYXZpZ2F0aW9uKHRhcmdldFByaW1hcnlEb21haW4sIG1haW5GcmFtZVByaW1hcnlEb21haW4s
IHNvdXJjZVByaW1hcnlEb21haW4sIHRhcmdldEhvc3QsIG1haW5GcmFtZUhvc3QsIGlzUmVkaXJl
Y3QsIGlzTWFpbkZyYW1lKTsKQEAgLTQxOCw3ICs0NzYsMTggQEAgdm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OmxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBVUkwmIHVybCwgQ29t
cGxldGkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHBvc3RUYXNrKFt0aGlzLCBwcmlt
YXJ5RG9tYWluID0gaXNvbGF0ZWRQcmltYXJ5RG9tYWluKHVybCksIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgbG9nVXNlcklu
dGVyYWN0aW9uKGlzb2xhdGVkUHJpbWFyeURvbWFpbih1cmwpLCBbdGhpcywgcHJpbWFyeURvbWFp
biA9IGlzb2xhdGVkUHJpbWFyeURvbWFpbih1cmwpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICBpZiAobV9tZW1vcnlT
dG9yZSkKKyAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmxvZ1VzZXJJbnRlcmFjdGlvbihwcmlt
YXJ5RG9tYWluKTsKKyAgICAgICAgcG9zdFRhc2tSZXBseShXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Ojpsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiB0YXJnZXRQcmltYXJ5RG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIHBvc3RUYXNrKFt0aGlzLCBwcmltYXJ5RG9t
YWluID0gdGFyZ2V0UHJpbWFyeURvbWFpbi5pc29sYXRlZENvcHkoKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYg
KG1fbWVtb3J5U3RvcmUpCiAgICAgICAgICAgICBtX21lbW9yeVN0b3JlLT5sb2dVc2VySW50ZXJh
Y3Rpb24ocHJpbWFyeURvbWFpbik7CiAgICAgICAgIHBvc3RUYXNrUmVwbHkoV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwpAQCAtODIzLDYgKzg5MiwxNCBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6c2V0R3JhbmRmYXRoZXJpbmdUaW1lKFNlY29uZHMgc2Vjb25kcykK
ICAgICB9KTsKIH0KIAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCit2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2
YWxlbnRSZXNvdXJjZXMoU2Vjb25kcyBzZWNvbmRzKQoreworICAgIGlmIChtX25ldHdvcmtTZXNz
aW9uKQorICAgICAgICBtX25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5z
ZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhzZWNvbmRzKTsKK30KKyNlbmRp
ZgorCiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Q2FjaGVNYXhBZ2VD
YXAoU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTgzMywxMCAr
OTEwLDE5IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRDYWNoZU1h
eEFnZUNhcChTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpCiAgICAgICAgIG1fd2Vic2l0ZURhdGFT
dG9yZS0+c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoc2Vjb25kcywgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIHNl
dENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKHNlY29uZHMpOwogI2VuZGlmCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlUHJl
dmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21h
aW5zVG9CbG9jaykKK3sKKyAgICBpZiAobV9uZXR3b3JrU2Vzc2lvbikKKyAgICAgICAgbV9uZXR3
b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2V0UHJldmFsZW50RG9tYWluc1Rv
QmxvY2tDb29raWVzRm9yKGRvbWFpbnNUb0Jsb2NrKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Js
b2NrQ29va2llc0ZvckhhbmRsZXIoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb0Jsb2Nr
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTg0NiwxMCArOTMyLDE5IEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1Rv
QmxvY2tDb29raWVzRm9yCiAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+dXBkYXRlUHJldmFs
ZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKGRvbWFpbnNUb0Jsb2NrLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgdXBkYXRlUHJldmFs
ZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKGRvbWFpbnNUb0Jsb2NrKTsKICNlbmRpZgogICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92ZVByZXZh
bGVudERvbWFpbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnMpCit7CisgICAgaWYgKG1f
bmV0d29ya1Nlc3Npb24pCisgICAgICAgIG1fbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdl
U2Vzc2lvbigpLnJlbW92ZVByZXZhbGVudERvbWFpbnMoZG9tYWlucyk7Cit9CisjZW5kaWYKKwog
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxSZW1vdmVEb21haW5zSGFu
ZGxlcihjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWlucykKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwpAQCAtODU3LDYgKzk1Miw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpjYWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIoY29uc3QgVmVjdG9yPFN0cmlu
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAobV93ZWJzaXRl
RGF0YVN0b3JlKQogICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnJlbW92ZVByZXZhbGVudERv
bWFpbnMoZG9tYWlucyk7CisgICAgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhkb21haW5zKTsKICNl
bmRpZgogfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oCmluZGV4IDU4MTcwNGE0ZWYyOTlkYzA4M2QyNzlmNTM0Yzc3MjgxY2ZhNzZiNGUuLjAwMjM2
YTM5NTUzZWMyMWNkMTg0Y2M2NzI1NTg3MGZkYTU3ZWZhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgc3RydWN0IFJl
c291cmNlTG9hZFN0YXRpc3RpY3M7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBOZXR3
b3JrU2Vzc2lvbjsKIGNsYXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTsKIGNs
YXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTsKIGNsYXNzIFdlYkZy
YW1lUHJveHk7CkBAIC02NSw2ICs2NiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSh3ZWJzaXRlRGF0YVN0b3Jl
KSk7CiAgICAgfQogCisgICAgc3RhdGljIFJlZjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0IFN0cmluZyYg
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShuZXR3b3JrU2Vzc2lv
biwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkpOworICAgIH0KKwogICAgIH5XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoKTsKIAogICAgIHN0YXRpYyBjb25zdCBPcHRpb25T
ZXQ8V2Vic2l0ZURhdGFUeXBlPiYgbW9uaXRvcmVkRGF0YVR5cGVzKCk7CkBAIC04Myw5ICs4OSwx
MyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBsaWNhdGlvbldpbGxUZXJtaW5hdGUoKTsKIAogICAg
IHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmLCBjb25zdCBVUkwm
IHBhZ2VVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFVSTCYgcmVk
aXJlY3RVUkwpOworICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFN0cmluZyYgdGFy
Z2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgdGFyZ2V0SG9z
dCwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVIb3N0LCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNN
YWluRnJhbWUpOwogICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFVSTCYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29u
c3QgU3RyaW5nJiB0YXJnZXRQcmltYXJ5RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3QgVVJMJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICBib29sIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBT
dHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpOwogICAgIHZvaWQgaGFz
SGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOworICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN0cmluZyYg
cmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFVS
TCYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQ
cmV2YWxlbnRSZXNvdXJjZShjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgc2V0VmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFVSTCYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC05OCw2ICsxMDgsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjbGVhclByZXZhbGVudFJlc291cmNlKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYsIGJvb2wpOwog
ICAgIHZvaWQgaXNHcmFuZGZhdGhlcmVkKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpOworICAgIHZv
aWQgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1Rv
QmxvY2spOworICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMo
U2Vjb25kcyk7CiAgICAgdm9pZCBzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW4oY29uc3Qg
VVJMJiBzdWJmcmFtZSwgY29uc3QgVVJMJiB0b3BGcmFtZSk7CiAgICAgdm9pZCBzZXRTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVPcmlnaW4oY29uc3QgVVJMJiBzdWJyZXNvdXJjZSwgY29uc3QgVVJM
JiB0b3BGcmFtZSk7CiAgICAgdm9pZCBzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oY29u
c3QgVVJMJiBzdWJyZXNvdXJjZSwgY29uc3QgVVJMJiBob3N0TmFtZVJlZGlyZWN0ZWRUbyk7CkBA
IC0xMDksNiArMTIyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2NoZWR1bGVDbGVhckJsb2NraW5n
U3RhdGVGb3JEb21haW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJl
Y29yZHNQcm9jZXNzaW5nKCk7CiAgICAgdm9pZCBzdWJtaXRUZWxlbWV0cnkoKTsKKyAgICB2b2lk
IHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zvcihjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZG9tYWluc1RvQmxvY2spOwogCiAgICAgZW51bSBjbGFzcyBTaG91bGRHcmFuZGZhdGhl
ciB7CiAgICAgICAgIE5vLApAQCAtMTQwLDkgKzE1NCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpOwogCiAgICAgV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0
ZURhdGFTdG9yZSgpIHsgcmV0dXJuIG1fd2Vic2l0ZURhdGFTdG9yZS5nZXQoKTsgfQorICAgIE5l
dHdvcmtTZXNzaW9uKiBuZXR3b3JrU2Vzc2lvbigpIHsgcmV0dXJuIG1fbmV0d29ya1Nlc3Npb24u
Z2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSYpOworICAgIGV4cGxpY2l0IFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYpOwogCiAgICAg
dm9pZCBwb3N0VGFzayhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgc3RhdGljIHZvaWQg
cG9zdFRhc2tSZXBseShXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJik7CkBAIC0xNjEsNiArMTc3LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGZsdXNoQW5kRGVzdHJveVBlcnNpc3RlbnRTdG9yZSgpOwog
CiAgICAgV2Vha1B0cjxXZWJzaXRlRGF0YVN0b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7CisgICAg
V2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4gbV9uZXR3b3JrU2Vzc2lvbjsKICAgICBSZWY8V29ya1F1
ZXVlPiBtX3N0YXRpc3RpY3NRdWV1ZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlPiBtX21lbW9yeVN0b3JlOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U+IG1fcGVyc2lzdGVudFN0
b3JhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCmluZGV4IDE2ZjlmN2QwYjE3YzMyY2RlZjg5NWYzMDlhMDY1MThlM2NlNzM2MmYuLjRlMzE0
ODBiNDE4ZmE0ZDcyYTllZjAxZmU0YzY4ODQzZTRhZjNjZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAj
aW5jbHVkZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgogI2luY2x1ZGUgIldlYlNXT3JpZ2luU3Rv
cmUuaCIKICNpbmNsdWRlICJXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCIKQEAgLTMwMSw2ICszMDIsOCBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmJgogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3
b3JrU2Vzc2lvbikKICAgICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rl
c3RpbmdTZXNzaW9uKCk7CiAKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50
bHkocGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7
CisKICAgICBhdXRvIHNlc3Npb25JRCA9IHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFt
ZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNlc3Npb25JRDsKICAgICBTZXNzaW9uVHJh
Y2tlcjo6c2V0U2Vzc2lvbihzZXNzaW9uSUQsIE5ldHdvcmtTZXNzaW9uOjpjcmVhdGUoKnRoaXMs
IFdURk1vdmUocGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMpKSk7CiAKQEAgLTUyMyw2ICs1MjYsMjcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6Z3JhbnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
U3RyaW5nJgogICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OlN0b3JhZ2VBY2Nlc3NSZXF1ZXN0UmVzdWx0KGlzU3RvcmFnZUdy
YW50ZWQsIGNvbnRleHRJZCksIDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dGcmFt
ZU5hdmlnYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHRhcmdl
dFByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwgY29u
c3QgU3RyaW5nJiBzb3VyY2VQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIHRhcmdldEhvc3Qs
IGNvbnN0IFN0cmluZyYgbWFpbkZyYW1lSG9zdCwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFp
bkZyYW1lKQoreworICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IFNlc3Npb25UcmFja2Vy
OjpuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgICAgIGlmIChhdXRvKiByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
KSkKKyAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ0ZyYW1lTmF2aWdhdGlv
bih0YXJnZXRQcmltYXJ5RG9tYWluLCBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBzb3VyY2VQcmlt
YXJ5RG9tYWluLCB0YXJnZXRIb3N0LCBtYWluRnJhbWVIb3N0LCBpc1JlZGlyZWN0LCBpc01haW5G
cmFtZSk7CisgICAgfSBlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2
b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBTdHJpbmcmIHRhcmdldFByaW1hcnlEb21haW4sIHVpbnQ2NF90IGNvbnRl
eHRJZCkKK3sKKyAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBTZXNzaW9uVHJhY2tlcjo6
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgeworICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VM
b2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkp
IHsKKyAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ1VzZXJJbnRlcmFjdGlv
bih0YXJnZXRQcmltYXJ5RG9tYWluLCBbdGhpcywgY29udGV4dElkXSB7CisgICAgICAgICAgICAg
ICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6RGlkTG9nVXNlckludGVyYWN0aW9uKGNvbnRleHRJZCksIDApOworICAgICAgICAg
ICAgfSk7ICAgICAgICAKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlQWxsU3RvcmFnZUFj
Y2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAg
ICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGNlYzg4ZWU1NDQxYjhmNWQ1NTc3NDMxNTkzMmNi
YjQ5ZjU5MWNmYjMuLjMzZTc1ZGFjMWVkNzEyYmI0N2M3MDVlZDIxNGQ1NTFiNjRjNjc3YzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTE1
Nyw2ICsxNTcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFN0cmlu
ZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCB1
aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMo
UEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBncmFudFN0b3Jh
Z2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGxvZ0ZyYW1l
TmF2aWdhdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB0YXJnZXRQcmltYXJ5RG9t
YWluLCBjb25zdCBTdHJpbmcmIG1haW5GcmFtZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYg
c291cmNlUHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiB0YXJnZXRIb3N0LCBjb25zdCBTdHJp
bmcmIG1haW5GcmFtZUhvc3QsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSk7Cisg
ICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYg
dGFyZ2V0UHJpbWFyeURvbWFpbiwgdWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIHJlbW92
ZUFsbFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CiAg
ICAgdm9pZCByZW1vdmVQcmV2YWxlbnREb21haW5zKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgZG9tYWlucyk7CiAgICAgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywgdWludDY0X3QgY29udGV4dElk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluCmluZGV4IDhkODcyMjRiZjMxMWU3N2U1NWEyMTA4NzNhNGE3YTU0M2Qx
ZTFmMDIuLjhiYTE2NzVkYzg4ZTY0YjY1OWFjYzlmNDEzZTg2YTVjMWMzNmU3ZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbgpAQCAtOTAsNiArOTAsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdh
Y3lSZWNlaXZlciB7CiAgICAgSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgU3RyaW5nIHJlc291cmNlRG9tYWluLCBTdHJpbmcgZmlyc3RQYXJ0eURvbWFp
biwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBjb250ZXh0SWQp
CiAgICAgR2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCB1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgR3JhbnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgU3RyaW5nIHJlc291cmNlRG9tYWluLCBTdHJpbmcgZmlyc3RQYXJ0eURv
bWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0
X3QgY29udGV4dElkKQorICAgIExvZ0ZyYW1lTmF2aWdhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFN0cmluZyB0YXJnZXRQcmltYXJ5RG9tYWluLCBTdHJpbmcgbWFpbkZyYW1lUHJpbWFy
eURvbWFpbiwgU3RyaW5nIHNvdXJjZVByaW1hcnlEb21haW4sIFN0cmluZyB0YXJnZXRIb3N0LCBT
dHJpbmcgbWFpbkZyYW1lSG9zdCwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKQor
ICAgIExvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyB0
YXJnZXRQcmltYXJ5RG9tYWluLCB1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgUmVtb3ZlQWxsU3Rv
cmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGNvbnRleHRJZCkK
ICAgICBSZW1vdmVQcmV2YWxlbnREb21haW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVj
dG9yPFN0cmluZz4gZG9tYWluc1dpdGhJbnRlcmFjdGlvbikKICAgICBTZXRDYWNoZU1heEFnZUNh
cEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMg
c2Vjb25kcywgdWludDY0X3QgY29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCA1YmE1YzFjY2U0ZTYxODJhNGNkMmVjZGUw
MDk1MDY2YWY1NDlkYmVmLi44MjA1NDZkODVhYmZhZDQzYTlkNjkwMzM4Y2JhNDkxOWIxNDVjMzg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKIAorI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKQEAgLTc3LDQgKzc4LDEyIEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OmludmFsaWRh
dGVBbmRDYW5jZWwoKQogICAgICAgICB0YXNrLT5pbnZhbGlkYXRlQW5kQ2FuY2VsKCk7CiB9CiAK
K3ZvaWQgTmV0d29ya1Nlc3Npb246OmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MoKQorewor
ICAgIGlmIChtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6Y3JlYXRlKCp0aGlzLCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uaAppbmRleCBjMDQ4N2RhMmVkMWI5ZWNkZmU0NzFmOTMxOWY1MjE5YzI5
YjkyZTZhLi40MjkyZGI3NTdhOTM4MWI4NWE0Yjk1Y2UzMjU2NTlhN2ZhMzljN2JlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC0zMCw2ICsz
MCw4IEBACiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBOZXR3b3JrU3RvcmFnZVNlc3Npb247CkBAIC0zOSw5ICs0MSwxMCBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgTmV0d29ya0RhdGFUYXNrOwogY2xhc3MgTmV0d29ya1Byb2Nlc3M7Citj
bGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU7CiBzdHJ1Y3QgTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM7CiAKLWNsYXNzIE5ldHdvcmtTZXNzaW9uIDogcHVibGljIFJl
ZkNvdW50ZWQ8TmV0d29ya1Nlc3Npb24+IHsKK2NsYXNzIE5ldHdvcmtTZXNzaW9uIDogcHVibGlj
IFJlZkNvdW50ZWQ8TmV0d29ya1Nlc3Npb24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TmV0d29y
a1Nlc3Npb24+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE5ldHdvcmtTZXNzaW9uPiBjcmVh
dGUoTmV0d29ya1Byb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyYmKTsK
ICAgICB2aXJ0dWFsIH5OZXR3b3JrU2Vzc2lvbigpOwpAQCAtNTgsMTIgKzYxLDE3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKE5ldHdvcmtEYXRhVGFzayYgdGFz
aykgeyBtX2RhdGFUYXNrU2V0LmFkZCgmdGFzayk7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJOZXR3
b3JrRGF0YVRhc2soTmV0d29ya0RhdGFUYXNrJiB0YXNrKSB7IG1fZGF0YVRhc2tTZXQucmVtb3Zl
KCZ0YXNrKTsgfQogCisgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKiByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
LmdldCgpOyB9CisgICAgdm9pZCBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CisgICAg
CiBwcm90ZWN0ZWQ6CiAgICAgTmV0d29ya1Nlc3Npb24oTmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNl
c3Npb25JRCk7CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8TmV0
d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CiAgICAgSGFzaFNldDxOZXR3b3JrRGF0YVRh
c2sqPiBtX2RhdGFUYXNrU2V0OworICAgIFN0cmluZyBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3Rvcnk7CisgICAgUmVmUHRyPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZT4gbV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDVkNjQ1NGMzNzU0NjY4ODkxMmQzMzAy
M2YxZmQ5YWZjODIzNjhkMGUuLjI3MGFlNDMyMDU5ODk2NjU4OWU5N2E2YTE2YjM3NTQ4Y2JkYTdm
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC00Nyw2ICs0Nyw3IEBA
IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpwcml2YXRlU2Vzc2lvCiAjaWYgVVNFKENVUkwpCiAgICAgICAgICwgeyB9LCB7
IH0KICNlbmRpZgorICAgICAgICAsIHsgfSwgeyB9LCBmYWxzZQogICAgIH07CiB9CiAKQEAgLTY4
LDYgKzY5LDkgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGNvb2tpZVBlcnNp
c3RlbnRTdG9yYWdlRmlsZTsKICAgICBlbmNvZGVyIDw8IHByb3h5U2V0dGluZ3M7CiAjZW5kaWYK
KyAgICBlbmNvZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CisgICAgZW5j
b2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwor
ICAgIGVuY29kZXIgPDwgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKIH0KIAogT3B0aW9u
YWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMTMzLDcgKzEz
NywyMiBAQCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycz4gTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlYwogICAgIGlmICghcHJveHlTZXR0aW5ncykK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNlbmRpZgotICAgIAorCisgICAgT3B0aW9u
YWw8U3RyaW5nPiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OworICAgIGRlY29kZXIg
Pj4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKKyAgICBpZiAoIXJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3RvcnkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAg
ICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M7CisgICAgZGVjb2RlciA+PiBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOworICAgIGlm
ICghZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKwogICAgIHJldHVybiB7ewogICAgICAgICBzZXNzaW9uSUQKICAgICAgICAgLCBXVEZN
b3ZlKCpib3VuZEludGVyZmFjZUlkZW50aWZpZXIpCkBAIC0xNTEsNiArMTcwLDkgQEAgT3B0aW9u
YWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWMKICAgICAgICAgLCBXVEZNb3ZlKCpjb29raWVQZXJzaXN0ZW50U3Rv
cmFnZUZpbGUpCiAgICAgICAgICwgV1RGTW92ZSgqcHJveHlTZXR0aW5ncykKICNlbmRpZgorICAg
ICAgICAsIFdURk1vdmUoKnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCisgICAgICAg
ICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSkKKyAgICAgICAgLCBXVEZNb3ZlKCplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQogICAg
IH19OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMDlhZjMzMzIzMTNj
ZWI3MThiNGZmMDRkMzAxNjMzMTkxMWM5NDM3MC4uNmY5ZGU4YjgwMTM4ZDQxODY5ZDcxY2JmMDZk
YjkyMWNiOTQzMTQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMjUsNiAr
MjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIK
ICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNp
bmNsdWRlIDx3dGYvVVJMLmg+CkBAIC02OSw2ICs3MCw5IEBAIHN0cnVjdCBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU3RyaW5nIGNvb2tpZVBlcnNpc3RlbnRTdG9yYWdl
RmlsZTsKICAgICBXZWJDb3JlOjpDdXJsUHJveHlTZXR0aW5ncyBwcm94eVNldHRpbmdzOwogI2Vu
ZGlmCisgICAgU3RyaW5nIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7CisgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGU7CisgICAgYm9vbCBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsgZmFs
c2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4
IDM2NTU0ZDM0MzE5NjIzODhjNDAyMTNjMTBiYTA5OTkyZDg3ZjM3N2EuLjJkOWJlZTMyYjE3Nzhl
MGI1YWQzY2U4YjZiMDdmOTAyZDEwMzM3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTkzMiw2
ICs5MzIsMTAgQEAgTmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYShOZXR3
b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmsKIAogICAgIG1fc3RhdGVsZXNzU2Vz
c2lvbkRlbGVnYXRlID0gYWRvcHROUyhbW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBhbGxvY10g
aW5pdFdpdGhOZXR3b3JrU2Vzc2lvbjoqdGhpcyB3aXRoQ3JlZGVudGlhbHM6ZmFsc2VdKTsKICAg
ICBtX3N0YXRlbGVzc1Nlc3Npb24gPSBbTlNVUkxTZXNzaW9uIHNlc3Npb25XaXRoQ29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uIGRlbGVnYXRlOnN0YXRpY19jYXN0PGlkPihtX3N0YXRlbGVzc1Nl
c3Npb25EZWxlZ2F0ZS5nZXQoKSkgZGVsZWdhdGVRdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBtYWlu
UXVldWVdXTsKKworICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHBhcmFt
ZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKKyAgICBpZiAocGFyYW1ldGVy
cy5lbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQorICAgICAgICBlbmFibGVSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKCk7CiB9CiAKIE5ldHdvcmtTZXNzaW9uQ29jb2E6On5OZXR3b3JrU2Vzc2lv
bkNvY29hKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDRhNzkxZjM1YzMwZmFjZTQ3NGQ0NTlmMWYyMjIy
NWY4NmQ5NTk1ZGEuLjZjYWExMTdkZTNjOThmODllOGM3ZWRmMzhjMzdjZWQ3ZWQwNjk3MDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29s
LmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJzaXRlRGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvbm90SW1wbGVtZW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KIAogI2lmIEVOQUJMRShTRUNfSVRFTV9T
SElNKQpAQCAtNDE5LDYgKzQyMCwxMyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFVw
ZGF0ZUJsb2NrQ29va2llcyh1aW50NjRfdCBjYWxsYmFja0lkKQogICAgIG1fdXBkYXRlQmxvY2tD
b29raWVzQ2FsbGJhY2tNYXAudGFrZShjYWxsYmFja0lkKSgpOwogfQogCit2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmRpZExvZ1VzZXJJbnRlcmFjdGlvbih1aW50NjRfdCBjb250ZXh0SWQpCit7
CisgICAgLy8gRklYTUUoMTkzMjk3KTogSW1wbGVtZW50IHdoZW4gYWN0aXZhdGluZyBhdXRvbWF0
ZWQgdGVzdCBjYXNlcy4KKyAgICBVTlVTRURfUEFSQU0oY29udGV4dElkKTsKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEFnZUNhcEZvckNs
aWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uYWw8U2Vjb25k
cz4gc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA0ZmU1Y2U3
YTQ1NmVkYjViNDMyYzAxOGYzNzdiMzkyNDNjZmE1NDdlLi5lMzQ4YTg1Yjk1NGRlMjhmYTUxMWMz
OGYxMmRhNTA2Yzg4ODE5Nzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMTQyLDYgKzE0Miw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQodWludDY0X3QgcGFn
ZUlELCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIHVp
bnQzMl90IHJlc3VsdCwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKICAgICB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBkb3VibGUgdmFsdWUsIHVuc2lnbmVkIHNp
Z25pZmljYW50RmlndXJlcywgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgIHZvaWQgZGlkTG9nVXNlckludGVyYWN0aW9uKHVp
bnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBkaWRVcGRhdGVCbG9ja0Nvb2tpZXModWludDY0
X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZFNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVz
KHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBzdG9yYWdlQWNjZXNzUmVxdWVzdFJlc3Vs
dChib29sIHdhc0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggYjU2NDFmOTY5MDUwODIwZDU1ZWY4N2Q4YmUwNTg5OTFjOWM3NjNj
Yy4uMmFhZTNlYjRhODcyYWZiNTA3MTM3YTMxM2NmNzhjYWE2OGFjMWMzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDAsNiArNDAsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
UHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBMb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRp
b24sIGRvdWJsZSB2YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBlbnVtOmJvb2wg
V2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKIAogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgRGlkTG9nVXNlckludGVyYWN0aW9uKHVpbnQ2NF90IGNh
bGxiYWNrSWQpCiAgICAgRGlkVXBkYXRlQmxvY2tDb29raWVzKHVpbnQ2NF90IGNhbGxiYWNrSWQp
CiAgICAgRGlkU2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXModWludDY0X3QgY2FsbGJhY2tJ
ZCkKICAgICBTdG9yYWdlQWNjZXNzUmVxdWVzdFJlc3VsdChib29sIHdhc0dyYW50ZWQsIHVpbnQ2
NF90IGNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IGEyOThlM2ZmNDRmMWI4NjRlYzgzZWE1Y2FiNjBjMWNhYmJiYjZjMjcuLmQ4YTFmODQ2NDM5
Y2E0OGM0NmYyMzA2MjQ4ODljYWUzODFmMGMyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtMjIxLDEwICsyMjEsNiBAQAogI2luY2x1ZGUgIldlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvclByb3h5LmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCi0jaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3Rvci5oPgogI2VuZGlmCkBAIC00NDU1LDggKzQ0
NTEsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oV2ViRnJhbWVQcm94eSYgZnJhbWUsIFdlYkNvcmUKICAgICBBUEk6Ok5hdmlnYXRpb24qIG1h
aW5GcmFtZU5hdmlnYXRpb24gPSBmcmFtZS5pc01haW5GcmFtZSgpID8gbmF2aWdhdGlvbi5nZXQo
KSA6IG51bGxwdHI7CiAgICAgV2ViRnJhbWVQcm94eSogb3JpZ2luYXRpbmdGcmFtZSA9IG1fcHJv
Y2Vzcy0+d2ViRnJhbWUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpOwogCisjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoYXV0byogcmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlID0gd2Vic2l0ZURhdGFTdG9yZSgpLnJlc291cmNlTG9hZFN0YXRp
c3RpY3MoKSkKICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLT5sb2dGcmFtZU5h
dmlnYXRpb24oZnJhbWUsIFVSTChVUkwoKSwgbV9wYWdlTG9hZFN0YXRlLnVybCgpKSwgcmVxdWVz
dCwgcmVkaXJlY3RSZXNwb25zZS51cmwoKSk7CisgICAgbG9nRnJhbWVOYXZpZ2F0aW9uKGZyYW1l
LCBVUkwoVVJMKCksIG1fcGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVlc3QsIHJlZGlyZWN0UmVz
cG9uc2UudXJsKCkpOworI2VuZGlmCiAKICAgICBpZiAobV9wb2xpY3lDbGllbnQpCiAgICAgICAg
IG1fcG9saWN5Q2xpZW50LT5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKCp0aGlzLCAm
ZnJhbWUsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBvcmlnaW5hdGluZ0ZyYW1lLCBv
cmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUobGlzdGVuZXIpLCBtX3By
b2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgp
KTsKQEAgLTQ0NzksNiArNDQ3OCwzOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJGcmFtZVByb3h5JiBmcmFtZSwgV2ViQ29yZQogICAgIG1f
c2hvdWxkU3VwcHJlc3NBcHBMaW5rc0luTmV4dE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiA9IGZh
bHNlOwogfQogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKK3ZvaWQgV2Vi
UGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUs
IGNvbnN0IFVSTCYgcGFnZVVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CisgICAgCisgICAgYXV0byBzb3VyY2VVUkwgPSByZWRpcmVjdFVSTDsKKyAgICBib29s
IGlzUmVkaXJlY3QgPSAhcmVkaXJlY3RVUkwuaXNOdWxsKCk7CisgICAgaWYgKCFpc1JlZGlyZWN0
KSB7CisgICAgICAgIHNvdXJjZVVSTCA9IGZyYW1lLnVybCgpOworICAgICAgICBpZiAoc291cmNl
VVJMLmlzTnVsbCgpKQorICAgICAgICAgICAgc291cmNlVVJMID0gcGFnZVVSTDsKKyAgICB9Cisg
ICAgCisgICAgYXV0byYgdGFyZ2V0VVJMID0gcmVxdWVzdC51cmwoKTsKKyAgICAKKyAgICBpZiAo
IXRhcmdldFVSTC5pc1ZhbGlkKCkgfHwgIXBhZ2VVUkwuaXNWYWxpZCgpKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgYXV0byB0YXJnZXRIb3N0ID0gdGFyZ2V0VVJMLmhvc3QoKTsKKyAgICBh
dXRvIG1haW5GcmFtZUhvc3QgPSBwYWdlVVJMLmhvc3QoKTsKKyAgICAKKyAgICBpZiAodGFyZ2V0
SG9zdC5pc0VtcHR5KCkgfHwgbWFpbkZyYW1lSG9zdC5pc0VtcHR5KCkgfHwgdGFyZ2V0SG9zdCA9
PSBzb3VyY2VVUkwuaG9zdCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgYXV0byB0YXJn
ZXRQcmltYXJ5RG9tYWluID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbih0
YXJnZXRVUkwpOworICAgIGF1dG8gbWFpbkZyYW1lUHJpbWFyeURvbWFpbiA9IFJlc291cmNlTG9h
ZFN0YXRpc3RpY3M6OnByaW1hcnlEb21haW4ocGFnZVVSTCk7CisgICAgYXV0byBzb3VyY2VQcmlt
YXJ5RG9tYWluID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbihzb3VyY2VV
UkwpOworCisgICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnNlbmRUb05ldHdvcmtpbmdQcm9j
ZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6TG9nRnJhbWVOYXZpZ2F0aW9uKG1fd2Vic2l0
ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIHRhcmdldFByaW1hcnlEb21haW4sIG1haW5GcmFtZVBy
aW1hcnlEb21haW4sIHNvdXJjZVByaW1hcnlEb21haW4sIHRhcmdldEhvc3QudG9TdHJpbmcoKSwg
bWFpbkZyYW1lSG9zdC50b1N0cmluZygpLCBpc1JlZGlyZWN0LCBmcmFtZS5pc01haW5GcmFtZSgp
KSk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwg
RnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJl
cXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwg
Y29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAg
ICAgYXV0byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRlcjo6Y3JlYXRlKFdURk1vdmUocmVw
bHkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDU2YzhhMjll
YzM4Njc1NjY4ZGQ1Y2NiMjFlNDU1MzhmOTc3OTlkZi4uYzBlNWIxZmVlN2UzNDA4YjQwYzEzODg1
NjNlZjg2NWY3MTJhNTM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTE5MDcsNiArMTkwNywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0TmVlZHNGb250QXR0
cmlidXRlcyhib29sKTsKICAgICB2b2lkIHVwZGF0ZUZvbnRBdHRyaWJ1dGVzQWZ0ZXJFZGl0b3JT
dGF0ZUNoYW5nZSgpOwogCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAg
ICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBXZWJGcmFtZVByb3h5JiwgY29uc3QgVVJM
JiBwYWdlVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBVUkwmIHJl
ZGlyZWN0VVJMKTsKKyNlbmRpZgorCiAgICAgV2Vha1B0cjxQYWdlQ2xpZW50PiBtX3BhZ2VDbGll
bnQ7CiAgICAgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJhdGlvbjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDI1NzhkM2Ni
NDBhY2FjOGU5YzI5M2Q2N2ExMGI3NTczMDZiNDY5ODMuLmViYTNhMmJmMjU2M2M2OWQxZjJlZGRl
MzdlZDIxMTQ3ZjdiYWRjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKQEAgLTU0OCw2ICs1NDgsMTUgQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYgV2ViUHJv
Y2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdpdGgKICAg
ICBwYXJhbWV0ZXJzLnNob3VsZERpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9u
RGVsYXkgPSBtX3Nob3VsZERpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVs
YXk7CiAjZW5kaWYKIAorICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCisgICAgICAgIHBhcmFt
ZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJz
LnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBtX3dlYnNpdGVEYXRhU3RvcmUtPndl
YnNpdGVEYXRhU3RvcmUoKS5yZXNvbHZlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnko
KTsKKyAgICBpZiAocGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3Jr
U2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc0VtcHR5
KCkpCisgICAgICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29y
a1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBBUEk6
OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
KCk7CisKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJl
Y3RvcnkocGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgcGFyYW1ldGVycy5k
ZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBwYXJhbWV0
ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5l
bmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gdHJ1ZTsgLy8gRklYTUUoMTkzMjk3KTogVHVy
biBvbiB3aGVuIHRoZSBmZWF0dXJlIGlzIG9uLgorCiAgICAgLy8gQWRkIGFueSBwbGF0Zm9ybSBz
cGVjaWZpYyBwYXJhbWV0ZXJzCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3Mo
cGFyYW1ldGVycyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQppbmRleCA4
NzdlZGQ0YmVhZjRlZTE1YzI3ZGQwZDI0NzAxYzVmNmJkNDM3YzY0Li4wNjlkNGI5YjBhYzM2NmYy
YWQ4MDA4M2FkOGNlNTE4YWFmNTY5ZmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNv
Y29hLm1tCkBAIC04Myw2ICs4MywxMSBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJz
aXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICBpZiAoIWh0dHBzUHJveHkuaXNWYWxpZCgp
ICYmIGlzU2FmYXJpKQogICAgICAgICBodHRwc1Byb3h5ID0gVVJMKFVSTCgpLCBbZGVmYXVsdHMg
c3RyaW5nRm9yS2V5OihOU1N0cmluZyAqKVdlYktpdDJIVFRQU1Byb3h5RGVmYXVsdHNLZXldKTsK
IAorICAgIGF1dG8gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IG1fY29uZmlndXJh
dGlvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpOworICAgIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5SGFuZGxlOworICAg
IGlmICghcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShyZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5SGFuZGxlKTsKKwogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7
CiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSB7CiAgICAgICAgIG1f
c2Vzc2lvbklELApAQCAtOTUsNiArMTAwLDkgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMg
V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgICAgIFNlY29uZHMgeyBbZGVmYXVs
dHMgaW50ZWdlckZvcktleTpXZWJLaXROZXR3b3JrTG9hZFRocm90dGxlTGF0ZW5jeU1pbGxpc2Vj
b25kc0RlZmF1bHRzS2V5XSAvIDEwMDAuIH0sCiAgICAgICAgIFdURk1vdmUoaHR0cFByb3h5KSwK
ICAgICAgICAgV1RGTW92ZShodHRwc1Byb3h5KSwKKyAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5KSwKKyAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5SGFuZGxlKSwKKyAgICAgICAgZmFsc2UgLy8gRklYTUUoMTkzMjk3KTog
U3dpdGNoIHRvIG1fY29uZmlndXJhdGlvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
KQogICAgIH07CiAKICAgICBhdXRvIGNvb2tpZUZpbGUgPSByZXNvbHZlZENvb2tpZVN0b3JhZ2VG
aWxlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358769</attachid>
            <date>2019-01-09 17:18:35 -0800</date>
            <delta_ts>2019-01-09 19:16:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193261-20190109171834.patch</filename>
            <type>text/plain</type>
            <size>43858</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5Nzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUxMTk3ZWY1NGQ2NWE1MDQw
ZGFiMDEwYTQ4ZmJhMzQwMjllYjMzYzQuLjRjYjU1NjYwZTAxYjUzMTUyZmZjYzQ1YTcwZDU0YTMw
MzliYzJmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcgQEAKKzIwMTktMDEtMDkgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIGEgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlIGF0dGFjaGVkIHRvIHRoZSBOZXR3b3JrU2Vzc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMjYxCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NzE1ODYxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1vZGlmaWVzIE5ldHdvcmtTZXNzaW9u
IHNvIHRoYXQgaXQgb3ducyBhIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZQorICAgICAg
ICBvYmplY3QuIFRoaXMgb2JqZWN0IGlzIG9ubHkgY3JlYXRlZCBpZiB0aGUgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyBmZWF0dXJlIGlzIHR1cm5lZCBvbi4KKworICAgICAgICBUaGUgcGF0Y2ggYWxz
byBtb2RpZmllcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgc28gdGhhdCBpdCBjYW4g
YmUgY29uc3RydWN0ZWQKKyAgICAgICAgd2l0aCBhbiBvd25pbmcgTmV0d29ya1Nlc3Npb24gYXMg
YW4gYWx0ZXJuYXRpdmUgdG8gdGhlIGN1cnJlbnQgcHJhY3RpY2Ugb2YgdXNpbmcgYQorICAgICAg
ICBXZWJzaXRlRGF0YSBvYmplY3QuCisKKyAgICAgICAgVHdvIGluaXRpYWwgbWVzc2FnZXMgZnJv
bSB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFyZSBhZGRlZCAobG9nRnJhbWVOYXZpZ2F0aW9uIGFu
ZAorICAgICAgICBsb2dVc2VyTmF2aWdhdGlvbikgdGhhdCBub3RpZnkgdGhlIG5ldHdvcmsgcHJv
Y2VzcyBvZiB0aGVzZSBhY3Rpb25zLiBDdXJyZW50bHkgdGhleQorICAgICAgICBhcmUgY2FsbGVk
IGluIGFkZGl0aW9uIHRoZSBjYWxscyB0byB0aGUgV2ViU2l0ZURhdGEgb2JqZWN0LiBUaGVzZSBy
ZWR1bmRhbnQgY2FsbHMKKyAgICAgICAgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHBhdGNo
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggZm9yY2VzIHRoZSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
IGNvZGUgaW4gdGhlIE5ldHdvcmtTZXNzaW9uIHRvIGJlIG9mZiBieQorICAgICAgICBkZWZhdWx0
LCBzbyB0aGVyZSBzaG91bGQgYmUgbm8gY2hhbmdlIGluIGJlaGF2aW9yIHdpdGggdGhpcyBwYXRj
aC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOjp1cGRhdGVDbGllbnRTaWRlQ29va2llc0FnZUNhcCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFz
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6cmVtb3ZlQWxsU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldENh
Y2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRDYWNoZU1heEFnZUNhcCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6dXBkYXRlUHJldmFsZW50
RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsVXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29r
aWVzRm9ySGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6cmVtb3ZlUHJldmFsZW50RG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbFJlbW92ZURvbWFpbnNIYW5kbGVyKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpsb2dGcmFtZU5hdmlnYXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb246OmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
OjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpwcml2YXRlU2Vzc2lvblBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNv
Y29hOjpOZXR3b3JrU2Vzc2lvbkNvY29hKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NQcm94eTo6ZGlkTG9nVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAgICAgICAoV2Vi
c2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9nRnJh
bWVOYXZpZ2F0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKToKKwogMjAxOS0wMS0wOSAgQnJl
bnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBVcGRhdGUg
c2FuZGJveCBwcm9maWxlIHRvIHVzZSBpY29uc2VydmljZXMgaW5zdGVhZCBvZiBsc2RpY29uc2Vy
dmljZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
LmNwcAppbmRleCAxOWMzOGUxYzQ3Y2VkNjA4MjU3OGU3ZDE5MzgxNTFmZDUwZjc1NGZkLi44ZDYy
ZDY4YzFjNDlmNDlmNzkxNjBkZmViYjZhZmE2OTA4N2ZlZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcApAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oIgogCiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAi
UGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzUHJveHkuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2UuaCIKQEAg
LTM0LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1l
dHJ5LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
S2V5ZWRDb2RpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oPgogI2luY2x1ZGUg
PHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KQEAg
LTg2Miw2ICs4NjQsOCBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6
dXBkYXRlQ2xpZW50U2lkZUNvb2tpZXNBZ2VDYXAoKQogICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNw
YXRjaChbc3RvcmUgPSBtYWtlUmVmKG1fc3RvcmUpLCBzZWNvbmRzID0gbV9wYXJhbWV0ZXJzLmNs
aWVudFNpZGVDb29raWVzQWdlQ2FwVGltZV0gKCkgewogICAgICAgICBpZiAoYXV0byogd2Vic2l0
ZURhdGFTdG9yZSA9IHN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkpCiAgICAgICAgICAgICB3ZWJz
aXRlRGF0YVN0b3JlLT5zZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhzZWNvbmRzLCBbXSB7
IH0pOworICAgICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBzdG9yZS0+bmV0d29ya1Nl
c3Npb24oKSkKKyAgICAgICAgICAgIG5ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Np
b24oKS5zZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhzZWNvbmRzKTsKICAgICB9KTsKICNl
bmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAppbmRleCA0NTFlNzEwOGQ3ODEwZTQxYTU2NDczNDA4YzI1MTFkZmExMGZiYmMzLi5mMmQyOTcz
OTJhZDNkNzVlZjI4NTQ4MGJmZmNlY2I2NDkyZGFjZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTYtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNs
dWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKIAogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQZXJzaXN0ZW50U3RvcmFnZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lUHJveHkuaCIKQEAgLTM3
LDYgKzM4LDcgQEAKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5
LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFGZXRjaE9wdGlvbi5oIgogI2luY2x1ZGUgIldlYnNp
dGVEYXRhU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oPgogI2luY2x1ZGUg
PHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3Bp
ZXIuaD4KQEAgLTEyMSw2ICsxMjMsMjEgQEAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSYKICAgICBt
X2RhaWx5VGFza3NUaW1lci5zdGFydFJlcGVhdGluZygyNF9oKTsKIH0KIAorV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29y
a1Nlc3Npb24mIG5ldHdvcmtTZXNzaW9uLCBjb25zdCBTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRp
c3RpY3NEaXJlY3RvcnkpCisgICAgOiBtX25ldHdvcmtTZXNzaW9uKG1ha2VXZWFrUHRyKG5ldHdv
cmtTZXNzaW9uKSkKKyAgICAsIG1fc3RhdGlzdGljc1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgUHJvY2VzcyBEYXRhIFF1ZXVlIiwgV29ya1F1
ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVdGlsaXR5KSkKKyAgICAsIG1fZGFp
bHlUYXNrc1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6cGVyZm9ybURhaWx5VGFza3MpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKKyAgICAKKyAgICBwb3N0VGFzayhbdGhpcywgcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RpcmVjdG9yeSA9IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNvbGF0ZWRDb3B5
KCldIHsKKyAgICAgICAgbV9tZW1vcnlTdG9yZSA9IHN0ZDo6bWFrZV91bmlxdWU8UmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlPigqdGhpcywgbV9zdGF0aXN0aWNzUXVldWUpOworICAg
ICAgICBtX3BlcnNpc3RlbnRTdG9yYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U+KCptX21lbW9yeVN0b3JlLCBtX3N0YXRpc3RpY3NR
dWV1ZSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSk7CisgICAgfSk7CisgICAgCisg
ICAgbV9kYWlseVRhc2tzVGltZXIuc3RhcnRSZXBlYXRpbmcoMjRfaCk7Cit9CisKIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6fldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSgp
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTIzNiw2ICsyNTMsMTMgQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoU3Ry
aW5nJiYgc3ViRnJhbWVIb3N0LCBTdHIKICAgICB9KTsKIH0KIAorI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCitib29sIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFN0cmluZyYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
cGFnZUlEKQoreworICAgIHJldHVybiBtX25ldHdvcmtTZXNzaW9uID8gbV9uZXR3b3JrU2Vzc2lv
bi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuaGFzU3RvcmFnZUFjY2VzcyhyZXNvdXJjZURvbWFp
biwgZmlyc3RQYXJ0eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlEKSA6IGZhbHNlOworfQorI2VuZGlm
CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3RvcmFnZUFj
Y2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBT
dHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJ
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGhhc0FjY2Vzcyk+JiYgY2FsbGJhY2spCiB7
CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTI0NCw2ICsyNjgsOSBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JG
cmFtZUhhbmRsZXIoY29uc3QgUwogICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpIHsKICAgICAg
ICAgbV93ZWJzaXRlRGF0YVN0b3JlLT5oYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKHJl
c291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQsIFdURk1vdmUo
Y2FsbGJhY2spKTsKICAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSB7CisgICAgICAgIGNhbGxi
YWNrKGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShyZXNvdXJjZURvbWFpbiwgZmlyc3RQYXJ0eURv
bWFpbiwgZnJhbWVJRCwgcGFnZUlEKSk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYK
ICAgICBjYWxsYmFjayhmYWxzZSk7CkBAIC0zMDksNiArMzM2LDIxIEBAIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJh
bWVIb3N0LCBTCiAgICAgfSk7CiB9CiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQorYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFj
Y2Vzcyhjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFy
dHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQpCit7
CisgICAgYm9vbCBpc1N0b3JhZ2VHcmFudGVkID0gZmFsc2U7CisKKyAgICBpZiAobV9uZXR3b3Jr
U2Vzc2lvbikgeworICAgICAgICBtX25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Np
b24oKS5ncmFudFN0b3JhZ2VBY2Nlc3MocmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4s
IGZyYW1lSUQsIHBhZ2VJRCk7CisgICAgICAgIEFTU0VSVChtX25ldHdvcmtTZXNzaW9uLT5uZXR3
b3JrU3RvcmFnZVNlc3Npb24oKS5oYXNTdG9yYWdlQWNjZXNzKHJlc291cmNlRG9tYWluLCBmaXJz
dFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQpKTsKKyAgICAgICAgaXNTdG9yYWdlR3JhbnRl
ZCA9IHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGlzU3RvcmFnZUdyYW50ZWQ7Cit9CisjZW5k
aWYKKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0b3Jh
Z2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN0cmluZyYgc3ViRnJhbWVQcmltYXJ5RG9tYWluLCBjb25z
dCBTdHJpbmcmIHRvcEZyYW1lUHJpbWFyeURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIHVpbnQ2NF90IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxs
YmFjaykKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMzE3LDYgKzM1OSw5
IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdl
QWNjZXNzSGFuZGxlcihjb25zdCBTdHJpbmcmCiAgICAgaWYgKG1fd2Vic2l0ZURhdGFTdG9yZSkg
ewogICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPmdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIo
c3ViRnJhbWVQcmltYXJ5RG9tYWluLCB0b3BGcmFtZVByaW1hcnlEb21haW4sIGZyYW1lSUQsIHBh
Z2VJRCwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIHsK
KyAgICAgICAgY2FsbGJhY2soZ3JhbnRTdG9yYWdlQWNjZXNzKHN1YkZyYW1lUHJpbWFyeURvbWFp
biwgdG9wRnJhbWVQcmltYXJ5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQpKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIH0KICNlbmRpZgogICAgIGNhbGxiYWNrKGZhbHNlKTsKQEAgLTMzMywxOCArMzc4
LDI2IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpkaWRDcmVhdGVOZXR3
b3JrUHJvY2VzcygpCiAgICAgfSk7CiB9CiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92ZUFsbFN0
b3JhZ2VBY2Nlc3MoKQoreworICAgIGlmIChtX25ldHdvcmtTZXNzaW9uKQorICAgICAgICBtX25l
dHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5yZW1vdmVBbGxTdG9yYWdlQWNj
ZXNzKCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGlmIChtX3dlYnNpdGVEYXRhU3Rv
cmUpCisgICAgaWYgKG1fd2Vic2l0ZURhdGFTdG9yZSkgewogICAgICAgICBtX3dlYnNpdGVEYXRh
U3RvcmUtPnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKLSAgICBlbHNlCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0jZWxzZQot
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmVt
b3ZlQWxsU3RvcmFnZUFjY2VzcygpOwogI2VuZGlmCisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
IH0KIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmFwcGxpY2F0aW9uV2ls
bFRlcm1pbmF0ZSgpCkBAIC00MDIsNyArNDU1LDEyIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJh
CiAgICAgYXV0byBtYWluRnJhbWVQcmltYXJ5RG9tYWluID0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
czo6cHJpbWFyeURvbWFpbihwYWdlVVJMKTsKICAgICBhdXRvIHNvdXJjZVByaW1hcnlEb21haW4g
PSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmltYXJ5RG9tYWluKHNvdXJjZVVSTCk7CiAKLSAg
ICBwb3N0VGFzayhbdGhpcywgdGFyZ2V0UHJpbWFyeURvbWFpbiA9IHRhcmdldFByaW1hcnlEb21h
aW4uaXNvbGF0ZWRDb3B5KCksIG1haW5GcmFtZVByaW1hcnlEb21haW4gPSBtYWluRnJhbWVQcmlt
YXJ5RG9tYWluLmlzb2xhdGVkQ29weSgpLCBzb3VyY2VQcmltYXJ5RG9tYWluID0gc291cmNlUHJp
bWFyeURvbWFpbi5pc29sYXRlZENvcHkoKSwgdGFyZ2V0SG9zdCA9IHRhcmdldEhvc3QudG9TdHJp
bmcoKS5pc29sYXRlZENvcHkoKSwgbWFpbkZyYW1lSG9zdCA9IG1haW5GcmFtZUhvc3QudG9TdHJp
bmcoKS5pc29sYXRlZENvcHkoKSwgaXNSZWRpcmVjdCwgaXNNYWluRnJhbWUgPSBmcmFtZS5pc01h
aW5GcmFtZSgpXSB7CisgICAgbG9nRnJhbWVOYXZpZ2F0aW9uKHRhcmdldFByaW1hcnlEb21haW4s
IG1haW5GcmFtZVByaW1hcnlEb21haW4sIHNvdXJjZVByaW1hcnlEb21haW4sIHRhcmdldEhvc3Qu
dG9TdHJpbmcoKSwgbWFpbkZyYW1lSG9zdC50b1N0cmluZygpLCBpc1JlZGlyZWN0LCBmcmFtZS5p
c01haW5GcmFtZSgpKTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBTdHJpbmcmIHRhcmdldFByaW1hcnlEb21haW4sIGNv
bnN0IFN0cmluZyYgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBzb3VyY2VQ
cmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIHRhcmdldEhvc3QsIGNvbnN0IFN0cmluZyYgbWFp
bkZyYW1lSG9zdCwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKQoreworICAgIHBv
c3RUYXNrKFt0aGlzLCB0YXJnZXRQcmltYXJ5RG9tYWluID0gdGFyZ2V0UHJpbWFyeURvbWFpbi5p
c29sYXRlZENvcHkoKSwgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiA9IG1haW5GcmFtZVByaW1hcnlE
b21haW4uaXNvbGF0ZWRDb3B5KCksIHNvdXJjZVByaW1hcnlEb21haW4gPSBzb3VyY2VQcmltYXJ5
RG9tYWluLmlzb2xhdGVkQ29weSgpLCB0YXJnZXRIb3N0ID0gdGFyZ2V0SG9zdC5pc29sYXRlZENv
cHkoKSwgbWFpbkZyYW1lSG9zdCA9IG1haW5GcmFtZUhvc3QuaXNvbGF0ZWRDb3B5KCksIGlzUmVk
aXJlY3QsIGlzTWFpbkZyYW1lXSB7CiAgICAgICAgIAogICAgICAgICBpZiAobV9tZW1vcnlTdG9y
ZSkKICAgICAgICAgICAgIG1fbWVtb3J5U3RvcmUtPmxvZ0ZyYW1lTmF2aWdhdGlvbih0YXJnZXRQ
cmltYXJ5RG9tYWluLCBtYWluRnJhbWVQcmltYXJ5RG9tYWluLCBzb3VyY2VQcmltYXJ5RG9tYWlu
LCB0YXJnZXRIb3N0LCBtYWluRnJhbWVIb3N0LCBpc1JlZGlyZWN0LCBpc01haW5GcmFtZSk7CkBA
IC00MTgsNyArNDc2LDE0IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjps
b2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVVJMJiB1cmwsIENvbXBsZXRpCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBwb3N0VGFzayhbdGhpcywgcHJpbWFyeURvbWFpbiA9IGlzb2xhdGVk
UHJpbWFyeURvbWFpbih1cmwpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgIGxvZ1VzZXJJbnRlcmFjdGlvbihpc29sYXRlZFBy
aW1hcnlEb21haW4odXJsKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6bG9nVXNlckludGVyYWN0aW9uKGNvbnN0
IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisK
KyAgICBwb3N0VGFzayhbdGhpcywgcHJpbWFyeURvbWFpbiA9IHRhcmdldFByaW1hcnlEb21haW4u
aXNvbGF0ZWRDb3B5KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX21lbW9yeVN0b3JlKQogICAgICAgICAg
ICAgbV9tZW1vcnlTdG9yZS0+bG9nVXNlckludGVyYWN0aW9uKHByaW1hcnlEb21haW4pOwogICAg
ICAgICBwb3N0VGFza1JlcGx5KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTgyMyw2
ICs4ODgsMTQgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldEdyYW5k
ZmF0aGVyaW5nVGltZShTZWNvbmRzIHNlY29uZHMpCiAgICAgfSk7CiB9CiAKKyNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OnNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFNlY29uZHMgc2Vj
b25kcykKK3sKKyAgICBpZiAobV9uZXR3b3JrU2Vzc2lvbikKKyAgICAgICAgbV9uZXR3b3JrU2Vz
c2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxl
bnRSZXNvdXJjZXMoc2Vjb25kcyk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OnNldENhY2hlTWF4QWdlQ2FwKFNlY29uZHMgc2Vjb25kcywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CkBAIC04MzMsMTAgKzkwNiwxOSBAQCB2b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Q2FjaGVNYXhBZ2VDYXAoU2Vjb25kcyBzZWNvbmRzLCBD
b21wbGV0aQogICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnNldENhY2hlTWF4QWdlQ2FwRm9y
UHJldmFsZW50UmVzb3VyY2VzKHNlY29uZHMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVu
dFJlc291cmNlcyhzZWNvbmRzKTsKICNlbmRpZgogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQordm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2ll
c0Zvcihjb25zdCBWZWN0b3I8U3RyaW5nPiYgZG9tYWluc1RvQmxvY2spCit7CisgICAgaWYgKG1f
bmV0d29ya1Nlc3Npb24pCisgICAgICAgIG1fbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdl
U2Vzc2lvbigpLnNldFByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zvcihkb21haW5zVG9C
bG9jayk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OmNhbGxVcGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3JIYW5kbGVyKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBkb21haW5zVG9CbG9jaywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CkBAIC04NDYsMTAgKzkyOCwxOSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6Y2FsbFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcgogICAgICAgICBt
X3dlYnNpdGVEYXRhU3RvcmUtPnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zv
cihkb21haW5zVG9CbG9jaywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorICAgIHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0Zv
cihkb21haW5zVG9CbG9jayk7CiAjZW5kaWYKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQog
CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKK3ZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBkb21haW5zKQoreworICAgIGlmIChtX25ldHdvcmtTZXNzaW9uKQorICAgICAgICBt
X25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5yZW1vdmVQcmV2YWxlbnRE
b21haW5zKGRvbWFpbnMpOworfQorI2VuZGlmCisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpjYWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIoY29uc3QgVmVjdG9yPFN0cmluZz4m
IGRvbWFpbnMpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTg1Nyw2ICs5
NDgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbFJlbW92ZURv
bWFpbnNIYW5kbGVyKGNvbnN0IFZlY3RvcjxTdHJpbgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCiAgICAgaWYgKG1fd2Vic2l0ZURhdGFTdG9yZSkKICAgICAgICAgbV93ZWJz
aXRlRGF0YVN0b3JlLT5yZW1vdmVQcmV2YWxlbnREb21haW5zKGRvbWFpbnMpOworICAgIHJlbW92
ZVByZXZhbGVudERvbWFpbnMoZG9tYWlucyk7CiAjZW5kaWYKIH0KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCA1ODE3MDRhNGVmMjk5ZGMw
ODNkMjc5ZjUzNGM3NzI4MWNmYTc2YjRlLi4wMDIzNmEzOTU1M2VjMjFjZDE4NGNjNjcyNTU4NzBm
ZGE1N2VmYWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oCkBAIC00Niw2ICs0Niw3IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgTmV0d29ya1Nlc3Npb247CiBjbGFzcyBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU7CiBjbGFzcyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGVyc2lzdGVudFN0b3JhZ2U7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwpAQCAtNjUsNiArNjYsMTEg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUod2Vic2l0ZURhdGFTdG9yZSkpOwogICAgIH0KIAorICAgIHN0YXRpYyBS
ZWY8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24m
IG5ldHdvcmtTZXNzaW9uLCBjb25zdCBTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnkpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUobmV0d29ya1Nlc3Npb24sIHJlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkpKTsKKyAgICB9CisKICAgICB+V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
KCk7CiAKICAgICBzdGF0aWMgY29uc3QgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4mIG1vbml0
b3JlZERhdGFUeXBlcygpOwpAQCAtODMsOSArODksMTMgQEAgcHVibGljOgogICAgIHZvaWQgYXBw
bGljYXRpb25XaWxsVGVybWluYXRlKCk7CiAKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihj
b25zdCBXZWJGcmFtZVByb3h5JiwgY29uc3QgVVJMJiBwYWdlVVJMLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBVUkwmIHJlZGlyZWN0VVJMKTsKKyAgICB2b2lkIGxvZ0Zy
YW1lTmF2aWdhdGlvbihjb25zdCBTdHJpbmcmIHRhcmdldFByaW1hcnlEb21haW4sIGNvbnN0IFN0
cmluZyYgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBzb3VyY2VQcmltYXJ5
RG9tYWluLCBjb25zdCBTdHJpbmcmIHRhcmdldEhvc3QsIGNvbnN0IFN0cmluZyYgbWFpbkZyYW1l
SG9zdCwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKTsKICAgICB2b2lkIGxvZ1Vz
ZXJJbnRlcmFjdGlvbihjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURv
bWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsZWFyVXNlcklu
dGVyYWN0aW9uKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAg
Ym9vbCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3RyaW5nJiByZXNvdXJjZURvbWFpbiwgY29u
c3QgU3RyaW5nJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
dWludDY0X3QgcGFnZUlEKTsKICAgICB2b2lkIGhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBV
UkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICBib29sIGhhc1N0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJp
bmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCk7
CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBVUkwmLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgVVJM
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZlcnlQcmV2YWxl
bnRSZXNvdXJjZShjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAt
OTgsNiArMTA4LDkgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJQcmV2YWxlbnRSZXNvdXJjZShj
b25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0R3Jh
bmRmYXRoZXJlZChjb25zdCBVUkwmLCBib29sKTsKICAgICB2b2lkIGlzR3JhbmRmYXRoZXJlZChj
b25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJl
bW92ZUFsbFN0b3JhZ2VBY2Nlc3MoKTsKKyAgICB2b2lkIHJlbW92ZVByZXZhbGVudERvbWFpbnMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb0Jsb2NrKTsKKyAgICB2b2lkIHNldENhY2hl
TWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFNlY29uZHMpOwogICAgIHZvaWQgc2V0U3Vi
ZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luKGNvbnN0IFVSTCYgc3ViZnJhbWUsIGNvbnN0IFVSTCYg
dG9wRnJhbWUpOwogICAgIHZvaWQgc2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luKGNv
bnN0IFVSTCYgc3VicmVzb3VyY2UsIGNvbnN0IFVSTCYgdG9wRnJhbWUpOwogICAgIHZvaWQgc2V0
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKGNvbnN0IFVSTCYgc3VicmVzb3VyY2UsIGNvbnN0
IFVSTCYgaG9zdE5hbWVSZWRpcmVjdGVkVG8pOwpAQCAtMTA5LDYgKzEyMiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJCbG9ja2luZ1N0YXRlRm9yRG9tYWlucyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYgZG9tYWlucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZygpOwogICAgIHZv
aWQgc3VibWl0VGVsZW1ldHJ5KCk7CisgICAgdm9pZCB1cGRhdGVQcmV2YWxlbnREb21haW5zVG9C
bG9ja0Nvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb0Jsb2NrKTsKIAog
ICAgIGVudW0gY2xhc3MgU2hvdWxkR3JhbmRmYXRoZXIgewogICAgICAgICBObywKQEAgLTE0MCw5
ICsxNTQsMTEgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MoKTsK
IAogICAgIFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUoKSB7IHJldHVybiBtX3dl
YnNpdGVEYXRhU3RvcmUuZ2V0KCk7IH0KKyAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Np
b24oKSB7IHJldHVybiBtX25ldHdvcmtTZXNzaW9uLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKFdlYnNpdGVEYXRhU3RvcmUm
KTsKKyAgICBleHBsaWNpdCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nl
c3Npb24mLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQgcG9zdFRhc2soV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYpOwogICAgIHN0YXRpYyB2b2lkIHBvc3RUYXNrUmVwbHkoV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYpOwpAQCAtMTYxLDYgKzE3Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmbHVz
aEFuZERlc3Ryb3lQZXJzaXN0ZW50U3RvcmUoKTsKIAogICAgIFdlYWtQdHI8V2Vic2l0ZURhdGFT
dG9yZT4gbV93ZWJzaXRlRGF0YVN0b3JlOworICAgIFdlYWtQdHI8TmV0d29ya1Nlc3Npb24+IG1f
bmV0d29ya1Nlc3Npb247CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9zdGF0aXN0aWNzUXVldWU7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZT4gbV9t
ZW1vcnlTdG9yZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Bl
cnNpc3RlbnRTdG9yYWdlPiBtX3BlcnNpc3RlbnRTdG9yYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAxNmY5ZjdkMGIxN2MzMmNk
ZWY4OTVmMzA5YTA2NTE4ZTNjZTczNjJmLi40ZTMxNDgwYjQxOGZhNGQ3MmE5ZWYwMWZlNGM2ODg0
M2U0YWYzY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIu
aCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQb29sTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaCIKICNpbmNsdWRlICJXZWJTV09yaWdpblN0b3JlLmgiCiAjaW5jbHVkZSAiV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmgiCkBAIC0zMDEsNiArMzAyLDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5l
dHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYKICAgICBpZiAo
cGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24pCiAgICAgICAgIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpOwogCisgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuZGVmYXVsdERhdGFT
dG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRp
c3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCiAgICAgYXV0byBzZXNzaW9uSUQgPSBw
YXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycy5zZXNzaW9uSUQ7CiAgICAgU2Vzc2lvblRyYWNrZXI6OnNldFNlc3Npb24oc2Vzc2lvbklE
LCBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHBhcmFtZXRlcnMuZGVmYXVs
dERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKSkpOwogCkBAIC01
MjMsNiArNTI2LDI3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmdyYW50U3RvcmFnZUFjY2VzcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYKICAgICBwYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpTdG9yYWdl
QWNjZXNzUmVxdWVzdFJlc3VsdChpc1N0b3JhZ2VHcmFudGVkLCBjb250ZXh0SWQpLCAwKTsKIH0K
IAordm9pZCBOZXR3b3JrUHJvY2Vzczo6bG9nRnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB0YXJnZXRQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJp
bmcmIG1haW5GcmFtZVByaW1hcnlEb21haW4sIGNvbnN0IFN0cmluZyYgc291cmNlUHJpbWFyeURv
bWFpbiwgY29uc3QgU3RyaW5nJiB0YXJnZXRIb3N0LCBjb25zdCBTdHJpbmcmIG1haW5GcmFtZUhv
c3QsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkKK3sKKyAgICBpZiAoYXV0byog
bmV0d29ya1Nlc3Npb24gPSBTZXNzaW9uVHJhY2tlcjo6bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklE
KSkgeworICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtT
ZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCisgICAgICAgICAgICByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLT5sb2dGcmFtZU5hdmlnYXRpb24odGFyZ2V0UHJpbWFyeURvbWFpbiwgbWFp
bkZyYW1lUHJpbWFyeURvbWFpbiwgc291cmNlUHJpbWFyeURvbWFpbiwgdGFyZ2V0SG9zdCwgbWFp
bkZyYW1lSG9zdCwgaXNSZWRpcmVjdCwgaXNNYWluRnJhbWUpOworICAgIH0gZWxzZQorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6bG9nVXNl
ckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB0YXJn
ZXRQcmltYXJ5RG9tYWluLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYgKGF1dG8qIG5l
dHdvcmtTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkp
IHsKKyAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vz
c2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKSB7CisgICAgICAgICAgICByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLT5sb2dVc2VySW50ZXJhY3Rpb24odGFyZ2V0UHJpbWFyeURvbWFpbiwgW3Ro
aXMsIGNvbnRleHRJZF0geworICAgICAgICAgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkRpZExvZ1VzZXJJbnRlcmFj
dGlvbihjb250ZXh0SWQpLCAwKTsKKyAgICAgICAgICAgIH0pOyAgICAgICAgCisgICAgICAgIH0K
KyAgICB9IGVsc2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCBjb250ZXh0SWQpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3RvcmFnZVNlc3Npb24oc2Vzc2lvbklE
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRl
eCBjZWM4OGVlNTQ0MWI4ZjVkNTU3NzQzMTU5MzJjYmI0OWY1OTFjZmIzLi4zM2U3NWRhYzFlZDcx
MmJiNDdjNzA1ZWQyMTRkNTUxYjY0YzY3N2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xNTcsNiArMTU3LDggQEAgcHVibGljOgogICAg
IHZvaWQgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgY29udGV4dElkKTsKICAgICB2
b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBj
b250ZXh0SWQpOwogICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIHJlc291cmNlRG9tYWluLCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlEb21h
aW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90
IGNvbnRleHRJZCk7CisgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgdGFyZ2V0UHJpbWFyeURvbWFpbiwgY29uc3QgU3RyaW5nJiBtYWluRnJh
bWVQcmltYXJ5RG9tYWluLCBjb25zdCBTdHJpbmcmIHNvdXJjZVByaW1hcnlEb21haW4sIGNvbnN0
IFN0cmluZyYgdGFyZ2V0SG9zdCwgY29uc3QgU3RyaW5nJiBtYWluRnJhbWVIb3N0LCBib29sIGlz
UmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpOworICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9u
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHRhcmdldFByaW1hcnlEb21haW4sIHVpbnQ2
NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKFBBTDo6U2Vz
c2lvbklELCB1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgcmVtb3ZlUHJldmFsZW50RG9t
YWlucyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnMpOwogICAg
IHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9u
SUQsIFNlY29uZHMsIHVpbnQ2NF90IGNvbnRleHRJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA4ZDg3
MjI0YmYzMTFlNzdlNTVhMjEwODczYTRhN2E1NDNkMWUxZjAyLi44YmExNjc1ZGM4OGU2NGI2NTlh
Y2M5ZjQxM2U4NmE1YzFjMzZlN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTkwLDYgKzkwLDggQEAg
bWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEhhc1N0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyByZXNvdXJj
ZURvbWFpbiwgU3RyaW5nIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IHBhZ2VJRCwgdWludDY0X3QgY29udGV4dElkKQogICAgIEdldEFsbFN0b3JhZ2VBY2Nlc3NF
bnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgY29udGV4dElkKQogICAg
IEdyYW50U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyByZXNv
dXJjZURvbWFpbiwgU3RyaW5nIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGNvbnRleHRJZCkKKyAgICBMb2dGcmFt
ZU5hdmlnYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgdGFyZ2V0UHJpbWFy
eURvbWFpbiwgU3RyaW5nIG1haW5GcmFtZVByaW1hcnlEb21haW4sIFN0cmluZyBzb3VyY2VQcmlt
YXJ5RG9tYWluLCBTdHJpbmcgdGFyZ2V0SG9zdCwgU3RyaW5nIG1haW5GcmFtZUhvc3QsIGJvb2wg
aXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkKKyAgICBMb2dVc2VySW50ZXJhY3Rpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgdGFyZ2V0UHJpbWFyeURvbWFpbiwgdWludDY0
X3QgY29udGV4dElkKQogICAgIFJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCB1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgUmVtb3ZlUHJldmFsZW50RG9tYWlu
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxTdHJpbmc+IGRvbWFpbnNXaXRoSW50
ZXJhY3Rpb24pCiAgICAgU2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMsIHVpbnQ2NF90IGNvbnRleHRJ
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAK
aW5kZXggNWJhNWMxY2NlNGU2MTgyYTRjZDJlY2RlMDA5NTA2NmFmNTQ5ZGJlZi4uODIwNTQ2ZDg1
YWJmYWQ0M2E5ZDY5MDMzOGNiYTQ5MTliMTQ1YzM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAKKyNpbmNsdWRlICJXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC03Nyw0ICs3OCwxMiBA
QCB2b2lkIE5ldHdvcmtTZXNzaW9uOjppbnZhbGlkYXRlQW5kQ2FuY2VsKCkKICAgICAgICAgdGFz
ay0+aW52YWxpZGF0ZUFuZENhbmNlbCgpOwogfQogCit2b2lkIE5ldHdvcmtTZXNzaW9uOjplbmFi
bGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkKK3sKKyAgICBpZiAobV9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZSgqdGhpcywgbV9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggYzA0
ODdkYTJlZDFiOWVjZGZlNDcxZjkzMTlmNTIxOWMyOWI5MmU2YS4uNDI5MmRiNzU3YTkzODFiODVh
NGI5NWNlMzI1NjU5YTdmYTM5YzdiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaApAQCAtMzAsNiArMzAsOCBAQAogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOwpA
QCAtMzksOSArNDEsMTAgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtEYXRh
VGFzazsKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOworY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOwogc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOwogCi1j
bGFzcyBOZXR3b3JrU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtTZXNzaW9uPiB7
CitjbGFzcyBOZXR3b3JrU2Vzc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtTZXNzaW9u
PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtTZXNzaW9uPiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxOZXR3b3JrU2Vzc2lvbj4gY3JlYXRlKE5ldHdvcmtQcm9jZXNzJiwgTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJik7CiAgICAgdmlydHVhbCB+TmV0d29ya1Nlc3Np
b24oKTsKQEAgLTU4LDEyICs2MSwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3Rlck5ldHdv
cmtEYXRhVGFzayhOZXR3b3JrRGF0YVRhc2smIHRhc2spIHsgbV9kYXRhVGFza1NldC5hZGQoJnRh
c2spOyB9CiAgICAgdm9pZCB1bnJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKE5ldHdvcmtEYXRhVGFz
ayYgdGFzaykgeyBtX2RhdGFUYXNrU2V0LnJlbW92ZSgmdGFzayk7IH0KIAorICAgIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSogcmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIGNvbnN0IHsg
cmV0dXJuIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy5nZXQoKTsgfQorICAgIHZvaWQgZW5hYmxl
UmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOworICAgIAogcHJvdGVjdGVkOgogICAgIE5ldHdvcmtT
ZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgUEFMOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9j
ZXNzOwogICAgIEhhc2hTZXQ8TmV0d29ya0RhdGFUYXNrKj4gbV9kYXRhVGFza1NldDsKKyAgICBT
dHJpbmcgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OworICAgIFJlZlB0cjxXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU+IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljczsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAppbmRleCA1ZDY0NTRjMzc1NDY2ODg5MTJkMzMwMjNmMWZkOWFmYzgyMzY4ZDBlLi4yNzBhZTQz
MjA1OTg5NjY1ODllOTdhNmExNmIzNzU0OGNiZGE3ZmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcApAQCAtNDcsNiArNDcsNyBAQCBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFy
YW1ldGVycyBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6cHJpdmF0ZVNlc3Npbwog
I2lmIFVTRShDVVJMKQogICAgICAgICAsIHsgfSwgeyB9CiAjZW5kaWYKKyAgICAgICAgLCB7IH0s
IHsgfSwgZmFsc2UKICAgICB9OwogfQogCkBAIC02OCw2ICs2OSw5IEBAIHZvaWQgTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAgICAgZW5jb2RlciA8PCBjb29raWVQZXJzaXN0ZW50U3RvcmFnZUZpbGU7CiAgICAgZW5j
b2RlciA8PCBwcm94eVNldHRpbmdzOwogI2VuZGlmCisgICAgZW5jb2RlciA8PCByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5OworICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IGVuYWJsZVJlc291
cmNlTG9hZFN0YXRpc3RpY3M7CiB9CiAKIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlcikKQEAgLTEzMyw3ICsxMzcsMjIgQEAgT3B0aW9uYWw8TmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnM+IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWMKICAgICBpZiAoIXByb3h5U2V0dGluZ3MpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAjZW5kaWYKLSAgICAKKworICAgIE9wdGlvbmFsPFN0cmluZz4gcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeTsKKyAgICBkZWNvZGVyID4+IHJlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3Rvcnk7CisgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlPiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
OworICAgIGRlY29kZXIgPj4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZTsKKyAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxi
b29sPiBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOworICAgIGRlY29kZXIgPj4gZW5hYmxl
UmVzb3VyY2VMb2FkU3RhdGlzdGljczsKKyAgICBpZiAoIWVuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3MpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICByZXR1cm4ge3sKICAg
ICAgICAgc2Vzc2lvbklECiAgICAgICAgICwgV1RGTW92ZSgqYm91bmRJbnRlcmZhY2VJZGVudGlm
aWVyKQpAQCAtMTUxLDYgKzE3MCw5IEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25Q
YXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjCiAgICAgICAg
ICwgV1RGTW92ZSgqY29va2llUGVyc2lzdGVudFN0b3JhZ2VGaWxlKQogICAgICAgICAsIFdURk1v
dmUoKnByb3h5U2V0dGluZ3MpCiAjZW5kaWYKKyAgICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5KQorICAgICAgICAsIFdURk1vdmUoKnJlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCisgICAgICAgICwgV1RGTW92ZSgqZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKICAgICB9fTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IDA5YWYzMzMyMzEzY2ViNzE4YjRmZjA0ZDMwMTYzMzE5MTFjOTQz
NzAuLjZmOWRlOGI4MDEzOGQ0MTg2OWQ3MWNiZjA2ZGI5MjFjYjk0MzE0OWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtNjks
NiArNzAsOSBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewogICAg
IFN0cmluZyBjb29raWVQZXJzaXN0ZW50U3RvcmFnZUZpbGU7CiAgICAgV2ViQ29yZTo6Q3VybFBy
b3h5U2V0dGluZ3MgcHJveHlTZXR0aW5nczsKICNlbmRpZgorICAgIFN0cmluZyByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5OworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGJvb2wgZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCAzNjU1NGQzNDMxOTYyMzg4YzQwMjEzYzEw
YmEwOTk5MmQ4N2YzNzdhLi4yZDliZWUzMmIxNzc4ZTBiNWFkM2NlOGI2YjA3ZjkwMmQxMDMzNzJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC05MzIsNiArOTMyLDEwIEBAIE5ldHdvcmtTZXNzaW9u
Q29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNz
LCBOZXR3b3JrCiAKICAgICBtX3N0YXRlbGVzc1Nlc3Npb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tX
S05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoTmV0d29ya1Nlc3Npb246KnRo
aXMgd2l0aENyZWRlbnRpYWxzOmZhbHNlXSk7CiAgICAgbV9zdGF0ZWxlc3NTZXNzaW9uID0gW05T
VVJMU2Vzc2lvbiBzZXNzaW9uV2l0aENvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbiBkZWxlZ2F0
ZTpzdGF0aWNfY2FzdDxpZD4obV9zdGF0ZWxlc3NTZXNzaW9uRGVsZWdhdGUuZ2V0KCkpIGRlbGVn
YXRlUXVldWU6W05TT3BlcmF0aW9uUXVldWUgbWFpblF1ZXVlXV07CisKKyAgICBtX3Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3Rvcnk7CisgICAgaWYgKHBhcmFtZXRlcnMuZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlz
dGljcykKKyAgICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwogfQogCiBOZXR3
b3JrU2Vzc2lvbkNvY29hOjp+TmV0d29ya1Nlc3Npb25Db2NvYSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCA0YTc5MWYzNWMzMGZhY2U0NzRkNDU5ZjFmMjIyMjVmODZkOTU5NWRhLi5kNGQzMjA0OWYzOTY2
ZmVkODRjNDU1MDFiMjNhNWYxNDEzMzczMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTQxOSw2ICs0
MTksMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRVcGRhdGVCbG9ja0Nvb2tpZXMo
dWludDY0X3QgY2FsbGJhY2tJZCkKICAgICBtX3VwZGF0ZUJsb2NrQ29va2llc0NhbGxiYWNrTWFw
LnRha2UoY2FsbGJhY2tJZCkoKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRM
b2dVc2VySW50ZXJhY3Rpb24odWludDY0X3QgY29udGV4dElkKQoreworICAgIC8vIEZJWE1FKDE5
MzI5Nyk6IEltcGxlbWVudCB3aGVuIGFjdGl2YXRpbmcgYXV0b21hdGVkIHRlc3QgY2FzZXMuCisg
ICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25hbDxTZWNvbmRzPiBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFjYW5TZW5kTWVzc2FnZSgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCmluZGV4IDRmZTVjZTdhNDU2ZWRiNWI0MzJjMDE4ZjM3N2IzOTI0M2NmYTU0N2UuLmUzNDhh
ODViOTU0ZGUyOGZhNTExYzM4ZjEyZGE1MDZjODg4MTk3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xNDIs
NiArMTQyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJl
c3VsdCh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgdWludDMyX3QgcmVzdWx0LCBXZWJDb3JlOjpTaG91bGRTYW1wbGUpOwog
ICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUodWludDY0X3QgcGFnZUlELCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGRvdWJsZSB2
YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUp
OwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgdm9pZCBkaWRMb2dV
c2VySW50ZXJhY3Rpb24odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIGRpZFVwZGF0ZUJs
b2NrQ29va2llcyh1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgZGlkU2V0QWdlQ2FwRm9y
Q2xpZW50U2lkZUNvb2tpZXModWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIHN0b3JhZ2VB
Y2Nlc3NSZXF1ZXN0UmVzdWx0KGJvb2wgd2FzR3JhbnRlZCwgdWludDY0X3QgY29udGV4dElkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiNTY0MWY5NjkwNTA4MjBkNTVlZjg3
ZDhiZTA1ODk5MWM5Yzc2M2NjLi4yYWFlM2ViNGE4NzJhZmI1MDcxMzdhMzEzY2Y3OGNhYTY4YWMx
YzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC00MCw2ICs0MCw3IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIExvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2Us
IFN0cmluZyBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVlLCB1bnNpZ25lZCBzaWduaWZpY2FudEZp
Z3VyZXMsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRTYW1wbGUgc2hvdWxkU2FtcGxlKQogCiAj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBEaWRMb2dVc2VySW50ZXJh
Y3Rpb24odWludDY0X3QgY2FsbGJhY2tJZCkKICAgICBEaWRVcGRhdGVCbG9ja0Nvb2tpZXModWlu
dDY0X3QgY2FsbGJhY2tJZCkKICAgICBEaWRTZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyh1
aW50NjRfdCBjYWxsYmFja0lkKQogICAgIFN0b3JhZ2VBY2Nlc3NSZXF1ZXN0UmVzdWx0KGJvb2wg
d2FzR3JhbnRlZCwgdWludDY0X3QgY29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggNWU4ODQ3OTEwZGVlMDk2MDZkY2U5OGE4ODFmNGIwNDU5OWRm
NDg4ZS4uMzkyNzQzYmQ1Njc5Y2JkMjI2N2EyYzEwZWNjZTE5NWE2MWMzM2QyOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMjEsMTAgKzIyMSw2IEBACiAj
aW5jbHVkZSAiV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaCIKICNlbmRpZgogCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSNpbmNsdWRlICJXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVjdG9yLmg+CiAjZW5k
aWYKQEAgLTQ0NTEsOCArNDQ0NywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJGcmFtZVByb3h5JiBmcmFtZSwgV2ViQ29yZQogICAgIEFQ
STo6TmF2aWdhdGlvbiogbWFpbkZyYW1lTmF2aWdhdGlvbiA9IGZyYW1lLmlzTWFpbkZyYW1lKCkg
PyBuYXZpZ2F0aW9uLmdldCgpIDogbnVsbHB0cjsKICAgICBXZWJGcmFtZVByb3h5KiBvcmlnaW5h
dGluZ0ZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEu
ZnJhbWVJRCk7CiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlm
IChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlKCku
cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQogICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUtPmxvZ0ZyYW1lTmF2aWdhdGlvbihmcmFtZSwgVVJMKFVSTCgpLCBtX3BhZ2VMb2FkU3Rh
dGUudXJsKCkpLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLnVybCgpKTsKKyAgICBsb2dGcmFt
ZU5hdmlnYXRpb24oZnJhbWUsIFVSTChVUkwoKSwgbV9wYWdlTG9hZFN0YXRlLnVybCgpKSwgcmVx
dWVzdCwgcmVkaXJlY3RSZXNwb25zZS51cmwoKSk7CisjZW5kaWYKIAogICAgIGlmIChtX3BvbGlj
eUNsaWVudCkKICAgICAgICAgbV9wb2xpY3lDbGllbnQtPmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oKnRoaXMsICZmcmFtZSwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIG9y
aWdpbmF0aW5nRnJhbWUsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShsaXN0ZW5lciksIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0
YS5vYmplY3QoKSkuZ2V0KCkpOwpAQCAtNDQ3NSw2ICs0NDc0LDM4IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYkZyYW1lUHJveHkmIGZyYW1l
LCBXZWJDb3JlCiAgICAgbV9zaG91bGRTdXBwcmVzc0FwcExpbmtzSW5OZXh0TmF2aWdhdGlvblBv
bGljeURlY2lzaW9uID0gZmFsc2U7CiB9CiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQordm9pZCBXZWJQYWdlUHJveHk6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBXZWJG
cmFtZVByb3h5JiBmcmFtZSwgY29uc3QgVVJMJiBwYWdlVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpCit7CisgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAKKyAgICBhdXRvIHNvdXJjZVVSTCA9IHJlZGly
ZWN0VVJMOworICAgIGJvb2wgaXNSZWRpcmVjdCA9ICFyZWRpcmVjdFVSTC5pc051bGwoKTsKKyAg
ICBpZiAoIWlzUmVkaXJlY3QpIHsKKyAgICAgICAgc291cmNlVVJMID0gZnJhbWUudXJsKCk7Cisg
ICAgICAgIGlmIChzb3VyY2VVUkwuaXNOdWxsKCkpCisgICAgICAgICAgICBzb3VyY2VVUkwgPSBw
YWdlVVJMOworICAgIH0KKyAgICAKKyAgICBhdXRvJiB0YXJnZXRVUkwgPSByZXF1ZXN0LnVybCgp
OworICAgIAorICAgIGlmICghdGFyZ2V0VVJMLmlzVmFsaWQoKSB8fCAhcGFnZVVSTC5pc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBhdXRvIHRhcmdldEhvc3QgPSB0YXJnZXRV
UkwuaG9zdCgpOworICAgIGF1dG8gbWFpbkZyYW1lSG9zdCA9IHBhZ2VVUkwuaG9zdCgpOworICAg
IAorICAgIGlmICh0YXJnZXRIb3N0LmlzRW1wdHkoKSB8fCBtYWluRnJhbWVIb3N0LmlzRW1wdHko
KSB8fCB0YXJnZXRIb3N0ID09IHNvdXJjZVVSTC5ob3N0KCkpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBhdXRvIHRhcmdldFByaW1hcnlEb21haW4gPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
OjpwcmltYXJ5RG9tYWluKHRhcmdldFVSTCk7CisgICAgYXV0byBtYWluRnJhbWVQcmltYXJ5RG9t
YWluID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6cHJpbWFyeURvbWFpbihwYWdlVVJMKTsKKyAg
ICBhdXRvIHNvdXJjZVByaW1hcnlEb21haW4gPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpwcmlt
YXJ5RG9tYWluKHNvdXJjZVVSTCk7CisKKyAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuc2Vu
ZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpMb2dGcmFtZU5h
dmlnYXRpb24obV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgdGFyZ2V0UHJpbWFyeURv
bWFpbiwgbWFpbkZyYW1lUHJpbWFyeURvbWFpbiwgc291cmNlUHJpbWFyeURvbWFpbiwgdGFyZ2V0
SG9zdC50b1N0cmluZygpLCBtYWluRnJhbWVIb3N0LnRvU3RyaW5nKCksIGlzUmVkaXJlY3QsIGZy
YW1lLmlzTWFpbkZyYW1lKCkpKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBp
c01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgdWludDY0X3Qg
b3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2lu
YWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiBy
ZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVw
bHkmJiByZXBseSkKIHsKICAgICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpj
cmVhdGUoV1RGTW92ZShyZXBseSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCAyMTBkZGI4ODU1NzhkYmY2OGVlNjAwZDcyNWM0NGFmMmQyZTAyYjZiLi5jZDgwMWI4
MDhjNDZlNDUwZDhjZGFkNDk3MDhmNDdmOGYwMTM3MDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMTkwNyw2ICsxOTA3LDEwIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXROZWVkc0ZvbnRBdHRyaWJ1dGVzKGJvb2wpOwogICAgIHZvaWQgdXBkYXRlRm9udEF0dHJp
YnV0ZXNBZnRlckVkaXRvclN0YXRlQ2hhbmdlKCk7CiAKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQorICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1l
UHJveHkmLCBjb25zdCBVUkwmIHBhZ2VVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpOworI2VuZGlmCisKICAgICBXZWFrUHRyPFBhZ2VD
bGllbnQ+IG1fcGFnZUNsaWVudDsKICAgICBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4gbV9j
b25maWd1cmF0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKaW5kZXggMjU3OGQzY2I0MGFjYWM4ZTljMjkzZDY3YTEwYjc1NzMwNmI0Njk4My4uM2YxNDA2
ZTRjNjhjOWRjNGIwNGUyOTMzMTZiZTc4ZWY5YTgwYWZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTQ4LDYgKzU0OCwxNSBAQCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29ya1Byb2Nlc3MoV2Vic2l0ZURh
dGFTdG9yZSogd2l0aAogICAgIHBhcmFtZXRlcnMuc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzVGVybWluYXRpb25EZWxheSA9IG1fc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9j
ZXNzVGVybWluYXRpb25EZWxheTsKICNlbmRpZgogCisgICAgaWYgKG1fd2Vic2l0ZURhdGFTdG9y
ZSkKKyAgICAgICAgcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3Jr
U2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IG1fd2Vi
c2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnJlc29sdmVkUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeSgpOworICAgIGlmIChwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQ
YXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3Jl
UGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RpcmVjdG9yeSA9IEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3RvcnkoKTsKKworICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvclJlYWRXcml0ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0
ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5LCBwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KTsKKworICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nl
c3Npb25QYXJhbWV0ZXJzLmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBmYWxzZTsgLy8g
RklYTUUoMTkzMjk3KTogVHVybiBvbiB3aGVuIHRoZSBmZWF0dXJlIGlzIG9uLgorCiAgICAgLy8g
QWRkIGFueSBwbGF0Zm9ybSBzcGVjaWZpYyBwYXJhbWV0ZXJzCiAgICAgcGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3Rv
cmVDb2NvYS5tbQppbmRleCA4NzdlZGQ0YmVhZjRlZTE1YzI3ZGQwZDI0NzAxYzVmNmJkNDM3YzY0
Li4wNjlkNGI5YjBhYzM2NmYyYWQ4MDA4M2FkOGNlNTE4YWFmNTY5ZmFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3Jl
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2Ev
V2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCkBAIC04Myw2ICs4MywxMSBAQCBXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICBpZiAoIWh0
dHBzUHJveHkuaXNWYWxpZCgpICYmIGlzU2FmYXJpKQogICAgICAgICBodHRwc1Byb3h5ID0gVVJM
KFVSTCgpLCBbZGVmYXVsdHMgc3RyaW5nRm9yS2V5OihOU1N0cmluZyAqKVdlYktpdDJIVFRQU1By
b3h5RGVmYXVsdHNLZXldKTsKIAorICAgIGF1dG8gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeSA9IG1fY29uZmlndXJhdGlvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgp
OworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5SGFuZGxlOworICAgIGlmICghcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5p
c0VtcHR5KCkpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRX
cml0ZURpcmVjdG9yeShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5SGFuZGxlKTsKKwogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMgPSB7CiAgICAgICAgIG1fc2Vzc2lvbklELApAQCAtOTUsNiArMTAwLDkgQEAgV2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgICAg
IFNlY29uZHMgeyBbZGVmYXVsdHMgaW50ZWdlckZvcktleTpXZWJLaXROZXR3b3JrTG9hZFRocm90
dGxlTGF0ZW5jeU1pbGxpc2Vjb25kc0RlZmF1bHRzS2V5XSAvIDEwMDAuIH0sCiAgICAgICAgIFdU
Rk1vdmUoaHR0cFByb3h5KSwKICAgICAgICAgV1RGTW92ZShodHRwc1Byb3h5KSwKKyAgICAgICAg
V1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KSwKKyAgICAgICAgV1RGTW92
ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5SGFuZGxlKSwKKyAgICAgICAgZmFsc2Ug
Ly8gRklYTUUoMTkzMjk3KTogU3dpdGNoIHRvIG1fY29uZmlndXJhdGlvbi0+cmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoKQogICAgIH07CiAKICAgICBhdXRvIGNvb2tpZUZpbGUgPSByZXNv
bHZlZENvb2tpZVN0b3JhZ2VGaWxlKCk7Cg==
</data>
<flag name="review"
          id="375589"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="375594"
          type_id="3"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>