<?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>194939</bug_id>
          
          <creation_ts>2019-02-22 01:33:15 -0800</creation_ts>
          <short_desc>[JSC] SmallStringsStorage is unnecessary</short_desc>
          <delta_ts>2019-02-22 11:15:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1508942</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-22 01:33:15 -0800</bug_when>
    <thetext>[JSC] SmallStringsStorage is unnecessary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508951</commentid>
    <comment_count>1</comment_count>
      <attachid>362709</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-22 01:54:23 -0800</bug_when>
    <thetext>Created attachment 362709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508952</commentid>
    <comment_count>2</comment_count>
      <attachid>362709</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-22 02:00:33 -0800</bug_when>
    <thetext>Comment on attachment 362709
Patch

Oops, fixing build issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508953</commentid>
    <comment_count>3</comment_count>
      <attachid>362710</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-22 02:05:50 -0800</bug_when>
    <thetext>Created attachment 362710
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508954</commentid>
    <comment_count>4</comment_count>
      <attachid>362711</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-22 02:10:29 -0800</bug_when>
    <thetext>Created attachment 362711
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509021</commentid>
    <comment_count>5</comment_count>
      <attachid>362711</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-22 09:52:12 -0800</bug_when>
    <thetext>Comment on attachment 362711
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509041</commentid>
    <comment_count>6</comment_count>
      <attachid>362711</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-02-22 10:37:51 -0800</bug_when>
    <thetext>Comment on attachment 362711
Patch

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

&gt; Source/JavaScriptCore/runtime/SmallStrings.h:76
&gt; +    void setCanAccessHeap(bool canAccessHeap) { m_canAccessHeap = canAccessHeap; }

I would call this isInitialized / setIsInitialized.

&gt; Source/JavaScriptCore/runtime/VM.cpp:543
&gt; +    smallStrings.setCanAccessHeap(false);

Is there code that tries to access the SmallStrings cache inside lastChanceToFinalize? If so, that feels like a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509061</commentid>
    <comment_count>7</comment_count>
      <attachid>362711</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-22 10:52:24 -0800</bug_when>
    <thetext>Comment on attachment 362711
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/SmallStrings.h:76
&gt;&gt; +    void setCanAccessHeap(bool canAccessHeap) { m_canAccessHeap = canAccessHeap; }
&gt; 
&gt; I would call this isInitialized / setIsInitialized.

OK, changed.

&gt;&gt; Source/JavaScriptCore/runtime/VM.cpp:543
&gt;&gt; +    smallStrings.setCanAccessHeap(false);
&gt; 
&gt; Is there code that tries to access the SmallStrings cache inside lastChanceToFinalize? If so, that feels like a bug.

I don&apos;t see the actual code is now using it. But I think touching smallStrings after VM Heap is destroyed can be possible.
This is because Identifier creation touches vm.smallStrings to get single character AtomicStringImpl. I think it is a possible story that we create Identifier after VM Heap is destroyed, because Identifier seems unrelated to VM GC Heap.
So I take safer design here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509070</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-22 11:04:46 -0800</bug_when>
    <thetext>Committed r241954: &lt;https://trac.webkit.org/changeset/241954&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509073</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-22 11:11:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/48317238&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509076</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-22 11:15:48 -0800</bug_when>
    <thetext>Committed r241955: &lt;https://trac.webkit.org/changeset/241955&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362709</attachid>
            <date>2019-02-22 01:54:23 -0800</date>
            <delta_ts>2019-02-22 02:05:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194939-20190222015422.patch</filename>
            <type>text/plain</type>
            <size>8526</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxOTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YzYxNjI3YzA0NDU5NjFiODRkM2UyNWRmMzEzYjk2NTY2MjQ1ODhlLi5iNGY0MDhlMzZlYTI3YTFm
NjBhYTU0NWI5OGViYmM1OTU2MGFhY2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxOS0wMi0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFNtYWxsU3RyaW5nc1N0b3JhZ2UgaXMgdW5uZWNlc3NhcnkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDkzOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNtYWxsU3RyaW5n
cyBob2xkIGNvbW1vbiBzbWFsbCBKU1N0cmluZ3MuIFRoZWlyIHVuZGVybHlpbmcgU3RyaW5nSW1w
bCBpcyBhbHNvIGhlbGQgYnkgU21hbGxTdHJpbmdzU3RvcmFnZS4KKyAgICAgICAgQnV0IGl0IGlz
IGR1cGxpY2F0ZSBzaW5jZSB3ZSBjYW4gZ2V0IFN0cmluZ0ltcGwgZnJvbSBzbWFsbCBKU1N0cmlu
Z3MuIFRoaXMgcGF0Y2ggcmVtb3ZlcyBTbWFsbFN0cmluZ3NTdG9yYWdlLAorICAgICAgICBhbmQg
Z2V0IFN0cmluZ0ltcGxzIGZyb20gSlNTdHJpbmdzIGlmIG5lY2Vzc2FyeS4KKworICAgICAgICBX
ZSBhbHNvIGFkZCBtX2ZpbmFsaXplZCBmbGFnIHRvIFNtYWxsU3RyaW5ncy4gQXQgdGhlIHRpbWUg
b2YgVk0gZGVzdHJ1Y3Rpb24sIEpTU3RyaW5ncyBhcmUgZGVzdHJveWVkIHdoZW4KKyAgICAgICAg
Vk0ncyBIZWFwIGlzIGZpbmFsaXplZC4gV2UgYWRkIHRoaXMgYm9vbGVhbiBmbGFnIHRvIGFsbG93
IHVzZXJzIHRvIGdldCBTdHJpbmdJbXBsIGR1cmluZyB0aGUgcGVyaW9kIGJldHdlZW4KKyAgICAg
ICAgVk0ncyBIZWFwIGRlc3RydWN0aW9uIGFuZCBjb21wbGV0aW9uIG9mIFZNIGRlc3RydWN0aW9u
LgorCisgICAgICAgICogcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwOgorICAgICAgICAoSlNDOjpT
bWFsbFN0cmluZ3M6OmluaXRpYWxpemVDb21tb25TdHJpbmdzKToKKyAgICAgICAgKEpTQzo6U21h
bGxTdHJpbmdzOjpzaW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXApOgorICAgICAgICAoSlNDOjpTbWFs
bFN0cmluZ3NTdG9yYWdlOjpyZXApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTbWFsbFN0cmlu
Z3NTdG9yYWdlOjpTbWFsbFN0cmluZ3NTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
U21hbGxTdHJpbmdzOjpjcmVhdGVTaW5nbGVDaGFyYWN0ZXJTdHJpbmcpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvU21hbGxTdHJpbmdzLmg6CisgICAgICAgIChKU0M6OlNtYWxsU3RyaW5n
czo6ZmluYWxpemUpOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpW
TTo6Vk0pOgorICAgICAgICAoSlNDOjpWTTo6flZNKToKKwogMjAxOS0wMi0yMiAgVGFkZXUgWmFn
YWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBDYWNoZSBDb21wYWN0VmFyaWFi
bGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9mIFZhcmlhYmxlRW52aXJvbm1lbnQgZm9yIFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TbWFsbFN0cmluZ3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21h
bGxTdHJpbmdzLmNwcAppbmRleCA4ZjI2YjNlMWUyYTE2NGU3ZjNjMzM0NzI4N2MwZjRlMzM3MzQ3
NDdmLi5hMGNlYzA0MzA1YjhhODU1ZmViYjhkMDg0OTg0MjcyN2FhODg0OGVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKQEAgLTM0LDMwICsz
NCw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBTbWFsbFN0cmluZ3NTdG9yYWdlIHsK
LSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTbWFsbFN0cmluZ3NTdG9yYWdlKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgU21hbGxTdHJpbmdzU3RvcmFnZSgpOwotCi0g
ICAgU3RyaW5nSW1wbCYgcmVwKHVuc2lnbmVkIGNoYXIgY2hhcmFjdGVyKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuICptX3JlcHNbY2hhcmFjdGVyXS5nZXQoKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNpbmdsZUNoYXJhY3RlclN0cmluZ0NvdW50ID0gbWF4
U2luZ2xlQ2hhcmFjdGVyU3RyaW5nICsgMTsKLQotICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX3Jl
cHNbc2luZ2xlQ2hhcmFjdGVyU3RyaW5nQ291bnRdOwotfTsKLQotU21hbGxTdHJpbmdzU3RvcmFn
ZTo6U21hbGxTdHJpbmdzU3RvcmFnZSgpCi17Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHNpbmdsZUNoYXJhY3RlclN0cmluZ0NvdW50OyArK2kpIHsKLSAgICAgICAgY29uc3QgTENoYXIg
c3RyaW5nW10gPSB7IHN0YXRpY19jYXN0PExDaGFyPihpKSB9OwotICAgICAgICBtX3JlcHNbaV0g
PSBBdG9taWNTdHJpbmdJbXBsOjphZGQoU3RyaW5nSW1wbDo6Y3JlYXRlKHN0cmluZywgMSkucHRy
KCkpOwotICAgIH0KLX0KLQogU21hbGxTdHJpbmdzOjpTbWFsbFN0cmluZ3MoKQogewogICAgIENP
TVBJTEVfQVNTRVJUKHNpbmdsZUNoYXJhY3RlclN0cmluZ0NvdW50ID09IHNpemVvZihtX3Npbmds
ZUNoYXJhY3RlclN0cmluZ3MpIC8gc2l6ZW9mKG1fc2luZ2xlQ2hhcmFjdGVyU3RyaW5nc1swXSks
IElzTnVtQ2hhcmFjdGVyc0NvbnN0SW5TeW5jV2l0aENsYXNzVXNhZ2UpOwpAQCAtNjksOCArNDUs
MTQgQEAgU21hbGxTdHJpbmdzOjpTbWFsbFN0cmluZ3MoKQogdm9pZCBTbWFsbFN0cmluZ3M6Omlu
aXRpYWxpemVDb21tb25TdHJpbmdzKFZNJiB2bSkKIHsKICAgICBjcmVhdGVFbXB0eVN0cmluZygm
dm0pOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPD0gbWF4U2luZ2xlQ2hhcmFjdGVyU3Ry
aW5nOyArK2kpCi0gICAgICAgIGNyZWF0ZVNpbmdsZUNoYXJhY3RlclN0cmluZygmdm0sIGkpOwor
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpbmdsZUNoYXJhY3RlclN0cmluZ0NvdW50
OyArK2kpIHsKKyAgICAgICAgQVNTRVJUKCFtX3NpbmdsZUNoYXJhY3RlclN0cmluZ3NbaV0pOwor
ICAgICAgICBjb25zdCBMQ2hhciBzdHJpbmdbXSA9IHsgc3RhdGljX2Nhc3Q8TENoYXI+KGkpIH07
CisgICAgICAgIG1fc2luZ2xlQ2hhcmFjdGVyU3RyaW5nc1tpXSA9IEpTU3RyaW5nOjpjcmVhdGVI
YXNPdGhlck93bmVyKCp2bSwgQXRvbWljU3RyaW5nSW1wbDo6YWRkKFN0cmluZ0ltcGw6OmNyZWF0
ZShzdHJpbmcsIDEpLnB0cigpKSk7CisgICAgICAgIEFTU0VSVChtX25lZWRzVG9CZVZpc2l0ZWQp
OworICAgIH0KKwogI2RlZmluZSBKU0NfQ09NTU9OX1NUUklOR1NfQVRUUklCVVRFX0lOSVRJQUxJ
WkUobmFtZSkgaW5pdGlhbGl6ZSgmdm0sIG1fIyNuYW1lLCAjbmFtZSk7CiAgICAgSlNDX0NPTU1P
Tl9TVFJJTkdTX0VBQ0hfTkFNRShKU0NfQ09NTU9OX1NUUklOR1NfQVRUUklCVVRFX0lOSVRJQUxJ
WkUpCiAjdW5kZWYgSlNDX0NPTU1PTl9TVFJJTkdTX0FUVFJJQlVURV9JTklUSUFMSVpFCkBAIC0x
MDQsMjAgKzg2LDEzIEBAIHZvaWQgU21hbGxTdHJpbmdzOjpjcmVhdGVFbXB0eVN0cmluZyhWTSog
dm0pCiAgICAgQVNTRVJUKG1fbmVlZHNUb0JlVmlzaXRlZCk7CiB9CiAKLXZvaWQgU21hbGxTdHJp
bmdzOjpjcmVhdGVTaW5nbGVDaGFyYWN0ZXJTdHJpbmcoVk0qIHZtLCB1bnNpZ25lZCBjaGFyIGNo
YXJhY3RlcikKK1JlZjxTdHJpbmdJbXBsPiBTbWFsbFN0cmluZ3M6OnNpbmdsZUNoYXJhY3RlclN0
cmluZ1JlcCh1bnNpZ25lZCBjaGFyIGNoYXJhY3RlcikKIHsKLSAgICBpZiAoIW1fc3RvcmFnZSkK
LSAgICAgICAgbV9zdG9yYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxTbWFsbFN0cmluZ3NTdG9yYWdl
PigpOwotICAgIEFTU0VSVCghbV9zaW5nbGVDaGFyYWN0ZXJTdHJpbmdzW2NoYXJhY3Rlcl0pOwot
ICAgIG1fc2luZ2xlQ2hhcmFjdGVyU3RyaW5nc1tjaGFyYWN0ZXJdID0gSlNTdHJpbmc6OmNyZWF0
ZUhhc090aGVyT3duZXIoKnZtLCBtX3N0b3JhZ2UtPnJlcChjaGFyYWN0ZXIpKTsKLSAgICBBU1NF
UlQobV9uZWVkc1RvQmVWaXNpdGVkKTsKLX0KLQotU3RyaW5nSW1wbCYgU21hbGxTdHJpbmdzOjpz
aW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAodW5zaWduZWQgY2hhciBjaGFyYWN0ZXIpCi17Ci0gICAg
aWYgKCFtX3N0b3JhZ2UpCi0gICAgICAgIG1fc3RvcmFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8U21h
bGxTdHJpbmdzU3RvcmFnZT4oKTsKLSAgICByZXR1cm4gbV9zdG9yYWdlLT5yZXAoY2hhcmFjdGVy
KTsKKyAgICBpZiAoVU5MSUtFTFkobV9maW5hbGl6ZWQpKSB7CisgICAgICAgIGNvbnN0IExDaGFy
IHN0cmluZ1tdID0geyBzdGF0aWNfY2FzdDxMQ2hhcj4oY2hhcmFjdGVyKSB9OworICAgICAgICBy
ZXR1cm4gQXRvbWljU3RyaW5nSW1wbDo6YWRkKHN0cmluZywgMSkucmVsZWFzZU5vbk51bGwoKTsK
KyAgICB9CisgICAgcmV0dXJuICpjb25zdF9jYXN0PFN0cmluZ0ltcGwqPihtX3NpbmdsZUNoYXJh
Y3RlclN0cmluZ3NbY2hhcmFjdGVyXS0+dHJ5R2V0VmFsdWVJbXBsKCkpOwogfQogCiB2b2lkIFNt
YWxsU3RyaW5nczo6aW5pdGlhbGl6ZShWTSogdm0sIEpTU3RyaW5nKiYgc3RyaW5nLCBjb25zdCBj
aGFyKiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nt
YWxsU3RyaW5ncy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdz
LmgKaW5kZXggNzY5ZDQ5NGYzMjBjNDAzZWZmNmYxNTM5ZTIyMzk2ZjA5Y2Y4MzQ4Ni4uODM1ODQ2
MTY3NGI3YjgzNzM3OWYxOWI3OGNhYjFmMjM3OGU5M2Y2NyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmgKQEAgLTUxLDcgKzUxLDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKIGNsYXNzIFZNOwogY2xhc3MgSlNTdHJpbmc7Ci1jbGFzcyBTbWFsbFN0cmluZ3NT
dG9yYWdlOwogY2xhc3MgU2xvdFZpc2l0b3I7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhT
aW5nbGVDaGFyYWN0ZXJTdHJpbmcgPSAweEZGOwpAQCAtNzIsNyArNzEsOSBAQCBjbGFzcyBTbWFs
bFN0cmluZ3MgewogICAgICAgICByZXR1cm4gbV9zaW5nbGVDaGFyYWN0ZXJTdHJpbmdzW2NoYXJh
Y3Rlcl07CiAgICAgfQogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgV1RGOjpTdHJpbmdJbXBsJiBz
aW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAodW5zaWduZWQgY2hhciBjaGFyYWN0ZXIpOworICAgIEpT
X0VYUE9SVF9QUklWQVRFIFJlZjxTdHJpbmdJbXBsPiBzaW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAo
dW5zaWduZWQgY2hhciBjaGFyYWN0ZXIpOworCisgICAgdm9pZCBmaW5hbGl6ZSgpIHsgbV9maW5h
bGl6ZWQgPSB0cnVlOyB9CiAKICAgICBKU1N0cmluZyoqIHNpbmdsZUNoYXJhY3RlclN0cmluZ3Mo
KSB7IHJldHVybiAmbV9zaW5nbGVDaGFyYWN0ZXJTdHJpbmdzWzBdOyB9CiAKQEAgLTEyNyw3ICsx
MjgsNiBAQCBjbGFzcyBTbWFsbFN0cmluZ3MgewogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBz
aW5nbGVDaGFyYWN0ZXJTdHJpbmdDb3VudCA9IG1heFNpbmdsZUNoYXJhY3RlclN0cmluZyArIDE7
CiAKICAgICB2b2lkIGNyZWF0ZUVtcHR5U3RyaW5nKFZNKik7Ci0gICAgdm9pZCBjcmVhdGVTaW5n
bGVDaGFyYWN0ZXJTdHJpbmcoVk0qLCB1bnNpZ25lZCBjaGFyKTsKIAogICAgIHZvaWQgaW5pdGlh
bGl6ZShWTSosIEpTU3RyaW5nKiYsIGNvbnN0IGNoYXIqIHZhbHVlKTsKIApAQCAtMTM5LDggKzEz
OSw4IEBAIGNsYXNzIFNtYWxsU3RyaW5ncyB7CiAgICAgSlNTdHJpbmcqIG1fbnVsbE9iamVjdFN0
cmluZyB7IG51bGxwdHIgfTsKICAgICBKU1N0cmluZyogbV91bmRlZmluZWRPYmplY3RTdHJpbmcg
eyBudWxscHRyIH07CiAgICAgSlNTdHJpbmcqIG1fc2luZ2xlQ2hhcmFjdGVyU3RyaW5nc1tzaW5n
bGVDaGFyYWN0ZXJTdHJpbmdDb3VudF0geyBudWxscHRyIH07Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PFNtYWxsU3RyaW5nc1N0b3JhZ2U+IG1fc3RvcmFnZTsKICAgICBib29sIG1fbmVlZHNUb0JlVmlz
aXRlZCB7IHRydWUgfTsKKyAgICBib29sIG1fZmluYWxpemVkIHsgZmFsc2UgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IDEw
MmY5OGVmZmRjNDllODg5ZDdjYTlhYTE5ZmMwMDA4NTdhNjFkMWQuLjI0YzNjMjEwZWE1ZDc3Zjky
YzZkNzhmYmQwMTdiNmQ4MTYwZjIzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAKQEAgLTM0MCwxMSArMzQwLDE0IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBo
ZWFwVHlwZSkKICAgICAvLyBOZWVkIHRvIGJlIGNhcmVmdWwgdG8ga2VlcCBldmVyeXRoaW5nIGNv
bnNpc3RlbnQgaGVyZQogICAgIEpTTG9ja0hvbGRlciBsb2NrKHRoaXMpOwogICAgIEF0b21pY1N0
cmluZ1RhYmxlKiBleGlzdGluZ0VudHJ5QXRvbWljU3RyaW5nVGFibGUgPSBUaHJlYWQ6OmN1cnJl
bnQoKS5zZXRDdXJyZW50QXRvbWljU3RyaW5nVGFibGUobV9hdG9taWNTdHJpbmdUYWJsZSk7Ci0g
ICAgcHJvcGVydHlOYW1lcyA9IG5ldyBDb21tb25JZGVudGlmaWVycyh0aGlzKTsKICAgICBzdHJ1
Y3R1cmVTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBTdHJ1Y3R1cmU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhp
cykpOwogICAgIHN0cnVjdHVyZVJhcmVEYXRhU3RydWN0dXJlLnNldCgqdGhpcywgU3RydWN0dXJl
UmFyZURhdGE6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKLSAgICB0ZXJt
aW5hdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBUZXJtaW5hdGVkRXhlY3V0
aW9uRXJyb3I6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICBzdHJp
bmdTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBKU1N0cmluZzo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAw
LCBqc051bGwoKSkpOworCisgICAgc21hbGxTdHJpbmdzLmluaXRpYWxpemVDb21tb25TdHJpbmdz
KCp0aGlzKTsKKworICAgIHByb3BlcnR5TmFtZXMgPSBuZXcgQ29tbW9uSWRlbnRpZmllcnModGhp
cyk7CisgICAgdGVybWluYXRlZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlLnNldCgqdGhpcywgVGVy
bWluYXRlZEV4ZWN1dGlvbkVycm9yOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgp
KSk7CiAgICAgcHJvcGVydHlOYW1lRW51bWVyYXRvclN0cnVjdHVyZS5zZXQoKnRoaXMsIEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkp
OwogICAgIGN1c3RvbUdldHRlclNldHRlclN0cnVjdHVyZS5zZXQoKnRoaXMsIEN1c3RvbUdldHRl
clNldHRlcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIGRvbUF0
dHJpYnV0ZUdldHRlclNldHRlclN0cnVjdHVyZS5zZXQoKnRoaXMsIERPTUF0dHJpYnV0ZUdldHRl
clNldHRlcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwpAQCAtNDAxLDgg
KzQwNCw2IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICBz
ZW50aW5lbFNldEJ1Y2tldC5zZXQoKnRoaXMsIEpTU2V0OjpCdWNrZXRUeXBlOjpjcmVhdGVTZW50
aW5lbCgqdGhpcykpOwogICAgIHNlbnRpbmVsTWFwQnVja2V0LnNldCgqdGhpcywgSlNNYXA6OkJ1
Y2tldFR5cGU6OmNyZWF0ZVNlbnRpbmVsKCp0aGlzKSk7CiAKLSAgICBzbWFsbFN0cmluZ3MuaW5p
dGlhbGl6ZUNvbW1vblN0cmluZ3MoKnRoaXMpOwotCiAgICAgVGhyZWFkOjpjdXJyZW50KCkuc2V0
Q3VycmVudEF0b21pY1N0cmluZ1RhYmxlKGV4aXN0aW5nRW50cnlBdG9taWNTdHJpbmdUYWJsZSk7
CiAKICNpZiBFTkFCTEUoSklUKQpAQCAtNTM5LDYgKzU0MCw3IEBAIFZNOjp+Vk0oKQogCiAgICAg
QVNTRVJUKGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdBUElMb2NrKCkpOwogICAgIG1fYXBpTG9jay0+
d2lsbERlc3Ryb3lWTSh0aGlzKTsKKyAgICBzbWFsbFN0cmluZ3MuZmluYWxpemUoKTsKICAgICBo
ZWFwLmxhc3RDaGFuY2VUb0ZpbmFsaXplKCk7CiAKICAgICBKU1J1bkxvb3BUaW1lcjo6TWFuYWdl
cjo6c2hhcmVkKCkudW5yZWdpc3RlclZNKCp0aGlzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362710</attachid>
            <date>2019-02-22 02:05:50 -0800</date>
            <delta_ts>2019-02-22 02:10:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194939-20190222020550.patch</filename>
            <type>text/plain</type>
            <size>8753</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxOTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YzYxNjI3YzA0NDU5NjFiODRkM2UyNWRmMzEzYjk2NTY2MjQ1ODhlLi4zZTFkMTE2NjA4ZWM5OGRk
NDY3MzBmZDA3MzJjMDI0MGZiODUwNDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxOS0wMi0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFNtYWxsU3RyaW5nc1N0b3JhZ2UgaXMgdW5uZWNlc3NhcnkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDkzOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNtYWxsU3RyaW5n
cyBob2xkIGNvbW1vbiBzbWFsbCBKU1N0cmluZ3MuIFRoZWlyIHVuZGVybHlpbmcgU3RyaW5nSW1w
bCBpcyBhbHNvIGhlbGQgYnkgU21hbGxTdHJpbmdzU3RvcmFnZS4KKyAgICAgICAgQnV0IGl0IGlz
IGR1cGxpY2F0ZSBzaW5jZSB3ZSBjYW4gZ2V0IFN0cmluZ0ltcGwgZnJvbSBzbWFsbCBKU1N0cmlu
Z3MuIFRoaXMgcGF0Y2ggcmVtb3ZlcyBTbWFsbFN0cmluZ3NTdG9yYWdlLAorICAgICAgICBhbmQg
Z2V0IFN0cmluZ0ltcGxzIGZyb20gSlNTdHJpbmdzIGlmIG5lY2Vzc2FyeS4KKworICAgICAgICBX
ZSBhbHNvIGFkZCBtX2NhbkFjY2Vzc0hlYXAgZmxhZyB0byBTbWFsbFN0cmluZ3MuIEF0IHRoZSB0
aW1lIG9mIFZNIGRlc3RydWN0aW9uLCBKU1N0cmluZ3MgYXJlIGRlc3Ryb3llZCB3aGVuCisgICAg
ICAgIFZNJ3MgSGVhcCBpcyBmaW5hbGl6ZWQuIFdlIG11c3Qgbm90IHRvdWNoIEpTU3RyaW5ncyBi
ZWZvcmUgVk0ncyBoZWFwIChhbmQgSlNTdHJpbmdzIGluIFNtYWxsU3RyaW5ncykgaXMgaW5pdGlh
bGl6ZWQsCisgICAgICAgIGFuZCBhZnRlciBWTSdzIEhlYXAgaXMgZGVzdHJveWVkLiBXZSBhZGQg
dGhpcyBtX2NhbkFjY2Vzc0hlYXAgZmxhZyB0byBhbGxvdyB1c2VycyB0byBnZXQgU3RyaW5nSW1w
bCBkdXJpbmcgdGhlCisgICAgICAgIHRoaXMgc2Vuc2l0aXZlIHBlcmlvZC4gSWYgbV9jYW5BY2Nl
c3NIZWFwIGlzIGZhbHNlLCB3ZSBnZXQgU3RyaW5nSW1wbCBmcm9tIEF0b21pY1N0cmluZ0ltcGw6
OmFkZC4KKworICAgICAgICAqIHJ1bnRpbWUvU21hbGxTdHJpbmdzLmNwcDoKKyAgICAgICAgKEpT
Qzo6U21hbGxTdHJpbmdzOjppbml0aWFsaXplQ29tbW9uU3RyaW5ncyk6CisgICAgICAgIChKU0M6
OlNtYWxsU3RyaW5nczo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nUmVwKToKKyAgICAgICAgKEpTQzo6
U21hbGxTdHJpbmdzU3RvcmFnZTo6cmVwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U21hbGxT
dHJpbmdzU3RvcmFnZTo6U21hbGxTdHJpbmdzU3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OlNtYWxsU3RyaW5nczo6Y3JlYXRlU2luZ2xlQ2hhcmFjdGVyU3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL1NtYWxsU3RyaW5ncy5oOgorICAgICAgICAoSlNDOjpTbWFsbFN0
cmluZ3M6OnNldENhbkFjY2Vzc0hlYXApOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAg
ICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAoSlNDOjpWTTo6flZNKToKKwogMjAxOS0wMi0y
MiAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBDYWNoZSBD
b21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9mIFZhcmlhYmxlRW52aXJvbm1lbnQg
Zm9yIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAppbmRleCA4ZjI2YjNlMWUyYTE2NGU3ZjNjMzM0NzI4
N2MwZjRlMzM3MzQ3NDdmLi40NWYyOTJkNWFkZTdiYmFmMDVjMjBlMWM0NWM2NjY4NmM3Yjc1Zjc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAK
QEAgLTM0LDMwICszNCw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBTbWFsbFN0cmlu
Z3NTdG9yYWdlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTbWFsbFN0cmluZ3NTdG9yYWdl
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgU21hbGxTdHJpbmdzU3Rv
cmFnZSgpOwotCi0gICAgU3RyaW5nSW1wbCYgcmVwKHVuc2lnbmVkIGNoYXIgY2hhcmFjdGVyKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuICptX3JlcHNbY2hhcmFjdGVyXS5nZXQoKTsKLSAgICB9Ci0K
LXByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNpbmdsZUNoYXJhY3RlclN0cmlu
Z0NvdW50ID0gbWF4U2luZ2xlQ2hhcmFjdGVyU3RyaW5nICsgMTsKLQotICAgIFJlZlB0cjxTdHJp
bmdJbXBsPiBtX3JlcHNbc2luZ2xlQ2hhcmFjdGVyU3RyaW5nQ291bnRdOwotfTsKLQotU21hbGxT
dHJpbmdzU3RvcmFnZTo6U21hbGxTdHJpbmdzU3RvcmFnZSgpCi17Ci0gICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHNpbmdsZUNoYXJhY3RlclN0cmluZ0NvdW50OyArK2kpIHsKLSAgICAgICAg
Y29uc3QgTENoYXIgc3RyaW5nW10gPSB7IHN0YXRpY19jYXN0PExDaGFyPihpKSB9OwotICAgICAg
ICBtX3JlcHNbaV0gPSBBdG9taWNTdHJpbmdJbXBsOjphZGQoU3RyaW5nSW1wbDo6Y3JlYXRlKHN0
cmluZywgMSkucHRyKCkpOwotICAgIH0KLX0KLQogU21hbGxTdHJpbmdzOjpTbWFsbFN0cmluZ3Mo
KQogewogICAgIENPTVBJTEVfQVNTRVJUKHNpbmdsZUNoYXJhY3RlclN0cmluZ0NvdW50ID09IHNp
emVvZihtX3NpbmdsZUNoYXJhY3RlclN0cmluZ3MpIC8gc2l6ZW9mKG1fc2luZ2xlQ2hhcmFjdGVy
U3RyaW5nc1swXSksIElzTnVtQ2hhcmFjdGVyc0NvbnN0SW5TeW5jV2l0aENsYXNzVXNhZ2UpOwpA
QCAtNjksOCArNDUsMTUgQEAgU21hbGxTdHJpbmdzOjpTbWFsbFN0cmluZ3MoKQogdm9pZCBTbWFs
bFN0cmluZ3M6OmluaXRpYWxpemVDb21tb25TdHJpbmdzKFZNJiB2bSkKIHsKICAgICBjcmVhdGVF
bXB0eVN0cmluZygmdm0pOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPD0gbWF4U2luZ2xl
Q2hhcmFjdGVyU3RyaW5nOyArK2kpCi0gICAgICAgIGNyZWF0ZVNpbmdsZUNoYXJhY3RlclN0cmlu
Zygmdm0sIGkpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpbmdsZUNoYXJhY3Rl
clN0cmluZ0NvdW50OyArK2kpIHsKKyAgICAgICAgQVNTRVJUKCFtX3NpbmdsZUNoYXJhY3RlclN0
cmluZ3NbaV0pOworICAgICAgICBjb25zdCBMQ2hhciBzdHJpbmdbXSA9IHsgc3RhdGljX2Nhc3Q8
TENoYXI+KGkpIH07CisgICAgICAgIG1fc2luZ2xlQ2hhcmFjdGVyU3RyaW5nc1tpXSA9IEpTU3Ry
aW5nOjpjcmVhdGVIYXNPdGhlck93bmVyKHZtLCBBdG9taWNTdHJpbmdJbXBsOjphZGQoc3RyaW5n
LCAxKSk7CisgICAgICAgIEFTU0VSVChtX25lZWRzVG9CZVZpc2l0ZWQpOworICAgIH0KKyAgICBz
ZXRDYW5BY2Nlc3NIZWFwKHRydWUpOworCiAjZGVmaW5lIEpTQ19DT01NT05fU1RSSU5HU19BVFRS
SUJVVEVfSU5JVElBTElaRShuYW1lKSBpbml0aWFsaXplKCZ2bSwgbV8jI25hbWUsICNuYW1lKTsK
ICAgICBKU0NfQ09NTU9OX1NUUklOR1NfRUFDSF9OQU1FKEpTQ19DT01NT05fU1RSSU5HU19BVFRS
SUJVVEVfSU5JVElBTElaRSkKICN1bmRlZiBKU0NfQ09NTU9OX1NUUklOR1NfQVRUUklCVVRFX0lO
SVRJQUxJWkUKQEAgLTEwNCwyMCArODcsMTIgQEAgdm9pZCBTbWFsbFN0cmluZ3M6OmNyZWF0ZUVt
cHR5U3RyaW5nKFZNKiB2bSkKICAgICBBU1NFUlQobV9uZWVkc1RvQmVWaXNpdGVkKTsKIH0KIAot
dm9pZCBTbWFsbFN0cmluZ3M6OmNyZWF0ZVNpbmdsZUNoYXJhY3RlclN0cmluZyhWTSogdm0sIHVu
c2lnbmVkIGNoYXIgY2hhcmFjdGVyKQotewotICAgIGlmICghbV9zdG9yYWdlKQotICAgICAgICBt
X3N0b3JhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFNtYWxsU3RyaW5nc1N0b3JhZ2U+KCk7Ci0gICAg
QVNTRVJUKCFtX3NpbmdsZUNoYXJhY3RlclN0cmluZ3NbY2hhcmFjdGVyXSk7Ci0gICAgbV9zaW5n
bGVDaGFyYWN0ZXJTdHJpbmdzW2NoYXJhY3Rlcl0gPSBKU1N0cmluZzo6Y3JlYXRlSGFzT3RoZXJP
d25lcigqdm0sIG1fc3RvcmFnZS0+cmVwKGNoYXJhY3RlcikpOwotICAgIEFTU0VSVChtX25lZWRz
VG9CZVZpc2l0ZWQpOwotfQotCi1TdHJpbmdJbXBsJiBTbWFsbFN0cmluZ3M6OnNpbmdsZUNoYXJh
Y3RlclN0cmluZ1JlcCh1bnNpZ25lZCBjaGFyIGNoYXJhY3RlcikKK1JlZjxTdHJpbmdJbXBsPiBT
bWFsbFN0cmluZ3M6OnNpbmdsZUNoYXJhY3RlclN0cmluZ1JlcCh1bnNpZ25lZCBjaGFyIGNoYXJh
Y3RlcikKIHsKLSAgICBpZiAoIW1fc3RvcmFnZSkKLSAgICAgICAgbV9zdG9yYWdlID0gc3RkOjpt
YWtlX3VuaXF1ZTxTbWFsbFN0cmluZ3NTdG9yYWdlPigpOwotICAgIHJldHVybiBtX3N0b3JhZ2Ut
PnJlcChjaGFyYWN0ZXIpOworICAgIGlmIChMSUtFTFkobV9jYW5BY2Nlc3NIZWFwKSkKKyAgICAg
ICAgcmV0dXJuICpjb25zdF9jYXN0PFN0cmluZ0ltcGwqPihtX3NpbmdsZUNoYXJhY3RlclN0cmlu
Z3NbY2hhcmFjdGVyXS0+dHJ5R2V0VmFsdWVJbXBsKCkpOworICAgIGNvbnN0IExDaGFyIHN0cmlu
Z1tdID0geyBzdGF0aWNfY2FzdDxMQ2hhcj4oY2hhcmFjdGVyKSB9OworICAgIHJldHVybiBBdG9t
aWNTdHJpbmdJbXBsOjphZGQoc3RyaW5nLCAxKS5yZWxlYXNlTm9uTnVsbCgpOwogfQogCiB2b2lk
IFNtYWxsU3RyaW5nczo6aW5pdGlhbGl6ZShWTSogdm0sIEpTU3RyaW5nKiYgc3RyaW5nLCBjb25z
dCBjaGFyKiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NtYWxsU3RyaW5ncy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJp
bmdzLmgKaW5kZXggNzY5ZDQ5NGYzMjBjNDAzZWZmNmYxNTM5ZTIyMzk2ZjA5Y2Y4MzQ4Ni4uMGYy
MjBhZWRlN2ExZWM1ODZlNTJiNmFjYTVjYWU4ZjljZDY1ZmZmYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmgKQEAgLTUxLDcgKzUxLDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKIGNsYXNzIFZNOwogY2xhc3MgSlNTdHJpbmc7Ci1jbGFzcyBTbWFsbFN0cmlu
Z3NTdG9yYWdlOwogY2xhc3MgU2xvdFZpc2l0b3I7CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBt
YXhTaW5nbGVDaGFyYWN0ZXJTdHJpbmcgPSAweEZGOwpAQCAtNzIsNyArNzEsOSBAQCBjbGFzcyBT
bWFsbFN0cmluZ3MgewogICAgICAgICByZXR1cm4gbV9zaW5nbGVDaGFyYWN0ZXJTdHJpbmdzW2No
YXJhY3Rlcl07CiAgICAgfQogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgV1RGOjpTdHJpbmdJbXBs
JiBzaW5nbGVDaGFyYWN0ZXJTdHJpbmdSZXAodW5zaWduZWQgY2hhciBjaGFyYWN0ZXIpOworICAg
IEpTX0VYUE9SVF9QUklWQVRFIFJlZjxTdHJpbmdJbXBsPiBzaW5nbGVDaGFyYWN0ZXJTdHJpbmdS
ZXAodW5zaWduZWQgY2hhciBjaGFyYWN0ZXIpOworCisgICAgdm9pZCBzZXRDYW5BY2Nlc3NIZWFw
KGJvb2wgY2FuQWNjZXNzSGVhcCkgeyBtX2NhbkFjY2Vzc0hlYXAgPSBjYW5BY2Nlc3NIZWFwOyB9
CiAKICAgICBKU1N0cmluZyoqIHNpbmdsZUNoYXJhY3RlclN0cmluZ3MoKSB7IHJldHVybiAmbV9z
aW5nbGVDaGFyYWN0ZXJTdHJpbmdzWzBdOyB9CiAKQEAgLTEyNyw3ICsxMjgsNiBAQCBjbGFzcyBT
bWFsbFN0cmluZ3MgewogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaW5nbGVDaGFyYWN0ZXJT
dHJpbmdDb3VudCA9IG1heFNpbmdsZUNoYXJhY3RlclN0cmluZyArIDE7CiAKICAgICB2b2lkIGNy
ZWF0ZUVtcHR5U3RyaW5nKFZNKik7Ci0gICAgdm9pZCBjcmVhdGVTaW5nbGVDaGFyYWN0ZXJTdHJp
bmcoVk0qLCB1bnNpZ25lZCBjaGFyKTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZShWTSosIEpTU3Ry
aW5nKiYsIGNvbnN0IGNoYXIqIHZhbHVlKTsKIApAQCAtMTM5LDggKzEzOSw4IEBAIGNsYXNzIFNt
YWxsU3RyaW5ncyB7CiAgICAgSlNTdHJpbmcqIG1fbnVsbE9iamVjdFN0cmluZyB7IG51bGxwdHIg
fTsKICAgICBKU1N0cmluZyogbV91bmRlZmluZWRPYmplY3RTdHJpbmcgeyBudWxscHRyIH07CiAg
ICAgSlNTdHJpbmcqIG1fc2luZ2xlQ2hhcmFjdGVyU3RyaW5nc1tzaW5nbGVDaGFyYWN0ZXJTdHJp
bmdDb3VudF0geyBudWxscHRyIH07Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFNtYWxsU3RyaW5nc1N0
b3JhZ2U+IG1fc3RvcmFnZTsKICAgICBib29sIG1fbmVlZHNUb0JlVmlzaXRlZCB7IHRydWUgfTsK
KyAgICBib29sIG1fY2FuQWNjZXNzSGVhcCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCAxMDJmOThlZmZkYzQ5
ZTg4OWQ3Y2E5YWExOWZjMDAwODU3YTYxZDFkLi4xOTJiOTlkMTcxYjgyMDFkMTkyOTQ4ZTMyMDAy
OGNjY2MyODIzYTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0zNDAs
MTEgKzM0MCwxNCBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAg
ICAgLy8gTmVlZCB0byBiZSBjYXJlZnVsIHRvIGtlZXAgZXZlcnl0aGluZyBjb25zaXN0ZW50IGhl
cmUKICAgICBKU0xvY2tIb2xkZXIgbG9jayh0aGlzKTsKICAgICBBdG9taWNTdHJpbmdUYWJsZSog
ZXhpc3RpbmdFbnRyeUF0b21pY1N0cmluZ1RhYmxlID0gVGhyZWFkOjpjdXJyZW50KCkuc2V0Q3Vy
cmVudEF0b21pY1N0cmluZ1RhYmxlKG1fYXRvbWljU3RyaW5nVGFibGUpOwotICAgIHByb3BlcnR5
TmFtZXMgPSBuZXcgQ29tbW9uSWRlbnRpZmllcnModGhpcyk7CiAgICAgc3RydWN0dXJlU3RydWN0
dXJlLnNldCgqdGhpcywgU3RydWN0dXJlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMpKTsKICAgICBz
dHJ1Y3R1cmVSYXJlRGF0YVN0cnVjdHVyZS5zZXQoKnRoaXMsIFN0cnVjdHVyZVJhcmVEYXRhOjpj
cmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7Ci0gICAgdGVybWluYXRlZEV4ZWN1
dGlvbkVycm9yU3RydWN0dXJlLnNldCgqdGhpcywgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yOjpj
cmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAgICAgc3RyaW5nU3RydWN0dXJl
LnNldCgqdGhpcywgSlNTdHJpbmc6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkp
KTsKKworICAgIHNtYWxsU3RyaW5ncy5pbml0aWFsaXplQ29tbW9uU3RyaW5ncygqdGhpcyk7CisK
KyAgICBwcm9wZXJ0eU5hbWVzID0gbmV3IENvbW1vbklkZW50aWZpZXJzKHRoaXMpOworICAgIHRl
cm1pbmF0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZS5zZXQoKnRoaXMsIFRlcm1pbmF0ZWRFeGVj
dXRpb25FcnJvcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIHBy
b3BlcnR5TmFtZUVudW1lcmF0b3JTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBKU1Byb3BlcnR5TmFtZUVu
dW1lcmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICBjdXN0
b21HZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNy
ZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICBkb21BdHRyaWJ1dGVHZXR0
ZXJTZXR0ZXJTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBET01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXI6OmNy
ZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKQEAgLTQwMSw4ICs0MDQsNiBAQCBW
TTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgc2VudGluZWxTZXRC
dWNrZXQuc2V0KCp0aGlzLCBKU1NldDo6QnVja2V0VHlwZTo6Y3JlYXRlU2VudGluZWwoKnRoaXMp
KTsKICAgICBzZW50aW5lbE1hcEJ1Y2tldC5zZXQoKnRoaXMsIEpTTWFwOjpCdWNrZXRUeXBlOjpj
cmVhdGVTZW50aW5lbCgqdGhpcykpOwogCi0gICAgc21hbGxTdHJpbmdzLmluaXRpYWxpemVDb21t
b25TdHJpbmdzKCp0aGlzKTsKLQogICAgIFRocmVhZDo6Y3VycmVudCgpLnNldEN1cnJlbnRBdG9t
aWNTdHJpbmdUYWJsZShleGlzdGluZ0VudHJ5QXRvbWljU3RyaW5nVGFibGUpOwogCiAjaWYgRU5B
QkxFKEpJVCkKQEAgLTUzOSw2ICs1NDAsNyBAQCBWTTo6flZNKCkKIAogICAgIEFTU0VSVChjdXJy
ZW50VGhyZWFkSXNIb2xkaW5nQVBJTG9jaygpKTsKICAgICBtX2FwaUxvY2stPndpbGxEZXN0cm95
Vk0odGhpcyk7CisgICAgc21hbGxTdHJpbmdzLmNhbkFjY2Vzc0hlYXAoZmFsc2UpOwogICAgIGhl
YXAubGFzdENoYW5jZVRvRmluYWxpemUoKTsKIAogICAgIEpTUnVuTG9vcFRpbWVyOjpNYW5hZ2Vy
OjpzaGFyZWQoKS51bnJlZ2lzdGVyVk0oKnRoaXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362711</attachid>
            <date>2019-02-22 02:10:29 -0800</date>
            <delta_ts>2019-02-22 09:52:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194939-20190222021028.patch</filename>
            <type>text/plain</type>
            <size>8773</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxOTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YzYxNjI3YzA0NDU5NjFiODRkM2UyNWRmMzEzYjk2NTY2MjQ1ODhlLi4zZTFkMTE2NjA4ZWM5OGRk
NDY3MzBmZDA3MzJjMDI0MGZiODUwNDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxOS0wMi0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFNtYWxsU3RyaW5nc1N0b3JhZ2UgaXMgdW5uZWNlc3NhcnkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDkzOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNtYWxsU3RyaW5n
cyBob2xkIGNvbW1vbiBzbWFsbCBKU1N0cmluZ3MuIFRoZWlyIHVuZGVybHlpbmcgU3RyaW5nSW1w
bCBpcyBhbHNvIGhlbGQgYnkgU21hbGxTdHJpbmdzU3RvcmFnZS4KKyAgICAgICAgQnV0IGl0IGlz
IGR1cGxpY2F0ZSBzaW5jZSB3ZSBjYW4gZ2V0IFN0cmluZ0ltcGwgZnJvbSBzbWFsbCBKU1N0cmlu
Z3MuIFRoaXMgcGF0Y2ggcmVtb3ZlcyBTbWFsbFN0cmluZ3NTdG9yYWdlLAorICAgICAgICBhbmQg
Z2V0IFN0cmluZ0ltcGxzIGZyb20gSlNTdHJpbmdzIGlmIG5lY2Vzc2FyeS4KKworICAgICAgICBX
ZSBhbHNvIGFkZCBtX2NhbkFjY2Vzc0hlYXAgZmxhZyB0byBTbWFsbFN0cmluZ3MuIEF0IHRoZSB0
aW1lIG9mIFZNIGRlc3RydWN0aW9uLCBKU1N0cmluZ3MgYXJlIGRlc3Ryb3llZCB3aGVuCisgICAg
ICAgIFZNJ3MgSGVhcCBpcyBmaW5hbGl6ZWQuIFdlIG11c3Qgbm90IHRvdWNoIEpTU3RyaW5ncyBi
ZWZvcmUgVk0ncyBoZWFwIChhbmQgSlNTdHJpbmdzIGluIFNtYWxsU3RyaW5ncykgaXMgaW5pdGlh
bGl6ZWQsCisgICAgICAgIGFuZCBhZnRlciBWTSdzIEhlYXAgaXMgZGVzdHJveWVkLiBXZSBhZGQg
dGhpcyBtX2NhbkFjY2Vzc0hlYXAgZmxhZyB0byBhbGxvdyB1c2VycyB0byBnZXQgU3RyaW5nSW1w
bCBkdXJpbmcgdGhlCisgICAgICAgIHRoaXMgc2Vuc2l0aXZlIHBlcmlvZC4gSWYgbV9jYW5BY2Nl
c3NIZWFwIGlzIGZhbHNlLCB3ZSBnZXQgU3RyaW5nSW1wbCBmcm9tIEF0b21pY1N0cmluZ0ltcGw6
OmFkZC4KKworICAgICAgICAqIHJ1bnRpbWUvU21hbGxTdHJpbmdzLmNwcDoKKyAgICAgICAgKEpT
Qzo6U21hbGxTdHJpbmdzOjppbml0aWFsaXplQ29tbW9uU3RyaW5ncyk6CisgICAgICAgIChKU0M6
OlNtYWxsU3RyaW5nczo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nUmVwKToKKyAgICAgICAgKEpTQzo6
U21hbGxTdHJpbmdzU3RvcmFnZTo6cmVwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U21hbGxT
dHJpbmdzU3RvcmFnZTo6U21hbGxTdHJpbmdzU3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OlNtYWxsU3RyaW5nczo6Y3JlYXRlU2luZ2xlQ2hhcmFjdGVyU3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL1NtYWxsU3RyaW5ncy5oOgorICAgICAgICAoSlNDOjpTbWFsbFN0
cmluZ3M6OnNldENhbkFjY2Vzc0hlYXApOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAg
ICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAoSlNDOjpWTTo6flZNKToKKwogMjAxOS0wMi0y
MiAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBDYWNoZSBD
b21wYWN0VmFyaWFibGVNYXA6OkhhbmRsZSBpbnN0ZWFkIG9mIFZhcmlhYmxlRW52aXJvbm1lbnQg
Zm9yIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcAppbmRleCA4ZjI2YjNlMWUyYTE2NGU3ZjNjMzM0NzI4
N2MwZjRlMzM3MzQ3NDdmLi43MDk4NDZkZmUzMTZlZTY0MGMyNTJmOTJmYmEzNDdhZGJhMjM1NmM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NtYWxsU3RyaW5ncy5jcHAK
QEAgLTM0LDMwICszNCw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBTbWFsbFN0cmlu
Z3NTdG9yYWdlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTbWFsbFN0cmluZ3NTdG9yYWdl
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgU21hbGxTdHJpbmdzU3Rv
cmFnZSgpOwotCi0gICAgU3RyaW5nSW1wbCYgcmVwKHVuc2lnbmVkIGNoYXIgY2hhcmFjdGVyKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuICptX3JlcHNbY2hhcmFjdGVyXS5nZXQoKTsKLSAgICB9Ci0K
LXByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNpbmdsZUNoYXJhY3RlclN0cmlu
Z0NvdW50ID0gbWF4U2luZ2xlQ2hhcmFjdGVyU3RyaW5nICsgMTsKLQotICAgIFJlZlB0cjxTdHJp
bmdJbXBsPiBtX3JlcHNbc2luZ2xlQ2hhcmFjdGVyU3RyaW5nQ291bnRdOwotfTsKLQotU21hbGxT
dHJpbmdzU3RvcmFnZTo6U21hbGxTdHJpbmdzU3RvcmFnZSgpCi17Ci0gICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHNpbmdsZUNoYXJhY3RlclN0cmluZ0NvdW50OyArK2kpIHsKLSAgICAgICAg
Y29uc3QgTENoYXIgc3RyaW5nW10gPSB7IHN0YXRpY19jYXN0PExDaGFyPihpKSB9OwotICAgICAg
ICBtX3JlcHNbaV0gPSBBdG9taWNTdHJpbmdJbXBsOjphZGQoU3RyaW5nSW1wbDo6Y3JlYXRlKHN0
cmluZywgMSkucHRyKCkpOwotICAgIH0KLX0KLQogU21hbGxTdHJpbmdzOjpTbWFsbFN0cmluZ3Mo
KQogewogICAgIENPTVBJTEVfQVNTRVJUKHNpbmdsZUNoYXJhY3RlclN0cmluZ0NvdW50ID09IHNp
emVvZihtX3NpbmdsZUNoYXJhY3RlclN0cmluZ3MpIC8gc2l6ZW9mKG1fc2luZ2xlQ2hhcmFjdGVy
U3RyaW5nc1swXSksIElzTnVtQ2hhcmFjdGVyc0NvbnN0SW5TeW5jV2l0aENsYXNzVXNhZ2UpOwpA
QCAtNjksOCArNDUsMTUgQEAgU21hbGxTdHJpbmdzOjpTbWFsbFN0cmluZ3MoKQogdm9pZCBTbWFs
bFN0cmluZ3M6OmluaXRpYWxpemVDb21tb25TdHJpbmdzKFZNJiB2bSkKIHsKICAgICBjcmVhdGVF
bXB0eVN0cmluZygmdm0pOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPD0gbWF4U2luZ2xl
Q2hhcmFjdGVyU3RyaW5nOyArK2kpCi0gICAgICAgIGNyZWF0ZVNpbmdsZUNoYXJhY3RlclN0cmlu
Zygmdm0sIGkpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpbmdsZUNoYXJhY3Rl
clN0cmluZ0NvdW50OyArK2kpIHsKKyAgICAgICAgQVNTRVJUKCFtX3NpbmdsZUNoYXJhY3RlclN0
cmluZ3NbaV0pOworICAgICAgICBjb25zdCBMQ2hhciBzdHJpbmdbXSA9IHsgc3RhdGljX2Nhc3Q8
TENoYXI+KGkpIH07CisgICAgICAgIG1fc2luZ2xlQ2hhcmFjdGVyU3RyaW5nc1tpXSA9IEpTU3Ry
aW5nOjpjcmVhdGVIYXNPdGhlck93bmVyKHZtLCBBdG9taWNTdHJpbmdJbXBsOjphZGQoc3RyaW5n
LCAxKS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgQVNTRVJUKG1fbmVlZHNUb0JlVmlzaXRl
ZCk7CisgICAgfQorICAgIHNldENhbkFjY2Vzc0hlYXAodHJ1ZSk7CisKICNkZWZpbmUgSlNDX0NP
TU1PTl9TVFJJTkdTX0FUVFJJQlVURV9JTklUSUFMSVpFKG5hbWUpIGluaXRpYWxpemUoJnZtLCBt
XyMjbmFtZSwgI25hbWUpOwogICAgIEpTQ19DT01NT05fU1RSSU5HU19FQUNIX05BTUUoSlNDX0NP
TU1PTl9TVFJJTkdTX0FUVFJJQlVURV9JTklUSUFMSVpFKQogI3VuZGVmIEpTQ19DT01NT05fU1RS
SU5HU19BVFRSSUJVVEVfSU5JVElBTElaRQpAQCAtMTA0LDIwICs4NywxMiBAQCB2b2lkIFNtYWxs
U3RyaW5nczo6Y3JlYXRlRW1wdHlTdHJpbmcoVk0qIHZtKQogICAgIEFTU0VSVChtX25lZWRzVG9C
ZVZpc2l0ZWQpOwogfQogCi12b2lkIFNtYWxsU3RyaW5nczo6Y3JlYXRlU2luZ2xlQ2hhcmFjdGVy
U3RyaW5nKFZNKiB2bSwgdW5zaWduZWQgY2hhciBjaGFyYWN0ZXIpCi17Ci0gICAgaWYgKCFtX3N0
b3JhZ2UpCi0gICAgICAgIG1fc3RvcmFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8U21hbGxTdHJpbmdz
U3RvcmFnZT4oKTsKLSAgICBBU1NFUlQoIW1fc2luZ2xlQ2hhcmFjdGVyU3RyaW5nc1tjaGFyYWN0
ZXJdKTsKLSAgICBtX3NpbmdsZUNoYXJhY3RlclN0cmluZ3NbY2hhcmFjdGVyXSA9IEpTU3RyaW5n
OjpjcmVhdGVIYXNPdGhlck93bmVyKCp2bSwgbV9zdG9yYWdlLT5yZXAoY2hhcmFjdGVyKSk7Ci0g
ICAgQVNTRVJUKG1fbmVlZHNUb0JlVmlzaXRlZCk7Ci19Ci0KLVN0cmluZ0ltcGwmIFNtYWxsU3Ry
aW5nczo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nUmVwKHVuc2lnbmVkIGNoYXIgY2hhcmFjdGVyKQor
UmVmPFN0cmluZ0ltcGw+IFNtYWxsU3RyaW5nczo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nUmVwKHVu
c2lnbmVkIGNoYXIgY2hhcmFjdGVyKQogewotICAgIGlmICghbV9zdG9yYWdlKQotICAgICAgICBt
X3N0b3JhZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFNtYWxsU3RyaW5nc1N0b3JhZ2U+KCk7Ci0gICAg
cmV0dXJuIG1fc3RvcmFnZS0+cmVwKGNoYXJhY3Rlcik7CisgICAgaWYgKExJS0VMWShtX2NhbkFj
Y2Vzc0hlYXApKQorICAgICAgICByZXR1cm4gKmNvbnN0X2Nhc3Q8U3RyaW5nSW1wbCo+KG1fc2lu
Z2xlQ2hhcmFjdGVyU3RyaW5nc1tjaGFyYWN0ZXJdLT50cnlHZXRWYWx1ZUltcGwoKSk7CisgICAg
Y29uc3QgTENoYXIgc3RyaW5nW10gPSB7IHN0YXRpY19jYXN0PExDaGFyPihjaGFyYWN0ZXIpIH07
CisgICAgcmV0dXJuIEF0b21pY1N0cmluZ0ltcGw6OmFkZChzdHJpbmcsIDEpLnJlbGVhc2VOb25O
dWxsKCk7CiB9CiAKIHZvaWQgU21hbGxTdHJpbmdzOjppbml0aWFsaXplKFZNKiB2bSwgSlNTdHJp
bmcqJiBzdHJpbmcsIGNvbnN0IGNoYXIqIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TbWFsbFN0cmluZ3MuaAppbmRleCA3NjlkNDk0ZjMyMGM0MDNlZmY2ZjE1MzllMjIz
OTZmMDljZjgzNDg2Li4wZjIyMGFlZGU3YTFlYzU4NmU1MmI2YWNhNWNhZThmOWNkNjVmZmZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuaApAQCAtNTEs
NyArNTEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgVk07CiBjbGFzcyBKU1N0cmluZzsK
LWNsYXNzIFNtYWxsU3RyaW5nc1N0b3JhZ2U7CiBjbGFzcyBTbG90VmlzaXRvcjsKIAogc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIG1heFNpbmdsZUNoYXJhY3RlclN0cmluZyA9IDB4RkY7CkBAIC03Miw3
ICs3MSw5IEBAIGNsYXNzIFNtYWxsU3RyaW5ncyB7CiAgICAgICAgIHJldHVybiBtX3NpbmdsZUNo
YXJhY3RlclN0cmluZ3NbY2hhcmFjdGVyXTsKICAgICB9CiAKLSAgICBKU19FWFBPUlRfUFJJVkFU
RSBXVEY6OlN0cmluZ0ltcGwmIHNpbmdsZUNoYXJhY3RlclN0cmluZ1JlcCh1bnNpZ25lZCBjaGFy
IGNoYXJhY3Rlcik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgUmVmPFN0cmluZ0ltcGw+IHNpbmds
ZUNoYXJhY3RlclN0cmluZ1JlcCh1bnNpZ25lZCBjaGFyIGNoYXJhY3Rlcik7CisKKyAgICB2b2lk
IHNldENhbkFjY2Vzc0hlYXAoYm9vbCBjYW5BY2Nlc3NIZWFwKSB7IG1fY2FuQWNjZXNzSGVhcCA9
IGNhbkFjY2Vzc0hlYXA7IH0KIAogICAgIEpTU3RyaW5nKiogc2luZ2xlQ2hhcmFjdGVyU3RyaW5n
cygpIHsgcmV0dXJuICZtX3NpbmdsZUNoYXJhY3RlclN0cmluZ3NbMF07IH0KIApAQCAtMTI3LDcg
KzEyOCw2IEBAIGNsYXNzIFNtYWxsU3RyaW5ncyB7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IHNpbmdsZUNoYXJhY3RlclN0cmluZ0NvdW50ID0gbWF4U2luZ2xlQ2hhcmFjdGVyU3RyaW5nICsg
MTsKIAogICAgIHZvaWQgY3JlYXRlRW1wdHlTdHJpbmcoVk0qKTsKLSAgICB2b2lkIGNyZWF0ZVNp
bmdsZUNoYXJhY3RlclN0cmluZyhWTSosIHVuc2lnbmVkIGNoYXIpOwogCiAgICAgdm9pZCBpbml0
aWFsaXplKFZNKiwgSlNTdHJpbmcqJiwgY29uc3QgY2hhciogdmFsdWUpOwogCkBAIC0xMzksOCAr
MTM5LDggQEAgY2xhc3MgU21hbGxTdHJpbmdzIHsKICAgICBKU1N0cmluZyogbV9udWxsT2JqZWN0
U3RyaW5nIHsgbnVsbHB0ciB9OwogICAgIEpTU3RyaW5nKiBtX3VuZGVmaW5lZE9iamVjdFN0cmlu
ZyB7IG51bGxwdHIgfTsKICAgICBKU1N0cmluZyogbV9zaW5nbGVDaGFyYWN0ZXJTdHJpbmdzW3Np
bmdsZUNoYXJhY3RlclN0cmluZ0NvdW50XSB7IG51bGxwdHIgfTsKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8U21hbGxTdHJpbmdzU3RvcmFnZT4gbV9zdG9yYWdlOwogICAgIGJvb2wgbV9uZWVkc1RvQmVW
aXNpdGVkIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9jYW5BY2Nlc3NIZWFwIHsgZmFsc2UgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmlu
ZGV4IDEwMmY5OGVmZmRjNDllODg5ZDdjYTlhYTE5ZmMwMDA4NTdhNjFkMWQuLmQwMTBlNWViM2Nh
NTg4YTA1YTFlZTQ2NTBjZjQyMWM3NjZkODY2NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5jcHAKQEAgLTM0MCwxMSArMzQwLDE0IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFw
VHlwZSBoZWFwVHlwZSkKICAgICAvLyBOZWVkIHRvIGJlIGNhcmVmdWwgdG8ga2VlcCBldmVyeXRo
aW5nIGNvbnNpc3RlbnQgaGVyZQogICAgIEpTTG9ja0hvbGRlciBsb2NrKHRoaXMpOwogICAgIEF0
b21pY1N0cmluZ1RhYmxlKiBleGlzdGluZ0VudHJ5QXRvbWljU3RyaW5nVGFibGUgPSBUaHJlYWQ6
OmN1cnJlbnQoKS5zZXRDdXJyZW50QXRvbWljU3RyaW5nVGFibGUobV9hdG9taWNTdHJpbmdUYWJs
ZSk7Ci0gICAgcHJvcGVydHlOYW1lcyA9IG5ldyBDb21tb25JZGVudGlmaWVycyh0aGlzKTsKICAg
ICBzdHJ1Y3R1cmVTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBTdHJ1Y3R1cmU6OmNyZWF0ZVN0cnVjdHVy
ZSgqdGhpcykpOwogICAgIHN0cnVjdHVyZVJhcmVEYXRhU3RydWN0dXJlLnNldCgqdGhpcywgU3Ry
dWN0dXJlUmFyZURhdGE6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKLSAg
ICB0ZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBUZXJtaW5hdGVk
RXhlY3V0aW9uRXJyb3I6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAg
ICBzdHJpbmdTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBKU1N0cmluZzo6Y3JlYXRlU3RydWN0dXJlKCp0
aGlzLCAwLCBqc051bGwoKSkpOworCisgICAgc21hbGxTdHJpbmdzLmluaXRpYWxpemVDb21tb25T
dHJpbmdzKCp0aGlzKTsKKworICAgIHByb3BlcnR5TmFtZXMgPSBuZXcgQ29tbW9uSWRlbnRpZmll
cnModGhpcyk7CisgICAgdGVybWluYXRlZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlLnNldCgqdGhp
cywgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpz
TnVsbCgpKSk7CiAgICAgcHJvcGVydHlOYW1lRW51bWVyYXRvclN0cnVjdHVyZS5zZXQoKnRoaXMs
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051
bGwoKSkpOwogICAgIGN1c3RvbUdldHRlclNldHRlclN0cnVjdHVyZS5zZXQoKnRoaXMsIEN1c3Rv
bUdldHRlclNldHRlcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAg
IGRvbUF0dHJpYnV0ZUdldHRlclNldHRlclN0cnVjdHVyZS5zZXQoKnRoaXMsIERPTUF0dHJpYnV0
ZUdldHRlclNldHRlcjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwpAQCAt
NDAxLDggKzQwNCw2IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkK
ICAgICBzZW50aW5lbFNldEJ1Y2tldC5zZXQoKnRoaXMsIEpTU2V0OjpCdWNrZXRUeXBlOjpjcmVh
dGVTZW50aW5lbCgqdGhpcykpOwogICAgIHNlbnRpbmVsTWFwQnVja2V0LnNldCgqdGhpcywgSlNN
YXA6OkJ1Y2tldFR5cGU6OmNyZWF0ZVNlbnRpbmVsKCp0aGlzKSk7CiAKLSAgICBzbWFsbFN0cmlu
Z3MuaW5pdGlhbGl6ZUNvbW1vblN0cmluZ3MoKnRoaXMpOwotCiAgICAgVGhyZWFkOjpjdXJyZW50
KCkuc2V0Q3VycmVudEF0b21pY1N0cmluZ1RhYmxlKGV4aXN0aW5nRW50cnlBdG9taWNTdHJpbmdU
YWJsZSk7CiAKICNpZiBFTkFCTEUoSklUKQpAQCAtNTM5LDYgKzU0MCw3IEBAIFZNOjp+Vk0oKQog
CiAgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWRJc0hvbGRpbmdBUElMb2NrKCkpOwogICAgIG1fYXBp
TG9jay0+d2lsbERlc3Ryb3lWTSh0aGlzKTsKKyAgICBzbWFsbFN0cmluZ3Muc2V0Q2FuQWNjZXNz
SGVhcChmYWxzZSk7CiAgICAgaGVhcC5sYXN0Q2hhbmNlVG9GaW5hbGl6ZSgpOwogCiAgICAgSlNS
dW5Mb29wVGltZXI6Ok1hbmFnZXI6OnNoYXJlZCgpLnVucmVnaXN0ZXJWTSgqdGhpcyk7Cg==
</data>
<flag name="review"
          id="379321"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>