<?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>220256</bug_id>
          
          <creation_ts>2021-01-04 16:36:39 -0800</creation_ts>
          <short_desc>[iOS] &quot;touchend&quot; events should be dispatched and handled asynchronously</short_desc>
          <delta_ts>2021-01-20 11:28:22 -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>UI Events</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>220345</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1717211</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-04 16:36:39 -0800</bug_when>
    <thetext>r253267 made active touchstart event listeners async by using deferring gesture recognizers the effectively &quot;gate&quot; all preventable native gestures until the web process has handled the touch.

We should, in theory, be able to this infrastructure to touchend events as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717212</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-04 16:38:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/64912551&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717523</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-05 15:51:30 -0800</bug_when>
    <thetext>&gt; We should, in theory, be able to this infrastructure to touchend events as
&gt; well.

s/this infrastructure/extend this infrastructure/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717543</commentid>
    <comment_count>3</comment_count>
      <attachid>417054</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-05 16:54:56 -0800</bug_when>
    <thetext>Created attachment 417054
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720152</commentid>
    <comment_count>4</comment_count>
      <attachid>417770</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-01-16 16:32:35 -0800</bug_when>
    <thetext>Created attachment 417770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720938</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-20 11:28:21 -0800</bug_when>
    <thetext>Committed r271660: &lt;https://trac.webkit.org/changeset/271660&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417770.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417054</attachid>
            <date>2021-01-05 16:54:56 -0800</date>
            <delta_ts>2021-01-16 16:32:33 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-220256-20210105165456.patch</filename>
            <type>text/plain</type>
            <size>16422</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhjZGE3YzI4NjdhOGZkMGVm
ZjdjMzRkNDYzY2QxYTVhOWYwOGVlM2QuLmM3MGIzNzJhMGJjMDJmOGIxYzViOGViMWM5N2E0MWQ4
ODRjM2I5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDEtMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gInRvdWNoZW5k
IiBldmVudHMgc2hvdWxkIGJlIGRpc3BhdGNoZWQgYW5kIGhhbmRsZWQgYXN5bmNocm9ub3VzbHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDI1Ngor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ5MTI1NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlUHJldmVudGFibGVU
b3VjaEV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNIYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hFbmQgY29u
c3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6ZG9uZURlZmVycmluZ1RvdWNoRW5kKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IHNldFVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVw
SW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVtb3ZlRGVmYXVsdEdl
c3R1cmVSZWNvZ25pemVyc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9hZGREZWZhdWx0
R2VzdHVyZVJlY29nbml6ZXJzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3dlYlRvdWNo
RXZlbnRzUmVjb2duaXplZDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGVmZXJyaW5n
R2VzdHVyZXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfdG91Y2hFbmREZWZlcnJpbmdH
ZXN0dXJlc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kb25lRGVmZXJyaW5nVG91Y2hF
bmQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxk
UmVjb2duaXplU2ltdWx0YW5lb3VzbHlXaXRoR2VzdHVyZVJlY29nbml6ZXI6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI6c2hvdWxkRGVmZXJP
dGhlckdlc3R1cmVSZWNvZ25pemVyOl0pOgorCiAyMDIxLTAxLTA1ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIHNvbWUgbG9naWMgYXJv
dW5kIHRvdWNoIGV2ZW50IGRlZmVycmluZyBnZXN0dXJlIHJlY29nbml6ZXJzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNjcyYjAxNWRjZjVhYWQ4Zjc4YWEzMzMwMjRiNjk5
YTlhNDgyMDQwZi4uNTkzOWM3MWRiY2ExNmMzYzE2Njg5YWMwZjhhYzU1NWQ2YzI2MDc1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzQwLDYgKzM0MCw3IEBAIHB1Ymxp
YzoKICNlbmRpZgogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIHZpcnR1YWwgdm9p
ZCBkb25lRGVmZXJyaW5nVG91Y2hTdGFydChib29sIHByZXZlbnROYXRpdmVHZXN0dXJlcykgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkb25lRGVmZXJyaW5nVG91Y2hFbmQoYm9vbCBwcmV2ZW50TmF0
aXZlR2VzdHVyZXMpID0gMDsKICNlbmRpZgogCiAgICAgdmlydHVhbCBSZWZQdHI8V2ViUG9wdXBN
ZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDExYjJjZWU1MDU5YTczZTg2
OWEzM2ZkYWYwNzRlZDkwYzdiMTkyMTIuLmU2YzQwMTNjZTMyYmNjZjY2MjJmNjg5ODc2ZWI1NmIx
NDA5Y2U5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MjkwMyw2ICsyOTAzLDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVByZXZlbnRhYmxlVG91
Y2hFdmVudChOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKICAgICBpZiAodG91Y2hFdmVudHNU
cmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZykgewogICAgICAgICBpZiAo
IWlzSGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnQoKSkKICAgICAgICAgICAgIHBhZ2VDbGll
bnQoKS5kb25lRGVmZXJyaW5nVG91Y2hTdGFydChmYWxzZSk7CisgICAgICAgIGlmICghaXNIYW5k
bGluZ1ByZXZlbnRhYmxlVG91Y2hFbmQoKSkKKyAgICAgICAgICAgIHBhZ2VDbGllbnQoKS5kb25l
RGVmZXJyaW5nVG91Y2hFbmQoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0y
OTE4LDE3ICsyOTIwLDI5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVQcmV2ZW50YWJsZVRv
dWNoRXZlbnQoTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgICAgIGRpZFJlY2VpdmVF
dmVudChldmVudC50eXBlKCksIGZhbHNlKTsKICAgICAgICAgaWYgKCFpc0hhbmRsaW5nUHJldmVu
dGFibGVUb3VjaFN0YXJ0KCkpCiAgICAgICAgICAgICBwYWdlQ2xpZW50KCkuZG9uZURlZmVycmlu
Z1RvdWNoU3RhcnQoZmFsc2UpOworICAgICAgICBpZiAoIWlzSGFuZGxpbmdQcmV2ZW50YWJsZVRv
dWNoRW5kKCkpCisgICAgICAgICAgICBwYWdlQ2xpZW50KCkuZG9uZURlZmVycmluZ1RvdWNoRW5k
KGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChldmVudC50eXBlKCkg
PT0gV2ViRXZlbnQ6OlRvdWNoU3RhcnQpIHsKLSAgICAgICAgKyttX2hhbmRsaW5nUHJldmVudGFi
bGVUb3VjaFN0YXJ0Q291bnQ7CisgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6VG91
Y2hTdGFydCB8fCBldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6OlRvdWNoRW5kKSB7CisgICAgICAg
IGlmIChldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6OlRvdWNoU3RhcnQpCisgICAgICAgICAgICAr
K21faGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnRDb3VudDsKKworICAgICAgICBpZiAoZXZl
bnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3VjaEVuZCkKKyAgICAgICAgICAgICsrbV9oYW5kbGlu
Z1ByZXZlbnRhYmxlVG91Y2hFbmRDb3VudDsKKwogICAgICAgICBGdW5jdGlvbjx2b2lkKGJvb2ws
IENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGV2ZW50XShib29sIGhhbmRsZWQsIENhbGxiYWNrQmFz
ZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgICAgIGJvb2wgZGlkRmluaXNoRGVmZXJyaW5nVG91
Y2hTdGFydCA9IGZhbHNlOwogICAgICAgICAgICAgQVNTRVJUX0lNUExJRVMoZXZlbnQudHlwZSgp
ID09IFdlYkV2ZW50OjpUb3VjaFN0YXJ0LCBtX2hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0
Q291bnQpOwogICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6VG91Y2hT
dGFydCAmJiBtX2hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0Q291bnQpCiAgICAgICAgICAg
ICAgICAgZGlkRmluaXNoRGVmZXJyaW5nVG91Y2hTdGFydCA9ICEtLW1faGFuZGxpbmdQcmV2ZW50
YWJsZVRvdWNoU3RhcnRDb3VudDsKIAorICAgICAgICAgICAgYm9vbCBkaWRGaW5pc2hEZWZlcnJp
bmdUb3VjaEVuZCA9IGZhbHNlOworICAgICAgICAgICAgQVNTRVJUX0lNUExJRVMoZXZlbnQudHlw
ZSgpID09IFdlYkV2ZW50OjpUb3VjaEVuZCwgbV9oYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hFbmRD
b3VudCk7CisgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3VjaEVu
ZCAmJiBtX2hhbmRsaW5nUHJldmVudGFibGVUb3VjaEVuZENvdW50KQorICAgICAgICAgICAgICAg
IGRpZEZpbmlzaERlZmVycmluZ1RvdWNoRW5kID0gIS0tbV9oYW5kbGluZ1ByZXZlbnRhYmxlVG91
Y2hFbmRDb3VudDsKKwogICAgICAgICAgICAgYm9vbCBoYW5kbGVkT3JGYWlsZWRXaXRoRXJyb3Ig
PSBoYW5kbGVkIHx8IGVycm9yICE9IENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUgfHwgbV9oYW5k
bGVkU3luY2hyb25vdXNUb3VjaEV2ZW50V2hpbGVEaXNwYXRjaGluZ1ByZXZlbnRhYmxlVG91Y2hT
dGFydDsKICAgICAgICAgICAgIGlmICghaXNIYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydCgp
KQogICAgICAgICAgICAgICAgIG1faGFuZGxlZFN5bmNocm9ub3VzVG91Y2hFdmVudFdoaWxlRGlz
cGF0Y2hpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnQgPSBmYWxzZTsKQEAgLTI5NDEsNiArMjk1NSw5
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVQcmV2ZW50YWJsZVRvdWNoRXZlbnQoTmF0aXZl
V2ViVG91Y2hFdmVudCYgZXZlbnQpCiAKICAgICAgICAgICAgIGlmIChkaWRGaW5pc2hEZWZlcnJp
bmdUb3VjaFN0YXJ0KQogICAgICAgICAgICAgICAgIHBhZ2VDbGllbnQoKS5kb25lRGVmZXJyaW5n
VG91Y2hTdGFydChoYW5kbGVkT3JGYWlsZWRXaXRoRXJyb3IpOworCisgICAgICAgICAgICBpZiAo
ZGlkRmluaXNoRGVmZXJyaW5nVG91Y2hFbmQpCisgICAgICAgICAgICAgICAgcGFnZUNsaWVudCgp
LmRvbmVEZWZlcnJpbmdUb3VjaEVuZChoYW5kbGVkT3JGYWlsZWRXaXRoRXJyb3IpOwogICAgICAg
ICB9OwogCiAgICAgICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1dChXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSwgbV9wcm9jZXNzLT50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0
aXZpdHkoIldlYlBhZ2VQcm94eTo6aGFuZGxlUHJldmVudGFibGVUb3VjaEV2ZW50Il9zKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDBkZjYxNmI3NmZiNzUwMzNl
ZjIwMTc5ZmU1YjI5NmYyODM1NWUzZTEuLjk2NTZhOTZhNDU2MTY4NWI1YmFhZWNjZDgxZDI5YThj
M2E5OTc0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNzU5
LDYgKzE3NTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbkZvck1lZGlhQ2Fw
dHVyZSh1aW50NjRfdCk7CiAKICAgICBib29sIGlzSGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3Rh
cnQoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0Q291bnQ7
IH0KKyAgICBib29sIGlzSGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoRW5kKCkgY29uc3QgeyByZXR1
cm4gbV9oYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hFbmRDb3VudDsgfQogCiAgICAgYm9vbCBoYXNR
dWV1ZWRLZXlFdmVudCgpIGNvbnN0OwogICAgIGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQm
IGZpcnN0UXVldWVkS2V5RXZlbnQoKSBjb25zdDsKQEAgLTI2NDMsNiArMjY0NCw3IEBAIHByaXZh
dGU6CiAKICAgICBib29sIG1faGFuZGxlZFN5bmNocm9ub3VzVG91Y2hFdmVudFdoaWxlRGlzcGF0
Y2hpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnQgeyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IG1faGFu
ZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnRDb3VudCB7IDAgfTsKKyAgICB1aW50NjRfdCBtX2hh
bmRsaW5nUHJldmVudGFibGVUb3VjaEVuZENvdW50IHsgMCB9OwogCiAjaWYgRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCiAgICAgUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBtX2NvbG9yUGlja2VyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRl
eCA4YWJiMTY4Nzk1MTVhZTdlNDQ5NTUzNWIzMzkzZWZiM2I2ZmE3MDBkLi4zODAxYjUyYzZjNWFh
OWU0NzY2MjQxMTk2ZDExMDczYzAwNmUxM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTEzLDYgKzExMyw3IEBAIHByaXZhdGU6
CiAjZW5kaWYKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIGRvbmVEZWZl
cnJpbmdUb3VjaFN0YXJ0KGJvb2wgcHJldmVudE5hdGl2ZUdlc3R1cmVzKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRvbmVEZWZlcnJpbmdUb3VjaEVuZChib29sIHByZXZlbnROYXRpdmVHZXN0dXJlcykg
b3ZlcnJpZGU7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBv
cHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwogICAgIFJlZjxXZWJDb3JlOjpW
YWxpZGF0aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxlKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6U2V0dGluZ3MmKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpp
bmRleCA5YzUzOWVlZjg0M2IyNDhiMjRkODkyN2FhZmEzY2FmZDc5YmIzNGE0Li4yZTQ0N2M2MGYy
Y2JjYjk0YTI0YzljZjEwNzViN2M3Nzg4ZjRlZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00NTIsNiArNDUyLDExIEBAIHZv
aWQgUGFnZUNsaWVudEltcGw6OmRvbmVEZWZlcnJpbmdUb3VjaFN0YXJ0KGJvb2wgcHJldmVudE5h
dGl2ZUdlc3R1cmVzKQogICAgIFttX2NvbnRlbnRWaWV3IF9kb25lRGVmZXJyaW5nVG91Y2hTdGFy
dDpwcmV2ZW50TmF0aXZlR2VzdHVyZXNdOwogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25l
RGVmZXJyaW5nVG91Y2hFbmQoYm9vbCBwcmV2ZW50TmF0aXZlR2VzdHVyZXMpCit7CisgICAgW21f
Y29udGVudFZpZXcgX2RvbmVEZWZlcnJpbmdUb3VjaEVuZDpwcmV2ZW50TmF0aXZlR2VzdHVyZXNd
OworfQorCiAjZW5kaWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAKIFJlZlB0cjxXZWJQ
b3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBh
Z2VQcm94eSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggNDE0NmE5ZmY5MzlhMzA2YmIxNmNlZDZhZTlhOGU2
M2RhNDBmMDBlMy4uZGMzMzc1N2NkZWY4MjM4OTAxMTg0ZTAxM2Y5Y2IyYjhmMzUzMWUyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24uaApAQCAtMjQ1LDYgKzI0NSw4IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPFdL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlczsKICAgICBSZXRhaW5QdHI8
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoU3RhcnREZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2VzdHVyZXM7CiAgICAgUmV0YWluUHRyPFdL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZVJl
Y29nbml6ZXJGb3JTeW50aGV0aWNUYXBHZXN0dXJlczsKKyAgICBSZXRhaW5QdHI8V0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJG
b3JTeW50aGV0aWNUYXBHZXN0dXJlczsKKyAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplcj4gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JOb25TeW50
aGV0aWNUYXBHZXN0dXJlczsKICNlbmRpZgogICAgIFJldGFpblB0cjxVSVdlYlRvdWNoRXZlbnRz
R2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXI7CiAKQEAgLTU0
MCw2ICs1NDIsNyBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xB
UkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogI2VuZGlmCiAjaWYgRU5BQkxF
KElPU19UT1VDSF9FVkVOVFMpCiAtICh2b2lkKV9kb25lRGVmZXJyaW5nVG91Y2hTdGFydDooQk9P
TClwcmV2ZW50TmF0aXZlR2VzdHVyZXM7CistICh2b2lkKV9kb25lRGVmZXJyaW5nVG91Y2hFbmQ6
KEJPT0wpcHJldmVudE5hdGl2ZUdlc3R1cmVzOwogI2VuZGlmCiAtICh2b2lkKV9jb21taXRQb3Rl
bnRpYWxUYXBGYWlsZWQ7CiAtICh2b2lkKV9kaWROb3RIYW5kbGVUYXBBc0NsaWNrOihjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYpcG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAxYjA5OWVhYzcyNjk3
MjMwNjE3MDk0ZGUyYmJlOTFjYzcyY2UwMGRiLi42NzVkMmYxYzU0MTNlODQ0YWU3ZjMzNGM3N2U4
MjQ5OWNiYzUzYTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTc3Myw3ICs3NzMsMTMgQEAgLSAodm9p
ZClzZXRVcEludGVyYWN0aW9uCiAgICAgX3RvdWNoU3RhcnREZWZlcnJpbmdHZXN0dXJlUmVjb2du
aXplckZvclN5bnRoZXRpY1RhcEdlc3R1cmVzID0gYWRvcHROUyhbW1dLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoRGVmZXJyaW5nR2VzdHVyZURlbGVnYXRlOnNlbGZd
KTsKICAgICBbX3RvdWNoU3RhcnREZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvclN5bnRoZXRp
Y1RhcEdlc3R1cmVzIHNldE5hbWU6QCJUb3VjaCBzdGFydCBkZWZlcnJlciAoc3ludGhldGljIHRh
cCkiXTsKIAotICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBp
biBzZWxmLl90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZXMpIHsKKyAgICBfdG91Y2hFbmREZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplckZvclN5bnRoZXRpY1RhcEdlc3R1cmVzID0gYWRvcHROUyhb
W1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoRGVmZXJyaW5nR2Vz
dHVyZURlbGVnYXRlOnNlbGZdKTsKKyAgICBbX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXJGb3JTeW50aGV0aWNUYXBHZXN0dXJlcyBzZXROYW1lOkAiVG91Y2ggZW5kIGRlZmVycmVy
IChzeW50aGV0aWMgdGFwKSJdOworCisgICAgX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXJGb3JOb25TeW50aGV0aWNUYXBHZXN0dXJlcyA9IGFkb3B0TlMoW1tXS0RlZmVycmluZ0dl
c3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aERlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZTpz
ZWxmXSk7CisgICAgW190b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yTm9uU3lu
dGhldGljVGFwR2VzdHVyZXMgc2V0TmFtZTpAIlRvdWNoIGVuZCBkZWZlcnJlciAobm9uLXN5bnRo
ZXRpYyB0YXApIl07CisKKyAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdl
c3R1cmUgaW4gc2VsZi5fZGVmZXJyaW5nR2VzdHVyZXMpIHsKICAgICAgICAgZ2VzdHVyZS5kZWxl
Z2F0ZSA9IHNlbGY7CiAgICAgICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOmdlc3R1cmVd
OwogICAgIH0KQEAgLTk1Myw3ICs5NTksNyBAQCAtICh2b2lkKWNsZWFuVXBJbnRlcmFjdGlvbgog
ICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl90b3VjaEV2ZW50R2VzdHVyZVJlY29n
bml6ZXIuZ2V0KCldOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgZm9yIChX
S0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYuX3RvdWNoU3RhcnRE
ZWZlcnJpbmdHZXN0dXJlcykgeworICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ciAqZ2VzdHVyZSBpbiBzZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykgewogICAgICAgICBnZXN0dXJl
LmRlbGVnYXRlID0gbmlsOwogICAgICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpn
ZXN0dXJlXTsKICAgICB9CkBAIC0xMDg0LDcgKzEwOTAsNyBAQCAtICh2b2lkKV9jYW5jZWxQZW5k
aW5nS2V5RXZlbnRIYW5kbGVyCiAtICh2b2lkKV9yZW1vdmVEZWZhdWx0R2VzdHVyZVJlY29nbml6
ZXJzCiB7CiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgZm9yIChXS0RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYuX3RvdWNoU3RhcnREZWZlcnJpbmdH
ZXN0dXJlcykKKyAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUg
aW4gc2VsZi5fZGVmZXJyaW5nR2VzdHVyZXMpCiAgICAgICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVS
ZWNvZ25pemVyOmdlc3R1cmVdOwogI2VuZGlmCiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29n
bml6ZXI6X3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC0xMTExLDcgKzEx
MTcsNyBAQCAtICh2b2lkKV9yZW1vdmVEZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzCiAtICh2b2lk
KV9hZGREZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzCiB7CiAjaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCi0gICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGlu
IHNlbGYuX3RvdWNoU3RhcnREZWZlcnJpbmdHZXN0dXJlcykKKyAgICBmb3IgKFdLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5fZGVmZXJyaW5nR2VzdHVyZXMpCiAg
ICAgICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOmdlc3R1cmVdOwogI2VuZGlmCiAgICAg
W3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplci5n
ZXQoKV07CkBAIC0xNTUwLDEyICsxNTU2LDE4IEBAIC0gKHZvaWQpX3dlYlRvdWNoRXZlbnRzUmVj
b2duaXplZDooVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlCiAg
ICAgICAgICAgICBbc2VsZi53aW5kb3cgbWFrZUtleVdpbmRvd107CiAKICNpZiBFTkFCTEUoSU9T
X1RPVUNIX0VWRU5UUykKLSAgICAgICAgaWYgKCFfcGFnZS0+aXNIYW5kbGluZ1ByZXZlbnRhYmxl
VG91Y2hTdGFydCgpKSB7Ci0gICAgICAgICAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29n
bml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5fdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVzKSB7Cisg
ICAgICAgIGF1dG8gc3RvcERlZmVycmluZ05hdGl2ZUdlc3R1cmVzSWZOZWVkZWQgPSBbXSAoTlNB
cnJheTxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICo+ICpkZWZlcnJpbmdHZXN0dXJlcykg
eworICAgICAgICAgICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJl
IGluIGRlZmVycmluZ0dlc3R1cmVzKSB7CiAgICAgICAgICAgICAgICAgaWYgKGdlc3R1cmUuc3Rh
dGUgPT0gVUlHZXN0dXJlUmVjb2duaXplclN0YXRlUG9zc2libGUpCiAgICAgICAgICAgICAgICAg
ICAgIGdlc3R1cmUuc3RhdGUgPSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVGYWlsZWQ7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBpZiAoIV9wYWdlLT5p
c0hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0KCkpCisgICAgICAgICAgICBzdG9wRGVmZXJy
aW5nTmF0aXZlR2VzdHVyZXNJZk5lZWRlZChzZWxmLl90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVy
ZXMpOworCisgICAgICAgIGlmICghX3BhZ2UtPmlzSGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoRW5k
KCkpCisgICAgICAgICAgICBzdG9wRGVmZXJyaW5nTmF0aXZlR2VzdHVyZXNJZk5lZWRlZChzZWxm
Ll90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVzKTsKICNlbmRpZiAvLyBFTkFCTEUoSU9TX1RPVUNI
X0VWRU5UUykKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTE3MzYs
NiArMTc0OCwxNCBAQCAtICh2b2lkKV93ZWJUb3VjaEV2ZW50Oihjb25zdCBXZWJLaXQ6Ok5hdGl2
ZVdlYlRvdWNoRXZlbnQmKXRvdWNoRXZlbnQgcHJldmVudHNOYQogCiAjaWYgRU5BQkxFKElPU19U
T1VDSF9FVkVOVFMpCiAKKy0gKE5TQXJyYXk8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAq
PiAqKV9kZWZlcnJpbmdHZXN0dXJlcworeworICAgIGF1dG8gZ2VzdHVyZXMgPSBbTlNNdXRhYmxl
QXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6NV07CisgICAgW2dlc3R1cmVzIGFkZE9iamVjdHNGcm9t
QXJyYXk6c2VsZi5fdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVzXTsKKyAgICBbZ2VzdHVyZXMg
YWRkT2JqZWN0c0Zyb21BcnJheTpzZWxmLl90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVzXTsKKyAg
ICByZXR1cm4gZ2VzdHVyZXM7Cit9CisKIC0gKE5TQXJyYXk8V0tEZWZlcnJpbmdHZXN0dXJlUmVj
b2duaXplciAqPiAqKV90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZXMKIHsKICAgICBXS0RlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyICpyZWNvZ25pemVyc1szXTsKQEAgLTE3NTAsMTIgKzE3NzAs
MzEgQEAgLSAoTlNBcnJheTxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICo+ICopX3RvdWNo
U3RhcnREZWZlcnJpbmdHZXN0dXJlcwogICAgIHJldHVybiBbTlNBcnJheSBhcnJheVdpdGhPYmpl
Y3RzOnJlY29nbml6ZXJzIGNvdW50OmNvdW50XTsKIH0KIAorLSAoTlNBcnJheTxXS0RlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyICo+ICopX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZXMKK3sKKyAg
ICBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpyZWNvZ25pemVyc1syXTsKKyAgICBOU1VJ
bnRlZ2VyIGNvdW50ID0gMDsKKyAgICBhdXRvIGFkZCA9IFsmXSAoY29uc3QgUmV0YWluUHRyPFdL
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+JiByZWNvZ25pemVyKSB7CisgICAgICAgIGlmIChy
ZWNvZ25pemVyKQorICAgICAgICAgICAgcmVjb2duaXplcnNbY291bnQrK10gPSByZWNvZ25pemVy
LmdldCgpOworICAgIH07CisgICAgYWRkKF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25p
emVyRm9yU3ludGhldGljVGFwR2VzdHVyZXMpOworICAgIGFkZChfdG91Y2hFbmREZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplckZvck5vblN5bnRoZXRpY1RhcEdlc3R1cmVzKTsKKyAgICByZXR1cm4g
W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0czpyZWNvZ25pemVycyBjb3VudDpjb3VudF07Cit9CisK
IC0gKHZvaWQpX2RvbmVEZWZlcnJpbmdUb3VjaFN0YXJ0OihCT09MKXByZXZlbnROYXRpdmVHZXN0
dXJlcwogewogICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBp
biBzZWxmLl90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZXMpCiAgICAgICAgIFtnZXN0dXJlIHNl
dERlZmF1bHRQcmV2ZW50ZWQ6cHJldmVudE5hdGl2ZUdlc3R1cmVzXTsKIH0KIAorLSAodm9pZClf
ZG9uZURlZmVycmluZ1RvdWNoRW5kOihCT09MKXByZXZlbnROYXRpdmVHZXN0dXJlcworeworICAg
IGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLl90b3Vj
aEVuZERlZmVycmluZ0dlc3R1cmVzKQorICAgICAgICBbZ2VzdHVyZSBzZXREZWZhdWx0UHJldmVu
dGVkOnByZXZlbnROYXRpdmVHZXN0dXJlc107Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykKIAogc3RhdGljIE5TVmFsdWUgKm5zU2l6ZUZvclRhcEhpZ2hsaWdodEJvcmRl
clJhZGl1cyhXZWJDb3JlOjpJbnRTaXplIGJvcmRlclJhZGl1cywgQ0dGbG9hdCBib3JkZXJSYWRp
dXNTY2FsZSkKQEAgLTIxMzcsNyArMjE3Niw3IEBAIHN0YXRpYyBDbGFzcyB0YXBBbmRBSGFsZlJl
Y29nbml6ZXJDbGFzcygpCiAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNv
Z25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVjb2duaXplU2ltdWx0YW5lb3VzbHlX
aXRoR2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIqKW90aGVyR2VzdHVyZVJl
Y29nbml6ZXIKIHsKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAgICBmb3IgKFdLRGVm
ZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5fdG91Y2hTdGFydERlZmVy
cmluZ0dlc3R1cmVzKSB7CisgICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpn
ZXN0dXJlIGluIHNlbGYuX2RlZmVycmluZ0dlc3R1cmVzKSB7CiAgICAgICAgIGlmIChpc1NhbWVQ
YWlyKGdlc3R1cmVSZWNvZ25pemVyLCBvdGhlckdlc3R1cmVSZWNvZ25pemVyLCBfdG91Y2hFdmVu
dEdlc3R1cmVSZWNvZ25pemVyLmdldCgpLCBnZXN0dXJlKSkKICAgICAgICAgICAgIHJldHVybiBZ
RVM7CiAgICAgfQpAQCAtNzM2Nyw3ICs3NDA2LDE0IEBAIC0gKEJPT0wpZGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXI6KFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKilkZWZlcnJpbmdHZXN0
CiAgICAgICAgIHJldHVybiBOTzsKICAgICB9OwogCi0gICAgaWYgKFtnZXN0dXJlUmVjb2duaXpl
ciBpc0tpbmRPZkNsYXNzOldLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIuY2xhc3NdKQor
ICAgIEJPT0wgaXNTeW50aGV0aWNUYXAgPSBbZ2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFz
czpXS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLmNsYXNzXTsKKyAgICBpZiAoZGVmZXJy
aW5nR2VzdHVyZVJlY29nbml6ZXIgPT0gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXJGb3JTeW50aGV0aWNUYXBHZXN0dXJlcykKKyAgICAgICAgcmV0dXJuIGlzU3ludGhldGljVGFw
OworCisgICAgaWYgKGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyID09IF90b3VjaEVuZERlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yTm9uU3ludGhldGljVGFwR2VzdHVyZXMpCisgICAgICAg
IHJldHVybiAhaXNTeW50aGV0aWNUYXAgJiYgW2dlc3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xh
c3M6VUlUYXBHZXN0dXJlUmVjb2duaXplci5jbGFzc107CisKKyAgICBpZiAoaXNTeW50aGV0aWNU
YXApCiAgICAgICAgIHJldHVybiBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciA9PSBfdG91Y2hT
dGFydERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVyZXM7CiAK
ICAgICBpZiAobWF5RGVsYXlSZXNldE9mQ29udGFpbmluZ1N1YmdyYXBoKGdlc3R1cmVSZWNvZ25p
emVyKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417770</attachid>
            <date>2021-01-16 16:32:35 -0800</date>
            <delta_ts>2021-01-20 11:28:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220256-20210116163234.patch</filename>
            <type>text/plain</type>
            <size>24826</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ0MDljZTY4ZmU2YjYxMGY0
ZjJiYmRkMTYxOTI1MzdiMWYwMjJjNGEuLmVkNTI0OGMwZTJjMmU3ZjdkNmRlOWY0YTBhNDc2MzE2
ZGIwZmM4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjEtMDEtMTEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gInRvdWNoZW5k
IiBldmVudHMgc2hvdWxkIGJlIGRpc3BhdGNoZWQgYW5kIGhhbmRsZWQgYXN5bmNocm9ub3VzbHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDI1Ngor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ5MTI1NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgYWN0aXZlICJ0b3VjaGVuZCIgZXZlbnQg
bGlzdGVuZXJzIHRvIHNlbmQgYXN5bmNocm9ub3VzIChub24tYmxvY2tpbmcpIElQQyBtZXNzYWdl
cyB0byB0aGUgd2ViIHByb2Nlc3MgYnkKKyAgICAgICAgYXVnbWVudGluZyB0aGUgY29udGVudCB2
aWV3J3MgZGVmZXJyaW5nIGdlc3R1cmUgcmVjb2duaXplcnMuIFNlZSBiZWxvdyBmb3IgbW9yZSBk
ZXRhaWxzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9jbGljay1ldmVu
dC1hZnRlci10b3VjaGVuZC5odG1sCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmhhbmRsZVByZXZlbnRhYmxlVG91Y2hFdmVudCk6CisKKyAgICAgICAg
U2VuZCBib3RoICJ0b3VjaHN0YXJ0IiBhbmQgInRvdWNoZW5kIiBldmVudHMgYXN5bmNocm9ub3Vz
bHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6aXNIYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hFbmQgY29uc3QpOgor
CisgICAgICAgIEluIGEgc2ltaWxhciB3YXkgdG8gaG93IHdlIGRlZmVyICJ0b3VjaHN0YXJ0Iiwg
YWRkIGEgY291bnRlciB0byBrZWVwIHRyYWNrIG9mIHdoZW4gd2UncmUgaGFuZGxpbmcgYW4gYWN0
aXZlCisgICAgICAgIChwcmV2ZW50YWJsZSkgdG91Y2hlbmQsIHN1Y2ggdGhhdCB3ZSBjYW4gZGVm
ZXIgYWxsIG5hdGl2ZSBnZXN0dXJlcyB0aGF0IGNhbiBiZSBwcmV2ZW50ZWQgYnkgdG91Y2hlbmQg
dW50aWwgYWZ0ZXIKKyAgICAgICAgdGhlIHBhZ2UgaXMgZG9uZSBoYW5kbGluZyB0aGUgZXZlbnQu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmRvbmVEZWZlcnJpbmdUb3VjaEVuZCk6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBzZXRVcEludGVyYWN0aW9uXSk6CisKKyAgICAgICAgQWRkIGEgbmV3IHNldCBvZiBkZWZlcnJp
bmcgZ2VzdHVyZSByZWNvZ25pemVycyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlZmVyIGFsbCB0YXAg
Z2VzdHVyZXMgb24gdGhlIGNvbnRlbnQgdmlldywKKyAgICAgICAgZHVlIHRvIGFjdGl2ZSAidG91
Y2hlbmQiIGV2ZW50IGxpc3RlbmVycy4gVGhpcyB3b3JrcyBiZWNhdXNlIGN1cnJlbnRseSwgdGhl
IG9ubHkgZGVmYXVsdCBnZXN0dXJlcyBpbiBXZWJLaXQKKyAgICAgICAgdGhhdCBjYW4gYmUgcHJl
dmVudGVkIGJ5IGNhbGxpbmcgYHByZXZlbnREZWZhdWx0KClgIG9uICJ0b3VjaGVuZCIgZXZlbnRz
IGFyZSB0YXAgZ2VzdHVyZXMuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50
ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVtb3ZlRGVmYXVsdEdlc3R1
cmVSZWNvZ25pemVyc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9hZGREZWZhdWx0R2Vz
dHVyZVJlY29nbml6ZXJzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3dlYlRvdWNoRXZl
bnRzUmVjb2duaXplZDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGVmZXJyaW5nR2Vz
dHVyZXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfdG91Y2hFbmREZWZlcnJpbmdHZXN0
dXJlc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kb25lRGVmZXJyaW5nVG91Y2hFbmQ6
XSk6CisKKyAgICAgICAgQWRkIGEgaG9vayB0byAibGlmdCIgdGhlIGdlc3R1cmUgZ2F0ZSB1cG9u
IHRvdWNoZW5kLCB3aGljaCBhbGxvd3MgYWxsIGRlZmVycmVkIHRhcCBnZXN0dXJlcyB0byBlaXRo
ZXIgZmFpbCAoaW4KKyAgICAgICAgdGhlIGNhc2Ugd2hlcmUgdGhlIHBhZ2UgcHJldmVudGVkIGRl
ZmF1bHQpLCBvciByZWNvZ25pemUgKGluIHRoZSBjYXNlIHdoZXJlIHRoZSBwYWdlIGRpZCBub3Qg
cHJldmVudCBkZWZhdWx0KS4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGdlc3R1cmVSZWNv
Z25pemVyOnNob3VsZFJlY29nbml6ZVNpbXVsdGFuZW91c2x5V2l0aEdlc3R1cmVSZWNvZ25pemVy
Ol0pOgorCisgICAgICAgIFJlcGxhY2UgYF90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVyZXNgIHdp
dGggYF9kZWZlcnJpbmdHZXN0dXJlc2AgaW4gc2V2ZXJhbCBjYWxsIHNpdGVzIHRoYXQgbmVlZCB0
byBpdGVyYXRlIG92ZXIKKyAgICAgICAgYWxsIGRlZmVycmluZyBnZXN0dXJlcyBvbiB0aGUgY29u
dGVudCB2aWV3LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbmdsZVRhcERpZFJlc2V0
Ol0pOgorCisgICAgICAgIFdoZW4gcmVzZXR0aW5nIHRoZSBzaW5nbGUgdGFwIGdlc3R1cmUsIGVu
c3VyZSB0aGF0IHRoZSB0YXAgaGlnaGxpZ2h0IHZpZXcgaXMgcmVtb3ZlZCBieSBjYWxsaW5nCisg
ICAgICAgIGAtX2ZpbmlzaEludGVyYWN0aW9uYDsgdGhpcyBpcyBiZWNhdXNlIGFuIGFjdGl2ZSB0
b3VjaGVuZCBldmVudCBoYW5kbGVyIG1heSBub3cgZGVmZXIgYC1fc2luZ2xlVGFwUmVjb2duaXpl
ZDpgCisgICAgICAgIHVudGlsIGFmdGVyIHRoZSBlbmRpbmcgdGhlIHRvdWNoLCB3aGljaCBjYXVz
ZXMgYC1fc2hvd1RhcEhpZ2hsaWdodGAgdG8gYmUgY2FsbGVkIHdpdGhvdXQgYSBtYXRjaGluZyBj
YWxsIHRvCisgICAgICAgIHJlbW92ZSB0aGUgaGlnaGxpZ2h0LiBTaW5jZSB3ZSBrbm93IHRoYXQg
dGhlIHN5bnRoZXRpYyB0YXAgZ2VzdHVyZSBtdXN0IGV2ZW50dWFsbHkgYmUgcmVzZXQgYWZ0ZXIg
cmVjb2duaXRpb24sCisgICAgICAgIHRoaXMgaXMgYSBtb3JlIHN1aXRhYmxlIGNhdGNoLWFsbCBm
b3IgcmVtb3ZpbmcgdGhlIHRhcCBoaWdobGlnaHQuCisKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcjpzaG91bGREZWZlck90aGVyR2VzdHVyZVJlY29n
bml6ZXI6XSk6CisKKyAgICAgICAgRm9yIHRoZSAidG91Y2hlbmQiIGRlZmVycmluZyBnZXN0dXJl
IHJlY29nbml6ZXJzLCBwYXJ0aXRpb24gYWxsIHRhcCBnZXN0dXJlcyBvbiB0aGUgY29udGVudCB2
aWV3IGludG8gdGhyZWUKKyAgICAgICAgc3ViZ3JhcGhzIHRoYXQgbWlycm9yIHRoZSBleHRhbnQg
Z2VzdHVyZSBzdWJncmFwaHMgY3VycmVudGx5IHVzZWQgZm9yIHRoZSAidG91Y2hzdGFydCIgZGVm
ZXJyaW5nIGdlc3R1cmVzLiBUaGlzCisgICAgICAgIGVuc3VyZXMgdGhhdCBzeW50aGV0aWMgY2xp
Y2tzIGFsd2F5cyByZW1haW4gZmFzdCB3aGVuIHRoZSBibG9ja2luZyBkb3VibGUgdGFwIGdlc3R1
cmUgaXMgZGlzYWJsZWQsIGFuZCB0aGF0CisgICAgICAgIG90aGVyIHRhcCBnZXN0dXJlcyAoc3Vj
aCBhcyB0aGUgdGV4dCBpbnRlcmFjdGlvbiBtdWx0aS10YXAgZ2VzdHVyZSkgYXJlIHN0aWxsIGlt
bWVkaWF0ZWx5IHJlc2V0LgorCiAyMDIxLTAxLTE1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEVtb2ppIGtleWJvYXJkIGNvdmVycyB0ZXh0
IGZpZWxkIG9uIHR3aXR0ZXIuY29tL21lc3NhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgKaW5kZXggNjcyYjAxNWRjZjVhYWQ4Zjc4YWEzMzMwMjRiNjk5YTlhNDgyMDQwZi4uNTkz
OWM3MWRiY2ExNmMzYzE2Njg5YWMwZjhhYzU1NWQ2YzI2MDc1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaApAQCAtMzQwLDYgKzM0MCw3IEBAIHB1YmxpYzoKICNlbmRpZgogI2lm
IEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIHZpcnR1YWwgdm9pZCBkb25lRGVmZXJyaW5n
VG91Y2hTdGFydChib29sIHByZXZlbnROYXRpdmVHZXN0dXJlcykgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkb25lRGVmZXJyaW5nVG91Y2hFbmQoYm9vbCBwcmV2ZW50TmF0aXZlR2VzdHVyZXMpID0g
MDsKICNlbmRpZgogCiAgICAgdmlydHVhbCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0
ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGFlODdhMGJhZmVmNTdhYTZkMzkyZjllZWJlZjQ4YzU4
ODExZDVlZTMuLjIwYzE4MjM3YjM0MDVmZjRhY2E0M2NmYTEzY2I2OTNkNmViZmUyMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjg5MiwxMCArMjg5Miwx
NSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlUHJldmVudGFibGVUb3VjaEV2ZW50KE5hdGl2
ZVdlYlRvdWNoRXZlbnQmIGV2ZW50KQogICAgICAgICBkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMo
KTsKICAgICB9KTsKIAorICAgIGJvb2wgaXNUb3VjaFN0YXJ0ID0gZXZlbnQudHlwZSgpID09IFdl
YkV2ZW50OjpUb3VjaFN0YXJ0OworICAgIGJvb2wgaXNUb3VjaEVuZCA9IGV2ZW50LnR5cGUoKSA9
PSBXZWJFdmVudDo6VG91Y2hFbmQ7CisKICAgICBUcmFja2luZ1R5cGUgdG91Y2hFdmVudHNUcmFj
a2luZ1R5cGUgPSB0b3VjaEV2ZW50VHJhY2tpbmdUeXBlKGV2ZW50KTsKICAgICBpZiAodG91Y2hF
dmVudHNUcmFja2luZ1R5cGUgPT0gVHJhY2tpbmdUeXBlOjpOb3RUcmFja2luZykgewotICAgICAg
ICBpZiAoIWlzSGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnQoKSkKKyAgICAgICAgaWYgKGlz
VG91Y2hTdGFydCkKICAgICAgICAgICAgIHBhZ2VDbGllbnQoKS5kb25lRGVmZXJyaW5nVG91Y2hT
dGFydChmYWxzZSk7CisgICAgICAgIGlmIChpc1RvdWNoRW5kKQorICAgICAgICAgICAgcGFnZUNs
aWVudCgpLmRvbmVEZWZlcnJpbmdUb3VjaEVuZChmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTI5MDksMTkgKzI5MTQsMzEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVBy
ZXZlbnRhYmxlVG91Y2hFdmVudChOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKICAgICAgICAg
ZXZlbnQuc2V0Q2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKGZhbHNlKTsKICAgICAgICAgaGFuZGxl
VW5wcmV2ZW50YWJsZVRvdWNoRXZlbnQoZXZlbnQpOwogICAgICAgICBkaWRSZWNlaXZlRXZlbnQo
ZXZlbnQudHlwZSgpLCBmYWxzZSk7Ci0gICAgICAgIGlmICghaXNIYW5kbGluZ1ByZXZlbnRhYmxl
VG91Y2hTdGFydCgpKQorICAgICAgICBpZiAoaXNUb3VjaFN0YXJ0KQogICAgICAgICAgICAgcGFn
ZUNsaWVudCgpLmRvbmVEZWZlcnJpbmdUb3VjaFN0YXJ0KGZhbHNlKTsKKyAgICAgICAgaWYgKGlz
VG91Y2hFbmQpCisgICAgICAgICAgICBwYWdlQ2xpZW50KCkuZG9uZURlZmVycmluZ1RvdWNoRW5k
KGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChldmVudC50eXBlKCkg
PT0gV2ViRXZlbnQ6OlRvdWNoU3RhcnQpIHsKLSAgICAgICAgKyttX2hhbmRsaW5nUHJldmVudGFi
bGVUb3VjaFN0YXJ0Q291bnQ7CisgICAgaWYgKGlzVG91Y2hTdGFydCB8fCBpc1RvdWNoRW5kKSB7
CisgICAgICAgIGlmIChpc1RvdWNoU3RhcnQpCisgICAgICAgICAgICArK21faGFuZGxpbmdQcmV2
ZW50YWJsZVRvdWNoU3RhcnRDb3VudDsKKworICAgICAgICBpZiAoaXNUb3VjaEVuZCkKKyAgICAg
ICAgICAgICsrbV9oYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hFbmRDb3VudDsKKwogICAgICAgICBG
dW5jdGlvbjx2b2lkKGJvb2wsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjb21wbGV0aW9uSGFuZGxl
ciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGV2ZW50XShib29sIGhh
bmRsZWQsIENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgICAgIGJvb2wgZGlk
RmluaXNoRGVmZXJyaW5nVG91Y2hTdGFydCA9IGZhbHNlOwogICAgICAgICAgICAgQVNTRVJUX0lN
UExJRVMoZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3VjaFN0YXJ0LCBtX2hhbmRsaW5nUHJl
dmVudGFibGVUb3VjaFN0YXJ0Q291bnQpOwogICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUoKSA9
PSBXZWJFdmVudDo6VG91Y2hTdGFydCAmJiBtX2hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0
Q291bnQpCiAgICAgICAgICAgICAgICAgZGlkRmluaXNoRGVmZXJyaW5nVG91Y2hTdGFydCA9ICEt
LW1faGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnRDb3VudDsKIAorICAgICAgICAgICAgYm9v
bCBkaWRGaW5pc2hEZWZlcnJpbmdUb3VjaEVuZCA9IGZhbHNlOworICAgICAgICAgICAgQVNTRVJU
X0lNUExJRVMoZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3VjaEVuZCwgbV9oYW5kbGluZ1By
ZXZlbnRhYmxlVG91Y2hFbmRDb3VudCk7CisgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSgpID09
IFdlYkV2ZW50OjpUb3VjaEVuZCAmJiBtX2hhbmRsaW5nUHJldmVudGFibGVUb3VjaEVuZENvdW50
KQorICAgICAgICAgICAgICAgIGRpZEZpbmlzaERlZmVycmluZ1RvdWNoRW5kID0gIS0tbV9oYW5k
bGluZ1ByZXZlbnRhYmxlVG91Y2hFbmRDb3VudDsKKwogICAgICAgICAgICAgYm9vbCBoYW5kbGVk
T3JGYWlsZWRXaXRoRXJyb3IgPSBoYW5kbGVkIHx8IGVycm9yICE9IENhbGxiYWNrQmFzZTo6RXJy
b3I6Ok5vbmUgfHwgbV9oYW5kbGVkU3luY2hyb25vdXNUb3VjaEV2ZW50V2hpbGVEaXNwYXRjaGlu
Z1ByZXZlbnRhYmxlVG91Y2hTdGFydDsKICAgICAgICAgICAgIGlmICghaXNIYW5kbGluZ1ByZXZl
bnRhYmxlVG91Y2hTdGFydCgpKQogICAgICAgICAgICAgICAgIG1faGFuZGxlZFN5bmNocm9ub3Vz
VG91Y2hFdmVudFdoaWxlRGlzcGF0Y2hpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnQgPSBmYWxzZTsK
QEAgLTI5MzQsNiArMjk1MSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVQcmV2ZW50YWJs
ZVRvdWNoRXZlbnQoTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAKICAgICAgICAgICAgIGlm
IChkaWRGaW5pc2hEZWZlcnJpbmdUb3VjaFN0YXJ0KQogICAgICAgICAgICAgICAgIHBhZ2VDbGll
bnQoKS5kb25lRGVmZXJyaW5nVG91Y2hTdGFydChoYW5kbGVkT3JGYWlsZWRXaXRoRXJyb3IpOwor
CisgICAgICAgICAgICBpZiAoZGlkRmluaXNoRGVmZXJyaW5nVG91Y2hFbmQpCisgICAgICAgICAg
ICAgICAgcGFnZUNsaWVudCgpLmRvbmVEZWZlcnJpbmdUb3VjaEVuZChoYW5kbGVkT3JGYWlsZWRX
aXRoRXJyb3IpOwogICAgICAgICB9OwogCiAgICAgICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2Fs
bGJhY2tzLnB1dChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbV9wcm9jZXNzLT50aHJvdHRs
ZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHkoIldlYlBhZ2VQcm94eTo6aGFuZGxlUHJldmVudGFibGVU
b3VjaEV2ZW50Il9zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDY3YTRlYjlmNjIxZDQzNzM4ZTAxYjllYWYwMTEyOTNjZWI1N2M5OTAuLjU5ZmY1ZjM5YTYwZDEw
MTI5Y2IxYTUzM2Q5ZTdhNmQxNDAwZjkyNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xNzQxLDYgKzE3NDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcmll
bnRhdGlvbkZvck1lZGlhQ2FwdHVyZSh1aW50NjRfdCk7CiAKICAgICBib29sIGlzSGFuZGxpbmdQ
cmV2ZW50YWJsZVRvdWNoU3RhcnQoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsaW5nUHJldmVudGFi
bGVUb3VjaFN0YXJ0Q291bnQ7IH0KKyAgICBib29sIGlzSGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNo
RW5kKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hFbmRDb3VudDsg
fQogCiAgICAgYm9vbCBoYXNRdWV1ZWRLZXlFdmVudCgpIGNvbnN0OwogICAgIGNvbnN0IE5hdGl2
ZVdlYktleWJvYXJkRXZlbnQmIGZpcnN0UXVldWVkS2V5RXZlbnQoKSBjb25zdDsKQEAgLTI2MTks
NiArMjYyMCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faGFuZGxlZFN5bmNocm9ub3VzVG91
Y2hFdmVudFdoaWxlRGlzcGF0Y2hpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnQgeyBmYWxzZSB9Owog
ICAgIHVpbnQ2NF90IG1faGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnRDb3VudCB7IDAgfTsK
KyAgICB1aW50NjRfdCBtX2hhbmRsaW5nUHJldmVudGFibGVUb3VjaEVuZENvdW50IHsgMCB9Owog
CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAgUmVmUHRyPFdlYkNvbG9yUGlja2Vy
PiBtX2NvbG9yUGlja2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAppbmRleCA4YWJiMTY4Nzk1MTVhZTdlNDQ5NTUzNWIzMzkzZWZiM2I2ZmE3
MDBkLi4zODAxYjUyYzZjNWFhOWU0NzY2MjQxMTk2ZDExMDczYzAwNmUxM2ZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTEzLDYg
KzExMyw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykK
ICAgICB2b2lkIGRvbmVEZWZlcnJpbmdUb3VjaFN0YXJ0KGJvb2wgcHJldmVudE5hdGl2ZUdlc3R1
cmVzKSBvdmVycmlkZTsKKyAgICB2b2lkIGRvbmVEZWZlcnJpbmdUb3VjaEVuZChib29sIHByZXZl
bnROYXRpdmVHZXN0dXJlcykgb3ZlcnJpZGU7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViUG9wdXBN
ZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwog
ICAgIFJlZjxXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlPiBjcmVhdGVWYWxpZGF0aW9uQnViYmxl
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgV2ViQ29yZTo6VmFsaWRhdGlvbkJ1YmJsZTo6
U2V0dGluZ3MmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQppbmRleCA5YzUzOWVlZjg0M2IyNDhiMjRkODkyN2FhZmEzY2FmZDc5
YmIzNGE0Li4yZTQ0N2M2MGYyY2JjYjk0YTI0YzljZjEwNzViN2M3Nzg4ZjRlZTJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00
NTIsNiArNDUyLDExIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVEZWZlcnJpbmdUb3VjaFN0
YXJ0KGJvb2wgcHJldmVudE5hdGl2ZUdlc3R1cmVzKQogICAgIFttX2NvbnRlbnRWaWV3IF9kb25l
RGVmZXJyaW5nVG91Y2hTdGFydDpwcmV2ZW50TmF0aXZlR2VzdHVyZXNdOwogfQogCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpkb25lRGVmZXJyaW5nVG91Y2hFbmQoYm9vbCBwcmV2ZW50TmF0aXZlR2Vz
dHVyZXMpCit7CisgICAgW21fY29udGVudFZpZXcgX2RvbmVEZWZlcnJpbmdUb3VjaEVuZDpwcmV2
ZW50TmF0aXZlR2VzdHVyZXNdOworfQorCiAjZW5kaWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpCiAKIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBv
cHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggZDFlYWY3MGY0NTEw
MWY4YTIzMDlkY2U0MDk0ODgxMjU3ZmZkZWQzNC4uNzIxNDQ4NzQyYjNjMDRjODVkM2M5NDIzNGFl
YTBjNTUxNTM1OTZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMjQ1LDYgKzI0NSw5IEBAIHByaXZhdGU6
CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaFN0YXJ0
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJl
czsKICAgICBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoU3Rh
cnREZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckRlbGF5ZWRSZXNldHRhYmxlR2VzdHVyZXM7
CiAgICAgUmV0YWluUHRyPFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaFN0YXJ0
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JTeW50aGV0aWNUYXBHZXN0dXJlczsKKyAgICBS
ZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRW5kRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJlczsKKyAgICBS
ZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRW5kRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXJGb3JEZWxheWVkUmVzZXR0YWJsZUdlc3R1cmVzOworICAgIFJldGFp
blB0cjxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyPiBfdG91Y2hFbmREZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplckZvclN5bnRoZXRpY1RhcEdlc3R1cmVzOwogI2VuZGlmCiAgICAgUmV0YWlu
UHRyPFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRXZlbnRHZXN0dXJl
UmVjb2duaXplcjsKIApAQCAtNTQ0LDYgKzU0Nyw3IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05U
RU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcp
CiAjZW5kaWYKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKIC0gKHZvaWQpX2RvbmVEZWZl
cnJpbmdUb3VjaFN0YXJ0OihCT09MKXByZXZlbnROYXRpdmVHZXN0dXJlczsKKy0gKHZvaWQpX2Rv
bmVEZWZlcnJpbmdUb3VjaEVuZDooQk9PTClwcmV2ZW50TmF0aXZlR2VzdHVyZXM7CiAjZW5kaWYK
IC0gKHZvaWQpX2NvbW1pdFBvdGVudGlhbFRhcEZhaWxlZDsKIC0gKHZvaWQpX2RpZE5vdEhhbmRs
ZVRhcEFzQ2xpY2s6KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jilwb2ludDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IGVlM2U2NjE4YTFmNWQwZDM5NjEyNTY4MjU5NDJkYzNkZTJjZjYwM2EuLmIyZjdhOGJh
YTQ1NWQwNTZkN2ZmMjIzOGRhNmVhNDk1NjU0YmQ2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzcz
LDcgKzc3MywxNiBAQCAtICh2b2lkKXNldFVwSW50ZXJhY3Rpb24KICAgICBfdG91Y2hTdGFydERl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVyZXMgPSBhZG9wdE5T
KFtbV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdH
ZXN0dXJlRGVsZWdhdGU6c2VsZl0pOwogICAgIFtfdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVyZXMgc2V0TmFtZTpAIlRvdWNoIHN0YXJ0IGRl
ZmVycmVyIChzeW50aGV0aWMgdGFwKSJdOwogCi0gICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYuX3RvdWNoU3RhcnREZWZlcnJpbmdHZXN0dXJlcykg
eworICAgIF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlS
ZXNldHRhYmxlR2VzdHVyZXMgPSBhZG9wdE5TKFtbV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ciBhbGxvY10gaW5pdFdpdGhEZWZlcnJpbmdHZXN0dXJlRGVsZWdhdGU6c2VsZl0pOworICAgIFtf
dG91Y2hFbmREZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplckZvckltbWVkaWF0ZWx5UmVzZXR0YWJs
ZUdlc3R1cmVzIHNldE5hbWU6QCJUb3VjaCBlbmQgZGVmZXJyZXIgKGltbWVkaWF0ZSByZXNldCki
XTsKKworICAgIF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJl
c2V0dGFibGVHZXN0dXJlcyA9IGFkb3B0TlMoW1tXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVy
IGFsbG9jXSBpbml0V2l0aERlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZTpzZWxmXSk7CisgICAgW190
b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0dGFibGVHZXN0
dXJlcyBzZXROYW1lOkAiVG91Y2ggZW5kIGRlZmVycmVyIChkZWxheWVkIHJlc2V0KSJdOworCisg
ICAgX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JTeW50aGV0aWNUYXBHZXN0
dXJlcyA9IGFkb3B0TlMoW1tXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0
V2l0aERlZmVycmluZ0dlc3R1cmVEZWxlZ2F0ZTpzZWxmXSk7CisgICAgW190b3VjaEVuZERlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVyZXMgc2V0TmFtZTpAIlRv
dWNoIGVuZCBkZWZlcnJlciAoc3ludGhldGljIHRhcCkiXTsKKworICAgIGZvciAoV0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykg
ewogICAgICAgICBnZXN0dXJlLmRlbGVnYXRlID0gc2VsZjsKICAgICAgICAgW3NlbGYgYWRkR2Vz
dHVyZVJlY29nbml6ZXI6Z2VzdHVyZV07CiAgICAgfQpAQCAtOTQ5LDcgKzk1OCw3IEBAIC0gKHZv
aWQpY2xlYW5VcEludGVyYWN0aW9uCiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6
X3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAKICNpZiBFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykKLSAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1
cmUgaW4gc2VsZi5fdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVzKSB7CisgICAgZm9yIChXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYuX2RlZmVycmluZ0dlc3R1
cmVzKSB7CiAgICAgICAgIGdlc3R1cmUuZGVsZWdhdGUgPSBuaWw7CiAgICAgICAgIFtzZWxmIHJl
bW92ZUdlc3R1cmVSZWNvZ25pemVyOmdlc3R1cmVdOwogICAgIH0KQEAgLTEwODAsNyArMTA4OSw3
IEBAIC0gKHZvaWQpX2NhbmNlbFBlbmRpbmdLZXlFdmVudEhhbmRsZXIKIC0gKHZvaWQpX3JlbW92
ZURlZmF1bHRHZXN0dXJlUmVjb2duaXplcnMKIHsKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5U
UykKLSAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gc2Vs
Zi5fdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVzKQorICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLl9kZWZlcnJpbmdHZXN0dXJlcykKICAgICAg
ICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6Z2VzdHVyZV07CiAjZW5kaWYKICAgICBb
c2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVy
LmdldCgpXTsKQEAgLTExMDcsNyArMTExNiw3IEBAIC0gKHZvaWQpX3JlbW92ZURlZmF1bHRHZXN0
dXJlUmVjb2duaXplcnMKIC0gKHZvaWQpX2FkZERlZmF1bHRHZXN0dXJlUmVjb2duaXplcnMKIHsK
ICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gc2VsZi5fdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVz
KQorICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxm
Ll9kZWZlcnJpbmdHZXN0dXJlcykKICAgICAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6
Z2VzdHVyZV07CiAjZW5kaWYKICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfdG91Y2hF
dmVudEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKQEAgLTE1NDYsMTIgKzE1NTUsMTggQEAgLSAo
dm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOihVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJl
Y29nbml6ZXIgKilnZXN0dXJlUmUKICAgICAgICAgICAgIFtzZWxmLndpbmRvdyBtYWtlS2V5V2lu
ZG93XTsKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgICAgICBpZiAoIV9wYWdl
LT5pc0hhbmRsaW5nUHJldmVudGFibGVUb3VjaFN0YXJ0KCkpIHsKLSAgICAgICAgICAgIGZvciAo
V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLl90b3VjaFN0YXJ0
RGVmZXJyaW5nR2VzdHVyZXMpIHsKKyAgICAgICAgYXV0byBzdG9wRGVmZXJyaW5nTmF0aXZlR2Vz
dHVyZXNJZk5lZWRlZCA9IFtdIChOU0FycmF5PFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIg
Kj4gKmRlZmVycmluZ0dlc3R1cmVzKSB7CisgICAgICAgICAgICBmb3IgKFdLRGVmZXJyaW5nR2Vz
dHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4gZGVmZXJyaW5nR2VzdHVyZXMpIHsKICAgICAgICAg
ICAgICAgICBpZiAoZ2VzdHVyZS5zdGF0ZSA9PSBVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGVQb3Nz
aWJsZSkKICAgICAgICAgICAgICAgICAgICAgZ2VzdHVyZS5zdGF0ZSA9IFVJR2VzdHVyZVJlY29n
bml6ZXJTdGF0ZUZhaWxlZDsKICAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICB9Owor
CisgICAgICAgIGlmICghX3BhZ2UtPmlzSGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnQoKSkK
KyAgICAgICAgICAgIHN0b3BEZWZlcnJpbmdOYXRpdmVHZXN0dXJlc0lmTmVlZGVkKHNlbGYuX3Rv
dWNoU3RhcnREZWZlcnJpbmdHZXN0dXJlcyk7CisKKyAgICAgICAgaWYgKCFfcGFnZS0+aXNIYW5k
bGluZ1ByZXZlbnRhYmxlVG91Y2hFbmQoKSkKKyAgICAgICAgICAgIHN0b3BEZWZlcnJpbmdOYXRp
dmVHZXN0dXJlc0lmTmVlZGVkKHNlbGYuX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZXMpOwogI2Vu
ZGlmIC8vIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQpAQCAtMTczMiw2ICsxNzQ3LDE0IEBAIC0gKHZvaWQpX3dlYlRvdWNoRXZl
bnQ6KGNvbnN0IFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudCYpdG91Y2hFdmVudCBwcmV2ZW50
c05hCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKIAorLSAoTlNBcnJheTxXS0RlZmVy
cmluZ0dlc3R1cmVSZWNvZ25pemVyICo+ICopX2RlZmVycmluZ0dlc3R1cmVzCit7CisgICAgYXV0
byBnZXN0dXJlcyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTo2XTsKKyAgICBb
Z2VzdHVyZXMgYWRkT2JqZWN0c0Zyb21BcnJheTpzZWxmLl90b3VjaFN0YXJ0RGVmZXJyaW5nR2Vz
dHVyZXNdOworICAgIFtnZXN0dXJlcyBhZGRPYmplY3RzRnJvbUFycmF5OnNlbGYuX3RvdWNoRW5k
RGVmZXJyaW5nR2VzdHVyZXNdOworICAgIHJldHVybiBnZXN0dXJlczsKK30KKwogLSAoTlNBcnJh
eTxXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICo+ICopX3RvdWNoU3RhcnREZWZlcnJpbmdH
ZXN0dXJlcwogewogICAgIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKnJlY29nbml6ZXJz
WzNdOwpAQCAtMTc0NiwxMiArMTc2OSwzMiBAQCAtIChOU0FycmF5PFdLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIgKj4gKilfdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVzCiAgICAgcmV0dXJu
IFtOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6cmVjb2duaXplcnMgY291bnQ6Y291bnRdOwogfQog
CistIChOU0FycmF5PFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKj4gKilfdG91Y2hFbmRE
ZWZlcnJpbmdHZXN0dXJlcworeworICAgIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKnJl
Y29nbml6ZXJzWzNdOworICAgIE5TVUludGVnZXIgY291bnQgPSAwOworICAgIGF1dG8gYWRkID0g
WyZdIChjb25zdCBSZXRhaW5QdHI8V0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplcj4mIHJlY29n
bml6ZXIpIHsKKyAgICAgICAgaWYgKHJlY29nbml6ZXIpCisgICAgICAgICAgICByZWNvZ25pemVy
c1tjb3VudCsrXSA9IHJlY29nbml6ZXIuZ2V0KCk7CisgICAgfTsKKyAgICBhZGQoX3RvdWNoRW5k
RGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0dGFibGVHZXN0dXJl
cyk7CisgICAgYWRkKF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXll
ZFJlc2V0dGFibGVHZXN0dXJlcyk7CisgICAgYWRkKF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVyZXMpOworICAgIHJldHVybiBbTlNBcnJheSBh
cnJheVdpdGhPYmplY3RzOnJlY29nbml6ZXJzIGNvdW50OmNvdW50XTsKK30KKwogLSAodm9pZClf
ZG9uZURlZmVycmluZ1RvdWNoU3RhcnQ6KEJPT0wpcHJldmVudE5hdGl2ZUdlc3R1cmVzCiB7CiAg
ICAgZm9yIChXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYuX3Rv
dWNoU3RhcnREZWZlcnJpbmdHZXN0dXJlcykKICAgICAgICAgW2dlc3R1cmUgc2V0RGVmYXVsdFBy
ZXZlbnRlZDpwcmV2ZW50TmF0aXZlR2VzdHVyZXNdOwogfQogCistICh2b2lkKV9kb25lRGVmZXJy
aW5nVG91Y2hFbmQ6KEJPT0wpcHJldmVudE5hdGl2ZUdlc3R1cmVzCit7CisgICAgZm9yIChXS0Rl
ZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyICpnZXN0dXJlIGluIHNlbGYuX3RvdWNoRW5kRGVmZXJy
aW5nR2VzdHVyZXMpCisgICAgICAgIFtnZXN0dXJlIHNldERlZmF1bHRQcmV2ZW50ZWQ6cHJldmVu
dE5hdGl2ZUdlc3R1cmVzXTsKK30KKwogI2VuZGlmIC8vIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQogCiBzdGF0aWMgTlNWYWx1ZSAqbnNTaXplRm9yVGFwSGlnaGxpZ2h0Qm9yZGVyUmFkaXVzKFdl
YkNvcmU6OkludFNpemUgYm9yZGVyUmFkaXVzLCBDR0Zsb2F0IGJvcmRlclJhZGl1c1NjYWxlKQpA
QCAtMjE0OSw3ICsyMTkyLDcgQEAgc3RhdGljIENsYXNzIHRhcEFuZEFIYWxmUmVjb2duaXplckNs
YXNzKCkKIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKiln
ZXN0dXJlUmVjb2duaXplciBzaG91bGRSZWNvZ25pemVTaW11bHRhbmVvdXNseVdpdGhHZXN0dXJl
UmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciopb3RoZXJHZXN0dXJlUmVjb2duaXplcgog
ewogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIGZvciAoV0tEZWZlcnJpbmdHZXN0
dXJlUmVjb2duaXplciAqZ2VzdHVyZSBpbiBzZWxmLl90b3VjaFN0YXJ0RGVmZXJyaW5nR2VzdHVy
ZXMpIHsKKyAgICBmb3IgKFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgKmdlc3R1cmUgaW4g
c2VsZi5fZGVmZXJyaW5nR2VzdHVyZXMpIHsKICAgICAgICAgaWYgKGlzU2FtZVBhaXIoZ2VzdHVy
ZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF90b3VjaEV2ZW50R2VzdHVyZVJl
Y29nbml6ZXIuZ2V0KCksIGdlc3R1cmUpKQogICAgICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9
CkBAIC0yODQxLDYgKzI4ODQsOCBAQCAtICh2b2lkKV9zaW5nbGVUYXBEaWRSZXNldDooVUlUYXBH
ZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiAgICAgYXV0byBhY3Rpb25zVG9Q
ZXJmb3JtID0gc3RkOjpleGNoYW5nZShfYWN0aW9uc1RvUGVyZm9ybUFmdGVyUmVzZXR0aW5nU2lu
Z2xlVGFwR2VzdHVyZVJlY29nbml6ZXIsIHsgfSk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBhY3Rp
b24gOiBhY3Rpb25zVG9QZXJmb3JtKQogICAgICAgICBhY3Rpb24oKTsKKworICAgIFtzZWxmIF9m
aW5pc2hJbnRlcmFjdGlvbl07CiB9CiAKIC0gKHZvaWQpX2RvdWJsZVRhcERpZEZhaWw6KFVJVGFw
R2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgpAQCAtNzMzOSwxMCArNzM4NCwy
MyBAQCAtIChCT09MKWRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyOihXS0RlZmVycmluZ0dlc3R1
cmVSZWNvZ25pemVyICopZGVmZXJyaW5nR2VzdAogICAgICAgICByZXR1cm4gTk87CiAgICAgfTsK
IAotICAgIGlmIChbZ2VzdHVyZVJlY29nbml6ZXIgaXNLaW5kT2ZDbGFzczpXS1N5bnRoZXRpY1Rh
cEdlc3R1cmVSZWNvZ25pemVyLmNsYXNzXSkKKyAgICBCT09MIGlzU3ludGhldGljVGFwID0gW2dl
c3R1cmVSZWNvZ25pemVyIGlzS2luZE9mQ2xhc3M6V0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2du
aXplci5jbGFzc107CisgICAgQk9PTCBtYXlEZWxheVJlc2V0ID0gbWF5RGVsYXlSZXNldE9mQ29u
dGFpbmluZ1N1YmdyYXBoKGdlc3R1cmVSZWNvZ25pemVyKTsKKyAgICBpZiAoW2dlc3R1cmVSZWNv
Z25pemVyIGlzS2luZE9mQ2xhc3M6VUlUYXBHZXN0dXJlUmVjb2duaXplci5jbGFzc10pIHsKKyAg
ICAgICAgaWYgKGRlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyID09IF90b3VjaEVuZERlZmVycmlu
Z0dlc3R1cmVSZWNvZ25pemVyRm9yU3ludGhldGljVGFwR2VzdHVyZXMpCisgICAgICAgICAgICBy
ZXR1cm4gaXNTeW50aGV0aWNUYXA7CisKKyAgICAgICAgaWYgKGRlZmVycmluZ0dlc3R1cmVSZWNv
Z25pemVyID09IF90b3VjaEVuZERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJl
c2V0dGFibGVHZXN0dXJlcykKKyAgICAgICAgICAgIHJldHVybiAhaXNTeW50aGV0aWNUYXAgJiYg
bWF5RGVsYXlSZXNldDsKKworICAgICAgICBpZiAoZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIg
PT0gX3RvdWNoRW5kRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJGb3JJbW1lZGlhdGVseVJlc2V0
dGFibGVHZXN0dXJlcykKKyAgICAgICAgICAgIHJldHVybiAhaXNTeW50aGV0aWNUYXAgJiYgIW1h
eURlbGF5UmVzZXQ7CisgICAgfQorCisgICAgaWYgKGlzU3ludGhldGljVGFwKQogICAgICAgICBy
ZXR1cm4gZGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIgPT0gX3RvdWNoU3RhcnREZWZlcnJpbmdH
ZXN0dXJlUmVjb2duaXplckZvclN5bnRoZXRpY1RhcEdlc3R1cmVzOwogCi0gICAgaWYgKG1heURl
bGF5UmVzZXRPZkNvbnRhaW5pbmdTdWJncmFwaChnZXN0dXJlUmVjb2duaXplcikpCisgICAgaWYg
KG1heURlbGF5UmVzZXQpCiAgICAgICAgIHJldHVybiBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ciA9PSBfdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9yRGVsYXllZFJlc2V0
dGFibGVHZXN0dXJlczsKIAogICAgIHJldHVybiBkZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplciA9
PSBfdG91Y2hTdGFydERlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRm9ySW1tZWRpYXRlbHlSZXNl
dHRhYmxlR2VzdHVyZXM7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjMwNjJkNDU4YWY1NWI4NTU1ZmQ4NmY1ODVhOGJjZWMy
YzIxZDczYy4uYmY5ODJmNTg5YzQ4OTNmOGFmNWRiYmE2Yzc3MmMzODA5OWJiOTVhYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDIxLTAxLTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdICJ0b3VjaGVuZCIgZXZlbnRzIHNob3VsZCBiZSBk
aXNwYXRjaGVkIGFuZCBoYW5kbGVkIGFzeW5jaHJvbm91c2x5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAyNTYKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzY0OTEyNTUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIGxheW91dCB0ZXN0IHRvIHZlcmlmeSB0aGF0IGNhbGxpbmcgYHByZXZlbnRE
ZWZhdWx0KClgIGluIGFuIGFjdGl2ZSBgdG91Y2hlbmRgIGV2ZW50IGxpc3RlbmVyIHByZXZlbnRz
IGEKKyAgICAgICAgY2xpY2sgZXZlbnQgZnJvbSBiZWluZyBkaXNwYXRjaGVkLCBhbmQgdGhhdCBh
IGNsaWNrIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiB0aGVyZSBpcyBhbiBhY3RpdmUgYHRvdWNo
ZW5kYCBldmVudAorICAgICAgICBsaXN0ZW5lciB3aGljaCBkb2VzIG5vdCBwcmV2ZW50IGRlZmF1
bHQuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvY2xpY2stZXZlbnQtYWZ0ZXIt
dG91Y2hlbmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9pb3MvY2xpY2stZXZlbnQtYWZ0ZXItdG91Y2hlbmQuaHRtbDogQWRkZWQuCisKIDIwMjEtMDEt
MTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lP
U10gRW1vamkga2V5Ym9hcmQgY292ZXJzIHRleHQgZmllbGQgb24gdHdpdHRlci5jb20vbWVzc2Fn
ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jbGljay1l
dmVudC1hZnRlci10b3VjaGVuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvY2xpY2stZXZlbnQtYWZ0ZXItdG91Y2hlbmQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc0NmJkZjNiZWE3ZmQ0YjUxMDkwY2Y0YTY5Y2RhODgwZTRmYWYwOTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY2xpY2stZXZlbnQt
YWZ0ZXItdG91Y2hlbmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdCB2
ZXJpZmllcyB0aGF0IGNhbGxpbmcgcHJldmVudERlZmF1bHQoKSBvbiB0b3VjaGVuZCBldmVudCBw
cmV2ZW50cyB0aGUgY2xpY2sgZXZlbnQgd2hlbiB0YXBwaW5nLiBUbyBtYW51YWxseSB0ZXN0LCB0
YXAgdGhlIHRvcCBzcXVhcmUgb25jZSwgYW5kIHRoZW4gdGFwIHRoZSBib3R0b20gc3F1YXJlIG9u
Y2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRvdWNoc3RhcnQgb24g
dGFyZ2V0MQorUEFTUyB0b3VjaGVuZCBvbiB0YXJnZXQxCitQQVNTIHRvdWNoc3RhcnQgb24gdGFy
Z2V0MgorUEFTUyB0b3VjaGVuZCBvbiB0YXJnZXQyCitQQVNTIGNsaWNrIG9uIHRhcmdldDIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvY2xpY2stZXZlbnQtYWZ0ZXIt
dG91Y2hlbmQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9jbGljay1l
dmVudC1hZnRlci10b3VjaGVuZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMTU3YTEzYjcyOWNiM2Y3ZDQ4
ZWY4NmRkMzdmMTk1ZDQ3YzRiYmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9pb3MvY2xpY2stZXZlbnQtYWZ0ZXItdG91Y2hlbmQuaHRtbApAQCAtMCww
ICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICBhZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCB0
YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDEiKTsKKyAgICAgICAgY29u
c3QgdGFyZ2V0MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQyIik7CisKKyAgICAg
ICAgdGFyZ2V0MS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgZXZlbnQgPT4geworICAg
ICAgICAgICAgdGVzdFBhc3NlZCgidG91Y2hzdGFydCBvbiB0YXJnZXQxIik7CisgICAgICAgIH0p
OworCisgICAgICAgIHRhcmdldDEuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCBldmVudCA9
PiB7CisgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgdGVz
dFBhc3NlZCgidG91Y2hlbmQgb24gdGFyZ2V0MSIpOworICAgICAgICB9KTsKKworICAgICAgICB0
YXJnZXQxLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4geworICAgICAgICAgICAg
dGVzdEZhaWxlZCgiY2xpY2sgb24gdGFyZ2V0MSIpOworICAgICAgICB9KTsKKworICAgICAgICB0
YXJnZXQyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBldmVudCA9PiB7CisgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJ0b3VjaHN0YXJ0IG9uIHRhcmdldDIiKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgdGFyZ2V0Mi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsIGV2ZW50ID0+IHsK
KyAgICAgICAgICAgIHRlc3RQYXNzZWQoInRvdWNoZW5kIG9uIHRhcmdldDIiKTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgdGFyZ2V0Mi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+
IHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoImNsaWNrIG9uIHRhcmdldDIiKTsKKyAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKKworICAgICAgICBkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgY2FsbGluZyBwcmV2ZW50RGVmYXVsdCgpIG9uIHRvdWNo
ZW5kIGV2ZW50IHByZXZlbnRzIHRoZSBjbGljayBldmVudCB3aGVuIHRhcHBpbmcuIFRvIG1hbnVh
bGx5IHRlc3QsIHRhcCB0aGUgdG9wIHNxdWFyZSBvbmNlLCBhbmQgdGhlbiB0YXAgdGhlIGJvdHRv
bSBzcXVhcmUgb25jZS4iKQorCisgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50
KHRhcmdldDEpOworICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQodGFyZ2V0
Mik7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICN0YXJnZXQxIHsK
KyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOworICAgIH0KKworICAgICN0YXJnZXQy
IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcHVycGxlOworICAgIH0KKworICAgICN0YXJn
ZXQxLCAjdGFyZ2V0MiB7CisgICAgICAgIHdpZHRoOiAxNTBweDsKKyAgICAgICAgaGVpZ2h0OiAx
NTBweDsKKyAgICAgICAgbWFyZ2luOiAxZW07CisgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQxIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJ0YXJn
ZXQyIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>