<?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>147521</bug_id>
          
          <creation_ts>2015-07-31 21:08:34 -0700</creation_ts>
          <short_desc>Pass ControlStates&amp; to RenderTheme methods instead of ControlStates*</short_desc>
          <delta_ts>2015-08-03 10:15:01 -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>Layout and Rendering</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1113973</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-07-31 21:08:34 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113974</commentid>
    <comment_count>1</comment_count>
      <attachid>257991</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-07-31 21:11:20 -0700</bug_when>
    <thetext>Created attachment 257991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114197</commentid>
    <comment_count>2</comment_count>
      <attachid>257991</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-03 09:08:47 -0700</bug_when>
    <thetext>Comment on attachment 257991
Patch

Rejecting attachment 257991 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 257991, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
meMac.mm
patching file Source/WebCore/rendering/RenderBox.cpp
Hunk #1 FAILED at 1332.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/rendering/RenderBox.cpp.rej
patching file Source/WebCore/rendering/RenderTheme.cpp
patching file Source/WebCore/rendering/RenderTheme.h
patching file Source/WebCore/rendering/RenderThemeMac.mm

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Andreas Kling&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/11526</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114203</commentid>
    <comment_count>3</comment_count>
      <attachid>258067</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-08-03 09:38:05 -0700</bug_when>
    <thetext>Created attachment 258067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114214</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2015-08-03 10:15:01 -0700</bug_when>
    <thetext>Committed r187741: &lt;http://trac.webkit.org/changeset/187741&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257991</attachid>
            <date>2015-07-31 21:11:20 -0700</date>
            <delta_ts>2015-08-03 09:38:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147521-20150731211117.patch</filename>
            <type>text/plain</type>
            <size>21183</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM2MzZlNGFlZjRhNzJl
MzFlZDMzODRiZDQyMGE1YzQ3MThhNTk5Ni4uZjhhYzI1Mjk0Y2QwZDFjYjQ1YzhjYjAwYWFhYmY5
Y2U1ZjdiNmY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE1LTA3LTMxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUGFzcyBDb250cm9sU3RhdGVz
JiB0byBSZW5kZXJUaGVtZSBtZXRob2RzIGluc3RlYWQgb2YgQ29udHJvbFN0YXRlcyoKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzUyMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBm
dW5jdGlvbmFsaXR5LgorCisgICAgICAgICogcGxhdGZvcm0vVGhlbWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlRoZW1lOjpzZWxlY3Rpb25Db2xvcik6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZTo6
cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGhlbWU6OmluZmxhdGVDb250cm9sUGFpbnRSZWN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVTdGF0ZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udmVydENvbnRyb2xTdGF0ZXNUb1RoZW1lRHJhd1N0YXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbmZpZ3VyZVRvZ2dsZUJ1dHRvbik6CisgICAgICAgIChXZWJDb3Jl
OjpzaGFyZWRSYWRpb0NlbGwpOgorICAgICAgICAoV2ViQ29yZTo6c2hhcmVkQ2hlY2tib3hDZWxs
KToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50VG9nZ2xlQnV0dG9uKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldFVwQnV0dG9uQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpidXR0b24pOgorICAgICAg
ICAoV2ViQ29yZTo6cGFpbnRCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRTdGVwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlRoZW1lTWFjOjplbnN1cmVkVmlldyk6CisgICAgICAgIChX
ZWJDb3JlOjpUaGVtZU1hYzo6aW5mbGF0ZUNvbnRyb2xQYWludFJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6VGhlbWVNYWM6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0
UmVwYWludFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnVwZGF0ZUNvbnRy
b2xTdGF0ZXNGb3JSZW5kZXJlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVNYWM6OmRvY3VtZW50Vmlld0Zvcik6CisKIDIwMTUtMDctMzEgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEhhdmUgRGF0
YU9iamVjdEd0azo6dW5rbm93blR5cGVzKCkgcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBIYXNo
TWFwIG9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lLmgKaW5kZXggYTEzNjc1MTRmNDg2MDhiNzA2
ZmQ5OWVhYTJkMzMwYzk5YjJlYTM4Mi4uZWVmYjkyOGZjNzY1OTI0ZjUzNDgxZTNjYmU0NGU4MDRj
OWNiZTQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZS5oCkBAIC02OCw3ICs2OCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgY29udHJvbERyYXdzRm9jdXNPdXRsaW5lKENvbnRyb2xQYXJ0
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAvLyBNZXRob2RzIGZvciBvYnRhaW5pbmcg
cGxhdGZvcm0tc3BlY2lmaWMgY29sb3JzLgotICAgIHZpcnR1YWwgQ29sb3Igc2VsZWN0aW9uQ29s
b3IoQ29udHJvbFBhcnQsIGNvbnN0IENvbnRyb2xTdGF0ZXMqLCBTZWxlY3Rpb25QYXJ0KSBjb25z
dCB7IHJldHVybiBDb2xvcigpOyB9CisgICAgdmlydHVhbCBDb2xvciBzZWxlY3Rpb25Db2xvcihD
b250cm9sUGFydCwgY29uc3QgQ29udHJvbFN0YXRlcyYsIFNlbGVjdGlvblBhcnQpIGNvbnN0IHsg
cmV0dXJuIENvbG9yKCk7IH0KICAgICB2aXJ0dWFsIENvbG9yIHRleHRTZWFyY2hIaWdobGlnaHRD
b2xvcigpIGNvbnN0IHsgcmV0dXJuIENvbG9yKCk7IH0KICAgICAKICAgICAvLyBDU1Mgc3lzdGVt
IGNvbG9ycyBhbmQgZm9udHMKQEAgLTEwMCwxMyArMTAwLDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgY29udHJvbFJlcXVpcmVzUHJlV2hpdGVTcGFjZShDb250cm9sUGFydCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIE1ldGhvZCBmb3IgcGFpbnRpbmcgYSBjb250cm9s
LiBUaGUgcmVjdCBpcyBpbiB6b29tZWQgY29vcmRpbmF0ZXMuCi0gICAgdmlydHVhbCB2b2lkIHBh
aW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3Qg
RmxvYXRSZWN0JiAvKnpvb21lZFJlY3QqLywgZmxvYXQgLyp6b29tRmFjdG9yKi8sIFNjcm9sbFZp
ZXcqLCBmbG9hdCAvKmRldmljZVNjYWxlRmFjdG9yKi8sIGZsb2F0IC8qcGFnZVNjYWxlRmFjdG9y
Ki8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0YXRl
cyYsIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgLyp6b29tZWRSZWN0Ki8sIGZs
b2F0IC8qem9vbUZhY3RvciovLCBTY3JvbGxWaWV3KiwgZmxvYXQgLypkZXZpY2VTY2FsZUZhY3Rv
ciovLCBmbG9hdCAvKnBhZ2VTY2FsZUZhY3RvciovKSB7IH0KIAogICAgIC8vIFNvbWUgY29udHJv
bHMgbWF5IHNwaWxsIG91dCBvZiB0aGVpciBjb250YWluZXJzIChlLmcuLCB0aGUgY2hlY2sgb24g
YW4gT1MgWCBjaGVja2JveCkuICBXaGVuIHRoZXNlIGNvbnRyb2xzIHJlcGFpbnQsCiAgICAgLy8g
dGhlIHRoZW1lIG5lZWRzIHRvIGNvbW11bmljYXRlIHRoaXMgaW5mbGF0ZWQgcmVjdCB0byB0aGUg
ZW5naW5lIHNvIHRoYXQgaXQgY2FuIGludmFsaWRhdGUgdGhlIHdob2xlIGNvbnRyb2wuCiAgICAg
Ly8gVGhlIHJlY3QgcGFzc2VkIGluIGlzIGluIHpvb21lZCBjb29yZGluYXRlcywgc28gdGhlIGlu
ZmxhdGlvbiBzaG91bGQgdGFrZSB0aGF0IGludG8gYWNjb3VudCBhbmQgbWFrZSBzdXJlIHRoZSBp
bmZsYXRpb24KICAgICAvLyBhbW91bnQgaXMgYWxzbyBzY2FsZWQgYnkgdGhlIHpvb21GYWN0b3Iu
Ci0gICAgdmlydHVhbCB2b2lkIGluZmxhdGVDb250cm9sUGFpbnRSZWN0KENvbnRyb2xQYXJ0LCBj
b25zdCBDb250cm9sU3RhdGVzKiwgRmxvYXRSZWN0JiAvKnpvb21lZFJlY3QqLywgZmxvYXQgLyp6
b29tRmFjdG9yKi8pIGNvbnN0IHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbmZsYXRlQ29udHJvbFBh
aW50UmVjdChDb250cm9sUGFydCwgY29uc3QgQ29udHJvbFN0YXRlcyYsIEZsb2F0UmVjdCYgLyp6
b29tZWRSZWN0Ki8sIGZsb2F0IC8qem9vbUZhY3RvciovKSBjb25zdCB7IH0KIAogICAgIHZpcnR1
YWwgdm9pZCBkcmF3TmFtZWRJbWFnZShjb25zdCBTdHJpbmcmLCBHcmFwaGljc0NvbnRleHQqLCBj
b25zdCBGbG9hdFJlY3QmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1RoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVN
YWMuaAppbmRleCBjN2RkNWQwY2IxMjUwNDk5ZjljMzUwMzc3MTBlM2U1MDFmMWIxYWM4Li4zYzgx
ZjJjMDM5YjQyZGRhYzdjZjI4YTYyNjNhOTk4M2JjNTg4ZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvVGhlbWVNYWMuaApAQCAtNTIsMTEgKzUyLDExIEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgYm9vbCBjb250cm9sUmVxdWlyZXNQcmVXaGl0ZVNwYWNlKENvbnRyb2xQYXJ0IHBhcnQp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHBhcnQgPT0gUHVzaEJ1dHRvblBhcnQ7IH0KIAotICAg
IHZpcnR1YWwgdm9pZCBwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0YXRlcyosIEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcq
LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgaW5mbGF0ZUNvbnRyb2xQYWludFJlY3QoQ29udHJvbFBhcnQs
IGNvbnN0IENvbnRyb2xTdGF0ZXMqLCBGbG9hdFJlY3QmLCBmbG9hdCB6b29tRmFjdG9yKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoQ29udHJvbFBhcnQsIENvbnRyb2xT
dGF0ZXMmLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCB6b29tRmFj
dG9yLCBTY3JvbGxWaWV3KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2Fs
ZUZhY3Rvcikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGluZmxhdGVDb250cm9sUGFpbnRS
ZWN0KENvbnRyb2xQYXJ0LCBjb25zdCBDb250cm9sU3RhdGVzJiwgRmxvYXRSZWN0JiwgZmxvYXQg
em9vbUZhY3RvcikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBGSVhNRTogT25jZSBSZW5kZXJU
aGVtZU1hYyBpcyBjb252ZXJ0ZWQgb3ZlciB0byB1c2UgVGhlbWUgdGhlbiB0aGlzIGNhbiBiZSBp
bnRlcm5hbCB0byBUaGVtZU1hYy4KLSAgICBzdGF0aWMgTlNWaWV3KiBlbnN1cmVkVmlldyhTY3Jv
bGxWaWV3KiwgY29uc3QgQ29udHJvbFN0YXRlcyosIGJvb2wgdXNlVW5wYXJlbnRlZFZpZXcgPSBm
YWxzZSk7CisgICAgc3RhdGljIE5TVmlldyogZW5zdXJlZFZpZXcoU2Nyb2xsVmlldyosIGNvbnN0
IENvbnRyb2xTdGF0ZXMmLCBib29sIHVzZVVucGFyZW50ZWRWaWV3ID0gZmFsc2UpOwogICAgIHN0
YXRpYyB2b2lkIHNldEZvY3VzUmluZ0NsaXBSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCmluZGV4IDA0MWE5MjE0OTY5MmEw
NjlmYmE3MmMyMmFkZWVhYWM2MDQ3Yzg2MTEuLjhiMTE2MWFhZmY3Njg2MzgzYzZkNjBkMjhhN2Rm
ZDY3MzUwYTc5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVt
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KQEAg
LTE4NCw3ICsxODQsNyBAQCBzdGF0aWMgdm9pZCBzZXRDb250cm9sU2l6ZShOU0NlbGwqIGNlbGws
IGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6ZSwgMz4mIHNpemVzLCBjbwogICAgICAgICBbY2VsbCBz
ZXRDb250cm9sU2l6ZTooTlNDb250cm9sU2l6ZSlzaXplXTsKIH0KIAotc3RhdGljIHZvaWQgdXBk
YXRlU3RhdGVzKE5TQ2VsbCogY2VsbCwgY29uc3QgQ29udHJvbFN0YXRlcyogY29udHJvbFN0YXRl
cywgYm9vbCB1c2VBbmltYXRpb24gPSBmYWxzZSkKK3N0YXRpYyB2b2lkIHVwZGF0ZVN0YXRlcyhO
U0NlbGwqIGNlbGwsIGNvbnN0IENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGJvb2wgdXNl
QW5pbWF0aW9uID0gZmFsc2UpCiB7CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA8IDEwMTAwMAogICAgIFVOVVNFRF9QQVJBTSh1c2VBbmltYXRpb24pOwpAQCAtMTk1LDcgKzE5
NSw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVN0YXRlcyhOU0NlbGwqIGNlbGwsIGNvbnN0IENvbnRy
b2xTdGF0ZXMqIGNvbnRyb2xTdGF0ZXMsIGJvb2wKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKSkKICAgICAgICAgdXNlQW5p
bWF0aW9uID0gZmFsc2U7CiAgICAgCi0gICAgQ29udHJvbFN0YXRlczo6U3RhdGVzIHN0YXRlcyA9
IGNvbnRyb2xTdGF0ZXMtPnN0YXRlcygpOworICAgIENvbnRyb2xTdGF0ZXM6OlN0YXRlcyBzdGF0
ZXMgPSBjb250cm9sU3RhdGVzLnN0YXRlcygpOwogCiAgICAgLy8gSG92ZXIgc3RhdGUgaXMgbm90
IHN1cHBvcnRlZCBieSBBcXVhLgogICAgIApAQCAtMjM0LDkgKzIzNCw5IEBAIHN0YXRpYyB2b2lk
IHVwZGF0ZVN0YXRlcyhOU0NlbGwqIGNlbGwsIGNvbnN0IENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xT
dGF0ZXMsIGJvb2wKICAgICAvLyBhIHZpZXcgaW4gYSB3aW5kb3cgd2hvc2Uga2V5IHN0YXRlIGNh
biBiZSBkZXRlY3RlZC4KIH0KIAotc3RhdGljIFRoZW1lRHJhd1N0YXRlIGNvbnZlcnRDb250cm9s
U3RhdGVzVG9UaGVtZURyYXdTdGF0ZShUaGVtZUJ1dHRvbktpbmQga2luZCwgY29uc3QgQ29udHJv
bFN0YXRlcyogY29udHJvbFN0YXRlcykKK3N0YXRpYyBUaGVtZURyYXdTdGF0ZSBjb252ZXJ0Q29u
dHJvbFN0YXRlc1RvVGhlbWVEcmF3U3RhdGUoVGhlbWVCdXR0b25LaW5kIGtpbmQsIGNvbnN0IENv
bnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMpCiB7Ci0gICAgQ29udHJvbFN0YXRlczo6U3RhdGVz
IHN0YXRlcyA9IGNvbnRyb2xTdGF0ZXMtPnN0YXRlcygpOworICAgIENvbnRyb2xTdGF0ZXM6OlN0
YXRlcyBzdGF0ZXMgPSBjb250cm9sU3RhdGVzLnN0YXRlcygpOwogCiAgICAgaWYgKCEoc3RhdGVz
ICYgQ29udHJvbFN0YXRlczo6RW5hYmxlZFN0YXRlKSkKICAgICAgICAgcmV0dXJuIGtUaGVtZVN0
YXRlVW5hdmFpbGFibGVJbmFjdGl2ZTsKQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgTGVuZ3Ro
U2l6ZSByYWRpb1NpemUoY29uc3QgRm9udENhc2NhZGUmIGZvbnQsIGNvbnN0IExlbmd0aFNpemUm
IHpvb21lZFNpegogICAgIHJldHVybiBzaXplRnJvbUZvbnQoZm9udCwgem9vbWVkU2l6ZSwgem9v
bUZhY3RvciwgcmFkaW9TaXplcygpKTsKIH0KICAgICAKLXN0YXRpYyB2b2lkIGNvbmZpZ3VyZVRv
Z2dsZUJ1dHRvbihOU0NlbGwqIGNlbGwsIENvbnRyb2xQYXJ0IGJ1dHRvblR5cGUsIGNvbnN0IENv
bnRyb2xTdGF0ZXMqIHN0YXRlcywgY29uc3QgSW50U2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQgem9v
bUZhY3RvciwgYm9vbCBpc1N0YXRlQ2hhbmdlKQorc3RhdGljIHZvaWQgY29uZmlndXJlVG9nZ2xl
QnV0dG9uKE5TQ2VsbCogY2VsbCwgQ29udHJvbFBhcnQgYnV0dG9uVHlwZSwgY29uc3QgQ29udHJv
bFN0YXRlcyYgc3RhdGVzLCBjb25zdCBJbnRTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFj
dG9yLCBib29sIGlzU3RhdGVDaGFuZ2UpCiB7CiAgICAgLy8gU2V0IHRoZSBjb250cm9sIHNpemUg
YmFzZWQgb2ZmIHRoZSByZWN0YW5nbGUgd2UncmUgcGFpbnRpbmcgaW50by4KICAgICBzZXRDb250
cm9sU2l6ZShjZWxsLCBidXR0b25UeXBlID09IENoZWNrYm94UGFydCA/IGNoZWNrYm94U2l6ZXMo
KSA6IHJhZGlvU2l6ZXMoKSwgem9vbWVkU2l6ZSwgem9vbUZhY3Rvcik7CkBAIC0zNTQsNyArMzU0
LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0J1dHRvbkNlbGw+IGNyZWF0ZVRvZ2dsZUJ1dHRvbkNl
bGwoQ29udHJvbFBhcnQgYnV0dG9uVHlwZSkKICAgICByZXR1cm4gdG9nZ2xlQnV0dG9uQ2VsbDsK
IH0KICAgICAKLXN0YXRpYyBOU0J1dHRvbkNlbGwgKnNoYXJlZFJhZGlvQ2VsbChjb25zdCBDb250
cm9sU3RhdGVzKiBzdGF0ZXMsIGNvbnN0IEludFNpemUmIHpvb21lZFNpemUsIGZsb2F0IHpvb21G
YWN0b3IpCitzdGF0aWMgTlNCdXR0b25DZWxsICpzaGFyZWRSYWRpb0NlbGwoY29uc3QgQ29udHJv
bFN0YXRlcyYgc3RhdGVzLCBjb25zdCBJbnRTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFj
dG9yKQogewogICAgIHN0YXRpYyBOU0J1dHRvbkNlbGwgKnJhZGlvQ2VsbCA9IGNyZWF0ZVRvZ2ds
ZUJ1dHRvbkNlbGwoUmFkaW9QYXJ0KS5sZWFrUmVmKCk7CiAKQEAgLTM2Miw3ICszNjIsNyBAQCBz
dGF0aWMgTlNCdXR0b25DZWxsICpzaGFyZWRSYWRpb0NlbGwoY29uc3QgQ29udHJvbFN0YXRlcyog
c3RhdGVzLCBjb25zdCBJbnRTaXplJgogICAgIHJldHVybiByYWRpb0NlbGw7CiB9CiAgICAgCi1z
dGF0aWMgTlNCdXR0b25DZWxsICpzaGFyZWRDaGVja2JveENlbGwoY29uc3QgQ29udHJvbFN0YXRl
cyogc3RhdGVzLCBjb25zdCBJbnRTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQor
c3RhdGljIE5TQnV0dG9uQ2VsbCAqc2hhcmVkQ2hlY2tib3hDZWxsKGNvbnN0IENvbnRyb2xTdGF0
ZXMmIHN0YXRlcywgY29uc3QgSW50U2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvcikK
IHsKICAgICBzdGF0aWMgTlNCdXR0b25DZWxsICpjaGVja2JveENlbGwgPSBjcmVhdGVUb2dnbGVC
dXR0b25DZWxsKENoZWNrYm94UGFydCkubGVha1JlZigpOwogCkBAIC0zNzYsMTQgKzM3NiwxNCBA
QCBzdGF0aWMgYm9vbCBkcmF3Q2VsbEZvY3VzUmluZyhOU0NlbGwgKmNlbGwsIE5TUmVjdCBjZWxs
RnJhbWUsIE5TVmlldyAqY29udHJvbFZpZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGlj
IHZvaWQgcGFpbnRUb2dnbGVCdXR0b24oQ29udHJvbFBhcnQgYnV0dG9uVHlwZSwgQ29udHJvbFN0
YXRlcyogY29udHJvbFN0YXRlcywgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZp
ZXcpCitzdGF0aWMgdm9pZCBwYWludFRvZ2dsZUJ1dHRvbihDb250cm9sUGFydCBidXR0b25UeXBl
LCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdGVzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmll
dyogc2Nyb2xsVmlldykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAotICAg
IFJldGFpblB0cjxOU0J1dHRvbkNlbGw+IHRvZ2dsZUJ1dHRvbkNlbGwgPSBzdGF0aWNfY2FzdDxO
U0J1dHRvbkNlbGwgKj4oY29udHJvbFN0YXRlcy0+cGxhdGZvcm1Db250cm9sKCkpOworICAgIFJl
dGFpblB0cjxOU0J1dHRvbkNlbGw+IHRvZ2dsZUJ1dHRvbkNlbGwgPSBzdGF0aWNfY2FzdDxOU0J1
dHRvbkNlbGwgKj4oY29udHJvbFN0YXRlcy5wbGF0Zm9ybUNvbnRyb2woKSk7CiAgICAgSW50U2l6
ZSB6b29tZWRSZWN0U2l6ZSA9IEludFNpemUoem9vbWVkUmVjdC5zaXplKCkpOwogCi0gICAgaWYg
KGNvbnRyb2xTdGF0ZXMtPmlzRGlydHkoKSkgeworICAgIGlmIChjb250cm9sU3RhdGVzLmlzRGly
dHkoKSkgewogICAgICAgICBpZiAoIXRvZ2dsZUJ1dHRvbkNlbGwpCiAgICAgICAgICAgICB0b2dn
bGVCdXR0b25DZWxsID0gY3JlYXRlVG9nZ2xlQnV0dG9uQ2VsbChidXR0b25UeXBlKTsKICAgICAg
ICAgY29uZmlndXJlVG9nZ2xlQnV0dG9uKHRvZ2dsZUJ1dHRvbkNlbGwuZ2V0KCksIGJ1dHRvblR5
cGUsIGNvbnRyb2xTdGF0ZXMsIHpvb21lZFJlY3RTaXplLCB6b29tRmFjdG9yLCB0cnVlKTsKQEAg
LTM5OCw3ICszOTgsNyBAQCBzdGF0aWMgdm9pZCBwYWludFRvZ2dsZUJ1dHRvbihDb250cm9sUGFy
dCBidXR0b25UeXBlLCBDb250cm9sU3RhdGVzKiBjb250cm9sU3RhdAogICAgICAgICB9CiAgICAg
ICAgIGNvbmZpZ3VyZVRvZ2dsZUJ1dHRvbih0b2dnbGVCdXR0b25DZWxsLmdldCgpLCBidXR0b25U
eXBlLCBjb250cm9sU3RhdGVzLCB6b29tZWRSZWN0U2l6ZSwgem9vbUZhY3RvciwgZmFsc2UpOwog
ICAgIH0KLSAgICBjb250cm9sU3RhdGVzLT5zZXREaXJ0eShmYWxzZSk7CisgICAgY29udHJvbFN0
YXRlcy5zZXREaXJ0eShmYWxzZSk7CiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0
YXRlU2F2ZXIoKmNvbnRleHQpOwogCkBAIC00NDIsMTYgKzQ0MiwxNiBAQCBzdGF0aWMgdm9pZCBw
YWludFRvZ2dsZUJ1dHRvbihDb250cm9sUGFydCBidXR0b25UeXBlLCBDb250cm9sU3RhdGVzKiBj
b250cm9sU3RhdAogICAgIFt0b2dnbGVCdXR0b25DZWxsIGRyYXdXaXRoRnJhbWU6TlNSZWN0KGlu
ZmxhdGVkUmVjdCkgaW5WaWV3OnZpZXddOwogI2VuZGlmCiAKLSAgICBpZiAoIWlzQW5pbWF0aW5n
ICYmIChjb250cm9sU3RhdGVzLT5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkZvY3VzU3RhdGUp
KQorICAgIGlmICghaXNBbmltYXRpbmcgJiYgKGNvbnRyb2xTdGF0ZXMuc3RhdGVzKCkgJiBDb250
cm9sU3RhdGVzOjpGb2N1c1N0YXRlKSkKICAgICAgICAgbmVlZHNSZXBhaW50ID0gZHJhd0NlbGxG
b2N1c1JpbmcodG9nZ2xlQnV0dG9uQ2VsbC5nZXQoKSwgaW5mbGF0ZWRSZWN0LCB2aWV3KTsKICAg
ICBbdG9nZ2xlQnV0dG9uQ2VsbCBzZXRDb250cm9sVmlldzpuaWxdOwogCiAjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKICAgICBuZWVkc1JlcGFpbnQgfD0gW3Rv
Z2dsZUJ1dHRvbkNlbGwgX3N0YXRlQW5pbWF0aW9uUnVubmluZ107CiAjZW5kaWYKLSAgICBjb250
cm9sU3RhdGVzLT5zZXROZWVkc1JlcGFpbnQobmVlZHNSZXBhaW50KTsKKyAgICBjb250cm9sU3Rh
dGVzLnNldE5lZWRzUmVwYWludChuZWVkc1JlcGFpbnQpOwogICAgIGlmIChuZWVkc1JlcGFpbnQp
Ci0gICAgICAgIGNvbnRyb2xTdGF0ZXMtPnNldFBsYXRmb3JtQ29udHJvbCh0b2dnbGVCdXR0b25D
ZWxsLmdldCgpKTsKKyAgICAgICAgY29udHJvbFN0YXRlcy5zZXRQbGF0Zm9ybUNvbnRyb2wodG9n
Z2xlQnV0dG9uQ2VsbC5nZXQoKSk7CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9
CkBAIC00ODgsNyArNDg4LDcgQEAgc3RhdGljIE5TQnV0dG9uQ2VsbCAqbGVha0J1dHRvbkNlbGwo
QnV0dG9uQ2VsbFR5cGUgdHlwZSkKICAgICByZXR1cm4gY2VsbDsKIH0KIAotc3RhdGljIHZvaWQg
c2V0VXBCdXR0b25DZWxsKE5TQnV0dG9uQ2VsbCAqY2VsbCwgQ29udHJvbFBhcnQgcGFydCwgY29u
c3QgQ29udHJvbFN0YXRlcyogc3RhdGVzLCBjb25zdCBJbnRTaXplJiB6b29tZWRTaXplLCBmbG9h
dCB6b29tRmFjdG9yKQorc3RhdGljIHZvaWQgc2V0VXBCdXR0b25DZWxsKE5TQnV0dG9uQ2VsbCAq
Y2VsbCwgQ29udHJvbFBhcnQgcGFydCwgY29uc3QgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBjb25z
dCBJbnRTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQogewogICAgIC8vIFNldCB0
aGUgY29udHJvbCBzaXplIGJhc2VkIG9mZiB0aGUgcmVjdGFuZ2xlIHdlJ3JlIHBhaW50aW5nIGlu
dG8uCiAgICAgY29uc3Qgc3RkOjphcnJheTxJbnRTaXplLCAzPiYgc2l6ZXMgPSBidXR0b25TaXpl
cygpOwpAQCAtNTA1LDkgKzUwNSw5IEBAIHN0YXRpYyB2b2lkIHNldFVwQnV0dG9uQ2VsbChOU0J1
dHRvbkNlbGwgKmNlbGwsIENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTCiAgICAgdXBk
YXRlU3RhdGVzKGNlbGwsIHN0YXRlcyk7CiB9CiAKLXN0YXRpYyBOU0J1dHRvbkNlbGwgKmJ1dHRv
bihDb250cm9sUGFydCBwYXJ0LCBjb25zdCBDb250cm9sU3RhdGVzKiBjb250cm9sU3RhdGVzLCBj
b25zdCBJbnRTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQorc3RhdGljIE5TQnV0
dG9uQ2VsbCAqYnV0dG9uKENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTdGF0ZXMmIGNv
bnRyb2xTdGF0ZXMsIGNvbnN0IEludFNpemUmIHpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3Ip
CiB7Ci0gICAgQ29udHJvbFN0YXRlczo6U3RhdGVzIHN0YXRlcyA9IGNvbnRyb2xTdGF0ZXMtPnN0
YXRlcygpOworICAgIENvbnRyb2xTdGF0ZXM6OlN0YXRlcyBzdGF0ZXMgPSBjb250cm9sU3RhdGVz
LnN0YXRlcygpOwogICAgIE5TQnV0dG9uQ2VsbCAqY2VsbDsKICAgICBpZiAoc3RhdGVzICYgQ29u
dHJvbFN0YXRlczo6RGVmYXVsdFN0YXRlKSB7CiAgICAgICAgIHN0YXRpYyBOU0J1dHRvbkNlbGwg
KmRlZmF1bHRDZWxsID0gbGVha0J1dHRvbkNlbGwoRGVmYXVsdEJ1dHRvbkNlbGwpOwpAQCAtNTI1
LDEyICs1MjUsMTIgQEAgc3RhdGljIGZsb2F0IGJ1dHRvbkZvY3VzUmVjdE91dGxpbmVXaWR0aCgp
CiAgICAgcmV0dXJuIDMuMGY7CiB9CiAgICAgCi1zdGF0aWMgdm9pZCBwYWludEJ1dHRvbihDb250
cm9sUGFydCBwYXJ0LCBDb250cm9sU3RhdGVzKiBjb250cm9sU3RhdGVzLCBHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3Rv
ciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0
IHBhZ2VTY2FsZUZhY3RvcikKK3N0YXRpYyB2b2lkIHBhaW50QnV0dG9uKENvbnRyb2xQYXJ0IHBh
cnQsIENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxW
aWV3KiBzY3JvbGxWaWV3LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgZmxvYXQgcGFnZVNjYWxl
RmFjdG9yKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIAogICAgIC8v
IERldGVybWluZSB0aGUgd2lkdGggYW5kIGhlaWdodCBuZWVkZWQgZm9yIHRoZSBjb250cm9sIGFu
ZCBwcmVwYXJlIHRoZSBjZWxsIGZvciBwYWludGluZy4KLSAgICBDb250cm9sU3RhdGVzOjpTdGF0
ZXMgc3RhdGVzID0gY29udHJvbFN0YXRlcy0+c3RhdGVzKCk7CisgICAgQ29udHJvbFN0YXRlczo6
U3RhdGVzIHN0YXRlcyA9IGNvbnRyb2xTdGF0ZXMuc3RhdGVzKCk7CiAgICAgTlNCdXR0b25DZWxs
ICpidXR0b25DZWxsID0gYnV0dG9uKHBhcnQsIGNvbnRyb2xTdGF0ZXMsIEludFNpemUoem9vbWVk
UmVjdC5zaXplKCkpLCB6b29tRmFjdG9yKTsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVy
IHN0YXRlU2F2ZXIoKmNvbnRleHQpOwogCkBAIC01OTcsNyArNTk3LDcgQEAgc3RhdGljIHZvaWQg
cGFpbnRCdXR0b24oQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyogY29udHJvbFN0YXRl
cywgR3JhcGhpY3MKICAgICAgICAgICAgIGRyYXdDZWxsRm9jdXNSaW5nKGJ1dHRvbkNlbGwsIE5T
UmVjdChpbmZsYXRlZFJlY3QpLCB2aWV3KTsKICAgICB9CiAgICAgCi0gICAgY29udHJvbFN0YXRl
cy0+c2V0TmVlZHNSZXBhaW50KGZhbHNlKTsKKyAgICBjb250cm9sU3RhdGVzLnNldE5lZWRzUmVw
YWludChmYWxzZSk7CiAKICAgICBbYnV0dG9uQ2VsbCBzZXRDb250cm9sVmlldzpuaWxdOwogCkBA
IC02MjcsNyArNjI3LDcgQEAgc3RhdGljIE5TQ29udHJvbFNpemUgc3RlcHBlckNvbnRyb2xTaXpl
Rm9yRm9udChjb25zdCBGb250Q2FzY2FkZSYgZm9udCkKICAgICByZXR1cm4gTlNNaW5pQ29udHJv
bFNpemU7CiB9CiAKLXN0YXRpYyB2b2lkIHBhaW50U3RlcHBlcihDb250cm9sU3RhdGVzKiBzdGF0
ZXMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0
LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KikKK3N0YXRpYyB2b2lkIHBhaW50U3RlcHBl
cihDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KikKIHsK
ICAgICAvLyBXZSBkb24ndCB1c2UgTlNTdGVwcGVyQ2VsbCBiZWNhdXNlIHRoZXJlIGFyZSBubyB3
YXlzIHRvIGRyYXcgYW4KICAgICAvLyBOU1N0ZXBwZXJDZWxsIHdpdGggdGhlIHVwIGJ1dHRvbiBo
aWdobGlnaHRlZC4KQEAgLTY2OSw3ICs2NjksNyBAQCBzdGF0aWMgdm9pZCBwYWludFN0ZXBwZXIo
Q29udHJvbFN0YXRlcyogc3RhdGVzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAK
IC8vIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB3ZSBhbHdheXMgcmV0dXJuIGEgdmFsaWQgTlNWaWV3
LCBldmVuIGlmIFNjcm9sbFZpZXcgZG9lc24ndCBoYXZlIGFuIGFzc29jaWF0ZWQgZG9jdW1lbnQg
TlNWaWV3LgogLy8gSWYgdGhlIFNjcm9sbFZpZXcgZG9lc24ndCBoYXZlIGFuIE5TVmlldywgd2Ug
d2lsbCByZXR1cm4gYSBmYWtlIE5TVmlldyBzZXQgdXAgaW4gdGhlIHdheSBBcHBLaXQgZXhwZWN0
cy4KLU5TVmlldyAqVGhlbWVNYWM6OmVuc3VyZWRWaWV3KFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcs
IGNvbnN0IENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xTdGF0ZXMsIGJvb2wgdXNlVW5wYXJlbnRlZFZp
ZXcpCitOU1ZpZXcgKlRoZW1lTWFjOjplbnN1cmVkVmlldyhTY3JvbGxWaWV3KiBzY3JvbGxWaWV3
LCBjb25zdCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdGVzLCBib29sIHVzZVVucGFyZW50ZWRW
aWV3KQogewogICAgIGlmICghdXNlVW5wYXJlbnRlZFZpZXcpIHsKICAgICAgICAgaWYgKE5TVmll
dyAqZG9jdW1lbnRWaWV3ID0gc2Nyb2xsVmlldy0+ZG9jdW1lbnRWaWV3KCkpCkBAIC02ODAsNyAr
NjgwLDcgQEAgTlNWaWV3ICpUaGVtZU1hYzo6ZW5zdXJlZFZpZXcoU2Nyb2xsVmlldyogc2Nyb2xs
VmlldywgY29uc3QgQ29udHJvbFN0YXRlcyogY29udHIKICAgICBzdGF0aWMgV2ViQ29yZVRoZW1l
VmlldyAqdGhlbWVWaWV3ID0gW1tXZWJDb3JlVGhlbWVWaWV3IGFsbG9jXSBpbml0XTsKICAgICBb
dGhlbWVWaWV3IHNldEZyYW1lU2l6ZTpOU1NpemVGcm9tQ0dTaXplKHNjcm9sbFZpZXctPnRvdGFs
Q29udGVudHNTaXplKCkpXTsKIAotICAgIHRoZW1lV2luZG93SGFzS2V5QXBwZWFyYW5jZSA9ICEo
Y29udHJvbFN0YXRlcy0+c3RhdGVzKCkgJiBDb250cm9sU3RhdGVzOjpXaW5kb3dJbmFjdGl2ZVN0
YXRlKTsKKyAgICB0aGVtZVdpbmRvd0hhc0tleUFwcGVhcmFuY2UgPSAhKGNvbnRyb2xTdGF0ZXMu
c3RhdGVzKCkgJiBDb250cm9sU3RhdGVzOjpXaW5kb3dJbmFjdGl2ZVN0YXRlKTsKIAogICAgIHJl
dHVybiB0aGVtZVZpZXc7CiB9CkBAIC03ODIsNyArNzgyLDcgQEAgTGVuZ3RoQm94IFRoZW1lTWFj
Ojpjb250cm9sUGFkZGluZyhDb250cm9sUGFydCBwYXJ0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9u
dCwgY28KICAgICB9CiB9CiAKLXZvaWQgVGhlbWVNYWM6OmluZmxhdGVDb250cm9sUGFpbnRSZWN0
KENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTdGF0ZXMqIHN0YXRlcywgRmxvYXRSZWN0
JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yKSBjb25zdAordm9pZCBUaGVtZU1hYzo6aW5m
bGF0ZUNvbnRyb2xQYWludFJlY3QoQ29udHJvbFBhcnQgcGFydCwgY29uc3QgQ29udHJvbFN0YXRl
cyYgc3RhdGVzLCBGbG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IpIGNvbnN0
CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgSW50U2l6ZSB6b29tUmVj
dFNpemUgPSBJbnRTaXplKHpvb21lZFJlY3Quc2l6ZSgpKTsKQEAgLTgzOSw3ICs4MzksNyBAQCB2
b2lkIFRoZW1lTWFjOjppbmZsYXRlQ29udHJvbFBhaW50UmVjdChDb250cm9sUGFydCBwYXJ0LCBj
b25zdCBDb250cm9sU3RhdGVzKiBzdAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0K
IAotdm9pZCBUaGVtZU1hYzo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyog
c3RhdGVzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVk
UmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxvYXQgZGV2
aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcikKK3ZvaWQgVGhlbWVNYWM6OnBh
aW50KENvbnRyb2xQYXJ0IHBhcnQsIENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0
b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBmbG9h
dCBwYWdlU2NhbGVGYWN0b3IpCiB7CiAgICAgc3dpdGNoIChwYXJ0KSB7CiAgICAgICAgIGNhc2Ug
Q2hlY2tib3hQYXJ0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA4
NWQwYTBlY2IyYTk3YTYyZDUzM2Y4OTZlMzZhNDlmNmE4ZTQzOTcyLi4xYWM4MDU0YjY3Y2I1ZDA1
YjIyMWNlYjk4NTA3NTY3MTIxYWE4YjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcApAQCAtMTMzMiw3ICsxMzMyLDcgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50Qm94RGVj
b3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWkKICAg
ICAgICAgfQogICAgIH0KIAotICAgIGJvb2wgdGhlbWVQYWludGVkID0gc3R5bGUoKS5oYXNBcHBl
YXJhbmNlKCkgJiYgIXRoZW1lKCkucGFpbnQoKnRoaXMsIGNvbnRyb2xTdGF0ZXMsIHBhaW50SW5m
bywgcGFpbnRSZWN0KTsKKyAgICBib29sIHRoZW1lUGFpbnRlZCA9IHN0eWxlKCkuaGFzQXBwZWFy
YW5jZSgpICYmICF0aGVtZSgpLnBhaW50KCp0aGlzLCAqY29udHJvbFN0YXRlcywgcGFpbnRJbmZv
LCBwYWludFJlY3QpOwogCiAgICAgaWYgKGNvbnRyb2xTdGF0ZXMgJiYgY29udHJvbFN0YXRlcy0+
bmVlZHNSZXBhaW50KCkpCiAgICAgICAgIHZpZXcoKS5zY2hlZHVsZUxhenlSZXBhaW50KCp0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IDRkMGJjNWE3
MTAzODcyNTFkYTcwYjJiZGRhM2M1ZjU4YzAzNmFiNTUuLmI0ZGYyM2M4YWEyMmQxZGYzMWU5NGUx
MWE2YzU5NzUzNTk2ZTRiYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcApAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFN0eWxlKFN0
eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIFJlbmRlclN0eWxlJiBzdHlsZSwKICAgICB9CiB9
CiAKLWJvb2wgUmVuZGVyVGhlbWU6OnBhaW50KGNvbnN0IFJlbmRlck9iamVjdCYgbywgQ29udHJv
bFN0YXRlcyogY29udHJvbFN0YXRlcywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91dFJlY3QmIHIpCitib29sIFJlbmRlclRoZW1lOjpwYWludChjb25zdCBSZW5kZXJPYmpl
Y3QmIG8sIENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGNvbnN0IFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRSZWN0JiByKQogewogICAgIC8vIElmIHBhaW50aW5nIGlzIGRp
c2FibGVkLCBidXQgd2UgYXJlbid0IHVwZGF0aW5nIGNvbnRyb2wgdGludHMsIHRoZW4ganVzdCBi
YWlsLgogICAgIC8vIElmIHdlIGFyZSB1cGRhdGluZyBjb250cm9sIHRpbnRzLCBqdXN0IHNjaGVk
dWxlIGEgcmVwYWludCBpZiB0aGUgdGhlbWUgc3VwcG9ydHMgdGludGluZwpAQCAtNzE2LDcgKzcx
Niw3IEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFJlcGFpbnRSZWN0KGNvbnN0IFJlbmRlck9i
amVjdCYgcmVuZGVyZXIsIEZsb2F0UmVjdCYgcmVjCiB7CiAjaWYgVVNFKE5FV19USEVNRSkKICAg
ICBDb250cm9sU3RhdGVzIHN0YXRlcyhleHRyYWN0Q29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKHJl
bmRlcmVyKSk7Ci0gICAgbV90aGVtZS0+aW5mbGF0ZUNvbnRyb2xQYWludFJlY3QocmVuZGVyZXIu
c3R5bGUoKS5hcHBlYXJhbmNlKCksICZzdGF0ZXMsIHJlY3QsIHJlbmRlcmVyLnN0eWxlKCkuZWZm
ZWN0aXZlWm9vbSgpKTsKKyAgICBtX3RoZW1lLT5pbmZsYXRlQ29udHJvbFBhaW50UmVjdChyZW5k
ZXJlci5zdHlsZSgpLmFwcGVhcmFuY2UoKSwgc3RhdGVzLCByZWN0LCByZW5kZXJlci5zdHlsZSgp
LmVmZmVjdGl2ZVpvb20oKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShyZW5kZXJlcik7CiAg
ICAgVU5VU0VEX1BBUkFNKHJlY3QpOwpAQCAtNzQzLDEyICs3NDMsMTIgQEAgYm9vbCBSZW5kZXJU
aGVtZTo6c3RhdGVDaGFuZ2VkKGNvbnN0IFJlbmRlck9iamVjdCYgbywgQ29udHJvbFN0YXRlczo6
U3RhdGVzIHN0YXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZW5kZXJUaGVtZTo6dXBk
YXRlQ29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCYgbywgQ29udHJv
bFN0YXRlcyogY29udHJvbFN0YXRlcykgY29uc3QKK3ZvaWQgUmVuZGVyVGhlbWU6OnVwZGF0ZUNv
bnRyb2xTdGF0ZXNGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmIG8sIENvbnRyb2xTdGF0
ZXMmIGNvbnRyb2xTdGF0ZXMpIGNvbnN0CiB7CiAgICAgQ29udHJvbFN0YXRlcyBuZXdTdGF0ZXMg
PSBleHRyYWN0Q29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKG8pOwotICAgIGNvbnRyb2xTdGF0ZXMt
PnNldFN0YXRlcyhuZXdTdGF0ZXMuc3RhdGVzKCkpOworICAgIGNvbnRyb2xTdGF0ZXMuc2V0U3Rh
dGVzKG5ld1N0YXRlcy5zdGF0ZXMoKSk7CiAgICAgaWYgKGlzRm9jdXNlZChvKSkKLSAgICAgICAg
Y29udHJvbFN0YXRlcy0+c2V0VGltZVNpbmNlQ29udHJvbFdhc0ZvY3VzZWQoby5kb2N1bWVudCgp
LnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkudGltZVNpbmNlRm9jdXNXYXNTZXQoKSk7CisgICAg
ICAgIGNvbnRyb2xTdGF0ZXMuc2V0VGltZVNpbmNlQ29udHJvbFdhc0ZvY3VzZWQoby5kb2N1bWVu
dCgpLnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkudGltZVNpbmNlRm9jdXNXYXNTZXQoKSk7CiB9
CiAKIENvbnRyb2xTdGF0ZXM6OlN0YXRlcyBSZW5kZXJUaGVtZTo6ZXh0cmFjdENvbnRyb2xTdGF0
ZXNGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IDM3Yjc4NGQ4ZTFlZjRiYjc4ZGQxZmYxM2ZkYWRj
M2FjMzNlMmMxNmMuLjcxYjY0YThmNWVjMjc3NzIyNTdlNWNjNWE3NjdkM2U0M2U1NDM1NzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC03OSw3ICs3OSw3IEBAIHB1
YmxpYzoKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgdG8gcGFpbnQgdGhlIHdpZGdldCBh
cyBhIGJhY2tncm91bmQgb2YgdGhlIFJlbmRlck9iamVjdC4gIEEgd2lkZ2V0J3MgZm9yZWdyb3Vu
ZCwgZS5nLiwgdGhlCiAgICAgLy8gdGV4dCBvZiBhIGJ1dHRvbiwgaXMgYWx3YXlzIHJlbmRlcmVk
IGJ5IHRoZSBlbmdpbmUgaXRzZWxmLiAgVGhlIGJvb2xlYW4gcmV0dXJuIHZhbHVlIGluZGljYXRl
cwogICAgIC8vIHdoZXRoZXIgdGhlIENTUyBib3JkZXIvYmFja2dyb3VuZCBzaG91bGQgYWxzbyBi
ZSBwYWludGVkLgotICAgIGJvb2wgcGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0JiwgQ29udHJvbFN0
YXRlcyosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IExheW91dFJlY3QmKTsKKyAgICBib29sIHBh
aW50KGNvbnN0IFJlbmRlck9iamVjdCYsIENvbnRyb2xTdGF0ZXMmLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBMYXlvdXRSZWN0Jik7CiAgICAgYm9vbCBwYWludEJvcmRlck9ubHkoY29uc3QgUmVu
ZGVyQm94JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIGJvb2wg
cGFpbnREZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJCb3gmLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBMYXlvdXRSZWN0Jik7CiAKQEAgLTM3OSw3ICszNzksNyBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYK
IAogcHVibGljOgotICAgIHZvaWQgdXBkYXRlQ29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKGNvbnN0
IFJlbmRlck9iamVjdCYsIENvbnRyb2xTdGF0ZXMqKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUNv
bnRyb2xTdGF0ZXNGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmLCBDb250cm9sU3RhdGVz
JikgY29uc3Q7CiAgICAgQ29udHJvbFN0YXRlczo6U3RhdGVzIGV4dHJhY3RDb250cm9sU3RhdGVz
Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0JikgY29uc3Q7CiAgICAgYm9vbCBpc0FjdGl2
ZShjb25zdCBSZW5kZXJPYmplY3QmKSBjb25zdDsKICAgICBib29sIGlzQ2hlY2tlZChjb25zdCBS
ZW5kZXJPYmplY3QmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZU1hYy5tbQppbmRleCAyOTgzM2M2MDgxOGUzYThmMTUwYzc0YWMwMTc1Zjc1MjU4NTQwOTdmLi43
YzQ3Y2U4ODc3NDJkMTQ2OTMzNjcwZDIwODdmZjNjNjUwZmRjMTE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0yMzAsNyArMjMwLDcgQEAgUmVuZGVy
VGhlbWVNYWM6On5SZW5kZXJUaGVtZU1hYygpCiBOU1ZpZXcqIFJlbmRlclRoZW1lTWFjOjpkb2N1
bWVudFZpZXdGb3IoY29uc3QgUmVuZGVyT2JqZWN0JiBvKSBjb25zdAogewogICAgIENvbnRyb2xT
dGF0ZXMgc3RhdGVzKGV4dHJhY3RDb250cm9sU3RhdGVzRm9yUmVuZGVyZXIobykpOwotICAgIHJl
dHVybiBUaGVtZU1hYzo6ZW5zdXJlZFZpZXcoJm8udmlldygpLmZyYW1lVmlldygpLCAmc3RhdGVz
KTsKKyAgICByZXR1cm4gVGhlbWVNYWM6OmVuc3VyZWRWaWV3KCZvLnZpZXcoKS5mcmFtZVZpZXco
KSwgc3RhdGVzKTsKIH0KIAogI2lmIEVOQUJMRShWSURFTykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258067</attachid>
            <date>2015-08-03 09:38:05 -0700</date>
            <delta_ts>2015-08-03 09:38:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147521-20150803093759.patch</filename>
            <type>text/plain</type>
            <size>21597</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzZjViMDE5MTc0YzM0
NDc0YWYzN2Q5N2U3NWQzM2YxMGUzODc0ZC4uODEwZDM0OTA1YzdmYzY1ZjQzYTIyNmIyMWNjZjY4
MDUzZWY1M2RiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACisyMDE1LTA4LTAzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUGFzcyBDb250cm9sU3RhdGVz
JiB0byBSZW5kZXJUaGVtZSBtZXRob2RzIGluc3RlYWQgb2YgQ29udHJvbFN0YXRlcyoKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzUyMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1
bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9UaGVtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VGhlbWU6OnNlbGVjdGlvbkNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlRoZW1lOjpw
YWludCk6CisgICAgICAgIChXZWJDb3JlOjpUaGVtZTo6aW5mbGF0ZUNvbnRyb2xQYWludFJlY3Qp
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaGVtZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9UaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVN0YXRlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb252ZXJ0Q29udHJvbFN0YXRlc1RvVGhlbWVEcmF3U3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uZmlndXJlVG9nZ2xlQnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6
OnNoYXJlZFJhZGlvQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpzaGFyZWRDaGVja2JveENlbGwp
OgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRUb2dnbGVCdXR0b24pOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0VXBCdXR0b25DZWxsKToKKyAgICAgICAgKFdlYkNvcmU6OmJ1dHRvbik6CisgICAgICAg
IChXZWJDb3JlOjpwYWludEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpwYWludFN0ZXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6VGhlbWVNYWM6OmVuc3VyZWRWaWV3KToKKyAgICAgICAgKFdl
YkNvcmU6OlRoZW1lTWFjOjppbmZsYXRlQ29udHJvbFBhaW50UmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpUaGVtZU1hYzo6cGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWU6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphZGp1c3RS
ZXBhaW50UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6dXBkYXRlQ29udHJv
bFN0YXRlc0ZvclJlbmRlcmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZU1hYzo6ZG9jdW1lbnRWaWV3Rm9yKToKKwogMjAxNS0wOC0wMyAgWmFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIHRoZW1lUGFpbnRlZCBpbiBSZW5k
ZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoKSBpcyBjb25mdXNpbmcuCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc0OTIKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1RoZW1lLmgKaW5kZXggYTEzNjc1MTRmNDg2MDhiNzA2ZmQ5OWVhYTJkMzMwYzk5YjJlYTM4Mi4u
ZWVmYjkyOGZjNzY1OTI0ZjUzNDgxZTNjYmU0NGU4MDRjOWNiZTQ4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UaGVtZS5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY29u
dHJvbERyYXdzRm9jdXNPdXRsaW5lKENvbnRyb2xQYXJ0KSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAKICAgICAvLyBNZXRob2RzIGZvciBvYnRhaW5pbmcgcGxhdGZvcm0tc3BlY2lmaWMgY29sb3Jz
LgotICAgIHZpcnR1YWwgQ29sb3Igc2VsZWN0aW9uQ29sb3IoQ29udHJvbFBhcnQsIGNvbnN0IENv
bnRyb2xTdGF0ZXMqLCBTZWxlY3Rpb25QYXJ0KSBjb25zdCB7IHJldHVybiBDb2xvcigpOyB9Cisg
ICAgdmlydHVhbCBDb2xvciBzZWxlY3Rpb25Db2xvcihDb250cm9sUGFydCwgY29uc3QgQ29udHJv
bFN0YXRlcyYsIFNlbGVjdGlvblBhcnQpIGNvbnN0IHsgcmV0dXJuIENvbG9yKCk7IH0KICAgICB2
aXJ0dWFsIENvbG9yIHRleHRTZWFyY2hIaWdobGlnaHRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIENv
bG9yKCk7IH0KICAgICAKICAgICAvLyBDU1Mgc3lzdGVtIGNvbG9ycyBhbmQgZm9udHMKQEAgLTEw
MCwxMyArMTAwLDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY29udHJvbFJlcXVpcmVz
UHJlV2hpdGVTcGFjZShDb250cm9sUGFydCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAg
IC8vIE1ldGhvZCBmb3IgcGFpbnRpbmcgYSBjb250cm9sLiBUaGUgcmVjdCBpcyBpbiB6b29tZWQg
Y29vcmRpbmF0ZXMuCi0gICAgdmlydHVhbCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9s
U3RhdGVzKiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiAvKnpvb21lZFJlY3Qq
LywgZmxvYXQgLyp6b29tRmFjdG9yKi8sIFNjcm9sbFZpZXcqLCBmbG9hdCAvKmRldmljZVNjYWxl
RmFjdG9yKi8sIGZsb2F0IC8qcGFnZVNjYWxlRmFjdG9yKi8pIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0YXRlcyYsIEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEZsb2F0UmVjdCYgLyp6b29tZWRSZWN0Ki8sIGZsb2F0IC8qem9vbUZhY3RvciovLCBTY3Jv
bGxWaWV3KiwgZmxvYXQgLypkZXZpY2VTY2FsZUZhY3RvciovLCBmbG9hdCAvKnBhZ2VTY2FsZUZh
Y3RvciovKSB7IH0KIAogICAgIC8vIFNvbWUgY29udHJvbHMgbWF5IHNwaWxsIG91dCBvZiB0aGVp
ciBjb250YWluZXJzIChlLmcuLCB0aGUgY2hlY2sgb24gYW4gT1MgWCBjaGVja2JveCkuICBXaGVu
IHRoZXNlIGNvbnRyb2xzIHJlcGFpbnQsCiAgICAgLy8gdGhlIHRoZW1lIG5lZWRzIHRvIGNvbW11
bmljYXRlIHRoaXMgaW5mbGF0ZWQgcmVjdCB0byB0aGUgZW5naW5lIHNvIHRoYXQgaXQgY2FuIGlu
dmFsaWRhdGUgdGhlIHdob2xlIGNvbnRyb2wuCiAgICAgLy8gVGhlIHJlY3QgcGFzc2VkIGluIGlz
IGluIHpvb21lZCBjb29yZGluYXRlcywgc28gdGhlIGluZmxhdGlvbiBzaG91bGQgdGFrZSB0aGF0
IGludG8gYWNjb3VudCBhbmQgbWFrZSBzdXJlIHRoZSBpbmZsYXRpb24KICAgICAvLyBhbW91bnQg
aXMgYWxzbyBzY2FsZWQgYnkgdGhlIHpvb21GYWN0b3IuCi0gICAgdmlydHVhbCB2b2lkIGluZmxh
dGVDb250cm9sUGFpbnRSZWN0KENvbnRyb2xQYXJ0LCBjb25zdCBDb250cm9sU3RhdGVzKiwgRmxv
YXRSZWN0JiAvKnpvb21lZFJlY3QqLywgZmxvYXQgLyp6b29tRmFjdG9yKi8pIGNvbnN0IHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBpbmZsYXRlQ29udHJvbFBhaW50UmVjdChDb250cm9sUGFydCwgY29u
c3QgQ29udHJvbFN0YXRlcyYsIEZsb2F0UmVjdCYgLyp6b29tZWRSZWN0Ki8sIGZsb2F0IC8qem9v
bUZhY3RvciovKSBjb25zdCB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkcmF3TmFtZWRJbWFnZShj
b25zdCBTdHJpbmcmLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaAppbmRleCBjN2RkNWQwY2IxMjUw
NDk5ZjljMzUwMzc3MTBlM2U1MDFmMWIxYWM4Li4zYzgxZjJjMDM5YjQyZGRhYzdjZjI4YTYyNjNh
OTk4M2JjNTg4ZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhl
bWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMuaApAQCAt
NTIsMTEgKzUyLDExIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBjb250cm9sUmVxdWly
ZXNQcmVXaGl0ZVNwYWNlKENvbnRyb2xQYXJ0IHBhcnQpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHBhcnQgPT0gUHVzaEJ1dHRvblBhcnQ7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBwYWludChDb250
cm9sUGFydCwgQ29udHJvbFN0YXRlcyosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVj
dCYsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
ciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgaW5m
bGF0ZUNvbnRyb2xQYWludFJlY3QoQ29udHJvbFBhcnQsIGNvbnN0IENvbnRyb2xTdGF0ZXMqLCBG
bG9hdFJlY3QmLCBmbG9hdCB6b29tRmFjdG9yKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFpbnQoQ29udHJvbFBhcnQsIENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KiwgZmxvYXQg
ZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3Rvcikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGluZmxhdGVDb250cm9sUGFpbnRSZWN0KENvbnRyb2xQYXJ0LCBjb25zdCBD
b250cm9sU3RhdGVzJiwgRmxvYXRSZWN0JiwgZmxvYXQgem9vbUZhY3RvcikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICAvLyBGSVhNRTogT25jZSBSZW5kZXJUaGVtZU1hYyBpcyBjb252ZXJ0ZWQgb3Zl
ciB0byB1c2UgVGhlbWUgdGhlbiB0aGlzIGNhbiBiZSBpbnRlcm5hbCB0byBUaGVtZU1hYy4KLSAg
ICBzdGF0aWMgTlNWaWV3KiBlbnN1cmVkVmlldyhTY3JvbGxWaWV3KiwgY29uc3QgQ29udHJvbFN0
YXRlcyosIGJvb2wgdXNlVW5wYXJlbnRlZFZpZXcgPSBmYWxzZSk7CisgICAgc3RhdGljIE5TVmll
dyogZW5zdXJlZFZpZXcoU2Nyb2xsVmlldyosIGNvbnN0IENvbnRyb2xTdGF0ZXMmLCBib29sIHVz
ZVVucGFyZW50ZWRWaWV3ID0gZmFsc2UpOwogICAgIHN0YXRpYyB2b2lkIHNldEZvY3VzUmluZ0Ns
aXBSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RoZW1lTWFjLm1tCmluZGV4IDA0MWE5MjE0OTY5MmEwNjlmYmE3MmMyMmFkZWVhYWM2MDQ3Yzg2
MTEuLjhiMTE2MWFhZmY3Njg2MzgzYzZkNjBkMjhhN2RmZDY3MzUwYTc5MjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KQEAgLTE4NCw3ICsxODQsNyBAQCBzdGF0aWMg
dm9pZCBzZXRDb250cm9sU2l6ZShOU0NlbGwqIGNlbGwsIGNvbnN0IHN0ZDo6YXJyYXk8SW50U2l6
ZSwgMz4mIHNpemVzLCBjbwogICAgICAgICBbY2VsbCBzZXRDb250cm9sU2l6ZTooTlNDb250cm9s
U2l6ZSlzaXplXTsKIH0KIAotc3RhdGljIHZvaWQgdXBkYXRlU3RhdGVzKE5TQ2VsbCogY2VsbCwg
Y29uc3QgQ29udHJvbFN0YXRlcyogY29udHJvbFN0YXRlcywgYm9vbCB1c2VBbmltYXRpb24gPSBm
YWxzZSkKK3N0YXRpYyB2b2lkIHVwZGF0ZVN0YXRlcyhOU0NlbGwqIGNlbGwsIGNvbnN0IENvbnRy
b2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGJvb2wgdXNlQW5pbWF0aW9uID0gZmFsc2UpCiB7CiAj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTAwMAogICAgIFVOVVNFRF9Q
QVJBTSh1c2VBbmltYXRpb24pOwpAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0
ZVN0YXRlcyhOU0NlbGwqIGNlbGwsIGNvbnN0IENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xTdGF0ZXMs
IGJvb2wKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlcklu
dGVyZmFjZUVuYWJsZWQoKSkKICAgICAgICAgdXNlQW5pbWF0aW9uID0gZmFsc2U7CiAgICAgCi0g
ICAgQ29udHJvbFN0YXRlczo6U3RhdGVzIHN0YXRlcyA9IGNvbnRyb2xTdGF0ZXMtPnN0YXRlcygp
OworICAgIENvbnRyb2xTdGF0ZXM6OlN0YXRlcyBzdGF0ZXMgPSBjb250cm9sU3RhdGVzLnN0YXRl
cygpOwogCiAgICAgLy8gSG92ZXIgc3RhdGUgaXMgbm90IHN1cHBvcnRlZCBieSBBcXVhLgogICAg
IApAQCAtMjM0LDkgKzIzNCw5IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVN0YXRlcyhOU0NlbGwqIGNl
bGwsIGNvbnN0IENvbnRyb2xTdGF0ZXMqIGNvbnRyb2xTdGF0ZXMsIGJvb2wKICAgICAvLyBhIHZp
ZXcgaW4gYSB3aW5kb3cgd2hvc2Uga2V5IHN0YXRlIGNhbiBiZSBkZXRlY3RlZC4KIH0KIAotc3Rh
dGljIFRoZW1lRHJhd1N0YXRlIGNvbnZlcnRDb250cm9sU3RhdGVzVG9UaGVtZURyYXdTdGF0ZShU
aGVtZUJ1dHRvbktpbmQga2luZCwgY29uc3QgQ29udHJvbFN0YXRlcyogY29udHJvbFN0YXRlcykK
K3N0YXRpYyBUaGVtZURyYXdTdGF0ZSBjb252ZXJ0Q29udHJvbFN0YXRlc1RvVGhlbWVEcmF3U3Rh
dGUoVGhlbWVCdXR0b25LaW5kIGtpbmQsIGNvbnN0IENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0
ZXMpCiB7Ci0gICAgQ29udHJvbFN0YXRlczo6U3RhdGVzIHN0YXRlcyA9IGNvbnRyb2xTdGF0ZXMt
PnN0YXRlcygpOworICAgIENvbnRyb2xTdGF0ZXM6OlN0YXRlcyBzdGF0ZXMgPSBjb250cm9sU3Rh
dGVzLnN0YXRlcygpOwogCiAgICAgaWYgKCEoc3RhdGVzICYgQ29udHJvbFN0YXRlczo6RW5hYmxl
ZFN0YXRlKSkKICAgICAgICAgcmV0dXJuIGtUaGVtZVN0YXRlVW5hdmFpbGFibGVJbmFjdGl2ZTsK
QEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgTGVuZ3RoU2l6ZSByYWRpb1NpemUoY29uc3QgRm9u
dENhc2NhZGUmIGZvbnQsIGNvbnN0IExlbmd0aFNpemUmIHpvb21lZFNpegogICAgIHJldHVybiBz
aXplRnJvbUZvbnQoZm9udCwgem9vbWVkU2l6ZSwgem9vbUZhY3RvciwgcmFkaW9TaXplcygpKTsK
IH0KICAgICAKLXN0YXRpYyB2b2lkIGNvbmZpZ3VyZVRvZ2dsZUJ1dHRvbihOU0NlbGwqIGNlbGws
IENvbnRyb2xQYXJ0IGJ1dHRvblR5cGUsIGNvbnN0IENvbnRyb2xTdGF0ZXMqIHN0YXRlcywgY29u
c3QgSW50U2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvciwgYm9vbCBpc1N0YXRlQ2hh
bmdlKQorc3RhdGljIHZvaWQgY29uZmlndXJlVG9nZ2xlQnV0dG9uKE5TQ2VsbCogY2VsbCwgQ29u
dHJvbFBhcnQgYnV0dG9uVHlwZSwgY29uc3QgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBjb25zdCBJ
bnRTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yLCBib29sIGlzU3RhdGVDaGFuZ2Up
CiB7CiAgICAgLy8gU2V0IHRoZSBjb250cm9sIHNpemUgYmFzZWQgb2ZmIHRoZSByZWN0YW5nbGUg
d2UncmUgcGFpbnRpbmcgaW50by4KICAgICBzZXRDb250cm9sU2l6ZShjZWxsLCBidXR0b25UeXBl
ID09IENoZWNrYm94UGFydCA/IGNoZWNrYm94U2l6ZXMoKSA6IHJhZGlvU2l6ZXMoKSwgem9vbWVk
U2l6ZSwgem9vbUZhY3Rvcik7CkBAIC0zNTQsNyArMzU0LDcgQEAgc3RhdGljIFJldGFpblB0cjxO
U0J1dHRvbkNlbGw+IGNyZWF0ZVRvZ2dsZUJ1dHRvbkNlbGwoQ29udHJvbFBhcnQgYnV0dG9uVHlw
ZSkKICAgICByZXR1cm4gdG9nZ2xlQnV0dG9uQ2VsbDsKIH0KICAgICAKLXN0YXRpYyBOU0J1dHRv
bkNlbGwgKnNoYXJlZFJhZGlvQ2VsbChjb25zdCBDb250cm9sU3RhdGVzKiBzdGF0ZXMsIGNvbnN0
IEludFNpemUmIHpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IpCitzdGF0aWMgTlNCdXR0b25D
ZWxsICpzaGFyZWRSYWRpb0NlbGwoY29uc3QgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBjb25zdCBJ
bnRTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQogewogICAgIHN0YXRpYyBOU0J1
dHRvbkNlbGwgKnJhZGlvQ2VsbCA9IGNyZWF0ZVRvZ2dsZUJ1dHRvbkNlbGwoUmFkaW9QYXJ0KS5s
ZWFrUmVmKCk7CiAKQEAgLTM2Miw3ICszNjIsNyBAQCBzdGF0aWMgTlNCdXR0b25DZWxsICpzaGFy
ZWRSYWRpb0NlbGwoY29uc3QgQ29udHJvbFN0YXRlcyogc3RhdGVzLCBjb25zdCBJbnRTaXplJgog
ICAgIHJldHVybiByYWRpb0NlbGw7CiB9CiAgICAgCi1zdGF0aWMgTlNCdXR0b25DZWxsICpzaGFy
ZWRDaGVja2JveENlbGwoY29uc3QgQ29udHJvbFN0YXRlcyogc3RhdGVzLCBjb25zdCBJbnRTaXpl
JiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQorc3RhdGljIE5TQnV0dG9uQ2VsbCAqc2hh
cmVkQ2hlY2tib3hDZWxsKGNvbnN0IENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgY29uc3QgSW50U2l6
ZSYgem9vbWVkU2l6ZSwgZmxvYXQgem9vbUZhY3RvcikKIHsKICAgICBzdGF0aWMgTlNCdXR0b25D
ZWxsICpjaGVja2JveENlbGwgPSBjcmVhdGVUb2dnbGVCdXR0b25DZWxsKENoZWNrYm94UGFydCku
bGVha1JlZigpOwogCkBAIC0zNzYsMTQgKzM3NiwxNCBAQCBzdGF0aWMgYm9vbCBkcmF3Q2VsbEZv
Y3VzUmluZyhOU0NlbGwgKmNlbGwsIE5TUmVjdCBjZWxsRnJhbWUsIE5TVmlldyAqY29udHJvbFZp
ZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIHZvaWQgcGFpbnRUb2dnbGVCdXR0b24o
Q29udHJvbFBhcnQgYnV0dG9uVHlwZSwgQ29udHJvbFN0YXRlcyogY29udHJvbFN0YXRlcywgR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0
IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcpCitzdGF0aWMgdm9pZCBwYWludFRv
Z2dsZUJ1dHRvbihDb250cm9sUGFydCBidXR0b25UeXBlLCBDb250cm9sU3RhdGVzJiBjb250cm9s
U3RhdGVzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVk
UmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmlldykKIHsKICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAotICAgIFJldGFpblB0cjxOU0J1dHRvbkNlbGw+
IHRvZ2dsZUJ1dHRvbkNlbGwgPSBzdGF0aWNfY2FzdDxOU0J1dHRvbkNlbGwgKj4oY29udHJvbFN0
YXRlcy0+cGxhdGZvcm1Db250cm9sKCkpOworICAgIFJldGFpblB0cjxOU0J1dHRvbkNlbGw+IHRv
Z2dsZUJ1dHRvbkNlbGwgPSBzdGF0aWNfY2FzdDxOU0J1dHRvbkNlbGwgKj4oY29udHJvbFN0YXRl
cy5wbGF0Zm9ybUNvbnRyb2woKSk7CiAgICAgSW50U2l6ZSB6b29tZWRSZWN0U2l6ZSA9IEludFNp
emUoem9vbWVkUmVjdC5zaXplKCkpOwogCi0gICAgaWYgKGNvbnRyb2xTdGF0ZXMtPmlzRGlydHko
KSkgeworICAgIGlmIChjb250cm9sU3RhdGVzLmlzRGlydHkoKSkgewogICAgICAgICBpZiAoIXRv
Z2dsZUJ1dHRvbkNlbGwpCiAgICAgICAgICAgICB0b2dnbGVCdXR0b25DZWxsID0gY3JlYXRlVG9n
Z2xlQnV0dG9uQ2VsbChidXR0b25UeXBlKTsKICAgICAgICAgY29uZmlndXJlVG9nZ2xlQnV0dG9u
KHRvZ2dsZUJ1dHRvbkNlbGwuZ2V0KCksIGJ1dHRvblR5cGUsIGNvbnRyb2xTdGF0ZXMsIHpvb21l
ZFJlY3RTaXplLCB6b29tRmFjdG9yLCB0cnVlKTsKQEAgLTM5OCw3ICszOTgsNyBAQCBzdGF0aWMg
dm9pZCBwYWludFRvZ2dsZUJ1dHRvbihDb250cm9sUGFydCBidXR0b25UeXBlLCBDb250cm9sU3Rh
dGVzKiBjb250cm9sU3RhdAogICAgICAgICB9CiAgICAgICAgIGNvbmZpZ3VyZVRvZ2dsZUJ1dHRv
bih0b2dnbGVCdXR0b25DZWxsLmdldCgpLCBidXR0b25UeXBlLCBjb250cm9sU3RhdGVzLCB6b29t
ZWRSZWN0U2l6ZSwgem9vbUZhY3RvciwgZmFsc2UpOwogICAgIH0KLSAgICBjb250cm9sU3RhdGVz
LT5zZXREaXJ0eShmYWxzZSk7CisgICAgY29udHJvbFN0YXRlcy5zZXREaXJ0eShmYWxzZSk7CiAK
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOwogCkBA
IC00NDIsMTYgKzQ0MiwxNiBAQCBzdGF0aWMgdm9pZCBwYWludFRvZ2dsZUJ1dHRvbihDb250cm9s
UGFydCBidXR0b25UeXBlLCBDb250cm9sU3RhdGVzKiBjb250cm9sU3RhdAogICAgIFt0b2dnbGVC
dXR0b25DZWxsIGRyYXdXaXRoRnJhbWU6TlNSZWN0KGluZmxhdGVkUmVjdCkgaW5WaWV3OnZpZXdd
OwogI2VuZGlmCiAKLSAgICBpZiAoIWlzQW5pbWF0aW5nICYmIChjb250cm9sU3RhdGVzLT5zdGF0
ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkZvY3VzU3RhdGUpKQorICAgIGlmICghaXNBbmltYXRpbmcg
JiYgKGNvbnRyb2xTdGF0ZXMuc3RhdGVzKCkgJiBDb250cm9sU3RhdGVzOjpGb2N1c1N0YXRlKSkK
ICAgICAgICAgbmVlZHNSZXBhaW50ID0gZHJhd0NlbGxGb2N1c1JpbmcodG9nZ2xlQnV0dG9uQ2Vs
bC5nZXQoKSwgaW5mbGF0ZWRSZWN0LCB2aWV3KTsKICAgICBbdG9nZ2xlQnV0dG9uQ2VsbCBzZXRD
b250cm9sVmlldzpuaWxdOwogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEwMDAKICAgICBuZWVkc1JlcGFpbnQgfD0gW3RvZ2dsZUJ1dHRvbkNlbGwgX3N0YXRlQW5p
bWF0aW9uUnVubmluZ107CiAjZW5kaWYKLSAgICBjb250cm9sU3RhdGVzLT5zZXROZWVkc1JlcGFp
bnQobmVlZHNSZXBhaW50KTsKKyAgICBjb250cm9sU3RhdGVzLnNldE5lZWRzUmVwYWludChuZWVk
c1JlcGFpbnQpOwogICAgIGlmIChuZWVkc1JlcGFpbnQpCi0gICAgICAgIGNvbnRyb2xTdGF0ZXMt
PnNldFBsYXRmb3JtQ29udHJvbCh0b2dnbGVCdXR0b25DZWxsLmdldCgpKTsKKyAgICAgICAgY29u
dHJvbFN0YXRlcy5zZXRQbGF0Zm9ybUNvbnRyb2wodG9nZ2xlQnV0dG9uQ2VsbC5nZXQoKSk7CiAK
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CkBAIC00ODgsNyArNDg4LDcgQEAgc3Rh
dGljIE5TQnV0dG9uQ2VsbCAqbGVha0J1dHRvbkNlbGwoQnV0dG9uQ2VsbFR5cGUgdHlwZSkKICAg
ICByZXR1cm4gY2VsbDsKIH0KIAotc3RhdGljIHZvaWQgc2V0VXBCdXR0b25DZWxsKE5TQnV0dG9u
Q2VsbCAqY2VsbCwgQ29udHJvbFBhcnQgcGFydCwgY29uc3QgQ29udHJvbFN0YXRlcyogc3RhdGVz
LCBjb25zdCBJbnRTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKQorc3RhdGljIHZv
aWQgc2V0VXBCdXR0b25DZWxsKE5TQnV0dG9uQ2VsbCAqY2VsbCwgQ29udHJvbFBhcnQgcGFydCwg
Y29uc3QgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBjb25zdCBJbnRTaXplJiB6b29tZWRTaXplLCBm
bG9hdCB6b29tRmFjdG9yKQogewogICAgIC8vIFNldCB0aGUgY29udHJvbCBzaXplIGJhc2VkIG9m
ZiB0aGUgcmVjdGFuZ2xlIHdlJ3JlIHBhaW50aW5nIGludG8uCiAgICAgY29uc3Qgc3RkOjphcnJh
eTxJbnRTaXplLCAzPiYgc2l6ZXMgPSBidXR0b25TaXplcygpOwpAQCAtNTA1LDkgKzUwNSw5IEBA
IHN0YXRpYyB2b2lkIHNldFVwQnV0dG9uQ2VsbChOU0J1dHRvbkNlbGwgKmNlbGwsIENvbnRyb2xQ
YXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTCiAgICAgdXBkYXRlU3RhdGVzKGNlbGwsIHN0YXRlcyk7
CiB9CiAKLXN0YXRpYyBOU0J1dHRvbkNlbGwgKmJ1dHRvbihDb250cm9sUGFydCBwYXJ0LCBjb25z
dCBDb250cm9sU3RhdGVzKiBjb250cm9sU3RhdGVzLCBjb25zdCBJbnRTaXplJiB6b29tZWRTaXpl
LCBmbG9hdCB6b29tRmFjdG9yKQorc3RhdGljIE5TQnV0dG9uQ2VsbCAqYnV0dG9uKENvbnRyb2xQ
YXJ0IHBhcnQsIGNvbnN0IENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGNvbnN0IEludFNp
emUmIHpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IpCiB7Ci0gICAgQ29udHJvbFN0YXRlczo6
U3RhdGVzIHN0YXRlcyA9IGNvbnRyb2xTdGF0ZXMtPnN0YXRlcygpOworICAgIENvbnRyb2xTdGF0
ZXM6OlN0YXRlcyBzdGF0ZXMgPSBjb250cm9sU3RhdGVzLnN0YXRlcygpOwogICAgIE5TQnV0dG9u
Q2VsbCAqY2VsbDsKICAgICBpZiAoc3RhdGVzICYgQ29udHJvbFN0YXRlczo6RGVmYXVsdFN0YXRl
KSB7CiAgICAgICAgIHN0YXRpYyBOU0J1dHRvbkNlbGwgKmRlZmF1bHRDZWxsID0gbGVha0J1dHRv
bkNlbGwoRGVmYXVsdEJ1dHRvbkNlbGwpOwpAQCAtNTI1LDEyICs1MjUsMTIgQEAgc3RhdGljIGZs
b2F0IGJ1dHRvbkZvY3VzUmVjdE91dGxpbmVXaWR0aCgpCiAgICAgcmV0dXJuIDMuMGY7CiB9CiAg
ICAgCi1zdGF0aWMgdm9pZCBwYWludEJ1dHRvbihDb250cm9sUGFydCBwYXJ0LCBDb250cm9sU3Rh
dGVzKiBjb250cm9sU3RhdGVzLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3RvciwgU2Nyb2xsVmlldyogc2Nyb2xsVmll
dywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcikKK3N0YXRp
YyB2b2lkIHBhaW50QnV0dG9uKENvbnRyb2xQYXJ0IHBhcnQsIENvbnRyb2xTdGF0ZXMmIGNvbnRy
b2xTdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29t
ZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KiBzY3JvbGxWaWV3LCBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvciwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKQogewogICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogICAgIAogICAgIC8vIERldGVybWluZSB0aGUgd2lkdGggYW5k
IGhlaWdodCBuZWVkZWQgZm9yIHRoZSBjb250cm9sIGFuZCBwcmVwYXJlIHRoZSBjZWxsIGZvciBw
YWludGluZy4KLSAgICBDb250cm9sU3RhdGVzOjpTdGF0ZXMgc3RhdGVzID0gY29udHJvbFN0YXRl
cy0+c3RhdGVzKCk7CisgICAgQ29udHJvbFN0YXRlczo6U3RhdGVzIHN0YXRlcyA9IGNvbnRyb2xT
dGF0ZXMuc3RhdGVzKCk7CiAgICAgTlNCdXR0b25DZWxsICpidXR0b25DZWxsID0gYnV0dG9uKHBh
cnQsIGNvbnRyb2xTdGF0ZXMsIEludFNpemUoem9vbWVkUmVjdC5zaXplKCkpLCB6b29tRmFjdG9y
KTsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOwog
CkBAIC01OTcsNyArNTk3LDcgQEAgc3RhdGljIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFBhcnQg
cGFydCwgQ29udHJvbFN0YXRlcyogY29udHJvbFN0YXRlcywgR3JhcGhpY3MKICAgICAgICAgICAg
IGRyYXdDZWxsRm9jdXNSaW5nKGJ1dHRvbkNlbGwsIE5TUmVjdChpbmZsYXRlZFJlY3QpLCB2aWV3
KTsKICAgICB9CiAgICAgCi0gICAgY29udHJvbFN0YXRlcy0+c2V0TmVlZHNSZXBhaW50KGZhbHNl
KTsKKyAgICBjb250cm9sU3RhdGVzLnNldE5lZWRzUmVwYWludChmYWxzZSk7CiAKICAgICBbYnV0
dG9uQ2VsbCBzZXRDb250cm9sVmlldzpuaWxdOwogCkBAIC02MjcsNyArNjI3LDcgQEAgc3RhdGlj
IE5TQ29udHJvbFNpemUgc3RlcHBlckNvbnRyb2xTaXplRm9yRm9udChjb25zdCBGb250Q2FzY2Fk
ZSYgZm9udCkKICAgICByZXR1cm4gTlNNaW5pQ29udHJvbFNpemU7CiB9CiAKLXN0YXRpYyB2b2lk
IHBhaW50U3RlcHBlcihDb250cm9sU3RhdGVzKiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3Jv
bGxWaWV3KikKK3N0YXRpYyB2b2lkIHBhaW50U3RlcHBlcihDb250cm9sU3RhdGVzJiBzdGF0ZXMs
IEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBm
bG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3KikKIHsKICAgICAvLyBXZSBkb24ndCB1c2UgTlNT
dGVwcGVyQ2VsbCBiZWNhdXNlIHRoZXJlIGFyZSBubyB3YXlzIHRvIGRyYXcgYW4KICAgICAvLyBO
U1N0ZXBwZXJDZWxsIHdpdGggdGhlIHVwIGJ1dHRvbiBoaWdobGlnaHRlZC4KQEAgLTY2OSw3ICs2
NjksNyBAQCBzdGF0aWMgdm9pZCBwYWludFN0ZXBwZXIoQ29udHJvbFN0YXRlcyogc3RhdGVzLCBH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAKIC8vIFRoaXMgd2lsbCBlbnN1cmUgdGhh
dCB3ZSBhbHdheXMgcmV0dXJuIGEgdmFsaWQgTlNWaWV3LCBldmVuIGlmIFNjcm9sbFZpZXcgZG9l
c24ndCBoYXZlIGFuIGFzc29jaWF0ZWQgZG9jdW1lbnQgTlNWaWV3LgogLy8gSWYgdGhlIFNjcm9s
bFZpZXcgZG9lc24ndCBoYXZlIGFuIE5TVmlldywgd2Ugd2lsbCByZXR1cm4gYSBmYWtlIE5TVmll
dyBzZXQgdXAgaW4gdGhlIHdheSBBcHBLaXQgZXhwZWN0cy4KLU5TVmlldyAqVGhlbWVNYWM6OmVu
c3VyZWRWaWV3KFNjcm9sbFZpZXcqIHNjcm9sbFZpZXcsIGNvbnN0IENvbnRyb2xTdGF0ZXMqIGNv
bnRyb2xTdGF0ZXMsIGJvb2wgdXNlVW5wYXJlbnRlZFZpZXcpCitOU1ZpZXcgKlRoZW1lTWFjOjpl
bnN1cmVkVmlldyhTY3JvbGxWaWV3KiBzY3JvbGxWaWV3LCBjb25zdCBDb250cm9sU3RhdGVzJiBj
b250cm9sU3RhdGVzLCBib29sIHVzZVVucGFyZW50ZWRWaWV3KQogewogICAgIGlmICghdXNlVW5w
YXJlbnRlZFZpZXcpIHsKICAgICAgICAgaWYgKE5TVmlldyAqZG9jdW1lbnRWaWV3ID0gc2Nyb2xs
Vmlldy0+ZG9jdW1lbnRWaWV3KCkpCkBAIC02ODAsNyArNjgwLDcgQEAgTlNWaWV3ICpUaGVtZU1h
Yzo6ZW5zdXJlZFZpZXcoU2Nyb2xsVmlldyogc2Nyb2xsVmlldywgY29uc3QgQ29udHJvbFN0YXRl
cyogY29udHIKICAgICBzdGF0aWMgV2ViQ29yZVRoZW1lVmlldyAqdGhlbWVWaWV3ID0gW1tXZWJD
b3JlVGhlbWVWaWV3IGFsbG9jXSBpbml0XTsKICAgICBbdGhlbWVWaWV3IHNldEZyYW1lU2l6ZTpO
U1NpemVGcm9tQ0dTaXplKHNjcm9sbFZpZXctPnRvdGFsQ29udGVudHNTaXplKCkpXTsKIAotICAg
IHRoZW1lV2luZG93SGFzS2V5QXBwZWFyYW5jZSA9ICEoY29udHJvbFN0YXRlcy0+c3RhdGVzKCkg
JiBDb250cm9sU3RhdGVzOjpXaW5kb3dJbmFjdGl2ZVN0YXRlKTsKKyAgICB0aGVtZVdpbmRvd0hh
c0tleUFwcGVhcmFuY2UgPSAhKGNvbnRyb2xTdGF0ZXMuc3RhdGVzKCkgJiBDb250cm9sU3RhdGVz
OjpXaW5kb3dJbmFjdGl2ZVN0YXRlKTsKIAogICAgIHJldHVybiB0aGVtZVZpZXc7CiB9CkBAIC03
ODIsNyArNzgyLDcgQEAgTGVuZ3RoQm94IFRoZW1lTWFjOjpjb250cm9sUGFkZGluZyhDb250cm9s
UGFydCBwYXJ0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udCwgY28KICAgICB9CiB9CiAKLXZvaWQg
VGhlbWVNYWM6OmluZmxhdGVDb250cm9sUGFpbnRSZWN0KENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0
IENvbnRyb2xTdGF0ZXMqIHN0YXRlcywgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29t
RmFjdG9yKSBjb25zdAordm9pZCBUaGVtZU1hYzo6aW5mbGF0ZUNvbnRyb2xQYWludFJlY3QoQ29u
dHJvbFBhcnQgcGFydCwgY29uc3QgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBGbG9hdFJlY3QmIHpv
b21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IpIGNvbnN0CiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAgICAgSW50U2l6ZSB6b29tUmVjdFNpemUgPSBJbnRTaXplKHpvb21lZFJl
Y3Quc2l6ZSgpKTsKQEAgLTgzOSw3ICs4MzksNyBAQCB2b2lkIFRoZW1lTWFjOjppbmZsYXRlQ29u
dHJvbFBhaW50UmVjdChDb250cm9sUGFydCBwYXJ0LCBjb25zdCBDb250cm9sU3RhdGVzKiBzdAog
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAotdm9pZCBUaGVtZU1hYzo6cGFpbnQo
Q29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyogc3RhdGVzLCBHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQgem9vbUZhY3Rvciwg
U2Nyb2xsVmlldyogc2Nyb2xsVmlldywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGZsb2F0IHBh
Z2VTY2FsZUZhY3RvcikKK3ZvaWQgVGhlbWVNYWM6OnBhaW50KENvbnRyb2xQYXJ0IHBhcnQsIENv
bnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqIHNjcm9sbFZp
ZXcsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IpCiB7CiAg
ICAgc3dpdGNoIChwYXJ0KSB7CiAgICAgICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBkZTg5Njk5ODU2YjdmODI1MDcxNTNkNzQx
ZjI4OGQ3YWIyZDlhNGNkLi4zZTg2Y2M2ODllNGI0ZjYyZTIyMjJmY2U2MTIxYWViMmVhYzYyOThl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTMzMSwxMiArMTMz
MSwxMSBAQCB2b2lkIFJlbmRlckJveDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaQogICAgICAgICAgICAgY29udHJvbFN0YXRl
cyA9IG5ldyBDb250cm9sU3RhdGVzKCk7CiAgICAgICAgICAgICBhZGRDb250cm9sU3RhdGVzRm9y
UmVuZGVyZXIodGhpcywgY29udHJvbFN0YXRlcyk7CiAgICAgICAgIH0KLSAgICAgICAgYm9yZGVy
T3JCYWNrZ3JvdW5kUGFpbnRpbmdJc05lZWRlZCA9IHRoZW1lKCkucGFpbnQoKnRoaXMsIGNvbnRy
b2xTdGF0ZXMsIHBhaW50SW5mbywgcGFpbnRSZWN0KTsKKyAgICAgICAgYm9yZGVyT3JCYWNrZ3Jv
dW5kUGFpbnRpbmdJc05lZWRlZCA9IHRoZW1lKCkucGFpbnQoKnRoaXMsICpjb250cm9sU3RhdGVz
LCBwYWludEluZm8sIHBhaW50UmVjdCk7CisgICAgICAgIGlmIChjb250cm9sU3RhdGVzLT5uZWVk
c1JlcGFpbnQoKSkKKyAgICAgICAgICAgIHZpZXcoKS5zY2hlZHVsZUxhenlSZXBhaW50KCp0aGlz
KTsKICAgICB9CiAKLSAgICBpZiAoY29udHJvbFN0YXRlcyAmJiBjb250cm9sU3RhdGVzLT5uZWVk
c1JlcGFpbnQoKSkKLSAgICAgICAgdmlldygpLnNjaGVkdWxlTGF6eVJlcGFpbnQoKnRoaXMpOwot
CiAgICAgaWYgKGJvcmRlck9yQmFja2dyb3VuZFBhaW50aW5nSXNOZWVkZWQpIHsKICAgICAgICAg
aWYgKGJsZWVkQXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZEJhY2tncm91bmRPdmVyQm9yZGVy
KQogICAgICAgICAgICAgcGFpbnRCb3JkZXIocGFpbnRJbmZvLCBwYWludFJlY3QsIHN0eWxlKCks
IGJsZWVkQXZvaWRhbmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3Bw
CmluZGV4IDRkMGJjNWE3MTAzODcyNTFkYTcwYjJiZGRhM2M1ZjU4YzAzNmFiNTUuLmI0ZGYyM2M4
YWEyMmQxZGYzMWU5NGUxMWE2YzU5NzUzNTk2ZTRiYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMjYyLDcgKzI2Miw3IEBAIHZvaWQgUmVuZGVyVGhlbWU6
OmFkanVzdFN0eWxlKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIFJlbmRlclN0eWxlJiBz
dHlsZSwKICAgICB9CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWU6OnBhaW50KGNvbnN0IFJlbmRlck9i
amVjdCYgbywgQ29udHJvbFN0YXRlcyogY29udHJvbFN0YXRlcywgY29uc3QgUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFJlY3QmIHIpCitib29sIFJlbmRlclRoZW1lOjpwYWludChj
b25zdCBSZW5kZXJPYmplY3QmIG8sIENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGNvbnN0
IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRSZWN0JiByKQogewogICAgIC8vIElm
IHBhaW50aW5nIGlzIGRpc2FibGVkLCBidXQgd2UgYXJlbid0IHVwZGF0aW5nIGNvbnRyb2wgdGlu
dHMsIHRoZW4ganVzdCBiYWlsLgogICAgIC8vIElmIHdlIGFyZSB1cGRhdGluZyBjb250cm9sIHRp
bnRzLCBqdXN0IHNjaGVkdWxlIGEgcmVwYWludCBpZiB0aGUgdGhlbWUgc3VwcG9ydHMgdGludGlu
ZwpAQCAtNzE2LDcgKzcxNiw3IEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFJlcGFpbnRSZWN0
KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIEZsb2F0UmVjdCYgcmVjCiB7CiAjaWYgVVNF
KE5FV19USEVNRSkKICAgICBDb250cm9sU3RhdGVzIHN0YXRlcyhleHRyYWN0Q29udHJvbFN0YXRl
c0ZvclJlbmRlcmVyKHJlbmRlcmVyKSk7Ci0gICAgbV90aGVtZS0+aW5mbGF0ZUNvbnRyb2xQYWlu
dFJlY3QocmVuZGVyZXIuc3R5bGUoKS5hcHBlYXJhbmNlKCksICZzdGF0ZXMsIHJlY3QsIHJlbmRl
cmVyLnN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKTsKKyAgICBtX3RoZW1lLT5pbmZsYXRlQ29udHJv
bFBhaW50UmVjdChyZW5kZXJlci5zdHlsZSgpLmFwcGVhcmFuY2UoKSwgc3RhdGVzLCByZWN0LCBy
ZW5kZXJlci5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShyZW5kZXJlcik7CiAgICAgVU5VU0VEX1BBUkFNKHJlY3QpOwpAQCAtNzQzLDEyICs3NDMsMTIg
QEAgYm9vbCBSZW5kZXJUaGVtZTo6c3RhdGVDaGFuZ2VkKGNvbnN0IFJlbmRlck9iamVjdCYgbywg
Q29udHJvbFN0YXRlczo6U3RhdGVzIHN0YXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBS
ZW5kZXJUaGVtZTo6dXBkYXRlQ29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9i
amVjdCYgbywgQ29udHJvbFN0YXRlcyogY29udHJvbFN0YXRlcykgY29uc3QKK3ZvaWQgUmVuZGVy
VGhlbWU6OnVwZGF0ZUNvbnRyb2xTdGF0ZXNGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3Qm
IG8sIENvbnRyb2xTdGF0ZXMmIGNvbnRyb2xTdGF0ZXMpIGNvbnN0CiB7CiAgICAgQ29udHJvbFN0
YXRlcyBuZXdTdGF0ZXMgPSBleHRyYWN0Q29udHJvbFN0YXRlc0ZvclJlbmRlcmVyKG8pOwotICAg
IGNvbnRyb2xTdGF0ZXMtPnNldFN0YXRlcyhuZXdTdGF0ZXMuc3RhdGVzKCkpOworICAgIGNvbnRy
b2xTdGF0ZXMuc2V0U3RhdGVzKG5ld1N0YXRlcy5zdGF0ZXMoKSk7CiAgICAgaWYgKGlzRm9jdXNl
ZChvKSkKLSAgICAgICAgY29udHJvbFN0YXRlcy0+c2V0VGltZVNpbmNlQ29udHJvbFdhc0ZvY3Vz
ZWQoby5kb2N1bWVudCgpLnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkudGltZVNpbmNlRm9jdXNX
YXNTZXQoKSk7CisgICAgICAgIGNvbnRyb2xTdGF0ZXMuc2V0VGltZVNpbmNlQ29udHJvbFdhc0Zv
Y3VzZWQoby5kb2N1bWVudCgpLnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkudGltZVNpbmNlRm9j
dXNXYXNTZXQoKSk7CiB9CiAKIENvbnRyb2xTdGF0ZXM6OlN0YXRlcyBSZW5kZXJUaGVtZTo6ZXh0
cmFjdENvbnRyb2xTdGF0ZXNGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmIG8pIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IDM3Yjc4NGQ4ZTFlZjRi
Yjc4ZGQxZmYxM2ZkYWRjM2FjMzNlMmMxNmMuLjcxYjY0YThmNWVjMjc3NzIyNTdlNWNjNWE3Njdk
M2U0M2U1NDM1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC03
OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgdG8gcGFp
bnQgdGhlIHdpZGdldCBhcyBhIGJhY2tncm91bmQgb2YgdGhlIFJlbmRlck9iamVjdC4gIEEgd2lk
Z2V0J3MgZm9yZWdyb3VuZCwgZS5nLiwgdGhlCiAgICAgLy8gdGV4dCBvZiBhIGJ1dHRvbiwgaXMg
YWx3YXlzIHJlbmRlcmVkIGJ5IHRoZSBlbmdpbmUgaXRzZWxmLiAgVGhlIGJvb2xlYW4gcmV0dXJu
IHZhbHVlIGluZGljYXRlcwogICAgIC8vIHdoZXRoZXIgdGhlIENTUyBib3JkZXIvYmFja2dyb3Vu
ZCBzaG91bGQgYWxzbyBiZSBwYWludGVkLgotICAgIGJvb2wgcGFpbnQoY29uc3QgUmVuZGVyT2Jq
ZWN0JiwgQ29udHJvbFN0YXRlcyosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IExheW91dFJlY3Qm
KTsKKyAgICBib29sIHBhaW50KGNvbnN0IFJlbmRlck9iamVjdCYsIENvbnRyb2xTdGF0ZXMmLCBj
b25zdCBQYWludEluZm8mLCBjb25zdCBMYXlvdXRSZWN0Jik7CiAgICAgYm9vbCBwYWludEJvcmRl
ck9ubHkoY29uc3QgUmVuZGVyQm94JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UmVj
dCYpOwogICAgIGJvb2wgcGFpbnREZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJCb3gmLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRSZWN0Jik7CiAKQEAgLTM3OSw3ICszNzksNyBAQCBwcm90
ZWN0ZWQ6CiAjZW5kaWYKIAogcHVibGljOgotICAgIHZvaWQgdXBkYXRlQ29udHJvbFN0YXRlc0Zv
clJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCYsIENvbnRyb2xTdGF0ZXMqKSBjb25zdDsKKyAg
ICB2b2lkIHVwZGF0ZUNvbnRyb2xTdGF0ZXNGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3Qm
LCBDb250cm9sU3RhdGVzJikgY29uc3Q7CiAgICAgQ29udHJvbFN0YXRlczo6U3RhdGVzIGV4dHJh
Y3RDb250cm9sU3RhdGVzRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0JikgY29uc3Q7CiAg
ICAgYm9vbCBpc0FjdGl2ZShjb25zdCBSZW5kZXJPYmplY3QmKSBjb25zdDsKICAgICBib29sIGlz
Q2hlY2tlZChjb25zdCBSZW5kZXJPYmplY3QmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCAyOTgzM2M2MDgxOGUzYThmMTUwYzc0YWMwMTc1
Zjc1MjU4NTQwOTdmLi43YzQ3Y2U4ODc3NDJkMTQ2OTMzNjcwZDIwODdmZjNjNjUwZmRjMTE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0yMzAsNyAr
MjMwLDcgQEAgUmVuZGVyVGhlbWVNYWM6On5SZW5kZXJUaGVtZU1hYygpCiBOU1ZpZXcqIFJlbmRl
clRoZW1lTWFjOjpkb2N1bWVudFZpZXdGb3IoY29uc3QgUmVuZGVyT2JqZWN0JiBvKSBjb25zdAog
ewogICAgIENvbnRyb2xTdGF0ZXMgc3RhdGVzKGV4dHJhY3RDb250cm9sU3RhdGVzRm9yUmVuZGVy
ZXIobykpOwotICAgIHJldHVybiBUaGVtZU1hYzo6ZW5zdXJlZFZpZXcoJm8udmlldygpLmZyYW1l
VmlldygpLCAmc3RhdGVzKTsKKyAgICByZXR1cm4gVGhlbWVNYWM6OmVuc3VyZWRWaWV3KCZvLnZp
ZXcoKS5mcmFtZVZpZXcoKSwgc3RhdGVzKTsKIH0KIAogI2lmIEVOQUJMRShWSURFTykK
</data>

          </attachment>
      

    </bug>

</bugzilla>