<?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>184233</bug_id>
          
          <creation_ts>2018-04-02 05:49:25 -0700</creation_ts>
          <short_desc>[Enchant] Clean up TextCheckerEnchant</short_desc>
          <delta_ts>2018-04-03 00:18:20 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>183738</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1411057</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-02 05:49:25 -0700</bug_when>
    <thetext>Implementation can be improved a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411058</commentid>
    <comment_count>1</comment_count>
      <attachid>336979</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-02 05:57:47 -0700</bug_when>
    <thetext>Created attachment 336979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411076</commentid>
    <comment_count>2</comment_count>
      <attachid>336979</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-04-02 08:02:31 -0700</bug_when>
    <thetext>Comment on attachment 336979
Patch

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

Nice

&gt; Source/WebCore/platform/text/enchant/TextCheckerEnchant.cpp:43
&gt; +    if (!dictionary)
&gt; +        return;

Remember C++ guarantees this func is only called if the parameter is nonnull, so remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411083</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-02 08:22:47 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #2)
&gt; Comment on attachment 336979 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=336979&amp;action=review
&gt; 
&gt; Nice
&gt; 
&gt; &gt; Source/WebCore/platform/text/enchant/TextCheckerEnchant.cpp:43
&gt; &gt; +    if (!dictionary)
&gt; &gt; +        return;
&gt; 
&gt; Remember C++ guarantees this func is only called if the parameter is
&gt; nonnull, so remove this.

Ah, right!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411368</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-03 00:16:57 -0700</bug_when>
    <thetext>Committed r230198: &lt;https://trac.webkit.org/changeset/230198&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411369</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-03 00:18:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/39133084&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336979</attachid>
            <date>2018-04-02 05:57:47 -0700</date>
            <delta_ts>2018-04-02 08:02:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-enchant.diff</filename>
            <type>text/plain</type>
            <size>16590</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNjQ2ZDYxMTViZi4uZmNhOTAyOGRhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxOC0wNC0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW0VuY2hhbnRdIENsZWFuIHVwIFRleHRDaGVja2VyRW5jaGFu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjMz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2V2ZXJh
bCBjbGVhbnVwcyBhbmQgaW1wcm92ZW1lbnRzOgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9l
bmNoYW50L1RleHRDaGVja2VyRW5jaGFudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hl
Y2tlckVuY2hhbnQ6OnNpbmdsZXRvbik6IE1ha2UgVGV4dENoZWNrZXJFbmNoYW50IGEgc2luZ2xl
dG9uIHNpbmNlIGl0J3MgYWx3YXlzIHVzZWQgYXMgYQorICAgICAgICBzaW5nbGV0b24uCisgICAg
ICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tlckVuY2hhbnQ6OkVuY2hhbnREaWN0RGVsZXRlcjo6b3Bl
cmF0b3IoKSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tlckVuY2hhbnQ6OlRl
eHRDaGVja2VyRW5jaGFudCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tlckVuY2hhbnQ6
Omlnbm9yZVdvcmQpOiBDb252ZXJ0IHRvIHV0Zjggb25jZSBpbnN0ZWFkIG9mIG9uIGV2ZXJ5IGxv
b3AgaXRlcmF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNrZXJFbmNoYW50OjpsZWFy
bldvcmQpOiBEaXR0b24uCisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tlckVuY2hhbnQ6OmNo
ZWNrU3BlbGxpbmdPZldvcmQpOiBtX2VuY2hhbnREaWN0aW9uYXJpZXMgaXMgbm93IGEgVmVjdG9y
IG9mIHN0ZDo6dW5pcXVlX3B0ci4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2VyRW5jaGFu
dDo6Z2V0R3Vlc3Nlc0ZvcldvcmQpOiBDb252ZXJ0IHRvIHV0Zjggb25jZSBpbnN0ZWFkIG9mIG9u
IGV2ZXJ5IGxvb3AgaXRlcmF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNrZXJFbmNo
YW50Ojp1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3VhZ2VzKTogR2V0IG9ubHkgdGhlIGZpcnN0IGxh
bmd1YWdlIGluc3RlYWQgb2YgYnVpbGRpbmcgYQorICAgICAgICB2ZWN0b3IgdG8gZ2V0IGl0cyBm
aXJzdCBpdGVtLiBVc2UgV1RGTW92ZSB0byByZXBsYWNlIG1fZW5jaGFudERpY3Rpb25hcmllcyB3
aXRoIHRoZSBuZXcgVmVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNrZXJFbmNoYW50
Ojpsb2FkZWRTcGVsbENoZWNraW5nTGFuZ3VhZ2VzIGNvbnN0KTogVXNlIGEgbGFtYmRhIHRvIGdl
dCB0aGUgbGlzdCBvZiBsYW5ndWFnZXMKKyAgICAgICAgYWxyZWFkeSBjb252ZXJ0ZWQgdG8gU3Ry
aW5nIGFuZCBpdGVyYXRlIG9ubHkgb25jZS4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2Vy
RW5jaGFudDo6YXZhaWxhYmxlU3BlbGxDaGVja2luZ0xhbmd1YWdlcyBjb25zdCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6ZW5jaGFudERpY3REZXNjcmliZUNhbGxiYWNrKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlRleHRDaGVja2VyRW5jaGFudDo6flRleHRDaGVja2VyRW5jaGFu
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tlckVuY2hhbnQ6OmZyZWVF
bmNoYW50QnJva2VyRGljdGlvbmFyaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90
ZXh0L2VuY2hhbnQvVGV4dENoZWNrZXJFbmNoYW50Lmg6CisKIDIwMTgtMDQtMDIgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIE5ldHdv
cmtQcm9jZXNzIGZyb20gV2ViS2l0R3RrKyAyLjE5Ljl4IFNJR1NFVnMgaW4gTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uIChzZWNyZXQgc2VhcmNoIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9lbmNoYW50L1RleHRDaGVja2VyRW5jaGFudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2VuY2hhbnQvVGV4dENoZWNrZXJFbmNoYW50LmNwcApp
bmRleCAyZTdmNmU5MzQyNi4uZGJmNjNjZjBlYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvZW5jaGFudC9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZW5jaGFudC9UZXh0Q2hlY2tlckVuY2hhbnQuY3BwCkBA
IC0yMiw0NiArMjIsNDUgQEAKIAogI2lmIEVOQUJMRShTUEVMTENIRUNLKQogCi0jaW5jbHVkZSA8
Z2xpYi5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFn
ZS5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
YXRpYyBjb25zdCBzaXplX3QgbWF4aW11bU51bWJlck9mU3VnZ2VzdGlvbnMgPSAxMDsKLQotc3Rh
dGljIHZvaWQgZW5jaGFudERpY3REZXNjcmliZUNhbGxiYWNrKGNvbnN0IGNoYXIqIGNvbnN0IGxh
bmd1YWdlVGFnLCBjb25zdCBjaGFyKiBjb25zdCwgY29uc3QgY2hhciogY29uc3QsIGNvbnN0IGNo
YXIqIGNvbnN0LCB2b2lkKiBkYXRhKQorVGV4dENoZWNrZXJFbmNoYW50JiBUZXh0Q2hlY2tlckVu
Y2hhbnQ6OnNpbmdsZXRvbigpCiB7Ci0gICAgVmVjdG9yPENTdHJpbmc+KiBkaWN0aW9uYXJpZXMg
PSBzdGF0aWNfY2FzdDxWZWN0b3I8Q1N0cmluZz4qPihkYXRhKTsKLSAgICBkaWN0aW9uYXJpZXMt
PmFwcGVuZChsYW5ndWFnZVRhZyk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFRleHRDaGVj
a2VyRW5jaGFudD4gdGV4dENoZWNrZXI7CisgICAgcmV0dXJuIHRleHRDaGVja2VyOwogfQogCi1U
ZXh0Q2hlY2tlckVuY2hhbnQ6OlRleHRDaGVja2VyRW5jaGFudCgpCi0gICAgOiBtX2Jyb2tlcihl
bmNoYW50X2Jyb2tlcl9pbml0KCkpCi0gICAgLCBtX2VuY2hhbnREaWN0aW9uYXJpZXMoMCkKK3Zv
aWQgVGV4dENoZWNrZXJFbmNoYW50OjpFbmNoYW50RGljdERlbGV0ZXI6Om9wZXJhdG9yKCkoRW5j
aGFudERpY3QqIGRpY3Rpb25hcnkpIGNvbnN0CiB7CisgICAgaWYgKCFkaWN0aW9uYXJ5KQorICAg
ICAgICByZXR1cm47CisgICAgZW5jaGFudF9icm9rZXJfZnJlZV9kaWN0KFRleHRDaGVja2VyRW5j
aGFudDo6c2luZ2xldG9uKCkubV9icm9rZXIsIGRpY3Rpb25hcnkpOwogfQogCi1UZXh0Q2hlY2tl
ckVuY2hhbnQ6On5UZXh0Q2hlY2tlckVuY2hhbnQoKQorVGV4dENoZWNrZXJFbmNoYW50OjpUZXh0
Q2hlY2tlckVuY2hhbnQoKQorICAgIDogbV9icm9rZXIoZW5jaGFudF9icm9rZXJfaW5pdCgpKQog
ewotICAgIGlmICghbV9icm9rZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZyZWVFbmNoYW50
QnJva2VyRGljdGlvbmFyaWVzKCk7Ci0gICAgZW5jaGFudF9icm9rZXJfZnJlZShtX2Jyb2tlcik7
CiB9CiAKIHZvaWQgVGV4dENoZWNrZXJFbmNoYW50OjppZ25vcmVXb3JkKGNvbnN0IFN0cmluZyYg
d29yZCkKIHsKKyAgICBhdXRvIHV0ZjhXb3JkID0gd29yZC51dGY4KCk7CiAgICAgZm9yIChhdXRv
JiBkaWN0aW9uYXJ5IDogbV9lbmNoYW50RGljdGlvbmFyaWVzKQotICAgICAgICBlbmNoYW50X2Rp
Y3RfYWRkX3RvX3Nlc3Npb24oZGljdGlvbmFyeSwgd29yZC51dGY4KCkuZGF0YSgpLCAtMSk7Cisg
ICAgICAgIGVuY2hhbnRfZGljdF9hZGRfdG9fc2Vzc2lvbihkaWN0aW9uYXJ5LmdldCgpLCB1dGY4
V29yZC5kYXRhKCksIHV0ZjhXb3JkLmxlbmd0aCgpKTsKIH0KIAogdm9pZCBUZXh0Q2hlY2tlckVu
Y2hhbnQ6OmxlYXJuV29yZChjb25zdCBTdHJpbmcmIHdvcmQpCiB7CisgICAgYXV0byB1dGY4V29y
ZCA9IHdvcmQudXRmOCgpOwogICAgIGZvciAoYXV0byYgZGljdGlvbmFyeSA6IG1fZW5jaGFudERp
Y3Rpb25hcmllcykKLSAgICAgICAgZW5jaGFudF9kaWN0X2FkZChkaWN0aW9uYXJ5LCB3b3JkLnV0
ZjgoKS5kYXRhKCksIC0xKTsKKyAgICAgICAgZW5jaGFudF9kaWN0X2FkZChkaWN0aW9uYXJ5Lmdl
dCgpLCB1dGY4V29yZC5kYXRhKCksIHV0ZjhXb3JkLmxlbmd0aCgpKTsKIH0KIAogdm9pZCBUZXh0
Q2hlY2tlckVuY2hhbnQ6OmNoZWNrU3BlbGxpbmdPZldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBp
bnQgc3RhcnQsIGludCBlbmQsIGludCYgbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50JiBtaXNzcGVs
bGluZ0xlbmd0aCkKQEAgLTY5LDcgKzY4LDcgQEAgdm9pZCBUZXh0Q2hlY2tlckVuY2hhbnQ6OmNo
ZWNrU3BlbGxpbmdPZldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBpbnQgc3RhcnQsIGludAogICAg
IENTdHJpbmcgc3RyaW5nID0gd29yZC5zdWJzdHJpbmcoc3RhcnQsIGVuZCAtIHN0YXJ0KS51dGY4
KCk7CiAKICAgICBmb3IgKGF1dG8mIGRpY3Rpb25hcnkgOiBtX2VuY2hhbnREaWN0aW9uYXJpZXMp
IHsKLSAgICAgICAgaWYgKCFlbmNoYW50X2RpY3RfY2hlY2soZGljdGlvbmFyeSwgc3RyaW5nLmRh
dGEoKSwgc3RyaW5nLmxlbmd0aCgpKSkgeworICAgICAgICBpZiAoIWVuY2hhbnRfZGljdF9jaGVj
ayhkaWN0aW9uYXJ5LmdldCgpLCBzdHJpbmcuZGF0YSgpLCBzdHJpbmcubGVuZ3RoKCkpKSB7CiAg
ICAgICAgICAgICAvLyBTdG9wIGNoZWNraW5nLCB0aGlzIHdvcmQgaXMgb2sgaW4gYXQgbGVhc3Qg
b25lIGRpY3QuCiAgICAgICAgICAgICBtaXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7CiAgICAgICAg
ICAgICBtaXNzcGVsbGluZ0xlbmd0aCA9IDA7CkBAIC0xMDgsMTUgKzEwNywxOCBAQCB2b2lkIFRl
eHRDaGVja2VyRW5jaGFudDo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
aW5nLCBpbnQmIG1pc3NwZQogCiBWZWN0b3I8U3RyaW5nPiBUZXh0Q2hlY2tlckVuY2hhbnQ6Omdl
dEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCkKIHsKLSAgICBWZWN0b3I8U3RyaW5n
PiBndWVzc2VzOwogICAgIGlmICghaGFzRGljdGlvbmFyeSgpKQotICAgICAgICByZXR1cm4gZ3Vl
c3NlczsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAorICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4
aW11bU51bWJlck9mU3VnZ2VzdGlvbnMgPSAxMDsKKworICAgIFZlY3RvcjxTdHJpbmc+IGd1ZXNz
ZXM7CisgICAgYXV0byB1dGY4V29yZCA9IHdvcmQudXRmOCgpOwogICAgIGZvciAoYXV0byYgZGlj
dGlvbmFyeSA6IG1fZW5jaGFudERpY3Rpb25hcmllcykgewogICAgICAgICBzaXplX3QgbnVtYmVy
T2ZTdWdnZXN0aW9uczsKICAgICAgICAgc2l6ZV90IGk7CiAKLSAgICAgICAgY2hhcioqIHN1Z2dl
c3Rpb25zID0gZW5jaGFudF9kaWN0X3N1Z2dlc3QoZGljdGlvbmFyeSwgd29yZC51dGY4KCkuZGF0
YSgpLCAtMSwgJm51bWJlck9mU3VnZ2VzdGlvbnMpOworICAgICAgICBjaGFyKiogc3VnZ2VzdGlv
bnMgPSBlbmNoYW50X2RpY3Rfc3VnZ2VzdChkaWN0aW9uYXJ5LmdldCgpLCB1dGY4V29yZC5kYXRh
KCksIHV0ZjhXb3JkLmxlbmd0aCgpLCAmbnVtYmVyT2ZTdWdnZXN0aW9ucyk7CiAgICAgICAgIGlm
IChudW1iZXJPZlN1Z2dlc3Rpb25zIDw9IDApCiAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAt
MTI2LDcgKzEyOCw3IEBAIFZlY3RvcjxTdHJpbmc+IFRleHRDaGVja2VyRW5jaGFudDo6Z2V0R3Vl
c3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkKQogICAgICAgICBmb3IgKGkgPSAwOyBpIDwg
bnVtYmVyT2ZTdWdnZXN0aW9uczsgaSsrKQogICAgICAgICAgICAgZ3Vlc3Nlcy5hcHBlbmQoU3Ry
aW5nOjpmcm9tVVRGOChzdWdnZXN0aW9uc1tpXSkpOwogCi0gICAgICAgIGVuY2hhbnRfZGljdF9m
cmVlX3N0cmluZ19saXN0KGRpY3Rpb25hcnksIHN1Z2dlc3Rpb25zKTsKKyAgICAgICAgZW5jaGFu
dF9kaWN0X2ZyZWVfc3RyaW5nX2xpc3QoZGljdGlvbmFyeS5nZXQoKSwgc3VnZ2VzdGlvbnMpOwog
ICAgIH0KIAogICAgIHJldHVybiBndWVzc2VzOwpAQCAtMTM0LDcyICsxMzYsNjMgQEAgVmVjdG9y
PFN0cmluZz4gVGV4dENoZWNrZXJFbmNoYW50OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmIHdvcmQpCiAKIHZvaWQgVGV4dENoZWNrZXJFbmNoYW50Ojp1cGRhdGVTcGVsbENoZWNraW5n
TGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZXMpCiB7Ci0gICAgVmVjdG9y
PEVuY2hhbnREaWN0Kj4gc3BlbGxEaWN0aW9uYXJpZXM7Ci0KKyAgICBWZWN0b3I8VW5pcXVlRW5j
aGFudERpY3Q+IHNwZWxsRGljdGlvbmFyaWVzOwogICAgIGlmICghbGFuZ3VhZ2VzLmlzRW1wdHko
KSkgewogICAgICAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogbGFuZ3VhZ2VzKSB7CiAgICAgICAg
ICAgICBDU3RyaW5nIGN1cnJlbnRMYW5ndWFnZSA9IGxhbmd1YWdlLnV0ZjgoKTsKICAgICAgICAg
ICAgIGlmIChlbmNoYW50X2Jyb2tlcl9kaWN0X2V4aXN0cyhtX2Jyb2tlciwgY3VycmVudExhbmd1
YWdlLmRhdGEoKSkpIHsKLSAgICAgICAgICAgICAgICBFbmNoYW50RGljdCogZGljdCA9IGVuY2hh
bnRfYnJva2VyX3JlcXVlc3RfZGljdChtX2Jyb2tlciwgY3VycmVudExhbmd1YWdlLmRhdGEoKSk7
Ci0gICAgICAgICAgICAgICAgc3BlbGxEaWN0aW9uYXJpZXMuYXBwZW5kKGRpY3QpOworICAgICAg
ICAgICAgICAgIGlmIChhdXRvKiBkaWN0ID0gZW5jaGFudF9icm9rZXJfcmVxdWVzdF9kaWN0KG1f
YnJva2VyLCBjdXJyZW50TGFuZ3VhZ2UuZGF0YSgpKSkKKyAgICAgICAgICAgICAgICAgICAgc3Bl
bGxEaWN0aW9uYXJpZXMuYXBwZW5kKGRpY3QpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgLy8gTGFuZ3VhZ2VzIGFyZSBub3Qgc3BlY2lmaWVkIGJ5IHVz
ZXIsIHRyeSB0byBnZXQgZGVmYXVsdCBsYW5ndWFnZS4KLSAgICAgICAgQ1N0cmluZyB1dGY4TGFu
Z3VhZ2UgPSBkZWZhdWx0TGFuZ3VhZ2UoKS51dGY4KCk7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGxh
bmd1YWdlID0gdXRmOExhbmd1YWdlLmRhdGEoKTsKLSAgICAgICAgaWYgKGVuY2hhbnRfYnJva2Vy
X2RpY3RfZXhpc3RzKG1fYnJva2VyLCBsYW5ndWFnZSkpIHsKLSAgICAgICAgICAgIEVuY2hhbnRE
aWN0KiBkaWN0ID0gZW5jaGFudF9icm9rZXJfcmVxdWVzdF9kaWN0KG1fYnJva2VyLCBsYW5ndWFn
ZSk7Ci0gICAgICAgICAgICBzcGVsbERpY3Rpb25hcmllcy5hcHBlbmQoZGljdCk7CisgICAgICAg
IENTdHJpbmcgbGFuZ3VhZ2UgPSBkZWZhdWx0TGFuZ3VhZ2UoKS51dGY4KCk7CisgICAgICAgIGlm
IChlbmNoYW50X2Jyb2tlcl9kaWN0X2V4aXN0cyhtX2Jyb2tlciwgbGFuZ3VhZ2UuZGF0YSgpKSkg
eworICAgICAgICAgICAgaWYgKGF1dG8qIGRpY3QgPSBlbmNoYW50X2Jyb2tlcl9yZXF1ZXN0X2Rp
Y3QobV9icm9rZXIsIGxhbmd1YWdlLmRhdGEoKSkpCisgICAgICAgICAgICAgICAgc3BlbGxEaWN0
aW9uYXJpZXMuYXBwZW5kKGRpY3QpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8g
Tm8gZGljdGlvbmFyaWVzIHNlbGVjdGVkLCB3ZSBnZXQgdGhlIGZpcnN0IG9uZSBmcm9tIHRoZSBs
aXN0LgotICAgICAgICAgICAgVmVjdG9yPENTdHJpbmc+IGFsbERpY3Rpb25hcmllczsKLSAgICAg
ICAgICAgIGVuY2hhbnRfYnJva2VyX2xpc3RfZGljdHMobV9icm9rZXIsIGVuY2hhbnREaWN0RGVz
Y3JpYmVDYWxsYmFjaywgJmFsbERpY3Rpb25hcmllcyk7Ci0gICAgICAgICAgICBpZiAoIWFsbERp
Y3Rpb25hcmllcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBFbmNoYW50RGljdCogZGlj
dCA9IGVuY2hhbnRfYnJva2VyX3JlcXVlc3RfZGljdChtX2Jyb2tlciwgYWxsRGljdGlvbmFyaWVz
LmZpcnN0KCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBzcGVsbERpY3Rpb25hcmllcy5hcHBl
bmQoZGljdCk7CisgICAgICAgICAgICBDU3RyaW5nIGRpY3RMYW5ndWFnZTsKKyAgICAgICAgICAg
IGVuY2hhbnRfYnJva2VyX2xpc3RfZGljdHMobV9icm9rZXIsIFtdKGNvbnN0IGNoYXIqIGNvbnN0
IGxhbmd1YWdlVGFnLCBjb25zdCBjaGFyKiBjb25zdCwgY29uc3QgY2hhciogY29uc3QsIGNvbnN0
IGNoYXIqIGNvbnN0LCB2b2lkKiBkYXRhKSB7CisgICAgICAgICAgICAgICAgYXV0byogZGljdExh
bmd1YWdlID0gc3RhdGljX2Nhc3Q8Q1N0cmluZyo+KGRhdGEpOworICAgICAgICAgICAgICAgIGlm
IChkaWN0TGFuZ3VhZ2UtPmlzTnVsbCgpKQorICAgICAgICAgICAgICAgICAgICAqZGljdExhbmd1
YWdlID0gbGFuZ3VhZ2VUYWc7CisgICAgICAgICAgICB9LCAmZGljdExhbmd1YWdlKTsKKyAgICAg
ICAgICAgIGlmICghZGljdExhbmd1YWdlLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgaWYg
KGF1dG8qIGRpY3QgPSBlbmNoYW50X2Jyb2tlcl9yZXF1ZXN0X2RpY3QobV9icm9rZXIsIGRpY3RM
YW5ndWFnZS5kYXRhKCkpKQorICAgICAgICAgICAgICAgICAgICBzcGVsbERpY3Rpb25hcmllcy5h
cHBlbmQoZGljdCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgZnJlZUVu
Y2hhbnRCcm9rZXJEaWN0aW9uYXJpZXMoKTsKLSAgICBtX2VuY2hhbnREaWN0aW9uYXJpZXMgPSBz
cGVsbERpY3Rpb25hcmllczsKKyAgICBtX2VuY2hhbnREaWN0aW9uYXJpZXMgPSBXVEZNb3ZlKHNw
ZWxsRGljdGlvbmFyaWVzKTsKIH0KIAogVmVjdG9yPFN0cmluZz4gVGV4dENoZWNrZXJFbmNoYW50
Ojpsb2FkZWRTcGVsbENoZWNraW5nTGFuZ3VhZ2VzKCkgY29uc3QKIHsKLSAgICBWZWN0b3I8U3Ry
aW5nPiBsYW5ndWFnZXM7CiAgICAgaWYgKCFoYXNEaWN0aW9uYXJ5KCkpCi0gICAgICAgIHJldHVy
biBsYW5ndWFnZXM7Ci0KLSAgICAvLyBHZXQgYSBWZWN0b3I8Q1N0cmluZz4gd2l0aCB0aGUgbGlz
dCBvZiBsYW5ndWFnZXMgaW4gdXNlLgotICAgIFZlY3RvcjxDU3RyaW5nPiBjdXJyZW50RGljdGlv
bmFyaWVzOwotICAgIGZvciAoYXV0byYgZGljdGlvbmFyeSA6IG1fZW5jaGFudERpY3Rpb25hcmll
cykKLSAgICAgICAgZW5jaGFudF9kaWN0X2Rlc2NyaWJlKGRpY3Rpb25hcnksIGVuY2hhbnREaWN0
RGVzY3JpYmVDYWxsYmFjaywgJmN1cnJlbnREaWN0aW9uYXJpZXMpOwotCi0gICAgZm9yIChhdXRv
JiBkaWN0aW9uYXJ5IDogY3VycmVudERpY3Rpb25hcmllcykKLSAgICAgICAgbGFuZ3VhZ2VzLmFw
cGVuZChTdHJpbmc6OmZyb21VVEY4KGRpY3Rpb25hcnkuZGF0YSgpKSk7CisgICAgICAgIHJldHVy
biB7IH07CiAKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXM7CisgICAgZm9yIChhdXRvJiBk
aWN0aW9uYXJ5IDogbV9lbmNoYW50RGljdGlvbmFyaWVzKSB7CisgICAgICAgIGVuY2hhbnRfZGlj
dF9kZXNjcmliZShkaWN0aW9uYXJ5LmdldCgpLCBbXShjb25zdCBjaGFyKiBjb25zdCBsYW5ndWFn
ZVRhZywgY29uc3QgY2hhciogY29uc3QsIGNvbnN0IGNoYXIqIGNvbnN0LCBjb25zdCBjaGFyKiBj
b25zdCwgdm9pZCogZGF0YSkgeworICAgICAgICAgICAgYXV0byogbGFuZ3VhZ2VzID0gc3RhdGlj
X2Nhc3Q8VmVjdG9yPFN0cmluZz4qPihkYXRhKTsKKyAgICAgICAgICAgIGxhbmd1YWdlcy0+YXBw
ZW5kKFN0cmluZzo6ZnJvbVVURjgobGFuZ3VhZ2VUYWcpKTsKKyAgICAgICAgfSwgJmxhbmd1YWdl
cyk7CisgICAgfQogICAgIHJldHVybiBsYW5ndWFnZXM7CiB9CiAKIFZlY3RvcjxTdHJpbmc+IFRl
eHRDaGVja2VyRW5jaGFudDo6YXZhaWxhYmxlU3BlbGxDaGVja2luZ0xhbmd1YWdlcygpIGNvbnN0
CiB7Ci0gICAgVmVjdG9yPENTdHJpbmc+IGFsbERpY3Rpb25hcmllczsKLSAgICBlbmNoYW50X2Jy
b2tlcl9saXN0X2RpY3RzKG1fYnJva2VyLCBlbmNoYW50RGljdERlc2NyaWJlQ2FsbGJhY2ssICZh
bGxEaWN0aW9uYXJpZXMpOwotCiAgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzOwotICAgIGZv
ciAoYXV0byYgZGljdGlvbmFyeSA6IGFsbERpY3Rpb25hcmllcykKLSAgICAgICAgbGFuZ3VhZ2Vz
LmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KGRpY3Rpb25hcnkuZGF0YSgpKSk7Ci0KKyAgICBlbmNo
YW50X2Jyb2tlcl9saXN0X2RpY3RzKG1fYnJva2VyLCBbXShjb25zdCBjaGFyKiBjb25zdCBsYW5n
dWFnZVRhZywgY29uc3QgY2hhciogY29uc3QsIGNvbnN0IGNoYXIqIGNvbnN0LCBjb25zdCBjaGFy
KiBjb25zdCwgdm9pZCogZGF0YSkgeworICAgICAgICBhdXRvKiBsYW5ndWFnZXMgPSBzdGF0aWNf
Y2FzdDxWZWN0b3I8U3RyaW5nPio+KGRhdGEpOworICAgICAgICBsYW5ndWFnZXMtPmFwcGVuZChT
dHJpbmc6OmZyb21VVEY4KGxhbmd1YWdlVGFnKSk7CisgICAgfSwgJmxhbmd1YWdlcyk7CiAgICAg
cmV0dXJuIGxhbmd1YWdlczsKIH0KIAotdm9pZCBUZXh0Q2hlY2tlckVuY2hhbnQ6OmZyZWVFbmNo
YW50QnJva2VyRGljdGlvbmFyaWVzKCkKLXsKLSAgICBmb3IgKGF1dG8mIGRpY3Rpb25hcnkgOiBt
X2VuY2hhbnREaWN0aW9uYXJpZXMpCi0gICAgICAgIGVuY2hhbnRfYnJva2VyX2ZyZWVfZGljdCht
X2Jyb2tlciwgZGljdGlvbmFyeSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShTUEVMTENIRUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9lbmNoYW50L1RleHRDaGVja2VyRW5jaGFudC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9lbmNoYW50L1RleHRDaGVja2VyRW5jaGFudC5oCmluZGV4IGQzZDUyOTMx
NmUxLi44NDEzZGY1ZjY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9lbmNoYW50L1RleHRDaGVja2VyRW5jaGFudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvZW5jaGFudC9UZXh0Q2hlY2tlckVuY2hhbnQuaApAQCAtMTcsMjUgKzE3LDIxIEBA
CiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaWZuZGVmIFRleHRDaGVj
a2VyRW5jaGFudF9oCi0jZGVmaW5lIFRleHRDaGVja2VyRW5jaGFudF9oCisjcHJhZ21hIG9uY2UK
IAogI2lmIEVOQUJMRShTUEVMTENIRUNLKQogCiAjaW5jbHVkZSA8ZW5jaGFudC5oPgotI2luY2x1
ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFRl
eHRDaGVja2VyRW5jaGFudCB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0KKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShUZXh0Q2hlY2tlckVuY2hhbnQpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKKyAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRlc3Ryb3llZDxUZXh0Q2hlY2tl
ckVuY2hhbnQ+OwogcHVibGljOgotICAgIFRleHRDaGVja2VyRW5jaGFudCgpOwotICAgIHZpcnR1
YWwgflRleHRDaGVja2VyRW5jaGFudCgpOworICAgIHN0YXRpYyBUZXh0Q2hlY2tlckVuY2hhbnQm
IHNpbmdsZXRvbigpOwogCiAgICAgdm9pZCBpZ25vcmVXb3JkKGNvbnN0IFN0cmluZyYpOwogICAg
IHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYpOwpAQCAtNDcsMTUgKzQzLDIxIEBAIHB1Ymxp
YzoKICAgICBWZWN0b3I8U3RyaW5nPiBhdmFpbGFibGVTcGVsbENoZWNraW5nTGFuZ3VhZ2VzKCkg
Y29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBmcmVlRW5jaGFudEJyb2tlckRpY3Rpb25hcmll
cygpOworICAgIFRleHRDaGVja2VyRW5jaGFudCgpOworICAgIH5UZXh0Q2hlY2tlckVuY2hhbnQo
KSA9IGRlbGV0ZTsKKwogICAgIHZvaWQgY2hlY2tTcGVsbGluZ09mV29yZChjb25zdCBTdHJpbmcm
LCBpbnQgc3RhcnQsIGludCBlbmQsIGludCYgbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50JiBtaXNz
cGVsbGluZ0xlbmd0aCk7CiAKKyAgICBzdHJ1Y3QgRW5jaGFudERpY3REZWxldGVyIHsKKyAgICAg
ICAgdm9pZCBvcGVyYXRvcigpKEVuY2hhbnREaWN0KikgY29uc3Q7CisgICAgfTsKKworICAgIHVz
aW5nIFVuaXF1ZUVuY2hhbnREaWN0ID0gc3RkOjp1bmlxdWVfcHRyPEVuY2hhbnREaWN0LCBFbmNo
YW50RGljdERlbGV0ZXI+OworCiAgICAgRW5jaGFudEJyb2tlciogbV9icm9rZXI7Ci0gICAgVmVj
dG9yPEVuY2hhbnREaWN0Kj4gbV9lbmNoYW50RGljdGlvbmFyaWVzOworICAgIFZlY3RvcjxVbmlx
dWVFbmNoYW50RGljdD4gbV9lbmNoYW50RGljdGlvbmFyaWVzOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNQRUxMQ0hFQ0spCi0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBhNTVlMDNlOTJmMi4uMzA0MGM2ZmJiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTgtMDQtMDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtFbmNoYW50XSBDbGVhbiB1cCBUZXh0Q2hlY2tlckVuY2hhbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDIzMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBUZXh0Q2hlY2tl
ckVuY2hhbnQgYXMgYSBzaW5nbGV0b24gbm93LCBpbnN0ZWFkIG9mIGltcGxlbWVudGluZyB0aGUg
c2luZ2xldG9uIGhlcmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OmNoZWNrU3BlbGxpbmdPZlN0cmlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpnZXRHdWVzc2VzRm9yV29yZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpsZWFybldvcmQpOgorICAgICAgICAoV2ViS2l0
OjpUZXh0Q2hlY2tlcjo6aWdub3JlV29yZCk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2Vy
OjpzZXRTcGVsbENoZWNraW5nTGFuZ3VhZ2VzKToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNr
ZXI6OmxvYWRlZFNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMpOgorICAgICAgICAoV2ViS2l0OjplbmNo
YW50VGV4dENoZWNrZXIpOiBEZWxldGVkLgorCiAyMDE4LTA0LTAyICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBOZXR3b3JrUHJvY2Vz
cyBmcm9tIFdlYktpdEd0aysgMi4xOS45eCBTSUdTRVZzIGluIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biAoc2VjcmV0IHNlYXJjaCBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9UZXh0Q2hlY2tlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvVGV4dENoZWNrZXJHdGsuY3BwCmluZGV4IGI1ZDg1Yzc5OTQxLi5mYWZmMDkyOWRiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVGV4dENoZWNrZXJHdGsuY3BwCkBAIC0z
OSwxNCArMzksNiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAotI2lmIEVOQUJMRShTUEVMTENIRUNLKQotc3RhdGljIFdlYkNvcmU6OlRleHRDaGVja2Vy
RW5jaGFudCYgZW5jaGFudFRleHRDaGVja2VyKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8V2ViQ29yZTo6VGV4dENoZWNrZXJFbmNoYW50PiBjaGVja2VyOwotICAgIHJldHVybiBjaGVj
a2VyOwotfQotI2VuZGlmCi0KIFRleHRDaGVja2VyU3RhdGUmIGNoZWNrZXJTdGF0ZSgpCiB7CiAg
ICAgc3RhdGljIFRleHRDaGVja2VyU3RhdGUgdGV4dENoZWNrZXJTdGF0ZTsKQEAgLTE0OSw3ICsx
NDEsNyBAQCB2b2lkIFRleHRDaGVja2VyOjpjaGVja1NwZWxsaW5nT2ZTdHJpbmcoaW50NjRfdCAv
KiBzcGVsbERvY3VtZW50VGFnICovLCBTdHJpbmdWaQogI2lmIEVOQUJMRShTUEVMTENIRUNLKQog
ICAgIG1pc3NwZWxsaW5nTG9jYXRpb24gPSAtMTsKICAgICBtaXNzcGVsbGluZ0xlbmd0aCA9IDA7
Ci0gICAgZW5jaGFudFRleHRDaGVja2VyKCkuY2hlY2tTcGVsbGluZ09mU3RyaW5nKHRleHQudG9T
dHJpbmdXaXRob3V0Q29weWluZygpLCBtaXNzcGVsbGluZ0xvY2F0aW9uLCBtaXNzcGVsbGluZ0xl
bmd0aCk7CisgICAgVGV4dENoZWNrZXJFbmNoYW50OjpzaW5nbGV0b24oKS5jaGVja1NwZWxsaW5n
T2ZTdHJpbmcodGV4dC50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCksIG1pc3NwZWxsaW5nTG9jYXRp
b24sIG1pc3NwZWxsaW5nTGVuZ3RoKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHRleHQpOwog
ICAgIFVOVVNFRF9QQVJBTShtaXNzcGVsbGluZ0xvY2F0aW9uKTsKQEAgLTE4MSw3ICsxNzMsNyBA
QCB2b2lkIFRleHRDaGVja2VyOjp1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoaW50
NjRfdCAvKiBzcGVsbERvY3VtZW50VGFnCiB2b2lkIFRleHRDaGVja2VyOjpnZXRHdWVzc2VzRm9y
V29yZChpbnQ2NF90IC8qIHNwZWxsRG9jdW1lbnRUYWcgKi8sIGNvbnN0IFN0cmluZyYgd29yZCwg
Y29uc3QgU3RyaW5nJiAvKiBjb250ZXh0ICovLCBpbnQzMl90IC8qIGluc2VydGlvblBvaW50ICov
LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcywgYm9vbCkKIHsKICNpZiBFTkFCTEUoU1BFTExDSEVD
SykKLSAgICBndWVzc2VzID0gZW5jaGFudFRleHRDaGVja2VyKCkuZ2V0R3Vlc3Nlc0ZvcldvcmQo
d29yZCk7CisgICAgZ3Vlc3NlcyA9IFRleHRDaGVja2VyRW5jaGFudDo6c2luZ2xldG9uKCkuZ2V0
R3Vlc3Nlc0ZvcldvcmQod29yZCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh3b3JkKTsKICAg
ICBVTlVTRURfUEFSQU0oZ3Vlc3Nlcyk7CkBAIC0xOTEsNyArMTgzLDcgQEAgdm9pZCBUZXh0Q2hl
Y2tlcjo6Z2V0R3Vlc3Nlc0ZvcldvcmQoaW50NjRfdCAvKiBzcGVsbERvY3VtZW50VGFnICovLCBj
b25zdCBTdHJpbmcKIHZvaWQgVGV4dENoZWNrZXI6OmxlYXJuV29yZChpbnQ2NF90IC8qIHNwZWxs
RG9jdW1lbnRUYWcgKi8sIGNvbnN0IFN0cmluZyYgd29yZCkKIHsKICNpZiBFTkFCTEUoU1BFTExD
SEVDSykKLSAgICBlbmNoYW50VGV4dENoZWNrZXIoKS5sZWFybldvcmQod29yZCk7CisgICAgVGV4
dENoZWNrZXJFbmNoYW50OjpzaW5nbGV0b24oKS5sZWFybldvcmQod29yZCk7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTSh3b3JkKTsKICNlbmRpZgpAQCAtMjAwLDcgKzE5Miw3IEBAIHZvaWQgVGV4
dENoZWNrZXI6OmxlYXJuV29yZChpbnQ2NF90IC8qIHNwZWxsRG9jdW1lbnRUYWcgKi8sIGNvbnN0
IFN0cmluZyYgd29yZCkKIHZvaWQgVGV4dENoZWNrZXI6Omlnbm9yZVdvcmQoaW50NjRfdCAvKiBz
cGVsbERvY3VtZW50VGFnICovLCBjb25zdCBTdHJpbmcmIHdvcmQpCiB7CiAjaWYgRU5BQkxFKFNQ
RUxMQ0hFQ0spCi0gICAgZW5jaGFudFRleHRDaGVja2VyKCkuaWdub3JlV29yZCh3b3JkKTsKKyAg
ICBUZXh0Q2hlY2tlckVuY2hhbnQ6OnNpbmdsZXRvbigpLmlnbm9yZVdvcmQod29yZCk7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTSh3b3JkKTsKICNlbmRpZgpAQCAtMjk2LDcgKzI4OCw3IEBAIFZl
Y3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IFRleHRDaGVja2VyOjpjaGVja1RleHRPZlBhcmFncmFw
aChpbnQ2NF90IHNwZWxsRG9jdW1lCiB2b2lkIFRleHRDaGVja2VyOjpzZXRTcGVsbENoZWNraW5n
TGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZXMpCiB7CiAjaWYgRU5BQkxF
KFNQRUxMQ0hFQ0spCi0gICAgZW5jaGFudFRleHRDaGVja2VyKCkudXBkYXRlU3BlbGxDaGVja2lu
Z0xhbmd1YWdlcyhsYW5ndWFnZXMpOworICAgIFRleHRDaGVja2VyRW5jaGFudDo6c2luZ2xldG9u
KCkudXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1YWdlcyhsYW5ndWFnZXMpOwogI2Vsc2UKICAgICBV
TlVTRURfUEFSQU0obGFuZ3VhZ2VzKTsKICNlbmRpZgpAQCAtMzA1LDcgKzI5Nyw3IEBAIHZvaWQg
VGV4dENoZWNrZXI6OnNldFNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGxhbmd1YWdlcykKIFZlY3RvcjxTdHJpbmc+IFRleHRDaGVja2VyOjpsb2FkZWRTcGVsbENo
ZWNraW5nTGFuZ3VhZ2VzKCkKIHsKICNpZiBFTkFCTEUoU1BFTExDSEVDSykKLSAgICByZXR1cm4g
ZW5jaGFudFRleHRDaGVja2VyKCkubG9hZGVkU3BlbGxDaGVja2luZ0xhbmd1YWdlcygpOworICAg
IHJldHVybiBUZXh0Q2hlY2tlckVuY2hhbnQ6OnNpbmdsZXRvbigpLmxvYWRlZFNwZWxsQ2hlY2tp
bmdMYW5ndWFnZXMoKTsKICNlbHNlCiAgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7CiAjZW5k
aWYK
</data>
<flag name="review"
          id="355430"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>