<?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>189214</bug_id>
          
          <creation_ts>2018-08-31 16:34:57 -0700</creation_ts>
          <short_desc>[macOS] Add Touch Bar support for &lt;input type=color&gt;</short_desc>
          <delta_ts>2023-05-27 05:50:50 -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>Forms</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.13</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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="Aditya Keerthi">pxlcoder</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annevk</cc>
    
    <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>thorton</cc>
    
    <cc>timothy</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1455897</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">pxlcoder</who>
    <bug_when>2018-08-31 16:34:57 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455901</commentid>
    <comment_count>1</comment_count>
      <attachid>348681</attachid>
    <who name="Aditya Keerthi">pxlcoder</who>
    <bug_when>2018-08-31 16:56:17 -0700</bug_when>
    <thetext>Created attachment 348681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455908</commentid>
    <comment_count>2</comment_count>
      <attachid>348685</attachid>
    <who name="Aditya Keerthi">pxlcoder</who>
    <bug_when>2018-08-31 17:10:20 -0700</bug_when>
    <thetext>Created attachment 348685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455912</commentid>
    <comment_count>3</comment_count>
      <attachid>348688</attachid>
    <who name="Aditya Keerthi">pxlcoder</who>
    <bug_when>2018-08-31 17:25:16 -0700</bug_when>
    <thetext>Created attachment 348688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810805</commentid>
    <comment_count>4</comment_count>
      <attachid>348688</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-01 12:51:45 -0700</bug_when>
    <thetext>Comment on attachment 348688
Patch

This has been requesting review for more than one year.  If this is still needed, please rebase and re-request review.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348681</attachid>
            <date>2018-08-31 16:56:17 -0700</date>
            <delta_ts>2018-08-31 17:10:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189214-20180831165616.patch</filename>
            <type>text/plain</type>
            <size>21563</size>
            <attacher name="Aditya Keerthi">pxlcoder</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBlNjk1Zjdh
NTk0OTkwYzQzZTBiZmI1NmRjODA2NjcwZjJmNmViNGJkLi5jYWFmOTVlMGMyMWMxNGQyYmYxNThm
MjVhNTkzZTU2MjhkZWM3Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxOC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW21hY09TXSBBZGQgVG91Y2ggQmFyIHN1cHBvcnQgZm9yIDxpbnB1dCB0eXBlPWNvbG9yPgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MjE0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2NvY29hL05TVG91Y2hCYXJTUEkuaDogQWRkIFNQSSBmb3IgTlNUb3VjaEJhckNvbG9yUGlja2Vy
LgorCiAyMDE4LTA4LTMwICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAK
ICAgICAgICAgW0NNYWtlXSBSZXBsYWNlIEFWRm91bmRhdGlvblN1cHBvcnQucHkgdXNpbmcgQ01h
a2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZmMwM2E1NjUxYzI2MGNhY2YwMDA5M2E5OWM1YTJhYzhmMGM3NTM0My4u
Y2M1YTE3OTJlZTcxNzUwYmM4Zjg2NzI4MGY4YTNkNTlhNmI4MTVmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAxOC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5j
b20+CisKKyAgICAgICAgW21hY09TXSBBZGQgVG91Y2ggQmFyIHN1cHBvcnQgZm9yIDxpbnB1dCB0
eXBlPWNvbG9yPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg5MjE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW4gb3JkZXIgdG8gaGF2ZSBhIGNvbXBsZXRlIDxpbnB1dCB0eXBlPWNvbG9yPiBleHBlcmll
bmNlIG9uIG1hY09TLCB3ZSBzaG91bGQKKyAgICAgICAgc3VwcG9ydCBkaXNwbGF5aW5nIGEgY29s
b3IgcGlja2VyIGluIHRoZSBUb3VjaCBCYXIuCisKKyAgICAgICAgVGhlIGNvbG9yIHRvdWNoIGJh
ciBpcyBjcmVhdGVkIGFuZCBvd25lZCBieSBXZWJWaWV3SW1wbCwgbWFuYWdlZCB0aHJvdWdoCisg
ICAgICAgIFdLQ29sb3JUb3VjaEJhck1hbmFnZXIuIFRoZSBtYW5hZ2VyIHByb3ZpZGVzIG1ldGhv
ZHMgdG8gdXBkYXRlIHRoZSB0b3VjaCBiYXIKKyAgICAgICAgaWYgdGhlIGZvcm0gY29udHJvbCBp
cyBjaGFuZ2VkIGFuZCB0byB1cGRhdGUgdGhlIGZvcm0gY29udHJvbCBpZiB0aGUgdG91Y2gKKyAg
ICAgICAgYmFyIHZhbHVlIGlzIGNoYW5nZWQuCisKKyAgICAgICAgRnVydGhlcm1vcmUsIHdlIG11
c3Qgc3luY2hyb25pemUgdGhlIHZhbHVlIG9mIHRoZSBjb2xvciB0b3VjaCBiYXIgd2l0aCB0aGUg
dmFsdWUKKyAgICAgICAgb2YgV2ViQ29sb3JQaWNrZXIuIFRoaXMgaXMgZG9uZSB0aHJvdWdoIGNv
bW11bmljYXRpb24gYmV0d2VlbiBXZWJWaWV3SW1wbCwKKyAgICAgICAgUGFnZUNsaWVudEltcGwg
YW5kIFdlYlBhZ2VQcm94eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAg
KC1bV0tDb2xvclRvdWNoQmFyTWFuYWdlciBpbml0V2l0aFdlYlZpZXdJbXBsOl0pOgorICAgICAg
ICAoLVtXS0NvbG9yVG91Y2hCYXJNYW5hZ2VyIHRvdWNoQmFyXSk6CisgICAgICAgICgtW1dLQ29s
b3JUb3VjaEJhck1hbmFnZXIgdXBkYXRlQ29sb3I6XSk6CisgICAgICAgICgtW1dLQ29sb3JUb3Vj
aEJhck1hbmFnZXIgY29sb3JQaWNrZXJWaWV3Q29udHJvbGxlcjpkaWRTZWxlY3RDb2xvcjpdKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVRvdWNoQmFyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbG9yVG91Y2hCYXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlQ29sb3JUb3VjaEJhckNvbG9yKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmNvbG9yVG91Y2hCYXIgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXI6OnNldENvbG9yRnJvbVRvdWNoQmFy
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXI6OmN1cnJlbnRDb2xvcik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWN0aXZlQ29s
b3JQaWNrZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dDb2xv
clBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2hvb3NlQ29sb3Ip
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnVwZGF0
ZVRvdWNoQmFyKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnVwZGF0ZUNvbG9y
VG91Y2hCYXJDb2xvcik6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1h
Yy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpzZXRDb2xvckZyb21Ub3VjaEJhcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpjdXJyZW50Q29sb3IpOgorICAgICAg
ICAoLVtXS1BvcG92ZXJDb2xvcldlbGwgc2V0Q29sb3JXaXRob3V0Q2xvc2U6XSk6CisgICAgICAg
ICgtW1dLQ29sb3JQb3BvdmVyTWFjIGN1cnJlbnRDb2xvcl0pOgorICAgICAgICAoLVtXS0NvbG9y
UG9wb3Zlck1hYyBzZXRDb2xvckZyb21Ub3VjaEJhcjpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVsZW1lbnRE
aWRGb2N1cyk6CisKIDIwMTgtMDgtMzEgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5j
b20+CiAKICAgICAgICAgU3RvcmFnZSBBY2Nlc3MgQVBJOiBNYWludGFpbiBhY2Nlc3MgdGhyb3Vn
aCBzYW1lLXNpdGUgbmF2aWdhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL05TVG91Y2hCYXJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL05TVG91Y2hCYXJTUEkuaAppbmRleCAyYWNhZWFhN2VhNzg2MTViYzMzOGMwYTkzZjIx
MDQ2YmNiYjVlOWRjLi5hOTdhYmM0N2NhZTE2NmY1MWU1OGI3YTVmYTBkMWVmMjY2NzMyOWQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU1RvdWNoQmFyU1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNUb3VjaEJhclNQSS5o
CkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbXBvcnQgPEFwcEtpdC9OU0NhbmRpZGF0ZUxpc3RUb3Vj
aEJhckl0ZW1fUHJpdmF0ZS5oPgogI2ltcG9ydCA8QXBwS2l0L05TVGV4dFRvdWNoQmFySXRlbUNv
bnRyb2xsZXJfV2ViS2l0U1BJLmg+CisjaW1wb3J0IDxBcHBLaXQvTlNUb3VjaEJhckNvbG9yUGlj
a2VyLmg+CiAjaW1wb3J0IDxBcHBLaXQvTlNUb3VjaEJhcl9Qcml2YXRlLmg+CiAKICNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCAxMDEzMDAKQEAgLTYyLDYgKzYzLDIxIEBAIE5T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCiAtICh2b2lkKXNldENhbmRpZGF0ZXM6KE5TQXJyYXkgKilj
YW5kaWRhdGVzIGZvclNlbGVjdGVkUmFuZ2U6KE5TUmFuZ2Upc2VsZWN0ZWRSYW5nZSBpblN0cmlu
ZzoobnVsbGFibGUgTlNTdHJpbmcgKilzdHJpbmcgcmVjdDooTlNSZWN0KXJlY3QgdmlldzoobnVs
bGFibGUgTlNWaWV3ICopdmlldyBjb21wbGV0aW9uSGFuZGxlcjoobnVsbGFibGUgdm9pZCAoXiko
aWQgYWNjZXB0ZWRDYW5kaWRhdGUpKWNvbXBsZXRpb25CbG9jazsKIEBlbmQKIAorQHByb3RvY29s
IE5TVG91Y2hCYXJDb2xvclBpY2tlclZpZXdDb250cm9sbGVyRGVsZWdhdGU7CisKK0BpbnRlcmZh
Y2UgTlNUb3VjaEJhckNvbG9yUGlja2VyVmlld0NvbnRyb2xsZXIgOiBOU1ZpZXdDb250cm9sbGVy
CisKK0Bwcm9wZXJ0eSAod2VhaykgaWQ8TlNUb3VjaEJhckNvbG9yUGlja2VyVmlld0NvbnRyb2xs
ZXJEZWxlZ2F0ZT4gZGVsZWdhdGU7CitAcHJvcGVydHkgKGNvcHkpIE5TQ29sb3IgKmN1cnJlbnRD
b2xvcjsKK0Bwcm9wZXJ0eSBCT09MIGFsbG93c0FscGhhOworCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhJbml0aWFsQ29sb3I6KE5TQ29sb3IgKilpbml0aWFsQ29sb3I7CitAZW5kCisKK0Bwcm90
b2NvbCBOU1RvdWNoQmFyQ29sb3JQaWNrZXJWaWV3Q29udHJvbGxlckRlbGVnYXRlIDxOU09iamVj
dD4KKy0gKHZvaWQpY29sb3JQaWNrZXJWaWV3Q29udHJvbGxlcjooTlNUb3VjaEJhckNvbG9yUGlj
a2VyVmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZFNlbGVjdENvbG9yOihOU0NvbG9yICop
Y29sb3I7CitAZW5kCisKICNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogQVBQ
S0lUX0VYVEVSTiBOU05vdGlmaWNhdGlvbk5hbWUgY29uc3QgTlNUb3VjaEJhcldpbGxFbnRlckN1
c3RvbWl6YXRpb24gQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMikpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggZTU0ZGQwMDE0MDU4NGZjMWUx
OTE0OGEyMmU3OGZjMmZlMGIwOTc0Mi4uNGIxZWMyYzI2MjA2ZDBmYWU0NDczMjQyN2MxNjI0NDFi
NDg5NDdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5o
CkBAIC02Nyw2ICs2Nyw3IEBAIE9CSkNfQ0xBU1MgTlNUb3VjaEJhckl0ZW07CiBPQkpDX0NMQVNT
IE5TUG9wb3ZlclRvdWNoQmFySXRlbTsKIE9CSkNfQ0xBU1MgV0tUZXh0VG91Y2hCYXJJdGVtQ29u
dHJvbGxlcjsKIE9CSkNfQ0xBU1MgV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXI7CitPQkpDX0NM
QVNTIFdLQ29sb3JUb3VjaEJhck1hbmFnZXI7CiAjZW5kaWYgLy8gSEFWRShUT1VDSF9CQVIpCiAK
IG5hbWVzcGFjZSBBUEkgewpAQCAtNTUwLDYgKzU1MSwxMSBAQCBwdWJsaWM6CiAgICAgQVZGdW5j
dGlvbkJhclNjcnViYmVyICptZWRpYVBsYXliYWNrQ29udHJvbHNWaWV3KCkgY29uc3Q7CiAjZW5k
aWYKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIE5TVG91Y2hCYXIg
KmNvbG9yVG91Y2hCYXIoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUNvbG9yVG91Y2hCYXJDb2xv
cihjb25zdCBXZWJDb3JlOjpDb2xvciYpOworI2VuZGlmCisKICAgICBOU1RvdWNoQmFyICp0ZXh0
VG91Y2hCYXIoKSBjb25zdDsKICAgICB2b2lkIGRpc21pc3NUZXh0VG91Y2hCYXJQb3BvdmVySXRl
bVdpdGhJZGVudGlmaWVyKE5TU3RyaW5nICopOwogCkBAIC01NzQsNiArNTgwLDkgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldFVwVGV4dFRvdWNoQmFyKE5TVG91Y2hCYXIgKik7CiAgICAgdm9pZCB1
cGRhdGVUZXh0VG91Y2hCYXIoKTsKICAgICB2b2lkIHVwZGF0ZU1lZGlhVG91Y2hCYXIoKTsKKyNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICB2b2lkIHVwZGF0ZUNvbG9yVG91Y2hCYXIo
KTsKKyNlbmRpZgogCiAgICAgYm9vbCB1c2VNZWRpYVBsYXliYWNrQ29udHJvbHNWaWV3KCkgY29u
c3Q7CiAgICAgYm9vbCBpc1JpY2hseUVkaXRhYmxlKCkgY29uc3Q7CkBAIC01OTQsNiArNjAzLDkg
QEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TlNDYW5kaWRhdGVMaXN0VG91Y2hCYXJJdGVtPiBt
X3Bhc3N3b3JkVGV4dENhbmRpZGF0ZUxpc3RUb3VjaEJhckl0ZW07CiAgICAgUmV0YWluUHRyPFdl
YlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyPiBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyOwogICAg
IFJldGFpblB0cjxOU0N1c3RvbVRvdWNoQmFySXRlbT4gbV9leGl0RnVsbFNjcmVlbkJ1dHRvbjsK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBSZXRhaW5QdHI8V0tDb2xvclRvdWNo
QmFyTWFuYWdlcj4gbV9jb2xvclRvdWNoQmFyTWFuYWdlcjsKKyNlbmRpZgogCiAjaWYgRU5BQkxF
KFdFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSKQogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tCmluZGV4IGRlNDhlMGY4YTg5NWViODJjMTdiNGY4NzUzYzYzZTE1MjE2ODhl
NWEuLmUxN2MyNzgyZDNmMzU0MGU4YWFjYmIwZThlODJjY2YwZjY4YmY3YzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC02Myw2ICs2Myw3IEBA
CiAjaW1wb3J0ICJXS1ZpZXdMYXlvdXRTdHJhdGVneS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3UHJp
dmF0ZS5oIgogI2ltcG9ydCAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCisjaW1wb3J0ICJXZWJDb2xv
clBpY2tlci5oIgogI2ltcG9ydCAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgogI2ltcG9ydCAiV2Vi
RXZlbnRGYWN0b3J5LmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JQcm94eS5oIgpAQCAtODc3LDYg
Kzg3OCw3MCBAQCBzdGF0aWMgY29uc3QgTlNVSW50ZWdlciBvcmRlcmVkTGlzdFNlZ21lbnQgPSAy
OwogCiBAZW5kCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworc3RhdGljIE5TU3Ry
aW5nICogY29uc3QgV0tDb2xvclBpY2tlclRvdWNoQmFySXRlbSA9IEAiV0tDb2xvclBpY2tlclRv
dWNoQmFySXRlbSI7CisKK0BpbnRlcmZhY2UgV0tDb2xvclRvdWNoQmFyTWFuYWdlciA6IE5TT2Jq
ZWN0IDxOU1RvdWNoQmFyQ29sb3JQaWNrZXJWaWV3Q29udHJvbGxlckRlbGVnYXRlPiB7CitAcHJp
dmF0ZQorICAgIFdlYlZpZXdJbXBsKiBfd2ViVmlld0ltcGw7CisKKyAgICBSZXRhaW5QdHI8TlNU
b3VjaEJhckNvbG9yUGlja2VyVmlld0NvbnRyb2xsZXI+IF9jb250cm9sbGVyOworICAgIFJldGFp
blB0cjxOU0N1c3RvbVRvdWNoQmFySXRlbT4gX2l0ZW07CisgICAgUmV0YWluUHRyPE5TVG91Y2hC
YXI+IF90b3VjaEJhcjsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6
KFdlYlZpZXdJbXBsKil3ZWJWaWV3SW1wbDsKKy0gKE5TVG91Y2hCYXIgKil0b3VjaEJhcjsKKy0g
KHZvaWQpdXBkYXRlQ29sb3I6KE5TQ29sb3IgKiljb2xvcjsKK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIFdLQ29sb3JUb3VjaEJhck1hbmFnZXIKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2Vi
Vmlld0ltcGw6KFdlYlZpZXdJbXBsKil3ZWJWaWV3SW1wbAoreworICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3dlYlZpZXdJbXBsID0g
d2ViVmlld0ltcGw7CisKKyAgICBfY29udHJvbGxlciA9IGFkb3B0TlMoW1tOU1RvdWNoQmFyQ29s
b3JQaWNrZXJWaWV3Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhJbml0aWFsQ29sb3I6bnNDb2xv
cihfd2ViVmlld0ltcGwtPnBhZ2UoKS5hY3RpdmVDb2xvclBpY2tlcigpLT5jdXJyZW50Q29sb3Io
KSldKTsKKyAgICBbX2NvbnRyb2xsZXIgc2V0QWxsb3dzQWxwaGE6Tk9dOworICAgIFtfY29udHJv
bGxlciBzZXREZWxlZ2F0ZTpzZWxmXTsKKworICAgIF9pdGVtID0gYWRvcHROUyhbW05TQ3VzdG9t
VG91Y2hCYXJJdGVtIGFsbG9jXSBpbml0V2l0aElkZW50aWZpZXI6V0tDb2xvclBpY2tlclRvdWNo
QmFySXRlbV0pOworICAgIFtfaXRlbSBzZXRWaWV3Q29udHJvbGxlcjpfY29udHJvbGxlci5nZXQo
KV07CisKKyAgICBfdG91Y2hCYXIgPSBhZG9wdE5TKFtbTlNUb3VjaEJhciBhbGxvY10gaW5pdF0p
OworICAgIFtfdG91Y2hCYXIgc2V0RGVmYXVsdEl0ZW1JZGVudGlmaWVyczpAWyBXS0NvbG9yUGlj
a2VyVG91Y2hCYXJJdGVtIF1dOworICAgIFtfdG91Y2hCYXIgc2V0VGVtcGxhdGVJdGVtczpbTlNT
ZXQgc2V0V2l0aEFycmF5OkBbIF9pdGVtLmdldCgpIF1dXTsKKworICAgIHJldHVybiBzZWxmOwor
fQorCistIChOU1RvdWNoQmFyICopdG91Y2hCYXIKK3sKKyAgICByZXR1cm4gX3RvdWNoQmFyLmdl
dCgpOworfQorCistICh2b2lkKXVwZGF0ZUNvbG9yOihOU0NvbG9yICopY29sb3IKK3sKKyAgICBb
X2NvbnRyb2xsZXIgc2V0Q3VycmVudENvbG9yOmNvbG9yXTsKK30KKworLSAodm9pZCljb2xvclBp
Y2tlclZpZXdDb250cm9sbGVyOihOU1RvdWNoQmFyQ29sb3JQaWNrZXJWaWV3Q29udHJvbGxlciAq
KWNvbnRyb2xsZXIgZGlkU2VsZWN0Q29sb3I6KE5TQ29sb3IgKiljb2xvcgoreworICAgIFdlYkNv
bG9yUGlja2VyKiBjb2xvclBpY2tlciA9IF93ZWJWaWV3SW1wbC0+cGFnZSgpLmFjdGl2ZUNvbG9y
UGlja2VyKCk7CisgICAgaWYgKCFjb2xvclBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
Y29sb3JQaWNrZXItPnNldENvbG9yRnJvbVRvdWNoQmFyKGNvbG9yRnJvbU5TQ29sb3IoY29sb3Ip
KTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisKIEBp
bnRlcmZhY2UgV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IDogTlNPYmplY3QgewogQHByaXZh
dGUKICAgICBSZXRhaW5QdHI8TlNVUkw+IF9ibG9iVVJMOwpAQCAtOTYyLDYgKzEwMjcsMTIgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlVG91Y2hCYXIoKQogICAgICAgICBbbV9tZWRpYVBsYXli
YWNrQ29udHJvbHNWaWV3IHNldFBsYXliYWNrQ29udHJvbHNDb250cm9sbGVyOm5pbF07CiAgICAg
fQogI2VuZGlmCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgaWYgKG1fcGFnZS0+
YWN0aXZlQ29sb3JQaWNrZXIoKSkgeworICAgICAgICB1cGRhdGVDb2xvclRvdWNoQmFyKCk7Cisg
ICAgICAgIHRvdWNoQmFyID0gY29sb3JUb3VjaEJhcigpOworICAgIH0KKyNlbmRpZgogCiAgICAg
aWYgKHRvdWNoQmFyID09IG1fY3VycmVudFRvdWNoQmFyKQogICAgICAgICByZXR1cm47CkBAIC0x
MDA2LDYgKzEwNzcsMzAgQEAgYm9vbCBXZWJWaWV3SW1wbDo6dXNlTWVkaWFQbGF5YmFja0NvbnRy
b2xzVmlldygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50V2FudHNNZWRpYVBsYXliYWNrQ29u
dHJvbHNWaWV3OwogfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnVwZGF0ZUNvbG9yVG91Y2hCYXIoKQoreworICAgIGlmIChtX2NvbG9yVG91Y2hC
YXJNYW5hZ2VyKSB7CisgICAgICAgIFttX2NvbG9yVG91Y2hCYXJNYW5hZ2VyIHVwZGF0ZUNvbG9y
Om5zQ29sb3IobV9wYWdlLT5hY3RpdmVDb2xvclBpY2tlcigpLT5jdXJyZW50Q29sb3IoKSldOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9jb2xvclRvdWNoQmFyTWFuYWdlciA9IGFk
b3B0TlMoW1tXS0NvbG9yVG91Y2hCYXJNYW5hZ2VyIGFsbG9jXSBpbml0V2l0aFdlYlZpZXdJbXBs
OnRoaXNdKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlQ29sb3JUb3VjaEJhckNvbG9y
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBbbV9jb2xvclRvdWNoQmFyTWFu
YWdlciB1cGRhdGVDb2xvcjpuc0NvbG9yKGNvbG9yKV07Cit9CisKK05TVG91Y2hCYXIgKldlYlZp
ZXdJbXBsOjpjb2xvclRvdWNoQmFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gW21fY29sb3JUb3Vj
aEJhck1hbmFnZXIgdG91Y2hCYXJdOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1IpCisKIHZvaWQgV2ViVmlld0ltcGw6OmRpc21pc3NUZXh0VG91Y2hCYXJQb3BvdmVySXRl
bVdpdGhJZGVudGlmaWVyKE5TU3RyaW5nICppZGVudGlmaWVyKQogewogICAgIE5TVG91Y2hCYXJJ
dGVtICpmb3VuZEl0ZW0gPSBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5k
ZXggYmIwOWQxZDZlNTJhYWY3NjgxM2FhZWNhMDljN2M0MTdiZmViYTJjOC4uOTkwYmVkNThkMmE4
MzcyYWYyM2Y4M2E3ZmVjMTE2NzRiYzllYjM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaApAQCAtMjY3LDYgKzI2NywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRv
bmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCB3YXNFdmVu
dEhhbmRsZWQpID0gMDsKICNlbmRpZgogCisjaWYgSEFWRShUT1VDSF9CQVIpCisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVRvdWNoQmFyKCkgPSAwOworI2VuZGlmCisKICAgICB2aXJ0dWFsIFJlZlB0
cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5Jikg
PSAwOwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZpcnR1YWwgUmVmPFdlYkNvbnRl
eHRNZW51UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgQ29udGV4
dE1lbnVDb250ZXh0RGF0YSYmLCBjb25zdCBVc2VyRGF0YSYpID0gMDsKQEAgLTI3NCw2ICsyNzgs
OSBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICB2aXJ0dWFs
IFJlZlB0cjxXZWJDb2xvclBpY2tlcj4gY3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5Kiwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mJikgPSAwOworI2lmIEhBVkUoVE9VQ0hfQkFSKQor
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb2xvclRvdWNoQmFyQ29sb3IoY29uc3QgV2ViQ29yZTo6
Q29sb3ImKSA9IDA7CisjZW5kaWYKICNlbmRpZgogCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5jcHAKaW5kZXggNjAy
NjNkNzRhN2MzYTY2ZjQ3ZDRkMzcyZjk1MGIyZTQ0NmI0M2U2NS4uZDlkZmNhNzJmYTEyNmJjY2Zi
YWZkOGIyYjhmYWM0OGJiYjJjZjFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29sb3JQaWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bG9yUGlja2VyLmNwcApAQCAtNjIsNiArNjIsMTcgQEAgdm9pZCBXZWJDb2xvclBpY2tlcjo6c2hv
d0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikKICAgICByZXR1cm47CiB9CiAKK3Zv
aWQgV2ViQ29sb3JQaWNrZXI6OnNldENvbG9yRnJvbVRvdWNoQmFyKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm47Cit9CisKK1dl
YkNvcmU6OkNvbG9yIFdlYkNvbG9yUGlja2VyOjpjdXJyZW50Q29sb3IoKQoreworICAgIHJldHVy
biBDb2xvcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29sb3JQaWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2Vy
LmgKaW5kZXggZGYwYmU1Y2RiZDZhMzMzMzQ1ZWFmZGMxOTkwN2U4ZjY2ZTcwMTc0MS4uZWVhNzUw
NTMxNzAxZGE3NjJiYWU4ZWIwNjg3MjM0YjAzNzA3MjYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb2xvclBpY2tlci5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZW5kUGlja2VyKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3Io
Y29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbG9yUGlja2Vy
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdmlydHVhbCB2b2lkIHNldENvbG9yRnJvbVRv
dWNoQmFyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdmlydHVhbCBXZWJDb3JlOjpDb2xv
ciBjdXJyZW50Q29sb3IoKTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFdlYkNvbG9yUGlj
a2VyKENsaWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggZTI4MzEwYmE2MGE5MjgzMzdhMDhmNzY5M2Q4ZWRjOTE1NmViYTQzNi4uMDZhMDQ5MjQxMDQx
NDFmMDNiZGUwNDE3ZDA4ZWFmMjE4OGFiMjA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC00NzE0LDEwICs0NzE0LDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogfQogCiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCisKK1dlYkNvbG9yUGlja2VyKiBXZWJQYWdlUHJveHk6OmFj
dGl2ZUNvbG9yUGlja2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb2xvclBpY2tlci5nZXQo
KTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJbnRSZWN0JiBlbGVtZW50UmVjdCwgVmVjdG9y
PFdlYkNvcmU6OkNvbG9yPiYmIHN1Z2dlc3Rpb25zKQogewogICAgIG1fY29sb3JQaWNrZXIgPSBt
X3BhZ2VDbGllbnQuY3JlYXRlQ29sb3JQaWNrZXIodGhpcywgaW5pdGlhbENvbG9yLCBlbGVtZW50
UmVjdCwgV1RGTW92ZShzdWdnZXN0aW9ucykpOwogICAgIG1fY29sb3JQaWNrZXItPnNob3dDb2xv
clBpY2tlcihpbml0aWFsQ29sb3IpOworICAgIG1fcGFnZUNsaWVudC51cGRhdGVUb3VjaEJhcigp
OwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Q29sb3JQaWNrZXJDb2xvcihjb25zdCBXZWJD
b3JlOjpDb2xvciYgY29sb3IpCkBAIC00NzQwLDYgKzQ3NDcsOSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQogICAgIGlmICgh
aXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBIQVZFKFRPVUNIX0JBUikKKyAgICBt
X3BhZ2VDbGllbnQudXBkYXRlQ29sb3JUb3VjaEJhckNvbG9yKGNvbG9yKTsKKyNlbmRpZgogICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ2hvb3NlQ29sb3IoY29sb3Ip
LCBtX3BhZ2VJRCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggNDUyODE0YmMyNWZkMmRkMDA5YjBkY2RiMWViZDJmZmU1NDUxZDE4ZS4uNDE5YTdlNzcwMGM3
MWQ5MWY5YTg3YjE2NTEwNDI0MmE2NWY1MGRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTExMDEsNiArMTEwMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBvc3RN
ZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBBUEk6Ok9i
amVjdCogbWVzc2FnZUJvZHkpOwogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAg
V2ViQ29sb3JQaWNrZXIqIGFjdGl2ZUNvbG9yUGlja2VyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRD
b2xvclBpY2tlckNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CiAgICAgdm9pZCBlbmRDb2xv
clBpY2tlcigpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5oCmluZGV4IGM1MzhiNWJjZjYxM2ZkMmNjODVjOWQ3MDYzNGU0NDk3YjNh
MWJjYmYuLjU2NmJmMDUzYTE4ZmFhNTI1YWM4ZWNlMjE2OTU5NzY3ODFlMWQzNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBAIC0xMjMs
NiArMTIzLDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRvbmVXaXRoS2V5RXZlbnQoY29uc3Qg
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKSBvdmVycmlkZTsK
IAorI2lmIEhBVkUoVE9VQ0hfQkFSKQorICAgIHZvaWQgdXBkYXRlVG91Y2hCYXIoKSBvdmVycmlk
ZTsKKyNlbmRpZgorCiAgICAgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1l
bnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKICAgICBSZWY8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94eShX
ZWJQYWdlUHJveHkmLCBDb250ZXh0TWVudUNvbnRleHREYXRhJiYsIGNvbnN0IFVzZXJEYXRhJikg
b3ZlcnJpZGU7CkBAIC0xMzAsNiArMTM0LDkgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQogICAgIFJlZlB0cjxXZWJDb2xvclBpY2tlcj4gY3JlYXRlQ29sb3JQaWNr
ZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYsIFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mJikgb3ZlcnJpZGU7
CisjaWYgSEFWRShUT1VDSF9CQVIpCisgICAgdm9pZCB1cGRhdGVDb2xvclRvdWNoQmFyQ29sb3Io
Y29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKyNlbmRpZgogI2VuZGlmCiAKICNpZiBF
TkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRleCA4YzIzYjI4YjgyMGI1YmUxZTc0MWIzMTdlM2Qy
MDlmZmE4MTYxZDBjLi45ZTg1MDBjMThkZGU1YjRkN2EzMmU3YzcyZTIzZWE4NDg4ZjliMzE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1t
CkBAIC00NDksNiArNDQ5LDEzIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoS2V5RXZl
bnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGJvb2wKICAgICBtX2ltcGwt
PmRvbmVXaXRoS2V5RXZlbnQoZXZlbnQubmF0aXZlRXZlbnQoKSwgZXZlbnRXYXNIYW5kbGVkKTsK
IH0KIAorI2lmIEhBVkUoVE9VQ0hfQkFSKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlVG91
Y2hCYXIoKQoreworICAgIG1faW1wbC0+dXBkYXRlVG91Y2hCYXIoKTsKK30KKyNlbmRpZgorCiBS
ZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQ
cm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCiB7CiAgICAgcmV0dXJuIFdlYlBvcHVwTWVudVByb3h5
TWFjOjpjcmVhdGUobV92aWV3LCBwYWdlKTsKQEAgLTQ2Niw3ICs0NzMsMTQgQEAgUmVmUHRyPFdl
YkNvbG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVBy
b3h5KiBwYWdlLCBjb24KIHsKICAgICByZXR1cm4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShw
YWdlLCBpbml0aWFsQ29sb3IsIHJlY3QsIFdURk1vdmUoc3VnZ2VzdGlvbnMpLCBtX3ZpZXcpOwog
fQotI2VuZGlmCisKKyNpZiBIQVZFKFRPVUNIX0JBUikKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnVw
ZGF0ZUNvbG9yVG91Y2hCYXJDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7Cisg
ICAgbV9pbXBsLT51cGRhdGVDb2xvclRvdWNoQmFyQ29sb3IoY29sb3IpOworfQorI2VuZGlmIC8v
IEhBVkUoVE9VQ0hfQkFSKQorI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogCiAj
aWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiBSZWZQdHI8V2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duKFdlYlBhZ2VQcm94eSYgcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkNvbG9yUGlja2VyTWFjLmgKaW5kZXggNTRhZjA2MzdlNjBmY2ZmZWQ2ZWYzZjExZWU0MWM4
OTgyOTk2ZjcxZS4uNzlmMzI0ZDYxNTU1ZWUwNmFhYmNlOTRjMDRkMzgyZjc1Yjg0M2RiNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmgKQEAg
LTUzLDYgKzUzLDggQEAgY2xhc3MgV2ViQ29sb3JQaWNrZXJNYWM7CiAtICh2b2lkKWludmFsaWRh
dGU7CiAtICh2b2lkKXNldENvbG9yOihOU0NvbG9yICopY29sb3I7CiAtICh2b2lkKWRpZENob29z
ZUNvbG9yOihpZClzZW5kZXI7CistICh2b2lkKXNldENvbG9yRnJvbVRvdWNoQmFyOihjb25zdCBX
ZWJDb3JlOjpDb2xvciYpY29sb3I7CistIChOU0NvbG9yICopY3VycmVudENvbG9yOwogQGVuZAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTY1LDYgKzY3LDggQEAgcHVibGljOgogICAgIHZvaWQg
ZW5kUGlja2VyKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRTZWxlY3RlZENvbG9yKGNvbnN0IFdl
YkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzaG93Q29sb3JQaWNrZXIoY29uc3Qg
V2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldENvbG9yRnJvbVRvdWNoQmFy
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6Q29sb3IgY3Vy
cmVudENvbG9yKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25z
dCBXZWJDb3JlOjpDb2xvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViQ29sb3JQaWNrZXJNYWMubW0KaW5kZXggMzRhMzYwYjkxZWY5M2QzZWIzN2NiMjMxMTkzMzk2
YTM0MDc2MGIyMC4uNmViNmY0MjMwNzQxYzc0MzVjOWVjNTg1MjQ0MmRkYTExYTE0N2MxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQpA
QCAtMzgsNiArMzgsNyBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0NvbG9yTWFjLmg+CisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHBh
bC9zcGkvbWFjL05TQ29sb3JXZWxsU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1BvcG92
ZXJDb2xvcldlbGxTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TUG9wb3ZlclNQSS5oPgpA
QCAtNjMsNiArNjQsNyBAQCBzdGF0aWMgY29uc3QgQ0dGbG9hdCBjb2xvclBpY2tlck1hdHJpeFN3
YXRjaFdpZHRoID0gMTIuMDsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkPFdLUG9w
b3ZlckNvbG9yV2VsbERlbGVnYXRlPiB3ZWJEZWxlZ2F0ZTsKIAorLSAodm9pZClzZXRDb2xvcldp
dGhvdXRDbG9zZTooTlNDb2xvciAqKWNvbG9yOwogLSAodm9pZClzZXRTdWdnZXN0ZWRDb2xvcnM6
KE5TQ29sb3JMaXN0ICopc3VnZ2VzdGVkQ29sb3JzOwogQGVuZAogCkBAIC0xMjgsNiArMTMwLDE5
IEBAIHZvaWQgV2ViQ29sb3JQaWNrZXJNYWM6OnNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYgY29sb3IpCiAgICAgW21fY29sb3JQaWNrZXJVSSBzZXRBbmRTaG93UGlja2VyOnRo
aXMgd2l0aENvbG9yOm5zQ29sb3IoY29sb3IpIHN1Z2dlc3Rpb25zOldURk1vdmUobV9zdWdnZXN0
aW9ucyldOwogfQogCit2b2lkIFdlYkNvbG9yUGlja2VyTWFjOjpzZXRDb2xvckZyb21Ub3VjaEJh
cihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAgW21fY29sb3JQaWNrZXJVSSBz
ZXRDb2xvckZyb21Ub3VjaEJhcjpjb2xvcl07Cit9CisKK1dlYkNvcmU6OkNvbG9yIFdlYkNvbG9y
UGlja2VyTWFjOjpjdXJyZW50Q29sb3IoKQoreworICAgIGlmICghbV9jb2xvclBpY2tlclVJKQor
ICAgICAgICByZXR1cm4gQ29sb3IoKTsKKworICAgIHJldHVybiBXZWJDb3JlOjpjb2xvckZyb21O
U0NvbG9yKFttX2NvbG9yUGlja2VyVUkgY3VycmVudENvbG9yXSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiBAaW1wbGVtZW50YXRpb24gV0tQb3BvdmVyQ29sb3JXZWxsCkBAIC0xOTQs
NiArMjA5LDE1IEBAIHZvaWQgV2ViQ29sb3JQaWNrZXJNYWM6OnNob3dDb2xvclBpY2tlcihjb25z
dCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCiAgICAgcmV0dXJuIG5pbDsKIH0KIAorLSAodm9pZClz
ZXRDb2xvcldpdGhvdXRDbG9zZTooTlNDb2xvciAqKWNvbG9yCit7CisgICAgLy8gVGhlIGRlZmF1
bHQgYmVoYXZpb3Igb2YgTlNQb3BvdmVyQ29sb3JXZWxsIGlzIHRvIGNsb3NlIHRoZSBwb3BvdmVy
IHdoZW4gdGhlIGNvbG9yIGlzIGNoYW5nZWQuCisgICAgLy8gVGhlIGRlZmF1bHQgYmVoYXZpb3Ig
ZG9lcyBub3QgbWFrZSBzZW5zZSB3aGVuIHdlIGNoYW5nZSB0aGUgY29sb3IgdXNpbmcgdGhlIHRv
dWNoIGJhci4KKyAgICBDbGFzcyBvcmlnaW5hbCA9IHNlbGYuc3VwZXJjbGFzcy5zdXBlcmNsYXNz
OworICAgIHZvaWQgKCogaW1wKShpZCwgU0VMLCBOU0NvbG9yICopID0gKHZvaWQgKCopKGlkLCBT
RUwsIE5TQ29sb3IgKikpY2xhc3NfZ2V0TWV0aG9kSW1wbGVtZW50YXRpb24ob3JpZ2luYWwsIEBz
ZWxlY3RvcihzZXRDb2xvcjopKTsKKyAgICBpbXAoc2VsZiwgQHNlbGVjdG9yKHNldENvbG9yOiks
IGNvbG9yKTsKK30KKwogLSAodm9pZClzZXRTdWdnZXN0ZWRDb2xvcnM6KE5TQ29sb3JMaXN0ICop
c3VnZ2VzdGVkQ29sb3JzCiB7CiAgICAgX3N1Z2dlc3RlZENvbG9ycyA9IHN1Z2dlc3RlZENvbG9y
czsKQEAgLTI0MSw2ICsyNjUsMTggQEAgdm9pZCBXZWJDb2xvclBpY2tlck1hYzo6c2hvd0NvbG9y
UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKICAgICBfbGFzdENoYW5nZWRCeVVz
ZXIgPSBZRVM7CiB9CiAKKy0gKE5TQ29sb3IgKiljdXJyZW50Q29sb3IKK3sKKyAgICByZXR1cm4g
W19wb3BvdmVyV2VsbCBjb2xvcl07Cit9CisKKy0gKHZvaWQpc2V0Q29sb3JGcm9tVG91Y2hCYXI6
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJiljb2xvcgoreworICAgIF9sYXN0Q2hhbmdlZEJ5VXNlciA9
IFlFUzsKKyAgICBfcGlja2VyLT5kaWRDaG9vc2VDb2xvcihjb2xvcik7CisgICAgW19wb3BvdmVy
V2VsbCBzZXRDb2xvcldpdGhvdXRDbG9zZTpuc0NvbG9yKGNvbG9yKV07Cit9CisKIC0gKHZvaWQp
aW52YWxpZGF0ZQogewogICAgIFtfcG9wb3ZlcldlbGwgcmVtb3ZlRnJvbVN1cGVydmlld1dpdGhv
dXROZWVkaW5nRGlzcGxheV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDNjY2E4MjEwYjg3NGNhMTZkNDEzZWExMDAxNmI2ZWRmNjg0OGM2ZmQu
LjkwMjNhZmY3Y2Y3Yzc2MGVhNjhjMmQwOGNiYTMxNzBmNzBmYWM3NzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01MDM4LDcgKzUwMzgsOCBA
QCB2b2lkIFdlYlBhZ2U6OmVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpOb2RlKiBub2RlKQogCiAg
ICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RhcnRBc3Npc3RpbmdOb2RlKGlu
Zm9ybWF0aW9uLCBtX3VzZXJJc0ludGVyYWN0aW5nLCBtX2hhc1BlbmRpbmdCbHVyTm90aWZpY2F0
aW9uLCBtX2NoYW5naW5nQWN0aXZpdHlTdGF0ZSwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7
CiAjZWxpZiBQTEFURk9STShNQUMpCi0gICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKFdlYkNv
cmU6OkhUTUxOYW1lczo6c2VsZWN0VGFnKSkKKyAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUo
V2ViQ29yZTo6SFRNTE5hbWVzOjpzZWxlY3RUYWcpCisgICAgICAgICAgICB8fCAoaXM8SFRNTElu
cHV0RWxlbWVudD4obm9kZSkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm5vZGUpLmlz
Q29sb3JDb250cm9sKCkpKQogICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTZXRFZGl0YWJsZUVsZW1lbnRJc0ZvY3VzZWQoZmFsc2UpKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRFZGl0YWJsZUVsZW1lbnRJ
c0ZvY3VzZWQodHJ1ZSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348685</attachid>
            <date>2018-08-31 17:10:20 -0700</date>
            <delta_ts>2018-08-31 17:25:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189214-20180831171019.patch</filename>
            <type>text/plain</type>
            <size>21592</size>
            <attacher name="Aditya Keerthi">pxlcoder</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBlNjk1Zjdh
NTk0OTkwYzQzZTBiZmI1NmRjODA2NjcwZjJmNmViNGJkLi5jYWFmOTVlMGMyMWMxNGQyYmYxNThm
MjVhNTkzZTU2MjhkZWM3Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxOC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW21hY09TXSBBZGQgVG91Y2ggQmFyIHN1cHBvcnQgZm9yIDxpbnB1dCB0eXBlPWNvbG9yPgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MjE0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2NvY29hL05TVG91Y2hCYXJTUEkuaDogQWRkIFNQSSBmb3IgTlNUb3VjaEJhckNvbG9yUGlja2Vy
LgorCiAyMDE4LTA4LTMwICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAK
ICAgICAgICAgW0NNYWtlXSBSZXBsYWNlIEFWRm91bmRhdGlvblN1cHBvcnQucHkgdXNpbmcgQ01h
a2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZmMwM2E1NjUxYzI2MGNhY2YwMDA5M2E5OWM1YTJhYzhmMGM3NTM0My4u
Y2M1YTE3OTJlZTcxNzUwYmM4Zjg2NzI4MGY4YTNkNTlhNmI4MTVmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAxOC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5j
b20+CisKKyAgICAgICAgW21hY09TXSBBZGQgVG91Y2ggQmFyIHN1cHBvcnQgZm9yIDxpbnB1dCB0
eXBlPWNvbG9yPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg5MjE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW4gb3JkZXIgdG8gaGF2ZSBhIGNvbXBsZXRlIDxpbnB1dCB0eXBlPWNvbG9yPiBleHBlcmll
bmNlIG9uIG1hY09TLCB3ZSBzaG91bGQKKyAgICAgICAgc3VwcG9ydCBkaXNwbGF5aW5nIGEgY29s
b3IgcGlja2VyIGluIHRoZSBUb3VjaCBCYXIuCisKKyAgICAgICAgVGhlIGNvbG9yIHRvdWNoIGJh
ciBpcyBjcmVhdGVkIGFuZCBvd25lZCBieSBXZWJWaWV3SW1wbCwgbWFuYWdlZCB0aHJvdWdoCisg
ICAgICAgIFdLQ29sb3JUb3VjaEJhck1hbmFnZXIuIFRoZSBtYW5hZ2VyIHByb3ZpZGVzIG1ldGhv
ZHMgdG8gdXBkYXRlIHRoZSB0b3VjaCBiYXIKKyAgICAgICAgaWYgdGhlIGZvcm0gY29udHJvbCBp
cyBjaGFuZ2VkIGFuZCB0byB1cGRhdGUgdGhlIGZvcm0gY29udHJvbCBpZiB0aGUgdG91Y2gKKyAg
ICAgICAgYmFyIHZhbHVlIGlzIGNoYW5nZWQuCisKKyAgICAgICAgRnVydGhlcm1vcmUsIHdlIG11
c3Qgc3luY2hyb25pemUgdGhlIHZhbHVlIG9mIHRoZSBjb2xvciB0b3VjaCBiYXIgd2l0aCB0aGUg
dmFsdWUKKyAgICAgICAgb2YgV2ViQ29sb3JQaWNrZXIuIFRoaXMgaXMgZG9uZSB0aHJvdWdoIGNv
bW11bmljYXRpb24gYmV0d2VlbiBXZWJWaWV3SW1wbCwKKyAgICAgICAgUGFnZUNsaWVudEltcGwg
YW5kIFdlYlBhZ2VQcm94eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAg
KC1bV0tDb2xvclRvdWNoQmFyTWFuYWdlciBpbml0V2l0aFdlYlZpZXdJbXBsOl0pOgorICAgICAg
ICAoLVtXS0NvbG9yVG91Y2hCYXJNYW5hZ2VyIHRvdWNoQmFyXSk6CisgICAgICAgICgtW1dLQ29s
b3JUb3VjaEJhck1hbmFnZXIgdXBkYXRlQ29sb3I6XSk6CisgICAgICAgICgtW1dLQ29sb3JUb3Vj
aEJhck1hbmFnZXIgY29sb3JQaWNrZXJWaWV3Q29udHJvbGxlcjpkaWRTZWxlY3RDb2xvcjpdKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVRvdWNoQmFyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbG9yVG91Y2hCYXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlQ29sb3JUb3VjaEJhckNvbG9yKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmNvbG9yVG91Y2hCYXIgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXI6OnNldENvbG9yRnJvbVRvdWNoQmFy
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXI6OmN1cnJlbnRDb2xvcik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWN0aXZlQ29s
b3JQaWNrZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dDb2xv
clBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2hvb3NlQ29sb3Ip
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnVwZGF0
ZVRvdWNoQmFyKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnVwZGF0ZUNvbG9y
VG91Y2hCYXJDb2xvcik6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1h
Yy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpzZXRDb2xvckZyb21Ub3VjaEJhcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpjdXJyZW50Q29sb3IpOgorICAgICAg
ICAoLVtXS1BvcG92ZXJDb2xvcldlbGwgc2V0Q29sb3JXaXRob3V0Q2xvc2U6XSk6CisgICAgICAg
ICgtW1dLQ29sb3JQb3BvdmVyTWFjIGN1cnJlbnRDb2xvcl0pOgorICAgICAgICAoLVtXS0NvbG9y
UG9wb3Zlck1hYyBzZXRDb2xvckZyb21Ub3VjaEJhcjpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVsZW1lbnRE
aWRGb2N1cyk6CisKIDIwMTgtMDgtMzEgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5j
b20+CiAKICAgICAgICAgU3RvcmFnZSBBY2Nlc3MgQVBJOiBNYWludGFpbiBhY2Nlc3MgdGhyb3Vn
aCBzYW1lLXNpdGUgbmF2aWdhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL05TVG91Y2hCYXJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL05TVG91Y2hCYXJTUEkuaAppbmRleCAyYWNhZWFhN2VhNzg2MTViYzMzOGMwYTkzZjIx
MDQ2YmNiYjVlOWRjLi5hOTdhYmM0N2NhZTE2NmY1MWU1OGI3YTVmYTBkMWVmMjY2NzMyOWQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU1RvdWNoQmFyU1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNUb3VjaEJhclNQSS5o
CkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbXBvcnQgPEFwcEtpdC9OU0NhbmRpZGF0ZUxpc3RUb3Vj
aEJhckl0ZW1fUHJpdmF0ZS5oPgogI2ltcG9ydCA8QXBwS2l0L05TVGV4dFRvdWNoQmFySXRlbUNv
bnRyb2xsZXJfV2ViS2l0U1BJLmg+CisjaW1wb3J0IDxBcHBLaXQvTlNUb3VjaEJhckNvbG9yUGlj
a2VyLmg+CiAjaW1wb3J0IDxBcHBLaXQvTlNUb3VjaEJhcl9Qcml2YXRlLmg+CiAKICNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCAxMDEzMDAKQEAgLTYyLDYgKzYzLDIxIEBAIE5T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCiAtICh2b2lkKXNldENhbmRpZGF0ZXM6KE5TQXJyYXkgKilj
YW5kaWRhdGVzIGZvclNlbGVjdGVkUmFuZ2U6KE5TUmFuZ2Upc2VsZWN0ZWRSYW5nZSBpblN0cmlu
ZzoobnVsbGFibGUgTlNTdHJpbmcgKilzdHJpbmcgcmVjdDooTlNSZWN0KXJlY3QgdmlldzoobnVs
bGFibGUgTlNWaWV3ICopdmlldyBjb21wbGV0aW9uSGFuZGxlcjoobnVsbGFibGUgdm9pZCAoXiko
aWQgYWNjZXB0ZWRDYW5kaWRhdGUpKWNvbXBsZXRpb25CbG9jazsKIEBlbmQKIAorQHByb3RvY29s
IE5TVG91Y2hCYXJDb2xvclBpY2tlclZpZXdDb250cm9sbGVyRGVsZWdhdGU7CisKK0BpbnRlcmZh
Y2UgTlNUb3VjaEJhckNvbG9yUGlja2VyVmlld0NvbnRyb2xsZXIgOiBOU1ZpZXdDb250cm9sbGVy
CisKK0Bwcm9wZXJ0eSAod2VhaykgaWQ8TlNUb3VjaEJhckNvbG9yUGlja2VyVmlld0NvbnRyb2xs
ZXJEZWxlZ2F0ZT4gZGVsZWdhdGU7CitAcHJvcGVydHkgKGNvcHkpIE5TQ29sb3IgKmN1cnJlbnRD
b2xvcjsKK0Bwcm9wZXJ0eSBCT09MIGFsbG93c0FscGhhOworCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhJbml0aWFsQ29sb3I6KE5TQ29sb3IgKilpbml0aWFsQ29sb3I7CitAZW5kCisKK0Bwcm90
b2NvbCBOU1RvdWNoQmFyQ29sb3JQaWNrZXJWaWV3Q29udHJvbGxlckRlbGVnYXRlIDxOU09iamVj
dD4KKy0gKHZvaWQpY29sb3JQaWNrZXJWaWV3Q29udHJvbGxlcjooTlNUb3VjaEJhckNvbG9yUGlj
a2VyVmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZFNlbGVjdENvbG9yOihOU0NvbG9yICop
Y29sb3I7CitAZW5kCisKICNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogQVBQ
S0lUX0VYVEVSTiBOU05vdGlmaWNhdGlvbk5hbWUgY29uc3QgTlNUb3VjaEJhcldpbGxFbnRlckN1
c3RvbWl6YXRpb24gQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMikpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggZTU0ZGQwMDE0MDU4NGZjMWUx
OTE0OGEyMmU3OGZjMmZlMGIwOTc0Mi4uNGIxZWMyYzI2MjA2ZDBmYWU0NDczMjQyN2MxNjI0NDFi
NDg5NDdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5o
CkBAIC02Nyw2ICs2Nyw3IEBAIE9CSkNfQ0xBU1MgTlNUb3VjaEJhckl0ZW07CiBPQkpDX0NMQVNT
IE5TUG9wb3ZlclRvdWNoQmFySXRlbTsKIE9CSkNfQ0xBU1MgV0tUZXh0VG91Y2hCYXJJdGVtQ29u
dHJvbGxlcjsKIE9CSkNfQ0xBU1MgV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXI7CitPQkpDX0NM
QVNTIFdLQ29sb3JUb3VjaEJhck1hbmFnZXI7CiAjZW5kaWYgLy8gSEFWRShUT1VDSF9CQVIpCiAK
IG5hbWVzcGFjZSBBUEkgewpAQCAtNTUwLDYgKzU1MSwxMSBAQCBwdWJsaWM6CiAgICAgQVZGdW5j
dGlvbkJhclNjcnViYmVyICptZWRpYVBsYXliYWNrQ29udHJvbHNWaWV3KCkgY29uc3Q7CiAjZW5k
aWYKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIE5TVG91Y2hCYXIg
KmNvbG9yVG91Y2hCYXIoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUNvbG9yVG91Y2hCYXJDb2xv
cihjb25zdCBXZWJDb3JlOjpDb2xvciYpOworI2VuZGlmCisKICAgICBOU1RvdWNoQmFyICp0ZXh0
VG91Y2hCYXIoKSBjb25zdDsKICAgICB2b2lkIGRpc21pc3NUZXh0VG91Y2hCYXJQb3BvdmVySXRl
bVdpdGhJZGVudGlmaWVyKE5TU3RyaW5nICopOwogCkBAIC01NzQsNiArNTgwLDkgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldFVwVGV4dFRvdWNoQmFyKE5TVG91Y2hCYXIgKik7CiAgICAgdm9pZCB1
cGRhdGVUZXh0VG91Y2hCYXIoKTsKICAgICB2b2lkIHVwZGF0ZU1lZGlhVG91Y2hCYXIoKTsKKyNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICB2b2lkIHVwZGF0ZUNvbG9yVG91Y2hCYXIo
KTsKKyNlbmRpZgogCiAgICAgYm9vbCB1c2VNZWRpYVBsYXliYWNrQ29udHJvbHNWaWV3KCkgY29u
c3Q7CiAgICAgYm9vbCBpc1JpY2hseUVkaXRhYmxlKCkgY29uc3Q7CkBAIC01OTQsNiArNjAzLDkg
QEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TlNDYW5kaWRhdGVMaXN0VG91Y2hCYXJJdGVtPiBt
X3Bhc3N3b3JkVGV4dENhbmRpZGF0ZUxpc3RUb3VjaEJhckl0ZW07CiAgICAgUmV0YWluUHRyPFdl
YlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyPiBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyOwogICAg
IFJldGFpblB0cjxOU0N1c3RvbVRvdWNoQmFySXRlbT4gbV9leGl0RnVsbFNjcmVlbkJ1dHRvbjsK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBSZXRhaW5QdHI8V0tDb2xvclRvdWNo
QmFyTWFuYWdlcj4gbV9jb2xvclRvdWNoQmFyTWFuYWdlcjsKKyNlbmRpZgogCiAjaWYgRU5BQkxF
KFdFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSKQogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tCmluZGV4IGRlNDhlMGY4YTg5NWViODJjMTdiNGY4NzUzYzYzZTE1MjE2ODhl
NWEuLmUxN2MyNzgyZDNmMzU0MGU4YWFjYmIwZThlODJjY2YwZjY4YmY3YzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC02Myw2ICs2Myw3IEBA
CiAjaW1wb3J0ICJXS1ZpZXdMYXlvdXRTdHJhdGVneS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3UHJp
dmF0ZS5oIgogI2ltcG9ydCAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCisjaW1wb3J0ICJXZWJDb2xv
clBpY2tlci5oIgogI2ltcG9ydCAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgogI2ltcG9ydCAiV2Vi
RXZlbnRGYWN0b3J5LmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JQcm94eS5oIgpAQCAtODc3LDYg
Kzg3OCw3MCBAQCBzdGF0aWMgY29uc3QgTlNVSW50ZWdlciBvcmRlcmVkTGlzdFNlZ21lbnQgPSAy
OwogCiBAZW5kCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworc3RhdGljIE5TU3Ry
aW5nICogY29uc3QgV0tDb2xvclBpY2tlclRvdWNoQmFySXRlbSA9IEAiV0tDb2xvclBpY2tlclRv
dWNoQmFySXRlbSI7CisKK0BpbnRlcmZhY2UgV0tDb2xvclRvdWNoQmFyTWFuYWdlciA6IE5TT2Jq
ZWN0IDxOU1RvdWNoQmFyQ29sb3JQaWNrZXJWaWV3Q29udHJvbGxlckRlbGVnYXRlPiB7CitAcHJp
dmF0ZQorICAgIFdlYlZpZXdJbXBsKiBfd2ViVmlld0ltcGw7CisKKyAgICBSZXRhaW5QdHI8TlNU
b3VjaEJhckNvbG9yUGlja2VyVmlld0NvbnRyb2xsZXI+IF9jb250cm9sbGVyOworICAgIFJldGFp
blB0cjxOU0N1c3RvbVRvdWNoQmFySXRlbT4gX2l0ZW07CisgICAgUmV0YWluUHRyPE5TVG91Y2hC
YXI+IF90b3VjaEJhcjsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6
KFdlYlZpZXdJbXBsKil3ZWJWaWV3SW1wbDsKKy0gKE5TVG91Y2hCYXIgKil0b3VjaEJhcjsKKy0g
KHZvaWQpdXBkYXRlQ29sb3I6KE5TQ29sb3IgKiljb2xvcjsKK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIFdLQ29sb3JUb3VjaEJhck1hbmFnZXIKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2Vi
Vmlld0ltcGw6KFdlYlZpZXdJbXBsKil3ZWJWaWV3SW1wbAoreworICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3dlYlZpZXdJbXBsID0g
d2ViVmlld0ltcGw7CisKKyAgICBfY29udHJvbGxlciA9IGFkb3B0TlMoW1tOU1RvdWNoQmFyQ29s
b3JQaWNrZXJWaWV3Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhJbml0aWFsQ29sb3I6bnNDb2xv
cihfd2ViVmlld0ltcGwtPnBhZ2UoKS5hY3RpdmVDb2xvclBpY2tlcigpLT5jdXJyZW50Q29sb3Io
KSldKTsKKyAgICBbX2NvbnRyb2xsZXIgc2V0QWxsb3dzQWxwaGE6Tk9dOworICAgIFtfY29udHJv
bGxlciBzZXREZWxlZ2F0ZTpzZWxmXTsKKworICAgIF9pdGVtID0gYWRvcHROUyhbW05TQ3VzdG9t
VG91Y2hCYXJJdGVtIGFsbG9jXSBpbml0V2l0aElkZW50aWZpZXI6V0tDb2xvclBpY2tlclRvdWNo
QmFySXRlbV0pOworICAgIFtfaXRlbSBzZXRWaWV3Q29udHJvbGxlcjpfY29udHJvbGxlci5nZXQo
KV07CisKKyAgICBfdG91Y2hCYXIgPSBhZG9wdE5TKFtbTlNUb3VjaEJhciBhbGxvY10gaW5pdF0p
OworICAgIFtfdG91Y2hCYXIgc2V0RGVmYXVsdEl0ZW1JZGVudGlmaWVyczpAWyBXS0NvbG9yUGlj
a2VyVG91Y2hCYXJJdGVtIF1dOworICAgIFtfdG91Y2hCYXIgc2V0VGVtcGxhdGVJdGVtczpbTlNT
ZXQgc2V0V2l0aEFycmF5OkBbIF9pdGVtLmdldCgpIF1dXTsKKworICAgIHJldHVybiBzZWxmOwor
fQorCistIChOU1RvdWNoQmFyICopdG91Y2hCYXIKK3sKKyAgICByZXR1cm4gX3RvdWNoQmFyLmdl
dCgpOworfQorCistICh2b2lkKXVwZGF0ZUNvbG9yOihOU0NvbG9yICopY29sb3IKK3sKKyAgICBb
X2NvbnRyb2xsZXIgc2V0Q3VycmVudENvbG9yOmNvbG9yXTsKK30KKworLSAodm9pZCljb2xvclBp
Y2tlclZpZXdDb250cm9sbGVyOihOU1RvdWNoQmFyQ29sb3JQaWNrZXJWaWV3Q29udHJvbGxlciAq
KWNvbnRyb2xsZXIgZGlkU2VsZWN0Q29sb3I6KE5TQ29sb3IgKiljb2xvcgoreworICAgIFdlYkNv
bG9yUGlja2VyKiBjb2xvclBpY2tlciA9IF93ZWJWaWV3SW1wbC0+cGFnZSgpLmFjdGl2ZUNvbG9y
UGlja2VyKCk7CisgICAgaWYgKCFjb2xvclBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
Y29sb3JQaWNrZXItPnNldENvbG9yRnJvbVRvdWNoQmFyKGNvbG9yRnJvbU5TQ29sb3IoY29sb3Ip
KTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisKIEBp
bnRlcmZhY2UgV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IDogTlNPYmplY3QgewogQHByaXZh
dGUKICAgICBSZXRhaW5QdHI8TlNVUkw+IF9ibG9iVVJMOwpAQCAtOTYyLDYgKzEwMjcsMTIgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlVG91Y2hCYXIoKQogICAgICAgICBbbV9tZWRpYVBsYXli
YWNrQ29udHJvbHNWaWV3IHNldFBsYXliYWNrQ29udHJvbHNDb250cm9sbGVyOm5pbF07CiAgICAg
fQogI2VuZGlmCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgaWYgKG1fcGFnZS0+
YWN0aXZlQ29sb3JQaWNrZXIoKSkgeworICAgICAgICB1cGRhdGVDb2xvclRvdWNoQmFyKCk7Cisg
ICAgICAgIHRvdWNoQmFyID0gY29sb3JUb3VjaEJhcigpOworICAgIH0KKyNlbmRpZgogCiAgICAg
aWYgKHRvdWNoQmFyID09IG1fY3VycmVudFRvdWNoQmFyKQogICAgICAgICByZXR1cm47CkBAIC0x
MDA2LDYgKzEwNzcsMzAgQEAgYm9vbCBXZWJWaWV3SW1wbDo6dXNlTWVkaWFQbGF5YmFja0NvbnRy
b2xzVmlldygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50V2FudHNNZWRpYVBsYXliYWNrQ29u
dHJvbHNWaWV3OwogfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnVwZGF0ZUNvbG9yVG91Y2hCYXIoKQoreworICAgIGlmIChtX2NvbG9yVG91Y2hC
YXJNYW5hZ2VyKSB7CisgICAgICAgIFttX2NvbG9yVG91Y2hCYXJNYW5hZ2VyIHVwZGF0ZUNvbG9y
Om5zQ29sb3IobV9wYWdlLT5hY3RpdmVDb2xvclBpY2tlcigpLT5jdXJyZW50Q29sb3IoKSldOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9jb2xvclRvdWNoQmFyTWFuYWdlciA9IGFk
b3B0TlMoW1tXS0NvbG9yVG91Y2hCYXJNYW5hZ2VyIGFsbG9jXSBpbml0V2l0aFdlYlZpZXdJbXBs
OnRoaXNdKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlQ29sb3JUb3VjaEJhckNvbG9y
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBbbV9jb2xvclRvdWNoQmFyTWFu
YWdlciB1cGRhdGVDb2xvcjpuc0NvbG9yKGNvbG9yKV07Cit9CisKK05TVG91Y2hCYXIgKldlYlZp
ZXdJbXBsOjpjb2xvclRvdWNoQmFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gW21fY29sb3JUb3Vj
aEJhck1hbmFnZXIgdG91Y2hCYXJdOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1IpCisKIHZvaWQgV2ViVmlld0ltcGw6OmRpc21pc3NUZXh0VG91Y2hCYXJQb3BvdmVySXRl
bVdpdGhJZGVudGlmaWVyKE5TU3RyaW5nICppZGVudGlmaWVyKQogewogICAgIE5TVG91Y2hCYXJJ
dGVtICpmb3VuZEl0ZW0gPSBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5k
ZXggYmIwOWQxZDZlNTJhYWY3NjgxM2FhZWNhMDljN2M0MTdiZmViYTJjOC4uOTkwYmVkNThkMmE4
MzcyYWYyM2Y4M2E3ZmVjMTE2NzRiYzllYjM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaApAQCAtMjY3LDYgKzI2NywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRv
bmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCB3YXNFdmVu
dEhhbmRsZWQpID0gMDsKICNlbmRpZgogCisjaWYgSEFWRShUT1VDSF9CQVIpCisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVRvdWNoQmFyKCkgPSAwOworI2VuZGlmCisKICAgICB2aXJ0dWFsIFJlZlB0
cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5Jikg
PSAwOwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZpcnR1YWwgUmVmPFdlYkNvbnRl
eHRNZW51UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgQ29udGV4
dE1lbnVDb250ZXh0RGF0YSYmLCBjb25zdCBVc2VyRGF0YSYpID0gMDsKQEAgLTI3NCw2ICsyNzgs
OSBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICB2aXJ0dWFs
IFJlZlB0cjxXZWJDb2xvclBpY2tlcj4gY3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5Kiwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mJikgPSAwOworI2lmIEhBVkUoVE9VQ0hfQkFSKQor
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb2xvclRvdWNoQmFyQ29sb3IoY29uc3QgV2ViQ29yZTo6
Q29sb3ImKSA9IDA7CisjZW5kaWYKICNlbmRpZgogCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5jcHAKaW5kZXggNjAy
NjNkNzRhN2MzYTY2ZjQ3ZDRkMzcyZjk1MGIyZTQ0NmI0M2U2NS4uZDlkZmNhNzJmYTEyNmJjY2Zi
YWZkOGIyYjhmYWM0OGJiYjJjZjFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29sb3JQaWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bG9yUGlja2VyLmNwcApAQCAtNjIsNiArNjIsMTcgQEAgdm9pZCBXZWJDb2xvclBpY2tlcjo6c2hv
d0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikKICAgICByZXR1cm47CiB9CiAKK3Zv
aWQgV2ViQ29sb3JQaWNrZXI6OnNldENvbG9yRnJvbVRvdWNoQmFyKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm47Cit9CisKK1dl
YkNvcmU6OkNvbG9yIFdlYkNvbG9yUGlja2VyOjpjdXJyZW50Q29sb3IoKQoreworICAgIHJldHVy
biBDb2xvcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29sb3JQaWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2Vy
LmgKaW5kZXggZGYwYmU1Y2RiZDZhMzMzMzQ1ZWFmZGMxOTkwN2U4ZjY2ZTcwMTc0MS4uZWVhNzUw
NTMxNzAxZGE3NjJiYWU4ZWIwNjg3MjM0YjAzNzA3MjYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb2xvclBpY2tlci5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZW5kUGlja2VyKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3Io
Y29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbG9yUGlja2Vy
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdmlydHVhbCB2b2lkIHNldENvbG9yRnJvbVRv
dWNoQmFyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdmlydHVhbCBXZWJDb3JlOjpDb2xv
ciBjdXJyZW50Q29sb3IoKTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFdlYkNvbG9yUGlj
a2VyKENsaWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggZTI4MzEwYmE2MGE5MjgzMzdhMDhmNzY5M2Q4ZWRjOTE1NmViYTQzNi4uYzMzODAzNzI2ZDli
NGU5NzJhMTJkOTU3YjUwZGU4Y2E2MDM3YWQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC00NzE0LDEwICs0NzE0LDE5IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogfQogCiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCisKK1dlYkNvbG9yUGlja2VyKiBXZWJQYWdlUHJveHk6OmFj
dGl2ZUNvbG9yUGlja2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb2xvclBpY2tlci5nZXQo
KTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJbnRSZWN0JiBlbGVtZW50UmVjdCwgVmVjdG9y
PFdlYkNvcmU6OkNvbG9yPiYmIHN1Z2dlc3Rpb25zKQogewogICAgIG1fY29sb3JQaWNrZXIgPSBt
X3BhZ2VDbGllbnQuY3JlYXRlQ29sb3JQaWNrZXIodGhpcywgaW5pdGlhbENvbG9yLCBlbGVtZW50
UmVjdCwgV1RGTW92ZShzdWdnZXN0aW9ucykpOwogICAgIG1fY29sb3JQaWNrZXItPnNob3dDb2xv
clBpY2tlcihpbml0aWFsQ29sb3IpOworI2lmIEhBVkUoVE9VQ0hfQkFSKQorICAgIG1fcGFnZUNs
aWVudC51cGRhdGVUb3VjaEJhcigpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXRDb2xvclBpY2tlckNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKQEAgLTQ3NDAs
NiArNDc0OSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJD
b3JlOjpDb2xvciYgY29sb3IpCiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsK
IAorI2lmIEhBVkUoVE9VQ0hfQkFSKQorICAgIG1fcGFnZUNsaWVudC51cGRhdGVDb2xvclRvdWNo
QmFyQ29sb3IoY29sb3IpOworI2VuZGlmCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEaWRDaG9vc2VDb2xvcihjb2xvciksIG1fcGFnZUlEKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0NTI4MTRiYzI1ZmQyZGQwMDliMGRjZGIx
ZWJkMmZmZTU0NTFkMThlLi40MTlhN2U3NzAwYzcxZDkxZjlhODdiMTY1MTA0MjQyYTY1ZjUwZGIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTEwMSw2ICsxMTAx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKGNvbnN0
IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSTo6T2JqZWN0KiBtZXNzYWdlQm9keSk7CiAKICNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBXZWJDb2xvclBpY2tlciogYWN0aXZlQ29sb3JQ
aWNrZXIoKSBjb25zdDsKICAgICB2b2lkIHNldENvbG9yUGlja2VyQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKTsKICAgICB2b2lkIGVuZENvbG9yUGlja2VyKCk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggYzUzOGI1
YmNmNjEzZmQyY2M4NWM5ZDcwNjM0ZTQ0OTdiM2ExYmNiZi4uNTY2YmYwNTNhMThmYWE1MjVhYzhl
Y2UyMTY5NTk3Njc4MWUxZDM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTEyMyw2ICsxMjMsMTAgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9v
bCB3YXNFdmVudEhhbmRsZWQpIG92ZXJyaWRlOwogCisjaWYgSEFWRShUT1VDSF9CQVIpCisgICAg
dm9pZCB1cGRhdGVUb3VjaEJhcigpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBSZWZQdHI8V2Vi
UG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJy
aWRlOwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIFJlZjxXZWJDb250ZXh0TWVudVBy
b3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIENvbnRleHRNZW51Q29u
dGV4dERhdGEmJiwgY29uc3QgVXNlckRhdGEmKSBvdmVycmlkZTsKQEAgLTEzMCw2ICsxMzQsOSBA
QCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAgUmVmUHRyPFdl
YkNvbG9yUGlja2VyPiBjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJD
b3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgVmVjdG9y
PFdlYkNvcmU6OkNvbG9yPiYmKSBvdmVycmlkZTsKKyNpZiBIQVZFKFRPVUNIX0JBUikKKyAgICB2
b2lkIHVwZGF0ZUNvbG9yVG91Y2hCYXJDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJy
aWRlOworI2VuZGlmCiAjZW5kaWYKIAogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4
IDhjMjNiMjhiODIwYjViZTFlNzQxYjMxN2UzZDIwOWZmYTgxNjFkMGMuLjllODUwMGMxOGRkZTVi
NGQ3YTMyZTdjNzJlMjNlYTg0ODhmOWIzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTQ0OSw2ICs0NDksMTMgQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50JiBldmVudCwgYm9vbAogICAgIG1faW1wbC0+ZG9uZVdpdGhLZXlFdmVudChldmVudC5uYXRp
dmVFdmVudCgpLCBldmVudFdhc0hhbmRsZWQpOwogfQogCisjaWYgSEFWRShUT1VDSF9CQVIpCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjp1cGRhdGVUb3VjaEJhcigpCit7CisgICAgbV9pbXBsLT51cGRh
dGVUb3VjaEJhcigpOworfQorI2VuZGlmCisKIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFn
ZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKIHsK
ICAgICByZXR1cm4gV2ViUG9wdXBNZW51UHJveHlNYWM6OmNyZWF0ZShtX3ZpZXcsIHBhZ2UpOwpA
QCAtNDY2LDcgKzQ3MywxNCBAQCBSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IFBhZ2VDbGllbnRJbXBs
OjpjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbgogewogICAgIHJldHVy
biBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKHBhZ2UsIGluaXRpYWxDb2xvciwgcmVjdCwgV1RG
TW92ZShzdWdnZXN0aW9ucyksIG1fdmlldyk7CiB9Ci0jZW5kaWYKKworI2lmIEhBVkUoVE9VQ0hf
QkFSKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQ29sb3JUb3VjaEJhckNvbG9yKGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBtX2ltcGwtPnVwZGF0ZUNvbG9yVG91Y2hC
YXJDb2xvcihjb2xvcik7Cit9CisjZW5kaWYgLy8gSEFWRShUT1VDSF9CQVIpCisjZW5kaWYgLy8g
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkK
IFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+IFBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24oV2ViUGFnZVByb3h5JiBwYWdlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAppbmRleCA1
NGFmMDYzN2U2MGZjZmZlZDZlZjNmMTFlZTQxYzg5ODI5OTZmNzFlLi43OWYzMjRkNjE1NTVlZTA2
YWFiY2U5NGMwNGQzODJmNzViODQzZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaApAQCAtNTMsNiArNTMsOCBAQCBjbGFzcyBXZWJDb2xv
clBpY2tlck1hYzsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKIC0gKHZvaWQpc2V0Q29sb3I6KE5TQ29s
b3IgKiljb2xvcjsKIC0gKHZvaWQpZGlkQ2hvb3NlQ29sb3I6KGlkKXNlbmRlcjsKKy0gKHZvaWQp
c2V0Q29sb3JGcm9tVG91Y2hCYXI6KGNvbnN0IFdlYkNvcmU6OkNvbG9yJiljb2xvcjsKKy0gKE5T
Q29sb3IgKiljdXJyZW50Q29sb3I7CiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjUs
NiArNjcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmRQaWNrZXIoKSBvdmVycmlkZTsKICAgICB2
b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKICAg
ICB2b2lkIHNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc2V0Q29sb3JGcm9tVG91Y2hCYXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVy
cmlkZTsKKyAgICBXZWJDb3JlOjpDb2xvciBjdXJyZW50Q29sb3IoKSBvdmVycmlkZTsKICAgICAK
ICAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQppbmRleCAz
NGEzNjBiOTFlZjkzZDNlYjM3Y2IyMzExOTMzOTZhMzQwNzYwYjIwLi42ZWI2ZjQyMzA3NDFjNzQz
NWM5ZWM1ODUyNDQyZGRhMTFhMTQ3YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCkBAIC0zOCw2ICszOCw3IEBACiAKICNpbXBvcnQg
PFdlYkNvcmUvQ29sb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29sb3JNYWMuaD4KKyNpbXBvcnQg
PG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNDb2xvcldlbGxTUEkuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TUG9wb3ZlckNvbG9yV2VsbFNQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNQb3BvdmVyU1BJLmg+CkBAIC02Myw2ICs2NCw3IEBAIHN0YXRpYyBjb25z
dCBDR0Zsb2F0IGNvbG9yUGlja2VyTWF0cml4U3dhdGNoV2lkdGggPSAxMi4wOwogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgd2VhaykgaWQ8V0tQb3BvdmVyQ29sb3JXZWxsRGVsZWdhdGU+IHdlYkRl
bGVnYXRlOwogCistICh2b2lkKXNldENvbG9yV2l0aG91dENsb3NlOihOU0NvbG9yICopY29sb3I7
CiAtICh2b2lkKXNldFN1Z2dlc3RlZENvbG9yczooTlNDb2xvckxpc3QgKilzdWdnZXN0ZWRDb2xv
cnM7CiBAZW5kCiAKQEAgLTEyOCw2ICsxMzAsMTkgQEAgdm9pZCBXZWJDb2xvclBpY2tlck1hYzo6
c2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKICAgICBbbV9jb2xv
clBpY2tlclVJIHNldEFuZFNob3dQaWNrZXI6dGhpcyB3aXRoQ29sb3I6bnNDb2xvcihjb2xvcikg
c3VnZ2VzdGlvbnM6V1RGTW92ZShtX3N1Z2dlc3Rpb25zKV07CiB9CiAKK3ZvaWQgV2ViQ29sb3JQ
aWNrZXJNYWM6OnNldENvbG9yRnJvbVRvdWNoQmFyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xv
cikKK3sKKyAgICBbbV9jb2xvclBpY2tlclVJIHNldENvbG9yRnJvbVRvdWNoQmFyOmNvbG9yXTsK
K30KKworV2ViQ29yZTo6Q29sb3IgV2ViQ29sb3JQaWNrZXJNYWM6OmN1cnJlbnRDb2xvcigpCit7
CisgICAgaWYgKCFtX2NvbG9yUGlja2VyVUkpCisgICAgICAgIHJldHVybiBDb2xvcigpOworCisg
ICAgcmV0dXJuIFdlYkNvcmU6OmNvbG9yRnJvbU5TQ29sb3IoW21fY29sb3JQaWNrZXJVSSBjdXJy
ZW50Q29sb3JdKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKIEBpbXBsZW1lbnRhdGlv
biBXS1BvcG92ZXJDb2xvcldlbGwKQEAgLTE5NCw2ICsyMDksMTUgQEAgdm9pZCBXZWJDb2xvclBp
Y2tlck1hYzo6c2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKICAg
ICByZXR1cm4gbmlsOwogfQogCistICh2b2lkKXNldENvbG9yV2l0aG91dENsb3NlOihOU0NvbG9y
ICopY29sb3IKK3sKKyAgICAvLyBUaGUgZGVmYXVsdCBiZWhhdmlvciBvZiBOU1BvcG92ZXJDb2xv
cldlbGwgaXMgdG8gY2xvc2UgdGhlIHBvcG92ZXIgd2hlbiB0aGUgY29sb3IgaXMgY2hhbmdlZC4K
KyAgICAvLyBUaGUgZGVmYXVsdCBiZWhhdmlvciBkb2VzIG5vdCBtYWtlIHNlbnNlIHdoZW4gd2Ug
Y2hhbmdlIHRoZSBjb2xvciB1c2luZyB0aGUgdG91Y2ggYmFyLgorICAgIENsYXNzIG9yaWdpbmFs
ID0gc2VsZi5zdXBlcmNsYXNzLnN1cGVyY2xhc3M7CisgICAgdm9pZCAoKiBpbXApKGlkLCBTRUws
IE5TQ29sb3IgKikgPSAodm9pZCAoKikoaWQsIFNFTCwgTlNDb2xvciAqKSljbGFzc19nZXRNZXRo
b2RJbXBsZW1lbnRhdGlvbihvcmlnaW5hbCwgQHNlbGVjdG9yKHNldENvbG9yOikpOworICAgIGlt
cChzZWxmLCBAc2VsZWN0b3Ioc2V0Q29sb3I6KSwgY29sb3IpOworfQorCiAtICh2b2lkKXNldFN1
Z2dlc3RlZENvbG9yczooTlNDb2xvckxpc3QgKilzdWdnZXN0ZWRDb2xvcnMKIHsKICAgICBfc3Vn
Z2VzdGVkQ29sb3JzID0gc3VnZ2VzdGVkQ29sb3JzOwpAQCAtMjQxLDYgKzI2NSwxOCBAQCB2b2lk
IFdlYkNvbG9yUGlja2VyTWFjOjpzaG93Q29sb3JQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29sb3Im
IGNvbG9yKQogICAgIF9sYXN0Q2hhbmdlZEJ5VXNlciA9IFlFUzsKIH0KIAorLSAoTlNDb2xvciAq
KWN1cnJlbnRDb2xvcgoreworICAgIHJldHVybiBbX3BvcG92ZXJXZWxsIGNvbG9yXTsKK30KKwor
LSAodm9pZClzZXRDb2xvckZyb21Ub3VjaEJhcjooY29uc3QgV2ViQ29yZTo6Q29sb3ImKWNvbG9y
Cit7CisgICAgX2xhc3RDaGFuZ2VkQnlVc2VyID0gWUVTOworICAgIF9waWNrZXItPmRpZENob29z
ZUNvbG9yKGNvbG9yKTsKKyAgICBbX3BvcG92ZXJXZWxsIHNldENvbG9yV2l0aG91dENsb3NlOm5z
Q29sb3IoY29sb3IpXTsKK30KKwogLSAodm9pZClpbnZhbGlkYXRlCiB7CiAgICAgW19wb3BvdmVy
V2VsbCByZW1vdmVGcm9tU3VwZXJ2aWV3V2l0aG91dE5lZWRpbmdEaXNwbGF5XTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggM2NjYTgyMTBiODc0
Y2ExNmQ0MTNlYTEwMDE2YjZlZGY2ODQ4YzZmZC4uOTAyM2FmZjdjZjdjNzYwZWE2OGMyZDA4Y2Jh
MzE3MGY3MGZhYzc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTUwMzgsNyArNTAzOCw4IEBAIHZvaWQgV2ViUGFnZTo6ZWxlbWVudERpZEZv
Y3VzKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCiAKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpTdGFydEFzc2lzdGluZ05vZGUoaW5mb3JtYXRpb24sIG1fdXNlcklzSW50ZXJhY3Rp
bmcsIG1faGFzUGVuZGluZ0JsdXJOb3RpZmljYXRpb24sIG1fY2hhbmdpbmdBY3Rpdml0eVN0YXRl
LCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5k
bGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKICNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICAg
ICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoV2ViQ29yZTo6SFRNTE5hbWVzOjpzZWxlY3RUYWcpKQor
ICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShXZWJDb3JlOjpIVE1MTmFtZXM6OnNlbGVjdFRh
ZykKKyAgICAgICAgICAgIHx8IChpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlKSAmJiBkb3duY2Fz
dDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSkuaXNDb2xvckNvbnRyb2woKSkpCiAgICAgICAgICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldEVkaXRhYmxlRWxlbWVudElzRm9jdXNl
ZChmYWxzZSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlNldEVkaXRhYmxlRWxlbWVudElzRm9jdXNlZCh0cnVlKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348688</attachid>
            <date>2018-08-31 17:25:16 -0700</date>
            <delta_ts>2021-11-01 12:51:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189214-20180831172516.patch</filename>
            <type>text/plain</type>
            <size>21870</size>
            <attacher name="Aditya Keerthi">pxlcoder</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBlNjk1Zjdh
NTk0OTkwYzQzZTBiZmI1NmRjODA2NjcwZjJmNmViNGJkLi5jYWFmOTVlMGMyMWMxNGQyYmYxNThm
MjVhNTkzZTU2MjhkZWM3Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxOC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW21hY09TXSBBZGQgVG91Y2ggQmFyIHN1cHBvcnQgZm9yIDxpbnB1dCB0eXBlPWNvbG9yPgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MjE0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2NvY29hL05TVG91Y2hCYXJTUEkuaDogQWRkIFNQSSBmb3IgTlNUb3VjaEJhckNvbG9yUGlja2Vy
LgorCiAyMDE4LTA4LTMwICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAK
ICAgICAgICAgW0NNYWtlXSBSZXBsYWNlIEFWRm91bmRhdGlvblN1cHBvcnQucHkgdXNpbmcgQ01h
a2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZmMwM2E1NjUxYzI2MGNhY2YwMDA5M2E5OWM1YTJhYzhmMGM3NTM0My4u
Y2M1YTE3OTJlZTcxNzUwYmM4Zjg2NzI4MGY4YTNkNTlhNmI4MTVmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NiBAQAorMjAxOC0wOC0zMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5j
b20+CisKKyAgICAgICAgW21hY09TXSBBZGQgVG91Y2ggQmFyIHN1cHBvcnQgZm9yIDxpbnB1dCB0
eXBlPWNvbG9yPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg5MjE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW4gb3JkZXIgdG8gaGF2ZSBhIGNvbXBsZXRlIDxpbnB1dCB0eXBlPWNvbG9yPiBleHBlcmll
bmNlIG9uIG1hY09TLCB3ZSBzaG91bGQKKyAgICAgICAgc3VwcG9ydCBkaXNwbGF5aW5nIGEgY29s
b3IgcGlja2VyIGluIHRoZSBUb3VjaCBCYXIuCisKKyAgICAgICAgVGhlIGNvbG9yIHRvdWNoIGJh
ciBpcyBjcmVhdGVkIGFuZCBvd25lZCBieSBXZWJWaWV3SW1wbCwgbWFuYWdlZCB0aHJvdWdoCisg
ICAgICAgIFdLQ29sb3JUb3VjaEJhck1hbmFnZXIuIFRoZSBtYW5hZ2VyIHByb3ZpZGVzIG1ldGhv
ZHMgdG8gdXBkYXRlIHRoZSB0b3VjaCBiYXIKKyAgICAgICAgaWYgdGhlIGZvcm0gY29udHJvbCBp
cyBjaGFuZ2VkIGFuZCB0byB1cGRhdGUgdGhlIGZvcm0gY29udHJvbCBpZiB0aGUgdG91Y2gKKyAg
ICAgICAgYmFyIHZhbHVlIGlzIGNoYW5nZWQuCisKKyAgICAgICAgRnVydGhlcm1vcmUsIHdlIG11
c3Qgc3luY2hyb25pemUgdGhlIHZhbHVlIG9mIHRoZSBjb2xvciB0b3VjaCBiYXIgd2l0aCB0aGUg
dmFsdWUKKyAgICAgICAgb2YgV2ViQ29sb3JQaWNrZXIuIFRoaXMgaXMgZG9uZSB0aHJvdWdoIGNv
bW11bmljYXRpb24gYmV0d2VlbiBXZWJWaWV3SW1wbCwKKyAgICAgICAgUGFnZUNsaWVudEltcGwg
YW5kIFdlYlBhZ2VQcm94eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAg
KC1bV0tDb2xvclRvdWNoQmFyTWFuYWdlciBpbml0V2l0aFdlYlZpZXdJbXBsOl0pOgorICAgICAg
ICAoLVtXS0NvbG9yVG91Y2hCYXJNYW5hZ2VyIHRvdWNoQmFyXSk6CisgICAgICAgICgtW1dLQ29s
b3JUb3VjaEJhck1hbmFnZXIgdXBkYXRlQ29sb3I6XSk6CisgICAgICAgICgtW1dLQ29sb3JUb3Vj
aEJhck1hbmFnZXIgY29sb3JQaWNrZXJWaWV3Q29udHJvbGxlcjpkaWRTZWxlY3RDb2xvcjpdKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVRvdWNoQmFyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbG9yVG91Y2hCYXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlQ29sb3JUb3VjaEJhckNvbG9yKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmNvbG9yVG91Y2hCYXIgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXI6OnNldENvbG9yRnJvbVRvdWNoQmFy
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXI6OmN1cnJlbnRDb2xvcik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvbG9yUGlja2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWN0aXZlQ29s
b3JQaWNrZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dDb2xv
clBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2hvb3NlQ29sb3Ip
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnVwZGF0
ZVRvdWNoQmFyKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnVwZGF0ZUNvbG9y
VG91Y2hCYXJDb2xvcik6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1h
Yy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpzZXRDb2xvckZyb21Ub3VjaEJhcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpjdXJyZW50Q29sb3IpOgorICAgICAg
ICAoLVtXS1BvcG92ZXJDb2xvcldlbGwgc2V0Q29sb3JXaXRob3V0Q2xvc2U6XSk6CisgICAgICAg
ICgtW1dLQ29sb3JQb3BvdmVyTWFjIGN1cnJlbnRDb2xvcl0pOgorICAgICAgICAoLVtXS0NvbG9y
UG9wb3Zlck1hYyBzZXRDb2xvckZyb21Ub3VjaEJhcjpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVsZW1lbnRE
aWRGb2N1cyk6CisKIDIwMTgtMDgtMzEgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5j
b20+CiAKICAgICAgICAgU3RvcmFnZSBBY2Nlc3MgQVBJOiBNYWludGFpbiBhY2Nlc3MgdGhyb3Vn
aCBzYW1lLXNpdGUgbmF2aWdhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL05TVG91Y2hCYXJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NvY29hL05TVG91Y2hCYXJTUEkuaAppbmRleCAyYWNhZWFhN2VhNzg2MTViYzMzOGMwYTkzZjIx
MDQ2YmNiYjVlOWRjLi5hOTdhYmM0N2NhZTE2NmY1MWU1OGI3YTVmYTBkMWVmMjY2NzMyOWQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU1RvdWNoQmFyU1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNUb3VjaEJhclNQSS5o
CkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbXBvcnQgPEFwcEtpdC9OU0NhbmRpZGF0ZUxpc3RUb3Vj
aEJhckl0ZW1fUHJpdmF0ZS5oPgogI2ltcG9ydCA8QXBwS2l0L05TVGV4dFRvdWNoQmFySXRlbUNv
bnRyb2xsZXJfV2ViS2l0U1BJLmg+CisjaW1wb3J0IDxBcHBLaXQvTlNUb3VjaEJhckNvbG9yUGlj
a2VyLmg+CiAjaW1wb3J0IDxBcHBLaXQvTlNUb3VjaEJhcl9Qcml2YXRlLmg+CiAKICNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCAxMDEzMDAKQEAgLTYyLDYgKzYzLDIxIEBAIE5T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCiAtICh2b2lkKXNldENhbmRpZGF0ZXM6KE5TQXJyYXkgKilj
YW5kaWRhdGVzIGZvclNlbGVjdGVkUmFuZ2U6KE5TUmFuZ2Upc2VsZWN0ZWRSYW5nZSBpblN0cmlu
ZzoobnVsbGFibGUgTlNTdHJpbmcgKilzdHJpbmcgcmVjdDooTlNSZWN0KXJlY3QgdmlldzoobnVs
bGFibGUgTlNWaWV3ICopdmlldyBjb21wbGV0aW9uSGFuZGxlcjoobnVsbGFibGUgdm9pZCAoXiko
aWQgYWNjZXB0ZWRDYW5kaWRhdGUpKWNvbXBsZXRpb25CbG9jazsKIEBlbmQKIAorQHByb3RvY29s
IE5TVG91Y2hCYXJDb2xvclBpY2tlclZpZXdDb250cm9sbGVyRGVsZWdhdGU7CisKK0BpbnRlcmZh
Y2UgTlNUb3VjaEJhckNvbG9yUGlja2VyVmlld0NvbnRyb2xsZXIgOiBOU1ZpZXdDb250cm9sbGVy
CisKK0Bwcm9wZXJ0eSAod2VhaykgaWQ8TlNUb3VjaEJhckNvbG9yUGlja2VyVmlld0NvbnRyb2xs
ZXJEZWxlZ2F0ZT4gZGVsZWdhdGU7CitAcHJvcGVydHkgKGNvcHkpIE5TQ29sb3IgKmN1cnJlbnRD
b2xvcjsKK0Bwcm9wZXJ0eSBCT09MIGFsbG93c0FscGhhOworCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhJbml0aWFsQ29sb3I6KE5TQ29sb3IgKilpbml0aWFsQ29sb3I7CitAZW5kCisKK0Bwcm90
b2NvbCBOU1RvdWNoQmFyQ29sb3JQaWNrZXJWaWV3Q29udHJvbGxlckRlbGVnYXRlIDxOU09iamVj
dD4KKy0gKHZvaWQpY29sb3JQaWNrZXJWaWV3Q29udHJvbGxlcjooTlNUb3VjaEJhckNvbG9yUGlj
a2VyVmlld0NvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZFNlbGVjdENvbG9yOihOU0NvbG9yICop
Y29sb3I7CitAZW5kCisKICNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogQVBQ
S0lUX0VYVEVSTiBOU05vdGlmaWNhdGlvbk5hbWUgY29uc3QgTlNUb3VjaEJhcldpbGxFbnRlckN1
c3RvbWl6YXRpb24gQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMikpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggZTU0ZGQwMDE0MDU4NGZjMWUx
OTE0OGEyMmU3OGZjMmZlMGIwOTc0Mi4uNGIxZWMyYzI2MjA2ZDBmYWU0NDczMjQyN2MxNjI0NDFi
NDg5NDdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5o
CkBAIC02Nyw2ICs2Nyw3IEBAIE9CSkNfQ0xBU1MgTlNUb3VjaEJhckl0ZW07CiBPQkpDX0NMQVNT
IE5TUG9wb3ZlclRvdWNoQmFySXRlbTsKIE9CSkNfQ0xBU1MgV0tUZXh0VG91Y2hCYXJJdGVtQ29u
dHJvbGxlcjsKIE9CSkNfQ0xBU1MgV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXI7CitPQkpDX0NM
QVNTIFdLQ29sb3JUb3VjaEJhck1hbmFnZXI7CiAjZW5kaWYgLy8gSEFWRShUT1VDSF9CQVIpCiAK
IG5hbWVzcGFjZSBBUEkgewpAQCAtNTUwLDYgKzU1MSwxMSBAQCBwdWJsaWM6CiAgICAgQVZGdW5j
dGlvbkJhclNjcnViYmVyICptZWRpYVBsYXliYWNrQ29udHJvbHNWaWV3KCkgY29uc3Q7CiAjZW5k
aWYKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQorICAgIE5TVG91Y2hCYXIg
KmNvbG9yVG91Y2hCYXIoKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUNvbG9yVG91Y2hCYXJDb2xv
cihjb25zdCBXZWJDb3JlOjpDb2xvciYpOworI2VuZGlmCisKICAgICBOU1RvdWNoQmFyICp0ZXh0
VG91Y2hCYXIoKSBjb25zdDsKICAgICB2b2lkIGRpc21pc3NUZXh0VG91Y2hCYXJQb3BvdmVySXRl
bVdpdGhJZGVudGlmaWVyKE5TU3RyaW5nICopOwogCkBAIC01NzQsNiArNTgwLDkgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldFVwVGV4dFRvdWNoQmFyKE5TVG91Y2hCYXIgKik7CiAgICAgdm9pZCB1
cGRhdGVUZXh0VG91Y2hCYXIoKTsKICAgICB2b2lkIHVwZGF0ZU1lZGlhVG91Y2hCYXIoKTsKKyNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICB2b2lkIHVwZGF0ZUNvbG9yVG91Y2hCYXIo
KTsKKyNlbmRpZgogCiAgICAgYm9vbCB1c2VNZWRpYVBsYXliYWNrQ29udHJvbHNWaWV3KCkgY29u
c3Q7CiAgICAgYm9vbCBpc1JpY2hseUVkaXRhYmxlKCkgY29uc3Q7CkBAIC01OTQsNiArNjAzLDkg
QEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TlNDYW5kaWRhdGVMaXN0VG91Y2hCYXJJdGVtPiBt
X3Bhc3N3b3JkVGV4dENhbmRpZGF0ZUxpc3RUb3VjaEJhckl0ZW07CiAgICAgUmV0YWluUHRyPFdl
YlBsYXliYWNrQ29udHJvbHNNYW5hZ2VyPiBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyOwogICAg
IFJldGFpblB0cjxOU0N1c3RvbVRvdWNoQmFySXRlbT4gbV9leGl0RnVsbFNjcmVlbkJ1dHRvbjsK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBSZXRhaW5QdHI8V0tDb2xvclRvdWNo
QmFyTWFuYWdlcj4gbV9jb2xvclRvdWNoQmFyTWFuYWdlcjsKKyNlbmRpZgogCiAjaWYgRU5BQkxF
KFdFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSKQogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tCmluZGV4IGRlNDhlMGY4YTg5NWViODJjMTdiNGY4NzUzYzYzZTE1MjE2ODhl
NWEuLmUxN2MyNzgyZDNmMzU0MGU4YWFjYmIwZThlODJjY2YwZjY4YmY3YzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC02Myw2ICs2Myw3IEBA
CiAjaW1wb3J0ICJXS1ZpZXdMYXlvdXRTdHJhdGVneS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3UHJp
dmF0ZS5oIgogI2ltcG9ydCAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCisjaW1wb3J0ICJXZWJDb2xv
clBpY2tlci5oIgogI2ltcG9ydCAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgogI2ltcG9ydCAiV2Vi
RXZlbnRGYWN0b3J5LmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JQcm94eS5oIgpAQCAtODc3LDYg
Kzg3OCw3MCBAQCBzdGF0aWMgY29uc3QgTlNVSW50ZWdlciBvcmRlcmVkTGlzdFNlZ21lbnQgPSAy
OwogCiBAZW5kCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKworc3RhdGljIE5TU3Ry
aW5nICogY29uc3QgV0tDb2xvclBpY2tlclRvdWNoQmFySXRlbSA9IEAiV0tDb2xvclBpY2tlclRv
dWNoQmFySXRlbSI7CisKK0BpbnRlcmZhY2UgV0tDb2xvclRvdWNoQmFyTWFuYWdlciA6IE5TT2Jq
ZWN0IDxOU1RvdWNoQmFyQ29sb3JQaWNrZXJWaWV3Q29udHJvbGxlckRlbGVnYXRlPiB7CitAcHJp
dmF0ZQorICAgIFdlYlZpZXdJbXBsKiBfd2ViVmlld0ltcGw7CisKKyAgICBSZXRhaW5QdHI8TlNU
b3VjaEJhckNvbG9yUGlja2VyVmlld0NvbnRyb2xsZXI+IF9jb250cm9sbGVyOworICAgIFJldGFp
blB0cjxOU0N1c3RvbVRvdWNoQmFySXRlbT4gX2l0ZW07CisgICAgUmV0YWluUHRyPE5TVG91Y2hC
YXI+IF90b3VjaEJhcjsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6
KFdlYlZpZXdJbXBsKil3ZWJWaWV3SW1wbDsKKy0gKE5TVG91Y2hCYXIgKil0b3VjaEJhcjsKKy0g
KHZvaWQpdXBkYXRlQ29sb3I6KE5TQ29sb3IgKiljb2xvcjsKK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIFdLQ29sb3JUb3VjaEJhck1hbmFnZXIKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2Vi
Vmlld0ltcGw6KFdlYlZpZXdJbXBsKil3ZWJWaWV3SW1wbAoreworICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3dlYlZpZXdJbXBsID0g
d2ViVmlld0ltcGw7CisKKyAgICBfY29udHJvbGxlciA9IGFkb3B0TlMoW1tOU1RvdWNoQmFyQ29s
b3JQaWNrZXJWaWV3Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhJbml0aWFsQ29sb3I6bnNDb2xv
cihfd2ViVmlld0ltcGwtPnBhZ2UoKS5hY3RpdmVDb2xvclBpY2tlcigpLT5jdXJyZW50Q29sb3Io
KSldKTsKKyAgICBbX2NvbnRyb2xsZXIgc2V0QWxsb3dzQWxwaGE6Tk9dOworICAgIFtfY29udHJv
bGxlciBzZXREZWxlZ2F0ZTpzZWxmXTsKKworICAgIF9pdGVtID0gYWRvcHROUyhbW05TQ3VzdG9t
VG91Y2hCYXJJdGVtIGFsbG9jXSBpbml0V2l0aElkZW50aWZpZXI6V0tDb2xvclBpY2tlclRvdWNo
QmFySXRlbV0pOworICAgIFtfaXRlbSBzZXRWaWV3Q29udHJvbGxlcjpfY29udHJvbGxlci5nZXQo
KV07CisKKyAgICBfdG91Y2hCYXIgPSBhZG9wdE5TKFtbTlNUb3VjaEJhciBhbGxvY10gaW5pdF0p
OworICAgIFtfdG91Y2hCYXIgc2V0RGVmYXVsdEl0ZW1JZGVudGlmaWVyczpAWyBXS0NvbG9yUGlj
a2VyVG91Y2hCYXJJdGVtIF1dOworICAgIFtfdG91Y2hCYXIgc2V0VGVtcGxhdGVJdGVtczpbTlNT
ZXQgc2V0V2l0aEFycmF5OkBbIF9pdGVtLmdldCgpIF1dXTsKKworICAgIHJldHVybiBzZWxmOwor
fQorCistIChOU1RvdWNoQmFyICopdG91Y2hCYXIKK3sKKyAgICByZXR1cm4gX3RvdWNoQmFyLmdl
dCgpOworfQorCistICh2b2lkKXVwZGF0ZUNvbG9yOihOU0NvbG9yICopY29sb3IKK3sKKyAgICBb
X2NvbnRyb2xsZXIgc2V0Q3VycmVudENvbG9yOmNvbG9yXTsKK30KKworLSAodm9pZCljb2xvclBp
Y2tlclZpZXdDb250cm9sbGVyOihOU1RvdWNoQmFyQ29sb3JQaWNrZXJWaWV3Q29udHJvbGxlciAq
KWNvbnRyb2xsZXIgZGlkU2VsZWN0Q29sb3I6KE5TQ29sb3IgKiljb2xvcgoreworICAgIFdlYkNv
bG9yUGlja2VyKiBjb2xvclBpY2tlciA9IF93ZWJWaWV3SW1wbC0+cGFnZSgpLmFjdGl2ZUNvbG9y
UGlja2VyKCk7CisgICAgaWYgKCFjb2xvclBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
Y29sb3JQaWNrZXItPnNldENvbG9yRnJvbVRvdWNoQmFyKGNvbG9yRnJvbU5TQ29sb3IoY29sb3Ip
KTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisKIEBp
bnRlcmZhY2UgV0tQcm9taXNlZEF0dGFjaG1lbnRDb250ZXh0IDogTlNPYmplY3QgewogQHByaXZh
dGUKICAgICBSZXRhaW5QdHI8TlNVUkw+IF9ibG9iVVJMOwpAQCAtOTYyLDYgKzEwMjcsMTIgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlVG91Y2hCYXIoKQogICAgICAgICBbbV9tZWRpYVBsYXli
YWNrQ29udHJvbHNWaWV3IHNldFBsYXliYWNrQ29udHJvbHNDb250cm9sbGVyOm5pbF07CiAgICAg
fQogI2VuZGlmCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisgICAgaWYgKG1fcGFnZS0+
YWN0aXZlQ29sb3JQaWNrZXIoKSkgeworICAgICAgICB1cGRhdGVDb2xvclRvdWNoQmFyKCk7Cisg
ICAgICAgIHRvdWNoQmFyID0gY29sb3JUb3VjaEJhcigpOworICAgIH0KKyNlbmRpZgogCiAgICAg
aWYgKHRvdWNoQmFyID09IG1fY3VycmVudFRvdWNoQmFyKQogICAgICAgICByZXR1cm47CkBAIC0x
MDA2LDYgKzEwNzcsMzAgQEAgYm9vbCBXZWJWaWV3SW1wbDo6dXNlTWVkaWFQbGF5YmFja0NvbnRy
b2xzVmlldygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50V2FudHNNZWRpYVBsYXliYWNrQ29u
dHJvbHNWaWV3OwogfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCisKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnVwZGF0ZUNvbG9yVG91Y2hCYXIoKQoreworICAgIGlmIChtX2NvbG9yVG91Y2hC
YXJNYW5hZ2VyKSB7CisgICAgICAgIFttX2NvbG9yVG91Y2hCYXJNYW5hZ2VyIHVwZGF0ZUNvbG9y
Om5zQ29sb3IobV9wYWdlLT5hY3RpdmVDb2xvclBpY2tlcigpLT5jdXJyZW50Q29sb3IoKSldOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9jb2xvclRvdWNoQmFyTWFuYWdlciA9IGFk
b3B0TlMoW1tXS0NvbG9yVG91Y2hCYXJNYW5hZ2VyIGFsbG9jXSBpbml0V2l0aFdlYlZpZXdJbXBs
OnRoaXNdKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlQ29sb3JUb3VjaEJhckNvbG9y
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBbbV9jb2xvclRvdWNoQmFyTWFu
YWdlciB1cGRhdGVDb2xvcjpuc0NvbG9yKGNvbG9yKV07Cit9CisKK05TVG91Y2hCYXIgKldlYlZp
ZXdJbXBsOjpjb2xvclRvdWNoQmFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gW21fY29sb3JUb3Vj
aEJhck1hbmFnZXIgdG91Y2hCYXJdOworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1IpCisKIHZvaWQgV2ViVmlld0ltcGw6OmRpc21pc3NUZXh0VG91Y2hCYXJQb3BvdmVySXRl
bVdpdGhJZGVudGlmaWVyKE5TU3RyaW5nICppZGVudGlmaWVyKQogewogICAgIE5TVG91Y2hCYXJJ
dGVtICpmb3VuZEl0ZW0gPSBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5k
ZXggYmIwOWQxZDZlNTJhYWY3NjgxM2FhZWNhMDljN2M0MTdiZmViYTJjOC4uOTkwYmVkNThkMmE4
MzcyYWYyM2Y4M2E3ZmVjMTE2NzRiYzllYjM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaApAQCAtMjY3LDYgKzI2NywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRv
bmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCB3YXNFdmVu
dEhhbmRsZWQpID0gMDsKICNlbmRpZgogCisjaWYgSEFWRShUT1VDSF9CQVIpCisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZVRvdWNoQmFyKCkgPSAwOworI2VuZGlmCisKICAgICB2aXJ0dWFsIFJlZlB0
cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5Jikg
PSAwOwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZpcnR1YWwgUmVmPFdlYkNvbnRl
eHRNZW51UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgQ29udGV4
dE1lbnVDb250ZXh0RGF0YSYmLCBjb25zdCBVc2VyRGF0YSYpID0gMDsKQEAgLTI3NCw2ICsyNzgs
OSBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICB2aXJ0dWFs
IFJlZlB0cjxXZWJDb2xvclBpY2tlcj4gY3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5Kiwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4mJikgPSAwOworI2lmIEhBVkUoVE9VQ0hfQkFSKQor
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb2xvclRvdWNoQmFyQ29sb3IoY29uc3QgV2ViQ29yZTo6
Q29sb3ImKSA9IDA7CisjZW5kaWYKICNlbmRpZgogCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1F
TlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5jcHAKaW5kZXggNjAy
NjNkNzRhN2MzYTY2ZjQ3ZDRkMzcyZjk1MGIyZTQ0NmI0M2U2NS4uZDlkZmNhNzJmYTEyNmJjY2Zi
YWZkOGIyYjhmYWM0OGJiYjJjZjFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQ29sb3JQaWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bG9yUGlja2VyLmNwcApAQCAtNjIsNiArNjIsMTcgQEAgdm9pZCBXZWJDb2xvclBpY2tlcjo6c2hv
d0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikKICAgICByZXR1cm47CiB9CiAKK3Zv
aWQgV2ViQ29sb3JQaWNrZXI6OnNldENvbG9yRnJvbVRvdWNoQmFyKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm47Cit9CisKK1dl
YkNvcmU6OkNvbG9yIFdlYkNvbG9yUGlja2VyOjpjdXJyZW50Q29sb3IoKQoreworICAgIHJldHVy
biBDb2xvcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQ29sb3JQaWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbG9yUGlja2Vy
LmgKaW5kZXggZGYwYmU1Y2RiZDZhMzMzMzQ1ZWFmZGMxOTkwN2U4ZjY2ZTcwMTc0MS4uZWVhNzUw
NTMxNzAxZGE3NjJiYWU4ZWIwNjg3MjM0YjAzNzA3MjYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29sb3JQaWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb2xvclBpY2tlci5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZW5kUGlja2VyKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3Io
Y29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbG9yUGlja2Vy
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdmlydHVhbCB2b2lkIHNldENvbG9yRnJvbVRv
dWNoQmFyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdmlydHVhbCBXZWJDb3JlOjpDb2xv
ciBjdXJyZW50Q29sb3IoKTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFdlYkNvbG9yUGlj
a2VyKENsaWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggZTI4MzEwYmE2MGE5MjgzMzdhMDhmNzY5M2Q4ZWRjOTE1NmViYTQzNi4uYzMzODAzNzI2ZDli
NGU5NzJhMTJkOTU3YjUwZGU4Y2E2MDM3YWQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC00NzE0LDEwICs0NzE0LDE5IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogfQogCiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCisKK1dlYkNvbG9yUGlja2VyKiBXZWJQYWdlUHJveHk6OmFj
dGl2ZUNvbG9yUGlja2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb2xvclBpY2tlci5nZXQo
KTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJbnRSZWN0JiBlbGVtZW50UmVjdCwgVmVjdG9y
PFdlYkNvcmU6OkNvbG9yPiYmIHN1Z2dlc3Rpb25zKQogewogICAgIG1fY29sb3JQaWNrZXIgPSBt
X3BhZ2VDbGllbnQuY3JlYXRlQ29sb3JQaWNrZXIodGhpcywgaW5pdGlhbENvbG9yLCBlbGVtZW50
UmVjdCwgV1RGTW92ZShzdWdnZXN0aW9ucykpOwogICAgIG1fY29sb3JQaWNrZXItPnNob3dDb2xv
clBpY2tlcihpbml0aWFsQ29sb3IpOworI2lmIEhBVkUoVE9VQ0hfQkFSKQorICAgIG1fcGFnZUNs
aWVudC51cGRhdGVUb3VjaEJhcigpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXRDb2xvclBpY2tlckNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKQEAgLTQ3NDAs
NiArNDc0OSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJD
b3JlOjpDb2xvciYgY29sb3IpCiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsK
IAorI2lmIEhBVkUoVE9VQ0hfQkFSKQorICAgIG1fcGFnZUNsaWVudC51cGRhdGVDb2xvclRvdWNo
QmFyQ29sb3IoY29sb3IpOworI2VuZGlmCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEaWRDaG9vc2VDb2xvcihjb2xvciksIG1fcGFnZUlEKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0NTI4MTRiYzI1ZmQyZGQwMDliMGRjZGIx
ZWJkMmZmZTU0NTFkMThlLi40MTlhN2U3NzAwYzcxZDkxZjlhODdiMTY1MTA0MjQyYTY1ZjUwZGIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTEwMSw2ICsxMTAx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKGNvbnN0
IFN0cmluZyYgbWVzc2FnZU5hbWUsIEFQSTo6T2JqZWN0KiBtZXNzYWdlQm9keSk7CiAKICNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKKyAgICBXZWJDb2xvclBpY2tlciogYWN0aXZlQ29sb3JQ
aWNrZXIoKSBjb25zdDsKICAgICB2b2lkIHNldENvbG9yUGlja2VyQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKTsKICAgICB2b2lkIGVuZENvbG9yUGlja2VyKCk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggYzUzOGI1
YmNmNjEzZmQyY2M4NWM5ZDcwNjM0ZTQ0OTdiM2ExYmNiZi4uNTY2YmYwNTNhMThmYWE1MjVhYzhl
Y2UyMTY5NTk3Njc4MWUxZDM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTEyMyw2ICsxMjMsMTAgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9v
bCB3YXNFdmVudEhhbmRsZWQpIG92ZXJyaWRlOwogCisjaWYgSEFWRShUT1VDSF9CQVIpCisgICAg
dm9pZCB1cGRhdGVUb3VjaEJhcigpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBSZWZQdHI8V2Vi
UG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJy
aWRlOwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIFJlZjxXZWJDb250ZXh0TWVudVBy
b3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIENvbnRleHRNZW51Q29u
dGV4dERhdGEmJiwgY29uc3QgVXNlckRhdGEmKSBvdmVycmlkZTsKQEAgLTEzMCw2ICsxMzQsOSBA
QCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAgUmVmUHRyPFdl
YkNvbG9yUGlja2VyPiBjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJD
b3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgVmVjdG9y
PFdlYkNvcmU6OkNvbG9yPiYmKSBvdmVycmlkZTsKKyNpZiBIQVZFKFRPVUNIX0JBUikKKyAgICB2
b2lkIHVwZGF0ZUNvbG9yVG91Y2hCYXJDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJy
aWRlOworI2VuZGlmCiAjZW5kaWYKIAogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4
IDhjMjNiMjhiODIwYjViZTFlNzQxYjMxN2UzZDIwOWZmYTgxNjFkMGMuLjllODUwMGMxOGRkZTVi
NGQ3YTMyZTdjNzJlMjNlYTg0ODhmOWIzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAgLTQ0OSw2ICs0NDksMTMgQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50JiBldmVudCwgYm9vbAogICAgIG1faW1wbC0+ZG9uZVdpdGhLZXlFdmVudChldmVudC5uYXRp
dmVFdmVudCgpLCBldmVudFdhc0hhbmRsZWQpOwogfQogCisjaWYgSEFWRShUT1VDSF9CQVIpCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjp1cGRhdGVUb3VjaEJhcigpCit7CisgICAgbV9pbXBsLT51cGRh
dGVUb3VjaEJhcigpOworfQorI2VuZGlmCisKIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFn
ZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKIHsK
ICAgICByZXR1cm4gV2ViUG9wdXBNZW51UHJveHlNYWM6OmNyZWF0ZShtX3ZpZXcsIHBhZ2UpOwpA
QCAtNDY2LDcgKzQ3MywxNCBAQCBSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IFBhZ2VDbGllbnRJbXBs
OjpjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbgogewogICAgIHJldHVy
biBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKHBhZ2UsIGluaXRpYWxDb2xvciwgcmVjdCwgV1RG
TW92ZShzdWdnZXN0aW9ucyksIG1fdmlldyk7CiB9Ci0jZW5kaWYKKworI2lmIEhBVkUoVE9VQ0hf
QkFSKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQ29sb3JUb3VjaEJhckNvbG9yKGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBtX2ltcGwtPnVwZGF0ZUNvbG9yVG91Y2hC
YXJDb2xvcihjb2xvcik7Cit9CisjZW5kaWYgLy8gSEFWRShUT1VDSF9CQVIpCisjZW5kaWYgLy8g
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkK
IFJlZlB0cjxXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24+IFBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24oV2ViUGFnZVByb3h5JiBwYWdlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAppbmRleCA1
NGFmMDYzN2U2MGZjZmZlZDZlZjNmMTFlZTQxYzg5ODI5OTZmNzFlLi43OWYzMjRkNjE1NTVlZTA2
YWFiY2U5NGMwNGQzODJmNzViODQzZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaApAQCAtNTMsNiArNTMsOCBAQCBjbGFzcyBXZWJDb2xv
clBpY2tlck1hYzsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKIC0gKHZvaWQpc2V0Q29sb3I6KE5TQ29s
b3IgKiljb2xvcjsKIC0gKHZvaWQpZGlkQ2hvb3NlQ29sb3I6KGlkKXNlbmRlcjsKKy0gKHZvaWQp
c2V0Q29sb3JGcm9tVG91Y2hCYXI6KGNvbnN0IFdlYkNvcmU6OkNvbG9yJiljb2xvcjsKKy0gKE5T
Q29sb3IgKiljdXJyZW50Q29sb3I7CiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjUs
NiArNjcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmRQaWNrZXIoKSBvdmVycmlkZTsKICAgICB2
b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKICAg
ICB2b2lkIHNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgc2V0Q29sb3JGcm9tVG91Y2hCYXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVy
cmlkZTsKKyAgICBXZWJDb3JlOjpDb2xvciBjdXJyZW50Q29sb3IoKSBvdmVycmlkZTsKICAgICAK
ICAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQppbmRleCAz
NGEzNjBiOTFlZjkzZDNlYjM3Y2IyMzExOTMzOTZhMzQwNzYwYjIwLi42ZWI2ZjQyMzA3NDFjNzQz
NWM5ZWM1ODUyNDQyZGRhMTFhMTQ3YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCkBAIC0zOCw2ICszOCw3IEBACiAKICNpbXBvcnQg
PFdlYkNvcmUvQ29sb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29sb3JNYWMuaD4KKyNpbXBvcnQg
PG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNDb2xvcldlbGxTUEkuaD4K
ICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TUG9wb3ZlckNvbG9yV2VsbFNQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNQb3BvdmVyU1BJLmg+CkBAIC02Myw2ICs2NCw3IEBAIHN0YXRpYyBjb25z
dCBDR0Zsb2F0IGNvbG9yUGlja2VyTWF0cml4U3dhdGNoV2lkdGggPSAxMi4wOwogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgd2VhaykgaWQ8V0tQb3BvdmVyQ29sb3JXZWxsRGVsZWdhdGU+IHdlYkRl
bGVnYXRlOwogCistICh2b2lkKXNldENvbG9yV2l0aG91dENsb3NlOihOU0NvbG9yICopY29sb3I7
CiAtICh2b2lkKXNldFN1Z2dlc3RlZENvbG9yczooTlNDb2xvckxpc3QgKilzdWdnZXN0ZWRDb2xv
cnM7CiBAZW5kCiAKQEAgLTEyOCw2ICsxMzAsMTkgQEAgdm9pZCBXZWJDb2xvclBpY2tlck1hYzo6
c2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKICAgICBbbV9jb2xv
clBpY2tlclVJIHNldEFuZFNob3dQaWNrZXI6dGhpcyB3aXRoQ29sb3I6bnNDb2xvcihjb2xvcikg
c3VnZ2VzdGlvbnM6V1RGTW92ZShtX3N1Z2dlc3Rpb25zKV07CiB9CiAKK3ZvaWQgV2ViQ29sb3JQ
aWNrZXJNYWM6OnNldENvbG9yRnJvbVRvdWNoQmFyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xv
cikKK3sKKyAgICBbbV9jb2xvclBpY2tlclVJIHNldENvbG9yRnJvbVRvdWNoQmFyOmNvbG9yXTsK
K30KKworV2ViQ29yZTo6Q29sb3IgV2ViQ29sb3JQaWNrZXJNYWM6OmN1cnJlbnRDb2xvcigpCit7
CisgICAgaWYgKCFtX2NvbG9yUGlja2VyVUkpCisgICAgICAgIHJldHVybiBDb2xvcigpOworCisg
ICAgcmV0dXJuIFdlYkNvcmU6OmNvbG9yRnJvbU5TQ29sb3IoW21fY29sb3JQaWNrZXJVSSBjdXJy
ZW50Q29sb3JdKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKIEBpbXBsZW1lbnRhdGlv
biBXS1BvcG92ZXJDb2xvcldlbGwKQEAgLTE5NCw2ICsyMDksMTUgQEAgdm9pZCBXZWJDb2xvclBp
Y2tlck1hYzo6c2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKICAg
ICByZXR1cm4gbmlsOwogfQogCistICh2b2lkKXNldENvbG9yV2l0aG91dENsb3NlOihOU0NvbG9y
ICopY29sb3IKK3sKKyAgICAvLyBUaGUgZGVmYXVsdCBiZWhhdmlvciBvZiBOU1BvcG92ZXJDb2xv
cldlbGwgaXMgdG8gY2xvc2UgdGhlIHBvcG92ZXIgd2hlbiB0aGUgY29sb3IgaXMgY2hhbmdlZC4K
KyAgICAvLyBUaGUgZGVmYXVsdCBiZWhhdmlvciBkb2VzIG5vdCBtYWtlIHNlbnNlIHdoZW4gd2Ug
Y2hhbmdlIHRoZSBjb2xvciB1c2luZyB0aGUgdG91Y2ggYmFyLgorICAgIENsYXNzIG9yaWdpbmFs
ID0gc2VsZi5zdXBlcmNsYXNzLnN1cGVyY2xhc3M7CisgICAgdm9pZCAoKiBpbXApKGlkLCBTRUws
IE5TQ29sb3IgKikgPSAodm9pZCAoKikoaWQsIFNFTCwgTlNDb2xvciAqKSljbGFzc19nZXRNZXRo
b2RJbXBsZW1lbnRhdGlvbihvcmlnaW5hbCwgQHNlbGVjdG9yKHNldENvbG9yOikpOworICAgIGlt
cChzZWxmLCBAc2VsZWN0b3Ioc2V0Q29sb3I6KSwgY29sb3IpOworfQorCiAtICh2b2lkKXNldFN1
Z2dlc3RlZENvbG9yczooTlNDb2xvckxpc3QgKilzdWdnZXN0ZWRDb2xvcnMKIHsKICAgICBfc3Vn
Z2VzdGVkQ29sb3JzID0gc3VnZ2VzdGVkQ29sb3JzOwpAQCAtMjQxLDYgKzI2NSwxOCBAQCB2b2lk
IFdlYkNvbG9yUGlja2VyTWFjOjpzaG93Q29sb3JQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29sb3Im
IGNvbG9yKQogICAgIF9sYXN0Q2hhbmdlZEJ5VXNlciA9IFlFUzsKIH0KIAorLSAoTlNDb2xvciAq
KWN1cnJlbnRDb2xvcgoreworICAgIHJldHVybiBbX3BvcG92ZXJXZWxsIGNvbG9yXTsKK30KKwor
LSAodm9pZClzZXRDb2xvckZyb21Ub3VjaEJhcjooY29uc3QgV2ViQ29yZTo6Q29sb3ImKWNvbG9y
Cit7CisgICAgX2xhc3RDaGFuZ2VkQnlVc2VyID0gWUVTOworICAgIF9waWNrZXItPmRpZENob29z
ZUNvbG9yKGNvbG9yKTsKKyAgICBbX3BvcG92ZXJXZWxsIHNldENvbG9yV2l0aG91dENsb3NlOm5z
Q29sb3IoY29sb3IpXTsKK30KKwogLSAodm9pZClpbnZhbGlkYXRlCiB7CiAgICAgW19wb3BvdmVy
V2VsbCByZW1vdmVGcm9tU3VwZXJ2aWV3V2l0aG91dE5lZWRpbmdEaXNwbGF5XTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggM2NjYTgyMTBiODc0
Y2ExNmQ0MTNlYTEwMDE2YjZlZGY2ODQ4YzZmZC4uYzEyM2RkNGMwNWE1MmFlZTQ4ZjczYzAyNzIz
NThiNDFiZmZiNGNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTUwMzgsMTAgKzUwMzgsMTEgQEAgdm9pZCBXZWJQYWdlOjplbGVtZW50RGlk
Rm9jdXMoV2ViQ29yZTo6Tm9kZSogbm9kZSkKIAogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlN0YXJ0QXNzaXN0aW5nTm9kZShpbmZvcm1hdGlvbiwgbV91c2VySXNJbnRlcmFj
dGluZywgbV9oYXNQZW5kaW5nQmx1ck5vdGlmaWNhdGlvbiwgbV9jaGFuZ2luZ0FjdGl2aXR5U3Rh
dGUsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hh
bmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkpOwogI2VsaWYgUExBVEZPUk0oTUFDKQotICAg
ICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShXZWJDb3JlOjpIVE1MTmFtZXM6OnNlbGVjdFRhZykp
Ci0gICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldEVkaXRhYmxlRWxl
bWVudElzRm9jdXNlZChmYWxzZSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldEVkaXRhYmxlRWxlbWVudElzRm9jdXNlZCh0cnVlKSk7
CisgICAgICAgIGJvb2wgc2hvdWxkU2VuZEVkaXRhYmxlRWxlbWVudElzRm9jdXNlZCA9ICFub2Rl
LT5oYXNUYWdOYW1lKFdlYkNvcmU6OkhUTUxOYW1lczo6c2VsZWN0VGFnKTsKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKKyAgICAgICAgc2hvdWxkU2VuZEVkaXRhYmxlRWxlbWVudElzRm9j
dXNlZCAmPSAhKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpICYmIGRvd25jYXN0PEhUTUxJbnB1
dEVsZW1lbnQ+KCpub2RlKS5pc0NvbG9yQ29udHJvbCgpKTsKKyNlbmRpZgorICAgICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldEVkaXRhYmxlRWxlbWVudElzRm9jdXNlZChzaG91
bGRTZW5kRWRpdGFibGVFbGVtZW50SXNGb2N1c2VkKSk7CiAjZW5kaWYKICAgICAgICAgbV9oYXNQ
ZW5kaW5nQmx1ck5vdGlmaWNhdGlvbiA9IGZhbHNlOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>