<?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>211082</bug_id>
          
          <creation_ts>2020-04-27 09:48:14 -0700</creation_ts>
          <short_desc>Rename CSSAnimationController accessors from animation() to legacyAnimation()</short_desc>
          <delta_ts>2020-05-10 02:00:34 -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>Animations</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="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1646059</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-27 09:48:14 -0700</bug_when>
    <thetext>Rename CSSAnimationController accessors from animation() to legacyAnimation()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646064</commentid>
    <comment_count>1</comment_count>
      <attachid>397692</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-27 09:50:24 -0700</bug_when>
    <thetext>Created attachment 397692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646085</commentid>
    <comment_count>2</comment_count>
      <attachid>397697</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-27 10:32:24 -0700</bug_when>
    <thetext>Created attachment 397697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646179</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-27 13:47:26 -0700</bug_when>
    <thetext>Committed r260774: &lt;https://trac.webkit.org/changeset/260774&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646181</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-27 13:48:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/62467071&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651002</commentid>
    <comment_count>5</comment_count>
      <attachid>397697</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-09 16:55:16 -0700</bug_when>
    <thetext>Comment on attachment 397697
Patch

Will we ever be deleting this, or will it be around indefinitely with the name &quot;legacyAnimation&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651067</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-10 02:00:34 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Comment on attachment 397697 [details]
&gt; Patch
&gt; 
&gt; Will we ever be deleting this, or will it be around indefinitely with the
&gt; name &quot;legacyAnimation&quot;?

We will absolutely be deleting this at the first opportunity. We are only keeping this code around for the ability to A/B test regressions on ToT for a while longer, but this is a few months at best.

I am eagerly awaiting the opportunity to rip out CSSAnimationController and all related code.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397692</attachid>
            <date>2020-04-27 09:50:24 -0700</date>
            <delta_ts>2020-04-27 10:32:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211082-20200427185022.patch</filename>
            <type>text/plain</type>
            <size>32776</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc0M2JmMDM5YWQwNDEz
NWJkZmY0MmI1ODA0NzZjMTFjOTBkZjI2Mi4uM2JkYTFhOTYyNzllNDE4YWIwNzMwODI2Y2ZkYjUy
NGUxYjI2ZWEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIwLTA0LTI3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIENTU0FuaW1h
dGlvbkNvbnRyb2xsZXIgYWNjZXNzb3JzIGZyb20gYW5pbWF0aW9uKCkgdG8gbGVnYWN5QW5pbWF0
aW9uKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MTA4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
b21wdXRlUmVuZGVyU3R5bGVGb3JQcm9wZXJ0eSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmRpZEJlY29tZUN1cnJlbnREb2N1bWVudEluRnJhbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnByZXBhcmVGb3JEZXN0cnVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6aW1wbGljaXRDbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6cmVzdW1lKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKToKKyAgICAgICAgKiBkb20vUHNl
dWRvRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQc2V1ZG9FbGVtZW50OjpjbGVhckhv
c3RFbGVtZW50KToKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZEZyYW1lOjpkZXN0cm95KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpjbGVhclRpbWVycyk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZTo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMpOgorICAgICAg
ICAqIHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZERlc3Ryb3lSZW5kZXJUcmVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSk6
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91dCk6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmhhbmRsZUxvd01vZGVQb3dlckNoYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRJc1Zpc2libGVJbnRlcm5hbCk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpoaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvblN0YXRl
Q2hhbmdlZCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6
dXBkYXRlVGhyb3R0bGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbkNv
bnRyb2xsZXJQcml2YXRlOjpzdXNwZW5kQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6cmVzdW1lQW5pbWF0aW9ucyk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpjdXJyZW50VHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JBbmltYXRpb24g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjppc1J1bm5p
bmdUcmFuc2Zvcm1BbmltYXRpb24gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJP
YmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bGVnYWN5QW5pbWF0aW9u
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YW5pbWF0aW9uIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OnRlYXJEb3duUmVu
ZGVyZXJzKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRh
dGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6YW5pbWF0aW9uc0FyZVN1c3BlbmRlZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OmFuaW1hdGlvbnNJbnRlcnZhbCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OnN1c3BlbmRBbmltYXRpb25zIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6cmVzdW1lQW5pbWF0aW9ucyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OnBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6cGF1c2VBbmltYXRpb25BdFRpbWVPblBzZXVkb0VsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYXVzZVRyYW5zaXRpb25BdFRpbWVP
bkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYXVzZVRyYW5zaXRpb25B
dFRpbWVPblBzZXVkb0VsZW1lbnQpOgorCiAyMDIwLTA0LTI3ICBEaWVnbyBQaW5vIEdhcmNpYSAg
PGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjA2
NzIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYzg4YmM5ZjU4ZGIzYmVmNWViYTYy
OTExODM4NzI1YmMyMTU5MmE1MC4uMDY2MDE5NzZmZjgxNTczZGI3MzlkMjQ4MmU3ZGFkZjdlNTIx
OTIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIw
LTA0LTI3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVu
YW1lIENTU0FuaW1hdGlvbkNvbnRyb2xsZXIgYWNjZXNzb3JzIGZyb20gYW5pbWF0aW9uKCkgdG8g
bGVnYWN5QW5pbWF0aW9uKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxMTA4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorCiAyMDIwLTA0LTI2ICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIHN0b3AgdXNpbmcgb3V0IGFy
Z3VtZW50cyBmb3IgZG9jdW1lbnQgYXR0cmlidXRlcyB3aGVuIGNvbnZlcnRpbmcgdG8gYXR0cmli
dXRlZCBzdHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCmluZGV4IGY1NjFkYTRmYzU4OWJmOWMyZTJiNmE3ZjdjZWFmZmQyYmQ5
MDEyM2QuLjI5YTI5NTBhM2Q1NzRkOTcxMjcxNWU5M2ZkZjAyOTNhOTE1M2QwNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBA
IC0yMjI3LDcgKzIyMjcsNyBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IFJlbmRlclN0eWxlKiBjb21w
dXRlUmVuZGVyU3R5bGVGb3JQcm9wZXJ0eShFbGVtZW50JiBlbGVtZW50LAogICAgICAgICBpZiAo
YXV0byB0aW1lbGluZSA9IGVsZW1lbnQuZG9jdW1lbnQoKS5leGlzdGluZ1RpbWVsaW5lKCkpCiAg
ICAgICAgICAgICBvd25lZFN0eWxlID0gdGltZWxpbmUtPmFuaW1hdGVkU3R5bGVGb3JSZW5kZXJl
cigqcmVuZGVyZXIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBvd25lZFN0eWxlID0gcmVu
ZGVyZXItPmFuaW1hdGlvbigpLmFuaW1hdGVkU3R5bGVGb3JSZW5kZXJlcigqcmVuZGVyZXIpOwor
ICAgICAgICAgICAgb3duZWRTdHlsZSA9IHJlbmRlcmVyLT5sZWdhY3lBbmltYXRpb24oKS5hbmlt
YXRlZFN0eWxlRm9yUmVuZGVyZXIoKnJlbmRlcmVyKTsKICAgICAgICAgaWYgKHBzZXVkb0VsZW1l
bnRTcGVjaWZpZXIgIT0gUHNldWRvSWQ6Ok5vbmUgJiYgIWVsZW1lbnQuaXNQc2V1ZG9FbGVtZW50
KCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNhY2hlZCBwc2V1ZG8gc3R5bGUgd2ls
bCBvbmx5IGV4aXN0IGlmIHRoZSBhbmltYXRpb24gaGFzIGJlZW4gcnVuIGF0IGxlYXN0IG9uY2Uu
CiAgICAgICAgICAgICByZXR1cm4gb3duZWRTdHlsZS0+Z2V0Q2FjaGVkUHNldWRvU3R5bGUocHNl
dWRvRWxlbWVudFNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBjNGU2OWVm
ZjNjMjBmMmIxZDNlYjVmN2I2YzdkZGU0ZDgzMzEzN2U1Li4zMDY1ODRkYjVkYzcwZjJmYjZlZWNi
MmRlN2JlOTUxNGVjMzVkYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE5NDEsNyAr
MTk0MSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5
cGUpCiAgICAgVHJhY2VTY29wZSB0cmFjaW5nU2NvcGUoU3R5bGVSZWNhbGNTdGFydCwgU3R5bGVS
ZWNhbGNFbmQpOwogCiAgICAgUmVuZGVyVmlldzo6UmVwYWludFJlZ2lvbkFjY3VtdWxhdG9yIHJl
cGFpbnRSZWdpb25BY2N1bXVsYXRvcihyZW5kZXJWaWV3KCkpOwotICAgIEFuaW1hdGlvblVwZGF0
ZUJsb2NrIGFuaW1hdGlvblVwZGF0ZUJsb2NrKCZtX2ZyYW1lLT5hbmltYXRpb24oKSk7CisgICAg
QW5pbWF0aW9uVXBkYXRlQmxvY2sgYW5pbWF0aW9uVXBkYXRlQmxvY2soJm1fZnJhbWUtPmxlZ2Fj
eUFuaW1hdGlvbigpKTsKIAogICAgIC8vIEZJWE1FOiBEbyB0aGlzIHVwZGF0ZSBwZXIgdHJlZSBz
Y29wZS4KICAgICB7CkBAIC0yNDAzLDcgKzI0MDMsNyBAQCB2b2lkIERvY3VtZW50OjpkaWRCZWNv
bWVDdXJyZW50RG9jdW1lbnRJbkZyYW1lKCkKICAgICAgICAgICAgIGlmIChhdXRvKiB0aW1lbGlu
ZSA9IGV4aXN0aW5nVGltZWxpbmUoKSkKICAgICAgICAgICAgICAgICB0aW1lbGluZS0+c3VzcGVu
ZEFuaW1hdGlvbnMoKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2ZyYW1lLT5hbmlt
YXRpb24oKS5zdXNwZW5kQW5pbWF0aW9uc0ZvckRvY3VtZW50KHRoaXMpOworICAgICAgICAgICAg
bV9mcmFtZS0+bGVnYWN5QW5pbWF0aW9uKCkuc3VzcGVuZEFuaW1hdGlvbnNGb3JEb2N1bWVudCh0
aGlzKTsKICAgICAgICAgc3VzcGVuZFNjaGVkdWxlZFRhc2tzKFJlYXNvbkZvclN1c3BlbnNpb246
OlBhZ2VXaWxsQmVTdXNwZW5kZWQpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJlc3VtZVNjaGVk
dWxlZFRhc2tzKFJlYXNvbkZvclN1c3BlbnNpb246OlBhZ2VXaWxsQmVTdXNwZW5kZWQpOwpAQCAt
MjQxMSw3ICsyNDExLDcgQEAgdm9pZCBEb2N1bWVudDo6ZGlkQmVjb21lQ3VycmVudERvY3VtZW50
SW5GcmFtZSgpCiAgICAgICAgICAgICBpZiAoYXV0byogdGltZWxpbmUgPSBleGlzdGluZ1RpbWVs
aW5lKCkpCiAgICAgICAgICAgICAgICAgdGltZWxpbmUtPnJlc3VtZUFuaW1hdGlvbnMoKTsKICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2ZyYW1lLT5hbmltYXRpb24oKS5yZXN1bWVBbmlt
YXRpb25zRm9yRG9jdW1lbnQodGhpcyk7CisgICAgICAgICAgICBtX2ZyYW1lLT5sZWdhY3lBbmlt
YXRpb24oKS5yZXN1bWVBbmltYXRpb25zRm9yRG9jdW1lbnQodGhpcyk7CiAgICAgfQogfQogCkBA
IC0yNTA2LDcgKzI1MDYsNyBAQCB2b2lkIERvY3VtZW50OjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24o
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9mcmFtZSkKLSAgICAgICAgbV9mcmFtZS0+
YW5pbWF0aW9uKCkuZGV0YWNoRnJvbURvY3VtZW50KHRoaXMpOworICAgICAgICBtX2ZyYW1lLT5s
ZWdhY3lBbmltYXRpb24oKS5kZXRhY2hGcm9tRG9jdW1lbnQodGhpcyk7CiAKICNpZiBVU0UoTElC
V0VCUlRDKQogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBtb3ZlZCB0byBNb2R1bGVzL21l
ZGlhc3RyZWFtLgpAQCAtMzA0MSw3ICszMDQxLDcgQEAgdm9pZCBEb2N1bWVudDo6aW1wbGljaXRD
bG9zZSgpCiAgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IGxvYWRlcigpKQogICAg
ICAgICAgICAgZG9jdW1lbnRMb2FkZXItPnN0YXJ0SWNvbkxvYWRpbmcoKTsKIAotICAgICAgICBm
LT5hbmltYXRpb24oKS5zdGFydEFuaW1hdGlvbnNJZk5vdFN1c3BlbmRlZCh0aGlzKTsKKyAgICAg
ICAgZi0+bGVnYWN5QW5pbWF0aW9uKCkuc3RhcnRBbmltYXRpb25zSWZOb3RTdXNwZW5kZWQodGhp
cyk7CiAKICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBiZSBkaXNwYXRjaGluZyBwZW5k
aW5nIGV2ZW50cyBnbG9iYWxseSBvbiBhbGwgRG9jdW1lbnRzIGhlcmUuCiAgICAgICAgIC8vIEZv
ciBub3csIG9ubHkgZG8gdGhpcyB3aGVuIHRoZXJlIGlzIGEgRnJhbWUsIG90aGVyd2lzZSB0aGlz
IGNvdWxkIGNhdXNlIEpTIHJlZW50cmFuY3kKQEAgLTUzNjksNyArNTM2OSw3IEBAIHZvaWQgRG9j
dW1lbnQ6OnJlc3VtZShSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKICAgICAgICAgaWYgKGF1
dG8qIHRpbWVsaW5lID0gZXhpc3RpbmdUaW1lbGluZSgpKQogICAgICAgICAgICAgdGltZWxpbmUt
PnJlc3VtZUFuaW1hdGlvbnMoKTsgIAogICAgIH0gZWxzZQotICAgICAgICBtX2ZyYW1lLT5hbmlt
YXRpb24oKS5yZXN1bWVBbmltYXRpb25zRm9yRG9jdW1lbnQodGhpcyk7CisgICAgICAgIG1fZnJh
bWUtPmxlZ2FjeUFuaW1hdGlvbigpLnJlc3VtZUFuaW1hdGlvbnNGb3JEb2N1bWVudCh0aGlzKTsK
IAogICAgIHJlc3VtZVNjaGVkdWxlZFRhc2tzKHJlYXNvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAppbmRleCAxZmYyM2UxNjBiOTE4YWIxY2RjNTBlOGMzZjc2MWM4ZDFjYTQyYTBkLi4wYjVhZjJm
NzQ2Nzk0NzJiMWNkZDVlZGZjYzVlNGIyZTlmOTI3MmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC0yMjQzLDcgKzIyNDMsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0b3Io
UmVtb3ZhbFR5cGUgcmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmIG9sZFBhcgogICAgICAgICB0
aW1lbGluZS0+ZWxlbWVudFdhc1JlbW92ZWQoKnRoaXMpOwogCiAgICAgaWYgKGZyYW1lKQotICAg
ICAgICBmcmFtZS0+YW5pbWF0aW9uKCkuY2FuY2VsQW5pbWF0aW9ucygqdGhpcyk7CisgICAgICAg
IGZyYW1lLT5sZWdhY3lBbmltYXRpb24oKS5jYW5jZWxBbmltYXRpb25zKCp0aGlzKTsKIAogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qc2V1ZG9FbGVtZW50LmNwcAppbmRleCBlODRjMjI5YjM5N2JkNWJlOTBkZmFhOGJiOGZj
ZWU5MWIzZGQ4MTlkLi4xNWQ4MWMxMDZkODA5MzUzZjIxYmU3ZWM4NDgzZGQ4OGI3NjI4YjM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCkBAIC05NCw3ICs5NCw3IEBAIHZvaWQg
UHNldWRvRWxlbWVudDo6Y2xlYXJIb3N0RWxlbWVudCgpCiAgICAgICAgIHRpbWVsaW5lLT5lbGVt
ZW50V2FzUmVtb3ZlZCgqdGhpcyk7CiAgICAgCiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1l
bnQoKS5mcmFtZSgpKQotICAgICAgICBmcmFtZS0+YW5pbWF0aW9uKCkuY2FuY2VsQW5pbWF0aW9u
cygqdGhpcyk7CisgICAgICAgIGZyYW1lLT5sZWdhY3lBbmltYXRpb24oKS5jYW5jZWxBbmltYXRp
b25zKCp0aGlzKTsKIAogICAgIG1faG9zdEVsZW1lbnQgPSBudWxscHRyOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAppbmRleCBhODdkM2U1MDQ4ZTQ2YzQzZGZhZmFmMzky
MDczM2ZiNzM4ZTFhMWU5Li41NWU0MWI3YWY1ZGM1YjlmNzFlZTdmOWFlZDZjZjYzZmNhMzBhMjEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcApAQCAtMjc5LDcgKzI3OSw3
IEBAIHZvaWQgQ2FjaGVkRnJhbWU6OmRlc3Ryb3koKQogCiAgICAgRnJhbWU6OmNsZWFyVGltZXJz
KG1fdmlldy5nZXQoKSwgbV9kb2N1bWVudC5nZXQoKSk7CiAKLSAgICBtX3ZpZXctPmZyYW1lKCku
YW5pbWF0aW9uKCkuZGV0YWNoRnJvbURvY3VtZW50KG1fZG9jdW1lbnQuZ2V0KCkpOworICAgIG1f
dmlldy0+ZnJhbWUoKS5sZWdhY3lBbmltYXRpb24oKS5kZXRhY2hGcm9tRG9jdW1lbnQobV9kb2N1
bWVudC5nZXQoKSk7CiAKICAgICAvLyBGSVhNRTogV2h5IGRvIHdlIG5lZWQgdG8gY2FsbCByZW1v
dmVBbGxFdmVudExpc3RlbmVycyBoZXJlPyBXaGVuIHRoZSBkb2N1bWVudCBpcyBpbiBiYWNrL2Zv
cndhcmQgY2FjaGUsIHRoaXMgbWV0aG9kIHdvbid0IHdvcmsKICAgICAvLyBmdWxseSBhbnl3YXks
IGJlY2F1c2UgdGhlIGRvY3VtZW50IHdvbid0IGJlIGFibGUgdG8gYWNjZXNzIGl0cyBET01XaW5k
b3cgb2JqZWN0IChkdWUgdG8gYmVpbmcgZnJhbWVsZXNzKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5k
ZXggMzg1ZTM3YTZkMGM5MGU2MzNhM2I3YjQyODcyYzYxNmUzODA4NjQyNi4uMWE2MDg5NjYzNDZk
MTM2ODJiOTNiOTBkMjZjNzc5YzIyZGZiY2YxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTcy
Myw3ICs3MjMsNyBAQCB2b2lkIEZyYW1lOjpjbGVhclRpbWVycyhGcmFtZVZpZXcgKnZpZXcsIERv
Y3VtZW50ICpkb2N1bWVudCkKICAgICAgICAgICAgIGlmIChhdXRvKiB0aW1lbGluZSA9IGRvY3Vt
ZW50LT5leGlzdGluZ1RpbWVsaW5lKCkpCiAgICAgICAgICAgICAgICAgdGltZWxpbmUtPnN1c3Bl
bmRBbmltYXRpb25zKCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgdmlldy0+ZnJhbWUo
KS5hbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9uc0ZvckRvY3VtZW50KGRvY3VtZW50KTsKKyAg
ICAgICAgICAgIHZpZXctPmZyYW1lKCkubGVnYWN5QW5pbWF0aW9uKCkuc3VzcGVuZEFuaW1hdGlv
bnNGb3JEb2N1bWVudChkb2N1bWVudCk7CiAgICAgICAgIHZpZXctPmZyYW1lKCkuZXZlbnRIYW5k
bGVyKCkuc3RvcEF1dG9zY3JvbGxUaW1lcigpOwogICAgIH0KIH0KQEAgLTEwMTgsNyArMTAxOCw3
IEBAIHZvaWQgRnJhbWU6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCkKICAg
ICAgICAgaWYgKGF1dG8qIHRpbWVsaW5lID0gbV9kb2MtPmV4aXN0aW5nVGltZWxpbmUoKSkKICAg
ICAgICAgICAgIHRpbWVsaW5lLT5yZXN1bWVBbmltYXRpb25zKCk7CiAgICAgfSBlbHNlCi0gICAg
ICAgIGFuaW1hdGlvbigpLnJlc3VtZUFuaW1hdGlvbnNGb3JEb2N1bWVudChtX2RvYy5nZXQoKSk7
CisgICAgICAgIGxlZ2FjeUFuaW1hdGlvbigpLnJlc3VtZUFuaW1hdGlvbnNGb3JEb2N1bWVudCht
X2RvYy5nZXQoKSk7CiAgICAgaWYgKG1fdmlldykKICAgICAgICAgbV92aWV3LT5sYXlvdXRDb250
ZXh0KCkuc2NoZWR1bGVMYXlvdXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCBmMmFlMDc4NmFm
ZGUxNTExYzIxYzcyMDk2OTBjZDU0MzRmMDM1OTFmLi5lOWNhYjNjYzBmOWVjYmRhMWMxMTgyZTNh
YTc1ZDRjNWM2YTJlYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0xNzIsOCArMTcyLDggQEAgcHVi
bGljOgogICAgIEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSB7IHJldHVybiBtX3NlbGVjdGlv
bjsgfQogICAgIGNvbnN0IEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVy
biBtX3NlbGVjdGlvbjsgfQogICAgIEZyYW1lVHJlZSYgdHJlZSgpIGNvbnN0OwotICAgIENTU0Fu
aW1hdGlvbkNvbnRyb2xsZXImIGFuaW1hdGlvbigpIHsgcmV0dXJuIG1fYW5pbWF0aW9uQ29udHJv
bGxlcjsgfQotICAgIGNvbnN0IENTU0FuaW1hdGlvbkNvbnRyb2xsZXImIGFuaW1hdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fYW5pbWF0aW9uQ29udHJvbGxlcjsgfQorICAgIENTU0FuaW1hdGlvbkNv
bnRyb2xsZXImIGxlZ2FjeUFuaW1hdGlvbigpIHsgcmV0dXJuIG1fYW5pbWF0aW9uQ29udHJvbGxl
cjsgfQorICAgIGNvbnN0IENTU0FuaW1hdGlvbkNvbnRyb2xsZXImIGxlZ2FjeUFuaW1hdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW9uQ29udHJvbGxlcjsgfQogICAgIFNjcmlwdENvbnRy
b2xsZXImIHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0OyB9CiAgICAgY29uc3QgU2NyaXB0Q29u
dHJvbGxlciYgc2NyaXB0KCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHQ7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCmluZGV4IGVlNWU1M2E3NGQ3ZDZhYjdjMDVmOGI0YzhmMDAwNzAzZDJi
NjJmYTQuLjI1ZmU5M2E4ZGUyMGFhNjU3OTQ2OTY2NjA3NjM2YzBiNDc5ODYzNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTU5MCw3ICs1OTAsNyBAQCB2b2lkIEZyYW1lVmlldzo6
ZGlkRGVzdHJveVJlbmRlclRyZWUoKQogICAgIEFTU0VSVCghbV92aWV3cG9ydENvbnN0cmFpbmVk
T2JqZWN0cyB8fCBtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzLT5jb21wdXRlc0VtcHR5KCkp
OwogICAgIEFTU0VSVCghbV9zbG93UmVwYWludE9iamVjdHMgfHwgbV9zbG93UmVwYWludE9iamVj
dHMtPmNvbXB1dGVzRW1wdHkoKSk7CiAKLSAgICBBU1NFUlQoIWZyYW1lKCkuYW5pbWF0aW9uKCku
aGFzQW5pbWF0aW9ucygpKTsKKyAgICBBU1NFUlQoIWZyYW1lKCkubGVnYWN5QW5pbWF0aW9uKCku
aGFzQW5pbWF0aW9ucygpKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnNldENvbnRlbnRzU2l6ZShj
b25zdCBJbnRTaXplJiBzaXplKQpAQCAtNDM3Miw3ICs0MzcyLDcgQEAgdm9pZCBGcmFtZVZpZXc6
OnVwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUoKQogICAgIC8vIFN0eWxlIHVw
ZGF0ZXMgY2FuIHRyaWdnZXIgc2NyaXB0LCB3aGljaCBjYW4gY2F1c2UgdGhpcyBGcmFtZVZpZXcg
dG8gYmUgZGVzdHJveWVkLgogICAgIFJlZjxGcmFtZVZpZXc+IHByb3RlY3RlZFRoaXMoKnRoaXMp
OwogCi0gICAgQW5pbWF0aW9uVXBkYXRlQmxvY2sgYW5pbWF0aW9uVXBkYXRlQmxvY2soJmZyYW1l
KCkuYW5pbWF0aW9uKCkpOworICAgIEFuaW1hdGlvblVwZGF0ZUJsb2NrIGFuaW1hdGlvblVwZGF0
ZUJsb2NrKCZmcmFtZSgpLmxlZ2FjeUFuaW1hdGlvbigpKTsKIAogICAgIHVzaW5nIERlc2NlbmRh
bnRzRGVxdWUgPSBEZXF1ZTxSZWY8RnJhbWVWaWV3PiwgMTY+OwogICAgIGF1dG8gbmV4dFJlbmRl
cmVkRGVzY2VuZGFudCA9IFt0aGlzXSAoRGVzY2VuZGFudHNEZXF1ZSYgZGVzY2VuZGFudHNEZXF1
ZSkgLT4gUmVmUHRyPEZyYW1lVmlldz4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3TGF5b3V0Q29udGV4dC5jcHAKaW5kZXggYzMwNGNmMWNlMTZlMDZhNGYwNTM2NzFmYmE3OGNl
MGZjZTg2MzdlMS4uMzQxNDdmYmFhYzExNTQxYTRhMGUzNGUzMmZiYjQ3NTE5MjVhNTIzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCkBAIC0y
MDQsNyArMjA0LDcgQEAgdm9pZCBGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpsYXlvdXQoKQogICAg
IExheW91dFNjb3BlIGxheW91dFNjb3BlKCp0aGlzKTsKICAgICBUcmFjZVNjb3BlIHRyYWNpbmdT
Y29wZShMYXlvdXRTdGFydCwgTGF5b3V0RW5kKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxMYXlvdXQodmlldygpLmZyYW1lKCkpOwotICAgIEFuaW1hdGlvblVwZGF0ZUJsb2Nr
IGFuaW1hdGlvblVwZGF0ZUJsb2NrKCZ2aWV3KCkuZnJhbWUoKS5hbmltYXRpb24oKSk7CisgICAg
QW5pbWF0aW9uVXBkYXRlQmxvY2sgYW5pbWF0aW9uVXBkYXRlQmxvY2soJnZpZXcoKS5mcmFtZSgp
LmxlZ2FjeUFuaW1hdGlvbigpKTsKICAgICBXZWFrUHRyPFJlbmRlckVsZW1lbnQ+IGxheW91dFJv
b3Q7CiAgICAgCiAgICAgbV9sYXlvdXRUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRl
eCBlZTE5NjcxODQ2MjZhYWU5NTMwYjEzOTg1ZDhlYTdhZWM4YzdiODBiLi4wNmZjMDIyMGRmNjMx
MGY1MTA4YTYyNzc2NDBjZjkxZDYzNjc4NzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE0ODcs
NyArMTQ4Nyw3IEBAIHZvaWQgUGFnZTo6aGFuZGxlTG93TW9kZVBvd2VyQ2hhbmdlKGJvb2wgaXNM
b3dQb3dlck1vZGVFbmFibGVkKQogICAgICAgICAgICAgICAgIHRpbWVsaW5lLT51cGRhdGVUaHJv
dHRsaW5nU3RhdGUoKTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlCi0gICAgICAgIG1haW5GcmFt
ZSgpLmFuaW1hdGlvbigpLnVwZGF0ZVRocm90dGxpbmdTdGF0ZSgpOworICAgICAgICBtYWluRnJh
bWUoKS5sZWdhY3lBbmltYXRpb24oKS51cGRhdGVUaHJvdHRsaW5nU3RhdGUoKTsKICAgICB1cGRh
dGVET01UaW1lckFsaWdubWVudEludGVydmFsKCk7CiB9CiAKQEAgLTIwMzMsNyArMjAzMyw3IEBA
IHZvaWQgUGFnZTo6c2V0SXNWaXNpYmxlSW50ZXJuYWwoYm9vbCBpc1Zpc2libGUpCiAgICAgICAg
ICAgICAgICAgICAgICAgICB0aW1lbGluZS0+cmVzdW1lQW5pbWF0aW9ucygpOwogICAgICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgbWFpbkZyYW1l
KCkuYW5pbWF0aW9uKCkucmVzdW1lQW5pbWF0aW9ucygpOworICAgICAgICAgICAgICAgIG1haW5G
cmFtZSgpLmxlZ2FjeUFuaW1hdGlvbigpLnJlc3VtZUFuaW1hdGlvbnMoKTsKICAgICAgICAgfQog
CiAgICAgICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CkBAIC0y
MDU3LDcgKzIwNTcsNyBAQCB2b2lkIFBhZ2U6OnNldElzVmlzaWJsZUludGVybmFsKGJvb2wgaXNW
aXNpYmxlKQogICAgICAgICAgICAgICAgICAgICAgICAgdGltZWxpbmUtPnN1c3BlbmRBbmltYXRp
b25zKCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgICAgICBtYWluRnJhbWUoKS5hbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9ucygpOworICAg
ICAgICAgICAgICAgIG1haW5GcmFtZSgpLmxlZ2FjeUFuaW1hdGlvbigpLnN1c3BlbmRBbmltYXRp
b25zKCk7CiAgICAgICAgIH0KIAogICAgICAgICBmb3JFYWNoRG9jdW1lbnQoW10gKERvY3VtZW50
JiBkb2N1bWVudCkgewpAQCAtMjQxMyw5ICsyNDEzLDkgQEAgdm9pZCBQYWdlOjpoaWRkZW5QYWdl
Q1NTQW5pbWF0aW9uU3VzcGVuc2lvblN0YXRlQ2hhbmdlZCgpCiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChtX3NldHRpbmdzLT5oaWRkZW5QYWdlQ1NT
QW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWQoKSkKLSAgICAgICAgICAgICAgICBtYWluRnJhbWUo
KS5hbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9ucygpOworICAgICAgICAgICAgICAgIG1haW5G
cmFtZSgpLmxlZ2FjeUFuaW1hdGlvbigpLnN1c3BlbmRBbmltYXRpb25zKCk7CiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgbWFpbkZyYW1lKCkuYW5pbWF0aW9uKCkucmVzdW1lQW5p
bWF0aW9ucygpOworICAgICAgICAgICAgICAgIG1haW5GcmFtZSgpLmxlZ2FjeUFuaW1hdGlvbigp
LnJlc3VtZUFuaW1hdGlvbnMoKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAK
aW5kZXggMTFkYjA2MDA1YzMwOTY1MWJjMGQ3YTVjN2M5OTM3YjdhY2VkMjA0Ny4uMDAyYWM5ZGE3
OGQzMjZjNTg0MTUyZjIzOWYyN2RlODM0MTJmNjE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTMy
MCw3ICszMjAsNyBAQCB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjp1cGRhdGVU
aHJvdHRsaW5nU3RhdGUoKQogICAgIHVwZGF0ZUFuaW1hdGlvblRpbWVyKCk7CiAKICAgICBmb3Ig
KGF1dG8qIGNoaWxkRnJhbWUgPSBtX2ZyYW1lLnRyZWUoKS5maXJzdENoaWxkKCk7IGNoaWxkRnJh
bWU7IGNoaWxkRnJhbWUgPSBjaGlsZEZyYW1lLT50cmVlKCkubmV4dFNpYmxpbmcoKSkKLSAgICAg
ICAgY2hpbGRGcmFtZS0+YW5pbWF0aW9uKCkudXBkYXRlVGhyb3R0bGluZ1N0YXRlKCk7CisgICAg
ICAgIGNoaWxkRnJhbWUtPmxlZ2FjeUFuaW1hdGlvbigpLnVwZGF0ZVRocm90dGxpbmdTdGF0ZSgp
OwogfQogCiBTZWNvbmRzIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphbmltYXRpb25J
bnRlcnZhbCgpIGNvbnN0CkBAIC0zNDAsNyArMzQwLDcgQEAgdm9pZCBDU1NBbmltYXRpb25Db250
cm9sbGVyUHJpdmF0ZTo6c3VzcGVuZEFuaW1hdGlvbnMoKQogCiAgICAgLy8gVHJhdmVyc2Ugc3Vi
ZnJhbWVzCiAgICAgZm9yIChGcmFtZSogY2hpbGQgPSBtX2ZyYW1lLnRyZWUoKS5maXJzdENoaWxk
KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCkubmV4dFNpYmxpbmcoKSkKLSAgICAgICAg
Y2hpbGQtPmFuaW1hdGlvbigpLnN1c3BlbmRBbmltYXRpb25zKCk7CisgICAgICAgIGNoaWxkLT5s
ZWdhY3lBbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9ucygpOwogCiAgICAgbV9pc1N1c3BlbmRl
ZCA9IHRydWU7CiB9CkBAIC0zNTQsNyArMzU0LDcgQEAgdm9pZCBDU1NBbmltYXRpb25Db250cm9s
bGVyUHJpdmF0ZTo6cmVzdW1lQW5pbWF0aW9ucygpCiAKICAgICAvLyBUcmF2ZXJzZSBzdWJmcmFt
ZXMKICAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IG1fZnJhbWUudHJlZSgpLmZpcnN0Q2hpbGQoKTsg
Y2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGluZygpKQotICAgICAgICBjaGls
ZC0+YW5pbWF0aW9uKCkucmVzdW1lQW5pbWF0aW9ucygpOworICAgICAgICBjaGlsZC0+bGVnYWN5
QW5pbWF0aW9uKCkucmVzdW1lQW5pbWF0aW9ucygpOwogCiAgICAgbV9pc1N1c3BlbmRlZCA9IGZh
bHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNzgz
NzQ2ZjQ1NjIwMjg0YmE5OGRjOThhNmUyM2I4NTI5NDNiYjBlMC4uMTRkMTljZmVmOTIxM2VkN2Mz
M2M2OTUwMDlhNzA4OWUwMDI0ZDAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCkBAIC0xMzU5LDkgKzEzNTksOSBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBSZW5k
ZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybShSZW5kZXJTdHlsZTo6QXBwbHlUcmFuc2Zvcm1Pcgog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHJlbmRl
cmVyKCkuYW5pbWF0aW9uKCkuaXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25PblJlbmRlcmVy
KHJlbmRlcmVyKCksIENTU1Byb3BlcnR5VHJhbnNmb3JtKSkgeworICAgICAgICBpZiAocmVuZGVy
ZXIoKS5sZWdhY3lBbmltYXRpb24oKS5pc1J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbk9uUmVu
ZGVyZXIocmVuZGVyZXIoKSwgQ1NTUHJvcGVydHlUcmFuc2Zvcm0pKSB7CiAgICAgICAgICAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBjdXJyVHJhbnNmb3JtOwotICAgICAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IHJlbmRlcmVyKCkuYW5pbWF0aW9uKCkuYW5pbWF0
ZWRTdHlsZUZvclJlbmRlcmVyKHJlbmRlcmVyKCkpOworICAgICAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IHJlbmRlcmVyKCkubGVnYWN5QW5pbWF0aW9uKCkuYW5p
bWF0ZWRTdHlsZUZvclJlbmRlcmVyKHJlbmRlcmVyKCkpOwogICAgICAgICAgICAgTGF5b3V0U2l6
ZSBvZmZzZXRGcm9tUm9vdDsKICAgICAgICAgICAgIGF1dG8gY29tcHV0ZWRSZWZlcmVuY2VCb3gg
PSBjb21wdXRlUmVmZXJlbmNlQm94KHJlbmRlcmVyKCksIHRyYW5zZm9ybUJveFRvQ1NTQm94VHlw
ZShzdHlsZS0+dHJhbnNmb3JtQm94KCkpLCBvZmZzZXRGcm9tUm9vdCwgYm94LT5ib3JkZXJCb3hS
ZWN0KCkpOwogICAgICAgICAgICAgRmxvYXRSZWN0IHBpeGVsU25hcHBlZEJvcmRlclJlY3QgPSBz
bmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGNvbXB1dGVkUmVmZXJlbmNlQm94LCBib3gtPmRvY3VtZW50
KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSk7CkBAIC0xMzc2LDcgKzEzNzYsNyBAQCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybShSZW5kZXJTdHlsZTo6QXBw
bHlUcmFuc2Zvcm1PcgogICAgIGlmIChhcHBseU9yaWdpbiA9PSBSZW5kZXJTdHlsZTo6RXhjbHVk
ZVRyYW5zZm9ybU9yaWdpbikgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjdXJyVHJh
bnNmb3JtOwogICAgICAgICBMYXlvdXRTaXplIG9mZnNldEZyb21Sb290OwotICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gcmVuZGVyZXIoKS5hbmltYXRpb24oKS5h
bmltYXRlZFN0eWxlRm9yUmVuZGVyZXIocmVuZGVyZXIoKSk7CisgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSByZW5kZXJlcigpLmxlZ2FjeUFuaW1hdGlvbigpLmFu
aW1hdGVkU3R5bGVGb3JSZW5kZXJlcihyZW5kZXJlcigpKTsKICAgICAgICAgYXV0byBjb21wdXRl
ZFJlZmVyZW5jZUJveCA9IGNvbXB1dGVSZWZlcmVuY2VCb3gocmVuZGVyZXIoKSwgdHJhbnNmb3Jt
Qm94VG9DU1NCb3hUeXBlKHN0eWxlLT50cmFuc2Zvcm1Cb3goKSksIG9mZnNldEZyb21Sb290LCBi
b3gtPmJvcmRlckJveFJlY3QoKSk7CiAgICAgICAgIEZsb2F0UmVjdCBwaXhlbFNuYXBwZWRCb3Jk
ZXJSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhjb21wdXRlZFJlZmVyZW5jZUJveCwgYm94
LT5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwogICAgICAgICBib3gtPnN0eWxlKCku
YXBwbHlUcmFuc2Zvcm0oY3VyclRyYW5zZm9ybSwgcGl4ZWxTbmFwcGVkQm9yZGVyUmVjdCwgUmVu
ZGVyU3R5bGU6OkV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4pOwpAQCAtNjEzNiw3ICs2MTM2LDcgQEAg
Ym9vbCBSZW5kZXJMYXllcjo6Z2V0T3ZlcmxhcEJvdW5kc0luY2x1ZGluZ0NoaWxkcmVuQWNjb3Vu
dGluZ0ZvclRyYW5zZm9ybUFuaW1hdGkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGlmIChyZW5kZXJlcigpLmFuaW1hdGlvbigpLmNvbXB1dGVFeHRlbnRP
ZkFuaW1hdGlvbihyZW5kZXJlcigpLCBhbmltYXRlZEJvdW5kcykpIHsKKyAgICAgICAgaWYgKHJl
bmRlcmVyKCkubGVnYWN5QW5pbWF0aW9uKCkuY29tcHV0ZUV4dGVudE9mQW5pbWF0aW9uKHJlbmRl
cmVyKCksIGFuaW1hdGVkQm91bmRzKSkgewogICAgICAgICAgICAgYm91bmRzID0gYW5pbWF0ZWRC
b3VuZHM7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAzNDg3NTgwNmYy
MGUzZjkyODE2ZTJmMTAzOGJiOWRjODJiNmEwMWZjLi5lMzkzMzdiZTYzMDU4NWFlMTYxZjQ2NmY1
ZTdmZGNlNzA3ODBhZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcApAQCAtMTE3Miw3ICsxMTcyLDcgQEAgdm9pZCBSZW5kZXJMYXllckJh
Y2tpbmc6OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGVkQW5jZXN0
b3IpCiAgICAgICAgIGlmIChhdXRvKiB0aW1lbGluZSA9IHJlbmRlcmVyKCkuZG9jdW1lbnRUaW1l
bGluZSgpKQogICAgICAgICAgICAgaXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1BbmltYXRp
b24gPSB0aW1lbGluZS0+aXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25PblJlbmRlcmVyKHJl
bmRlcmVyKCksIENTU1Byb3BlcnR5VHJhbnNmb3JtKTsKICAgICB9IGVsc2UKLSAgICAgICAgaXNS
dW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1BbmltYXRpb24gPSByZW5kZXJlcigpLmFuaW1hdGlv
bigpLmlzUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uT25SZW5kZXJlcihyZW5kZXJlcigpLCBD
U1NQcm9wZXJ0eVRyYW5zZm9ybSk7CisgICAgICAgIGlzUnVubmluZ0FjY2VsZXJhdGVkVHJhbnNm
b3JtQW5pbWF0aW9uID0gcmVuZGVyZXIoKS5sZWdhY3lBbmltYXRpb24oKS5pc1J1bm5pbmdBY2Nl
bGVyYXRlZEFuaW1hdGlvbk9uUmVuZGVyZXIocmVuZGVyZXIoKSwgQ1NTUHJvcGVydHlUcmFuc2Zv
cm0pOwogCiAgICAgdXBkYXRlVHJhbnNmb3JtKHN0eWxlKTsKICAgICB1cGRhdGVPcGFjaXR5KHN0
eWxlKTsKQEAgLTM1MTUsNyArMzUxNSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp0cmFu
c2l0aW9uRmluaXNoZWQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkKIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBjb25z
dCBTdHJpbmcmLCBNb25vdG9uaWNUaW1lIHRpbWUpCiB7CiAgICAgaWYgKCFSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVu
YWJsZWQoKSkKLSAgICAgICAgcmVuZGVyZXIoKS5hbmltYXRpb24oKS5ub3RpZnlBbmltYXRpb25T
dGFydGVkKHJlbmRlcmVyKCksIHRpbWUpOworICAgICAgICByZW5kZXJlcigpLmxlZ2FjeUFuaW1h
dGlvbigpLm5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQocmVuZGVyZXIoKSwgdGltZSk7CiB9CiAKIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAppbmRleCA1NWEzMmQxODQxYTgwNTk5NzgyOGRhODk0NzFjOGI5ODI2MmI4MzYy
Li40Njg5MjgxMTIwYmFlZmQ1YzY0MDgzY2M3NjhiMTBmYmU1NWQxMDZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNTM2
LDcgKzUzNiw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdMYXll
ckNoYW5nZXMoYm9vbCBpc0ZsdXNoUm9vdCkKICAgICB9CiAKICAgICBhdXRvJiBmcmFtZVZpZXcg
PSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7Ci0gICAgQW5pbWF0aW9uVXBkYXRlQmxvY2sgYW5p
bWF0aW9uVXBkYXRlQmxvY2soJmZyYW1lVmlldy5mcmFtZSgpLmFuaW1hdGlvbigpKTsKKyAgICBB
bmltYXRpb25VcGRhdGVCbG9jayBhbmltYXRpb25VcGRhdGVCbG9jaygmZnJhbWVWaWV3LmZyYW1l
KCkubGVnYWN5QW5pbWF0aW9uKCkpOwogCiAgICAgQVNTRVJUKCFtX2ZsdXNoaW5nTGF5ZXJzKTsK
ICAgICB7CkBAIC03NzYsNyArNzc2LDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZSB1cGRhdGUKIAogICAg
ICsrbV9jb21wb3NpdGluZ1VwZGF0ZUNvdW50OwogCi0gICAgQW5pbWF0aW9uVXBkYXRlQmxvY2sg
YW5pbWF0aW9uVXBkYXRlQmxvY2soJm1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5mcmFtZSgpLmFu
aW1hdGlvbigpKTsKKyAgICBBbmltYXRpb25VcGRhdGVCbG9jayBhbmltYXRpb25VcGRhdGVCbG9j
aygmbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLmZyYW1lKCkubGVnYWN5QW5pbWF0aW9uKCkpOwog
CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gcG9zdExheW91dENoYW5nZShtX2luUG9zdExheW91dFVw
ZGF0ZSwgdHJ1ZSk7CiAKQEAgLTI4NTEsNyArMjg1MSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQW5pbWF0aW9uKFJlbmRlckxheWVyTW9kZWxP
YmplCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Vi
QW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBhdXRvJiBhbmltQ29udHJvbGxlciA9IHJlbmRlcmVyLmFuaW1hdGlvbigpOworICAg
IGF1dG8mIGFuaW1Db250cm9sbGVyID0gcmVuZGVyZXIubGVnYWN5QW5pbWF0aW9uKCk7CiAgICAg
cmV0dXJuIChhbmltQ29udHJvbGxlci5pc1J1bm5pbmdBbmltYXRpb25PblJlbmRlcmVyKHJlbmRl
cmVyLCBDU1NQcm9wZXJ0eU9wYWNpdHkpCiAgICAgICAgICYmICh1c2VzQ29tcG9zaXRpbmcoKSB8
fCAobV9jb21wb3NpdGluZ1RyaWdnZXJzICYgQ2hyb21lQ2xpZW50OjpBbmltYXRlZE9wYWNpdHlU
cmlnZ2VyKSkpCiAgICAgICAgIHx8IGFuaW1Db250cm9sbGVyLmlzUnVubmluZ0FuaW1hdGlvbk9u
UmVuZGVyZXIocmVuZGVyZXIsIENTU1Byb3BlcnR5RmlsdGVyKQpAQCAtMzQwMSw3ICszNDAxLDcg
QEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzUnVubmluZ1RyYW5zZm9ybUFuaW1hdGlv
bihSZW5kZXJMYXllck1vZGVsT2JqZWN0JgogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLndlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIHJlbmRlcmVyLmFuaW1hdGlvbigp
LmlzUnVubmluZ0FuaW1hdGlvbk9uUmVuZGVyZXIocmVuZGVyZXIsIENTU1Byb3BlcnR5VHJhbnNm
b3JtKTsKKyAgICByZXR1cm4gcmVuZGVyZXIubGVnYWN5QW5pbWF0aW9uKCkuaXNSdW5uaW5nQW5p
bWF0aW9uT25SZW5kZXJlcihyZW5kZXJlciwgQ1NTUHJvcGVydHlUcmFuc2Zvcm0pOwogfQogCiAv
LyBJZiBhbiBlbGVtZW50IGhhcyBjb21wb3NpdGVkIG5lZ2F0aXZlIHotaW5kZXggY2hpbGRyZW4s
IHRob3NlIGNoaWxkcmVuIHJlbmRlciBpbiBmcm9udCBvZiB0aGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAppbmRleCBlYjhiNDJjY2ViNWZlNDRjOGQ0MDA4OWE3MDBkNzgz
ODYyYzBmOTM2Li5kN2M0MWMzMzY4NjUxNzQ3Y2QxOTg1YzNhYjkwMzQ1ODJmNzA2NGQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC02OTMsNyArNjkzLDcgQEAg
cHVibGljOgogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVj
dCogPSBudWxscHRyKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdy
YXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSBudWxscHRyKSB7IH0KIAotICAgIENTU0Fu
aW1hdGlvbkNvbnRyb2xsZXImIGFuaW1hdGlvbigpIGNvbnN0OworICAgIENTU0FuaW1hdGlvbkNv
bnRyb2xsZXImIGxlZ2FjeUFuaW1hdGlvbigpIGNvbnN0OwogICAgIERvY3VtZW50VGltZWxpbmUq
IGRvY3VtZW50VGltZWxpbmUoKSBjb25zdDsKIAogICAgIC8vIE1hcCBwb2ludHMgYW5kIHF1YWRz
IHRocm91Z2ggZWxlbWVudHMsIHBvdGVudGlhbGx5IHZpYSAzZCB0cmFuc2Zvcm1zLiBZb3Ugc2hv
dWxkIG5ldmVyIG5lZWQgdG8gY2FsbCB0aGVzZSBkaXJlY3RseTsgdXNlCkBAIC05NDksOSArOTQ5
LDkgQEAgaW5saW5lIFBhZ2UmIFJlbmRlck9iamVjdDo6cGFnZSgpIGNvbnN0CiAgICAgcmV0dXJu
ICpmcmFtZSgpLnBhZ2UoKTsKIH0KIAotaW5saW5lIENTU0FuaW1hdGlvbkNvbnRyb2xsZXImIFJl
bmRlck9iamVjdDo6YW5pbWF0aW9uKCkgY29uc3QKK2lubGluZSBDU1NBbmltYXRpb25Db250cm9s
bGVyJiBSZW5kZXJPYmplY3Q6OmxlZ2FjeUFuaW1hdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IGZyYW1lKCkuYW5pbWF0aW9uKCk7CisgICAgcmV0dXJuIGZyYW1lKCkubGVnYWN5QW5pbWF0aW9u
KCk7CiB9CiAKIGlubGluZSBEb2N1bWVudFRpbWVsaW5lKiBSZW5kZXJPYmplY3Q6OmRvY3VtZW50
VGltZWxpbmUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKaW5kZXggYTViN2ZiY2JhZDNlODE4OWIyZmRk
NjQwYWQ2YTRhY2FkYjg2Mjk2Zi4uZGQ2NGZkZWQ3ZDBhZWVhOTE0ZmYyOTQwMGZkYjM4ODNlZmY0
MDg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZVVwZGF0ZXIuY3BwCkBAIC01NTgsNyArNTU4LDcgQEAgdm9pZCBSZW5kZXJUcmVl
VXBkYXRlcjo6dGVhckRvd25SZW5kZXJlcnMoRWxlbWVudCYgcm9vdCwgVGVhcmRvd25UeXBlIHRl
YXJkb3duVHkKIAogICAgIGF1dG8mIGRvY3VtZW50ID0gcm9vdC5kb2N1bWVudCgpOwogICAgIGF1
dG8qIHRpbWVsaW5lID0gZG9jdW1lbnQuZXhpc3RpbmdUaW1lbGluZSgpOwotICAgIGF1dG8mIGFu
aW1hdGlvbkNvbnRyb2xsZXIgPSBkb2N1bWVudC5mcmFtZSgpLT5hbmltYXRpb24oKTsgICAgCisg
ICAgYXV0byYgYW5pbWF0aW9uQ29udHJvbGxlciA9IGRvY3VtZW50LmZyYW1lKCktPmxlZ2FjeUFu
aW1hdGlvbigpOyAgICAKIAogICAgIGF1dG8gcG9wID0gWyZdICh1bnNpZ25lZCBkZXB0aCkgewog
ICAgICAgICB3aGlsZSAodGVhcmRvd25TdGFjay5zaXplKCkgPiBkZXB0aCkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCmluZGV4IDNlOGYzYzkyMDhkZDRjMzg3
YjViZTY2NjNkYzc3MzZmZWU4OWY0MmIuLjE2NzFkZGE2YjI0M2U1NDFmZTAwNjQ0YzQ5NTYzNDZl
OWQ1NDA0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29s
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAK
QEAgLTMzMiw3ICszMzIsNyBAQCBFbGVtZW50VXBkYXRlIFRyZWVSZXNvbHZlcjo6Y3JlYXRlQW5p
bWF0ZWRFbGVtZW50VXBkYXRlKHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdAogCiAgICAgLy8gT2xk
IGNvZGUgcGF0aCBmb3IgQ1NTIEFuaW1hdGlvbnMgYW5kIENTUyBUcmFuc2l0aW9ucy4KICAgICBp
ZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQW5pbWF0aW9u
c0NTU0ludGVncmF0aW9uRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8mIGFuaW1hdGlvbkNvbnRy
b2xsZXIgPSBtX2RvY3VtZW50LmZyYW1lKCktPmFuaW1hdGlvbigpOworICAgICAgICBhdXRvJiBh
bmltYXRpb25Db250cm9sbGVyID0gbV9kb2N1bWVudC5mcmFtZSgpLT5sZWdhY3lBbmltYXRpb24o
KTsKIAogICAgICAgICBhdXRvIGFuaW1hdGlvblVwZGF0ZSA9IGFuaW1hdGlvbkNvbnRyb2xsZXIu
dXBkYXRlQW5pbWF0aW9ucyhlbGVtZW50LCAqbmV3U3R5bGUsIG9sZFN0eWxlKTsKICAgICAgICAg
YW5pbWF0aW9uSW1wYWN0LmFkZChhbmltYXRpb25VcGRhdGUuaW1wYWN0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1ZDE5MTczMTJjODQ5ZWY1YTVmZWZlMTkxZDMwNWUw
NDQyODc0YjU3Li5jNzRlNGIxZmUzOGJkNTNkMGMzZjk4N2MyYTQ1ZjE4NTg1YjZhZjRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMDU5LDcgKzEwNTksNyBAQCB1bnNp
Z25lZCBJbnRlcm5hbHM6Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAg
aWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQW5pbWF0aW9u
c0NTU0ludGVncmF0aW9uRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZnJhbWUoKS0+ZG9jdW1l
bnQoKS0+dGltZWxpbmUoKS5udW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnNGb3JUZXN0aW5nKCk7Ci0g
ICAgcmV0dXJuIGZyYW1lKCktPmFuaW1hdGlvbigpLm51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhm
cmFtZSgpLT5kb2N1bWVudCgpKTsKKyAgICByZXR1cm4gZnJhbWUoKS0+bGVnYWN5QW5pbWF0aW9u
KCkubnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKGZyYW1lKCktPmRvY3VtZW50KCkpOwogfQogCiBF
eGNlcHRpb25Pcjxib29sPiBJbnRlcm5hbHM6OmFuaW1hdGlvbnNBcmVTdXNwZW5kZWQoKSBjb25z
dApAQCAtMTA3MCw3ICsxMDcwLDcgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gSW50ZXJuYWxzOjphbmlt
YXRpb25zQXJlU3VzcGVuZGVkKCkgY29uc3QKIAogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQo
KSkKICAgICAgICAgcmV0dXJuIGRvY3VtZW50LT50aW1lbGluZSgpLmFuaW1hdGlvbnNBcmVTdXNw
ZW5kZWQoKTsKLSAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPmFuaW1hdGlvbigpLmFuaW1h
dGlvbnNBcmVTdXNwZW5kZWRGb3JEb2N1bWVudChkb2N1bWVudCk7CisgICAgcmV0dXJuIGRvY3Vt
ZW50LT5mcmFtZSgpLT5sZWdhY3lBbmltYXRpb24oKS5hbmltYXRpb25zQXJlU3VzcGVuZGVkRm9y
RG9jdW1lbnQoZG9jdW1lbnQpOwogfQogCiBkb3VibGUgSW50ZXJuYWxzOjphbmltYXRpb25zSW50
ZXJ2YWwoKSBjb25zdApAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgZG91YmxlIEludGVybmFsczo6YW5p
bWF0aW9uc0ludGVydmFsKCkgY29uc3QKIAogICAgIGlmICghZG9jdW1lbnQtPmZyYW1lKCkpCiAg
ICAgICAgIHJldHVybiBJTkZJTklUWTsKLSAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPmFu
aW1hdGlvbigpLmFuaW1hdGlvbkludGVydmFsKCkudmFsdWUoKTsKKyAgICByZXR1cm4gZG9jdW1l
bnQtPmZyYW1lKCktPmxlZ2FjeUFuaW1hdGlvbigpLmFuaW1hdGlvbkludGVydmFsKCkudmFsdWUo
KTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpzdXNwZW5kQW5pbWF0aW9ucygp
IGNvbnN0CkBAIC0xMTAzLDExICsxMTAzLDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFs
czo6c3VzcGVuZEFuaW1hdGlvbnMoKSBjb25zdAogICAgICAgICAgICAgICAgIGRvY3VtZW50LT50
aW1lbGluZSgpLnN1c3BlbmRBbmltYXRpb25zKCk7CiAgICAgICAgIH0KICAgICB9IGVsc2Ugewot
ICAgICAgICBkb2N1bWVudC0+ZnJhbWUoKS0+YW5pbWF0aW9uKCkuc3VzcGVuZEFuaW1hdGlvbnNG
b3JEb2N1bWVudChkb2N1bWVudCk7CisgICAgICAgIGRvY3VtZW50LT5mcmFtZSgpLT5sZWdhY3lB
bmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9uc0ZvckRvY3VtZW50KGRvY3VtZW50KTsKIAogICAg
ICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOyBmcmFtZTsgZnJhbWUg
PSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgICAgICBpZiAoRG9jdW1l
bnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICAgICAgZnJhbWUt
PmFuaW1hdGlvbigpLnN1c3BlbmRBbmltYXRpb25zRm9yRG9jdW1lbnQoZG9jdW1lbnQpOworICAg
ICAgICAgICAgICAgIGZyYW1lLT5sZWdhY3lBbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9uc0Zv
ckRvY3VtZW50KGRvY3VtZW50KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTEyNywxMSArMTEy
NywxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnJlc3VtZUFuaW1hdGlvbnMoKSBj
b25zdAogICAgICAgICAgICAgICAgIGRvY3VtZW50LT50aW1lbGluZSgpLnJlc3VtZUFuaW1hdGlv
bnMoKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvY3VtZW50LT5mcmFtZSgp
LT5hbmltYXRpb24oKS5yZXN1bWVBbmltYXRpb25zRm9yRG9jdW1lbnQoZG9jdW1lbnQpOworICAg
ICAgICBkb2N1bWVudC0+ZnJhbWUoKS0+bGVnYWN5QW5pbWF0aW9uKCkucmVzdW1lQW5pbWF0aW9u
c0ZvckRvY3VtZW50KGRvY3VtZW50KTsKIAogICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IGRv
Y3VtZW50LT5mcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4
dCgpKSB7CiAgICAgICAgICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3Vt
ZW50KCkpCi0gICAgICAgICAgICAgICAgZnJhbWUtPmFuaW1hdGlvbigpLnJlc3VtZUFuaW1hdGlv
bnNGb3JEb2N1bWVudChkb2N1bWVudCk7CisgICAgICAgICAgICAgICAgZnJhbWUtPmxlZ2FjeUFu
aW1hdGlvbigpLnJlc3VtZUFuaW1hdGlvbnNGb3JEb2N1bWVudChkb2N1bWVudCk7CiAgICAgICAg
IH0KICAgICB9CiAKQEAgLTExNDIsNyArMTE0Miw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IEludGVy
bmFsczo6cGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnQoY29uc3QgU3RyaW5nJiBhbmltYXRp
CiB7CiAgICAgaWYgKHBhdXNlVGltZSA8IDApCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkQWNjZXNzRXJyb3IgfTsKLSAgICByZXR1cm4gZnJhbWUoKS0+YW5pbWF0aW9uKCkucGF1
c2VBbmltYXRpb25BdFRpbWUoZWxlbWVudCwgQXRvbVN0cmluZyhhbmltYXRpb25OYW1lKSwgcGF1
c2VUaW1lKTsKKyAgICByZXR1cm4gZnJhbWUoKS0+bGVnYWN5QW5pbWF0aW9uKCkucGF1c2VBbmlt
YXRpb25BdFRpbWUoZWxlbWVudCwgQXRvbVN0cmluZyhhbmltYXRpb25OYW1lKSwgcGF1c2VUaW1l
KTsKIH0KIAogRXhjZXB0aW9uT3I8Ym9vbD4gSW50ZXJuYWxzOjpwYXVzZUFuaW1hdGlvbkF0VGlt
ZU9uUHNldWRvRWxlbWVudChjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBwYXVz
ZVRpbWUsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcHNldWRvSWQpCkBAIC0xMTU3
LDE0ICsxMTU3LDE0IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IEludGVybmFsczo6cGF1c2VBbmltYXRp
b25BdFRpbWVPblBzZXVkb0VsZW1lbnQoY29uc3QgU3RyaW5nJiBhCiAgICAgaWYgKCFwc2V1ZG9F
bGVtZW50KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07
CiAKLSAgICByZXR1cm4gZnJhbWUoKS0+YW5pbWF0aW9uKCkucGF1c2VBbmltYXRpb25BdFRpbWUo
KnBzZXVkb0VsZW1lbnQsIEF0b21TdHJpbmcoYW5pbWF0aW9uTmFtZSksIHBhdXNlVGltZSk7Cisg
ICAgcmV0dXJuIGZyYW1lKCktPmxlZ2FjeUFuaW1hdGlvbigpLnBhdXNlQW5pbWF0aW9uQXRUaW1l
KCpwc2V1ZG9FbGVtZW50LCBBdG9tU3RyaW5nKGFuaW1hdGlvbk5hbWUpLCBwYXVzZVRpbWUpOwog
fQogCiBFeGNlcHRpb25Pcjxib29sPiBJbnRlcm5hbHM6OnBhdXNlVHJhbnNpdGlvbkF0VGltZU9u
RWxlbWVudChjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIHBhdXNlVGltZSwgRWxl
bWVudCYgZWxlbWVudCkKIHsKICAgICBpZiAocGF1c2VUaW1lIDwgMCkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwotICAgIHJldHVybiBmcmFtZSgpLT5h
bmltYXRpb24oKS5wYXVzZVRyYW5zaXRpb25BdFRpbWUoZWxlbWVudCwgcHJvcGVydHlOYW1lLCBw
YXVzZVRpbWUpOworICAgIHJldHVybiBmcmFtZSgpLT5sZWdhY3lBbmltYXRpb24oKS5wYXVzZVRy
YW5zaXRpb25BdFRpbWUoZWxlbWVudCwgcHJvcGVydHlOYW1lLCBwYXVzZVRpbWUpOwogfQogCiBF
eGNlcHRpb25Pcjxib29sPiBJbnRlcm5hbHM6OnBhdXNlVHJhbnNpdGlvbkF0VGltZU9uUHNldWRv
RWxlbWVudChjb25zdCBTdHJpbmcmIHByb3BlcnR5LCBkb3VibGUgcGF1c2VUaW1lLCBFbGVtZW50
JiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIHBzZXVkb0lkKQpAQCAtMTE3OSw3ICsxMTc5LDcgQEAg
RXhjZXB0aW9uT3I8Ym9vbD4gSW50ZXJuYWxzOjpwYXVzZVRyYW5zaXRpb25BdFRpbWVPblBzZXVk
b0VsZW1lbnQoY29uc3QgU3RyaW5nJgogICAgIGlmICghcHNldWRvRWxlbWVudCkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCi0gICAgcmV0dXJuIGZy
YW1lKCktPmFuaW1hdGlvbigpLnBhdXNlVHJhbnNpdGlvbkF0VGltZSgqcHNldWRvRWxlbWVudCwg
cHJvcGVydHksIHBhdXNlVGltZSk7CisgICAgcmV0dXJuIGZyYW1lKCktPmxlZ2FjeUFuaW1hdGlv
bigpLnBhdXNlVHJhbnNpdGlvbkF0VGltZSgqcHNldWRvRWxlbWVudCwgcHJvcGVydHksIHBhdXNl
VGltZSk7CiB9CiAKIFZlY3RvcjxJbnRlcm5hbHM6OkFjY2VsZXJhdGVkQW5pbWF0aW9uPiBJbnRl
cm5hbHM6OmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3ZDIxZGFh
NTIyMWYyZTk3ZmUwZjFiZGIzOTU3NTM0MjUyNzkwOTM2Li5iMjJiODFlMjI4MzEwYmU2ZDQyMWRm
NjhmMjhhZTkxZjNmZGRiNzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCkBAIC00Nzc2LDcgKzQ3NzYsNyBAQCAtIChCT09MKWFsbG93c05ld0NTU0FuaW1h
dGlvbnNXaGlsZVN1c3BlbmRlZAogewogICAgIGF1dG8qIGZyYW1lID0gY29yZShbc2VsZiBtYWlu
RnJhbWVdKTsKICAgICBpZiAoZnJhbWUpCi0gICAgICAgIHJldHVybiBmcmFtZS0+YW5pbWF0aW9u
KCkuYWxsb3dzTmV3QW5pbWF0aW9uc1doaWxlU3VzcGVuZGVkKCk7CisgICAgICAgIHJldHVybiBm
cmFtZS0+bGVnYWN5QW5pbWF0aW9uKCkuYWxsb3dzTmV3QW5pbWF0aW9uc1doaWxlU3VzcGVuZGVk
KCk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC00Nzg1LDcgKzQ3ODUsNyBAQCAtICh2b2lk
KXNldEFsbG93c05ld0NTU0FuaW1hdGlvbnNXaGlsZVN1c3BlbmRlZDooQk9PTClhbGxvd2VkCiB7
CiAgICAgYXV0byogZnJhbWUgPSBjb3JlKFtzZWxmIG1haW5GcmFtZV0pOwogICAgIGlmIChmcmFt
ZSkKLSAgICAgICAgZnJhbWUtPmFuaW1hdGlvbigpLnNldEFsbG93c05ld0FuaW1hdGlvbnNXaGls
ZVN1c3BlbmRlZChhbGxvd2VkKTsKKyAgICAgICAgZnJhbWUtPmxlZ2FjeUFuaW1hdGlvbigpLnNl
dEFsbG93c05ld0FuaW1hdGlvbnNXaGlsZVN1c3BlbmRlZChhbGxvd2VkKTsKIH0KIAogLSAoQk9P
TCljc3NBbmltYXRpb25zU3VzcGVuZGVkCkBAIC00NzkzLDcgKzQ3OTMsNyBAQCAtIChCT09MKWNz
c0FuaW1hdGlvbnNTdXNwZW5kZWQKICAgICAvLyBzaG91bGQgYXNrIHRoZSBwYWdlIQogICAgIGF1
dG8qIGZyYW1lID0gY29yZShbc2VsZiBtYWluRnJhbWVdKTsKICAgICBpZiAoZnJhbWUpCi0gICAg
ICAgIHJldHVybiBmcmFtZS0+YW5pbWF0aW9uKCkuaXNTdXNwZW5kZWQoKTsKKyAgICAgICAgcmV0
dXJuIGZyYW1lLT5sZWdhY3lBbmltYXRpb24oKS5pc1N1c3BlbmRlZCgpOwogCiAgICAgcmV0dXJu
IGZhbHNlOwogfQpAQCAtNDgwMSwxMyArNDgwMSwxMyBAQCAtIChCT09MKWNzc0FuaW1hdGlvbnNT
dXNwZW5kZWQKIC0gKHZvaWQpc2V0Q1NTQW5pbWF0aW9uc1N1c3BlbmRlZDooQk9PTClzdXNwZW5k
ZWQKIHsKICAgICBhdXRvKiBmcmFtZSA9IGNvcmUoW3NlbGYgbWFpbkZyYW1lXSk7Ci0gICAgaWYg
KHN1c3BlbmRlZCA9PSBmcmFtZS0+YW5pbWF0aW9uKCkuaXNTdXNwZW5kZWQoKSkKKyAgICBpZiAo
c3VzcGVuZGVkID09IGZyYW1lLT5sZWdhY3lBbmltYXRpb24oKS5pc1N1c3BlbmRlZCgpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAoc3VzcGVuZGVkKQotICAgICAgICBmcmFtZS0+YW5pbWF0
aW9uKCkuc3VzcGVuZEFuaW1hdGlvbnMoKTsKKyAgICAgICAgZnJhbWUtPmxlZ2FjeUFuaW1hdGlv
bigpLnN1c3BlbmRBbmltYXRpb25zKCk7CiAgICAgZWxzZQotICAgICAgICBmcmFtZS0+YW5pbWF0
aW9uKCkucmVzdW1lQW5pbWF0aW9ucygpOworICAgICAgICBmcmFtZS0+bGVnYWN5QW5pbWF0aW9u
KCkucmVzdW1lQW5pbWF0aW9ucygpOwogfQogCiArICh2b2lkKV9zZXREb21haW5SZWxheGF0aW9u
Rm9yYmlkZGVuOihCT09MKWZvcmJpZGRlbiBmb3JVUkxTY2hlbWU6KE5TU3RyaW5nICopc2NoZW1l
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397697</attachid>
            <date>2020-04-27 10:32:24 -0700</date>
            <delta_ts>2020-05-09 16:55:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211082-20200427193223.patch</filename>
            <type>text/plain</type>
            <size>35735</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc0M2JmMDM5YWQwNDEz
NWJkZmY0MmI1ODA0NzZjMTFjOTBkZjI2Mi4uM2JkYTFhOTYyNzllNDE4YWIwNzMwODI2Y2ZkYjUy
NGUxYjI2ZWEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIwLTA0LTI3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIENTU0FuaW1h
dGlvbkNvbnRyb2xsZXIgYWNjZXNzb3JzIGZyb20gYW5pbWF0aW9uKCkgdG8gbGVnYWN5QW5pbWF0
aW9uKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MTA4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
b21wdXRlUmVuZGVyU3R5bGVGb3JQcm9wZXJ0eSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmRpZEJlY29tZUN1cnJlbnREb2N1bWVudEluRnJhbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnByZXBhcmVGb3JEZXN0cnVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6aW1wbGljaXRDbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6cmVzdW1lKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKToKKyAgICAgICAgKiBkb20vUHNl
dWRvRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQc2V1ZG9FbGVtZW50OjpjbGVhckhv
c3RFbGVtZW50KToKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZEZyYW1lOjpkZXN0cm95KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpjbGVhclRpbWVycyk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZTo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMpOgorICAgICAg
ICAqIHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZERlc3Ryb3lSZW5kZXJUcmVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSk6
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91dCk6CisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmhhbmRsZUxvd01vZGVQb3dlckNoYW5n
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRJc1Zpc2libGVJbnRlcm5hbCk6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpoaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvblN0YXRl
Q2hhbmdlZCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6
dXBkYXRlVGhyb3R0bGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvbkNv
bnRyb2xsZXJQcml2YXRlOjpzdXNwZW5kQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6cmVzdW1lQW5pbWF0aW9ucyk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpjdXJyZW50VHJhbnNmb3JtIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JBbmltYXRpb24g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjppc1J1bm5p
bmdUcmFuc2Zvcm1BbmltYXRpb24gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJP
YmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bGVnYWN5QW5pbWF0aW9u
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YW5pbWF0aW9uIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OnRlYXJEb3duUmVu
ZGVyZXJzKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRh
dGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6YW5pbWF0aW9uc0FyZVN1c3BlbmRlZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OmFuaW1hdGlvbnNJbnRlcnZhbCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OnN1c3BlbmRBbmltYXRpb25zIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6cmVzdW1lQW5pbWF0aW9ucyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OnBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6cGF1c2VBbmltYXRpb25BdFRpbWVPblBzZXVkb0VsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYXVzZVRyYW5zaXRpb25BdFRpbWVP
bkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYXVzZVRyYW5zaXRpb25B
dFRpbWVPblBzZXVkb0VsZW1lbnQpOgorCiAyMDIwLTA0LTI3ICBEaWVnbyBQaW5vIEdhcmNpYSAg
PGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjA2
NzIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYzg4YmM5ZjU4ZGIzYmVmNWViYTYy
OTExODM4NzI1YmMyMTU5MmE1MC4uMDY2MDE5NzZmZjgxNTczZGI3MzlkMjQ4MmU3ZGFkZjdlNTIx
OTIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIw
LTA0LTI3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVu
YW1lIENTU0FuaW1hdGlvbkNvbnRyb2xsZXIgYWNjZXNzb3JzIGZyb20gYW5pbWF0aW9uKCkgdG8g
bGVnYWN5QW5pbWF0aW9uKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxMTA4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorCiAyMDIwLTA0LTI2ICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIHN0b3AgdXNpbmcgb3V0IGFy
Z3VtZW50cyBmb3IgZG9jdW1lbnQgYXR0cmlidXRlcyB3aGVuIGNvbnZlcnRpbmcgdG8gYXR0cmli
dXRlZCBzdHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggNGE3NGJmMDM0MmJi
YzgzYWIyMjEyOWNmMGFlNTA3M2JkMWFmNDlmYi4uYmQwZTcyMzhlMjAwNjc2Mjk4ODdiNDFiM2Qz
ZTk0NTQ1NDYyMjA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDIwLTA0LTI3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVuYW1lIENTU0FuaW1hdGlvbkNvbnRyb2xsZXIgYWNjZXNzb3JzIGZyb20gYW5pbWF0
aW9uKCkgdG8gbGVnYWN5QW5pbWF0aW9uKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMTA4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWU6OnJl
c3VtZUFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViRnJhbWU6OnN1c3BlbmRBbmltYXRpb25zKToK
KyAgICAgICAgKFdlYkZyYW1lOjpwYXVzZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJGcmFtZTo6
cGF1c2VUcmFuc2l0aW9uKToKKyAgICAgICAgKFdlYkZyYW1lOjpudW1iZXJPZkFjdGl2ZUFuaW1h
dGlvbnMpOgorCiAyMDIwLTA0LTIxICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTdG9wIHVzaW5nIGxpdmUgcmFuZ2VzIGluIGZ1bmN0aW9ucyB0aGF0IHJldHVybiBy
YW5nZSBvZiB0aGUgc2VsZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGY1NjFkYTRmYzU4OWJmOWMyZTJiNmE3Zjdj
ZWFmZmQyYmQ5MDEyM2QuLjI5YTI5NTBhM2Q1NzRkOTcxMjcxNWU5M2ZkZjAyOTNhOTE1M2QwNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCkBAIC0yMjI3LDcgKzIyMjcsNyBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IFJlbmRlclN0
eWxlKiBjb21wdXRlUmVuZGVyU3R5bGVGb3JQcm9wZXJ0eShFbGVtZW50JiBlbGVtZW50LAogICAg
ICAgICBpZiAoYXV0byB0aW1lbGluZSA9IGVsZW1lbnQuZG9jdW1lbnQoKS5leGlzdGluZ1RpbWVs
aW5lKCkpCiAgICAgICAgICAgICBvd25lZFN0eWxlID0gdGltZWxpbmUtPmFuaW1hdGVkU3R5bGVG
b3JSZW5kZXJlcigqcmVuZGVyZXIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBvd25lZFN0
eWxlID0gcmVuZGVyZXItPmFuaW1hdGlvbigpLmFuaW1hdGVkU3R5bGVGb3JSZW5kZXJlcigqcmVu
ZGVyZXIpOworICAgICAgICAgICAgb3duZWRTdHlsZSA9IHJlbmRlcmVyLT5sZWdhY3lBbmltYXRp
b24oKS5hbmltYXRlZFN0eWxlRm9yUmVuZGVyZXIoKnJlbmRlcmVyKTsKICAgICAgICAgaWYgKHBz
ZXVkb0VsZW1lbnRTcGVjaWZpZXIgIT0gUHNldWRvSWQ6Ok5vbmUgJiYgIWVsZW1lbnQuaXNQc2V1
ZG9FbGVtZW50KCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNhY2hlZCBwc2V1ZG8g
c3R5bGUgd2lsbCBvbmx5IGV4aXN0IGlmIHRoZSBhbmltYXRpb24gaGFzIGJlZW4gcnVuIGF0IGxl
YXN0IG9uY2UuCiAgICAgICAgICAgICByZXR1cm4gb3duZWRTdHlsZS0+Z2V0Q2FjaGVkUHNldWRv
U3R5bGUocHNldWRvRWxlbWVudFNwZWNpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCBjNGU2OWVmZjNjMjBmMmIxZDNlYjVmN2I2YzdkZGU0ZDgzMzEzN2U1Li4zMDY1ODRkYjVkYzcw
ZjJmYjZlZWNiMmRlN2JlOTUxNGVjMzVkYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTE5NDEsNyArMTk0MSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5
bGVUeXBlIHR5cGUpCiAgICAgVHJhY2VTY29wZSB0cmFjaW5nU2NvcGUoU3R5bGVSZWNhbGNTdGFy
dCwgU3R5bGVSZWNhbGNFbmQpOwogCiAgICAgUmVuZGVyVmlldzo6UmVwYWludFJlZ2lvbkFjY3Vt
dWxhdG9yIHJlcGFpbnRSZWdpb25BY2N1bXVsYXRvcihyZW5kZXJWaWV3KCkpOwotICAgIEFuaW1h
dGlvblVwZGF0ZUJsb2NrIGFuaW1hdGlvblVwZGF0ZUJsb2NrKCZtX2ZyYW1lLT5hbmltYXRpb24o
KSk7CisgICAgQW5pbWF0aW9uVXBkYXRlQmxvY2sgYW5pbWF0aW9uVXBkYXRlQmxvY2soJm1fZnJh
bWUtPmxlZ2FjeUFuaW1hdGlvbigpKTsKIAogICAgIC8vIEZJWE1FOiBEbyB0aGlzIHVwZGF0ZSBw
ZXIgdHJlZSBzY29wZS4KICAgICB7CkBAIC0yNDAzLDcgKzI0MDMsNyBAQCB2b2lkIERvY3VtZW50
OjpkaWRCZWNvbWVDdXJyZW50RG9jdW1lbnRJbkZyYW1lKCkKICAgICAgICAgICAgIGlmIChhdXRv
KiB0aW1lbGluZSA9IGV4aXN0aW5nVGltZWxpbmUoKSkKICAgICAgICAgICAgICAgICB0aW1lbGlu
ZS0+c3VzcGVuZEFuaW1hdGlvbnMoKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2Zy
YW1lLT5hbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9uc0ZvckRvY3VtZW50KHRoaXMpOworICAg
ICAgICAgICAgbV9mcmFtZS0+bGVnYWN5QW5pbWF0aW9uKCkuc3VzcGVuZEFuaW1hdGlvbnNGb3JE
b2N1bWVudCh0aGlzKTsKICAgICAgICAgc3VzcGVuZFNjaGVkdWxlZFRhc2tzKFJlYXNvbkZvclN1
c3BlbnNpb246OlBhZ2VXaWxsQmVTdXNwZW5kZWQpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJl
c3VtZVNjaGVkdWxlZFRhc2tzKFJlYXNvbkZvclN1c3BlbnNpb246OlBhZ2VXaWxsQmVTdXNwZW5k
ZWQpOwpAQCAtMjQxMSw3ICsyNDExLDcgQEAgdm9pZCBEb2N1bWVudDo6ZGlkQmVjb21lQ3VycmVu
dERvY3VtZW50SW5GcmFtZSgpCiAgICAgICAgICAgICBpZiAoYXV0byogdGltZWxpbmUgPSBleGlz
dGluZ1RpbWVsaW5lKCkpCiAgICAgICAgICAgICAgICAgdGltZWxpbmUtPnJlc3VtZUFuaW1hdGlv
bnMoKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2ZyYW1lLT5hbmltYXRpb24oKS5y
ZXN1bWVBbmltYXRpb25zRm9yRG9jdW1lbnQodGhpcyk7CisgICAgICAgICAgICBtX2ZyYW1lLT5s
ZWdhY3lBbmltYXRpb24oKS5yZXN1bWVBbmltYXRpb25zRm9yRG9jdW1lbnQodGhpcyk7CiAgICAg
fQogfQogCkBAIC0yNTA2LDcgKzI1MDYsNyBAQCB2b2lkIERvY3VtZW50OjpwcmVwYXJlRm9yRGVz
dHJ1Y3Rpb24oKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9mcmFtZSkKLSAgICAgICAg
bV9mcmFtZS0+YW5pbWF0aW9uKCkuZGV0YWNoRnJvbURvY3VtZW50KHRoaXMpOworICAgICAgICBt
X2ZyYW1lLT5sZWdhY3lBbmltYXRpb24oKS5kZXRhY2hGcm9tRG9jdW1lbnQodGhpcyk7CiAKICNp
ZiBVU0UoTElCV0VCUlRDKQogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBtb3ZlZCB0byBN
b2R1bGVzL21lZGlhc3RyZWFtLgpAQCAtMzA0MSw3ICszMDQxLDcgQEAgdm9pZCBEb2N1bWVudDo6
aW1wbGljaXRDbG9zZSgpCiAgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IGxvYWRl
cigpKQogICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXItPnN0YXJ0SWNvbkxvYWRpbmcoKTsKIAot
ICAgICAgICBmLT5hbmltYXRpb24oKS5zdGFydEFuaW1hdGlvbnNJZk5vdFN1c3BlbmRlZCh0aGlz
KTsKKyAgICAgICAgZi0+bGVnYWN5QW5pbWF0aW9uKCkuc3RhcnRBbmltYXRpb25zSWZOb3RTdXNw
ZW5kZWQodGhpcyk7CiAKICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBiZSBkaXNwYXRj
aGluZyBwZW5kaW5nIGV2ZW50cyBnbG9iYWxseSBvbiBhbGwgRG9jdW1lbnRzIGhlcmUuCiAgICAg
ICAgIC8vIEZvciBub3csIG9ubHkgZG8gdGhpcyB3aGVuIHRoZXJlIGlzIGEgRnJhbWUsIG90aGVy
d2lzZSB0aGlzIGNvdWxkIGNhdXNlIEpTIHJlZW50cmFuY3kKQEAgLTUzNjksNyArNTM2OSw3IEBA
IHZvaWQgRG9jdW1lbnQ6OnJlc3VtZShSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKICAgICAg
ICAgaWYgKGF1dG8qIHRpbWVsaW5lID0gZXhpc3RpbmdUaW1lbGluZSgpKQogICAgICAgICAgICAg
dGltZWxpbmUtPnJlc3VtZUFuaW1hdGlvbnMoKTsgIAogICAgIH0gZWxzZQotICAgICAgICBtX2Zy
YW1lLT5hbmltYXRpb24oKS5yZXN1bWVBbmltYXRpb25zRm9yRG9jdW1lbnQodGhpcyk7CisgICAg
ICAgIG1fZnJhbWUtPmxlZ2FjeUFuaW1hdGlvbigpLnJlc3VtZUFuaW1hdGlvbnNGb3JEb2N1bWVu
dCh0aGlzKTsKIAogICAgIHJlc3VtZVNjaGVkdWxlZFRhc2tzKHJlYXNvbik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCAxZmYyM2UxNjBiOTE4YWIxY2RjNTBlOGMzZjc2MWM4ZDFjYTQyYTBk
Li4wYjVhZjJmNzQ2Nzk0NzJiMWNkZDVlZGZjYzVlNGIyZTlmOTI3MmUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCkBAIC0yMjQzLDcgKzIyNDMsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9t
QW5jZXN0b3IoUmVtb3ZhbFR5cGUgcmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmIG9sZFBhcgog
ICAgICAgICB0aW1lbGluZS0+ZWxlbWVudFdhc1JlbW92ZWQoKnRoaXMpOwogCiAgICAgaWYgKGZy
YW1lKQotICAgICAgICBmcmFtZS0+YW5pbWF0aW9uKCkuY2FuY2VsQW5pbWF0aW9ucygqdGhpcyk7
CisgICAgICAgIGZyYW1lLT5sZWdhY3lBbmltYXRpb24oKS5jYW5jZWxBbmltYXRpb25zKCp0aGlz
KTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcAppbmRleCBlODRjMjI5YjM5N2JkNWJlOTBk
ZmFhOGJiOGZjZWU5MWIzZGQ4MTlkLi4xNWQ4MWMxMDZkODA5MzUzZjIxYmU3ZWM4NDgzZGQ4OGI3
NjI4YjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCkBAIC05NCw3ICs5NCw3
IEBAIHZvaWQgUHNldWRvRWxlbWVudDo6Y2xlYXJIb3N0RWxlbWVudCgpCiAgICAgICAgIHRpbWVs
aW5lLT5lbGVtZW50V2FzUmVtb3ZlZCgqdGhpcyk7CiAgICAgCiAgICAgaWYgKGF1dG8qIGZyYW1l
ID0gZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICBmcmFtZS0+YW5pbWF0aW9uKCkuY2FuY2Vs
QW5pbWF0aW9ucygqdGhpcyk7CisgICAgICAgIGZyYW1lLT5sZWdhY3lBbmltYXRpb24oKS5jYW5j
ZWxBbmltYXRpb25zKCp0aGlzKTsKIAogICAgIG1faG9zdEVsZW1lbnQgPSBudWxscHRyOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAppbmRleCBhODdkM2U1MDQ4ZTQ2YzQz
ZGZhZmFmMzkyMDczM2ZiNzM4ZTFhMWU5Li41NWU0MWI3YWY1ZGM1YjlmNzFlZTdmOWFlZDZjZjYz
ZmNhMzBhMjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcApAQCAtMjc5
LDcgKzI3OSw3IEBAIHZvaWQgQ2FjaGVkRnJhbWU6OmRlc3Ryb3koKQogCiAgICAgRnJhbWU6OmNs
ZWFyVGltZXJzKG1fdmlldy5nZXQoKSwgbV9kb2N1bWVudC5nZXQoKSk7CiAKLSAgICBtX3ZpZXct
PmZyYW1lKCkuYW5pbWF0aW9uKCkuZGV0YWNoRnJvbURvY3VtZW50KG1fZG9jdW1lbnQuZ2V0KCkp
OworICAgIG1fdmlldy0+ZnJhbWUoKS5sZWdhY3lBbmltYXRpb24oKS5kZXRhY2hGcm9tRG9jdW1l
bnQobV9kb2N1bWVudC5nZXQoKSk7CiAKICAgICAvLyBGSVhNRTogV2h5IGRvIHdlIG5lZWQgdG8g
Y2FsbCByZW1vdmVBbGxFdmVudExpc3RlbmVycyBoZXJlPyBXaGVuIHRoZSBkb2N1bWVudCBpcyBp
biBiYWNrL2ZvcndhcmQgY2FjaGUsIHRoaXMgbWV0aG9kIHdvbid0IHdvcmsKICAgICAvLyBmdWxs
eSBhbnl3YXksIGJlY2F1c2UgdGhlIGRvY3VtZW50IHdvbid0IGJlIGFibGUgdG8gYWNjZXNzIGl0
cyBET01XaW5kb3cgb2JqZWN0IChkdWUgdG8gYmVpbmcgZnJhbWVsZXNzKS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAKaW5kZXggMzg1ZTM3YTZkMGM5MGU2MzNhM2I3YjQyODcyYzYxNmUzODA4NjQyNi4uMWE2
MDg5NjYzNDZkMTM2ODJiOTNiOTBkMjZjNzc5YzIyZGZiY2YxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKQEAgLTcyMyw3ICs3MjMsNyBAQCB2b2lkIEZyYW1lOjpjbGVhclRpbWVycyhGcmFtZVZpZXcg
KnZpZXcsIERvY3VtZW50ICpkb2N1bWVudCkKICAgICAgICAgICAgIGlmIChhdXRvKiB0aW1lbGlu
ZSA9IGRvY3VtZW50LT5leGlzdGluZ1RpbWVsaW5lKCkpCiAgICAgICAgICAgICAgICAgdGltZWxp
bmUtPnN1c3BlbmRBbmltYXRpb25zKCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgdmll
dy0+ZnJhbWUoKS5hbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9uc0ZvckRvY3VtZW50KGRvY3Vt
ZW50KTsKKyAgICAgICAgICAgIHZpZXctPmZyYW1lKCkubGVnYWN5QW5pbWF0aW9uKCkuc3VzcGVu
ZEFuaW1hdGlvbnNGb3JEb2N1bWVudChkb2N1bWVudCk7CiAgICAgICAgIHZpZXctPmZyYW1lKCku
ZXZlbnRIYW5kbGVyKCkuc3RvcEF1dG9zY3JvbGxUaW1lcigpOwogICAgIH0KIH0KQEAgLTEwMTgs
NyArMTAxOCw3IEBAIHZvaWQgRnJhbWU6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRp
b25zKCkKICAgICAgICAgaWYgKGF1dG8qIHRpbWVsaW5lID0gbV9kb2MtPmV4aXN0aW5nVGltZWxp
bmUoKSkKICAgICAgICAgICAgIHRpbWVsaW5lLT5yZXN1bWVBbmltYXRpb25zKCk7CiAgICAgfSBl
bHNlCi0gICAgICAgIGFuaW1hdGlvbigpLnJlc3VtZUFuaW1hdGlvbnNGb3JEb2N1bWVudChtX2Rv
Yy5nZXQoKSk7CisgICAgICAgIGxlZ2FjeUFuaW1hdGlvbigpLnJlc3VtZUFuaW1hdGlvbnNGb3JE
b2N1bWVudChtX2RvYy5nZXQoKSk7CiAgICAgaWYgKG1fdmlldykKICAgICAgICAgbV92aWV3LT5s
YXlvdXRDb250ZXh0KCkuc2NoZWR1bGVMYXlvdXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCBm
MmFlMDc4NmFmZGUxNTExYzIxYzcyMDk2OTBjZDU0MzRmMDM1OTFmLi5lOWNhYjNjYzBmOWVjYmRh
MWMxMTgyZTNhYTc1ZDRjNWM2YTJlYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0xNzIsOCArMTcy
LDggQEAgcHVibGljOgogICAgIEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSB7IHJldHVybiBt
X3NlbGVjdGlvbjsgfQogICAgIGNvbnN0IEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25z
dCB7IHJldHVybiBtX3NlbGVjdGlvbjsgfQogICAgIEZyYW1lVHJlZSYgdHJlZSgpIGNvbnN0Owot
ICAgIENTU0FuaW1hdGlvbkNvbnRyb2xsZXImIGFuaW1hdGlvbigpIHsgcmV0dXJuIG1fYW5pbWF0
aW9uQ29udHJvbGxlcjsgfQotICAgIGNvbnN0IENTU0FuaW1hdGlvbkNvbnRyb2xsZXImIGFuaW1h
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW9uQ29udHJvbGxlcjsgfQorICAgIENTU0Fu
aW1hdGlvbkNvbnRyb2xsZXImIGxlZ2FjeUFuaW1hdGlvbigpIHsgcmV0dXJuIG1fYW5pbWF0aW9u
Q29udHJvbGxlcjsgfQorICAgIGNvbnN0IENTU0FuaW1hdGlvbkNvbnRyb2xsZXImIGxlZ2FjeUFu
aW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW9uQ29udHJvbGxlcjsgfQogICAgIFNj
cmlwdENvbnRyb2xsZXImIHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0OyB9CiAgICAgY29uc3Qg
U2NyaXB0Q29udHJvbGxlciYgc2NyaXB0KCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHQ7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGVlNWU1M2E3NGQ3ZDZhYjdjMDVmOGI0Yzhm
MDAwNzAzZDJiNjJmYTQuLjI1ZmU5M2E4ZGUyMGFhNjU3OTQ2OTY2NjA3NjM2YzBiNDc5ODYzNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTU5MCw3ICs1OTAsNyBAQCB2b2lkIEZy
YW1lVmlldzo6ZGlkRGVzdHJveVJlbmRlclRyZWUoKQogICAgIEFTU0VSVCghbV92aWV3cG9ydENv
bnN0cmFpbmVkT2JqZWN0cyB8fCBtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzLT5jb21wdXRl
c0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9zbG93UmVwYWludE9iamVjdHMgfHwgbV9zbG93UmVw
YWludE9iamVjdHMtPmNvbXB1dGVzRW1wdHkoKSk7CiAKLSAgICBBU1NFUlQoIWZyYW1lKCkuYW5p
bWF0aW9uKCkuaGFzQW5pbWF0aW9ucygpKTsKKyAgICBBU1NFUlQoIWZyYW1lKCkubGVnYWN5QW5p
bWF0aW9uKCkuaGFzQW5pbWF0aW9ucygpKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnNldENvbnRl
bnRzU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtNDM3Miw3ICs0MzcyLDcgQEAgdm9pZCBG
cmFtZVZpZXc6OnVwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUoKQogICAgIC8v
IFN0eWxlIHVwZGF0ZXMgY2FuIHRyaWdnZXIgc2NyaXB0LCB3aGljaCBjYW4gY2F1c2UgdGhpcyBG
cmFtZVZpZXcgdG8gYmUgZGVzdHJveWVkLgogICAgIFJlZjxGcmFtZVZpZXc+IHByb3RlY3RlZFRo
aXMoKnRoaXMpOwogCi0gICAgQW5pbWF0aW9uVXBkYXRlQmxvY2sgYW5pbWF0aW9uVXBkYXRlQmxv
Y2soJmZyYW1lKCkuYW5pbWF0aW9uKCkpOworICAgIEFuaW1hdGlvblVwZGF0ZUJsb2NrIGFuaW1h
dGlvblVwZGF0ZUJsb2NrKCZmcmFtZSgpLmxlZ2FjeUFuaW1hdGlvbigpKTsKIAogICAgIHVzaW5n
IERlc2NlbmRhbnRzRGVxdWUgPSBEZXF1ZTxSZWY8RnJhbWVWaWV3PiwgMTY+OwogICAgIGF1dG8g
bmV4dFJlbmRlcmVkRGVzY2VuZGFudCA9IFt0aGlzXSAoRGVzY2VuZGFudHNEZXF1ZSYgZGVzY2Vu
ZGFudHNEZXF1ZSkgLT4gUmVmUHRyPEZyYW1lVmlldz4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKaW5kZXggYzMwNGNmMWNlMTZlMDZhNGYwNTM2
NzFmYmE3OGNlMGZjZTg2MzdlMS4uMzQxNDdmYmFhYzExNTQxYTRhMGUzNGUzMmZiYjQ3NTE5MjVh
NTIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQu
Y3BwCkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpsYXlv
dXQoKQogICAgIExheW91dFNjb3BlIGxheW91dFNjb3BlKCp0aGlzKTsKICAgICBUcmFjZVNjb3Bl
IHRyYWNpbmdTY29wZShMYXlvdXRTdGFydCwgTGF5b3V0RW5kKTsKICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxMYXlvdXQodmlldygpLmZyYW1lKCkpOwotICAgIEFuaW1hdGlvblVw
ZGF0ZUJsb2NrIGFuaW1hdGlvblVwZGF0ZUJsb2NrKCZ2aWV3KCkuZnJhbWUoKS5hbmltYXRpb24o
KSk7CisgICAgQW5pbWF0aW9uVXBkYXRlQmxvY2sgYW5pbWF0aW9uVXBkYXRlQmxvY2soJnZpZXco
KS5mcmFtZSgpLmxlZ2FjeUFuaW1hdGlvbigpKTsKICAgICBXZWFrUHRyPFJlbmRlckVsZW1lbnQ+
IGxheW91dFJvb3Q7CiAgICAgCiAgICAgbV9sYXlvdXRUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCBlZTE5NjcxODQ2MjZhYWU5NTMwYjEzOTg1ZDhlYTdhZWM4YzdiODBiLi4wNmZj
MDIyMGRmNjMxMGY1MTA4YTYyNzc2NDBjZjkxZDYzNjc4NzM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTE0ODcsNyArMTQ4Nyw3IEBAIHZvaWQgUGFnZTo6aGFuZGxlTG93TW9kZVBvd2VyQ2hhbmdl
KGJvb2wgaXNMb3dQb3dlck1vZGVFbmFibGVkKQogICAgICAgICAgICAgICAgIHRpbWVsaW5lLT51
cGRhdGVUaHJvdHRsaW5nU3RhdGUoKTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlCi0gICAgICAg
IG1haW5GcmFtZSgpLmFuaW1hdGlvbigpLnVwZGF0ZVRocm90dGxpbmdTdGF0ZSgpOworICAgICAg
ICBtYWluRnJhbWUoKS5sZWdhY3lBbmltYXRpb24oKS51cGRhdGVUaHJvdHRsaW5nU3RhdGUoKTsK
ICAgICB1cGRhdGVET01UaW1lckFsaWdubWVudEludGVydmFsKCk7CiB9CiAKQEAgLTIwMzMsNyAr
MjAzMyw3IEBAIHZvaWQgUGFnZTo6c2V0SXNWaXNpYmxlSW50ZXJuYWwoYm9vbCBpc1Zpc2libGUp
CiAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lbGluZS0+cmVzdW1lQW5pbWF0aW9ucygpOwog
ICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAg
bWFpbkZyYW1lKCkuYW5pbWF0aW9uKCkucmVzdW1lQW5pbWF0aW9ucygpOworICAgICAgICAgICAg
ICAgIG1haW5GcmFtZSgpLmxlZ2FjeUFuaW1hdGlvbigpLnJlc3VtZUFuaW1hdGlvbnMoKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50
KSB7CkBAIC0yMDU3LDcgKzIwNTcsNyBAQCB2b2lkIFBhZ2U6OnNldElzVmlzaWJsZUludGVybmFs
KGJvb2wgaXNWaXNpYmxlKQogICAgICAgICAgICAgICAgICAgICAgICAgdGltZWxpbmUtPnN1c3Bl
bmRBbmltYXRpb25zKCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgICAgICBtYWluRnJhbWUoKS5hbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9u
cygpOworICAgICAgICAgICAgICAgIG1haW5GcmFtZSgpLmxlZ2FjeUFuaW1hdGlvbigpLnN1c3Bl
bmRBbmltYXRpb25zKCk7CiAgICAgICAgIH0KIAogICAgICAgICBmb3JFYWNoRG9jdW1lbnQoW10g
KERvY3VtZW50JiBkb2N1bWVudCkgewpAQCAtMjQxMyw5ICsyNDEzLDkgQEAgdm9pZCBQYWdlOjpo
aWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvblN0YXRlQ2hhbmdlZCgpCiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChtX3NldHRpbmdzLT5oaWRk
ZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWQoKSkKLSAgICAgICAgICAgICAgICBt
YWluRnJhbWUoKS5hbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9ucygpOworICAgICAgICAgICAg
ICAgIG1haW5GcmFtZSgpLmxlZ2FjeUFuaW1hdGlvbigpLnN1c3BlbmRBbmltYXRpb25zKCk7CiAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbWFpbkZyYW1lKCkuYW5pbWF0aW9uKCku
cmVzdW1lQW5pbWF0aW9ucygpOworICAgICAgICAgICAgICAgIG1haW5GcmFtZSgpLmxlZ2FjeUFu
aW1hdGlvbigpLnJlc3VtZUFuaW1hdGlvbnMoKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJv
bGxlci5jcHAKaW5kZXggMTFkYjA2MDA1YzMwOTY1MWJjMGQ3YTVjN2M5OTM3YjdhY2VkMjA0Ny4u
MDAyYWM5ZGE3OGQzMjZjNTg0MTUyZjIzOWYyN2RlODM0MTJmNjE3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
Ojp1cGRhdGVUaHJvdHRsaW5nU3RhdGUoKQogICAgIHVwZGF0ZUFuaW1hdGlvblRpbWVyKCk7CiAK
ICAgICBmb3IgKGF1dG8qIGNoaWxkRnJhbWUgPSBtX2ZyYW1lLnRyZWUoKS5maXJzdENoaWxkKCk7
IGNoaWxkRnJhbWU7IGNoaWxkRnJhbWUgPSBjaGlsZEZyYW1lLT50cmVlKCkubmV4dFNpYmxpbmco
KSkKLSAgICAgICAgY2hpbGRGcmFtZS0+YW5pbWF0aW9uKCkudXBkYXRlVGhyb3R0bGluZ1N0YXRl
KCk7CisgICAgICAgIGNoaWxkRnJhbWUtPmxlZ2FjeUFuaW1hdGlvbigpLnVwZGF0ZVRocm90dGxp
bmdTdGF0ZSgpOwogfQogCiBTZWNvbmRzIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjph
bmltYXRpb25JbnRlcnZhbCgpIGNvbnN0CkBAIC0zNDAsNyArMzQwLDcgQEAgdm9pZCBDU1NBbmlt
YXRpb25Db250cm9sbGVyUHJpdmF0ZTo6c3VzcGVuZEFuaW1hdGlvbnMoKQogCiAgICAgLy8gVHJh
dmVyc2Ugc3ViZnJhbWVzCiAgICAgZm9yIChGcmFtZSogY2hpbGQgPSBtX2ZyYW1lLnRyZWUoKS5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCkubmV4dFNpYmxpbmcoKSkK
LSAgICAgICAgY2hpbGQtPmFuaW1hdGlvbigpLnN1c3BlbmRBbmltYXRpb25zKCk7CisgICAgICAg
IGNoaWxkLT5sZWdhY3lBbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9ucygpOwogCiAgICAgbV9p
c1N1c3BlbmRlZCA9IHRydWU7CiB9CkBAIC0zNTQsNyArMzU0LDcgQEAgdm9pZCBDU1NBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6cmVzdW1lQW5pbWF0aW9ucygpCiAKICAgICAvLyBUcmF2ZXJz
ZSBzdWJmcmFtZXMKICAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IG1fZnJhbWUudHJlZSgpLmZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGluZygpKQotICAg
ICAgICBjaGlsZC0+YW5pbWF0aW9uKCkucmVzdW1lQW5pbWF0aW9ucygpOworICAgICAgICBjaGls
ZC0+bGVnYWN5QW5pbWF0aW9uKCkucmVzdW1lQW5pbWF0aW9ucygpOwogCiAgICAgbV9pc1N1c3Bl
bmRlZCA9IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
aW5kZXggNzgzNzQ2ZjQ1NjIwMjg0YmE5OGRjOThhNmUyM2I4NTI5NDNiYjBlMC4uMTRkMTljZmVm
OTIxM2VkN2MzM2M2OTUwMDlhNzA4OWUwMDI0ZDAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xMzU5LDkgKzEzNTksOSBAQCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybShSZW5kZXJTdHlsZTo6QXBwbHlUcmFu
c2Zvcm1PcgogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
aWYgKHJlbmRlcmVyKCkuYW5pbWF0aW9uKCkuaXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25P
blJlbmRlcmVyKHJlbmRlcmVyKCksIENTU1Byb3BlcnR5VHJhbnNmb3JtKSkgeworICAgICAgICBp
ZiAocmVuZGVyZXIoKS5sZWdhY3lBbmltYXRpb24oKS5pc1J1bm5pbmdBY2NlbGVyYXRlZEFuaW1h
dGlvbk9uUmVuZGVyZXIocmVuZGVyZXIoKSwgQ1NTUHJvcGVydHlUcmFuc2Zvcm0pKSB7CiAgICAg
ICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjdXJyVHJhbnNmb3JtOwotICAgICAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IHJlbmRlcmVyKCkuYW5pbWF0aW9u
KCkuYW5pbWF0ZWRTdHlsZUZvclJlbmRlcmVyKHJlbmRlcmVyKCkpOworICAgICAgICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZSA9IHJlbmRlcmVyKCkubGVnYWN5QW5pbWF0
aW9uKCkuYW5pbWF0ZWRTdHlsZUZvclJlbmRlcmVyKHJlbmRlcmVyKCkpOwogICAgICAgICAgICAg
TGF5b3V0U2l6ZSBvZmZzZXRGcm9tUm9vdDsKICAgICAgICAgICAgIGF1dG8gY29tcHV0ZWRSZWZl
cmVuY2VCb3ggPSBjb21wdXRlUmVmZXJlbmNlQm94KHJlbmRlcmVyKCksIHRyYW5zZm9ybUJveFRv
Q1NTQm94VHlwZShzdHlsZS0+dHJhbnNmb3JtQm94KCkpLCBvZmZzZXRGcm9tUm9vdCwgYm94LT5i
b3JkZXJCb3hSZWN0KCkpOwogICAgICAgICAgICAgRmxvYXRSZWN0IHBpeGVsU25hcHBlZEJvcmRl
clJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGNvbXB1dGVkUmVmZXJlbmNlQm94LCBib3gt
PmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSk7CkBAIC0xMzc2LDcgKzEzNzYsNyBAQCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybShSZW5kZXJT
dHlsZTo6QXBwbHlUcmFuc2Zvcm1PcgogICAgIGlmIChhcHBseU9yaWdpbiA9PSBSZW5kZXJTdHls
ZTo6RXhjbHVkZVRyYW5zZm9ybU9yaWdpbikgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBjdXJyVHJhbnNmb3JtOwogICAgICAgICBMYXlvdXRTaXplIG9mZnNldEZyb21Sb290OwotICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gcmVuZGVyZXIoKS5hbmlt
YXRpb24oKS5hbmltYXRlZFN0eWxlRm9yUmVuZGVyZXIocmVuZGVyZXIoKSk7CisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSByZW5kZXJlcigpLmxlZ2FjeUFuaW1h
dGlvbigpLmFuaW1hdGVkU3R5bGVGb3JSZW5kZXJlcihyZW5kZXJlcigpKTsKICAgICAgICAgYXV0
byBjb21wdXRlZFJlZmVyZW5jZUJveCA9IGNvbXB1dGVSZWZlcmVuY2VCb3gocmVuZGVyZXIoKSwg
dHJhbnNmb3JtQm94VG9DU1NCb3hUeXBlKHN0eWxlLT50cmFuc2Zvcm1Cb3goKSksIG9mZnNldEZy
b21Sb290LCBib3gtPmJvcmRlckJveFJlY3QoKSk7CiAgICAgICAgIEZsb2F0UmVjdCBwaXhlbFNu
YXBwZWRCb3JkZXJSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhjb21wdXRlZFJlZmVyZW5j
ZUJveCwgYm94LT5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwogICAgICAgICBib3gt
PnN0eWxlKCkuYXBwbHlUcmFuc2Zvcm0oY3VyclRyYW5zZm9ybSwgcGl4ZWxTbmFwcGVkQm9yZGVy
UmVjdCwgUmVuZGVyU3R5bGU6OkV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4pOwpAQCAtNjEzNiw3ICs2
MTM2LDcgQEAgYm9vbCBSZW5kZXJMYXllcjo6Z2V0T3ZlcmxhcEJvdW5kc0luY2x1ZGluZ0NoaWxk
cmVuQWNjb3VudGluZ0ZvclRyYW5zZm9ybUFuaW1hdGkKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChyZW5kZXJlcigpLmFuaW1hdGlvbigpLmNvbXB1
dGVFeHRlbnRPZkFuaW1hdGlvbihyZW5kZXJlcigpLCBhbmltYXRlZEJvdW5kcykpIHsKKyAgICAg
ICAgaWYgKHJlbmRlcmVyKCkubGVnYWN5QW5pbWF0aW9uKCkuY29tcHV0ZUV4dGVudE9mQW5pbWF0
aW9uKHJlbmRlcmVyKCksIGFuaW1hdGVkQm91bmRzKSkgewogICAgICAgICAgICAgYm91bmRzID0g
YW5pbWF0ZWRCb3VuZHM7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAz
NDg3NTgwNmYyMGUzZjkyODE2ZTJmMTAzOGJiOWRjODJiNmEwMWZjLi5lMzkzMzdiZTYzMDU4NWFl
MTYxZjQ2NmY1ZTdmZGNlNzA3ODBhZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTE3Miw3ICsxMTcyLDcgQEAgdm9pZCBSZW5k
ZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3Np
dGVkQW5jZXN0b3IpCiAgICAgICAgIGlmIChhdXRvKiB0aW1lbGluZSA9IHJlbmRlcmVyKCkuZG9j
dW1lbnRUaW1lbGluZSgpKQogICAgICAgICAgICAgaXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zv
cm1BbmltYXRpb24gPSB0aW1lbGluZS0+aXNSdW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb25PblJl
bmRlcmVyKHJlbmRlcmVyKCksIENTU1Byb3BlcnR5VHJhbnNmb3JtKTsKICAgICB9IGVsc2UKLSAg
ICAgICAgaXNSdW5uaW5nQWNjZWxlcmF0ZWRUcmFuc2Zvcm1BbmltYXRpb24gPSByZW5kZXJlcigp
LmFuaW1hdGlvbigpLmlzUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uT25SZW5kZXJlcihyZW5k
ZXJlcigpLCBDU1NQcm9wZXJ0eVRyYW5zZm9ybSk7CisgICAgICAgIGlzUnVubmluZ0FjY2VsZXJh
dGVkVHJhbnNmb3JtQW5pbWF0aW9uID0gcmVuZGVyZXIoKS5sZWdhY3lBbmltYXRpb24oKS5pc1J1
bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbk9uUmVuZGVyZXIocmVuZGVyZXIoKSwgQ1NTUHJvcGVy
dHlUcmFuc2Zvcm0pOwogCiAgICAgdXBkYXRlVHJhbnNmb3JtKHN0eWxlKTsKICAgICB1cGRhdGVP
cGFjaXR5KHN0eWxlKTsKQEAgLTM1MTUsNyArMzUxNSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNr
aW5nOjp0cmFuc2l0aW9uRmluaXNoZWQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkKIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqLCBjb25zdCBTdHJpbmcmLCBNb25vdG9uaWNUaW1lIHRpbWUpCiB7CiAgICAgaWYgKCFSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkFuaW1hdGlvbnNDU1NJbnRl
Z3JhdGlvbkVuYWJsZWQoKSkKLSAgICAgICAgcmVuZGVyZXIoKS5hbmltYXRpb24oKS5ub3RpZnlB
bmltYXRpb25TdGFydGVkKHJlbmRlcmVyKCksIHRpbWUpOworICAgICAgICByZW5kZXJlcigpLmxl
Z2FjeUFuaW1hdGlvbigpLm5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQocmVuZGVyZXIoKSwgdGltZSk7
CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA1NWEzMmQxODQxYTgwNTk5NzgyOGRhODk0NzFjOGI5
ODI2MmI4MzYyLi40Njg5MjgxMTIwYmFlZmQ1YzY0MDgzY2M3NjhiMTBmYmU1NWQxMDZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cApAQCAtNTM2LDcgKzUzNiw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBl
bmRpbmdMYXllckNoYW5nZXMoYm9vbCBpc0ZsdXNoUm9vdCkKICAgICB9CiAKICAgICBhdXRvJiBm
cmFtZVZpZXcgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7Ci0gICAgQW5pbWF0aW9uVXBkYXRl
QmxvY2sgYW5pbWF0aW9uVXBkYXRlQmxvY2soJmZyYW1lVmlldy5mcmFtZSgpLmFuaW1hdGlvbigp
KTsKKyAgICBBbmltYXRpb25VcGRhdGVCbG9jayBhbmltYXRpb25VcGRhdGVCbG9jaygmZnJhbWVW
aWV3LmZyYW1lKCkubGVnYWN5QW5pbWF0aW9uKCkpOwogCiAgICAgQVNTRVJUKCFtX2ZsdXNoaW5n
TGF5ZXJzKTsKICAgICB7CkBAIC03NzYsNyArNzc2LDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZSB1cGRh
dGUKIAogICAgICsrbV9jb21wb3NpdGluZ1VwZGF0ZUNvdW50OwogCi0gICAgQW5pbWF0aW9uVXBk
YXRlQmxvY2sgYW5pbWF0aW9uVXBkYXRlQmxvY2soJm1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5m
cmFtZSgpLmFuaW1hdGlvbigpKTsKKyAgICBBbmltYXRpb25VcGRhdGVCbG9jayBhbmltYXRpb25V
cGRhdGVCbG9jaygmbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLmZyYW1lKCkubGVnYWN5QW5pbWF0
aW9uKCkpOwogCiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gcG9zdExheW91dENoYW5nZShtX2luUG9z
dExheW91dFVwZGF0ZSwgdHJ1ZSk7CiAKQEAgLTI4NTEsNyArMjg1MSw3IEBAIGJvb2wgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yQW5pbWF0aW9uKFJlbmRlckxh
eWVyTW9kZWxPYmplCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkud2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZCgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBhdXRvJiBhbmltQ29udHJvbGxlciA9IHJlbmRlcmVyLmFuaW1hdGlv
bigpOworICAgIGF1dG8mIGFuaW1Db250cm9sbGVyID0gcmVuZGVyZXIubGVnYWN5QW5pbWF0aW9u
KCk7CiAgICAgcmV0dXJuIChhbmltQ29udHJvbGxlci5pc1J1bm5pbmdBbmltYXRpb25PblJlbmRl
cmVyKHJlbmRlcmVyLCBDU1NQcm9wZXJ0eU9wYWNpdHkpCiAgICAgICAgICYmICh1c2VzQ29tcG9z
aXRpbmcoKSB8fCAobV9jb21wb3NpdGluZ1RyaWdnZXJzICYgQ2hyb21lQ2xpZW50OjpBbmltYXRl
ZE9wYWNpdHlUcmlnZ2VyKSkpCiAgICAgICAgIHx8IGFuaW1Db250cm9sbGVyLmlzUnVubmluZ0Fu
aW1hdGlvbk9uUmVuZGVyZXIocmVuZGVyZXIsIENTU1Byb3BlcnR5RmlsdGVyKQpAQCAtMzQwMSw3
ICszNDAxLDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzUnVubmluZ1RyYW5zZm9y
bUFuaW1hdGlvbihSZW5kZXJMYXllck1vZGVsT2JqZWN0JgogICAgIGlmIChSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVu
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIHJlbmRlcmVyLmFu
aW1hdGlvbigpLmlzUnVubmluZ0FuaW1hdGlvbk9uUmVuZGVyZXIocmVuZGVyZXIsIENTU1Byb3Bl
cnR5VHJhbnNmb3JtKTsKKyAgICByZXR1cm4gcmVuZGVyZXIubGVnYWN5QW5pbWF0aW9uKCkuaXNS
dW5uaW5nQW5pbWF0aW9uT25SZW5kZXJlcihyZW5kZXJlciwgQ1NTUHJvcGVydHlUcmFuc2Zvcm0p
OwogfQogCiAvLyBJZiBhbiBlbGVtZW50IGhhcyBjb21wb3NpdGVkIG5lZ2F0aXZlIHotaW5kZXgg
Y2hpbGRyZW4sIHRob3NlIGNoaWxkcmVuIHJlbmRlciBpbiBmcm9udCBvZiB0aGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCBlYjhiNDJjY2ViNWZlNDRjOGQ0MDA4
OWE3MDBkNzgzODYyYzBmOTM2Li5kN2M0MWMzMzY4NjUxNzQ3Y2QxOTg1YzNhYjkwMzQ1ODJmNzA2
NGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC02OTMsNyAr
NjkzLDcgQEAgcHVibGljOgogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29u
c3QgSW50UmVjdCogPSBudWxscHRyKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VD
aGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSBudWxscHRyKSB7IH0KIAot
ICAgIENTU0FuaW1hdGlvbkNvbnRyb2xsZXImIGFuaW1hdGlvbigpIGNvbnN0OworICAgIENTU0Fu
aW1hdGlvbkNvbnRyb2xsZXImIGxlZ2FjeUFuaW1hdGlvbigpIGNvbnN0OwogICAgIERvY3VtZW50
VGltZWxpbmUqIGRvY3VtZW50VGltZWxpbmUoKSBjb25zdDsKIAogICAgIC8vIE1hcCBwb2ludHMg
YW5kIHF1YWRzIHRocm91Z2ggZWxlbWVudHMsIHBvdGVudGlhbGx5IHZpYSAzZCB0cmFuc2Zvcm1z
LiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gY2FsbCB0aGVzZSBkaXJlY3RseTsgdXNlCkBAIC05
NDksOSArOTQ5LDkgQEAgaW5saW5lIFBhZ2UmIFJlbmRlck9iamVjdDo6cGFnZSgpIGNvbnN0CiAg
ICAgcmV0dXJuICpmcmFtZSgpLnBhZ2UoKTsKIH0KIAotaW5saW5lIENTU0FuaW1hdGlvbkNvbnRy
b2xsZXImIFJlbmRlck9iamVjdDo6YW5pbWF0aW9uKCkgY29uc3QKK2lubGluZSBDU1NBbmltYXRp
b25Db250cm9sbGVyJiBSZW5kZXJPYmplY3Q6OmxlZ2FjeUFuaW1hdGlvbigpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIGZyYW1lKCkuYW5pbWF0aW9uKCk7CisgICAgcmV0dXJuIGZyYW1lKCkubGVnYWN5
QW5pbWF0aW9uKCk7CiB9CiAKIGlubGluZSBEb2N1bWVudFRpbWVsaW5lKiBSZW5kZXJPYmplY3Q6
OmRvY3VtZW50VGltZWxpbmUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKaW5kZXggYTViN2ZiY2JhZDNl
ODE4OWIyZmRkNjQwYWQ2YTRhY2FkYjg2Mjk2Zi4uZGQ2NGZkZWQ3ZDBhZWVhOTE0ZmYyOTQwMGZk
YjM4ODNlZmY0MDg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCkBAIC01NTgsNyArNTU4LDcgQEAgdm9pZCBS
ZW5kZXJUcmVlVXBkYXRlcjo6dGVhckRvd25SZW5kZXJlcnMoRWxlbWVudCYgcm9vdCwgVGVhcmRv
d25UeXBlIHRlYXJkb3duVHkKIAogICAgIGF1dG8mIGRvY3VtZW50ID0gcm9vdC5kb2N1bWVudCgp
OwogICAgIGF1dG8qIHRpbWVsaW5lID0gZG9jdW1lbnQuZXhpc3RpbmdUaW1lbGluZSgpOwotICAg
IGF1dG8mIGFuaW1hdGlvbkNvbnRyb2xsZXIgPSBkb2N1bWVudC5mcmFtZSgpLT5hbmltYXRpb24o
KTsgICAgCisgICAgYXV0byYgYW5pbWF0aW9uQ29udHJvbGxlciA9IGRvY3VtZW50LmZyYW1lKCkt
PmxlZ2FjeUFuaW1hdGlvbigpOyAgICAKIAogICAgIGF1dG8gcG9wID0gWyZdICh1bnNpZ25lZCBk
ZXB0aCkgewogICAgICAgICB3aGlsZSAodGVhcmRvd25TdGFjay5zaXplKCkgPiBkZXB0aCkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCmluZGV4IDNlOGYzYzky
MDhkZDRjMzg3YjViZTY2NjNkYzc3MzZmZWU4OWY0MmIuLjE2NzFkZGE2YjI0M2U1NDFmZTAwNjQ0
YzQ5NTYzNDZlOWQ1NDA0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VHJlZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNv
bHZlci5jcHAKQEAgLTMzMiw3ICszMzIsNyBAQCBFbGVtZW50VXBkYXRlIFRyZWVSZXNvbHZlcjo6
Y3JlYXRlQW5pbWF0ZWRFbGVtZW50VXBkYXRlKHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdAogCiAg
ICAgLy8gT2xkIGNvZGUgcGF0aCBmb3IgQ1NTIEFuaW1hdGlvbnMgYW5kIENTUyBUcmFuc2l0aW9u
cy4KICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Vi
QW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8mIGFuaW1h
dGlvbkNvbnRyb2xsZXIgPSBtX2RvY3VtZW50LmZyYW1lKCktPmFuaW1hdGlvbigpOworICAgICAg
ICBhdXRvJiBhbmltYXRpb25Db250cm9sbGVyID0gbV9kb2N1bWVudC5mcmFtZSgpLT5sZWdhY3lB
bmltYXRpb24oKTsKIAogICAgICAgICBhdXRvIGFuaW1hdGlvblVwZGF0ZSA9IGFuaW1hdGlvbkNv
bnRyb2xsZXIudXBkYXRlQW5pbWF0aW9ucyhlbGVtZW50LCAqbmV3U3R5bGUsIG9sZFN0eWxlKTsK
ICAgICAgICAgYW5pbWF0aW9uSW1wYWN0LmFkZChhbmltYXRpb25VcGRhdGUuaW1wYWN0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1ZDE5MTczMTJjODQ5ZWY1YTVmZWZl
MTkxZDMwNWUwNDQyODc0YjU3Li5jNzRlNGIxZmUzOGJkNTNkMGMzZjk4N2MyYTQ1ZjE4NTg1YjZh
ZjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMDU5LDcgKzEwNTks
NyBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0
CiB7CiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Vi
QW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZnJhbWUo
KS0+ZG9jdW1lbnQoKS0+dGltZWxpbmUoKS5udW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnNGb3JUZXN0
aW5nKCk7Ci0gICAgcmV0dXJuIGZyYW1lKCktPmFuaW1hdGlvbigpLm51bWJlck9mQWN0aXZlQW5p
bWF0aW9ucyhmcmFtZSgpLT5kb2N1bWVudCgpKTsKKyAgICByZXR1cm4gZnJhbWUoKS0+bGVnYWN5
QW5pbWF0aW9uKCkubnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKGZyYW1lKCktPmRvY3VtZW50KCkp
OwogfQogCiBFeGNlcHRpb25Pcjxib29sPiBJbnRlcm5hbHM6OmFuaW1hdGlvbnNBcmVTdXNwZW5k
ZWQoKSBjb25zdApAQCAtMTA3MCw3ICsxMDcwLDcgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gSW50ZXJu
YWxzOjphbmltYXRpb25zQXJlU3VzcGVuZGVkKCkgY29uc3QKIAogICAgIGlmIChSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlv
bkVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGRvY3VtZW50LT50aW1lbGluZSgpLmFuaW1hdGlv
bnNBcmVTdXNwZW5kZWQoKTsKLSAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPmFuaW1hdGlv
bigpLmFuaW1hdGlvbnNBcmVTdXNwZW5kZWRGb3JEb2N1bWVudChkb2N1bWVudCk7CisgICAgcmV0
dXJuIGRvY3VtZW50LT5mcmFtZSgpLT5sZWdhY3lBbmltYXRpb24oKS5hbmltYXRpb25zQXJlU3Vz
cGVuZGVkRm9yRG9jdW1lbnQoZG9jdW1lbnQpOwogfQogCiBkb3VibGUgSW50ZXJuYWxzOjphbmlt
YXRpb25zSW50ZXJ2YWwoKSBjb25zdApAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgZG91YmxlIEludGVy
bmFsczo6YW5pbWF0aW9uc0ludGVydmFsKCkgY29uc3QKIAogICAgIGlmICghZG9jdW1lbnQtPmZy
YW1lKCkpCiAgICAgICAgIHJldHVybiBJTkZJTklUWTsKLSAgICByZXR1cm4gZG9jdW1lbnQtPmZy
YW1lKCktPmFuaW1hdGlvbigpLmFuaW1hdGlvbkludGVydmFsKCkudmFsdWUoKTsKKyAgICByZXR1
cm4gZG9jdW1lbnQtPmZyYW1lKCktPmxlZ2FjeUFuaW1hdGlvbigpLmFuaW1hdGlvbkludGVydmFs
KCkudmFsdWUoKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpzdXNwZW5kQW5p
bWF0aW9ucygpIGNvbnN0CkBAIC0xMTAzLDExICsxMTAzLDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEludGVybmFsczo6c3VzcGVuZEFuaW1hdGlvbnMoKSBjb25zdAogICAgICAgICAgICAgICAgIGRv
Y3VtZW50LT50aW1lbGluZSgpLnN1c3BlbmRBbmltYXRpb25zKCk7CiAgICAgICAgIH0KICAgICB9
IGVsc2UgewotICAgICAgICBkb2N1bWVudC0+ZnJhbWUoKS0+YW5pbWF0aW9uKCkuc3VzcGVuZEFu
aW1hdGlvbnNGb3JEb2N1bWVudChkb2N1bWVudCk7CisgICAgICAgIGRvY3VtZW50LT5mcmFtZSgp
LT5sZWdhY3lBbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9uc0ZvckRvY3VtZW50KGRvY3VtZW50
KTsKIAogICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgICAgICBp
ZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICAg
ICAgZnJhbWUtPmFuaW1hdGlvbigpLnN1c3BlbmRBbmltYXRpb25zRm9yRG9jdW1lbnQoZG9jdW1l
bnQpOworICAgICAgICAgICAgICAgIGZyYW1lLT5sZWdhY3lBbmltYXRpb24oKS5zdXNwZW5kQW5p
bWF0aW9uc0ZvckRvY3VtZW50KGRvY3VtZW50KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTEy
NywxMSArMTEyNywxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnJlc3VtZUFuaW1h
dGlvbnMoKSBjb25zdAogICAgICAgICAgICAgICAgIGRvY3VtZW50LT50aW1lbGluZSgpLnJlc3Vt
ZUFuaW1hdGlvbnMoKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvY3VtZW50
LT5mcmFtZSgpLT5hbmltYXRpb24oKS5yZXN1bWVBbmltYXRpb25zRm9yRG9jdW1lbnQoZG9jdW1l
bnQpOworICAgICAgICBkb2N1bWVudC0+ZnJhbWUoKS0+bGVnYWN5QW5pbWF0aW9uKCkucmVzdW1l
QW5pbWF0aW9uc0ZvckRvY3VtZW50KGRvY3VtZW50KTsKIAogICAgICAgICBmb3IgKEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dCgpKSB7CiAgICAgICAgICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJh
bWUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICAgICAgZnJhbWUtPmFuaW1hdGlvbigpLnJlc3Vt
ZUFuaW1hdGlvbnNGb3JEb2N1bWVudChkb2N1bWVudCk7CisgICAgICAgICAgICAgICAgZnJhbWUt
PmxlZ2FjeUFuaW1hdGlvbigpLnJlc3VtZUFuaW1hdGlvbnNGb3JEb2N1bWVudChkb2N1bWVudCk7
CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTExNDIsNyArMTE0Miw3IEBAIEV4Y2VwdGlvbk9yPGJv
b2w+IEludGVybmFsczo6cGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnQoY29uc3QgU3RyaW5n
JiBhbmltYXRpCiB7CiAgICAgaWYgKHBhdXNlVGltZSA8IDApCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKLSAgICByZXR1cm4gZnJhbWUoKS0+YW5pbWF0
aW9uKCkucGF1c2VBbmltYXRpb25BdFRpbWUoZWxlbWVudCwgQXRvbVN0cmluZyhhbmltYXRpb25O
YW1lKSwgcGF1c2VUaW1lKTsKKyAgICByZXR1cm4gZnJhbWUoKS0+bGVnYWN5QW5pbWF0aW9uKCku
cGF1c2VBbmltYXRpb25BdFRpbWUoZWxlbWVudCwgQXRvbVN0cmluZyhhbmltYXRpb25OYW1lKSwg
cGF1c2VUaW1lKTsKIH0KIAogRXhjZXB0aW9uT3I8Ym9vbD4gSW50ZXJuYWxzOjpwYXVzZUFuaW1h
dGlvbkF0VGltZU9uUHNldWRvRWxlbWVudChjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRv
dWJsZSBwYXVzZVRpbWUsIEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcHNldWRvSWQp
CkBAIC0xMTU3LDE0ICsxMTU3LDE0IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IEludGVybmFsczo6cGF1
c2VBbmltYXRpb25BdFRpbWVPblBzZXVkb0VsZW1lbnQoY29uc3QgU3RyaW5nJiBhCiAgICAgaWYg
KCFwc2V1ZG9FbGVtZW50KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vz
c0Vycm9yIH07CiAKLSAgICByZXR1cm4gZnJhbWUoKS0+YW5pbWF0aW9uKCkucGF1c2VBbmltYXRp
b25BdFRpbWUoKnBzZXVkb0VsZW1lbnQsIEF0b21TdHJpbmcoYW5pbWF0aW9uTmFtZSksIHBhdXNl
VGltZSk7CisgICAgcmV0dXJuIGZyYW1lKCktPmxlZ2FjeUFuaW1hdGlvbigpLnBhdXNlQW5pbWF0
aW9uQXRUaW1lKCpwc2V1ZG9FbGVtZW50LCBBdG9tU3RyaW5nKGFuaW1hdGlvbk5hbWUpLCBwYXVz
ZVRpbWUpOwogfQogCiBFeGNlcHRpb25Pcjxib29sPiBJbnRlcm5hbHM6OnBhdXNlVHJhbnNpdGlv
bkF0VGltZU9uRWxlbWVudChjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIHBhdXNl
VGltZSwgRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBpZiAocGF1c2VUaW1lIDwgMCkKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwotICAgIHJldHVybiBm
cmFtZSgpLT5hbmltYXRpb24oKS5wYXVzZVRyYW5zaXRpb25BdFRpbWUoZWxlbWVudCwgcHJvcGVy
dHlOYW1lLCBwYXVzZVRpbWUpOworICAgIHJldHVybiBmcmFtZSgpLT5sZWdhY3lBbmltYXRpb24o
KS5wYXVzZVRyYW5zaXRpb25BdFRpbWUoZWxlbWVudCwgcHJvcGVydHlOYW1lLCBwYXVzZVRpbWUp
OwogfQogCiBFeGNlcHRpb25Pcjxib29sPiBJbnRlcm5hbHM6OnBhdXNlVHJhbnNpdGlvbkF0VGlt
ZU9uUHNldWRvRWxlbWVudChjb25zdCBTdHJpbmcmIHByb3BlcnR5LCBkb3VibGUgcGF1c2VUaW1l
LCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIHBzZXVkb0lkKQpAQCAtMTE3OSw3ICsx
MTc5LDcgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gSW50ZXJuYWxzOjpwYXVzZVRyYW5zaXRpb25BdFRp
bWVPblBzZXVkb0VsZW1lbnQoY29uc3QgU3RyaW5nJgogICAgIGlmICghcHNldWRvRWxlbWVudCkK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCi0gICAg
cmV0dXJuIGZyYW1lKCktPmFuaW1hdGlvbigpLnBhdXNlVHJhbnNpdGlvbkF0VGltZSgqcHNldWRv
RWxlbWVudCwgcHJvcGVydHksIHBhdXNlVGltZSk7CisgICAgcmV0dXJuIGZyYW1lKCktPmxlZ2Fj
eUFuaW1hdGlvbigpLnBhdXNlVHJhbnNpdGlvbkF0VGltZSgqcHNldWRvRWxlbWVudCwgcHJvcGVy
dHksIHBhdXNlVGltZSk7CiB9CiAKIFZlY3RvcjxJbnRlcm5hbHM6OkFjY2VsZXJhdGVkQW5pbWF0
aW9uPiBJbnRlcm5hbHM6OmFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoRWxlbWVudCYg
ZWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRl
eCA3ZDIxZGFhNTIyMWYyZTk3ZmUwZjFiZGIzOTU3NTM0MjUyNzkwOTM2Li5iMjJiODFlMjI4MzEw
YmU2ZDQyMWRmNjhmMjhhZTkxZjNmZGRiNzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCkBAIC00Nzc2LDcgKzQ3NzYsNyBAQCAtIChCT09MKWFsbG93c05l
d0NTU0FuaW1hdGlvbnNXaGlsZVN1c3BlbmRlZAogewogICAgIGF1dG8qIGZyYW1lID0gY29yZShb
c2VsZiBtYWluRnJhbWVdKTsKICAgICBpZiAoZnJhbWUpCi0gICAgICAgIHJldHVybiBmcmFtZS0+
YW5pbWF0aW9uKCkuYWxsb3dzTmV3QW5pbWF0aW9uc1doaWxlU3VzcGVuZGVkKCk7CisgICAgICAg
IHJldHVybiBmcmFtZS0+bGVnYWN5QW5pbWF0aW9uKCkuYWxsb3dzTmV3QW5pbWF0aW9uc1doaWxl
U3VzcGVuZGVkKCk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC00Nzg1LDcgKzQ3ODUsNyBA
QCAtICh2b2lkKXNldEFsbG93c05ld0NTU0FuaW1hdGlvbnNXaGlsZVN1c3BlbmRlZDooQk9PTClh
bGxvd2VkCiB7CiAgICAgYXV0byogZnJhbWUgPSBjb3JlKFtzZWxmIG1haW5GcmFtZV0pOwogICAg
IGlmIChmcmFtZSkKLSAgICAgICAgZnJhbWUtPmFuaW1hdGlvbigpLnNldEFsbG93c05ld0FuaW1h
dGlvbnNXaGlsZVN1c3BlbmRlZChhbGxvd2VkKTsKKyAgICAgICAgZnJhbWUtPmxlZ2FjeUFuaW1h
dGlvbigpLnNldEFsbG93c05ld0FuaW1hdGlvbnNXaGlsZVN1c3BlbmRlZChhbGxvd2VkKTsKIH0K
IAogLSAoQk9PTCljc3NBbmltYXRpb25zU3VzcGVuZGVkCkBAIC00NzkzLDcgKzQ3OTMsNyBAQCAt
IChCT09MKWNzc0FuaW1hdGlvbnNTdXNwZW5kZWQKICAgICAvLyBzaG91bGQgYXNrIHRoZSBwYWdl
IQogICAgIGF1dG8qIGZyYW1lID0gY29yZShbc2VsZiBtYWluRnJhbWVdKTsKICAgICBpZiAoZnJh
bWUpCi0gICAgICAgIHJldHVybiBmcmFtZS0+YW5pbWF0aW9uKCkuaXNTdXNwZW5kZWQoKTsKKyAg
ICAgICAgcmV0dXJuIGZyYW1lLT5sZWdhY3lBbmltYXRpb24oKS5pc1N1c3BlbmRlZCgpOwogCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtNDgwMSwxMyArNDgwMSwxMyBAQCAtIChCT09MKWNzc0Fu
aW1hdGlvbnNTdXNwZW5kZWQKIC0gKHZvaWQpc2V0Q1NTQW5pbWF0aW9uc1N1c3BlbmRlZDooQk9P
TClzdXNwZW5kZWQKIHsKICAgICBhdXRvKiBmcmFtZSA9IGNvcmUoW3NlbGYgbWFpbkZyYW1lXSk7
Ci0gICAgaWYgKHN1c3BlbmRlZCA9PSBmcmFtZS0+YW5pbWF0aW9uKCkuaXNTdXNwZW5kZWQoKSkK
KyAgICBpZiAoc3VzcGVuZGVkID09IGZyYW1lLT5sZWdhY3lBbmltYXRpb24oKS5pc1N1c3BlbmRl
ZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoc3VzcGVuZGVkKQotICAgICAgICBmcmFt
ZS0+YW5pbWF0aW9uKCkuc3VzcGVuZEFuaW1hdGlvbnMoKTsKKyAgICAgICAgZnJhbWUtPmxlZ2Fj
eUFuaW1hdGlvbigpLnN1c3BlbmRBbmltYXRpb25zKCk7CiAgICAgZWxzZQotICAgICAgICBmcmFt
ZS0+YW5pbWF0aW9uKCkucmVzdW1lQW5pbWF0aW9ucygpOworICAgICAgICBmcmFtZS0+bGVnYWN5
QW5pbWF0aW9uKCkucmVzdW1lQW5pbWF0aW9ucygpOwogfQogCiArICh2b2lkKV9zZXREb21haW5S
ZWxheGF0aW9uRm9yYmlkZGVuOihCT09MKWZvcmJpZGRlbiBmb3JVUkxTY2hlbWU6KE5TU3RyaW5n
ICopc2NoZW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggMmM4M2IzZjhi
NmQzNzhhOTIyMjAzNTA5MTUyMzQzZWYyYTNiODAzNi4uMzYzYzViZDcwOWJmODJmZjU5YzgzYWYy
Yzc5ZTExNDVmOWMwYjEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcApAQCAt
MTE4Myw3ICsxMTgzLDcgQEAgSFJFU1VMVCBXZWJGcmFtZTo6cmVzdW1lQW5pbWF0aW9ucygpCiAg
ICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIEVfVU5FWFBFQ1RFRDsKIAotICAgIGZyYW1l
LT5hbmltYXRpb24oKS5yZXN1bWVBbmltYXRpb25zKCk7CisgICAgZnJhbWUtPmxlZ2FjeUFuaW1h
dGlvbigpLnJlc3VtZUFuaW1hdGlvbnMoKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApAQCAtMTE5
Myw3ICsxMTkzLDcgQEAgSFJFU1VMVCBXZWJGcmFtZTo6c3VzcGVuZEFuaW1hdGlvbnMoKQogICAg
IGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBFX1VORVhQRUNURUQ7CiAKLSAgICBmcmFtZS0+
YW5pbWF0aW9uKCkuc3VzcGVuZEFuaW1hdGlvbnMoKTsKKyAgICBmcmFtZS0+bGVnYWN5QW5pbWF0
aW9uKCkuc3VzcGVuZEFuaW1hdGlvbnMoKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApAQCAtMTIx
Miw3ICsxMjEyLDcgQEAgSFJFU1VMVCBXZWJGcmFtZTo6cGF1c2VBbmltYXRpb24oX0luXyBCU1RS
IGFuaW1hdGlvbk5hbWUsIF9Jbl9vcHRfIElET01Ob2RlKiBub2QKICAgICBpZiAoIWRvbU5vZGUp
CiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICAqYW5pbWF0aW9uV2FzUnVubmluZyA9IGZy
YW1lLT5hbmltYXRpb24oKS5wYXVzZUFuaW1hdGlvbkF0VGltZShkb3duY2FzdDxFbGVtZW50Pigq
ZG9tTm9kZS0+bm9kZSgpKSwgU3RyaW5nKGFuaW1hdGlvbk5hbWUsIFN5c1N0cmluZ0xlbihhbmlt
YXRpb25OYW1lKSksIHNlY29uZHNGcm9tTm93KTsKKyAgICAqYW5pbWF0aW9uV2FzUnVubmluZyA9
IGZyYW1lLT5sZWdhY3lBbmltYXRpb24oKS5wYXVzZUFuaW1hdGlvbkF0VGltZShkb3duY2FzdDxF
bGVtZW50PigqZG9tTm9kZS0+bm9kZSgpKSwgU3RyaW5nKGFuaW1hdGlvbk5hbWUsIFN5c1N0cmlu
Z0xlbihhbmltYXRpb25OYW1lKSksIHNlY29uZHNGcm9tTm93KTsKICAgICByZXR1cm4gU19PSzsK
IH0KIApAQCAtMTIzMSw3ICsxMjMxLDcgQEAgSFJFU1VMVCBXZWJGcmFtZTo6cGF1c2VUcmFuc2l0
aW9uKF9Jbl8gQlNUUiBwcm9wZXJ0eU5hbWUsIF9Jbl9vcHRfIElET01Ob2RlKiBub2QKICAgICBp
ZiAoIWRvbU5vZGUpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAgICAqdHJhbnNpdGlvbldh
c1J1bm5pbmcgPSBmcmFtZS0+YW5pbWF0aW9uKCkucGF1c2VUcmFuc2l0aW9uQXRUaW1lKGRvd25j
YXN0PEVsZW1lbnQ+KCpkb21Ob2RlLT5ub2RlKCkpLCBTdHJpbmcocHJvcGVydHlOYW1lLCBTeXNT
dHJpbmdMZW4ocHJvcGVydHlOYW1lKSksIHNlY29uZHNGcm9tTm93KTsKKyAgICAqdHJhbnNpdGlv
bldhc1J1bm5pbmcgPSBmcmFtZS0+bGVnYWN5QW5pbWF0aW9uKCkucGF1c2VUcmFuc2l0aW9uQXRU
aW1lKGRvd25jYXN0PEVsZW1lbnQ+KCpkb21Ob2RlLT5ub2RlKCkpLCBTdHJpbmcocHJvcGVydHlO
YW1lLCBTeXNTdHJpbmdMZW4ocHJvcGVydHlOYW1lKSksIHNlY29uZHNGcm9tTm93KTsKICAgICBy
ZXR1cm4gU19PSzsKIH0KIApAQCAtMTI2NCw3ICsxMjY0LDcgQEAgSFJFU1VMVCBXZWJGcmFtZTo6
bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKF9PdXRfIFVJTlQqIG51bWJlcikKICAgICBpZiAoIWZy
YW1lKQogICAgICAgICByZXR1cm4gRV9VTkVYUEVDVEVEOwogCi0gICAgKm51bWJlciA9IGZyYW1l
LT5hbmltYXRpb24oKS5udW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoZnJhbWUtPmRvY3VtZW50KCkp
OworICAgICpudW1iZXIgPSBmcmFtZS0+bGVnYWN5QW5pbWF0aW9uKCkubnVtYmVyT2ZBY3RpdmVB
bmltYXRpb25zKGZyYW1lLT5kb2N1bWVudCgpKTsKICAgICByZXR1cm4gU19PSzsKIH0KIAo=
</data>
<flag name="review"
          id="413092"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>