<?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>232708</bug_id>
          
          <creation_ts>2021-11-04 03:48:02 -0700</creation_ts>
          <short_desc>[GTK][a11y] Add implementation of hypertext interface when building with ATSPI</short_desc>
          <delta_ts>2021-11-19 05:36:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>232622</dependson>
    
    <dependson>232707</dependson>
          <blocked>230253</blocked>
    
    <blocked>232749</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>aperez</cc>
    
    <cc>apinheiro</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1811815</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-04 03:48:02 -0700</bug_when>
    <thetext>Implement hypertext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811836</commentid>
    <comment_count>1</comment_count>
      <attachid>443299</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-04 06:03:47 -0700</bug_when>
    <thetext>Created attachment 443299
Patch

This won&apos;t apply because it depends on other bugs not fixed yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816785</commentid>
    <comment_count>2</comment_count>
      <attachid>444792</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-19 01:43:14 -0800</bug_when>
    <thetext>Created attachment 444792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816816</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-11-19 05:36:06 -0800</bug_when>
    <thetext>Committed r286055 (244442@main): &lt;https://commits.webkit.org/244442@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443299</attachid>
            <date>2021-11-04 06:03:47 -0700</date>
            <delta_ts>2021-11-19 01:43:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-atspi-hypertext.diff</filename>
            <type>text/plain</type>
            <size>21769</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1NzU3MjY2N2M4M2UuLjk5MGU5OWMzNWIzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI4IEBACisyMDIxLTExLTA0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVthMTF5XSBBZGQgaW1wbGVtZW50YXRpb24gb2Yg
aHlwZXJ0ZXh0IGludGVyZmFjZSB3aGVuIGJ1aWxkaW5nIHdpdGggQVRTUEkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjcwOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlc0dUSy50eHQ6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUF0c3BpOjp1bnJlZ2lzdGVyT2JqZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBdHNwaTo6cmVnaXN0ZXJIeXBlcmxpbmspOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmg6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjppbnRlcmZhY2VzRm9y
T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6cGF0
aCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6Omh5cGVybGlu
a1JlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6
OmJ1aWxkSW50ZXJmYWNlcyBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0c3Bp
L0FjY2Vzc2liaWxpdHlPYmplY3RIeXBlcnRleHRBdHNwaS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpoeXBlcmxpbmtDb3VudCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6Omh5cGVybGluayBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6Omh5cGVy
bGlua0luZGV4IGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2li
aWxpdHlPYmplY3RUZXh0QXRzcGkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdEF0c3BpOjpjaGFyYWN0ZXJJbmRleCBjb25zdCk6CisKIDIwMjEtMTEtMDQgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW2Ex
MXldIEFkZCBpbXBsZW1lbnRhdGlvbiBvZiBoeXBlcmxpbmsgaW50ZXJmYWNlIHdoZW4gYnVpbGRp
bmcgd2l0aCBBVFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAppbmRleCAxODg0NWNjMDIxN2MuLjZlNDQx
NGQ1ODAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQKQEAgLTQzLDYgKzQzLDcgQEAgYWNjZXNzaWJp
bGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuY3BwCiBhY2Nlc3NpYmlsaXR5L2F0c3BpL0Fj
Y2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAKIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJp
bGl0eU9iamVjdENvbXBvbmVudEF0c3BpLmNwcAogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SHlwZXJsaW5rQXRzcGkuY3BwCithY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vz
c2liaWxpdHlPYmplY3RIeXBlcnRleHRBdHNwaS5jcHAKIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNj
ZXNzaWJpbGl0eU9iamVjdFRleHRBdHNwaS5jcHAKIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNz
aWJpbGl0eU9iamVjdFZhbHVlQXRzcGkuY3BwCiBhY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2li
aWxpdHlSb290QXRzcGkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5jcHAKaW5kZXggNDA0MWZiYzlmYTAyLi5l
NDkxMTM1NTNhOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRz
cGkvQWNjZXNzaWJpbGl0eUF0c3BpLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5jcHAKQEAgLTEzNSw2ICsxMzUsMTIgQEAgdm9p
ZCBBY2Nlc3NpYmlsaXR5QXRzcGk6OnVucmVnaXN0ZXJPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVj
dEF0c3BpJiBhdHNwaU9iamVjdCkKICAgICAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAg
ICAgICByZXR1cm47CiAKKyAgICAgICAgaWYgKG1fYXRzcGlIeXBlcmxpbmtzLmNvbnRhaW5zKGF0
c3BpT2JqZWN0LnB0cigpKSkgeworICAgICAgICAgICAgYXV0byByZWdpc3RlcmVkT2JqZWN0cyA9
IG1fYXRzcGlIeXBlcmxpbmtzLnRha2UoYXRzcGlPYmplY3QucHRyKCkpOworICAgICAgICAgICAg
Zm9yIChhdXRvIGlkIDogcmVnaXN0ZXJlZE9iamVjdHMpCisgICAgICAgICAgICAgICAgZ19kYnVz
X2Nvbm5lY3Rpb25fdW5yZWdpc3Rlcl9vYmplY3QobV9jb25uZWN0aW9uLmdldCgpLCBpZCk7Cisg
ICAgICAgIH0KKwogICAgICAgICBnX2RidXNfY29ubmVjdGlvbl9lbWl0X3NpZ25hbChtX2Nvbm5l
Y3Rpb24uZ2V0KCksIG51bGxwdHIsIGF0c3BpT2JqZWN0LT5wYXRoKCkudXRmOCgpLmRhdGEoKSwg
Im9yZy5hMTF5LmF0c3BpLkV2ZW50Lk9iamVjdCIsICJTdGF0ZUNoYW5nZWQiLAogICAgICAgICAg
ICAgZ192YXJpYW50X25ldygiKHNpaXZhe3N2fSkiLCAiZGVmdW5jdCIsIFRSVUUsIDAsIGdfdmFy
aWFudF9uZXdfc3RyaW5nKCIwIiksIG51bGxwdHIpLCBudWxscHRyKTsKIApAQCAtMTQ2LDYgKzE1
MiwyNCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlBdHNwaTo6dW5yZWdpc3Rlck9iamVjdChBY2Nlc3Np
YmlsaXR5T2JqZWN0QXRzcGkmIGF0c3BpT2JqZWN0KQogICAgIH0pOwogfQogCitTdHJpbmcgQWNj
ZXNzaWJpbGl0eUF0c3BpOjpyZWdpc3Rlckh5cGVybGluayhBY2Nlc3NpYmlsaXR5T2JqZWN0QXRz
cGkmIGF0c3BpT2JqZWN0LCBWZWN0b3I8c3RkOjpwYWlyPEdEQnVzSW50ZXJmYWNlSW5mbyosIEdE
QnVzSW50ZXJmYWNlVlRhYmxlKj4+JiYgaW50ZXJmYWNlcykKK3sKKyAgICBSRUxFQVNFX0FTU0VS
VCghaXNNYWluVGhyZWFkKCkpOworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1
cm4geyB9OworCisgICAgU3RyaW5nIHBhdGggPSBtYWtlU3RyaW5nKCIvb3JnL2ExMXkvYXRzcGkv
YWNjZXNzaWJsZS8iLCBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkucmVwbGFjZSgnLScsICdf
JykpOworICAgIFZlY3Rvcjx1bnNpZ25lZCwgMT4gcmVnaXN0ZXJlZE9iamVjdHM7CisgICAgcmVn
aXN0ZXJlZE9iamVjdHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShpbnRlcmZhY2VzLnNpemUoKSk7
CisgICAgZm9yIChjb25zdCBhdXRvJiBpbnRlcmZhY2UgOiBpbnRlcmZhY2VzKSB7CisgICAgICAg
IGF1dG8gaWQgPSBnX2RidXNfY29ubmVjdGlvbl9yZWdpc3Rlcl9vYmplY3QobV9jb25uZWN0aW9u
LmdldCgpLCBwYXRoLnV0ZjgoKS5kYXRhKCksIGludGVyZmFjZS5maXJzdCwgaW50ZXJmYWNlLnNl
Y29uZCwgJmF0c3BpT2JqZWN0LCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgcmVnaXN0ZXJl
ZE9iamVjdHMudW5jaGVja2VkQXBwZW5kKGlkKTsKKyAgICB9CisgICAgbV9hdHNwaUh5cGVybGlu
a3MuYWRkKCZhdHNwaU9iamVjdCwgV1RGTW92ZShyZWdpc3RlcmVkT2JqZWN0cykpOworCisgICAg
cmV0dXJuIHBhdGg7Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0eUF0c3BpOjpjaGlsZHJlbkNoYW5n
ZWQoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJiBhdHNwaU9iamVjdCwgQWNjZXNzaWJpbGl0eU9i
amVjdEF0c3BpJiBjaGlsZCwgQ2hpbGRyZW5DaGFuZ2VkIGNoYW5nZSkKIHsKICAgICBSRUxFQVNF
X0FTU0VSVChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuaAppbmRleCBlZDcyODgzZjYzZTYu
LjBmYzRjYTI5OWM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9h
dHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVucmVnaXN0ZXJSb290KEFjY2Vzc2liaWxpdHlSb290QXRzcGkmKTsKICAgICBT
dHJpbmcgcmVnaXN0ZXJPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJiwgVmVjdG9yPHN0
ZDo6cGFpcjxHREJ1c0ludGVyZmFjZUluZm8qLCBHREJ1c0ludGVyZmFjZVZUYWJsZSo+PiYmKTsK
ICAgICB2b2lkIHVucmVnaXN0ZXJPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJik7Cisg
ICAgU3RyaW5nIHJlZ2lzdGVySHlwZXJsaW5rKEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSYsIFZl
Y3RvcjxzdGQ6OnBhaXI8R0RCdXNJbnRlcmZhY2VJbmZvKiwgR0RCdXNJbnRlcmZhY2VWVGFibGUq
Pj4mJik7CiAKICAgICBlbnVtIGNsYXNzIENoaWxkcmVuQ2hhbmdlZCB7IEFkZGVkLCBSZW1vdmVk
IH07CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJiwg
QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJiwgQ2hpbGRyZW5DaGFuZ2VkKTsKQEAgLTc4LDYgKzc5
LDcgQEAgcHJpdmF0ZToKICAgICBHUmVmUHRyPEdEQnVzQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OwogICAgIEhhc2hNYXA8QWNjZXNzaWJpbGl0eVJvb3RBdHNwaSosIFZlY3Rvcjx1bnNpZ25lZCwg
Mj4+IG1fcm9vdE9iamVjdHM7CiAgICAgSGFzaE1hcDxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkq
LCBWZWN0b3I8dW5zaWduZWQsIDIwPj4gbV9hdHNwaU9iamVjdHM7CisgICAgSGFzaE1hcDxBY2Nl
c3NpYmlsaXR5T2JqZWN0QXRzcGkqLCBWZWN0b3I8dW5zaWduZWQsIDIwPj4gbV9hdHNwaUh5cGVy
bGlua3M7CiAgICAgdW5zaWduZWQgbV9jYWNoZUlEIHsgMCB9OwogICAgIEhhc2hNYXA8U3RyaW5n
LCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqPiBtX2NhY2hlOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3Bp
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9i
amVjdEF0c3BpLmNwcAppbmRleCA1NjRlNzkzYmZmM2IuLmMzODFiYTNjYjE1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0
QXRzcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNz
aWJpbGl0eU9iamVjdEF0c3BpLmNwcApAQCAtNjksNiArNjksNyBAQCBPcHRpb25TZXQ8QWNjZXNz
aWJpbGl0eU9iamVjdEF0c3BpOjpJbnRlcmZhY2U+IEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6
aW50ZXJmYQogICAgICAgICBpbnRlcmZhY2VzLmFkZChJbnRlcmZhY2U6OlRleHQpOwogICAgIGVs
c2UgaWYgKCFjb3JlT2JqZWN0LmlzV2ViQXJlYSgpKSB7CiAgICAgICAgIGlmIChjb3JlT2JqZWN0
LnJvbGVWYWx1ZSgpICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZSkgeworICAgICAgICAgICAg
aW50ZXJmYWNlcy5hZGQoSW50ZXJmYWNlOjpIeXBlcnRleHQpOwogICAgICAgICAgICAgaWYgKChy
ZW5kZXJlciAmJiByZW5kZXJlci0+Y2hpbGRyZW5JbmxpbmUoKSkgfHwgcm9sZUlzVGV4dFR5cGUo
Y29yZU9iamVjdC5yb2xlVmFsdWUoKSkgfHwgY29yZU9iamVjdC5pc01hdGhUb2tlbigpKQogICAg
ICAgICAgICAgICAgIGludGVyZmFjZXMuYWRkKEludGVyZmFjZTo6VGV4dCk7CiAgICAgICAgIH0K
QEAgLTQ4MCw2ICs0ODEsOCBAQCBjb25zdCBTdHJpbmcmIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNw
aTo6cGF0aCgpCiAgICAgICAgICAgICBpbnRlcmZhY2VzLmFwcGVuZCh7IGNvbnN0X2Nhc3Q8R0RC
dXNJbnRlcmZhY2VJbmZvKj4oJndlYmtpdF92YWx1ZV9pbnRlcmZhY2UpLCAmc192YWx1ZUZ1bmN0
aW9ucyB9KTsKICAgICAgICAgaWYgKG1faW50ZXJmYWNlcy5jb250YWlucyhJbnRlcmZhY2U6Okh5
cGVybGluaykpCiAgICAgICAgICAgICBpbnRlcmZhY2VzLmFwcGVuZCh7IGNvbnN0X2Nhc3Q8R0RC
dXNJbnRlcmZhY2VJbmZvKj4oJndlYmtpdF9oeXBlcmxpbmtfaW50ZXJmYWNlKSwgJnNfaHlwZXJs
aW5rRnVuY3Rpb25zIH0pOworICAgICAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5zKEludGVy
ZmFjZTo6SHlwZXJ0ZXh0KSkKKyAgICAgICAgICAgIGludGVyZmFjZXMuYXBwZW5kKHsgY29uc3Rf
Y2FzdDxHREJ1c0ludGVyZmFjZUluZm8qPigmd2Via2l0X2h5cGVydGV4dF9pbnRlcmZhY2UpLCAm
c19oeXBlcnRleHRGdW5jdGlvbnMgfSk7CiAgICAgICAgIG1fcGF0aCA9IGF0c3BpUm9vdC0+YXRz
cGkoKS5yZWdpc3Rlck9iamVjdCgqdGhpcywgV1RGTW92ZShpbnRlcmZhY2VzKSk7CiAgICAgfQog
CkBAIC00OTIsNiArNDk1LDE3IEBAIEdWYXJpYW50KiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6
OnJlZmVyZW5jZSgpCiAgICAgcmV0dXJuIGdfdmFyaWFudF9uZXcoIihzbykiLCByb290KCktPmF0
c3BpKCkudW5pcXVlTmFtZSgpLCBwYXRoKCkudXRmOCgpLmRhdGEoKSk7CiB9CiAKK0dWYXJpYW50
KiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6Omh5cGVybGlua1JlZmVyZW5jZSgpCit7CisgICAg
UkVMRUFTRV9BU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBpZiAobV9oeXBlcmxpbmtQYXRo
LmlzTnVsbCgpKSB7CisgICAgICAgIHBhdGgoKTsKKyAgICAgICAgbV9oeXBlcmxpbmtQYXRoID0g
cm9vdCgpLT5hdHNwaSgpLnJlZ2lzdGVySHlwZXJsaW5rKCp0aGlzLCB7IHsgY29uc3RfY2FzdDxH
REJ1c0ludGVyZmFjZUluZm8qPigmd2Via2l0X2h5cGVybGlua19pbnRlcmZhY2UpLCAmc19oeXBl
cmxpbmtGdW5jdGlvbnMgfSB9KTsKKyAgICB9CisKKyAgICByZXR1cm4gZ192YXJpYW50X25ldygi
KHNvKSIsIHJvb3QoKS0+YXRzcGkoKS51bmlxdWVOYW1lKCksIG1faHlwZXJsaW5rUGF0aC51dGY4
KCkuZGF0YSgpKTsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnNldFJvb3Qo
QWNjZXNzaWJpbGl0eVJvb3RBdHNwaSogcm9vdCkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgbV9y
b290TG9jayB9OwpAQCAtMTA5OSw2ICsxMTEzLDggQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0
QXRzcGk6OmJ1aWxkSW50ZXJmYWNlcyhHVmFyaWFudEJ1aWxkZXIqIGJ1aWxkZXIpIGNvbnN0CiAg
ICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZChidWlsZGVyLCAicyIsIHdlYmtpdF92YWx1ZV9p
bnRlcmZhY2UubmFtZSk7CiAgICAgaWYgKG1faW50ZXJmYWNlcy5jb250YWlucyhJbnRlcmZhY2U6
Okh5cGVybGluaykpCiAgICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZChidWlsZGVyLCAicyIs
IHdlYmtpdF9oeXBlcmxpbmtfaW50ZXJmYWNlLm5hbWUpOworICAgIGlmIChtX2ludGVyZmFjZXMu
Y29udGFpbnMoSW50ZXJmYWNlOjpIeXBlcnRleHQpKQorICAgICAgICBnX3ZhcmlhbnRfYnVpbGRl
cl9hZGQoYnVpbGRlciwgInMiLCB3ZWJraXRfaHlwZXJ0ZXh0X2ludGVyZmFjZS5uYW1lKTsKIH0K
IAogdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnNlcmlhbGl6ZShHVmFyaWFudEJ1aWxk
ZXIqIGJ1aWxkZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaAppbmRleCA4OTljNWVj
MjU0YTIuLjA3ZTY4MDJjYTE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5oCkBAIC00Nyw3
ICs0Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgQ29tcG9uZW50ID0gMSA8PCAxLAogICAgICAgICBU
ZXh0ID0gMSA8PCAyLAogICAgICAgICBWYWx1ZSA9IDEgPDwgMywKLSAgICAgICAgSHlwZXJsaW5r
ID0gMSA8PCA0CisgICAgICAgIEh5cGVybGluayA9IDEgPDwgNCwKKyAgICAgICAgSHlwZXJ0ZXh0
ID0gMSA8PCA1CiAgICAgfTsKICAgICBjb25zdCBPcHRpb25TZXQ8SW50ZXJmYWNlPiYgaW50ZXJm
YWNlcygpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJmYWNlczsgfQogCkBAIC02Niw2ICs2Nyw3IEBA
IHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYgcGF0aCgpOwogICAgIEdWYXJpYW50KiByZWZl
cmVuY2UoKTsKKyAgICBHVmFyaWFudCogaHlwZXJsaW5rUmVmZXJlbmNlKCk7CiAgICAgdm9pZCBz
ZXJpYWxpemUoR1ZhcmlhbnRCdWlsZGVyKikgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBT
dHJpbmcgaWQoKSBjb25zdDsKQEAgLTE0Myw2ICsxNDUsNyBAQCBwcml2YXRlOgogICAgIENTdHJp
bmcgdGV4dEF0T2Zmc2V0KGludCwgVGV4dEdyYW51bGFyaXR5LCBpbnQmLCBpbnQmKSBjb25zdDsK
ICAgICBpbnQgY2hhcmFjdGVyQXRPZmZzZXQoaW50KSBjb25zdDsKICAgICBzdGQ6Om9wdGlvbmFs
PHVuc2lnbmVkPiBjaGFyYWN0ZXJPZmZzZXQoVUNoYXIsIGludCkgY29uc3Q7CisgICAgc3RkOjpv
cHRpb25hbDx1bnNpZ25lZD4gY2hhcmFjdGVySW5kZXgoVUNoYXIsIHVuc2lnbmVkKSBjb25zdDsK
ICAgICBJbnRSZWN0IHRleHRFeHRlbnRzKGludCwgaW50LCB1aW50MzJfdCkgY29uc3Q7CiAgICAg
aW50IG9mZnNldEF0UG9pbnQoY29uc3QgSW50UG9pbnQmLCB1aW50MzJfdCkgY29uc3Q7CiAgICAg
SW50UG9pbnQgYm91bmRzRm9yU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSBjb25z
dDsKQEAgLTE1NCw2ICsxNTcsMTAgQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVkIG9mZnNldElu
UGFyZW50KCkgY29uc3Q7CiAKKyAgICB1bnNpZ25lZCBoeXBlcmxpbmtDb3VudCgpIGNvbnN0Owor
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSogaHlwZXJsaW5rKHVuc2lnbmVkKSBjb25zdDsK
KyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBoeXBlcmxpbmtJbmRleCh1bnNpZ25lZCkgY29u
c3Q7CisKICAgICBzdGF0aWMgT3B0aW9uU2V0PEludGVyZmFjZT4gaW50ZXJmYWNlc0Zvck9iamVj
dChBWENvcmVPYmplY3QmKTsKIAogICAgIHN0YXRpYyBHREJ1c0ludGVyZmFjZVZUYWJsZSBzX2Fj
Y2Vzc2libGVGdW5jdGlvbnM7CkBAIC0xNjEsNiArMTY4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgR0RCdXNJbnRlcmZhY2VWVGFibGUgc190ZXh0RnVuY3Rpb25zOwogICAgIHN0YXRpYyBHREJ1
c0ludGVyZmFjZVZUYWJsZSBzX3ZhbHVlRnVuY3Rpb25zOwogICAgIHN0YXRpYyBHREJ1c0ludGVy
ZmFjZVZUYWJsZSBzX2h5cGVybGlua0Z1bmN0aW9uczsKKyAgICBzdGF0aWMgR0RCdXNJbnRlcmZh
Y2VWVGFibGUgc19oeXBlcnRleHRGdW5jdGlvbnM7CiAKICAgICBBWENvcmVPYmplY3QqIG1fYXhP
YmplY3QgeyBudWxscHRyIH07CiAgICAgQVhDb3JlT2JqZWN0KiBtX2NvcmVPYmplY3QgeyBudWxs
cHRyIH07CkBAIC0xNjksNiArMTc3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPEFj
Y2Vzc2liaWxpdHlPYmplY3RBdHNwaSo+IG1fcGFyZW50OwogICAgIEF0b21pYzxib29sPiBtX2lz
UmVnaXN0ZXJlZCB7IGZhbHNlIH07CiAgICAgU3RyaW5nIG1fcGF0aDsKKyAgICBTdHJpbmcgbV9o
eXBlcmxpbmtQYXRoOwogICAgIG11dGFibGUgaW50IG1faW5kZXhJblBhcmVudCB7IC0xIH07CiAg
ICAgbXV0YWJsZSBMb2NrIG1fcm9vdExvY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0SHlwZXJ0ZXh0QXRzcGku
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SHlwZXJ0ZXh0QXRzcGkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uMDRmMGIzODZkYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0SHlwZXJ0ZXh0QXRzcGkuY3BwCkBA
IC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaCIK
KworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKSAmJiBVU0UoQVRTUEkpCisKKyNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5Um9vdEF0c3BpLmgiCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUg
PHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
R0RCdXNJbnRlcmZhY2VWVGFibGUgQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpzX2h5cGVydGV4
dEZ1bmN0aW9ucyA9IHsKKyAgICAvLyBtZXRob2RfY2FsbAorICAgIFtdKEdEQnVzQ29ubmVjdGlv
biosIGNvbnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqLCBjb25zdCBnY2hhciosIGNvbnN0IGdjaGFy
KiBtZXRob2ROYW1lLCBHVmFyaWFudCogcGFyYW1ldGVycywgR0RCdXNNZXRob2RJbnZvY2F0aW9u
KiBpbnZvY2F0aW9uLCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICBSRUxFQVNFX0FTU0VS
VCghaXNNYWluVGhyZWFkKCkpOworICAgICAgICBhdXRvIGF0c3BpT2JqZWN0ID0gUmVmIHsgKnN0
YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSo+KHVzZXJEYXRhKSB9OworICAgICAg
ICBhdHNwaU9iamVjdC0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CisKKyAgICAgICAgaWYgKCFnX3N0
cmNtcDAobWV0aG9kTmFtZSwgIkdldE5MaW5rcyIpKSB7CisgICAgICAgICAgICBnX2RidXNfbWV0
aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9jYXRpb24sIGdfdmFyaWFudF9uZXcoIihp
KSIsIGF0c3BpT2JqZWN0LT5oeXBlcmxpbmtDb3VudCgpKSk7CisgICAgICAgIH0gZWxzZSBpZiAo
IWdfc3RyY21wMChtZXRob2ROYW1lLCAiR2V0TGluayIpKSB7CisgICAgICAgICAgICBpbnQgaW5k
ZXg7CisgICAgICAgICAgICBnX3ZhcmlhbnRfZ2V0KHBhcmFtZXRlcnMsICIoaSkiLCAmaW5kZXgp
OworICAgICAgICAgICAgYXV0byogd3JhcHBlciA9IGluZGV4ID49IDAgPyBhdHNwaU9iamVjdC0+
aHlwZXJsaW5rKGluZGV4KSA6IG51bGxwdHI7CisgICAgICAgICAgICBnX2RidXNfbWV0aG9kX2lu
dm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9jYXRpb24sIGdfdmFyaWFudF9uZXcoIihAKHNvKSki
LCB3cmFwcGVyID8gd3JhcHBlci0+aHlwZXJsaW5rUmVmZXJlbmNlKCkgOiBhdHNwaU9iamVjdC0+
cm9vdCgpLT5hdHNwaSgpLm51bGxSZWZlcmVuY2UoKSkpOworICAgICAgICB9IGVsc2UgaWYgKCFn
X3N0cmNtcDAobWV0aG9kTmFtZSwgIkdldExpbmtJbmRleCIpKSB7CisgICAgICAgICAgICBpbnQg
b2Zmc2V0OworICAgICAgICAgICAgZ192YXJpYW50X2dldChwYXJhbWV0ZXJzLCAiKGkpIiwgJm9m
ZnNldCk7CisgICAgICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVl
KGludm9jYXRpb24sIGdfdmFyaWFudF9uZXcoIihpKSIsIG9mZnNldCA+PSAwID8gYXRzcGlPYmpl
Y3QtPmh5cGVybGlua0luZGV4KG9mZnNldCkudmFsdWVfb3IoLTEpIDogLTEpKTsKKyAgICAgICAg
fQorICAgIH0sCisgICAgLy8gZ2V0X3Byb3BlcnR5CisgICAgbnVsbHB0ciwKKyAgICAvLyBzZXRf
cHJvcGVydHksCisgICAgbnVsbHB0ciwKKyAgICAvLyBwYWRkaW5nCisgICAgbnVsbHB0cgorfTsK
KwordW5zaWduZWQgQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpoeXBlcmxpbmtDb3VudCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRo
cmVhZDx1bnNpZ25lZD4oW3RoaXNdKCkgLT4gdW5zaWduZWQgeworICAgICAgICBpZiAobV9jb3Jl
T2JqZWN0KQorICAgICAgICAgICAgbV9jb3JlT2JqZWN0LT51cGRhdGVCYWNraW5nU3RvcmUoKTsK
KworICAgICAgICBpZiAoIW1fY29yZU9iamVjdCkKKyAgICAgICAgICAgIHJldHVybiAwOworCisg
ICAgICAgIHVuc2lnbmVkIGxpbmtDb3VudCA9IDA7CisgICAgICAgIGNvbnN0IGF1dG8mIGNoaWxk
cmVuID0gbV9jb3JlT2JqZWN0LT5jaGlsZHJlbigpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IGNoaWxkIDogY2hpbGRyZW4pIHsKKyAgICAgICAgICAgIGlmIChjaGlsZC0+YWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBh
dXRvKiB3cmFwcGVyID0gY2hpbGQtPndyYXBwZXIoKTsKKyAgICAgICAgICAgIGlmICh3cmFwcGVy
ICYmIHdyYXBwZXItPmludGVyZmFjZXMoKS5jb250YWlucyhJbnRlcmZhY2U6Okh5cGVybGluaykp
CisgICAgICAgICAgICAgICAgbGlua0NvdW50Kys7CisgICAgICAgIH0KKworICAgICAgICByZXR1
cm4gbGlua0NvdW50OworICAgIH0pOworfQorCitBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqIEFj
Y2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6aHlwZXJsaW5rKHVuc2lnbmVkIGluZGV4KSBjb25zdAor
eworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8
QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpKj4oW3RoaXMsIGluZGV4XSgpIC0+IEFjY2Vzc2liaWxp
dHlPYmplY3RBdHNwaSogeworICAgICAgICBpZiAobV9jb3JlT2JqZWN0KQorICAgICAgICAgICAg
bV9jb3JlT2JqZWN0LT51cGRhdGVCYWNraW5nU3RvcmUoKTsKKworICAgICAgICBpZiAoIW1fY29y
ZU9iamVjdCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIGNvbnN0IGF1
dG8mIGNoaWxkcmVuID0gbV9jb3JlT2JqZWN0LT5jaGlsZHJlbigpOworICAgICAgICBpZiAoaW5k
ZXggPj0gY2hpbGRyZW4uc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICAgICAgaW50IGxpbmtJbmRleCA9IC0xOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxk
IDogY2hpbGRyZW4pIHsKKyAgICAgICAgICAgIGlmIChjaGlsZC0+YWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBhdXRvKiB3
cmFwcGVyID0gY2hpbGQtPndyYXBwZXIoKTsKKyAgICAgICAgICAgIGlmICghd3JhcHBlciB8fCAh
d3JhcHBlci0+aW50ZXJmYWNlcygpLmNvbnRhaW5zKEludGVyZmFjZTo6SHlwZXJsaW5rKSkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVu
c2lnbmVkPigrK2xpbmtJbmRleCkgPT0gaW5kZXgpIHsKKyAgICAgICAgICAgICAgICB3cmFwcGVy
LT5zZXRSb290KHJvb3QoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9KTsK
K30KKworc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpo
eXBlcmxpbmtJbmRleCh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNoYXJh
Y3RlckluZGV4KG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCBvZmZzZXQpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQUNDRVNTSUJJTElUWSkgJiYg
VVNFKEFUU1BJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNw
aS9BY2Nlc3NpYmlsaXR5T2JqZWN0VGV4dEF0c3BpLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdFRleHRBdHNwaS5jcHAKaW5kZXggNDJk
MTIxYjBkMjhhLi5iYzVlMDIxYmM0MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdFRleHRBdHNwaS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0VGV4dEF0
c3BpLmNwcApAQCAtNTA3LDYgKzUwNywzOCBAQCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBBY2Nl
c3NpYmlsaXR5T2JqZWN0QXRzcGk6OmNoYXJhY3Rlck9mZnNldChVQ2hhciBjaGFyYWN0ZQogICAg
IHJldHVybiBVVEYxNk9mZnNldFRvVVRGOChtYXBwaW5nLCBvZmZzZXQpOwogfQogCitzdGQ6Om9w
dGlvbmFsPHVuc2lnbmVkPiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OmNoYXJhY3RlckluZGV4
KFVDaGFyIGNoYXJhY3RlciwgdW5zaWduZWQgb2Zmc2V0KSBjb25zdAoreworICAgIGF1dG8gdXRm
MTZUZXh0ID0gdGV4dCgpOworICAgIGF1dG8gdXRmOFRleHQgPSB1dGYxNlRleHQudXRmOCgpOwor
ICAgIGlmICh1dGY4VGV4dC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIGF1dG8gbGVuZ3RoID0gZ191dGY4X3N0cmxlbih1dGY4VGV4dC5kYXRhKCksIC0xKTsK
KyAgICBpZiAob2Zmc2V0ID49IGxlbmd0aCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIGF1dG8gbWFwcGluZyA9IG9mZnNldE1hcHBpbmcodXRmMTZUZXh0KTsKKyAgICBhdXRv
IHV0ZjE2T2Zmc2V0ID0gVVRGOE9mZnNldFRvVVRGMTYobWFwcGluZywgb2Zmc2V0KTsKKyAgICBp
ZiAodXRmMTZUZXh0W3V0ZjE2T2Zmc2V0XSAhPSBjaGFyYWN0ZXIpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICB1bnNpZ25lZCBzdGFydCA9IDA7CisgICAgaW50IGluZGV4ID0g
LTE7CisgICAgc2l6ZV90IHBvc2l0aW9uOworICAgIHdoaWxlICgocG9zaXRpb24gPSB1dGYxNlRl
eHQuZmluZChjaGFyYWN0ZXIsIHN0YXJ0KSkgIT0gbm90Rm91bmQpIHsKKyAgICAgICAgaW5kZXgr
KzsKKyAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihwb3NpdGlvbikgPT0gdXRmMTZP
ZmZzZXQpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgc3RhcnQgPSBwb3NpdGlvbiArIDE7
CisgICAgfQorCisgICAgaWYgKGluZGV4ID09IC0xKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgcmV0dXJuIGluZGV4OworfQorCiBJbnRSZWN0IEFjY2Vzc2liaWxpdHlPYmpl
Y3RBdHNwaTo6Ym91bmRzRm9yUmFuZ2UodW5zaWduZWQgdXRmMTZPZmZzZXQsIHVuc2lnbmVkIGxl
bmd0aCwgdWludDMyX3QgY29vcmRpbmF0ZVR5cGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxJbnRSZWN0PihbdGhpcywgdXRm
MTZPZmZzZXQsIGxlbmd0aCwgY29vcmRpbmF0ZVR5cGVdKCkgLT4gSW50UmVjdCB7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTc2ODUzZjQyYWJh
Li44ODIyM2I2YmUyMzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMS0wNCAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bYTExeV0gQWRkIGltcGxl
bWVudGF0aW9uIG9mIGh5cGVydGV4dCBpbnRlcmZhY2Ugd2hlbiBidWlsZGluZyB3aXRoIEFUU1BJ
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI3MDgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdW5p
dCB0ZXN0cyB0byBjaGVjayBoeXBlcnRleHQgaW50ZXJmYWNlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwOgorICAg
ICAgICAodGVzdEh5cGVydGV4dEJhc2ljKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisKIDIwMjEt
MTEtMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdW2ExMXldIEFkZCBpbXBsZW1lbnRhdGlvbiBvZiBoeXBlcmxpbmsgaW50ZXJmYWNl
IHdoZW4gYnVpbGRpbmcgd2l0aCBBVFNQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwCmlu
ZGV4IDE4ZTA0Yjk4ZWMwYS4uNWRmMTc4ZTRkMDNiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxp
dHkuY3BwCkBAIC0xNzkwLDYgKzE3OTAsNTggQEAgc3RhdGljIHZvaWQgdGVzdEh5cGVybGlua0Jh
c2ljKEFjY2Vzc2liaWxpdHlUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0
X3RydWUoYXRzcGlfaHlwZXJsaW5rX2dldF9vYmplY3QoQVRTUElfSFlQRVJMSU5LKGxpbmsuZ2V0
KCkpLCAwLCBudWxscHRyKSA9PSBsaW5rMi5nZXQoKSk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RI
eXBlcnRleHRCYXNpYyhBY2Nlc3NpYmlsaXR5VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sK
KyAgICB0ZXN0LT5zaG93SW5XaW5kb3coODAwLCA2MDApOworICAgIHRlc3QtPmxvYWRIdG1sKAor
ICAgICAgICAiPGh0bWw+IgorICAgICAgICAiICA8Ym9keT4iCisgICAgICAgICIgICAgPHA+VGhp
cyBpcyA8YnV0dG9uPmJ1dHRvbjwvYnV0dG9uPiBhbmQgPGEgaHJlZj0naHR0cHM6Ly93d3cud2Vi
a2l0Z3RrLm9yZyc+bGluazwvYT4gaW4gYSBwYXJhZ3JhcGg8L3A+IgorICAgICAgICAiICA8L2Jv
ZHk+IgorICAgICAgICAiPC9odG1sPiIsCisgICAgICAgIG51bGxwdHIpOworICAgIHRlc3QtPndh
aXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgYXV0byB0ZXN0QXBwID0gdGVzdC0+ZmluZFRl
c3RBcHBsaWNhdGlvbigpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRSh0
ZXN0QXBwLmdldCgpKSk7CisKKyAgICBhdXRvIGRvY3VtZW50V2ViID0gdGVzdC0+ZmluZERvY3Vt
ZW50V2ViKHRlc3RBcHAuZ2V0KCkpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNT
SUJMRShkb2N1bWVudFdlYi5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nl
c3NpYmxlX2dldF9jaGlsZF9jb3VudChkb2N1bWVudFdlYi5nZXQoKSwgbnVsbHB0ciksID09LCAx
KTsKKworICAgIGF1dG8gcCA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9h
dF9pbmRleChkb2N1bWVudFdlYi5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3Ry
dWUoQVRTUElfSVNfSFlQRVJURVhUKHAuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRz
cGlfaHlwZXJ0ZXh0X2dldF9uX2xpbmtzKEFUU1BJX0hZUEVSVEVYVChwLmdldCgpKSwgbnVsbHB0
ciksID09LCAyKTsKKworICAgIGF1dG8gbGluayA9IGFkb3B0R1JlZihhdHNwaV9oeXBlcnRleHRf
Z2V0X2xpbmsoQVRTUElfSFlQRVJURVhUKHAuZ2V0KCkpLCAwLCBudWxscHRyKSk7CisgICAgZ19h
c3NlcnRfdHJ1ZShBVFNQSV9JU19IWVBFUkxJTksobGluay5nZXQoKSkpOworICAgIGdfYXNzZXJ0
X2NtcGludChhdHNwaV9oeXBlcmxpbmtfZ2V0X25fYW5jaG9ycyhBVFNQSV9IWVBFUkxJTksobGlu
ay5nZXQoKSksIG51bGxwdHIpLCA9PSwgMSk7CisgICAgZ19hc3NlcnRfdHJ1ZShhdHNwaV9oeXBl
cmxpbmtfaXNfdmFsaWQoQVRTUElfSFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCBudWxscHRyKSk7Cisg
ICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2h5cGVybGlua19nZXRfc3RhcnRfaW5kZXgoQVRTUElf
SFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCBudWxscHRyKSwgPT0sIDgpOworICAgIGdfYXNzZXJ0X2Nt
cGludChhdHNwaV9oeXBlcmxpbmtfZ2V0X2VuZF9pbmRleChBVFNQSV9IWVBFUkxJTksobGluay5n
ZXQoKSksIG51bGxwdHIpLCA9PSwgOSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiB1cmkoYXRzcGlf
aHlwZXJsaW5rX2dldF91cmkoQVRTUElfSFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCAwLCBudWxscHRy
KSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHVyaS5nZXQoKSwgPT0sICIiKTsKKyAgICBhdXRvIGJ1
dHRvbiA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChwLmdl
dCgpLCAwLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShhdHNwaV9oeXBlcmxpbmtfZ2V0
X29iamVjdChBVFNQSV9IWVBFUkxJTksobGluay5nZXQoKSksIDAsIG51bGxwdHIpID09IGJ1dHRv
bi5nZXQoKSk7CisKKyAgICBsaW5rID0gYWRvcHRHUmVmKGF0c3BpX2h5cGVydGV4dF9nZXRfbGlu
ayhBVFNQSV9IWVBFUlRFWFQocC5nZXQoKSksIDEsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90
cnVlKEFUU1BJX0lTX0hZUEVSTElOSyhsaW5rLmdldCgpKSk7CisgICAgZ19hc3NlcnRfY21waW50
KGF0c3BpX2h5cGVybGlua19nZXRfbl9hbmNob3JzKEFUU1BJX0hZUEVSTElOSyhsaW5rLmdldCgp
KSwgbnVsbHB0ciksID09LCAxKTsKKyAgICBnX2Fzc2VydF90cnVlKGF0c3BpX2h5cGVybGlua19p
c192YWxpZChBVFNQSV9IWVBFUkxJTksobGluay5nZXQoKSksIG51bGxwdHIpKTsKKyAgICBnX2Fz
c2VydF9jbXBpbnQoYXRzcGlfaHlwZXJsaW5rX2dldF9zdGFydF9pbmRleChBVFNQSV9IWVBFUkxJ
TksobGluay5nZXQoKSksIG51bGxwdHIpLCA9PSwgMTQpOworICAgIGdfYXNzZXJ0X2NtcGludChh
dHNwaV9oeXBlcmxpbmtfZ2V0X2VuZF9pbmRleChBVFNQSV9IWVBFUkxJTksobGluay5nZXQoKSks
IG51bGxwdHIpLCA9PSwgMTUpOworICAgIHVyaS5yZXNldChhdHNwaV9oeXBlcmxpbmtfZ2V0X3Vy
aShBVFNQSV9IWVBFUkxJTksobGluay5nZXQoKSksIDAsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2Vy
dF9jbXBzdHIodXJpLmdldCgpLCA9PSwgImh0dHBzOi8vd3d3LndlYmtpdGd0ay5vcmcvIik7Cisg
ICAgYXV0byBhID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4
KHAuZ2V0KCksIDEsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKGF0c3BpX2h5cGVybGlu
a19nZXRfb2JqZWN0KEFUU1BJX0hZUEVSTElOSyhsaW5rLmdldCgpKSwgMCwgbnVsbHB0cikgPT0g
YS5nZXQoKSk7CisKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfaHlwZXJ0ZXh0X2dldF9saW5r
X2luZGV4KEFUU1BJX0hZUEVSVEVYVChwLmdldCgpKSwgMCwgbnVsbHB0ciksID09LCAtMSk7Cisg
ICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2h5cGVydGV4dF9nZXRfbGlua19pbmRleChBVFNQSV9I
WVBFUlRFWFQocC5nZXQoKSksIDgsIG51bGxwdHIpLCA9PSwgMCk7CisgICAgZ19hc3NlcnRfY21w
aW50KGF0c3BpX2h5cGVydGV4dF9nZXRfbGlua19pbmRleChBVFNQSV9IWVBFUlRFWFQocC5nZXQo
KSksIDksIG51bGxwdHIpLCA9PSwgLTEpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9oeXBl
cnRleHRfZ2V0X2xpbmtfaW5kZXgoQVRTUElfSFlQRVJURVhUKHAuZ2V0KCkpLCAxNCwgbnVsbHB0
ciksID09LCAxKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfaHlwZXJ0ZXh0X2dldF9saW5r
X2luZGV4KEFUU1BJX0hZUEVSVEVYVChwLmdldCgpKSwgMTUsIG51bGxwdHIpLCA9PSwgLTEpOwor
fQorCiB2b2lkIGJlZm9yZUFsbCgpCiB7CiAgICAgQWNjZXNzaWJpbGl0eVRlc3Q6OmFkZCgiV2Vi
S2l0QWNjZXNzaWJpbGl0eSIsICJhY2Nlc3NpYmxlL2Jhc2ljLWhpZXJhcmNoeSIsIHRlc3RBY2Nl
c3NpYmxlQmFzaWNIaWVyYXJjaHkpOwpAQCAtMTgxMiw2ICsxODY0LDcgQEAgdm9pZCBiZWZvcmVB
bGwoKQogICAgIEFjY2Vzc2liaWxpdHlUZXN0OjphZGQoIldlYktpdEFjY2Vzc2liaWxpdHkiLCAi
dGV4dC9yZXBsYWNlZC1vYmplY3RzIiwgdGVzdFRleHRSZXBsYWNlZE9iamVjdHMpOwogICAgIEFj
Y2Vzc2liaWxpdHlUZXN0OjphZGQoIldlYktpdEFjY2Vzc2liaWxpdHkiLCAidmFsdWUvYmFzaWMi
LCB0ZXN0VmFsdWVCYXNpYyk7CiAgICAgQWNjZXNzaWJpbGl0eVRlc3Q6OmFkZCgiV2ViS2l0QWNj
ZXNzaWJpbGl0eSIsICJoeXBlcmxpbmsvYmFzaWMiLCB0ZXN0SHlwZXJsaW5rQmFzaWMpOworICAg
IEFjY2Vzc2liaWxpdHlUZXN0OjphZGQoIldlYktpdEFjY2Vzc2liaWxpdHkiLCAiaHlwZXJ0ZXh0
L2Jhc2ljIiwgdGVzdEh5cGVydGV4dEJhc2ljKTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444792</attachid>
            <date>2021-11-19 01:43:14 -0800</date>
            <delta_ts>2021-11-19 05:30:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-atspi-hypertext.diff</filename>
            <type>text/plain</type>
            <size>22463</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZDI2YTFjOTkxMTUuLmZkOTI3NjU3OTY4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI4IEBACisyMDIxLTExLTA0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVthMTF5XSBBZGQgaW1wbGVtZW50YXRpb24gb2Yg
aHlwZXJ0ZXh0IGludGVyZmFjZSB3aGVuIGJ1aWxkaW5nIHdpdGggQVRTUEkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjcwOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlc0dUSy50eHQ6Cisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eUF0c3BpOjp1bnJlZ2lzdGVyT2JqZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlBdHNwaTo6cmVnaXN0ZXJIeXBlcmxpbmspOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eUF0c3BpLmg6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjppbnRlcmZhY2VzRm9y
T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6cGF0
aCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6Omh5cGVybGlu
a1JlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6
OmJ1aWxkSW50ZXJmYWNlcyBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hdHNwaS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0c3Bp
L0FjY2Vzc2liaWxpdHlPYmplY3RIeXBlcnRleHRBdHNwaS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpoeXBlcmxpbmtDb3VudCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6Omh5cGVybGluayBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6Omh5cGVy
bGlua0luZGV4IGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2li
aWxpdHlPYmplY3RUZXh0QXRzcGkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdEF0c3BpOjpjaGFyYWN0ZXJJbmRleCBjb25zdCk6CisKIDIwMjEtMTEtMTkgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW2Ex
MXldIEFkZCBpbXBsZW1lbnRhdGlvbiBvZiBoeXBlcmxpbmsgaW50ZXJmYWNlIHdoZW4gYnVpbGRp
bmcgd2l0aCBBVFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAppbmRleCAxODg0NWNjMDIxN2MuLjZlNDQx
NGQ1ODAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlc0dUSy50eHQKQEAgLTQzLDYgKzQzLDcgQEAgYWNjZXNzaWJp
bGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuY3BwCiBhY2Nlc3NpYmlsaXR5L2F0c3BpL0Fj
Y2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAKIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJp
bGl0eU9iamVjdENvbXBvbmVudEF0c3BpLmNwcAogYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3Np
YmlsaXR5T2JqZWN0SHlwZXJsaW5rQXRzcGkuY3BwCithY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vz
c2liaWxpdHlPYmplY3RIeXBlcnRleHRBdHNwaS5jcHAKIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNj
ZXNzaWJpbGl0eU9iamVjdFRleHRBdHNwaS5jcHAKIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNz
aWJpbGl0eU9iamVjdFZhbHVlQXRzcGkuY3BwCiBhY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2li
aWxpdHlSb290QXRzcGkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5jcHAKaW5kZXggNDA0MWZiYzlmYTAyLi5l
NDkxMTM1NTNhOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRz
cGkvQWNjZXNzaWJpbGl0eUF0c3BpLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5jcHAKQEAgLTEzNSw2ICsxMzUsMTIgQEAgdm9p
ZCBBY2Nlc3NpYmlsaXR5QXRzcGk6OnVucmVnaXN0ZXJPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVj
dEF0c3BpJiBhdHNwaU9iamVjdCkKICAgICAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAg
ICAgICByZXR1cm47CiAKKyAgICAgICAgaWYgKG1fYXRzcGlIeXBlcmxpbmtzLmNvbnRhaW5zKGF0
c3BpT2JqZWN0LnB0cigpKSkgeworICAgICAgICAgICAgYXV0byByZWdpc3RlcmVkT2JqZWN0cyA9
IG1fYXRzcGlIeXBlcmxpbmtzLnRha2UoYXRzcGlPYmplY3QucHRyKCkpOworICAgICAgICAgICAg
Zm9yIChhdXRvIGlkIDogcmVnaXN0ZXJlZE9iamVjdHMpCisgICAgICAgICAgICAgICAgZ19kYnVz
X2Nvbm5lY3Rpb25fdW5yZWdpc3Rlcl9vYmplY3QobV9jb25uZWN0aW9uLmdldCgpLCBpZCk7Cisg
ICAgICAgIH0KKwogICAgICAgICBnX2RidXNfY29ubmVjdGlvbl9lbWl0X3NpZ25hbChtX2Nvbm5l
Y3Rpb24uZ2V0KCksIG51bGxwdHIsIGF0c3BpT2JqZWN0LT5wYXRoKCkudXRmOCgpLmRhdGEoKSwg
Im9yZy5hMTF5LmF0c3BpLkV2ZW50Lk9iamVjdCIsICJTdGF0ZUNoYW5nZWQiLAogICAgICAgICAg
ICAgZ192YXJpYW50X25ldygiKHNpaXZhe3N2fSkiLCAiZGVmdW5jdCIsIFRSVUUsIDAsIGdfdmFy
aWFudF9uZXdfc3RyaW5nKCIwIiksIG51bGxwdHIpLCBudWxscHRyKTsKIApAQCAtMTQ2LDYgKzE1
MiwyNCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlBdHNwaTo6dW5yZWdpc3Rlck9iamVjdChBY2Nlc3Np
YmlsaXR5T2JqZWN0QXRzcGkmIGF0c3BpT2JqZWN0KQogICAgIH0pOwogfQogCitTdHJpbmcgQWNj
ZXNzaWJpbGl0eUF0c3BpOjpyZWdpc3Rlckh5cGVybGluayhBY2Nlc3NpYmlsaXR5T2JqZWN0QXRz
cGkmIGF0c3BpT2JqZWN0LCBWZWN0b3I8c3RkOjpwYWlyPEdEQnVzSW50ZXJmYWNlSW5mbyosIEdE
QnVzSW50ZXJmYWNlVlRhYmxlKj4+JiYgaW50ZXJmYWNlcykKK3sKKyAgICBSRUxFQVNFX0FTU0VS
VCghaXNNYWluVGhyZWFkKCkpOworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1
cm4geyB9OworCisgICAgU3RyaW5nIHBhdGggPSBtYWtlU3RyaW5nKCIvb3JnL2ExMXkvYXRzcGkv
YWNjZXNzaWJsZS8iLCBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkucmVwbGFjZSgnLScsICdf
JykpOworICAgIFZlY3Rvcjx1bnNpZ25lZCwgMT4gcmVnaXN0ZXJlZE9iamVjdHM7CisgICAgcmVn
aXN0ZXJlZE9iamVjdHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShpbnRlcmZhY2VzLnNpemUoKSk7
CisgICAgZm9yIChjb25zdCBhdXRvJiBpbnRlcmZhY2UgOiBpbnRlcmZhY2VzKSB7CisgICAgICAg
IGF1dG8gaWQgPSBnX2RidXNfY29ubmVjdGlvbl9yZWdpc3Rlcl9vYmplY3QobV9jb25uZWN0aW9u
LmdldCgpLCBwYXRoLnV0ZjgoKS5kYXRhKCksIGludGVyZmFjZS5maXJzdCwgaW50ZXJmYWNlLnNl
Y29uZCwgJmF0c3BpT2JqZWN0LCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgcmVnaXN0ZXJl
ZE9iamVjdHMudW5jaGVja2VkQXBwZW5kKGlkKTsKKyAgICB9CisgICAgbV9hdHNwaUh5cGVybGlu
a3MuYWRkKCZhdHNwaU9iamVjdCwgV1RGTW92ZShyZWdpc3RlcmVkT2JqZWN0cykpOworCisgICAg
cmV0dXJuIHBhdGg7Cit9CisKIHZvaWQgQWNjZXNzaWJpbGl0eUF0c3BpOjpjaGlsZHJlbkNoYW5n
ZWQoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJiBhdHNwaU9iamVjdCwgQWNjZXNzaWJpbGl0eU9i
amVjdEF0c3BpJiBjaGlsZCwgQ2hpbGRyZW5DaGFuZ2VkIGNoYW5nZSkKIHsKICAgICBSRUxFQVNF
X0FTU0VSVChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuaAppbmRleCBlZDcyODgzZjYzZTYu
LjBmYzRjYTI5OWM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9h
dHNwaS9BY2Nlc3NpYmlsaXR5QXRzcGkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlBdHNwaS5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVucmVnaXN0ZXJSb290KEFjY2Vzc2liaWxpdHlSb290QXRzcGkmKTsKICAgICBT
dHJpbmcgcmVnaXN0ZXJPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJiwgVmVjdG9yPHN0
ZDo6cGFpcjxHREJ1c0ludGVyZmFjZUluZm8qLCBHREJ1c0ludGVyZmFjZVZUYWJsZSo+PiYmKTsK
ICAgICB2b2lkIHVucmVnaXN0ZXJPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJik7Cisg
ICAgU3RyaW5nIHJlZ2lzdGVySHlwZXJsaW5rKEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSYsIFZl
Y3RvcjxzdGQ6OnBhaXI8R0RCdXNJbnRlcmZhY2VJbmZvKiwgR0RCdXNJbnRlcmZhY2VWVGFibGUq
Pj4mJik7CiAKICAgICBlbnVtIGNsYXNzIENoaWxkcmVuQ2hhbmdlZCB7IEFkZGVkLCBSZW1vdmVk
IH07CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJiwg
QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpJiwgQ2hpbGRyZW5DaGFuZ2VkKTsKQEAgLTc4LDYgKzc5
LDcgQEAgcHJpdmF0ZToKICAgICBHUmVmUHRyPEdEQnVzQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OwogICAgIEhhc2hNYXA8QWNjZXNzaWJpbGl0eVJvb3RBdHNwaSosIFZlY3Rvcjx1bnNpZ25lZCwg
Mj4+IG1fcm9vdE9iamVjdHM7CiAgICAgSGFzaE1hcDxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkq
LCBWZWN0b3I8dW5zaWduZWQsIDIwPj4gbV9hdHNwaU9iamVjdHM7CisgICAgSGFzaE1hcDxBY2Nl
c3NpYmlsaXR5T2JqZWN0QXRzcGkqLCBWZWN0b3I8dW5zaWduZWQsIDIwPj4gbV9hdHNwaUh5cGVy
bGlua3M7CiAgICAgdW5zaWduZWQgbV9jYWNoZUlEIHsgMCB9OwogICAgIEhhc2hNYXA8U3RyaW5n
LCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqPiBtX2NhY2hlOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3Bp
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9i
amVjdEF0c3BpLmNwcAppbmRleCBhYmZmNWFiN2JhMjYuLmIzYjhmOWRiZWY0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0
QXRzcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNz
aWJpbGl0eU9iamVjdEF0c3BpLmNwcApAQCAtNjksNiArNjksNyBAQCBPcHRpb25TZXQ8QWNjZXNz
aWJpbGl0eU9iamVjdEF0c3BpOjpJbnRlcmZhY2U+IEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6
aW50ZXJmYQogICAgICAgICBpbnRlcmZhY2VzLmFkZChJbnRlcmZhY2U6OlRleHQpOwogICAgIGVs
c2UgaWYgKCFjb3JlT2JqZWN0LmlzV2ViQXJlYSgpKSB7CiAgICAgICAgIGlmIChjb3JlT2JqZWN0
LnJvbGVWYWx1ZSgpICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZSkgeworICAgICAgICAgICAg
aW50ZXJmYWNlcy5hZGQoSW50ZXJmYWNlOjpIeXBlcnRleHQpOwogICAgICAgICAgICAgaWYgKChy
ZW5kZXJlciAmJiByZW5kZXJlci0+Y2hpbGRyZW5JbmxpbmUoKSkgfHwgcm9sZUlzVGV4dFR5cGUo
Y29yZU9iamVjdC5yb2xlVmFsdWUoKSkgfHwgY29yZU9iamVjdC5pc01hdGhUb2tlbigpKQogICAg
ICAgICAgICAgICAgIGludGVyZmFjZXMuYWRkKEludGVyZmFjZTo6VGV4dCk7CiAgICAgICAgIH0K
QEAgLTQ4MCw2ICs0ODEsOCBAQCBjb25zdCBTdHJpbmcmIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNw
aTo6cGF0aCgpCiAgICAgICAgICAgICBpbnRlcmZhY2VzLmFwcGVuZCh7IGNvbnN0X2Nhc3Q8R0RC
dXNJbnRlcmZhY2VJbmZvKj4oJndlYmtpdF92YWx1ZV9pbnRlcmZhY2UpLCAmc192YWx1ZUZ1bmN0
aW9ucyB9KTsKICAgICAgICAgaWYgKG1faW50ZXJmYWNlcy5jb250YWlucyhJbnRlcmZhY2U6Okh5
cGVybGluaykpCiAgICAgICAgICAgICBpbnRlcmZhY2VzLmFwcGVuZCh7IGNvbnN0X2Nhc3Q8R0RC
dXNJbnRlcmZhY2VJbmZvKj4oJndlYmtpdF9oeXBlcmxpbmtfaW50ZXJmYWNlKSwgJnNfaHlwZXJs
aW5rRnVuY3Rpb25zIH0pOworICAgICAgICBpZiAobV9pbnRlcmZhY2VzLmNvbnRhaW5zKEludGVy
ZmFjZTo6SHlwZXJ0ZXh0KSkKKyAgICAgICAgICAgIGludGVyZmFjZXMuYXBwZW5kKHsgY29uc3Rf
Y2FzdDxHREJ1c0ludGVyZmFjZUluZm8qPigmd2Via2l0X2h5cGVydGV4dF9pbnRlcmZhY2UpLCAm
c19oeXBlcnRleHRGdW5jdGlvbnMgfSk7CiAgICAgICAgIG1fcGF0aCA9IGF0c3BpUm9vdC0+YXRz
cGkoKS5yZWdpc3Rlck9iamVjdCgqdGhpcywgV1RGTW92ZShpbnRlcmZhY2VzKSk7CiAgICAgfQog
CkBAIC00OTIsNiArNDk1LDE3IEBAIEdWYXJpYW50KiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6
OnJlZmVyZW5jZSgpCiAgICAgcmV0dXJuIGdfdmFyaWFudF9uZXcoIihzbykiLCByb290KCktPmF0
c3BpKCkudW5pcXVlTmFtZSgpLCBwYXRoKCkudXRmOCgpLmRhdGEoKSk7CiB9CiAKK0dWYXJpYW50
KiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6Omh5cGVybGlua1JlZmVyZW5jZSgpCit7CisgICAg
UkVMRUFTRV9BU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBpZiAobV9oeXBlcmxpbmtQYXRo
LmlzTnVsbCgpKSB7CisgICAgICAgIHBhdGgoKTsKKyAgICAgICAgbV9oeXBlcmxpbmtQYXRoID0g
cm9vdCgpLT5hdHNwaSgpLnJlZ2lzdGVySHlwZXJsaW5rKCp0aGlzLCB7IHsgY29uc3RfY2FzdDxH
REJ1c0ludGVyZmFjZUluZm8qPigmd2Via2l0X2h5cGVybGlua19pbnRlcmZhY2UpLCAmc19oeXBl
cmxpbmtGdW5jdGlvbnMgfSB9KTsKKyAgICB9CisKKyAgICByZXR1cm4gZ192YXJpYW50X25ldygi
KHNvKSIsIHJvb3QoKS0+YXRzcGkoKS51bmlxdWVOYW1lKCksIG1faHlwZXJsaW5rUGF0aC51dGY4
KCkuZGF0YSgpKTsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnNldFJvb3Qo
QWNjZXNzaWJpbGl0eVJvb3RBdHNwaSogcm9vdCkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgbV9y
b290TG9jayB9OwpAQCAtMTA5OSw2ICsxMTEzLDggQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0
QXRzcGk6OmJ1aWxkSW50ZXJmYWNlcyhHVmFyaWFudEJ1aWxkZXIqIGJ1aWxkZXIpIGNvbnN0CiAg
ICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZChidWlsZGVyLCAicyIsIHdlYmtpdF92YWx1ZV9p
bnRlcmZhY2UubmFtZSk7CiAgICAgaWYgKG1faW50ZXJmYWNlcy5jb250YWlucyhJbnRlcmZhY2U6
Okh5cGVybGluaykpCiAgICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZChidWlsZGVyLCAicyIs
IHdlYmtpdF9oeXBlcmxpbmtfaW50ZXJmYWNlLm5hbWUpOworICAgIGlmIChtX2ludGVyZmFjZXMu
Y29udGFpbnMoSW50ZXJmYWNlOjpIeXBlcnRleHQpKQorICAgICAgICBnX3ZhcmlhbnRfYnVpbGRl
cl9hZGQoYnVpbGRlciwgInMiLCB3ZWJraXRfaHlwZXJ0ZXh0X2ludGVyZmFjZS5uYW1lKTsKIH0K
IAogdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnNlcmlhbGl6ZShHVmFyaWFudEJ1aWxk
ZXIqIGJ1aWxkZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaAppbmRleCA4OTljNWVj
MjU0YTIuLjA3ZTY4MDJjYTE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5oCkBAIC00Nyw3
ICs0Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgQ29tcG9uZW50ID0gMSA8PCAxLAogICAgICAgICBU
ZXh0ID0gMSA8PCAyLAogICAgICAgICBWYWx1ZSA9IDEgPDwgMywKLSAgICAgICAgSHlwZXJsaW5r
ID0gMSA8PCA0CisgICAgICAgIEh5cGVybGluayA9IDEgPDwgNCwKKyAgICAgICAgSHlwZXJ0ZXh0
ID0gMSA8PCA1CiAgICAgfTsKICAgICBjb25zdCBPcHRpb25TZXQ8SW50ZXJmYWNlPiYgaW50ZXJm
YWNlcygpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJmYWNlczsgfQogCkBAIC02Niw2ICs2Nyw3IEBA
IHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYgcGF0aCgpOwogICAgIEdWYXJpYW50KiByZWZl
cmVuY2UoKTsKKyAgICBHVmFyaWFudCogaHlwZXJsaW5rUmVmZXJlbmNlKCk7CiAgICAgdm9pZCBz
ZXJpYWxpemUoR1ZhcmlhbnRCdWlsZGVyKikgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBT
dHJpbmcgaWQoKSBjb25zdDsKQEAgLTE0Myw2ICsxNDUsNyBAQCBwcml2YXRlOgogICAgIENTdHJp
bmcgdGV4dEF0T2Zmc2V0KGludCwgVGV4dEdyYW51bGFyaXR5LCBpbnQmLCBpbnQmKSBjb25zdDsK
ICAgICBpbnQgY2hhcmFjdGVyQXRPZmZzZXQoaW50KSBjb25zdDsKICAgICBzdGQ6Om9wdGlvbmFs
PHVuc2lnbmVkPiBjaGFyYWN0ZXJPZmZzZXQoVUNoYXIsIGludCkgY29uc3Q7CisgICAgc3RkOjpv
cHRpb25hbDx1bnNpZ25lZD4gY2hhcmFjdGVySW5kZXgoVUNoYXIsIHVuc2lnbmVkKSBjb25zdDsK
ICAgICBJbnRSZWN0IHRleHRFeHRlbnRzKGludCwgaW50LCB1aW50MzJfdCkgY29uc3Q7CiAgICAg
aW50IG9mZnNldEF0UG9pbnQoY29uc3QgSW50UG9pbnQmLCB1aW50MzJfdCkgY29uc3Q7CiAgICAg
SW50UG9pbnQgYm91bmRzRm9yU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSBjb25z
dDsKQEAgLTE1NCw2ICsxNTcsMTAgQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVkIG9mZnNldElu
UGFyZW50KCkgY29uc3Q7CiAKKyAgICB1bnNpZ25lZCBoeXBlcmxpbmtDb3VudCgpIGNvbnN0Owor
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSogaHlwZXJsaW5rKHVuc2lnbmVkKSBjb25zdDsK
KyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBoeXBlcmxpbmtJbmRleCh1bnNpZ25lZCkgY29u
c3Q7CisKICAgICBzdGF0aWMgT3B0aW9uU2V0PEludGVyZmFjZT4gaW50ZXJmYWNlc0Zvck9iamVj
dChBWENvcmVPYmplY3QmKTsKIAogICAgIHN0YXRpYyBHREJ1c0ludGVyZmFjZVZUYWJsZSBzX2Fj
Y2Vzc2libGVGdW5jdGlvbnM7CkBAIC0xNjEsNiArMTY4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgR0RCdXNJbnRlcmZhY2VWVGFibGUgc190ZXh0RnVuY3Rpb25zOwogICAgIHN0YXRpYyBHREJ1
c0ludGVyZmFjZVZUYWJsZSBzX3ZhbHVlRnVuY3Rpb25zOwogICAgIHN0YXRpYyBHREJ1c0ludGVy
ZmFjZVZUYWJsZSBzX2h5cGVybGlua0Z1bmN0aW9uczsKKyAgICBzdGF0aWMgR0RCdXNJbnRlcmZh
Y2VWVGFibGUgc19oeXBlcnRleHRGdW5jdGlvbnM7CiAKICAgICBBWENvcmVPYmplY3QqIG1fYXhP
YmplY3QgeyBudWxscHRyIH07CiAgICAgQVhDb3JlT2JqZWN0KiBtX2NvcmVPYmplY3QgeyBudWxs
cHRyIH07CkBAIC0xNjksNiArMTc3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPEFj
Y2Vzc2liaWxpdHlPYmplY3RBdHNwaSo+IG1fcGFyZW50OwogICAgIEF0b21pYzxib29sPiBtX2lz
UmVnaXN0ZXJlZCB7IGZhbHNlIH07CiAgICAgU3RyaW5nIG1fcGF0aDsKKyAgICBTdHJpbmcgbV9o
eXBlcmxpbmtQYXRoOwogICAgIG11dGFibGUgaW50IG1faW5kZXhJblBhcmVudCB7IC0xIH07CiAg
ICAgbXV0YWJsZSBMb2NrIG1fcm9vdExvY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0SHlwZXJ0ZXh0QXRzcGku
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SHlwZXJ0ZXh0QXRzcGkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uMDRmMGIzODZkYWJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0SHlwZXJ0ZXh0QXRzcGkuY3BwCkBA
IC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaCIK
KworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKSAmJiBVU0UoQVRTUEkpCisKKyNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5Um9vdEF0c3BpLmgiCisjaW5jbHVkZSA8Z2lvL2dpby5oPgorI2luY2x1ZGUg
PHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
R0RCdXNJbnRlcmZhY2VWVGFibGUgQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpzX2h5cGVydGV4
dEZ1bmN0aW9ucyA9IHsKKyAgICAvLyBtZXRob2RfY2FsbAorICAgIFtdKEdEQnVzQ29ubmVjdGlv
biosIGNvbnN0IGdjaGFyKiwgY29uc3QgZ2NoYXIqLCBjb25zdCBnY2hhciosIGNvbnN0IGdjaGFy
KiBtZXRob2ROYW1lLCBHVmFyaWFudCogcGFyYW1ldGVycywgR0RCdXNNZXRob2RJbnZvY2F0aW9u
KiBpbnZvY2F0aW9uLCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICBSRUxFQVNFX0FTU0VS
VCghaXNNYWluVGhyZWFkKCkpOworICAgICAgICBhdXRvIGF0c3BpT2JqZWN0ID0gUmVmIHsgKnN0
YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaSo+KHVzZXJEYXRhKSB9OworICAgICAg
ICBhdHNwaU9iamVjdC0+dXBkYXRlQmFja2luZ1N0b3JlKCk7CisKKyAgICAgICAgaWYgKCFnX3N0
cmNtcDAobWV0aG9kTmFtZSwgIkdldE5MaW5rcyIpKSB7CisgICAgICAgICAgICBnX2RidXNfbWV0
aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9jYXRpb24sIGdfdmFyaWFudF9uZXcoIihp
KSIsIGF0c3BpT2JqZWN0LT5oeXBlcmxpbmtDb3VudCgpKSk7CisgICAgICAgIH0gZWxzZSBpZiAo
IWdfc3RyY21wMChtZXRob2ROYW1lLCAiR2V0TGluayIpKSB7CisgICAgICAgICAgICBpbnQgaW5k
ZXg7CisgICAgICAgICAgICBnX3ZhcmlhbnRfZ2V0KHBhcmFtZXRlcnMsICIoaSkiLCAmaW5kZXgp
OworICAgICAgICAgICAgYXV0byogd3JhcHBlciA9IGluZGV4ID49IDAgPyBhdHNwaU9iamVjdC0+
aHlwZXJsaW5rKGluZGV4KSA6IG51bGxwdHI7CisgICAgICAgICAgICBnX2RidXNfbWV0aG9kX2lu
dm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9jYXRpb24sIGdfdmFyaWFudF9uZXcoIihAKHNvKSki
LCB3cmFwcGVyID8gd3JhcHBlci0+aHlwZXJsaW5rUmVmZXJlbmNlKCkgOiBhdHNwaU9iamVjdC0+
cm9vdCgpLT5hdHNwaSgpLm51bGxSZWZlcmVuY2UoKSkpOworICAgICAgICB9IGVsc2UgaWYgKCFn
X3N0cmNtcDAobWV0aG9kTmFtZSwgIkdldExpbmtJbmRleCIpKSB7CisgICAgICAgICAgICBpbnQg
b2Zmc2V0OworICAgICAgICAgICAgZ192YXJpYW50X2dldChwYXJhbWV0ZXJzLCAiKGkpIiwgJm9m
ZnNldCk7CisgICAgICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVl
KGludm9jYXRpb24sIGdfdmFyaWFudF9uZXcoIihpKSIsIG9mZnNldCA+PSAwID8gYXRzcGlPYmpl
Y3QtPmh5cGVybGlua0luZGV4KG9mZnNldCkudmFsdWVfb3IoLTEpIDogLTEpKTsKKyAgICAgICAg
fQorICAgIH0sCisgICAgLy8gZ2V0X3Byb3BlcnR5CisgICAgbnVsbHB0ciwKKyAgICAvLyBzZXRf
cHJvcGVydHksCisgICAgbnVsbHB0ciwKKyAgICAvLyBwYWRkaW5nCisgICAgbnVsbHB0cgorfTsK
KwordW5zaWduZWQgQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpoeXBlcmxpbmtDb3VudCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRo
cmVhZDx1bnNpZ25lZD4oW3RoaXNdKCkgLT4gdW5zaWduZWQgeworICAgICAgICBpZiAobV9jb3Jl
T2JqZWN0KQorICAgICAgICAgICAgbV9jb3JlT2JqZWN0LT51cGRhdGVCYWNraW5nU3RvcmUoKTsK
KworICAgICAgICBpZiAoIW1fY29yZU9iamVjdCkKKyAgICAgICAgICAgIHJldHVybiAwOworCisg
ICAgICAgIHVuc2lnbmVkIGxpbmtDb3VudCA9IDA7CisgICAgICAgIGNvbnN0IGF1dG8mIGNoaWxk
cmVuID0gbV9jb3JlT2JqZWN0LT5jaGlsZHJlbigpOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IGNoaWxkIDogY2hpbGRyZW4pIHsKKyAgICAgICAgICAgIGlmIChjaGlsZC0+YWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBh
dXRvKiB3cmFwcGVyID0gY2hpbGQtPndyYXBwZXIoKTsKKyAgICAgICAgICAgIGlmICh3cmFwcGVy
ICYmIHdyYXBwZXItPmludGVyZmFjZXMoKS5jb250YWlucyhJbnRlcmZhY2U6Okh5cGVybGluaykp
CisgICAgICAgICAgICAgICAgbGlua0NvdW50Kys7CisgICAgICAgIH0KKworICAgICAgICByZXR1
cm4gbGlua0NvdW50OworICAgIH0pOworfQorCitBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkqIEFj
Y2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6aHlwZXJsaW5rKHVuc2lnbmVkIGluZGV4KSBjb25zdAor
eworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8
QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpKj4oW3RoaXMsIGluZGV4XSgpIC0+IEFjY2Vzc2liaWxp
dHlPYmplY3RBdHNwaSogeworICAgICAgICBpZiAobV9jb3JlT2JqZWN0KQorICAgICAgICAgICAg
bV9jb3JlT2JqZWN0LT51cGRhdGVCYWNraW5nU3RvcmUoKTsKKworICAgICAgICBpZiAoIW1fY29y
ZU9iamVjdCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIGNvbnN0IGF1
dG8mIGNoaWxkcmVuID0gbV9jb3JlT2JqZWN0LT5jaGlsZHJlbigpOworICAgICAgICBpZiAoaW5k
ZXggPj0gY2hpbGRyZW4uc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICAgICAgaW50IGxpbmtJbmRleCA9IC0xOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNoaWxk
IDogY2hpbGRyZW4pIHsKKyAgICAgICAgICAgIGlmIChjaGlsZC0+YWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBhdXRvKiB3
cmFwcGVyID0gY2hpbGQtPndyYXBwZXIoKTsKKyAgICAgICAgICAgIGlmICghd3JhcHBlciB8fCAh
d3JhcHBlci0+aW50ZXJmYWNlcygpLmNvbnRhaW5zKEludGVyZmFjZTo6SHlwZXJsaW5rKSkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVu
c2lnbmVkPigrK2xpbmtJbmRleCkgPT0gaW5kZXgpIHsKKyAgICAgICAgICAgICAgICB3cmFwcGVy
LT5zZXRSb290KHJvb3QoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9KTsK
K30KKworc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpo
eXBlcmxpbmtJbmRleCh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNoYXJh
Y3RlckluZGV4KG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyLCBvZmZzZXQpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQUNDRVNTSUJJTElUWSkgJiYg
VVNFKEFUU1BJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNw
aS9BY2Nlc3NpYmlsaXR5T2JqZWN0VGV4dEF0c3BpLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdFRleHRBdHNwaS5jcHAKaW5kZXggODZk
M2VmZTVhNDY2Li5iNzg0MDk4YmZhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdFRleHRBdHNwaS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0VGV4dEF0
c3BpLmNwcApAQCAtNTA4LDYgKzUwOCwzOCBAQCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBBY2Nl
c3NpYmlsaXR5T2JqZWN0QXRzcGk6OmNoYXJhY3Rlck9mZnNldChVQ2hhciBjaGFyYWN0ZQogICAg
IHJldHVybiBVVEYxNk9mZnNldFRvVVRGOChtYXBwaW5nLCBvZmZzZXQpOwogfQogCitzdGQ6Om9w
dGlvbmFsPHVuc2lnbmVkPiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OmNoYXJhY3RlckluZGV4
KFVDaGFyIGNoYXJhY3RlciwgdW5zaWduZWQgb2Zmc2V0KSBjb25zdAoreworICAgIGF1dG8gdXRm
MTZUZXh0ID0gdGV4dCgpOworICAgIGF1dG8gdXRmOFRleHQgPSB1dGYxNlRleHQudXRmOCgpOwor
ICAgIGlmICh1dGY4VGV4dC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIGF1dG8gbGVuZ3RoID0gZ191dGY4X3N0cmxlbih1dGY4VGV4dC5kYXRhKCksIC0xKTsK
KyAgICBpZiAob2Zmc2V0ID49IGxlbmd0aCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KworICAgIGF1dG8gbWFwcGluZyA9IG9mZnNldE1hcHBpbmcodXRmMTZUZXh0KTsKKyAgICBhdXRv
IHV0ZjE2T2Zmc2V0ID0gVVRGOE9mZnNldFRvVVRGMTYobWFwcGluZywgb2Zmc2V0KTsKKyAgICBp
ZiAodXRmMTZUZXh0W3V0ZjE2T2Zmc2V0XSAhPSBjaGFyYWN0ZXIpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICB1bnNpZ25lZCBzdGFydCA9IDA7CisgICAgaW50IGluZGV4ID0g
LTE7CisgICAgc2l6ZV90IHBvc2l0aW9uOworICAgIHdoaWxlICgocG9zaXRpb24gPSB1dGYxNlRl
eHQuZmluZChjaGFyYWN0ZXIsIHN0YXJ0KSkgIT0gbm90Rm91bmQpIHsKKyAgICAgICAgaW5kZXgr
KzsKKyAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihwb3NpdGlvbikgPT0gdXRmMTZP
ZmZzZXQpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgc3RhcnQgPSBwb3NpdGlvbiArIDE7
CisgICAgfQorCisgICAgaWYgKGluZGV4ID09IC0xKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgcmV0dXJuIGluZGV4OworfQorCiBJbnRSZWN0IEFjY2Vzc2liaWxpdHlPYmpl
Y3RBdHNwaTo6Ym91bmRzRm9yUmFuZ2UodW5zaWduZWQgdXRmMTZPZmZzZXQsIHVuc2lnbmVkIGxl
bmd0aCwgdWludDMyX3QgY29vcmRpbmF0ZVR5cGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxJbnRSZWN0PihbdGhpcywgdXRm
MTZPZmZzZXQsIGxlbmd0aCwgY29vcmRpbmF0ZVR5cGVdKCkgLT4gSW50UmVjdCB7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjdjMWFlYjA2NzZh
Li5iNDMxZTU1MjJiYzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMS0wNCAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bYTExeV0gQWRkIGltcGxl
bWVudGF0aW9uIG9mIGh5cGVydGV4dCBpbnRlcmZhY2Ugd2hlbiBidWlsZGluZyB3aXRoIEFUU1BJ
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI3MDgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdW5p
dCB0ZXN0cyB0byBjaGVjayBoeXBlcnRleHQgaW50ZXJmYWNlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwOgorICAg
ICAgICAodGVzdEh5cGVydGV4dEJhc2ljKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisKIDIwMjEt
MTEtMTkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdW2ExMXldIEFkZCBpbXBsZW1lbnRhdGlvbiBvZiBoeXBlcmxpbmsgaW50ZXJmYWNl
IHdoZW4gYnVpbGRpbmcgd2l0aCBBVFNQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwCmlu
ZGV4IDlmYmQ1MTQ1ODk0NC4uMzRhMmQxMjIxNDdkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxp
dHkuY3BwCkBAIC0xODE3LDYgKzE4MTcsNzMgQEAgc3RhdGljIHZvaWQgdGVzdEh5cGVybGlua0Jh
c2ljKEFjY2Vzc2liaWxpdHlUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0
X3RydWUoYXRzcGlfaHlwZXJsaW5rX2dldF9vYmplY3QoQVRTUElfSFlQRVJMSU5LKGxpbmsuZ2V0
KCkpLCAwLCBudWxscHRyKSA9PSBsaW5rMi5nZXQoKSk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RI
eXBlcnRleHRCYXNpYyhBY2Nlc3NpYmlsaXR5VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sK
KyAgICB0ZXN0LT5zaG93SW5XaW5kb3coODAwLCA2MDApOworICAgIHRlc3QtPmxvYWRIdG1sKAor
ICAgICAgICAiPGh0bWw+IgorICAgICAgICAiICA8Ym9keT4iCisgICAgICAgICIgICAgPHA+VGhp
cyBpcyA8YnV0dG9uPmJ1dHRvbjwvYnV0dG9uPiBhbmQgPGEgaHJlZj0naHR0cHM6Ly93d3cud2Vi
a2l0Z3RrLm9yZyc+bGluazwvYT4gaW4gYSBwYXJhZ3JhcGg8L3A+IgorICAgICAgICAiICA8L2Jv
ZHk+IgorICAgICAgICAiPC9odG1sPiIsCisgICAgICAgIG51bGxwdHIpOworICAgIHRlc3QtPndh
aXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgYXV0byB0ZXN0QXBwID0gdGVzdC0+ZmluZFRl
c3RBcHBsaWNhdGlvbigpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRSh0
ZXN0QXBwLmdldCgpKSk7CisKKyAgICBhdXRvIGRvY3VtZW50V2ViID0gdGVzdC0+ZmluZERvY3Vt
ZW50V2ViKHRlc3RBcHAuZ2V0KCkpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNT
SUJMRShkb2N1bWVudFdlYi5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nl
c3NpYmxlX2dldF9jaGlsZF9jb3VudChkb2N1bWVudFdlYi5nZXQoKSwgbnVsbHB0ciksID09LCAx
KTsKKworICAgIGF1dG8gcCA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9h
dF9pbmRleChkb2N1bWVudFdlYi5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3Ry
dWUoQVRTUElfSVNfSFlQRVJURVhUKHAuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRz
cGlfaHlwZXJ0ZXh0X2dldF9uX2xpbmtzKEFUU1BJX0hZUEVSVEVYVChwLmdldCgpKSwgbnVsbHB0
ciksID09LCAyKTsKKworICAgIGF1dG8gbGluayA9IGFkb3B0R1JlZihhdHNwaV9oeXBlcnRleHRf
Z2V0X2xpbmsoQVRTUElfSFlQRVJURVhUKHAuZ2V0KCkpLCAwLCBudWxscHRyKSk7CisgICAgZ19h
c3NlcnRfdHJ1ZShBVFNQSV9JU19IWVBFUkxJTksobGluay5nZXQoKSkpOworICAgIGdfYXNzZXJ0
X2NtcGludChhdHNwaV9oeXBlcmxpbmtfZ2V0X25fYW5jaG9ycyhBVFNQSV9IWVBFUkxJTksobGlu
ay5nZXQoKSksIG51bGxwdHIpLCA9PSwgMSk7CisgICAgZ19hc3NlcnRfdHJ1ZShhdHNwaV9oeXBl
cmxpbmtfaXNfdmFsaWQoQVRTUElfSFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCBudWxscHRyKSk7Cisg
ICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2h5cGVybGlua19nZXRfc3RhcnRfaW5kZXgoQVRTUElf
SFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCBudWxscHRyKSwgPT0sIDgpOworI2lmIFVTRShBVFNQSSkK
KyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfaHlwZXJsaW5rX2dldF9lbmRfaW5kZXgoQVRTUElf
SFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCBudWxscHRyKSwgPT0sIDkpOworI2Vsc2UKKyAgICBnX2Fz
c2VydF9jbXBpbnQoYXRzcGlfaHlwZXJsaW5rX2dldF9lbmRfaW5kZXgoQVRTUElfSFlQRVJMSU5L
KGxpbmsuZ2V0KCkpLCBudWxscHRyKSwgPT0sIDE1KTsKKyNlbmRpZgorICAgIEdVbmlxdWVQdHI8
Y2hhcj4gdXJpKGF0c3BpX2h5cGVybGlua19nZXRfdXJpKEFUU1BJX0hZUEVSTElOSyhsaW5rLmdl
dCgpKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X2NtcHN0cih1cmkuZ2V0KCksID09LCAi
Iik7CisgICAgYXV0byBidXR0b24gPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hp
bGRfYXRfaW5kZXgocC5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3RydWUoYXRz
cGlfaHlwZXJsaW5rX2dldF9vYmplY3QoQVRTUElfSFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCAwLCBu
dWxscHRyKSA9PSBidXR0b24uZ2V0KCkpOworCisgICAgbGluayA9IGFkb3B0R1JlZihhdHNwaV9o
eXBlcnRleHRfZ2V0X2xpbmsoQVRTUElfSFlQRVJURVhUKHAuZ2V0KCkpLCAxLCBudWxscHRyKSk7
CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19IWVBFUkxJTksobGluay5nZXQoKSkpOworICAg
IGdfYXNzZXJ0X2NtcGludChhdHNwaV9oeXBlcmxpbmtfZ2V0X25fYW5jaG9ycyhBVFNQSV9IWVBF
UkxJTksobGluay5nZXQoKSksIG51bGxwdHIpLCA9PSwgMSk7CisgICAgZ19hc3NlcnRfdHJ1ZShh
dHNwaV9oeXBlcmxpbmtfaXNfdmFsaWQoQVRTUElfSFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCBudWxs
cHRyKSk7CisjaWYgVVNFKEFUU1BJKQorICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9oeXBlcmxp
bmtfZ2V0X3N0YXJ0X2luZGV4KEFUU1BJX0hZUEVSTElOSyhsaW5rLmdldCgpKSwgbnVsbHB0ciks
ID09LCAxNCk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2h5cGVybGlua19nZXRfZW5kX2lu
ZGV4KEFUU1BJX0hZUEVSTElOSyhsaW5rLmdldCgpKSwgbnVsbHB0ciksID09LCAxNSk7CisjZWxz
ZQorICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9oeXBlcmxpbmtfZ2V0X3N0YXJ0X2luZGV4KEFU
U1BJX0hZUEVSTElOSyhsaW5rLmdldCgpKSwgbnVsbHB0ciksID09LCAyMCk7CisgICAgZ19hc3Nl
cnRfY21waW50KGF0c3BpX2h5cGVybGlua19nZXRfZW5kX2luZGV4KEFUU1BJX0hZUEVSTElOSyhs
aW5rLmdldCgpKSwgbnVsbHB0ciksID09LCAyNCk7CisjZW5kaWYKKyAgICB1cmkucmVzZXQoYXRz
cGlfaHlwZXJsaW5rX2dldF91cmkoQVRTUElfSFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCAwLCBudWxs
cHRyKSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHVyaS5nZXQoKSwgPT0sICJodHRwczovL3d3dy53
ZWJraXRndGsub3JnLyIpOworICAgIGF1dG8gYSA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxl
X2dldF9jaGlsZF9hdF9pbmRleChwLmdldCgpLCAxLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRf
dHJ1ZShhdHNwaV9oeXBlcmxpbmtfZ2V0X29iamVjdChBVFNQSV9IWVBFUkxJTksobGluay5nZXQo
KSksIDAsIG51bGxwdHIpID09IGEuZ2V0KCkpOworCisgICAgZ19hc3NlcnRfY21waW50KGF0c3Bp
X2h5cGVydGV4dF9nZXRfbGlua19pbmRleChBVFNQSV9IWVBFUlRFWFQocC5nZXQoKSksIDAsIG51
bGxwdHIpLCA9PSwgLTEpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9oeXBlcnRleHRfZ2V0
X2xpbmtfaW5kZXgoQVRTUElfSFlQRVJURVhUKHAuZ2V0KCkpLCA4LCBudWxscHRyKSwgPT0sIDAp
OworI2lmIFVTRShBVFNQSSkKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfaHlwZXJ0ZXh0X2dl
dF9saW5rX2luZGV4KEFUU1BJX0hZUEVSVEVYVChwLmdldCgpKSwgOSwgbnVsbHB0ciksID09LCAt
MSk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2h5cGVydGV4dF9nZXRfbGlua19pbmRleChB
VFNQSV9IWVBFUlRFWFQocC5nZXQoKSksIDE0LCBudWxscHRyKSwgPT0sIDEpOworICAgIGdfYXNz
ZXJ0X2NtcGludChhdHNwaV9oeXBlcnRleHRfZ2V0X2xpbmtfaW5kZXgoQVRTUElfSFlQRVJURVhU
KHAuZ2V0KCkpLCAxNSwgbnVsbHB0ciksID09LCAtMSk7CisjZWxzZQorICAgIGdfYXNzZXJ0X2Nt
cGludChhdHNwaV9oeXBlcnRleHRfZ2V0X2xpbmtfaW5kZXgoQVRTUElfSFlQRVJURVhUKHAuZ2V0
KCkpLCAxNSwgbnVsbHB0ciksID09LCAtMSk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2h5
cGVydGV4dF9nZXRfbGlua19pbmRleChBVFNQSV9IWVBFUlRFWFQocC5nZXQoKSksIDIwLCBudWxs
cHRyKSwgPT0sIDEpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9oeXBlcnRleHRfZ2V0X2xp
bmtfaW5kZXgoQVRTUElfSFlQRVJURVhUKHAuZ2V0KCkpLCAyNCwgbnVsbHB0ciksID09LCAtMSk7
CisjZW5kaWYKK30KKwogdm9pZCBiZWZvcmVBbGwoKQogewogICAgIEFjY2Vzc2liaWxpdHlUZXN0
OjphZGQoIldlYktpdEFjY2Vzc2liaWxpdHkiLCAiYWNjZXNzaWJsZS9iYXNpYy1oaWVyYXJjaHki
LCB0ZXN0QWNjZXNzaWJsZUJhc2ljSGllcmFyY2h5KTsKQEAgLTE4MzksNiArMTkwNiw3IEBAIHZv
aWQgYmVmb3JlQWxsKCkKICAgICBBY2Nlc3NpYmlsaXR5VGVzdDo6YWRkKCJXZWJLaXRBY2Nlc3Np
YmlsaXR5IiwgInRleHQvcmVwbGFjZWQtb2JqZWN0cyIsIHRlc3RUZXh0UmVwbGFjZWRPYmplY3Rz
KTsKICAgICBBY2Nlc3NpYmlsaXR5VGVzdDo6YWRkKCJXZWJLaXRBY2Nlc3NpYmlsaXR5IiwgInZh
bHVlL2Jhc2ljIiwgdGVzdFZhbHVlQmFzaWMpOwogICAgIEFjY2Vzc2liaWxpdHlUZXN0OjphZGQo
IldlYktpdEFjY2Vzc2liaWxpdHkiLCAiaHlwZXJsaW5rL2Jhc2ljIiwgdGVzdEh5cGVybGlua0Jh
c2ljKTsKKyAgICBBY2Nlc3NpYmlsaXR5VGVzdDo6YWRkKCJXZWJLaXRBY2Nlc3NpYmlsaXR5Iiwg
Imh5cGVydGV4dC9iYXNpYyIsIHRlc3RIeXBlcnRleHRCYXNpYyk7CiB9CiAKIHZvaWQgYWZ0ZXJB
bGwoKQo=
</data>
<flag name="review"
          id="469899"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>