<?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>174226</bug_id>
          
          <creation_ts>2017-07-06 16:03:41 -0700</creation_ts>
          <short_desc>Drop unused ResourceLoadStatistics members</short_desc>
          <delta_ts>2017-07-06 19:44:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1326228</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-07-06 16:03:41 -0700</bug_when>
    <thetext>Drop unused ResourceLoadStatistics members.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326232</commentid>
    <comment_count>1</comment_count>
      <attachid>314769</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-07-06 16:10:08 -0700</bug_when>
    <thetext>Created attachment 314769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326254</commentid>
    <comment_count>2</comment_count>
      <attachid>314778</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-07-06 16:38:49 -0700</bug_when>
    <thetext>Created attachment 314778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326255</commentid>
    <comment_count>3</comment_count>
      <attachid>314779</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-07-06 16:54:45 -0700</bug_when>
    <thetext>Created attachment 314779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326311</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-07-06 19:19:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/33172845&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326313</commentid>
    <comment_count>5</comment_count>
      <attachid>314779</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-07-06 19:21:30 -0700</bug_when>
    <thetext>Comment on attachment 314779
Patch

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

r=me

&gt; Source/WebCore/loader/ResourceLoadObserver.cpp:114
&gt; +    // FIXME: targetStatistics.dataRecordsRemoved is always 0 in WebCore as it gets populated in the UIProcess.

Why not just get rid of this entirely?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326314</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-07-06 19:22:13 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #5)
&gt; Comment on attachment 314779 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=314779&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/loader/ResourceLoadObserver.cpp:114
&gt; &gt; +    // FIXME: targetStatistics.dataRecordsRemoved is always 0 in WebCore as it gets populated in the UIProcess.
&gt; 
&gt; Why not just get rid of this entirely?

Planning to do this in a follow up for clarity as it was not strictly related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326317</commentid>
    <comment_count>7</comment_count>
      <attachid>314779</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-07-06 19:44:20 -0700</bug_when>
    <thetext>Comment on attachment 314779
Patch

Clearing flags on attachment: 314779

Committed r219231: &lt;http://trac.webkit.org/changeset/219231&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326318</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-07-06 19:44:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314769</attachid>
            <date>2017-07-06 16:10:08 -0700</date>
            <delta_ts>2017-07-06 16:38:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174226-20170706161007.patch</filename>
            <type>text/plain</type>
            <size>31962</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhkMWNhOTQ1NmZhMjM5
NTkzMDVjNWNiZjFkMDVjNzVmMzcwYThkZi4uMDFiOTRlMWI5MmY4NWNiZjQ1MWEwZDk5Y2VlYzY2
NjA4YjFmYTA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDE3LTA3LTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJvcCB1bnVzZWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyBtZW1iZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzQyMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nRnJhbWVOYXZpZ2F0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dTdWJyZXNvdXJjZUxv
YWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1dlYlNv
Y2tldExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omlz
UHJldmFsZW50UmVzb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxv
YWRPYnNlcnZlci5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OmVuY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpkZWNvZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6dG9TdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6bWVyZ2UpOgorICAgICAgICAqIGxvYWRl
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg6CisKKzIwMTctMDctMDYgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBGaWxlTW9uaXRvciBzaG91bGQgbm90IGJlIHJl
ZiBjb3VudGVkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzQxNjYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI4YTgwM2Q3NWQ5NTE3MDI0MGNkNjcxYjZlODgyMjYy
MWYyYjY4MTIuLjExYzQ1OWFjYTdmYjM0YmYzNWUyNDU5ZjYwYTk3NTJkNGExZWY2MzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwxOCBAQAogMjAxNy0wNy0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCisgICAgICAgIERyb3AgdW51c2VkIFJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
bWVtYmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc0MjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZGVjb2RlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvU3RvcmFnZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlYWREYXRhRnJvbURl
Y29kZXIpOgorCisyMDE3LTA3LTA2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
ICAgICAgICAgRmlsZU1vbml0b3Igc2hvdWxkIG5vdCBiZSByZWYgY291bnRlZAogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MTY2CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDc1OTRhNGE5NDVhYjQ4Y2Y5Mzk2
YjRhMzU2MGVjNGE4MDJjYzFjNmUuLjNiYjljNGUzMmYxYjhlMDNkMTVkYmI5OWIwNzc3YTYwYjQw
ZDJmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNTIw
LDcgKzUyMCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmNlCiAgICAgQVNTRVJUKG1fZnJhbWUt
PmRvY3VtZW50KCkpOwogICAgIEFTU0VSVCh0b3BGcmFtZS5kb2N1bWVudCgpKTsKIAotICAgIFJl
c291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5sb2dGcmFtZU5hdmlnYXRpb24oKm1fZnJhbWUs
IHRvcEZyYW1lLCBuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICBSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2hhcmVkKCkubG9nRnJhbWVOYXZpZ2F0aW9uKCptX2ZyYW1lLCB0b3BGcmFt
ZSwgbmV3UmVxdWVzdCk7CiAgICAgCiAgICAgLy8gVXBkYXRlIGNvb2tpZSBwb2xpY3kgYmFzZSBV
UkwgYXMgVVJMIGNoYW5nZXMsIGV4Y2VwdCBmb3Igc3ViZnJhbWVzLCB3aGljaCB1c2UgdGhlCiAg
ICAgLy8gVVJMIG9mIHRoZSBtYWluIGZyYW1lIHdoaWNoIGRvZXNuJ3QgY2hhbmdlIHdoZW4gd2Ug
cmVkaXJlY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVy
LmNwcAppbmRleCAyODY0Y2NjYWQ5OWVjZGExMWI2YzdmYTliNzRjN2E5MTUxNDQ5ZTBiLi42YmM0
MGExNzFiNzNkN2FhYWNhY2NjZGZkMjFiMDU4Zjc3NzRlY2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgYm9v
bCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hvdWxkTG9nKFBhZ2UqIHBhZ2UpIGNvbnN0CiAgICAg
cmV0dXJuIFNldHRpbmdzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpICYmICFwYWdl
LT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpICYmIG1fbm90aWZpY2F0aW9uQ2FsbGJhY2s7CiB9CiAK
LXZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBGcmFt
ZSYgZnJhbWUsIGNvbnN0IEZyYW1lJiB0b3BGcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBu
ZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQordm9p
ZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IEZyYW1lJiBm
cmFtZSwgY29uc3QgRnJhbWUmIHRvcEZyYW1lLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIG5ld1Jl
cXVlc3QpCiB7CiAgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwogICAgIEFTU0VSVCh0b3BG
cmFtZS5kb2N1bWVudCgpKTsKQEAgLTg4LDcgKzg4LDYgQEAgdm9pZCBSZXNvdXJjZUxvYWRPYnNl
cnZlcjo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWUm
IHQKICAgICBpZiAoIXNob3VsZExvZyh0b3BGcmFtZS5wYWdlKCkpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBib29sIGlzUmVkaXJlY3QgPSBpczN4eFJlZGlyZWN0KHJlZGlyZWN0UmVzcG9uc2Up
OwogICAgIGJvb2wgaXNNYWluRnJhbWUgPSBmcmFtZS5pc01haW5GcmFtZSgpOwogICAgIGF1dG8m
IHNvdXJjZVVSTCA9IGZyYW1lLmRvY3VtZW50KCktPnVybCgpOwogICAgIGF1dG8mIHRhcmdldFVS
TCA9IG5ld1JlcXVlc3QudXJsKCk7CkBAIC0xMTUsNTEgKzExNCwxMiBAQCB2b2lkIFJlc291cmNl
TG9hZE9ic2VydmVyOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgRnJhbWUmIGZyYW1lLCBjb25z
dCBGcmFtZSYgdAogICAgIC8vIEFsd2F5cyBmaXJlIGlmIHdlIGhhdmUgcHJldmlvdXNseSByZW1v
dmVkIGRhdGEgcmVjb3JkcyBmb3IgdGhpcyBkb21haW4KICAgICBib29sIHNob3VsZENhbGxOb3Rp
ZmljYXRpb25DYWxsYmFjayA9IHRhcmdldFN0YXRpc3RpY3MuZGF0YVJlY29yZHNSZW1vdmVkID4g
MDsKIAotICAgIGlmIChpc01haW5GcmFtZSkKLSAgICAgICAgdGFyZ2V0U3RhdGlzdGljcy50b3BG
cmFtZUhhc0JlZW5OYXZpZ2F0ZWRUb0JlZm9yZSA9IHRydWU7Ci0gICAgZWxzZSB7Ci0gICAgICAg
IHRhcmdldFN0YXRpc3RpY3Muc3ViZnJhbWVIYXNCZWVuTG9hZGVkQmVmb3JlID0gdHJ1ZTsKLQor
ICAgIGlmICghaXNNYWluRnJhbWUpIHsKICAgICAgICAgYXV0byBzdWJmcmFtZVVuZGVyVG9wRnJh
bWVPcmlnaW5zUmVzdWx0ID0gdGFyZ2V0U3RhdGlzdGljcy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVP
cmlnaW5zLmFkZChtYWluRnJhbWVQcmltYXJ5RG9tYWluKTsKICAgICAgICAgaWYgKHN1YmZyYW1l
VW5kZXJUb3BGcmFtZU9yaWdpbnNSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAgIHNob3Vs
ZENhbGxOb3RpZmljYXRpb25DYWxsYmFjayA9IHRydWU7CiAgICAgfQogCi0gICAgaWYgKGlzUmVk
aXJlY3QpIHsKLSAgICAgICAgYXV0byYgcmVkaXJlY3RpbmdPcmlnaW5SZXNvdXJjZVN0YXRpc3Rp
Y3MgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JQcmltYXJ5RG9tYWluKHNvdXJjZVByaW1h
cnlEb21haW4pOwotCi0gICAgICAgIGlmIChpc1ByZXZhbGVudFJlc291cmNlKHRhcmdldFByaW1h
cnlEb21haW4pKQotICAgICAgICAgICAgcmVkaXJlY3RpbmdPcmlnaW5SZXNvdXJjZVN0YXRpc3Rp
Y3MucmVkaXJlY3RlZFRvT3RoZXJQcmV2YWxlbnRSZXNvdXJjZU9yaWdpbnMuYWRkKHRhcmdldFBy
aW1hcnlEb21haW4pOwotCi0gICAgICAgIGlmIChpc01haW5GcmFtZSkgewotICAgICAgICAgICAg
Kyt0YXJnZXRTdGF0aXN0aWNzLnRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbzsKLSAgICAgICAg
ICAgICsrcmVkaXJlY3RpbmdPcmlnaW5SZXNvdXJjZVN0YXRpc3RpY3MudG9wRnJhbWVIYXNCZWVu
UmVkaXJlY3RlZEZyb207Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICArK3RhcmdldFN0
YXRpc3RpY3Muc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvOwotICAgICAgICAgICAgKytyZWRp
cmVjdGluZ09yaWdpblJlc291cmNlU3RhdGlzdGljcy5zdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVk
RnJvbTsKLSAgICAgICAgICAgIHJlZGlyZWN0aW5nT3JpZ2luUmVzb3VyY2VTdGF0aXN0aWNzLnN1
YmZyYW1lVW5pcXVlUmVkaXJlY3RzVG8uYWRkKHRhcmdldFByaW1hcnlEb21haW4pOwotCi0gICAg
ICAgICAgICArK3RhcmdldFN0YXRpc3RpY3Muc3ViZnJhbWVTdWJSZXNvdXJjZUNvdW50OwotICAg
ICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHNvdXJjZVByaW1hcnlEb21haW4uaXNO
dWxsKCkgfHwgc291cmNlUHJpbWFyeURvbWFpbi5pc0VtcHR5KCkgfHwgc291cmNlUHJpbWFyeURv
bWFpbiA9PSAibnVsbE9yaWdpbiIpIHsKLSAgICAgICAgICAgIGlmIChpc01haW5GcmFtZSkKLSAg
ICAgICAgICAgICAgICArK3RhcmdldFN0YXRpc3RpY3MudG9wRnJhbWVJbml0aWFsTG9hZENvdW50
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICsrdGFyZ2V0U3RhdGlzdGljcy5z
dWJmcmFtZVN1YlJlc291cmNlQ291bnQ7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBh
dXRvJiBzb3VyY2VPcmlnaW5SZXNvdXJjZVN0YXRpc3RpY3MgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JQcmltYXJ5RG9tYWluKHNvdXJjZVByaW1hcnlEb21haW4pOwotCi0gICAgICAgICAg
ICBpZiAoaXNNYWluRnJhbWUpIHsKLSAgICAgICAgICAgICAgICArK3NvdXJjZU9yaWdpblJlc291
cmNlU3RhdGlzdGljcy50b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tOwotICAgICAgICAgICAg
ICAgICsrdGFyZ2V0U3RhdGlzdGljcy50b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbzsKLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgKytzb3VyY2VPcmlnaW5SZXNvdXJjZVN0
YXRpc3RpY3Muc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbTsKLSAgICAgICAgICAgICAgICAr
K3RhcmdldFN0YXRpc3RpY3Muc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkVG87Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5zZXQo
dGFyZ2V0UHJpbWFyeURvbWFpbiwgV1RGTW92ZSh0YXJnZXRTdGF0aXN0aWNzKSk7CiAKICAgICBp
ZiAoc2hvdWxkQ2FsbE5vdGlmaWNhdGlvbkNhbGxiYWNrKQpAQCAtMjAzLDI3ICsxNjMsOSBAQCB2
b2lkIFJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dTdWJyZXNvdXJjZUxvYWRpbmcoY29uc3QgRnJh
bWUqIGZyYW1lLCBjb25zdCBSZXNvdQogICAgIGlmIChpc1JlZGlyZWN0KSB7CiAgICAgICAgIGF1
dG8mIHJlZGlyZWN0aW5nT3JpZ2luU3RhdGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGlj
c0ZvclByaW1hcnlEb21haW4oc291cmNlUHJpbWFyeURvbWFpbik7CiAKLSAgICAgICAgaWYgKGlz
UHJldmFsZW50UmVzb3VyY2UodGFyZ2V0UHJpbWFyeURvbWFpbikpCi0gICAgICAgICAgICByZWRp
cmVjdGluZ09yaWdpblN0YXRpc3RpY3MucmVkaXJlY3RlZFRvT3RoZXJQcmV2YWxlbnRSZXNvdXJj
ZU9yaWdpbnMuYWRkKHRhcmdldFByaW1hcnlEb21haW4pOwotCi0gICAgICAgICsrcmVkaXJlY3Rp
bmdPcmlnaW5TdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRGcm9tOwotICAg
ICAgICArK3RhcmdldFN0YXRpc3RpY3Muc3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZFRvOwot
CiAgICAgICAgIGF1dG8gc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb1Jlc3VsdCA9IHJlZGly
ZWN0aW5nT3JpZ2luU3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLmFkZCh0
YXJnZXRQcmltYXJ5RG9tYWluKTsKICAgICAgICAgaWYgKHN1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RzVG9SZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAgIHNob3VsZENhbGxOb3RpZmljYXRp
b25DYWxsYmFjayA9IHRydWU7Ci0KLSAgICAgICAgKyt0YXJnZXRTdGF0aXN0aWNzLnN1YnJlc291
cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnQ7Ci0KLSAgICAgICAgYXV0byB0b3RhbFZpc2l0ZWQg
PSBzdGQ6Om1heChtX29yaWdpbnNWaXNpdGVkTWFwLnNpemUoKSwgMVUpOwotCi0gICAgICAgIHRh
cmdldFN0YXRpc3RpY3Muc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudERpdmlkZWRC
eVRvdGFsTnVtYmVyT2ZPcmlnaW5zVmlzaXRlZCA9IHN0YXRpY19jYXN0PGRvdWJsZT4odGFyZ2V0
U3RhdGlzdGljcy5zdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50KSAvIHRvdGFsVmlz
aXRlZDsKLSAgICB9IGVsc2UgewotICAgICAgICArK3RhcmdldFN0YXRpc3RpY3Muc3VicmVzb3Vy
Y2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudDsKLQotICAgICAgICBhdXRvIHRvdGFsVmlzaXRlZCA9
IHN0ZDo6bWF4KG1fb3JpZ2luc1Zpc2l0ZWRNYXAuc2l6ZSgpLCAxVSk7Ci0KLSAgICAgICAgdGFy
Z2V0U3RhdGlzdGljcy5zdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50RGl2aWRlZEJ5
VG90YWxOdW1iZXJPZk9yaWdpbnNWaXNpdGVkID0gc3RhdGljX2Nhc3Q8ZG91YmxlPih0YXJnZXRT
dGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnQpIC8gdG90YWxWaXNp
dGVkOwogICAgIH0KIAogICAgIG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnNldCh0YXJnZXRQcmlt
YXJ5RG9tYWluLCBXVEZNb3ZlKHRhcmdldFN0YXRpc3RpY3MpKTsKQEAgLTI2NSwxMiArMjA3LDYg
QEAgdm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nV2ViU29ja2V0TG9hZGluZyhjb25zdCBG
cmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdGEKICAgICBpZiAoc3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lT3JpZ2luc1Jlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICBzaG91bGRDYWxsTm90aWZpY2F0
aW9uQ2FsbGJhY2sgPSB0cnVlOwogCi0gICAgKyt0YXJnZXRTdGF0aXN0aWNzLnN1YnJlc291cmNl
SGFzQmVlblN1YnJlc291cmNlQ291bnQ7Ci0KLSAgICBhdXRvIHRvdGFsVmlzaXRlZCA9IHN0ZDo6
bWF4KG1fb3JpZ2luc1Zpc2l0ZWRNYXAuc2l6ZSgpLCAxVSk7Ci0KLSAgICB0YXJnZXRTdGF0aXN0
aWNzLnN1YnJlc291cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnREaXZpZGVkQnlUb3RhbE51bWJl
ck9mT3JpZ2luc1Zpc2l0ZWQgPSBzdGF0aWNfY2FzdDxkb3VibGU+KHRhcmdldFN0YXRpc3RpY3Mu
c3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudCkgLyB0b3RhbFZpc2l0ZWQ7Ci0KICAg
ICBpZiAoc2hvdWxkQ2FsbE5vdGlmaWNhdGlvbkNhbGxiYWNrKQogICAgICAgICBzY2hlZHVsZU5v
dGlmaWNhdGlvbklmTmVlZGVkKCk7CiB9CkBAIC0zMTksMTQgKzI1NSw2IEBAIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnRha2VSZXNvdXJjZVN0YXRpc3RpY3NG
b3JQcmltYXJ5RG9tCiAgICAgcmV0dXJuIHN0YXRpc3Rpc3RpY3M7CiB9CiAKLWJvb2wgUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXI6OmlzUHJldmFsZW50UmVzb3VyY2UoY29uc3QgU3RyaW5nJiBwcmltYXJ5
RG9tYWluKSBjb25zdAotewotICAgIGF1dG8gbWFwRW50cnkgPSBtX3Jlc291cmNlU3RhdGlzdGlj
c01hcC5maW5kKHByaW1hcnlEb21haW4pOwotICAgIGlmIChtYXBFbnRyeSA9PSBtX3Jlc291cmNl
U3RhdGlzdGljc01hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBt
YXBFbnRyeS0+dmFsdWUuaXNQcmV2YWxlbnRSZXNvdXJjZTsKLX0KLQogdm9pZCBSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2NoZWR1bGVOb3RpZmljYXRpb25JZk5lZWRlZCgpCiB7CiAgICAgQVNTRVJU
KG1fbm90aWZpY2F0aW9uQ2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXIuaAppbmRleCBmOGQ4MmE4NzA5MmQyOGJmMWU0ZjFiNDNlMmVjNDAyMjcx
Yjg1ZDk2Li5kNTQzYzk0ZDJlZGM4N2ZhOWNlYTRmODkzNWUzM2U4MThiYWE1YzE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaApAQCAtNTEsNyArNTEs
NyBAQCBjbGFzcyBSZXNvdXJjZUxvYWRPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFJlc291cmNlTG9hZE9ic2VydmVyJiBzaGFyZWQoKTsKICAgICAKLSAgICB2
b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lJiB0
b3BGcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlv
bihjb25zdCBGcmFtZSYsIGNvbnN0IEZyYW1lJiB0b3BGcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiBuZXdSZXF1ZXN0KTsKICAgICB2b2lkIGxvZ1N1YnJlc291cmNlTG9hZGluZyhjb25zdCBG
cmFtZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBsb2dXZWJTb2NrZXRMb2FkaW5n
KGNvbnN0IEZyYW1lKiwgY29uc3QgVVJMJik7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb25X
aXRoUmVkdWNlZFRpbWVSZXNvbHV0aW9uKGNvbnN0IERvY3VtZW50Jik7CkBAIC02Niw3ICs2Niw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRMb2coUGFnZSopIGNvbnN0OwogICAgIFJlc291
cmNlTG9hZFN0YXRpc3RpY3MmIGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclByaW1hcnlEb21h
aW4oY29uc3QgU3RyaW5nJik7CiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyB0YWtlUmVzb3Vy
Y2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbihjb25zdCBTdHJpbmcmIHByaW1hcnlEb21haW4p
OwotICAgIGJvb2wgaXNQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBTdHJpbmcmIHByaW1hcnlEb21h
aW4pIGNvbnN0OwogCiAgICAgdm9pZCBzY2hlZHVsZU5vdGlmaWNhdGlvbklmTmVlZGVkKCk7CiAg
ICAgdm9pZCBub3RpZmljYXRpb25UaW1lckZpcmVkKCk7CkBAIC03NSw3ICs3NCw2IEBAIHByaXZh
dGU6CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlc291cmNlTG9hZFN0YXRpc3RpY3M+IG1fcmVzb3Vy
Y2VTdGF0aXN0aWNzTWFwOwogICAgIFdURjo6RnVuY3Rpb248dm9pZCAoVmVjdG9yPFJlc291cmNl
TG9hZFN0YXRpc3RpY3M+JiYpPiBtX25vdGlmaWNhdGlvbkNhbGxiYWNrOwogICAgIFRpbWVyIG1f
bm90aWZpY2F0aW9uVGltZXI7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIHNpemVfdD4gbV9vcmlnaW5z
VmlzaXRlZE1hcDsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKaW5kZXggMjUxNTkx
YzgyN2UzMzU5NjE3ZDUyZTJkNGQyYmEwNDhkZWQ0MjAzYy4uYWNiNTFmN2ZiMzJjMjQ2NzEwYzk0
OWMyZDUzZWY1NTU5N2ViNWMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLmNwcApAQCAtNTUsMzQgKzU1LDE0IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljczo6ZW5jb2RlKEtleWVkRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBl
bmNvZGVyLmVuY29kZURvdWJsZSgibW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiIsIG1vc3RSZWNl
bnRVc2VySW50ZXJhY3Rpb25UaW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CiAgICAg
ZW5jb2Rlci5lbmNvZGVCb29sKCJncmFuZGZhdGhlcmVkIiwgZ3JhbmRmYXRoZXJlZCk7CiAgICAg
Ci0gICAgLy8gVG9wIGZyYW1lIHN0YXRzCi0gICAgZW5jb2Rlci5lbmNvZGVCb29sKCJ0b3BGcmFt
ZUhhc0JlZW5OYXZpZ2F0ZWRUb0JlZm9yZSIsIHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvQmVm
b3JlKTsKLSAgICBlbmNvZGVyLmVuY29kZVVJbnQzMigidG9wRnJhbWVIYXNCZWVuUmVkaXJlY3Rl
ZFRvIiwgdG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvKTsKLSAgICBlbmNvZGVyLmVuY29kZVVJ
bnQzMigidG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb20iLCB0b3BGcmFtZUhhc0JlZW5SZWRp
cmVjdGVkRnJvbSk7Ci0gICAgZW5jb2Rlci5lbmNvZGVVSW50MzIoInRvcEZyYW1lSW5pdGlhbExv
YWRDb3VudCIsIHRvcEZyYW1lSW5pdGlhbExvYWRDb3VudCk7Ci0gICAgZW5jb2Rlci5lbmNvZGVV
SW50MzIoInRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvIiwgdG9wRnJhbWVIYXNCZWVuTmF2aWdh
dGVkVG8pOwotICAgIGVuY29kZXIuZW5jb2RlVUludDMyKCJ0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0
ZWRGcm9tIiwgdG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbSk7Ci0gICAgCiAgICAgLy8gU3Vi
ZnJhbWUgc3RhdHMKLSAgICBlbmNvZGVyLmVuY29kZUJvb2woInN1YmZyYW1lSGFzQmVlbkxvYWRl
ZEJlZm9yZSIsIHN1YmZyYW1lSGFzQmVlbkxvYWRlZEJlZm9yZSk7Ci0gICAgZW5jb2Rlci5lbmNv
ZGVVSW50MzIoInN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbyIsIHN1YmZyYW1lSGFzQmVlblJl
ZGlyZWN0ZWRUbyk7Ci0gICAgZW5jb2Rlci5lbmNvZGVVSW50MzIoInN1YmZyYW1lSGFzQmVlblJl
ZGlyZWN0ZWRGcm9tIiwgc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb20pOwotICAgIGVuY29k
ZXIuZW5jb2RlVUludDMyKCJzdWJmcmFtZVN1YlJlc291cmNlQ291bnQiLCBzdWJmcmFtZVN1YlJl
c291cmNlQ291bnQpOwogICAgIGVuY29kZUhhc2hDb3VudGVkU2V0KGVuY29kZXIsICJzdWJmcmFt
ZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwgc3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucyk7Ci0g
ICAgZW5jb2RlSGFzaENvdW50ZWRTZXQoZW5jb2RlciwgInN1YmZyYW1lVW5pcXVlUmVkaXJlY3Rz
VG8iLCBzdWJmcmFtZVVuaXF1ZVJlZGlyZWN0c1RvKTsKLSAgICBlbmNvZGVyLmVuY29kZVVJbnQz
Migic3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkVG8iLCBzdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRU
byk7Ci0gICAgZW5jb2Rlci5lbmNvZGVVSW50MzIoInN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZEZy
b20iLCBzdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tKTsKICAgICAKICAgICAvLyBTdWJyZXNv
dXJjZSBzdGF0cwotICAgIGVuY29kZXIuZW5jb2RlVUludDMyKCJzdWJyZXNvdXJjZUhhc0JlZW5S
ZWRpcmVjdGVkRnJvbSIsIHN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRGcm9tKTsKLSAgICBl
bmNvZGVyLmVuY29kZVVJbnQzMigic3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZFRvIiwgc3Vi
cmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZFRvKTsKLSAgICBlbmNvZGVyLmVuY29kZVVJbnQzMigi
c3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudCIsIHN1YnJlc291cmNlSGFzQmVlblN1
YnJlc291cmNlQ291bnQpOwotICAgIGVuY29kZXIuZW5jb2RlRG91YmxlKCJzdWJyZXNvdXJjZUhh
c0JlZW5TdWJyZXNvdXJjZUNvdW50RGl2aWRlZEJ5VG90YWxOdW1iZXJPZk9yaWdpbnNWaXNpdGVk
Iiwgc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudERpdmlkZWRCeVRvdGFsTnVtYmVy
T2ZPcmlnaW5zVmlzaXRlZCk7CiAgICAgZW5jb2RlSGFzaENvdW50ZWRTZXQoZW5jb2RlciwgInN1
YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMiLCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVP
cmlnaW5zKTsKICAgICBlbmNvZGVIYXNoQ291bnRlZFNldChlbmNvZGVyLCAic3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdHNUbyIsIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8pOwogICAgIAog
ICAgIC8vIFByZXZhbGVudCBSZXNvdXJjZQotICAgIGVuY29kZUhhc2hDb3VudGVkU2V0KGVuY29k
ZXIsICJyZWRpcmVjdGVkVG9PdGhlclByZXZhbGVudFJlc291cmNlT3JpZ2lucyIsIHJlZGlyZWN0
ZWRUb090aGVyUHJldmFsZW50UmVzb3VyY2VPcmlnaW5zKTsKICAgICBlbmNvZGVyLmVuY29kZUJv
b2woImlzUHJldmFsZW50UmVzb3VyY2UiLCBpc1ByZXZhbGVudFJlc291cmNlKTsKICAgICBlbmNv
ZGVyLmVuY29kZVVJbnQzMigiZGF0YVJlY29yZHNSZW1vdmVkIiwgZGF0YVJlY29yZHNSZW1vdmVk
KTsKIH0KQEAgLTEwMyw3ICs4Myw3IEBAIHN0YXRpYyB2b2lkIGRlY29kZUhhc2hDb3VudGVkU2V0
KEtleWVkRGVjb2RlciYgZGVjb2RlciwgY29uc3QgU3RyaW5nJiBsYWJlbCwgSGFzCiAgICAgfSk7
CiB9CiAKLWJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6ZGVjb2RlKEtleWVkRGVjb2RlciYg
ZGVjb2RlciwgdW5zaWduZWQgdmVyc2lvbikKK2Jvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6
ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
U3RyaW5nKCJQcmV2YWxlbnRSZXNvdXJjZU9yaWdpbiIsIGhpZ2hMZXZlbERvbWFpbikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTExMiw3OCArOTIsMjAgQEAgYm9vbCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25lZCB2ZXJzaW9u
KQogICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJoYWRVc2VySW50ZXJhY3Rpb24iLCBoYWRV
c2VySW50ZXJhY3Rpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgLy8gVG9w
IGZyYW1lIHN0YXRzCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woInRvcEZyYW1lSGFzQmVl
bk5hdmlnYXRlZFRvQmVmb3JlIiwgdG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkVG9CZWZvcmUpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJbnQz
MigidG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvIiwgdG9wRnJhbWVIYXNCZWVuUmVkaXJlY3Rl
ZFRvKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVVSW50MzIoInRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tIiwgdG9wRnJhbWVIYXNCZWVu
UmVkaXJlY3RlZEZyb20pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZVVJbnQzMigidG9wRnJhbWVJbml0aWFsTG9hZENvdW50IiwgdG9wRnJhbWVJ
bml0aWFsTG9hZENvdW50KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGVVSW50MzIoInRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvIiwgdG9wRnJh
bWVIYXNCZWVuTmF2aWdhdGVkVG8pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZVVJbnQzMigidG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbSIs
IHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb20pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgCiAgICAgLy8gU3ViZnJhbWUgc3RhdHMKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgi
c3ViZnJhbWVIYXNCZWVuTG9hZGVkQmVmb3JlIiwgc3ViZnJhbWVIYXNCZWVuTG9hZGVkQmVmb3Jl
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGVV
SW50MzIoInN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbyIsIHN1YmZyYW1lSGFzQmVlblJlZGly
ZWN0ZWRUbykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlVUludDMyKCJzdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSIsIHN1YmZyYW1lSGFz
QmVlblJlZGlyZWN0ZWRGcm9tKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVVSW50MzIoInN1YmZyYW1lU3ViUmVzb3VyY2VDb3VudCIsIHN1YmZy
YW1lU3ViUmVzb3VyY2VDb3VudCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIGRlY29k
ZUhhc2hDb3VudGVkU2V0KGRlY29kZXIsICJzdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwg
c3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucyk7Ci0gICAgZGVjb2RlSGFzaENvdW50ZWRTZXQo
ZGVjb2RlciwgInN1YmZyYW1lVW5pcXVlUmVkaXJlY3RzVG8iLCBzdWJmcmFtZVVuaXF1ZVJlZGly
ZWN0c1RvKTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlVUludDMyKCJzdWJmcmFtZUhh
c0JlZW5OYXZpZ2F0ZWRUbyIsIHN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50MzIoInN1YmZy
YW1lSGFzQmVlbk5hdmlnYXRlZEZyb20iLCBzdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIC8vIFN1YnJlc291cmNlIHN0YXRzCi0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJbnQzMigic3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3Rl
ZEZyb20iLCBzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlVUludDMyKCJzdWJyZXNvdXJj
ZUhhc0JlZW5SZWRpcmVjdGVkVG8iLCBzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkVG8pKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJbnQz
Migic3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudCIsIHN1YnJlc291cmNlSGFzQmVl
blN1YnJlc291cmNlQ291bnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZURvdWJsZSgic3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3Vu
dERpdmlkZWRCeVRvdGFsTnVtYmVyT2ZPcmlnaW5zVmlzaXRlZCIsIHN1YnJlc291cmNlSGFzQmVl
blN1YnJlc291cmNlQ291bnREaXZpZGVkQnlUb3RhbE51bWJlck9mT3JpZ2luc1Zpc2l0ZWQpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBkZWNvZGVIYXNoQ291bnRlZFNldChkZWNvZGVy
LCAic3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucyIsIHN1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbnMpOwogICAgIGRlY29kZUhhc2hDb3VudGVkU2V0KGRlY29kZXIsICJzdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0c1RvIiwgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyk7CiAg
ICAgCiAgICAgLy8gUHJldmFsZW50IFJlc291cmNlCi0gICAgZGVjb2RlSGFzaENvdW50ZWRTZXQo
ZGVjb2RlciwgInJlZGlyZWN0ZWRUb090aGVyUHJldmFsZW50UmVzb3VyY2VPcmlnaW5zIiwgcmVk
aXJlY3RlZFRvT3RoZXJQcmV2YWxlbnRSZXNvdXJjZU9yaWdpbnMpOwotICAgIAogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGVCb29sKCJpc1ByZXZhbGVudFJlc291cmNlIiwgaXNQcmV2YWxlbnRSZXNv
dXJjZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICh2ZXJzaW9uIDwgMikKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICBpZiAoIWRlY29kZXIuZGVjb2RlVUludDMyKCJkYXRh
UmVjb3Jkc1JlbW92ZWQiLCBkYXRhUmVjb3Jkc1JlbW92ZWQpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBpZiAodmVyc2lvbiA8IDMpCi0gICAgICAgIHJldHVybiB0cnVlOwotCiAgICAg
ZG91YmxlIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lQXNEb3VibGU7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZURvdWJsZSgibW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiIsIG1vc3RSZWNl
bnRVc2VySW50ZXJhY3Rpb25UaW1lQXNEb3VibGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0yMzQsNjQgKzE1NiwxNCBAQCBTdHJpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6dG9TdHJp
bmcoKSBjb25zdAogICAgIGFwcGVuZEJvb2xlYW4oYnVpbGRlciwgIiAgICBncmFuZGZhdGhlcmVk
IiwgZ3JhbmRmYXRoZXJlZCk7CiAgICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgCi0gICAg
Ly8gVG9wIGZyYW1lIHN0YXRzCi0gICAgYXBwZW5kQm9vbGVhbihidWlsZGVyLCAidG9wRnJhbWVI
YXNCZWVuTmF2aWdhdGVkVG9CZWZvcmUiLCB0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUb0JlZm9y
ZSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIgICAgdG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvOiAiKTsKLSAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcih0b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG8pOwotICAgIGJ1aWxkZXIuYXBwZW5k
KCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHRvcEZyYW1lSGFzQmVlblJl
ZGlyZWN0ZWRGcm9tOiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0b3BGcmFtZUhhc0Jl
ZW5SZWRpcmVjdGVkRnJvbSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCIgICAgdG9wRnJhbWVJbml0aWFsTG9hZENvdW50OiAiKTsKLSAgICBi
dWlsZGVyLmFwcGVuZE51bWJlcih0b3BGcmFtZUluaXRpYWxMb2FkQ291bnQpOwotICAgIGJ1aWxk
ZXIuYXBwZW5kKCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHRvcEZyYW1l
SGFzQmVlbk5hdmlnYXRlZFRvOiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcih0b3BGcmFt
ZUhhc0JlZW5OYXZpZ2F0ZWRUbyk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIgICAgdG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbTogIik7
Ci0gICAgYnVpbGRlci5hcHBlbmROdW1iZXIodG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbSk7
Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgCiAgICAgLy8gU3ViZnJhbWUgc3RhdHMK
LSAgICBhcHBlbmRCb29sZWFuKGJ1aWxkZXIsICJzdWJmcmFtZUhhc0JlZW5Mb2FkZWRCZWZvcmUi
LCBzdWJmcmFtZUhhc0JlZW5Mb2FkZWRCZWZvcmUpOwotICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicp
OwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHN1YmZyYW1lSGFzQmVlblJlZGlyZWN0
ZWRUbzogIik7Ci0gICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc3ViZnJhbWVIYXNCZWVuUmVkaXJl
Y3RlZFRvKTsKLSAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIiAgICBzdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJvbTogIik7Ci0gICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIoc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb20pOwotICAgIGJ1aWxk
ZXIuYXBwZW5kKCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHN1YmZyYW1l
U3ViUmVzb3VyY2VDb3VudDogIik7Ci0gICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc3ViZnJhbWVT
dWJSZXNvdXJjZUNvdW50KTsKLSAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICBhcHBlbmRI
YXNoQ291bnRlZFNldChidWlsZGVyLCAic3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucyIsIHN1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMpOwotICAgIGFwcGVuZEhhc2hDb3VudGVkU2V0KGJ1
aWxkZXIsICJzdWJmcmFtZVVuaXF1ZVJlZGlyZWN0c1RvIiwgc3ViZnJhbWVVbmlxdWVSZWRpcmVj
dHNUbyk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgc3ViZnJhbWVIYXNCZWVuTmF2
aWdhdGVkVG86ICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHN1YmZyYW1lSGFzQmVlbk5h
dmlnYXRlZFRvKTsKLSAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIiAgICBzdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tOiAiKTsKLSAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihzdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tKTsKLSAgICBidWls
ZGVyLmFwcGVuZCgnXG4nKTsKICAgICAKICAgICAvLyBTdWJyZXNvdXJjZSBzdGF0cwotICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRGcm9t
OiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcihzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVj
dGVkRnJvbSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIgICAgc3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZFRvOiAiKTsKLSAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkVG8pOwotICAgIGJ1
aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHN1YnJl
c291cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnQ6ICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKHN1YnJlc291cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnQpOwotICAgIGJ1aWxkZXIuYXBw
ZW5kKCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHN1YnJlc291cmNlSGFz
QmVlblN1YnJlc291cmNlQ291bnREaXZpZGVkQnlUb3RhbE51bWJlck9mT3JpZ2luc1Zpc2l0ZWQ6
ICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHN1YnJlc291cmNlSGFzQmVlblN1YnJlc291
cmNlQ291bnREaXZpZGVkQnlUb3RhbE51bWJlck9mT3JpZ2luc1Zpc2l0ZWQpOwotICAgIGJ1aWxk
ZXIuYXBwZW5kKCdcbicpOwogICAgIGFwcGVuZEhhc2hDb3VudGVkU2V0KGJ1aWxkZXIsICJzdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwgc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3Jp
Z2lucyk7CiAgICAgYXBwZW5kSGFzaENvdW50ZWRTZXQoYnVpbGRlciwgInN1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzVG8iLCBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvKTsKICAgICAKICAg
ICAvLyBQcmV2YWxlbnQgUmVzb3VyY2UKLSAgICBhcHBlbmRIYXNoQ291bnRlZFNldChidWlsZGVy
LCAicmVkaXJlY3RlZFRvT3RoZXJQcmV2YWxlbnRSZXNvdXJjZU9yaWdpbnMiLCByZWRpcmVjdGVk
VG9PdGhlclByZXZhbGVudFJlc291cmNlT3JpZ2lucyk7CiAgICAgYXBwZW5kQm9vbGVhbihidWls
ZGVyLCAiaXNQcmV2YWxlbnRSZXNvdXJjZSIsIGlzUHJldmFsZW50UmVzb3VyY2UpOwogICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIGRhdGFSZWNvcmRzUmVtb3ZlZDogIik7CiAgICAgYnVp
bGRlci5hcHBlbmROdW1iZXIoZGF0YVJlY29yZHNSZW1vdmVkKTsKQEAgLTMzMSwzMyArMjAzLDE0
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6bWVyZ2UoY29uc3QgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyYgb3RoZXIpCiAgICAgfQogICAgIGdyYW5kZmF0aGVyZWQgfD0gb3RoZXIuZ3Jh
bmRmYXRoZXJlZDsKICAgICAKLSAgICAvLyBUb3AgZnJhbWUgc3RhdHMKLSAgICB0b3BGcmFtZUhh
c0JlZW5SZWRpcmVjdGVkVG8gKz0gb3RoZXIudG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvOwot
ICAgIHRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tICs9IG90aGVyLnRvcEZyYW1lSGFzQmVl
blJlZGlyZWN0ZWRGcm9tOwotICAgIHRvcEZyYW1lSW5pdGlhbExvYWRDb3VudCArPSBvdGhlci50
b3BGcmFtZUluaXRpYWxMb2FkQ291bnQ7Ci0gICAgdG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkVG8g
Kz0gb3RoZXIudG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkVG87Ci0gICAgdG9wRnJhbWVIYXNCZWVu
TmF2aWdhdGVkRnJvbSArPSBvdGhlci50b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tOwotICAg
IHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvQmVmb3JlIHw9IG90aGVyLnRvcEZyYW1lSGFzQmVl
bk5hdmlnYXRlZFRvQmVmb3JlOwotICAgIAogICAgIC8vIFN1YmZyYW1lIHN0YXRzCiAgICAgbWVy
Z2VIYXNoQ291bnRlZFNldChzdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zLCBvdGhlci5zdWJm
cmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zKTsKLSAgICBzdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVk
VG8gKz0gb3RoZXIuc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvOwotICAgIHN1YmZyYW1lSGFz
QmVlblJlZGlyZWN0ZWRGcm9tICs9IG90aGVyLnN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9t
OwotICAgIG1lcmdlSGFzaENvdW50ZWRTZXQoc3ViZnJhbWVVbmlxdWVSZWRpcmVjdHNUbywgb3Ro
ZXIuc3ViZnJhbWVVbmlxdWVSZWRpcmVjdHNUbyk7Ci0gICAgc3ViZnJhbWVTdWJSZXNvdXJjZUNv
dW50ICs9IG90aGVyLnN1YmZyYW1lU3ViUmVzb3VyY2VDb3VudDsKLSAgICBzdWJmcmFtZUhhc0Jl
ZW5OYXZpZ2F0ZWRUbyArPSBvdGhlci5zdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbzsKLSAgICBz
dWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tICs9IG90aGVyLnN1YmZyYW1lSGFzQmVlbk5hdmln
YXRlZEZyb207Ci0gICAgc3ViZnJhbWVIYXNCZWVuTG9hZGVkQmVmb3JlIHw9IG90aGVyLnN1YmZy
YW1lSGFzQmVlbkxvYWRlZEJlZm9yZTsKICAgICAKICAgICAvLyBTdWJyZXNvdXJjZSBzdGF0cwog
ICAgIG1lcmdlSGFzaENvdW50ZWRTZXQoc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucywg
b3RoZXIuc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucyk7Ci0gICAgc3VicmVzb3VyY2VI
YXNCZWVuU3VicmVzb3VyY2VDb3VudCArPSBvdGhlci5zdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNv
dXJjZUNvdW50OwotICAgIHN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRGcm9tICs9IG90aGVy
LnN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRGcm9tOwotICAgIHN1YnJlc291cmNlSGFzQmVl
blJlZGlyZWN0ZWRUbyArPSBvdGhlci5zdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkVG87CiAg
ICAgbWVyZ2VIYXNoQ291bnRlZFNldChzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvLCBvdGhl
ci5zdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvKTsKICAgICAKICAgICAvLyBQcmV2YWxlbnQg
cmVzb3VyY2Ugc3RhdHMKLSAgICBtZXJnZUhhc2hDb3VudGVkU2V0KHJlZGlyZWN0ZWRUb090aGVy
UHJldmFsZW50UmVzb3VyY2VPcmlnaW5zLCBvdGhlci5yZWRpcmVjdGVkVG9PdGhlclByZXZhbGVu
dFJlc291cmNlT3JpZ2lucyk7CiAgICAgaXNQcmV2YWxlbnRSZXNvdXJjZSB8PSBvdGhlci5pc1By
ZXZhbGVudFJlc291cmNlOwogICAgIGRhdGFSZWNvcmRzUmVtb3ZlZCArPSBvdGhlci5kYXRhUmVj
b3Jkc1JlbW92ZWQ7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljcy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MuaAppbmRleCBhZTMzNjA4M2QxODA2ODM0OGRlZTJhOGZjZGUxMGE4ZjNhMDgw
OWY3Li5kMmJhZThhNTRkOTJiMzc0MGE0MTFlMTkzY2FjYTJhMmM2MGJmNDAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmgKQEAgLTUzLDcgKzUz
LDcgQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MgewogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTdHJpbmcgcHJpbWFyeURvbWFpbihjb25zdCBTdHJpbmcmIGhvc3QpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBlbmNvZGUoS2V5ZWRFbmNvZGVyJikgY29uc3Q7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBkZWNvZGUoS2V5ZWREZWNvZGVyJiwgdW5zaWduZWQgdmVyc2lvbik7
CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWNvZGUoS2V5ZWREZWNvZGVyJik7CiAKICAgICBT
dHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKIApAQCAtNjYsMzUgKzY2LDE1IEBAIHN0cnVjdCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzIHsKICAgICAvLyBUaW1lc3RhbXAuIERlZmF1bHQgdmFsdWUgaXMg
bmVnYXRpdmUsIDAgbWVhbnMgaXQgd2FzIHJlc2V0LgogICAgIFdhbGxUaW1lIG1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb25UaW1lIHsgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKC0xKSB9OwogICAg
IGJvb2wgZ3JhbmRmYXRoZXJlZCB7IGZhbHNlIH07Ci0KLSAgICAvLyBUb3AgZnJhbWUgc3RhdHMK
LSAgICB1bnNpZ25lZCB0b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG8geyAwIH07Ci0gICAgdW5z
aWduZWQgdG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb20geyAwIH07Ci0gICAgdW5zaWduZWQg
dG9wRnJhbWVJbml0aWFsTG9hZENvdW50IHsgMCB9OwotICAgIHVuc2lnbmVkIHRvcEZyYW1lSGFz
QmVlbk5hdmlnYXRlZFRvIHsgMCB9OwotICAgIHVuc2lnbmVkIHRvcEZyYW1lSGFzQmVlbk5hdmln
YXRlZEZyb20geyAwIH07Ci0gICAgYm9vbCB0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUb0JlZm9y
ZSB7IGZhbHNlIH07CiAgICAgCiAgICAgLy8gU3ViZnJhbWUgc3RhdHMKICAgICBIYXNoQ291bnRl
ZFNldDxTdHJpbmc+IHN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnM7Ci0gICAgdW5zaWduZWQg
c3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvIHsgMCB9OwotICAgIHVuc2lnbmVkIHN1YmZyYW1l
SGFzQmVlblJlZGlyZWN0ZWRGcm9tIHsgMCB9OwotICAgIEhhc2hDb3VudGVkU2V0PFN0cmluZz4g
c3ViZnJhbWVVbmlxdWVSZWRpcmVjdHNUbzsKLSAgICB1bnNpZ25lZCBzdWJmcmFtZVN1YlJlc291
cmNlQ291bnQgeyAwIH07Ci0gICAgdW5zaWduZWQgc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkVG8g
eyAwIH07Ci0gICAgdW5zaWduZWQgc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbSB7IDAgfTsK
LSAgICBib29sIHN1YmZyYW1lSGFzQmVlbkxvYWRlZEJlZm9yZSB7IGZhbHNlIH07CiAgICAgCiAg
ICAgLy8gU3VicmVzb3VyY2Ugc3RhdHMKICAgICBIYXNoQ291bnRlZFNldDxTdHJpbmc+IHN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnM7Ci0gICAgdW5zaWduZWQgc3VicmVzb3VyY2VIYXNC
ZWVuU3VicmVzb3VyY2VDb3VudCB7IDAgfTsKLSAgICBkb3VibGUgc3VicmVzb3VyY2VIYXNCZWVu
U3VicmVzb3VyY2VDb3VudERpdmlkZWRCeVRvdGFsTnVtYmVyT2ZPcmlnaW5zVmlzaXRlZCB7IDAu
MCB9OwotICAgIHVuc2lnbmVkIHN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRGcm9tIHsgMCB9
OwotICAgIHVuc2lnbmVkIHN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRUbyB7IDAgfTsKICAg
ICBIYXNoQ291bnRlZFNldDxTdHJpbmc+IHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG87CiAg
ICAgCiAgICAgLy8gUHJldmFsZW50IHJlc291cmNlIHN0YXRzCi0gICAgSGFzaENvdW50ZWRTZXQ8
U3RyaW5nPiByZWRpcmVjdGVkVG9PdGhlclByZXZhbGVudFJlc291cmNlT3JpZ2luczsKICAgICBi
b29sIGlzUHJldmFsZW50UmVzb3VyY2UgeyBmYWxzZSB9OwogICAgIHVuc2lnbmVkIGRhdGFSZWNv
cmRzUmVtb3ZlZCB7IDAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAppbmRleCBjYzZhZmZhNzFkMjI4MTY1MmJkZTJlNmViMjU3Mzk1NmY3
NTI0NzllLi4wNzE5ODI4NjVhMWJlNzU0Zjc0Njc4OTkzYWM3Mzk3NzRkODAyYWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMjI0
NywzNCArMjI0NywxNCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VMb2FkU3RhdGlzdGlj
cz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDbwogICAgIGVuY29kZXIgPDwg
c3RhdGlzdGljcy5tb3N0UmVjZW50VXNlckludGVyYWN0aW9uVGltZS5zZWNvbmRzU2luY2VFcG9j
aCgpLnZhbHVlKCk7CiAgICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLmdyYW5kZmF0aGVyZWQ7CiAg
ICAgCi0gICAgLy8gVG9wIGZyYW1lIHN0YXRzCi0gICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLnRv
cEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvQmVmb3JlOwotICAgIGVuY29kZXIgPDwgc3RhdGlzdGlj
cy50b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG87Ci0gICAgZW5jb2RlciA8PCBzdGF0aXN0aWNz
LnRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tOwotICAgIGVuY29kZXIgPDwgc3RhdGlzdGlj
cy50b3BGcmFtZUluaXRpYWxMb2FkQ291bnQ7Ci0gICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLnRv
cEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvOwotICAgIGVuY29kZXIgPDwgc3RhdGlzdGljcy50b3BG
cmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tOwotICAgIAogICAgIC8vIFN1YmZyYW1lIHN0YXRzCi0g
ICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLnN1YmZyYW1lSGFzQmVlbkxvYWRlZEJlZm9yZTsKLSAg
ICBlbmNvZGVyIDw8IHN0YXRpc3RpY3Muc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvOwotICAg
IGVuY29kZXIgPDwgc3RhdGlzdGljcy5zdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJvbTsKLSAg
ICBlbmNvZGVyIDw8IHN0YXRpc3RpY3Muc3ViZnJhbWVTdWJSZXNvdXJjZUNvdW50OwogICAgIGVu
Y29kZXIgPDwgc3RhdGlzdGljcy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zOwotICAgIGVu
Y29kZXIgPDwgc3RhdGlzdGljcy5zdWJmcmFtZVVuaXF1ZVJlZGlyZWN0c1RvOwotICAgIGVuY29k
ZXIgPDwgc3RhdGlzdGljcy5zdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbzsKLSAgICBlbmNvZGVy
IDw8IHN0YXRpc3RpY3Muc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbTsKICAgICAKICAgICAv
LyBTdWJyZXNvdXJjZSBzdGF0cwotICAgIGVuY29kZXIgPDwgc3RhdGlzdGljcy5zdWJyZXNvdXJj
ZUhhc0JlZW5SZWRpcmVjdGVkRnJvbTsKLSAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3Muc3VicmVz
b3VyY2VIYXNCZWVuUmVkaXJlY3RlZFRvOwotICAgIGVuY29kZXIgPDwgc3RhdGlzdGljcy5zdWJy
ZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50OwotICAgIGVuY29kZXIgPDwgc3RhdGlzdGlj
cy5zdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50RGl2aWRlZEJ5VG90YWxOdW1iZXJP
Zk9yaWdpbnNWaXNpdGVkOwogICAgIGVuY29kZXIgPDwgc3RhdGlzdGljcy5zdWJyZXNvdXJjZVVu
ZGVyVG9wRnJhbWVPcmlnaW5zOwogICAgIGVuY29kZXIgPDwgc3RhdGlzdGljcy5zdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0c1RvOwogICAgIAogICAgIC8vIFByZXZhbGVudCBSZXNvdXJjZQotICAg
IGVuY29kZXIgPDwgc3RhdGlzdGljcy5yZWRpcmVjdGVkVG9PdGhlclByZXZhbGVudFJlc291cmNl
T3JpZ2luczsKICAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3MuaXNQcmV2YWxlbnRSZXNvdXJjZTsK
ICAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3MuZGF0YVJlY29yZHNSZW1vdmVkOwogfQpAQCAtMjI5
Niw2MyArMjI3NiwxMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VMb2FkU3RhdGlzdGlj
cz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpSZQogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoc3RhdGlzdGljcy5ncmFuZGZhdGhlcmVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIAotICAgIC8vIFRvcCBmcmFtZSBzdGF0cwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
c3RhdGlzdGljcy50b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUb0JlZm9yZSkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpc3RpY3MudG9w
RnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy50b3BGcmFtZUhhc0JlZW5SZWRpcmVj
dGVkRnJvbSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHN0YXRpc3RpY3MudG9wRnJhbWVJbml0aWFsTG9hZENvdW50KSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy50b3BG
cmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpc3RpY3MudG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVk
RnJvbSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICAvLyBTdWJmcmFtZSBzdGF0
cwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy5zdWJmcmFtZUhhc0JlZW5Mb2Fk
ZWRCZWZvcmUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzdGF0aXN0aWNzLnN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbykpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpc3RpY3Mu
c3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb20pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNzLnN1YmZyYW1lU3ViUmVzb3Vy
Y2VDb3VudCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHN0YXRpc3RpY3Muc3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucykpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy5zdWJm
cmFtZVVuaXF1ZVJlZGlyZWN0c1RvKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy5zdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRU
bykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHN0YXRpc3RpY3Muc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbSkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAKICAgICAvLyBTdWJyZXNvdXJjZSBzdGF0cwotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoc3RhdGlzdGljcy5zdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRp
c3RpY3Muc3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZFRvKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy5zdWJyZXNvdXJj
ZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy5zdWJyZXNvdXJjZUhhc0JlZW5TdWJy
ZXNvdXJjZUNvdW50RGl2aWRlZEJ5VG90YWxOdW1iZXJPZk9yaWdpbnNWaXNpdGVkKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGlj
cy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCkBAIC0yMzYwLDkgKzIyODgsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VMb2Fk
U3RhdGlzdGljcz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpSZQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgLy8gUHJldmFsZW50IFJlc291cmNlCi0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNzLnJlZGlyZWN0ZWRUb090aGVyUHJldmFsZW50UmVz
b3VyY2VPcmlnaW5zKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAogICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoc3RhdGlzdGljcy5pc1ByZXZhbGVudFJlc291cmNlKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFn
ZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1N0b3JhZ2UvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCA5MzgwYmRj
OGUyNjcwZTk2ZjQ4MTk4NjM4ZDlmYTY2MmU3N2IyZjUyLi5jNmZjYWM2YTMyMWY4M2U4MmNjODA3
Mjc3ZTY2NzZlOWNiNDY5MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U3RvcmFnZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAg
LTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCi1zdGF0aWMgY29uc3QgYXV0byBzdGF0aXN0aWNzTW9kZWxWZXJzaW9uID0gNDsKK3N0
YXRpYyBjb25zdCBhdXRvIHN0YXRpc3RpY3NNb2RlbFZlcnNpb24gPSA1Owogc3RhdGljIFNlY29u
ZHMgdGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbiB7IDI0X2ggKiAzMC4gfTsKIHN0YXRpYyBTZWNv
bmRzIHRpbWVUb0xpdmVDb29raWVQYXJ0aXRpb25GcmVlIHsgMjRfaCB9Owogc3RhdGljIFNlY29u
ZHMgZ3JhbmRmYXRoZXJpbmdUaW1lIHsgMV9oIH07CkBAIC0xMDIsMjIgKzEwMiwyMiBAQCB2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVhZERhdGFGcm9tRGVjb2RlcihLZXllZERl
Y29kZXImIGRlY29kZXIpCiAgICAgaWYgKG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLnNpemUoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgdW5zaWduZWQgdmVyc2lvbjsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlVUludDMyKCJ2ZXJzaW9uIiwgdmVyc2lvbikpCi0gICAgICAgIHZlcnNpb24gPSAx
OwotCi0gICAgc3RhdGljIGNvbnN0IGF1dG8gbWluaW11bVZlcnNpb25XaXRoR3JhbmRmYXRoZXJp
bmcgPSAzOwotICAgIGlmICh2ZXJzaW9uID4gbWluaW11bVZlcnNpb25XaXRoR3JhbmRmYXRoZXJp
bmcpIHsKLSAgICAgICAgZG91YmxlIGVuZE9mR3JhbmRmYXRoZXJpbmdUaW1lc3RhbXA7Ci0gICAg
ICAgIGlmIChkZWNvZGVyLmRlY29kZURvdWJsZSgiZW5kT2ZHcmFuZGZhdGhlcmluZ1RpbWVzdGFt
cCIsIGVuZE9mR3JhbmRmYXRoZXJpbmdUaW1lc3RhbXApKQotICAgICAgICAgICAgbV9lbmRPZkdy
YW5kZmF0aGVyaW5nVGltZXN0YW1wID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGVuZE9mR3Jh
bmRmYXRoZXJpbmdUaW1lc3RhbXApOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2VuZE9m
R3JhbmRmYXRoZXJpbmdUaW1lc3RhbXAgPSB7IH07Ci0gICAgfQorICAgIHVuc2lnbmVkIHZlcnNp
b25PbkRpc2s7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJbnQzMigidmVyc2lvbiIsIHZlcnNp
b25PbkRpc2spKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAodmVyc2lvbk9uRGlzayAhPSBz
dGF0aXN0aWNzTW9kZWxWZXJzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBkb3VibGUgZW5k
T2ZHcmFuZGZhdGhlcmluZ1RpbWVzdGFtcDsKKyAgICBpZiAoZGVjb2Rlci5kZWNvZGVEb3VibGUo
ImVuZE9mR3JhbmRmYXRoZXJpbmdUaW1lc3RhbXAiLCBlbmRPZkdyYW5kZmF0aGVyaW5nVGltZXN0
YW1wKSkKKyAgICAgICAgbV9lbmRPZkdyYW5kZmF0aGVyaW5nVGltZXN0YW1wID0gV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKGVuZE9mR3JhbmRmYXRoZXJpbmdUaW1lc3RhbXApOworICAgIGVsc2UK
KyAgICAgICAgbV9lbmRPZkdyYW5kZmF0aGVyaW5nVGltZXN0YW1wID0geyB9OwogCiAgICAgVmVj
dG9yPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+IGxvYWRlZFN0YXRpc3RpY3M7Ci0gICAgYm9vbCBz
dWNjZWVkZWQgPSBkZWNvZGVyLmRlY29kZU9iamVjdHMoImJyb3dzaW5nU3RhdGlzdGljcyIsIGxv
YWRlZFN0YXRpc3RpY3MsIFt2ZXJzaW9uXShLZXllZERlY29kZXImIGRlY29kZXJJbm5lciwgUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyYgc3RhdGlzdGljcykgewotICAgICAgICByZXR1cm4gc3RhdGlz
dGljcy5kZWNvZGUoZGVjb2RlcklubmVyLCB2ZXJzaW9uKTsKKyAgICBib29sIHN1Y2NlZWRlZCA9
IGRlY29kZXIuZGVjb2RlT2JqZWN0cygiYnJvd3NpbmdTdGF0aXN0aWNzIiwgbG9hZGVkU3RhdGlz
dGljcywgW10oS2V5ZWREZWNvZGVyJiBkZWNvZGVySW5uZXIsIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MmIHN0YXRpc3RpY3MpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpc3RpY3MuZGVjb2RlKGRlY29k
ZXJJbm5lcik7CiAgICAgfSk7CiAKICAgICBpZiAoIXN1Y2NlZWRlZCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314778</attachid>
            <date>2017-07-06 16:38:49 -0700</date>
            <delta_ts>2017-07-06 16:54:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174226-20170706163849.patch</filename>
            <type>text/plain</type>
            <size>34739</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhkMWNhOTQ1NmZhMjM5
NTkzMDVjNWNiZjFkMDVjNzVmMzcwYThkZi4uMDFiOTRlMWI5MmY4NWNiZjQ1MWEwZDk5Y2VlYzY2
NjA4YjFmYTA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDE3LTA3LTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJvcCB1bnVzZWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyBtZW1iZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzQyMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nRnJhbWVOYXZpZ2F0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dTdWJyZXNvdXJjZUxv
YWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1dlYlNv
Y2tldExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omlz
UHJldmFsZW50UmVzb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxv
YWRPYnNlcnZlci5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OmVuY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpkZWNvZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6dG9TdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6bWVyZ2UpOgorICAgICAgICAqIGxvYWRl
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg6CisKKzIwMTctMDctMDYgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBGaWxlTW9uaXRvciBzaG91bGQgbm90IGJlIHJl
ZiBjb3VudGVkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzQxNjYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI4YTgwM2Q3NWQ5NTE3MDI0MGNkNjcxYjZlODgyMjYy
MWYyYjY4MTIuLjExYzQ1OWFjYTdmYjM0YmYzNWUyNDU5ZjYwYTk3NTJkNGExZWY2MzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwxOCBAQAogMjAxNy0wNy0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCisgICAgICAgIERyb3AgdW51c2VkIFJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
bWVtYmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc0MjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZGVjb2RlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvU3RvcmFnZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlYWREYXRhRnJvbURl
Y29kZXIpOgorCisyMDE3LTA3LTA2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
ICAgICAgICAgRmlsZU1vbml0b3Igc2hvdWxkIG5vdCBiZSByZWYgY291bnRlZAogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MTY2CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDc1OTRhNGE5NDVhYjQ4Y2Y5Mzk2
YjRhMzU2MGVjNGE4MDJjYzFjNmUuLjNiYjljNGUzMmYxYjhlMDNkMTVkYmI5OWIwNzc3YTYwYjQw
ZDJmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNTIw
LDcgKzUyMCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmNlCiAgICAgQVNTRVJUKG1fZnJhbWUt
PmRvY3VtZW50KCkpOwogICAgIEFTU0VSVCh0b3BGcmFtZS5kb2N1bWVudCgpKTsKIAotICAgIFJl
c291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5sb2dGcmFtZU5hdmlnYXRpb24oKm1fZnJhbWUs
IHRvcEZyYW1lLCBuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICBSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2hhcmVkKCkubG9nRnJhbWVOYXZpZ2F0aW9uKCptX2ZyYW1lLCB0b3BGcmFt
ZSwgbmV3UmVxdWVzdCk7CiAgICAgCiAgICAgLy8gVXBkYXRlIGNvb2tpZSBwb2xpY3kgYmFzZSBV
UkwgYXMgVVJMIGNoYW5nZXMsIGV4Y2VwdCBmb3Igc3ViZnJhbWVzLCB3aGljaCB1c2UgdGhlCiAg
ICAgLy8gVVJMIG9mIHRoZSBtYWluIGZyYW1lIHdoaWNoIGRvZXNuJ3QgY2hhbmdlIHdoZW4gd2Ug
cmVkaXJlY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVy
LmNwcAppbmRleCAyODY0Y2NjYWQ5OWVjZGExMWI2YzdmYTliNzRjN2E5MTUxNDQ5ZTBiLi5hMmU5
ODIwZDYwZDliNzM2OWMwNzJjNGE5ZTJmMDE4MGZmYzYwNmVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgYm9v
bCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hvdWxkTG9nKFBhZ2UqIHBhZ2UpIGNvbnN0CiAgICAg
cmV0dXJuIFNldHRpbmdzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpICYmICFwYWdl
LT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpICYmIG1fbm90aWZpY2F0aW9uQ2FsbGJhY2s7CiB9CiAK
LXZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBGcmFt
ZSYgZnJhbWUsIGNvbnN0IEZyYW1lJiB0b3BGcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBu
ZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQordm9p
ZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IEZyYW1lJiBm
cmFtZSwgY29uc3QgRnJhbWUmIHRvcEZyYW1lLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIG5ld1Jl
cXVlc3QpCiB7CiAgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwogICAgIEFTU0VSVCh0b3BG
cmFtZS5kb2N1bWVudCgpKTsKQEAgLTg4LDcgKzg4LDYgQEAgdm9pZCBSZXNvdXJjZUxvYWRPYnNl
cnZlcjo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWUm
IHQKICAgICBpZiAoIXNob3VsZExvZyh0b3BGcmFtZS5wYWdlKCkpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBib29sIGlzUmVkaXJlY3QgPSBpczN4eFJlZGlyZWN0KHJlZGlyZWN0UmVzcG9uc2Up
OwogICAgIGJvb2wgaXNNYWluRnJhbWUgPSBmcmFtZS5pc01haW5GcmFtZSgpOwogICAgIGF1dG8m
IHNvdXJjZVVSTCA9IGZyYW1lLmRvY3VtZW50KCktPnVybCgpOwogICAgIGF1dG8mIHRhcmdldFVS
TCA9IG5ld1JlcXVlc3QudXJsKCk7CkBAIC0xMTAsNTggKzEwOSwxOCBAQCB2b2lkIFJlc291cmNl
TG9hZE9ic2VydmVyOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgRnJhbWUmIGZyYW1lLCBjb25z
dCBGcmFtZSYgdAogICAgIGlmICh0YXJnZXRQcmltYXJ5RG9tYWluID09IG1haW5GcmFtZVByaW1h
cnlEb21haW4gfHwgdGFyZ2V0UHJpbWFyeURvbWFpbiA9PSBzb3VyY2VQcmltYXJ5RG9tYWluKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHRhcmdldFN0YXRpc3RpY3MgPSB0YWtlUmVzb3Vy
Y2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbih0YXJnZXRQcmltYXJ5RG9tYWluKTsKKyAgICBh
dXRvJiB0YXJnZXRTdGF0aXN0aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFy
eURvbWFpbih0YXJnZXRQcmltYXJ5RG9tYWluKTsKIAogICAgIC8vIEFsd2F5cyBmaXJlIGlmIHdl
IGhhdmUgcHJldmlvdXNseSByZW1vdmVkIGRhdGEgcmVjb3JkcyBmb3IgdGhpcyBkb21haW4KKyAg
ICAvLyBGSVhNRTogdGFyZ2V0U3RhdGlzdGljcy5kYXRhUmVjb3Jkc1JlbW92ZWQgaXMgYWx3YXlz
IDAgaW4gV2ViQ29yZSBhcyBpdCBnZXRzIHBvcHVsYXRlZCBpbiB0aGUgVUlQcm9jZXNzLgogICAg
IGJvb2wgc2hvdWxkQ2FsbE5vdGlmaWNhdGlvbkNhbGxiYWNrID0gdGFyZ2V0U3RhdGlzdGljcy5k
YXRhUmVjb3Jkc1JlbW92ZWQgPiAwOwogCi0gICAgaWYgKGlzTWFpbkZyYW1lKQotICAgICAgICB0
YXJnZXRTdGF0aXN0aWNzLnRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvQmVmb3JlID0gdHJ1ZTsK
LSAgICBlbHNlIHsKLSAgICAgICAgdGFyZ2V0U3RhdGlzdGljcy5zdWJmcmFtZUhhc0JlZW5Mb2Fk
ZWRCZWZvcmUgPSB0cnVlOwotCisgICAgaWYgKCFpc01haW5GcmFtZSkgewogICAgICAgICBhdXRv
IHN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnNSZXN1bHQgPSB0YXJnZXRTdGF0aXN0aWNzLnN1
YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMuYWRkKG1haW5GcmFtZVByaW1hcnlEb21haW4pOwog
ICAgICAgICBpZiAoc3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luc1Jlc3VsdC5pc05ld0VudHJ5
KQogICAgICAgICAgICAgc2hvdWxkQ2FsbE5vdGlmaWNhdGlvbkNhbGxiYWNrID0gdHJ1ZTsKICAg
ICB9CiAKLSAgICBpZiAoaXNSZWRpcmVjdCkgewotICAgICAgICBhdXRvJiByZWRpcmVjdGluZ09y
aWdpblJlc291cmNlU3RhdGlzdGljcyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclByaW1h
cnlEb21haW4oc291cmNlUHJpbWFyeURvbWFpbik7Ci0KLSAgICAgICAgaWYgKGlzUHJldmFsZW50
UmVzb3VyY2UodGFyZ2V0UHJpbWFyeURvbWFpbikpCi0gICAgICAgICAgICByZWRpcmVjdGluZ09y
aWdpblJlc291cmNlU3RhdGlzdGljcy5yZWRpcmVjdGVkVG9PdGhlclByZXZhbGVudFJlc291cmNl
T3JpZ2lucy5hZGQodGFyZ2V0UHJpbWFyeURvbWFpbik7Ci0KLSAgICAgICAgaWYgKGlzTWFpbkZy
YW1lKSB7Ci0gICAgICAgICAgICArK3RhcmdldFN0YXRpc3RpY3MudG9wRnJhbWVIYXNCZWVuUmVk
aXJlY3RlZFRvOwotICAgICAgICAgICAgKytyZWRpcmVjdGluZ09yaWdpblJlc291cmNlU3RhdGlz
dGljcy50b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJvbTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICsrdGFyZ2V0U3RhdGlzdGljcy5zdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG87
Ci0gICAgICAgICAgICArK3JlZGlyZWN0aW5nT3JpZ2luUmVzb3VyY2VTdGF0aXN0aWNzLnN1YmZy
YW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tOwotICAgICAgICAgICAgcmVkaXJlY3RpbmdPcmlnaW5S
ZXNvdXJjZVN0YXRpc3RpY3Muc3ViZnJhbWVVbmlxdWVSZWRpcmVjdHNUby5hZGQodGFyZ2V0UHJp
bWFyeURvbWFpbik7Ci0KLSAgICAgICAgICAgICsrdGFyZ2V0U3RhdGlzdGljcy5zdWJmcmFtZVN1
YlJlc291cmNlQ291bnQ7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoc291
cmNlUHJpbWFyeURvbWFpbi5pc051bGwoKSB8fCBzb3VyY2VQcmltYXJ5RG9tYWluLmlzRW1wdHko
KSB8fCBzb3VyY2VQcmltYXJ5RG9tYWluID09ICJudWxsT3JpZ2luIikgewotICAgICAgICAgICAg
aWYgKGlzTWFpbkZyYW1lKQotICAgICAgICAgICAgICAgICsrdGFyZ2V0U3RhdGlzdGljcy50b3BG
cmFtZUluaXRpYWxMb2FkQ291bnQ7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
Kyt0YXJnZXRTdGF0aXN0aWNzLnN1YmZyYW1lU3ViUmVzb3VyY2VDb3VudDsKLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIGF1dG8mIHNvdXJjZU9yaWdpblJlc291cmNlU3RhdGlzdGljcyA9
IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclByaW1hcnlEb21haW4oc291cmNlUHJpbWFyeURv
bWFpbik7Ci0KLSAgICAgICAgICAgIGlmIChpc01haW5GcmFtZSkgewotICAgICAgICAgICAgICAg
ICsrc291cmNlT3JpZ2luUmVzb3VyY2VTdGF0aXN0aWNzLnRvcEZyYW1lSGFzQmVlbk5hdmlnYXRl
ZEZyb207Ci0gICAgICAgICAgICAgICAgKyt0YXJnZXRTdGF0aXN0aWNzLnRvcEZyYW1lSGFzQmVl
bk5hdmlnYXRlZFRvOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICArK3Nv
dXJjZU9yaWdpblJlc291cmNlU3RhdGlzdGljcy5zdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9t
OwotICAgICAgICAgICAgICAgICsrdGFyZ2V0U3RhdGlzdGljcy5zdWJmcmFtZUhhc0JlZW5OYXZp
Z2F0ZWRUbzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIG1fcmVzb3Vy
Y2VTdGF0aXN0aWNzTWFwLnNldCh0YXJnZXRQcmltYXJ5RG9tYWluLCBXVEZNb3ZlKHRhcmdldFN0
YXRpc3RpY3MpKTsKLQogICAgIGlmIChzaG91bGRDYWxsTm90aWZpY2F0aW9uQ2FsbGJhY2spCiAg
ICAgICAgIHNjaGVkdWxlTm90aWZpY2F0aW9uSWZOZWVkZWQoKTsKIH0KQEAgLTE5MSw0MyArMTUw
LDI3IEBAIHZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1N1YnJlc291cmNlTG9hZGluZyhj
b25zdCBGcmFtZSogZnJhbWUsIGNvbnN0IFJlc291CiAgICAgaWYgKHRhcmdldFByaW1hcnlEb21h
aW4gPT0gbWFpbkZyYW1lUHJpbWFyeURvbWFpbiB8fCAoaXNSZWRpcmVjdCAmJiB0YXJnZXRQcmlt
YXJ5RG9tYWluID09IHNvdXJjZVByaW1hcnlEb21haW4pKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBhdXRvIHRhcmdldFN0YXRpc3RpY3MgPSB0YWtlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFy
eURvbWFpbih0YXJnZXRQcmltYXJ5RG9tYWluKTsKKyAgICBib29sIHNob3VsZENhbGxOb3RpZmlj
YXRpb25DYWxsYmFjayA9IGZhbHNlOwogCi0gICAgLy8gQWx3YXlzIGZpcmUgaWYgd2UgaGF2ZSBw
cmV2aW91c2x5IHJlbW92ZWQgZGF0YSByZWNvcmRzIGZvciB0aGlzIGRvbWFpbgotICAgIGJvb2wg
c2hvdWxkQ2FsbE5vdGlmaWNhdGlvbkNhbGxiYWNrID0gdGFyZ2V0U3RhdGlzdGljcy5kYXRhUmVj
b3Jkc1JlbW92ZWQgPiAwOworICAgIHsKKyAgICAgICAgYXV0byYgdGFyZ2V0U3RhdGlzdGljcyA9
IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclByaW1hcnlEb21haW4odGFyZ2V0UHJpbWFyeURv
bWFpbik7CiAKLSAgICBhdXRvIHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnNSZXN1bHQg
PSB0YXJnZXRTdGF0aXN0aWNzLnN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMuYWRkKG1h
aW5GcmFtZVByaW1hcnlEb21haW4pOwotICAgIGlmIChzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVP
cmlnaW5zUmVzdWx0LmlzTmV3RW50cnkpCi0gICAgICAgIHNob3VsZENhbGxOb3RpZmljYXRpb25D
YWxsYmFjayA9IHRydWU7CisgICAgICAgIC8vIEFsd2F5cyBmaXJlIGlmIHdlIGhhdmUgcHJldmlv
dXNseSByZW1vdmVkIGRhdGEgcmVjb3JkcyBmb3IgdGhpcyBkb21haW4KKyAgICAgICAgLy8gRklY
TUU6IHRhcmdldFN0YXRpc3RpY3MuZGF0YVJlY29yZHNSZW1vdmVkIGlzIGFsd2F5cyAwIGluIFdl
YkNvcmUgYXMgaXQgZ2V0cyBwb3B1bGF0ZWQgaW4gdGhlIFVJUHJvY2Vzcy4KKyAgICAgICAgc2hv
dWxkQ2FsbE5vdGlmaWNhdGlvbkNhbGxiYWNrID0gdGFyZ2V0U3RhdGlzdGljcy5kYXRhUmVjb3Jk
c1JlbW92ZWQgPiAwOworCisgICAgICAgIGF1dG8gc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3Jp
Z2luc1Jlc3VsdCA9IHRhcmdldFN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3Jp
Z2lucy5hZGQobWFpbkZyYW1lUHJpbWFyeURvbWFpbik7CisgICAgICAgIGlmIChzdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVPcmlnaW5zUmVzdWx0LmlzTmV3RW50cnkpCisgICAgICAgICAgICBzaG91
bGRDYWxsTm90aWZpY2F0aW9uQ2FsbGJhY2sgPSB0cnVlOworICAgIH0KIAogICAgIGlmIChpc1Jl
ZGlyZWN0KSB7CiAgICAgICAgIGF1dG8mIHJlZGlyZWN0aW5nT3JpZ2luU3RhdGlzdGljcyA9IGVu
c3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclByaW1hcnlEb21haW4oc291cmNlUHJpbWFyeURvbWFp
bik7Ci0KLSAgICAgICAgaWYgKGlzUHJldmFsZW50UmVzb3VyY2UodGFyZ2V0UHJpbWFyeURvbWFp
bikpCi0gICAgICAgICAgICByZWRpcmVjdGluZ09yaWdpblN0YXRpc3RpY3MucmVkaXJlY3RlZFRv
T3RoZXJQcmV2YWxlbnRSZXNvdXJjZU9yaWdpbnMuYWRkKHRhcmdldFByaW1hcnlEb21haW4pOwot
Ci0gICAgICAgICsrcmVkaXJlY3RpbmdPcmlnaW5TdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVl
blJlZGlyZWN0ZWRGcm9tOwotICAgICAgICArK3RhcmdldFN0YXRpc3RpY3Muc3VicmVzb3VyY2VI
YXNCZWVuUmVkaXJlY3RlZFRvOwotCiAgICAgICAgIGF1dG8gc3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdHNUb1Jlc3VsdCA9IHJlZGlyZWN0aW5nT3JpZ2luU3RhdGlzdGljcy5zdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c1RvLmFkZCh0YXJnZXRQcmltYXJ5RG9tYWluKTsKICAgICAgICAgaWYgKHN1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9SZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAg
IHNob3VsZENhbGxOb3RpZmljYXRpb25DYWxsYmFjayA9IHRydWU7Ci0KLSAgICAgICAgKyt0YXJn
ZXRTdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnQ7Ci0KLSAgICAg
ICAgYXV0byB0b3RhbFZpc2l0ZWQgPSBzdGQ6Om1heChtX29yaWdpbnNWaXNpdGVkTWFwLnNpemUo
KSwgMVUpOwotCi0gICAgICAgIHRhcmdldFN0YXRpc3RpY3Muc3VicmVzb3VyY2VIYXNCZWVuU3Vi
cmVzb3VyY2VDb3VudERpdmlkZWRCeVRvdGFsTnVtYmVyT2ZPcmlnaW5zVmlzaXRlZCA9IHN0YXRp
Y19jYXN0PGRvdWJsZT4odGFyZ2V0U3RhdGlzdGljcy5zdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNv
dXJjZUNvdW50KSAvIHRvdGFsVmlzaXRlZDsKLSAgICB9IGVsc2UgewotICAgICAgICArK3Rhcmdl
dFN0YXRpc3RpY3Muc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudDsKLQotICAgICAg
ICBhdXRvIHRvdGFsVmlzaXRlZCA9IHN0ZDo6bWF4KG1fb3JpZ2luc1Zpc2l0ZWRNYXAuc2l6ZSgp
LCAxVSk7Ci0KLSAgICAgICAgdGFyZ2V0U3RhdGlzdGljcy5zdWJyZXNvdXJjZUhhc0JlZW5TdWJy
ZXNvdXJjZUNvdW50RGl2aWRlZEJ5VG90YWxOdW1iZXJPZk9yaWdpbnNWaXNpdGVkID0gc3RhdGlj
X2Nhc3Q8ZG91YmxlPih0YXJnZXRTdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVlblN1YnJlc291
cmNlQ291bnQpIC8gdG90YWxWaXNpdGVkOwogICAgIH0KIAotICAgIG1fcmVzb3VyY2VTdGF0aXN0
aWNzTWFwLnNldCh0YXJnZXRQcmltYXJ5RG9tYWluLCBXVEZNb3ZlKHRhcmdldFN0YXRpc3RpY3Mp
KTsKLQogICAgIGlmIChzaG91bGRDYWxsTm90aWZpY2F0aW9uQ2FsbGJhY2spCiAgICAgICAgIHNj
aGVkdWxlTm90aWZpY2F0aW9uSWZOZWVkZWQoKTsKIH0KQEAgLTI1OSwxOCArMjAyLDEzIEBAIHZv
aWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1dlYlNvY2tldExvYWRpbmcoY29uc3QgRnJhbWUq
IGZyYW1lLCBjb25zdCBVUkwmIHRhCiAgICAgYXV0byYgdGFyZ2V0U3RhdGlzdGljcyA9IGVuc3Vy
ZVJlc291cmNlU3RhdGlzdGljc0ZvclByaW1hcnlEb21haW4odGFyZ2V0UHJpbWFyeURvbWFpbik7
CiAKICAgICAvLyBBbHdheXMgZmlyZSBpZiB3ZSBoYXZlIHByZXZpb3VzbHkgcmVtb3ZlZCBkYXRh
IHJlY29yZHMgZm9yIHRoaXMgZG9tYWluCisgICAgLy8gRklYTUU6IHRhcmdldFN0YXRpc3RpY3Mu
ZGF0YVJlY29yZHNSZW1vdmVkIGlzIGFsd2F5cyAwIGluIFdlYkNvcmUgYXMgaXQgZ2V0cyBwb3B1
bGF0ZWQgaW4gdGhlIFVJUHJvY2Vzcy4KICAgICBib29sIHNob3VsZENhbGxOb3RpZmljYXRpb25D
YWxsYmFjayA9IHRhcmdldFN0YXRpc3RpY3MuZGF0YVJlY29yZHNSZW1vdmVkID4gMDsKIAogICAg
IGF1dG8gc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luc1Jlc3VsdCA9IHRhcmdldFN0YXRp
c3RpY3Muc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucy5hZGQobWFpbkZyYW1lUHJpbWFy
eURvbWFpbik7CiAgICAgaWYgKHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnNSZXN1bHQu
aXNOZXdFbnRyeSkKICAgICAgICAgc2hvdWxkQ2FsbE5vdGlmaWNhdGlvbkNhbGxiYWNrID0gdHJ1
ZTsKIAotICAgICsrdGFyZ2V0U3RhdGlzdGljcy5zdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJj
ZUNvdW50OwotCi0gICAgYXV0byB0b3RhbFZpc2l0ZWQgPSBzdGQ6Om1heChtX29yaWdpbnNWaXNp
dGVkTWFwLnNpemUoKSwgMVUpOwotCi0gICAgdGFyZ2V0U3RhdGlzdGljcy5zdWJyZXNvdXJjZUhh
c0JlZW5TdWJyZXNvdXJjZUNvdW50RGl2aWRlZEJ5VG90YWxOdW1iZXJPZk9yaWdpbnNWaXNpdGVk
ID0gc3RhdGljX2Nhc3Q8ZG91YmxlPih0YXJnZXRTdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVl
blN1YnJlc291cmNlQ291bnQpIC8gdG90YWxWaXNpdGVkOwotCiAgICAgaWYgKHNob3VsZENhbGxO
b3RpZmljYXRpb25DYWxsYmFjaykKICAgICAgICAgc2NoZWR1bGVOb3RpZmljYXRpb25JZk5lZWRl
ZCgpOwogfQpAQCAtMzEwLDIzICsyNDgsNiBAQCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBSZXNv
dXJjZUxvYWRPYnNlcnZlcjo6ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeQogICAg
IHJldHVybiBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwogfQogCi1SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzIFJlc291cmNlTG9hZE9ic2VydmVyOjp0YWtlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJp
bWFyeURvbWFpbihjb25zdCBTdHJpbmcmIHByaW1hcnlEb21haW4pCi17Ci0gICAgYXV0byBzdGF0
aXN0aXN0aWNzID0gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAudGFrZShwcmltYXJ5RG9tYWluKTsK
LSAgICBpZiAoc3RhdGlzdGlzdGljcy5oaWdoTGV2ZWxEb21haW4uaXNOdWxsKCkpCi0gICAgICAg
IHN0YXRpc3Rpc3RpY3MuaGlnaExldmVsRG9tYWluID0gcHJpbWFyeURvbWFpbjsKLSAgICBBU1NF
UlQoc3RhdGlzdGlzdGljcy5oaWdoTGV2ZWxEb21haW4gPT0gcHJpbWFyeURvbWFpbik7Ci0gICAg
cmV0dXJuIHN0YXRpc3Rpc3RpY3M7Ci19Ci0KLWJvb2wgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omlz
UHJldmFsZW50UmVzb3VyY2UoY29uc3QgU3RyaW5nJiBwcmltYXJ5RG9tYWluKSBjb25zdAotewot
ICAgIGF1dG8gbWFwRW50cnkgPSBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5maW5kKHByaW1hcnlE
b21haW4pOwotICAgIGlmIChtYXBFbnRyeSA9PSBtX3Jlc291cmNlU3RhdGlzdGljc01hcC5lbmQo
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBtYXBFbnRyeS0+dmFsdWUuaXNQ
cmV2YWxlbnRSZXNvdXJjZTsKLX0KLQogdm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2NoZWR1
bGVOb3RpZmljYXRpb25JZk5lZWRlZCgpCiB7CiAgICAgQVNTRVJUKG1fbm90aWZpY2F0aW9uQ2Fs
bGJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9i
c2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaApp
bmRleCBmOGQ4MmE4NzA5MmQyOGJmMWU0ZjFiNDNlMmVjNDAyMjcxYjg1ZDk2Li5mNTA3YjgzNWYz
MDcxNTRkYjhjMDY4M2M1MmE1NDE2ZDA5MDZmMjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBSZXNvdXJj
ZUxvYWRPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlc291
cmNlTG9hZE9ic2VydmVyJiBzaGFyZWQoKTsKICAgICAKLSAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdh
dGlvbihjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lJiB0b3BGcmFtZSwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlKTsKKyAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBGcmFtZSYsIGNv
bnN0IEZyYW1lJiB0b3BGcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0KTsK
ICAgICB2b2lkIGxvZ1N1YnJlc291cmNlTG9hZGluZyhjb25zdCBGcmFtZSosIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RS
ZXNwb25zZSk7CiAgICAgdm9pZCBsb2dXZWJTb2NrZXRMb2FkaW5nKGNvbnN0IEZyYW1lKiwgY29u
c3QgVVJMJik7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb25XaXRoUmVkdWNlZFRpbWVSZXNv
bHV0aW9uKGNvbnN0IERvY3VtZW50Jik7CkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAKICAg
ICBib29sIHNob3VsZExvZyhQYWdlKikgY29uc3Q7CiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbihjb25zdCBTdHJpbmcm
KTsKLSAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHRha2VSZXNvdXJjZVN0YXRpc3RpY3NGb3JQ
cmltYXJ5RG9tYWluKGNvbnN0IFN0cmluZyYgcHJpbWFyeURvbWFpbik7Ci0gICAgYm9vbCBpc1By
ZXZhbGVudFJlc291cmNlKGNvbnN0IFN0cmluZyYgcHJpbWFyeURvbWFpbikgY29uc3Q7CiAKICAg
ICB2b2lkIHNjaGVkdWxlTm90aWZpY2F0aW9uSWZOZWVkZWQoKTsKICAgICB2b2lkIG5vdGlmaWNh
dGlvblRpbWVyRmlyZWQoKTsKQEAgLTc1LDcgKzczLDYgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFw
PFN0cmluZywgUmVzb3VyY2VMb2FkU3RhdGlzdGljcz4gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXA7
CiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkIChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4m
Jik+IG1fbm90aWZpY2F0aW9uQ2FsbGJhY2s7CiAgICAgVGltZXIgbV9ub3RpZmljYXRpb25UaW1l
cjsKLSAgICBIYXNoTWFwPFN0cmluZywgc2l6ZV90PiBtX29yaWdpbnNWaXNpdGVkTWFwOwogfTsK
ICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAppbmRleCAyNTE1OTFjODI3ZTMzNTk2MTdkNTJl
MmQ0ZDJiYTA0OGRlZDQyMDNjLi5hY2I1MWY3ZmIzMmMyNDY3MTBjOTQ5YzJkNTNlZjU1NTk3ZWI1
YzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MuY3BwCkBAIC01NSwzNCArNTUsMTQgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpl
bmNvZGUoS2V5ZWRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIuZW5jb2RlRG91
YmxlKCJtb3N0UmVjZW50VXNlckludGVyYWN0aW9uIiwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
blRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKICAgICBlbmNvZGVyLmVuY29kZUJv
b2woImdyYW5kZmF0aGVyZWQiLCBncmFuZGZhdGhlcmVkKTsKICAgICAKLSAgICAvLyBUb3AgZnJh
bWUgc3RhdHMKLSAgICBlbmNvZGVyLmVuY29kZUJvb2woInRvcEZyYW1lSGFzQmVlbk5hdmlnYXRl
ZFRvQmVmb3JlIiwgdG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkVG9CZWZvcmUpOwotICAgIGVuY29k
ZXIuZW5jb2RlVUludDMyKCJ0b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG8iLCB0b3BGcmFtZUhh
c0JlZW5SZWRpcmVjdGVkVG8pOwotICAgIGVuY29kZXIuZW5jb2RlVUludDMyKCJ0b3BGcmFtZUhh
c0JlZW5SZWRpcmVjdGVkRnJvbSIsIHRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tKTsKLSAg
ICBlbmNvZGVyLmVuY29kZVVJbnQzMigidG9wRnJhbWVJbml0aWFsTG9hZENvdW50IiwgdG9wRnJh
bWVJbml0aWFsTG9hZENvdW50KTsKLSAgICBlbmNvZGVyLmVuY29kZVVJbnQzMigidG9wRnJhbWVI
YXNCZWVuTmF2aWdhdGVkVG8iLCB0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbyk7Ci0gICAgZW5j
b2Rlci5lbmNvZGVVSW50MzIoInRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb20iLCB0b3BGcmFt
ZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tKTsKLSAgICAKICAgICAvLyBTdWJmcmFtZSBzdGF0cwotICAg
IGVuY29kZXIuZW5jb2RlQm9vbCgic3ViZnJhbWVIYXNCZWVuTG9hZGVkQmVmb3JlIiwgc3ViZnJh
bWVIYXNCZWVuTG9hZGVkQmVmb3JlKTsKLSAgICBlbmNvZGVyLmVuY29kZVVJbnQzMigic3ViZnJh
bWVIYXNCZWVuUmVkaXJlY3RlZFRvIiwgc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvKTsKLSAg
ICBlbmNvZGVyLmVuY29kZVVJbnQzMigic3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb20iLCBz
dWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSk7Ci0gICAgZW5jb2Rlci5lbmNvZGVVSW50MzIo
InN1YmZyYW1lU3ViUmVzb3VyY2VDb3VudCIsIHN1YmZyYW1lU3ViUmVzb3VyY2VDb3VudCk7CiAg
ICAgZW5jb2RlSGFzaENvdW50ZWRTZXQoZW5jb2RlciwgInN1YmZyYW1lVW5kZXJUb3BGcmFtZU9y
aWdpbnMiLCBzdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zKTsKLSAgICBlbmNvZGVIYXNoQ291
bnRlZFNldChlbmNvZGVyLCAic3ViZnJhbWVVbmlxdWVSZWRpcmVjdHNUbyIsIHN1YmZyYW1lVW5p
cXVlUmVkaXJlY3RzVG8pOwotICAgIGVuY29kZXIuZW5jb2RlVUludDMyKCJzdWJmcmFtZUhhc0Jl
ZW5OYXZpZ2F0ZWRUbyIsIHN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvKTsKLSAgICBlbmNvZGVy
LmVuY29kZVVJbnQzMigic3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbSIsIHN1YmZyYW1lSGFz
QmVlbk5hdmlnYXRlZEZyb20pOwogICAgIAogICAgIC8vIFN1YnJlc291cmNlIHN0YXRzCi0gICAg
ZW5jb2Rlci5lbmNvZGVVSW50MzIoInN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRGcm9tIiwg
c3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZEZyb20pOwotICAgIGVuY29kZXIuZW5jb2RlVUlu
dDMyKCJzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkVG8iLCBzdWJyZXNvdXJjZUhhc0JlZW5S
ZWRpcmVjdGVkVG8pOwotICAgIGVuY29kZXIuZW5jb2RlVUludDMyKCJzdWJyZXNvdXJjZUhhc0Jl
ZW5TdWJyZXNvdXJjZUNvdW50Iiwgc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudCk7
Ci0gICAgZW5jb2Rlci5lbmNvZGVEb3VibGUoInN1YnJlc291cmNlSGFzQmVlblN1YnJlc291cmNl
Q291bnREaXZpZGVkQnlUb3RhbE51bWJlck9mT3JpZ2luc1Zpc2l0ZWQiLCBzdWJyZXNvdXJjZUhh
c0JlZW5TdWJyZXNvdXJjZUNvdW50RGl2aWRlZEJ5VG90YWxOdW1iZXJPZk9yaWdpbnNWaXNpdGVk
KTsKICAgICBlbmNvZGVIYXNoQ291bnRlZFNldChlbmNvZGVyLCAic3VicmVzb3VyY2VVbmRlclRv
cEZyYW1lT3JpZ2lucyIsIHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMpOwogICAgIGVu
Y29kZUhhc2hDb3VudGVkU2V0KGVuY29kZXIsICJzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1Rv
Iiwgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyk7CiAgICAgCiAgICAgLy8gUHJldmFsZW50
IFJlc291cmNlCi0gICAgZW5jb2RlSGFzaENvdW50ZWRTZXQoZW5jb2RlciwgInJlZGlyZWN0ZWRU
b090aGVyUHJldmFsZW50UmVzb3VyY2VPcmlnaW5zIiwgcmVkaXJlY3RlZFRvT3RoZXJQcmV2YWxl
bnRSZXNvdXJjZU9yaWdpbnMpOwogICAgIGVuY29kZXIuZW5jb2RlQm9vbCgiaXNQcmV2YWxlbnRS
ZXNvdXJjZSIsIGlzUHJldmFsZW50UmVzb3VyY2UpOwogICAgIGVuY29kZXIuZW5jb2RlVUludDMy
KCJkYXRhUmVjb3Jkc1JlbW92ZWQiLCBkYXRhUmVjb3Jkc1JlbW92ZWQpOwogfQpAQCAtMTAzLDcg
KzgzLDcgQEAgc3RhdGljIHZvaWQgZGVjb2RlSGFzaENvdW50ZWRTZXQoS2V5ZWREZWNvZGVyJiBk
ZWNvZGVyLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBIYXMKICAgICB9KTsKIH0KIAotYm9vbCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25l
ZCB2ZXJzaW9uKQorYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpkZWNvZGUoS2V5ZWREZWNv
ZGVyJiBkZWNvZGVyKQogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGVTdHJpbmcoIlByZXZhbGVu
dFJlc291cmNlT3JpZ2luIiwgaGlnaExldmVsRG9tYWluKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTEyLDc4ICs5MiwyMCBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OmRlY29k
ZShLZXllZERlY29kZXImIGRlY29kZXIsIHVuc2lnbmVkIHZlcnNpb24pCiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUJvb2woImhhZFVzZXJJbnRlcmFjdGlvbiIsIGhhZFVzZXJJbnRlcmFjdGlvbikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICAvLyBUb3AgZnJhbWUgc3RhdHMKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgidG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkVG9CZWZv
cmUiLCB0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUb0JlZm9yZSkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlVUludDMyKCJ0b3BGcmFtZUhhc0Jl
ZW5SZWRpcmVjdGVkVG8iLCB0b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG8pKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJbnQzMigidG9wRnJh
bWVIYXNCZWVuUmVkaXJlY3RlZEZyb20iLCB0b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlVUlu
dDMyKCJ0b3BGcmFtZUluaXRpYWxMb2FkQ291bnQiLCB0b3BGcmFtZUluaXRpYWxMb2FkQ291bnQp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJ
bnQzMigidG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkVG8iLCB0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0
ZWRUbykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVj
b2RlVUludDMyKCJ0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tIiwgdG9wRnJhbWVIYXNCZWVu
TmF2aWdhdGVkRnJvbSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICAvLyBTdWJm
cmFtZSBzdGF0cwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJzdWJmcmFtZUhhc0JlZW5M
b2FkZWRCZWZvcmUiLCBzdWJmcmFtZUhhc0JlZW5Mb2FkZWRCZWZvcmUpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJbnQzMigic3ViZnJhbWVI
YXNCZWVuUmVkaXJlY3RlZFRvIiwgc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50MzIoInN1
YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tIiwgc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZy
b20pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZVVJbnQzMigic3ViZnJhbWVTdWJSZXNvdXJjZUNvdW50Iiwgc3ViZnJhbWVTdWJSZXNvdXJjZUNv
dW50KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgZGVjb2RlSGFzaENvdW50ZWRTZXQo
ZGVjb2RlciwgInN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMiLCBzdWJmcmFtZVVuZGVyVG9w
RnJhbWVPcmlnaW5zKTsKLSAgICBkZWNvZGVIYXNoQ291bnRlZFNldChkZWNvZGVyLCAic3ViZnJh
bWVVbmlxdWVSZWRpcmVjdHNUbyIsIHN1YmZyYW1lVW5pcXVlUmVkaXJlY3RzVG8pOwotICAgIAot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50MzIoInN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZFRv
Iiwgc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkVG8pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJbnQzMigic3ViZnJhbWVIYXNCZWVuTmF2aWdh
dGVkRnJvbSIsIHN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb20pKQotICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgCiAgICAgLy8gU3VicmVzb3VyY2Ugc3RhdHMKLSAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlVUludDMyKCJzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSIsIHN1YnJlc291
cmNlSGFzQmVlblJlZGlyZWN0ZWRGcm9tKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50MzIoInN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0
ZWRUbyIsIHN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRUbykpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlVUludDMyKCJzdWJyZXNvdXJjZUhh
c0JlZW5TdWJyZXNvdXJjZUNvdW50Iiwgc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3Vu
dCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
RG91YmxlKCJzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50RGl2aWRlZEJ5VG90YWxO
dW1iZXJPZk9yaWdpbnNWaXNpdGVkIiwgc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3Vu
dERpdmlkZWRCeVRvdGFsTnVtYmVyT2ZPcmlnaW5zVmlzaXRlZCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQogICAgIGRlY29kZUhhc2hDb3VudGVkU2V0KGRlY29kZXIsICJzdWJyZXNvdXJjZVVu
ZGVyVG9wRnJhbWVPcmlnaW5zIiwgc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucyk7CiAg
ICAgZGVjb2RlSGFzaENvdW50ZWRTZXQoZGVjb2RlciwgInN1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RzVG8iLCBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvKTsKICAgICAKICAgICAvLyBQcmV2
YWxlbnQgUmVzb3VyY2UKLSAgICBkZWNvZGVIYXNoQ291bnRlZFNldChkZWNvZGVyLCAicmVkaXJl
Y3RlZFRvT3RoZXJQcmV2YWxlbnRSZXNvdXJjZU9yaWdpbnMiLCByZWRpcmVjdGVkVG9PdGhlclBy
ZXZhbGVudFJlc291cmNlT3JpZ2lucyk7Ci0gICAgCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJv
b2woImlzUHJldmFsZW50UmVzb3VyY2UiLCBpc1ByZXZhbGVudFJlc291cmNlKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHZlcnNpb24gPCAyKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLQogICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50MzIoImRhdGFSZWNvcmRzUmVtb3ZlZCIs
IGRhdGFSZWNvcmRzUmVtb3ZlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICh2
ZXJzaW9uIDwgMykKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICBkb3VibGUgbW9zdFJlY2Vu
dFVzZXJJbnRlcmFjdGlvblRpbWVBc0RvdWJsZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRG91
YmxlKCJtb3N0UmVjZW50VXNlckludGVyYWN0aW9uIiwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlv
blRpbWVBc0RvdWJsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIzNCw2NCArMTU2LDE0
IEBAIFN0cmluZyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjp0b1N0cmluZygpIGNvbnN0CiAgICAg
YXBwZW5kQm9vbGVhbihidWlsZGVyLCAiICAgIGdyYW5kZmF0aGVyZWQiLCBncmFuZGZhdGhlcmVk
KTsKICAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKICAgICAKLSAgICAvLyBUb3AgZnJhbWUgc3Rh
dHMKLSAgICBhcHBlbmRCb29sZWFuKGJ1aWxkZXIsICJ0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRU
b0JlZm9yZSIsIHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvQmVmb3JlKTsKLSAgICBidWlsZGVy
LmFwcGVuZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICB0b3BGcmFtZUhh
c0JlZW5SZWRpcmVjdGVkVG86ICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRvcEZyYW1l
SGFzQmVlblJlZGlyZWN0ZWRUbyk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIgICAgdG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb206ICIp
OwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9t
KTsKLSAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IiAgICB0b3BGcmFtZUluaXRpYWxMb2FkQ291bnQ6ICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKHRvcEZyYW1lSW5pdGlhbExvYWRDb3VudCk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7
Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgdG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVk
VG86ICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRl
ZFRvKTsKLSAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoIiAgICB0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tOiAiKTsKLSAgICBidWlsZGVyLmFw
cGVuZE51bWJlcih0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tKTsKLSAgICBidWlsZGVyLmFw
cGVuZCgnXG4nKTsKLSAgICAKICAgICAvLyBTdWJmcmFtZSBzdGF0cwotICAgIGFwcGVuZEJvb2xl
YW4oYnVpbGRlciwgInN1YmZyYW1lSGFzQmVlbkxvYWRlZEJlZm9yZSIsIHN1YmZyYW1lSGFzQmVl
bkxvYWRlZEJlZm9yZSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCIgICAgc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvOiAiKTsKLSAgICBi
dWlsZGVyLmFwcGVuZE51bWJlcihzdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG8pOwotICAgIGJ1
aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHN1YmZy
YW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tOiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcihz
dWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7
Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgc3ViZnJhbWVTdWJSZXNvdXJjZUNvdW50
OiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcihzdWJmcmFtZVN1YlJlc291cmNlQ291bnQp
OwotICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIGFwcGVuZEhhc2hDb3VudGVkU2V0KGJ1
aWxkZXIsICJzdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zIiwgc3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2lucyk7Ci0gICAgYXBwZW5kSGFzaENvdW50ZWRTZXQoYnVpbGRlciwgInN1YmZyYW1l
VW5pcXVlUmVkaXJlY3RzVG8iLCBzdWJmcmFtZVVuaXF1ZVJlZGlyZWN0c1RvKTsKLSAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIiAgICBzdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbzogIik7Ci0g
ICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkVG8pOwotICAg
IGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHN1
YmZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb206ICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KHN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb20pOwotICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicp
OwogICAgIAogICAgIC8vIFN1YnJlc291cmNlIHN0YXRzCi0gICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgICAgc3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZEZyb206ICIpOwotICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKHN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRGcm9tKTsKLSAgICBi
dWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICBzdWJy
ZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkVG86ICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KHN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRUbyk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xu
Jyk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgc3VicmVzb3VyY2VIYXNCZWVuU3Vi
cmVzb3VyY2VDb3VudDogIik7Ci0gICAgYnVpbGRlci5hcHBlbmROdW1iZXIoc3VicmVzb3VyY2VI
YXNCZWVuU3VicmVzb3VyY2VDb3VudCk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAgc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VD
b3VudERpdmlkZWRCeVRvdGFsTnVtYmVyT2ZPcmlnaW5zVmlzaXRlZDogIik7Ci0gICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIoc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudERpdmlkZWRC
eVRvdGFsTnVtYmVyT2ZPcmlnaW5zVmlzaXRlZCk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7
CiAgICAgYXBwZW5kSGFzaENvdW50ZWRTZXQoYnVpbGRlciwgInN1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbnMiLCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zKTsKICAgICBhcHBl
bmRIYXNoQ291bnRlZFNldChidWlsZGVyLCAic3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyIs
IHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8pOwogICAgIAogICAgIC8vIFByZXZhbGVudCBS
ZXNvdXJjZQotICAgIGFwcGVuZEhhc2hDb3VudGVkU2V0KGJ1aWxkZXIsICJyZWRpcmVjdGVkVG9P
dGhlclByZXZhbGVudFJlc291cmNlT3JpZ2lucyIsIHJlZGlyZWN0ZWRUb090aGVyUHJldmFsZW50
UmVzb3VyY2VPcmlnaW5zKTsKICAgICBhcHBlbmRCb29sZWFuKGJ1aWxkZXIsICJpc1ByZXZhbGVu
dFJlc291cmNlIiwgaXNQcmV2YWxlbnRSZXNvdXJjZSk7CiAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgICAgZGF0YVJlY29yZHNSZW1vdmVkOiAiKTsKICAgICBidWlsZGVyLmFwcGVuZE51bWJl
cihkYXRhUmVjb3Jkc1JlbW92ZWQpOwpAQCAtMzMxLDMzICsyMDMsMTQgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzOjptZXJnZShjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBvdGhl
cikKICAgICB9CiAgICAgZ3JhbmRmYXRoZXJlZCB8PSBvdGhlci5ncmFuZGZhdGhlcmVkOwogICAg
IAotICAgIC8vIFRvcCBmcmFtZSBzdGF0cwotICAgIHRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRU
byArPSBvdGhlci50b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG87Ci0gICAgdG9wRnJhbWVIYXNC
ZWVuUmVkaXJlY3RlZEZyb20gKz0gb3RoZXIudG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb207
Ci0gICAgdG9wRnJhbWVJbml0aWFsTG9hZENvdW50ICs9IG90aGVyLnRvcEZyYW1lSW5pdGlhbExv
YWRDb3VudDsKLSAgICB0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbyArPSBvdGhlci50b3BGcmFt
ZUhhc0JlZW5OYXZpZ2F0ZWRUbzsKLSAgICB0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tICs9
IG90aGVyLnRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb207Ci0gICAgdG9wRnJhbWVIYXNCZWVu
TmF2aWdhdGVkVG9CZWZvcmUgfD0gb3RoZXIudG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkVG9CZWZv
cmU7Ci0gICAgCiAgICAgLy8gU3ViZnJhbWUgc3RhdHMKICAgICBtZXJnZUhhc2hDb3VudGVkU2V0
KHN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMsIG90aGVyLnN1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbnMpOwotICAgIHN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbyArPSBvdGhlci5zdWJm
cmFtZUhhc0JlZW5SZWRpcmVjdGVkVG87Ci0gICAgc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZy
b20gKz0gb3RoZXIuc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb207Ci0gICAgbWVyZ2VIYXNo
Q291bnRlZFNldChzdWJmcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLCBvdGhlci5zdWJmcmFtZVVuaXF1
ZVJlZGlyZWN0c1RvKTsKLSAgICBzdWJmcmFtZVN1YlJlc291cmNlQ291bnQgKz0gb3RoZXIuc3Vi
ZnJhbWVTdWJSZXNvdXJjZUNvdW50OwotICAgIHN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvICs9
IG90aGVyLnN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvOwotICAgIHN1YmZyYW1lSGFzQmVlbk5h
dmlnYXRlZEZyb20gKz0gb3RoZXIuc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbTsKLSAgICBz
dWJmcmFtZUhhc0JlZW5Mb2FkZWRCZWZvcmUgfD0gb3RoZXIuc3ViZnJhbWVIYXNCZWVuTG9hZGVk
QmVmb3JlOwogICAgIAogICAgIC8vIFN1YnJlc291cmNlIHN0YXRzCiAgICAgbWVyZ2VIYXNoQ291
bnRlZFNldChzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zLCBvdGhlci5zdWJyZXNvdXJj
ZVVuZGVyVG9wRnJhbWVPcmlnaW5zKTsKLSAgICBzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJj
ZUNvdW50ICs9IG90aGVyLnN1YnJlc291cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnQ7Ci0gICAg
c3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZEZyb20gKz0gb3RoZXIuc3VicmVzb3VyY2VIYXNC
ZWVuUmVkaXJlY3RlZEZyb207Ci0gICAgc3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZFRvICs9
IG90aGVyLnN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRUbzsKICAgICBtZXJnZUhhc2hDb3Vu
dGVkU2V0KHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8sIG90aGVyLnN1YnJlc291cmNlVW5p
cXVlUmVkaXJlY3RzVG8pOwogICAgIAogICAgIC8vIFByZXZhbGVudCByZXNvdXJjZSBzdGF0cwot
ICAgIG1lcmdlSGFzaENvdW50ZWRTZXQocmVkaXJlY3RlZFRvT3RoZXJQcmV2YWxlbnRSZXNvdXJj
ZU9yaWdpbnMsIG90aGVyLnJlZGlyZWN0ZWRUb090aGVyUHJldmFsZW50UmVzb3VyY2VPcmlnaW5z
KTsKICAgICBpc1ByZXZhbGVudFJlc291cmNlIHw9IG90aGVyLmlzUHJldmFsZW50UmVzb3VyY2U7
CiAgICAgZGF0YVJlY29yZHNSZW1vdmVkICs9IG90aGVyLmRhdGFSZWNvcmRzUmVtb3ZlZDsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oCmlu
ZGV4IGFlMzM2MDgzZDE4MDY4MzQ4ZGVlMmE4ZmNkZTEwYThmM2EwODA5ZjcuLmQyYmFlOGE1NGQ5
MmIzNzQwYTQxMWUxOTNjYWNhMmEyYzYwYmY0MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaApAQCAtNTMsNyArNTMsNyBAQCBzdHJ1Y3QgUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyB7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBw
cmltYXJ5RG9tYWluKGNvbnN0IFN0cmluZyYgaG9zdCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGVuY29kZShLZXllZEVuY29kZXImKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGRlY29kZShLZXllZERlY29kZXImLCB1bnNpZ25lZCB2ZXJzaW9uKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGRlY29kZShLZXllZERlY29kZXImKTsKIAogICAgIFN0cmluZyB0b1N0cmluZygp
IGNvbnN0OwogCkBAIC02NiwzNSArNjYsMTUgQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgewogICAgIC8vIFRpbWVzdGFtcC4gRGVmYXVsdCB2YWx1ZSBpcyBuZWdhdGl2ZSwgMCBtZWFu
cyBpdCB3YXMgcmVzZXQuCiAgICAgV2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRp
bWUgeyBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoLTEpIH07CiAgICAgYm9vbCBncmFuZGZhdGhl
cmVkIHsgZmFsc2UgfTsKLQotICAgIC8vIFRvcCBmcmFtZSBzdGF0cwotICAgIHVuc2lnbmVkIHRv
cEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbyB7IDAgfTsKLSAgICB1bnNpZ25lZCB0b3BGcmFtZUhh
c0JlZW5SZWRpcmVjdGVkRnJvbSB7IDAgfTsKLSAgICB1bnNpZ25lZCB0b3BGcmFtZUluaXRpYWxM
b2FkQ291bnQgeyAwIH07Ci0gICAgdW5zaWduZWQgdG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkVG8g
eyAwIH07Ci0gICAgdW5zaWduZWQgdG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbSB7IDAgfTsK
LSAgICBib29sIHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvQmVmb3JlIHsgZmFsc2UgfTsKICAg
ICAKICAgICAvLyBTdWJmcmFtZSBzdGF0cwogICAgIEhhc2hDb3VudGVkU2V0PFN0cmluZz4gc3Vi
ZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luczsKLSAgICB1bnNpZ25lZCBzdWJmcmFtZUhhc0JlZW5S
ZWRpcmVjdGVkVG8geyAwIH07Ci0gICAgdW5zaWduZWQgc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3Rl
ZEZyb20geyAwIH07Ci0gICAgSGFzaENvdW50ZWRTZXQ8U3RyaW5nPiBzdWJmcmFtZVVuaXF1ZVJl
ZGlyZWN0c1RvOwotICAgIHVuc2lnbmVkIHN1YmZyYW1lU3ViUmVzb3VyY2VDb3VudCB7IDAgfTsK
LSAgICB1bnNpZ25lZCBzdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbyB7IDAgfTsKLSAgICB1bnNp
Z25lZCBzdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tIHsgMCB9OwotICAgIGJvb2wgc3ViZnJh
bWVIYXNCZWVuTG9hZGVkQmVmb3JlIHsgZmFsc2UgfTsKICAgICAKICAgICAvLyBTdWJyZXNvdXJj
ZSBzdGF0cwogICAgIEhhc2hDb3VudGVkU2V0PFN0cmluZz4gc3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lT3JpZ2luczsKLSAgICB1bnNpZ25lZCBzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNv
dW50IHsgMCB9OwotICAgIGRvdWJsZSBzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50
RGl2aWRlZEJ5VG90YWxOdW1iZXJPZk9yaWdpbnNWaXNpdGVkIHsgMC4wIH07Ci0gICAgdW5zaWdu
ZWQgc3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZEZyb20geyAwIH07Ci0gICAgdW5zaWduZWQg
c3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZFRvIHsgMCB9OwogICAgIEhhc2hDb3VudGVkU2V0
PFN0cmluZz4gc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbzsKICAgICAKICAgICAvLyBQcmV2
YWxlbnQgcmVzb3VyY2Ugc3RhdHMKLSAgICBIYXNoQ291bnRlZFNldDxTdHJpbmc+IHJlZGlyZWN0
ZWRUb090aGVyUHJldmFsZW50UmVzb3VyY2VPcmlnaW5zOwogICAgIGJvb2wgaXNQcmV2YWxlbnRS
ZXNvdXJjZSB7IGZhbHNlIH07CiAgICAgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkIHsgMCB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CmluZGV4IGNjNmFmZmE3MWQyMjgxNjUyYmRlMmU2ZWIyNTczOTU2Zjc1MjQ3OWUuLjA3MTk4Mjg2
NWExYmU3NTRmNzQ2Nzg5OTNhYzczOTc3NGQ4MDJhZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0yMjQ3LDM0ICsyMjQ3LDE0IEBA
IHZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvCiAgICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLm1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKICAg
ICBlbmNvZGVyIDw8IHN0YXRpc3RpY3MuZ3JhbmRmYXRoZXJlZDsKICAgICAKLSAgICAvLyBUb3Ag
ZnJhbWUgc3RhdHMKLSAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3MudG9wRnJhbWVIYXNCZWVuTmF2
aWdhdGVkVG9CZWZvcmU7Ci0gICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLnRvcEZyYW1lSGFzQmVl
blJlZGlyZWN0ZWRUbzsKLSAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3MudG9wRnJhbWVIYXNCZWVu
UmVkaXJlY3RlZEZyb207Ci0gICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLnRvcEZyYW1lSW5pdGlh
bExvYWRDb3VudDsKLSAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3MudG9wRnJhbWVIYXNCZWVuTmF2
aWdhdGVkVG87Ci0gICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLnRvcEZyYW1lSGFzQmVlbk5hdmln
YXRlZEZyb207Ci0gICAgCiAgICAgLy8gU3ViZnJhbWUgc3RhdHMKLSAgICBlbmNvZGVyIDw8IHN0
YXRpc3RpY3Muc3ViZnJhbWVIYXNCZWVuTG9hZGVkQmVmb3JlOwotICAgIGVuY29kZXIgPDwgc3Rh
dGlzdGljcy5zdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG87Ci0gICAgZW5jb2RlciA8PCBzdGF0
aXN0aWNzLnN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tOwotICAgIGVuY29kZXIgPDwgc3Rh
dGlzdGljcy5zdWJmcmFtZVN1YlJlc291cmNlQ291bnQ7CiAgICAgZW5jb2RlciA8PCBzdGF0aXN0
aWNzLnN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnM7Ci0gICAgZW5jb2RlciA8PCBzdGF0aXN0
aWNzLnN1YmZyYW1lVW5pcXVlUmVkaXJlY3RzVG87Ci0gICAgZW5jb2RlciA8PCBzdGF0aXN0aWNz
LnN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvOwotICAgIGVuY29kZXIgPDwgc3RhdGlzdGljcy5z
dWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tOwogICAgIAogICAgIC8vIFN1YnJlc291cmNlIHN0
YXRzCi0gICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0
ZWRGcm9tOwotICAgIGVuY29kZXIgPDwgc3RhdGlzdGljcy5zdWJyZXNvdXJjZUhhc0JlZW5SZWRp
cmVjdGVkVG87Ci0gICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVlblN1
YnJlc291cmNlQ291bnQ7Ci0gICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLnN1YnJlc291cmNlSGFz
QmVlblN1YnJlc291cmNlQ291bnREaXZpZGVkQnlUb3RhbE51bWJlck9mT3JpZ2luc1Zpc2l0ZWQ7
CiAgICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLnN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdp
bnM7CiAgICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLnN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3Rz
VG87CiAgICAgCiAgICAgLy8gUHJldmFsZW50IFJlc291cmNlCi0gICAgZW5jb2RlciA8PCBzdGF0
aXN0aWNzLnJlZGlyZWN0ZWRUb090aGVyUHJldmFsZW50UmVzb3VyY2VPcmlnaW5zOwogICAgIGVu
Y29kZXIgPDwgc3RhdGlzdGljcy5pc1ByZXZhbGVudFJlc291cmNlOwogICAgIGVuY29kZXIgPDwg
c3RhdGlzdGljcy5kYXRhUmVjb3Jkc1JlbW92ZWQ7CiB9CkBAIC0yMjk2LDYzICsyMjc2LDExIEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIFdlYkNvcmU6OlJlCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0
aWNzLmdyYW5kZmF0aGVyZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgLy8g
VG9wIGZyYW1lIHN0YXRzCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNzLnRvcEZy
YW1lSGFzQmVlbk5hdmlnYXRlZFRvQmVmb3JlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy50b3BGcmFtZUhhc0JlZW5SZWRp
cmVjdGVkVG8pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzdGF0aXN0aWNzLnRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGlj
cy50b3BGcmFtZUluaXRpYWxMb2FkQ291bnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNzLnRvcEZyYW1lSGFzQmVlbk5hdmln
YXRlZFRvKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoc3RhdGlzdGljcy50b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIAogICAgIC8vIFN1YmZyYW1lIHN0YXRzCi0gICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzdGF0aXN0aWNzLnN1YmZyYW1lSGFzQmVlbkxvYWRlZEJlZm9yZSkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpc3Rp
Y3Muc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy5zdWJmcmFtZUhhc0JlZW5S
ZWRpcmVjdGVkRnJvbSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHN0YXRpc3RpY3Muc3ViZnJhbWVTdWJSZXNvdXJjZUNvdW50KSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGlj
cy5zdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNzLnN1YmZyYW1lVW5pcXVlUmVkaXJl
Y3RzVG8pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzdGF0aXN0aWNzLnN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy5zdWJm
cmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAog
ICAgIC8vIFN1YnJlc291cmNlIHN0YXRzCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0
aWNzLnN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRGcm9tKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy5zdWJyZXNvdXJj
ZUhhc0JlZW5SZWRpcmVjdGVkVG8pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVlblN1YnJlc291
cmNlQ291bnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnREaXZp
ZGVkQnlUb3RhbE51bWJlck9mT3JpZ2luc1Zpc2l0ZWQpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNzLnN1YnJlc291cmNlVW5k
ZXJUb3BGcmFtZU9yaWdpbnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTIzNjAsOSAr
MjI4OCw2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OlJlCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAKICAgICAvLyBQcmV2YWxlbnQgUmVzb3VyY2UKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHN0YXRpc3RpY3MucmVkaXJlY3RlZFRvT3RoZXJQcmV2YWxlbnRSZXNvdXJjZU9yaWdpbnMpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0
aXN0aWNzLmlzUHJldmFsZW50UmVzb3VyY2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDkzODBiZGM4ZTI2NzBlOTZmNDgxOTg2
MzhkOWZhNjYyZTc3YjJmNTIuLmM2ZmNhYzZhMzIxZjgzZTgyY2M4MDcyNzdlNjY3NmU5Y2I0Njkz
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0
b3JhZ2UvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMzksNyArMzksNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRpYyBj
b25zdCBhdXRvIHN0YXRpc3RpY3NNb2RlbFZlcnNpb24gPSA0Oworc3RhdGljIGNvbnN0IGF1dG8g
c3RhdGlzdGljc01vZGVsVmVyc2lvbiA9IDU7CiBzdGF0aWMgU2Vjb25kcyB0aW1lVG9MaXZlVXNl
ckludGVyYWN0aW9uIHsgMjRfaCAqIDMwLiB9Owogc3RhdGljIFNlY29uZHMgdGltZVRvTGl2ZUNv
b2tpZVBhcnRpdGlvbkZyZWUgeyAyNF9oIH07CiBzdGF0aWMgU2Vjb25kcyBncmFuZGZhdGhlcmlu
Z1RpbWUgeyAxX2ggfTsKQEAgLTEwMiwyMiArMTAyLDIyIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpyZWFkRGF0YUZyb21EZWNvZGVyKEtleWVkRGVjb2RlciYgZGVjb2RlcikK
ICAgICBpZiAobV9yZXNvdXJjZVN0YXRpc3RpY3NNYXAuc2l6ZSgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICB1bnNpZ25lZCB2ZXJzaW9uOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50MzIo
InZlcnNpb24iLCB2ZXJzaW9uKSkKLSAgICAgICAgdmVyc2lvbiA9IDE7Ci0KLSAgICBzdGF0aWMg
Y29uc3QgYXV0byBtaW5pbXVtVmVyc2lvbldpdGhHcmFuZGZhdGhlcmluZyA9IDM7Ci0gICAgaWYg
KHZlcnNpb24gPiBtaW5pbXVtVmVyc2lvbldpdGhHcmFuZGZhdGhlcmluZykgewotICAgICAgICBk
b3VibGUgZW5kT2ZHcmFuZGZhdGhlcmluZ1RpbWVzdGFtcDsKLSAgICAgICAgaWYgKGRlY29kZXIu
ZGVjb2RlRG91YmxlKCJlbmRPZkdyYW5kZmF0aGVyaW5nVGltZXN0YW1wIiwgZW5kT2ZHcmFuZGZh
dGhlcmluZ1RpbWVzdGFtcCkpCi0gICAgICAgICAgICBtX2VuZE9mR3JhbmRmYXRoZXJpbmdUaW1l
c3RhbXAgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZW5kT2ZHcmFuZGZhdGhlcmluZ1RpbWVz
dGFtcCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fZW5kT2ZHcmFuZGZhdGhlcmluZ1Rp
bWVzdGFtcCA9IHsgfTsKLSAgICB9CisgICAgdW5zaWduZWQgdmVyc2lvbk9uRGlzazsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlVUludDMyKCJ2ZXJzaW9uIiwgdmVyc2lvbk9uRGlzaykpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICh2ZXJzaW9uT25EaXNrICE9IHN0YXRpc3RpY3NNb2RlbFZl
cnNpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGRvdWJsZSBlbmRPZkdyYW5kZmF0aGVyaW5n
VGltZXN0YW1wOworICAgIGlmIChkZWNvZGVyLmRlY29kZURvdWJsZSgiZW5kT2ZHcmFuZGZhdGhl
cmluZ1RpbWVzdGFtcCIsIGVuZE9mR3JhbmRmYXRoZXJpbmdUaW1lc3RhbXApKQorICAgICAgICBt
X2VuZE9mR3JhbmRmYXRoZXJpbmdUaW1lc3RhbXAgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMo
ZW5kT2ZHcmFuZGZhdGhlcmluZ1RpbWVzdGFtcCk7CisgICAgZWxzZQorICAgICAgICBtX2VuZE9m
R3JhbmRmYXRoZXJpbmdUaW1lc3RhbXAgPSB7IH07CiAKICAgICBWZWN0b3I8UmVzb3VyY2VMb2Fk
U3RhdGlzdGljcz4gbG9hZGVkU3RhdGlzdGljczsKLSAgICBib29sIHN1Y2NlZWRlZCA9IGRlY29k
ZXIuZGVjb2RlT2JqZWN0cygiYnJvd3NpbmdTdGF0aXN0aWNzIiwgbG9hZGVkU3RhdGlzdGljcywg
W3ZlcnNpb25dKEtleWVkRGVjb2RlciYgZGVjb2RlcklubmVyLCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzJiBzdGF0aXN0aWNzKSB7Ci0gICAgICAgIHJldHVybiBzdGF0aXN0aWNzLmRlY29kZShkZWNv
ZGVySW5uZXIsIHZlcnNpb24pOworICAgIGJvb2wgc3VjY2VlZGVkID0gZGVjb2Rlci5kZWNvZGVP
YmplY3RzKCJicm93c2luZ1N0YXRpc3RpY3MiLCBsb2FkZWRTdGF0aXN0aWNzLCBbXShLZXllZERl
Y29kZXImIGRlY29kZXJJbm5lciwgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgc3RhdGlzdGljcykg
eworICAgICAgICByZXR1cm4gc3RhdGlzdGljcy5kZWNvZGUoZGVjb2RlcklubmVyKTsKICAgICB9
KTsKIAogICAgIGlmICghc3VjY2VlZGVkKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314779</attachid>
            <date>2017-07-06 16:54:45 -0700</date>
            <delta_ts>2017-07-06 19:44:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174226-20170706165444.patch</filename>
            <type>text/plain</type>
            <size>34801</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhkMWNhOTQ1NmZhMjM5
NTkzMDVjNWNiZjFkMDVjNzVmMzcwYThkZi4uMDFiOTRlMWI5MmY4NWNiZjQ1MWEwZDk5Y2VlYzY2
NjA4YjFmYTA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDE3LTA3LTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJvcCB1bnVzZWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyBtZW1iZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzQyMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nRnJhbWVOYXZpZ2F0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dTdWJyZXNvdXJjZUxv
YWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ1dlYlNv
Y2tldExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omlz
UHJldmFsZW50UmVzb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxv
YWRPYnNlcnZlci5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OmVuY29kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpkZWNvZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6dG9TdHJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljczo6bWVyZ2UpOgorICAgICAgICAqIGxvYWRl
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg6CisKKzIwMTctMDctMDYgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBGaWxlTW9uaXRvciBzaG91bGQgbm90IGJlIHJl
ZiBjb3VudGVkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzQxNjYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI4YTgwM2Q3NWQ5NTE3MDI0MGNkNjcxYjZlODgyMjYy
MWYyYjY4MTIuLjExYzQ1OWFjYTdmYjM0YmYzNWUyNDU5ZjYwYTk3NTJkNGExZWY2MzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwxOCBAQAogMjAxNy0wNy0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCisgICAgICAgIERyb3AgdW51c2VkIFJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
bWVtYmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc0MjI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZGVjb2RlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvU3RvcmFnZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlYWREYXRhRnJvbURl
Y29kZXIpOgorCisyMDE3LTA3LTA2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
ICAgICAgICAgRmlsZU1vbml0b3Igc2hvdWxkIG5vdCBiZSByZWYgY291bnRlZAogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MTY2CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDc1OTRhNGE5NDVhYjQ4Y2Y5Mzk2
YjRhMzU2MGVjNGE4MDJjYzFjNmUuLjNiYjljNGUzMmYxYjhlMDNkMTVkYmI5OWIwNzc3YTYwYjQw
ZDJmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNTIw
LDcgKzUyMCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmNlCiAgICAgQVNTRVJUKG1fZnJhbWUt
PmRvY3VtZW50KCkpOwogICAgIEFTU0VSVCh0b3BGcmFtZS5kb2N1bWVudCgpKTsKIAotICAgIFJl
c291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5sb2dGcmFtZU5hdmlnYXRpb24oKm1fZnJhbWUs
IHRvcEZyYW1lLCBuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICBSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2hhcmVkKCkubG9nRnJhbWVOYXZpZ2F0aW9uKCptX2ZyYW1lLCB0b3BGcmFt
ZSwgbmV3UmVxdWVzdCk7CiAgICAgCiAgICAgLy8gVXBkYXRlIGNvb2tpZSBwb2xpY3kgYmFzZSBV
UkwgYXMgVVJMIGNoYW5nZXMsIGV4Y2VwdCBmb3Igc3ViZnJhbWVzLCB3aGljaCB1c2UgdGhlCiAg
ICAgLy8gVVJMIG9mIHRoZSBtYWluIGZyYW1lIHdoaWNoIGRvZXNuJ3QgY2hhbmdlIHdoZW4gd2Ug
cmVkaXJlY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVy
LmNwcAppbmRleCAyODY0Y2NjYWQ5OWVjZGExMWI2YzdmYTliNzRjN2E5MTUxNDQ5ZTBiLi42MDI5
N2RjYjZhODc1Y2QzMDNmMGQ3ZjQxOGFmYjY5NzM0YTE2YmNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgYm9v
bCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hvdWxkTG9nKFBhZ2UqIHBhZ2UpIGNvbnN0CiAgICAg
cmV0dXJuIFNldHRpbmdzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpICYmICFwYWdl
LT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpICYmIG1fbm90aWZpY2F0aW9uQ2FsbGJhY2s7CiB9CiAK
LXZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBGcmFt
ZSYgZnJhbWUsIGNvbnN0IEZyYW1lJiB0b3BGcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBu
ZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQordm9p
ZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IEZyYW1lJiBm
cmFtZSwgY29uc3QgRnJhbWUmIHRvcEZyYW1lLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIG5ld1Jl
cXVlc3QpCiB7CiAgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwogICAgIEFTU0VSVCh0b3BG
cmFtZS5kb2N1bWVudCgpKTsKQEAgLTg4LDggKzg4LDYgQEAgdm9pZCBSZXNvdXJjZUxvYWRPYnNl
cnZlcjo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWUm
IHQKICAgICBpZiAoIXNob3VsZExvZyh0b3BGcmFtZS5wYWdlKCkpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBib29sIGlzUmVkaXJlY3QgPSBpczN4eFJlZGlyZWN0KHJlZGlyZWN0UmVzcG9uc2Up
OwotICAgIGJvb2wgaXNNYWluRnJhbWUgPSBmcmFtZS5pc01haW5GcmFtZSgpOwogICAgIGF1dG8m
IHNvdXJjZVVSTCA9IGZyYW1lLmRvY3VtZW50KCktPnVybCgpOwogICAgIGF1dG8mIHRhcmdldFVS
TCA9IG5ld1JlcXVlc3QudXJsKCk7CiAgICAgYXV0byYgbWFpbkZyYW1lVVJMID0gdG9wRnJhbWUu
ZG9jdW1lbnQoKS0+dXJsKCk7CkBAIC0xMTAsNTggKzEwOCwxOCBAQCB2b2lkIFJlc291cmNlTG9h
ZE9ic2VydmVyOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBG
cmFtZSYgdAogICAgIGlmICh0YXJnZXRQcmltYXJ5RG9tYWluID09IG1haW5GcmFtZVByaW1hcnlE
b21haW4gfHwgdGFyZ2V0UHJpbWFyeURvbWFpbiA9PSBzb3VyY2VQcmltYXJ5RG9tYWluKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvIHRhcmdldFN0YXRpc3RpY3MgPSB0YWtlUmVzb3VyY2VT
dGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbih0YXJnZXRQcmltYXJ5RG9tYWluKTsKKyAgICBhdXRv
JiB0YXJnZXRTdGF0aXN0aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURv
bWFpbih0YXJnZXRQcmltYXJ5RG9tYWluKTsKIAogICAgIC8vIEFsd2F5cyBmaXJlIGlmIHdlIGhh
dmUgcHJldmlvdXNseSByZW1vdmVkIGRhdGEgcmVjb3JkcyBmb3IgdGhpcyBkb21haW4KKyAgICAv
LyBGSVhNRTogdGFyZ2V0U3RhdGlzdGljcy5kYXRhUmVjb3Jkc1JlbW92ZWQgaXMgYWx3YXlzIDAg
aW4gV2ViQ29yZSBhcyBpdCBnZXRzIHBvcHVsYXRlZCBpbiB0aGUgVUlQcm9jZXNzLgogICAgIGJv
b2wgc2hvdWxkQ2FsbE5vdGlmaWNhdGlvbkNhbGxiYWNrID0gdGFyZ2V0U3RhdGlzdGljcy5kYXRh
UmVjb3Jkc1JlbW92ZWQgPiAwOwogCi0gICAgaWYgKGlzTWFpbkZyYW1lKQotICAgICAgICB0YXJn
ZXRTdGF0aXN0aWNzLnRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvQmVmb3JlID0gdHJ1ZTsKLSAg
ICBlbHNlIHsKLSAgICAgICAgdGFyZ2V0U3RhdGlzdGljcy5zdWJmcmFtZUhhc0JlZW5Mb2FkZWRC
ZWZvcmUgPSB0cnVlOwotCisgICAgaWYgKCFmcmFtZS5pc01haW5GcmFtZSgpKSB7CiAgICAgICAg
IGF1dG8gc3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luc1Jlc3VsdCA9IHRhcmdldFN0YXRpc3Rp
Y3Muc3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucy5hZGQobWFpbkZyYW1lUHJpbWFyeURvbWFp
bik7CiAgICAgICAgIGlmIChzdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zUmVzdWx0LmlzTmV3
RW50cnkpCiAgICAgICAgICAgICBzaG91bGRDYWxsTm90aWZpY2F0aW9uQ2FsbGJhY2sgPSB0cnVl
OwogICAgIH0KIAotICAgIGlmIChpc1JlZGlyZWN0KSB7Ci0gICAgICAgIGF1dG8mIHJlZGlyZWN0
aW5nT3JpZ2luUmVzb3VyY2VTdGF0aXN0aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9y
UHJpbWFyeURvbWFpbihzb3VyY2VQcmltYXJ5RG9tYWluKTsKLQotICAgICAgICBpZiAoaXNQcmV2
YWxlbnRSZXNvdXJjZSh0YXJnZXRQcmltYXJ5RG9tYWluKSkKLSAgICAgICAgICAgIHJlZGlyZWN0
aW5nT3JpZ2luUmVzb3VyY2VTdGF0aXN0aWNzLnJlZGlyZWN0ZWRUb090aGVyUHJldmFsZW50UmVz
b3VyY2VPcmlnaW5zLmFkZCh0YXJnZXRQcmltYXJ5RG9tYWluKTsKLQotICAgICAgICBpZiAoaXNN
YWluRnJhbWUpIHsKLSAgICAgICAgICAgICsrdGFyZ2V0U3RhdGlzdGljcy50b3BGcmFtZUhhc0Jl
ZW5SZWRpcmVjdGVkVG87Ci0gICAgICAgICAgICArK3JlZGlyZWN0aW5nT3JpZ2luUmVzb3VyY2VT
dGF0aXN0aWNzLnRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgKyt0YXJnZXRTdGF0aXN0aWNzLnN1YmZyYW1lSGFzQmVlblJlZGlyZWN0
ZWRUbzsKLSAgICAgICAgICAgICsrcmVkaXJlY3RpbmdPcmlnaW5SZXNvdXJjZVN0YXRpc3RpY3Mu
c3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb207Ci0gICAgICAgICAgICByZWRpcmVjdGluZ09y
aWdpblJlc291cmNlU3RhdGlzdGljcy5zdWJmcmFtZVVuaXF1ZVJlZGlyZWN0c1RvLmFkZCh0YXJn
ZXRQcmltYXJ5RG9tYWluKTsKLQotICAgICAgICAgICAgKyt0YXJnZXRTdGF0aXN0aWNzLnN1YmZy
YW1lU3ViUmVzb3VyY2VDb3VudDsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlm
IChzb3VyY2VQcmltYXJ5RG9tYWluLmlzTnVsbCgpIHx8IHNvdXJjZVByaW1hcnlEb21haW4uaXNF
bXB0eSgpIHx8IHNvdXJjZVByaW1hcnlEb21haW4gPT0gIm51bGxPcmlnaW4iKSB7Ci0gICAgICAg
ICAgICBpZiAoaXNNYWluRnJhbWUpCi0gICAgICAgICAgICAgICAgKyt0YXJnZXRTdGF0aXN0aWNz
LnRvcEZyYW1lSW5pdGlhbExvYWRDb3VudDsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICArK3RhcmdldFN0YXRpc3RpY3Muc3ViZnJhbWVTdWJSZXNvdXJjZUNvdW50OwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgYXV0byYgc291cmNlT3JpZ2luUmVzb3VyY2VTdGF0aXN0
aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbihzb3VyY2VQcmlt
YXJ5RG9tYWluKTsKLQotICAgICAgICAgICAgaWYgKGlzTWFpbkZyYW1lKSB7Ci0gICAgICAgICAg
ICAgICAgKytzb3VyY2VPcmlnaW5SZXNvdXJjZVN0YXRpc3RpY3MudG9wRnJhbWVIYXNCZWVuTmF2
aWdhdGVkRnJvbTsKLSAgICAgICAgICAgICAgICArK3RhcmdldFN0YXRpc3RpY3MudG9wRnJhbWVI
YXNCZWVuTmF2aWdhdGVkVG87Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICsrc291cmNlT3JpZ2luUmVzb3VyY2VTdGF0aXN0aWNzLnN1YmZyYW1lSGFzQmVlbk5hdmlnYXRl
ZEZyb207Ci0gICAgICAgICAgICAgICAgKyt0YXJnZXRTdGF0aXN0aWNzLnN1YmZyYW1lSGFzQmVl
bk5hdmlnYXRlZFRvOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgbV9y
ZXNvdXJjZVN0YXRpc3RpY3NNYXAuc2V0KHRhcmdldFByaW1hcnlEb21haW4sIFdURk1vdmUodGFy
Z2V0U3RhdGlzdGljcykpOwotCiAgICAgaWYgKHNob3VsZENhbGxOb3RpZmljYXRpb25DYWxsYmFj
aykKICAgICAgICAgc2NoZWR1bGVOb3RpZmljYXRpb25JZk5lZWRlZCgpOwogfQpAQCAtMTkxLDQz
ICsxNDksMjcgQEAgdm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nU3VicmVzb3VyY2VMb2Fk
aW5nKGNvbnN0IEZyYW1lKiBmcmFtZSwgY29uc3QgUmVzb3UKICAgICBpZiAodGFyZ2V0UHJpbWFy
eURvbWFpbiA9PSBtYWluRnJhbWVQcmltYXJ5RG9tYWluIHx8IChpc1JlZGlyZWN0ICYmIHRhcmdl
dFByaW1hcnlEb21haW4gPT0gc291cmNlUHJpbWFyeURvbWFpbikpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGF1dG8gdGFyZ2V0U3RhdGlzdGljcyA9IHRha2VSZXNvdXJjZVN0YXRpc3RpY3NGb3JQ
cmltYXJ5RG9tYWluKHRhcmdldFByaW1hcnlEb21haW4pOworICAgIGJvb2wgc2hvdWxkQ2FsbE5v
dGlmaWNhdGlvbkNhbGxiYWNrID0gZmFsc2U7CiAKLSAgICAvLyBBbHdheXMgZmlyZSBpZiB3ZSBo
YXZlIHByZXZpb3VzbHkgcmVtb3ZlZCBkYXRhIHJlY29yZHMgZm9yIHRoaXMgZG9tYWluCi0gICAg
Ym9vbCBzaG91bGRDYWxsTm90aWZpY2F0aW9uQ2FsbGJhY2sgPSB0YXJnZXRTdGF0aXN0aWNzLmRh
dGFSZWNvcmRzUmVtb3ZlZCA+IDA7CisgICAgeworICAgICAgICBhdXRvJiB0YXJnZXRTdGF0aXN0
aWNzID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbih0YXJnZXRQcmlt
YXJ5RG9tYWluKTsKIAotICAgIGF1dG8gc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luc1Jl
c3VsdCA9IHRhcmdldFN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucy5h
ZGQobWFpbkZyYW1lUHJpbWFyeURvbWFpbik7Ci0gICAgaWYgKHN1YnJlc291cmNlVW5kZXJUb3BG
cmFtZU9yaWdpbnNSZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgc2hvdWxkQ2FsbE5vdGlmaWNh
dGlvbkNhbGxiYWNrID0gdHJ1ZTsKKyAgICAgICAgLy8gQWx3YXlzIGZpcmUgaWYgd2UgaGF2ZSBw
cmV2aW91c2x5IHJlbW92ZWQgZGF0YSByZWNvcmRzIGZvciB0aGlzIGRvbWFpbgorICAgICAgICAv
LyBGSVhNRTogdGFyZ2V0U3RhdGlzdGljcy5kYXRhUmVjb3Jkc1JlbW92ZWQgaXMgYWx3YXlzIDAg
aW4gV2ViQ29yZSBhcyBpdCBnZXRzIHBvcHVsYXRlZCBpbiB0aGUgVUlQcm9jZXNzLgorICAgICAg
ICBzaG91bGRDYWxsTm90aWZpY2F0aW9uQ2FsbGJhY2sgPSB0YXJnZXRTdGF0aXN0aWNzLmRhdGFS
ZWNvcmRzUmVtb3ZlZCA+IDA7CisKKyAgICAgICAgYXV0byBzdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW5zUmVzdWx0ID0gdGFyZ2V0U3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVPcmlnaW5zLmFkZChtYWluRnJhbWVQcmltYXJ5RG9tYWluKTsKKyAgICAgICAgaWYgKHN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnNSZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAgICAg
IHNob3VsZENhbGxOb3RpZmljYXRpb25DYWxsYmFjayA9IHRydWU7CisgICAgfQogCiAgICAgaWYg
KGlzUmVkaXJlY3QpIHsKICAgICAgICAgYXV0byYgcmVkaXJlY3RpbmdPcmlnaW5TdGF0aXN0aWNz
ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbihzb3VyY2VQcmltYXJ5
RG9tYWluKTsKLQotICAgICAgICBpZiAoaXNQcmV2YWxlbnRSZXNvdXJjZSh0YXJnZXRQcmltYXJ5
RG9tYWluKSkKLSAgICAgICAgICAgIHJlZGlyZWN0aW5nT3JpZ2luU3RhdGlzdGljcy5yZWRpcmVj
dGVkVG9PdGhlclByZXZhbGVudFJlc291cmNlT3JpZ2lucy5hZGQodGFyZ2V0UHJpbWFyeURvbWFp
bik7Ci0KLSAgICAgICAgKytyZWRpcmVjdGluZ09yaWdpblN0YXRpc3RpY3Muc3VicmVzb3VyY2VI
YXNCZWVuUmVkaXJlY3RlZEZyb207Ci0gICAgICAgICsrdGFyZ2V0U3RhdGlzdGljcy5zdWJyZXNv
dXJjZUhhc0JlZW5SZWRpcmVjdGVkVG87Ci0KICAgICAgICAgYXV0byBzdWJyZXNvdXJjZVVuaXF1
ZVJlZGlyZWN0c1RvUmVzdWx0ID0gcmVkaXJlY3RpbmdPcmlnaW5TdGF0aXN0aWNzLnN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RzVG8uYWRkKHRhcmdldFByaW1hcnlEb21haW4pOwogICAgICAgICBp
ZiAoc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUb1Jlc3VsdC5pc05ld0VudHJ5KQogICAgICAg
ICAgICAgc2hvdWxkQ2FsbE5vdGlmaWNhdGlvbkNhbGxiYWNrID0gdHJ1ZTsKLQotICAgICAgICAr
K3RhcmdldFN0YXRpc3RpY3Muc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudDsKLQot
ICAgICAgICBhdXRvIHRvdGFsVmlzaXRlZCA9IHN0ZDo6bWF4KG1fb3JpZ2luc1Zpc2l0ZWRNYXAu
c2l6ZSgpLCAxVSk7Ci0KLSAgICAgICAgdGFyZ2V0U3RhdGlzdGljcy5zdWJyZXNvdXJjZUhhc0Jl
ZW5TdWJyZXNvdXJjZUNvdW50RGl2aWRlZEJ5VG90YWxOdW1iZXJPZk9yaWdpbnNWaXNpdGVkID0g
c3RhdGljX2Nhc3Q8ZG91YmxlPih0YXJnZXRTdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVlblN1
YnJlc291cmNlQ291bnQpIC8gdG90YWxWaXNpdGVkOwotICAgIH0gZWxzZSB7Ci0gICAgICAgICsr
dGFyZ2V0U3RhdGlzdGljcy5zdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50OwotCi0g
ICAgICAgIGF1dG8gdG90YWxWaXNpdGVkID0gc3RkOjptYXgobV9vcmlnaW5zVmlzaXRlZE1hcC5z
aXplKCksIDFVKTsKLQotICAgICAgICB0YXJnZXRTdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVl
blN1YnJlc291cmNlQ291bnREaXZpZGVkQnlUb3RhbE51bWJlck9mT3JpZ2luc1Zpc2l0ZWQgPSBz
dGF0aWNfY2FzdDxkb3VibGU+KHRhcmdldFN0YXRpc3RpY3Muc3VicmVzb3VyY2VIYXNCZWVuU3Vi
cmVzb3VyY2VDb3VudCkgLyB0b3RhbFZpc2l0ZWQ7CiAgICAgfQogCi0gICAgbV9yZXNvdXJjZVN0
YXRpc3RpY3NNYXAuc2V0KHRhcmdldFByaW1hcnlEb21haW4sIFdURk1vdmUodGFyZ2V0U3RhdGlz
dGljcykpOwotCiAgICAgaWYgKHNob3VsZENhbGxOb3RpZmljYXRpb25DYWxsYmFjaykKICAgICAg
ICAgc2NoZWR1bGVOb3RpZmljYXRpb25JZk5lZWRlZCgpOwogfQpAQCAtMjU5LDE4ICsyMDEsMTMg
QEAgdm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nV2ViU29ja2V0TG9hZGluZyhjb25zdCBG
cmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdGEKICAgICBhdXRvJiB0YXJnZXRTdGF0aXN0aWNzID0g
ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbih0YXJnZXRQcmltYXJ5RG9t
YWluKTsKIAogICAgIC8vIEFsd2F5cyBmaXJlIGlmIHdlIGhhdmUgcHJldmlvdXNseSByZW1vdmVk
IGRhdGEgcmVjb3JkcyBmb3IgdGhpcyBkb21haW4KKyAgICAvLyBGSVhNRTogdGFyZ2V0U3RhdGlz
dGljcy5kYXRhUmVjb3Jkc1JlbW92ZWQgaXMgYWx3YXlzIDAgaW4gV2ViQ29yZSBhcyBpdCBnZXRz
IHBvcHVsYXRlZCBpbiB0aGUgVUlQcm9jZXNzLgogICAgIGJvb2wgc2hvdWxkQ2FsbE5vdGlmaWNh
dGlvbkNhbGxiYWNrID0gdGFyZ2V0U3RhdGlzdGljcy5kYXRhUmVjb3Jkc1JlbW92ZWQgPiAwOwog
CiAgICAgYXV0byBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zUmVzdWx0ID0gdGFyZ2V0
U3RhdGlzdGljcy5zdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5zLmFkZChtYWluRnJhbWVQ
cmltYXJ5RG9tYWluKTsKICAgICBpZiAoc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2luc1Jl
c3VsdC5pc05ld0VudHJ5KQogICAgICAgICBzaG91bGRDYWxsTm90aWZpY2F0aW9uQ2FsbGJhY2sg
PSB0cnVlOwogCi0gICAgKyt0YXJnZXRTdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVlblN1YnJl
c291cmNlQ291bnQ7Ci0KLSAgICBhdXRvIHRvdGFsVmlzaXRlZCA9IHN0ZDo6bWF4KG1fb3JpZ2lu
c1Zpc2l0ZWRNYXAuc2l6ZSgpLCAxVSk7Ci0KLSAgICB0YXJnZXRTdGF0aXN0aWNzLnN1YnJlc291
cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnREaXZpZGVkQnlUb3RhbE51bWJlck9mT3JpZ2luc1Zp
c2l0ZWQgPSBzdGF0aWNfY2FzdDxkb3VibGU+KHRhcmdldFN0YXRpc3RpY3Muc3VicmVzb3VyY2VI
YXNCZWVuU3VicmVzb3VyY2VDb3VudCkgLyB0b3RhbFZpc2l0ZWQ7Ci0KICAgICBpZiAoc2hvdWxk
Q2FsbE5vdGlmaWNhdGlvbkNhbGxiYWNrKQogICAgICAgICBzY2hlZHVsZU5vdGlmaWNhdGlvbklm
TmVlZGVkKCk7CiB9CkBAIC0zMTAsMjMgKzI0Nyw2IEBAIFJlc291cmNlTG9hZFN0YXRpc3RpY3Mm
IFJlc291cmNlTG9hZE9ic2VydmVyOjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JQcmltYXJ5
CiAgICAgcmV0dXJuIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CiB9CiAKLVJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnRha2VSZXNvdXJjZVN0YXRpc3RpY3NG
b3JQcmltYXJ5RG9tYWluKGNvbnN0IFN0cmluZyYgcHJpbWFyeURvbWFpbikKLXsKLSAgICBhdXRv
IHN0YXRpc3Rpc3RpY3MgPSBtX3Jlc291cmNlU3RhdGlzdGljc01hcC50YWtlKHByaW1hcnlEb21h
aW4pOwotICAgIGlmIChzdGF0aXN0aXN0aWNzLmhpZ2hMZXZlbERvbWFpbi5pc051bGwoKSkKLSAg
ICAgICAgc3RhdGlzdGlzdGljcy5oaWdoTGV2ZWxEb21haW4gPSBwcmltYXJ5RG9tYWluOwotICAg
IEFTU0VSVChzdGF0aXN0aXN0aWNzLmhpZ2hMZXZlbERvbWFpbiA9PSBwcmltYXJ5RG9tYWluKTsK
LSAgICByZXR1cm4gc3RhdGlzdGlzdGljczsKLX0KLQotYm9vbCBSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6aXNQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBTdHJpbmcmIHByaW1hcnlEb21haW4pIGNvbnN0
Ci17Ci0gICAgYXV0byBtYXBFbnRyeSA9IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwLmZpbmQocHJp
bWFyeURvbWFpbik7Ci0gICAgaWYgKG1hcEVudHJ5ID09IG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFw
LmVuZCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIG1hcEVudHJ5LT52YWx1
ZS5pc1ByZXZhbGVudFJlc291cmNlOwotfQotCiB2b2lkIFJlc291cmNlTG9hZE9ic2VydmVyOjpz
Y2hlZHVsZU5vdGlmaWNhdGlvbklmTmVlZGVkKCkKIHsKICAgICBBU1NFUlQobV9ub3RpZmljYXRp
b25DYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZl
ci5oCmluZGV4IGY4ZDgyYTg3MDkyZDI4YmYxZTRmMWI0M2UyZWM0MDIyNzFiODVkOTYuLmY1MDdi
ODM1ZjMwNzE1NGRiOGMwNjgzYzUyYTU0MTZkMDkwNmYyOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIFJl
c291cmNlTG9hZE9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
UmVzb3VyY2VMb2FkT2JzZXJ2ZXImIHNoYXJlZCgpOwogICAgIAotICAgIHZvaWQgbG9nRnJhbWVO
YXZpZ2F0aW9uKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWUmIHRvcEZyYW1lLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UpOworICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IEZyYW1l
JiwgY29uc3QgRnJhbWUmIHRvcEZyYW1lLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVl
c3QpOwogICAgIHZvaWQgbG9nU3VicmVzb3VyY2VMb2FkaW5nKGNvbnN0IEZyYW1lKiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRp
cmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIGxvZ1dlYlNvY2tldExvYWRpbmcoY29uc3QgRnJhbWUq
LCBjb25zdCBVUkwmKTsKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbldpdGhSZWR1Y2VkVGlt
ZVJlc29sdXRpb24oY29uc3QgRG9jdW1lbnQmKTsKQEAgLTY1LDggKzY1LDYgQEAgcHJpdmF0ZToK
IAogICAgIGJvb2wgc2hvdWxkTG9nKFBhZ2UqKSBjb25zdDsKICAgICBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzJiBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JQcmltYXJ5RG9tYWluKGNvbnN0IFN0
cmluZyYpOwotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgdGFrZVJlc291cmNlU3RhdGlzdGlj
c0ZvclByaW1hcnlEb21haW4oY29uc3QgU3RyaW5nJiBwcmltYXJ5RG9tYWluKTsKLSAgICBib29s
IGlzUHJldmFsZW50UmVzb3VyY2UoY29uc3QgU3RyaW5nJiBwcmltYXJ5RG9tYWluKSBjb25zdDsK
IAogICAgIHZvaWQgc2NoZWR1bGVOb3RpZmljYXRpb25JZk5lZWRlZCgpOwogICAgIHZvaWQgbm90
aWZpY2F0aW9uVGltZXJGaXJlZCgpOwpAQCAtNzUsNyArNzMsNiBAQCBwcml2YXRlOgogICAgIEhh
c2hNYXA8U3RyaW5nLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiBtX3Jlc291cmNlU3RhdGlzdGlj
c01hcDsKICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQgKFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzPiYmKT4gbV9ub3RpZmljYXRpb25DYWxsYmFjazsKICAgICBUaW1lciBtX25vdGlmaWNhdGlv
blRpbWVyOwotICAgIEhhc2hNYXA8U3RyaW5nLCBzaXplX3Q+IG1fb3JpZ2luc1Zpc2l0ZWRNYXA7
CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCmluZGV4IDI1MTU5MWM4MjdlMzM1OTYx
N2Q1MmUyZDRkMmJhMDQ4ZGVkNDIwM2MuLmFjYjUxZjdmYjMyYzI0NjcxMGM5NDljMmQ1M2VmNTU1
OTdlYjVjMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy5jcHAKQEAgLTU1LDM0ICs1NSwxNCBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M6OmVuY29kZShLZXllZEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rlci5lbmNv
ZGVEb3VibGUoIm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24iLCBtb3N0UmVjZW50VXNlckludGVy
YWN0aW9uVGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOwogICAgIGVuY29kZXIuZW5j
b2RlQm9vbCgiZ3JhbmRmYXRoZXJlZCIsIGdyYW5kZmF0aGVyZWQpOwogICAgIAotICAgIC8vIFRv
cCBmcmFtZSBzdGF0cwotICAgIGVuY29kZXIuZW5jb2RlQm9vbCgidG9wRnJhbWVIYXNCZWVuTmF2
aWdhdGVkVG9CZWZvcmUiLCB0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUb0JlZm9yZSk7Ci0gICAg
ZW5jb2Rlci5lbmNvZGVVSW50MzIoInRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbyIsIHRvcEZy
YW1lSGFzQmVlblJlZGlyZWN0ZWRUbyk7Ci0gICAgZW5jb2Rlci5lbmNvZGVVSW50MzIoInRvcEZy
YW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tIiwgdG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb20p
OwotICAgIGVuY29kZXIuZW5jb2RlVUludDMyKCJ0b3BGcmFtZUluaXRpYWxMb2FkQ291bnQiLCB0
b3BGcmFtZUluaXRpYWxMb2FkQ291bnQpOwotICAgIGVuY29kZXIuZW5jb2RlVUludDMyKCJ0b3BG
cmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbyIsIHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvKTsKLSAg
ICBlbmNvZGVyLmVuY29kZVVJbnQzMigidG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbSIsIHRv
cEZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb20pOwotICAgIAogICAgIC8vIFN1YmZyYW1lIHN0YXRz
Ci0gICAgZW5jb2Rlci5lbmNvZGVCb29sKCJzdWJmcmFtZUhhc0JlZW5Mb2FkZWRCZWZvcmUiLCBz
dWJmcmFtZUhhc0JlZW5Mb2FkZWRCZWZvcmUpOwotICAgIGVuY29kZXIuZW5jb2RlVUludDMyKCJz
dWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG8iLCBzdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG8p
OwotICAgIGVuY29kZXIuZW5jb2RlVUludDMyKCJzdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJv
bSIsIHN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tKTsKLSAgICBlbmNvZGVyLmVuY29kZVVJ
bnQzMigic3ViZnJhbWVTdWJSZXNvdXJjZUNvdW50Iiwgc3ViZnJhbWVTdWJSZXNvdXJjZUNvdW50
KTsKICAgICBlbmNvZGVIYXNoQ291bnRlZFNldChlbmNvZGVyLCAic3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2lucyIsIHN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMpOwotICAgIGVuY29kZUhh
c2hDb3VudGVkU2V0KGVuY29kZXIsICJzdWJmcmFtZVVuaXF1ZVJlZGlyZWN0c1RvIiwgc3ViZnJh
bWVVbmlxdWVSZWRpcmVjdHNUbyk7Ci0gICAgZW5jb2Rlci5lbmNvZGVVSW50MzIoInN1YmZyYW1l
SGFzQmVlbk5hdmlnYXRlZFRvIiwgc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkVG8pOwotICAgIGVu
Y29kZXIuZW5jb2RlVUludDMyKCJzdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tIiwgc3ViZnJh
bWVIYXNCZWVuTmF2aWdhdGVkRnJvbSk7CiAgICAgCiAgICAgLy8gU3VicmVzb3VyY2Ugc3RhdHMK
LSAgICBlbmNvZGVyLmVuY29kZVVJbnQzMigic3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZEZy
b20iLCBzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSk7Ci0gICAgZW5jb2Rlci5lbmNv
ZGVVSW50MzIoInN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRUbyIsIHN1YnJlc291cmNlSGFz
QmVlblJlZGlyZWN0ZWRUbyk7Ci0gICAgZW5jb2Rlci5lbmNvZGVVSW50MzIoInN1YnJlc291cmNl
SGFzQmVlblN1YnJlc291cmNlQ291bnQiLCBzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNv
dW50KTsKLSAgICBlbmNvZGVyLmVuY29kZURvdWJsZSgic3VicmVzb3VyY2VIYXNCZWVuU3VicmVz
b3VyY2VDb3VudERpdmlkZWRCeVRvdGFsTnVtYmVyT2ZPcmlnaW5zVmlzaXRlZCIsIHN1YnJlc291
cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnREaXZpZGVkQnlUb3RhbE51bWJlck9mT3JpZ2luc1Zp
c2l0ZWQpOwogICAgIGVuY29kZUhhc2hDb3VudGVkU2V0KGVuY29kZXIsICJzdWJyZXNvdXJjZVVu
ZGVyVG9wRnJhbWVPcmlnaW5zIiwgc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lT3JpZ2lucyk7CiAg
ICAgZW5jb2RlSGFzaENvdW50ZWRTZXQoZW5jb2RlciwgInN1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RzVG8iLCBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvKTsKICAgICAKICAgICAvLyBQcmV2
YWxlbnQgUmVzb3VyY2UKLSAgICBlbmNvZGVIYXNoQ291bnRlZFNldChlbmNvZGVyLCAicmVkaXJl
Y3RlZFRvT3RoZXJQcmV2YWxlbnRSZXNvdXJjZU9yaWdpbnMiLCByZWRpcmVjdGVkVG9PdGhlclBy
ZXZhbGVudFJlc291cmNlT3JpZ2lucyk7CiAgICAgZW5jb2Rlci5lbmNvZGVCb29sKCJpc1ByZXZh
bGVudFJlc291cmNlIiwgaXNQcmV2YWxlbnRSZXNvdXJjZSk7CiAgICAgZW5jb2Rlci5lbmNvZGVV
SW50MzIoImRhdGFSZWNvcmRzUmVtb3ZlZCIsIGRhdGFSZWNvcmRzUmVtb3ZlZCk7CiB9CkBAIC0x
MDMsNyArODMsNyBAQCBzdGF0aWMgdm9pZCBkZWNvZGVIYXNoQ291bnRlZFNldChLZXllZERlY29k
ZXImIGRlY29kZXIsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEhhcwogICAgIH0pOwogfQogCi1ib29s
IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIsIHVu
c2lnbmVkIHZlcnNpb24pCitib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OmRlY29kZShLZXll
ZERlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZVN0cmluZygiUHJl
dmFsZW50UmVzb3VyY2VPcmlnaW4iLCBoaWdoTGV2ZWxEb21haW4pKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC0xMTIsNzggKzkyLDIwIEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6
ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgdW5zaWduZWQgdmVyc2lvbikKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlQm9vbCgiaGFkVXNlckludGVyYWN0aW9uIiwgaGFkVXNlckludGVyYWN0
aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIC8vIFRvcCBmcmFtZSBzdGF0
cwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJ0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRU
b0JlZm9yZSIsIHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvQmVmb3JlKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50MzIoInRvcEZyYW1l
SGFzQmVlblJlZGlyZWN0ZWRUbyIsIHRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbykpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlVUludDMyKCJ0
b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSIsIHRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRG
cm9tKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVVSW50MzIoInRvcEZyYW1lSW5pdGlhbExvYWRDb3VudCIsIHRvcEZyYW1lSW5pdGlhbExvYWRD
b3VudCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVj
b2RlVUludDMyKCJ0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbyIsIHRvcEZyYW1lSGFzQmVlbk5h
dmlnYXRlZFRvKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rl
ci5kZWNvZGVVSW50MzIoInRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb20iLCB0b3BGcmFtZUhh
c0JlZW5OYXZpZ2F0ZWRGcm9tKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAogICAgIC8v
IFN1YmZyYW1lIHN0YXRzCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woInN1YmZyYW1lSGFz
QmVlbkxvYWRlZEJlZm9yZSIsIHN1YmZyYW1lSGFzQmVlbkxvYWRlZEJlZm9yZSkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlVUludDMyKCJzdWJm
cmFtZUhhc0JlZW5SZWRpcmVjdGVkVG8iLCBzdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG8pKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJbnQz
Migic3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb20iLCBzdWJmcmFtZUhhc0JlZW5SZWRpcmVj
dGVkRnJvbSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlVUludDMyKCJzdWJmcmFtZVN1YlJlc291cmNlQ291bnQiLCBzdWJmcmFtZVN1YlJlc291
cmNlQ291bnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICBkZWNvZGVIYXNoQ291bnRl
ZFNldChkZWNvZGVyLCAic3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucyIsIHN1YmZyYW1lVW5k
ZXJUb3BGcmFtZU9yaWdpbnMpOwotICAgIGRlY29kZUhhc2hDb3VudGVkU2V0KGRlY29kZXIsICJz
dWJmcmFtZVVuaXF1ZVJlZGlyZWN0c1RvIiwgc3ViZnJhbWVVbmlxdWVSZWRpcmVjdHNUbyk7Ci0g
ICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJbnQzMigic3ViZnJhbWVIYXNCZWVuTmF2aWdh
dGVkVG8iLCBzdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbykpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlVUludDMyKCJzdWJmcmFtZUhhc0JlZW5O
YXZpZ2F0ZWRGcm9tIiwgc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbSkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAKICAgICAvLyBTdWJyZXNvdXJjZSBzdGF0cwotICAgIGlmICghZGVj
b2Rlci5kZWNvZGVVSW50MzIoInN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRGcm9tIiwgc3Vi
cmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZEZyb20pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJbnQzMigic3VicmVzb3VyY2VIYXNCZWVuUmVk
aXJlY3RlZFRvIiwgc3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZFRvKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50MzIoInN1YnJlc291
cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnQiLCBzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJj
ZUNvdW50KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVEb3VibGUoInN1YnJlc291cmNlSGFzQmVlblN1YnJlc291cmNlQ291bnREaXZpZGVkQnlU
b3RhbE51bWJlck9mT3JpZ2luc1Zpc2l0ZWQiLCBzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJj
ZUNvdW50RGl2aWRlZEJ5VG90YWxOdW1iZXJPZk9yaWdpbnNWaXNpdGVkKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCiAgICAgZGVjb2RlSGFzaENvdW50ZWRTZXQoZGVjb2RlciwgInN1YnJlc291
cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMiLCBzdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVPcmlnaW5z
KTsKICAgICBkZWNvZGVIYXNoQ291bnRlZFNldChkZWNvZGVyLCAic3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdHNUbyIsIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8pOwogICAgIAogICAgIC8v
IFByZXZhbGVudCBSZXNvdXJjZQotICAgIGRlY29kZUhhc2hDb3VudGVkU2V0KGRlY29kZXIsICJy
ZWRpcmVjdGVkVG9PdGhlclByZXZhbGVudFJlc291cmNlT3JpZ2lucyIsIHJlZGlyZWN0ZWRUb090
aGVyUHJldmFsZW50UmVzb3VyY2VPcmlnaW5zKTsKLSAgICAKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlQm9vbCgiaXNQcmV2YWxlbnRSZXNvdXJjZSIsIGlzUHJldmFsZW50UmVzb3VyY2UpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAodmVyc2lvbiA8IDIpCi0gICAgICAgIHJldHVy
biB0cnVlOwotCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJbnQzMigiZGF0YVJlY29yZHNSZW1v
dmVkIiwgZGF0YVJlY29yZHNSZW1vdmVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
aWYgKHZlcnNpb24gPCAzKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQogICAgIGRvdWJsZSBtb3N0
UmVjZW50VXNlckludGVyYWN0aW9uVGltZUFzRG91YmxlOwogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVEb3VibGUoIm1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24iLCBtb3N0UmVjZW50VXNlckludGVy
YWN0aW9uVGltZUFzRG91YmxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjM0LDY0ICsx
NTYsMTQgQEAgU3RyaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OnRvU3RyaW5nKCkgY29uc3QK
ICAgICBhcHBlbmRCb29sZWFuKGJ1aWxkZXIsICIgICAgZ3JhbmRmYXRoZXJlZCIsIGdyYW5kZmF0
aGVyZWQpOwogICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwogICAgIAotICAgIC8vIFRvcCBmcmFt
ZSBzdGF0cwotICAgIGFwcGVuZEJvb2xlYW4oYnVpbGRlciwgInRvcEZyYW1lSGFzQmVlbk5hdmln
YXRlZFRvQmVmb3JlIiwgdG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkVG9CZWZvcmUpOwotICAgIGJ1
aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHRvcEZy
YW1lSGFzQmVlblJlZGlyZWN0ZWRUbzogIik7Ci0gICAgYnVpbGRlci5hcHBlbmROdW1iZXIodG9w
RnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvKTsKLSAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICB0b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJv
bTogIik7Ci0gICAgYnVpbGRlci5hcHBlbmROdW1iZXIodG9wRnJhbWVIYXNCZWVuUmVkaXJlY3Rl
ZEZyb20pOwotICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiICAgIHRvcEZyYW1lSW5pdGlhbExvYWRDb3VudDogIik7Ci0gICAgYnVpbGRlci5hcHBl
bmROdW1iZXIodG9wRnJhbWVJbml0aWFsTG9hZENvdW50KTsKLSAgICBidWlsZGVyLmFwcGVuZCgn
XG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICB0b3BGcmFtZUhhc0JlZW5OYXZp
Z2F0ZWRUbzogIik7Ci0gICAgYnVpbGRlci5hcHBlbmROdW1iZXIodG9wRnJhbWVIYXNCZWVuTmF2
aWdhdGVkVG8pOwotICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiICAgIHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb206ICIpOwotICAgIGJ1aWxk
ZXIuYXBwZW5kTnVtYmVyKHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb20pOwotICAgIGJ1aWxk
ZXIuYXBwZW5kKCdcbicpOwotICAgIAogICAgIC8vIFN1YmZyYW1lIHN0YXRzCi0gICAgYXBwZW5k
Qm9vbGVhbihidWlsZGVyLCAic3ViZnJhbWVIYXNCZWVuTG9hZGVkQmVmb3JlIiwgc3ViZnJhbWVI
YXNCZWVuTG9hZGVkQmVmb3JlKTsKLSAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIiAgICBzdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG86ICIpOwot
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbyk7Ci0g
ICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgICAg
c3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb206ICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVt
YmVyKHN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tKTsKLSAgICBidWlsZGVyLmFwcGVuZCgn
XG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICBzdWJmcmFtZVN1YlJlc291cmNl
Q291bnQ6ICIpOwotICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHN1YmZyYW1lU3ViUmVzb3VyY2VD
b3VudCk7Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7CiAgICAgYXBwZW5kSGFzaENvdW50ZWRT
ZXQoYnVpbGRlciwgInN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMiLCBzdWJmcmFtZVVuZGVy
VG9wRnJhbWVPcmlnaW5zKTsKLSAgICBhcHBlbmRIYXNoQ291bnRlZFNldChidWlsZGVyLCAic3Vi
ZnJhbWVVbmlxdWVSZWRpcmVjdHNUbyIsIHN1YmZyYW1lVW5pcXVlUmVkaXJlY3RzVG8pOwotICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAgIHN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvOiAi
KTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcihzdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRUbyk7
Ci0gICAgYnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIg
ICAgc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbTogIik7Ci0gICAgYnVpbGRlci5hcHBlbmRO
dW1iZXIoc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbSk7Ci0gICAgYnVpbGRlci5hcHBlbmQo
J1xuJyk7CiAgICAgCiAgICAgLy8gU3VicmVzb3VyY2Ugc3RhdHMKLSAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIiAgICBzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkRnJvbTogIik7Ci0gICAg
YnVpbGRlci5hcHBlbmROdW1iZXIoc3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZEZyb20pOwot
ICAgIGJ1aWxkZXIuYXBwZW5kKCdcbicpOwotICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiICAg
IHN1YnJlc291cmNlSGFzQmVlblJlZGlyZWN0ZWRUbzogIik7Ci0gICAgYnVpbGRlci5hcHBlbmRO
dW1iZXIoc3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZFRvKTsKLSAgICBidWlsZGVyLmFwcGVu
ZCgnXG4nKTsKLSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICBzdWJyZXNvdXJjZUhhc0Jl
ZW5TdWJyZXNvdXJjZUNvdW50OiAiKTsKLSAgICBidWlsZGVyLmFwcGVuZE51bWJlcihzdWJyZXNv
dXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50KTsKLSAgICBidWlsZGVyLmFwcGVuZCgnXG4nKTsK
LSAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiAgICBzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNv
dXJjZUNvdW50RGl2aWRlZEJ5VG90YWxOdW1iZXJPZk9yaWdpbnNWaXNpdGVkOiAiKTsKLSAgICBi
dWlsZGVyLmFwcGVuZE51bWJlcihzdWJyZXNvdXJjZUhhc0JlZW5TdWJyZXNvdXJjZUNvdW50RGl2
aWRlZEJ5VG90YWxOdW1iZXJPZk9yaWdpbnNWaXNpdGVkKTsKLSAgICBidWlsZGVyLmFwcGVuZCgn
XG4nKTsKICAgICBhcHBlbmRIYXNoQ291bnRlZFNldChidWlsZGVyLCAic3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lT3JpZ2lucyIsIHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMpOwogICAg
IGFwcGVuZEhhc2hDb3VudGVkU2V0KGJ1aWxkZXIsICJzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
c1RvIiwgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbyk7CiAgICAgCiAgICAgLy8gUHJldmFs
ZW50IFJlc291cmNlCi0gICAgYXBwZW5kSGFzaENvdW50ZWRTZXQoYnVpbGRlciwgInJlZGlyZWN0
ZWRUb090aGVyUHJldmFsZW50UmVzb3VyY2VPcmlnaW5zIiwgcmVkaXJlY3RlZFRvT3RoZXJQcmV2
YWxlbnRSZXNvdXJjZU9yaWdpbnMpOwogICAgIGFwcGVuZEJvb2xlYW4oYnVpbGRlciwgImlzUHJl
dmFsZW50UmVzb3VyY2UiLCBpc1ByZXZhbGVudFJlc291cmNlKTsKICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIiAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6ICIpOwogICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKGRhdGFSZWNvcmRzUmVtb3ZlZCk7CkBAIC0zMzEsMzMgKzIwMywxNCBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3M6Om1lcmdlKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3Mm
IG90aGVyKQogICAgIH0KICAgICBncmFuZGZhdGhlcmVkIHw9IG90aGVyLmdyYW5kZmF0aGVyZWQ7
CiAgICAgCi0gICAgLy8gVG9wIGZyYW1lIHN0YXRzCi0gICAgdG9wRnJhbWVIYXNCZWVuUmVkaXJl
Y3RlZFRvICs9IG90aGVyLnRvcEZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbzsKLSAgICB0b3BGcmFt
ZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSArPSBvdGhlci50b3BGcmFtZUhhc0JlZW5SZWRpcmVjdGVk
RnJvbTsKLSAgICB0b3BGcmFtZUluaXRpYWxMb2FkQ291bnQgKz0gb3RoZXIudG9wRnJhbWVJbml0
aWFsTG9hZENvdW50OwotICAgIHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvICs9IG90aGVyLnRv
cEZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvOwotICAgIHRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZEZy
b20gKz0gb3RoZXIudG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkRnJvbTsKLSAgICB0b3BGcmFtZUhh
c0JlZW5OYXZpZ2F0ZWRUb0JlZm9yZSB8PSBvdGhlci50b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRU
b0JlZm9yZTsKLSAgICAKICAgICAvLyBTdWJmcmFtZSBzdGF0cwogICAgIG1lcmdlSGFzaENvdW50
ZWRTZXQoc3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2lucywgb3RoZXIuc3ViZnJhbWVVbmRlclRv
cEZyYW1lT3JpZ2lucyk7Ci0gICAgc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvICs9IG90aGVy
LnN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbzsKLSAgICBzdWJmcmFtZUhhc0JlZW5SZWRpcmVj
dGVkRnJvbSArPSBvdGhlci5zdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkRnJvbTsKLSAgICBtZXJn
ZUhhc2hDb3VudGVkU2V0KHN1YmZyYW1lVW5pcXVlUmVkaXJlY3RzVG8sIG90aGVyLnN1YmZyYW1l
VW5pcXVlUmVkaXJlY3RzVG8pOwotICAgIHN1YmZyYW1lU3ViUmVzb3VyY2VDb3VudCArPSBvdGhl
ci5zdWJmcmFtZVN1YlJlc291cmNlQ291bnQ7Ci0gICAgc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVk
VG8gKz0gb3RoZXIuc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkVG87Ci0gICAgc3ViZnJhbWVIYXNC
ZWVuTmF2aWdhdGVkRnJvbSArPSBvdGhlci5zdWJmcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tOwot
ICAgIHN1YmZyYW1lSGFzQmVlbkxvYWRlZEJlZm9yZSB8PSBvdGhlci5zdWJmcmFtZUhhc0JlZW5M
b2FkZWRCZWZvcmU7CiAgICAgCiAgICAgLy8gU3VicmVzb3VyY2Ugc3RhdHMKICAgICBtZXJnZUhh
c2hDb3VudGVkU2V0KHN1YnJlc291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMsIG90aGVyLnN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZU9yaWdpbnMpOwotICAgIHN1YnJlc291cmNlSGFzQmVlblN1YnJl
c291cmNlQ291bnQgKz0gb3RoZXIuc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudDsK
LSAgICBzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSArPSBvdGhlci5zdWJyZXNvdXJj
ZUhhc0JlZW5SZWRpcmVjdGVkRnJvbTsKLSAgICBzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVk
VG8gKz0gb3RoZXIuc3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZFRvOwogICAgIG1lcmdlSGFz
aENvdW50ZWRTZXQoc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNUbywgb3RoZXIuc3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdHNUbyk7CiAgICAgCiAgICAgLy8gUHJldmFsZW50IHJlc291cmNlIHN0
YXRzCi0gICAgbWVyZ2VIYXNoQ291bnRlZFNldChyZWRpcmVjdGVkVG9PdGhlclByZXZhbGVudFJl
c291cmNlT3JpZ2lucywgb3RoZXIucmVkaXJlY3RlZFRvT3RoZXJQcmV2YWxlbnRSZXNvdXJjZU9y
aWdpbnMpOwogICAgIGlzUHJldmFsZW50UmVzb3VyY2UgfD0gb3RoZXIuaXNQcmV2YWxlbnRSZXNv
dXJjZTsKICAgICBkYXRhUmVjb3Jkc1JlbW92ZWQgKz0gb3RoZXIuZGF0YVJlY29yZHNSZW1vdmVk
OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3MuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
LmgKaW5kZXggYWUzMzYwODNkMTgwNjgzNDhkZWUyYThmY2RlMTBhOGYzYTA4MDlmNy4uZDJiYWU4
YTU0ZDkyYjM3NDBhNDExZTE5M2NhY2EyYTJjNjBiZjQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5oCkBAIC01Myw3ICs1Myw3IEBAIHN0cnVj
dCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3Ry
aW5nIHByaW1hcnlEb21haW4oY29uc3QgU3RyaW5nJiBob3N0KTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZW5jb2RlKEtleWVkRW5jb2RlciYpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgZGVjb2RlKEtleWVkRGVjb2RlciYsIHVuc2lnbmVkIHZlcnNpb24pOworICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgZGVjb2RlKEtleWVkRGVjb2RlciYpOwogCiAgICAgU3RyaW5nIHRvU3Ry
aW5nKCkgY29uc3Q7CiAKQEAgLTY2LDM1ICs2NiwxNSBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyB7CiAgICAgLy8gVGltZXN0YW1wLiBEZWZhdWx0IHZhbHVlIGlzIG5lZ2F0aXZlLCAw
IG1lYW5zIGl0IHdhcyByZXNldC4KICAgICBXYWxsVGltZSBtb3N0UmVjZW50VXNlckludGVyYWN0
aW9uVGltZSB7IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcygtMSkgfTsKICAgICBib29sIGdyYW5k
ZmF0aGVyZWQgeyBmYWxzZSB9OwotCi0gICAgLy8gVG9wIGZyYW1lIHN0YXRzCi0gICAgdW5zaWdu
ZWQgdG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZFRvIHsgMCB9OwotICAgIHVuc2lnbmVkIHRvcEZy
YW1lSGFzQmVlblJlZGlyZWN0ZWRGcm9tIHsgMCB9OwotICAgIHVuc2lnbmVkIHRvcEZyYW1lSW5p
dGlhbExvYWRDb3VudCB7IDAgfTsKLSAgICB1bnNpZ25lZCB0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0
ZWRUbyB7IDAgfTsKLSAgICB1bnNpZ25lZCB0b3BGcmFtZUhhc0JlZW5OYXZpZ2F0ZWRGcm9tIHsg
MCB9OwotICAgIGJvb2wgdG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkVG9CZWZvcmUgeyBmYWxzZSB9
OwogICAgIAogICAgIC8vIFN1YmZyYW1lIHN0YXRzCiAgICAgSGFzaENvdW50ZWRTZXQ8U3RyaW5n
PiBzdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zOwotICAgIHVuc2lnbmVkIHN1YmZyYW1lSGFz
QmVlblJlZGlyZWN0ZWRUbyB7IDAgfTsKLSAgICB1bnNpZ25lZCBzdWJmcmFtZUhhc0JlZW5SZWRp
cmVjdGVkRnJvbSB7IDAgfTsKLSAgICBIYXNoQ291bnRlZFNldDxTdHJpbmc+IHN1YmZyYW1lVW5p
cXVlUmVkaXJlY3RzVG87Ci0gICAgdW5zaWduZWQgc3ViZnJhbWVTdWJSZXNvdXJjZUNvdW50IHsg
MCB9OwotICAgIHVuc2lnbmVkIHN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZFRvIHsgMCB9OwotICAg
IHVuc2lnbmVkIHN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb20geyAwIH07Ci0gICAgYm9vbCBz
dWJmcmFtZUhhc0JlZW5Mb2FkZWRCZWZvcmUgeyBmYWxzZSB9OwogICAgIAogICAgIC8vIFN1YnJl
c291cmNlIHN0YXRzCiAgICAgSGFzaENvdW50ZWRTZXQ8U3RyaW5nPiBzdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVPcmlnaW5zOwotICAgIHVuc2lnbmVkIHN1YnJlc291cmNlSGFzQmVlblN1YnJlc291
cmNlQ291bnQgeyAwIH07Ci0gICAgZG91YmxlIHN1YnJlc291cmNlSGFzQmVlblN1YnJlc291cmNl
Q291bnREaXZpZGVkQnlUb3RhbE51bWJlck9mT3JpZ2luc1Zpc2l0ZWQgeyAwLjAgfTsKLSAgICB1
bnNpZ25lZCBzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkRnJvbSB7IDAgfTsKLSAgICB1bnNp
Z25lZCBzdWJyZXNvdXJjZUhhc0JlZW5SZWRpcmVjdGVkVG8geyAwIH07CiAgICAgSGFzaENvdW50
ZWRTZXQ8U3RyaW5nPiBzdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c1RvOwogICAgIAogICAgIC8v
IFByZXZhbGVudCByZXNvdXJjZSBzdGF0cwotICAgIEhhc2hDb3VudGVkU2V0PFN0cmluZz4gcmVk
aXJlY3RlZFRvT3RoZXJQcmV2YWxlbnRSZXNvdXJjZU9yaWdpbnM7CiAgICAgYm9vbCBpc1ByZXZh
bGVudFJlc291cmNlIHsgZmFsc2UgfTsKICAgICB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQg
eyAwIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKaW5kZXggY2M2YWZmYTcxZDIyODE2NTJiZGUyZTZlYjI1NzM5NTZmNzUyNDc5ZS4uMDcx
OTgyODY1YTFiZTc1NGY3NDY3ODk5M2FjNzM5Nzc0ZDgwMmFlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTIyNDcsMzQgKzIyNDcs
MTQgQEAgdm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ28KICAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3Mu
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgp
OwogICAgIGVuY29kZXIgPDwgc3RhdGlzdGljcy5ncmFuZGZhdGhlcmVkOwogICAgIAotICAgIC8v
IFRvcCBmcmFtZSBzdGF0cwotICAgIGVuY29kZXIgPDwgc3RhdGlzdGljcy50b3BGcmFtZUhhc0Jl
ZW5OYXZpZ2F0ZWRUb0JlZm9yZTsKLSAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3MudG9wRnJhbWVI
YXNCZWVuUmVkaXJlY3RlZFRvOwotICAgIGVuY29kZXIgPDwgc3RhdGlzdGljcy50b3BGcmFtZUhh
c0JlZW5SZWRpcmVjdGVkRnJvbTsKLSAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3MudG9wRnJhbWVJ
bml0aWFsTG9hZENvdW50OwotICAgIGVuY29kZXIgPDwgc3RhdGlzdGljcy50b3BGcmFtZUhhc0Jl
ZW5OYXZpZ2F0ZWRUbzsKLSAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3MudG9wRnJhbWVIYXNCZWVu
TmF2aWdhdGVkRnJvbTsKLSAgICAKICAgICAvLyBTdWJmcmFtZSBzdGF0cwotICAgIGVuY29kZXIg
PDwgc3RhdGlzdGljcy5zdWJmcmFtZUhhc0JlZW5Mb2FkZWRCZWZvcmU7Ci0gICAgZW5jb2RlciA8
PCBzdGF0aXN0aWNzLnN1YmZyYW1lSGFzQmVlblJlZGlyZWN0ZWRUbzsKLSAgICBlbmNvZGVyIDw8
IHN0YXRpc3RpY3Muc3ViZnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb207Ci0gICAgZW5jb2RlciA8
PCBzdGF0aXN0aWNzLnN1YmZyYW1lU3ViUmVzb3VyY2VDb3VudDsKICAgICBlbmNvZGVyIDw8IHN0
YXRpc3RpY3Muc3ViZnJhbWVVbmRlclRvcEZyYW1lT3JpZ2luczsKLSAgICBlbmNvZGVyIDw8IHN0
YXRpc3RpY3Muc3ViZnJhbWVVbmlxdWVSZWRpcmVjdHNUbzsKLSAgICBlbmNvZGVyIDw8IHN0YXRp
c3RpY3Muc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkVG87Ci0gICAgZW5jb2RlciA8PCBzdGF0aXN0
aWNzLnN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb207CiAgICAgCiAgICAgLy8gU3VicmVzb3Vy
Y2Ugc3RhdHMKLSAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3Muc3VicmVzb3VyY2VIYXNCZWVuUmVk
aXJlY3RlZEZyb207Ci0gICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLnN1YnJlc291cmNlSGFzQmVl
blJlZGlyZWN0ZWRUbzsKLSAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3Muc3VicmVzb3VyY2VIYXNC
ZWVuU3VicmVzb3VyY2VDb3VudDsKLSAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3Muc3VicmVzb3Vy
Y2VIYXNCZWVuU3VicmVzb3VyY2VDb3VudERpdmlkZWRCeVRvdGFsTnVtYmVyT2ZPcmlnaW5zVmlz
aXRlZDsKICAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmRlclRvcEZyYW1l
T3JpZ2luczsKICAgICBlbmNvZGVyIDw8IHN0YXRpc3RpY3Muc3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdHNUbzsKICAgICAKICAgICAvLyBQcmV2YWxlbnQgUmVzb3VyY2UKLSAgICBlbmNvZGVyIDw8
IHN0YXRpc3RpY3MucmVkaXJlY3RlZFRvT3RoZXJQcmV2YWxlbnRSZXNvdXJjZU9yaWdpbnM7CiAg
ICAgZW5jb2RlciA8PCBzdGF0aXN0aWNzLmlzUHJldmFsZW50UmVzb3VyY2U7CiAgICAgZW5jb2Rl
ciA8PCBzdGF0aXN0aWNzLmRhdGFSZWNvcmRzUmVtb3ZlZDsKIH0KQEAgLTIyOTYsNjMgKzIyNzYs
MTEgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6UmUKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0
YXRpc3RpY3MuZ3JhbmRmYXRoZXJlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAg
ICAvLyBUb3AgZnJhbWUgc3RhdHMKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpc3RpY3Mu
dG9wRnJhbWVIYXNCZWVuTmF2aWdhdGVkVG9CZWZvcmUpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNzLnRvcEZyYW1lSGFzQmVl
blJlZGlyZWN0ZWRUbykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHN0YXRpc3RpY3MudG9wRnJhbWVIYXNCZWVuUmVkaXJlY3RlZEZyb20pKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0
aXN0aWNzLnRvcEZyYW1lSW5pdGlhbExvYWRDb3VudCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpc3RpY3MudG9wRnJhbWVIYXNCZWVu
TmF2aWdhdGVkVG8pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzdGF0aXN0aWNzLnRvcEZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb20pKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgLy8gU3ViZnJhbWUgc3RhdHMKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHN0YXRpc3RpY3Muc3ViZnJhbWVIYXNCZWVuTG9hZGVkQmVmb3JlKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Rh
dGlzdGljcy5zdWJmcmFtZUhhc0JlZW5SZWRpcmVjdGVkVG8pKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNzLnN1YmZyYW1lSGFz
QmVlblJlZGlyZWN0ZWRGcm9tKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoc3RhdGlzdGljcy5zdWJmcmFtZVN1YlJlc291cmNlQ291bnQpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0
aXN0aWNzLnN1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMpKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpc3RpY3Muc3ViZnJhbWVVbmlxdWVS
ZWRpcmVjdHNUbykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHN0YXRpc3RpY3Muc3ViZnJhbWVIYXNCZWVuTmF2aWdhdGVkVG8pKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNz
LnN1YmZyYW1lSGFzQmVlbk5hdmlnYXRlZEZyb20pKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgCiAgICAgLy8gU3VicmVzb3VyY2Ugc3RhdHMKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0
YXRpc3RpY3Muc3VicmVzb3VyY2VIYXNCZWVuUmVkaXJlY3RlZEZyb20pKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0aXN0aWNzLnN1YnJl
c291cmNlSGFzQmVlblJlZGlyZWN0ZWRUbykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpc3RpY3Muc3VicmVzb3VyY2VIYXNCZWVuU3Vi
cmVzb3VyY2VDb3VudCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHN0YXRpc3RpY3Muc3VicmVzb3VyY2VIYXNCZWVuU3VicmVzb3VyY2VDb3Vu
dERpdmlkZWRCeVRvdGFsTnVtYmVyT2ZPcmlnaW5zVmlzaXRlZCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRpc3RpY3Muc3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lT3JpZ2lucykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjM2
MCw5ICsyMjg4LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgV2ViQ29yZTo6UmUKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIAogICAgIC8vIFByZXZhbGVudCBSZXNvdXJjZQotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoc3RhdGlzdGljcy5yZWRpcmVjdGVkVG9PdGhlclByZXZhbGVudFJlc291cmNlT3JpZ2lu
cykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHN0YXRpc3RpY3MuaXNQcmV2YWxlbnRSZXNvdXJjZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdl
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggOTM4MGJkYzhlMjY3MGU5NmY0
ODE5ODYzOGQ5ZmE2NjJlNzdiMmY1Mi4uYzZmY2FjNmEzMjFmODNlODJjYzgwNzI3N2U2Njc2ZTlj
YjQ2OTMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvU3RvcmFnZS9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0zOSw3ICszOSw3
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotc3Rh
dGljIGNvbnN0IGF1dG8gc3RhdGlzdGljc01vZGVsVmVyc2lvbiA9IDQ7CitzdGF0aWMgY29uc3Qg
YXV0byBzdGF0aXN0aWNzTW9kZWxWZXJzaW9uID0gNTsKIHN0YXRpYyBTZWNvbmRzIHRpbWVUb0xp
dmVVc2VySW50ZXJhY3Rpb24geyAyNF9oICogMzAuIH07CiBzdGF0aWMgU2Vjb25kcyB0aW1lVG9M
aXZlQ29va2llUGFydGl0aW9uRnJlZSB7IDI0X2ggfTsKIHN0YXRpYyBTZWNvbmRzIGdyYW5kZmF0
aGVyaW5nVGltZSB7IDFfaCB9OwpAQCAtMTAyLDIyICsxMDIsMjIgQEAgdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnJlYWREYXRhRnJvbURlY29kZXIoS2V5ZWREZWNvZGVyJiBkZWNv
ZGVyKQogICAgIGlmIChtX3Jlc291cmNlU3RhdGlzdGljc01hcC5zaXplKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIHVuc2lnbmVkIHZlcnNpb247Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZVVJ
bnQzMigidmVyc2lvbiIsIHZlcnNpb24pKQotICAgICAgICB2ZXJzaW9uID0gMTsKLQotICAgIHN0
YXRpYyBjb25zdCBhdXRvIG1pbmltdW1WZXJzaW9uV2l0aEdyYW5kZmF0aGVyaW5nID0gMzsKLSAg
ICBpZiAodmVyc2lvbiA+IG1pbmltdW1WZXJzaW9uV2l0aEdyYW5kZmF0aGVyaW5nKSB7Ci0gICAg
ICAgIGRvdWJsZSBlbmRPZkdyYW5kZmF0aGVyaW5nVGltZXN0YW1wOwotICAgICAgICBpZiAoZGVj
b2Rlci5kZWNvZGVEb3VibGUoImVuZE9mR3JhbmRmYXRoZXJpbmdUaW1lc3RhbXAiLCBlbmRPZkdy
YW5kZmF0aGVyaW5nVGltZXN0YW1wKSkKLSAgICAgICAgICAgIG1fZW5kT2ZHcmFuZGZhdGhlcmlu
Z1RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhlbmRPZkdyYW5kZmF0aGVyaW5n
VGltZXN0YW1wKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9lbmRPZkdyYW5kZmF0aGVy
aW5nVGltZXN0YW1wID0geyB9OwotICAgIH0KKyAgICB1bnNpZ25lZCB2ZXJzaW9uT25EaXNrOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGVVSW50MzIoInZlcnNpb24iLCB2ZXJzaW9uT25EaXNrKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHZlcnNpb25PbkRpc2sgIT0gc3RhdGlzdGljc01v
ZGVsVmVyc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgZG91YmxlIGVuZE9mR3JhbmRmYXRo
ZXJpbmdUaW1lc3RhbXA7CisgICAgaWYgKGRlY29kZXIuZGVjb2RlRG91YmxlKCJlbmRPZkdyYW5k
ZmF0aGVyaW5nVGltZXN0YW1wIiwgZW5kT2ZHcmFuZGZhdGhlcmluZ1RpbWVzdGFtcCkpCisgICAg
ICAgIG1fZW5kT2ZHcmFuZGZhdGhlcmluZ1RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhlbmRPZkdyYW5kZmF0aGVyaW5nVGltZXN0YW1wKTsKKyAgICBlbHNlCisgICAgICAgIG1f
ZW5kT2ZHcmFuZGZhdGhlcmluZ1RpbWVzdGFtcCA9IHsgfTsKIAogICAgIFZlY3RvcjxSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzPiBsb2FkZWRTdGF0aXN0aWNzOwotICAgIGJvb2wgc3VjY2VlZGVkID0g
ZGVjb2Rlci5kZWNvZGVPYmplY3RzKCJicm93c2luZ1N0YXRpc3RpY3MiLCBsb2FkZWRTdGF0aXN0
aWNzLCBbdmVyc2lvbl0oS2V5ZWREZWNvZGVyJiBkZWNvZGVySW5uZXIsIFJlc291cmNlTG9hZFN0
YXRpc3RpY3MmIHN0YXRpc3RpY3MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpc3RpY3MuZGVjb2Rl
KGRlY29kZXJJbm5lciwgdmVyc2lvbik7CisgICAgYm9vbCBzdWNjZWVkZWQgPSBkZWNvZGVyLmRl
Y29kZU9iamVjdHMoImJyb3dzaW5nU3RhdGlzdGljcyIsIGxvYWRlZFN0YXRpc3RpY3MsIFtdKEtl
eWVkRGVjb2RlciYgZGVjb2RlcklubmVyLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBzdGF0aXN0
aWNzKSB7CisgICAgICAgIHJldHVybiBzdGF0aXN0aWNzLmRlY29kZShkZWNvZGVySW5uZXIpOwog
ICAgIH0pOwogCiAgICAgaWYgKCFzdWNjZWVkZWQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>