<?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>198770</bug_id>
          
          <creation_ts>2019-06-11 16:03:13 -0700</creation_ts>
          <short_desc>[JSC] Polymorphic call stub&apos;s slow path should restore callee saves before performing tail call</short_desc>
          <delta_ts>2019-06-12 13:31:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1543861</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-11 16:03:13 -0700</bug_when>
    <thetext>When linkPolymorphicCall gives up compiling polymorphic call, we fall back to virtual call. But `linkVirtualCall` does not restore the callee saves before calling the tail call, while polymorphic call does it.
If the caller CodeBlock clobbers the callee saves (e.g. FTL), we forget restoring it, and caller&apos;s caller will see garbage in callee saves.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543889</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-11 16:49:34 -0700</bug_when>
    <thetext>And polymorphic call stub&apos;s slow path seems not restoring it too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543895</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-11 17:29:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/51260313&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543935</commentid>
    <comment_count>3</comment_count>
      <attachid>371914</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-11 19:42:49 -0700</bug_when>
    <thetext>Created attachment 371914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543988</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-11 23:31:40 -0700</bug_when>
    <thetext>The change of virtual call is not necessary. Only polymorphic call is problematic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543993</commentid>
    <comment_count>5</comment_count>
      <attachid>371934</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-12 00:19:40 -0700</bug_when>
    <thetext>Created attachment 371934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543994</commentid>
    <comment_count>6</comment_count>
      <attachid>371935</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-12 01:03:59 -0700</bug_when>
    <thetext>Created attachment 371935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543997</commentid>
    <comment_count>7</comment_count>
      <attachid>371934</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-12 01:16:21 -0700</bug_when>
    <thetext>Comment on attachment 371934
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=371934&amp;action=review

&gt; Source/JavaScriptCore/ChangeLog:30
&gt; +        This patch does that skips after restoring callee saves.

“does that skips” =&gt; “makes branches to the slow path happen”

&gt; JSTests/stress/poly-call-stub-slow-path-should-restore-callee-saves-when-doing-tail-call.js:5
&gt; +        var a = WeakSet.bind();

Maybe also two other tests:
- One where the poly call is in the test itself instead of a built in (in case we change the built in in the future)
- A test with a non cell callee</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543998</commentid>
    <comment_count>8</comment_count>
      <attachid>371935</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-12 01:16:57 -0700</bug_when>
    <thetext>Comment on attachment 371935
Patch

r=me with comments from previous patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544211</commentid>
    <comment_count>9</comment_count>
      <attachid>371934</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-12 13:25:50 -0700</bug_when>
    <thetext>Comment on attachment 371934
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=371934&amp;action=review

Thanks!

&gt;&gt; Source/JavaScriptCore/ChangeLog:30
&gt;&gt; +        This patch does that skips after restoring callee saves.
&gt; 
&gt; “does that skips” =&gt; “makes branches to the slow path happen”

Fixed.

&gt;&gt; JSTests/stress/poly-call-stub-slow-path-should-restore-callee-saves-when-doing-tail-call.js:5
&gt;&gt; +        var a = WeakSet.bind();
&gt; 
&gt; Maybe also two other tests:
&gt; - One where the poly call is in the test itself instead of a built in (in case we change the built in in the future)
&gt; - A test with a non cell callee

Nice, added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544212</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-12 13:31:18 -0700</bug_when>
    <thetext>Committed r246372: &lt;https://trac.webkit.org/changeset/246372&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371914</attachid>
            <date>2019-06-11 19:42:49 -0700</date>
            <delta_ts>2019-06-12 00:19:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198770-20190611194248.patch</filename>
            <type>text/plain</type>
            <size>18966</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MjBlMmU4NGE2NDA2NDZkZGI5OWUxYzUxMDQ5NmQyNTJkNmY3ZWY2Li43NTRjMzZmZjg0YTZhNTcy
NmEyNzUzMmM2ODg1YzZlMTA4MTkyYWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxOS0wNi0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIHZpcnR1YWwgdGFpbCBjYWxsIHRodW5rIHNob3VsZCByZXN0b3Jl
IGNhbGxlZSBzYXZlcyBiZWZvcmUganVtcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua0luZm8uY3BwOgorICAgICAgICAo
SlNDOjpDYWxsTGlua0luZm86OkNhbGxMaW5rSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvQ2Fs
bExpbmtJbmZvLmg6CisgICAgICAgIChKU0M6OkNhbGxMaW5rSW5mbzo6c2V0VXBDYWxsKToKKyAg
ICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpjYWxsZWVHUFIpOgorICAgICAgICAoSlNDOjpDYWxs
TGlua0luZm86OnNldENhbGxlZUdQUik6IERlbGV0ZWQuCisgICAgICAgICogaml0L0Fzc2VtYmx5
SGVscGVycy5jcHA6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdER1bWJWaXJ0
dWFsQ2FsbCk6CisgICAgICAgICogaml0L1JlcGF0Y2guY3BwOgorICAgICAgICAoSlNDOjpsaW5r
U2xvd0Zvcik6CisgICAgICAgIChKU0M6OnJldmVydENhbGwpOgorICAgICAgICAoSlNDOjpsaW5r
VmlydHVhbEZvcik6CisgICAgICAgIChKU0M6OmxpbmtQb2x5bW9ycGhpY0NhbGwpOgorICAgICAg
ICAqIGppdC9SZXBhdGNoLmg6CisgICAgICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6Cisg
ICAgICAgIChKU0M6OnZpcnR1YWxUaHVua0Zvcik6CisgICAgICAgIChKU0M6OnZpcnR1YWxTbG93
UGF0aFRodW5rRm9yKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisKIDIwMTkt
MDYtMTEgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUm9sbCBv
dXQgUEFDIGNhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
YWxsTGlua0luZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5r
SW5mby5jcHAKaW5kZXggY2VkOWQ0ZDY3YmFkZGJkNDdmZTBkNmQ0MWY0NmY3NzVkMDljYTgyZC4u
ZDhkYWMxNTg1ZmFiMmI5OThjMWU1ZDg4NzUyYmExMmRmNmRhZGJkZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKQEAgLTYyLDcgKzYyLDYg
QEAgQ2FsbExpbmtJbmZvOjpDYWxsTGlua0luZm8oKQogICAgICwgbV9hbGxvd1N0dWJzKHRydWUp
CiAgICAgLCBtX2NsZWFyZWRCeUpldHRpc29uKGZhbHNlKQogICAgICwgbV9jYWxsVHlwZShOb25l
KQotICAgICwgbV9jYWxsZWVHUFIoMjU1KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKaW5kZXggZmEwYTExNWI1ODkwZTU5NzhjYzRlYjU4
MTVjYmMyNzRkZmZmYjAwNy4uODk4NzVkYTJiZTIzNzAwODdkYzAxZTVhZGQ2M2E5ZTgxYjEwZDZh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5m
by5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaApA
QCAtMTU3LDcgKzE1Nyw3IEBAIGNsYXNzIENhbGxMaW5rSW5mbyA6IHB1YmxpYyBQYWNrZWRSYXdT
ZW50aW5lbE5vZGU8Q2FsbExpbmtJbmZvPiB7CiAgICAgYm9vbCBpc0xpbmtlZCgpIHsgcmV0dXJu
IG1fc3R1YiB8fCBtX2NhbGxlZU9yQ29kZUJsb2NrOyB9CiAgICAgdm9pZCB1bmxpbmsoVk0mKTsK
IAotICAgIHZvaWQgc2V0VXBDYWxsKENhbGxUeXBlIGNhbGxUeXBlLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIHVuc2lnbmVkIGNhbGxlZUdQUikKKyAgICB2b2lkIHNldFVwQ2FsbChDYWxsVHlwZSBj
YWxsVHlwZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgY2FsbGVlR1BSKQogICAgIHsK
ICAgICAgICAgbV9jYWxsVHlwZSA9IGNhbGxUeXBlOwogICAgICAgICBtX2NvZGVPcmlnaW4gPSBj
b2RlT3JpZ2luOwpAQCAtMzEyLDEyICszMTIsNyBAQCBjbGFzcyBDYWxsTGlua0luZm8gOiBwdWJs
aWMgUGFja2VkUmF3U2VudGluZWxOb2RlPENhbGxMaW5rSW5mbz4gewogICAgICAgICByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKENhbGxMaW5rSW5mbywgbV9zbG93UGF0aENvdW50KTsKICAgICB9CiAK
LSAgICB2b2lkIHNldENhbGxlZUdQUih1bnNpZ25lZCBjYWxsZWVHUFIpCi0gICAgewotICAgICAg
ICBtX2NhbGxlZUdQUiA9IGNhbGxlZUdQUjsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBjYWxsZWVH
UFIoKQorICAgIEdQUlJlZyBjYWxsZWVHUFIoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fY2Fs
bGVlR1BSOwogICAgIH0KQEAgLTM2NCw3ICszNTksNyBAQCBjbGFzcyBDYWxsTGlua0luZm8gOiBw
dWJsaWMgUGFja2VkUmF3U2VudGluZWxOb2RlPENhbGxMaW5rSW5mbz4gewogICAgIGJvb2wgbV9h
bGxvd1N0dWJzIDogMTsKICAgICBib29sIG1fY2xlYXJlZEJ5SmV0dGlzb24gOiAxOwogICAgIHVu
c2lnbmVkIG1fY2FsbFR5cGUgOiA0OyAvLyBDYWxsVHlwZQotICAgIHVuc2lnbmVkIG1fY2FsbGVl
R1BSIDogODsKKyAgICBHUFJSZWcgbV9jYWxsZWVHUFIgeyBJbnZhbGlkR1BSUmVnIH07CiAgICAg
dWludDMyX3QgbV9zbG93UGF0aENvdW50IHsgMCB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IDViNzAwYzEwMmQ0ODA1YzRhZWU5
MjJhN2JmM2QwYTY5MWJkMzNlNjcuLjVkZjU5N2Q5ODMwYzRhMjZmZmE0MTdjZjJkZDYwZGVjYjA3
MjRkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5j
cHAKQEAgLTYzMCwxMSArNjMwLDEyIEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpyZXN0b3JlQ2Fs
bGVlU2F2ZXNGcm9tRW50cnlGcmFtZUNhbGxlZVNhdmVzQnVmZmVyKEVudHJ5RnJhCiAKIHZvaWQg
QXNzZW1ibHlIZWxwZXJzOjplbWl0RHVtYlZpcnR1YWxDYWxsKFZNJiB2bSwgQ2FsbExpbmtJbmZv
KiBpbmZvKQogeworICAgIEFTU0VSVCghaW5mby0+aXNUYWlsQ2FsbCgpKTsKICAgICBtb3ZlKFRy
dXN0ZWRJbW1QdHIoaW5mbyksIEdQUkluZm86OnJlZ1QyKTsKICAgICBDYWxsIGNhbGwgPSBuZWFy
Q2FsbCgpOwogICAgIGFkZExpbmtUYXNrKAogICAgICAgICBbPSwgJnZtXSAoTGlua0J1ZmZlciYg
bGlua0J1ZmZlcikgewotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJS
b3V0aW5lUHRyVGFnPiB2aXJ0dWFsVGh1bmsgPSB2aXJ0dWFsVGh1bmtGb3IoJnZtLCAqaW5mbyk7
CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUU3R1YlJvdXRpbmVQdHJUYWc+
IHZpcnR1YWxUaHVuayA9IHZpcnR1YWxTbG93UGF0aFRodW5rRm9yKCZ2bSwgKmluZm8pOwogICAg
ICAgICAgICAgaW5mby0+c2V0U2xvd1N0dWIoY3JlYXRlSklUU3R1YlJvdXRpbmUodmlydHVhbFRo
dW5rLCB2bSwgbnVsbHB0ciwgdHJ1ZSkpOwogICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGNh
bGwsIENvZGVMb2NhdGlvbkxhYmVsPEpJVFN0dWJSb3V0aW5lUHRyVGFnPih2aXJ0dWFsVGh1bmsu
Y29kZSgpKSk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9SZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAK
aW5kZXggZjA3ZDMyNWFhYTE3ZmM5MWZmOGM4YzIzNjQzZTczMjk4NjNlZTgzNi4uMjViNTM2MjFj
OTIwNDU1NjZlZGFhMjczNDc2MzljM2Y4ODA2NTViZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlcGF0Y2guY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1Yklu
Zm8uaCIKICNpbmNsdWRlICJTdXBlclNhbXBsZXIuaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRv
cnMuaCIKKyNpbmNsdWRlICJQcm9iZUNvbnRleHQuaCIKICNpbmNsdWRlIDx3dGYvQ29tbWFQcmlu
dGVyLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1By
aW50U3RyZWFtLmg+CkBAIC04MDgsNyArODA5LDcgQEAgc3RhdGljIHZvaWQgbGlua1Nsb3dGb3Io
Vk0qIHZtLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgVGh1bmtHZW5lcmF0b3IgZ2VuZXIK
IAogc3RhdGljIHZvaWQgbGlua1Nsb3dGb3IoVk0qIHZtLCBDYWxsTGlua0luZm8mIGNhbGxMaW5r
SW5mbykKIHsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUU3R1YlJvdXRpbmVQdHJUYWc+
IHZpcnR1YWxUaHVuayA9IHZpcnR1YWxUaHVua0Zvcih2bSwgY2FsbExpbmtJbmZvKTsKKyAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUU3R1YlJvdXRpbmVQdHJUYWc+IHZpcnR1YWxUaHVuayA9
IHZpcnR1YWxTbG93UGF0aFRodW5rRm9yKHZtLCBjYWxsTGlua0luZm8pOwogICAgIGxpbmtTbG93
Rm9yKHZtLCBjYWxsTGlua0luZm8sIHZpcnR1YWxUaHVuayk7CiAgICAgY2FsbExpbmtJbmZvLnNl
dFNsb3dTdHViKGNyZWF0ZUpJVFN0dWJSb3V0aW5lKHZpcnR1YWxUaHVuaywgKnZtLCBudWxscHRy
LCB0cnVlKSk7CiB9CkBAIC05MDksNyArOTEwLDcgQEAgc3RhdGljIHZvaWQgcmV2ZXJ0Q2FsbChW
TSogdm0sIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYK
ICAgICAgICAgaWYgKCFjYWxsTGlua0luZm8uY2xlYXJlZEJ5SmV0dGlzb24oKSkgewogICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OnJldmVydEp1bXBSZXBsYWNlbWVudFRvQnJhbmNoUHRyV2l0
aFBhdGNoKAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpzdGFydE9mQnJhbmNoUHRy
V2l0aFBhdGNoT25SZWdpc3RlcihjYWxsTGlua0luZm8uaG90UGF0aEJlZ2luKCkpLAotICAgICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEPihjYWxsTGlu
a0luZm8uY2FsbGVlR1BSKCkpLCAwKTsKKyAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8uY2Fs
bGVlR1BSKCksIDApOwogICAgICAgICAgICAgbGlua1Nsb3dGb3Iodm0sIGNhbGxMaW5rSW5mbywg
Y29kZVJlZik7CiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRjaFBvaW50ZXIoY2Fs
bExpbmtJbmZvLmhvdFBhdGhCZWdpbigpLCBudWxscHRyKTsKICAgICAgICAgfQpAQCAtOTMwLDcg
KzkzMSw3IEBAIHZvaWQgdW5saW5rRm9yKFZNJiB2bSwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0lu
Zm8pCiAgICAgcmV2ZXJ0Q2FsbCgmdm0sIGNhbGxMaW5rSW5mbywgdm0uZ2V0Q1RJU3R1YihsaW5r
Q2FsbFRodW5rR2VuZXJhdG9yKS5yZXRhZ2dlZDxKSVRTdHViUm91dGluZVB0clRhZz4oKSk7CiB9
CiAKLXZvaWQgbGlua1ZpcnR1YWxGb3IoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNh
bGxMaW5rSW5mbykKK3N0YXRpYyB2b2lkIGxpbmtWaXJ0dWFsRm9yKEV4ZWNTdGF0ZSogZXhlYywg
Q2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFt
ZSA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7CiAgICAgVk0mIHZtID0gY2FsbGVyRnJhbWUtPnZtKCk7
CkBAIC05MzksNyArOTQwLDcgQEAgdm9pZCBsaW5rVmlydHVhbEZvcihFeGVjU3RhdGUqIGV4ZWMs
IENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQogICAgIGlmIChzaG91bGREdW1wRGlzYXNzZW1i
bHlGb3IoY2FsbGVyQ29kZUJsb2NrKSkKICAgICAgICAgZGF0YUxvZygiTGlua2luZyB2aXJ0dWFs
IGNhbGwgYXQgIiwgRnVsbENvZGVPcmlnaW4oY2FsbGVyQ29kZUJsb2NrLCBjYWxsZXJGcmFtZS0+
Y29kZU9yaWdpbigpKSwgIlxuIik7CiAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUU3R1
YlJvdXRpbmVQdHJUYWc+IHZpcnR1YWxUaHVuayA9IHZpcnR1YWxUaHVua0Zvcigmdm0sIGNhbGxM
aW5rSW5mbyk7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFn
PiB2aXJ0dWFsVGh1bmsgPSB2aXJ0dWFsVGh1bmtGb3IoJnZtLCBjYWxsTGlua0luZm8sIGNhbGxl
ckNvZGVCbG9jayk7CiAgICAgcmV2ZXJ0Q2FsbCgmdm0sIGNhbGxMaW5rSW5mbywgdmlydHVhbFRo
dW5rKTsKICAgICBjYWxsTGlua0luZm8uc2V0U2xvd1N0dWIoY3JlYXRlSklUU3R1YlJvdXRpbmUo
dmlydHVhbFRodW5rLCB2bSwgbnVsbHB0ciwgdHJ1ZSkpOwogICAgIGNhbGxMaW5rSW5mby5zZXRD
bGVhcmVkQnlWaXJ0dWFsKCk7CkBAIC0xMDM1LDUxICsxMDM2LDcgQEAgdm9pZCBsaW5rUG9seW1v
cnBoaWNDYWxsKAogICAgICAgICBsaW5rVmlydHVhbEZvcihleGVjLCBjYWxsTGlua0luZm8pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAotICAgIEdQUlJlZyBjYWxsZWVHUFIgPSBzdGF0
aWNfY2FzdDxHUFJSZWc+KGNhbGxMaW5rSW5mby5jYWxsZWVHUFIoKSk7Ci0gICAgCi0gICAgQ0Nh
bGxIZWxwZXJzIHN0dWJKaXQoY2FsbGVyQ29kZUJsb2NrKTsKLSAgICAKLSAgICBDQ2FsbEhlbHBl
cnM6Okp1bXBMaXN0IHNsb3dQYXRoOwotICAgIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsRnJh
bWVTaHVmZmxlcj4gZnJhbWVTaHVmZmxlcjsKLSAgICBpZiAoY2FsbExpbmtJbmZvLmZyYW1lU2h1
ZmZsZURhdGEoKSkgewotICAgICAgICBBU1NFUlQoY2FsbExpbmtJbmZvLmlzVGFpbENhbGwoKSk7
Ci0gICAgICAgIGZyYW1lU2h1ZmZsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPENhbGxGcmFtZVNodWZm
bGVyPihzdHViSml0LCAqY2FsbExpbmtJbmZvLmZyYW1lU2h1ZmZsZURhdGEoKSk7Ci0jaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICAgICAgLy8gV2Ugd291bGQgaGF2ZSBhbHJlYWR5IGNoZWNrZWQg
dGhhdCB0aGUgY2FsbGVlIGlzIGEgY2VsbCwgYW5kIHdlIGNhbgotICAgICAgICAvLyB1c2UgdGhl
IGFkZGl0aW9uYWwgcmVnaXN0ZXIgdGhpcyBidXlzIHVzLgotICAgICAgICBmcmFtZVNodWZmbGVy
LT5hc3N1bWVDYWxsZWVJc0NlbGwoKTsKLSNlbmRpZgotICAgICAgICBmcmFtZVNodWZmbGVyLT5s
b2NrR1BSKGNhbGxlZUdQUik7Ci0gICAgfQotICAgIEdQUlJlZyBjb21wYXJpc29uVmFsdWVHUFI7
Ci0gICAgCi0gICAgaWYgKGlzQ2xvc3VyZUNhbGwpIHsKLSAgICAgICAgR1BSUmVnIHNjcmF0Y2hH
UFI7Ci0gICAgICAgIGlmIChmcmFtZVNodWZmbGVyKQotICAgICAgICAgICAgc2NyYXRjaEdQUiA9
IGZyYW1lU2h1ZmZsZXItPmFjcXVpcmVHUFIoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
c2NyYXRjaEdQUiA9IEFzc2VtYmx5SGVscGVyczo6c2VsZWN0U2NyYXRjaEdQUihjYWxsZWVHUFIp
OwotICAgICAgICAvLyBWZXJpZnkgdGhhdCB3ZSBoYXZlIGEgZnVuY3Rpb24gYW5kIHN0YXNoIHRo
ZSBleGVjdXRhYmxlIGluIHNjcmF0Y2hHUFIuCi0KLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAg
ICBzbG93UGF0aC5hcHBlbmQoc3R1YkppdC5icmFuY2hJZk5vdENlbGwoY2FsbGVlR1BSKSk7Ci0j
ZWxzZQotICAgICAgICAvLyBXZSB3b3VsZCBoYXZlIGFscmVhZHkgY2hlY2tlZCB0aGF0IHRoZSBj
YWxsZWUgaXMgYSBjZWxsLgotI2VuZGlmCiAKLSAgICAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGFk
ZCBhIGZhc3QgcGF0aCBmb3IgSW50ZXJuYWxGdW5jdGlvbiB3aXRoIGNsb3N1cmUgY2FsbC4KLSAg
ICAgICAgc2xvd1BhdGguYXBwZW5kKHN0dWJKaXQuYnJhbmNoSWZOb3RGdW5jdGlvbihjYWxsZWVH
UFIpKTsKLSAgICAKLSAgICAgICAgc3R1YkppdC5sb2FkUHRyKAotICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKGNhbGxlZUdQUiwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxl
KCkpLAotICAgICAgICAgICAgc2NyYXRjaEdQUik7Ci0gICAgICAgIAotICAgICAgICBjb21wYXJp
c29uVmFsdWVHUFIgPSBzY3JhdGNoR1BSOwotICAgIH0gZWxzZQotICAgICAgICBjb21wYXJpc29u
VmFsdWVHUFIgPSBjYWxsZWVHUFI7Ci0gICAgCiAgICAgVmVjdG9yPGludDY0X3Q+IGNhc2VWYWx1
ZXMoY2FsbENhc2VzLnNpemUoKSk7CiAgICAgVmVjdG9yPENhbGxUb0NvZGVQdHI+IGNhbGxzKGNh
bGxDYXNlcy5zaXplKCkpOwogICAgIFVuaXF1ZUFycmF5PHVpbnQzMl90PiBmYXN0Q291bnRzOwpA
QCAtMTEyNiw2ICsxMDgzLDMxIEBAIHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbCgKICAgICAgICAg
Y2FzZVZhbHVlc1tpXSA9IG5ld0Nhc2VWYWx1ZTsKICAgICB9CiAgICAgCisgICAgR1BSUmVnIGNh
bGxlZUdQUiA9IGNhbGxMaW5rSW5mby5jYWxsZWVHUFIoKTsKKyAgICAKKyAgICBDQ2FsbEhlbHBl
cnMgc3R1YkppdChjYWxsZXJDb2RlQmxvY2spOworICAgIAorICAgIHN0ZDo6dW5pcXVlX3B0cjxD
YWxsRnJhbWVTaHVmZmxlcj4gZnJhbWVTaHVmZmxlcjsKKyAgICBpZiAoY2FsbExpbmtJbmZvLmZy
YW1lU2h1ZmZsZURhdGEoKSkgeworICAgICAgICBBU1NFUlQoY2FsbExpbmtJbmZvLmlzVGFpbENh
bGwoKSk7CisgICAgICAgIGZyYW1lU2h1ZmZsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPENhbGxGcmFt
ZVNodWZmbGVyPihzdHViSml0LCAqY2FsbExpbmtJbmZvLmZyYW1lU2h1ZmZsZURhdGEoKSk7Cisj
aWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgLy8gV2Ugd291bGQgaGF2ZSBhbHJlYWR5IGNo
ZWNrZWQgdGhhdCB0aGUgY2FsbGVlIGlzIGEgY2VsbCwgYW5kIHdlIGNhbgorICAgICAgICAvLyB1
c2UgdGhlIGFkZGl0aW9uYWwgcmVnaXN0ZXIgdGhpcyBidXlzIHVzLgorICAgICAgICBmcmFtZVNo
dWZmbGVyLT5hc3N1bWVDYWxsZWVJc0NlbGwoKTsKKyNlbmRpZgorICAgICAgICBmcmFtZVNodWZm
bGVyLT5sb2NrR1BSKGNhbGxlZUdQUik7CisgICAgfQorCisgICAgR1BSUmVnIGNvbXBhcmlzb25W
YWx1ZUdQUjsKKyAgICBpZiAoaXNDbG9zdXJlQ2FsbCkgeworICAgICAgICBpZiAoZnJhbWVTaHVm
ZmxlcikKKyAgICAgICAgICAgIGNvbXBhcmlzb25WYWx1ZUdQUiA9IGZyYW1lU2h1ZmZsZXItPmFj
cXVpcmVHUFIoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGFyaXNvblZhbHVlR1BS
ID0gQXNzZW1ibHlIZWxwZXJzOjpzZWxlY3RTY3JhdGNoR1BSKGNhbGxlZUdQUik7CisgICAgfSBl
bHNlCisgICAgICAgIGNvbXBhcmlzb25WYWx1ZUdQUiA9IGNhbGxlZUdQUjsKKyAgICAKICAgICBH
UFJSZWcgZmFzdENvdW50c0Jhc2VHUFI7CiAgICAgaWYgKGZyYW1lU2h1ZmZsZXIpCiAgICAgICAg
IGZhc3RDb3VudHNCYXNlR1BSID0gZnJhbWVTaHVmZmxlci0+YWNxdWlyZUdQUigpOwpAQCAtMTEz
NCw4ICsxMTE2LDMwIEBAIHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbCgKICAgICAgICAgICAgIEFz
c2VtYmx5SGVscGVyczo6c2VsZWN0U2NyYXRjaEdQUihjYWxsZWVHUFIsIGNvbXBhcmlzb25WYWx1
ZUdQUiwgR1BSSW5mbzo6cmVnVDMpOwogICAgIH0KICAgICBzdHViSml0Lm1vdmUoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tUHRyKGZhc3RDb3VudHMuZ2V0KCkpLCBmYXN0Q291bnRzQmFzZUdQUik7
Ci0gICAgaWYgKCFmcmFtZVNodWZmbGVyICYmIGNhbGxMaW5rSW5mby5pc1RhaWxDYWxsKCkpCisg
ICAgaWYgKCFmcmFtZVNodWZmbGVyICYmIGNhbGxMaW5rSW5mby5pc1RhaWxDYWxsKCkpIHsKKyAg
ICAgICAgLy8gV2Ugc3Ryb25nbHkgYXNzdW1lIHRoYXQgY2FsbGVlR1BSIGlzIG5vdCBhIGNhbGxl
ZSBzYXZlIHJlZ2lzdGVyIGluIHRoZSBzbG93IHBhdGguCiAgICAgICAgIHN0dWJKaXQuZW1pdFJl
c3RvcmVDYWxsZWVTYXZlcygpOworICAgIH0KKworICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qg
c2xvd1BhdGg7CisgICAgaWYgKGlzQ2xvc3VyZUNhbGwpIHsKKyAgICAgICAgLy8gVmVyaWZ5IHRo
YXQgd2UgaGF2ZSBhIGZ1bmN0aW9uIGFuZCBzdGFzaCB0aGUgZXhlY3V0YWJsZSBpbiBzY3JhdGNo
R1BSLgorI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIGlmIChjYWxsTGlua0luZm8uaXNUYWls
Q2FsbCgpKQorICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKHN0dWJKaXQuYnJhbmNoSWZOb3RD
ZWxsKGNhbGxlZUdQUiwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKSk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChzdHViSml0LmJyYW5jaElmTm90Q2VsbChjYWxsZWVH
UFIpKTsKKyNlbHNlCisgICAgICAgIC8vIFdlIHdvdWxkIGhhdmUgYWxyZWFkeSBjaGVja2VkIHRo
YXQgdGhlIGNhbGxlZSBpcyBhIGNlbGwuCisjZW5kaWYKKyAgICAgICAgLy8gRklYTUU6IFdlIGNv
dWxkIGFkZCBhIGZhc3QgcGF0aCBmb3IgSW50ZXJuYWxGdW5jdGlvbiB3aXRoIGNsb3N1cmUgY2Fs
bC4KKyAgICAgICAgc2xvd1BhdGguYXBwZW5kKHN0dWJKaXQuYnJhbmNoSWZOb3RGdW5jdGlvbihj
YWxsZWVHUFIpKTsKKyAgICAKKyAgICAgICAgc3R1YkppdC5sb2FkUHRyKAorICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKGNhbGxlZUdQUiwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVj
dXRhYmxlKCkpLAorICAgICAgICAgICAgY29tcGFyaXNvblZhbHVlR1BSKTsKKyAgICB9CisKICAg
ICBCaW5hcnlTd2l0Y2ggYmluYXJ5U3dpdGNoKGNvbXBhcmlzb25WYWx1ZUdQUiwgY2FzZVZhbHVl
cywgQmluYXJ5U3dpdGNoOjpJbnRQdHIpOwogICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZG9u
ZTsKICAgICB3aGlsZSAoYmluYXJ5U3dpdGNoLmFkdmFuY2Uoc3R1YkppdCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZXBhdGNoLmgKaW5kZXggODZhNmM1YTNkZmUzMWJlZDgyYzRlOTUwZjNkZDA2
ZmExNDIzNjQxMy4uMDJkYjEyMDJiZWJiZGU0ZGQ1YjVlOTc4MDg3NWIzODkwZDc5NjFmZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKQEAgLTUwLDcgKzUwLDYgQEAgdm9pZCBsaW5r
Rm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayosIEpTT2JqZWN0KiBjYWxs
ZWUsIE1hY3JvQXNzZW0KIHZvaWQgbGlua0RpcmVjdEZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0lu
Zm8mLCBDb2RlQmxvY2sqLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4pOwog
dm9pZCBsaW5rU2xvd0ZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mKTsKIHZvaWQgdW5saW5r
Rm9yKFZNJiwgQ2FsbExpbmtJbmZvJik7Ci12b2lkIGxpbmtWaXJ0dWFsRm9yKEV4ZWNTdGF0ZSos
IENhbGxMaW5rSW5mbyYpOwogdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKEV4ZWNTdGF0ZSosIENh
bGxMaW5rSW5mbyYsIENhbGxWYXJpYW50KTsKIHZvaWQgcmVzZXRHZXRCeUlEKENvZGVCbG9jayos
IFN0cnVjdHVyZVN0dWJJbmZvJiwgR2V0QnlJREtpbmQpOwogdm9pZCByZXNldFB1dEJ5SUQoQ29k
ZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcAppbmRleCBlODRmMDA0NDc3NzFjYTMwZmYyMjcyMzQ5YzRl
MDdlN2FhYTNkZTBiLi44NGVkZTJlMDZlZTE5YjRmZTk1N2VjOWI4Y2U2NTZjNjFlMzYxYmY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCkBAIC0x
NjIsMTQgKzE2MiwxNCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGxp
bmtQb2x5bW9ycGhpY0NhbGxUaHVua0dlbmVyYXRvcihWTSogdm0pCiAvLyBwYXRoIHZpcnR1YWwg
Y2FsbCBzbyB0aGF0IHdlIGNhbiBlbmFibGUgZmFzdCB0YWlsIGNhbGxzIGZvciBtZWdhbW9ycGhp
YwogLy8gdmlydHVhbCBjYWxscyBieSB1c2luZyB0aGUgc2h1ZmZsZXIuCiAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODMxCi1NYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8SklUU3R1YlJvdXRpbmVQdHJUYWc+IHZpcnR1YWxUaHVua0ZvcihWTSogdm0sIENhbGxMaW5r
SW5mbyYgY2FsbExpbmtJbmZvKQorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJSb3V0aW5l
UHRyVGFnPiB2aXJ0dWFsVGh1bmtGb3IoVk0qIHZtLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5m
bywgQ29kZUJsb2NrKiBjYWxsZXJDb2RlQmxvY2spCiB7CiAgICAgLy8gVGhlIGNhbGxlZSBpcyBp
biByZWdUMCAoZm9yIEpTVkFMVUUzMl82NCwgdGhlIHRhZyBpcyBpbiByZWdUMSkuCiAgICAgLy8g
VGhlIHJldHVybiBhZGRyZXNzIGlzIG9uIHRoZSBzdGFjaywgb3IgaW4gdGhlIGxpbmsgcmVnaXN0
ZXIuIFdlIHdpbGwgaGVuY2UKICAgICAvLyBqdW1wIHRvIHRoZSBjYWxsZWUsIG9yIHNhdmUgdGhl
IHJldHVybiBhZGRyZXNzIHRvIHRoZSBjYWxsIGZyYW1lIHdoaWxlIHdlCiAgICAgLy8gbWFrZSBh
IEMrKyBmdW5jdGlvbiBjYWxsIHRvIHRoZSBhcHByb3ByaWF0ZSBKSVQgb3BlcmF0aW9uLgogCi0g
ICAgQ0NhbGxIZWxwZXJzIGppdDsKKyAgICBDQ2FsbEhlbHBlcnMgaml0KGNhbGxlckNvZGVCbG9j
ayk7CiAgICAgCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93Q2FzZTsKICAgICAKQEAg
LTE4MywxNiArMTgzLDg4IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0
clRhZz4gdmlydHVhbFRodW5rRm9yKFZNKiB2bSwgQ2FsbExpbmtJbmZvCiAgICAgLy8gdGhlIERG
RyBrbm93cyB0aGF0IHRoZSB2YWx1ZSBpcyBkZWZpbml0ZWx5IGEgY2VsbCwgb3IgZGVmaW5pdGVs
eSBhIGZ1bmN0aW9uLgogICAgIAogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgR1BSUmVnIHRhZ01h
c2tSZWdpc3RlciA9IEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcjsKICAgICBpZiAoY2FsbExpbmtJ
bmZvLmlzVGFpbENhbGwoKSkgewogICAgICAgICAvLyBUYWlsIGNhbGxzIGNvdWxkIGhhdmUgY2xv
YmJlcmVkIHRoZSBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIgYmVjYXVzZSB0aGV5CiAgICAgICAg
IC8vIHJlc3RvcmUgY2FsbGVlIHNhdmVkIHJlZ2lzdGVycyBiZWZvcmUgZ2V0dGhpbmcgaGVyZS4g
U28sIGxldCdzIG1hdGVyaWFsaXplCiAgICAgICAgIC8vIHRoZSBUYWdNYXNrIGluIGEgdGVtcCBy
ZWdpc3RlciBhbmQgdXNlIHRoZSB0ZW1wIGluc3RlYWQuCi0gICAgICAgIHRhZ01hc2tSZWdpc3Rl
ciA9IEdQUkluZm86OnJlZ1Q0OwotICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW02NChUYWdNYXNrKSwgdGFnTWFza1JlZ2lzdGVyKTsKKyAgICAgICAgc2xvd0Nhc2UuYXBw
ZW5kKGppdC5icmFuY2hJZk5vdENlbGwoR1BSSW5mbzo6cmVnVDAsIERvTm90SGF2ZVRhZ1JlZ2lz
dGVycykpOworICAgIH0gZWxzZQorICAgICAgICBzbG93Q2FzZS5hcHBlbmQoaml0LmJyYW5jaElm
Tm90Q2VsbChHUFJJbmZvOjpyZWdUMCkpOworI2Vsc2UKKyAgICBzbG93Q2FzZS5hcHBlbmQoaml0
LmJyYW5jaElmTm90Q2VsbChHUFJJbmZvOjpyZWdUMSkpOworI2VuZGlmCisgICAgYXV0byBub3RK
U0Z1bmN0aW9uID0gaml0LmJyYW5jaElmTm90VHlwZShHUFJJbmZvOjpyZWdUMCwgSlNGdW5jdGlv
blR5cGUpOworICAgIAorICAgIC8vIE5vdyB3ZSBrbm93IHdlIGhhdmUgYSBKU0Z1bmN0aW9uLgor
CisgICAgaml0LmxvYWRQdHIoCisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZv
OjpyZWdUMCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLAorICAgICAgICBHUFJJ
bmZvOjpyZWdUNCk7CisgICAgaml0LmxvYWRQdHIoCisgICAgICAgIENDYWxsSGVscGVyczo6QWRk
cmVzcygKKyAgICAgICAgICAgIEdQUkluZm86OnJlZ1Q0LCBFeGVjdXRhYmxlQmFzZTo6b2Zmc2V0
T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3IoCisgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZv
LnNwZWNpYWxpemF0aW9uS2luZCgpKSksCisgICAgICAgIEdQUkluZm86OnJlZ1Q0KTsKKyAgICBz
bG93Q2FzZS5hcHBlbmQoaml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJ
bmZvOjpyZWdUNCkpOworICAgIAorICAgIC8vIE5vdyB3ZSBrbm93IHRoYXQgd2UgaGF2ZSBhIENv
ZGVCbG9jaywgYW5kIHdlJ3JlIGNvbW1pdHRlZCB0byBtYWtpbmcgYSBmYXN0CisgICAgLy8gY2Fs
bC4KKworICAgIC8vIE1ha2UgYSB0YWlsIGNhbGwuIFRoaXMgd2lsbCByZXR1cm4gYmFjayB0byBK
SVQgY29kZS4KKyAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgY2FsbENvZGUoaml0LmxhYmVsKCkp
OworICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86OnJlZ1Q0LCBKU0VudHJ5
UHRyVGFnKTsKKyAgICBpZiAoY2FsbExpbmtJbmZvLmlzVGFpbENhbGwoKSkgeworICAgICAgICBq
aXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86OnJlZ1QwKTsKKyAgICAg
ICAgaml0LnByZXBhcmVGb3JUYWlsQ2FsbFNsb3coR1BSSW5mbzo6cmVnVDQpOwogICAgIH0KLSAg
ICBzbG93Q2FzZS5hcHBlbmQoCi0gICAgICAgIGppdC5icmFuY2hUZXN0NjQoQ0NhbGxIZWxwZXJz
OjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMCwgdGFnTWFza1JlZ2lzdGVyKSk7CisgICAgaml0Lmp1
bXAoR1BSSW5mbzo6cmVnVDQsIEpTRW50cnlQdHJUYWcpOworCisgICAgbm90SlNGdW5jdGlvbi5s
aW5rKCZqaXQpOworICAgIHNsb3dDYXNlLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RUeXBlKEdQUklu
Zm86OnJlZ1QwLCBJbnRlcm5hbEZ1bmN0aW9uVHlwZSkpOworICAgIHZvaWQqIGV4ZWN1dGFibGVB
ZGRyZXNzID0gdm0tPmdldENUSUludGVybmFsRnVuY3Rpb25UcmFtcG9saW5lRm9yKGNhbGxMaW5r
SW5mby5zcGVjaWFsaXphdGlvbktpbmQoKSkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKKyAgICBqaXQu
bW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoZXhlY3V0YWJsZUFkZHJlc3MpLCBHUFJJ
bmZvOjpyZWdUNCk7CisgICAgaml0Lmp1bXAoKS5saW5rVG8oY2FsbENvZGUsICZqaXQpOworCisg
ICAgc2xvd0Nhc2UubGluaygmaml0KTsKKyAgICAKKyAgICAvLyBIZXJlIHdlIGRvbid0IGtub3cg
YW55dGhpbmcsIHNvIHJldmVydCB0byB0aGUgZnVsbCBzbG93IHBhdGguCisgICAgc2xvd1BhdGhG
b3Ioaml0LCB2bSwgb3BlcmF0aW9uVmlydHVhbENhbGwpOworCisgICAgTGlua0J1ZmZlciBwYXRj
aEJ1ZmZlcihqaXQsIEdMT0JBTF9USFVOS19JRCk7CisgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUo
CisgICAgICAgIHBhdGNoQnVmZmVyLCBKSVRTdHViUm91dGluZVB0clRhZywKKyAgICAgICAgIlZp
cnR1YWwgJXMgdGh1bmsiLAorICAgICAgICBjYWxsTGlua0luZm8uY2FsbE1vZGUoKSA9PSBDYWxs
TW9kZTo6UmVndWxhciA/ICJjYWxsIiA6IGNhbGxMaW5rSW5mby5jYWxsTW9kZSgpID09IENhbGxN
b2RlOjpUYWlsID8gInRhaWwgY2FsbCIgOiAiY29uc3RydWN0Iik7Cit9CisKK01hY3JvQXNzZW1i
bGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0clRhZz4gdmlydHVhbFNsb3dQYXRoVGh1bmtGb3Io
Vk0qIHZtLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKK3sKKyAgICAvLyBUaGUgY2FsbGVl
IGlzIGluIHJlZ1QwIChmb3IgSlNWQUxVRTMyXzY0LCB0aGUgdGFnIGlzIGluIHJlZ1QxKS4KKyAg
ICAvLyBUaGUgcmV0dXJuIGFkZHJlc3MgaXMgb24gdGhlIHN0YWNrLCBvciBpbiB0aGUgbGluayBy
ZWdpc3Rlci4gV2Ugd2lsbCBoZW5jZQorICAgIC8vIGp1bXAgdG8gdGhlIGNhbGxlZSwgb3Igc2F2
ZSB0aGUgcmV0dXJuIGFkZHJlc3MgdG8gdGhlIGNhbGwgZnJhbWUgd2hpbGUgd2UKKyAgICAvLyBt
YWtlIGEgQysrIGZ1bmN0aW9uIGNhbGwgdG8gdGhlIGFwcHJvcHJpYXRlIEpJVCBvcGVyYXRpb24u
CisKKyAgICBDQ2FsbEhlbHBlcnMgaml0OworICAgIAorICAgIENDYWxsSGVscGVyczo6SnVtcExp
c3Qgc2xvd0Nhc2U7CisgICAgCisgICAgLy8gVGhpcyBpcyBhIHNsb3cgcGF0aCBleGVjdXRpb24s
IGFuZCByZWdUMiBjb250YWlucyB0aGUgQ2FsbExpbmtJbmZvLiBDb3VudCB0aGUKKyAgICAvLyBz
bG93IHBhdGggZXhlY3V0aW9uIGZvciB0aGUgcHJvZmlsZXIuCisgICAgaml0LmFkZDMyKAorICAg
ICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwKKyAgICAgICAgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKEdQUkluZm86OnJlZ1QyLCBDYWxsTGlua0luZm86Om9mZnNldE9mU2xvd1BhdGhD
b3VudCgpKSk7CisKKyAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGhhdmUgYSBzdG9yeSBmb3IgZWxp
bWluYXRpbmcgdGhlc2UgY2hlY2tzLiBJbiBtYW55IGNhc2VzLAorICAgIC8vIHRoZSBERkcga25v
d3MgdGhhdCB0aGUgdmFsdWUgaXMgZGVmaW5pdGVseSBhIGNlbGwsIG9yIGRlZmluaXRlbHkgYSBm
dW5jdGlvbi4KKyAgICAKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGlmIChjYWxsTGlua0luZm8u
aXNUYWlsQ2FsbCgpKSB7CisgICAgICAgIC8vIFRhaWwgY2FsbHMgY291bGQgaGF2ZSBjbG9iYmVy
ZWQgdGhlIEdQUkluZm86OnRhZ01hc2tSZWdpc3RlciBiZWNhdXNlIHRoZXkKKyAgICAgICAgLy8g
cmVzdG9yZSBjYWxsZWUgc2F2ZWQgcmVnaXN0ZXJzIGJlZm9yZSBnZXR0aGluZyBoZXJlLiBTbywg
bGV0J3MgbWF0ZXJpYWxpemUKKyAgICAgICAgLy8gdGhlIFRhZ01hc2sgaW4gYSB0ZW1wIHJlZ2lz
dGVyIGFuZCB1c2UgdGhlIHRlbXAgaW5zdGVhZC4KKyAgICAgICAgc2xvd0Nhc2UuYXBwZW5kKGpp
dC5icmFuY2hJZk5vdENlbGwoR1BSSW5mbzo6cmVnVDAsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycykp
OworICAgIH0gZWxzZQorICAgICAgICBzbG93Q2FzZS5hcHBlbmQoaml0LmJyYW5jaElmTm90Q2Vs
bChHUFJJbmZvOjpyZWdUMCkpOwogI2Vsc2UKICAgICBzbG93Q2FzZS5hcHBlbmQoaml0LmJyYW5j
aElmTm90Q2VsbChHUFJJbmZvOjpyZWdUMSkpOwogI2VuZGlmCkBAIC0yNDAsNiArMzEyLDcgQEAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiB2aXJ0dWFsVGh1bmtG
b3IoVk0qIHZtLCBDYWxsTGlua0luZm8KICAgICAgICAgY2FsbExpbmtJbmZvLmNhbGxNb2RlKCkg
PT0gQ2FsbE1vZGU6OlJlZ3VsYXIgPyAiY2FsbCIgOiBjYWxsTGlua0luZm8uY2FsbE1vZGUoKSA9
PSBDYWxsTW9kZTo6VGFpbCA/ICJ0YWlsIGNhbGwiIDogImNvbnN0cnVjdCIpOwogfQogCisKIGVu
dW0gVGh1bmtFbnRyeVR5cGUgeyBFbnRlclZpYUNhbGwsIEVudGVyVmlhSnVtcFdpdGhTYXZlZFRh
Z3MsIEVudGVyVmlhSnVtcFdpdGhvdXRTYXZlZFRhZ3MgfTsKIGVudW0gY2xhc3MgVGh1bmtGdW5j
dGlvblR5cGUgeyBKU0Z1bmN0aW9uLCBJbnRlcm5hbEZ1bmN0aW9uIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCmluZGV4IDJkNGIzMGYxNzlmY2Q3MmVk
NDlkOTdhYmIzZDY4OWNmYjVjZjJiZjMuLjM5MjY2NTUyM2NlMWQ0NzI5YjBjMDg3NGU0ODQ0MmZi
ZjBkZGE5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5l
cmF0b3JzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMu
aApAQCAtNDEsNyArNDEsOCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+
IGxpbmtDYWxsVGh1bmsoVk0qLCBDYWxsTGlua0luZm8mLCBDb2RlU3BlYwogTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKFZNKik7CiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGxpbmtQb2x5bW9ycGhpY0NhbGxU
aHVua0dlbmVyYXRvcihWTSopOwogCi1NYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUU3R1YlJvdXRp
bmVQdHJUYWc+IHZpcnR1YWxUaHVua0ZvcihWTSosIENhbGxMaW5rSW5mbyYpOworTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiB2aXJ0dWFsVGh1bmtGb3IoVk0qLCBD
YWxsTGlua0luZm8mLCBDb2RlQmxvY2sqIGNhbGxlckNvZGVCbG9jayk7CitNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8SklUU3R1YlJvdXRpbmVQdHJUYWc+IHZpcnR1YWxTbG93UGF0aFRodW5rRm9yKFZN
KiwgQ2FsbExpbmtJbmZvJik7CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRh
Zz4gbmF0aXZlQ2FsbEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRo
dW5rUHRyVGFnPiBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IoVk0qKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371934</attachid>
            <date>2019-06-12 00:19:40 -0700</date>
            <delta_ts>2019-06-12 01:16:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198770-20190612001939.patch</filename>
            <type>text/plain</type>
            <size>13803</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YzA4ZjYwMzljMTEwODRkMTE4N2ExNWM2MGYwZTEzNTI2ODk5YmRkLi5mYWI2MDNlNmY1NDZjMTFm
Yzc1M2JlM2NlNDAwODVkMDEwNGZjNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxOS0wNi0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFBvbHltb3JwaGljIGNhbGwgc3R1YidzIHNsb3cgcGF0aCBzaG91
bGQgcmVzdG9yZSBjYWxsZWUgc2F2ZXMgYmVmb3JlIHBlcmZvcm1pbmcgdGFpbCBjYWxsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3NzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb2x5bW9ycGhpYyBj
YWxsIHN0dWIgaXMgYSBiaXQgc3BlY2lhbGx5IHBhdGNoZWQgaW4gSlMgY2FsbCBzaXRlLiBUeXBp
Y2FsIEpTIGNhbGwgc2l0ZSBmb3IgdGFpbCBjYWxscworICAgICAgICBhcmUgdGhlIGZvbGxvd2lu
Zy4KKworICAgICAgICAgICAgaWYgKGNhbGxlZSA9PSBwYXRjaGFibGVDYWxsZWUpIHsKKyAgICAg
ICAgICAgICAgICByZXN0b3JlIGNhbGxlZSBzYXZlcyBmb3IgdGFpbCBjYWxsCisgICAgICAgICAg
ICAgICAgcHJlcGFyZSBmb3IgdGFpbCBjYWxsCisgICAgICAgICAgICAgICAganVtcCB0byB0aGUg
dGFyZ2V0IGZ1bmN0aW9uCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN0b3JlIGNhbGxl
ZSBzYXZlcyBmb3Igc2xvdyBwYXRoCisgICAgICAgICAgICBjYWxsIHRoZSBzbG93IHBhdGggZnVu
Y3Rpb24KKworICAgICAgICBBbmQgbGlua2luZyBwYXRjaGVzIHBhdGNoYWJsZUNhbGxlZSwgdGFy
Z2V0IGZ1bmN0aW9uLCBhbmQgc2xvdyBwYXRoIGZ1bmN0aW9uLiBCdXQgcG9seW1vcnBoaWMgY2Fs
bCBzdHViCisgICAgICAgIHBhdGNoZXMgdGhlIGFib3ZlIGBpZmAgc3RhdGVtZW50IHdpdGggdGhl
IGp1bXAgdG8gdGhlIHN0dWIuCisKKyAgICAgICAgICAgIGp1bXAgdG8gdGhlIHBvbHltb3JwaGlj
IGNhbGwgc3R1YgorCisgICAgICAgIFRoaXMgaXMgYmVjYXVzZSBwb2x5bW9ycGhpYyBjYWxsIHN0
dWIgd2FudHMgdG8gdXNlIENhbGxGcmFtZVNodWZmbGVyIHRvIGdldCBzY3JhdGNoIHJlZ2lzdGVy
cy4gQXMgYSByZXN1bHQsCisgICAgICAgICJyZXN0b3JlIGNhbGxlZSBzYXZlcyBmb3IgdGFpbCBj
YWxsIiB0aGluZyBuZWVkcyB0byBiZSBkb25lIGluIHRoZSBwb2x5bW9ycGhpYyBjYWxsIHN0dWJz
LiBXaGlsZSBpdCBpcworICAgICAgICBjb3JyZWN0bHkgZG9uZSBmb3IgdGhlIG1ham9yIGNhc2Vz
LCB3ZSBoYXZlIGBzbG93UGF0aGAgc2tpcHMsIGFuZCB0aGF0IHBhdGggbWlzc2VkIHJlc3Rvcmlu
ZyBjYWxsZWUgc2F2ZXMuCisgICAgICAgIFRoaXMgc2tpcCBoYXBwZW5zIGlmIHRoZSBjYWxsZWUg
aXMgbm9uIEpTQ2VsbCBvciBub24gSlMgZnVuY3Rpb24sIHNvIHR5cGljYWxseSwgSW50ZXJuYWxG
dW5jdGlvbiBpcyBoYW5kbGVkCisgICAgICAgIGluIHRoYXQgcGF0aC4KKworICAgICAgICBUaGlz
IHBhdGNoIGRvZXMgdGhhdCBza2lwcyBhZnRlciByZXN0b3JpbmcgY2FsbGVlIHNhdmVzLgorCisg
ICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbExp
bmtJbmZvOjpDYWxsTGlua0luZm8pOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rSW5mby5o
OgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OnNldFVwQ2FsbCk6CisgICAgICAgIChKU0M6
OkNhbGxMaW5rSW5mbzo6Y2FsbGVlR1BSKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpz
ZXRDYWxsZWVHUFIpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAgICAg
ICAgKEpTQzo6cmV2ZXJ0Q2FsbCk6CisgICAgICAgIChKU0M6OmxpbmtWaXJ0dWFsRm9yKToKKyAg
ICAgICAgKEpTQzo6bGlua1BvbHltb3JwaGljQ2FsbCk6CisgICAgICAgICogaml0L1JlcGF0Y2gu
aDoKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmNwcDoKKyAgICAgICAgKEpTQzo6dmly
dHVhbFRodW5rRm9yKToKKwogMjAxOS0wNi0xMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVz
aEBnbWFpbC5jb20+CiAKICAgICAgICAgSlNDIHNob3VsZCB0aHJvdyBpZiBwcm94eSBzZXQgcmV0
dXJucyBmYWxzaXNoIGluIHN0cmljdCBtb2RlIGNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggY2VkOWQ0ZDY3YmFkZGJkNDdm
ZTBkNmQ0MWY0NmY3NzVkMDljYTgyZC4uZDhkYWMxNTg1ZmFiMmI5OThjMWU1ZDg4NzUyYmExMmRm
NmRhZGJkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5r
SW5mby5jcHAKQEAgLTYyLDcgKzYyLDYgQEAgQ2FsbExpbmtJbmZvOjpDYWxsTGlua0luZm8oKQog
ICAgICwgbV9hbGxvd1N0dWJzKHRydWUpCiAgICAgLCBtX2NsZWFyZWRCeUpldHRpc29uKGZhbHNl
KQogICAgICwgbV9jYWxsVHlwZShOb25lKQotICAgICwgbV9jYWxsZWVHUFIoMjU1KQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZv
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKaW5kZXgg
ZmEwYTExNWI1ODkwZTU5NzhjYzRlYjU4MTVjYmMyNzRkZmZmYjAwNy4uODk4NzVkYTJiZTIzNzAw
ODdkYzAxZTVhZGQ2M2E5ZTgxYjEwZDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua0luZm8uaApAQCAtMTU3LDcgKzE1Nyw3IEBAIGNsYXNzIENhbGxMaW5r
SW5mbyA6IHB1YmxpYyBQYWNrZWRSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJbmZvPiB7CiAgICAg
Ym9vbCBpc0xpbmtlZCgpIHsgcmV0dXJuIG1fc3R1YiB8fCBtX2NhbGxlZU9yQ29kZUJsb2NrOyB9
CiAgICAgdm9pZCB1bmxpbmsoVk0mKTsKIAotICAgIHZvaWQgc2V0VXBDYWxsKENhbGxUeXBlIGNh
bGxUeXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIHVuc2lnbmVkIGNhbGxlZUdQUikKKyAgICB2
b2lkIHNldFVwQ2FsbChDYWxsVHlwZSBjYWxsVHlwZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBH
UFJSZWcgY2FsbGVlR1BSKQogICAgIHsKICAgICAgICAgbV9jYWxsVHlwZSA9IGNhbGxUeXBlOwog
ICAgICAgICBtX2NvZGVPcmlnaW4gPSBjb2RlT3JpZ2luOwpAQCAtMzEyLDEyICszMTIsNyBAQCBj
bGFzcyBDYWxsTGlua0luZm8gOiBwdWJsaWMgUGFja2VkUmF3U2VudGluZWxOb2RlPENhbGxMaW5r
SW5mbz4gewogICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENhbGxMaW5rSW5mbywgbV9z
bG93UGF0aENvdW50KTsKICAgICB9CiAKLSAgICB2b2lkIHNldENhbGxlZUdQUih1bnNpZ25lZCBj
YWxsZWVHUFIpCi0gICAgewotICAgICAgICBtX2NhbGxlZUdQUiA9IGNhbGxlZUdQUjsKLSAgICB9
Ci0KLSAgICB1bnNpZ25lZCBjYWxsZWVHUFIoKQorICAgIEdQUlJlZyBjYWxsZWVHUFIoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIG1fY2FsbGVlR1BSOwogICAgIH0KQEAgLTM2NCw3ICszNTksNyBA
QCBjbGFzcyBDYWxsTGlua0luZm8gOiBwdWJsaWMgUGFja2VkUmF3U2VudGluZWxOb2RlPENhbGxM
aW5rSW5mbz4gewogICAgIGJvb2wgbV9hbGxvd1N0dWJzIDogMTsKICAgICBib29sIG1fY2xlYXJl
ZEJ5SmV0dGlzb24gOiAxOwogICAgIHVuc2lnbmVkIG1fY2FsbFR5cGUgOiA0OyAvLyBDYWxsVHlw
ZQotICAgIHVuc2lnbmVkIG1fY2FsbGVlR1BSIDogODsKKyAgICBHUFJSZWcgbV9jYWxsZWVHUFIg
eyBJbnZhbGlkR1BSUmVnIH07CiAgICAgdWludDMyX3QgbV9zbG93UGF0aENvdW50IHsgMCB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKaW5kZXggZjA3ZDMyNWFhYTE3
ZmM5MWZmOGM4YzIzNjQzZTczMjk4NjNlZTgzNi4uMTllNWMwNGFiMDIzMDRlMjM1MzBkNjFjZDA3
Y2UwZWY0MjRmYjU3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBh
dGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCkBAIC05
MDksNyArOTA5LDcgQEAgc3RhdGljIHZvaWQgcmV2ZXJ0Q2FsbChWTSogdm0sIENhbGxMaW5rSW5m
byYgY2FsbExpbmtJbmZvLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYKICAgICAgICAgaWYgKCFjYWxs
TGlua0luZm8uY2xlYXJlZEJ5SmV0dGlzb24oKSkgewogICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OnJldmVydEp1bXBSZXBsYWNlbWVudFRvQnJhbmNoUHRyV2l0aFBhdGNoKAogICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpzdGFydE9mQnJhbmNoUHRyV2l0aFBhdGNoT25SZWdpc3Rl
cihjYWxsTGlua0luZm8uaG90UGF0aEJlZ2luKCkpLAotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEPihjYWxsTGlua0luZm8uY2FsbGVlR1BSKCkp
LCAwKTsKKyAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8uY2FsbGVlR1BSKCksIDApOwogICAg
ICAgICAgICAgbGlua1Nsb3dGb3Iodm0sIGNhbGxMaW5rSW5mbywgY29kZVJlZik7CiAgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRjaFBvaW50ZXIoY2FsbExpbmtJbmZvLmhvdFBhdGhC
ZWdpbigpLCBudWxscHRyKTsKICAgICAgICAgfQpAQCAtOTMwLDcgKzkzMCw3IEBAIHZvaWQgdW5s
aW5rRm9yKFZNJiB2bSwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiAgICAgcmV2ZXJ0Q2Fs
bCgmdm0sIGNhbGxMaW5rSW5mbywgdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9y
KS5yZXRhZ2dlZDxKSVRTdHViUm91dGluZVB0clRhZz4oKSk7CiB9CiAKLXZvaWQgbGlua1ZpcnR1
YWxGb3IoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKK3N0YXRp
YyB2b2lkIGxpbmtWaXJ0dWFsRm9yKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxs
TGlua0luZm8pCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGV4ZWMtPmNhbGxlckZy
YW1lKCk7CiAgICAgVk0mIHZtID0gY2FsbGVyRnJhbWUtPnZtKCk7CkBAIC0xMDM1LDUxICsxMDM1
LDcgQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKAogICAgICAgICBsaW5rVmlydHVhbEZvcihl
eGVjLCBjYWxsTGlua0luZm8pOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAotICAgIEdQ
UlJlZyBjYWxsZWVHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KGNhbGxMaW5rSW5mby5jYWxsZWVH
UFIoKSk7Ci0gICAgCi0gICAgQ0NhbGxIZWxwZXJzIHN0dWJKaXQoY2FsbGVyQ29kZUJsb2NrKTsK
LSAgICAKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dQYXRoOwotICAgIAotICAgIHN0
ZDo6dW5pcXVlX3B0cjxDYWxsRnJhbWVTaHVmZmxlcj4gZnJhbWVTaHVmZmxlcjsKLSAgICBpZiAo
Y2FsbExpbmtJbmZvLmZyYW1lU2h1ZmZsZURhdGEoKSkgewotICAgICAgICBBU1NFUlQoY2FsbExp
bmtJbmZvLmlzVGFpbENhbGwoKSk7Ci0gICAgICAgIGZyYW1lU2h1ZmZsZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPENhbGxGcmFtZVNodWZmbGVyPihzdHViSml0LCAqY2FsbExpbmtJbmZvLmZyYW1lU2h1
ZmZsZURhdGEoKSk7Ci0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgLy8gV2Ugd291bGQg
aGF2ZSBhbHJlYWR5IGNoZWNrZWQgdGhhdCB0aGUgY2FsbGVlIGlzIGEgY2VsbCwgYW5kIHdlIGNh
bgotICAgICAgICAvLyB1c2UgdGhlIGFkZGl0aW9uYWwgcmVnaXN0ZXIgdGhpcyBidXlzIHVzLgot
ICAgICAgICBmcmFtZVNodWZmbGVyLT5hc3N1bWVDYWxsZWVJc0NlbGwoKTsKLSNlbmRpZgotICAg
ICAgICBmcmFtZVNodWZmbGVyLT5sb2NrR1BSKGNhbGxlZUdQUik7Ci0gICAgfQotICAgIEdQUlJl
ZyBjb21wYXJpc29uVmFsdWVHUFI7Ci0gICAgCi0gICAgaWYgKGlzQ2xvc3VyZUNhbGwpIHsKLSAg
ICAgICAgR1BSUmVnIHNjcmF0Y2hHUFI7Ci0gICAgICAgIGlmIChmcmFtZVNodWZmbGVyKQotICAg
ICAgICAgICAgc2NyYXRjaEdQUiA9IGZyYW1lU2h1ZmZsZXItPmFjcXVpcmVHUFIoKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgc2NyYXRjaEdQUiA9IEFzc2VtYmx5SGVscGVyczo6c2VsZWN0
U2NyYXRjaEdQUihjYWxsZWVHUFIpOwotICAgICAgICAvLyBWZXJpZnkgdGhhdCB3ZSBoYXZlIGEg
ZnVuY3Rpb24gYW5kIHN0YXNoIHRoZSBleGVjdXRhYmxlIGluIHNjcmF0Y2hHUFIuCi0KLSNpZiBV
U0UoSlNWQUxVRTY0KQotICAgICAgICBzbG93UGF0aC5hcHBlbmQoc3R1YkppdC5icmFuY2hJZk5v
dENlbGwoY2FsbGVlR1BSKSk7Ci0jZWxzZQotICAgICAgICAvLyBXZSB3b3VsZCBoYXZlIGFscmVh
ZHkgY2hlY2tlZCB0aGF0IHRoZSBjYWxsZWUgaXMgYSBjZWxsLgotI2VuZGlmCiAKLSAgICAgICAg
Ly8gRklYTUU6IFdlIGNvdWxkIGFkZCBhIGZhc3QgcGF0aCBmb3IgSW50ZXJuYWxGdW5jdGlvbiB3
aXRoIGNsb3N1cmUgY2FsbC4KLSAgICAgICAgc2xvd1BhdGguYXBwZW5kKHN0dWJKaXQuYnJhbmNo
SWZOb3RGdW5jdGlvbihjYWxsZWVHUFIpKTsKLSAgICAKLSAgICAgICAgc3R1YkppdC5sb2FkUHRy
KAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGNhbGxlZUdQUiwgSlNGdW5jdGlv
bjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLAotICAgICAgICAgICAgc2NyYXRjaEdQUik7Ci0gICAg
ICAgIAotICAgICAgICBjb21wYXJpc29uVmFsdWVHUFIgPSBzY3JhdGNoR1BSOwotICAgIH0gZWxz
ZQotICAgICAgICBjb21wYXJpc29uVmFsdWVHUFIgPSBjYWxsZWVHUFI7Ci0gICAgCiAgICAgVmVj
dG9yPGludDY0X3Q+IGNhc2VWYWx1ZXMoY2FsbENhc2VzLnNpemUoKSk7CiAgICAgVmVjdG9yPENh
bGxUb0NvZGVQdHI+IGNhbGxzKGNhbGxDYXNlcy5zaXplKCkpOwogICAgIFVuaXF1ZUFycmF5PHVp
bnQzMl90PiBmYXN0Q291bnRzOwpAQCAtMTEyNiw2ICsxMDgyLDMxIEBAIHZvaWQgbGlua1BvbHlt
b3JwaGljQ2FsbCgKICAgICAgICAgY2FzZVZhbHVlc1tpXSA9IG5ld0Nhc2VWYWx1ZTsKICAgICB9
CiAgICAgCisgICAgR1BSUmVnIGNhbGxlZUdQUiA9IGNhbGxMaW5rSW5mby5jYWxsZWVHUFIoKTsK
KworICAgIENDYWxsSGVscGVycyBzdHViSml0KGNhbGxlckNvZGVCbG9jayk7CisKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q2FsbEZyYW1lU2h1ZmZsZXI+IGZyYW1lU2h1ZmZsZXI7CisgICAgaWYgKGNh
bGxMaW5rSW5mby5mcmFtZVNodWZmbGVEYXRhKCkpIHsKKyAgICAgICAgQVNTRVJUKGNhbGxMaW5r
SW5mby5pc1RhaWxDYWxsKCkpOworICAgICAgICBmcmFtZVNodWZmbGVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxDYWxsRnJhbWVTaHVmZmxlcj4oc3R1YkppdCwgKmNhbGxMaW5rSW5mby5mcmFtZVNodWZm
bGVEYXRhKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIC8vIFdlIHdvdWxkIGhh
dmUgYWxyZWFkeSBjaGVja2VkIHRoYXQgdGhlIGNhbGxlZSBpcyBhIGNlbGwsIGFuZCB3ZSBjYW4K
KyAgICAgICAgLy8gdXNlIHRoZSBhZGRpdGlvbmFsIHJlZ2lzdGVyIHRoaXMgYnV5cyB1cy4KKyAg
ICAgICAgZnJhbWVTaHVmZmxlci0+YXNzdW1lQ2FsbGVlSXNDZWxsKCk7CisjZW5kaWYKKyAgICAg
ICAgZnJhbWVTaHVmZmxlci0+bG9ja0dQUihjYWxsZWVHUFIpOworICAgIH0KKworICAgIEdQUlJl
ZyBjb21wYXJpc29uVmFsdWVHUFI7CisgICAgaWYgKGlzQ2xvc3VyZUNhbGwpIHsKKyAgICAgICAg
aWYgKGZyYW1lU2h1ZmZsZXIpCisgICAgICAgICAgICBjb21wYXJpc29uVmFsdWVHUFIgPSBmcmFt
ZVNodWZmbGVyLT5hY3F1aXJlR1BSKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbXBh
cmlzb25WYWx1ZUdQUiA9IEFzc2VtYmx5SGVscGVyczo6c2VsZWN0U2NyYXRjaEdQUihjYWxsZWVH
UFIpOworICAgIH0gZWxzZQorICAgICAgICBjb21wYXJpc29uVmFsdWVHUFIgPSBjYWxsZWVHUFI7
CisKICAgICBHUFJSZWcgZmFzdENvdW50c0Jhc2VHUFI7CiAgICAgaWYgKGZyYW1lU2h1ZmZsZXIp
CiAgICAgICAgIGZhc3RDb3VudHNCYXNlR1BSID0gZnJhbWVTaHVmZmxlci0+YWNxdWlyZUdQUigp
OwpAQCAtMTEzNCw4ICsxMTE1LDMyIEBAIHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbCgKICAgICAg
ICAgICAgIEFzc2VtYmx5SGVscGVyczo6c2VsZWN0U2NyYXRjaEdQUihjYWxsZWVHUFIsIGNvbXBh
cmlzb25WYWx1ZUdQUiwgR1BSSW5mbzo6cmVnVDMpOwogICAgIH0KICAgICBzdHViSml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGZhc3RDb3VudHMuZ2V0KCkpLCBmYXN0Q291bnRz
QmFzZUdQUik7Ci0gICAgaWYgKCFmcmFtZVNodWZmbGVyICYmIGNhbGxMaW5rSW5mby5pc1RhaWxD
YWxsKCkpCisKKyAgICBpZiAoIWZyYW1lU2h1ZmZsZXIgJiYgY2FsbExpbmtJbmZvLmlzVGFpbENh
bGwoKSkgeworICAgICAgICAvLyBXZSBzdHJvbmdseSBhc3N1bWUgdGhhdCBjYWxsZWVHUFIgaXMg
bm90IGEgY2FsbGVlIHNhdmUgcmVnaXN0ZXIgaW4gdGhlIHNsb3cgcGF0aC4KKyAgICAgICAgQVNT
RVJUKCFjYWxsZXJDb2RlQmxvY2stPmNhbGxlZVNhdmVSZWdpc3RlcnMoKS0+ZmluZChjYWxsZWVH
UFIpKTsKICAgICAgICAgc3R1YkppdC5lbWl0UmVzdG9yZUNhbGxlZVNhdmVzKCk7CisgICAgfQor
CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKKyAgICBpZiAoaXNDbG9zdXJl
Q2FsbCkgeworICAgICAgICAvLyBWZXJpZnkgdGhhdCB3ZSBoYXZlIGEgZnVuY3Rpb24gYW5kIHN0
YXNoIHRoZSBleGVjdXRhYmxlIGluIHNjcmF0Y2hHUFIuCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICAgICAgaWYgKGNhbGxMaW5rSW5mby5pc1RhaWxDYWxsKCkpCisgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoc3R1YkppdC5icmFuY2hJZk5vdENlbGwoY2FsbGVlR1BSLCBEb05vdEhhdmVUYWdS
ZWdpc3RlcnMpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKHN0
dWJKaXQuYnJhbmNoSWZOb3RDZWxsKGNhbGxlZUdQUikpOworI2Vsc2UKKyAgICAgICAgLy8gV2Ug
d291bGQgaGF2ZSBhbHJlYWR5IGNoZWNrZWQgdGhhdCB0aGUgY2FsbGVlIGlzIGEgY2VsbC4KKyNl
bmRpZgorICAgICAgICAvLyBGSVhNRTogV2UgY291bGQgYWRkIGEgZmFzdCBwYXRoIGZvciBJbnRl
cm5hbEZ1bmN0aW9uIHdpdGggY2xvc3VyZSBjYWxsLgorICAgICAgICBzbG93UGF0aC5hcHBlbmQo
c3R1YkppdC5icmFuY2hJZk5vdEZ1bmN0aW9uKGNhbGxlZUdQUikpOworCisgICAgICAgIHN0dWJK
aXQubG9hZFB0cigKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhjYWxsZWVHUFIs
IEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwKKyAgICAgICAgICAgIGNvbXBhcmlz
b25WYWx1ZUdQUik7CisgICAgfQorCiAgICAgQmluYXJ5U3dpdGNoIGJpbmFyeVN3aXRjaChjb21w
YXJpc29uVmFsdWVHUFIsIGNhc2VWYWx1ZXMsIEJpbmFyeVN3aXRjaDo6SW50UHRyKTsKICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgd2hpbGUgKGJpbmFyeVN3aXRjaC5hZHZh
bmNlKHN0dWJKaXQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCmluZGV4IDg2YTZj
NWEzZGZlMzFiZWQ4MmM0ZTk1MGYzZGQwNmZhMTQyMzY0MTMuLjAyZGIxMjAyYmViYmRlNGRkNWI1
ZTk3ODA4NzViMzg5MGQ3OTYxZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCkBA
IC01MCw3ICs1MCw2IEBAIHZvaWQgbGlua0ZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBD
b2RlQmxvY2sqLCBKU09iamVjdCogY2FsbGVlLCBNYWNyb0Fzc2VtCiB2b2lkIGxpbmtEaXJlY3RG
b3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPEpTRW50cnlQdHJUYWc+KTsKIHZvaWQgbGlua1Nsb3dGb3IoRXhlY1N0YXRlKiwgQ2Fs
bExpbmtJbmZvJik7CiB2b2lkIHVubGlua0ZvcihWTSYsIENhbGxMaW5rSW5mbyYpOwotdm9pZCBs
aW5rVmlydHVhbEZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mKTsKIHZvaWQgbGlua1BvbHlt
b3JwaGljQ2FsbChFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDYWxsVmFyaWFudCk7CiB2b2lk
IHJlc2V0R2V0QnlJRChDb2RlQmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIEdldEJ5SURLaW5k
KTsKIHZvaWQgcmVzZXRQdXRCeUlEKENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKaW5kZXggZTg0
ZjAwNDQ3NzcxY2EzMGZmMjI3MjM0OWM0ZTA3ZTdhYWEzZGUwYi4uY2I5YmFiNDNhMDE2Y2U5MGJi
N2M2NDI3YjIyYjUzNjJiZGEwYjVlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
VGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtMTgzLDIwICsxODMsMTcgQEAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiB2aXJ0dWFsVGh1bmtGb3IoVk0qIHZtLCBDYWxs
TGlua0luZm8KICAgICAvLyB0aGUgREZHIGtub3dzIHRoYXQgdGhlIHZhbHVlIGlzIGRlZmluaXRl
bHkgYSBjZWxsLCBvciBkZWZpbml0ZWx5IGEgZnVuY3Rpb24uCiAgICAgCiAjaWYgVVNFKEpTVkFM
VUU2NCkKLSAgICBHUFJSZWcgdGFnTWFza1JlZ2lzdGVyID0gR1BSSW5mbzo6dGFnTWFza1JlZ2lz
dGVyOwogICAgIGlmIChjYWxsTGlua0luZm8uaXNUYWlsQ2FsbCgpKSB7CiAgICAgICAgIC8vIFRh
aWwgY2FsbHMgY291bGQgaGF2ZSBjbG9iYmVyZWQgdGhlIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rl
ciBiZWNhdXNlIHRoZXkKICAgICAgICAgLy8gcmVzdG9yZSBjYWxsZWUgc2F2ZWQgcmVnaXN0ZXJz
IGJlZm9yZSBnZXR0aGluZyBoZXJlLiBTbywgbGV0J3MgbWF0ZXJpYWxpemUKICAgICAgICAgLy8g
dGhlIFRhZ01hc2sgaW4gYSB0ZW1wIHJlZ2lzdGVyIGFuZCB1c2UgdGhlIHRlbXAgaW5zdGVhZC4K
LSAgICAgICAgdGFnTWFza1JlZ2lzdGVyID0gR1BSSW5mbzo6cmVnVDQ7Ci0gICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KFRhZ01hc2spLCB0YWdNYXNrUmVnaXN0ZXIp
OwotICAgIH0KLSAgICBzbG93Q2FzZS5hcHBlbmQoCi0gICAgICAgIGppdC5icmFuY2hUZXN0NjQo
Q0NhbGxIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMCwgdGFnTWFza1JlZ2lzdGVyKSk7
CisgICAgICAgIHNsb3dDYXNlLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxsKEdQUkluZm86OnJl
Z1QwLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2xvd0Nh
c2UuYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoR1BSSW5mbzo6cmVnVDApKTsKICNlbHNlCiAg
ICAgc2xvd0Nhc2UuYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoR1BSSW5mbzo6cmVnVDEpKTsK
ICNlbmRpZgotICAgIGF1dG8gbm90SlNGdW5jdGlvbiA9IGppdC5icmFuY2hJZk5vdFR5cGUoR1BS
SW5mbzo6cmVnVDAsIEpTRnVuY3Rpb25UeXBlKTsKKyAgICBhdXRvIG5vdEpTRnVuY3Rpb24gPSBq
aXQuYnJhbmNoSWZOb3RGdW5jdGlvbihHUFJJbmZvOjpyZWdUMCk7CiAgICAgCiAgICAgLy8gTm93
IHdlIGtub3cgd2UgaGF2ZSBhIEpTRnVuY3Rpb24uCiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hh
bmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmVmN2NiOTZkMjJhNzQ3ZWJlMjE2OGVi
YjYyOTA4YmQ3MjQwZGJkZC4uMzljZDY0OWUwZmJiMjBmYjdmMWU4YzJlOGY1YTdmZTg4MWZjMTUx
YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxOS0wNi0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgorCisgICAgICAgIFtKU0NdIFBvbHltb3JwaGljIGNhbGwgc3R1YidzIHNsb3cgcGF0
aCBzaG91bGQgcmVzdG9yZSBjYWxsZWUgc2F2ZXMgYmVmb3JlIHBlcmZvcm1pbmcgdGFpbCBjYWxs
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3NzAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVz
cy9wb2x5LWNhbGwtc3R1Yi1zbG93LXBhdGgtc2hvdWxkLXJlc3RvcmUtY2FsbGVlLXNhdmVzLXdo
ZW4tZG9pbmctdGFpbC1jYWxsLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorCiAyMDE5LTA2
LTExICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBK
U0Mgc2hvdWxkIHRocm93IGlmIHByb3h5IHNldCByZXR1cm5zIGZhbHNpc2ggaW4gc3RyaWN0IG1v
ZGUgY29udGV4dApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcG9seS1jYWxsLXN0dWItc2xv
dy1wYXRoLXNob3VsZC1yZXN0b3JlLWNhbGxlZS1zYXZlcy13aGVuLWRvaW5nLXRhaWwtY2FsbC5q
cyBiL0pTVGVzdHMvc3RyZXNzL3BvbHktY2FsbC1zdHViLXNsb3ctcGF0aC1zaG91bGQtcmVzdG9y
ZS1jYWxsZWUtc2F2ZXMtd2hlbi1kb2luZy10YWlsLWNhbGwuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg4MWYx
YzgzZjE5Mzg4M2FlZThkOWVlMWEyZTljODNkY2JhZGViZAotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3BvbHktY2FsbC1zdHViLXNsb3ctcGF0aC1zaG91bGQtcmVzdG9yZS1jYWxs
ZWUtc2F2ZXMtd2hlbi1kb2luZy10YWlsLWNhbGwuanMKQEAgLTAsMCArMSwxNSBAQAorLy9AIHJ1
bkRlZmF1bHQoIi0tdXNlQ29uY3VycmVudEpJVD0wIikKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAgICAgdmFyIGEgPSBXZWFrU2V0
LmJpbmQoKTsKKyAgICAgICAgdmFyIGIgPSBuZXcgUHJveHkoYSwgYSk7CisgICAgICAgIHZhciBj
ID0gbmV3IFByb21pc2UoYik7CisgICAgICAgIHZhciBkID0gV2Vha1NldC5iaW5kKCk7CisgICAg
ICAgIHZhciBlID0gbmV3IFByb3h5KGQsIFdlYWtTZXQpOworICAgICAgICB2YXIgZiA9IG5ldyBQ
cm9taXNlKGUpOworICAgIH0KK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCA1MDsgKytpKQorICAg
IHRlc3QoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371935</attachid>
            <date>2019-06-12 01:03:59 -0700</date>
            <delta_ts>2019-06-12 01:16:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198770-20190612010358.patch</filename>
            <type>text/plain</type>
            <size>13803</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YzA4ZjYwMzljMTEwODRkMTE4N2ExNWM2MGYwZTEzNTI2ODk5YmRkLi5mYWI2MDNlNmY1NDZjMTFm
Yzc1M2JlM2NlNDAwODVkMDEwNGZjNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxOS0wNi0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFBvbHltb3JwaGljIGNhbGwgc3R1YidzIHNsb3cgcGF0aCBzaG91
bGQgcmVzdG9yZSBjYWxsZWUgc2F2ZXMgYmVmb3JlIHBlcmZvcm1pbmcgdGFpbCBjYWxsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3NzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb2x5bW9ycGhpYyBj
YWxsIHN0dWIgaXMgYSBiaXQgc3BlY2lhbGx5IHBhdGNoZWQgaW4gSlMgY2FsbCBzaXRlLiBUeXBp
Y2FsIEpTIGNhbGwgc2l0ZSBmb3IgdGFpbCBjYWxscworICAgICAgICBhcmUgdGhlIGZvbGxvd2lu
Zy4KKworICAgICAgICAgICAgaWYgKGNhbGxlZSA9PSBwYXRjaGFibGVDYWxsZWUpIHsKKyAgICAg
ICAgICAgICAgICByZXN0b3JlIGNhbGxlZSBzYXZlcyBmb3IgdGFpbCBjYWxsCisgICAgICAgICAg
ICAgICAgcHJlcGFyZSBmb3IgdGFpbCBjYWxsCisgICAgICAgICAgICAgICAganVtcCB0byB0aGUg
dGFyZ2V0IGZ1bmN0aW9uCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN0b3JlIGNhbGxl
ZSBzYXZlcyBmb3Igc2xvdyBwYXRoCisgICAgICAgICAgICBjYWxsIHRoZSBzbG93IHBhdGggZnVu
Y3Rpb24KKworICAgICAgICBBbmQgbGlua2luZyBwYXRjaGVzIHBhdGNoYWJsZUNhbGxlZSwgdGFy
Z2V0IGZ1bmN0aW9uLCBhbmQgc2xvdyBwYXRoIGZ1bmN0aW9uLiBCdXQgcG9seW1vcnBoaWMgY2Fs
bCBzdHViCisgICAgICAgIHBhdGNoZXMgdGhlIGFib3ZlIGBpZmAgc3RhdGVtZW50IHdpdGggdGhl
IGp1bXAgdG8gdGhlIHN0dWIuCisKKyAgICAgICAgICAgIGp1bXAgdG8gdGhlIHBvbHltb3JwaGlj
IGNhbGwgc3R1YgorCisgICAgICAgIFRoaXMgaXMgYmVjYXVzZSBwb2x5bW9ycGhpYyBjYWxsIHN0
dWIgd2FudHMgdG8gdXNlIENhbGxGcmFtZVNodWZmbGVyIHRvIGdldCBzY3JhdGNoIHJlZ2lzdGVy
cy4gQXMgYSByZXN1bHQsCisgICAgICAgICJyZXN0b3JlIGNhbGxlZSBzYXZlcyBmb3IgdGFpbCBj
YWxsIiB0aGluZyBuZWVkcyB0byBiZSBkb25lIGluIHRoZSBwb2x5bW9ycGhpYyBjYWxsIHN0dWJz
LiBXaGlsZSBpdCBpcworICAgICAgICBjb3JyZWN0bHkgZG9uZSBmb3IgdGhlIG1ham9yIGNhc2Vz
LCB3ZSBoYXZlIGBzbG93UGF0aGAgc2tpcHMsIGFuZCB0aGF0IHBhdGggbWlzc2VkIHJlc3Rvcmlu
ZyBjYWxsZWUgc2F2ZXMuCisgICAgICAgIFRoaXMgc2tpcCBoYXBwZW5zIGlmIHRoZSBjYWxsZWUg
aXMgbm9uIEpTQ2VsbCBvciBub24gSlMgZnVuY3Rpb24sIHNvIHR5cGljYWxseSwgSW50ZXJuYWxG
dW5jdGlvbiBpcyBoYW5kbGVkCisgICAgICAgIGluIHRoYXQgcGF0aC4KKworICAgICAgICBUaGlz
IHBhdGNoIGRvZXMgdGhhdCBza2lwcyBhZnRlciByZXN0b3JpbmcgY2FsbGVlIHNhdmVzLgorCisg
ICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbExp
bmtJbmZvOjpDYWxsTGlua0luZm8pOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rSW5mby5o
OgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OnNldFVwQ2FsbCk6CisgICAgICAgIChKU0M6
OkNhbGxMaW5rSW5mbzo6Y2FsbGVlR1BSKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpz
ZXRDYWxsZWVHUFIpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAgICAg
ICAgKEpTQzo6cmV2ZXJ0Q2FsbCk6CisgICAgICAgIChKU0M6OmxpbmtWaXJ0dWFsRm9yKToKKyAg
ICAgICAgKEpTQzo6bGlua1BvbHltb3JwaGljQ2FsbCk6CisgICAgICAgICogaml0L1JlcGF0Y2gu
aDoKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmNwcDoKKyAgICAgICAgKEpTQzo6dmly
dHVhbFRodW5rRm9yKToKKwogMjAxOS0wNi0xMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVz
aEBnbWFpbC5jb20+CiAKICAgICAgICAgSlNDIHNob3VsZCB0aHJvdyBpZiBwcm94eSBzZXQgcmV0
dXJucyBmYWxzaXNoIGluIHN0cmljdCBtb2RlIGNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXggY2VkOWQ0ZDY3YmFkZGJkNDdm
ZTBkNmQ0MWY0NmY3NzVkMDljYTgyZC4uZDhkYWMxNTg1ZmFiMmI5OThjMWU1ZDg4NzUyYmExMmRm
NmRhZGJkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5r
SW5mby5jcHAKQEAgLTYyLDcgKzYyLDYgQEAgQ2FsbExpbmtJbmZvOjpDYWxsTGlua0luZm8oKQog
ICAgICwgbV9hbGxvd1N0dWJzKHRydWUpCiAgICAgLCBtX2NsZWFyZWRCeUpldHRpc29uKGZhbHNl
KQogICAgICwgbV9jYWxsVHlwZShOb25lKQotICAgICwgbV9jYWxsZWVHUFIoMjU1KQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZv
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKaW5kZXgg
ZmEwYTExNWI1ODkwZTU5NzhjYzRlYjU4MTVjYmMyNzRkZmZmYjAwNy4uODk4NzVkYTJiZTIzNzAw
ODdkYzAxZTVhZGQ2M2E5ZTgxYjEwZDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9DYWxsTGlua0luZm8uaApAQCAtMTU3LDcgKzE1Nyw3IEBAIGNsYXNzIENhbGxMaW5r
SW5mbyA6IHB1YmxpYyBQYWNrZWRSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJbmZvPiB7CiAgICAg
Ym9vbCBpc0xpbmtlZCgpIHsgcmV0dXJuIG1fc3R1YiB8fCBtX2NhbGxlZU9yQ29kZUJsb2NrOyB9
CiAgICAgdm9pZCB1bmxpbmsoVk0mKTsKIAotICAgIHZvaWQgc2V0VXBDYWxsKENhbGxUeXBlIGNh
bGxUeXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIHVuc2lnbmVkIGNhbGxlZUdQUikKKyAgICB2
b2lkIHNldFVwQ2FsbChDYWxsVHlwZSBjYWxsVHlwZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBH
UFJSZWcgY2FsbGVlR1BSKQogICAgIHsKICAgICAgICAgbV9jYWxsVHlwZSA9IGNhbGxUeXBlOwog
ICAgICAgICBtX2NvZGVPcmlnaW4gPSBjb2RlT3JpZ2luOwpAQCAtMzEyLDEyICszMTIsNyBAQCBj
bGFzcyBDYWxsTGlua0luZm8gOiBwdWJsaWMgUGFja2VkUmF3U2VudGluZWxOb2RlPENhbGxMaW5r
SW5mbz4gewogICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENhbGxMaW5rSW5mbywgbV9z
bG93UGF0aENvdW50KTsKICAgICB9CiAKLSAgICB2b2lkIHNldENhbGxlZUdQUih1bnNpZ25lZCBj
YWxsZWVHUFIpCi0gICAgewotICAgICAgICBtX2NhbGxlZUdQUiA9IGNhbGxlZUdQUjsKLSAgICB9
Ci0KLSAgICB1bnNpZ25lZCBjYWxsZWVHUFIoKQorICAgIEdQUlJlZyBjYWxsZWVHUFIoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIG1fY2FsbGVlR1BSOwogICAgIH0KQEAgLTM2NCw3ICszNTksNyBA
QCBjbGFzcyBDYWxsTGlua0luZm8gOiBwdWJsaWMgUGFja2VkUmF3U2VudGluZWxOb2RlPENhbGxM
aW5rSW5mbz4gewogICAgIGJvb2wgbV9hbGxvd1N0dWJzIDogMTsKICAgICBib29sIG1fY2xlYXJl
ZEJ5SmV0dGlzb24gOiAxOwogICAgIHVuc2lnbmVkIG1fY2FsbFR5cGUgOiA0OyAvLyBDYWxsVHlw
ZQotICAgIHVuc2lnbmVkIG1fY2FsbGVlR1BSIDogODsKKyAgICBHUFJSZWcgbV9jYWxsZWVHUFIg
eyBJbnZhbGlkR1BSUmVnIH07CiAgICAgdWludDMyX3QgbV9zbG93UGF0aENvdW50IHsgMCB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKaW5kZXggZjA3ZDMyNWFhYTE3
ZmM5MWZmOGM4YzIzNjQzZTczMjk4NjNlZTgzNi4uMTllNWMwNGFiMDIzMDRlMjM1MzBkNjFjZDA3
Y2UwZWY0MjRmYjU3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBh
dGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCkBAIC05
MDksNyArOTA5LDcgQEAgc3RhdGljIHZvaWQgcmV2ZXJ0Q2FsbChWTSogdm0sIENhbGxMaW5rSW5m
byYgY2FsbExpbmtJbmZvLCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYKICAgICAgICAgaWYgKCFjYWxs
TGlua0luZm8uY2xlYXJlZEJ5SmV0dGlzb24oKSkgewogICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OnJldmVydEp1bXBSZXBsYWNlbWVudFRvQnJhbmNoUHRyV2l0aFBhdGNoKAogICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpzdGFydE9mQnJhbmNoUHRyV2l0aFBhdGNoT25SZWdpc3Rl
cihjYWxsTGlua0luZm8uaG90UGF0aEJlZ2luKCkpLAotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEPihjYWxsTGlua0luZm8uY2FsbGVlR1BSKCkp
LCAwKTsKKyAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8uY2FsbGVlR1BSKCksIDApOwogICAg
ICAgICAgICAgbGlua1Nsb3dGb3Iodm0sIGNhbGxMaW5rSW5mbywgY29kZVJlZik7CiAgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6cmVwYXRjaFBvaW50ZXIoY2FsbExpbmtJbmZvLmhvdFBhdGhC
ZWdpbigpLCBudWxscHRyKTsKICAgICAgICAgfQpAQCAtOTMwLDcgKzkzMCw3IEBAIHZvaWQgdW5s
aW5rRm9yKFZNJiB2bSwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8pCiAgICAgcmV2ZXJ0Q2Fs
bCgmdm0sIGNhbGxMaW5rSW5mbywgdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9y
KS5yZXRhZ2dlZDxKSVRTdHViUm91dGluZVB0clRhZz4oKSk7CiB9CiAKLXZvaWQgbGlua1ZpcnR1
YWxGb3IoRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKK3N0YXRp
YyB2b2lkIGxpbmtWaXJ0dWFsRm9yKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxs
TGlua0luZm8pCiB7CiAgICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGV4ZWMtPmNhbGxlckZy
YW1lKCk7CiAgICAgVk0mIHZtID0gY2FsbGVyRnJhbWUtPnZtKCk7CkBAIC0xMDM1LDUxICsxMDM1
LDcgQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKAogICAgICAgICBsaW5rVmlydHVhbEZvcihl
eGVjLCBjYWxsTGlua0luZm8pOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAotICAgIEdQ
UlJlZyBjYWxsZWVHUFIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KGNhbGxMaW5rSW5mby5jYWxsZWVH
UFIoKSk7Ci0gICAgCi0gICAgQ0NhbGxIZWxwZXJzIHN0dWJKaXQoY2FsbGVyQ29kZUJsb2NrKTsK
LSAgICAKLSAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dQYXRoOwotICAgIAotICAgIHN0
ZDo6dW5pcXVlX3B0cjxDYWxsRnJhbWVTaHVmZmxlcj4gZnJhbWVTaHVmZmxlcjsKLSAgICBpZiAo
Y2FsbExpbmtJbmZvLmZyYW1lU2h1ZmZsZURhdGEoKSkgewotICAgICAgICBBU1NFUlQoY2FsbExp
bmtJbmZvLmlzVGFpbENhbGwoKSk7Ci0gICAgICAgIGZyYW1lU2h1ZmZsZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPENhbGxGcmFtZVNodWZmbGVyPihzdHViSml0LCAqY2FsbExpbmtJbmZvLmZyYW1lU2h1
ZmZsZURhdGEoKSk7Ci0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgLy8gV2Ugd291bGQg
aGF2ZSBhbHJlYWR5IGNoZWNrZWQgdGhhdCB0aGUgY2FsbGVlIGlzIGEgY2VsbCwgYW5kIHdlIGNh
bgotICAgICAgICAvLyB1c2UgdGhlIGFkZGl0aW9uYWwgcmVnaXN0ZXIgdGhpcyBidXlzIHVzLgot
ICAgICAgICBmcmFtZVNodWZmbGVyLT5hc3N1bWVDYWxsZWVJc0NlbGwoKTsKLSNlbmRpZgotICAg
ICAgICBmcmFtZVNodWZmbGVyLT5sb2NrR1BSKGNhbGxlZUdQUik7Ci0gICAgfQotICAgIEdQUlJl
ZyBjb21wYXJpc29uVmFsdWVHUFI7Ci0gICAgCi0gICAgaWYgKGlzQ2xvc3VyZUNhbGwpIHsKLSAg
ICAgICAgR1BSUmVnIHNjcmF0Y2hHUFI7Ci0gICAgICAgIGlmIChmcmFtZVNodWZmbGVyKQotICAg
ICAgICAgICAgc2NyYXRjaEdQUiA9IGZyYW1lU2h1ZmZsZXItPmFjcXVpcmVHUFIoKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgc2NyYXRjaEdQUiA9IEFzc2VtYmx5SGVscGVyczo6c2VsZWN0
U2NyYXRjaEdQUihjYWxsZWVHUFIpOwotICAgICAgICAvLyBWZXJpZnkgdGhhdCB3ZSBoYXZlIGEg
ZnVuY3Rpb24gYW5kIHN0YXNoIHRoZSBleGVjdXRhYmxlIGluIHNjcmF0Y2hHUFIuCi0KLSNpZiBV
U0UoSlNWQUxVRTY0KQotICAgICAgICBzbG93UGF0aC5hcHBlbmQoc3R1YkppdC5icmFuY2hJZk5v
dENlbGwoY2FsbGVlR1BSKSk7Ci0jZWxzZQotICAgICAgICAvLyBXZSB3b3VsZCBoYXZlIGFscmVh
ZHkgY2hlY2tlZCB0aGF0IHRoZSBjYWxsZWUgaXMgYSBjZWxsLgotI2VuZGlmCiAKLSAgICAgICAg
Ly8gRklYTUU6IFdlIGNvdWxkIGFkZCBhIGZhc3QgcGF0aCBmb3IgSW50ZXJuYWxGdW5jdGlvbiB3
aXRoIGNsb3N1cmUgY2FsbC4KLSAgICAgICAgc2xvd1BhdGguYXBwZW5kKHN0dWJKaXQuYnJhbmNo
SWZOb3RGdW5jdGlvbihjYWxsZWVHUFIpKTsKLSAgICAKLSAgICAgICAgc3R1YkppdC5sb2FkUHRy
KAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGNhbGxlZUdQUiwgSlNGdW5jdGlv
bjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLAotICAgICAgICAgICAgc2NyYXRjaEdQUik7Ci0gICAg
ICAgIAotICAgICAgICBjb21wYXJpc29uVmFsdWVHUFIgPSBzY3JhdGNoR1BSOwotICAgIH0gZWxz
ZQotICAgICAgICBjb21wYXJpc29uVmFsdWVHUFIgPSBjYWxsZWVHUFI7Ci0gICAgCiAgICAgVmVj
dG9yPGludDY0X3Q+IGNhc2VWYWx1ZXMoY2FsbENhc2VzLnNpemUoKSk7CiAgICAgVmVjdG9yPENh
bGxUb0NvZGVQdHI+IGNhbGxzKGNhbGxDYXNlcy5zaXplKCkpOwogICAgIFVuaXF1ZUFycmF5PHVp
bnQzMl90PiBmYXN0Q291bnRzOwpAQCAtMTEyNiw2ICsxMDgyLDMxIEBAIHZvaWQgbGlua1BvbHlt
b3JwaGljQ2FsbCgKICAgICAgICAgY2FzZVZhbHVlc1tpXSA9IG5ld0Nhc2VWYWx1ZTsKICAgICB9
CiAgICAgCisgICAgR1BSUmVnIGNhbGxlZUdQUiA9IGNhbGxMaW5rSW5mby5jYWxsZWVHUFIoKTsK
KworICAgIENDYWxsSGVscGVycyBzdHViSml0KGNhbGxlckNvZGVCbG9jayk7CisKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q2FsbEZyYW1lU2h1ZmZsZXI+IGZyYW1lU2h1ZmZsZXI7CisgICAgaWYgKGNh
bGxMaW5rSW5mby5mcmFtZVNodWZmbGVEYXRhKCkpIHsKKyAgICAgICAgQVNTRVJUKGNhbGxMaW5r
SW5mby5pc1RhaWxDYWxsKCkpOworICAgICAgICBmcmFtZVNodWZmbGVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxDYWxsRnJhbWVTaHVmZmxlcj4oc3R1YkppdCwgKmNhbGxMaW5rSW5mby5mcmFtZVNodWZm
bGVEYXRhKCkpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIC8vIFdlIHdvdWxkIGhh
dmUgYWxyZWFkeSBjaGVja2VkIHRoYXQgdGhlIGNhbGxlZSBpcyBhIGNlbGwsIGFuZCB3ZSBjYW4K
KyAgICAgICAgLy8gdXNlIHRoZSBhZGRpdGlvbmFsIHJlZ2lzdGVyIHRoaXMgYnV5cyB1cy4KKyAg
ICAgICAgZnJhbWVTaHVmZmxlci0+YXNzdW1lQ2FsbGVlSXNDZWxsKCk7CisjZW5kaWYKKyAgICAg
ICAgZnJhbWVTaHVmZmxlci0+bG9ja0dQUihjYWxsZWVHUFIpOworICAgIH0KKworICAgIEdQUlJl
ZyBjb21wYXJpc29uVmFsdWVHUFI7CisgICAgaWYgKGlzQ2xvc3VyZUNhbGwpIHsKKyAgICAgICAg
aWYgKGZyYW1lU2h1ZmZsZXIpCisgICAgICAgICAgICBjb21wYXJpc29uVmFsdWVHUFIgPSBmcmFt
ZVNodWZmbGVyLT5hY3F1aXJlR1BSKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbXBh
cmlzb25WYWx1ZUdQUiA9IEFzc2VtYmx5SGVscGVyczo6c2VsZWN0U2NyYXRjaEdQUihjYWxsZWVH
UFIpOworICAgIH0gZWxzZQorICAgICAgICBjb21wYXJpc29uVmFsdWVHUFIgPSBjYWxsZWVHUFI7
CisKICAgICBHUFJSZWcgZmFzdENvdW50c0Jhc2VHUFI7CiAgICAgaWYgKGZyYW1lU2h1ZmZsZXIp
CiAgICAgICAgIGZhc3RDb3VudHNCYXNlR1BSID0gZnJhbWVTaHVmZmxlci0+YWNxdWlyZUdQUigp
OwpAQCAtMTEzNCw4ICsxMTE1LDMyIEBAIHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbCgKICAgICAg
ICAgICAgIEFzc2VtYmx5SGVscGVyczo6c2VsZWN0U2NyYXRjaEdQUihjYWxsZWVHUFIsIGNvbXBh
cmlzb25WYWx1ZUdQUiwgR1BSSW5mbzo6cmVnVDMpOwogICAgIH0KICAgICBzdHViSml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGZhc3RDb3VudHMuZ2V0KCkpLCBmYXN0Q291bnRz
QmFzZUdQUik7Ci0gICAgaWYgKCFmcmFtZVNodWZmbGVyICYmIGNhbGxMaW5rSW5mby5pc1RhaWxD
YWxsKCkpCisKKyAgICBpZiAoIWZyYW1lU2h1ZmZsZXIgJiYgY2FsbExpbmtJbmZvLmlzVGFpbENh
bGwoKSkgeworICAgICAgICAvLyBXZSBzdHJvbmdseSBhc3N1bWUgdGhhdCBjYWxsZWVHUFIgaXMg
bm90IGEgY2FsbGVlIHNhdmUgcmVnaXN0ZXIgaW4gdGhlIHNsb3cgcGF0aC4KKyAgICAgICAgQVNT
RVJUKCFjYWxsZXJDb2RlQmxvY2stPmNhbGxlZVNhdmVSZWdpc3RlcnMoKS0+ZmluZChjYWxsZWVH
UFIpKTsKICAgICAgICAgc3R1YkppdC5lbWl0UmVzdG9yZUNhbGxlZVNhdmVzKCk7CisgICAgfQor
CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKKyAgICBpZiAoaXNDbG9zdXJl
Q2FsbCkgeworICAgICAgICAvLyBWZXJpZnkgdGhhdCB3ZSBoYXZlIGEgZnVuY3Rpb24gYW5kIHN0
YXNoIHRoZSBleGVjdXRhYmxlIGluIHNjcmF0Y2hHUFIuCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICAgICAgaWYgKGNhbGxMaW5rSW5mby5pc1RhaWxDYWxsKCkpCisgICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoc3R1YkppdC5icmFuY2hJZk5vdENlbGwoY2FsbGVlR1BSLCBEb05vdEhhdmVUYWdS
ZWdpc3RlcnMpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKHN0
dWJKaXQuYnJhbmNoSWZOb3RDZWxsKGNhbGxlZUdQUikpOworI2Vsc2UKKyAgICAgICAgLy8gV2Ug
d291bGQgaGF2ZSBhbHJlYWR5IGNoZWNrZWQgdGhhdCB0aGUgY2FsbGVlIGlzIGEgY2VsbC4KKyNl
bmRpZgorICAgICAgICAvLyBGSVhNRTogV2UgY291bGQgYWRkIGEgZmFzdCBwYXRoIGZvciBJbnRl
cm5hbEZ1bmN0aW9uIHdpdGggY2xvc3VyZSBjYWxsLgorICAgICAgICBzbG93UGF0aC5hcHBlbmQo
c3R1YkppdC5icmFuY2hJZk5vdEZ1bmN0aW9uKGNhbGxlZUdQUikpOworCisgICAgICAgIHN0dWJK
aXQubG9hZFB0cigKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhjYWxsZWVHUFIs
IEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwKKyAgICAgICAgICAgIGNvbXBhcmlz
b25WYWx1ZUdQUik7CisgICAgfQorCiAgICAgQmluYXJ5U3dpdGNoIGJpbmFyeVN3aXRjaChjb21w
YXJpc29uVmFsdWVHUFIsIGNhc2VWYWx1ZXMsIEJpbmFyeVN3aXRjaDo6SW50UHRyKTsKICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgd2hpbGUgKGJpbmFyeVN3aXRjaC5hZHZh
bmNlKHN0dWJKaXQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCmluZGV4IDg2YTZj
NWEzZGZlMzFiZWQ4MmM0ZTk1MGYzZGQwNmZhMTQyMzY0MTMuLjAyZGIxMjAyYmViYmRlNGRkNWI1
ZTk3ODA4NzViMzg5MGQ3OTYxZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5oCkBA
IC01MCw3ICs1MCw2IEBAIHZvaWQgbGlua0ZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBD
b2RlQmxvY2sqLCBKU09iamVjdCogY2FsbGVlLCBNYWNyb0Fzc2VtCiB2b2lkIGxpbmtEaXJlY3RG
b3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2NrKiwgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPEpTRW50cnlQdHJUYWc+KTsKIHZvaWQgbGlua1Nsb3dGb3IoRXhlY1N0YXRlKiwgQ2Fs
bExpbmtJbmZvJik7CiB2b2lkIHVubGlua0ZvcihWTSYsIENhbGxMaW5rSW5mbyYpOwotdm9pZCBs
aW5rVmlydHVhbEZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mKTsKIHZvaWQgbGlua1BvbHlt
b3JwaGljQ2FsbChFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDYWxsVmFyaWFudCk7CiB2b2lk
IHJlc2V0R2V0QnlJRChDb2RlQmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIEdldEJ5SURLaW5k
KTsKIHZvaWQgcmVzZXRQdXRCeUlEKENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKaW5kZXggZTg0
ZjAwNDQ3NzcxY2EzMGZmMjI3MjM0OWM0ZTA3ZTdhYWEzZGUwYi4uY2I5YmFiNDNhMDE2Y2U5MGJi
N2M2NDI3YjIyYjUzNjJiZGEwYjVlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
VGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtMTgzLDIwICsxODMsMTcgQEAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiB2aXJ0dWFsVGh1bmtGb3IoVk0qIHZtLCBDYWxs
TGlua0luZm8KICAgICAvLyB0aGUgREZHIGtub3dzIHRoYXQgdGhlIHZhbHVlIGlzIGRlZmluaXRl
bHkgYSBjZWxsLCBvciBkZWZpbml0ZWx5IGEgZnVuY3Rpb24uCiAgICAgCiAjaWYgVVNFKEpTVkFM
VUU2NCkKLSAgICBHUFJSZWcgdGFnTWFza1JlZ2lzdGVyID0gR1BSSW5mbzo6dGFnTWFza1JlZ2lz
dGVyOwogICAgIGlmIChjYWxsTGlua0luZm8uaXNUYWlsQ2FsbCgpKSB7CiAgICAgICAgIC8vIFRh
aWwgY2FsbHMgY291bGQgaGF2ZSBjbG9iYmVyZWQgdGhlIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rl
ciBiZWNhdXNlIHRoZXkKICAgICAgICAgLy8gcmVzdG9yZSBjYWxsZWUgc2F2ZWQgcmVnaXN0ZXJz
IGJlZm9yZSBnZXR0aGluZyBoZXJlLiBTbywgbGV0J3MgbWF0ZXJpYWxpemUKICAgICAgICAgLy8g
dGhlIFRhZ01hc2sgaW4gYSB0ZW1wIHJlZ2lzdGVyIGFuZCB1c2UgdGhlIHRlbXAgaW5zdGVhZC4K
LSAgICAgICAgdGFnTWFza1JlZ2lzdGVyID0gR1BSSW5mbzo6cmVnVDQ7Ci0gICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KFRhZ01hc2spLCB0YWdNYXNrUmVnaXN0ZXIp
OwotICAgIH0KLSAgICBzbG93Q2FzZS5hcHBlbmQoCi0gICAgICAgIGppdC5icmFuY2hUZXN0NjQo
Q0NhbGxIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMCwgdGFnTWFza1JlZ2lzdGVyKSk7
CisgICAgICAgIHNsb3dDYXNlLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxsKEdQUkluZm86OnJl
Z1QwLCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2xvd0Nh
c2UuYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoR1BSSW5mbzo6cmVnVDApKTsKICNlbHNlCiAg
ICAgc2xvd0Nhc2UuYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoR1BSSW5mbzo6cmVnVDEpKTsK
ICNlbmRpZgotICAgIGF1dG8gbm90SlNGdW5jdGlvbiA9IGppdC5icmFuY2hJZk5vdFR5cGUoR1BS
SW5mbzo6cmVnVDAsIEpTRnVuY3Rpb25UeXBlKTsKKyAgICBhdXRvIG5vdEpTRnVuY3Rpb24gPSBq
aXQuYnJhbmNoSWZOb3RGdW5jdGlvbihHUFJJbmZvOjpyZWdUMCk7CiAgICAgCiAgICAgLy8gTm93
IHdlIGtub3cgd2UgaGF2ZSBhIEpTRnVuY3Rpb24uCiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hh
bmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmVmN2NiOTZkMjJhNzQ3ZWJlMjE2OGVi
YjYyOTA4YmQ3MjQwZGJkZC4uMzljZDY0OWUwZmJiMjBmYjdmMWU4YzJlOGY1YTdmZTg4MWZjMTUx
YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxOS0wNi0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgorCisgICAgICAgIFtKU0NdIFBvbHltb3JwaGljIGNhbGwgc3R1YidzIHNsb3cgcGF0
aCBzaG91bGQgcmVzdG9yZSBjYWxsZWUgc2F2ZXMgYmVmb3JlIHBlcmZvcm1pbmcgdGFpbCBjYWxs
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3NzAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVz
cy9wb2x5LWNhbGwtc3R1Yi1zbG93LXBhdGgtc2hvdWxkLXJlc3RvcmUtY2FsbGVlLXNhdmVzLXdo
ZW4tZG9pbmctdGFpbC1jYWxsLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorCiAyMDE5LTA2
LTExICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBK
U0Mgc2hvdWxkIHRocm93IGlmIHByb3h5IHNldCByZXR1cm5zIGZhbHNpc2ggaW4gc3RyaWN0IG1v
ZGUgY29udGV4dApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcG9seS1jYWxsLXN0dWItc2xv
dy1wYXRoLXNob3VsZC1yZXN0b3JlLWNhbGxlZS1zYXZlcy13aGVuLWRvaW5nLXRhaWwtY2FsbC5q
cyBiL0pTVGVzdHMvc3RyZXNzL3BvbHktY2FsbC1zdHViLXNsb3ctcGF0aC1zaG91bGQtcmVzdG9y
ZS1jYWxsZWUtc2F2ZXMtd2hlbi1kb2luZy10YWlsLWNhbGwuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg4MWYx
YzgzZjE5Mzg4M2FlZThkOWVlMWEyZTljODNkY2JhZGViZAotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3BvbHktY2FsbC1zdHViLXNsb3ctcGF0aC1zaG91bGQtcmVzdG9yZS1jYWxs
ZWUtc2F2ZXMtd2hlbi1kb2luZy10YWlsLWNhbGwuanMKQEAgLTAsMCArMSwxNSBAQAorLy9AIHJ1
bkRlZmF1bHQoIi0tdXNlQ29uY3VycmVudEpJVD0wIikKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAgICAgdmFyIGEgPSBXZWFrU2V0
LmJpbmQoKTsKKyAgICAgICAgdmFyIGIgPSBuZXcgUHJveHkoYSwgYSk7CisgICAgICAgIHZhciBj
ID0gbmV3IFByb21pc2UoYik7CisgICAgICAgIHZhciBkID0gV2Vha1NldC5iaW5kKCk7CisgICAg
ICAgIHZhciBlID0gbmV3IFByb3h5KGQsIFdlYWtTZXQpOworICAgICAgICB2YXIgZiA9IG5ldyBQ
cm9taXNlKGUpOworICAgIH0KK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCA1MDsgKytpKQorICAg
IHRlc3QoKTsK
</data>
<flag name="review"
          id="387720"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>