<?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>187369</bug_id>
          
          <creation_ts>2018-07-05 16:46:21 -0700</creation_ts>
          <short_desc>Rename and flip the meaning of defaultAppearance to be useDarkAppearance</short_desc>
          <delta_ts>2018-07-05 17:38:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1439618</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2018-07-05 16:46:21 -0700</bug_when>
    <thetext>The name defaultAppearance is confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439619</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-05 16:46:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/41870420&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439620</commentid>
    <comment_count>2</comment_count>
      <attachid>344379</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2018-07-05 16:50:27 -0700</bug_when>
    <thetext>Created attachment 344379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439641</commentid>
    <comment_count>3</comment_count>
      <attachid>344379</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-05 17:38:17 -0700</bug_when>
    <thetext>Comment on attachment 344379
Patch

Clearing flags on attachment: 344379

Committed r233552: &lt;https://trac.webkit.org/changeset/233552&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439642</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-05 17:38:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344379</attachid>
            <date>2018-07-05 16:50:27 -0700</date>
            <delta_ts>2018-07-05 17:38:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187369-20180705165026.patch</filename>
            <type>text/plain</type>
            <size>58945</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2JhNDZmYjRjZWUxMDU1
OWIzNzM3ZjcyZTcyZTgyOWMyM2EzYzc3Ny4uZmExZjdhOTExYWEwOGRjNDRlNWE1OWFlMzY1YTFi
MzE5MTc4YTdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE4LTA3LTA1ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgYW5kIGZs
aXAgdGhlIG1lYW5pbmcgb2YgZGVmYXVsdEFwcGVhcmFuY2UgdG8gYmUgdXNlRGFya0FwcGVhcmFu
Y2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODcz
NjkKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vNDE4NzA0MjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzZXNzaW9uL1dlYk1l
ZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9u
TWFuYWdlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKiBjc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcmVmZXJzRGFya0ludGVyZmFj
ZUV2YWx1YXRlKToKKyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXNlRGFya0FwcGVhcmFu
Y2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25z
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1c2VEZWZhdWx0QXBwZWFyYW5j
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yT3ZlcmxheTo6cGFpbnQpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjp1c2VEYXJrQXBwZWFyYW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjpkZWZhdWx0QXBwZWFyYW5jZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFn
ZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRVc2VEYXJrQXBwZWFyYW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXREZWZhdWx0QXBwZWFyYW5jZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vVGhlbWUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9EcmFnSW1hZ2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VG
b3JMaW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFy
YW5jZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJh
bmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZTo6
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Ro
ZW1lTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6VGhlbWVNYWM6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNb2NrOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVGb3JNYXJrZWRUZXh0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpk
b2N1bWVudFZpZXdGb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6
OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpzdXBw
b3J0c1NlbGVjdGlvbkZvcmVncm91bmRDb2xvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Ig
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5hY3Rp
dmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBsYXRm
b3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdo
bGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6Y29s
b3JDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6c3lzdGVt
Q29sb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50Q2Vs
bEFuZFNldEZvY3VzZWRFbGVtZW50TmVlZHNSZXBhaW50SWZOZWNlc3NhcnkpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50U2xpZGVyVGh1bWIpOgorICAgICAgICAqIHN2
Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6ZHJh
dyk6CisKIDIwMTgtMDctMDQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgWW91dHViZSB2aWRlbyBwYWdlcyBjcmFzaCBhZnRlciBhIGNvdXBsZSBvZiBtaW51dGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDhmMDcxNzhjYWYxMTE2Yzk0MzljNzM1NTRiYzhjZjNlZGMwNmJlODQuLjY4
ZjliNWJiYzVjMGZhNTRmNTdmYmE4MmM2YTMzZDU4YmI1YTE2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTUgQEAKKzIwMTgtMDctMDUgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29t
PgorCisgICAgICAgIFJlbmFtZSBhbmQgZmxpcCB0aGUgbWVhbmluZyBvZiBkZWZhdWx0QXBwZWFy
YW5jZSB0byBiZSB1c2VEYXJrQXBwZWFyYW5jZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzM2OQorICAgICAgICByZGFyOi8vcHJvYmxlbS80MTg3
MDQyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZWZmZWN0aXZlQXBwZWFyYW5j
ZUlzRGFya10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmlndXJh
dGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRVc2VTeXN0ZW1BcHBlYXJhbmNlOl0p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgZWZmZWN0aXZlQXBwZWFyYW5jZURpZENoYW5nZV0pOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX2RlZmF1bHRBcHBlYXJhbmNlXSk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX2Vm
ZmVjdGl2ZUFwcGVhcmFuY2VJc0RhcmtdKToKKyAgICAgICAgKC1bV0tWaWV3IGVmZmVjdGl2ZUFw
cGVhcmFuY2VEaWRDaGFuZ2VdKToKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRVc2VTeXN0ZW1BcHBl
YXJhbmNlOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2RlZmF1bHRBcHBlYXJhbmNlXSk6IERlbGV0
ZWQuCisgICAgICAgICgtW1dLVmlldyBfc2V0RGVmYXVsdEFwcGVhcmFuY2U6XSk6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6ZWZmZWN0aXZlQXBwZWFyYW5jZUlzRGFyayk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpzZXRVc2VEYXJrQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp1c2VEZWZhdWx0QXBwZWFyYW5jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpzZXREZWZhdWx0QXBwZWFyYW5jZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3Jl
YXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRVc2VE
YXJrQXBwZWFyYW5jZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXREZWZh
dWx0QXBwZWFyYW5jZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVzZURhcmtBcHBlYXJhbmNlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWZhdWx0QXBwZWFyYW5jZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5t
bToKKyAgICAgICAgKC1bV0tQcmludGluZ1ZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OnJlbmRlcmVkSW1h
Z2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAg
ICAgICAoV2ViS2l0OjpQREZQbHVnaW46OnBhaW50Q29udHJvbEZvckxheWVySW5Db250ZXh0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fY3JlZGVudGlhbHNNZXNzZW5nZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpk
cmF3UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFVzZURhcmtBcHBlYXJhbmNl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0RGVmYXVsdEFwcGVhcmFuY2UpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTgtMDctMDUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKHIyMzI4
ODYpOiBXZWJzaXRlRGF0YVN0b3JlIG9iamVjdHMgbWF5IGdldCBkZXN0cm95ZWQgb24gYSBiYWNr
Z3JvdW5kIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDcwYzk1ZjA2ZDEx
ZTViNDU1ZjExOGU0YWFlMDNjMWJkYmI3N2QyMTMuLjhhMDA2NmZiYjNhNGI3MGJlZDY3NDIzM2Jm
OGRhZGE4MDE2MDA4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAxOC0wNy0wNSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVuYW1lIGFuZCBmbGlwIHRoZSBtZWFuaW5nIG9mIGRlZmF1bHRBcHBlYXJhbmNl
IHRvIGJlIHVzZURhcmtBcHBlYXJhbmNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg3MzY5CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzQxODcwNDIw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJW
aWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW06CisgICAgICAgIChXZWJNZWRpYVBs
YXliYWNrVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIpOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6
YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZWZm
ZWN0aXZlQXBwZWFyYW5jZUlzRGFya10pOgorICAgICAgICAoLVtXZWJWaWV3IF91cGRhdGVEZWZh
dWx0QXBwZWFyYW5jZV0pOgorICAgICAgICAoLVtXZWJWaWV3IF9kZWZhdWx0QXBwZWFyYW5jZV0p
OiBEZWxldGVkLgorCiAyMDE4LTA3LTA0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFlvdXR1YmUgdmlkZW8gcGFnZXMgY3Jhc2ggYWZ0ZXIgYSBjb3VwbGUgb2Yg
bWludXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNlc3Npb24v
V2ViTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCA4ZTNhOGQwZWI5N2YyN2E3
ZDFjMTRhZmRkZGU1MzdjNzE3ZjFmZTlkLi41YzI5NGMxNzI2NjM0MWU3MGVmMGRjMmM3YzM5ZjEz
NjcwYTMzMTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc2Vzc2lv
bi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc2Vzc2lvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcApAQCAtMTc4LDcgKzE3OCw3
IEBAIHZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlQWxsUGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnRzKFdlYk1lZGlhU2Vzc2lvCiAgICAgc2NoZWR1bGVEZWxheWVkVGFzayhUYXJn
ZXRNb25pdG9yaW5nQ29uZmlndXJhdGlvblRhc2sgfCBUYXJnZXRDbGllbnRzQ29uZmlndXJhdGlv
blRhc2spOwogfQogCi12b2lkIFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcihXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIHVpbnQ2NF90
IGNvbnRleHRJZCwgY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCwgYm9vbCB1c2VEZWZhdWx0QXBw
ZWFyYW5jZSkKK3ZvaWQgV2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKFdlYk1lZGlhU2Vzc2lvbk1hbmFnZXJDbGllbnQmIGNsaWVudCwgdWludDY0X3QgY29u
dGV4dElkLCBjb25zdCBJbnRSZWN0JiByZWN0LCBib29sLCBib29sIHVzZURhcmtBcHBlYXJhbmNl
KQogewogICAgIHNpemVfdCBpbmRleCA9IGZpbmQoJmNsaWVudCwgY29udGV4dElkKTsKICAgICBB
U1NFUlQoaW5kZXggIT0gbm90Rm91bmQpOwpAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQgV2ViTWVk
aWFTZXNzaW9uTWFuYWdlcjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKFdlYk1lZGlhU2Vzc2lv
bk1hbmFnZXJDbGllCiAKICAgICBib29sIGhhc0FjdGl2ZVJvdXRlID0gZmxhZ3NBcmVTZXQobV9j
bGllbnRTdGF0ZVtpbmRleF0tPmZsYWdzLCBNZWRpYVByb2R1Y2VyOjpJc1BsYXlpbmdUb0V4dGVy
bmFsRGV2aWNlKTsKICAgICBMT0coTWVkaWEsICJXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoJXAgKyAlbGx1KSAtIGhhc0FjdGl2ZVJvdXRlID0gJWkiLCAm
Y2xpZW50LCBjb250ZXh0SWQsIChpbnQpaGFzQWN0aXZlUm91dGUpOwotICAgIHRhcmdldFBpY2tl
cigpLnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihGbG9hdFJlY3QocmVjdCksIGhhc0FjdGl2ZVJv
dXRlLCB1c2VEZWZhdWx0QXBwZWFyYW5jZSk7CisgICAgdGFyZ2V0UGlja2VyKCkuc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKEZsb2F0UmVjdChyZWN0KSwgaGFzQWN0aXZlUm91dGUsIHVzZURhcmtB
cHBlYXJhbmNlKTsKIH0KIAogdm9pZCBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpjbGllbnRTdGF0
ZURpZENoYW5nZShXZWJNZWRpYVNlc3Npb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQsIHVpbnQ2NF90
IGNvbnRleHRJZCwgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG5ld0ZsYWdzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDQxMTc3NzgyYzc5
MzY4YmIxZWU4YjZkMDNmYjI5ZmJiM2ZjM2Y2YTcuLjA2MzY4YzA3NjFjNWVjODBjMDFjNGU2ZTZj
MDllMjdhNGY3OTY0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRv
ci5jcHAKQEAgLTcxNyw3ICs3MTcsNyBAQCBzdGF0aWMgYm9vbCBwcmVmZXJzRGFya0ludGVyZmFj
ZUV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZQogewogICAg
IGJvb2wgcHJlZmVyc0RhcmtJbnRlcmZhY2UgPSBmYWxzZTsKIAotICAgIGlmIChmcmFtZS5wYWdl
KCktPnVzZVN5c3RlbUFwcGVhcmFuY2UoKSAmJiAhZnJhbWUucGFnZSgpLT5kZWZhdWx0QXBwZWFy
YW5jZSgpKQorICAgIGlmIChmcmFtZS5wYWdlKCktPnVzZVN5c3RlbUFwcGVhcmFuY2UoKSAmJiBm
cmFtZS5wYWdlKCktPnVzZURhcmtBcHBlYXJhbmNlKCkpCiAgICAgICAgIHByZWZlcnNEYXJrSW50
ZXJmYWNlID0gdHJ1ZTsKIAogICAgIGlmICghdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVDb2xvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaApp
bmRleCBhN2I4MWQ5NGJmNGE2YmM3Y2E2NWM0NDc4NTZiNmIxODM5NDc5ZmFhLi5kN2JmNWE1Mzdh
ZDhkYWJiYTZjMzE3NWIxNWUzYjg4ZDE2MmRjY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVDb2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmgK
QEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgT3B0aW9ucyA6IHVpbnQ4
X3QgewogICAgICAgICBGb3JWaXNpdGVkTGluayA9IDEgPDwgMCwKICAgICAgICAgVXNlU3lzdGVt
QXBwZWFyYW5jZSA9IDEgPDwgMSwKLSAgICAgICAgVXNlRGVmYXVsdEFwcGVhcmFuY2UgPSAxIDw8
IDIKKyAgICAgICAgVXNlRGFya0FwcGVhcmFuY2UgPSAxIDw8IDIKICAgICB9OwogCiAgICAgc3Rh
dGljIENvbG9yIGNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PE9wdGlvbnM+
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQxMDA5YmRlYjZhNTM2MWZhNjQ0MzdmZDE4
ZmQ0ZmMxNGEzYzI3ZDQuLjNhZGEzOTNkODUxNmY0MTFmZTVhOWJkNzI2ZTYwMmRmMzFkMTA1YmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzA4NCwxMiArNzA4NCwxMiBAQCBib29sIERv
Y3VtZW50Ojp1c2VTeXN0ZW1BcHBlYXJhbmNlKCkgY29uc3QKICAgICByZXR1cm4gdXNlU3lzdGVt
QXBwZWFyYW5jZTsKIH0KIAotYm9vbCBEb2N1bWVudDo6dXNlRGVmYXVsdEFwcGVhcmFuY2UoKSBj
b25zdAorYm9vbCBEb2N1bWVudDo6dXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdAogewotICAgIGJv
b2wgdXNlRGVmYXVsdEFwcGVhcmFuY2UgPSB0cnVlOworICAgIGJvb2wgdXNlRGFya0FwcGVhcmFu
Y2UgPSBmYWxzZTsKICAgICBpZiAoUGFnZSogZG9jdW1lbnRQYWdlID0gcGFnZSgpKQotICAgICAg
ICB1c2VEZWZhdWx0QXBwZWFyYW5jZSA9IGRvY3VtZW50UGFnZS0+ZGVmYXVsdEFwcGVhcmFuY2Uo
KTsKLSAgICByZXR1cm4gdXNlRGVmYXVsdEFwcGVhcmFuY2U7CisgICAgICAgIHVzZURhcmtBcHBl
YXJhbmNlID0gZG9jdW1lbnRQYWdlLT51c2VEYXJrQXBwZWFyYW5jZSgpOworICAgIHJldHVybiB1
c2VEYXJrQXBwZWFyYW5jZTsKIH0KIAogT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IERv
Y3VtZW50OjpzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0CkBAIC03MDk3LDggKzcwOTcsOCBAQCBP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gRG9jdW1lbnQ6OnN0eWxlQ29sb3JPcHRpb25z
KCkgY29uc3QKICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9uczsKICAg
ICBpZiAodXNlU3lzdGVtQXBwZWFyYW5jZSgpKQogICAgICAgICBvcHRpb25zIHw9IFN0eWxlQ29s
b3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2U7Ci0gICAgaWYgKHVzZURlZmF1bHRBcHBl
YXJhbmNlKCkpCi0gICAgICAgIG9wdGlvbnMgfD0gU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGVm
YXVsdEFwcGVhcmFuY2U7CisgICAgaWYgKHVzZURhcmtBcHBlYXJhbmNlKCkpCisgICAgICAgIG9w
dGlvbnMgfD0gU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2U7CiAgICAgcmV0
dXJuIG9wdGlvbnM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODdiMDE2MDE1ZjY5MTk5
MTJhYTMyZjYzMDRiNWQ5ZDAwZmRjZWVhMS4uNDhhMGJkMzc3ODVlZjkyYmYzMzVhOWJlMjRmNDk4
YWQwZmY4YzgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTU1Myw3ICs1NTMsOCBAQCBwdWJs
aWM6CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKIAogICAgIGJvb2wgdXNl
U3lzdGVtQXBwZWFyYW5jZSgpIGNvbnN0OwotICAgIGJvb2wgdXNlRGVmYXVsdEFwcGVhcmFuY2Uo
KSBjb25zdDsKKyAgICBib29sIHVzZURhcmtBcHBlYXJhbmNlKCkgY29uc3Q7CisKICAgICBPcHRp
b25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5bGVDb2xvck9wdGlvbnMoKSBjb25zdDsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxSYW5nZT4gY3JlYXRlUmFuZ2UoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCAwMDU5OTcxMTY2YzQz
YTg4NWRlMWFkYTAzYzUzNjU3NWVlMDhkNzhkLi5jNWI5YWE1NTY0YTI5MDc2N2QzNDhhYWM1M2Ey
NDJmMDBmYmE5NzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92
ZXJsYXkuY3BwCkBAIC0xODEsNyArMTgxLDcgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpwYWlu
dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAogI2lmIFBMQVRG
T1JNKE1BQykKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5j
ZShtX3BhZ2UudXNlU3lzdGVtQXBwZWFyYW5jZSgpLCBtX3BhZ2UuZGVmYXVsdEFwcGVhcmFuY2Uo
KSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UobV9w
YWdlLnVzZVN5c3RlbUFwcGVhcmFuY2UoKSwgbV9wYWdlLnVzZURhcmtBcHBlYXJhbmNlKCkpOwog
I2VuZGlmCiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA2YzdhYzk4OWIxZmRjMzA0NDFmODUzY2MzMmQ2N2Ex
OTA2YTBkZGViLi4xYTlhOWZiZDMzOWE0MDM4MmU2ODY0ZDkxNGZmN2E4MzFkMWY3MDI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKQEAgLTIzOTgsMTIgKzIzOTgsMTIgQEAgdm9pZCBQYWdlOjpzZXRVc2VT
eXN0ZW1BcHBlYXJhbmNlKGJvb2wgdmFsdWUpCiAgICAgfQogfQogCi1ib29sIFBhZ2U6OmRlZmF1
bHRBcHBlYXJhbmNlKCkgY29uc3QKK2Jvb2wgUGFnZTo6dXNlRGFya0FwcGVhcmFuY2UoKSBjb25z
dAogewogICAgIEZyYW1lVmlldyogdmlldyA9IG1haW5GcmFtZSgpLnZpZXcoKTsKICAgICBpZiAo
IXZpZXcgfHwgIWVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZpZXctPm1lZGlhVHlwZSgp
LCAic2NyZWVuIikpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBtX2RlZmF1bHRB
cHBlYXJhbmNlOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fdXNlRGFya0Fw
cGVhcmFuY2U7CiB9CiAKIHZvaWQgUGFnZTo6c2V0RnVsbHNjcmVlbkluc2V0cyhjb25zdCBGbG9h
dEJveEV4dGVudCYgaW5zZXRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA2ZmY2ZWIyZDlkN2VkYmRjNjc5
YjRmMTQ4OTY3MzI2NTI1M2Y3M2U1Li5mMjFiMjcxYTVmZjM5YmJkN2ZlNWU2NTU5YTAwMDI0N2Zj
NzgxMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMzQyLDggKzM0Miw4IEBAIHB1YmxpYzoKICAgICBi
b29sIHVzZVN5c3RlbUFwcGVhcmFuY2UoKSBjb25zdCB7IHJldHVybiBtX3VzZVN5c3RlbUFwcGVh
cmFuY2U7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFVzZVN5c3RlbUFwcGVhcmFuY2Uo
Ym9vbCk7CiAgICAgCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBkZWZhdWx0QXBwZWFyYW5jZSgp
IGNvbnN0OwotICAgIHZvaWQgc2V0RGVmYXVsdEFwcGVhcmFuY2UoYm9vbCBhKSB7IG1fZGVmYXVs
dEFwcGVhcmFuY2UgPSBhOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB1c2VEYXJrQXBwZWFy
YW5jZSgpIGNvbnN0OworICAgIHZvaWQgc2V0VXNlRGFya0FwcGVhcmFuY2UoYm9vbCBhKSB7IG1f
dXNlRGFya0FwcGVhcmFuY2UgPSBhOyB9CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQog
ICAgIGZsb2F0IHRleHRBdXRvc2l6aW5nV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3RleHRBdXRv
c2l6aW5nV2lkdGg7IH0KQEAgLTc1NSw3ICs3NTUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAg
CiAgICAgYm9vbCBtX3VzZVN5c3RlbUFwcGVhcmFuY2UgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9k
ZWZhdWx0QXBwZWFyYW5jZSB7IHRydWUgfTsKKyAgICBib29sIG1fdXNlRGFya0FwcGVhcmFuY2Ug
eyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBmbG9hdCBtX3Rl
eHRBdXRvc2l6aW5nV2lkdGggeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9UaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuaAppbmRleCAwM2Zi
OGU1M2IwZjZkN2E5N2FlNWNkMzRhYTkwODkyNGI2Njg2NDhmLi5lOGNlYzM1ZDU5MTZiY2RlYjFk
ZTM5ODhhYTM2OWI1YmUyNDRlMDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lLmgKQEAgLTY4LDcg
KzY4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjb250cm9sUmVxdWlyZXNQcmVXaGl0
ZVNwYWNlKENvbnRyb2xQYXJ0KSBjb25zdDsKIAogICAgIC8vIE1ldGhvZCBmb3IgcGFpbnRpbmcg
YSBjb250cm9sLiBUaGUgcmVjdCBpcyBpbiB6b29tZWQgY29vcmRpbmF0ZXMuCi0gICAgdmlydHVh
bCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxW
aWV3KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgYm9v
bCB1c2VTeXN0ZW1BcHBlYXJhbmNlLCBib29sIHVzZURlZmF1bHRBcHBlYXJhbmNlKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnQoQ29udHJvbFBhcnQsIENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNj
cm9sbFZpZXcqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9y
LCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpOwogCiAg
ICAgLy8gU29tZSBjb250cm9scyBtYXkgc3BpbGwgb3V0IG9mIHRoZWlyIGNvbnRhaW5lcnMgKGUu
Zy4sIHRoZSBjaGVjayBvbiBhbiBPUyBYIGNoZWNrYm94KS4gIFdoZW4gdGhlc2UgY29udHJvbHMg
cmVwYWludCwKICAgICAvLyB0aGUgdGhlbWUgbmVlZHMgdG8gY29tbXVuaWNhdGUgdGhpcyBpbmZs
YXRlZCByZWN0IHRvIHRoZSBlbmdpbmUgc28gdGhhdCBpdCBjYW4gaW52YWxpZGF0ZSB0aGUgd2hv
bGUgY29udHJvbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaAppbmRleCBhOGE0ZDdmOGU3NTczYTNm
ZWEyMDU4NDhiNzgxNDdkNjE3NWRhNDgyLi4wZWNhMGI5MjU0ZmNhZDAxMjc4YTdjN2U5NjJhYmUw
YjgzMzc2Yzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oCkBAIC01MSw3ICs1MSw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgfk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIoKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0Jiwg
Ym9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURlZmF1bHRBcHBlYXJhbmNlKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJv
b2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgdmlydHVh
bCB2b2lkIHN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpOwogICAgIHZpcnR1YWwg
dm9pZCBzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpOwogICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlUGxheWJhY2tUYXJnZXRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLmgKaW5kZXggZjY2NjI5YmNjMjQ2OWE2
ZmM4NzZlNTg5OGYwMDAwNDY3NTI3ODJmNi4uMTU2NTIyNWZkZTM5ZTY0YTFhYjkzOWQ4NTEyZmRj
YTYyMmVmZDExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNYWMuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIH5NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjKCk7CiAKLSAgICB2b2lkIHNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmLCBib29sIGNoZWNrQWN0aXZlUm91
dGUsIGJvb2wgdXNlRGVmYXVsdEFwcGVhcmFuY2UpIG92ZXJyaWRlOworICAgIHZvaWQgc2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0
ZSwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydGluZ01v
bml0b3JpbmdQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BNb25pdG9y
aW5nUGxheWJhY2tUYXJnZXRzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbnZhbGlkYXRlUGxheWJh
Y2tUYXJnZXRzKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5tbQppbmRleCAxNjQ0OTk0MDY2Y2YzYzMzYjkx
YTY4MDA5Y2FmMjIyZWE0NTFkMTUzLi4wODNhZDQxZTdkMmRlMTlhYzMwOTFlMzEyM2UzMmVjMzE4
MzM5ZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXJNYWMubW0KQEAgLTExMCw3ICsxMTAsNyBAQCBBVk91dHB1dERldmljZU1l
bnVDb250cm9sbGVyV0tUeXBlICpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpkZXZpY2VQ
aWNrZXIoKQogICAgIHJldHVybiBtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpOwog
fQogCi12b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQbGF5YmFja1Rhcmdl
dFBpY2tlcihjb25zdCBGbG9hdFJlY3QmIGxvY2F0aW9uLCBib29sIGNoZWNrQWN0aXZlUm91dGUs
IGJvb2wgdXNlRGVmYXVsdEFwcGVhcmFuY2UpCit2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNYWM6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmIGxvY2F0aW9u
LCBib29sIGNoZWNrQWN0aXZlUm91dGUsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpCiB7CiAgICAg
aWYgKCFjbGllbnQoKSB8fCBtX3Nob3dpbmdNZW51KQogICAgICAgICByZXR1cm47CkBAIC0xMTks
NyArMTE5LDcgQEAgdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiBsb2MKIAogICAgIG1fc2hvd2luZ01lbnUg
PSB0cnVlOwogCi0gICAgaWYgKFtkZXZpY2VQaWNrZXIoKSBzaG93TWVudUZvclJlY3Q6bG9jYXRp
b24gYXBwZWFyYW5jZU5hbWU6dXNlRGVmYXVsdEFwcGVhcmFuY2UgPyBOU0FwcGVhcmFuY2VOYW1l
VmlicmFudExpZ2h0IDogTlNBcHBlYXJhbmNlTmFtZVZpYnJhbnREYXJrIGFsbG93UmVzZWxlY3Rp
b25PZlNlbGVjdGVkT3V0cHV0RGV2aWNlOiFjaGVja0FjdGl2ZVJvdXRlXSkgeworICAgIGlmIChb
ZGV2aWNlUGlja2VyKCkgc2hvd01lbnVGb3JSZWN0OmxvY2F0aW9uIGFwcGVhcmFuY2VOYW1lOih1
c2VEYXJrQXBwZWFyYW5jZSA/IE5TQXBwZWFyYW5jZU5hbWVWaWJyYW50RGFyayA6IE5TQXBwZWFy
YW5jZU5hbWVWaWJyYW50TGlnaHQpIGFsbG93UmVzZWxlY3Rpb25PZlNlbGVjdGVkT3V0cHV0RGV2
aWNlOiFjaGVja0FjdGl2ZVJvdXRlXSkgewogICAgICAgICBpZiAoIWNoZWNrQWN0aXZlUm91dGUp
CiAgICAgICAgICAgICBjdXJyZW50RGV2aWNlRGlkQ2hhbmdlKCk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KaW5kZXggZDMxNjA0YWJiNjJjNDkz
MzJiZmI0NzkwNDNmNWYyMjhmNDY1NTMwYy4uMzFiMzJhMTMwYmFhZGNiZGQyYWI0NzBmMjQzODMw
ZDk4MGZlM2E5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJ
bWFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFj
Lm1tCkBAIC0zMDMsNyArMzAzLDcgQEAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxp
bmsoRWxlbWVudCYgZWxlbWVudCwgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGkKIAogICAgIFBh
Z2UqIHBhZ2UgPSBlbGVtZW50LmRvY3VtZW50KCkucGFnZSgpOwogCi0gICAgTG9jYWxEZWZhdWx0
U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UodHJ1ZSwgcGFnZSA/IHBhZ2UtPmRlZmF1
bHRBcHBlYXJhbmNlKCkgOiB0cnVlKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNl
IGxvY2FsQXBwZWFyYW5jZSh0cnVlLCBwYWdlID8gcGFnZS0+dXNlRGFya0FwcGVhcmFuY2UoKSA6
IGZhbHNlKTsKIAogICAgIGF1dG8gaW1hZ2VTaXplID0gbGF5b3V0LmJvdW5kaW5nUmVjdC5zaXpl
KCk7CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTMwMApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsRGVmYXVsdFN5c3RlbUFwcGVh
cmFuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbERlZmF1bHRTeXN0ZW1B
cHBlYXJhbmNlLmgKaW5kZXggMzZjMGE2MjM5MGU4YTkwMmU3YzI2NDc5YjczYzFhMDMzZmNhM2Nm
MC4uZWY2NWJlMDljM2Q3YjQ2MTNiZmE3YjczYTE2Y2NmODEzMzNlOGMxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZS5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVh
cmFuY2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExvY2FsRGVmYXVsdFN5c3RlbUFwcGVh
cmFuY2UpOwogCiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgTG9jYWxEZWZhdWx0U3lzdGVt
QXBwZWFyYW5jZShib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UsIGJvb2wgdXNlRGVmYXVsdEFwcGVh
cmFuY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2Uo
Ym9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB+TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSgpOwogCiAgICAgYm9v
bCB1c2luZ0RhcmtBcHBlYXJhbmNlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UubW0KaW5kZXgg
NjY3ZmJiNGY5YTM5ZGYxMjgyYjUwYTVmN2FhOWViN2UyOWM2ZGE5OC4uNjJjNTE4MmE3MTZkYWM1
YmU3NmY3MzVkMDM5N2I1MjBiNGMwOTRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0xvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UubW0KQEAgLTM1
LDE5ICszNSwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgc2l6ZV90IHJlY3Vyc2lv
bkNvdW50ID0gMDsKICNlbmRpZgogCi1Mb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlOjpMb2Nh
bERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlKGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSwgYm9vbCB1
c2VEZWZhdWx0QXBwZWFyYW5jZSkKK0xvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2U6OkxvY2Fs
RGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UoYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlLCBib29sIHVz
ZURhcmtBcHBlYXJhbmNlKQogewogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxNDAwCiAgICAgaWYgKHJlY3Vyc2lvbkNvdW50KyspCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1fc2F2ZWRTeXN0ZW1BcHBlYXJhbmNlID0gW05TQXBwZWFyYW5jZSBjdXJyZW50QXBwZWFy
YW5jZV07Ci0gICAgbV91c2luZ0RhcmtBcHBlYXJhbmNlID0gdXNlU3lzdGVtQXBwZWFyYW5jZSAm
JiAhdXNlRGVmYXVsdEFwcGVhcmFuY2U7CisgICAgbV91c2luZ0RhcmtBcHBlYXJhbmNlID0gdXNl
U3lzdGVtQXBwZWFyYW5jZSAmJiB1c2VEYXJrQXBwZWFyYW5jZTsKIAogICAgIFtOU0FwcGVhcmFu
Y2Ugc2V0Q3VycmVudEFwcGVhcmFuY2U6W05TQXBwZWFyYW5jZSBhcHBlYXJhbmNlTmFtZWQ6bV91
c2luZ0RhcmtBcHBlYXJhbmNlID8gTlNBcHBlYXJhbmNlTmFtZURhcmtBcXVhIDogTlNBcHBlYXJh
bmNlTmFtZUFxdWFdXTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHVzZVN5c3RlbUFwcGVhcmFu
Y2UpOwotICAgIFVOVVNFRF9QQVJBTSh1c2VEZWZhdWx0QXBwZWFyYW5jZSk7CisgICAgVU5VU0VE
X1BBUkFNKHVzZURhcmtBcHBlYXJhbmNlKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9UaGVtZU1hYy5oCmluZGV4IDI1ODQ3ZTFkMDVhNzYwYTJmMmExN2EwZmFiYjdiODc3
MjVhMzhjOWEuLjQ5MDI4ZjFiNDNjNzNjMzVjYzMxMzcwYTdkZjRlOTg0MTRmZGM2MjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5oCkBAIC01Myw3ICs1Myw3IEBAIHByaXZh
dGU6CiAKICAgICBib29sIGNvbnRyb2xSZXF1aXJlc1ByZVdoaXRlU3BhY2UoQ29udHJvbFBhcnQg
cGFydCkgY29uc3QgZmluYWwgeyByZXR1cm4gcGFydCA9PSBQdXNoQnV0dG9uUGFydDsgfQogCi0g
ICAgdm9pZCBwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0YXRlcyYsIEdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqLCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBib29sIHVzZVN5c3Rl
bUFwcGVhcmFuY2UsIGJvb2wgdXNlRGVmYXVsdEFwcGVhcmFuY2UpIGZpbmFsOworICAgIHZvaWQg
cGFpbnQoQ29udHJvbFBhcnQsIENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmLCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KiwgZmxvYXQgZGV2aWNl
U2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgYm9vbCB1c2VTeXN0ZW1BcHBlYXJh
bmNlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKSBmaW5hbDsKICAgICB2b2lkIGluZmxhdGVDb250
cm9sUGFpbnRSZWN0KENvbnRyb2xQYXJ0LCBjb25zdCBDb250cm9sU3RhdGVzJiwgRmxvYXRSZWN0
JiwgZmxvYXQgem9vbUZhY3RvcikgY29uc3QgZmluYWw7CiAKICAgICBib29sIHVzZXJQcmVmZXJz
UmVkdWNlZE1vdGlvbigpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Ro
ZW1lTWFjLm1tCmluZGV4IGIxOTBjNzM1ZWM3MDUyYTYzNmNjYWEyZGM1MDlmNTZkZWE1NzFlNzIu
LjQ4MzFmZmY0Zjg4YWNlMTRjZmQwZmVmM2VhN2I4MWI3ODQzNzdkN2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KQEAgLTg0OCw5ICs4NDgsOSBAQCB2b2lkIFRoZW1l
TWFjOjppbmZsYXRlQ29udHJvbFBhaW50UmVjdChDb250cm9sUGFydCBwYXJ0LCBjb25zdCBDb250
cm9sU3RhdGVzJiBzdAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAotdm9pZCBU
aGVtZU1hYzo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxv
YXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlLCBi
b29sIHVzZURlZmF1bHRBcHBlYXJhbmNlKQordm9pZCBUaGVtZU1hYzo6cGFpbnQoQ29udHJvbFBh
cnQgcGFydCwgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmll
dyogc2Nyb2xsVmlldywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZh
Y3RvciwgYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKQog
ewotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKHVzZVN5
c3RlbUFwcGVhcmFuY2UsIHVzZURlZmF1bHRBcHBlYXJhbmNlKTsKKyAgICBMb2NhbERlZmF1bHRT
eXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZSh1c2VTeXN0ZW1BcHBlYXJhbmNlLCB1c2VE
YXJrQXBwZWFyYW5jZSk7CiAKICAgICBzd2l0Y2ggKHBhcnQpIHsKICAgICAgICAgY2FzZSBDaGVj
a2JveFBhcnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCmluZGV4IDkzZjQ2NzY0Nzc5MTFl
YjEwYjRmYjU0OTg0MGI5Yzk0YWE2ZmEyYmMuLmQ1NzAwZDE0OTUyZjI5MzVkM2ViMTA0YzAyYzZm
ODA1NzY4NDBmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVk
aWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCkBAIC03MCwxNiArNzAs
MTYgQEAgdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6dGltZXJGaXJlZCgpCiAg
ICAgY3VycmVudERldmljZURpZENoYW5nZSgpOwogfQogCi12b2lkIE1lZGlhUGxheWJhY2tUYXJn
ZXRQaWNrZXJNb2NrOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0Jiwg
Ym9vbCBjaGVja0FjdGl2ZVJvdXRlLCBib29sIHVzZURlZmF1bHRBcHBlYXJhbmNlKQordm9pZCBN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNv
bnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVSb3V0ZSwgYm9vbCB1c2VEYXJrQXBwZWFy
YW5jZSkKIHsKICAgICBpZiAoIWNsaWVudCgpIHx8IG1fc2hvd2luZ01lbnUpCiAgICAgICAgIHJl
dHVybjsKIAogI2lmIExPR19ESVNBQkxFRAogICAgIFVOVVNFRF9QQVJBTShjaGVja0FjdGl2ZVJv
dXRlKTsKLSAgICBVTlVTRURfUEFSQU0odXNlRGVmYXVsdEFwcGVhcmFuY2UpOworICAgIFVOVVNF
RF9QQVJBTSh1c2VEYXJrQXBwZWFyYW5jZSk7CiAjZW5kaWYKLSAgICBMT0coTWVkaWEsICJNZWRp
YVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyIC0gY2hl
Y2tBY3RpdmVSb3V0ZSA9ICVpLCB1c2VEZWZhdWx0QXBwZWFyYW5jZSA9ICVpIiwgKGludCljaGVj
a0FjdGl2ZVJvdXRlLCAoaW50KXVzZURlZmF1bHRBcHBlYXJhbmNlKTsKKyAgICBMT0coTWVkaWEs
ICJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTW9jazo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
IC0gY2hlY2tBY3RpdmVSb3V0ZSA9ICVpLCB1c2VEYXJrQXBwZWFyYW5jZSA9ICVpIiwgKGludClj
aGVja0FjdGl2ZVJvdXRlLCAoaW50KXVzZURhcmtBcHBlYXJhbmNlKTsKIAogICAgIG1fc2hvd2lu
Z01lbnUgPSB0cnVlOwogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KHRpbWVySW50ZXJ2YWwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTW9jay5oCmluZGV4IDEzY2ZmMWMxYmE0NDdlN2Q0YmVmYjI5MTAwZDM2
ZTUzODM0M2ExNTMuLmIwMTdkZTg1M2ZjNjhhZjE4ZmZlNTQwYjlhOTA3N2Y1NTk4ZjQ1NGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlck1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNb2NrLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2soKTsKIAotICAgIHZvaWQgc2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wgY2hlY2tBY3RpdmVS
b3V0ZSwgYm9vbCB1c2VEZWZhdWx0QXBwZWFyYW5jZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCBjaGVja0FjdGl2ZVJv
dXRlLCBib29sIHVzZURhcmtBcHBlYXJhbmNlKSBvdmVycmlkZTsKICAgICB2b2lkIHN0YXJ0aW5n
TW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cygpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcE1vbml0
b3JpbmdQbGF5YmFja1RhcmdldHMoKSBvdmVycmlkZTsKICAgICB2b2lkIGludmFsaWRhdGVQbGF5
YmFja1RhcmdldHMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmNwcAppbmRleCAzMzllNzFmNTRiZmI2NDBlOTQwZGQ4OGVlY2Y2NTU1ZmMyMzFkOWRj
Li5hOGMxOWEzY2E0NTRkZmNkYzVjZjU1ODkyZGI4YmFkMjI5NjNjMzU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC03NjcsNyArNzY3LDcgQEAgYXV0
byBJbmxpbmVUZXh0Qm94OjpyZXNvbHZlU3R5bGVGb3JNYXJrZWRUZXh0KGNvbnN0IE1hcmtlZFRl
eHQmIG1hcmtlZFRleHQsIGNvbnMKICAgICB9CiAgICAgY2FzZSBNYXJrZWRUZXh0OjpUZXh0TWF0
Y2g6IHsKICAgICAgICAgLy8gVGV4dCBtYXRjaGVzIGFsd2F5cyB1c2UgdGhlIGxpZ2h0IHN5c3Rl
bSBhcHBlYXJhbmNlLgotICAgICAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gc3R5
bGVDb2xvck9wdGlvbnMgPSB7IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFu
Y2UsIFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURlZmF1bHRBcHBlYXJhbmNlIH07CisgICAgICAg
IE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0aW9ucyA9IHsgU3R5
bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSwgU3R5bGVDb2xvcjo6T3B0aW9u
czo6VXNlRGFya0FwcGVhcmFuY2UgfTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHN0eWxl
LnRleHRTdHlsZXMuZmlsbENvbG9yID0gcmVuZGVyZXIoKS50aGVtZSgpLnN5c3RlbUNvbG9yKENT
U1ZhbHVlQXBwbGVTeXN0ZW1MYWJlbCwgc3R5bGVDb2xvck9wdGlvbnMpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDRj
NWQ0MmFlYmZiMzJjNTEwZDliOWU2NDczYjNkYmRiZjAxNjRlNzguLjFjNjI1NTExZGVhZjczZGNm
YzFiMzcxYmY3MDViODA3NTc2ZWFiMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yNTg2LDcgKzI1ODYsNyBAQCB2b2lkIFJlbmRl
ckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGlj
c0xheWVyLCBHcmFwaAogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgTG9jYWxEZWZh
dWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UocmVuZGVyZXIoKS5wYWdlKCkudXNl
U3lzdGVtQXBwZWFyYW5jZSgpLCByZW5kZXJlcigpLnBhZ2UoKS5kZWZhdWx0QXBwZWFyYW5jZSgp
KTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShyZW5k
ZXJlcigpLnBhZ2UoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKCksIHJlbmRlcmVyKCkucGFnZSgpLnVz
ZURhcmtBcHBlYXJhbmNlKCkpOwogI2VuZGlmCiAKICAgICAvLyBUaGUgZGlydHlSZWN0IGlzIGlu
IHRoZSBjb29yZHMgb2YgdGhlIHBhaW50aW5nIHJvb3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGRiMTZkZGE3ZjRkMjM4
NmIwNGIzMDEzYTkxNTJiZTc5OTk3NGEzZmQuLjQxYTYzODQ2ZDdkODVhOGExMzE4MTRiYmRmMGM2
NDc4NzYzNmQ0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNzc0LDcgKzI3NzQsNyBAQCB2b2lkIHBhaW50U2Nyb2xs
YmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEludFJlYwogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhaW50Q29udGVudHMoY29uc3Qg
R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwLCBHcmFwaGlj
c0xheWVyUGFpbnRCZWhhdmlvcikKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAgTG9jYWxEZWZh
dWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UocGFnZSgpLnVzZVN5c3RlbUFwcGVh
cmFuY2UoKSwgcGFnZSgpLmRlZmF1bHRBcHBlYXJhbmNlKCkpOworICAgIExvY2FsRGVmYXVsdFN5
c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKHBhZ2UoKS51c2VTeXN0ZW1BcHBlYXJhbmNl
KCksIHBhZ2UoKS51c2VEYXJrQXBwZWFyYW5jZSgpKTsKICNlbmRpZgogCiAgICAgSW50UmVjdCBw
aXhlbFNuYXBwZWRSZWN0Rm9ySW50ZWdyYWxQb3NpdGlvbmVkSXRlbXMgPSBzbmFwcGVkSW50UmVj
dChMYXlvdXRSZWN0KGNsaXApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
Y3BwCmluZGV4IDJmOTQwM2Q2MjlkM2FiMTA5MzI4ZTE2ZTE1YWQxNmMyZjE3M2E5NmEuLjU0YmRl
NzBhYzVhOTVlODNiYWYzMWNmZmM3ZDM5YzQ2OTNhMzc0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMzAzLDcgKzMwMyw3IEBAIGJvb2wgUmVuZGVyVGhl
bWU6OnBhaW50KGNvbnN0IFJlbmRlckJveCYgYm94LCBDb250cm9sU3RhdGVzJiBjb250cm9sU3Rh
dGVzLCBjb25zCiAgICAgY2FzZSBCdXR0b25QYXJ0OgogICAgIGNhc2UgSW5uZXJTcGluQnV0dG9u
UGFydDoKICAgICAgICAgdXBkYXRlQ29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKGJveCwgY29udHJv
bFN0YXRlcyk7Ci0gICAgICAgIFRoZW1lOjpzaW5nbGV0b24oKS5wYWludChwYXJ0LCBjb250cm9s
U3RhdGVzLCBwYWludEluZm8uY29udGV4dCgpLCBkZXZpY2VQaXhlbFNuYXBwZWRSZWN0LCBib3gu
c3R5bGUoKS5lZmZlY3RpdmVab29tKCksICZib3gudmlldygpLmZyYW1lVmlldygpLCBkZXZpY2VT
Y2FsZUZhY3RvciwgcGFnZVNjYWxlRmFjdG9yLCBib3gucGFnZSgpLnVzZVN5c3RlbUFwcGVhcmFu
Y2UoKSwgYm94LnBhZ2UoKS5kZWZhdWx0QXBwZWFyYW5jZSgpKTsKKyAgICAgICAgVGhlbWU6OnNp
bmdsZXRvbigpLnBhaW50KHBhcnQsIGNvbnRyb2xTdGF0ZXMsIHBhaW50SW5mby5jb250ZXh0KCks
IGRldmljZVBpeGVsU25hcHBlZFJlY3QsIGJveC5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSwgJmJv
eC52aWV3KCkuZnJhbWVWaWV3KCksIGRldmljZVNjYWxlRmFjdG9yLCBwYWdlU2NhbGVGYWN0b3Is
IGJveC5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSgpLCBib3gucGFnZSgpLnVzZURhcmtBcHBl
YXJhbmNlKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXgg
ZTcwMDFiYjNjNjY5YTQ5MWYzZjAyYzc1ODViNDE0NzAwNmIwZjc5Yy4uOWE3ZTkzY2EzZTc5NmQ3
NTRmZjMyY2JiZDgyZjcxODk1OGU5ZWJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjIxLDcgKzIyMSw3IEBAIFJlbmRlclRoZW1lTWFjOjpSZW5k
ZXJUaGVtZU1hYygpCiAKIE5TVmlldyAqUmVuZGVyVGhlbWVNYWM6OmRvY3VtZW50Vmlld0Zvcihj
b25zdCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0CiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uoby5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSgpLCBv
LnBhZ2UoKS5kZWZhdWx0QXBwZWFyYW5jZSgpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvLnBhZ2UoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKCksIG8u
cGFnZSgpLnVzZURhcmtBcHBlYXJhbmNlKCkpOwogICAgIENvbnRyb2xTdGF0ZXMgc3RhdGVzKGV4
dHJhY3RDb250cm9sU3RhdGVzRm9yUmVuZGVyZXIobykpOwogICAgIHJldHVybiBUaGVtZU1hYzo6
ZW5zdXJlZFZpZXcoJm8udmlldygpLmZyYW1lVmlldygpLCBzdGF0ZXMpOwogfQpAQCAtMzE2LDE0
ICszMTYsMTQgQEAgU3RyaW5nIFJlbmRlclRoZW1lTWFjOjppbWFnZUNvbnRyb2xzU3R5bGVTaGVl
dCgpIGNvbnN0CiAKIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykg
Y29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5j
ZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFu
Y2UpLCBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURlZmF1bHRBcHBl
YXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFu
Y2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJh
bmNlKSwgb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFy
YW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIHNlbGVjdGVkVGV4
dEJhY2tncm91bmRDb2xvcl0pOwogfQogCiBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0
aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTQwMAotICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBl
YXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBw
ZWFyYW5jZSksIG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGVmYXVs
dEFwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBw
ZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFw
cGVhcmFuY2UpLCBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtB
cHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNvbG9yRnJvbU5TQ29sb3IoW05TQ29sb3IgdW5lbXBo
YXNpemVkU2VsZWN0ZWRUZXh0QmFja2dyb3VuZENvbG9yXSk7CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTShvcHRpb25zKTsKQEAgLTMzMywxMyArMzMzLDEzIEBAIENvbG9yIFJlbmRlclRoZW1lTWFj
OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHls
ZUNvCiAKIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnN1cHBvcnRzU2VsZWN0aW9uRm9yZWdyb3VuZENv
bG9ycyhPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKLSAg
ICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNv
bnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpLCBvcHRpb25z
LmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURlZmF1bHRBcHBlYXJhbmNlKSk7Cisg
ICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5j
b250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKSwgb3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAg
IHJldHVybiBsb2NhbEFwcGVhcmFuY2UudXNpbmdEYXJrQXBwZWFyYW5jZSgpOwogfQogCiBDb2xv
ciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Io
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7Ci0gICAgTG9j
YWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlu
cyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKSwgb3B0aW9ucy5jb250
YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEZWZhdWx0QXBwZWFyYW5jZSkpOworICAgIExv
Y2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFp
bnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSksIG9wdGlvbnMuY29u
dGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsKICAgICBpZiAo
bG9jYWxBcHBlYXJhbmNlLnVzaW5nRGFya0FwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0dXJuIGNv
bG9yRnJvbU5TQ29sb3IoW05TQ29sb3Igc2VsZWN0ZWRUZXh0Q29sb3JdKTsKICAgICByZXR1cm4g
eyB9OwpAQCAtMzQ4LDcgKzM0OCw3IEBAIENvbG9yIFJlbmRlclRoZW1lTWFjOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvCiBDb2xvciBS
ZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAotICAgIExvY2FsRGVmYXVsdFN5
c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xv
cjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSksIG9wdGlvbnMuY29udGFpbnMoU3R5bGVD
b2xvcjo6T3B0aW9uczo6VXNlRGVmYXVsdEFwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERlZmF1bHRT
eXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpLCBvcHRpb25zLmNvbnRhaW5zKFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgaWYgKGxvY2FsQXBwZWFy
YW5jZS51c2luZ0RhcmtBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVybiBjb2xvckZyb21OU0Nv
bG9yKFtOU0NvbG9yIHVuZW1waGFzaXplZFNlbGVjdGVkVGV4dENvbG9yXSk7CiAgICAgcmV0dXJu
IHsgfTsKQEAgLTM2MSw3ICszNjEsNyBAQCBDb2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1J
bmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDbwogQ29sb3Ig
UmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAotICAgIExvY2FsRGVm
YXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSksIG9wdGlvbnMuY29udGFpbnMo
U3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGVmYXVsdEFwcGVhcmFuY2UpKTsKKyAgICBMb2NhbERl
ZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0
eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpLCBvcHRpb25zLmNvbnRhaW5z
KFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7CiAgICAgcmV0dXJuIGNv
bG9yRnJvbU5TQ29sb3IoW05TQ29sb3Igc2VsZWN0ZWRDb250ZW50QmFja2dyb3VuZENvbG9yXSk7
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKQEAgLTM3Miw3ICszNzIsNyBAQCBD
b2xvciBSZW5kZXJUaGVtZU1hYzo6cGxhdGZvcm1BY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dy
b3VuZENvbG9yKE9wdGlvblNldDxTdAogQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtSW5h
Y3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9y
OjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxNDAwCi0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2Nh
bEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0
ZW1BcHBlYXJhbmNlKSwgb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VE
ZWZhdWx0QXBwZWFyYW5jZSkpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9j
YWxBcHBlYXJhbmNlKG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lz
dGVtQXBwZWFyYW5jZSksIG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNl
RGFya0FwcGVhcmFuY2UpKTsKICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciB1
bmVtcGhhc2l6ZWRTZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kQ29sb3JdKTsKICNlbHNlCiAgICAg
VU5VU0VEX1BBUkFNKG9wdGlvbnMpOwpAQCAtMzgyLDE0ICszODIsMTQgQEAgQ29sb3IgUmVuZGVy
VGhlbWVNYWM6OnBsYXRmb3JtSW5hY3RpdmVMaXN0Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KE9wdGlvblNldDwKIAogQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlTGlzdEJv
eFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4g
b3B0aW9ucykgY29uc3QKIHsKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2Fs
QXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZVN5c3Rl
bUFwcGVhcmFuY2UpLCBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURl
ZmF1bHRBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2Nh
bEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0
ZW1BcHBlYXJhbmNlKSwgb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VE
YXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21OU0NvbG9yKFtOU0NvbG9yIGFs
dGVybmF0ZVNlbGVjdGVkQ29udHJvbFRleHRDb2xvcl0pOwogfQogCiBDb2xvciBSZW5kZXJUaGVt
ZU1hYzo6cGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoT3B0
aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKLSAgICBMb2NhbERlZmF1bHRTeXN0
ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpLCBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3I6Ok9wdGlvbnM6OlVzZURlZmF1bHRBcHBlYXJhbmNlKSk7CisgICAgTG9jYWxEZWZhdWx0U3lz
dGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9y
OjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKSwgb3B0aW9ucy5jb250YWlucyhTdHlsZUNv
bG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwogICAgIHJldHVybiBjb2xvckZyb21O
U0NvbG9yKFtOU0NvbG9yIHVuZW1waGFzaXplZFNlbGVjdGVkVGV4dENvbG9yXSk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShvcHRpb25zKTsKQEAgLTQwNyw3ICs0MDcsNyBAQCBDb2xvciBSZW5k
ZXJUaGVtZU1hYzo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcihPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aQogQ29sb3IgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQWN0aXZlVGV4dFNl
YXJjaEhpZ2hsaWdodENvbG9yKE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25z
KSBjb25zdAogewogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAw
Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uob3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0ZW1BcHBlYXJhbmNlKSwgb3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEZWZhdWx0QXBwZWFyYW5jZSkp
OworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKG9wdGlv
bnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlU3lzdGVtQXBwZWFyYW5jZSksIG9w
dGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpKTsK
ICAgICByZXR1cm4gY29sb3JGcm9tTlNDb2xvcihbTlNDb2xvciBmaW5kSGlnaGxpZ2h0Q29sb3Jd
KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwpAQCAtNTI1LDggKzUyNSw4IEBA
IHZvaWQgUmVuZGVyVGhlbWVNYWM6OnBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCkKIGF1dG8gUmVu
ZGVyVGhlbWVNYWM6OmNvbG9yQ2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9w
dGlvbnMpIGNvbnN0IC0+IENvbG9yQ2FjaGUmCiB7CiAgICAgY29uc3QgYm9vbCB1c2VTeXN0ZW1B
cHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VTeXN0
ZW1BcHBlYXJhbmNlKTsKLSAgICBjb25zdCBib29sIHVzZURlZmF1bHRBcHBlYXJhbmNlID0gb3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEZWZhdWx0QXBwZWFyYW5jZSk7
Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UodXNlU3lz
dGVtQXBwZWFyYW5jZSwgdXNlRGVmYXVsdEFwcGVhcmFuY2UpOworICAgIGNvbnN0IGJvb2wgdXNl
RGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVz
ZURhcmtBcHBlYXJhbmNlKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2Fs
QXBwZWFyYW5jZSh1c2VTeXN0ZW1BcHBlYXJhbmNlLCB1c2VEYXJrQXBwZWFyYW5jZSk7CiAgICAg
aWYgKGxvY2FsQXBwZWFyYW5jZS51c2luZ0RhcmtBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJldHVy
biBtX2RhcmtDb2xvckNhY2hlOwogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6Y29sb3JDYWNoZShv
cHRpb25zKTsKQEAgLTUzNSwxMCArNTM1LDEwIEBAIGF1dG8gUmVuZGVyVGhlbWVNYWM6OmNvbG9y
Q2FjaGUoT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0IC0+CiBD
b2xvciBSZW5kZXJUaGVtZU1hYzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBjb25z
dCBib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZVN5c3RlbUFwcGVhcmFuY2UpOwotICAgIGNvbnN0IGJvb2wgdXNlRGVmYXVs
dEFwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURl
ZmF1bHRBcHBlYXJhbmNlKTsKKyAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAg
ICAgY29uc3QgYm9vbCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xv
cjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwogCi0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UodXNlU3lzdGVtQXBwZWFyYW5jZSwgdXNlRGVmYXVsdEFw
cGVhcmFuY2UpOworICAgIExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJh
bmNlKHVzZVN5c3RlbUFwcGVhcmFuY2UsIHVzZURhcmtBcHBlYXJhbmNlKTsKIAogICAgIGF1dG8m
IGNhY2hlID0gY29sb3JDYWNoZShvcHRpb25zKTsKIApAQCAtMTYwNSw3ICsxNjA1LDcgQEAgdm9p
ZCBSZW5kZXJUaGVtZU1hYzo6c2V0UG9wdXBCdXR0b25DZWxsU3RhdGUoY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvLCBjb25zdCBJbnRTaXoKIAogdm9pZCBSZW5kZXJUaGVtZU1hYzo6cGFpbnRDZWxsQW5k
U2V0Rm9jdXNlZEVsZW1lbnROZWVkc1JlcGFpbnRJZk5lY2Vzc2FyeShOU0NlbGwqIGNlbGwsIGNv
bnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5j
ZSBsb2NhbEFwcGVhcmFuY2UocmVuZGVyZXIucGFnZSgpLnVzZVN5c3RlbUFwcGVhcmFuY2UoKSwg
cmVuZGVyZXIucGFnZSgpLmRlZmF1bHRBcHBlYXJhbmNlKCkpOworICAgIExvY2FsRGVmYXVsdFN5
c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKHJlbmRlcmVyLnBhZ2UoKS51c2VTeXN0ZW1B
cHBlYXJhbmNlKCksIHJlbmRlcmVyLnBhZ2UoKS51c2VEYXJrQXBwZWFyYW5jZSgpKTsKICAgICBi
b29sIHNob3VsZERyYXdGb2N1c1JpbmcgPSBpc0ZvY3VzZWQocmVuZGVyZXIpICYmIHJlbmRlcmVy
LnN0eWxlKCkub3V0bGluZVN0eWxlSXNBdXRvKCkgPT0gT3V0bGluZUlzQXV0bzo6T247CiAgICAg
Ym9vbCBzaG91bGRVc2VJbWFnZUJ1ZmZlciA9IHJlbmRlcmVyLnN0eWxlKCkuZWZmZWN0aXZlWm9v
bSgpICE9IDEgfHwgcmVuZGVyZXIucGFnZSgpLnBhZ2VTY2FsZUZhY3RvcigpICE9IDE7CiAgICAg
Ym9vbCBzaG91bGREcmF3Q2VsbCA9IHRydWU7CkBAIC0xNjg3LDcgKzE2ODcsNyBAQCBib29sIFJl
bmRlclRoZW1lTWFjOjpwYWludFNsaWRlclRodW1iKGNvbnN0IFJlbmRlck9iamVjdCYgbywgY29u
c3QgUGFpbnRJbmZvJiBwYQogICAgICAgICA/IHNsaWRlclRodW1iVmVydGljYWwoKQogICAgICAg
ICA6IHNsaWRlclRodW1iSG9yaXpvbnRhbCgpOwogCi0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2Uoby5wYWdlKCkudXNlU3lzdGVtQXBwZWFyYW5jZSgpLCBv
LnBhZ2UoKS5kZWZhdWx0QXBwZWFyYW5jZSgpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBl
YXJhbmNlIGxvY2FsQXBwZWFyYW5jZShvLnBhZ2UoKS51c2VTeXN0ZW1BcHBlYXJhbmNlKCksIG8u
cGFnZSgpLnVzZURhcmtBcHBlYXJhbmNlKCkpOwogCiAgICAgTG9jYWxDdXJyZW50R3JhcGhpY3ND
b250ZXh0IGxvY2FsQ29udGV4dChwYWludEluZm8uY29udGV4dCgpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5kZXggYWFjMjU0M2VlN2Q5YTA2MDY3MmNiM2Yx
MGVjODYwNTViNjk3YjkyOC4uYmQxZjYzMjEwNDZhMjA5ZWI3MDA4NjU5OWYyZGJhZGEwNTY1NzYw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCkBAIC0zMjQsNyAr
MzI0LDcgQEAgSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWMKICAgICB9CiAKICNpZiBQTEFURk9STShN
QUMpCi0gICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UobV9w
YWdlLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCksIG1fcGFnZS0+ZGVmYXVsdEFwcGVhcmFuY2UoKSk7
CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UobV9wYWdl
LT51c2VTeXN0ZW1BcHBlYXJhbmNlKCksIG1fcGFnZS0+dXNlRGFya0FwcGVhcmFuY2UoKSk7CiAj
ZW5kaWYKIAogICAgIHZpZXctPnBhaW50KGNvbnRleHQsIGludGVyc2VjdGlvbihjb250ZXh0LmNs
aXBCb3VuZHMoKSwgZW5jbG9zaW5nSW50UmVjdChzcmNSZWN0KSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCAzYjBiOGFh
NTBmYWRhOTU2N2Q3YWNlOWEyYTU3M2EwMWEzMjViZGM3Li41YzAxYjdmZmU2Y2ViOTg3NGQzNjY5
NzY5NTVlMGM2OWFkNGRjNjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lkIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIGVuY29kZXIgPDwgY29sb3JTcGFjZTsKICAgICBlbmNvZGVy
IDw8IHVzZVN5c3RlbUFwcGVhcmFuY2U7Ci0gICAgZW5jb2RlciA8PCBkZWZhdWx0QXBwZWFyYW5j
ZTsKKyAgICBlbmNvZGVyIDw8IHVzZURhcmtBcHBlYXJhbmNlOwogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIGVuY29kZXIgPDwgc2NyZWVuU2l6ZTsKQEAgLTIzOSw3ICsyMzksNyBAQCBz
dGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZShJUEM6OgogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51c2VTeXN0ZW1BcHBlYXJhbmNlKSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuZGVmYXVsdEFwcGVhcmFuY2UpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy51c2VEYXJrQXBwZWFyYW5jZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oCmluZGV4IDA2ZjdhYjYyMDg4YjdiMzhlODU0MTllYzc1MmI3NmU2YTY1YWRkYWIuLjE2
ODdiNWY3NTkzMzEyYzI3YWRhMTY3Zjc5MWJmZmQyNmYxMWU4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEzOCw3ICsxMzgs
NyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIENvbG9yU3BhY2VEYXRhIGNvbG9yU3BhY2U7CiAgICAgYm9vbCB1c2VTeXN0ZW1BcHBl
YXJhbmNlOwotICAgIGJvb2wgZGVmYXVsdEFwcGVhcmFuY2U7CisgICAgYm9vbCB1c2VEYXJrQXBw
ZWFyYW5jZTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAgICBXZWJDb3JlOjpGbG9hdFNp
emUgc2NyZWVuU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCmluZGV4IDQyMzNiMjBlZjVlYWJiNTRkMzg3ODIyMmU3NTIxNmJmMTg4OTUwNDIu
LmFjMDA2YjdiYmMxNzk0MjliZDc2MzdhYWNiODI3YzdhMWZmNWViYjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDY1LDkgKzQ2NSw5
IEBAIHN0YXRpYyB1aW50MzJfdCBjb252ZXJ0U3lzdGVtTGF5b3V0RGlyZWN0aW9uKE5TVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbiBkaXJlCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQz
Ml90PihXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFIpOwogfQogCi0t
IChib29sKV9kZWZhdWx0QXBwZWFyYW5jZQorLSAoYm9vbClfZWZmZWN0aXZlQXBwZWFyYW5jZUlz
RGFyawogewotICAgIHJldHVybiBfaW1wbC0+dXNlRGVmYXVsdEFwcGVhcmFuY2UoKTsKKyAgICBy
ZXR1cm4gX2ltcGwtPmVmZmVjdGl2ZUFwcGVhcmFuY2VJc0RhcmsoKTsKIH0KIAogI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykKQEAgLTY5MSw3ICs2OTEsNyBAQCAtICh2b2lkKV9pbml0aWFsaXplV2l0
aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAK
ICAgICBfaW1wbC0+c2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKHRydWUpOwog
ICAgIF9pbXBsLT5zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2Vy
KFtjb25maWd1cmF0aW9uIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5h
Z2VyXSk7Ci0gICAgX2ltcGwtPnNldERlZmF1bHRBcHBlYXJhbmNlKFtzZWxmIF9kZWZhdWx0QXBw
ZWFyYW5jZV0pOworICAgIF9pbXBsLT5zZXRVc2VEYXJrQXBwZWFyYW5jZShzZWxmLl9lZmZlY3Rp
dmVBcHBlYXJhbmNlSXNEYXJrKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlf
RVZFTlRTKQpAQCAtNjI2OCw3ICs2MjY4LDcgQEAgLSAoQk9PTClfdXNlU3lzdGVtQXBwZWFyYW5j
ZQogLSAodm9pZClfc2V0VXNlU3lzdGVtQXBwZWFyYW5jZTooQk9PTCl1c2VTeXN0ZW1BcHBlYXJh
bmNlCiB7CiAgICAgX2ltcGwtPnNldFVzZVN5c3RlbUFwcGVhcmFuY2UodXNlU3lzdGVtQXBwZWFy
YW5jZSk7Ci0gICAgX2ltcGwtPnNldERlZmF1bHRBcHBlYXJhbmNlKFtzZWxmIF9kZWZhdWx0QXBw
ZWFyYW5jZV0pOworICAgIF9pbXBsLT5zZXRVc2VEYXJrQXBwZWFyYW5jZShzZWxmLl9lZmZlY3Rp
dmVBcHBlYXJhbmNlSXNEYXJrKTsKIH0KIAogLSAodm9pZCllZmZlY3RpdmVBcHBlYXJhbmNlRGlk
Q2hhbmdlCkBAIC02Mjc4LDcgKzYyNzgsNyBAQCAtICh2b2lkKWVmZmVjdGl2ZUFwcGVhcmFuY2VE
aWRDaGFuZ2UKICAgICBpZiAoIV9pbXBsKQogICAgICAgICByZXR1cm47CiAKLSAgICBfaW1wbC0+
c2V0RGVmYXVsdEFwcGVhcmFuY2UoW3NlbGYgX2RlZmF1bHRBcHBlYXJhbmNlXSk7CisgICAgX2lt
cGwtPnNldFVzZURhcmtBcHBlYXJhbmNlKHNlbGYuX2VmZmVjdGl2ZUFwcGVhcmFuY2VJc0Rhcmsp
OwogfQogCiAtICh2b2lkKV9zZXRIZWFkZXJCYW5uZXJIZWlnaHQ6KGludCloZWlnaHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggYTE4ZTBmYjc4MGZlZjVj
NWQ2MWZjMDJhYzgyYzFiOTJjOGQ1ODUwZS4uZTRmNjBhOTFkYjUzYmQ2MmVlNjRkNDNmOGM4NDg2
NGY5OGM3OWZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
QEAgLTE2MjIsMjAgKzE2MjIsMjAgQEAgLSAodm9pZClfc2V0U2hvdWxkU3VwcHJlc3NGaXJzdFJl
c3BvbmRlckNoYW5nZXM6KEJPT0wpc2hvdWxkU3VwcHJlc3MKICAgICBfZGF0YS0+X2ltcGwtPnNl
dFNob3VsZFN1cHByZXNzRmlyc3RSZXNwb25kZXJDaGFuZ2VzKHNob3VsZFN1cHByZXNzKTsKIH0K
IAotLSAoYm9vbClfZGVmYXVsdEFwcGVhcmFuY2UKKy0gKGJvb2wpX2VmZmVjdGl2ZUFwcGVhcmFu
Y2VJc0RhcmsKIHsKLSAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT51c2VEZWZhdWx0QXBwZWFyYW5j
ZSgpOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmVmZmVjdGl2ZUFwcGVhcmFuY2VJc0Rhcmso
KTsKIH0KIAogLSAodm9pZCllZmZlY3RpdmVBcHBlYXJhbmNlRGlkQ2hhbmdlCiB7Ci0gICAgX2Rh
dGEtPl9pbXBsLT5zZXREZWZhdWx0QXBwZWFyYW5jZShbc2VsZiBfZGVmYXVsdEFwcGVhcmFuY2Vd
KTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldFVzZURhcmtBcHBlYXJhbmNlKHNlbGYuX2VmZmVjdGl2
ZUFwcGVhcmFuY2VJc0RhcmspOwogfQogCiAtICh2b2lkKV9zZXRVc2VTeXN0ZW1BcHBlYXJhbmNl
OihCT09MKXVzZVN5c3RlbUFwcGVhcmFuY2UKIHsKICAgICBfZGF0YS0+X2ltcGwtPnNldFVzZVN5
c3RlbUFwcGVhcmFuY2UodXNlU3lzdGVtQXBwZWFyYW5jZSk7Ci0gICAgX2RhdGEtPl9pbXBsLT5z
ZXREZWZhdWx0QXBwZWFyYW5jZShbc2VsZiBfZGVmYXVsdEFwcGVhcmFuY2VdKTsKKyAgICBfZGF0
YS0+X2ltcGwtPnNldFVzZURhcmtBcHBlYXJhbmNlKHNlbGYuX2VmZmVjdGl2ZUFwcGVhcmFuY2VJ
c0RhcmspOwogfQogCiAtIChCT09MKV91c2VTeXN0ZW1BcHBlYXJhbmNlCkBAIC0xNjQzLDEyICsx
NjQzLDYgQEAgLSAoQk9PTClfdXNlU3lzdGVtQXBwZWFyYW5jZQogICAgIHJldHVybiBfZGF0YS0+
X2ltcGwtPnVzZVN5c3RlbUFwcGVhcmFuY2UoKTsKIH0KIAotLSAodm9pZClfc2V0RGVmYXVsdEFw
cGVhcmFuY2U6KEJPT0wpZGVmYXVsdEFwcGVhcmFuY2UKLXsKLSAgICBfZGF0YS0+X2ltcGwtPnNl
dERlZmF1bHRBcHBlYXJhbmNlKGRlZmF1bHRBcHBlYXJhbmNlKTsKLX0KLQotCiBAZW5kCiAKICNl
bmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaAppbmRleCAxNjRiYWMzYmQ2NWZmYzBjY2E2NzlmYjhkZDA2NDg1N2UzZWQ4MmU5
Li5jZjQ5ODI1OGIzZDg2YTk3OTEzN2VhOTZkNWFkMmRkNzE1ZDI1Y2Y5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTUzOCw4ICs1MzgsOCBAQCBw
dWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRVc2VTeXN0ZW1BcHBlYXJhbmNlKGJvb2wpOwogICAg
IGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSgpOwotICAgIHZvaWQgc2V0RGVmYXVsdEFwcGVhcmFu
Y2UoYm9vbCk7Ci0gICAgYm9vbCB1c2VEZWZhdWx0QXBwZWFyYW5jZSgpOworICAgIHZvaWQgc2V0
VXNlRGFya0FwcGVhcmFuY2UoYm9vbCk7CisgICAgYm9vbCBlZmZlY3RpdmVBcHBlYXJhbmNlSXNE
YXJrKCk7CiAKIHByaXZhdGU6CiAjaWYgSEFWRShUT1VDSF9CQVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGU4NTE4Y2E0YjRlNmMwMDU3NWVj
MTgxNzVjYjAwOGY3OTZmZTZhYzkuLjc3YTA5MjhmOTA2MTAwZDA5NzQ5NThkOGFlZWI3ZWUwMjNl
ZDMwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
CkBAIC01MDEzLDE5ICs1MDEzLDE5IEBAIGJvb2wgV2ViVmlld0ltcGw6OnVzZVN5c3RlbUFwcGVh
cmFuY2UoKQogICAgIHJldHVybiBtX3BhZ2UtPnVzZVN5c3RlbUFwcGVhcmFuY2UoKTsKIH0KIAot
Ym9vbCBXZWJWaWV3SW1wbDo6dXNlRGVmYXVsdEFwcGVhcmFuY2UoKQorYm9vbCBXZWJWaWV3SW1w
bDo6ZWZmZWN0aXZlQXBwZWFyYW5jZUlzRGFyaygpCiB7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAogICAgIE5TQXBwZWFyYW5j
ZU5hbWUgYXBwZWFyYW5jZSA9IFtbbV92aWV3IGVmZmVjdGl2ZUFwcGVhcmFuY2VdIGJlc3RNYXRj
aEZyb21BcHBlYXJhbmNlc1dpdGhOYW1lczpAWyBOU0FwcGVhcmFuY2VOYW1lQXF1YSwgTlNBcHBl
YXJhbmNlTmFtZURhcmtBcXVhIF1dOwotICAgIHJldHVybiBbYXBwZWFyYW5jZSBpc0VxdWFsVG9T
dHJpbmc6TlNBcHBlYXJhbmNlTmFtZUFxdWFdOworICAgIHJldHVybiBbYXBwZWFyYW5jZSBpc0Vx
dWFsVG9TdHJpbmc6TlNBcHBlYXJhbmNlTmFtZURhcmtBcXVhXTsKICNlbHNlCi0gICAgcmV0dXJu
IHRydWU7CisgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6
OnNldERlZmF1bHRBcHBlYXJhbmNlKGJvb2wgZGVmYXVsdEFwcGVhcmFuY2UpCit2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRVc2VEYXJrQXBwZWFyYW5jZShib29sIHVzZURhcmtBcHBlYXJhbmNlKQogewot
ICAgIG1fcGFnZS0+c2V0RGVmYXVsdEFwcGVhcmFuY2UoZGVmYXVsdEFwcGVhcmFuY2UpOworICAg
IG1fcGFnZS0+c2V0VXNlRGFya0FwcGVhcmFuY2UodXNlRGFya0FwcGVhcmFuY2UpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IGQ5ZGEwMmI5YzFhZDg3ZjVjZGM3N2MwZWVjZTQwNjI2ZThlMTc1NGYuLjZjZTM1
ZDUzYTRmZGQzNjZkOWIzNzc5N2E4OWNlYjMzYmMzOTczNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjE4NCw3ICs2MTg0LDcgQEAgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycygpCiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIHBhcmFtZXRlcnMuY29sb3JTcGFjZSA9IG1fcGFnZUNsaWVudC5jb2xv
clNwYWNlKCk7CiAgICAgcGFyYW1ldGVycy51c2VTeXN0ZW1BcHBlYXJhbmNlID0gbV91c2VTeXN0
ZW1BcHBlYXJhbmNlOwotICAgIHBhcmFtZXRlcnMuZGVmYXVsdEFwcGVhcmFuY2UgPSBtX2RlZmF1
bHRBcHBlYXJhbmNlOworICAgIHBhcmFtZXRlcnMudXNlRGFya0FwcGVhcmFuY2UgPSBtX3VzZURh
cmtBcHBlYXJhbmNlOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHBhcmFtZXRlcnMu
c2NyZWVuU2l6ZSA9IHNjcmVlblNpemUoKTsKQEAgLTczMDgsMTYgKzczMDgsMTYgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnNldFVzZVN5c3RlbUFwcGVhcmFuY2UoYm9vbCB1c2VTeXN0ZW1BcHBlYXJh
bmNlKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0VXNlU3lzdGVt
QXBwZWFyYW5jZSh1c2VTeXN0ZW1BcHBlYXJhbmNlKSwgbV9wYWdlSUQpOwogfQogICAgIAotdm9p
ZCBXZWJQYWdlUHJveHk6OnNldERlZmF1bHRBcHBlYXJhbmNlKGJvb2wgZGVmYXVsdEFwcGVhcmFu
Y2UpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VXNlRGFya0FwcGVhcmFuY2UoYm9vbCB1c2VEYXJr
QXBwZWFyYW5jZSkKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwotICAg
IAotICAgIGlmIChkZWZhdWx0QXBwZWFyYW5jZSA9PSBtX2RlZmF1bHRBcHBlYXJhbmNlKQorCisg
ICAgaWYgKHVzZURhcmtBcHBlYXJhbmNlID09IG1fdXNlRGFya0FwcGVhcmFuY2UpCiAgICAgICAg
IHJldHVybjsKLSAgICAKLSAgICBtX2RlZmF1bHRBcHBlYXJhbmNlID0gZGVmYXVsdEFwcGVhcmFu
Y2U7Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXREZWZhdWx0QXBw
ZWFyYW5jZShkZWZhdWx0QXBwZWFyYW5jZSksIG1fcGFnZUlEKTsKKworICAgIG1fdXNlRGFya0Fw
cGVhcmFuY2UgPSB1c2VEYXJrQXBwZWFyYW5jZTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlNldFVzZURhcmtBcHBlYXJhbmNlKHVzZURhcmtBcHBlYXJhbmNlKSwgbV9w
YWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0SGVhZGVyQmFubmVySGVpZ2h0Rm9y
VGVzdGluZyhpbnQgaGVpZ2h0KQpAQCAtNzM2NSw3ICs3MzY1LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IGNvbnRleHRJZCkK
IAogdm9pZCBXZWJQYWdlUHJveHk6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCBj
b250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCwgYm9vbCBoYXNWaWRlbykK
IHsKLSAgICBtX3BhZ2VDbGllbnQubWVkaWFTZXNzaW9uTWFuYWdlcigpLnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcigqdGhpcywgY29udGV4dElkLCBtX3BhZ2VDbGllbnQucm9vdFZpZXdUb1NjcmVl
bihJbnRSZWN0KHJlY3QpKSwgaGFzVmlkZW8sIG1fZGVmYXVsdEFwcGVhcmFuY2UpOworICAgIG1f
cGFnZUNsaWVudC5tZWRpYVNlc3Npb25NYW5hZ2VyKCkuc2hvd1BsYXliYWNrVGFyZ2V0UGlja2Vy
KCp0aGlzLCBjb250ZXh0SWQsIG1fcGFnZUNsaWVudC5yb290Vmlld1RvU2NyZWVuKEludFJlY3Qo
cmVjdCkpLCBoYXNWaWRlbywgbV91c2VEYXJrQXBwZWFyYW5jZSk7CiB9CiAKIHZvaWQgV2ViUGFn
ZVByb3h5OjpwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90
IGNvbnRleHRJZCwgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhYzA2OTE4NWEwNmEx
MWI3YThlYTZjZTQ3ZjcxMzBiNDgzOGYyODQ3Li43OTZhOTEwNTIyZTg0MzA5YWRhOWJlZWM0ODAz
NTQ0NGRjMzJlZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
ODI5LDggKzgyOSw4IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzZXRV
c2VTeXN0ZW1BcHBlYXJhbmNlKGJvb2wpOwogICAgIGJvb2wgdXNlU3lzdGVtQXBwZWFyYW5jZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdXNlU3lzdGVtQXBwZWFyYW5jZTsgfQotICAgIHZvaWQgc2V0RGVm
YXVsdEFwcGVhcmFuY2UoYm9vbCk7Ci0gICAgYm9vbCBkZWZhdWx0QXBwZWFyYW5jZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVmYXVsdEFwcGVhcmFuY2U7IH0KKyAgICB2b2lkIHNldFVzZURhcmtBcHBl
YXJhbmNlKGJvb2wpOworICAgIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UoKSBjb25zdCB7IHJldHVy
biBtX3VzZURhcmtBcHBlYXJhbmNlOyB9CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpA
QCAtMTg2OCw3ICsxODY4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIGJvb2wgbV91c2VTeXN0ZW1BcHBlYXJhbmNlIHsgZmFsc2UgfTsKLSAgICBib29sIG1f
ZGVmYXVsdEFwcGVhcmFuY2UgeyB0cnVlIH07CisgICAgYm9vbCBtX3VzZURhcmtBcHBlYXJhbmNl
IHsgZmFsc2UgfTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbQppbmRleCA2ZjY5OWM5Y2E1YTI5
ZDkwMjczZTM0ZDk5MTdmNTk2YmFmNmZhMDc5Li45YjE4YWY5MmQ5NTkyNzQzMTAyNTk0NjE5YWEx
NDdhYTczOTEwNmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQ
cmludGluZ1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRp
bmdWaWV3Lm1tCkBAIC01NjgsNyArNTY4LDcgQEAgLSAodm9pZClkcmF3UmVjdDooTlNSZWN0KW5z
UmVjdAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9jYWxEZWZhdWx0
U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UocGFnZS0+dXNlU3lzdGVtQXBwZWFyYW5j
ZSgpLCBwYWdlLT5kZWZhdWx0QXBwZWFyYW5jZSgpKTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1B
cHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShwYWdlLT51c2VTeXN0ZW1BcHBlYXJhbmNlKCksIHBh
Z2UtPnVzZURhcmtBcHBlYXJhbmNlKCkpOwogCiAgICAgaWYgKFtzZWxmIF9pc1ByaW50aW5nUHJl
dmlld10pIHsKICAgICAgICAgW3NlbGYgX2RyYXdQcmV2aWV3Om5zUmVjdF07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcAppbmRleCAyM2QwNWYwNWQ3ZDBj
ZTM1ZDYwNTQ4Yzc1MGJjOGI1MTYwZWRkOGU4Li44OGI3ZDU0MzE5MTA0NGIyZTMyMGNhOTUzNjJj
NWMwOTI5NGE4MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZS5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCBSZWZQdHI8V2ViSW1hZ2U+IEluamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGU6OnJlbmRlcmVkSW1hZ2UoU25hcHNob3RPcHRpb25zIG9wdGlvbgogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBMb2NhbERlZmF1
bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShmcmFtZS0+cGFnZSgpLT51c2VTeXN0
ZW1BcHBlYXJhbmNlKCksIGZyYW1lLT5wYWdlKCktPmRlZmF1bHRBcHBlYXJhbmNlKCkpOworICAg
IExvY2FsRGVmYXVsdFN5c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKGZyYW1lLT5wYWdl
KCktPnVzZVN5c3RlbUFwcGVhcmFuY2UoKSwgZnJhbWUtPnBhZ2UoKS0+dXNlRGFya0FwcGVhcmFu
Y2UoKSk7CiAjZW5kaWYKIAogICAgIFJlZjxGcmFtZT4gcHJvdGVjdG9yKCpmcmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRl
eCBjZDBjMjg2MGRkM2Q4ZmMzZmMxOGM4MzgyZmFiZTJjYmVhNWEzMzFhLi5jYWU0MzA2MDEzNmVk
N2U4YTVhMjEzZjI2NTQyZDdmMGQ4NjhlODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTEyMTUsNyArMTIxNSw3IEBAIHZv
aWQgUERGUGx1Z2luOjpwYWludENvbnRyb2xGb3JMYXllckluQ29udGV4dChDQUxheWVyICpsYXll
ciwgQ0dDb250ZXh0UmVmIGNvbnRlCiB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGF1dG8qIHBh
Z2UgPSB3ZWJGcmFtZSgpLT5jb3JlRnJhbWUoKS0+cGFnZSgpOwotICAgIExvY2FsRGVmYXVsdFN5
c3RlbUFwcGVhcmFuY2UgbG9jYWxBcHBlYXJhbmNlKHBhZ2UtPnVzZVN5c3RlbUFwcGVhcmFuY2Uo
KSwgcGFnZS0+ZGVmYXVsdEFwcGVhcmFuY2UoKSk7CisgICAgTG9jYWxEZWZhdWx0U3lzdGVtQXBw
ZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UocGFnZS0+dXNlU3lzdGVtQXBwZWFyYW5jZSgpLCBwYWdl
LT51c2VEYXJrQXBwZWFyYW5jZSgpKTsKICNlbmRpZgogCiAgICAgR3JhcGhpY3NDb250ZXh0IGdy
YXBoaWNzQ29udGV4dChjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggYTM5NDllYWQ1MjMwNGY2YTY1YjQ2NzNkNGNjNTYyNWQ3NDg0
ZDNhNS4uYTcwNWNiODc4ZTNjZThlMDFhZjM2NzAxNTRmNWIxZDZjYzM1MDc0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTUxMSw3ICs1MTEs
NyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgc2V0UGFnaW5hdGlvbkxpbmVHcmlkRW5hYmxlZChw
YXJhbWV0ZXJzLnBhZ2luYXRpb25MaW5lR3JpZEVuYWJsZWQpOwogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBzZXRVc2VTeXN0ZW1BcHBlYXJhbmNlKHBhcmFtZXRlcnMudXNlU3lzdGVtQXBwZWFyYW5j
ZSk7Ci0gICAgc2V0RGVmYXVsdEFwcGVhcmFuY2UocGFyYW1ldGVycy5kZWZhdWx0QXBwZWFyYW5j
ZSk7CisgICAgc2V0VXNlRGFya0FwcGVhcmFuY2UocGFyYW1ldGVycy51c2VEYXJrQXBwZWFyYW5j
ZSk7CiAjZW5kaWYKICAgICAvLyBJZiB0aGUgcGFnZSBpcyBjcmVhdGVkIG9mZi1zY3JlZW4sIGl0
cyB2aXNpYmlsaXR5U3RhdGUgc2hvdWxkIGJlIHByZXJlbmRlci4KICAgICBtX3BhZ2UtPnNldEFj
dGl2aXR5U3RhdGUobV9hY3Rpdml0eVN0YXRlKTsKQEAgLTE1MjIsNyArMTUyMiw3IEBAIHZvaWQg
V2ViUGFnZTo6c2Nyb2xsTWFpbkZyYW1lSWZOb3RBdE1heFNjcm9sbFBvc2l0aW9uKGNvbnN0IElu
dFNpemUmIHNjcm9sbE9mZnNlCiB2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0KEdyYXBoaWNzQ29udGV4
dCYgZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogI2lmIFBMQVRGT1JN
KE1BQykKLSAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZSht
X3BhZ2UtPnVzZVN5c3RlbUFwcGVhcmFuY2UoKSwgbV9wYWdlLT5kZWZhdWx0QXBwZWFyYW5jZSgp
KTsKKyAgICBMb2NhbERlZmF1bHRTeXN0ZW1BcHBlYXJhbmNlIGxvY2FsQXBwZWFyYW5jZShtX3Bh
Z2UtPnVzZVN5c3RlbUFwcGVhcmFuY2UoKSwgbV9wYWdlLT51c2VEYXJrQXBwZWFyYW5jZSgpKTsK
ICNlbmRpZgogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGdyYXBo
aWNzQ29udGV4dCk7CkBAIC00MjA1LDkgKzQyMDUsOSBAQCB2b2lkIFdlYlBhZ2U6OnNldFVzZVN5
c3RlbUFwcGVhcmFuY2UoYm9vbCB1c2VTeXN0ZW1BcHBlYXJhbmNlKQogICAgIGNvcmVQYWdlKCkt
PnNldFVzZVN5c3RlbUFwcGVhcmFuY2UodXNlU3lzdGVtQXBwZWFyYW5jZSk7CiB9CiAgICAgCi12
b2lkIFdlYlBhZ2U6OnNldERlZmF1bHRBcHBlYXJhbmNlKGJvb2wgZGVmYXVsdEFwcGVhcmFuY2Up
Cit2b2lkIFdlYlBhZ2U6OnNldFVzZURhcmtBcHBlYXJhbmNlKGJvb2wgdXNlRGFya0FwcGVhcmFu
Y2UpCiB7Ci0gICAgY29yZVBhZ2UoKS0+c2V0RGVmYXVsdEFwcGVhcmFuY2UoZGVmYXVsdEFwcGVh
cmFuY2UpOworICAgIGNvcmVQYWdlKCktPnNldFVzZURhcmtBcHBlYXJhbmNlKHVzZURhcmtBcHBl
YXJhbmNlKTsKICAgICBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkucGxhdGZvcm1Db2xvcnNEaWRD
aGFuZ2UoKTsKICAgICBjb3JlUGFnZSgpLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3
NDFlOTJmZTNjNGY1MGRjZmVjZDNiN2M4ZjBiODllMGNmMDRkYzRhLi40ODZmODVhNDg2NjE2MjA3
MDE4NGI3MThlMzI2MDU5OGQ5MTlmM2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC01MTksNyArNTE5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
Qm90dG9tT3ZlcmhhbmdJbWFnZShXZWJJbWFnZSopOwogICAgIAogICAgIHZvaWQgc2V0VXNlU3lz
dGVtQXBwZWFyYW5jZShib29sKTsKLSAgICB2b2lkIHNldERlZmF1bHRBcHBlYXJhbmNlKGJvb2wp
OworICAgIHZvaWQgc2V0VXNlRGFya0FwcGVhcmFuY2UoYm9vbCk7CiAjZW5kaWYKIAogICAgIGJv
b2wgd2luZG93SXNGb2N1c2VkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA2ODZkYWZhNDE2NTVmMDQ0
MTE2ODIyMGYwOTUzMjQ3OTU5NTRjNmIyLi5mZjJmNzBiY2ViMTcyOGUzOTM0MmY5MTcxMjJjODRl
NTQ5NmU3Y2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQ0OCw3ICs0NDgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZShzdHJ1Y3Qg
V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0IGFjY2VwdGVkQ2FuZGlkYXRlKQogCiAgICAgU2V0
VXNlU3lzdGVtQXBwZWFyYW5jZShib29sIHVzZVN5c3RlbUFwcGVhcmFuY2UpOwotICAgIFNldERl
ZmF1bHRBcHBlYXJhbmNlKGJvb2wgZGVmYXVsdEFwcGVhcmFuY2UpOworICAgIFNldFVzZURhcmtB
cHBlYXJhbmNlKGJvb2wgdXNlRGFya0FwcGVhcmFuY2UpOwogCiAgICAgU2V0SGVhZGVyQmFubmVy
SGVpZ2h0Rm9yVGVzdGluZyhpbnQgaGVpZ2h0KTsKICAgICBTZXRGb290ZXJCYW5uZXJIZWlnaHRG
b3JUZXN0aW5nKGludCBoZWlnaHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tCmluZGV4
IDk5YTM2ZWU1MGNjNzNjNDI2M2Y2OTUwN2YzMmQwNTdiYzk4NWFiMGEuLjU1MGIwM2U3NzI3NDQz
NGVjNjZkMWQzODE5ODhlMWZmNTI4MGFkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIu
bW0KQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpy
ZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCBjb24KIAogdm9pZCBXZWJN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0
X3QgY29udGV4dElkLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QsIGJvb2wgaGFzVmlk
ZW8pCiB7Ci0gICAgV2ViQ29yZTo6V2ViTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkKCkuc2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKCp0aGlzLCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3Qo
cmVjdCksIGhhc1ZpZGVvLCBtX3BhZ2UgPyBtX3BhZ2UtPmRlZmF1bHRBcHBlYXJhbmNlKCkgOiB0
cnVlKTsKKyAgICBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWQoKS5zaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIoKnRoaXMsIGNvbnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdChy
ZWN0KSwgaGFzVmlkZW8sIG1fcGFnZSA/IG1fcGFnZS0+dXNlRGFya0FwcGVhcmFuY2UoKSA6IGZh
bHNlKTsKIH0KIAogdm9pZCBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpwbGF5YmFja1Rh
cmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDU3MzEwZjdlOTY2Y2Q2YWZiMDA5YjA2
NDExZjYxNGE3OTRjM2FkOGQuLjRkZTRlZGNiOWNlOTZhNmMwYTk2YmNiNGNjODdiOGVkNTc3MjZj
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE1
NzQsNyArMTU3NCw3IEBAIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFt
ZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0CiAgICAgICAgIFJlc291cmNl
SGFuZGxlOjpmb3JjZUNvbnRlbnRTbmlmZmluZygpOwogCiAgICAgX3ByaXZhdGUtPnBhZ2UtPnNl
dERldmljZVNjYWxlRmFjdG9yKFtzZWxmIF9kZXZpY2VTY2FsZUZhY3Rvcl0pOwotICAgIF9wcml2
YXRlLT5wYWdlLT5zZXREZWZhdWx0QXBwZWFyYW5jZShbc2VsZiBfZGVmYXVsdEFwcGVhcmFuY2Vd
KTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0VXNlRGFya0FwcGVhcmFuY2Uoc2VsZi5fZWZmZWN0
aXZlQXBwZWFyYW5jZUlzRGFyayk7CiAjZW5kaWYKIAogICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0
aW5ncygpLnNldENvbnRlbnREaXNwb3NpdGlvbkF0dGFjaG1lbnRTYW5kYm94RW5hYmxlZCh0cnVl
KTsKQEAgLTUyNzUsMTkgKzUyNzUsMTkgQEAgLSAoV2ViRWRnZUluc2V0cylfdW5vYnNjdXJlZFNh
ZmVBcmVhSW5zZXRzCiAgICAgcmV0dXJuIGluc2V0czsKIH0KIAotLSAoYm9vbClfZGVmYXVsdEFw
cGVhcmFuY2UKKy0gKGJvb2wpX2VmZmVjdGl2ZUFwcGVhcmFuY2VJc0RhcmsKIHsKICNpZiBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCiAg
ICAgTlNBcHBlYXJhbmNlTmFtZSBhcHBlYXJhbmNlID0gW1tzZWxmIGVmZmVjdGl2ZUFwcGVhcmFu
Y2VdIGJlc3RNYXRjaEZyb21BcHBlYXJhbmNlc1dpdGhOYW1lczpAWyBOU0FwcGVhcmFuY2VOYW1l
QXF1YSwgTlNBcHBlYXJhbmNlTmFtZURhcmtBcXVhIF1dOwotICAgIHJldHVybiBbYXBwZWFyYW5j
ZSBpc0VxdWFsVG9TdHJpbmc6TlNBcHBlYXJhbmNlTmFtZUFxdWFdOworICAgIHJldHVybiBbYXBw
ZWFyYW5jZSBpc0VxdWFsVG9TdHJpbmc6TlNBcHBlYXJhbmNlTmFtZURhcmtBcXVhXTsKICNlbHNl
Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CiAKIC0gKHZv
aWQpX3VwZGF0ZURlZmF1bHRBcHBlYXJhbmNlCiB7Ci0gICAgX3ByaXZhdGUtPnBhZ2UtPnNldERl
ZmF1bHRBcHBlYXJhbmNlKFtzZWxmIF9kZWZhdWx0QXBwZWFyYW5jZV0pOworICAgIF9wcml2YXRl
LT5wYWdlLT5zZXRVc2VEYXJrQXBwZWFyYW5jZShzZWxmLl9lZmZlY3RpdmVBcHBlYXJhbmNlSXNE
YXJrKTsKICAgICBSZW5kZXJUaGVtZTo6c2luZ2xldG9uKCkucGxhdGZvcm1Db2xvcnNEaWRDaGFu
Z2UoKTsKICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVz
KCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>